{"version":3,"file":"main.js","mappings":"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","sources":["./src/apps/web/src/app/app.component.ts","./src/apps/web/src/app/app.component.html","./src/apps/web/src/app/app.module.ts","./src/apps/web/src/app/resources.ts","./src/apps/web/src/app/routing/app-routing.module.ts","./src/apps/web/src/app/routing/app.routes.ts","./src/apps/web/src/app/routing/routes.ts","./src/apps/web/src/components/login-error/login-error.component.ts","./src/apps/web/src/components/login-error/login-error.component.html","./src/apps/web/src/components/login-error/resources.ts","./src/apps/web/src/components/page-not-found/page-not-found.component.ts","./src/apps/web/src/components/page-not-found/page-not-found.component.html","./src/apps/web/src/components/page-not-found/resources.ts","./src/apps/web/src/components/user-already-exists/resources.ts","./src/apps/web/src/components/user-already-exists/user-already-exists.component.ts","./src/apps/web/src/components/user-already-exists/user-already-exists.component.html","./src/apps/web/src/core/actions/accounts.actions.ts","./src/apps/web/src/core/actions/ams-migration.actions.ts","./src/apps/web/src/core/actions/core.actions.ts","./src/apps/web/src/core/actions/customization-view.actions.ts","./src/apps/web/src/core/actions/directories.actions.ts","./src/apps/web/src/core/actions/edge-extensions.actions.ts","./src/apps/web/src/core/actions/index.ts","./src/apps/web/src/core/actions/invitations.actions.ts","./src/apps/web/src/core/actions/notifications.actions.ts","./src/apps/web/src/core/actions/roleAssignments.actions.ts","./src/apps/web/src/core/actions/router.actions.ts","./src/apps/web/src/core/actions/side-menu.actions.ts","./src/apps/web/src/core/actions/sidebar.actions.ts","./src/apps/web/src/core/actions/user.actions.ts","./src/apps/web/src/core/core.module.ts","./src/apps/web/src/core/effects/accounts.effects.ts","./src/apps/web/src/core/effects/ams-migration.effects.ts","./src/apps/web/src/core/effects/core.effects.ts","./src/apps/web/src/core/effects/directories.effects.ts","./src/apps/web/src/core/effects/edge-extensions.effects.ts","./src/apps/web/src/core/effects/invitations.effect.ts","./src/apps/web/src/core/effects/notifications.effects.ts","./src/apps/web/src/core/effects/roleAssignments.effect.ts","./src/apps/web/src/core/effects/router.effects.ts","./src/apps/web/src/core/effects/side-menu.effect.ts","./src/apps/web/src/core/effects/user.effects.ts","./src/apps/web/src/core/effects/utils.ts","./src/apps/web/src/core/faceGatedDates.ts","./src/apps/web/src/core/guards/ams-migration-page-guard.service.ts","./src/apps/web/src/core/guards/auth-guard.service.ts","./src/apps/web/src/core/guards/network-access.guard.service.ts","./src/apps/web/src/core/guards/permission.guard.service.ts","./src/apps/web/src/core/handlers/load-chunks-error.handler.ts","./src/apps/web/src/core/high-risk-regions.ts","./src/apps/web/src/core/interfaces.ts","./src/apps/web/src/core/languages.ts","./src/apps/web/src/core/reducers/accounts.reducer.ts","./src/apps/web/src/core/reducers/ams-migration.reducer.ts","./src/apps/web/src/core/reducers/customization-view.reducer.ts","./src/apps/web/src/core/reducers/directories.reducer.ts","./src/apps/web/src/core/reducers/edge-extensions.reducer.ts","./src/apps/web/src/core/reducers/index.ts","./src/apps/web/src/core/reducers/invitations.reducer.ts","./src/apps/web/src/core/reducers/notifications/notifications-alerts.reducer.ts","./src/apps/web/src/core/reducers/notifications/notifications-banners.reducer.ts","./src/apps/web/src/core/reducers/notifications/notifications-messages.reducer.ts","./src/apps/web/src/core/reducers/notifications/notifications-view.reducer.ts","./src/apps/web/src/core/reducers/notifications/notifications.reducer.ts","./src/apps/web/src/core/reducers/roleAssignments.reducer.ts","./src/apps/web/src/core/reducers/router/index.ts","./src/apps/web/src/core/reducers/router/vi-router-serialzer.ts","./src/apps/web/src/core/reducers/side-menu.reducer.ts","./src/apps/web/src/core/reducers/sidebar.reducer.ts","./src/apps/web/src/core/reducers/user.reducer.ts","./src/apps/web/src/core/resolvers/authenticated.resolver.ts","./src/apps/web/src/core/resolvers/edge-extensions-media-metadata.resolver.ts","./src/apps/web/src/core/resolvers/media-metadata.resolver.ts","./src/apps/web/src/core/resolvers/route-select-account.resolver.ts","./src/apps/web/src/core/resolvers/route.resolver.ts","./src/apps/web/src/core/resolvers/user-metadata.resolver.ts","./src/apps/web/src/core/resources.ts","./src/apps/web/src/core/selectors/accounts.selectors.ts","./src/apps/web/src/core/selectors/ams-migration.selectors.ts","./src/apps/web/src/core/selectors/core.selectors.ts","./src/apps/web/src/core/selectors/customization-view.selectors.ts","./src/apps/web/src/core/selectors/directories.selectors.ts","./src/apps/web/src/core/selectors/edge-extensions.selectors.ts","./src/apps/web/src/core/selectors/index.ts","./src/apps/web/src/core/selectors/invitations.selectors.ts","./src/apps/web/src/core/selectors/notifications.selectors.ts","./src/apps/web/src/core/selectors/roleAssignments.selectors.ts","./src/apps/web/src/core/selectors/side-menu.selectors.ts","./src/apps/web/src/core/selectors/sidebar.selectors.ts","./src/apps/web/src/core/selectors/user.selectors.ts","./src/apps/web/src/core/services/core-store.service.ts","./src/apps/web/src/core/services/edge-extensions-api.handler.service.ts","./src/apps/web/src/core/services/edge-extensions-store.service.ts","./src/apps/web/src/core/services/face-gate-popup.service.ts","./src/apps/web/src/core/services/notifications-handler.service.ts","./src/apps/web/src/core/services/notifications-store.service.ts","./src/apps/web/src/core/services/operations.ts","./src/apps/web/src/core/services/resources.ts","./src/apps/web/src/core/services/survery.service.ts","./src/apps/web/src/core/services/user.service.ts","./src/apps/web/src/core/supportedLocaleLanguages.ts","./src/apps/web/src/core/utils/ams-migration-notifications.utils.ts","./src/apps/web/src/core/utils/notifications.utils.ts","./src/apps/web/src/customization-data/actions/brands-model.actions.ts","./src/apps/web/src/customization-data/actions/edge-supported-languages.actions.ts","./src/apps/web/src/customization-data/actions/language-id.actions.ts","./src/apps/web/src/customization-data/actions/language-model.actions.ts","./src/apps/web/src/customization-data/actions/logo-groups.actions.ts","./src/apps/web/src/customization-data/actions/people/people-page.actions.ts","./src/apps/web/src/customization-data/actions/people/unknown-person.actions.ts","./src/apps/web/src/customization-data/actions/person-model.actions.ts","./src/apps/web/src/customization-data/actions/speech/speech-datasets.actions.ts","./src/apps/web/src/customization-data/actions/speech/speech-models.actions.ts","./src/apps/web/src/customization-data/actions/speech/speech-page.actions.ts","./src/apps/web/src/customization-data/actions/supported-languages-ids.actions.ts","./src/apps/web/src/customization-data/actions/supported-languages.actions.ts","./src/apps/web/src/customization-data/customization-data.module.ts","./src/apps/web/src/customization-data/effects/brands-model.effects.ts","./src/apps/web/src/customization-data/effects/customization.effects.ts","./src/apps/web/src/customization-data/effects/edge-supported-languages.effects.ts","./src/apps/web/src/customization-data/effects/language-id.effects.ts","./src/apps/web/src/customization-data/effects/language-model.effects.ts","./src/apps/web/src/customization-data/effects/logo-groups.effects.ts","./src/apps/web/src/customization-data/effects/people/people-page.effects.ts","./src/apps/web/src/customization-data/effects/people/resources.ts","./src/apps/web/src/customization-data/effects/people/unknown-person.effects.ts","./src/apps/web/src/customization-data/effects/person-model.effects.ts","./src/apps/web/src/customization-data/effects/speech/resources.ts","./src/apps/web/src/customization-data/effects/speech/speech-datasets.effects.ts","./src/apps/web/src/customization-data/effects/speech/speech-models.effects.ts","./src/apps/web/src/customization-data/effects/speech/speech-page.effects.ts","./src/apps/web/src/customization-data/effects/supported-languages-ids.effects.ts","./src/apps/web/src/customization-data/effects/supported-languages.effects.ts","./src/apps/web/src/customization-data/interfaces.ts","./src/apps/web/src/customization-data/reducers/brands-model.reducer.ts","./src/apps/web/src/customization-data/reducers/edge-supported-languages.reducer.ts","./src/apps/web/src/customization-data/reducers/index.ts","./src/apps/web/src/customization-data/reducers/language-id.reducer.ts","./src/apps/web/src/customization-data/reducers/language-model.reducer.ts","./src/apps/web/src/customization-data/reducers/logo-groups.reducer.ts","./src/apps/web/src/customization-data/reducers/people/people-page.reducer.ts","./src/apps/web/src/customization-data/reducers/people/unknown-persons.reducer.ts","./src/apps/web/src/customization-data/reducers/person-model.reducer.ts","./src/apps/web/src/customization-data/reducers/speech/interfaces.ts","./src/apps/web/src/customization-data/reducers/speech/speech-dataset.reducer.ts","./src/apps/web/src/customization-data/reducers/speech/speech-model.reducer.ts","./src/apps/web/src/customization-data/reducers/speech/speech-page.reducer.ts","./src/apps/web/src/customization-data/reducers/speech/speech.reducer.ts","./src/apps/web/src/customization-data/reducers/supported-languages-ids.reducer.ts","./src/apps/web/src/customization-data/reducers/supported-languages.reducer.ts","./src/apps/web/src/customization-data/resources/languages-resources.ts","./src/apps/web/src/customization-data/selectors/brand.selectors.ts","./src/apps/web/src/customization-data/selectors/edge-supported-languages.selectors.ts","./src/apps/web/src/customization-data/selectors/index.ts","./src/apps/web/src/customization-data/selectors/language-id.selectors.ts","./src/apps/web/src/customization-data/selectors/language.selectors.ts","./src/apps/web/src/customization-data/selectors/logo-groups.selectors.ts","./src/apps/web/src/customization-data/selectors/people.selectors.ts","./src/apps/web/src/customization-data/selectors/people/people-page.selectors.ts","./src/apps/web/src/customization-data/selectors/people/unknown-person.selectors.ts","./src/apps/web/src/customization-data/selectors/speech/speech-datasets.selectors.ts","./src/apps/web/src/customization-data/selectors/speech/speech-models.selectors.ts","./src/apps/web/src/customization-data/selectors/speech/speech-page.selectors.ts","./src/apps/web/src/customization-data/selectors/supported-languages-ids.selectors.ts","./src/apps/web/src/customization-data/services/brands.service.ts","./src/apps/web/src/customization-data/services/customization-data-store.service.ts","./src/apps/web/src/customization-data/services/customization-data.service.ts","./src/apps/web/src/customization-data/services/customization-utils.service.ts","./src/apps/web/src/customization-data/services/fluent-list-filter-service.ts","./src/apps/web/src/customization-data/services/language-customization.service.ts","./src/apps/web/src/customization-data/services/language-id-store.service.ts","./src/apps/web/src/customization-data/services/people/people-page-store.service.ts","./src/apps/web/src/customization-data/services/people/unknown-person-store.service.ts","./src/apps/web/src/customization-data/services/people/unknown-person.service.ts","./src/apps/web/src/customization-data/services/resources.ts","./src/apps/web/src/customization-data/services/speech/resources.ts","./src/apps/web/src/customization-data/services/speech/speech-dataset-store.service.ts","./src/apps/web/src/customization-data/services/speech/speech-errors.service.ts","./src/apps/web/src/customization-data/services/speech/speech-model-store.service.ts","./src/apps/web/src/customization-data/services/speech/speech-page-store.service.ts","./src/apps/web/src/customization-data/services/supported-languages-store.service.ts","./src/apps/web/src/customization-data/utils.ts","./src/apps/web/src/customization/components/brand/actions.ts","./src/apps/web/src/customization/components/customization-people-container/interfaces.ts","./src/apps/web/src/customization/components/customization-people/interfaces.ts","./src/apps/web/src/customization/components/customization-people/services/unknown-person-notification.service.ts","./src/apps/web/src/customization/components/customization-people/unknown-people-empty-state/interfaces.ts","./src/apps/web/src/customization/components/customization-people/unknown-person/unknown-person-details-dialog/actions.ts","./src/apps/web/src/customization/components/customization-people/unknown-person/unknown-person-details-dialog/resources.ts","./src/apps/web/src/customization/components/customization-people/unknown-person/unknown-person-details-dialog/unknown-person-details-dialog.component.ts","./src/apps/web/src/customization/components/customization-people/unknown-person/unknown-person-details-dialog/unknown-person-details-dialog.component.html","./src/apps/web/src/customization/components/customization-unknown-people/interfaces.ts","./src/apps/web/src/customization/components/customization/services/resources.ts","./src/apps/web/src/customization/components/speech/speech-container/interfaces.ts","./src/apps/web/src/customization/core/data-sources/filters.ts","./src/apps/web/src/customization/interfaces.ts","./src/apps/web/src/edge/live/services/live-edge-guard.service.ts","./src/apps/web/src/gallery/components/delete-video/delete-video.component.ts","./src/apps/web/src/gallery/components/delete-video/delete-video.component.html","./src/apps/web/src/gallery/components/delete-video/resources.ts","./src/apps/web/src/gallery/core/actions/gallery-view.actions.ts","./src/apps/web/src/gallery/core/actions/gallery.actions.ts","./src/apps/web/src/gallery/core/actions/library.actions.ts","./src/apps/web/src/gallery/core/actions/projects.actions.ts","./src/apps/web/src/gallery/core/actions/samples.actions.ts","./src/apps/web/src/gallery/core/actions/search.actions.ts","./src/apps/web/src/gallery/core/models/actions.ts","./src/apps/web/src/gallery/core/models/gallery.ts","./src/apps/web/src/gallery/core/reducers/gallery-view.reducer.ts","./src/apps/web/src/gallery/core/reducers/index.ts","./src/apps/web/src/gallery/core/reducers/library.reducer.ts","./src/apps/web/src/gallery/core/reducers/projects.reducer.ts","./src/apps/web/src/gallery/core/reducers/samples.reducer.ts","./src/apps/web/src/gallery/core/reducers/search.reducer.ts","./src/apps/web/src/gallery/core/selectors/gallery-view.selectors.ts","./src/apps/web/src/gallery/core/selectors/gallery.selectors.ts","./src/apps/web/src/gallery/core/selectors/index.ts","./src/apps/web/src/gallery/core/selectors/library.selectors.ts","./src/apps/web/src/gallery/core/selectors/projects.selectors.ts","./src/apps/web/src/gallery/core/selectors/samples.selectors.ts","./src/apps/web/src/gallery/core/selectors/search.selectors.ts","./src/apps/web/src/gallery/interfaces.ts","./src/apps/web/src/gallery/resources.ts","./src/apps/web/src/gallery/services/gallery-store.service.ts","./src/apps/web/src/gallery/services/gallery.service.ts","./src/apps/web/src/gallery/services/indexing-summary-service.ts","./src/apps/web/src/gallery/utils.ts","./src/apps/web/src/grid/components/grid-cell/interfaces.ts","./src/apps/web/src/header/components/accounts-list-button/accounts-list-button.component.ts","./src/apps/web/src/header/components/accounts-list-button/accounts-list-button.component.html","./src/apps/web/src/header/components/accounts-list-button/resources.ts","./src/apps/web/src/header/components/header-strips/header-strips.component.ts","./src/apps/web/src/header/components/header-strips/header-strips.component.html","./src/apps/web/src/header/components/header/actions.ts","./src/apps/web/src/header/components/header/header.component.ts","./src/apps/web/src/header/components/header/header.component.html","./src/apps/web/src/header/components/header/interfaces.ts","./src/apps/web/src/header/components/header/resources.ts","./src/apps/web/src/header/components/user-details/resources.ts","./src/apps/web/src/header/components/user-details/user-details.component.ts","./src/apps/web/src/header/components/user-details/user-details.component.html","./src/apps/web/src/header/components/user-menu/resources.ts","./src/apps/web/src/header/components/user-menu/user-menu.component.ts","./src/apps/web/src/header/components/user-menu/user-menu.component.html","./src/apps/web/src/header/header.module.ts","./src/apps/web/src/indexing/components/re-index/interfaces.ts","./src/apps/web/src/indexing/components/re-index/re-index-dialog/actions.ts","./src/apps/web/src/indexing/components/re-index/re-index-dialog/re-index-dialog.component.ts","./src/apps/web/src/indexing/components/re-index/re-index-dialog/re-index-dialog.component.html","./src/apps/web/src/indexing/components/re-index/re-index-dialog/resources.ts","./src/apps/web/src/indexing/components/re-index/re-index-summary-page/re-index-summary-page.component.ts","./src/apps/web/src/indexing/components/re-index/re-index-summary-page/re-index-summary-page.component.html","./src/apps/web/src/indexing/components/re-index/re-index-summary-page/resources.ts","./src/apps/web/src/indexing/components/shared/actions.ts","./src/apps/web/src/indexing/components/shared/confirm-exit-indexing/actions.ts","./src/apps/web/src/indexing/components/shared/confirm-exit-indexing/confirm-exit-indexing.component.ts","./src/apps/web/src/indexing/components/shared/confirm-exit-indexing/confirm-exit-indexing.component.html","./src/apps/web/src/indexing/components/shared/confirm-exit-indexing/resources.ts","./src/apps/web/src/indexing/components/shared/file-name-input/file-name-input.component.ts","./src/apps/web/src/indexing/components/shared/file-name-input/file-name-input.component.html","./src/apps/web/src/indexing/components/shared/indexing-face-gate-strip/indexing-face-gate-strip.component.ts","./src/apps/web/src/indexing/components/shared/indexing-face-gate-strip/indexing-face-gate-strip.component.html","./src/apps/web/src/indexing/components/shared/indexing-face-gate-strip/interfaces.ts","./src/apps/web/src/indexing/components/shared/indexing-face-gate-strip/resources.ts","./src/apps/web/src/indexing/components/shared/indexing-form/actions.ts","./src/apps/web/src/indexing/components/shared/indexing-form/indexing-form.component.ts","./src/apps/web/src/indexing/components/shared/indexing-form/indexing-form.component.html","./src/apps/web/src/indexing/components/shared/indexing-form/resources.ts","./src/apps/web/src/indexing/components/shared/indexing-form/settings.ts","./src/apps/web/src/indexing/components/shared/indexing-review-page/indexing-review-page.component.ts","./src/apps/web/src/indexing/components/shared/indexing-review-page/indexing-review-page.component.html","./src/apps/web/src/indexing/components/shared/indexing-review-page/resources.ts","./src/apps/web/src/indexing/components/shared/indexing-summary-dialog/indexing-summary-dialog.component.ts","./src/apps/web/src/indexing/components/shared/indexing-summary-dialog/indexing-summary-dialog.component.html","./src/apps/web/src/indexing/components/shared/indexing-summary-dialog/interfaces.ts","./src/apps/web/src/indexing/components/shared/indexing-summary-dialog/settings.ts","./src/apps/web/src/indexing/components/shared/indexing-summary/indexing-summary.component.ts","./src/apps/web/src/indexing/components/shared/indexing-summary/indexing-summary.component.html","./src/apps/web/src/indexing/components/shared/indexing-summary/interfaces.ts","./src/apps/web/src/indexing/components/shared/indexing-summary/resources.ts","./src/apps/web/src/indexing/components/shared/settings/file-information/file-information.component.ts","./src/apps/web/src/indexing/components/shared/settings/file-information/file-information.component.html","./src/apps/web/src/indexing/components/shared/settings/file-information/resources.ts","./src/apps/web/src/indexing/components/shared/settings/file-names/file-names.component.ts","./src/apps/web/src/indexing/components/shared/settings/file-names/file-names.component.html","./src/apps/web/src/indexing/components/shared/settings/file-names/resources.ts","./src/apps/web/src/indexing/components/shared/settings/index.ts","./src/apps/web/src/indexing/components/shared/settings/indexing-language/actions.ts","./src/apps/web/src/indexing/components/shared/settings/indexing-language/indexing-language.component.ts","./src/apps/web/src/indexing/components/shared/settings/indexing-language/indexing-language.component.html","./src/apps/web/src/indexing/components/shared/settings/indexing-language/resources.ts","./src/apps/web/src/indexing/components/shared/settings/indexing-presets/actions.ts","./src/apps/web/src/indexing/components/shared/settings/indexing-presets/index.ts","./src/apps/web/src/indexing/components/shared/settings/indexing-presets/indexing-presets.component.ts","./src/apps/web/src/indexing/components/shared/settings/indexing-presets/indexing-presets.component.html","./src/apps/web/src/indexing/components/shared/settings/indexing-presets/interfaces.ts","./src/apps/web/src/indexing/components/shared/settings/indexing-presets/resources.ts","./src/apps/web/src/indexing/components/shared/settings/indexing-settings-brand-categories/actions.ts","./src/apps/web/src/indexing/components/shared/settings/indexing-settings-brand-categories/index.ts","./src/apps/web/src/indexing/components/shared/settings/indexing-settings-brand-categories/indexing-settings-brand-categories.component.ts","./src/apps/web/src/indexing/components/shared/settings/indexing-settings-brand-categories/indexing-settings-brand-categories.component.html","./src/apps/web/src/indexing/components/shared/settings/indexing-settings-brand-categories/resources.ts","./src/apps/web/src/indexing/components/shared/settings/indexing-settings-general/actions.ts","./src/apps/web/src/indexing/components/shared/settings/indexing-settings-general/indexing-settings-general.component.ts","./src/apps/web/src/indexing/components/shared/settings/indexing-settings-general/indexing-settings-general.component.html","./src/apps/web/src/indexing/components/shared/settings/indexing-settings-general/resources.ts","./src/apps/web/src/indexing/components/shared/settings/indexing-settings-logo-groups/actions.ts","./src/apps/web/src/indexing/components/shared/settings/indexing-settings-logo-groups/indexing-settings-logo-groups.component.ts","./src/apps/web/src/indexing/components/shared/settings/indexing-settings-logo-groups/indexing-settings-logo-groups.component.html","./src/apps/web/src/indexing/components/shared/settings/indexing-settings-logo-groups/resources.ts","./src/apps/web/src/indexing/components/shared/settings/interfaces.ts","./src/apps/web/src/indexing/components/shared/settings/people-models/actions.ts","./src/apps/web/src/indexing/components/shared/settings/people-models/indexing-settings-people-models.component.ts","./src/apps/web/src/indexing/components/shared/settings/people-models/indexing-settings-people-models.component.html","./src/apps/web/src/indexing/components/shared/settings/people-models/resources.ts","./src/apps/web/src/indexing/components/shared/upload-consent/resources.ts","./src/apps/web/src/indexing/components/shared/upload-consent/upload-consent.component.ts","./src/apps/web/src/indexing/components/shared/upload-consent/upload-consent.component.html","./src/apps/web/src/indexing/components/upload/interfaces.ts","./src/apps/web/src/indexing/components/upload/summary-page/interfaces.ts","./src/apps/web/src/indexing/components/upload/summary-page/resources.ts","./src/apps/web/src/indexing/components/upload/summary-page/upload-summary-page.component.ts","./src/apps/web/src/indexing/components/upload/summary-page/upload-summary-page.component.html","./src/apps/web/src/indexing/components/upload/upload-dialog/actions.ts","./src/apps/web/src/indexing/components/upload/upload-dialog/resources.ts","./src/apps/web/src/indexing/components/upload/upload-dialog/upload-dialog.component.ts","./src/apps/web/src/indexing/components/upload/upload-dialog/upload-dialog.component.html","./src/apps/web/src/indexing/components/upload/upload-guide/actions.ts","./src/apps/web/src/indexing/components/upload/upload-guide/resources.ts","./src/apps/web/src/indexing/components/upload/upload-guide/upload-guide.component.ts","./src/apps/web/src/indexing/components/upload/upload-guide/upload-guide.component.html","./src/apps/web/src/indexing/components/upload/upload-source/actions.ts","./src/apps/web/src/indexing/components/upload/upload-source/resources.ts","./src/apps/web/src/indexing/components/upload/upload-source/upload-source.component.ts","./src/apps/web/src/indexing/components/upload/upload-source/upload-source.component.html","./src/apps/web/src/indexing/core/actions/edge-upload.actions.ts","./src/apps/web/src/indexing/core/actions/index.ts","./src/apps/web/src/indexing/core/actions/indexing-form.actions.ts","./src/apps/web/src/indexing/core/actions/indexing-view.actions.ts","./src/apps/web/src/indexing/core/actions/re-index.actions.ts","./src/apps/web/src/indexing/core/actions/upload.actions.ts","./src/apps/web/src/indexing/core/effects/edge-upload.effects.ts","./src/apps/web/src/indexing/core/effects/indexing-form.effects.ts","./src/apps/web/src/indexing/core/effects/re-index.effects.ts","./src/apps/web/src/indexing/core/effects/upload.effects.ts","./src/apps/web/src/indexing/core/effects/utils/edge-indexing-utils.ts","./src/apps/web/src/indexing/core/effects/utils/indexing-error-utils.ts","./src/apps/web/src/indexing/core/effects/utils/indexing-utils.ts","./src/apps/web/src/indexing/core/reducers/index.ts","./src/apps/web/src/indexing/core/reducers/indexing-view.reducer.ts","./src/apps/web/src/indexing/core/reducers/re-index.reducer.ts","./src/apps/web/src/indexing/core/reducers/upload.reducer.ts","./src/apps/web/src/indexing/core/selectors/index.ts","./src/apps/web/src/indexing/core/selectors/indexing-form.selectors.ts","./src/apps/web/src/indexing/core/selectors/indexing-view.selectors.ts","./src/apps/web/src/indexing/core/selectors/re-index.selectors.ts","./src/apps/web/src/indexing/core/selectors/upload.selectors.ts","./src/apps/web/src/indexing/indexing.module.ts","./src/apps/web/src/indexing/interfaces.ts","./src/apps/web/src/indexing/resources.ts","./src/apps/web/src/indexing/services/azure-blob-storage.service.ts","./src/apps/web/src/indexing/services/exclude-ais-helper.service.ts","./src/apps/web/src/indexing/services/file-helper.service.ts","./src/apps/web/src/indexing/services/indexing-store.service.ts","./src/apps/web/src/indexing/services/preset-helper.service.ts","./src/apps/web/src/indexing/services/upload.service.ts","./src/apps/web/src/indexing/utils/file.ts","./src/apps/web/src/indexing/utils/languageSort.ts","./src/apps/web/src/indexing/utils/mediaFormats.ts","./src/apps/web/src/invite/components/invite/components/invited-list/actions.ts","./src/apps/web/src/invite/index.ts","./src/apps/web/src/invite/interfaces.ts","./src/apps/web/src/login/pages/login/interfaces.ts","./src/apps/web/src/login/services/login.service.ts","./src/apps/web/src/logout/services/logout.service.ts","./src/apps/web/src/main.ts","./src/apps/web/src/media-data/effects/media.effects.ts","./src/apps/web/src/media-data/media-data.module.ts","./src/apps/web/src/media-data/services/media-store.service.ts","./src/apps/web/src/media/services/media.service.ts","./src/apps/web/src/media/services/resources.ts","./src/apps/web/src/runtime.ts","./src/apps/web/src/settings/components/account-settings/actions.ts","./src/apps/web/src/settings/components/delete-account/actions.ts","./src/apps/web/src/settings/components/delete-account/delete-account.component.ts","./src/apps/web/src/settings/components/delete-account/delete-account.component.html","./src/apps/web/src/settings/components/delete-account/interfaces.ts","./src/apps/web/src/settings/components/delete-account/resources.ts","./src/apps/web/src/settings/components/trial-account-settings-details/actions.ts","./src/apps/web/src/settings/pages/settings/resources.ts","./src/apps/web/src/settings/services/settings.service.ts","./src/apps/web/src/shell/components/account-unavailable-dialog/account-unavailable-dialog.component.ts","./src/apps/web/src/shell/components/account-unavailable-dialog/account-unavailable-dialog.component.html","./src/apps/web/src/shell/components/account-unavailable-dialog/resources.ts","./src/apps/web/src/shell/components/customization-sub-menu/customization-sub-menu.component.ts","./src/apps/web/src/shell/components/customization-sub-menu/customization-sub-menu.component.html","./src/apps/web/src/shell/components/customization-sub-menu/resources.ts","./src/apps/web/src/shell/components/edge-extensions-sub-menu/edge-extensions-sub-menu.component.ts","./src/apps/web/src/shell/components/edge-extensions-sub-menu/edge-extensions-sub-menu.component.html","./src/apps/web/src/shell/components/edge-extensions-sub-menu/resources.ts","./src/apps/web/src/shell/components/main-sidebar/actions.ts","./src/apps/web/src/shell/components/main-sidebar/main-sidebar.component.ts","./src/apps/web/src/shell/components/main-sidebar/main-sidebar.component.html","./src/apps/web/src/shell/components/main-sidebar/resources.ts","./src/apps/web/src/shell/components/side-menu/resources.ts","./src/apps/web/src/shell/components/side-menu/side-menu.component.ts","./src/apps/web/src/shell/components/side-menu/side-menu.component.html","./src/apps/web/src/shell/components/side-sub-menu/side-sub-menu.component.ts","./src/apps/web/src/shell/components/side-sub-menu/side-sub-menu.component.html","./src/apps/web/src/shell/connect-to-azure/components/create-new-account/create-new-account.component.ts","./src/apps/web/src/shell/connect-to-azure/components/create-new-account/create-new-account.component.html","./src/apps/web/src/shell/interfaces.ts","./src/apps/web/src/shell/services/face-gate-strip.service.ts","./src/apps/web/src/shell/shell.module.ts","./src/apps/web/src/sidebar/components/accounts-list/accounts-list.component.ts","./src/apps/web/src/sidebar/components/accounts-list/accounts-list.component.html","./src/apps/web/src/sidebar/components/accounts-list/resources.ts","./src/apps/web/src/sidebar/components/help/actions.ts","./src/apps/web/src/sidebar/components/help/help.component.ts","./src/apps/web/src/sidebar/components/help/help.component.html","./src/apps/web/src/sidebar/components/help/interfaces.ts","./src/apps/web/src/sidebar/components/help/resources.ts","./src/apps/web/src/sidebar/components/notification-card/notification-card.component.ts","./src/apps/web/src/sidebar/components/notification-card/notification-card.component.html","./src/apps/web/src/sidebar/components/notifications-panel/notifications-panel.component.ts","./src/apps/web/src/sidebar/components/notifications-panel/notifications-panel.component.html","./src/apps/web/src/sidebar/components/notifications-panel/resources.ts","./src/apps/web/src/sidebar/components/user-settings/actions.ts","./src/apps/web/src/sidebar/components/user-settings/resources.ts","./src/apps/web/src/sidebar/components/user-settings/theme-option/rect-elements.ts","./src/apps/web/src/sidebar/components/user-settings/theme-option/theme-option.component.ts","./src/apps/web/src/sidebar/components/user-settings/theme-option/theme-option.component.html","./src/apps/web/src/sidebar/components/user-settings/user-settings.component.ts","./src/apps/web/src/sidebar/components/user-settings/user-settings.component.html","./src/apps/web/src/sidebar/interfaces.ts","./src/apps/web/src/sidebar/pages/sidebar-container/actions.ts","./src/apps/web/src/sidebar/pages/sidebar-container/animations.ts","./src/apps/web/src/sidebar/pages/sidebar-container/resources.ts","./src/apps/web/src/sidebar/pages/sidebar-container/sidebar-container.component.ts","./src/apps/web/src/sidebar/pages/sidebar-container/sidebar-container.component.html","./src/apps/web/src/sidebar/sidebar.module.ts","./src/common/modules/accessibility/accessibility-cdk-focus-trap.directive.ts","./src/common/modules/accessibility/accessibility-mode-handler.service.ts","./src/common/modules/accessibility/accessibility-tooltip.directive.ts","./src/common/modules/accessibility/accessibility-utils.service.ts","./src/common/modules/accessibility/accessibility.module.ts","./src/common/modules/accessibility/accessible-click.directive.ts","./src/common/modules/accessibility/accessible-focus-area/accessible-focus-area.component.ts","./src/common/modules/accessibility/announcer.directive.ts","./src/common/modules/accessibility/content-on-hover-handler.directive.ts","./src/common/modules/accessibility/focus-manager.service.ts","./src/common/modules/accessibility/focusable/focusable.component.ts","./src/common/modules/accessibility/focusable/focusable.component.html","./src/common/modules/accessibility/sub-menu-handler.directive.ts","./src/common/modules/api/api.module.ts","./src/common/modules/api/classes/account-api.class.ts","./src/common/modules/api/classes/ams-migration-api.class.ts","./src/common/modules/api/classes/arm-account-api.class.ts","./src/common/modules/api/classes/customization/brands-models-api.class.ts","./src/common/modules/api/classes/customization/customization-api.class.ts","./src/common/modules/api/classes/customization/faces-api.class.ts","./src/common/modules/api/classes/customization/language-models-api.ts","./src/common/modules/api/classes/customization/logo-groups-api.class.ts","./src/common/modules/api/classes/customization/people-api.class.ts","./src/common/modules/api/classes/customization/people-models-api.class.ts","./src/common/modules/api/classes/customization/speech-api.class.ts","./src/common/modules/api/classes/customization/unknown-person-api.class.ts","./src/common/modules/api/classes/edge-extensions-api.class.ts","./src/common/modules/api/classes/notifications-api.class.ts","./src/common/modules/api/classes/project-api.class.ts","./src/common/modules/api/classes/supported-languages-api.class.ts","./src/common/modules/api/classes/user-api.class.ts","./src/common/modules/api/classes/video-api.class.ts","./src/common/modules/api/interceptors/api.interceptor.ts","./src/common/modules/api/interceptors/frontdoor.interceptor.ts","./src/common/modules/api/interceptors/global.http.interceptor.ts","./src/common/modules/api/interfaces.ts","./src/common/modules/api/services/api.service.ts","./src/common/modules/api/services/locations-us.ts","./src/common/modules/api/utils/api-utils.ts","./src/common/modules/api/utils/custom-url-encoding-codec.ts","./src/common/modules/api/utils/request.function.ts","./src/common/modules/auth/auth.module.ts","./src/common/modules/auth/authenticationContext.ts","./src/common/modules/auth/interceptors/access-token.interceptor.ts","./src/common/modules/auth/interceptors/auth-session.interceptor.ts","./src/common/modules/auth/interfaces.ts","./src/common/modules/auth/services/access-token.service.ts","./src/common/modules/auth/services/auth-session.service.ts","./src/common/modules/auth/services/auth.service.ts","./src/common/modules/auth/services/cache.service.ts","./src/common/modules/auth/utils/auth.utils.ts","./src/common/modules/core/common.core.module.ts","./src/common/modules/core/ensureModuleLoadedOnceGuard.ts","./src/common/modules/core/interfaces.ts","./src/common/modules/core/services/app/app-navigation.service.ts","./src/common/modules/core/services/cache-storage/cache-storage.service.ts","./src/common/modules/core/services/config/config.service.ts","./src/common/modules/core/services/error/error-handler.service.ts","./src/common/modules/core/services/feature-switch/feature-switch.service.ts","./src/common/modules/core/services/interfaces.ts","./src/common/modules/core/services/lazy-load/lazy-load.service.ts","./src/common/modules/core/services/logger/logger.service.ts","./src/common/modules/core/services/monitoring-error-handler/monitoring-error-handler.service.ts","./src/common/modules/core/services/page-timing/index.ts","./src/common/modules/core/services/page-timing/plugins/base.ts","./src/common/modules/core/services/page-timing/plugins/index.ts","./src/common/modules/core/services/page-timing/plugins/navigation/index.ts","./src/common/modules/core/services/page-timing/plugins/paint/index.ts","./src/common/modules/core/services/page-timing/plugins/resource/index.ts","./src/common/modules/core/services/page-timing/service/page-timing.service.ts","./src/common/modules/core/services/page-timing/utils/index.ts","./src/common/modules/core/services/sanitizer/sanitizer.service.ts","./src/common/modules/core/services/themes/themes.service.ts","./src/common/modules/core/services/toast/errors.ts","./src/common/modules/core/services/toast/interfaces.ts","./src/common/modules/core/services/toast/notifications.ts","./src/common/modules/core/services/toast/resources.ts","./src/common/modules/core/services/toast/toast.service.ts","./src/common/modules/core/services/track/1DSClient/config.ts","./src/common/modules/core/services/track/1DSClient/index.ts","./src/common/modules/core/services/track/1DSClient/interfaces.ts","./src/common/modules/core/services/track/common-tracking-data.service.ts","./src/common/modules/core/services/track/index.ts","./src/common/modules/core/services/track/interfaces.ts","./src/common/modules/core/services/track/track.service.ts","./src/common/modules/core/services/url/url.service.ts","./src/common/modules/core/services/vi-main-sidebar/vi-sidebar.service.ts","./src/common/modules/core/services/window.token.ts","./src/common/modules/core/services/zone-wrapper/zone-wrapper.service.ts","./src/common/modules/editor/interfaces.ts","./src/common/modules/insights-common/communication.service.ts","./src/common/modules/insights-common/insights-common-data.service.ts","./src/common/modules/insights-common/insights-common-utils.service.ts","./src/common/modules/insights-common/insights-common.module.ts","./src/common/modules/insights-common/insights-common.service.ts","./src/common/modules/insights-common/interfaces.ts","./src/common/modules/insights-common/resources.ts","./src/common/modules/insights/components/capsule-input/capsule-input.component.ts","./src/common/modules/insights/components/capsule-input/capsule-input.component.html","./src/common/modules/insights/components/capsule-input/interfaces.ts","./src/common/modules/insights/components/capsule-input/resources.ts","./src/common/modules/insights/components/detected-objects/interfaces.ts","./src/common/modules/insights/components/emotions-map/emotions-map.component.ts","./src/common/modules/insights/components/emotions-map/emotions-map.component.html","./src/common/modules/insights/components/faces/interfaces.ts","./src/common/modules/insights/components/insights-content-list/insights-content-list.component.ts","./src/common/modules/insights/components/insights-content-list/insights-content-list.component.html","./src/common/modules/insights/components/insights-content-list/resources.ts","./src/common/modules/insights/components/keyframe/keyframe.component.ts","./src/common/modules/insights/components/keyframe/keyframe.component.html","./src/common/modules/insights/components/keyframe/resources.ts","./src/common/modules/insights/interfaces.ts","./src/common/modules/insights/presetInsights.ts","./src/common/modules/insights/services/insights.service.ts","./src/common/modules/media-data-common/actions/media.actions.ts","./src/common/modules/media-data-common/classes/detected-objects-store.ts","./src/common/modules/media-data-common/effects/media-common.effects.ts","./src/common/modules/media-data-common/media-data.common.module.ts","./src/common/modules/media-data-common/reducers/media.reducer.ts","./src/common/modules/media-data-common/resources.ts","./src/common/modules/media-data-common/selectors/media.selectors.ts","./src/common/modules/media-data-common/services/media-common-store.service.ts","./src/common/modules/media-data-common/services/media-common.service.ts","./src/common/modules/notifications/notifications.module.ts","./src/common/modules/notifications/services/notifications.service.ts","./src/common/modules/player/components/player/Plugins/body-tracking/interfaces.ts","./src/common/modules/shared/actions.ts","./src/common/modules/shared/arm.ts","./src/common/modules/shared/components/action-button/action-button.component.ts","./src/common/modules/shared/components/action-button/action-button.component.html","./src/common/modules/shared/components/action-button/interfaces.ts","./src/common/modules/shared/components/action-button/resources.ts","./src/common/modules/shared/components/action-link/action-link.component.ts","./src/common/modules/shared/components/action-link/action-link.component.html","./src/common/modules/shared/components/actionable-input/actionable-input.component.ts","./src/common/modules/shared/components/actionable-input/actionable-input.component.html","./src/common/modules/shared/components/actionable-input/resources.ts","./src/common/modules/shared/components/actions-menu/actions-menu.component.ts","./src/common/modules/shared/components/actions-menu/actions-menu.component.html","./src/common/modules/shared/components/alert-message/alert-message.component.ts","./src/common/modules/shared/components/alert-message/alert-message.component.html","./src/common/modules/shared/components/alert-message/interfaces.ts","./src/common/modules/shared/components/check-box-action-menu/check-box-action-menu.component.ts","./src/common/modules/shared/components/check-box-action-menu/check-box-action-menu.component.html","./src/common/modules/shared/components/check-box-action-menu/interfaces.ts","./src/common/modules/shared/components/check-box-action-menu/resources.ts","./src/common/modules/shared/components/checkbox-with-label/checkbox-with-label.component.ts","./src/common/modules/shared/components/checkbox-with-label/checkbox-with-label.component.html","./src/common/modules/shared/components/checkbox-with-label/interfaces.ts","./src/common/modules/shared/components/description/description.component.ts","./src/common/modules/shared/components/description/description.component.html","./src/common/modules/shared/components/description/resources.ts","./src/common/modules/shared/components/dialog/actions.ts","./src/common/modules/shared/components/dialog/dialog.component.ts","./src/common/modules/shared/components/dialog/dialog.component.html","./src/common/modules/shared/components/dialog/dialog.service.ts","./src/common/modules/shared/components/dialog/resources.ts","./src/common/modules/shared/components/download-menu/actions.ts","./src/common/modules/shared/components/download-menu/components/download-closed-captions/actions.ts","./src/common/modules/shared/components/download-menu/components/download-closed-captions/download-closed-captions.component.ts","./src/common/modules/shared/components/download-menu/components/download-closed-captions/download-closed-captions.component.html","./src/common/modules/shared/components/download-menu/components/download-closed-captions/resources.ts","./src/common/modules/shared/components/download-menu/download-menu.component.ts","./src/common/modules/shared/components/download-menu/download-menu.component.html","./src/common/modules/shared/components/download-menu/download-service.service.ts","./src/common/modules/shared/components/download-menu/interfaces.ts","./src/common/modules/shared/components/download-menu/resources.ts","./src/common/modules/shared/components/dynamic-tooltip/dynamic-tooltip.component.ts","./src/common/modules/shared/components/dynamic-tooltip/dynamic-tooltip.component.html","./src/common/modules/shared/components/empty-state/empty-state.component.ts","./src/common/modules/shared/components/empty-state/empty-state.component.html","./src/common/modules/shared/components/expanded-item/expanded-item.component.ts","./src/common/modules/shared/components/expanded-item/expanded-item.component.html","./src/common/modules/shared/components/filter-button/filter-button.component.ts","./src/common/modules/shared/components/filter-button/filter-button.component.html","./src/common/modules/shared/components/filter-item/filter-item.component.ts","./src/common/modules/shared/components/filter-item/filter-item.component.html","./src/common/modules/shared/components/filter-item/interfaces.ts","./src/common/modules/shared/components/filter-item/resources.ts","./src/common/modules/shared/components/fluent-ui-select/fluent-ui-select.component.ts","./src/common/modules/shared/components/fluent-ui-select/fluent-ui-select.component.html","./src/common/modules/shared/components/fluent-ui-select/index.ts","./src/common/modules/shared/components/fluent-ui-select/interfaces.ts","./src/common/modules/shared/components/fluent-ui-select/styles.ts","./src/common/modules/shared/components/footer/embed-footer.component.ts","./src/common/modules/shared/components/footer/embed-footer.component.html","./src/common/modules/shared/components/footer/resources.ts","./src/common/modules/shared/components/insights-images/insights-images.component.ts","./src/common/modules/shared/components/insights-images/insights-images.component.html","./src/common/modules/shared/components/insights-images/insights-images.service.ts","./src/common/modules/shared/components/insights-images/interfaces.ts","./src/common/modules/shared/components/insights-images/resources.ts","./src/common/modules/shared/components/internal-face-gate-form/actions.ts","./src/common/modules/shared/components/internal-face-gate-form/internal-face-gate-form.component.ts","./src/common/modules/shared/components/internal-face-gate-form/internal-face-gate-form.component.html","./src/common/modules/shared/components/internal-face-gate-form/resources.ts","./src/common/modules/shared/components/notification-tooltip/notification-tooltip.component.ts","./src/common/modules/shared/components/notification-tooltip/notification-tooltip.component.html","./src/common/modules/shared/components/notification-tooltip/resources.ts","./src/common/modules/shared/components/persona/persona.component.ts","./src/common/modules/shared/components/persona/persona.component.html","./src/common/modules/shared/components/presets/presets.component.ts","./src/common/modules/shared/components/presets/presets.component.html","./src/common/modules/shared/components/presets/resources.ts","./src/common/modules/shared/components/role-based-view-control-wrapper/interfaces.ts","./src/common/modules/shared/components/role-based-view-control-wrapper/role-based-view-control-wrapper.component.ts","./src/common/modules/shared/components/searchbar/resources.ts","./src/common/modules/shared/components/searchbar/searchbar.component.ts","./src/common/modules/shared/components/searchbar/searchbar.component.html","./src/common/modules/shared/components/searchbar/services/searchbar.service.ts","./src/common/modules/shared/components/sort-menu/actions.ts","./src/common/modules/shared/components/sort-menu/index.ts","./src/common/modules/shared/components/sort-menu/interfaces.ts","./src/common/modules/shared/components/sort-menu/resources.ts","./src/common/modules/shared/components/sort-menu/sort-menu.component.ts","./src/common/modules/shared/components/sort-menu/sort-menu.component.html","./src/common/modules/shared/components/spinner/resources.ts","./src/common/modules/shared/components/spinner/spinner.component.ts","./src/common/modules/shared/components/spinner/spinner.component.html","./src/common/modules/shared/components/strip/interfaces.ts","./src/common/modules/shared/components/strip/resources.ts","./src/common/modules/shared/components/strip/strip.component.ts","./src/common/modules/shared/components/strip/strip.component.html","./src/common/modules/shared/components/strip/strip.service.ts","./src/common/modules/shared/components/tablist/resources.ts","./src/common/modules/shared/components/tablist/tablist.component.ts","./src/common/modules/shared/components/tablist/tablist.component.html","./src/common/modules/shared/directives/debounce.directive.ts","./src/common/modules/shared/directives/dynamic-tooltip.directive.ts","./src/common/modules/shared/directives/element-resize.directive.ts","./src/common/modules/shared/directives/highlight.directive.ts","./src/common/modules/shared/directives/image-fallback.directive.ts","./src/common/modules/shared/directives/image-icon-fallback.directive.ts","./src/common/modules/shared/directives/show-if-amsless.directive.ts","./src/common/modules/shared/directives/show-if-edge.directive.ts","./src/common/modules/shared/directives/show-if-has-edge-extensions.directive.ts","./src/common/modules/shared/directives/stop-propagation.directive.ts","./src/common/modules/shared/directives/text-read-more.directive.ts","./src/common/modules/shared/environments.ts","./src/common/modules/shared/interfaces.ts","./src/common/modules/shared/links.ts","./src/common/modules/shared/pipes/image.pipe.ts","./src/common/modules/shared/pipes/json-prettify/json-prettify.pipe.ts","./src/common/modules/shared/pipes/numeric-prefix-title.pipe.ts","./src/common/modules/shared/pipes/title.pipe.ts","./src/common/modules/shared/services/data.service.ts","./src/common/modules/shared/services/local-storage.service.ts","./src/common/modules/shared/services/permission.service.ts","./src/common/modules/shared/services/session-handler.service.ts","./src/common/modules/shared/services/session-storage.service.ts","./src/common/modules/shared/services/storage.service.ts","./src/common/modules/shared/services/utils.service.ts","./src/common/modules/shared/services/videoSearchActions.ts","./src/common/modules/shared/shared.module.ts","./src/common/modules/shared/svg-shapes.ts","./src/common/modules/timeline/interfaces.ts","./src/common/modules/timeline/pipes/bold.pipe.ts","./src/common/modules/timeline/pipes/highlight.pipe.ts","./src/common/modules/translation/services/missing-translate-handler.service.ts","./src/common/modules/translation/services/translate-helper.service.ts","./src/common/modules/translation/translation.module.ts","./src/common/modules/translation/variables.ts","./src/common/modules/utils/browserDetect.ts","./src/common/modules/utils/cookie.ts","./src/common/modules/utils/event.ts","./src/common/modules/utils/object.ts","./src/common/modules/utils/regexes.ts","./src/common/modules/utils/string.ts","./src/common/modules/utils/time.ts","./src/environments/environment.ts","./src/libs/vi-ui/src/lib/components/accordion-item/accordion-item.component.ts","./src/libs/vi-ui/src/lib/components/accordion-item/accordion-item.component.html","./src/libs/vi-ui/src/lib/components/accordion-item/index.ts","./src/libs/vi-ui/src/lib/components/accordion-item/interfaces.ts","./src/libs/vi-ui/src/lib/components/accordion/accordion.component.ts","./src/libs/vi-ui/src/lib/components/accordion/accordion.component.html","./src/libs/vi-ui/src/lib/components/accordion/index.ts","./src/libs/vi-ui/src/lib/components/accordion/interfaces.ts","./src/libs/vi-ui/src/lib/components/alert-message/alert-message.component.ts","./src/libs/vi-ui/src/lib/components/alert-message/alert-message.component.html","./src/libs/vi-ui/src/lib/components/alert-message/index.ts","./src/libs/vi-ui/src/lib/components/badge/badge.component.ts","./src/libs/vi-ui/src/lib/components/badge/badge.component.html","./src/libs/vi-ui/src/lib/components/badge/index.ts","./src/libs/vi-ui/src/lib/components/badge/interface.ts","./src/libs/vi-ui/src/lib/components/checkbox/checkbox.component.ts","./src/libs/vi-ui/src/lib/components/checkbox/checkbox.component.html","./src/libs/vi-ui/src/lib/components/checkbox/index.ts","./src/libs/vi-ui/src/lib/components/checkbox/interfaces.ts","./src/libs/vi-ui/src/lib/components/focusable/focusable.component.ts","./src/libs/vi-ui/src/lib/components/focusable/focusable.component.html","./src/libs/vi-ui/src/lib/components/focusable/index.ts","./src/libs/vi-ui/src/lib/components/index.ts","./src/libs/vi-ui/src/lib/components/input/index.ts","./src/libs/vi-ui/src/lib/components/input/input.component.ts","./src/libs/vi-ui/src/lib/components/input/input.component.html","./src/libs/vi-ui/src/lib/components/input/intefaces.ts","./src/libs/vi-ui/src/lib/components/label/index.ts","./src/libs/vi-ui/src/lib/components/label/label.component.ts","./src/libs/vi-ui/src/lib/components/label/label.component.html","./src/libs/vi-ui/src/lib/components/link/index.ts","./src/libs/vi-ui/src/lib/components/link/link.component.ts","./src/libs/vi-ui/src/lib/components/link/link.component.html","./src/libs/vi-ui/src/lib/components/nav-bar/index.ts","./src/libs/vi-ui/src/lib/components/nav-bar/interfaces.ts","./src/libs/vi-ui/src/lib/components/nav-bar/nav-bar.component.ts","./src/libs/vi-ui/src/lib/components/nav-bar/nav-bar.component.html","./src/libs/vi-ui/src/lib/components/progress-bar/index.ts","./src/libs/vi-ui/src/lib/components/progress-bar/interfaces.ts","./src/libs/vi-ui/src/lib/components/progress-bar/progress-bar.component.ts","./src/libs/vi-ui/src/lib/components/progress-bar/progress-bar.component.html","./src/libs/vi-ui/src/lib/components/rounded-checkbox/index.ts","./src/libs/vi-ui/src/lib/components/rounded-checkbox/rounded-checkbox.component.ts","./src/libs/vi-ui/src/lib/components/rounded-checkbox/rounded-checkbox.component.html","./src/libs/vi-ui/src/lib/components/shimmer/index.ts","./src/libs/vi-ui/src/lib/components/shimmer/interfaces.ts","./src/libs/vi-ui/src/lib/components/shimmer/shimmer.component.ts","./src/libs/vi-ui/src/lib/components/shimmer/shimmer.component.html","./src/libs/vi-ui/src/lib/components/switch/index.ts","./src/libs/vi-ui/src/lib/components/switch/switch.component.ts","./src/libs/vi-ui/src/lib/components/switch/switch.component.html","./src/libs/vi-ui/src/lib/components/table/index.ts","./src/libs/vi-ui/src/lib/components/table/interfaces.ts","./src/libs/vi-ui/src/lib/components/table/table.component.ts","./src/libs/vi-ui/src/lib/components/table/table.component.html","./src/libs/vi-ui/src/lib/components/table/vs-for-table/fixed-size-table-virtual-scroll-strategy.ts","./src/libs/vi-ui/src/lib/components/table/vs-for-table/table-data-source.ts","./src/libs/vi-ui/src/lib/components/table/vs-for-table/table-item-size.directive.ts","./src/libs/vi-ui/src/lib/components/tag-container/index.ts","./src/libs/vi-ui/src/lib/components/tag-container/interfaces.ts","./src/libs/vi-ui/src/lib/components/tag-container/tag-container.component.ts","./src/libs/vi-ui/src/lib/components/tag-container/tag-container.component.html","./src/libs/vi-ui/src/lib/components/tag/index.ts","./src/libs/vi-ui/src/lib/components/tag/tag.component.ts","./src/libs/vi-ui/src/lib/components/tag/tag.component.html","./src/libs/vi-ui/src/lib/components/text/index.ts","./src/libs/vi-ui/src/lib/components/text/text.component.ts","./src/libs/vi-ui/src/lib/components/text/text.component.html","./src/libs/vi-ui/src/lib/components/textarea/index.ts","./src/libs/vi-ui/src/lib/components/textarea/textarea.component.ts","./src/libs/vi-ui/src/lib/components/textarea/textarea.component.html","./src/libs/vi-ui/src/lib/directives/accessible-click.directive.ts","./src/libs/vi-ui/src/lib/directives/debounce.directive.ts","./src/libs/vi-ui/src/lib/directives/index.ts","./src/libs/vi-ui/src/lib/services/accessibility-mode-handler.service.ts","./src/libs/vi-ui/src/lib/services/index.ts","./src/libs/vi-ui/src/lib/utils/dom/utils.dom.ts","./src/libs/vi-ui/src/lib/utils/index.ts","./src/libs/vi-ui/src/lib/utils/string/utils.string.ts","./src/libs/vi-ui/src/lib/vi-ui.module.ts","./src/libs/vi-ui/src/public-api.ts"],"sourcesContent":["import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\n\nimport { Store } from '@ngrx/store';\n\nimport { Observable, Subject } from 'rxjs';\nimport { combineLatestWith, take, takeUntil } from 'rxjs/operators';\n\nimport { ToastContainerDirective, ToastrService } from 'ngx-toastr';\n\nimport { LoggerService } from '@common/modules/core/services/logger/logger.service';\nimport { AppNavigationService } from '@common/modules/core/services/app/app-navigation.service';\nimport { FeatureSwitch, NavigationState, SideMenuOption, SideSubMenuType } from '@common/modules/core/services/interfaces';\nimport { DialogComponent } from '@common/modules/shared/components/dialog/dialog.component';\nimport { IDialogButton, IDialogData } from '@common/modules/shared/components/dialog/interfaces';\nimport { IAction } from '@common/modules/shared/interfaces';\nimport { FocusManagerService } from '@common/modules/accessibility/focus-manager.service';\nimport { AuthService } from '@common/modules/auth/services/auth.service';\nimport { UtilsService } from '@common/modules/shared/services/utils.service';\nimport { ThemesService } from '@common/modules/core/services/themes/themes.service';\nimport { ActionButtonType } from '@common/modules/shared/components/action-button/interfaces';\nimport { PageTimingService } from '@common/modules/core/services/page-timing/service/page-timing.service';\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\nimport { FeatureSwitchService } from '@common/modules/core/services/feature-switch/feature-switch.service';\n\n// eslint-disable-next-line max-len\nimport { CoreStoreService } from '../core/services/core-store.service';\nimport { resources } from './resources';\nimport * as fromRouter from '../core/reducers/router';\nimport { HeaderPreset } from '../header/components/header/interfaces';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['./app.component.scss']\n})\nexport class AppComponent implements OnInit, OnDestroy {\n @ViewChild(ToastContainerDirective, { static: true }) toastContainer: ToastContainerDirective;\n public progressBarColor = 'var(--highlight)';\n public ready = false;\n public resources = resources;\n public isUploadShow = false;\n public isAuthenticated = false;\n public isSideMenuOpened = false;\n public isSubMenuOpened = false;\n public subMenuType: SideSubMenuType;\n public sideMenuEnabled = false;\n public stripShow = false;\n public isMobile = false;\n public userDetailsError: Observable;\n public isZeroAccounts$: Observable;\n public isNewUploadExperienceEnabled = false;\n public headerPreset: HeaderPreset = HeaderPreset.FULL;\n public showSideMenu: boolean = true;\n\n public readonly HeaderPreset = HeaderPreset;\n public readonly MAIN_ROLE = 'main';\n public readonly NO_ROLE = 'none';\n\n private dialogRef;\n private destroy$ = new Subject();\n\n constructor(\n private readonly routerStore: Store,\n private logger: LoggerService,\n private cdr: ChangeDetectorRef,\n private translate: TranslateHelperService,\n private navigationService: AppNavigationService,\n private coreStore: CoreStoreService,\n private focusManager: FocusManagerService,\n private dialog: MatDialog,\n private authService: AuthService,\n private utilsService: UtilsService,\n private themesService: ThemesService,\n private pageTiming: PageTimingService,\n private featureSwitchService: FeatureSwitchService,\n private toastrService: ToastrService\n ) {}\n\n public get subMenuTypeClass() {\n return `${this.subMenuType?.toLocaleLowerCase()}-sub-menu`;\n }\n\n public ngOnInit() {\n this.toastrService.overlayContainer = this.toastContainer;\n this.pageTiming.init();\n this.themesService.initThemes();\n this.isMobile = this.utilsService.isMobile();\n this.isNewUploadExperienceEnabled = this.featureSwitchService.featureSwitch(FeatureSwitch.NewUploadExperience);\n this.authService\n .isUserAuthenticated()\n .pipe(takeUntil(this.destroy$))\n .subscribe((isUserAuthenticated: boolean) => {\n this.isAuthenticated = isUserAuthenticated;\n this.cdr.detectChanges();\n });\n\n this.routerStore\n .select(fromRouter.getRouterState)\n .pipe(takeUntil(this.destroy$))\n .subscribe(routerState => {\n this.showSideMenu = routerState?.state?.data?.showHeaderButtons !== false;\n this.headerPreset = routerState?.state?.data?.showHeaderButtons !== false ? HeaderPreset.FULL : HeaderPreset.LEAN;\n });\n\n this.ready = !this.authService.isAuthenticated();\n this.userDetailsError = this.coreStore.userDetailsError$.pipe(takeUntil(this.destroy$));\n this.isZeroAccounts$ = this.coreStore.isZeroAccounts$.pipe(takeUntil(this.destroy$));\n this.coreStore.coreMetadataLoaded$.pipe(take(2)).subscribe(isLoaded => {\n if (isLoaded) {\n this.addListeners();\n this.isAuthenticated = this.authService.isAuthenticated();\n this.ready = true;\n }\n });\n\n this.coreStore\n .selectSideMenuSelectedOption()\n .pipe(combineLatestWith(this.coreStore.isExtensionsSubMenuOpened$))\n .subscribe(([sideMenuOption, isExtensionsSubMenuOpened]) => {\n const isCustomizationSubMenuOpened = sideMenuOption === SideMenuOption.Customizations;\n this.isSubMenuOpened = isExtensionsSubMenuOpened || isCustomizationSubMenuOpened;\n this.subMenuType = isExtensionsSubMenuOpened ? SideSubMenuType.Extensions : SideSubMenuType.Customizations;\n });\n\n this.coreStore.selectSideMenuOpen().subscribe(isOpen => {\n this.isSideMenuOpened = isOpen;\n this.cdr.detectChanges();\n this.logger.log('[AppComponent] sideMenuEnabled open:', this.isSideMenuOpened);\n });\n\n this.setTranslations();\n }\n\n public ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n public addListeners() {\n // Open connect to azure window\n this.navigationService.createAccountSubject.subscribe((options: NavigationState) => {\n if (options && options === NavigationState.OPEN) {\n this.openConnectToAzure();\n }\n });\n }\n\n public handleShowAbout() {\n this.openAbout();\n }\n\n public async openConnectToAzure() {\n const emptyPrimary: IAction = Object.create(null);\n\n const primaryButton: IDialogButton = {\n type: ActionButtonType.PRIMARY,\n action: emptyPrimary\n };\n\n const onCloseCallBack = (): void => {\n this.focusManager.focusByQuery(`#connectToAzureButton`, this.cdr);\n };\n\n const { CreateArmAccountDialogComponent } = await import(\n '../shell/connect-to-azure/components/create-arm-account-dialog/create-arm-account-dialog.component'\n );\n\n const dialogData: IDialogData = {\n class: 'connect-to-azure-dialog',\n component: CreateArmAccountDialogComponent\n };\n\n this.openDialog(dialogData, '580px', '', 'create-arm-account-container', '95vh', onCloseCallBack);\n }\n\n private setTranslations(): void {\n this.translate.translateResourcesInstant(resources);\n this.cdr.detectChanges();\n }\n\n private async openAbout() {\n // lazy load about components\n const { AboutPageComponent, AboutHeaderComponent } = await import('../about');\n\n const aboutDialogData: IDialogData = {\n class: 'about-dialog',\n component: AboutPageComponent,\n headerComponent: AboutHeaderComponent\n };\n this.openDialog(aboutDialogData, '818px', '', 'about-dialog-container');\n }\n\n private openDialog(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n dialogData: IDialogData,\n width: string,\n height?: string,\n panelClass?: string,\n maxHeight?: string,\n onCloseCallBack?: () => void\n ) {\n this.dialogRef = this.dialog.open(DialogComponent, {\n width: width,\n height: height,\n maxHeight: maxHeight,\n data: dialogData,\n disableClose: false,\n ariaLabel: dialogData.title,\n panelClass: panelClass\n });\n\n if (onCloseCallBack) {\n this.dialogRef.afterClosed().subscribe(() => {\n onCloseCallBack();\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","// Angular imports\nimport { CommonModule } from '@angular/common';\nimport { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\nimport { BrowserModule } from '@angular/platform-browser';\n\n// Modules\nimport { ToastContainerModule, ToastrModule } from 'ngx-toastr';\n\nimport { SharedModule } from '@common/modules/shared/shared.module';\n\n// Components\nimport { AppComponent } from './app.component';\nimport { AppRoutingModule } from './routing/app-routing.module';\nimport { LoginErrorComponent } from '../components/login-error/login-error.component';\nimport { PageNotFoundComponent } from '../components/page-not-found/page-not-found.component';\nimport { UserAlreadyExistsComponent } from '../components/user-already-exists/user-already-exists.component';\nimport { CoreModule } from '../core/core.module';\n\n@NgModule({\n declarations: [AppComponent, PageNotFoundComponent, LoginErrorComponent, UserAlreadyExistsComponent],\n imports: [\n CommonModule,\n ToastrModule.forRoot({ positionClass: 'inline', maxOpened: 6 }),\n ToastContainerModule,\n BrowserModule,\n AppRoutingModule,\n CoreModule,\n SharedModule\n ],\n bootstrap: [AppComponent],\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class AppModule {}\n","export const resources = {\n InviteHeader: '',\n AppSettingsSaveSuccessfully: '',\n AppSettingsSaveError: '',\n BuyWizardDialogOptionCreateHeader: '',\n CreateAccount: ''\n};\n","import { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\n\nimport { appRoutes } from './app.routes';\n@NgModule({\n imports: [\n RouterModule.forRoot(appRoutes, {\n enableTracing: false, // <-- debugging purposes only\n paramsInheritanceStrategy: 'always', // <-- To get data aggregated from parent routes (for NGRX router)\n // https://angular.io/api/router/ExtraOptions#paramsInheritanceStrategy\n onSameUrlNavigation: 'reload'\n })\n ],\n exports: [RouterModule]\n})\nexport class AppRoutingModule {}\n","import { Routes } from '@angular/router';\n\nimport { AccountPermission } from '@common/modules/shared/interfaces';\n\nimport { RouteResolver } from '../../core/resolvers/route.resolver';\nimport { UserMetadataResolver } from '../../core/resolvers/user-metadata.resolver';\nimport { VIRoutingMap } from './routes';\nimport { MediaMetadataResolver } from '../../core/resolvers/media-metadata.resolver';\nimport { PageNotFoundComponent } from '../../components/page-not-found/page-not-found.component';\nimport { LoginErrorComponent } from '../../components/login-error/login-error.component';\nimport { UserAlreadyExistsComponent } from '../../components/user-already-exists/user-already-exists.component';\nimport { AuthGuard } from '../../core/guards/auth-guard.service';\nimport { AuthenticatedResolver } from '../../core/resolvers/authenticated.resolver';\nimport { PermissionGuard } from '../../core/guards/permission.guard.service';\nimport { EdgeExtensionsMediaMetadataResolver } from '../../core/resolvers/edge-extensions-media-metadata.resolver';\nimport { RouteSelectAccountResolver } from '../../core/resolvers/route-select-account.resolver';\nimport { AmsMigrationReportGuard } from '../../core/guards/ams-migration-page-guard.service';\nimport { NetworkAccessGuard } from '../../core/guards/network-access.guard.service';\nimport { LiveEdgeGuard } from '../../edge/live/services/live-edge-guard.service';\n\nexport const appRoutes: Routes = [\n {\n path: VIRoutingMap.customization.path,\n loadChildren: () => import('../../customization/customization.module').then(m => m.CustomizationModule),\n canActivate: [AuthGuard, NetworkAccessGuard],\n resolve: { resolver: UserMetadataResolver, routeResolver: RouteSelectAccountResolver },\n runGuardsAndResolvers: 'always',\n data: VIRoutingMap.customization\n },\n {\n path: `${VIRoutingMap.customization.path}/${VIRoutingMap.customizationPeople.path}`,\n loadChildren: () => import('../../customization/customization.module').then(m => m.CustomizationModule),\n canActivate: [AuthGuard, NetworkAccessGuard],\n data: VIRoutingMap.customizationPeople\n },\n {\n path: `${VIRoutingMap.customization.path}/${VIRoutingMap.customizationLanguage.path}`,\n loadChildren: () => import('../../customization/customization.module').then(m => m.CustomizationModule),\n canActivate: [AuthGuard, NetworkAccessGuard],\n data: VIRoutingMap.customizationLanguage\n },\n {\n path: `${VIRoutingMap.customization.path}/${VIRoutingMap.customizationBrands.path}`,\n loadChildren: () => import('../../customization/customization.module').then(m => m.CustomizationModule),\n canActivate: [AuthGuard, NetworkAccessGuard],\n data: VIRoutingMap.customizationBrands\n },\n {\n path: `${VIRoutingMap.customization.path}/${VIRoutingMap.customizationSpeech.path}`,\n loadChildren: () => import('../../customization/customization.module').then(m => m.CustomizationModule),\n canActivate: [AuthGuard, NetworkAccessGuard],\n data: VIRoutingMap.customizationSpeech\n },\n {\n path: VIRoutingMap.editorNewProject.path,\n loadChildren: () => import('../../editor-wrapper/editor-wrapper.module').then(m => m.EditorWrapperModule),\n canActivate: [AuthGuard, PermissionGuard(AccountPermission.CONTRIBUTOR), NetworkAccessGuard],\n resolve: { resolver: UserMetadataResolver, routeResolver: RouteSelectAccountResolver },\n runGuardsAndResolvers: 'always',\n data: VIRoutingMap.editorNewProject\n },\n {\n path: VIRoutingMap.editorProject.path,\n loadChildren: () => import('../../editor-wrapper/editor-wrapper.module').then(m => m.EditorWrapperModule),\n canActivate: [AuthGuard, PermissionGuard(AccountPermission.CONTRIBUTOR), NetworkAccessGuard],\n resolve: { resolver: UserMetadataResolver, routeResolver: RouteSelectAccountResolver },\n runGuardsAndResolvers: 'always',\n data: VIRoutingMap.editorProject\n },\n {\n path: VIRoutingMap.editorVideo.path,\n loadChildren: () => import('../../editor-wrapper/editor-wrapper.module').then(m => m.EditorWrapperModule),\n canActivate: [AuthGuard, PermissionGuard(AccountPermission.CONTRIBUTOR), NetworkAccessGuard],\n resolve: { resolver: UserMetadataResolver, routeResolver: RouteSelectAccountResolver },\n data: VIRoutingMap.editorVideo\n },\n {\n path: VIRoutingMap.mediaVideo.path,\n loadChildren: () => import('../../media/media.module').then(m => m.MediaModule),\n canActivate: [NetworkAccessGuard],\n resolve: { resolver: MediaMetadataResolver },\n runGuardsAndResolvers: 'always',\n data: VIRoutingMap.mediaVideo\n },\n {\n path: VIRoutingMap.mediaProject.path,\n loadChildren: () => import('../../media/media.module').then(m => m.MediaModule),\n canActivate: [AuthGuard, NetworkAccessGuard],\n resolve: { resolver: MediaMetadataResolver },\n runGuardsAndResolvers: 'always',\n data: VIRoutingMap.mediaProject\n },\n {\n path: VIRoutingMap.edgeExtensionVideo.path,\n loadChildren: () => import('../../media/media.module').then(m => m.MediaModule),\n canActivate: [AuthGuard, NetworkAccessGuard],\n resolve: { resolver: EdgeExtensionsMediaMetadataResolver },\n runGuardsAndResolvers: 'always',\n data: VIRoutingMap.mediaProject\n },\n {\n path: VIRoutingMap.settings.path,\n loadChildren: () => import('../../settings/settings.module').then(m => m.SettingsModule),\n canActivate: [AuthGuard, PermissionGuard(AccountPermission.CONTRIBUTOR), NetworkAccessGuard],\n resolve: { resolver: UserMetadataResolver, routeResolver: RouteSelectAccountResolver },\n runGuardsAndResolvers: 'always',\n data: VIRoutingMap.settings\n },\n {\n path: VIRoutingMap.login.path,\n loadChildren: () => import('../../login/login.module').then(m => m.LoginModule),\n data: VIRoutingMap.login\n },\n {\n path: VIRoutingMap.logout.path,\n loadChildren: () => import('../../logout/logout.module').then(m => m.LogoutModule),\n data: VIRoutingMap.logout\n },\n { path: VIRoutingMap.pageNotFoundError.path, component: PageNotFoundComponent, data: VIRoutingMap.pageNotFoundError },\n { path: VIRoutingMap.loginError.path, component: LoginErrorComponent, data: VIRoutingMap.loginError, resolve: { resolver: AuthenticatedResolver } },\n { path: VIRoutingMap.userAlreadyExistsError.path, component: UserAlreadyExistsComponent, data: VIRoutingMap.userAlreadyExistsError },\n {\n path: VIRoutingMap.mediaGallery.path,\n loadChildren: () => import('../../gallery/gallery.module').then(m => m.GalleryModule),\n canActivate: [AuthGuard],\n resolve: {\n userMetadataResolver: UserMetadataResolver,\n routeResolver: RouteResolver\n },\n runGuardsAndResolvers: 'always',\n data: VIRoutingMap.mediaGallery\n },\n {\n path: VIRoutingMap.amsMigrationReport.path,\n loadChildren: () => import('../../ams-migration-report/ams-migration-report.module').then(m => m.AmsMigrationReportModule),\n canActivate: [AuthGuard, AmsMigrationReportGuard, NetworkAccessGuard],\n resolve: {\n userMetadataResolver: UserMetadataResolver,\n routeResolver: RouteSelectAccountResolver\n },\n runGuardsAndResolvers: 'always',\n data: { ...VIRoutingMap.amsMigrationReport, showHeaderButtons: false }\n },\n {\n path: 'accounts/:accountId/extensions/:extensionId',\n loadChildren: () => import('../../edge/live/routes/live-routing.module').then(m => m.LiveRoutingModule),\n canActivate: [LiveEdgeGuard, AuthGuard, NetworkAccessGuard],\n runGuardsAndResolvers: 'always'\n },\n {\n path: '',\n pathMatch: 'full',\n redirectTo: VIRoutingMap.mediaGallery.path\n },\n {\n path: '**',\n redirectTo: VIRoutingMap.pageNotFoundError.path\n }\n];\n","import { IVIRoutesMap } from './interfaces';\n\nexport const VIRoutingMap: IVIRoutesMap = {\n // Sign in\n login: {\n name: 'Login',\n traceName: 'login',\n path: 'account/login'\n },\n logout: {\n name: 'Logout',\n traceName: 'logout',\n path: 'account/logout'\n },\n signout: {\n name: 'Sign out',\n traceName: 'signout',\n path: 'account/signout'\n },\n signin: {\n name: 'Signin',\n traceName: 'signin',\n path: 'account/signin'\n },\n // Error\n pageNotFoundError: {\n name: 'Page not found',\n traceName: '404',\n path: 'app/error/404'\n },\n loginError: {\n name: 'Login Error',\n traceName: 'loginError',\n path: 'app/error/api/loginError'\n },\n userAlreadyExistsError: {\n name: 'User already exists',\n traceName: 'userAlreadyExists',\n path: 'app/error/api/userAlreadyExists'\n },\n // Gallery\n mediaGallery: {\n name: 'Media gallery',\n traceName: 'gallery',\n path: 'media'\n },\n galleryLibrary: {\n name: 'Gallery Library',\n traceName: 'gallery.library',\n path: 'library'\n },\n galleryProjects: {\n name: 'Gallery projects',\n traceName: 'gallery.projects',\n path: 'projects'\n },\n gallerySamples: {\n name: 'Gallery samples',\n traceName: 'gallery.samples',\n path: 'samples'\n },\n galleryHomeFullRoute: {\n name: 'Gallery home full route',\n traceName: 'gallery.library',\n path: 'media/library'\n },\n // Media\n mediaVideo: {\n name: 'Media video',\n traceName: 'media.video',\n path: 'accounts/:accountId/videos/:videoId'\n },\n mediaProject: {\n name: 'Media project',\n traceName: 'media.project',\n path: 'accounts/:accountId/projects/:videoId'\n },\n edgeExtensionVideo: {\n name: 'Edge Extension video',\n traceName: 'edge_extension.video',\n path: 'accounts/:accountId/extensions/:extensionId/videos/:videoId'\n },\n // Settings\n settings: {\n name: 'Account settings',\n traceName: 'account.settings',\n path: 'account/:accountId/settings'\n },\n connections: {\n name: 'Connections',\n traceName: 'connections',\n path: 'connections'\n },\n // Editor\n editorVideo: {\n name: 'Editor video',\n traceName: 'editor.video',\n path: 'editor/:accountId/videos/:videoId'\n },\n editorProject: {\n name: 'Editor project',\n traceName: 'editor.project',\n path: 'editor/:accountId/projects/:videoId'\n },\n editorNewProject: {\n name: 'Editor new project',\n traceName: 'editor.newProject',\n path: 'editor/:accountId'\n },\n // Customization\n customization: {\n name: 'Customization',\n traceName: 'customization',\n path: 'customization/:accountId'\n },\n customizationPeople: {\n name: 'Customization people',\n traceName: 'customization.people',\n path: 'people'\n },\n customizationPeopleUnknown: {\n name: 'Customization people unknown',\n traceName: 'customization.unknown_people',\n path: 'unknown'\n },\n customizationLanguage: {\n name: 'Customization language',\n traceName: 'customization.language',\n path: 'language'\n },\n customizationBrands: {\n name: 'Customization brands',\n traceName: 'customization.brands',\n path: 'brands'\n },\n customizationSpeech: {\n name: 'Customization speech',\n traceName: 'customization.speech',\n path: 'speech'\n },\n customizationSpeechDatasets: {\n name: 'Customization speech datasets',\n traceName: 'customization.speech.datasets',\n path: 'datasets'\n },\n customizationSpeechModels: {\n name: 'Customization speech models',\n traceName: 'customization.speech.models',\n path: 'models'\n },\n customizationLanguageId: {\n name: 'Customization language id',\n traceName: 'customization.languageId',\n path: 'languageId'\n },\n // Migration\n amsMigrationReport: {\n name: 'Migration report',\n traceName: 'migration_report',\n path: 'migration-report/:accountId'\n },\n catalog: {\n name: 'Edge Catalog',\n traceName: 'edge.catalog',\n path: 'catalog'\n }\n};\n","import { Component, OnInit, ChangeDetectionStrategy, OnDestroy, ChangeDetectorRef } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { take } from 'rxjs/operators';\n\nimport { ISubscriptions } from '@common/modules/insights/interfaces';\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\nimport { UtilsService } from '@common/modules/shared/services/utils.service';\nimport { APIErrors } from '@common/modules/core/services/toast/errors';\n\nimport { resources } from './resources';\n\n@Component({\n selector: 'app-login-error',\n templateUrl: './login-error.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['./login-error.component.scss']\n})\nexport class LoginErrorComponent implements OnInit, OnDestroy {\n public APIErrors = APIErrors;\n public resources = resources;\n public redirectUrl = '';\n public errorType = '';\n public traceId = '';\n\n private subscriptions: ISubscriptions = {};\n\n constructor(\n private cdr: ChangeDetectorRef,\n private translateService: TranslateHelperService,\n private utilsService: UtilsService,\n private route: ActivatedRoute\n ) {}\n\n public ngOnInit() {\n this.route.queryParams.subscribe(params => {\n this.redirectUrl = params['redirectUrl'];\n this.traceId = params['traceId'] || '';\n this.errorType = params['errorType'];\n\n this.setTranslationsSubscription();\n });\n }\n\n public ngOnDestroy() {\n // Unsubscribe all subscriptions.\n this.utilsService.unsubscribeSubscriptions(this.subscriptions);\n }\n\n private setTranslationsSubscription() {\n this.translateService\n .translateResources(this.resources, { traceId: this.traceId })\n .pipe(take(1))\n .subscribe(() => {\n this.cdr.markForCheck();\n });\n }\n}\n","
\n
\n
\n
\n

{{resources?.LoginErrorPageMessageHeader}}\n

\n
\n
\n\n

\n {{resources?.LoginErrorPageMessage}}\n
\n {{resources?.LoginErrorPageMessageLine2}}\n

\n\n

\n \n \n \n \n

\n\n
\n
\n

\n \n

\n {{resources.LoginErrorPageMessageLine4}}\n

\n
\n
\n \n
\n
\n
\n","export const resources = {\n LoginErrorPageMessageHeader: '',\n LoginErrorPageMessage: '',\n LoginErrorPageMessageLine2: '',\n VILoginErrorPageMessageLine3: '',\n VILoginErrorPageMessageLine3Label: '',\n LoginErrorPageMessageLine4: '',\n LoginErrorPageMessageLine5: '',\n VILoginError_USER_EMAIL_ALREADY_REGISTERED_FROM_ANOTHER_IDENTITY_PROVIDER: '',\n VILoginError_USER_EMAIL_ALREADY_REGISTERED_FROM_ANOTHER_IDENTITY_PROVIDER_Label: ''\n};\n","import { Component, OnInit, ChangeDetectionStrategy, ChangeDetectorRef, OnDestroy } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { take } from 'rxjs/operators';\n\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\nimport { ISubscriptions } from '@common/modules/insights/interfaces';\nimport { UtilsService } from '@common/modules/shared/services/utils.service';\nimport { TrackService } from '@common/modules/core/services/track';\n\nimport { resources } from './resources';\n\n@Component({\n selector: 'app-page-not-found',\n templateUrl: './page-not-found.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['./page-not-found.component.scss']\n})\nexport class PageNotFoundComponent implements OnInit, OnDestroy {\n public resources = resources;\n private subscriptions: ISubscriptions = {};\n\n constructor(\n private cdr: ChangeDetectorRef,\n private translateService: TranslateHelperService,\n private utilsService: UtilsService,\n private trackService: TrackService,\n private router: Router\n ) {}\n\n public ngOnInit() {\n this.setTranslationsSubscription();\n\n // Get router url\n const urlTree = this.router.parseUrl(this.router?.url);\n\n // If there is access token - remove data\n if (urlTree?.queryParams.accessToken) {\n urlTree.queryParams.accessToken = '***';\n }\n\n this.trackService.track('page_not_found.init', {\n router_url: urlTree.toString()\n });\n }\n\n public ngOnDestroy() {\n // Unsubscribe all subscriptions.\n this.utilsService.unsubscribeSubscriptions(this.subscriptions);\n }\n\n private setTranslationsSubscription() {\n this.translateService\n .translateResources(this.resources)\n .pipe(take(1))\n .subscribe(() => {\n this.cdr.markForCheck();\n });\n }\n}\n","
\n

\n {{ resources?.MessageServicePageNotFound }}\n

\n
\n","export const resources = {\n MessageServicePageNotFound: ''\n};\n","export const resources = {\n UserAlreadyExistsErrorPageHeader: '',\n UserAlreadyExistsErrorPageText: '',\n UserAlreadyExistsErrorPageNote: '',\n UserAlreadyExistsErrorPageTraceId: '',\n UserAlreadyExistsErrorPageBackToPortalLink: ''\n};\n","import { Component, OnInit, ChangeDetectionStrategy, OnDestroy, ChangeDetectorRef } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { take } from 'rxjs/operators';\n\nimport { ISubscriptions } from '@common/modules/insights/interfaces';\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\nimport { UtilsService } from '@common/modules/shared/services/utils.service';\nimport { APIErrors } from '@common/modules/core/services/toast/errors';\n\nimport { resources } from './resources';\n\n@Component({\n selector: 'app-user-already-exists',\n templateUrl: './user-already-exists.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['./user-already-exists.component.scss']\n})\nexport class UserAlreadyExistsComponent implements OnInit, OnDestroy {\n public APIErrors = APIErrors;\n public resources = resources;\n public redirectUrl = '';\n public email = '';\n\n private subscriptions: ISubscriptions = {};\n private traceId = '';\n\n constructor(\n private cdr: ChangeDetectorRef,\n private translateService: TranslateHelperService,\n private utilsService: UtilsService,\n private route: ActivatedRoute\n ) {}\n\n public ngOnInit() {\n this.route.queryParams.subscribe(params => {\n this.redirectUrl = params['redirectUrl'];\n this.traceId = params['traceId'];\n this.email = params['email'];\n\n this.setTranslationsSubscription();\n });\n }\n\n public ngOnDestroy() {\n // Unsubscribe all subscriptions.\n this.utilsService.unsubscribeSubscriptions(this.subscriptions);\n }\n\n private setTranslationsSubscription() {\n this.translateService\n .translateResources(this.resources, { traceId: this.traceId, email: this.email })\n .pipe(take(1))\n .subscribe(() => {\n this.cdr.markForCheck();\n });\n }\n}\n","
\n
\n
\n
\n

{{resources.UserAlreadyExistsErrorPageHeader}}

\n
\n
{{resources.UserAlreadyExistsErrorPageText}}
\n
{{resources.UserAlreadyExistsErrorPageNote}}
\n\n
{{resources.UserAlreadyExistsErrorPageTraceId}}
\n \n
\n
\n
\n
\n","import { createAction, props } from '@ngrx/store';\nimport { Update, EntityMap } from '@ngrx/entity';\n\nimport { AccountPermission } from '@common/modules/shared/interfaces';\nimport { CustomizationPage } from '@common/modules/core/services/interfaces';\nimport { APIErrors } from '@common/modules/core/services/toast/errors';\n\nimport { SettingsTab } from '../../settings/pages/settings/interfaces';\n\nimport AccountContractSlim = Microsoft.VideoIndexer.Contracts.AccountContractSlim;\nimport AccountContract = Microsoft.VideoIndexer.Contracts.AccountContract;\nimport UpdateAmsConnectionContract = Microsoft.VideoIndexer.Contracts.UpdateAmsConnectionContract;\nimport AccountSettings = Microsoft.VideoIndexer.Contracts.AccountSettings;\nimport LimitedAccessFeaturesContract = Microsoft.VideoIndexer.Contracts.LimitedAccessFeaturesContract;\nimport AccountQuotaUsage = Microsoft.VideoIndexer.Contracts.AccountQuotaUsage;\nimport IConnectedClusterExtension = Microsoft.VideoIndexer.Contracts.IConnectedClusterExtension;\n\nexport const loadAccounts = createAction('[Account/API] Load Accounts', props<{ accounts: AccountContractSlim[] }>());\nexport const loadAccountsFailed = createAction('[Account] Load Accounts Failed');\nexport const getAccounts = createAction('[Account/API] Get Accounts');\nexport const addAccount = createAction('[Account/API] Add Account', props<{ account: AccountContractSlim }>());\nexport const upsertAccount = createAction('[Account/API] Upsert Account', props<{ account: AccountContractSlim }>());\nexport const addAccounts = createAction('[Account/API] Add Accounts', props<{ accounts: AccountContractSlim[] }>());\nexport const upsertAccounts = createAction('[Account/API] Upsert Accounts', props<{ accounts: AccountContractSlim[] }>());\nexport const updateMediaServicesAccount = createAction(\n '[Account/API] Update Media Services Account',\n props<{ amsUpdateConfig: UpdateAmsConnectionContract }>()\n);\nexport const updateAccountContract = createAction(\n '[Account/API] Update Account Contract',\n props<{ account: AccountContract; newAccount: AccountContract }>()\n);\nexport const updateAccount = createAction('[Account] Update Account', props<{ account: Update }>());\nexport const updateAccountQuota = createAction('[Account] Update Account Quota', props<{ accountQuota: AccountQuotaUsage }>());\nexport const updateAccountQuotaFailed = createAction('[Account] Update Account Quota Failed');\nexport const updateSelectedAccount = createAction('[Account] Update Selected Account', props<{ account: AccountContract }>());\nexport const updateAccounts = createAction('[Account/API] Update Accounts', props<{ accounts: Update[] }>());\nexport const updateAccountState = createAction('[Account] Update Account State', props<{ error?: boolean; saving?: boolean }>());\nexport const mapAccounts = createAction('[Account/API] Map Accounts', props<{ entityMap: EntityMap }>());\nexport const selectAccount = createAction(\n '[Account/API] Select Account',\n props<{ id?: string; forceLoad?: boolean; doNotClearSelectedExtension?: boolean }>()\n);\nexport const selectAccountProcessing = createAction('[Account] Select Account Processing');\nexport const addSelectedAccount = createAction('[Account] Add Selected Account', props<{ account: AccountContract }>());\nexport const addSelectedAccountFailed = createAction('[Account] Add Selected Account Failed', props<{ errorType: APIErrors }>());\nexport const deleteOwnAccount = createAction('[Account/API] Delete Account', props<{ id: string }>());\nexport const deleteOwnAccountSuccess = createAction('[Account] Delete Account Success');\nexport const recoverOwnAccount = createAction('[Account/API] Recover Account', props<{ id: string }>());\nexport const recoverOwnAccountSuccess = createAction('[Account] Recover Account Success');\nexport const leaveAccount = createAction('[Account/API] Leave Account', props<{ id: string }>());\nexport const deleteAccount = createAction('[Account] Delete Account', props<{ id: string }>());\nexport const deleteAccounts = createAction('[Account/API] Delete Accounts', props<{ ids: string[] }>());\nexport const joinAccount = createAction('[Account/API] Join Account', props<{ accountId: string; inviteCode: string; location?: string }>());\nexport const clearAccounts = createAction('[Account/API] Clear Accounts');\nexport const accountsLoaded = createAction('[Account] Accounts Loaded');\nexport const navigateToSettings = createAction('[Account] Navigate To Settings', props<{ tab?: SettingsTab }>());\nexport const navigateToCustomization = createAction('[Account] Navigate To Customization', props<{ page: CustomizationPage }>());\nexport const navigateToCamera = createAction('[Account] Navigate To Camera', props<{ cameraId: string }>());\nexport const navigateToWorkflow = createAction('[Account] Navigate To Workflow', props<{ workflowId: string }>());\nexport const zeroAccountsLoaded = createAction('[Account] Zero Accounts Loaded');\nexport const loadAccountSettings = createAction('[Account/API] Load Account Settings', props<{ id: string }>());\nexport const updateAccountCelebSettings = createAction(\n '[Account/API] Update Account Celeb Settings',\n props<{ includeCelebrityRecognition: boolean }>()\n);\nexport const addAccountSettings = createAction('[Account] Add Account Settings', props<{ settings: AccountSettings }>());\nexport const loadAccountAccessTokenPermission = createAction(\n '[ArmAccount] Load Account Access Token Permission',\n props<{ permission: AccountPermission }>()\n);\nexport const accountHasRestrictedAccess = createAction('[Account] has restricted access');\nexport const checkGalleryProjectTabAccess = createAction('[Account] check gallery project tab access');\nexport const setAccountsFilterValue = createAction('[Account] Set accounts filter value', props<{ value: string }>());\nexport const clearAccountsFilterValue = createAction('[Account] Clear accounts filter value');\nexport const acceptUseOfFacialIdentification = createAction(\n '[Account/API] Accept Use Of Facial Identification button clicked',\n props<{ signature: string; useCase: string }>()\n);\nexport const updateFaceGateFeaturesSuccess = createAction(\n '[Account] Update FaceGate Features Success',\n props<{ limitedAccessFeatures: LimitedAccessFeaturesContract }>()\n);\nexport const updateFaceGateFeaturesFailed = createAction('[Account] Update FaceGate Features Failed', props<{ error: Error }>());\n\n// ARM Accounts\nexport const loadArmAccounts = createAction('[ArmAccount/API] ArmLoad Accounts');\nexport const loadArmAccountsFailed = createAction('[ArmAccount] Arm Load Accounts Failed');\nexport const loadArmAccountsSuccess = createAction(\n '[ArmAccount] Arm Load Accounts Succuss',\n props<{ accounts: Microsoft.VideoIndexer.Contracts.AccountContractSlim[] }>()\n);\nexport const loadArmAccountsNotNeeded = createAction('[ArmAccount] Arm Load Accounts Not Needed');\nexport const loadLastArmAccount = createAction('[ArmAccount] Arm Load Last Account', props<{ accountId: string }>());\nexport const addSelectedArmAccountFailed = createAction('[ArmAccount] Add Selected Account Failed', props<{ errorType: APIErrors }>());\nexport const loadArmAccountNotNeededForInit = createAction('[ArmAccount] Arm load Account Not Needed For Init');\nexport const selectArmAccount = createAction('[ArmAccount/API] Select Account', props<{ id?: string }>());\nexport const selectArmAccountProcessing = createAction('[ArmAccount] Select Arm Account Processing');\nexport const selectArmAccountSuccess = createAction('[ArmAccount] Select Arm Account Success');\nexport const addSelectedArmAccount = createAction('[ArmAccount] Add Selected Arm Account', props<{ account: AccountContract }>());\n\nexport const refreshCachedArmAccounts = createAction('[ArmAccount] Refresh Cached Arm Accounts');\n\nexport const loadEdgeExtensions = createAction('[EdgeExtension/API] Load Edge Extensions');\nexport const loadEdgeExtensionsSuccess = createAction(\n '[EdgeExtensions] Load Edge Extensions Success',\n props<{ extensions: IConnectedClusterExtension[] }>()\n);\nexport const loadEdgeExtensionsFailed = createAction('[EdgeExtensions] Load Edge Extensions Failed');\n","import { createAction, props } from '@ngrx/store';\n\nimport accountMigration = Microsoft.VideoIndexer.Contracts.AmsAccountMigration;\nimport videoMigrations = Microsoft.VideoIndexer.Contracts.AmsMigrationsListResult;\n\nexport const getAmsMigrationStatusStarted = createAction('[Migration/API] Get AMS Migration Status started');\n\nexport const getAmsMigrationStatusSuccess = createAction(\n '[Migration/API] Get AMS Migration Status Success',\n props<{ migrationState: accountMigration }>()\n);\n\nexport const startMigrationStatusInterval = createAction('[Migration/API] Start Migration Status Interval');\n\nexport const getMigrationStatusFailed = createAction('[Migration/API] Get Migration Status Failed');\n\nexport const loadMoreVideoMigrations = createAction('[Migration/API] Load More Video Migrations');\n\nexport const getVideoMigrationStarted = createAction('[Migration/API] Get Video Migrations Started');\n\nexport const getVideoMigrationsSucceed = createAction('[Migration/API] Get Video Migrations Succeed', props<{ videoMigrations: videoMigrations }>());\n\nexport const getVideoMigrationsFailed = createAction('[Migration/API] Get Video Migrations Failed');\n\nexport const resetAmsMigrationState = createAction('[Migration] Reset AMS Migration State');\n","import { createAction } from '@ngrx/store';\n\nexport const sessionExpired = createAction('[Core] Session Expired');\nexport const loadChunksError = createAction('[Core] Load Chunks Error');\n","import { createAction, props } from '@ngrx/store';\n\nimport { CustomizationPage } from '@common/modules/core/services/interfaces';\n\nexport const initPage = createAction('[CustomizationView] Init Page', props<{ page: CustomizationPage }>());\n","import { createAction, props } from '@ngrx/store';\n\nimport DirectoryContract = Microsoft.VideoIndexer.Contracts.DirectoryContract;\n\nexport const loadDirectories = createAction('[Directories] Load Directories');\nexport const loadDirectoriesSuccess = createAction('[Directories] Load Directories Success', props<{ directories: DirectoryContract[] }>());\nexport const loadDirectoriesFailed = createAction('[Directories] Load Directories Failed');\nexport const reloadDirectories = createAction('[Directories] Reload Directories');\nexport const selectDirectory = createAction('[Directories] Select Directory', props<{ tenantId: string }>());\n","import { createAction, props } from '@ngrx/store';\n\nexport const loadLastEdgeExtension = createAction('[EdgeExtension/API] Load Last Edge Extension');\nexport const clearEdgeExtensions = createAction('[EdgeExtensions] Clear Edge Extensions');\nexport const clearSelectedEdgeExtension = createAction('[EdgeExtensions] Clear Selected Edge Extension');\nexport const selectEdgeExtension = createAction('[EdgeExtensions] Select Edge Extension', props<{ id: string }>());\nexport const selectEdgeExtensionClicked = createAction('[EdgeExtensions] Select Edge Extension Clicked', props<{ id: string }>());\nexport const selectEdgeExtensionByPrincipalId = createAction('[EdgeExtensions] Select Edge Extension By Principal', props<{ principalId: string }>());\nexport const uploadFile = createAction('[EdgeExtensions] Upload file to Edge Extension', props<{ file: File; name?: string }>());\nexport const loadEdgeExtensionsNotNeededForInit = createAction('[EdgeExtensions] Load Edge Extensions Not Needed For Init');\nexport const handshakeEdgeExtension = createAction('[EdgeExtension/API] Handshake Edge Extension');\nexport const handshakeSuccess = createAction('[EdgeExtension] Handshake Success');\nexport const handshakeFailed = createAction('[EdgeExtension] Handshake Failed');\nexport const liveModuleLoaded = createAction('[EdgeExtension] Live module Loaded');\n","export * from './accounts.actions';\nexport * from './core.actions';\nexport * from './router.actions';\nexport * from './side-menu.actions';\nexport * from './sidebar.actions';\nexport * from './user.actions';\nexport * from './invitations.actions';\nexport * from './roleAssignments.actions';\nexport * from './customization-view.actions';\nexport * from './notifications.actions';\nexport * from './directories.actions';\nexport * from './edge-extensions.actions';\nexport * from './ams-migration.actions';\n","import { createAction, props } from '@ngrx/store';\n\nimport InvitationContract = Microsoft.VideoIndexer.Contracts.InvitationContract;\nimport InviteContract = Microsoft.VideoIndexer.Contracts.InviteContract;\n\nexport const openShareAccount = createAction('[Invitations] Open Share Account', props<{ showInviteForm: boolean }>());\nexport const loadInvitations = createAction('[Invitations/API] Load Invitations');\nexport const loadInvitationsSuccess = createAction('[Invitations] Load Invitations Success', props<{ invitations: InvitationContract[] }>());\nexport const loadInvitationsFailed = createAction('[Invitations] Load Invitations Failed', props<{ isUserNotAllowedError: boolean }>());\nexport const deleteInvitation = createAction('[Invitations/API] Delete Invitation', props<{ invitationId: number }>());\nexport const deleteInvitationSuccess = createAction('[Invitations] Delete Invitation Success', props<{ invitationId: number }>());\nexport const invitationsError = createAction('[Invitations] Invitations error', props<{ isUserNotAllowedError: boolean }>());\nexport const inviteToAccount = createAction('[Invitations/API] Invite To Account', props<{ formDetails: InviteContract[] }>());\nexport const inviteToAccountInProgress = createAction('[Invitations] Invite To Account In Progress');\nexport const inviteToAccountSuccess = createAction('[Invitations] Invite To Account Success', props<{ invitations: InvitationContract[] }>());\nexport const copyInvitationLink = createAction('[Invitations] Copy invitation link', props<{ invitationId: number }>());\n","import { Update } from '@ngrx/entity';\nimport { createAction, props } from '@ngrx/store';\n\nimport { INotification } from '@common/modules/core/services/toast/interfaces';\n\n// Notifications common\nexport const initNotifications = createAction('[Notifications/API] Init Notifications');\nexport const loadNotifications = createAction('[Notifications/API] Load Notifications');\nexport const reloadNotifications = createAction('[Notifications] Reload Notifications');\nexport const removeNotifications = createAction('[Notifications] Remove Notifications', props<{ ids: string[] }>());\n\n// Banners\nexport const clearNotificationsBanners = createAction('[Notifications] Clear Notifications Banners');\nexport const updateNotificationsBanners = createAction(\n '[Notifications] Update Notifications Banners',\n props<{ notifications: Update[] }>()\n);\nexport const addNotificationsBanners = createAction('[Notifications] Add Notifications Banners', props<{ notifications: INotification[] }>());\nexport const removeNotificationsBanners = createAction('[Notifications] Remove Notifications Banners', props<{ ids: string[] }>());\n\n// Alerts\nexport const clearNotificationsAlerts = createAction('[Notifications] Clear Notifications Alerts');\nexport const updateNotificationsAlerts = createAction(\n '[Notifications] Update Notifications Alerts',\n props<{ notifications: Update[] }>()\n);\nexport const addNotificationsAlerts = createAction('[Notifications] Add Notifications Alerts', props<{ notifications: INotification[] }>());\nexport const removeNotificationsAlerts = createAction('[Notifications] Remove Notifications Alerts', props<{ ids: string[] }>());\n\n// Messages\nexport const clearNotificationsMessages = createAction('[Notifications] Clear Notifications Messages');\nexport const updateNotificationsMessages = createAction(\n '[Notifications] Update Notifications Messages',\n props<{ notifications: Update[] }>()\n);\nexport const addNotificationMessages = createAction('[Notifications] Add Notifications Messages', props<{ notifications: INotification[] }>());\nexport const removeNotificationsMessages = createAction('[Notifications] Remove Notifications Messages', props<{ ids: string[] }>());\n","import { createAction, props } from '@ngrx/store';\n\nimport UserRole = Microsoft.VideoIndexer.Contracts.UserRole;\nimport AccountRoleAssignment = Microsoft.VideoIndexer.Contracts.AccountRoleAssignment;\n\nexport const loadRoleAssignments = createAction('[Role Assignment/API] Load Role Assignments');\nexport const loadRoleAssignmentsInProgress = createAction('[Role Assignment] Load Role Assignments In Progress');\nexport const loadRoleAssignmentsSuccess = createAction(\n '[Role Assignment] Load Role Assignments Success',\n props<{ roleAssignments: AccountRoleAssignment[] }>()\n);\nexport const loadRoleAssignmentsFailed = createAction('[Role Assignment] Load Role Assignments Failed', props<{ isUserNotAllowedError: boolean }>());\nexport const updateRoleAssignments = createAction(\n '[Role Assignment/API] Update Role Assignments',\n props<{ roleAssignmentId: number; role: UserRole }>()\n);\nexport const updateRoleAssignmentsSuccess = createAction(\n '[Role Assignment] Update Role Assignments Success',\n props<{ roleAssignmentId: number; role: UserRole }>()\n);\nexport const deleteRoleAssignment = createAction('[Role Assignment/API] Delete Role Assignments', props<{ roleAssignmentId: number }>());\nexport const deleteRoleAssignmentSuccess = createAction('[Role Assignment] Delete Role Assignments Success', props<{ roleAssignmentId: number }>());\nexport const roleAssignmentsError = createAction('[Role Assignment] Invitations error', props<{ isUserNotAllowedError: boolean }>());\n","import { NavigationExtras } from '@angular/router';\n\nimport { createAction, props } from '@ngrx/store';\n\nexport const Go = createAction(\n '[Router] Go',\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n props<{ path: any[]; queryParams?: object; extras?: NavigationExtras; removeParams?: boolean }>()\n);\nexport const Back = createAction('[Router] Back');\nexport const Forward = createAction('[Router] Forward');\n","import { createAction, props } from '@ngrx/store';\n\nimport { SideMenuOption } from '@common/modules/core/services/interfaces';\n\nexport const sideMenuOptionSelected = createAction('[SideMenu] Side menu option selected ', props<{ option: SideMenuOption }>());\nexport const sideMenuToggled = createAction('[SideMenu] Side menu toggled', props<{ open: boolean }>());\nexport const sideMenuInitOption = createAction('[SideMenu] Side menu init option', props<{ option: SideMenuOption }>());\n","import { createAction, props } from '@ngrx/store';\n\nimport { ISidebarNavigationOptions } from '../../sidebar/interfaces';\n\nexport const selectSidebarOptions = createAction('[Sidebar] Select Sidebar Options', props<{ options: ISidebarNavigationOptions }>());\nexport const clearSidebar = createAction('[Sidebar] Clear Sidebar');\n","import { createAction, props } from '@ngrx/store';\nimport { Update, EntityMap } from '@ngrx/entity';\n\nimport UserContractSlim = Microsoft.VideoIndexer.Contracts.UserContractSlim;\n\nexport const loadUserDetails = createAction('[User/API] Load User Details', props<{ forceLoad?: boolean; selectAccountId?: string }>());\nexport const loadUserDetailsSuccess = createAction('[User] Load User Details Success');\nexport const loadUserDetailsFailed = createAction('[User] Load User Details Failed');\nexport const loadUserDetailsInProgress = createAction('[User/API] Load User Details In Progress');\nexport const loadUserNotAuthenticated = createAction('[User] Load User Not Authenticated');\nexport const addUser = createAction('[User] Add User', props<{ user: UserContractSlim }>());\nexport const upsertUser = createAction('[User] Upsert User', props<{ user: UserContractSlim }>());\nexport const addUsers = createAction('[User] Add Users', props<{ users: UserContractSlim[] }>());\nexport const upsertUsers = createAction('[User/API] Upsert Users', props<{ users: UserContractSlim[] }>());\nexport const updateUser = createAction('[User] Update User', props<{ user: Partial }>());\nexport const updateUserApi = createAction('[User/API] Update User Api', props<{ user: Partial }>());\nexport const updateUsers = createAction('[User/API] Update Users', props<{ users: Array> }>());\nexport const mapUsers = createAction('[User/API] Map Users', props<{ entityMap: EntityMap }>());\nexport const deleteUser = createAction('[User/API] Delete User', props<{ id: string }>());\nexport const deleteUsers = createAction('[User/API] Delete Users', props<{ ids: string[] }>());\nexport const clearUsers = createAction('[User] Clear Users');\n","import { ErrorHandler, NgModule, Optional, SkipSelf } from '@angular/core';\n\nimport { EffectsModule } from '@ngrx/effects';\nimport { StoreRouterConnectingModule, NavigationActionTiming, RouterState } from '@ngrx/router-store';\nimport { StoreModule, MetaReducer } from '@ngrx/store';\nimport { StoreDevtoolsModule } from '@ngrx/store-devtools';\n\nimport { LoadingBarRouterModule } from '@ngx-loading-bar/router';\nimport { storeFreeze } from 'ngrx-store-freeze';\nimport { ToastrModule } from 'ngx-toastr';\n\nimport { AccessibilityModule } from '@common/modules/accessibility/accessibility.module';\nimport { AuthModule } from '@common/modules/auth/auth.module';\nimport { CommonCoreModule } from '@common/modules/core/common.core.module';\nimport { EnsureModuleLoadedOnceGuard } from '@common/modules/core/ensureModuleLoadedOnceGuard';\nimport { LoggerService } from '@common/modules/core/services/logger/logger.service';\nimport { InsightsCommonModule } from '@common/modules/insights-common/insights-common.module';\nimport { NotificationsModule } from '@common/modules/notifications/notifications.module';\n\nimport { AccountsEffects } from './effects/accounts.effects';\nimport { AmsMigrationEffects } from './effects/ams-migration.effects';\nimport { CoreEffects } from './effects/core.effects';\nimport { DirectoriesEffects } from './effects/directories.effects';\nimport { EdgeExtensionsEffects } from './effects/edge-extensions.effects';\nimport { InvitationsEffects } from './effects/invitations.effect';\nimport { NotificationsEffects } from './effects/notifications.effects';\nimport { RoleAssignmentsEffects } from './effects/roleAssignments.effect';\nimport { AppRouterEffects } from './effects/router.effects';\nimport { SideMenuEffects } from './effects/side-menu.effect';\nimport { UserEffects } from './effects/user.effects';\nimport { AuthGuardService } from './guards/auth-guard.service';\nimport { LoadChunksErrorHandler } from './handlers/load-chunks-error.handler';\nimport { reducers } from './reducers';\nimport { routerReducers } from './reducers/router';\nimport { VIRouterSerializer } from './reducers/router/vi-router-serialzer';\nimport { AuthenticatedResolverService } from './resolvers/authenticated.resolver';\nimport { MediaMetadataResolverService } from './resolvers/media-metadata.resolver';\nimport { RouteResolverService } from './resolvers/route.resolver';\nimport { UserMetadataResolverService } from './resolvers/user-metadata.resolver';\nimport { CoreStoreService } from './services/core-store.service';\nimport { NotificationsHandlerService } from './services/notifications-handler.service';\nimport { NotificationsStoreService } from './services/notifications-store.service';\nimport { SurveyService } from './services/survery.service';\nimport { UserService } from './services/user.service';\nimport { environment } from '../../../../environments/environment';\nimport { CustomizationDataModule } from '../customization-data/customization-data.module';\nimport { HeaderModule } from '../header/header.module';\nimport { IndexingModule } from '../indexing/indexing.module';\nimport { MediaDataModule } from '../media-data/media-data.module';\nimport { ShellModule } from '../shell/shell.module';\nimport { SidebarModule } from '../sidebar/sidebar.module';\nimport { EdgeExtensionsStoreService } from './services/edge-extensions-store.service';\nimport { EdgeExtensionsApiHandlerService } from './services/edge-extensions-api.handler.service';\nimport { EdgeExtensionsMediaMetadataResolverService } from './resolvers/edge-extensions-media-metadata.resolver';\nimport { RouteSelectAccountResolverService } from './resolvers/route-select-account.resolver';\nimport { GalleryStoreService } from '../gallery/services/gallery-store.service';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const metaReducers: Array> = !environment.production ? [storeFreeze] : [];\n\n@NgModule({\n imports: [\n AuthModule,\n ToastrModule.forRoot(),\n CommonCoreModule,\n StoreModule.forRoot(routerReducers, { metaReducers }),\n EffectsModule.forRoot([]),\n StoreRouterConnectingModule.forRoot({\n serializer: VIRouterSerializer,\n navigationActionTiming: NavigationActionTiming.PreActivation,\n routerState: RouterState.Minimal\n }),\n !environment.production\n ? StoreDevtoolsModule.instrument({\n maxAge: 25,\n logOnly: false,\n features: {\n pause: false,\n lock: true,\n persist: true\n },\n connectInZone: true\n })\n : [],\n StoreModule.forFeature('core', reducers),\n EffectsModule.forFeature([\n CoreEffects,\n UserEffects,\n AppRouterEffects,\n AccountsEffects,\n SideMenuEffects,\n InvitationsEffects,\n RoleAssignmentsEffects,\n NotificationsEffects,\n DirectoriesEffects,\n EdgeExtensionsEffects,\n AmsMigrationEffects\n ]),\n CustomizationDataModule,\n MediaDataModule,\n AccessibilityModule,\n NotificationsModule\n ],\n exports: [\n HeaderModule,\n IndexingModule,\n InsightsCommonModule, // not needed here\n SidebarModule,\n LoadingBarRouterModule,\n ShellModule\n ],\n declarations: [],\n providers: [\n CoreStoreService,\n NotificationsStoreService,\n EdgeExtensionsStoreService,\n UserMetadataResolverService,\n RouteResolverService,\n AuthenticatedResolverService,\n MediaMetadataResolverService,\n EdgeExtensionsMediaMetadataResolverService,\n RouteSelectAccountResolverService,\n UserService,\n AuthGuardService,\n SurveyService,\n { provide: ErrorHandler, useClass: LoadChunksErrorHandler },\n NotificationsHandlerService,\n EdgeExtensionsApiHandlerService,\n GalleryStoreService\n ]\n})\nexport class CoreModule extends EnsureModuleLoadedOnceGuard {\n // Ensure that CoreModule is only loaded into AppModule\n\n // Looks for the module in the parent injector to see if it's already been loaded (only want it loaded once)\n constructor(@Optional() @SkipSelf() parentModule: CoreModule, private logger: LoggerService) {\n super(parentModule);\n this.logger.log('[CoreModule] init');\n }\n}\n","import { createNgModule, Injectable, Injector, Type } from '@angular/core';\nimport { HttpErrorResponse } from '@angular/common/http';\n\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { ROUTER_NAVIGATION } from '@ngrx/router-store';\nimport { Store } from '@ngrx/store';\n\nimport {\n catchError,\n combineLatestWith,\n concatMap,\n delay,\n filter,\n map,\n mergeWith,\n skipWhile,\n switchMap,\n take,\n takeUntil,\n tap,\n withLatestFrom\n} from 'rxjs/operators';\nimport { EMPTY, from, of } from 'rxjs';\n\nimport { camelCase } from 'lodash-es';\n\nimport { TimeInterval } from '@common/modules/utils/time';\nimport { envTypes } from '@common/modules/api/interfaces';\nimport { ApiService } from '@common/modules/api/services/api.service';\nimport { AccountResourceType } from '@common/modules/auth/interfaces';\nimport { AuthService } from '@common/modules/auth/services/auth.service';\nimport { ConfigService } from '@common/modules/core/services/config/config.service';\nimport { FeatureSwitchService } from '@common/modules/core/services/feature-switch/feature-switch.service';\nimport { FeatureSwitch, NavigationState } from '@common/modules/core/services/interfaces';\nimport { LoggerService } from '@common/modules/core/services/logger/logger.service';\nimport { EventCategory, TrackService } from '@common/modules/core/services/track';\nimport { CommonTrackingDataService } from '@common/modules/core/services/track/common-tracking-data.service';\nimport { IStripData, MessageType } from '@common/modules/shared/components/strip/interfaces';\nimport { StripService } from '@common/modules/shared/components/strip/strip.service';\nimport { AccountPermission, StorageCacheKey } from '@common/modules/shared/interfaces';\nimport { LocalStorageService } from '@common/modules/shared/services/local-storage.service';\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\nimport { TRANSLATION_DELAY } from '@common/modules/translation/variables';\nimport { APIErrors } from '@common/modules/core/services/toast/errors';\nimport { NotificationsService } from '@common/modules/notifications/services/notifications.service';\nimport {\n INotification,\n NotificationIcon,\n NotificationLevel,\n NotificationMessageType,\n NotificationType\n} from '@common/modules/core/services/toast/interfaces';\nimport { AppNavigationService } from '@common/modules/core/services/app/app-navigation.service';\nimport { getLastArmStorageKey } from '@common/modules/shared/arm';\nimport { ToastService } from '@common/modules/core/services/toast/toast.service';\nimport { CacheStorageService, ICacheResponse } from '@common/modules/core/services/cache-storage/cache-storage.service';\nimport { DialogService } from '@common/modules/shared/components/dialog/dialog.service';\nimport { ActionButtonType } from '@common/modules/shared/components/action-button/interfaces';\nimport { UtilsService } from '@common/modules/shared/services/utils.service';\n\nimport { AccountUnavailableDialogComponent } from '../../shell/components/account-unavailable-dialog/account-unavailable-dialog.component';\nimport { EdgeExtensionsStoreService } from '../services/edge-extensions-store.service';\nimport { VIRoutingMap } from '../../app/routing/routes';\nimport { CustomizationUtilsService } from '../../customization-data/services/customization-utils.service';\nimport { SettingsService } from '../../settings/services/settings.service';\nimport { IArmAccountCacheData } from '../interfaces';\nimport { IState } from '../reducers';\nimport { FaceGatePopupService } from '../services/face-gate-popup.service';\nimport { getARMLocation, isAccountDailyCountQuotaExceeded, isAccountDailyDurationQuotaExceeded, isAccountDurationQuotaExceeded } from './utils';\nimport { CoreStoreService } from '../services/core-store.service';\nimport * as fromRouter from '../../core/reducers/router';\nimport * as fromCore from '../../core/selectors';\nimport * as fromIndexing from '../../indexing/core/selectors';\nimport * as LanguageModelActions from '../../customization-data/actions/language-model.actions';\nimport * as UploadActions from '../../indexing/core/actions';\nimport * as LanguageIdActions from '../../customization-data/actions/language-id.actions';\nimport * as AccountsActions from '../actions/accounts.actions';\nimport * as RouterActions from '../actions/router.actions';\nimport * as UserActions from '../actions/user.actions';\n\nimport AccountContractSlim = Microsoft.VideoIndexer.Contracts.AccountContractSlim;\n\n@Injectable()\nexport class AccountsEffects {\n public readonly JOINING_DELAY = 2000; // 2 seconds\n\n // loadAccounts - load all user accounts\n public loadAccounts$ = createEffect(() =>\n this.actions$.pipe(\n ofType(AccountsActions.getAccounts),\n switchMap(() => {\n this.logger.log(`[AccountsEffects] loadAccounts`);\n\n return this.apiService.Account.getAccounts(null, true).pipe(\n switchMap(accounts => {\n this.logger.log(`[AccountsEffects] loadAccounts success`);\n return [AccountsActions.upsertAccounts({ accounts })];\n }),\n catchError(error => {\n return EMPTY;\n })\n );\n })\n )\n );\n\n // joinAccount - send request to join account\n public joinAccount$ = createEffect(() =>\n this.actions$.pipe(\n ofType(AccountsActions.joinAccount),\n switchMap(({ accountId, inviteCode, location }) => {\n this.trackService.track('accounts.join.init', {\n category: EventCategory.ACCOUNTS,\n accountId,\n inviteCode,\n location\n });\n this.logger.log(`[AccountsEffects] join ${accountId} ${inviteCode}`);\n return this.apiService.Account.join(accountId, inviteCode, null, location).pipe(\n switchMap(() => {\n this.trackService.track('accounts.join.success', {\n category: EventCategory.ACCOUNTS,\n accountId,\n inviteCode,\n location\n });\n this.logger.log(`[AccountsEffects] joined ${accountId} ${inviteCode}`);\n this.settingsService.toastJoinAccountSuccess(accountId);\n return [\n RouterActions.Go({\n path: [`/${VIRoutingMap.mediaGallery.path}/${VIRoutingMap.galleryLibrary.path}`],\n extras: null,\n queryParams: null,\n removeParams: true\n }),\n UserActions.loadUserDetails({ forceLoad: true, selectAccountId: accountId })\n ];\n }),\n catchError(error => {\n this.trackService.track('accounts.join.fail', {\n category: EventCategory.ACCOUNTS,\n accountId,\n inviteCode,\n location\n });\n this.settingsService.toastJoinAccountError(accountId);\n return [\n RouterActions.Go({\n path: [`/${VIRoutingMap.mediaGallery.path}/${VIRoutingMap.galleryLibrary.path}`],\n extras: null,\n queryParams: null,\n removeParams: true\n })\n ];\n })\n );\n })\n )\n );\n\n // joinRoute - listen to router navigation to check if need to join account\n // called on router navigation with join query params\n public joinRoute$ = createEffect(() =>\n this.actions$.pipe(\n ofType(ROUTER_NAVIGATION),\n delay(this.JOINING_DELAY),\n withLatestFrom(this.store.select(fromRouter.getQueryParams)),\n switchMap(([, queryParams]) => {\n if (!this.authService.isAuthenticated()) {\n return EMPTY;\n }\n\n const returnUrlParamValue = queryParams?.returnUrl || '';\n const inviteParamValue = queryParams?.invitation || '';\n if (returnUrlParamValue || inviteParamValue) {\n // Check if video link and navigate to player page\n if (returnUrlParamValue?.includes(window.location.host)) {\n window.location.replace(returnUrlParamValue);\n }\n\n // Check if Invite link\n // Remove /? chars from returnUrl value\n const params = JSON.parse(\n '{\"' +\n decodeURI(inviteParamValue)\n .replace(/\\\\/g, '\\\\\\\\')\n .replace(/\\?|\\//g, '')\n .replace(/\"/g, '\\\\\"')\n .replace(/&/g, '\",\"')\n .replace(/=/g, '\":\"') +\n '\"}'\n );\n\n this.logger.log(`[AccountsEffects] returnUrlParam: ${params}`);\n return [\n AccountsActions.joinAccount({\n accountId: params.accountId,\n inviteCode: params.invitationId,\n location: params?.location\n })\n ];\n }\n\n if (queryParams?.accountId && queryParams?.invitationId) {\n this.logger.log(`[AccountsEffects] join - accountId: ${queryParams.accountId}, invitationId: ${queryParams.invitationId}`);\n\n return [\n AccountsActions.joinAccount({\n accountId: queryParams.accountId,\n inviteCode: queryParams.invitationId,\n location: queryParams?.location\n })\n ];\n }\n return EMPTY;\n })\n )\n );\n\n // getSelectedAccountDetails effect - gets the expanded details for the selected account.\n // called on select account change\n public getSelectedAccountDetails$ = createEffect(() =>\n this.actions$.pipe(\n ofType(AccountsActions.selectAccount),\n withLatestFrom(this.store.select(fromCore.selectedAccountContract)),\n withLatestFrom(this.store.select(fromCore.selectCurrentAccount)),\n withLatestFrom(this.store.select(fromCore.selectedAccountLoaded)),\n switchMap(([[[{ id, forceLoad, doNotClearSelectedExtension }, account], selectCurrentAccount], selectedAccountLoaded]) => {\n if (selectCurrentAccount) {\n const location = getARMLocation(selectCurrentAccount, this.configService);\n this.apiService.setApiBaseLocation(location, selectCurrentAccount.accountType);\n this.authService.UserAccount = selectCurrentAccount;\n }\n\n id = id || selectCurrentAccount?.id;\n if (account?.id === id && !forceLoad && selectedAccountLoaded) {\n this.logger.log(`[AccountsEffects] get selected account in state`);\n return EMPTY;\n }\n\n if (this.mediaConnectionStripId) {\n this.stripService.hideStrip(this.mediaConnectionStripId);\n }\n\n if (this.openAIStripId) {\n this.stripService.hideStrip(this.openAIStripId);\n }\n\n if (!doNotClearSelectedExtension) {\n this.edgeExtensionsStore.clearSelectedEdgeExtension();\n this.apiService.edgeExtensionApiUrl = null;\n }\n\n if (selectCurrentAccount?.resourceType === AccountResourceType.ARM) {\n return [AccountsActions.selectArmAccount({ id })];\n }\n\n this.store.dispatch(AccountsActions.selectAccountProcessing());\n\n this.logger.log(`[AccountsEffects] get selected account ${id}`);\n this.trackService.track('account_effect.select_account', {\n category: EventCategory.ACCOUNTS\n });\n return this.apiService.Account.getAccount(id, true).pipe(\n takeUntil(this.actions$.pipe(ofType(AccountsActions.selectArmAccount))),\n withLatestFrom(this.store.select(fromCore.isArmAmslessAccount)),\n switchMap(([res, isArmAmslessAccount]) => {\n this.logger.log(`[AccountsEffects] get selected account success`);\n this.localStorageService.setItem(StorageCacheKey.LastAccountId, id);\n this.localStorageService.setItem(StorageCacheKey.LastAccountType, AccountResourceType.TRIAL);\n\n this.commonTrackingDataService.accountType = res?.accountType;\n this.commonTrackingDataService.isAmslessAccount = isArmAmslessAccount;\n if (res?.isPaid && res?.mediaServices && !res?.mediaServices.connected) {\n const resource = { StripAmsAddError: '' };\n this.translateService.translateResources(resource);\n const stripData: IStripData = {\n text: resource.StripAmsAddError,\n iconClass: 'i-vi-error',\n show: true,\n messageType: MessageType.ERROR,\n linkCallback: this.stripCallback.bind(this),\n trackingName: 'media.connection.error'\n };\n this.mediaConnectionStripId = this.stripService.trigger(stripData);\n }\n\n this.handleAccountQuotaNotification(res);\n this.trackService.track('account_effect.select_account.success', {\n category: EventCategory.ACCOUNTS\n });\n const actions = [];\n // load languages models - to check if account has training models\n actions.push(AccountsActions.addSelectedAccount({ account: res }));\n actions.push(LanguageModelActions.loadLanguageModels());\n actions.push(AccountsActions.loadAccountSettings({ id: res.id }));\n\n const isAutoDetectFeatureEnable = this.featureSwitchService.featureSwitch(FeatureSwitch.AutoDetectLanguage);\n if (isAutoDetectFeatureEnable) {\n actions.push(LanguageIdActions.loadDefaultLanguages());\n actions.push(LanguageIdActions.loadSelectedLanguages());\n }\n return actions;\n }),\n catchError(error => {\n this.commonTrackingDataService.accountType = '';\n this.trackService.track('account_effect.select_account.failed', {\n category: EventCategory.ACCOUNTS,\n data: {\n error\n }\n });\n return [\n AccountsActions.addSelectedAccountFailed({\n errorType: error?.error?.ErrorType\n })\n ];\n })\n );\n })\n )\n );\n\n // updateAccount effect - update account details\n public updateAccount$ = createEffect(() =>\n this.actions$.pipe(\n ofType(AccountsActions.updateAccountContract),\n switchMap(({ account, newAccount }) => {\n this.logger.log('[AccountsEffects] Update account in store');\n return this.apiService.Account.updateAccount(newAccount.id, newAccount).pipe(\n switchMap(() => {\n this.logger.log('[AccountsEffects] Update account success');\n this.settingsService.handleUpdateAccount(true);\n return [AccountsActions.updateSelectedAccount({ account: newAccount })];\n }),\n catchError(err => {\n this.logger.log('[AccountsEffects] Update account failed');\n this.settingsService.handleUpdateAccount(false, err);\n return [\n AccountsActions.updateAccount({ account: { id: account.id, changes: account } }),\n AccountsActions.updateAccountState({ error: true }),\n AccountsActions.updateSelectedAccount({ account: account })\n ];\n })\n );\n })\n )\n );\n\n public getTrialAccountUsage$ = createEffect(() =>\n this.actions$.pipe(\n ofType(UploadActions.uploadFileToServerFailed),\n withLatestFrom(this.store.select(fromCore.selectedAccountContract)),\n concatMap(([{ error, storeFile }, account]) => {\n // quota error relevant only to trial accounts\n if (\n error?.error?.ErrorType !== APIErrors.ACCOUNT_UPLOAD_QUOTA_EXCEEDED ||\n account?.accountType?.toLowerCase() !== AccountResourceType.TRIAL.toLowerCase()\n ) {\n return EMPTY;\n }\n\n return this.store.select(fromIndexing.selectUploadingQuotaLimitReached).pipe(\n take(1),\n switchMap(quotaLoaded => {\n if (quotaLoaded) {\n return [UploadActions.updateAccountQuotaOnUploadFailure({ file: storeFile })];\n }\n\n return this.apiService.Account.getAccount(account.id, true).pipe(\n concatMap(accountResult => {\n this.handleAccountQuotaNotification(accountResult);\n this.trackService.track('account_effect.get_account_quota.success', {\n category: EventCategory.ACCOUNTS\n });\n return [\n AccountsActions.updateAccountQuota({ accountQuota: accountResult.quotaUsage }),\n UploadActions.updateAccountQuotaOnUploadFailure({ file: storeFile })\n ];\n }),\n catchError(error => {\n this.trackService.track('account_effect.get_account_quota.failed', {\n category: EventCategory.ACCOUNTS,\n data: {\n error: error\n }\n });\n\n return [AccountsActions.updateAccountQuotaFailed()];\n })\n );\n })\n );\n })\n )\n );\n\n // getAccountSettings effect - get account settings\n public getAccountSettings$ = createEffect(() =>\n this.actions$.pipe(\n ofType(AccountsActions.loadAccountSettings),\n withLatestFrom(this.store.select(fromCore.selectAccountTokenPermission)),\n switchMap(([{ id }, permission]) => {\n if (permission === AccountPermission.RESTRICTED_VIEWER) {\n return EMPTY;\n }\n return this.apiService.Account.getAccountSettings(id).pipe(\n switchMap(settings => {\n return [AccountsActions.addAccountSettings({ settings })];\n }),\n catchError(err => {\n return EMPTY;\n })\n );\n })\n )\n );\n\n // updateAccountCelebSettings effect - update account settings\n public updateAccountCelebSettings$ = createEffect(() =>\n this.actions$.pipe(\n ofType(AccountsActions.updateAccountCelebSettings),\n withLatestFrom(this.store.select(fromCore.selectCurrentAccountId)),\n withLatestFrom(this.store.select(fromCore.getSelectedAccountSettings)),\n switchMap(([[{ includeCelebrityRecognition }, id], settings]) => {\n const updatedSettings = {\n ...settings,\n includeCelebrityRecognition: includeCelebrityRecognition\n };\n this.store.dispatch(AccountsActions.addAccountSettings({ settings: updatedSettings }));\n return this.apiService.Account.updateAccountSettings(id, updatedSettings, { permission: AccountPermission.OWNER }).pipe(\n switchMap(() => {\n return EMPTY;\n }),\n catchError(err => {\n this.customizationUtilsService.displayErrorToast(err, { AppSettingsSaveError: '' }, null, false);\n return [\n AccountsActions.addAccountSettings({ settings: { ...updatedSettings, includeCelebrityRecognition: !includeCelebrityRecognition } })\n ];\n })\n );\n })\n )\n );\n\n // deleteOwnAccount effect - delete user's account\n public deleteOwnAccount$ = createEffect(() =>\n this.actions$.pipe(\n ofType(AccountsActions.deleteOwnAccount),\n switchMap(({ id }) => {\n return this.apiService.Account.deleteAccount(id).pipe(\n switchMap(() => {\n this.logger.log('[AccountsEffects] Delete own account success');\n return [AccountsActions.deleteOwnAccountSuccess()];\n }),\n catchError(err => {\n this.logger.log('[AccountsEffects] Delete own account failed');\n this.settingsService.handleDeleteError(err);\n return [AccountsActions.updateAccountState({ error: true, saving: false })];\n })\n );\n })\n )\n );\n\n // recoverOwnAccount effect - delete user's account\n public recoverOwnAccount$ = createEffect(() =>\n this.actions$.pipe(\n ofType(AccountsActions.recoverOwnAccount),\n switchMap(({ id }) => {\n return this.apiService.Account.deleteAccount(id, true).pipe(\n switchMap(() => {\n this.logger.log('[AccountsEffects] Recover own account success');\n this.trackService.track('settings.recover_account.success', {\n category: EventCategory.SETTINGS\n });\n this.toastService.success(this.translateService.instant('SettingsDeleteAccountSuccess'), false);\n return [AccountsActions.recoverOwnAccountSuccess()];\n }),\n catchError(err => {\n this.trackService.track('settings.recover_account.failed', {\n category: EventCategory.SETTINGS,\n data: {\n error: err\n }\n });\n this.toastService.error(null, this.translateService.instant('SettingsDeleteAccountError'), false);\n this.logger.log('[AccountsEffects] Recover own account failed');\n return [AccountsActions.updateAccountState({ error: true, saving: false })];\n })\n );\n })\n )\n );\n\n // leaveAccount effect - remove contributor\n public leaveAccount$ = createEffect(() =>\n this.actions$.pipe(\n ofType(AccountsActions.leaveAccount),\n withLatestFrom(this.store.select(fromCore.getUserDetails)),\n switchMap(([{ id }, user]) => {\n return this.apiService.Account.removeMyself(id, {\n userId: user.id,\n accountId: id,\n permission: AccountPermission.MY_ACCESS_MANAGER\n }).pipe(\n switchMap(() => {\n this.logger.log('[AccountsEffects] Leave account success');\n this.localStorageService.removeItem('accountId');\n return [\n AccountsActions.deleteAccount({ id: id }),\n AccountsActions.selectAccount({}),\n AccountsActions.updateAccountState({ saving: false })\n ];\n }),\n catchError(err => {\n this.logger.log('[AccountsEffects] Leave account failed');\n this.settingsService.handleLeaveError(err);\n return [AccountsActions.updateAccountState({ error: true, saving: false })];\n })\n );\n })\n )\n );\n\n // updateMediaServiceAccount effect - update media services account details\n public updateMediaServiceAccount$ = createEffect(() =>\n this.actions$.pipe(\n ofType(AccountsActions.updateMediaServicesAccount),\n withLatestFrom(this.store.select(fromCore.selectedAccountContract)),\n switchMap(([{ amsUpdateConfig }, selectedAccount]) => {\n const newAccount = {\n ...selectedAccount,\n mediaServices: {\n ...selectedAccount.mediaServices,\n aadApplicationId: amsUpdateConfig.aadConnection.applicationId,\n resourceGroup: amsUpdateConfig.resourceGroup,\n subscriptionId: amsUpdateConfig.subscriptionId\n }\n };\n this.logger.log('[AccountsEffects] Update media services account in store');\n return this.apiService.Account.updateAccountMediaServices(selectedAccount.id, amsUpdateConfig).pipe(\n switchMap(() => {\n this.logger.log('[AccountsEffects] Update media services account success');\n return [AccountsActions.updateSelectedAccount({ account: newAccount })];\n }),\n catchError(err => {\n this.logger.log('[AccountsEffects] Update media services account failed');\n return [AccountsActions.updateAccountState({ saving: false, error: true })];\n })\n );\n })\n )\n );\n\n public navigateToSettings$ = createEffect(() =>\n this.actions$.pipe(\n ofType(AccountsActions.navigateToSettings),\n withLatestFrom(this.store.select(fromCore.selectCurrentAccount)),\n switchMap(([{ tab }, currentAccount]) => {\n if (!currentAccount) {\n return EMPTY;\n }\n const path = VIRoutingMap.settings.path.replace(':accountId', currentAccount.id);\n\n return [\n RouterActions.Go({\n path: [path],\n removeParams: true\n })\n ];\n })\n )\n );\n\n public navigateToCustomization$ = createEffect(() =>\n this.actions$.pipe(\n ofType(AccountsActions.navigateToCustomization),\n withLatestFrom(this.store.select(fromCore.selectCurrentAccount)),\n switchMap(([{ page }, currentAccount]) => {\n if (!currentAccount) {\n return EMPTY;\n }\n const path = `${VIRoutingMap.customization.path.replace(':accountId', currentAccount.id)}/${camelCase(page)}`;\n\n return [\n RouterActions.Go({\n path: [path],\n removeParams: true\n })\n ];\n })\n )\n );\n\n public loadArmAccounts$ = createEffect(() =>\n this.actions$.pipe(\n ofType(AccountsActions.loadArmAccounts),\n switchMap(() => {\n if (!this.featureSwitchService.featureSwitch(FeatureSwitch.UseCacheApi)) {\n return of({});\n }\n\n // first try and fetch from browser cache\n return this.cacheService.match(this.cacheService.resources.ArmAccounts, { maxAge: TimeInterval.DAY * 1 });\n }),\n switchMap((cacheResponse: ICacheResponse = {}) => {\n const { json, date } = cacheResponse;\n\n if (json?.length) {\n this.trackService.track('account_effect.get_cached_arm_accounts.success', {\n category: EventCategory.ACCOUNTS,\n data: {\n count: json.length\n }\n });\n\n // refresh cache in the background in case cache data is older than X minutes\n const refreshThreshold = TimeInterval.MINUTE * 10;\n const shouldRefreshData = new Date().getTime() - new Date(date).getTime() > refreshThreshold;\n\n if (shouldRefreshData) {\n this.store.dispatch(AccountsActions.refreshCachedArmAccounts());\n }\n\n return [json];\n }\n\n // if no cached accounts found, fetch from api and update cache\n return this.apiService.ArmAccount.getArmAccounts().pipe(\n map((armAccounts: AccountContractSlim[]) => {\n this.trackService.track('account_effect.get_arm_accounts.success', {\n category: EventCategory.ACCOUNTS,\n data: {\n count: armAccounts?.length\n }\n });\n\n if (this.featureSwitchService.featureSwitch(FeatureSwitch.UseCacheApi)) {\n this.cacheService.put(this.cacheService.resources.ArmAccounts, armAccounts);\n\n this.trackService.track('account_effect.set_cached_arm_accounts.success', {\n category: EventCategory.ACCOUNTS,\n data: {\n count: armAccounts?.length\n }\n });\n }\n\n return armAccounts;\n }),\n catchError(error => {\n this.trackService.track('account_effect.get_arm_accounts.failed', {\n category: EventCategory.ACCOUNTS,\n data: {\n error\n }\n });\n\n this.store.dispatch(AccountsActions.loadArmAccountsFailed());\n return EMPTY;\n })\n );\n }),\n switchMap(armAccounts => {\n return this.store.select(fromCore.selectUIAccounts).pipe(\n take(1),\n withLatestFrom(this.store.select(fromCore.selectedAccountLoaded)),\n withLatestFrom(this.store.select(fromCore.getUserDetails)),\n switchMap(([[trialAccounts, isSelectedAccountLoaded], user]) => {\n const actionsList = [];\n const allAccounts = [...trialAccounts, ...armAccounts];\n\n actionsList.push(AccountsActions.loadArmAccountsSuccess({ accounts: armAccounts }));\n\n if (!allAccounts.length) {\n this.apiService.setApiBaseLocation(this.configService.Config.api.defaultRegion, envTypes.PAID);\n actionsList.push(AccountsActions.zeroAccountsLoaded());\n } else if (!isSelectedAccountLoaded && this.shouldSelectAccount(trialAccounts, user)) {\n // if no account is selected until now, it will select an account once arm accounts are loaded\n actionsList.push(AccountsActions.selectAccount({ id: allAccounts[0].id }));\n }\n\n this.authService.AccountIds = allAccounts.map(a => a.id);\n\n return actionsList;\n })\n );\n })\n )\n );\n\n public refreshCachedArmAccounts$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(AccountsActions.refreshCachedArmAccounts),\n switchMap(_ => {\n return this.apiService.ArmAccount.getArmAccounts().pipe(\n map((armAccounts: AccountContractSlim[]) => {\n this.cacheService.put(this.cacheService.resources.ArmAccounts, armAccounts);\n\n this.trackService.track('account_effect.refresh_cached_arm_accounts.success', {\n category: EventCategory.ACCOUNTS,\n data: {\n count: armAccounts?.length\n }\n });\n }),\n catchError(error => {\n this.trackService.track('account_effect.refresh_cached_arm_accounts.failed', {\n category: EventCategory.ACCOUNTS,\n data: {\n error\n }\n });\n return EMPTY;\n })\n );\n })\n ),\n {\n dispatch: false\n }\n );\n\n // getSelectedArmAccountDetails effect - gets the expanded details for the selected arm account.\n // called on select account change\n public getSelectedArmAccountDetails$ = createEffect(() =>\n this.actions$.pipe(\n ofType(AccountsActions.selectArmAccount),\n withLatestFrom(this.store.select(fromCore.selectCurrentAccount)),\n withLatestFrom(this.store.select(fromCore.getTenantId)),\n switchMap(([[{ id }, selectCurrentAccount], tenantId]) => {\n if (!this.featureSwitchService.featureSwitch(FeatureSwitch.ARM)) {\n return EMPTY;\n }\n\n const location = getARMLocation(selectCurrentAccount, this.configService);\n this.apiService.setApiBaseLocation(location, envTypes.PAID);\n\n this.store.dispatch(AccountsActions.selectArmAccountProcessing());\n this.store.dispatch(AccountsActions.selectArmAccountSuccess());\n\n this.logger.log(`[AccountsEffects] get selected arm account ${id}`);\n this.trackService.track('account_effect.select_arm_account', {\n category: EventCategory.ACCOUNTS\n });\n return this.apiService.ArmAccount.getArmAccount(\n selectCurrentAccount.subscriptionId,\n selectCurrentAccount.resourceGroupName,\n selectCurrentAccount.name,\n {\n accountId: id,\n location: location\n }\n ).pipe(\n takeUntil(this.actions$.pipe(ofType(AccountsActions.selectAccount))),\n withLatestFrom(this.store.select(fromCore.isArmAmslessAccount)),\n switchMap(([res, isArmAmslessAccount]) => {\n this.logger.log('[AccountsEffects] get selected arm account success');\n const armAccountCacheData: IArmAccountCacheData = {\n subscriptionId: res.subscriptionId,\n resourceGroupName: res.resourceGroupName,\n name: res.name,\n accountId: id,\n location: location\n };\n this.localStorageService.setItem(getLastArmStorageKey(tenantId), JSON.stringify(armAccountCacheData));\n this.localStorageService.setItem(StorageCacheKey.LastAccountType, AccountResourceType.ARM);\n\n this.commonTrackingDataService.accountType = res?.resourceType;\n this.commonTrackingDataService.isAmslessAccount = isArmAmslessAccount;\n\n if (res?.isPaid && res?.mediaServices && !res?.mediaServices.connected) {\n const resource = { StripAmsAddError: '' };\n this.translateService.translateResources(resource);\n const stripData: IStripData = {\n text: resource.StripAmsAddError,\n iconClass: 'i-vi-error',\n show: true,\n messageType: MessageType.ERROR,\n linkCallback: this.stripCallback.bind(this),\n trackingName: 'media.connection.error'\n };\n this.mediaConnectionStripId = this.stripService.trigger(stripData);\n }\n this.trackService.track('account_effect.select_arm_account.success', {\n category: EventCategory.ACCOUNTS\n });\n\n const actions = [];\n\n // load languages models - to check if account has training models\n actions.push(AccountsActions.addSelectedAccount({ account: res }));\n actions.push(LanguageModelActions.loadLanguageModels());\n actions.push(AccountsActions.loadAccountSettings({ id: res.id }));\n\n const isAutoDetectFeatureEnable = this.featureSwitchService.featureSwitch(FeatureSwitch.AutoDetectLanguage);\n if (isAutoDetectFeatureEnable) {\n actions.push(LanguageIdActions.loadDefaultLanguages());\n actions.push(LanguageIdActions.loadSelectedLanguages());\n }\n\n return actions;\n }),\n catchError(error => {\n this.commonTrackingDataService.accountType = '';\n this.logger.error('[AccountsEffects] getSelectedArmAccountDetails failed', error);\n this.trackService.track('account_effect.select_arm_account.failed', {\n category: EventCategory.ACCOUNTS,\n error: JSON.stringify(error)\n });\n return [\n AccountsActions.addSelectedAccountFailed({\n errorType: error?.error?.ErrorType\n })\n ];\n })\n );\n })\n )\n );\n\n // getSelectedArmAccountDetails effect - gets the expanded details for the selected arm account.\n // called on select account change\n public getLastArmAccountDetails$ = createEffect(() =>\n this.actions$.pipe(\n ofType(AccountsActions.loadLastArmAccount),\n withLatestFrom(this.store.select(fromCore.getTenantId)),\n switchMap(([, tenantId]) => {\n if (!this.featureSwitchService.featureSwitch(FeatureSwitch.ARM)) {\n return EMPTY;\n }\n\n const armAccountCache: IArmAccountCacheData = JSON.parse(this.localStorageService.getItem(getLastArmStorageKey(tenantId)));\n\n this.logger.log(\n // eslint-disable-next-line max-len\n `[AccountsEffects] get last selected arm account ${armAccountCache?.subscriptionId}/${armAccountCache?.resourceGroupName}/${armAccountCache?.name}`\n );\n this.trackService.track('account_effect.select_last_arm_account', {\n category: EventCategory.ACCOUNTS\n });\n\n return this.apiService.ArmAccount.getArmAccount(armAccountCache.subscriptionId, armAccountCache.resourceGroupName, armAccountCache.name, {\n accountId: armAccountCache.accountId,\n location: armAccountCache.location\n }).pipe(\n switchMap((res: Microsoft.VideoIndexer.Contracts.AccountContract) => {\n const location = getARMLocation(res, this.configService);\n this.apiService.setApiBaseLocation(location, envTypes.PAID);\n this.logger.log('[AccountsEffects] get last selected arm account success');\n this.authService.UserAccount = res;\n\n const actions = [];\n\n // TODO : load language/speech can be failed for last account which is restricted viewer.\n // We decided to leave it as is. should be solved according to the amount of the failures\n\n actions.push(AccountsActions.addSelectedArmAccount({ account: res }));\n actions.push(AccountsActions.selectArmAccountSuccess());\n actions.push(LanguageModelActions.loadLanguageModels());\n actions.push(AccountsActions.loadAccountSettings({ id: res.id }));\n\n const isAutoDetectFeatureEnable = this.featureSwitchService.featureSwitch(FeatureSwitch.AutoDetectLanguage);\n if (isAutoDetectFeatureEnable) {\n actions.push(LanguageIdActions.loadDefaultLanguages());\n actions.push(LanguageIdActions.loadSelectedLanguages());\n }\n\n return actions;\n }),\n catchError((error: HttpErrorResponse) => {\n this.commonTrackingDataService.accountType = '';\n this.logger.error('[AccountsEffects] getSelectedArmAccountDetails failed', error);\n this.trackService.track('account_effect.select_arm_account.failed', {\n category: EventCategory.ACCOUNTS,\n error: JSON.stringify(error)\n });\n\n // in case of error, wait for the arm accounts to be loaded and select the default account\n return this.store.select(fromCore.armAccountsLoaded).pipe(\n skipWhile(isArmAccountsLoaded => !isArmAccountsLoaded),\n switchMap(() => {\n const actions = [];\n // select different account when the error with 404 status (not found)\n if (error?.status === 404) {\n actions.push(AccountsActions.selectAccount({ id: this.authService.defaultAccountId }));\n } else {\n actions.push(AccountsActions.addSelectedArmAccountFailed({ errorType: error?.error?.ErrorType }));\n }\n return actions;\n })\n );\n })\n );\n })\n )\n );\n\n public checkGalleryProjectTabAccess$ = createEffect(() =>\n this.actions$.pipe(\n ofType(AccountsActions.checkGalleryProjectTabAccess),\n switchMap(() => {\n return this.store.select(fromCore.selectedAccountLoaded).pipe(\n filter(loaded => loaded),\n combineLatestWith(this.store.select(fromCore.selectAccountTokenPermission)),\n filter(([, permission]) => permission !== null),\n take(1),\n switchMap(([, permission]) => {\n if (permission === AccountPermission.RESTRICTED_VIEWER) {\n return [\n AccountsActions.accountHasRestrictedAccess(),\n RouterActions.Go({\n path: [`/${VIRoutingMap.mediaGallery.path}/${VIRoutingMap.galleryLibrary.path}`],\n extras: null,\n queryParams: null,\n removeParams: true\n })\n ];\n }\n return EMPTY;\n })\n );\n })\n )\n );\n\n public acceptUseFaces$ = createEffect(() =>\n this.actions$.pipe(\n ofType(AccountsActions.acceptUseOfFacialIdentification),\n withLatestFrom(this.store.select(fromCore.selectCurrentAccount)),\n switchMap(([{ signature, useCase }, account]) => {\n return this.apiService.Account.updateFaceGateFeatures(account.id, signature, useCase).pipe(\n switchMap(limitedAccessFeatures => {\n this.faceGatePopupService.onUpdateFaceFeaturesSuccess();\n return [AccountsActions.updateFaceGateFeaturesSuccess({ limitedAccessFeatures })];\n }),\n catchError(error => {\n this.faceGatePopupService.onUpdateFaceFeaturesFailed(error);\n return [AccountsActions.updateFaceGateFeaturesFailed({ error })];\n })\n );\n })\n )\n );\n\n public faceGatingPopUp$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(AccountsActions.addSelectedAccount),\n mergeWith(this.actions$.pipe(ofType(AccountsActions.addSelectedArmAccount))),\n withLatestFrom(this.store.select(fromCore.selectAccountTokenPermission)),\n withLatestFrom(this.store.select(fromCore.getUserDetails)),\n withLatestFrom(this.store.select(fromCore.isAccountLimitedWithFaces)),\n tap(([[[{ account }, permission], user], isAccountFaceGated]) => {\n this.commonTrackingDataService.isAccountFaceGated = isAccountFaceGated;\n if (this.faceGatePopupService.shouldAutoShow(account, permission, user.signedInUserEmail)) {\n this.faceGatePopupService.autoShowPopup(account, user.signedInUserEmail);\n }\n })\n ),\n {\n dispatch: false\n }\n );\n\n public accountUnavailablePopUp$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(AccountsActions.addSelectedAccount),\n mergeWith(this.actions$.pipe(ofType(AccountsActions.addSelectedArmAccount))),\n withLatestFrom(this.store.select(fromCore.isArmAmslessAccount)),\n filter(([, isArmAmsless]) => !isArmAmsless),\n tap(([{ account }]) => {\n this.handleAccountUnavailableDialog(account);\n })\n ),\n {\n dispatch: false\n }\n );\n\n public loadExtensions$ = createEffect(() =>\n this.actions$.pipe(\n ofType(AccountsActions.loadEdgeExtensions),\n switchMap(() => {\n return this.apiService.EdgeExtensions.list().pipe(\n switchMap((extensions: Microsoft.VideoIndexer.Contracts.IConnectedClusterExtension[] = []) => {\n this.trackService.track('edge.load_extensions.success', {\n category: EventCategory.EDGE,\n data: {\n count: extensions.length\n }\n });\n\n if (!extensions.length) {\n return [AccountsActions.loadEdgeExtensionsSuccess({ extensions: [] })];\n }\n\n return from(this.loadEdgeModule()).pipe(\n switchMap(() => {\n return [AccountsActions.loadEdgeExtensionsSuccess({ extensions })];\n })\n );\n }),\n catchError(error => {\n this.trackService.track('edge.load_extensions.failed', {\n category: EventCategory.EDGE,\n data: { error }\n });\n\n return [AccountsActions.loadEdgeExtensionsFailed()];\n })\n );\n })\n )\n );\n\n private settingsService: SettingsService;\n private mediaConnectionStripId: number;\n private openAIStripId: number;\n\n constructor(\n private logger: LoggerService,\n private actions$: Actions,\n private authService: AuthService,\n private apiService: ApiService,\n private store: Store,\n private trackService: TrackService,\n private localStorageService: LocalStorageService,\n private commonTrackingDataService: CommonTrackingDataService,\n private injector: Injector,\n private stripService: StripService,\n private translateService: TranslateHelperService,\n private featureSwitchService: FeatureSwitchService,\n private configService: ConfigService,\n private customizationUtilsService: CustomizationUtilsService,\n private faceGatePopupService: FaceGatePopupService,\n private edgeExtensionsStore: EdgeExtensionsStoreService,\n private notificationService: NotificationsService,\n private navigationService: AppNavigationService,\n private coreStore: CoreStoreService,\n private toastService: ToastService,\n private cacheService: CacheStorageService,\n private dialogService: DialogService,\n private utilsService: UtilsService\n ) {\n setTimeout(() => {\n this.initSettingsService();\n }, TRANSLATION_DELAY);\n this.initAccountPermission();\n this.initTrackingSelectedAccountId();\n }\n\n private initSettingsService() {\n this.settingsService = this.injector.get(SettingsService);\n }\n\n private shouldSelectAccount(trialAccounts: AccountContractSlim[], user: Microsoft.VideoIndexer.Contracts.UserContractSlim): boolean {\n const lastAccountType = this.localStorageService.getItem(StorageCacheKey.LastAccountType);\n const lastUserEmail = this.localStorageService.getItem(StorageCacheKey.LoginHint);\n const armAccountCache: IArmAccountCacheData = JSON.parse(this.localStorageService.getItem(getLastArmStorageKey(user.tenantId)));\n\n const isLastSelectedArmAccount =\n lastAccountType === AccountResourceType.ARM && lastUserEmail === user.email && armAccountCache?.location && armAccountCache?.accountId;\n\n const isDefaultTrialAccountAlreadySelected = trialAccounts?.length > 0 && lastAccountType !== AccountResourceType.ARM;\n\n // If the last selected account was an ARM account, or if a default trial account has already been selected,\n // then no account should be selected at this point.\n return !isLastSelectedArmAccount && !isDefaultTrialAccountAlreadySelected;\n }\n\n private handleAccountUnavailableDialog(account: Microsoft.VideoIndexer.Contracts.AccountContract) {\n this.logger.log(`[AccountsEffects] handleAccountUnavailableDialog`);\n // If the account is not Amsless / trial - show a dialog that account is unavailable\n if (account?.accountType?.toLowerCase() === AccountResourceType.TRIAL.toLowerCase()) {\n return;\n }\n\n const isClassic = !!account?.mediaServices;\n\n const dialogRef = this.dialogService.openDialog(\n {\n class: 'account-unavailable-dialog',\n component: AccountUnavailableDialogComponent,\n title: this.translateService.instant('accountUnavailableDialog_Header'),\n secondaryButton: {\n type: ActionButtonType.SECONDARY,\n action: { title: this.translateService.instant('Close'), value: null, id: 'close' }\n },\n componentData: {\n isClassic: isClassic\n }\n },\n '500px',\n '255px',\n 'account-unavailable-dialog-container',\n false\n );\n }\n\n private handleAccountQuotaNotification(account: Microsoft.VideoIndexer.Contracts.AccountContract) {\n if (account?.accountType?.toLowerCase() !== AccountResourceType.TRIAL.toLowerCase()) {\n return;\n }\n\n const quota = account.quotaUsage;\n const accountId = account.id;\n const quotaErrors = [\n {\n condition: () => isAccountDurationQuotaExceeded(quota),\n title: 'AccountDurationQuotaError',\n text: 'UploadFileAccountDurationQuotaError'\n },\n {\n condition: () => isAccountDailyCountQuotaExceeded(quota),\n title: 'AccountDailyCountQuotaError',\n text: 'UploadFileAccountDailyCountQuotaError'\n },\n {\n condition: () => isAccountDailyDurationQuotaExceeded(quota),\n title: 'AccountDailyDurationQuotaError',\n text: 'UploadFileAccountDailyDurationQuotaError'\n }\n ];\n const quotaError = quotaErrors.find(error => error.condition());\n\n if (quotaError) {\n const notification: INotification = this.getQuotaErrorMessageNotification(accountId, quotaError);\n this.notificationService.notify(notification);\n }\n }\n\n private getQuotaErrorMessageNotification(accountId: string, quotaError: { condition: () => boolean; title: string; text: string }): INotification {\n return {\n id: `${accountId}-quotaError`,\n messageType: NotificationMessageType.Custom,\n startDate: new Date(),\n endDate: new Date(),\n type: NotificationType.Alert,\n level: NotificationLevel.Warning,\n icon: NotificationIcon.Warning,\n title: this.translateService.instant(quotaError.title),\n toasted: true,\n link: {\n text: this.translateService.instant('AccountQuotaErrorCreateArmAccountLink'),\n callback: () => {\n this.navigationService.createAccountSubject.next(NavigationState.OPEN);\n }\n },\n text: this.translateService.instant(quotaError.text)\n };\n }\n\n private initAccountPermission() {\n this.authService.accountAccessTokenPermission$.subscribe(permission => {\n this.store.dispatch(AccountsActions.loadAccountAccessTokenPermission({ permission }));\n this.commonTrackingDataService.accountPermission = permission;\n });\n }\n\n private stripCallback($event) {\n this.store.dispatch(AccountsActions.navigateToSettings({}));\n }\n\n private initTrackingSelectedAccountId() {\n this.coreStore.selectedAccountId$.subscribe(accountId => {\n this.commonTrackingDataService.accountId = accountId;\n });\n }\n private async loadEdgeModule() {\n const { EdgeModule } = await import('../../edge/edge.module');\n // as type any because the edge module using providers in ctor\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n createNgModule(EdgeModule as Type, this.injector);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Store } from '@ngrx/store';\n\nimport { filter, mergeWith, switchMap, tap, withLatestFrom, catchError, delay, takeUntil } from 'rxjs/operators';\nimport { EMPTY } from 'rxjs';\n\nimport { UtilsService } from '@common/modules/shared/services/utils.service';\nimport { EventCategory, TrackService } from '@common/modules/core/services/track';\nimport { ApiService } from '@common/modules/api/services/api.service';\nimport { NotificationsService } from '@common/modules/notifications/services/notifications.service';\nimport { StripService } from '@common/modules/shared/components/strip/strip.service';\nimport { IStripData } from '@common/modules/shared/components/strip/interfaces';\nimport { INotification, INotificationLink } from '@common/modules/core/services/toast/interfaces';\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\nimport { TimeInterval, hasDatePassed, isOverTimeOffset } from '@common/modules/utils/time';\nimport { FeatureSwitch } from '@common/modules/core/services/interfaces';\nimport { FeatureSwitchService } from '@common/modules/core/services/feature-switch/feature-switch.service';\n\nimport { IState } from '../reducers';\nimport * as fromCore from '../selectors';\nimport * as AccountsActions from '../actions/accounts.actions';\nimport * as MigrationActions from '../actions/ams-migration.actions';\nimport * as fromRouter from '../reducers/router';\nimport { AMSAssetsMigrationStatus, AMSMigrationErrorType } from '../interfaces';\nimport { NotificationsHandlerService } from '../services/notifications-handler.service';\nimport { CoreStoreService } from '../services/core-store.service';\nimport { resources } from '../resources';\nimport * as NotificationsUtils from '../utils/ams-migration-notifications.utils';\nimport { VIRoutingMap } from '../../app/routing/routes';\n\nimport AmsAccountMigration = Microsoft.VideoIndexer.Contracts.AmsAccountMigration;\n\n@Injectable()\nexport class AmsMigrationEffects {\n public updateMigrationStatus$ = createEffect(() =>\n this.actions$.pipe(\n ofType(AccountsActions.addSelectedAccount),\n mergeWith(this.actions$.pipe(ofType(AccountsActions.addSelectedArmAccount))),\n withLatestFrom(this.store.select(fromCore.isArmAmslessAccount)),\n switchMap(([{ account }, isArmAmslessAccount]) => {\n if (!isArmAmslessAccount) {\n return EMPTY;\n }\n\n // Once the feature switch is ON, the account is considered as a \"pure\" Amsless account\n if (this.featureSwitchService.featureSwitch(FeatureSwitch.RemoveAmsMigrationStatus)) {\n return [\n MigrationActions.getAmsMigrationStatusSuccess({\n migrationState: {\n status: AMSAssetsMigrationStatus.NOT_APPLICABLE\n }\n })\n ];\n }\n\n return this.apiService.AmsMigrationApi.getStatus(account.id).pipe(\n takeUntil(this.actions$.pipe(ofType(AccountsActions.selectAccount))),\n switchMap((migrationState: AmsAccountMigration) => {\n this.trackService.track('ams_migration.get_status.success', {\n category: EventCategory.AMS_MIGRATION,\n data: { status: migrationState.status }\n });\n\n return [\n MigrationActions.getAmsMigrationStatusSuccess({\n migrationState: migrationState\n })\n ];\n }),\n catchError(error => {\n this.trackService.track('ams_migration.get_status.failed', {\n category: EventCategory.AMS_MIGRATION,\n data: { error }\n });\n\n // migration was not requested yet\n if (error?.error?.ErrorType === AMSMigrationErrorType.MIGRATION_NOT_STARTED) {\n return [\n MigrationActions.getAmsMigrationStatusSuccess({\n migrationState: {\n status: AMSAssetsMigrationStatus.NOT_STARTED\n }\n })\n ];\n }\n\n // account is AMSless, no migration needed\n if (error?.error?.ErrorType === AMSMigrationErrorType.NOT_APPLICABLE) {\n return [\n MigrationActions.getAmsMigrationStatusSuccess({\n migrationState: {\n status: AMSAssetsMigrationStatus.NOT_APPLICABLE\n }\n })\n ];\n }\n\n return [MigrationActions.getMigrationStatusFailed()];\n })\n );\n })\n )\n );\n\n public publishRequestMigrationNotification$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(MigrationActions.getAmsMigrationStatusSuccess),\n filter(({ migrationState }) => migrationState?.status === AMSAssetsMigrationStatus.NOT_STARTED),\n tap(() => {\n const requestMigrationDeprecationDate = new Date('2024-07-16');\n if (!hasDatePassed(new Date(), requestMigrationDeprecationDate)) {\n const notification = this.notificationsHandlerService.getRequestMigrationNotification();\n this.notificationService.notify(notification);\n }\n })\n ),\n {\n dispatch: false\n }\n );\n\n public publishPendingMigrationBanner$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(MigrationActions.getAmsMigrationStatusSuccess),\n filter(({ migrationState }) => migrationState?.status === AMSAssetsMigrationStatus.PENDING),\n tap(() => {\n const stripData: IStripData = NotificationsUtils.getMigrationPendingBanner(resources.StripAmsMigrationPending);\n this.removeCurrentStrip();\n this.migrationStripId = this.stripService.trigger(stripData);\n })\n ),\n {\n dispatch: false\n }\n );\n\n public publishInProgressMigrationBanner$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(MigrationActions.getAmsMigrationStatusSuccess),\n filter(({ migrationState }) => migrationState?.status === AMSAssetsMigrationStatus.IN_PROGRESS),\n tap(({ migrationState }) => {\n const notification: INotification = NotificationsUtils.getMigrationInProgressNotification(\n resources.NotificationAmsMigrationInProgressTitle,\n resources.NotificationAmsMigrationInProgressMessage,\n !this.migrationStripId || !!this.migrationNotificationId\n );\n\n const stripData: IStripData = NotificationsUtils.getMigrationInProgressBanner(\n resources.StripAmsMigrationInProgress,\n migrationState.progress\n );\n\n this.removeCurrentStrip();\n this.migrationStripId = this.stripService.trigger(stripData);\n this.migrationNotificationId = notification.id;\n this.notificationService.notify(notification);\n }),\n delay(NotificationsUtils.NOTIFICATION_IN_PROGRESS_INTERVAL),\n tap(() => {\n this.store.dispatch(MigrationActions.getAmsMigrationStatusStarted());\n })\n ),\n {\n dispatch: false\n }\n );\n\n public publishMigrationErrorNotification$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(MigrationActions.getAmsMigrationStatusSuccess),\n filter(({ migrationState }) => migrationState?.status === AMSAssetsMigrationStatus.PENDING_USER_ACTION),\n withLatestFrom(this.coreService.selectedAccountContract$),\n tap(([{ migrationState }, account]) => {\n const details = migrationState.details;\n const path = this.utilService.getViResourceOverviewPortalUrl(account?.tenantId, account?.resourceId);\n // when details returns, don't translate the message\n const link: INotificationLink = {\n text: details ? resources.AzurePortalLinkText : resources.NotificationAmsMigrationErrorLinkText,\n src: path\n };\n const notification = NotificationsUtils.getMigrationErrorNotification(\n details ? resources.NotificationAmsMigrationErrorTitleUntranslated : resources.NotificationAmsMigrationErrorTitle,\n details ? details : resources.NotificationAmsMigrationErrorMessage,\n !this.migrationStripId,\n link\n );\n\n const stripText = details\n ? `${details} ${NotificationsUtils.generateBannerLink(path, resources.AzurePortalLinkText)}`\n : this.translate.instant('StripAmsMigrationError', { path });\n const stripData = NotificationsUtils.getMigrationErrorBanner(stripText);\n\n this.removeCurrentStrip();\n this.migrationStripId = this.stripService.trigger(stripData);\n\n this.migrationNotificationId = notification.id;\n this.notificationService.notify(notification);\n })\n ),\n {\n dispatch: false\n }\n );\n\n public publishPartlySuccessfulMigrationNotification$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(MigrationActions.getAmsMigrationStatusSuccess),\n filter(\n ({ migrationState }) =>\n migrationState?.status === AMSAssetsMigrationStatus.FAILED &&\n migrationState?.videosMigrated > 0 &&\n this.showMigrationTool(migrationState.migrationCompletedDate)\n ),\n withLatestFrom(this.store.select(fromRouter.getRouterState)),\n withLatestFrom(this.store.select(fromCore.selectedUIAccount)),\n tap(([[{ migrationState }, routerState], account]) => {\n const details = migrationState.details;\n const path = `/${VIRoutingMap.amsMigrationReport.path}?location=${this.apiService.getApiLocation()}`.replace(':accountId', account.id);\n const link: INotificationLink = {\n text: details ? resources.AmsMigrationReportLinkText : resources.NotificationAmsMigrationPartlySuccessfulLinkText,\n src: `${window.location.origin}${path}`\n };\n\n const notificationText = this.translate.instant('NotificationAmsMigrationPartlySuccessfulMessage', {\n accountName: account.name,\n videosMigrated: migrationState.videosMigrated,\n totalVideos: migrationState.totalVideosToMigrate\n });\n\n const notification = NotificationsUtils.getMigrationPartlySuccessfulNotification(\n resources.NotificationAmsMigrationPartlySuccessfulTitle,\n notificationText,\n // don't show toast when first loading\n !this.migrationStripId,\n link\n );\n\n this.removeCurrentStrip();\n\n // don't show strip when navigating to the report page\n if (routerState?.state?.data?.name !== VIRoutingMap.amsMigrationReport.name) {\n const stripText = details\n ? `${resources.StripAmsMigrationPartlySuccessfulUntranslated} ${details} ${NotificationsUtils.generateBannerLink(\n path,\n resources.AmsMigrationReportLinkText,\n true\n )}`\n : this.translate.instant('StripAmsMigrationPartlySuccessful', { path });\n const stripData = NotificationsUtils.getMigrationPartlySuccessfulBanner(stripText);\n this.migrationStripId = this.stripService.trigger(stripData);\n }\n\n this.removeCurrentNotification();\n this.migrationNotificationId = notification.id;\n this.notificationService.notify(notification);\n })\n ),\n {\n dispatch: false\n }\n );\n\n public publishFailedMigrationNotification$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(MigrationActions.getAmsMigrationStatusSuccess),\n filter(\n ({ migrationState }) =>\n migrationState?.status === AMSAssetsMigrationStatus.FAILED &&\n migrationState.videosMigrated === 0 &&\n this.showMigrationTool(migrationState.migrationCompletedDate)\n ),\n withLatestFrom(this.store.select(fromRouter.getRouterState)),\n withLatestFrom(this.store.select(fromCore.selectedUIAccount)),\n tap(([[{ migrationState }, routerState], account]) => {\n const details = migrationState.details;\n const path = `/${VIRoutingMap.amsMigrationReport.path}?location=${this.apiService.getApiLocation()}`.replace(':accountId', account.id);\n const link: INotificationLink = {\n text: details ? resources.AmsMigrationReportLinkText : resources.NotificationAmsMigrationFailedLinkText,\n src: `${window.location.origin}${path}`\n };\n\n const notification: INotification = NotificationsUtils.getMigrationFailedNotification(\n details ? resources.NotificationAmsMigrationFailedTitleUntranslated : resources.NotificationAmsMigrationFailedTitle,\n details ? details : resources.NotificationAmsMigrationFailedMessage,\n !this.migrationStripId,\n link\n );\n\n this.removeCurrentStrip();\n\n if (routerState?.state?.data?.name !== VIRoutingMap.amsMigrationReport.name) {\n const stripText = details\n ? `${details} ${NotificationsUtils.generateBannerLink(path, resources.AmsMigrationReportLinkText, true)}`\n : this.translate.instant('StripAmsMigrationFailed', { path });\n const stripData: IStripData = NotificationsUtils.getMigrationFailedBanner(stripText);\n this.migrationStripId = this.stripService.trigger(stripData);\n }\n\n this.removeCurrentNotification();\n this.migrationNotificationId = notification.id;\n this.notificationService.notify(notification);\n })\n ),\n {\n dispatch: false\n }\n );\n\n public publishCompletedMigrationNotification$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(MigrationActions.getAmsMigrationStatusSuccess),\n filter(\n ({ migrationState }) =>\n migrationState?.status === AMSAssetsMigrationStatus.COMPLETED && this.showMigrationTool(migrationState.migrationCompletedDate)\n ),\n withLatestFrom(this.store.select(fromRouter.getRouterState)),\n tap(([, routerState]) => {\n const notification = NotificationsUtils.getMigrationCompleteNotification(\n resources.NotificationAmsMigrationCompleteTitle,\n resources.NotificationAmsMigrationCompleteMessage,\n !this.migrationStripId\n );\n\n this.removeCurrentStrip();\n\n if (routerState?.state?.data?.name !== VIRoutingMap.amsMigrationReport.name) {\n const stripData: IStripData = NotificationsUtils.getMigrationCompleteBanner(resources.StripAmsMigrationComplete);\n this.migrationStripId = this.stripService.trigger(stripData);\n }\n\n this.removeCurrentNotification();\n this.migrationNotificationId = notification.id;\n this.notificationService.notify(notification);\n })\n ),\n {\n dispatch: false\n }\n );\n\n public publishMigrationsFallbackBanner$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(MigrationActions.getVideoMigrationsFailed, MigrationActions.getMigrationStatusFailed),\n withLatestFrom(this.store.select(fromRouter.getRouterState)),\n filter(([, routerState]) => routerState?.state?.data?.name === VIRoutingMap.amsMigrationReport.name),\n tap(() => {\n const stripData: IStripData = NotificationsUtils.getMigrationFallbackBanner(resources.StripMigrationFallbackMessage);\n this.removeCurrentStrip();\n this.migrationStripId = this.stripService.trigger(stripData);\n })\n ),\n {\n dispatch: false\n }\n );\n\n public hideMigrationBanner$ = createEffect(() =>\n this.actions$.pipe(\n ofType(AccountsActions.selectAccount),\n withLatestFrom(this.store.select(fromCore.selectedAccountContract)),\n filter(([action, account]) => account?.id !== action?.id),\n switchMap(() => {\n this.removeCurrentStrip();\n this.removeCurrentNotification();\n return [MigrationActions.resetAmsMigrationState()];\n })\n )\n );\n\n public updateVideoMigrations$ = createEffect(() =>\n this.actions$.pipe(\n ofType(MigrationActions.getVideoMigrationStarted),\n withLatestFrom(this.store.select(fromCore.getAmsMigrationResultsNextPage)),\n withLatestFrom(this.coreService.selectedAccountId$),\n switchMap(([[, nextPage], accountId]) => this.getVideoMigrationsHandler(accountId, nextPage?.pageSize, nextPage?.skip))\n )\n );\n\n public loadMoreVideoMigrations$ = createEffect(() =>\n this.actions$.pipe(\n ofType(MigrationActions.loadMoreVideoMigrations),\n withLatestFrom(this.store.select(fromCore.getAmsMigrationResultsNextPage)),\n withLatestFrom(this.coreService.selectedAccountId$),\n switchMap(([[, nextPage], accountId]) => this.getVideoMigrationsHandler(accountId, nextPage?.pageSize, nextPage?.skip))\n )\n );\n\n public setMigrationInterval$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(AccountsActions.selectAccount),\n withLatestFrom(this.coreService.isArmAmslessAccount$),\n filter(([, isAmsless]) => isAmsless),\n tap(() => {\n // if account is interval is not already active, start migration status interval\n if (!this.migrationStatusIntervalActive) {\n this.migrationStatusIntervalActive = true;\n this.store.dispatch(MigrationActions.startMigrationStatusInterval());\n }\n })\n ),\n {\n dispatch: false\n }\n );\n\n public updateMigrationStatusInterval$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(MigrationActions.startMigrationStatusInterval),\n delay(NotificationsUtils.NOTIFICATION_INTERVAL),\n withLatestFrom(this.coreService.isArmAmslessAccount$),\n withLatestFrom(this.store.select(fromCore.getAmsMigrationStatus)),\n tap(([[, isAmsless], migrationState]) => {\n // if migration completed or failed, stop polling for status\n if (\n migrationState?.status === AMSAssetsMigrationStatus.COMPLETED ||\n migrationState?.status === AMSAssetsMigrationStatus.FAILED ||\n !isAmsless\n ) {\n this.migrationStatusIntervalActive = false;\n } else {\n this.store.dispatch(MigrationActions.getAmsMigrationStatusStarted());\n this.store.dispatch(MigrationActions.startMigrationStatusInterval());\n }\n })\n ),\n {\n dispatch: false\n }\n );\n\n public UpdateMigrationStatusProgress$ = createEffect(() =>\n this.actions$.pipe(\n ofType(MigrationActions.getAmsMigrationStatusStarted),\n switchMap(() => this.coreService.selectedAccountId$),\n switchMap(accountId =>\n this.apiService.AmsMigrationApi.getStatus(accountId).pipe(\n switchMap((migrationState: AmsAccountMigration) => {\n this.trackService.track('ams_migration.get_status.success', {\n category: EventCategory.AMS_MIGRATION,\n data: { status: migrationState.status }\n });\n\n return [\n MigrationActions.getAmsMigrationStatusSuccess({\n migrationState\n })\n ];\n }),\n catchError(error => {\n this.trackService.track('ams_migration.get_status.failed', {\n category: EventCategory.AMS_MIGRATION,\n data: { error }\n });\n\n return [MigrationActions.getMigrationStatusFailed()];\n })\n )\n )\n )\n );\n\n public navigateMigrationNotStarted$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(MigrationActions.getAmsMigrationStatusSuccess),\n filter(\n ({ migrationState }) =>\n migrationState?.status === AMSAssetsMigrationStatus.NOT_STARTED || migrationState?.status === AMSAssetsMigrationStatus.NOT_APPLICABLE\n ),\n withLatestFrom(this.store.select(fromRouter.getRouterState)),\n withLatestFrom(this.coreService.selectedAccount$),\n tap(([[, routerState], account]) => {\n if (routerState?.state?.data?.name === VIRoutingMap.amsMigrationReport.name && account?.id === routerState?.state?.params?.accountId) {\n this.coreService.navigate([`${VIRoutingMap.pageNotFoundError}`]);\n }\n })\n ),\n {\n dispatch: false\n }\n );\n\n private migrationStripId: number;\n private migrationNotificationId: string;\n private migrationStatusIntervalActive = false;\n\n constructor(\n private actions$: Actions,\n private store: Store,\n private apiService: ApiService,\n private notificationService: NotificationsService,\n private notificationsHandlerService: NotificationsHandlerService,\n private trackService: TrackService,\n private stripService: StripService,\n private coreService: CoreStoreService,\n private translate: TranslateHelperService,\n private utilService: UtilsService,\n private featureSwitchService: FeatureSwitchService\n ) {}\n\n private showMigrationTool(completed: string) {\n return !isOverTimeOffset(completed, TimeInterval.DAY * 14);\n }\n\n private removeCurrentStrip() {\n if (this.migrationStripId) {\n this.stripService.hideStrip(this.migrationStripId);\n this.migrationStripId = null;\n }\n }\n\n private removeCurrentNotification() {\n if (this.migrationNotificationId) {\n this.notificationService.clear([this.migrationNotificationId]);\n this.migrationNotificationId = null;\n }\n }\n\n private getVideoMigrationsHandler = (accountId: string, pageSize: number, skip: number) => {\n return this.apiService.AmsMigrationApi.getVideoMigrations(accountId, {\n states: [AMSAssetsMigrationStatus.FAILED],\n pageSize: pageSize,\n skip: skip\n }).pipe(\n switchMap(videoMigrations => {\n this.trackService.track('ams_migration.get_video_migrations.success', {\n category: EventCategory.AMS_MIGRATION\n });\n\n return [\n MigrationActions.getVideoMigrationsSucceed({\n videoMigrations\n })\n ];\n }),\n catchError(error => {\n this.trackService.track('ams_migration.get_video_migrations.failed', {\n category: EventCategory.AMS_MIGRATION,\n data: { error }\n });\n return [MigrationActions.getVideoMigrationsFailed()];\n })\n );\n };\n}\n","import { Injectable, Injector } from '@angular/core';\n\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Store } from '@ngrx/store';\n\nimport { switchMap, take, tap } from 'rxjs/operators';\n\nimport { LoggerService } from '@common/modules/core/services/logger/logger.service';\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\nimport { DialogService } from '@common/modules/shared/components/dialog/dialog.service';\nimport { IDialogButton, IDialogData } from '@common/modules/shared/components/dialog/interfaces';\nimport { ActionButtonType } from '@common/modules/shared/components/action-button/interfaces';\nimport { IInvite } from '@common/modules/core/services/interfaces';\nimport { TRANSLATION_DELAY } from '@common/modules/translation/variables';\nimport { TrackService } from '@common/modules/core/services/track';\n\nimport { VIRoutingMap } from '../../app/routing/routes';\nimport { resources } from '../resources';\nimport * as actions from '../actions';\nimport * as RouterActions from '../actions/router.actions';\nimport * as fromUser from '../reducers/user.reducer';\nimport * as InvitationsActions from '../actions/invitations.actions';\n\n@Injectable()\nexport class CoreEffects {\n public sessionExpired$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(actions.sessionExpired),\n tap(() => {\n this.openSessionExpiredDialog();\n })\n ),\n {\n dispatch: false\n }\n );\n\n public loadChunksError$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(actions.loadChunksError),\n tap(() => {\n this.openInternalErrorReloadDialog();\n })\n ),\n {\n dispatch: false\n }\n );\n\n public openShareAccount$ = createEffect(() =>\n this.actions$.pipe(\n ofType(InvitationsActions.openShareAccount),\n switchMap(({ showInviteForm }) => {\n const inviteData: IInvite = {\n id: 'inviteContent',\n showForm: showInviteForm\n };\n this.openInviteDialog(inviteData);\n return [InvitationsActions.loadInvitations()];\n })\n )\n );\n\n public accountHasRestrictedAccess$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(actions.accountHasRestrictedAccess),\n tap(() => {\n this.openHasRestrictedAccessDialog();\n this.trackService.track('restricted_viewer.has_no_access_pop_up');\n })\n ),\n {\n dispatch: false\n }\n );\n\n private resources = resources;\n\n constructor(\n private logger: LoggerService,\n private actions$: Actions,\n private store: Store,\n private dialogService: DialogService,\n private injector: Injector,\n private trackService: TrackService\n ) {\n setTimeout(() => {\n this.init();\n }, TRANSLATION_DELAY);\n }\n\n private init() {\n // translation\n const translationService = this.injector.get(TranslateHelperService);\n translationService\n .translateResources(this.resources)\n .pipe(take(1))\n .subscribe(() => {});\n this.logger.log('[CoreEffects] On Init Effects');\n }\n\n private openSessionExpiredDialog() {\n const button: IDialogButton = {\n type: ActionButtonType.SECONDARY,\n action: {\n title: this.resources.SessionExpiredButton,\n value: null,\n id: 'sessionExpired_btn'\n }\n };\n const dialogData = this.dialogService.getDialogData(\n 'session-expired-dialog',\n this.resources.SessionExpiredTitle,\n this.resources.SessionExpiredContent,\n null,\n button\n );\n\n this.dialogService.closeAllDialogs(this.resources.ForceCloseDialog);\n\n const dialogRef = this.dialogService.openDialog(dialogData, '440px', '212px', 'session-expired-container');\n\n dialogRef\n .afterClosed()\n .pipe(take(1))\n .subscribe(() => {\n this.store.dispatch(\n RouterActions.Go({\n path: [VIRoutingMap.login.path],\n queryParams: null,\n extras: null,\n removeParams: true\n })\n );\n });\n }\n\n private openHasRestrictedAccessDialog() {\n const button: IDialogButton = {\n type: ActionButtonType.SECONDARY,\n action: {\n title: this.resources.Close,\n value: null,\n id: 'close_btn'\n }\n };\n const dialogData = this.dialogService.getDialogData(\n 'has-no-access-dialog',\n this.resources.RestrictedViewerPopupTitle,\n this.resources.RestrictedViewerPopupContent,\n null,\n button\n );\n\n const dialogWidth = '440px';\n const dialogHeight = '240px';\n const dialogPanelClass = 'has-no-access-container';\n\n this.dialogService.openDialog(dialogData, dialogWidth, dialogHeight, dialogPanelClass);\n }\n\n private openInternalErrorReloadDialog() {\n const button: IDialogButton = {\n type: ActionButtonType.SECONDARY,\n action: {\n title: this.resources.InternalErrorReloadButton,\n value: null,\n id: 'InternalErrorReload_btn'\n }\n };\n const dialogData = this.dialogService.getDialogData(\n 'internal-error-reload-dialog',\n this.resources.InternalErrorReloadTitle,\n this.resources.InternalErrorReloadContent,\n null,\n button\n );\n\n this.dialogService.closeAllDialogs(this.resources.ForceCloseDialog);\n\n const dialogRef = this.dialogService.openDialog(dialogData, '440px', '212px', 'internal-error-reload-container');\n\n dialogRef\n .afterClosed()\n .pipe(take(1))\n .subscribe(() => {\n window.location.reload();\n });\n }\n\n private async openInviteDialog(inviteData: IInvite) {\n const button: IDialogButton = {\n type: ActionButtonType.SECONDARY,\n action: {\n title: resources.Close,\n value: null,\n id: 'cancelInviteBtn'\n }\n };\n\n const { InviteComponent } = await import('../../invite/components');\n\n const inviteDialogData: IDialogData = {\n class: 'invite-dialog',\n title: resources.InviteHeader,\n component: InviteComponent,\n componentData: inviteData,\n secondaryButton: button\n };\n this.dialogService.openDialog(inviteDialogData, '540px', 'auto', 'vi-invite', true);\n }\n}\n","import { Inject, Injectable } from '@angular/core';\n\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Store } from '@ngrx/store';\n\nimport { catchError, switchMap, withLatestFrom } from 'rxjs/operators';\nimport { EMPTY } from 'rxjs';\n\nimport { LocalStorageService } from '@common/modules/shared/services/local-storage.service';\nimport { StorageCacheKey } from '@common/modules/shared/interfaces';\nimport { ApiService } from '@common/modules/api/services/api.service';\nimport { TrackService } from '@common/modules/core/services/track/track.service';\nimport { WINDOW } from '@common/modules/core/services/window.token';\nimport { EventCategory } from '@common/modules/core/services/track';\nimport { getLastArmStorageKey } from '@common/modules/shared/arm';\nimport { CacheService } from '@common/modules/auth/services/cache.service';\nimport { UrlService } from '@common/modules/core/services/url/url.service';\n\nimport * as actions from '../actions/index';\nimport * as fromDirectories from '../reducers/directories.reducer';\nimport * as fromCore from '../selectors';\n\nimport DirectoryContract = Microsoft.VideoIndexer.Contracts.DirectoryContract;\n\n@Injectable()\nexport class DirectoriesEffects {\n public loadDirectories$ = createEffect(() =>\n this.actions$.pipe(\n ofType(actions.loadDirectories),\n withLatestFrom(this.store.select(fromCore.selectDirectoriesLoaded)),\n withLatestFrom(this.store.select(fromCore.selectDirectoriesError)),\n switchMap(([[, loaded], error]) => {\n if (loaded && !error) {\n return EMPTY;\n }\n\n if (error) {\n this.store.dispatch(actions.reloadDirectories());\n }\n\n return this.apiService.ArmAccount.getArmDirectories().pipe(\n switchMap((result: DirectoryContract[]) => {\n this.trackService.track('directories.load_directories.success', {\n category: EventCategory.DIRECTORIES,\n data: {\n count: result?.length\n }\n });\n\n return [actions.loadDirectoriesSuccess({ directories: result.length > 0 ? result : [] })];\n }),\n catchError(error => {\n this.trackService.track('directories.load_directories.failed', {\n category: EventCategory.DIRECTORIES,\n error: JSON.stringify(error)\n });\n\n return [actions.loadDirectoriesFailed()];\n })\n );\n })\n )\n );\n\n public selectDirectory$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(actions.selectDirectory),\n withLatestFrom(this.store.select(fromCore.getTenantId)),\n switchMap(([{ tenantId }, currentTenantId]) => {\n if (!tenantId) {\n return EMPTY;\n }\n\n this.trackService.track('directories.select_directory', {\n category: EventCategory.DIRECTORIES,\n data: {\n tenantId\n }\n });\n\n this.localStorageService.removeItem(StorageCacheKey.LastAccountType);\n this.localStorageService.removeItem(getLastArmStorageKey(currentTenantId));\n this.cacheService.removeUserAccessTokens();\n const env = this.urlService.getQueryParam('env') || '';\n let envParam = '';\n if (env) {\n envParam = `&env=${env}`;\n }\n const url = `/Account/SignIn?provider=OpenIdConnect&tenantId=${tenantId}${envParam}`;\n setTimeout(() => {\n this.window.location.replace(url);\n });\n return EMPTY;\n })\n ),\n { dispatch: false }\n );\n\n constructor(\n private actions$: Actions,\n private apiService: ApiService,\n private store: Store,\n private trackService: TrackService,\n private localStorageService: LocalStorageService,\n private cacheService: CacheService,\n private urlService: UrlService,\n @Inject(WINDOW) private window\n ) {}\n}\n","import { Injectable } from '@angular/core';\n\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Store } from '@ngrx/store';\n\nimport { catchError, mergeMap, switchMap, takeUntil, tap, withLatestFrom } from 'rxjs/operators';\nimport { EMPTY } from 'rxjs';\n\nimport { LocalStorageService } from '@common/modules/shared/services/local-storage.service';\nimport { ApiService } from '@common/modules/api/services/api.service';\nimport { TrackService } from '@common/modules/core/services/track/track.service';\nimport { EventCategory } from '@common/modules/core/services/track';\nimport { StorageCacheKey } from '@common/modules/shared/interfaces';\nimport { FeatureSwitchService } from '@common/modules/core/services/feature-switch/feature-switch.service';\nimport { FeatureSwitch } from '@common/modules/core/services/interfaces';\nimport { UserType } from '@common/modules/auth/interfaces';\nimport { CommonTrackingDataService } from '@common/modules/core/services/track/common-tracking-data.service';\nimport { getErrorType } from '@common/modules/api/utils/request.function';\n\nimport { EdgeExtensionsApiHandlerService } from '../services/edge-extensions-api.handler.service';\nimport { EdgeExtensionsStoreService } from '../services/edge-extensions-store.service';\nimport * as actions from '../actions/index';\nimport * as LibraryActions from '../../gallery/core/actions/library.actions';\nimport * as AccountsActions from '../../core/actions/accounts.actions';\nimport * as fromDirectories from '../reducers/directories.reducer';\nimport * as fromCore from '../selectors';\nimport * as fromRouter from '../reducers/router';\nimport * as RouterActions from '../../core/actions/router.actions';\nimport { VIRoutingMap } from '../../app/routing/routes';\nimport { NotificationsHandlerService } from '../services/notifications-handler.service';\n\nimport IConnectedClusterExtension = Microsoft.VideoIndexer.Contracts.IConnectedClusterExtension;\nimport IExtensionInfo = Microsoft.VideoIndexer.Contracts.IExtensionInfo;\n\n@Injectable()\nexport class EdgeExtensionsEffects {\n public userLoaded$ = createEffect(() =>\n this.actions$.pipe(\n ofType(actions.addUser),\n withLatestFrom(this.store.select(fromCore.getTenantId)),\n switchMap(([{ user }, tenantId]) => {\n // TODO - hide edge extensions toggle until we have a better solution\n // const showArcExtensionsSettings = this.localStorageService.getItem(StorageCacheKey.ShowEdgeExtensions) === 'true';\n if (!this.isEdgeEnabled) {\n return [actions.loadEdgeExtensionsNotNeededForInit()];\n }\n\n const actionsList = [];\n const lastEdgeExtensionId = this.localStorageService.getItem(`${StorageCacheKey.LastExtension}_${tenantId}`);\n\n if (user.userType === UserType.MicrosoftCorpAad) {\n actionsList.push(actions.loadEdgeExtensions());\n }\n\n if (!lastEdgeExtensionId) {\n actionsList.push(actions.loadEdgeExtensionsNotNeededForInit());\n }\n\n return actionsList;\n })\n )\n );\n\n // getLastEdgeExtensionsDetails effect - gets the expanded details for the last edge extension if needed\n // called on select account change\n public getLastEdgeExtensionsDetails$ = createEffect(() =>\n this.actions$.pipe(\n ofType(AccountsActions.loadLastArmAccount),\n withLatestFrom(this.store.select(fromCore.getTenantId)),\n withLatestFrom(this.store.select(fromRouter.isGalleryRoute)),\n switchMap(([[, tenantId], isGalleryRoute]) => {\n // TODO - hide edge extensions toggle until we have a better solution\n // const showArcExtensionsSettings = this.localStorageService.getItem(StorageCacheKey.ShowEdgeExtensions) === 'true';\n if (!this.isEdgeEnabled) {\n return EMPTY;\n }\n\n const lastEdgeExtensionId = this.localStorageService.getItem(`${StorageCacheKey.LastExtension}_${tenantId}`);\n if (lastEdgeExtensionId && isGalleryRoute) {\n return [actions.loadLastEdgeExtension()];\n } else {\n this.localStorageService.removeItem(`${StorageCacheKey.LastExtension}_${tenantId}`);\n }\n\n return EMPTY;\n })\n )\n );\n\n public loadLastExtension$ = createEffect(() =>\n this.actions$.pipe(\n ofType(actions.loadLastEdgeExtension),\n withLatestFrom(this.store.select(fromCore.getTenantId)),\n switchMap(([, tenantId]) => {\n const lastExtensionId = this.localStorageService.getItem(`${StorageCacheKey.LastExtension}_${tenantId}`);\n if (!lastExtensionId) {\n return EMPTY;\n }\n\n return this.apiService.EdgeExtensions.get(lastExtensionId).pipe(\n switchMap((result: IConnectedClusterExtension) => {\n this.trackService.track('edge.load_last_extension.success', {\n category: EventCategory.EDGE\n });\n\n return [AccountsActions.loadEdgeExtensionsSuccess({ extensions: [result] }), actions.selectEdgeExtension({ id: result?.id })];\n }),\n catchError(error => {\n this.trackService.track('edge.load_last_extension.failed', {\n category: EventCategory.EDGE,\n data: { error }\n });\n\n return [AccountsActions.loadEdgeExtensionsFailed()];\n })\n );\n })\n )\n );\n\n public handshakeEdgeExtension$ = createEffect(() =>\n this.actions$.pipe(\n ofType(actions.handshakeEdgeExtension),\n withLatestFrom(this.store.select(fromCore.getTenantId)),\n withLatestFrom(this.store.select(fromRouter.isGalleryRoute)),\n mergeMap(([[, tenantId], isGalleryRoute]) => {\n const lastExtensionId = this.localStorageService.getItem(`${StorageCacheKey.LastExtension}_${tenantId}`);\n if (!lastExtensionId) {\n return EMPTY;\n }\n setTimeout(() => {\n this.store.dispatch(LibraryActions.loadingLibrary());\n });\n\n return this.apiService.EdgeExtensions.handshake().pipe(\n // takeUntil is used to stop checking for handshake in case another extension is loaded\n takeUntil(this.actions$.pipe(ofType(actions.selectEdgeExtension))),\n mergeMap((result: IExtensionInfo) => {\n this.trackService.track('edge.get_info.success', {\n category: EventCategory.EDGE,\n data: {\n extensionId: result.extensionId\n }\n });\n\n if (result.extensionId?.toLowerCase() !== lastExtensionId?.toLowerCase()) {\n return [LibraryActions.loadLibraryError({})];\n }\n const actionsList = [];\n actionsList.push(actions.handshakeSuccess());\n\n if (isGalleryRoute) {\n actionsList.push(LibraryActions.loadLibrary());\n }\n\n return actionsList;\n }),\n catchError(error => {\n this.trackService.track('edge.get_info.failed', {\n category: EventCategory.EDGE,\n data: {\n error\n }\n });\n\n return [actions.handshakeFailed(), LibraryActions.loadLibraryError({ errorType: getErrorType(error) })];\n })\n );\n })\n )\n );\n\n public selectExtensionByPrincipalId$ = createEffect(() =>\n this.actions$.pipe(\n ofType(actions.selectEdgeExtensionByPrincipalId),\n withLatestFrom(this.store.select(fromCore.selectEdgeExtensions)),\n withLatestFrom(this.store.select(fromCore.getTenantId)),\n withLatestFrom(this.store.select(fromCore.selectedEdgeExtensionId)),\n switchMap(([[[{ principalId }, extensions], tenantId], selectedEdgeExtensionId]) => {\n const extension = extensions.find(e => e.identity?.principalId === principalId);\n this.localStorageService.setItem(`${StorageCacheKey.LastExtension}_${tenantId}`, extension?.id);\n\n if (selectedEdgeExtensionId === extension?.id) {\n return EMPTY;\n }\n\n return [actions.selectEdgeExtension({ id: extension?.id })];\n })\n )\n );\n\n public clearSelectedExtension$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(actions.clearSelectedEdgeExtension),\n withLatestFrom(this.store.select(fromCore.getTenantId)),\n tap(([, tenantId]) => {\n this.notificationsHandlerService.clearSessionNotifications();\n this.localStorageService.removeItem(`${StorageCacheKey.LastExtension}_${tenantId}`);\n })\n ),\n { dispatch: false }\n );\n\n public selectExtension$ = createEffect(() =>\n this.actions$.pipe(\n ofType(actions.selectEdgeExtension),\n withLatestFrom(this.store.select(fromCore.getTenantId)),\n switchMap(([{ id }, tenantId]) => {\n this.localStorageService.setItem(`${StorageCacheKey.LastExtension}_${tenantId}`, id);\n this.store.dispatch(LibraryActions.clearLibrary());\n\n return [actions.handshakeEdgeExtension()];\n })\n )\n );\n\n public selectEdgeExtensionClicked$ = createEffect(() =>\n this.actions$.pipe(\n ofType(actions.selectEdgeExtensionClicked),\n withLatestFrom(this.store.select(fromRouter.isLibraryRoute)),\n withLatestFrom(this.store.select(fromCore.selectedEdgeExtensionId)),\n switchMap(([[{ id }, isLibraryRoute], selectedEdgeExtensionId]) => {\n if (selectedEdgeExtensionId === id) {\n return EMPTY;\n }\n\n this.notificationsHandlerService.clearSessionNotifications();\n const actionsList = [];\n if (!isLibraryRoute) {\n actionsList.push(\n RouterActions.Go({\n path: [`/${VIRoutingMap.mediaGallery.path}/${VIRoutingMap.galleryLibrary.path}`],\n extras: null,\n queryParams: null,\n removeParams: true\n })\n );\n }\n\n actionsList.push(actions.selectEdgeExtension({ id }));\n\n return actionsList;\n })\n )\n );\n\n private isEdgeEnabled = false;\n\n constructor(\n private actions$: Actions,\n private apiService: ApiService,\n private store: Store,\n private trackService: TrackService,\n private localStorageService: LocalStorageService,\n private extensionsApiHandlerService: EdgeExtensionsApiHandlerService,\n private edgeExtensionsStore: EdgeExtensionsStoreService,\n private commonTrackingDataService: CommonTrackingDataService,\n private featureSwitchService: FeatureSwitchService,\n private notificationsHandlerService: NotificationsHandlerService\n ) {\n this.isEdgeEnabled = this.featureSwitchService.featureSwitch(FeatureSwitch.Edge);\n\n if (this.isEdgeEnabled) {\n this.extensionsApiHandlerService.init();\n this.initTrackingDataService();\n }\n }\n\n private initTrackingDataService() {\n this.edgeExtensionsStore.selectedEdgeExtensionId$.subscribe(id => {\n this.commonTrackingDataService.edgeExtensionId = id;\n });\n }\n}\n","import { Inject, Injectable, Injector } from '@angular/core';\n\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Store } from '@ngrx/store';\n\nimport { catchError, switchMap, tap, withLatestFrom } from 'rxjs/operators';\n\nimport { ClipboardService } from 'ngx-clipboard';\n\nimport { ToastService } from '@common/modules/core/services/toast/toast.service';\nimport { WINDOW } from '@common/modules/core/services/window.token';\nimport { ApiService } from '@common/modules/api/services/api.service';\nimport { EventCategory, TrackService } from '@common/modules/core/services/track';\nimport { APIErrors } from '@common/modules/core/services/toast/errors';\nimport { AccessibilityUtilsService } from '@common/modules/accessibility/accessibility-utils.service';\nimport { TRANSLATION_DELAY } from '@common/modules/translation/variables';\nimport { AccountPermission } from '@common/modules/shared/interfaces';\n\nimport * as InvitationsActions from '../actions/invitations.actions';\nimport * as RoleAssignmentsActions from '../actions/roleAssignments.actions';\nimport { IState } from '../reducers';\nimport * as fromCore from '../../core/selectors';\nimport { resources } from '../resources';\n\n@Injectable()\nexport class InvitationsEffects {\n public loadInvitations$ = createEffect(() =>\n this.actions$.pipe(\n ofType(InvitationsActions.loadInvitations),\n withLatestFrom(this.store.select(fromCore.selectCurrentAccountId)),\n switchMap(([, accountId]) => {\n return this.apiService.Account.getInvitations(accountId, { allowEdit: true, permission: AccountPermission.OWNER }).pipe(\n switchMap(invitations => {\n this.trackService.track('invitations.load.success', {\n category: EventCategory.INVITE\n });\n return [InvitationsActions.loadInvitationsSuccess({ invitations }), RoleAssignmentsActions.loadRoleAssignments()];\n }),\n catchError(err => {\n this.trackService.track('invitations.load.failed', {\n category: EventCategory.INVITE\n });\n const isUserNotAllowedError = err?.error?.ErrorType === APIErrors.USER_NOT_ALLOWED;\n return [InvitationsActions.loadInvitationsFailed({ isUserNotAllowedError })];\n })\n );\n })\n )\n );\n\n public inviteToAccount$ = createEffect(() =>\n this.actions$.pipe(\n ofType(InvitationsActions.inviteToAccount),\n withLatestFrom(this.store.select(fromCore.selectCurrentAccountId)),\n withLatestFrom(this.store.select(fromCore.selectInvitationsLength)),\n switchMap(([[{ formDetails }, accountId], invitationsLength]) => {\n this.store.dispatch(InvitationsActions.inviteToAccountInProgress());\n return this.apiService.Account.inviteToAccount(accountId, formDetails, { permission: AccountPermission.OWNER }, { cache: false }).pipe(\n switchMap(invitations => {\n this.trackService.track('invitations.invite_user.success', {\n category: EventCategory.INVITE\n });\n const emails = formDetails.map(invite => invite.email);\n this.accessibilityUtils.announceDynamicMessage('InviteSuccessNarrator', {\n emails: emails.toString(),\n count: formDetails?.length + invitationsLength\n });\n return [InvitationsActions.inviteToAccountSuccess({ invitations: invitations })];\n }),\n catchError(err => {\n this.trackService.track('invitations.invite_user.failed', {\n category: EventCategory.INVITE\n });\n const isUserNotAllowedError = err?.error?.ErrorType === APIErrors.USER_NOT_ALLOWED;\n return [InvitationsActions.invitationsError({ isUserNotAllowedError })];\n })\n );\n })\n )\n );\n\n public deleteInvitation$ = createEffect(() =>\n this.actions$.pipe(\n ofType(InvitationsActions.deleteInvitation),\n withLatestFrom(this.store.select(fromCore.selectCurrentAccountId)),\n withLatestFrom(this.store.select(fromCore.selectInvitations)),\n withLatestFrom(this.store.select(fromCore.selectInvitationsLength)),\n switchMap(([[[{ invitationId }, accountId], invitations], invitationsLength]) => {\n return this.apiService.Account.deleteInvitation(accountId, invitationId, { permission: AccountPermission.OWNER }).pipe(\n switchMap(() => {\n this.trackService.track('invitations.delete.success', {\n category: EventCategory.INVITE\n });\n this.accessibilityUtils.announceDynamicMessage('InviteRemovingSuccessNarrator', {\n email: invitations[invitationId]?.email,\n count: invitationsLength - 1\n });\n return [InvitationsActions.deleteInvitationSuccess({ invitationId })];\n }),\n catchError(err => {\n this.trackService.track('invitations.delete.failed', {\n category: EventCategory.INVITE\n });\n const isUserNotAllowedError = err?.error?.ErrorType === APIErrors.USER_NOT_ALLOWED;\n return [InvitationsActions.invitationsError({ isUserNotAllowedError })];\n })\n );\n })\n )\n );\n\n public copyInvitationLink$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(InvitationsActions.copyInvitationLink),\n withLatestFrom(this.store.select(fromCore.selectCurrentAccountId)),\n tap(([{ invitationId }, accountId]) => {\n const inviteUrl = this.createInviteUrl(invitationId, accountId);\n this.clipboardService.copyFromContent(inviteUrl);\n this.trackService.track('invitations.copy_url', {\n category: EventCategory.INVITE\n });\n this.toastService.success(resources.InviteCopyInviteUrlSuccessNotification, false);\n })\n ),\n {\n dispatch: false\n }\n );\n\n private toastService: ToastService;\n\n constructor(\n private store: Store,\n private actions$: Actions,\n private apiService: ApiService,\n private trackService: TrackService,\n @Inject(WINDOW) private window,\n private clipboardService: ClipboardService,\n private accessibilityUtils: AccessibilityUtilsService,\n private injector: Injector\n ) {\n setTimeout(() => {\n this.init();\n }, TRANSLATION_DELAY);\n }\n\n private init() {\n this.toastService = this.injector.get(ToastService);\n }\n\n private createInviteUrl(invitationId: number, accountId: string): string {\n let inviteUrl = '';\n if (invitationId) {\n inviteUrl = `${this.window.location.origin}/account/login/?returnUrl=/`;\n inviteUrl += encodeURIComponent(`?accountId=${accountId}&invitationId=${invitationId}`);\n\n if (!this.apiService.isTrialApi()) {\n inviteUrl += encodeURIComponent(`&location=${this.apiService.getApiLocation()}`);\n }\n }\n return inviteUrl;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Action, Store } from '@ngrx/store';\n\nimport { EMPTY, combineLatest } from 'rxjs';\nimport { catchError, delay, filter, mergeMap, skipWhile, switchMap, take, withLatestFrom } from 'rxjs/operators';\n\nimport {\n INotification,\n NotificationFilterType,\n NotificationLevel,\n NotificationMessageType,\n INotificationsResponse,\n NotificationType,\n INotificationLink,\n INotificationButton,\n IBaseNotification\n} from '@common/modules/core/services/toast/interfaces';\nimport { ApiService } from '@common/modules/api/services/api.service';\nimport { LoggerService } from '@common/modules/core/services/logger/logger.service';\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\nimport { INotificationsRequestParams, NotificationExtendedAccountType } from '@common/modules/api/interfaces';\nimport { FeatureSwitch } from '@common/modules/core/services/interfaces';\nimport { FeatureSwitchService } from '@common/modules/core/services/feature-switch/feature-switch.service';\nimport { TimeInterval } from '@common/modules/utils/time';\nimport { EventCategory, TrackService } from '@common/modules/core/services/track';\nimport { notificationTemplates } from '@common/modules/core/services/toast/notifications';\nimport { UtilsService } from '@common/modules/shared/services/utils.service';\nimport { UpdateAccountAction } from '@common/modules/shared/actions';\nimport { AccountPermission } from '@common/modules/shared/interfaces';\nimport { PermissionService } from '@common/modules/shared/services/permission.service';\n\nimport { IState } from '../reducers';\nimport { NotificationsHandlerService } from '../services/notifications-handler.service';\nimport { getNotificationIcon, getNotificationsLevel, getNotificationsType } from '../utils/notifications.utils';\nimport * as fromCore from '../../core/selectors';\nimport * as NotificationsActions from '../actions/notifications.actions';\nimport * as AccountsActions from '../actions/accounts.actions';\n\n@Injectable()\nexport class NotificationsEffects {\n public NOTIFICATIONS_DELAY = TimeInterval.MINUTE * 20; // 20 min pulling delay time\n public lastPollingTime: Date;\n\n public initNotifications$ = createEffect(() =>\n this.actions$.pipe(\n ofType(NotificationsActions.initNotifications),\n withLatestFrom(this.store.select(fromCore.getSelectedAccountLocation)),\n withLatestFrom(this.store.select(fromCore.selectAccountResourceType)),\n withLatestFrom(this.store.select(fromCore.isArmAmslessAccount)),\n withLatestFrom(this.store.select(fromCore.selectAccountTokenPermission)),\n withLatestFrom(this.store.select(fromCore.getUserId)),\n switchMap(([[[[[, location], accountResourceType], isArmAmsless], accountPermission], userId]) => {\n if (!this.featureSwitchService.featureSwitch(FeatureSwitch.NotificationCenter)) {\n return EMPTY;\n }\n this.notificationsInit = true;\n\n const accountTypeRequestParam = isArmAmsless ? NotificationExtendedAccountType.ARM_AMSLESS : accountResourceType;\n\n // loaded notifications data from cache\n this.notificationsHandlerService.loadNotificationsFromCache(userId, location?.toLowerCase(), accountTypeRequestParam?.toLowerCase());\n const params: INotificationsRequestParams = {\n region: location,\n accountType: accountTypeRequestParam\n };\n\n return this.apiService.Notifications.getNotifications(params).pipe(\n switchMap((response: INotificationsResponse) => {\n this.lastPollingTime = new Date();\n const preparedNotifications = this.prepareNotifications(response, accountPermission);\n this.notificationsHandlerService.ETag = response.eTag;\n this.saveNotificationsIds(preparedNotifications.notifications);\n\n if (preparedNotifications.notifications?.length) {\n const notificationsIds = preparedNotifications.notifications.map(n => n.id);\n this.trackService.track('notifications.init_notifications.success', {\n category: EventCategory.NOTIFICATIONS,\n data: {\n ids: notificationsIds,\n count: notificationsIds?.length,\n eTag: preparedNotifications?.eTag,\n accountRegion: location,\n accountType: accountTypeRequestParam\n }\n });\n }\n\n return this.getNotificationsActions(preparedNotifications.notifications);\n }),\n catchError(error => {\n this.lastPollingTime = new Date();\n this.logger.error('[NotificationsEffects] initNotifications failed', error);\n this.trackService.track('notifications.init_notifications.failed', {\n category: EventCategory.NOTIFICATIONS,\n error: JSON.stringify(error)\n });\n return [NotificationsActions.loadNotifications()];\n })\n );\n })\n )\n );\n\n public pollNotifications$ = createEffect(() =>\n this.actions$.pipe(\n ofType(NotificationsActions.loadNotifications),\n delay(this.NOTIFICATIONS_DELAY),\n skipWhile(() => new Date().getTime() - this.lastPollingTime?.getTime() < this.NOTIFICATIONS_DELAY),\n withLatestFrom(this.store.select(fromCore.getSelectedAccountLocation)),\n withLatestFrom(this.store.select(fromCore.selectAccountResourceType)),\n withLatestFrom(this.store.select(fromCore.isArmAmslessAccount)),\n withLatestFrom(this.store.select(fromCore.selectAccountTokenPermission)),\n mergeMap(([[[[, location], accountResourceType], isArmAmsless], accountPermission]) => {\n const accountTypeRequestParam = isArmAmsless ? NotificationExtendedAccountType.ARM_AMSLESS : accountResourceType;\n const params: INotificationsRequestParams = {\n region: location,\n accountType: accountTypeRequestParam\n };\n\n // if last pulling time is more then 6 min don't send eTag to fetch all notifications\n // needed for when user leave the portal tab opened and the computer sleeps\n if (new Date().getTime() - this.lastPollingTime?.getTime() < TimeInterval.MINUTE * 6) {\n const eTag = this.notificationsHandlerService.ETag;\n if (eTag) {\n params.eTag = encodeURIComponent(eTag);\n }\n }\n\n return this.apiService.Notifications.getNotifications(params).pipe(\n switchMap((response: INotificationsResponse) => {\n this.lastPollingTime = new Date();\n const preparedNotifications = this.prepareNotifications(response, accountPermission);\n this.notificationsHandlerService.ETag = response.eTag;\n this.saveNotificationsIds(preparedNotifications.notifications);\n\n if (preparedNotifications.notifications?.length) {\n const notificationsIds = preparedNotifications.notifications.map(n => n.id);\n this.trackService.track('notifications.poll_notifications.success', {\n category: EventCategory.NOTIFICATIONS,\n data: {\n ids: notificationsIds,\n count: notificationsIds?.length,\n eTag: preparedNotifications?.eTag,\n accountRegion: location,\n accountType: accountTypeRequestParam\n }\n });\n }\n\n return this.getNotificationsActions(preparedNotifications.notifications);\n }),\n catchError(error => {\n this.logger.error('[NotificationsEffects] pullNotifications failed', error);\n this.trackService.track('notifications.poll_notifications.failed', {\n category: EventCategory.NOTIFICATIONS,\n error: JSON.stringify(error)\n });\n\n // In case of 401 error, we don't want to retry the request\n if (error?.status === 401) {\n return EMPTY;\n }\n\n return [NotificationsActions.loadNotifications()];\n })\n );\n })\n )\n );\n\n public reloadNotificationsOnAccountChange$ = createEffect(() =>\n this.actions$.pipe(\n ofType(AccountsActions.selectAccount, AccountsActions.loadLastArmAccount, NotificationsActions.reloadNotifications),\n withLatestFrom(this.store.select(fromCore.selectedAccountContract)),\n withLatestFrom(this.store.select(fromCore.selectCurrentAccount)),\n switchMap(([[{}, account], selectCurrentAccount]) => {\n if (!this.featureSwitchService.featureSwitch(FeatureSwitch.NotificationCenter)) {\n return EMPTY;\n }\n\n if (!account && !selectCurrentAccount) {\n setTimeout(() => {\n this.store.dispatch(NotificationsActions.reloadNotifications());\n }, 200);\n return EMPTY;\n }\n\n if (this.notificationsInit && account?.id === selectCurrentAccount?.id) {\n this.logger.log(`[NotificationsEffects] get selected account in state`);\n return [NotificationsActions.loadNotifications()];\n }\n\n this.notificationsHandlerService.clearBannersNotifications();\n\n return [NotificationsActions.initNotifications()];\n })\n )\n );\n\n private notificationsInit = false;\n\n constructor(\n private logger: LoggerService,\n private actions$: Actions,\n private apiService: ApiService,\n private store: Store,\n private trackService: TrackService,\n private utilsService: UtilsService,\n private featureSwitchService: FeatureSwitchService,\n private translate: TranslateHelperService,\n private notificationsHandlerService: NotificationsHandlerService,\n private permissionService: PermissionService\n ) {\n if (this.featureSwitchService.featureSwitch(FeatureSwitch.NotificationCenter)) {\n this.notificationsHandlerService.initNotificationsService();\n }\n }\n\n private prepareNotifications(response: INotificationsResponse, accountPermission: AccountPermission): INotificationsResponse {\n const clearedNotificationsIds = this.notificationsHandlerService.clearedNotificationsIds;\n // ignore notifications with unfamiliar message types and show only those that match the permission\n const supportedNotifications = response?.notifications?.filter(notification => {\n const isSupportedMessageType = !!NotificationMessageType[notification.messageType];\n const hasRequiredPermission = !notification.permission || this.permissionService.ensurePermission(accountPermission, notification.permission);\n\n return isSupportedMessageType && hasRequiredPermission;\n });\n // removed the cleared notifications\n const newNotifications = supportedNotifications?.filter(\n n => !clearedNotificationsIds.includes(n.id) || getNotificationsLevel(n) === NotificationLevel.Critical\n );\n\n return {\n notifications: this.mapNotifications(newNotifications),\n eTag: response.eTag\n };\n }\n\n private mapNotifications(notifications: IBaseNotification[]): INotification[] {\n const clearedNotificationsIds = this.notificationsHandlerService.clearedNotificationsIds;\n // map the common notifications to fill in the data\n return notifications?.map(notification => {\n return {\n ...notification,\n title: this.getNotificationTitle(notification),\n text: this.getNotificationText(notification),\n level: getNotificationsLevel(notification),\n icon: getNotificationIcon(notification),\n type: getNotificationsType(notification),\n link: this.getNotificationLink(notification),\n button: this.getNotificationButton(notification),\n toasted: this.isNotificationsToasted(notification),\n cleared: clearedNotificationsIds.includes(notification.id),\n resolveAccountData: notification.messageType === NotificationMessageType.UpdateAccount\n };\n });\n }\n\n private saveNotificationsIds(notifications: INotification[]): void {\n if (!notifications?.length) {\n return;\n }\n\n // Filter all alert notifications, and spilt them into 3 filter types for saving the ids on the cache\n const alerts = notifications.filter(n => n.type?.toLowerCase() !== NotificationType.Message.toLowerCase());\n const alertsDefaultAndTenantNotificationsIds = alerts\n .filter(\n n =>\n n.filterType?.toLowerCase() === NotificationFilterType.Default.toLowerCase() ||\n n.filterType?.toLowerCase() === NotificationFilterType.Tenant.toLowerCase()\n )\n ?.map(n => n.id);\n const alertsRegionalNotificationsIds = alerts\n .filter(n => n.filterType?.toLowerCase() === NotificationFilterType.Region.toLowerCase())\n ?.map(n => n.id);\n const alertsAccountTypeNotificationsIds = alerts\n .filter(n => n.filterType?.toLowerCase() === NotificationFilterType.AccountType.toLowerCase())\n ?.map(n => n.id);\n\n // Filter all messages notifications, and spilt them into 3 filter types for saving the ids on the cache\n const messages = notifications.filter(n => n.type?.toLowerCase() === NotificationType.Message.toLowerCase());\n const messagesDefaultAndTenantNotificationsIds = messages\n .filter(\n n =>\n n.filterType?.toLowerCase() === NotificationFilterType.Default.toLowerCase() ||\n n.filterType?.toLowerCase() === NotificationFilterType.Tenant.toLowerCase()\n )\n ?.map(n => n.id);\n const messagesRegionalNotificationsIds = messages\n .filter(n => n.filterType?.toLowerCase() === NotificationFilterType.Region.toLowerCase())\n ?.map(n => n.id);\n const messagesAccountTypeNotificationsIds = messages\n .filter(n => n.filterType?.toLowerCase() === NotificationFilterType.AccountType.toLowerCase())\n ?.map(n => n.id);\n\n this.notificationsHandlerService.addNotificationsIds(\n alertsDefaultAndTenantNotificationsIds,\n alertsRegionalNotificationsIds,\n alertsAccountTypeNotificationsIds,\n messagesDefaultAndTenantNotificationsIds,\n messagesRegionalNotificationsIds,\n messagesAccountTypeNotificationsIds\n );\n }\n\n private getNotificationTitle(notification: IBaseNotification): string {\n if (notification.messageType === NotificationMessageType.Custom) {\n return notification.title;\n }\n\n return this.translate.instant(`${notification.messageType}Title`);\n }\n\n private getNotificationText(notification: IBaseNotification): string {\n switch (notification.messageType) {\n case NotificationMessageType.Custom:\n return notification.text;\n case NotificationMessageType.RegionalOutage:\n return this.translate.instant('RegionalOutageText', { region: notification.region });\n default:\n return this.translate.instant(`${notification.messageType}Text`);\n }\n }\n\n private getNotificationButton(notification: IBaseNotification): INotificationButton {\n switch (notification.messageType) {\n case NotificationMessageType.UpdateAccount:\n return {\n action: {\n ...UpdateAccountAction,\n title: this.translate.instant('UpdateAccountNotificationButtonText')\n },\n callback: () => {\n combineLatest([this.store.select(fromCore.selectedAccountContract), this.store.select(fromCore.accountError)])\n .pipe(\n filter(([account, error]) => !!account || error), // wait for account to be loaded or error to appear\n take(1)\n )\n .subscribe(([account, _error]) => {\n const url = this.utilsService.getUpdateAccountPortalUrl(account?.tenantId, account?.resourceId);\n // on error the url will be redirected to ibiza home page\n window.open(url, '_blank');\n });\n }\n };\n default:\n return notificationTemplates[notification.messageType]?.button\n ? {\n ...notificationTemplates[notification.messageType].button\n }\n : null;\n }\n }\n\n private getNotificationLink(notification: INotification): INotificationLink {\n if (notification.messageType === NotificationMessageType.Custom) {\n return notification.link?.src\n ? {\n ...notification.link\n }\n : null;\n }\n\n return notificationTemplates[notification.messageType]?.link\n ? {\n src: notificationTemplates[notification.messageType].link.src,\n text: this.translate.instant(`${notification.messageType}LinkText`)\n }\n : null;\n }\n\n private isNotificationsToasted(notification: INotification) {\n if (notification.toasted) {\n return true;\n }\n\n // On Critical level notifications we always want to show on refresh\n const level = getNotificationsLevel(notification);\n if (level === NotificationLevel.Critical) {\n return false;\n }\n\n // if notification is not Critical we check if it toasted from the cache\n const toastedNotificationsIds = this.notificationsHandlerService.toastedNotificationsIds;\n return toastedNotificationsIds.includes(notification.id);\n }\n\n private getNotificationsActions(notifications: INotification[]) {\n const bannersNotifications = notifications.filter(n => n.type?.toLowerCase() === NotificationType.Banner.toLowerCase());\n const alertsNotifications = notifications.filter(n => n.type?.toLowerCase() === NotificationType.Alert.toLowerCase());\n const messagesNotifications = notifications.filter(n => n.type?.toLowerCase() === NotificationType.Message.toLowerCase());\n const actions: Action[] = [];\n if (bannersNotifications?.length) {\n actions.push(NotificationsActions.addNotificationsBanners({ notifications: bannersNotifications }));\n }\n if (alertsNotifications?.length) {\n actions.push(NotificationsActions.addNotificationsAlerts({ notifications: alertsNotifications }));\n }\n if (messagesNotifications?.length) {\n actions.push(NotificationsActions.addNotificationMessages({ notifications: messagesNotifications }));\n }\n actions.push(NotificationsActions.loadNotifications());\n return actions;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Store } from '@ngrx/store';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\n\nimport { catchError, switchMap, withLatestFrom } from 'rxjs/operators';\n\nimport { ApiService } from '@common/modules/api/services/api.service';\nimport { EventCategory, TrackService } from '@common/modules/core/services/track';\nimport { APIErrors } from '@common/modules/core/services/toast/errors';\nimport { AccessibilityUtilsService } from '@common/modules/accessibility/accessibility-utils.service';\nimport { AccountPermission } from '@common/modules/shared/interfaces';\n\nimport * as RoleAssignmentsActions from '../actions/roleAssignments.actions';\nimport { IState } from '../reducers';\nimport * as fromCore from '../../core/selectors';\n\n@Injectable()\nexport class RoleAssignmentsEffects {\n public loadRoleAssignments$ = createEffect(() =>\n this.actions$.pipe(\n ofType(RoleAssignmentsActions.loadRoleAssignments),\n withLatestFrom(this.store.select(fromCore.selectCurrentAccountId)),\n switchMap(([, accountId]) => {\n this.store.dispatch(RoleAssignmentsActions.loadRoleAssignmentsInProgress());\n return this.apiService.Account.getRoleAssignments(accountId, { permission: AccountPermission.OWNER }).pipe(\n switchMap(roleAssignments => {\n this.trackService.track('roleAssignments.load.success', {\n category: EventCategory.INVITE\n });\n return [RoleAssignmentsActions.loadRoleAssignmentsSuccess({ roleAssignments })];\n }),\n catchError(err => {\n this.trackService.track('roleAssignments.load.failed', {\n category: EventCategory.INVITE\n });\n const isUserNotAllowedError = err?.error?.ErrorType === APIErrors.USER_NOT_ALLOWED;\n return [RoleAssignmentsActions.loadRoleAssignmentsFailed({ isUserNotAllowedError })];\n })\n );\n })\n )\n );\n\n public deleteRoleAssignment$ = createEffect(() =>\n this.actions$.pipe(\n ofType(RoleAssignmentsActions.deleteRoleAssignment),\n withLatestFrom(this.store.select(fromCore.selectCurrentAccountId)),\n withLatestFrom(this.store.select(fromCore.selectRoleAssignments)),\n switchMap(([[{ roleAssignmentId }, accountId], roleAssignments]) => {\n return this.apiService.Account.deleteRoleAssignment(accountId, roleAssignmentId, { permission: AccountPermission.OWNER }).pipe(\n switchMap(() => {\n this.trackService.track('roleAssignments.delete.success', {\n category: EventCategory.INVITE\n });\n this.accessibilityUtils.announceDynamicMessage('RoleAssignRemovingSuccessNarrator', {\n email: roleAssignments[roleAssignmentId]?.user?.email\n });\n return [RoleAssignmentsActions.deleteRoleAssignmentSuccess({ roleAssignmentId })];\n }),\n catchError(err => {\n this.trackService.track('roleAssignments.delete.failed', {\n category: EventCategory.INVITE\n });\n const isUserNotAllowedError = err?.error?.ErrorType === APIErrors.USER_NOT_ALLOWED;\n return [RoleAssignmentsActions.roleAssignmentsError({ isUserNotAllowedError })];\n })\n );\n })\n )\n );\n\n public updateRoleAssignments$ = createEffect(() =>\n this.actions$.pipe(\n ofType(RoleAssignmentsActions.updateRoleAssignments),\n withLatestFrom(this.store.select(fromCore.selectCurrentAccountId)),\n switchMap(([{ roleAssignmentId, role }, accountId]) => {\n return this.apiService.Account.updateRoleAssignment(\n accountId,\n roleAssignmentId,\n { type: role },\n { permission: AccountPermission.OWNER }\n ).pipe(\n switchMap(() => {\n this.trackService.track('roleAssignments.update.success', {\n category: EventCategory.INVITE\n });\n return [RoleAssignmentsActions.updateRoleAssignmentsSuccess({ roleAssignmentId, role })];\n }),\n catchError(err => {\n this.trackService.track('roleAssignments.update.failed', {\n category: EventCategory.INVITE\n });\n const isUserNotAllowedError = err?.error?.ErrorType === APIErrors.USER_NOT_ALLOWED;\n return [RoleAssignmentsActions.roleAssignmentsError({ isUserNotAllowedError })];\n })\n );\n })\n )\n );\n\n constructor(\n private actions$: Actions,\n private apiService: ApiService,\n private trackService: TrackService,\n private store: Store,\n private accessibilityUtils: AccessibilityUtilsService\n ) {}\n}\n","import { Location } from '@angular/common';\nimport { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { ROUTER_NAVIGATION } from '@ngrx/router-store';\nimport { Store } from '@ngrx/store';\n\nimport { tap, withLatestFrom } from 'rxjs/operators';\n\nimport { LoggerService } from '@common/modules/core/services/logger/logger.service';\nimport { AppNavigationService } from '@common/modules/core/services/app/app-navigation.service';\nimport { TrackService } from '@common/modules/core/services/track';\nimport { AuthService } from '@common/modules/auth/services/auth.service';\nimport { EnvironmentNames } from '@common/modules/shared/environments';\n\nimport { VIRoutingMap } from '../../app/routing/routes';\nimport { IState } from '../reducers';\nimport { IVIRoute } from '../../app/routing/interfaces';\nimport * as RouterActions from '../actions/router.actions';\nimport * as fromRouter from '../reducers/router';\n\n@Injectable()\nexport class AppRouterEffects {\n public navigate$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(RouterActions.Go),\n withLatestFrom(this.store.select(fromRouter.getQueryParams)),\n withLatestFrom(this.store.select(fromRouter.getRouterState)),\n tap(([[{ path, queryParams, extras, removeParams }, routerQueryParams], routerState]) => {\n if (!this.authService.isAuthenticated() && routerState?.state?.data?.name === VIRoutingMap.login.name) {\n // No navigation when user is not authenticated from login page\n return;\n }\n\n if (\n !removeParams &&\n !queryParams &&\n (path[0]?.includes(VIRoutingMap.galleryLibrary.path) ||\n path[0]?.includes(VIRoutingMap.galleryProjects.path) ||\n path[0]?.includes(VIRoutingMap.gallerySamples.path))\n ) {\n return this.router.navigate(path, { queryParams: routerQueryParams, ...extras });\n }\n\n if (routerQueryParams['env'] === EnvironmentNames.Localhost) {\n queryParams = { ...queryParams, env: EnvironmentNames.Localhost };\n }\n\n // If contain invitation\n if (routerQueryParams.returnUrl?.includes('accountId') && routerQueryParams.returnUrl?.includes('invitationId')) {\n queryParams = { ...queryParams, invitation: routerQueryParams.returnUrl };\n }\n\n return this.router.navigate(path, { queryParams, ...extras });\n })\n ),\n { dispatch: false }\n );\n\n public navigateBack$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(RouterActions.Back),\n tap(() => this.location.back())\n ),\n { dispatch: false }\n );\n\n public navigateForward$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(RouterActions.Forward),\n tap(({}) => this.location.forward())\n ),\n { dispatch: false }\n );\n\n public route$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(ROUTER_NAVIGATION),\n withLatestFrom(this.store.select(fromRouter.getRouterState)),\n tap(([, routerState]) => {\n // Track route\n const routeData = routerState?.state.data as IVIRoute;\n // If route data is part of RoutingMap\n if (routeData?.name && routeData?.traceName) {\n this.trackingService.trackPageView(`route.${routeData.traceName}`);\n this.logger.log('[AppRouterEffects] router route:' + routeData.name);\n } else {\n this.trackingService.trackPageView(`unknown tracking data: ${routerState?.state.filteredUrl}`);\n this.logger.log('[AppRouterEffects] unknown tracking data');\n }\n\n const queryParams = routerState?.state?.queryParams;\n this.logger.log(queryParams);\n })\n ),\n { dispatch: false }\n );\n\n constructor(\n private logger: LoggerService,\n private actions$: Actions,\n private router: Router,\n private location: Location,\n private store: Store,\n private navigationService: AppNavigationService,\n private trackingService: TrackService,\n private authService: AuthService\n ) {}\n}\n","import { Injectable } from '@angular/core';\n\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { ROUTER_NAVIGATION } from '@ngrx/router-store';\nimport { Store } from '@ngrx/store';\n\nimport { switchMap, tap, withLatestFrom } from 'rxjs/operators';\nimport { EMPTY } from 'rxjs';\n\nimport { CustomizationPage, SideMenuOption } from '@common/modules/core/services/interfaces';\n\nimport { VIRoutingMap } from '../../app/routing/routes';\nimport * as AccountsActions from '../actions/accounts.actions';\nimport * as CustomizationViewActions from '../actions/customization-view.actions';\nimport * as RouterActions from '../actions/router.actions';\nimport * as SideMenuActions from '../actions/side-menu.actions';\nimport { IState } from '../reducers';\nimport { ofRoute } from '../services/operations';\nimport { SpeechPageStoreService } from '../../customization-data/services/speech/speech-page-store.service';\nimport { EdgeExtensionsStoreService } from '../services/edge-extensions-store.service';\n\n@Injectable()\nexport class SideMenuEffects {\n public navigateFromSideMenu$ = createEffect(() =>\n this.actions$.pipe(\n ofType(SideMenuActions.sideMenuOptionSelected),\n switchMap(({ option }) => {\n switch (option) {\n case SideMenuOption.Customizations:\n this.handleCustomizationsOptionSelected();\n return EMPTY;\n // please leave init page null because in responsive view customization sub menu is always shown\n case SideMenuOption.Settings:\n return [AccountsActions.navigateToSettings({}), CustomizationViewActions.initPage({ page: null })];\n case SideMenuOption.Media:\n return [RouterActions.Go({ path: [`/${VIRoutingMap.mediaGallery.path}`] }), CustomizationViewActions.initPage({ page: null })];\n }\n })\n )\n );\n\n public sideMenuCustomizationNavigation$ = createEffect(() =>\n this.actions$.pipe(\n ofType(ROUTER_NAVIGATION),\n ofRoute(this.customizationRoutes),\n switchMap(() => {\n return [SideMenuActions.sideMenuInitOption({ option: SideMenuOption.Customizations })];\n })\n )\n );\n\n public sideMenuSpeechNavigation$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(ROUTER_NAVIGATION),\n ofRoute([\n `/${VIRoutingMap.customization.path}/${VIRoutingMap.customizationSpeech.path}/${VIRoutingMap.customizationSpeechDatasets.path}`,\n `/${VIRoutingMap.customization.path}/${VIRoutingMap.customizationSpeech.path}/${VIRoutingMap.customizationSpeechModels.path}`\n ]),\n tap(() => {\n this.speechPageStoreService.isSpeechEnabled().subscribe(isSpeechEnabled => {\n if (isSpeechEnabled) {\n this.store.dispatch(SideMenuActions.sideMenuInitOption({ option: SideMenuOption.Customizations }));\n }\n });\n })\n ),\n {\n dispatch: false\n }\n );\n public sideMenuSettingsNavigation$ = createEffect(() =>\n this.actions$.pipe(\n ofType(ROUTER_NAVIGATION),\n ofRoute([`/${VIRoutingMap.settings.path}`]),\n switchMap(() => {\n return [SideMenuActions.sideMenuInitOption({ option: SideMenuOption.Settings })];\n })\n )\n );\n public sideMenuMediaNavigation$ = createEffect(() =>\n this.actions$.pipe(\n ofType(ROUTER_NAVIGATION),\n ofRoute([\n `/${VIRoutingMap.mediaGallery.path}/${VIRoutingMap.galleryLibrary.path}`,\n `/${VIRoutingMap.mediaGallery.path}/${VIRoutingMap.galleryProjects.path}`,\n `/${VIRoutingMap.mediaGallery.path}/${VIRoutingMap.gallerySamples.path}`,\n `/${VIRoutingMap.mediaVideo.path}`,\n `/${VIRoutingMap.mediaProject.path}`,\n `/${VIRoutingMap.edgeExtensionVideo.path}`\n ]),\n switchMap(() => {\n return [SideMenuActions.sideMenuInitOption({ option: SideMenuOption.Media })];\n })\n )\n );\n\n private get customizationRoutes() {\n return [\n `/${VIRoutingMap.customization.path}/${VIRoutingMap.customizationPeople.path}`,\n `/${VIRoutingMap.customization.path}/${VIRoutingMap.catalog.path}`,\n `/${VIRoutingMap.customization.path}/${VIRoutingMap.customizationPeople.path}/${VIRoutingMap.customizationPeopleUnknown.path}`,\n `/${VIRoutingMap.customization.path}/${VIRoutingMap.customizationLanguage.path}`,\n `/${VIRoutingMap.customization.path}/${VIRoutingMap.customizationBrands.path}`,\n `/${VIRoutingMap.customization.path}/${VIRoutingMap.customizationLanguageId.path}`\n ];\n }\n\n constructor(\n private store: Store,\n private actions$: Actions,\n private speechPageStoreService: SpeechPageStoreService,\n private edgeExtensionsStoreService: EdgeExtensionsStoreService\n ) {}\n\n private handleCustomizationsOptionSelected() {\n this.speechPageStoreService\n .isSpeechEnabled()\n .pipe(withLatestFrom(this.edgeExtensionsStoreService.hasEdgeExtensions$))\n .subscribe(([isSpeechEnabled, hasEdgeExtensions]) => {\n let defaultPage: CustomizationPage;\n if (hasEdgeExtensions) {\n defaultPage = CustomizationPage.Catalog;\n } else if (isSpeechEnabled) {\n defaultPage = CustomizationPage.Speech;\n } else {\n defaultPage = CustomizationPage.Language;\n }\n this.store.dispatch(AccountsActions.navigateToCustomization({ page: defaultPage }));\n });\n }\n}\n","import { Injectable, Injector } from '@angular/core';\n\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Store } from '@ngrx/store';\n\nimport { EMPTY } from 'rxjs';\nimport { catchError, switchMap, withLatestFrom } from 'rxjs/operators';\n\nimport { envTypes } from '@common/modules/api/interfaces';\nimport { ApiService } from '@common/modules/api/services/api.service';\nimport { isUserNotAuthenticatedError } from '@common/modules/api/utils/request.function';\nimport { AccountResourceType, IAuthenticatedUser, UserType } from '@common/modules/auth/interfaces';\nimport { AuthService } from '@common/modules/auth/services/auth.service';\nimport { ConfigService } from '@common/modules/core/services/config/config.service';\nimport { FeatureSwitch } from '@common/modules/core/services/interfaces';\nimport { FeatureSwitchService } from '@common/modules/core/services/feature-switch/feature-switch.service';\nimport { LoggerService } from '@common/modules/core/services/logger/logger.service';\nimport { EventCategory, TrackService } from '@common/modules/core/services/track';\nimport { MigrationTimeOffset, getLastArmStorageKey } from '@common/modules/shared/arm';\nimport { IStripData, MessageType } from '@common/modules/shared/components/strip/interfaces';\nimport { StripService } from '@common/modules/shared/components/strip/strip.service';\nimport { StorageCacheKey } from '@common/modules/shared/interfaces';\nimport { LocalStorageService } from '@common/modules/shared/services/local-storage.service';\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\n\nimport { VIRoutingMap } from '../../app/routing/routes';\nimport * as SupportedLanguageIDActions from '../../customization-data/actions/supported-languages-ids.actions';\nimport * as fromRouter from '../../core/reducers/router';\nimport * as fromCore from '../../core/selectors';\nimport * as actions from '../actions/index';\nimport { IArmAccountCacheData } from '../interfaces';\nimport * as fromUser from '../reducers/user.reducer';\nimport { SurveyService } from '../services/survery.service';\nimport { UserService } from '../services/user.service';\nimport { getSelectedAccountId } from './utils';\n\nimport UserContract = Microsoft.VideoIndexer.Contracts.UserContract;\n\n@Injectable()\nexport class UserEffects {\n // loadUserMetadata effect - get user data\n // called on UserEffects init\n // eslint-disable-next-line\n public loadUserMetadata$ = createEffect(() =>\n this.actions$.pipe(\n ofType(actions.loadUserDetails),\n withLatestFrom(this.store.select(fromCore.isUserDetailsLoaded)),\n withLatestFrom(this.store.select(fromCore.isUserDetailsLoading)),\n withLatestFrom(this.routerStore.select(fromRouter.getRouterState)),\n switchMap(([[[{ forceLoad, selectAccountId }, loaded], loading], routerState]) => {\n if (!routerState?.state?.url) {\n setTimeout(() => {\n this.store.dispatch(actions.loadUserDetails({}));\n }, 200);\n return EMPTY;\n }\n if (\n ((loaded || loading) && !forceLoad) ||\n routerState?.state?.url?.includes(VIRoutingMap.login.path) ||\n routerState?.state?.url?.includes(VIRoutingMap.logout.path)\n ) {\n this.logger.log(`[UserEffects] not loadUserMetadata loaded: ${loaded}, loading: ${loading}`);\n return EMPTY;\n }\n this.store.dispatch(actions.loadUserDetailsInProgress());\n this.logger.log('[UserEffects] Load User Details');\n return this.apiService.User.getUser().pipe(\n switchMap((result: UserContract) => {\n let accounts = result.accounts;\n\n if (accounts?.length && this.featureSwitchService.featureSwitch(FeatureSwitch.HideClassicAccounts)) {\n accounts = accounts.filter(account => account.accountType === envTypes.TRIAL);\n }\n\n // copy all user properties except accounts\n const user = this.getUserObj(result);\n const authenticatedUser = this.getAuthenticatedUser(result);\n this.authService.authenticatedUser = authenticatedUser;\n const accountIds = accounts?.map(a => a.id);\n this.authService.AccountIds = accountIds;\n const actionsList = [];\n actionsList.push(actions.addUser({ user }), actions.loadUserDetailsSuccess(), actions.addAccounts({ accounts }));\n const locale = user.locale || this.translationService.locale;\n // Set user locale & Login Hint\n const lastUserEmail = this.localStorageService.getItem(StorageCacheKey.LoginHint);\n this.localStorageService.setItem(StorageCacheKey.Locale, locale);\n this.localStorageService.setItem(StorageCacheKey.LoginHint, user.email);\n this.trackService.track('user_effect.load_user_metadata.success', {\n category: EventCategory.USERS,\n locale\n });\n // Update translation to the selected user language\n this.translationService.checkLanguageUpdate(locale);\n if (user.userType === UserType.MicrosoftCorpAad) {\n actionsList.push(actions.loadArmAccounts());\n } else {\n actionsList.push(actions.loadArmAccountsNotNeeded());\n }\n const lastAccountType = this.localStorageService.getItem(StorageCacheKey.LastAccountType);\n const armAccountCache: IArmAccountCacheData = JSON.parse(this.localStorageService.getItem(getLastArmStorageKey(user.tenantId)));\n\n // last selected account is ARM account\n // location and accountId are new parameters that have been added for getting ARM account from FE-Service.\n // We are not loaded ARM account from cache in case users do not have theses new parameters.\n // The behavior will be same as there is no last selected account at all.\n if (\n lastAccountType === AccountResourceType.ARM &&\n user.userType === UserType.MicrosoftCorpAad &&\n lastUserEmail === user.email &&\n armAccountCache?.location &&\n armAccountCache?.accountId\n ) {\n this.authService.UserAccount = {\n id: armAccountCache.accountId,\n name: armAccountCache.name,\n location: armAccountCache.location,\n resourceType: AccountResourceType.ARM,\n subscriptionId: armAccountCache.subscriptionId,\n resourceGroupName: armAccountCache.resourceGroupName\n };\n this.authService.AccountIds = accountIds.concat([armAccountCache.accountId]);\n this.apiService.setApiBaseLocation(armAccountCache.location, envTypes.PAID);\n actionsList.push(actions.loadLastArmAccount({ accountId: armAccountCache.accountId }));\n\n // there is no last ARM selected account\n } else {\n // select last selected trial account or first trial account as default account\n if (accounts?.length > 0) {\n let selectedAccountId = getSelectedAccountId(\n accounts,\n routerState?.state.params,\n selectAccountId,\n this.localStorageService.getItem(StorageCacheKey.LastAccountId)\n );\n let selectedAccount = accounts?.find(account => account.id === selectedAccountId);\n // validating that selectedAccount is not under migration\n if (\n new Date(selectedAccount.moveToArmStartedDate).getTime() >\n new Date(Math.floor(new Date().getTime() / 1000) - MigrationTimeOffset).getTime()\n ) {\n selectedAccount = accounts[0];\n selectedAccountId = selectedAccount.id;\n }\n if (selectedAccount) {\n this.apiService.setApiBaseLocation(selectedAccount.location, selectedAccount.accountType);\n }\n actionsList.push(actions.selectAccount({ id: selectedAccountId }));\n if (routerState?.state?.data?.path !== VIRoutingMap.mediaVideo.path) {\n actionsList.push(actions.loadArmAccountNotNeededForInit());\n }\n\n // there are no trial accounts\n } else if (!accounts?.length) {\n this.apiService.setApiBaseLocation(this.configService.Config.api.defaultRegion, envTypes.PAID);\n if (user.userType !== UserType.MicrosoftCorpAad) {\n actionsList.push(actions.zeroAccountsLoaded());\n }\n // For 'MicrosoftCorpAad' we need to wait for the arm account to load before selecting default account.\n }\n }\n\n if (this.featureSwitchService.featureSwitch('ArmGAStrip') && !this.stripGAId) {\n const resource = { ArmAccountGeneralAvailabilityStrip: '' };\n this.translationService.translateResources(resource);\n\n const stripData: IStripData = {\n text: resource.ArmAccountGeneralAvailabilityStrip,\n show: true,\n hasCloseButton: true,\n messageType: MessageType.INFO,\n linkCallback: event => {\n this.trackService.track('strip.link.clicked', {\n category: EventCategory.NOTIFICATIONS,\n data: {\n href: event.target?.href\n }\n });\n }\n };\n\n this.stripGAId = this.stripService.trigger(stripData);\n }\n\n this.surveyService.showSurveyPopup(user.joinTime);\n actionsList.push(SupportedLanguageIDActions.loadSupportedLanguages());\n return actionsList;\n }),\n catchError(error => {\n this.logger.error('[UserEffects] Load User details failed', error);\n this.trackService.track('user_effect.load_user_metadata.failed', {\n category: EventCategory.USERS,\n data: {\n error: error\n }\n });\n const actionsList = [];\n actionsList.push(actions.loadUserDetailsFailed(), actions.loadAccountsFailed());\n if (isUserNotAuthenticatedError(error)) {\n actionsList.push(actions.loadUserNotAuthenticated());\n }\n return actionsList;\n })\n );\n })\n )\n );\n\n public updateUserSettings$ = createEffect(() =>\n this.actions$.pipe(\n ofType(actions.updateUserApi),\n withLatestFrom(this.store.select(fromCore.getUserDetails)),\n withLatestFrom(this.store.select(fromCore.selectAllAccountsSlim)),\n switchMap(([[newUserSettings, currentUser], accounts]) => {\n this.store.dispatch(actions.updateUser({ user: newUserSettings.user }));\n // create user with new user settings\n const userLocale = newUserSettings.user.locale || this.translationService.locale;\n const newUser: UserContract = {\n ...currentUser,\n getNewsUpdates: newUserSettings.user.getNewsUpdates,\n autoCompleteSearch: newUserSettings.user.autoCompleteSearch,\n showSamplesTab: newUserSettings.user.showSamplesTab,\n showGalleryByDefault: newUserSettings.user.showGalleryByDefault,\n locale: userLocale,\n accounts\n };\n\n this.localStorageService.setItem('vi.locale', userLocale);\n\n return this.apiService.User.saveUser(newUser).pipe(\n switchMap(() => {\n if (newUser.locale !== currentUser.locale) {\n window.location.reload();\n }\n const userService = this.injector.get(UserService);\n userService.toastUserSettingsSaveSuccessfully();\n return EMPTY;\n }),\n catchError(() => {\n // return to previous user properties\n return [actions.updateUser({ user: currentUser })];\n })\n );\n })\n )\n );\n\n private stripGAId: number;\n\n constructor(\n private logger: LoggerService,\n private actions$: Actions,\n private authService: AuthService,\n private apiService: ApiService,\n private store: Store,\n private readonly routerStore: Store,\n private localStorageService: LocalStorageService,\n private trackService: TrackService,\n private translationService: TranslateHelperService,\n private configService: ConfigService,\n private injector: Injector,\n private featureSwitchService: FeatureSwitchService,\n private surveyService: SurveyService,\n private stripService: StripService\n ) {\n this.init();\n }\n\n public init() {\n this.logger.log('[UserEffects] On Init Effects');\n setTimeout(() => {\n this.store.dispatch(actions.loadUserDetails({}));\n }, 300);\n }\n\n private getUserObj(result: UserContract): Microsoft.VideoIndexer.Contracts.UserContractSlim {\n return {\n id: result.id,\n name: result.name,\n isAuthenticated: result.isAuthenticated,\n email: result.email,\n userType: result.userType,\n joinTime: result.joinTime,\n getNewsUpdates: result.getNewsUpdates,\n getVideoNotifications: result.getVideoNotifications,\n showSamplesTab: result.showSamplesTab,\n autoCompleteSearch: result.autoCompleteSearch,\n locale: this.localStorageService.getItem('vi.locale') || result.locale,\n isSuspended: result.isSuspended,\n isAdmin: result.isAdmin,\n showGalleryByDefault: result.showGalleryByDefault,\n image: result.image,\n tenantId: result.tenantId,\n signedInUserEmail: result.signedInUserEmail\n };\n }\n\n private getAuthenticatedUser(result: UserContract): IAuthenticatedUser {\n return {\n upn: result.email,\n name: result.name,\n id: result.id,\n type: result.userType,\n isAdmin: result.isAdmin,\n isSuspended: result.isSuspended,\n tenantId: result.tenantId\n };\n }\n}\n","import { Params } from '@angular/router';\n\nimport { ConfigService } from '@common/modules/core/services/config/config.service';\n\nimport { environment, devEnvironmentMapping } from './../../../../../environments/environment';\n\nexport function getSelectedAccountId(\n accounts: Microsoft.VideoIndexer.Contracts.AccountContractSlim[],\n params: Params,\n selectAccountId: string,\n cachedAccountId: string\n): string {\n if (selectAccountId) {\n return selectAccountId;\n }\n\n if (!accounts?.length) {\n return null;\n }\n\n let accountId;\n if (cachedAccountId && accounts.filter(a => a.id === cachedAccountId).length > 0) {\n accountId = cachedAccountId;\n } else {\n accountId = accounts[0]?.id;\n }\n\n if (params?.accountId) {\n const isAccountExist = accounts.find(account => account.id === params?.accountId);\n accountId = isAccountExist ? params?.accountId : accountId;\n }\n\n return accountId ? accountId : accounts[0]?.id;\n}\n\nexport function getARMLocation(account: Microsoft.VideoIndexer.Contracts.AccountContractSlim, configService: ConfigService) {\n // For local environment we need to map the Arm Account location to the environment location\n if (environment.localhost) {\n const mappedEnv = devEnvironmentMapping?.find(env => configService.Config?.api?.internalApiLocation.includes(`-${env?.name}-`));\n if (mappedEnv) {\n return mappedEnv.location;\n }\n }\n\n // For dev environment we need to map the Arm Account location to the environment location\n if (configService.Config.mapArmLocation) {\n const mappedEnv = devEnvironmentMapping?.find(env => env.url === window.location.hostname);\n if (mappedEnv) {\n return mappedEnv.location;\n }\n }\n\n return account?.location;\n}\n\nexport function isAccountDurationQuotaExceeded(quota: Microsoft.VideoIndexer.Contracts.AccountQuotaUsage) {\n return quota?.everUploadDurationInSeconds >= quota?.everUploadDurationLimitInSeconds;\n}\n\nexport function isAccountDailyCountQuotaExceeded(quota: Microsoft.VideoIndexer.Contracts.AccountQuotaUsage) {\n return quota?.dailyUploadCount >= quota?.dailyUploadCountLimit;\n}\n\nexport function isAccountDailyDurationQuotaExceeded(quota: Microsoft.VideoIndexer.Contracts.AccountQuotaUsage) {\n return quota?.dailyUploadDurationInSeconds >= quota?.dailyUploadDurationLimitInSeconds;\n}\n","// All account that has created after faceGateDate, should be gated\nexport const FACE_GATE_DATE = new Date('21 June 2022 00:00:00 UTC');\n// All account that has created before faceGateDate, have grace time until faceGateGraceEndDate\nexport const FACE_GATE_GRACE_END_DATE = new Date('1 July 2023 00:00:00 UTC');\n","import { Injectable, inject } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivateFn, RouterStateSnapshot } from '@angular/router';\n\nimport { Observable, of } from 'rxjs';\n\nimport { FeatureSwitchService } from '@common/modules/core/services/feature-switch/feature-switch.service';\nimport { FeatureSwitch } from '@common/modules/core/services/interfaces';\nimport { EventCategory } from '@common/modules/core/services/track/interfaces';\n\nimport { TrackService } from './../../../../../common/modules/core/services/track/track.service';\nimport { CoreStoreService } from '../services/core-store.service';\nimport { VIRoutingMap } from '../../app/routing/routes';\n\nexport const AmsMigrationReportGuard: CanActivateFn = (next: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable => {\n return inject(AmsMigrationReportGuardService).canActivate();\n};\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AmsMigrationReportGuardService {\n constructor(private featureSwitchService: FeatureSwitchService, private coreService: CoreStoreService, private trackService: TrackService) {}\n\n canActivate(): Observable {\n const allowed = this.featureSwitchService.featureSwitch(FeatureSwitch.MigrationReport);\n if (!allowed) {\n this.handleNotAllowedStatus('MigrationReport Feature switch is off');\n }\n return of(allowed);\n }\n\n private handleNotAllowedStatus(error?) {\n this.trackService.track('ams.migration.page.guard.can_activate.failed', {\n category: EventCategory.AMS_MIGRATION,\n data: { error }\n });\n this.coreService.navigate([`${VIRoutingMap.pageNotFoundError}`]);\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivateFn, Router, RouterStateSnapshot } from '@angular/router';\n\nimport { Observable, of } from 'rxjs';\nimport { filter, map, take } from 'rxjs/operators';\n\nimport { LoggerService } from '@common/modules/core/services/logger/logger.service';\nimport { AuthService } from '@common/modules/auth/services/auth.service';\nimport { EventCategory, TrackService } from '@common/modules/core/services/track';\n\nimport { CoreStoreService } from '../services/core-store.service';\n\nexport const AuthGuard: CanActivateFn = (next: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable => {\n return inject(AuthGuardService).canActivate();\n};\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthGuardService {\n constructor(\n private logger: LoggerService,\n private auth: AuthService,\n private router: Router,\n private coreStore: CoreStoreService,\n private trackService: TrackService\n ) {}\n\n public canActivate(): Observable {\n if (this.auth.isAuthenticated()) {\n return of(true);\n }\n\n return this.coreStore.userDetailsLoaded$.pipe(\n filter(loaded => loaded),\n take(1),\n map(() => {\n const isUserAuthenticated = this.auth.isAuthenticated();\n this.logger.log(`[AuthGuardService] canActivate: ${isUserAuthenticated}`);\n if (!isUserAuthenticated) {\n this.handleUserNotAuthenticated();\n }\n\n return isUserAuthenticated;\n })\n );\n }\n\n private handleUserNotAuthenticated() {\n this.logger.log('[AuthGuardService] user not authenticated navigate VIRoutes.login');\n this.trackService.track('auth.guard.user_not_authenticated', {\n category: EventCategory.AUTH\n });\n this.router.navigate(['/account/login']);\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivateFn, RouterStateSnapshot } from '@angular/router';\n\nimport { Observable, of } from 'rxjs';\nimport { map, filter, withLatestFrom, switchMap } from 'rxjs/operators';\n\nimport { EventCategory, TrackService } from '@common/modules/core/services/track';\n\nimport { CoreStoreService } from '../services/core-store.service';\nimport { VIRoutingMap } from '../../app/routing/routes';\n\nexport const NetworkAccessGuard: CanActivateFn = (next: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable => {\n return inject(NetworkAccessGuardService).canActivate(next);\n};\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NetworkAccessGuardService {\n constructor(private coreStore: CoreStoreService, private trackService: TrackService) {}\n\n public canActivate(next: ActivatedRouteSnapshot): Observable {\n return this.coreStore.userDetailsLoaded$.pipe(\n filter(loaded => loaded),\n withLatestFrom(this.coreStore.getSignedInUserEmail$),\n switchMap(([, SignedInUserEmail]) => {\n // If user is signed in, check if network access is not allowed, if so, redirect to gallery library\n if (SignedInUserEmail) {\n return this.coreStore.selectedAccountLoaded$.pipe(\n filter(loaded => loaded),\n withLatestFrom(this.coreStore.isNetworkAccessNotAllowedError$),\n withLatestFrom(this.coreStore.selectedAccountId$),\n map(([[, isNetworkAccessNotAllowed], selectedAccountId]) => {\n const urlAccountId = next?.params?.accountId;\n this.trackService.track('network_access.guard.can_activate', {\n category: EventCategory.HTTP,\n data: {\n blocked: isNetworkAccessNotAllowed,\n selectedAccountId,\n urlAccountId\n }\n });\n\n if (isNetworkAccessNotAllowed && (!urlAccountId || selectedAccountId === urlAccountId)) {\n this.handleNetworkAccessNotAllowed();\n return false;\n }\n\n return true;\n })\n );\n }\n return of(true);\n })\n );\n }\n\n private handleNetworkAccessNotAllowed() {\n this.coreStore.navigate([`/${VIRoutingMap.mediaGallery.path}/${VIRoutingMap.galleryLibrary.path}`]);\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivateFn, RouterStateSnapshot } from '@angular/router';\n\nimport { Observable } from 'rxjs';\nimport { filter, map, take, combineLatestWith } from 'rxjs/operators';\n\nimport { LoggerService } from '@common/modules/core/services/logger/logger.service';\nimport { TrackService } from '@common/modules/core/services/track';\nimport { PermissionService } from '@common/modules/shared/services/permission.service';\nimport { AccountPermission } from '@common/modules/shared/interfaces';\n\nimport { CoreStoreService } from '../services/core-store.service';\nimport { VIRoutingMap } from '../../app/routing/routes';\n\nexport function PermissionGuard(requiredPermission: AccountPermission): CanActivateFn {\n return (ars: ActivatedRouteSnapshot, rss: RouterStateSnapshot) => {\n return inject(PermissionGuardService).canActivate(requiredPermission);\n };\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PermissionGuardService {\n constructor(\n private logger: LoggerService,\n private coreStore: CoreStoreService,\n private trackService: TrackService,\n private permissionService: PermissionService\n ) {}\n\n public canActivate(requiredPermission: AccountPermission): Observable {\n return this.coreStore.selectedAccountLoaded$.pipe(\n filter(loaded => loaded),\n combineLatestWith(this.coreStore.getAccountTokenPermission$),\n filter(([, permission]) => permission !== null),\n take(1),\n map(([, permission]) => {\n if (!this.permissionService.ensurePermission(permission, requiredPermission)) {\n this.handleHasNoPermission(permission, requiredPermission);\n return false;\n }\n\n return true;\n })\n );\n }\n\n private handleHasNoPermission(permission: AccountPermission, requiredPermission: AccountPermission) {\n this.logger.log('[PermissionGuardService] not permitted, navigate gallery library');\n this.trackService.track('permission_guard.can_activate.blocked', {\n requiredPermission: requiredPermission,\n permission: permission\n });\n this.coreStore.navigate([`/${VIRoutingMap.mediaGallery.path}/${VIRoutingMap.galleryLibrary.path}`]);\n }\n}\n","import { Injectable, Injector } from '@angular/core';\n\nimport { LoggerService } from '@common/modules/core/services/logger/logger.service';\nimport { EventCategory, TrackService } from '@common/modules/core/services/track';\nimport { MonitoringErrorHandlerService } from '@common/modules/core/services/monitoring-error-handler/monitoring-error-handler.service';\n\nimport { CoreStoreService } from '../services/core-store.service';\n\n@Injectable()\nexport class LoadChunksErrorHandler extends MonitoringErrorHandlerService {\n constructor(public trackService: TrackService, private logger: LoggerService, private injector: Injector) {\n super(trackService);\n this.logger.log('[LoadChunksErrorHandler] init');\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public handleError(error: any): void {\n const chunkFailedMessage = new RegExp(/Loading chunk \\d|\\w failed/);\n\n if (chunkFailedMessage.test(error?.message)) {\n this.logger.log('[LoadChunksErrorHandler] chunk Failed Message');\n\n this.trackService.trackError(error, {\n category: EventCategory.EXCEPTIONS\n });\n\n const coreStore = this.injector.get(CoreStoreService);\n coreStore.loadChunksError();\n } else {\n super.handleError(error);\n }\n }\n}\n","export const highRiskRegions = ['brazilsouth'];\n","import { Params, Data } from '@angular/router';\n\nexport interface ILanguage {\n key: Microsoft.VideoIndexer.Contracts.LanguageV2;\n name: LanguageName;\n rtl?: boolean;\n sourceLanguage?: boolean;\n supportedUserLocale?: boolean;\n supportedCustomization?: boolean;\n padding?: number;\n}\n\nexport type LanguageName =\n | 'Auto'\n | 'Arabic'\n | 'Arabic (Syrian Arab Republic)'\n | 'Arabic (Bahrain), modern standard'\n | 'Arabic (Egypt)'\n | 'Arabic (Iraq)'\n | 'Arabic (Jordan)'\n | 'Arabic (Lebanon)'\n | 'Arabic (Oman)'\n | 'Arabic (Qatar)'\n | 'Arabic (Saudi Arabia)'\n | 'Arabic (Kuwait)'\n | 'Arabic (Israel)'\n | 'Arabic (United Arab Emirates)'\n | 'Arabic (Palestinian Authority)'\n | 'Chinese (Simplified)'\n | 'English'\n | 'English (Custom)'\n | 'English (Australia)'\n | 'English (United Kingdom)'\n | 'French'\n | 'French (Canada)'\n | 'German'\n | 'German (Custom)'\n | 'Italian'\n | 'Japanese'\n | 'Portuguese'\n | 'Portuguese (Portugal)'\n | 'Russian'\n | 'Spanish (Spain)'\n | 'Spanish (Custom)'\n | 'Spanish (Mexico)'\n | 'Filipino'\n | 'Afrikaans'\n | 'Bangla'\n | 'Bosnian'\n | 'Bulgarian'\n | 'Catalan'\n | 'Croatian'\n | 'Czech'\n | 'Danish'\n | 'Dutch'\n | 'Fijian'\n | 'Samoan'\n | 'Estonian'\n | 'Finnish'\n | 'Greek'\n | 'Haitian'\n | 'Hebrew'\n | 'Hindi'\n | 'Hungarian'\n | 'Indonesian'\n | 'Kiswahili'\n | 'Korean'\n | 'Latvian'\n | 'Lithuanian'\n | 'Malagasy'\n | 'Malay'\n | 'Maltese'\n | 'Norwegian'\n | 'Persian'\n | 'Polish'\n | 'Romanian'\n | 'Serbian (Cyrillic)'\n | 'Serbian (Latin)'\n | 'Slovak'\n | 'Slovenian'\n | 'Swedish'\n | 'Tamil'\n | 'Thai'\n | 'Tongan'\n | 'Turkish'\n | 'Ukrainian'\n | 'Urdu'\n | 'Vietnamese'\n | 'Chinese (Traditional)'\n | 'Chinese (Cantonese)'\n | 'Irish'\n | 'Keep Source'\n | 'Multi'\n | 'All';\n\nexport interface IRouterStateUrl {\n url: string;\n filteredUrl: string;\n params: Params;\n queryParams: Params;\n data: Data;\n}\n\nexport const LIVE_ROUTER_NAVIGATION = '[Live] Router navigation';\n\nexport enum AccountStateOptions {\n ACTIVE = 'Active',\n PENDING = 'PendingDeletion'\n}\n\nexport enum AMSAssetsMigrationStatus {\n NOT_STARTED = 'NotStarted',\n PENDING = 'Pending',\n IN_PROGRESS = 'InProgress',\n COMPLETED = 'Success',\n FAILED = 'Failed',\n NOT_APPLICABLE = 'NotApplicable',\n PENDING_USER_ACTION = 'PendingUserAction'\n}\n\nexport enum AMSMigrationErrorType {\n MIGRATION_NOT_STARTED = 'MIGRATION_NOT_STARTED',\n NOT_APPLICABLE = 'NOT_APPLICABLE'\n}\n\nexport const ArabicLanguages: Microsoft.VideoIndexer.Contracts.LanguageV2[] = [\n 'ar-SY',\n 'ar-BH',\n 'ar-IQ',\n 'ar-JO',\n 'ar-KW',\n 'ar-LB',\n 'ar-OM',\n 'ar-QA',\n 'ar-SA',\n 'ar-IL',\n 'ar-AE',\n 'ar-PS'\n];\n\nexport interface IArmAccountCacheData {\n subscriptionId: string;\n resourceGroupName: string;\n name: string;\n location: string;\n accountId: string;\n}\n","import { ILanguage } from './interfaces';\n\nexport const SupportedLanguages: ILanguage[] = [\n {\n name: 'Arabic',\n key: 'ar-EG',\n rtl: true,\n sourceLanguage: true,\n supportedUserLocale: false,\n supportedCustomization: true,\n padding: 1\n },\n {\n name: 'Arabic (Syrian Arab Republic)',\n key: 'ar-SY',\n rtl: true,\n sourceLanguage: true,\n supportedUserLocale: false,\n padding: 1\n },\n {\n name: 'Arabic (Bahrain), modern standard',\n key: 'ar-BH',\n rtl: true,\n sourceLanguage: true,\n supportedUserLocale: false,\n padding: 1\n },\n {\n name: 'Arabic (Iraq)',\n key: 'ar-IQ',\n rtl: true,\n sourceLanguage: true,\n supportedUserLocale: false,\n padding: 1\n },\n {\n name: 'Arabic (Jordan)',\n key: 'ar-JO',\n rtl: true,\n sourceLanguage: true,\n supportedUserLocale: false,\n padding: 1\n },\n {\n name: 'Arabic (Lebanon)',\n key: 'ar-LB',\n rtl: true,\n sourceLanguage: true,\n supportedUserLocale: false,\n padding: 1\n },\n {\n name: 'Arabic (Oman)',\n key: 'ar-OM',\n rtl: true,\n sourceLanguage: true,\n supportedUserLocale: false,\n padding: 1\n },\n {\n name: 'Arabic (Qatar)',\n key: 'ar-QA',\n rtl: true,\n sourceLanguage: true,\n supportedUserLocale: false,\n padding: 1\n },\n {\n name: 'Arabic (Saudi Arabia)',\n key: 'ar-SA',\n rtl: true,\n sourceLanguage: true,\n supportedUserLocale: false,\n padding: 1\n },\n {\n name: 'Arabic (Kuwait)',\n key: 'ar-KW',\n rtl: true,\n sourceLanguage: true,\n supportedUserLocale: false,\n padding: 1\n },\n {\n name: 'Arabic (Israel)',\n key: 'ar-IL',\n rtl: true,\n sourceLanguage: true,\n supportedUserLocale: false,\n padding: 1\n },\n {\n name: 'Arabic (United Arab Emirates)',\n key: 'ar-AE',\n rtl: true,\n sourceLanguage: true,\n supportedUserLocale: false,\n padding: 1\n },\n {\n name: 'Arabic (Palestinian Authority)',\n key: 'ar-PS',\n rtl: true,\n sourceLanguage: true,\n supportedUserLocale: false,\n padding: 1\n },\n {\n name: 'Chinese (Simplified)',\n key: 'zh-Hans',\n rtl: false,\n sourceLanguage: true,\n supportedUserLocale: true,\n supportedCustomization: true,\n padding: 1.3\n },\n {\n name: 'English',\n key: 'en-US',\n rtl: false,\n sourceLanguage: true,\n supportedUserLocale: true,\n supportedCustomization: true,\n padding: 1\n },\n {\n name: 'French',\n key: 'fr-FR',\n rtl: false,\n sourceLanguage: true,\n supportedUserLocale: true,\n supportedCustomization: true,\n padding: 1\n },\n {\n name: 'French (Canada)',\n key: 'fr-CA',\n rtl: false,\n sourceLanguage: true,\n supportedUserLocale: false,\n supportedCustomization: false,\n padding: 1\n },\n {\n name: 'English (United Kingdom)',\n key: 'en-GB',\n rtl: false,\n sourceLanguage: false,\n supportedUserLocale: false,\n padding: 1\n },\n {\n name: 'English (Australia)',\n key: 'en-AU',\n rtl: false,\n sourceLanguage: false,\n supportedUserLocale: false,\n padding: 1\n },\n {\n name: 'German',\n key: 'de-DE',\n rtl: false,\n sourceLanguage: true,\n supportedUserLocale: true,\n supportedCustomization: true,\n padding: 1\n },\n {\n name: 'Italian',\n key: 'it-IT',\n rtl: false,\n sourceLanguage: true,\n supportedUserLocale: true,\n supportedCustomization: true,\n padding: 1\n },\n {\n name: 'Japanese',\n key: 'ja-JP',\n rtl: false,\n sourceLanguage: true,\n supportedUserLocale: true,\n supportedCustomization: true,\n padding: 1.3\n },\n {\n name: 'Portuguese',\n key: 'pt-BR',\n rtl: false,\n sourceLanguage: true,\n supportedUserLocale: true,\n supportedCustomization: true,\n padding: 1\n },\n {\n name: 'Portuguese (Portugal)',\n key: 'pt-PT',\n rtl: false,\n sourceLanguage: true,\n supportedUserLocale: false,\n supportedCustomization: false,\n padding: 1\n },\n {\n name: 'Russian',\n key: 'ru-RU',\n rtl: false,\n sourceLanguage: true,\n supportedUserLocale: true,\n supportedCustomization: true,\n padding: 1\n },\n {\n name: 'Spanish (Spain)',\n key: 'es-ES',\n rtl: false,\n sourceLanguage: true,\n supportedUserLocale: true,\n supportedCustomization: true,\n padding: 1\n },\n {\n name: 'Spanish (Mexico)',\n key: 'es-MX',\n rtl: false,\n sourceLanguage: true,\n supportedUserLocale: false,\n supportedCustomization: false,\n padding: 1\n },\n {\n name: 'Filipino',\n key: 'fil-PH',\n rtl: false,\n sourceLanguage: false,\n supportedUserLocale: false,\n supportedCustomization: false,\n padding: 1\n },\n {\n name: 'Afrikaans',\n key: 'Af-ZA',\n rtl: false,\n sourceLanguage: false,\n supportedUserLocale: false,\n supportedCustomization: false,\n padding: 1\n },\n {\n name: 'Bangla',\n key: 'Bn-BD',\n rtl: false,\n sourceLanguage: false,\n supportedUserLocale: false,\n supportedCustomization: false,\n padding: 1\n },\n {\n name: 'Bosnian',\n key: 'Bs-Latn',\n rtl: false,\n sourceLanguage: false,\n supportedUserLocale: false,\n supportedCustomization: false,\n padding: 1\n },\n {\n name: 'Bulgarian',\n key: 'bg-BG',\n rtl: false,\n sourceLanguage: true,\n supportedUserLocale: false,\n supportedCustomization: true,\n padding: 1.3\n },\n {\n name: 'Catalan',\n key: 'ca-ES',\n rtl: false,\n sourceLanguage: true,\n supportedUserLocale: false,\n supportedCustomization: true,\n padding: 1.3\n },\n {\n name: 'Croatian',\n key: 'hr-HR',\n rtl: false,\n sourceLanguage: true,\n supportedUserLocale: false,\n supportedCustomization: true,\n padding: 1.3\n },\n {\n name: 'Czech',\n key: 'Cs-CZ',\n rtl: false,\n sourceLanguage: true,\n supportedUserLocale: true,\n supportedCustomization: false,\n padding: 1\n },\n {\n name: 'Danish',\n key: 'Da-DK',\n rtl: false,\n sourceLanguage: true,\n supportedUserLocale: false,\n supportedCustomization: false,\n padding: 1\n },\n {\n name: 'Dutch',\n key: 'Nl-NL',\n rtl: false,\n sourceLanguage: true,\n supportedUserLocale: true,\n supportedCustomization: false,\n padding: 1\n },\n {\n name: 'Fijian',\n key: 'En-FJ',\n rtl: false,\n sourceLanguage: false,\n supportedUserLocale: false,\n supportedCustomization: false,\n padding: 1\n },\n {\n name: 'Samoan',\n key: 'En-WS',\n rtl: false,\n sourceLanguage: false,\n supportedUserLocale: false,\n supportedCustomization: false,\n padding: 1\n },\n {\n name: 'Estonian',\n key: 'et-EE',\n rtl: false,\n sourceLanguage: true,\n supportedUserLocale: false,\n supportedCustomization: true,\n padding: 1.3\n },\n {\n name: 'Finnish',\n key: 'Fi-FI',\n rtl: false,\n sourceLanguage: true,\n supportedUserLocale: false,\n supportedCustomization: false,\n padding: 1\n },\n {\n name: 'Greek',\n key: 'el-GR',\n rtl: false,\n sourceLanguage: true,\n supportedUserLocale: false,\n supportedCustomization: true,\n padding: 1.3\n },\n {\n name: 'Haitian',\n key: 'Fr-HT',\n rtl: false,\n sourceLanguage: false,\n supportedUserLocale: false,\n supportedCustomization: false,\n padding: 1\n },\n {\n name: 'Hebrew',\n key: 'he-IL',\n rtl: true,\n sourceLanguage: true,\n supportedUserLocale: false,\n supportedCustomization: true,\n padding: 1\n },\n {\n name: 'Hindi',\n key: 'hi-IN',\n rtl: false,\n sourceLanguage: true,\n supportedUserLocale: true,\n supportedCustomization: true,\n padding: 1\n },\n {\n name: 'Hungarian',\n key: 'Hu-HU',\n rtl: false,\n sourceLanguage: false,\n supportedUserLocale: true,\n supportedCustomization: false,\n padding: 1\n },\n {\n name: 'Indonesian',\n key: 'Id-ID',\n rtl: false,\n sourceLanguage: false,\n supportedUserLocale: false,\n supportedCustomization: false,\n padding: 1\n },\n {\n name: 'Kiswahili',\n key: 'Sw-KE',\n rtl: false,\n sourceLanguage: false,\n supportedUserLocale: false,\n supportedCustomization: false,\n padding: 1\n },\n {\n name: 'Korean',\n key: 'ko-KR',\n rtl: false,\n sourceLanguage: true,\n supportedUserLocale: true,\n supportedCustomization: true,\n padding: 1.3\n },\n {\n name: 'Latvian',\n key: 'lv-LV',\n rtl: false,\n sourceLanguage: true,\n supportedUserLocale: false,\n supportedCustomization: true,\n padding: 1.3\n },\n {\n name: 'Lithuanian',\n key: 'Lt-LT',\n rtl: false,\n sourceLanguage: false,\n supportedUserLocale: false,\n supportedCustomization: false,\n padding: 1\n },\n {\n name: 'Malagasy',\n key: 'Mg-MG',\n rtl: false,\n sourceLanguage: false,\n supportedUserLocale: false,\n supportedCustomization: false,\n padding: 1\n },\n {\n name: 'Malay',\n key: 'Ms-MY',\n rtl: false,\n sourceLanguage: false,\n supportedUserLocale: false,\n supportedCustomization: false,\n padding: 1\n },\n {\n name: 'Maltese',\n key: 'Mt-MT',\n rtl: false,\n sourceLanguage: false,\n supportedUserLocale: false,\n supportedCustomization: false,\n padding: 1\n },\n {\n name: 'Norwegian',\n key: 'Nb-NO',\n rtl: false,\n sourceLanguage: true,\n supportedUserLocale: false,\n supportedCustomization: false,\n padding: 1\n },\n {\n name: 'Persian',\n key: 'fa-IR',\n rtl: true,\n sourceLanguage: true,\n supportedUserLocale: false,\n supportedCustomization: false,\n padding: 1\n },\n {\n name: 'Polish',\n key: 'Pl-PL',\n rtl: false,\n sourceLanguage: true,\n supportedUserLocale: true,\n supportedCustomization: false,\n padding: 1\n },\n {\n name: 'Romanian',\n key: 'ro-RO',\n rtl: false,\n sourceLanguage: true,\n supportedUserLocale: false,\n supportedCustomization: true,\n padding: 1.3\n },\n {\n name: 'Serbian (Cyrillic)',\n key: 'Sr-Cyrl-RS',\n rtl: false,\n sourceLanguage: false,\n supportedUserLocale: false,\n supportedCustomization: false,\n padding: 1\n },\n {\n name: 'Serbian (Latin)',\n key: 'Sr-Latn-RS',\n rtl: false,\n sourceLanguage: false,\n supportedUserLocale: false,\n supportedCustomization: false,\n padding: 1\n },\n {\n name: 'Slovak',\n key: 'sk-SK',\n rtl: false,\n sourceLanguage: true,\n supportedUserLocale: false,\n supportedCustomization: true,\n padding: 1.3\n },\n {\n name: 'Slovenian',\n key: 'sl-SI',\n rtl: false,\n sourceLanguage: true,\n supportedUserLocale: false,\n supportedCustomization: true,\n padding: 1.3\n },\n {\n name: 'Swedish',\n key: 'Sv-SE',\n rtl: false,\n sourceLanguage: true,\n supportedUserLocale: true,\n supportedCustomization: false,\n padding: 1\n },\n {\n name: 'Tamil',\n key: 'Ta-IN',\n rtl: false,\n sourceLanguage: false,\n supportedUserLocale: false,\n supportedCustomization: false,\n padding: 1\n },\n {\n name: 'Thai',\n key: 'Th-TH',\n rtl: false,\n sourceLanguage: true,\n supportedUserLocale: false,\n supportedCustomization: false,\n padding: 1\n },\n {\n name: 'Tongan',\n key: 'To-TO',\n rtl: false,\n sourceLanguage: false,\n supportedUserLocale: false,\n supportedCustomization: false,\n padding: 1\n },\n {\n name: 'Turkish',\n key: 'Tr-TR',\n rtl: false,\n sourceLanguage: true,\n supportedUserLocale: true,\n supportedCustomization: false,\n padding: 1\n },\n {\n name: 'Ukrainian',\n key: 'Uk-UA',\n rtl: false,\n sourceLanguage: true,\n supportedUserLocale: false,\n supportedCustomization: false,\n padding: 1\n },\n {\n name: 'Urdu',\n key: 'Ur-PK',\n rtl: false,\n sourceLanguage: false,\n supportedUserLocale: false,\n supportedCustomization: false,\n padding: 1.3\n },\n {\n name: 'Vietnamese',\n key: 'Vi-VN',\n rtl: false,\n sourceLanguage: true,\n supportedUserLocale: false,\n supportedCustomization: false,\n padding: 1.3\n },\n {\n name: 'Chinese (Traditional)',\n key: 'Zh-Hant',\n rtl: false,\n sourceLanguage: false,\n supportedUserLocale: false,\n supportedCustomization: false,\n padding: 1.3\n },\n {\n name: 'Chinese (Cantonese)',\n key: 'zh-HK',\n rtl: false,\n sourceLanguage: true,\n supportedUserLocale: false,\n supportedCustomization: true,\n padding: 1.3\n },\n {\n name: 'Irish',\n key: 'ga-IE',\n rtl: false,\n sourceLanguage: true,\n supportedUserLocale: false,\n supportedCustomization: true,\n padding: 1.3\n },\n {\n name: 'Multi',\n key: '',\n rtl: false,\n sourceLanguage: true,\n supportedUserLocale: false,\n supportedCustomization: false,\n padding: 1\n }\n];\n\nexport const additionalUploadLanguages: ILanguage[] = [\n {\n name: 'Auto',\n key: 'auto',\n rtl: false,\n sourceLanguage: true,\n supportedUserLocale: false,\n supportedCustomization: false,\n padding: 1\n },\n {\n name: 'Multi',\n key: 'multi',\n rtl: false,\n sourceLanguage: true,\n supportedUserLocale: false,\n padding: 1\n }\n];\n\nexport const DefaultSupportedLanguages: Microsoft.VideoIndexer.Contracts.SupportedLanguageContract[] = [\n { name: 'German', languageCode: 'de-DE', isRightToLeft: false, isSourceLanguage: true, isAutoDetect: true },\n { name: 'English United States', languageCode: 'en-US', isRightToLeft: false, isSourceLanguage: true, isAutoDetect: true },\n { name: 'Spanish', languageCode: 'es-ES', isRightToLeft: false, isSourceLanguage: true, isAutoDetect: true },\n { name: 'French', languageCode: 'fr-FR', isRightToLeft: false, isSourceLanguage: true, isAutoDetect: true },\n { name: 'Italian', languageCode: 'it-IT', isRightToLeft: false, isSourceLanguage: true, isAutoDetect: true },\n { name: 'Japanese', languageCode: 'ja-JP', isRightToLeft: false, isSourceLanguage: true, isAutoDetect: true },\n { name: 'Portuguese', languageCode: 'pt-BR', isRightToLeft: false, isSourceLanguage: true, isAutoDetect: true },\n { name: 'Russian', languageCode: 'ru-RU', isRightToLeft: false, isSourceLanguage: true, isAutoDetect: true },\n { name: 'Chinese (Simplified)', languageCode: 'zh-Hans', isRightToLeft: false, isSourceLanguage: true, isAutoDetect: true }\n];\n\nexport const ExcludedSelectedDialectLanguages: Microsoft.VideoIndexer.Contracts.LanguageV2[] = ['zh-Hans', 'zh-Hant', 'zh-HK'];\n\nexport enum SpecialLanguageKey {\n AUTO = 'auto',\n MULTI = 'multi'\n}\n\nexport const defaultLangKey = 'en-US';\n\nexport const keepSourceLanguageId = 'keepSource';\n","import { createEntityAdapter, EntityAdapter, EntityState } from '@ngrx/entity';\nimport { Action, createReducer, on } from '@ngrx/store';\n\nimport { AccountPermission } from '@common/modules/shared/interfaces';\nimport { APIErrors } from '@common/modules/core/services/toast/errors';\n\nimport * as AccountsActions from '../actions/accounts.actions';\nimport { AccountStateOptions } from '../interfaces';\n\nimport AccountContractSlim = Microsoft.VideoIndexer.Contracts.AccountContractSlim;\nimport AccountContract = Microsoft.VideoIndexer.Contracts.AccountContract;\nimport AccountSettings = Microsoft.VideoIndexer.Contracts.AccountSettings;\n\nexport interface IState extends EntityState {\n // additional entities state properties\n selectedAccountId: string;\n accountsFilterValue: string;\n loaded: boolean;\n selectedAccountContract: AccountContract;\n selectedAccountLoaded: boolean;\n saving: boolean;\n deleteInProgress: boolean;\n error: boolean;\n errorType: APIErrors;\n armAccountsLoaded: boolean;\n isArmAccountNeededForInit: boolean;\n armAccountsError: boolean;\n selectedAccountSettings: AccountSettings;\n selectedAccountAccessTokenPermission: AccountPermission;\n}\n\nfunction selectAccountId(a: AccountContractSlim): string {\n return a.id;\n}\n\nexport const adapter: EntityAdapter = createEntityAdapter({\n selectId: selectAccountId\n});\n\nconst initialState: IState = adapter.getInitialState({\n // additional entity state properties\n selectedAccountId: null,\n accountsFilterValue: '',\n loaded: false,\n selectedAccountContract: null,\n saving: false,\n deleteInProgress: false,\n error: false,\n errorType: null,\n selectedAccountLoaded: false,\n armAccountsLoaded: false,\n armAccountsError: false,\n isArmAccountNeededForInit: true,\n selectedAccountSettings: null,\n selectedAccountAccessTokenPermission: null\n});\n\nconst accountsReducer = createReducer(\n initialState,\n on(AccountsActions.addAccount, (state, { account }) => {\n return adapter.addOne(account, state);\n }),\n on(AccountsActions.upsertAccounts, (state, { accounts }) => {\n return adapter.upsertMany(accounts, state);\n }),\n on(AccountsActions.addAccounts, (state, { accounts }) => {\n return adapter.addMany(accounts, {\n ...state,\n loaded: true\n });\n }),\n on(AccountsActions.addSelectedAccount, (state, { account }) => {\n return {\n ...state,\n selectedAccountContract: account,\n selectedAccountLoaded: true,\n error: false,\n errorType: null\n };\n }),\n on(AccountsActions.updateAccount, (state, { account }) => {\n return adapter.updateOne(account, state);\n }),\n on(AccountsActions.updateSelectedAccount, (state, { account }) => {\n return {\n ...state,\n selectedAccountContract: account,\n saving: false\n };\n }),\n on(AccountsActions.updateAccountState, (state, { saving, error }) => {\n return {\n ...state,\n saving: saving,\n error: error\n };\n }),\n on(AccountsActions.updateAccounts, (state, { accounts }) => {\n return adapter.updateMany(accounts, state);\n }),\n on(AccountsActions.selectAccount, (state, { id }) => {\n return {\n ...state,\n selectedAccountLoaded: id === state.selectedAccountId,\n selectedAccountId: id ? id : (state.ids[0] as string)\n };\n }),\n on(AccountsActions.loadLastArmAccount, (state, { accountId }) => {\n return {\n ...state,\n selectedAccountId: accountId\n };\n }),\n on(AccountsActions.leaveAccount, state => {\n return {\n ...state,\n deleteInProgress: true,\n error: false\n };\n }),\n on(AccountsActions.deleteOwnAccount, state => {\n return {\n ...state,\n deleteInProgress: true,\n error: false\n };\n }),\n on(AccountsActions.recoverOwnAccount, state => {\n return {\n ...state,\n deleteInProgress: true,\n error: false\n };\n }),\n on(AccountsActions.updateAccountContract, (state, { account, newAccount }) => {\n const update = { id: account.id, changes: newAccount };\n return adapter.updateOne(update, {\n ...state,\n saving: true\n });\n }),\n on(AccountsActions.updateMediaServicesAccount, state => {\n return {\n ...state,\n saving: true,\n error: false\n };\n }),\n on(AccountsActions.addSelectedAccountFailed, AccountsActions.addSelectedArmAccountFailed, (state, { errorType }) => {\n return {\n ...state,\n error: true,\n selectedAccountContract: null,\n selectedAccountLoaded: true,\n errorType\n };\n }),\n on(AccountsActions.deleteAccount, (state, { id }) => {\n return adapter.removeOne(id, state);\n }),\n on(AccountsActions.deleteAccounts, (state, { ids }) => {\n return adapter.removeMany(ids, state);\n }),\n on(AccountsActions.deleteOwnAccountSuccess, state => {\n return {\n ...state,\n selectedAccountContract: {\n ...state.selectedAccountContract,\n state: AccountStateOptions.PENDING\n },\n deleteInProgress: false\n };\n }),\n on(AccountsActions.recoverOwnAccountSuccess, state => {\n return {\n ...state,\n selectedAccountContract: {\n ...state.selectedAccountContract,\n state: AccountStateOptions.ACTIVE\n },\n deleteInProgress: false\n };\n }),\n on(AccountsActions.loadAccounts, (state, { accounts }) => {\n return adapter.setAll(accounts, state);\n }),\n on(AccountsActions.clearAccounts, state => {\n return adapter.removeAll({ ...state, selectedAccountId: null });\n }),\n on(AccountsActions.zeroAccountsLoaded, state => {\n return {\n ...state,\n loaded: true\n };\n }),\n on(AccountsActions.loadAccountsFailed, state => {\n return {\n ...state,\n loaded: true,\n armAccountsLoaded: true\n };\n }),\n on(AccountsActions.loadArmAccountsSuccess, (state, { accounts }) => {\n return adapter.upsertMany(accounts, {\n ...state,\n armAccountsLoaded: true\n });\n }),\n on(AccountsActions.loadArmAccountsNotNeeded, state => {\n return {\n ...state,\n armAccountsLoaded: true\n };\n }),\n on(AccountsActions.loadArmAccountsFailed, state => {\n return {\n ...state,\n armAccountsError: true\n };\n }),\n on(AccountsActions.addSelectedArmAccount, (state, { account }) => {\n return adapter.addOne(account, {\n ...state,\n selectedAccountContract: account,\n selectedAccountId: account.id,\n selectedAccountLoaded: true,\n isArmAccountNeededForInit: false,\n errorType: null\n });\n }),\n on(AccountsActions.loadArmAccountNotNeededForInit, state => {\n return {\n ...state,\n isArmAccountNeededForInit: false\n };\n }),\n on(AccountsActions.addAccountSettings, (state, { settings }) => {\n return {\n ...state,\n selectedAccountSettings: settings\n };\n }),\n on(AccountsActions.loadAccountAccessTokenPermission, (state, { permission }) => {\n return {\n ...state,\n selectedAccountAccessTokenPermission: permission\n };\n }),\n on(AccountsActions.setAccountsFilterValue, (state, { value }) => {\n return {\n ...state,\n accountsFilterValue: value\n };\n }),\n on(AccountsActions.clearAccountsFilterValue, state => {\n return {\n ...state,\n accountsFilterValue: ''\n };\n }),\n on(AccountsActions.updateFaceGateFeaturesSuccess, (state, { limitedAccessFeatures }) => {\n return {\n ...state,\n selectedAccountContract: {\n ...state.selectedAccountContract,\n limitedAccessFeatures: limitedAccessFeatures\n }\n };\n }),\n on(AccountsActions.updateAccountQuota, (state, { accountQuota }) => {\n return {\n ...state,\n selectedAccountContract: {\n ...state.selectedAccountContract,\n quotaUsage: accountQuota\n }\n };\n })\n);\n\nexport function reducer(state: IState, action: Action) {\n return accountsReducer(state, action);\n}\n","import { createReducer, on } from '@ngrx/store';\n\nimport * as AmsMigrationActions from '../actions/ams-migration.actions';\n\nexport interface IState {\n accountMigration: Microsoft.VideoIndexer.Contracts.AmsAccountMigration;\n videoMigrations: Microsoft.VideoIndexer.Contracts.AmsMigrationsListResult;\n isLoading: boolean;\n loadingMore: boolean;\n}\n\nconst initialState: IState = {\n accountMigration: {\n status: null,\n progress: 0,\n videosLeftToMigrate: 0,\n videosMigrated: 0,\n videosFailedToMigrate: 0,\n totalVideosToMigrate: 0,\n migrationCompletedDate: null,\n details: ''\n },\n videoMigrations: {\n results: [],\n nextPage: {\n pageSize: 25,\n skip: 0,\n done: null\n }\n },\n isLoading: true,\n loadingMore: false\n};\n\nconst amsMigrationReducer = createReducer(\n initialState,\n on(AmsMigrationActions.getAmsMigrationStatusSuccess, (state, { migrationState }) => {\n return {\n ...state,\n accountMigration: { ...migrationState },\n // If video migrations are not loaded, we are still loading.\n ...(state.videoMigrations.nextPage.done !== null && { isLoading: false })\n };\n }),\n on(AmsMigrationActions.getVideoMigrationsSucceed, (state, { videoMigrations }) => {\n if (videoMigrations?.nextPage?.skip > 0) {\n videoMigrations = {\n ...videoMigrations,\n results: state.videoMigrations.results.concat(videoMigrations.results)\n };\n }\n\n return {\n ...state,\n videoMigrations: { ...videoMigrations },\n // If account migration status is null, we are still loading.\n ...(state.accountMigration.status !== null && { isLoading: false }),\n loadingMore: false\n };\n }),\n on(AmsMigrationActions.loadMoreVideoMigrations, state => {\n return {\n ...state,\n loadingMore: true\n };\n }),\n on(AmsMigrationActions.getVideoMigrationStarted, state => {\n return {\n ...state,\n isLoading: true\n };\n }),\n on(AmsMigrationActions.getMigrationStatusFailed, AmsMigrationActions.getVideoMigrationsFailed, state => {\n return {\n ...state,\n isLoading: false,\n loadingMore: false\n };\n }),\n on(AmsMigrationActions.resetAmsMigrationState, () => {\n return initialState;\n })\n);\n\nexport function reducer(state, action) {\n return amsMigrationReducer(state, action);\n}\n","import { createReducer, Action, on } from '@ngrx/store';\n\nimport { CustomizationPage } from '@common/modules/core/services/interfaces';\n\nimport * as CustomizationViewActions from '../actions/customization-view.actions';\n\nexport interface IState {\n // additional entities state properties\n selectedPage: CustomizationPage;\n}\n\nexport const initialState: IState = {\n // additional entity state properties\n selectedPage: null\n};\n\nconst viewReducer = createReducer(\n initialState,\n on(CustomizationViewActions.initPage, (state, { page }) => {\n return {\n ...state,\n selectedPage: page\n };\n })\n);\n\nexport function reducer(state: IState | undefined, action: Action) {\n return viewReducer(state, action);\n}\n","import { createEntityAdapter, EntityAdapter, EntityState } from '@ngrx/entity';\nimport { createReducer, on, Action } from '@ngrx/store';\n\nimport * as actions from '../actions/directories.actions';\n\nimport DirectoryContract = Microsoft.VideoIndexer.Contracts.DirectoryContract;\n\nexport interface IState extends EntityState {\n loaded: boolean;\n error: boolean;\n}\n\nfunction selectTenantId(a: DirectoryContract): string {\n return a.tenantId;\n}\n\nexport const adapter: EntityAdapter = createEntityAdapter({\n selectId: selectTenantId\n});\n\nconst initialState: IState = adapter.getInitialState({\n loaded: false,\n error: false\n});\n\nconst tenantsReducer = createReducer(\n initialState,\n on(actions.loadDirectoriesSuccess, (state, { directories: tenants }) => {\n const newState = {\n ...state,\n loaded: true\n };\n return adapter.setAll(tenants, newState);\n }),\n on(actions.loadDirectoriesFailed, state => {\n return {\n ...state,\n loaded: true,\n error: true\n };\n }),\n on(actions.reloadDirectories, state => {\n return {\n ...state,\n loaded: false,\n error: false\n };\n })\n);\n\nexport function reducer(state: IState, action: Action) {\n return tenantsReducer(state, action);\n}\n","import { createEntityAdapter, EntityAdapter, EntityState } from '@ngrx/entity';\nimport { createReducer, on, Action } from '@ngrx/store';\n\nimport * as actions from '../actions/edge-extensions.actions';\nimport * as AccountActions from '../actions/accounts.actions';\n\nimport IConnectedClusterExtension = Microsoft.VideoIndexer.Contracts.IConnectedClusterExtension;\n\nexport interface IState extends EntityState {\n loaded: boolean;\n error: boolean;\n selectedExtensionId: string;\n isEdgeExtensionsNeededForInit: boolean;\n handshakeDone: boolean;\n handshakeFailed: boolean;\n handshakeInProgress: boolean;\n isLiveModuleLoaded: boolean;\n}\n\nfunction selectEdgeExtensionId(a: IConnectedClusterExtension): string {\n return a.id;\n}\n\nexport const adapter: EntityAdapter = createEntityAdapter({\n selectId: selectEdgeExtensionId\n});\n\nconst initialState: IState = adapter.getInitialState({\n loaded: false,\n error: false,\n selectedExtensionId: '',\n isEdgeExtensionsNeededForInit: true,\n handshakeDone: false,\n handshakeFailed: false,\n handshakeInProgress: false,\n isLiveModuleLoaded: false\n});\n\nconst edgeExtensionsReducer = createReducer(\n initialState,\n on(AccountActions.loadEdgeExtensionsSuccess, (state, { extensions }) => {\n const newState = {\n ...state,\n loaded: true\n };\n return adapter.setAll(extensions, newState);\n }),\n on(actions.clearEdgeExtensions, state => {\n const newState = {\n ...state,\n ...initialState,\n isEdgeExtensionsNeededForInit: false\n };\n return adapter.removeAll(newState);\n }),\n on(AccountActions.loadEdgeExtensionsFailed, state => {\n return {\n ...state,\n loaded: true,\n error: true\n };\n }),\n on(actions.selectEdgeExtension, (state, { id }) => {\n return {\n ...state,\n selectedExtensionId: id,\n handshakeDone: false\n };\n }),\n on(actions.clearSelectedEdgeExtension, state => {\n return {\n ...state,\n selectedExtensionId: ''\n };\n }),\n on(actions.loadEdgeExtensionsNotNeededForInit, state => {\n return {\n ...state,\n isEdgeExtensionsNeededForInit: false\n };\n }),\n on(actions.handshakeSuccess, state => {\n return {\n ...state,\n handshakeDone: true,\n handshakeInProgress: false\n };\n }),\n on(actions.handshakeFailed, state => {\n return {\n ...state,\n handshakeDone: true,\n handshakeFailed: true,\n handshakeInProgress: false\n };\n }),\n on(actions.handshakeEdgeExtension, state => {\n return {\n ...state,\n handshakeDone: false,\n handshakeFailed: false,\n handshakeInProgress: true\n };\n }),\n on(actions.liveModuleLoaded, state => {\n return {\n ...state,\n isLiveModuleLoaded: true\n };\n })\n);\n\nexport function reducer(state: IState, action: Action) {\n return edgeExtensionsReducer(state, action);\n}\n","import { createFeatureSelector, ActionReducerMap } from '@ngrx/store';\n\nimport * as fromAccounts from './accounts.reducer';\nimport * as fromUser from './user.reducer';\nimport * as fromSidebar from './sidebar.reducer';\nimport * as fromInvitations from './invitations.reducer';\nimport * as fromRoleAssignments from './roleAssignments.reducer';\nimport * as fromSideMenu from './side-menu.reducer';\nimport * as fromCustomizationView from './customization-view.reducer';\nimport * as fromNotifications from './notifications/notifications.reducer';\nimport * as fromDirectories from './directories.reducer';\nimport * as fromEdgeExtensions from './edge-extensions.reducer';\nimport * as fromAmsMigration from './ams-migration.reducer';\n\nexport interface IState {\n accounts: fromAccounts.IState;\n user: fromUser.IState;\n sidebar: fromSidebar.IState;\n invitations: fromInvitations.IState;\n roleAssignments: fromRoleAssignments.IState;\n sideMenu: fromSideMenu.IState;\n customizationView: fromCustomizationView.IState;\n notifications: fromNotifications.IState;\n directories: fromDirectories.IState;\n edgeExtensions: fromEdgeExtensions.IState;\n amsMigration: fromAmsMigration.IState;\n}\n\nexport const reducers: ActionReducerMap = {\n accounts: fromAccounts.reducer,\n user: fromUser.reducer,\n sidebar: fromSidebar.reducer,\n invitations: fromInvitations.reducer,\n roleAssignments: fromRoleAssignments.reducer,\n sideMenu: fromSideMenu.reducer,\n customizationView: fromCustomizationView.reducer,\n notifications: fromNotifications.reducer,\n directories: fromDirectories.reducer,\n edgeExtensions: fromEdgeExtensions.reducer,\n amsMigration: fromAmsMigration.reducer\n};\n\nexport const selectCoreState = createFeatureSelector('core');\n","import { createEntityAdapter, EntityAdapter, EntityState } from '@ngrx/entity';\nimport { createReducer, on, Action } from '@ngrx/store';\n\nimport * as InvitationsActions from '../actions/invitations.actions';\n\nimport InvitationContract = Microsoft.VideoIndexer.Contracts.InvitationContract;\n\nexport interface IState extends EntityState {\n loaded: boolean;\n error: boolean;\n saving: boolean;\n isUserNotAllowedError: boolean;\n}\n\nfunction selectInvitationId(a: InvitationContract): number {\n return a.invitationId;\n}\n\nexport const adapter: EntityAdapter = createEntityAdapter({\n selectId: selectInvitationId\n});\n\nconst initialState: IState = adapter.getInitialState({\n loaded: false,\n saving: false,\n error: false,\n isUserNotAllowedError: false\n});\n\nconst invitationsReducer = createReducer(\n initialState,\n on(InvitationsActions.loadInvitations, state => {\n return {\n ...state,\n loaded: false,\n error: false\n };\n }),\n on(InvitationsActions.loadInvitationsSuccess, (state, { invitations }) => {\n const newState = {\n ...state,\n loaded: true\n };\n return adapter.setAll(invitations, newState);\n }),\n on(InvitationsActions.loadInvitationsFailed, (state, { isUserNotAllowedError }) => {\n return {\n ...state,\n loaded: true,\n error: true,\n isUserNotAllowedError: isUserNotAllowedError\n };\n }),\n on(InvitationsActions.inviteToAccountInProgress, state => {\n return {\n ...state,\n saving: true\n };\n }),\n on(InvitationsActions.inviteToAccountSuccess, (state, { invitations }) => {\n const newState = {\n ...state,\n saving: false\n };\n return adapter.upsertMany(invitations, newState);\n }),\n on(InvitationsActions.deleteInvitationSuccess, (state, { invitationId }) => {\n return adapter.removeOne(invitationId, state);\n }),\n on(InvitationsActions.invitationsError, (state, { isUserNotAllowedError }) => {\n return {\n ...state,\n error: true,\n isUserNotAllowedError: isUserNotAllowedError,\n saving: false\n };\n })\n);\n\nexport function reducer(state: IState, action: Action) {\n return invitationsReducer(state, action);\n}\n","import { createReducer, Action, on } from '@ngrx/store';\nimport { createEntityAdapter, EntityAdapter, EntityState } from '@ngrx/entity';\n\nimport { INotification } from '@common/modules/core/services/toast/interfaces';\n\nimport * as NotificationsActions from '../../actions/notifications.actions';\n\nexport interface AlertsState extends EntityState {\n // additional entities state properties\n}\n\nfunction selectAccountId(a: INotification): string {\n return a.id;\n}\n\nexport const adapter: EntityAdapter = createEntityAdapter({\n selectId: selectAccountId\n});\n\nexport const initialAlertsState: AlertsState = adapter.getInitialState({\n // additional entity state properties\n});\n\nconst notificationsAlertsReducer = createReducer(\n initialAlertsState,\n on(NotificationsActions.addNotificationsAlerts, (state, { notifications }) => {\n return adapter.upsertMany(notifications, state);\n }),\n on(NotificationsActions.updateNotificationsAlerts, (state, { notifications }) => {\n return adapter.updateMany(notifications, state);\n }),\n on(NotificationsActions.removeNotificationsAlerts, (state, { ids }) => {\n return adapter.removeMany(ids, state);\n }),\n on(NotificationsActions.clearNotificationsAlerts, state => {\n return adapter.removeAll(state);\n }),\n on(NotificationsActions.removeNotifications, (state, { ids }) => {\n return adapter.removeMany(ids, state);\n })\n);\n\nexport function reducer(state: AlertsState | undefined, action: Action) {\n return notificationsAlertsReducer(state, action);\n}\n","import { createReducer, Action, on } from '@ngrx/store';\nimport { createEntityAdapter, EntityAdapter, EntityState } from '@ngrx/entity';\n\nimport { INotification } from '@common/modules/core/services/toast/interfaces';\n\nimport * as NotificationsActions from '../../actions/notifications.actions';\n\nexport interface BannersState extends EntityState {\n // additional entities state properties\n}\n\nfunction selectAccountId(a: INotification): string {\n return a.id;\n}\n\nexport const adapter: EntityAdapter = createEntityAdapter({\n selectId: selectAccountId\n});\n\nexport const initialBannersState: BannersState = adapter.getInitialState({\n // additional entity state properties\n});\n\nconst notificationsBannersReducer = createReducer(\n initialBannersState,\n on(NotificationsActions.addNotificationsBanners, (state, { notifications }) => {\n return adapter.upsertMany(notifications, state);\n }),\n on(NotificationsActions.updateNotificationsBanners, (state, { notifications }) => {\n return adapter.updateMany(notifications, state);\n }),\n on(NotificationsActions.removeNotificationsBanners, (state, { ids }) => {\n return adapter.removeMany(ids, state);\n }),\n on(NotificationsActions.clearNotificationsBanners, state => {\n return adapter.removeAll(state);\n }),\n on(NotificationsActions.removeNotifications, (state, { ids }) => {\n return adapter.removeMany(ids, state);\n })\n);\n\nexport function reducer(state: BannersState | undefined, action: Action) {\n return notificationsBannersReducer(state, action);\n}\n","import { createReducer, Action, on } from '@ngrx/store';\nimport { createEntityAdapter, EntityAdapter, EntityState } from '@ngrx/entity';\n\nimport { INotification } from '@common/modules/core/services/toast/interfaces';\n\nimport * as NotificationsActions from '../../actions/notifications.actions';\n\nexport interface MessagesState extends EntityState {\n // additional entities state properties\n}\n\nfunction selectAccountId(a: INotification): string {\n return a.id;\n}\n\nexport const adapter: EntityAdapter = createEntityAdapter({\n selectId: selectAccountId\n});\n\nexport const initialMessagesState: MessagesState = adapter.getInitialState({\n // additional entity state properties\n});\n\nconst notificationsMessagesReducer = createReducer(\n initialMessagesState,\n on(NotificationsActions.addNotificationMessages, (state, { notifications }) => {\n return adapter.upsertMany(notifications, state);\n }),\n on(NotificationsActions.updateNotificationsMessages, (state, { notifications }) => {\n return adapter.updateMany(notifications, state);\n }),\n on(NotificationsActions.removeNotificationsMessages, (state, { ids }) => {\n return adapter.removeMany(ids, state);\n }),\n on(NotificationsActions.clearNotificationsMessages, state => {\n return adapter.removeAll(state);\n }),\n on(NotificationsActions.removeNotifications, (state, { ids }) => {\n return adapter.removeMany(ids, state);\n })\n);\n\nexport function reducer(state: MessagesState | undefined, action: Action) {\n return notificationsMessagesReducer(state, action);\n}\n","import { createReducer, Action, on } from '@ngrx/store';\n\nimport * as NotificationsActions from '../../actions/notifications.actions';\nimport * as AccountsActions from '../../actions/accounts.actions';\n\nexport interface NotificationsViewState {\n // additional entities state properties\n loading: boolean;\n}\n\nexport const initialNotificationsViewState: NotificationsViewState = {\n // additional entity state properties\n loading: true\n};\n\nconst notificationsViewStateReducer = createReducer(\n initialNotificationsViewState,\n on(AccountsActions.selectAccount, state => {\n return {\n ...state,\n loading: true\n };\n }),\n on(AccountsActions.selectArmAccount, state => {\n return {\n ...state,\n loading: true\n };\n }),\n on(NotificationsActions.loadNotifications, state => {\n return {\n ...state,\n loading: false\n };\n })\n);\n\nexport function reducer(state: NotificationsViewState | undefined, action: Action) {\n return notificationsViewStateReducer(state, action);\n}\n","import { combineReducers } from '@ngrx/store';\n\nimport { initialBannersState, BannersState } from './notifications-banners.reducer';\nimport { initialAlertsState, AlertsState } from './notifications-alerts.reducer';\nimport { initialMessagesState, MessagesState } from './notifications-messages.reducer';\nimport { initialNotificationsViewState, NotificationsViewState } from './notifications-view.reducer';\nimport * as fromNotificationsBanners from './notifications-banners.reducer';\nimport * as fromNotificationsAlerts from './notifications-alerts.reducer';\nimport * as fromNotificationsMessages from './notifications-messages.reducer';\nimport * as fromNotificationsState from './notifications-view.reducer';\n\nexport interface IState {\n banners: BannersState;\n alerts: AlertsState;\n messages: MessagesState;\n viewState: NotificationsViewState;\n}\n\nexport const initialState: IState = {\n // additional entity state properties\n banners: initialBannersState,\n alerts: initialAlertsState,\n messages: initialMessagesState,\n viewState: initialNotificationsViewState\n};\n\nexport const reducer = combineReducers({\n banners: fromNotificationsBanners.reducer,\n alerts: fromNotificationsAlerts.reducer,\n messages: fromNotificationsMessages.reducer,\n viewState: fromNotificationsState.reducer\n});\n","import { createEntityAdapter, EntityAdapter, EntityState } from '@ngrx/entity';\nimport { createReducer, on, Action } from '@ngrx/store';\n\nimport * as RoleAssignments from '../actions/roleAssignments.actions';\n\nimport AccountRoleAssignment = Microsoft.VideoIndexer.Contracts.AccountRoleAssignment;\n\nexport interface IState extends EntityState {\n loaded: boolean;\n error: boolean;\n isUserNotAllowedError: boolean;\n}\n\nfunction selectId(a: AccountRoleAssignment): number {\n return a.id;\n}\n\nexport const adapter: EntityAdapter = createEntityAdapter({\n selectId: selectId\n});\n\nconst initialState: IState = adapter.getInitialState({\n loaded: false,\n error: false,\n isUserNotAllowedError: false\n});\n\nconst roleAssignmentsReducer = createReducer(\n initialState,\n on(RoleAssignments.loadRoleAssignmentsInProgress, state => {\n return {\n ...state,\n loaded: false,\n error: false\n };\n }),\n on(RoleAssignments.loadRoleAssignmentsSuccess, (state, { roleAssignments }) => {\n return adapter.setAll(roleAssignments, {\n ...state,\n loaded: true\n });\n }),\n on(RoleAssignments.loadRoleAssignmentsFailed, (state, { isUserNotAllowedError }) => {\n return {\n ...state,\n loaded: true,\n error: true,\n isUserNotAllowedError: isUserNotAllowedError\n };\n }),\n on(RoleAssignments.deleteRoleAssignmentSuccess, (state, { roleAssignmentId }) => {\n return adapter.removeOne(roleAssignmentId, state);\n }),\n on(RoleAssignments.roleAssignmentsError, (state, { isUserNotAllowedError }) => {\n return {\n ...state,\n error: true,\n isUserNotAllowedError: isUserNotAllowedError\n };\n })\n);\n\nexport function reducer(state: IState, action: Action) {\n return roleAssignmentsReducer(state, action);\n}\n","import { createFeatureSelector, createSelector, ActionReducerMap } from '@ngrx/store';\nimport { routerReducer } from '@ngrx/router-store';\nimport * as fromRouter from '@ngrx/router-store';\n\nimport { IRouterStateUrl } from '../../interfaces';\nimport { IVIRoute } from '../../../app/routing/interfaces';\nimport { VIRoutingMap } from '../../../app/routing/routes';\n\nexport interface IState {\n router: fromRouter.RouterReducerState;\n}\n\nexport const routerReducers: ActionReducerMap = {\n router: routerReducer\n};\n\nexport const getRouterState = createFeatureSelector>('router');\n\nexport const getQueryParams = createSelector(getRouterState, state => state?.state.queryParams);\n\nexport const getRouteParams = createSelector(getRouterState, state => state?.state.params);\n\nexport const getRouteData = createSelector(getRouterState, state => state?.state?.data as IVIRoute);\n\nexport const isGalleryRoute = createSelector(\n getRouteData,\n state =>\n state?.path === VIRoutingMap.galleryLibrary.path ||\n state?.path === VIRoutingMap.galleryProjects.path ||\n state?.path === VIRoutingMap.gallerySamples.path\n);\n\nexport const isLibraryRoute = createSelector(getRouteData, state => state?.path === VIRoutingMap.galleryLibrary.path);\n","import { RouterStateSnapshot } from '@angular/router';\n\nimport { RouterStateSerializer } from '@ngrx/router-store';\n\nimport { IRouterStateUrl } from '../../interfaces';\n\nexport class VIRouterSerializer implements RouterStateSerializer {\n public serialize(routerState: RouterStateSnapshot): IRouterStateUrl {\n let route = routerState.root;\n\n while (route?.firstChild) {\n route = route.firstChild;\n }\n\n const {\n url,\n root: { queryParams }\n } = routerState;\n const { params } = route;\n const filteredUrl = url.split('?')[0];\n\n // Get route name\n const data = route.data;\n // Only return an object including the URL, params and query params\n // instead of the entire snapshot\n return { url, params, queryParams, filteredUrl, data };\n }\n}\n","import { Action, createReducer, on } from '@ngrx/store';\n\nimport { SideMenuOption } from '@common/modules/core/services/interfaces';\n\nimport * as SideMenuActions from '../actions/side-menu.actions';\n\nexport interface IState {\n selectedOption: SideMenuOption;\n open?: boolean;\n}\n\nconst initialState: IState = {\n selectedOption: SideMenuOption.Media,\n open: false\n};\n\nconst sideMenuReducer = createReducer(\n initialState,\n on(SideMenuActions.sideMenuInitOption, (state, { option }) => {\n return {\n ...state,\n selectedOption: option,\n open: state.open\n };\n }),\n on(SideMenuActions.sideMenuToggled, (state, { open }) => {\n return {\n ...state,\n open: open\n };\n })\n);\n\nexport function reducer(state: IState | undefined, action: Action) {\n return sideMenuReducer(state, action);\n}\n","import { createReducer, Action, on } from '@ngrx/store';\n\nimport { NavigationState } from '@common/modules/core/services/interfaces';\n\nimport { SidebarPages } from '../../sidebar/interfaces';\nimport * as SidebarActions from '../actions/sidebar.actions';\n\nexport interface IState {\n // additional entities state properties\n state: NavigationState;\n page?: SidebarPages;\n callbackAfterClose?: () => void;\n}\n\nconst initialState: IState = {\n state: NavigationState.CLOSE,\n page: SidebarPages.ANY,\n callbackAfterClose: null\n};\n\nconst sidebarReducer = createReducer(\n initialState,\n on(SidebarActions.selectSidebarOptions, (state, { options }) => {\n return {\n ...state,\n state: getSidebarNavigationState(state, options),\n page: options.page,\n callbackAfterClose: options.callbackAfterClose\n };\n }),\n on(SidebarActions.clearSidebar, (state, {}) => {\n return {\n ...state,\n state: NavigationState.CLOSE,\n page: SidebarPages.ANY,\n callbackAfterClose: null\n };\n })\n);\n\nexport function reducer(state: IState | undefined, action: Action) {\n return sidebarReducer(state, action);\n}\n\nfunction getSidebarNavigationState(currentState: IState, optionsState: IState): NavigationState {\n if (optionsState.state === NavigationState.CLOSE || optionsState.state === NavigationState.OPEN) {\n return optionsState.state;\n } else if (optionsState.state === NavigationState.TOGGLE) {\n if (currentState.page === optionsState.page) {\n return currentState.state === NavigationState.CLOSE ? NavigationState.OPEN : NavigationState.CLOSE;\n } else if (currentState.page !== optionsState.page && currentState.state === NavigationState.CLOSE) {\n return NavigationState.OPEN;\n } else {\n return currentState.state;\n }\n }\n}\n","import { createReducer, Action, on } from '@ngrx/store';\n\nimport * as UserActions from '../actions/user.actions';\n\nimport UserContractSlim = Microsoft.VideoIndexer.Contracts.UserContractSlim;\n\nexport interface IState {\n // additional entities state properties\n user: UserContractSlim;\n loaded: boolean;\n loading: boolean;\n error: boolean;\n}\n\nconst initialState: IState = {\n // additional entity state properties\n loaded: false,\n loading: false,\n user: {\n id: '',\n name: '',\n isAuthenticated: false,\n email: '',\n signedInUserEmail: '',\n userType: null,\n joinTime: '',\n getNewsUpdates: false,\n getVideoNotifications: false,\n showSamplesTab: false,\n autoCompleteSearch: false,\n locale: '',\n isSuspended: false,\n isAdmin: false,\n showGalleryByDefault: false,\n image: '',\n tenantId: ''\n },\n error: false\n};\n\nconst userReducer = createReducer(\n initialState,\n on(UserActions.addUser, (state, { user }) => {\n return {\n ...state,\n user: {\n ...user\n },\n loaded: true,\n loading: false\n };\n }),\n on(UserActions.updateUser, (state, { user }) => {\n return {\n ...state,\n user: {\n ...state.user,\n ...user\n }\n };\n }),\n on(UserActions.loadUserDetailsInProgress, state => {\n return {\n ...state,\n loading: true\n };\n }),\n on(UserActions.loadUserDetailsFailed, state => {\n return {\n ...state,\n loading: false,\n loaded: true,\n error: true\n };\n }),\n on(UserActions.loadUserNotAuthenticated, state => {\n return {\n ...state,\n loading: false,\n loaded: true\n };\n })\n);\n\nexport function reducer(state: IState | undefined, action: Action) {\n return userReducer(state, action);\n}\n","import { Injectable, inject } from '@angular/core';\nimport { ActivatedRouteSnapshot, RouterStateSnapshot, Params, ResolveFn } from '@angular/router';\n\nimport { filter, take } from 'rxjs/operators';\n\nimport { LoggerService } from '@common/modules/core/services/logger/logger.service';\nimport { AuthService } from '@common/modules/auth/services/auth.service';\n\nimport { CoreStoreService } from '../services/core-store.service';\nimport { VIRoutingMap } from '../../app/routing/routes';\n\nexport const AuthenticatedResolver: ResolveFn> = (next: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise => {\n return inject(AuthenticatedResolverService).resolve();\n};\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthenticatedResolverService {\n constructor(private logger: LoggerService, private auth: AuthService, private coreStore: CoreStoreService) {\n this.logger.log('[AuthenticatedResolver] init');\n }\n\n public resolve(): Promise {\n return new Promise(resolve => {\n this.coreStore.routerQueryParams$.pipe(take(1)).subscribe(queryParams => {\n if (this.auth.isAuthenticated()) {\n this.logger.log(`[AuthenticatedResolver] user already authenticated`);\n this.handleUserAlreadyAuthenticated(queryParams);\n return resolve(false);\n }\n\n return this.coreStore.userDetailsLoaded$\n .pipe(\n filter(loaded => loaded),\n take(1)\n )\n .subscribe(() => {\n if (this.auth.isAuthenticated()) {\n this.logger.log(`[AuthenticatedResolver] userDetailsLoaded user already authenticated`);\n this.handleUserAlreadyAuthenticated(queryParams);\n return resolve(false);\n } else {\n this.logger.log('[AuthenticatedResolver] user not authenticated');\n return resolve(true);\n }\n });\n });\n });\n }\n\n private handleUserAlreadyAuthenticated(queryParams: Params) {\n this.logger.log('[AuthenticatedResolver] user authenticated');\n const returnUrlParamValue = queryParams?.returnUrl;\n if (returnUrlParamValue) {\n // Check if video link and navigate to player page\n if (returnUrlParamValue.includes(window.location.host)) {\n // Create a new URL object to parse and validate the returnUrl\n let url;\n try {\n url = new URL(returnUrlParamValue);\n } catch (_) {\n // If the URL constructor throws, the URL is invalid\n return;\n }\n\n // Ensure the URL's origin matches the current location's origin\n if (url.origin !== window.location.origin) {\n return;\n }\n\n // If the URL is valid and the origins match, it's safe to use\n window.location.replace(returnUrlParamValue);\n }\n\n // Check if Invite link\n // Remove /? chars from returnUrl value\n // eslint-disable-next-line max-len\n const params = JSON.parse(\n '{\"' +\n decodeURI(returnUrlParamValue).replace(/\\\\/g, '\\\\\\\\').replace(/\\?|\\//g, '').replace(/\"/g, '\\\\\"').replace(/&/g, '\",\"').replace(/=/g, '\":\"') +\n '\"}'\n );\n this.logger.log(`[AuthenticatedResolver] returnUrlParam: ${params}`);\n this.coreStore.navigate([`/${VIRoutingMap.mediaGallery.path}/${VIRoutingMap.galleryLibrary.path}`], params);\n } else {\n this.logger.log(`[AuthenticatedResolver] params: ${queryParams}`);\n this.coreStore.navigate([`/${VIRoutingMap.mediaGallery.path}/${VIRoutingMap.galleryLibrary.path}`, queryParams]);\n }\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { ActivatedRouteSnapshot, ResolveFn, RouterStateSnapshot } from '@angular/router';\n\nimport { Observable, of, switchMap } from 'rxjs';\nimport { filter, map, take, withLatestFrom } from 'rxjs/operators';\n\nimport { LoggerService } from '@common/modules/core/services/logger/logger.service';\nimport { MediaCommonStoreService } from '@common/modules/media-data-common/services/media-common-store.service';\nimport { FeatureSwitchService } from '@common/modules/core/services/feature-switch/feature-switch.service';\nimport { FeatureSwitch } from '@common/modules/core/services/interfaces';\n\nimport { MediaStoreService } from '../../media-data/services/media-store.service';\nimport { CoreStoreService } from '../services/core-store.service';\nimport { EdgeExtensionsStoreService } from '../services/edge-extensions-store.service';\nimport { VIRoutingMap } from '../../app/routing/routes';\n\nexport const EdgeExtensionsMediaMetadataResolver: ResolveFn> = (\n next: ActivatedRouteSnapshot,\n state: RouterStateSnapshot\n): Observable => {\n return inject(EdgeExtensionsMediaMetadataResolverService).resolve(next);\n};\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EdgeExtensionsMediaMetadataResolverService {\n constructor(\n private logger: LoggerService,\n private coreStore: CoreStoreService,\n private mediaStoreService: MediaStoreService,\n private edgeExtensionsStore: EdgeExtensionsStoreService,\n private featureSwitchService: FeatureSwitchService,\n private mediaCommonStoreService: MediaCommonStoreService\n ) {\n this.logger.log('[EdgeExtensionsMediaMetadataResolver] Init');\n }\n\n public resolve(route: ActivatedRouteSnapshot): Observable {\n if (!this.featureSwitchService.featureSwitch(FeatureSwitch.Edge)) {\n this.coreStore.navigate([`${VIRoutingMap.mediaGallery.path}/${VIRoutingMap.galleryLibrary.path}`], null, null, true);\n return of(false);\n }\n\n return this.edgeExtensionsStore.edgeExtensionsMetadataLoaded$.pipe(\n filter(loaded => loaded),\n take(1),\n withLatestFrom(this.coreStore.selectAccountIds$),\n switchMap(([loaded, accountIds]) => {\n this.logger.log('[EdgeExtensionsMediaMetadataResolver] ' + loaded);\n const videoId = route?.params?.videoId;\n const accountId = route?.params?.accountId;\n if (!accountIds.includes(accountId)) {\n this.coreStore.navigate([`/${VIRoutingMap.pageNotFoundError.path}`]);\n return of(false);\n }\n this.coreStore.selectAccount(accountId, false, true);\n this.mediaCommonStoreService.selectIndex(videoId);\n\n return this.edgeExtensionsStore.selectEdgeExtensionsLoaded$.pipe(\n filter(loaded => loaded),\n take(1),\n map(() => {\n const extensionId = route?.params?.extensionId;\n this.edgeExtensionsStore.selectEdgeExtensionByPrincipalId(extensionId);\n setTimeout(() => {\n this.mediaStoreService.loadVideoIndex(false);\n });\n return true;\n })\n );\n })\n );\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { ActivatedRouteSnapshot, ResolveFn, RouterStateSnapshot } from '@angular/router';\n\nimport { Observable } from 'rxjs';\nimport { filter, map, take, withLatestFrom } from 'rxjs/operators';\n\nimport { ApiService } from '@common/modules/api/services/api.service';\nimport { LoggerService } from '@common/modules/core/services/logger/logger.service';\nimport { RegionType } from '@common/modules/api/interfaces';\n\nimport { VIRoutingMap } from '../../app/routing/routes';\nimport { MediaStoreService } from '../../media-data/services/media-store.service';\nimport { CoreStoreService } from '../services/core-store.service';\n\nexport const MediaMetadataResolver: ResolveFn> = (\n next: ActivatedRouteSnapshot,\n state: RouterStateSnapshot\n): Observable => {\n return inject(MediaMetadataResolverService).resolve(next);\n};\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MediaMetadataResolverService {\n constructor(\n private logger: LoggerService,\n private coreStore: CoreStoreService,\n private mediaStoreService: MediaStoreService,\n private apiService: ApiService\n ) {\n this.logger.log('[MediaMetadataResolver] Init');\n }\n\n public resolve(route: ActivatedRouteSnapshot): Observable {\n return this.coreStore.isFullMetadataLoaded$.pipe(\n filter(loaded => loaded),\n withLatestFrom(this.coreStore.selectAccountIds$),\n take(1),\n map(([loaded, accountIds]) => {\n this.logger.log('[MediaMetadataResolver] ' + loaded);\n if (route.routeConfig.path === VIRoutingMap.mediaVideo.path) {\n this.setMediaApiLocation(route, accountIds);\n this.mediaStoreService.loadVideoIndex();\n } else {\n this.mediaStoreService.loadVideoProject();\n }\n return true;\n })\n );\n }\n\n private setMediaApiLocation(route: ActivatedRouteSnapshot, accountIds: string[]) {\n const accountId = route?.params?.accountId;\n let locationParam: string;\n // If video belongs to the user, it should use the selected account location\n if (accountIds?.includes(accountId)) {\n return;\n // If video does not belong to user should set location according to URL parameter\n } else {\n locationParam = route.queryParams.location || RegionType.TRIAL;\n }\n this.apiService.setApiMediaLocation(locationParam);\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { ActivatedRouteSnapshot, ResolveFn, RouterStateSnapshot } from '@angular/router';\n\nimport { Observable, of } from 'rxjs';\nimport { take, map, filter, withLatestFrom, switchMap } from 'rxjs/operators';\n\nimport { LoggerService } from '@common/modules/core/services/logger/logger.service';\n\nimport { CoreStoreService } from '../services/core-store.service';\nimport { VIRoutingMap } from '../../app/routing/routes';\n\nexport const RouteSelectAccountResolver: ResolveFn> = (\n next: ActivatedRouteSnapshot,\n state: RouterStateSnapshot\n): Observable => {\n return inject(RouteSelectAccountResolverService).resolve(next);\n};\n\n@Injectable({\n providedIn: 'root'\n})\nexport class RouteSelectAccountResolverService {\n constructor(private coreStore: CoreStoreService, private logger: LoggerService) {\n this.logger.log('[RouteSelectAccountResolver] init');\n }\n\n public resolve(route: ActivatedRouteSnapshot): Observable {\n return this.coreStore.coreMetadataLoaded$.pipe(\n filter(loaded => loaded),\n take(1),\n withLatestFrom(this.coreStore.selectAccountIds$),\n withLatestFrom(this.coreStore.selectedAccountId$),\n switchMap(([[, accountIds], selectedAccountId]) => {\n const accountId = route?.params?.accountId;\n if (accountId) {\n this.logger.log('[RouteSelectAccountResolver] accountId: ' + accountId);\n if (selectedAccountId === accountId) {\n return of(true);\n } else if (accountIds.includes(accountId)) {\n this.logger.log('[RouteSelectAccountResolver] selectAccount: ' + accountId);\n this.coreStore.selectAccount(accountId);\n return of(true);\n } else {\n this.logger.log('[RouteSelectAccountResolver] wait isFullMetadataLoaded');\n return this.coreStore.isFullMetadataLoaded$.pipe(\n filter(loaded => loaded),\n take(1),\n withLatestFrom(this.coreStore.selectAccountIds$),\n map(([, fullAccountIds]) => {\n if (fullAccountIds.includes(accountId)) {\n this.logger.log('[RouteSelectAccountResolver] isFullMetadataLoaded selectAccount: ' + accountId);\n this.coreStore.selectAccount(accountId);\n return true;\n }\n\n this.logger.log('[RouteSelectAccountResolver] isFullMetadataLoaded pageNotFoundError');\n this.coreStore.navigate([`/${VIRoutingMap.pageNotFoundError.path}`]);\n return false;\n })\n );\n }\n } else {\n return of(true);\n }\n })\n );\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { ActivatedRouteSnapshot, ResolveFn, RouterStateSnapshot } from '@angular/router';\n\nimport { Store } from '@ngrx/store';\n\nimport { of } from 'rxjs';\nimport { take } from 'rxjs/operators';\n\nimport { LoggerService } from '@common/modules/core/services/logger/logger.service';\n\nimport { IState } from '../reducers';\nimport * as fromRouter from '../reducers/router';\n\nexport const RouteResolver: ResolveFn> = (next: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise => {\n return inject(RouteResolverService).resolve();\n};\n\n@Injectable({\n providedIn: 'root'\n})\nexport class RouteResolverService {\n constructor(private store: Store, private logger: LoggerService) {\n this.logger.log('[RouteResolver] init');\n }\n\n // check if need to navigate on client route\n public resolve(): Promise {\n return new Promise(resolve =>\n this.store\n .select(fromRouter.getQueryParams)\n .pipe(take(1))\n .subscribe(queryParams => {\n if (queryParams?.clientRoute) {\n this.logger.log('[RouteResolver] clientRoute: false');\n of(false);\n resolve(false);\n } else {\n this.logger.log('[RouteResolver] clientRoute: true');\n this.logger.log(queryParams);\n resolve(true);\n }\n })\n );\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { ActivatedRouteSnapshot, ResolveFn, RouterStateSnapshot } from '@angular/router';\n\nimport { Store } from '@ngrx/store';\n\nimport { firstValueFrom, Observable } from 'rxjs';\nimport { take, map, filter } from 'rxjs/operators';\n\nimport { LoggerService } from '@common/modules/core/services/logger/logger.service';\n\nimport { IState } from '../reducers';\nimport * as fromCore from '../selectors';\n\nexport const UserMetadataResolver: ResolveFn> = (next: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise => {\n return inject(UserMetadataResolverService).resolve();\n};\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UserMetadataResolverService {\n constructor(private store: Store, private logger: LoggerService) {\n this.logger.log('[UserMetadataResolver] init');\n }\n\n public resolve(): Promise {\n return firstValueFrom(\n this.waitForUserMetadataToLoad().pipe(\n map(loaded => {\n this.logger.log('[UserMetadataResolver] ' + loaded);\n return true;\n })\n )\n );\n }\n\n private waitForUserMetadataToLoad(): Observable {\n return this.store.select(fromCore.isCoreMetadataLoaded).pipe(\n filter(loaded => loaded),\n take(1)\n );\n }\n}\n","export const resources = {\n SessionExpiredTitle: '',\n SessionExpiredContent: '',\n SessionExpiredButton: '',\n ForceCloseDialog: '',\n InviteHeader: '',\n Close: '',\n InternalErrorReloadTitle: '',\n InternalErrorReloadContent: '',\n InternalErrorReloadButton: '',\n InviteCopyInviteUrlSuccessNotification: '',\n InviteSuccessNarrator: '',\n InviteRemovingSuccessNarrator: '',\n SurveyDialogTitle: '',\n SurveyDialogMessage: '',\n SurveyDialogOkButton: '',\n SurveyDialogCancelButton: '',\n RestrictedViewerPopupTitle: '',\n RestrictedViewerPopupContent: '',\n FaceGatePopupTitle: '',\n FaceGateInternalApproveSuccess: '',\n FaceGateInternalApproveFailed: '',\n StripAmsMigrationPending: '',\n StripAmsMigrationComplete: '',\n NotificationAmsMigrationCompleteTitle: '',\n NotificationAmsMigrationCompleteMessage: '',\n StripAmsMigrationInProgress: '',\n NotificationAmsMigrationInProgressTitle: '',\n NotificationAmsMigrationInProgressMessage: '',\n StripAmsMigrationFailed: '',\n NotificationAmsMigrationFailedTitle: '',\n NotificationAmsMigrationFailedTitleUntranslated: '',\n NotificationAmsMigrationFailedMessage: '',\n NotificationAmsMigrationFailedLinkText: '',\n StripAmsMigrationPartlySuccessful: '',\n StripAmsMigrationPartlySuccessfulUntranslated: '',\n NotificationAmsMigrationPartlySuccessfulTitle: '',\n NotificationAmsMigrationPartlySuccessfulMessage: '',\n NotificationAmsMigrationPartlySuccessfulLinkText: '',\n NotificationAmsMigrationErrorLinkText: '',\n NotificationAmsMigrationErrorTitle: '',\n NotificationAmsMigrationErrorTitleUntranslated: '',\n NotificationAmsMigrationErrorMessage: '',\n StripMigrationFallbackMessage: '',\n AzurePortalLinkText: '',\n AmsMigrationReportLinkText: ''\n};\n","import { createSelector } from '@ngrx/store';\n\nimport { envTypes } from '@common/modules/api/interfaces';\nimport { AccountResourceType } from '@common/modules/auth/interfaces';\nimport { locationsUS } from '@common/modules/api/services/locations-us';\nimport { APIErrors } from '@common/modules/core/services/toast/errors';\n\nimport { FACE_GATE_DATE, FACE_GATE_GRACE_END_DATE } from '../faceGatedDates';\nimport { highRiskRegions } from '../high-risk-regions';\nimport { selectCoreState } from '../reducers';\nimport * as fromAccounts from '../reducers/accounts.reducer';\n\nexport const getAccountsState = createSelector(selectCoreState, state => state.accounts);\n\nexport const selectAllAccounts = createSelector(getAccountsState, state => state.entities);\n\nexport const selectCurrentAccountId = createSelector(getAccountsState, state => state.selectedAccountId);\n\nexport const selectedAccountContract = createSelector(getAccountsState, state => state.selectedAccountContract);\n\nexport const selectedAccountLoaded = createSelector(getAccountsState, state => state.selectedAccountLoaded);\n\nexport const accountSaving = createSelector(getAccountsState, state => state.saving);\n\nexport const isAccountDeleteInProgress = createSelector(getAccountsState, state => state.deleteInProgress);\n\nexport const accountError = createSelector(getAccountsState, state => state.error);\n\nexport const isAccountFaceGated = createSelector(selectedAccountContract, accountContract => {\n if (accountContract) {\n const accountCreateTime = new Date(accountContract?.createTime);\n const today = new Date();\n\n const isNewAccount = accountCreateTime.getTime() > FACE_GATE_DATE.getTime();\n const isAccountInGraceDate = today.getTime() < FACE_GATE_GRACE_END_DATE.getTime();\n return isNewAccount || !isAccountInGraceDate;\n }\n});\n\nexport const isAccountLimitedWithFaces = createSelector(selectedAccountContract, isAccountFaceGated, (accountContract, isFaceGated) => {\n // If account have face gating and didn't sign form - should be limited with faces\n return isFaceGated && !accountContract?.limitedAccessFeatures?.isFaceIdentificationEnabled;\n});\n\nexport const showFaceGateWarning = createSelector(selectedAccountContract, accountContract => {\n return !accountContract?.limitedAccessFeatures?.isFaceIdentificationEnabled;\n});\n\nexport const isAccountInHighRiskRegion = createSelector(selectedAccountContract, accountContract => {\n return (\n accountContract?.accountType === envTypes.PAID &&\n highRiskRegions.includes(accountContract.location) &&\n !accountContract?.limitedAccessFeatures?.isFaceDetectionEnabled\n );\n});\n\nexport const selectCurrentAccount = createSelector(\n selectAllAccounts,\n getAccountsState,\n (accountEntities, state) => accountEntities[state.selectedAccountId]\n);\n\nexport const selectAccountType = createSelector(selectCurrentAccount, state => state?.accountType);\n\nexport const mapUIAccounts = createSelector(selectAllAccounts, accounts => {\n return Object.values(accounts).map(account => ({\n id: account.id,\n location: account.location,\n name: account.name,\n accountType: account.accountType,\n resourceType: account.resourceType\n }));\n});\n\nexport const selectAccountsCount = createSelector(mapUIAccounts, accounts => accounts?.length);\n\nexport const selectArmAccounts = createSelector(mapUIAccounts, mapAccounts =>\n mapAccounts.filter(account => account.resourceType === AccountResourceType.ARM)\n);\n\nexport const selectArmAccountsFromLocation = (location: string) =>\n createSelector(selectArmAccounts, armAccounts => armAccounts.filter(account => account.location === location));\n\nexport const selectUIAccounts = createSelector(mapUIAccounts, mapAccounts => {\n const trialAccounts = mapAccounts\n .filter(account => account?.accountType === 'Trial')\n .sort((a1, a2) => a1.name.toLowerCase().localeCompare(a2.name.toLowerCase()));\n const paidAccounts = mapAccounts\n .filter(account => account?.accountType !== 'Trial' && account?.resourceType !== AccountResourceType.ARM)\n .sort((a1, a2) => a1.location <= a2.location && a1.name.toLowerCase().localeCompare(a2.name.toLowerCase()));\n const armAccounts = mapAccounts\n .filter(account => account?.resourceType === AccountResourceType.ARM)\n .sort((a1, a2) => a1.location <= a2.location && a1.name.toLowerCase().localeCompare(a2.name.toLowerCase()));\n\n return [...trialAccounts, ...paidAccounts, ...armAccounts];\n});\n\nexport const selectAccountsFilterName = createSelector(getAccountsState, state => state.accountsFilterValue);\n\nexport const selectFilteredUIAccounts = () =>\n createSelector(selectUIAccounts, selectCurrentAccount, selectAccountsFilterName, (accounts, selectedAccount, value) => {\n return [\n ...accounts?.filter(\n acc =>\n acc?.id !== selectedAccount?.id &&\n (acc.name?.toLowerCase().includes(value?.toLowerCase()) ||\n acc.location?.toLowerCase().includes(value?.toLowerCase()) ||\n acc.id?.includes(value))\n )\n ];\n });\n\nexport const selectedUIAccount = createSelector(selectCurrentAccount, account => ({\n id: account?.id || '',\n location: account?.location || '',\n name: account?.name || '',\n accountType: account?.accountType || 'Trial',\n resourceType: account?.resourceType\n}));\n\nexport const getSelectedAccountStatistics = createSelector(selectedAccountContract, selectedAccount => {\n return selectedAccount?.statistics;\n});\n\nexport const getSelectedAccountQuota = createSelector(selectedAccountContract, selectedAccount => {\n return selectedAccount?.quotaUsage;\n});\n\nexport const getSelectedAccountLocation = createSelector(selectCurrentAccount, selectedAccount => {\n return selectedAccount?.location;\n});\n\nexport const getSelectedAccountSettings = createSelector(getAccountsState, state => {\n return state?.selectedAccountSettings;\n});\n\nexport const getIncludeCelebSettings = createSelector(getSelectedAccountSettings, state => {\n return state?.includeCelebrityRecognition;\n});\n\nexport const selectAccountTokenPermission = createSelector(getAccountsState, state => {\n return state?.selectedAccountAccessTokenPermission;\n});\n\nexport const selectAccountResourceType = createSelector(selectCurrentAccount, account => {\n if (account?.accountType?.toLowerCase() === AccountResourceType.TRIAL.toLowerCase()) {\n return AccountResourceType.TRIAL;\n } else if (account?.accountType !== AccountResourceType.TRIAL.toLowerCase() && account?.resourceType !== AccountResourceType.ARM) {\n return AccountResourceType.CLASSIC;\n } else if (account?.resourceType === AccountResourceType.ARM) {\n return AccountResourceType.ARM;\n }\n});\n\nexport const isArmAmslessAccount = createSelector(selectCurrentAccount, account => {\n return !!account?.storageAccountResourceId;\n});\n\nexport const isConnectedToOpenAI = createSelector(selectCurrentAccount, account => {\n return !!account?.openAIResourceId;\n});\n\nexport const isUSAAccount = createSelector(selectCurrentAccount, account => {\n if (!account) {\n return false;\n }\n\n if (account.accountType?.toLowerCase() === AccountResourceType.TRIAL.toLowerCase()) {\n return true;\n }\n\n return locationsUS.includes(account.location);\n});\n\nexport const isTrialAccount = createSelector(selectCurrentAccount, account => {\n return account?.accountType?.toLowerCase() === AccountResourceType.TRIAL.toLowerCase();\n});\n\n// get the selectors\nconst { selectIds, selectEntities, selectAll, selectTotal } = fromAccounts.adapter.getSelectors(getAccountsState);\n\n// select the array of user ids\nexport const selectAccountIds = selectIds as (state: object) => string[];\n\n// select the dictionary of user entities\nexport const selectUserEntities = selectEntities;\n\n// select the array of users\nexport const selectAllAccountsSlim = selectAll;\n\n// select the total user count\nexport const selectUserTotal = selectTotal;\n\n// ARM Accounts\n\nexport const armAccountsLoaded = createSelector(getAccountsState, state => state.armAccountsLoaded);\n\nexport const armAccountsError = createSelector(getAccountsState, state => state.armAccountsError);\n\nexport const selectErrorType = createSelector(getAccountsState, state => state.errorType);\n\nexport const isNetworkAccessNotAllowedError = createSelector(selectErrorType, errorType => errorType === APIErrors.NETWORK_ACCESS_NOT_ALLOWED);\n","import { createSelector } from '@ngrx/store';\n\nimport { selectCoreState } from '../reducers';\n\nexport const getAmsMigrationState = createSelector(selectCoreState, state => state.amsMigration);\n\nexport const getAmsMigrationStatus = createSelector(getAmsMigrationState, state => state.accountMigration);\n\nexport const getAmsMigrationsListResult = createSelector(getAmsMigrationState, state => state.videoMigrations);\n\nexport const getVideoMigrationResults = createSelector(getAmsMigrationsListResult, state => state.results);\n\nexport const getAmsMigrationResultsNextPage = createSelector(getAmsMigrationsListResult, state => state.nextPage);\n\nexport const getAmsMigrationsPaginationDone = createSelector(getAmsMigrationResultsNextPage, state => state.done);\n\nexport const getIsLoading = createSelector(getAmsMigrationState, state => state.isLoading);\n\nexport const getLoadingMore = createSelector(getAmsMigrationState, state => state.loadingMore);\n","import { createSelector } from '@ngrx/store';\n\nimport { IUIAccountRoleAssignment } from '@common/modules/shared/interfaces';\n\nimport { getEdgeExtensionsState } from './edge-extensions.selectors';\nimport { getUserState } from './user.selectors';\nimport { getInvitationsState, selectUIInvitations } from './invitations.selectors';\nimport { getRoleAssignmentsState, selectUIRoleAssignments } from './roleAssignments.selectors';\nimport { selectUIAccounts, selectCurrentAccount, getAccountsState, selectedAccountContract, selectAllAccounts } from './accounts.selectors';\n\nexport const getAllUserDetails = createSelector(getUserState, selectUIAccounts, selectCurrentAccount, (userState, accounts, selectedAccount) => ({\n ...userState.user,\n accounts: accounts,\n selectedAccountId: selectedAccount?.id\n}));\n\nexport const isCoreMetadataLoaded = createSelector(\n getAccountsState,\n getUserState,\n getEdgeExtensionsState,\n (accountState, userState, extensionsState) =>\n accountState.loaded &&\n userState.loaded &&\n (!accountState.isArmAccountNeededForInit || accountState.armAccountsLoaded) &&\n (!extensionsState.isEdgeExtensionsNeededForInit || extensionsState.loaded)\n);\n\nexport const isEdgeExtensionsMetadataLoaded = createSelector(\n getAccountsState,\n getUserState,\n getEdgeExtensionsState,\n (accountState, userState, extensionsState) => accountState.loaded && userState.loaded && accountState.armAccountsLoaded && extensionsState.loaded\n);\n\n// isFullMetadataLoaded - should be used only for cases when we need to load all metadata for the app including load arm accounts\nexport const isFullMetadataLoaded = createSelector(\n getAccountsState,\n getUserState,\n (accountState, userState) => accountState.loaded && userState.loaded && accountState.armAccountsLoaded\n);\n\nexport const getRoleByUser = createSelector(getUserState, selectedAccountContract, (userState, selectedAccount) => {\n if (selectedAccount?.owners?.find(o => o.id === userState.user.id)) {\n return 'Owner';\n }\n\n if (selectedAccount?.contributors?.find(o => o.id === userState.user.id)) {\n return 'Contributor';\n }\n\n return 'Reader';\n});\n\nexport const isZeroAccounts = createSelector(isCoreMetadataLoaded, selectAllAccounts, (loaded, accounts) => loaded && !Object.keys(accounts)?.length);\n\nexport const selectInvitationsListLoaded = createSelector(\n getInvitationsState,\n getRoleAssignmentsState,\n (invitations, roleAssignments) => invitations.loaded && roleAssignments.loaded\n);\n\nexport const selectInviteError = createSelector(\n getInvitationsState,\n getRoleAssignmentsState,\n (invitations, roleAssignments) => invitations.error || roleAssignments.error\n);\n\nexport const selectInviteIsNotAllowedError = createSelector(\n getInvitationsState,\n getRoleAssignmentsState,\n (invitations, roleAssignments) => invitations.isUserNotAllowedError || roleAssignments.isUserNotAllowedError\n);\n\nexport const selectAllInvitationsEmails = createSelector(selectUIInvitations, selectUIRoleAssignments, (invitations, roleAssignments) => {\n let invitationsEmails = [];\n let roleAssEmails = [];\n if (invitations) {\n invitationsEmails = invitations.map(invitation => invitation.email);\n }\n if (roleAssignments) {\n roleAssEmails = roleAssignments.map(assignment => assignment.user.email);\n }\n return invitationsEmails.concat(roleAssEmails);\n});\n\nexport const selectUIRolesWithoutUser = createSelector(getUserState, selectUIRoleAssignments, (userState, roles) => {\n return roles.filter((role: IUIAccountRoleAssignment) => role.user.email !== userState.user.email);\n});\n","import { createSelector } from '@ngrx/store';\n\nimport { selectCoreState } from '../reducers';\n\nexport const getCustomizationViewState = createSelector(selectCoreState, state => state.customizationView);\n\nexport const selectedCustomizationPage = createSelector(getCustomizationViewState, state => state.selectedPage);\n","import { createSelector } from '@ngrx/store';\n\nimport { selectCoreState } from '../reducers';\nimport { getUserState } from './user.selectors';\n\nexport const getDirectoriesState = createSelector(selectCoreState, state => state.directories);\n\nexport const selectDirectoriesLoaded = createSelector(getDirectoriesState, state => state.loaded);\n\nexport const selectDirectoriesError = createSelector(getDirectoriesState, state => state.error);\n\nexport const selectDirectories = createSelector(getDirectoriesState, state => state.entities);\n\nexport const currentTenantId = createSelector(getUserState, state => state.user?.tenantId);\n\nexport const selectedDirectory = createSelector(selectDirectories, currentTenantId, (directories, currentTenantId) => {\n const tenant = directories[currentTenantId];\n return {\n id: tenant?.id,\n tenantId: tenant?.tenantId,\n countryCode: tenant?.countryCode,\n displayName: tenant?.displayName,\n domains: tenant?.domains,\n tenantCategory: tenant?.tenantCategory,\n defaultDomain: tenant?.defaultDomain,\n tenantType: tenant?.tenantType\n };\n});\n\nexport const selectUIDirectories = createSelector(selectDirectories, currentTenantId, (directories, currentTenantId) => {\n const allDirectories = Object.values(directories).map(directory => {\n return {\n id: directory.id,\n tenantId: directory.tenantId,\n countryCode: directory.countryCode,\n displayName: directory.displayName,\n domains: directory.domains,\n tenantCategory: directory.tenantCategory,\n defaultDomain: directory.defaultDomain,\n tenantType: directory.tenantType\n };\n });\n const selectedDirectory = allDirectories.filter(d => d.tenantId === currentTenantId);\n const otherDirectories = allDirectories.filter(d => d.tenantId !== currentTenantId);\n\n return [...selectedDirectory, ...otherDirectories];\n});\n","import { createSelector } from '@ngrx/store';\n\nimport { selectCoreState } from '../reducers';\nimport { selectCurrentAccountId } from './accounts.selectors';\nimport { isGalleryRoute } from '../reducers/router';\n\nexport const getEdgeExtensionsState = createSelector(selectCoreState, state => state?.edgeExtensions);\n\nexport const selectEdgeExtensionsLoaded = createSelector(getEdgeExtensionsState, state => state?.loaded);\n\nexport const selectEdgeExtensionsError = createSelector(getEdgeExtensionsState, state => state?.error);\n\nexport const isSelectedEdgeExtensionError = createSelector(getEdgeExtensionsState, state => state?.handshakeFailed);\n\nexport const selectedEdgeExtensionId = createSelector(getEdgeExtensionsState, state => state?.selectedExtensionId);\n\nexport const hasSelectedEdgeExtension = createSelector(selectedEdgeExtensionId, id => id?.length > 0);\n\nexport const selectEdgeExtensions = createSelector(getEdgeExtensionsState, state => Object.values(state.entities));\n\nexport const selectedEdgeExtension = createSelector(getEdgeExtensionsState, selectedEdgeExtensionId, (state, id) => state.entities[id]);\n\nexport const selectedEdgeExtensionName = createSelector(selectedEdgeExtension, extension => extension?.name);\n\nexport const selectedEdgeExtensionIotHubResourceId = createSelector(selectedEdgeExtension, extension => extension?.iotHubResourceId);\n\nexport const selectedEdgeExtensionHandshakeInProgress = createSelector(getEdgeExtensionsState, state => state?.handshakeInProgress);\n\nexport const selectedEdgeExtensionHandshakeDone = createSelector(getEdgeExtensionsState, state => state?.handshakeDone);\n\nexport const selectedEdgeExtensionEndpointUrl = createSelector(\n selectedEdgeExtension,\n extension => extension?.properties?.configurationSettings['videoIndexer.endpointUri']\n);\n\nexport const selectedAccountEdgeExtensions = createSelector(selectEdgeExtensions, selectCurrentAccountId, (extensions, accountId) => {\n return extensions.filter(extension => extension?.properties?.configurationSettings['videoIndexer.accountId'] === accountId);\n});\n\nexport const hasEdgeExtensions = createSelector(selectedAccountEdgeExtensions, extensions => extensions.length > 0);\n\nexport const selectedEdgeExtensionUniqueId = createSelector(selectedEdgeExtension, extension => extension?.identity?.principalId);\n\nexport const isExtensionsSubMenuOpened = createSelector(\n hasEdgeExtensions,\n isGalleryRoute,\n (hasEdgeExtensions, isGalleryRoute) => hasEdgeExtensions && isGalleryRoute\n);\n\nexport const isLiveModuleLoaded = createSelector(getEdgeExtensionsState, state => state?.isLiveModuleLoaded);\n","export * from './core.selectors';\nexport * from './accounts.selectors';\nexport * from './user.selectors';\nexport * from './sidebar.selectors';\nexport * from './invitations.selectors';\nexport * from './roleAssignments.selectors';\nexport * from './side-menu.selectors';\nexport * from './customization-view.selectors';\nexport * from './notifications.selectors';\nexport * from './directories.selectors';\nexport * from './edge-extensions.selectors';\nexport * from './ams-migration.selectors';\n","import { createSelector } from '@ngrx/store';\n\nimport { selectCoreState } from '../reducers';\n\nexport const getInvitationsState = createSelector(selectCoreState, state => state.invitations);\n\nexport const selectInvitationLoaded = createSelector(getInvitationsState, state => state.loaded);\n\nexport const selectInvitationsError = createSelector(getInvitationsState, state => state.error);\n\nexport const selectInviteSaving = createSelector(getInvitationsState, state => state.saving);\n\nexport const selectInvitations = createSelector(getInvitationsState, state => state.entities);\n\nexport const selectInvitationsIds = createSelector(getInvitationsState, state => state.ids);\n\nexport const selectInvitationsLength = createSelector(selectInvitationsIds, ids => ids?.length);\n\nexport const selectUIInvitations = createSelector(selectInvitations, invitations => {\n return Object.values(invitations).map(invitation => {\n return {\n email: invitation.email,\n invitationId: invitation.invitationId,\n removing: false,\n role: invitation.role\n };\n });\n});\n","import { createSelector } from '@ngrx/store';\n\nimport { INotification, NotificationLevel } from '@common/modules/core/services/toast/interfaces';\n\nimport { selectCoreState } from '../reducers';\nimport * as fromBannersNotifications from '../reducers/notifications/notifications-banners.reducer';\n\nexport const getNotificationsState = createSelector(selectCoreState, state => state.notifications);\n\nexport const getNotificationsLoadingState = createSelector(getNotificationsState, state => state.viewState?.loading);\n\n// Banners\nexport const selectBannersNotifications = createSelector(getNotificationsState, state => state.banners);\n\nexport const selectAllBannersNotifications = createSelector(selectBannersNotifications, state => Object.values(state.entities));\n\nexport const getNotClearedBannersNotifications = createSelector(selectAllBannersNotifications, notifications =>\n notifications.filter(n => !n.cleared)\n);\n\nexport const getNotSeenBannersNotifications = createSelector(getNotClearedBannersNotifications, notifications => notifications.filter(n => !n.seen));\n\nexport const getNotToastedBannersNotifications = createSelector(selectAllBannersNotifications, notifications =>\n notifications.filter(n => !n.toasted)\n);\n\n// get the selectors\nconst { selectIds } = fromBannersNotifications.adapter.getSelectors(selectBannersNotifications);\n\n// select the array of user ids\nexport const selectBannersNotificationsIds = selectIds as (state: object) => string[];\n\n// Alerts\nexport const selectAlertsNotifications = createSelector(getNotificationsState, state => state.alerts);\n\nexport const selectAllAlertsNotifications = createSelector(selectAlertsNotifications, state => Object.values(state.entities));\n\nexport const getNotSeenAlertsNotifications = createSelector(selectAllAlertsNotifications, notifications => notifications.filter(n => !n.seen));\n\nexport const getNotToastedAlertsNotifications = createSelector(selectAllAlertsNotifications, notifications => notifications.filter(n => !n.toasted));\n\nexport const getNotClearedAlertsNotifications = createSelector(selectAllAlertsNotifications, notifications => notifications.filter(n => !n.cleared));\n\n// Messages\nexport const selectMessagesNotifications = createSelector(getNotificationsState, state => state.messages);\n\nexport const selectAllMessagesNotifications = createSelector(selectMessagesNotifications, state => Object.values(state.entities));\n\nexport const getNotSeenMessagesNotifications = createSelector(selectAllMessagesNotifications, notifications => notifications.filter(n => !n.seen));\n\nexport const getNotToastedMessagesNotifications = createSelector(selectAllMessagesNotifications, notifications =>\n notifications.filter(n => !n.toasted)\n);\n\nexport const getNotClearedMessagesNotifications = createSelector(selectAllMessagesNotifications, notifications =>\n notifications.filter(n => !n.cleared)\n);\n\n// Notifications panel\nexport const getNotificationPanelAlerts = createSelector(getNotClearedBannersNotifications, selectAllAlertsNotifications, (banners, alerts) => {\n const allNotifications = [...banners, ...alerts];\n const criticalNotifications = allNotifications\n ?.filter(n => n.level?.toString()?.toLowerCase() === NotificationLevel.Critical.toString()?.toLowerCase())\n ?.sort(compareNotificationsStartDate.bind(this));\n const errorNotifications = allNotifications\n ?.filter(n => n.level?.toString()?.toLowerCase() === NotificationLevel.Error.toString()?.toLowerCase())\n ?.sort(compareNotificationsStartDate.bind(this));\n const warningNotifications = allNotifications\n ?.filter(n => n.level?.toString()?.toLowerCase() === NotificationLevel.Warning.toString()?.toLowerCase())\n ?.sort(compareNotificationsStartDate.bind(this));\n const infoNotifications = allNotifications\n ?.filter(n => n.level?.toString()?.toLowerCase() === NotificationLevel.Info.toString()?.toLowerCase())\n ?.sort(compareNotificationsStartDate.bind(this));\n const noneNotifications = allNotifications\n ?.filter(n => n.level?.toString()?.toLowerCase() === NotificationLevel.None.toString()?.toLowerCase())\n ?.sort(compareNotificationsStartDate.bind(this));\n return [...criticalNotifications, ...errorNotifications, ...warningNotifications, ...infoNotifications, ...noneNotifications];\n});\n\nexport const getNotificationPanelMessages = createSelector(getNotClearedMessagesNotifications, messages => {\n const criticalNotifications = messages\n ?.filter(n => n.level?.toString()?.toLowerCase() === NotificationLevel.Critical.toString()?.toLowerCase())\n ?.sort(compareNotificationsStartDate.bind(this));\n const errorNotifications = messages\n ?.filter(n => n.level?.toString()?.toLowerCase() === NotificationLevel.Error.toString()?.toLowerCase())\n ?.sort(compareNotificationsStartDate.bind(this));\n const warningNotifications = messages\n ?.filter(n => n.level?.toString()?.toLowerCase() === NotificationLevel.Warning.toString()?.toLowerCase())\n ?.sort(compareNotificationsStartDate.bind(this));\n const infoNotifications = messages\n ?.filter(n => n.level?.toString()?.toLowerCase() === NotificationLevel.Info.toString()?.toLowerCase())\n ?.sort(compareNotificationsStartDate.bind(this));\n const noneNotifications = messages\n ?.filter(n => n.level?.toString()?.toLowerCase() === NotificationLevel.None.toString()?.toLowerCase())\n ?.sort(compareNotificationsStartDate.bind(this));\n return [...criticalNotifications, ...errorNotifications, ...warningNotifications, ...infoNotifications, ...noneNotifications];\n});\n\nexport const getNotClearedNotificationsCount = createSelector(\n getNotClearedBannersNotifications,\n getNotClearedAlertsNotifications,\n getNotClearedMessagesNotifications,\n (banners, alerts, messages) => banners.length + alerts.length + messages.length\n);\n\nfunction compareNotificationsStartDate(a: INotification, b: INotification) {\n const date1 = new Date(a?.startDate);\n const date2 = new Date(b?.startDate);\n\n return date2.getTime() - date1.getTime();\n}\n","import { createSelector } from '@ngrx/store';\n\nimport { orderBy } from 'lodash-es';\n\nimport { AccountPermission, IUIAccountRoleAssignment } from '@common/modules/shared/interfaces';\n\nimport { contributorAction, ownerAction } from '../../invite';\nimport { selectCoreState } from '../reducers';\n\nexport const getRoleAssignmentsState = createSelector(selectCoreState, state => state.roleAssignments);\n\nexport const selectRoleAssignmentsLoaded = createSelector(getRoleAssignmentsState, state => state.loaded);\n\nexport const selectRoleAssignmentsError = createSelector(getRoleAssignmentsState, state => state.error);\n\nexport const selectRoleAssignments = createSelector(getRoleAssignmentsState, state => state.entities);\n\nexport const selectUIRoleAssignments = createSelector(selectRoleAssignments, roleAssignments => {\n let accountUIRoleAssignments: IUIAccountRoleAssignment[] = Object.values(roleAssignments).map(roleAssignment => {\n return {\n id: roleAssignment.id,\n user: { ...roleAssignment.user },\n role: roleAssignment.role,\n removing: false,\n selectedRoleAction: roleAssignment.role === AccountPermission.OWNER ? ownerAction : contributorAction\n };\n });\n accountUIRoleAssignments = orderBy(accountUIRoleAssignments, ['role'], ['desc']);\n return accountUIRoleAssignments;\n});\n","import { createSelector } from '@ngrx/store';\n\nimport { selectCoreState } from '../reducers';\n\nexport const getSideMenuState = createSelector(selectCoreState, state => state.sideMenu);\nexport const getSideMenuSelectedOption = createSelector(getSideMenuState, state => state.selectedOption);\nexport const getSideMenuOpen = createSelector(getSideMenuState, state => state.open);\n","import { createSelector } from '@ngrx/store';\n\nimport { selectCoreState } from '../reducers';\n\nexport const getSidebarState = createSelector(selectCoreState, state => state.sidebar);\n\nexport const getSidebarStateStatus = createSelector(getSidebarState, state => state.state);\n\nexport const getSidebarPage = createSelector(getSidebarState, state => state.page);\n\nexport const getSidebarCallbackAfterClose = createSelector(getSidebarState, state => state.callbackAfterClose);\n","import { createSelector } from '@ngrx/store';\n\nimport { IUserSettings } from '@common/modules/core/services/interfaces';\n\nimport { selectCoreState } from '../reducers';\n\nexport const getUserState = createSelector(selectCoreState, state => state.user);\n\nexport const getUserDetails = createSelector(getUserState, state => state.user);\n\nexport const isUserDetailsLoading = createSelector(getUserState, state => state.loading);\n\nexport const isUserDetailsLoaded = createSelector(getUserState, state => state.loaded);\n\nexport const loadUserDetailsError = createSelector(getUserState, state => state.error);\n\nexport const showSamplesTab = createSelector(getUserState, state => !!state?.user.showSamplesTab);\n\nexport const showGalleryByDefault = createSelector(getUserState, state => !!state?.user.showGalleryByDefault);\n\nexport const getUserSettings = createSelector(getUserState, state => getUserSettingsFromUserContract(state.user));\n\nexport const getUserEmail = createSelector(getUserState, state => state?.user?.email);\n\nexport const getSignedInUserEmail = createSelector(getUserState, state => state?.user?.signedInUserEmail);\n\nexport const getTenantId = createSelector(getUserState, state => state?.user?.tenantId);\n\nexport const getUserId = createSelector(getUserState, state => state?.user?.id);\n\nexport const autoCompleteEnabled = createSelector(getUserState, state => !!state?.user.autoCompleteSearch);\n\nexport function getUserSettingsFromUserContract(user: Microsoft.VideoIndexer.Contracts.UserContractSlim): IUserSettings {\n return {\n getNewsUpdates: user.getNewsUpdates,\n autoCompleteSearch: user.autoCompleteSearch,\n showSamplesTab: user.showSamplesTab,\n showGalleryByDefault: user.showGalleryByDefault,\n locale: user.locale,\n userType: user.userType\n };\n}\n","import { Injectable } from '@angular/core';\nimport { NavigationExtras, Params } from '@angular/router';\n\nimport { Store } from '@ngrx/store';\n\nimport { Observable, combineLatest, filter, map, take } from 'rxjs';\n\nimport { UtilsService } from '@common/modules/shared/services/utils.service';\nimport {\n CustomizationPage,\n FeatureSwitch,\n IUIAccount,\n IUserSettings,\n NavigationState,\n SideMenuOption\n} from '@common/modules/core/services/interfaces';\nimport { AccountPermission } from '@common/modules/shared/interfaces';\nimport { FeatureSwitchService } from '@common/modules/core/services/feature-switch/feature-switch.service';\n\nimport { ISidebarNavigationOptions, SidebarPages } from '../../sidebar/interfaces';\nimport { SettingsTab } from '../../settings/pages/settings/interfaces';\nimport { IState } from '../reducers';\nimport * as actions from '../actions';\nimport * as fromRouter from '../reducers/router';\nimport * as fromCore from '../selectors';\nimport { AMSAssetsMigrationStatus } from '../interfaces';\n\n@Injectable()\nexport class CoreStoreService {\n constructor(\n private readonly store: Store,\n private readonly routerStore: Store,\n private readonly utilsService: UtilsService,\n private readonly featureSwitchService: FeatureSwitchService\n ) {}\n\n // Core selectors\n\n public get roleByUser$(): Observable {\n return this.store.select(fromCore.getRoleByUser);\n }\n\n public get coreMetadataLoaded$(): Observable {\n return this.store.select(fromCore.isCoreMetadataLoaded);\n }\n\n public get isFullMetadataLoaded$(): Observable {\n return this.store.select(fromCore.isFullMetadataLoaded);\n }\n\n public get userDetailsLoaded$(): Observable {\n return this.store.select(fromCore.isUserDetailsLoaded);\n }\n\n public get isZeroAccounts$(): Observable {\n return this.store.select(fromCore.isZeroAccounts);\n }\n\n // User selectors\n\n public get userDetails$(): Observable {\n return this.store.select(fromCore.getUserDetails);\n }\n\n public get allUserDetails$(): Observable {\n return this.store.select(fromCore.getAllUserDetails);\n }\n\n public get userSettings$(): Observable {\n return this.store.select(fromCore.getUserSettings);\n }\n\n public get userDetailsError$(): Observable {\n return this.store.select(fromCore.loadUserDetailsError);\n }\n\n public get showSamplesTab$(): Observable {\n return this.store.select(fromCore.showSamplesTab);\n }\n\n public get showGalleryByDefault$(): Observable {\n return this.store.select(fromCore.showGalleryByDefault);\n }\n\n public get getUserEmail$(): Observable {\n return this.store.select(fromCore.getUserEmail);\n }\n\n public get getSignedInUserEmail$(): Observable {\n return this.store.select(fromCore.getSignedInUserEmail);\n }\n\n public get autoCompleteEnabled$(): Observable {\n return this.store.select(fromCore.autoCompleteEnabled);\n }\n\n public get getAccountTokenPermission$(): Observable {\n return this.store.select(fromCore.selectAccountTokenPermission);\n }\n\n public saveUserSettings(userSettings: IUserSettings) {\n this.store.dispatch(actions.updateUserApi({ user: userSettings }));\n }\n\n public sessionExpired() {\n this.store.dispatch(actions.sessionExpired());\n }\n\n public loadChunksError() {\n this.store.dispatch(actions.loadChunksError());\n }\n\n // Account selectors\n\n public get accounts$(): Observable {\n return this.store.select(fromCore.selectCurrentAccount);\n }\n\n public get selectAccountsCount$(): Observable {\n return this.store.select(fromCore.selectAccountsCount);\n }\n\n public get UIAccounts$(): Observable {\n return this.store.select(fromCore.selectUIAccounts);\n }\n\n public get selectedAccountId$(): Observable {\n return this.store.select(fromCore.selectCurrentAccountId);\n }\n\n public get selectedAccount$(): Observable {\n return this.store.select(fromCore.selectCurrentAccount);\n }\n\n public get selectAccountIds$(): Observable {\n return this.store.select(fromCore.selectAccountIds);\n }\n\n public get selectedUIAccount$(): Observable {\n return this.store.select(fromCore.selectedUIAccount);\n }\n\n public get armAccounts$(): Observable {\n return this.store.select(fromCore.selectArmAccounts);\n }\n\n public get selectedAccountContract$(): Observable {\n return this.store.select(fromCore.selectedAccountContract);\n }\n\n public get selectedAccountLoaded$(): Observable {\n return this.store.select(fromCore.selectedAccountLoaded);\n }\n\n public get selectedAccountStatistics$(): Observable {\n return this.store.select(fromCore.getSelectedAccountStatistics);\n }\n\n public get getSelectedAccountQuota$(): Observable {\n return this.store.select(fromCore.getSelectedAccountQuota);\n }\n\n public get selectIncludeCelebSettings$(): Observable {\n return this.store.select(fromCore.getIncludeCelebSettings);\n }\n\n public get selectedAccountLocation$(): Observable {\n return this.store.select(fromCore.getSelectedAccountLocation);\n }\n\n public get selectAccountType$(): Observable {\n return this.store.select(fromCore.selectAccountType);\n }\n\n public get selectAccountError$(): Observable {\n return this.store.select(fromCore.accountError);\n }\n\n public get isNetworkAccessNotAllowedError$(): Observable {\n return this.store.select(fromCore.isNetworkAccessNotAllowedError);\n }\n\n public get isAccountLimitedWithFaces$(): Observable {\n return this.store.select(fromCore.isAccountLimitedWithFaces);\n }\n\n public get showFaceGateWarning$(): Observable {\n return this.store.select(fromCore.showFaceGateWarning);\n }\n\n public get isAccountInHighRiskRegion$(): Observable {\n return this.store.select(fromCore.isAccountInHighRiskRegion);\n }\n\n public get isAmslessAccount$(): Observable {\n return combineLatest([this.isArmAmslessAccount$, this.isTrialAccount$]).pipe(\n map(\n ([isArmAmslessAccount, isTrialAccount]) =>\n isArmAmslessAccount || (isTrialAccount && this.featureSwitchService.featureSwitch(FeatureSwitch.Amsless))\n )\n );\n }\n\n public get isArmAmslessAccount$(): Observable {\n return this.store.select(fromCore.isArmAmslessAccount);\n }\n\n public get isAccountConnectedToOpenAI$(): Observable {\n return this.store.select(fromCore.isConnectedToOpenAI);\n }\n\n public get isProjectsForAmslessEnabled$() {\n return combineLatest([this.isArmAmslessMigrated$, this.isTrialAccount$]).pipe(\n map(([isArmAmslessMigrated, isTrialAccount]) => {\n return (isArmAmslessMigrated || isTrialAccount) && this.featureSwitchService.featureSwitch(FeatureSwitch.ProjectsForAMSless);\n })\n );\n }\n\n public get isArmAmslessMigrated$() {\n return combineLatest([this.isArmAmslessAccount$, this.store.select(fromCore.getAmsMigrationStatus)]).pipe(\n map(([isArmAmslessAccount, amsMigrationStatus]) => {\n const noNeedMigration =\n amsMigrationStatus?.status === AMSAssetsMigrationStatus.FAILED ||\n amsMigrationStatus?.status === AMSAssetsMigrationStatus.COMPLETED ||\n amsMigrationStatus?.status === AMSAssetsMigrationStatus.NOT_APPLICABLE;\n return isArmAmslessAccount && noNeedMigration;\n })\n );\n }\n\n public get isUSAccount$(): Observable {\n return this.store.select(fromCore.isUSAAccount);\n }\n\n public get isTrialAccount$(): Observable {\n return this.store.select(fromCore.isTrialAccount);\n }\n\n public selectAccount(id: string, forceLoad = false, doNotClearSelectedExtension = false): void {\n this.store.dispatch(actions.selectAccount({ id, forceLoad, doNotClearSelectedExtension }));\n }\n\n public addAccount(newAccount: Microsoft.VideoIndexer.Contracts.AccountContract): void {\n this.store.dispatch(actions.addAccount({ account: newAccount }));\n }\n\n public armAccountsFromLocation(location: string): Observable {\n return this.store.select(fromCore.selectArmAccountsFromLocation(location));\n }\n\n public filteredUIAccounts$(): Observable {\n return this.store.select(fromCore.selectFilteredUIAccounts());\n }\n\n public setAccountsFilterValue(value: string): void {\n this.store.dispatch(actions.setAccountsFilterValue({ value }));\n }\n\n public acceptUseOfFacialIdentification(signature: string, useCase: string): void {\n this.store.dispatch(actions.acceptUseOfFacialIdentification({ signature, useCase }));\n }\n\n // ARM Accounts Selectors\n\n public get armAccountsLoaded$(): Observable {\n return this.store.select(fromCore.armAccountsLoaded);\n }\n\n public get armAccountsError$(): Observable {\n return this.store.select(fromCore.armAccountsError);\n }\n\n // Directories Selectors\n public get UIDirectories$(): Observable {\n return this.store.select(fromCore.selectUIDirectories);\n }\n\n public get selectedDirectory$(): Observable {\n return this.store.select(fromCore.selectedDirectory);\n }\n\n public get currentTenantId$(): Observable {\n return this.store.select(fromCore.currentTenantId);\n }\n\n public get directoriesLoaded$(): Observable {\n return this.store.select(fromCore.selectDirectoriesLoaded);\n }\n\n public get directoriesError$(): Observable {\n return this.store.select(fromCore.selectDirectoriesError);\n }\n\n public loadDirectories(): void {\n this.store.dispatch(actions.loadDirectories());\n }\n\n public selectDirectory(tenantId: string): void {\n this.store.dispatch(actions.selectDirectory({ tenantId }));\n }\n\n // Invite Data\n\n public get selectInvitationsListLoaded$(): Observable {\n return this.store.select(fromCore.selectInvitationsListLoaded);\n }\n\n public get selectAllInvitationsEmails$(): Observable {\n return this.store.select(fromCore.selectAllInvitationsEmails);\n }\n\n public get selectUIInvitations$() {\n return this.store.select(fromCore.selectUIInvitations);\n }\n\n public get selectUIRolesWithoutUser$() {\n return this.store.select(fromCore.selectUIRolesWithoutUser);\n }\n\n public get selectInviteError$() {\n return this.store.select(fromCore.selectInviteError);\n }\n\n public get selectInviteIsNotAllowedError$() {\n return this.store.select(fromCore.selectInviteIsNotAllowedError);\n }\n\n public get selectInviteSaving$() {\n return this.store.select(fromCore.selectInviteSaving);\n }\n\n public inviteToAccount(formDetails: Microsoft.VideoIndexer.Contracts.InviteContract[]): void {\n this.store.dispatch(actions.inviteToAccount({ formDetails }));\n }\n\n public deleteInvitation(invitationId: number): void {\n this.store.dispatch(actions.deleteInvitation({ invitationId }));\n }\n\n public copyInvitationLink(invitationId: number): void {\n this.store.dispatch(actions.copyInvitationLink({ invitationId }));\n }\n\n public deleteRoleAssignment(roleAssignmentId: number): void {\n this.store.dispatch(actions.deleteRoleAssignment({ roleAssignmentId }));\n }\n\n public updateRoleAssignments(roleAssignmentId: number, role: Microsoft.VideoIndexer.Contracts.UserRole): void {\n this.store.dispatch(actions.updateRoleAssignments({ roleAssignmentId, role }));\n }\n\n public updateAccountCelebSettings(includeCelebrityRecognition: boolean) {\n this.store.dispatch(actions.updateAccountCelebSettings({ includeCelebrityRecognition }));\n }\n\n // Sidebar selectors\n\n public get sidebarStateStatus$(): Observable {\n return this.store.select(fromCore.getSidebarStateStatus);\n }\n\n public get sidebarPage$(): Observable {\n return this.store.select(fromCore.getSidebarPage);\n }\n\n public get sidebarCallbackAfterClose$(): Observable<() => void> {\n return this.store.select(fromCore.getSidebarCallbackAfterClose);\n }\n\n public setSidebar(sidebarNavigationOptions: ISidebarNavigationOptions): void {\n this.store.dispatch(actions.selectSidebarOptions({ options: sidebarNavigationOptions }));\n }\n\n public clearSidebar(): void {\n this.store.dispatch(actions.clearSidebar());\n this.store.dispatch(actions.clearAccountsFilterValue());\n }\n\n public clearAccountsFilterValue(): void {\n this.store.dispatch(actions.clearAccountsFilterValue());\n }\n\n // Router selectors\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public navigate(path: any[], queryParams?: object, extras?: NavigationExtras, removeParams?: boolean) {\n this.store.dispatch(\n actions.Go({\n path,\n queryParams,\n extras,\n removeParams\n })\n );\n }\n\n public get routerParams$(): Observable {\n return this.routerStore.select(fromRouter.getRouteParams);\n }\n\n public get routerQueryParams$(): Observable {\n return this.routerStore.select(fromRouter.getQueryParams);\n }\n\n public get isGalleryRoute$(): Observable {\n return this.routerStore.select(fromRouter.isGalleryRoute);\n }\n\n // Navigation\n public navigateToSettings(tab?: SettingsTab) {\n this.store.dispatch(actions.navigateToSettings({ tab }));\n }\n\n public navigateToCustomization(page = CustomizationPage.Language) {\n this.store.dispatch(actions.navigateToCustomization({ page }));\n }\n\n public navigateToCamera(cameraId: string) {\n this.store.dispatch(actions.navigateToCamera({ cameraId }));\n }\n\n public navigateToWorkflow(workflowId: string) {\n this.store.dispatch(actions.navigateToWorkflow({ workflowId }));\n }\n\n public openShareAccount(showInviteForm: boolean) {\n this.store.dispatch(actions.openShareAccount({ showInviteForm }));\n }\n\n public navigateToViResourceOverviewPortalUrl() {\n this.selectedAccountContract$\n .pipe(\n filter(account => !!account),\n take(1)\n )\n .subscribe(account => {\n const url = this.utilsService.getViResourceOverviewPortalUrl(account.tenantId, account.resourceId);\n window.open(url, '_blank');\n });\n }\n\n // Side menu\n\n public navigateFromSideMenu(option?: SideMenuOption) {\n this.store.dispatch(actions.sideMenuOptionSelected({ option }));\n }\n\n public sideMenuToggled(open: boolean) {\n this.store.dispatch(actions.sideMenuToggled({ open }));\n }\n\n public selectSideMenuOpen() {\n return this.store.select(fromCore.getSideMenuOpen);\n }\n\n public selectSideMenuSelectedOption() {\n return this.store.select(fromCore.getSideMenuSelectedOption);\n }\n\n public get isExtensionsSubMenuOpened$() {\n return this.store.select(fromCore.isExtensionsSubMenuOpened);\n }\n\n // customization view\n\n public getSelectedCustomizationPage(): Observable {\n return this.store.select(fromCore.selectedCustomizationPage);\n }\n}\n","import { Injectable, OnDestroy } from '@angular/core';\n\nimport { Subject, takeUntil, withLatestFrom } from 'rxjs';\n\nimport { FeatureSwitch } from '@common/modules/core/services/interfaces';\nimport { FeatureSwitchService } from '@common/modules/core/services/feature-switch/feature-switch.service';\nimport { ApiService } from '@common/modules/api/services/api.service';\nimport { AuthService } from '@common/modules/auth/services/auth.service';\n\nimport { EdgeExtensionsStoreService } from './edge-extensions-store.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EdgeExtensionsApiHandlerService implements OnDestroy {\n protected destroy$ = new Subject();\n\n private hasSelectedEdgeExtension = false;\n\n constructor(\n private featureSwitchService: FeatureSwitchService,\n private extensionsStore: EdgeExtensionsStoreService,\n private apiService: ApiService,\n private authService: AuthService\n ) {}\n\n public ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n public init() {\n if (!this.featureSwitchService.featureSwitch(FeatureSwitch.Edge)) {\n return;\n }\n\n this.extensionsStore.accountEdgeExtensionUrl$\n .pipe(takeUntil(this.destroy$), withLatestFrom(this.extensionsStore.selectedEdgeExtensionId$))\n .subscribe(([url, extensionId]) => {\n this.apiService.edgeExtensionApiUrl = url;\n this.hasSelectedEdgeExtension = !!url;\n this.authService.SelectedEdgeExtensionId = extensionId;\n });\n }\n\n public get HasSelectedEdgeExtension() {\n return this.hasSelectedEdgeExtension;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Store } from '@ngrx/store';\n\nimport { EMPTY, Observable, mergeMap, withLatestFrom } from 'rxjs';\n\nimport { UtilsService } from '@common/modules/shared/services/utils.service';\n\nimport { IState } from '../reducers';\nimport * as actions from '../actions';\nimport * as fromCore from '../selectors';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EdgeExtensionsStoreService {\n constructor(private readonly store: Store, private utilsService: UtilsService) {}\n\n public get edgeExtensionsMetadataLoaded$(): Observable {\n return this.store.select(fromCore.isEdgeExtensionsMetadataLoaded);\n }\n\n public get accountEdgeExtensions$(): Observable {\n return this.store.select(fromCore.selectedAccountEdgeExtensions);\n }\n\n public get accountEdgeExtensionUrl$(): Observable {\n return this.store.select(fromCore.selectedEdgeExtensionEndpointUrl);\n }\n\n public get selectedEdgeExtensionId$(): Observable {\n return this.store.select(fromCore.selectedEdgeExtensionId);\n }\n\n public get selectedEdgeExtensionUrl$() {\n return this.store.select(fromCore.selectedEdgeExtension).pipe(\n withLatestFrom(this.store.select(fromCore.selectedAccountContract)),\n mergeMap(([extension, account]) => {\n if (!extension || !account) {\n return EMPTY;\n }\n\n return [this.utilsService.azurePortalResourceLink(account.tenantId, extension.id)];\n })\n );\n }\n\n public get selectedEdgeExtensionClusterUrl$() {\n return this.store.select(fromCore.selectedEdgeExtension).pipe(\n withLatestFrom(this.store.select(fromCore.selectedAccountContract)),\n mergeMap(([extension, account]) => {\n if (!extension || !account) {\n return EMPTY;\n }\n\n const clusterResourceId = this.utilsService.getParentResourceId(extension.id);\n\n return [this.utilsService.azurePortalResourceLink(account.tenantId, clusterResourceId)];\n })\n );\n }\n\n public get selectEdgeExtensionsLoaded$(): Observable {\n return this.store.select(fromCore.selectEdgeExtensionsLoaded);\n }\n\n public get selectEdgeExtensions$(): Observable {\n return this.store.select(fromCore.selectEdgeExtensions);\n }\n\n public get hasSelectedEdgeExtension$(): Observable {\n return this.store.select(fromCore.hasSelectedEdgeExtension);\n }\n\n public get hasEdgeExtensions$(): Observable {\n return this.store.select(fromCore.hasEdgeExtensions);\n }\n\n public get selectedEdgeExtensionUniqueId$(): Observable {\n return this.store.select(fromCore.selectedEdgeExtensionUniqueId);\n }\n\n public get selectedEdgeExtensionName$(): Observable {\n return this.store.select(fromCore.selectedEdgeExtensionName);\n }\n\n public get selectedEdgeExtensionIotHubResourceId$(): Observable {\n return this.store.select(fromCore.selectedEdgeExtensionIotHubResourceId);\n }\n\n public get isSelectedEdgeExtensionError$(): Observable {\n return this.store.select(fromCore.isSelectedEdgeExtensionError);\n }\n\n public get isLiveModuleLoaded$(): Observable {\n return this.store.select(fromCore.isLiveModuleLoaded);\n }\n\n public clearSelectedEdgeExtension() {\n this.store.dispatch(actions.clearSelectedEdgeExtension());\n }\n\n public clearEdgeExtensions() {\n this.store.dispatch(actions.clearSelectedEdgeExtension());\n this.store.dispatch(actions.clearEdgeExtensions());\n }\n\n public selectEdgeExtension(id: string) {\n this.store.dispatch(actions.selectEdgeExtension({ id }));\n }\n\n public selectEdgeExtensionClicked(id: string) {\n this.store.dispatch(actions.selectEdgeExtensionClicked({ id }));\n }\n\n public selectEdgeExtensionByPrincipalId(principalId: string) {\n this.store.dispatch(actions.selectEdgeExtensionByPrincipalId({ principalId }));\n }\n\n public uploadFile(file: File, name?: string) {\n this.store.dispatch(actions.uploadFile({ file, name }));\n }\n\n public liveModuleLoaded() {\n this.store.dispatch(actions.liveModuleLoaded());\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { FeatureSwitchService } from '@common/modules/core/services/feature-switch/feature-switch.service';\nimport { FeatureSwitch } from '@common/modules/core/services/interfaces';\nimport { IDialogData, IDialogEvent } from '@common/modules/shared/components/dialog/interfaces';\nimport { InternalFaceGateFormComponent } from '@common/modules/shared/components/internal-face-gate-form/internal-face-gate-form.component';\nimport { IFaceGatePopupEvent, IFaceGatePopupInfo } from '@common/modules/shared/components/internal-face-gate-form/interfaces';\nimport { AccountPermission, StorageCacheKey } from '@common/modules/shared/interfaces';\nimport { LocalStorageService } from '@common/modules/shared/services/local-storage.service';\nimport { isMsCorpEmailAddress } from '@common/modules/utils/string';\nimport { DialogService } from '@common/modules/shared/components/dialog/dialog.service';\nimport { PermissionService } from '@common/modules/shared/services/permission.service';\nimport { ToastService } from '@common/modules/core/services/toast/toast.service';\nimport { EventCategory, TrackService } from '@common/modules/core/services/track';\n\nimport { resources } from '../resources';\nimport { CoreStoreService } from './core-store.service';\nimport { highRiskRegions } from '../high-risk-regions';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FaceGatePopupService {\n private readonly MAX_COUNT_SHOW_NEW_SESSION = 3;\n\n constructor(\n private featureSwitchService: FeatureSwitchService,\n private localStorageService: LocalStorageService,\n private dialogService: DialogService,\n private coreStoreService: CoreStoreService,\n private toastService: ToastService,\n private permissionService: PermissionService,\n private trackService: TrackService\n ) {}\n\n public showPopup(account: Microsoft.VideoIndexer.Contracts.AccountContract, userEmail: string) {\n this.openFaceGateDialog(account.id, account.name, userEmail);\n this.trackService.track('internal_face_gate_form.open', {\n category: EventCategory.FACE_GATE,\n data: {\n origin: 'help'\n }\n });\n }\n\n public autoShowPopup(account: Microsoft.VideoIndexer.Contracts.AccountContract, userEmail: string) {\n this.openFaceGateDialog(account.id, account.name, userEmail);\n\n const showCounterLocalStorageKey = this.getLocalStorageKey(StorageCacheKey.ShowFaceGatePopupCounter, account.id);\n // showCounter - existing plus this time\n const showCounterLocalStorageValue = this.localStorageService.getItem(showCounterLocalStorageKey) ?? '0';\n const showCounter = parseInt(showCounterLocalStorageValue, 10) + 1;\n // increase show counter value\n if (showCounter < this.MAX_COUNT_SHOW_NEW_SESSION) {\n this.localStorageService.setItem(showCounterLocalStorageKey, showCounter.toString());\n } else {\n //do not show again after reach maximum\n const doNotShowLocalStorageKey = this.getLocalStorageKey(StorageCacheKey.DoNotShowFaceGatePopup, account.id);\n this.localStorageService.setItem(doNotShowLocalStorageKey, true.toString());\n }\n\n this.trackService.track('internal_face_gate_form.open', {\n data: {\n origin: 'auto',\n count: showCounter\n },\n category: EventCategory.FACE_GATE\n });\n }\n\n public onUpdateFaceFeaturesSuccess() {\n this.toastService.success(resources.FaceGateInternalApproveSuccess, false);\n this.trackService.track('internal_face_gate_form.submit.success', {\n category: EventCategory.FACE_GATE\n });\n }\n\n public onUpdateFaceFeaturesFailed(error) {\n this.toastService.error(error, resources.FaceGateInternalApproveFailed, false);\n this.trackService.track('internal_face_gate_form.submit.failed', {\n category: EventCategory.FACE_GATE,\n data: {\n error\n }\n });\n }\n\n public isShowPopupEnabled(email: string, isAccountEnabledWithFaces: boolean, accountPermission: AccountPermission, accountLocation: string) {\n // Check feature switch\n const showFaceGatePopupEnabled = this.featureSwitchService.featureSwitch(FeatureSwitch.InternalFaceGatePopup);\n if (!showFaceGatePopupEnabled) {\n return false;\n }\n\n // Check account has at least contributor permission\n if (!this.permissionService.ensurePermission(accountPermission, AccountPermission.CONTRIBUTOR)) {\n return false;\n }\n\n // Check account is not in high risk location\n if (highRiskRegions.includes(accountLocation)) {\n return false;\n }\n\n // Check if account limited with faces\n if (isAccountEnabledWithFaces) {\n return false;\n }\n\n // Check if user is MS corp\n if (!isMsCorpEmailAddress(email)) {\n return false;\n }\n\n return true;\n }\n\n public shouldAutoShow(account: Microsoft.VideoIndexer.Contracts.AccountContract, accountPermission: AccountPermission, userEmail: string) {\n if (!this.isShowPopupEnabled(userEmail, account.limitedAccessFeatures.isFaceIdentificationEnabled, accountPermission, account.location)) {\n return false;\n }\n\n // Check DoNotShowFaceGatePopup cache param\n const doNotShowLocalStorageKey = this.getLocalStorageKey(StorageCacheKey.DoNotShowFaceGatePopup, account.id);\n if (this.localStorageService.getItem(doNotShowLocalStorageKey)) {\n return false;\n }\n\n return true;\n }\n\n private openFaceGateDialog(accountId: string, accountName: string, userEmail: string) {\n const popupInfo: IFaceGatePopupInfo = {\n accountName: accountName,\n userEmail: userEmail\n };\n\n const dialogData: IDialogData = {\n class: 'face-gate-dialog',\n title: resources.FaceGatePopupTitle,\n component: InternalFaceGateFormComponent,\n componentData: popupInfo\n };\n\n const dialogRef = this.dialogService.openDialog(dialogData, '600px');\n\n dialogRef.componentInstance.actionChange.subscribe((res: IDialogEvent) => {\n const data = res?.dialogEventData;\n if (data?.isAccepted) {\n this.coreStoreService.acceptUseOfFacialIdentification(data?.signature, data?.useCase);\n // if user click dismiss do not show again auto popup (in new session)\n } else if (data?.isDismissed) {\n const localStorageKey = this.getLocalStorageKey(StorageCacheKey.DoNotShowFaceGatePopup, accountId);\n this.localStorageService.setItem(localStorageKey, true.toString());\n }\n });\n }\n\n private getLocalStorageKey(key: string, accountId: string) {\n return `${key}_${accountId}`;\n }\n}\n","import { Injectable, OnDestroy } from '@angular/core';\n\nimport { Update } from '@ngrx/entity';\n\nimport { Subject, combineLatest } from 'rxjs';\nimport { filter, take, takeUntil } from 'rxjs/operators';\n\nimport {\n INotification,\n INotificationButton,\n NotificationFilterType,\n NotificationIcon,\n NotificationLevel,\n NotificationMessageType,\n NotificationType\n} from '@common/modules/core/services/toast/interfaces';\nimport { ToastService } from '@common/modules/core/services/toast/toast.service';\nimport { LocalStorageService } from '@common/modules/shared/services/local-storage.service';\nimport { StorageCacheKey } from '@common/modules/shared/interfaces';\nimport { StripService } from '@common/modules/shared/components/strip/strip.service';\nimport { FeatureSwitchService } from '@common/modules/core/services/feature-switch/feature-switch.service';\nimport { FeatureSwitch } from '@common/modules/core/services/interfaces';\nimport { IStripData, MessageType } from '@common/modules/shared/components/strip/interfaces';\nimport { UtilsService } from '@common/modules/shared/services/utils.service';\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\n\nimport { NotificationsStoreService } from './notifications-store.service';\nimport { CoreStoreService } from './core-store.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NotificationsHandlerService implements OnDestroy {\n protected destroy$ = new Subject();\n // Alerts\n private alertsDefaultAndTenantNotificationsIdsList: string[] = [];\n private alertsDefaultAndTenantNotificationsToastedIdsList: string[] = [];\n private alertsRegionalNotificationsIdsList: string[] = [];\n private alertsRegionalNotificationsToastedIdsList: string[] = [];\n private alertsAccountTypeNotificationsIdsList: string[] = [];\n private alertsAccountTypeNotificationsToastedIdsList: string[] = [];\n\n // Messages\n private messagesDefaultAndTenantNotificationsIdsList: string[] = [];\n private messagesDefaultAndTenantNotificationsToastedIdsList: string[] = [];\n private messagesRegionalNotificationsIdsList: string[] = [];\n private messagesRegionalNotificationsToastedIdsList: string[] = [];\n private messagesAccountTypeNotificationsIdsList: string[] = [];\n private messagesAccountTypeNotificationsToastedIdsList: string[] = [];\n\n // Session\n private sessionNotificationsIdsList: string[] = [];\n\n // Common\n private clearedNotificationsIdsList: string[] = [];\n private bannersStripsIds: { [index: string]: number } = {};\n private userId = '';\n private region = '';\n private accountType = '';\n private eTag = '';\n private alertsSuffix = 'alerts';\n private messagesSuffix = 'messages';\n\n constructor(\n private toastService: ToastService,\n private stripService: StripService,\n private notificationsStore: NotificationsStoreService,\n private localStorageService: LocalStorageService,\n private featureSwitchService: FeatureSwitchService,\n private utilsService: UtilsService,\n private translateService: TranslateHelperService,\n private coreStoreService: CoreStoreService\n ) {}\n\n public ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n public get clearedNotificationsIds(): string[] {\n return this.clearedNotificationsIdsList;\n }\n\n public get toastedNotificationsIds(): string[] {\n return [\n ...this.alertsDefaultAndTenantNotificationsToastedIdsList,\n ...this.alertsRegionalNotificationsToastedIdsList,\n ...this.alertsAccountTypeNotificationsToastedIdsList,\n ...this.messagesDefaultAndTenantNotificationsToastedIdsList,\n ...this.messagesRegionalNotificationsToastedIdsList,\n ...this.messagesAccountTypeNotificationsToastedIdsList,\n ...this.sessionNotificationsIdsList\n ];\n }\n\n public get ETag(): string {\n return this.eTag;\n }\n\n public set ETag(eTag: string) {\n this.eTag = eTag;\n }\n\n public addNotificationsIds(\n alertsDefaultAndTenantNotificationsIds: string[],\n alertsRegionalNotificationsIds: string[],\n alertsAccountTypeNotificationsIdsList: string[],\n messagesDefaultAndTenantNotificationsIds: string[],\n messagesRegionalNotificationsIds: string[],\n messagesAccountTypeNotificationsIdsList: string[]\n ) {\n this.addAlertsDefaultAndTenantNotificationsIds(alertsDefaultAndTenantNotificationsIds);\n this.addAlertsRegionalNotificationsIds(alertsRegionalNotificationsIds);\n this.addAlertsAccountTypeNotificationsIds(alertsAccountTypeNotificationsIdsList);\n this.addMessagesDefaultAndTenantNotificationsIds(messagesDefaultAndTenantNotificationsIds);\n this.addMessagesRegionalNotificationsIds(messagesRegionalNotificationsIds);\n this.addMessagesAccountTypeNotificationsIds(messagesAccountTypeNotificationsIdsList);\n }\n\n public initNotificationsService() {\n if (!this.featureSwitchService.featureSwitch(FeatureSwitch.NotificationCenter)) {\n return;\n }\n\n combineLatest([this.notificationsStore.notToastedBannersNotifications$, this.coreStoreService.selectedAccountLoaded$])\n .pipe(takeUntil(this.destroy$))\n .subscribe(([notifications, isSelectedAccountLoaded]) => {\n const updatedNotifications: Update[] = [];\n for (const notification of notifications) {\n // publish banner notification\n const stripData: IStripData = {\n text: notification.text,\n iconClass: notification.icon,\n show: true,\n messageType: this.getNotificationStripMessageType(notification.level),\n hasCloseButton: true,\n notificationLevel: notification.level,\n trackingName: 'notifications.banner',\n ...(notification.button && { action: notification.button.action, actionCallback: notification.button.callback })\n };\n\n if (!this.bannersStripsIds[notification.id.toString()] && (!notification.resolveAccountData || isSelectedAccountLoaded)) {\n this.bannersStripsIds[notification.id.toString()] = this.stripService.triggerNotification(stripData);\n const updateNotification = {\n ...notification,\n toasted: true\n };\n updatedNotifications.push({ id: updateNotification.id, changes: updateNotification });\n }\n }\n\n if (updatedNotifications.length) {\n // update that all banners toasted\n this.notificationsStore.updateBannersNotifications(updatedNotifications);\n }\n });\n\n this.notificationsStore.notToastedAlertsNotifications$.pipe(takeUntil(this.destroy$)).subscribe(notifications => {\n const updatedNotifications: Update[] = [];\n for (const notification of notifications) {\n // publish toast notification\n if (!this.toastedNotificationsIds.includes(notification.id?.toString())) {\n this.toastService.notify(notification);\n }\n const updateNotification = {\n ...notification,\n toasted: true\n };\n updatedNotifications.push({ id: updateNotification.id, changes: updateNotification });\n this.saveAlertsToastNotificationToList(notification);\n }\n\n if (updatedNotifications.length) {\n // update that all alerts toasted\n this.notificationsStore.updateAlertsNotifications(updatedNotifications);\n this.saveToastNotificationsCache();\n }\n });\n\n this.notificationsStore.notToastedMessagesNotifications$.pipe(takeUntil(this.destroy$)).subscribe(notifications => {\n const updatedNotifications: Update[] = [];\n for (const notification of notifications) {\n // publish toast notification\n if (!this.toastedNotificationsIds.includes(notification.id?.toString())) {\n this.toastService.notify(notification);\n }\n const updateNotification = {\n ...notification,\n toasted: true\n };\n updatedNotifications.push({ id: updateNotification.id, changes: updateNotification });\n this.saveMessagesToastNotificationToList(notification);\n }\n\n if (updatedNotifications.length) {\n // update that all alerts toasted\n this.notificationsStore.updateMessagesNotifications(updatedNotifications);\n this.saveToastNotificationsCache();\n }\n });\n }\n\n public clearAllToasts() {\n this.toastService.clearAllToasts();\n }\n\n public loadNotificationsFromCache(userId: string, region: string, accountType: string) {\n this.clearBannersNotifications();\n this.clearSessionNotifications();\n if (this.region && this.region !== region) {\n this.clearRegionNotifications();\n }\n\n if (this.accountType && this.accountType !== accountType) {\n this.clearAccountTypeNotifications();\n }\n\n this.userId = userId;\n this.region = region;\n this.accountType = accountType;\n // setting the eTag empty to always get all notifications on init and change account\n this.eTag = '';\n this.loadDefaultAndTenantNotificationsIdsCache();\n this.loadDefaultAndTenantNotificationsToastedIdsCache();\n this.loadRegionalNotificationsIdsCache();\n this.loadRegionalNotificationsToastedIdsCache();\n this.loadAccountTypeNotificationsIdsCache();\n this.loadAccountTypeNotificationsToastedIdsCache();\n this.setClearedNotifications();\n }\n\n public clearAlertsAndBannersNotifications() {\n this.saveAlertsDefaultAndTenantNotificationsIdsCache();\n this.saveAlertsRegionalNotificationsIdsCache();\n this.saveAlertsAccountTypeNotificationsIdsCache();\n this.setClearedNotifications();\n\n this.notificationsStore.clearAlertsAndBannersNotifications();\n }\n\n public clearMessagesNotifications() {\n this.saveMessagesDefaultAndTenantNotificationsIdsCache();\n this.saveMessagesRegionalNotificationsIdsCache();\n this.saveMessagesAccountTypeNotificationsIdsCache();\n this.setClearedNotifications();\n\n this.notificationsStore.clearMessagesNotifications();\n }\n\n public markedAlertsAndBannersNotificationsBeenSeen() {\n const defaultChanges = this.alertsDefaultAndTenantNotificationsIdsList.map(id => {\n return { id, changes: { seen: true } };\n });\n const regionalChanges = this.alertsRegionalNotificationsIdsList.map(id => {\n return { id, changes: { seen: true } };\n });\n const accountTypeChanges = this.alertsAccountTypeNotificationsIdsList.map(id => {\n return { id, changes: { seen: true } };\n });\n const updatedNotifications: Update[] = [...defaultChanges, ...regionalChanges, ...accountTypeChanges];\n this.notificationsStore.updateAlertsNotifications(updatedNotifications);\n this.notificationsStore.updateBannersNotifications(updatedNotifications);\n }\n\n public clearBannersNotifications() {\n for (const id of Object.keys(this.bannersStripsIds)) {\n // remove banner notification\n if (this.bannersStripsIds[id]) {\n this.stripService.hideNotificationStrip(this.bannersStripsIds[id]);\n delete this.bannersStripsIds[id];\n }\n }\n this.notificationsStore.clearBannersNotifications();\n }\n\n public clearSessionNotifications() {\n this.notificationsStore.removeNotifications(this.sessionNotificationsIdsList);\n this.sessionNotificationsIdsList = [];\n }\n\n public getRequestMigrationNotification(): INotification {\n return {\n id: `request-migration-notification`,\n messageType: NotificationMessageType.Custom,\n startDate: new Date(),\n endDate: new Date(),\n type: NotificationType.Banner,\n level: NotificationLevel.Warning,\n icon: NotificationIcon.Warning,\n title: this.translateService.instant('RequestMigrationNotificationTitle'),\n toasted: false,\n text: this.translateService.instant('RequestMigrationNotificationText'),\n button: this.getRequestMigrationNotificationButton()\n };\n }\n\n private getRequestMigrationNotificationButton(): INotificationButton {\n return {\n action: {\n title: this.translateService.instant('RequestMigrationNotificationButtonText'),\n id: 'request-migration',\n value: 'request-migration'\n },\n callback: () => {\n combineLatest([this.coreStoreService.selectedAccountContract$, this.coreStoreService.selectAccountError$])\n .pipe(\n filter(([account, error]) => !!account || error), // wait for account to be loaded or error to appear\n take(1)\n )\n .subscribe(([account, _error]) => {\n const url = this.utilsService.getRequestMigrationInAzurePortalUrl(account?.tenantId, account?.resourceId);\n // on error the url will be redirected to ibiza home page\n window.open(url, '_blank');\n });\n }\n };\n }\n\n private addAlertsDefaultAndTenantNotificationsIds(ids: string[]) {\n const newIds = ids?.filter(id => !this.alertsDefaultAndTenantNotificationsIdsList.includes(id)) || [];\n this.alertsDefaultAndTenantNotificationsIdsList.push(...newIds);\n }\n\n private addAlertsRegionalNotificationsIds(ids: string[]) {\n const newIds = ids?.filter(id => !this.alertsRegionalNotificationsIdsList.includes(id)) || [];\n this.alertsRegionalNotificationsIdsList.push(...newIds);\n }\n\n private addAlertsAccountTypeNotificationsIds(ids: string[]) {\n const newIds = ids?.filter(id => !this.alertsAccountTypeNotificationsIdsList.includes(id)) || [];\n this.alertsAccountTypeNotificationsIdsList.push(...newIds);\n }\n\n private addMessagesDefaultAndTenantNotificationsIds(ids: string[]) {\n const newIds = ids?.filter(id => !this.messagesDefaultAndTenantNotificationsIdsList.includes(id)) || [];\n this.messagesDefaultAndTenantNotificationsIdsList.push(...newIds);\n }\n\n private addMessagesRegionalNotificationsIds(ids: string[]) {\n const newIds = ids?.filter(id => !this.messagesRegionalNotificationsIdsList.includes(id)) || [];\n this.messagesRegionalNotificationsIdsList.push(...newIds);\n }\n\n private addMessagesAccountTypeNotificationsIds(ids: string[]) {\n const newIds = ids?.filter(id => !this.messagesAccountTypeNotificationsIdsList.includes(id)) || [];\n this.messagesAccountTypeNotificationsIdsList.push(...newIds);\n }\n\n private clearRegionNotifications() {\n this.notificationsStore.removeNotifications(this.alertsRegionalNotificationsIdsList);\n }\n\n private clearAccountTypeNotifications() {\n this.notificationsStore.removeNotifications(this.alertsAccountTypeNotificationsIdsList);\n }\n\n private getNotificationStripMessageType(level: NotificationLevel): MessageType {\n switch (level) {\n case NotificationLevel.Critical:\n return MessageType.ERROR;\n case NotificationLevel.Error:\n return MessageType.ERROR;\n case NotificationLevel.Warning:\n return MessageType.WARNING;\n default:\n return MessageType.INFO;\n }\n }\n\n private setClearedNotifications() {\n this.clearedNotificationsIdsList = [\n ...this.alertsDefaultAndTenantNotificationsIdsList,\n ...this.alertsRegionalNotificationsIdsList,\n ...this.alertsAccountTypeNotificationsIdsList,\n ...this.messagesDefaultAndTenantNotificationsIdsList,\n ...this.messagesRegionalNotificationsIdsList,\n ...this.messagesAccountTypeNotificationsIdsList\n ];\n }\n\n private saveToastNotificationsCache() {\n this.saveDefaultAndTenantNotificationsToastedIdsCache();\n this.saveRegionalNotificationsToastedIdsCache();\n this.saveAccountTypeNotificationsToastedIdsCache();\n }\n\n private saveAlertsToastNotificationToList(notification: INotification) {\n switch (notification.filterType) {\n case NotificationFilterType.Default:\n this.alertsDefaultAndTenantNotificationsToastedIdsList.push(notification.id);\n break;\n case NotificationFilterType.Tenant:\n this.alertsDefaultAndTenantNotificationsToastedIdsList.push(notification.id);\n break;\n case NotificationFilterType.Region:\n this.alertsRegionalNotificationsToastedIdsList.push(notification.id);\n break;\n case NotificationFilterType.AccountType:\n this.alertsAccountTypeNotificationsToastedIdsList.push(notification.id);\n break;\n default:\n this.sessionNotificationsIdsList.push(notification.id);\n break;\n }\n }\n\n private saveMessagesToastNotificationToList(notification: INotification) {\n switch (notification.filterType) {\n case NotificationFilterType.Default:\n this.messagesDefaultAndTenantNotificationsToastedIdsList.push(notification.id);\n break;\n case NotificationFilterType.Tenant:\n this.messagesDefaultAndTenantNotificationsToastedIdsList.push(notification.id);\n break;\n case NotificationFilterType.Region:\n this.messagesRegionalNotificationsToastedIdsList.push(notification.id);\n break;\n case NotificationFilterType.AccountType:\n this.messagesAccountTypeNotificationsToastedIdsList.push(notification.id);\n break;\n default:\n this.sessionNotificationsIdsList.push(notification.id);\n break;\n }\n }\n\n private saveAlertsDefaultAndTenantNotificationsIdsCache() {\n this.localStorageService.removeItem(`${StorageCacheKey.NotificationsIds}_${this.userId}_${this.alertsSuffix}`);\n this.localStorageService.setItem(\n `${StorageCacheKey.NotificationsIds}_${this.userId}_${this.alertsSuffix}`,\n JSON.stringify(this.alertsDefaultAndTenantNotificationsIdsList)\n );\n }\n\n private saveMessagesDefaultAndTenantNotificationsIdsCache() {\n this.localStorageService.removeItem(`${StorageCacheKey.NotificationsIds}_${this.userId}_${this.messagesSuffix}`);\n this.localStorageService.setItem(\n `${StorageCacheKey.NotificationsIds}_${this.userId}_${this.messagesSuffix}`,\n JSON.stringify(this.messagesDefaultAndTenantNotificationsIdsList)\n );\n }\n\n private loadDefaultAndTenantNotificationsIdsCache() {\n const alertsIds = this.localStorageService.getItem(`${StorageCacheKey.NotificationsIds}_${this.userId}_${this.alertsSuffix}`);\n const messagesIds = this.localStorageService.getItem(`${StorageCacheKey.NotificationsIds}_${this.userId}_${this.messagesSuffix}`);\n this.alertsDefaultAndTenantNotificationsIdsList = [];\n if (alertsIds?.length) {\n this.alertsDefaultAndTenantNotificationsIdsList = JSON.parse(alertsIds);\n }\n this.messagesDefaultAndTenantNotificationsIdsList = [];\n if (messagesIds?.length) {\n this.messagesDefaultAndTenantNotificationsIdsList = JSON.parse(messagesIds);\n }\n }\n\n private saveDefaultAndTenantNotificationsToastedIdsCache() {\n this.localStorageService.removeItem(`${StorageCacheKey.NotificationsToastedIds}_${this.userId}_${this.alertsSuffix}`);\n this.localStorageService.setItem(\n `${StorageCacheKey.NotificationsToastedIds}_${this.userId}_${this.alertsSuffix}`,\n JSON.stringify(this.alertsDefaultAndTenantNotificationsToastedIdsList)\n );\n this.localStorageService.removeItem(`${StorageCacheKey.NotificationsToastedIds}_${this.userId}_${this.messagesSuffix}`);\n this.localStorageService.setItem(\n `${StorageCacheKey.NotificationsToastedIds}_${this.userId}_${this.messagesSuffix}`,\n JSON.stringify(this.messagesDefaultAndTenantNotificationsToastedIdsList)\n );\n }\n\n private loadDefaultAndTenantNotificationsToastedIdsCache() {\n const alertsIds = this.localStorageService.getItem(`${StorageCacheKey.NotificationsToastedIds}_${this.userId}_${this.alertsSuffix}`);\n const messagesIds = this.localStorageService.getItem(`${StorageCacheKey.NotificationsToastedIds}_${this.userId}_${this.messagesSuffix}`);\n this.alertsDefaultAndTenantNotificationsToastedIdsList = [];\n if (alertsIds?.length) {\n this.alertsDefaultAndTenantNotificationsToastedIdsList = JSON.parse(alertsIds);\n }\n this.messagesDefaultAndTenantNotificationsToastedIdsList = [];\n if (messagesIds?.length) {\n this.messagesDefaultAndTenantNotificationsToastedIdsList = JSON.parse(messagesIds);\n }\n }\n\n private saveAlertsRegionalNotificationsIdsCache() {\n this.localStorageService.removeItem(`${StorageCacheKey.NotificationsRegionalIds}_${this.userId}_${this.region}_${this.alertsSuffix}`);\n this.localStorageService.setItem(\n `${StorageCacheKey.NotificationsRegionalIds}_${this.userId}_${this.region}_${this.alertsSuffix}`,\n JSON.stringify(this.alertsRegionalNotificationsIdsList)\n );\n }\n\n private saveMessagesRegionalNotificationsIdsCache() {\n this.localStorageService.removeItem(`${StorageCacheKey.NotificationsRegionalIds}_${this.userId}_${this.region}_${this.messagesSuffix}`);\n this.localStorageService.setItem(\n `${StorageCacheKey.NotificationsRegionalIds}_${this.userId}_${this.region}_${this.messagesSuffix}`,\n JSON.stringify(this.messagesRegionalNotificationsIdsList)\n );\n }\n\n private loadRegionalNotificationsIdsCache() {\n const alertsIds = this.localStorageService.getItem(\n `${StorageCacheKey.NotificationsRegionalIds}_${this.userId}_${this.region}_${this.alertsSuffix}`\n );\n const messagesIds = this.localStorageService.getItem(\n `${StorageCacheKey.NotificationsRegionalIds}_${this.userId}_${this.region}_${this.messagesSuffix}`\n );\n this.alertsRegionalNotificationsIdsList = [];\n if (alertsIds?.length) {\n this.alertsRegionalNotificationsIdsList = JSON.parse(alertsIds);\n }\n this.messagesRegionalNotificationsIdsList = [];\n if (messagesIds?.length) {\n this.messagesRegionalNotificationsIdsList = JSON.parse(messagesIds);\n }\n }\n\n private saveRegionalNotificationsToastedIdsCache() {\n this.localStorageService.removeItem(`${StorageCacheKey.NotificationsRegionalToastedIds}_${this.userId}_${this.region}_${this.alertsSuffix}`);\n this.localStorageService.setItem(\n `${StorageCacheKey.NotificationsRegionalToastedIds}_${this.userId}_${this.region}_${this.alertsSuffix}`,\n JSON.stringify(this.alertsRegionalNotificationsToastedIdsList)\n );\n this.localStorageService.removeItem(`${StorageCacheKey.NotificationsRegionalToastedIds}_${this.userId}_${this.region}_${this.messagesSuffix}`);\n this.localStorageService.setItem(\n `${StorageCacheKey.NotificationsRegionalToastedIds}_${this.userId}_${this.region}_${this.messagesSuffix}`,\n JSON.stringify(this.messagesRegionalNotificationsToastedIdsList)\n );\n }\n\n private loadRegionalNotificationsToastedIdsCache() {\n const alertsIds = this.localStorageService.getItem(\n `${StorageCacheKey.NotificationsRegionalToastedIds}_${this.userId}_${this.region}_${this.alertsSuffix}`\n );\n const messagesIds = this.localStorageService.getItem(\n `${StorageCacheKey.NotificationsRegionalToastedIds}_${this.userId}_${this.region}_${this.messagesSuffix}`\n );\n this.alertsRegionalNotificationsToastedIdsList = [];\n if (alertsIds?.length) {\n this.alertsRegionalNotificationsToastedIdsList = JSON.parse(alertsIds);\n }\n this.messagesRegionalNotificationsToastedIdsList = [];\n if (messagesIds?.length) {\n this.messagesRegionalNotificationsToastedIdsList = JSON.parse(messagesIds);\n }\n }\n\n private saveAlertsAccountTypeNotificationsIdsCache() {\n this.localStorageService.removeItem(`${StorageCacheKey.NotificationsAccountTypeIds}_${this.userId}_${this.accountType}_${this.alertsSuffix}`);\n this.localStorageService.setItem(\n `${StorageCacheKey.NotificationsAccountTypeIds}_${this.userId}_${this.accountType}_${this.alertsSuffix}`,\n JSON.stringify(this.alertsAccountTypeNotificationsIdsList)\n );\n }\n\n private saveMessagesAccountTypeNotificationsIdsCache() {\n this.localStorageService.removeItem(`${StorageCacheKey.NotificationsAccountTypeIds}_${this.userId}_${this.accountType}_${this.messagesSuffix}`);\n this.localStorageService.setItem(\n `${StorageCacheKey.NotificationsAccountTypeIds}_${this.userId}_${this.accountType}_${this.messagesSuffix}`,\n JSON.stringify(this.messagesAccountTypeNotificationsIdsList)\n );\n }\n\n private loadAccountTypeNotificationsIdsCache() {\n const alertsIds = this.localStorageService.getItem(\n `${StorageCacheKey.NotificationsAccountTypeIds}_${this.userId}_${this.accountType}_${this.alertsSuffix}`\n );\n const messagesIds = this.localStorageService.getItem(\n `${StorageCacheKey.NotificationsAccountTypeIds}_${this.userId}_${this.accountType}_${this.messagesSuffix}`\n );\n this.alertsAccountTypeNotificationsIdsList = [];\n if (alertsIds?.length) {\n this.alertsAccountTypeNotificationsIdsList = JSON.parse(alertsIds);\n }\n this.messagesAccountTypeNotificationsIdsList = [];\n if (messagesIds?.length) {\n this.messagesAccountTypeNotificationsIdsList = JSON.parse(messagesIds);\n }\n }\n\n private saveAccountTypeNotificationsToastedIdsCache() {\n this.localStorageService.removeItem(\n `${StorageCacheKey.NotificationsAccountTypeToastedIds}_${this.userId}_${this.accountType}_${this.alertsSuffix}`\n );\n this.localStorageService.setItem(\n `${StorageCacheKey.NotificationsAccountTypeToastedIds}_${this.userId}_${this.accountType}_${this.alertsSuffix}`,\n JSON.stringify(this.alertsAccountTypeNotificationsToastedIdsList)\n );\n this.localStorageService.removeItem(\n `${StorageCacheKey.NotificationsAccountTypeToastedIds}_${this.userId}_${this.accountType}_${this.messagesSuffix}`\n );\n this.localStorageService.setItem(\n `${StorageCacheKey.NotificationsAccountTypeToastedIds}_${this.userId}_${this.accountType}_${this.messagesSuffix}`,\n JSON.stringify(this.messagesAccountTypeNotificationsToastedIdsList)\n );\n }\n\n private loadAccountTypeNotificationsToastedIdsCache() {\n const alertsIds = this.localStorageService.getItem(\n `${StorageCacheKey.NotificationsAccountTypeToastedIds}_${this.userId}_${this.accountType}_${this.alertsSuffix}`\n );\n const messagesIds = this.localStorageService.getItem(\n `${StorageCacheKey.NotificationsAccountTypeToastedIds}_${this.userId}_${this.accountType}_${this.messagesSuffix}`\n );\n this.alertsAccountTypeNotificationsToastedIdsList = [];\n if (alertsIds?.length) {\n this.alertsAccountTypeNotificationsToastedIdsList = JSON.parse(alertsIds);\n }\n this.messagesAccountTypeNotificationsToastedIdsList = [];\n if (messagesIds?.length) {\n this.messagesAccountTypeNotificationsToastedIdsList = JSON.parse(messagesIds);\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Store } from '@ngrx/store';\nimport { Update } from '@ngrx/entity';\n\nimport { Observable } from 'rxjs';\n\nimport { INotification } from '@common/modules/core/services/toast/interfaces';\n\nimport { IState } from '../reducers';\nimport * as actions from '../actions';\nimport * as fromCore from '../selectors';\n\n@Injectable()\nexport class NotificationsStoreService {\n constructor(private readonly store: Store) {}\n\n // Notifications common\n public get getNotificationPanelAlerts$(): Observable {\n return this.store.select(fromCore.getNotificationPanelAlerts);\n }\n\n public get getNotificationPanelMessages$(): Observable {\n return this.store.select(fromCore.getNotificationPanelMessages);\n }\n\n public get getNotificationsLoadingState$(): Observable {\n return this.store.select(fromCore.getNotificationsLoadingState);\n }\n\n public clearAlertsAndBannersNotifications() {\n this.store.dispatch(actions.clearNotificationsBanners());\n this.store.dispatch(actions.clearNotificationsAlerts());\n }\n\n public clearMessagesNotifications() {\n this.store.dispatch(actions.clearNotificationsMessages());\n }\n\n public removeNotifications(ids: string[]) {\n this.store.dispatch(actions.removeNotifications({ ids }));\n }\n\n // Banners\n public get bannerNotifications$(): Observable {\n return this.store.select(fromCore.selectAllBannersNotifications);\n }\n\n public get notSeenBannersNotifications$(): Observable {\n return this.store.select(fromCore.getNotSeenBannersNotifications);\n }\n\n public get notToastedBannersNotifications$(): Observable {\n return this.store.select(fromCore.getNotToastedBannersNotifications);\n }\n\n public get bannerNotificationsIds$(): Observable {\n return this.store.select(fromCore.selectBannersNotificationsIds);\n }\n\n public updateBannersNotifications(notifications: Update[]) {\n this.store.dispatch(actions.updateNotificationsBanners({ notifications }));\n }\n\n public clearBannersNotifications() {\n this.store.dispatch(actions.clearNotificationsBanners());\n }\n\n // Alerts\n public get alertsNotifications$(): Observable {\n return this.store.select(fromCore.selectAllAlertsNotifications);\n }\n\n public get notSeenAlertsNotifications$(): Observable {\n return this.store.select(fromCore.getNotSeenAlertsNotifications);\n }\n\n public get notToastedAlertsNotifications$(): Observable {\n return this.store.select(fromCore.getNotToastedAlertsNotifications);\n }\n\n public updateAlertsNotifications(notifications: Update[]) {\n this.store.dispatch(actions.updateNotificationsAlerts({ notifications }));\n }\n\n // Messages\n public get messageNotifications$(): Observable {\n return this.store.select(fromCore.selectAllMessagesNotifications);\n }\n\n public get notSeenMessagesNotifications$(): Observable {\n return this.store.select(fromCore.getNotSeenMessagesNotifications);\n }\n\n public get notToastedMessagesNotifications$(): Observable {\n return this.store.select(fromCore.getNotToastedMessagesNotifications);\n }\n\n public get notClearedNotificationsCount$(): Observable {\n return this.store.select(fromCore.getNotClearedNotificationsCount);\n }\n\n public updateMessagesNotifications(notifications: Update[]) {\n this.store.dispatch(actions.updateNotificationsMessages({ notifications }));\n }\n}\n","import { RouterNavigationAction, ROUTER_NAVIGATION } from '@ngrx/router-store';\nimport { Action } from '@ngrx/store';\n\nimport { filter } from 'rxjs/operators';\nimport { OperatorFunction } from 'rxjs';\n\nimport { GuidPattern, VideoIdPattern } from '@common/modules/utils/regexes';\n\nimport { IRouterStateUrl, LIVE_ROUTER_NAVIGATION } from '../interfaces';\n\n// ofRoute function allow us to filter ROUTER_NAVIGATION action to a specific route.\nexport function ofRoute(route: string | string[]): OperatorFunction, Action> {\n return filter((action: Action) => {\n const isRouteAction = action.type === ROUTER_NAVIGATION || action.type === LIVE_ROUTER_NAVIGATION;\n if (isRouteAction) {\n const routeAction = action as RouterNavigationAction;\n const routePath = routeAction.payload.routerState.url?.split('?')[0];\n\n const routesArray = Array.isArray(route) ? route : [route];\n\n // Check if one of the routes is valid\n for (const currentRoute of routesArray) {\n if (currentRoute === routePath) {\n return true;\n }\n\n if (currentRoute.includes(':accountId')) {\n let formattedRoute = currentRoute.replace(':accountId', GuidPattern);\n\n if (formattedRoute.includes(':videoId')) {\n formattedRoute = formattedRoute.replace(':videoId', VideoIdPattern);\n }\n\n if (formattedRoute.includes(':extensionId')) {\n formattedRoute = formattedRoute.replace(':extensionId', GuidPattern);\n }\n\n const regex = new RegExp(`${formattedRoute}$`, 'i');\n if (routePath.match(regex) !== null) {\n return true;\n }\n }\n }\n\n return false;\n }\n return isRouteAction;\n });\n}\n\nexport function formatRoute(route: string): string {\n let formattedRoute = route;\n if (route.includes(':accountId')) {\n formattedRoute = route.replace(':accountId', GuidPattern);\n\n if (formattedRoute.includes(':videoId')) {\n formattedRoute = formattedRoute.replace(':videoId', VideoIdPattern);\n }\n }\n return formattedRoute;\n}\n","export const resources = {\n AppSettingsSaveSuccessfully: ''\n};\n","import { Injectable } from '@angular/core';\n\nimport { take } from 'rxjs';\n\nimport { ActionButtonType } from '@common/modules/shared/components/action-button/interfaces';\nimport { DialogService } from '@common/modules/shared/components/dialog/dialog.service';\nimport { IDialogButton, IDialogData } from '@common/modules/shared/components/dialog/interfaces';\nimport { StorageCacheKey } from '@common/modules/shared/interfaces';\nimport { VI_SURVEY } from '@common/modules/shared/links';\nimport { LocalStorageService } from '@common/modules/shared/services/local-storage.service';\nimport { isOverTimeOffset } from '@common/modules/utils/time';\nimport { FeatureSwitchService } from '@common/modules/core/services/feature-switch/feature-switch.service';\nimport { FeatureSwitch } from '@common/modules/core/services/interfaces';\nimport { TrackService } from '@common/modules/core/services/track';\n\nimport { resources } from '../resources';\n\n@Injectable()\nexport class SurveyService {\n private readonly SURVEY_MIN_DAYS_USER_IN_VI = 1000 * 60 * 60 * 24 * 7; // 7 days\n private readonly SURVEY_REPEAT_TIME_OFFSET = 1000 * 60 * 60 * 24 * 14; // 14 days\n\n constructor(\n private dialogService: DialogService,\n private localStorageService: LocalStorageService,\n private featureSwitchService: FeatureSwitchService,\n private trackService: TrackService\n ) {}\n\n public showSurveyPopup(userJoinTime: string) {\n if (this.isShowSurvey(userJoinTime)) {\n this.openSurveyDialog();\n }\n }\n\n private isShowSurvey(userJoinTime: string) {\n // Check feature switch\n const showSurveyPopupEnabled = this.featureSwitchService.featureSwitch(FeatureSwitch.SurveyPopup);\n if (!showSurveyPopupEnabled) {\n return false;\n }\n\n // Check \"DoNotShowSurvey\" cache param.\n // This will be true when user have already directed to the survey form\n const doNotShowCacheValue = this.localStorageService.getItem(StorageCacheKey.DoNotShowSurvey);\n if (doNotShowCacheValue) {\n return false;\n }\n\n // Check \"LastTimeShowSurvey\" cache param.\n // This will be true when 14 days have passed since user saw the popup and did not want to fill survey,\n // In this case we want to show the popup again\n const lastTimeShowSurvey = parseInt(this.localStorageService.getItem(StorageCacheKey.LastTimeShowSurvey), 10);\n if (lastTimeShowSurvey) {\n return isOverTimeOffset(lastTimeShowSurvey, this.SURVEY_REPEAT_TIME_OFFSET);\n }\n\n // Show only for user who join to VI portal for at least 7 days ago\n const isUserJoinAfterMin = isOverTimeOffset(userJoinTime, this.SURVEY_MIN_DAYS_USER_IN_VI);\n return isUserJoinAfterMin;\n }\n\n private openSurveyDialog() {\n const okButton: IDialogButton = {\n type: ActionButtonType.PRIMARY,\n action: {\n title: resources.SurveyDialogOkButton,\n value: null,\n id: 'openSurveyBtn'\n }\n };\n const cancelButton: IDialogButton = {\n type: ActionButtonType.SECONDARY,\n action: {\n title: resources.SurveyDialogCancelButton,\n value: null,\n id: 'cancelSurveyBtn'\n }\n };\n\n const surveyDialogData: IDialogData = {\n class: 'survey-dialog',\n title: resources.SurveyDialogTitle,\n content: resources.SurveyDialogMessage,\n primaryButton: okButton,\n secondaryButton: cancelButton\n };\n\n this.trackService.track('survey.popup.opened');\n const dialog = this.dialogService.openDialog(surveyDialogData, '440px');\n\n dialog.componentInstance.actionChange.pipe(take(1)).subscribe(event => {\n if (event.action === okButton.action) {\n window.open(VI_SURVEY, '_blank');\n this.trackService.track('survey.popup.cta.clicked');\n this.localStorageService.setItem(StorageCacheKey.DoNotShowSurvey, 'true');\n }\n\n if (event.action === cancelButton.action) {\n this.trackService.track('survey.popup.dismissed');\n this.localStorageService.setItem(StorageCacheKey.LastTimeShowSurvey, Date.now().toString());\n }\n });\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { take } from 'rxjs/operators';\n\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\nimport { ToastService } from '@common/modules/core/services/toast/toast.service';\n\nimport { resources } from './resources';\n\n@Injectable()\nexport class UserService {\n public resources = resources;\n\n constructor(private translate: TranslateHelperService, private toastService: ToastService) {\n this.setTranslationsSubscription();\n }\n\n public toastUserSettingsSaveSuccessfully() {\n this.toastService.success(this.resources.AppSettingsSaveSuccessfully, false);\n }\n\n private setTranslationsSubscription() {\n this.translate\n .translateResources(this.resources)\n .pipe(take(1))\n .subscribe(() => {});\n }\n}\n","export const SupportedLocaleLanguages = {\n en: 'en',\n 'en-us': 'en',\n en_us: 'en',\n 'en-au': 'en',\n en_au: 'en',\n 'en-ca': 'en',\n en_ca: 'en',\n 'en-nz': 'en',\n en_nz: 'en',\n 'en-ph': 'en',\n en_ph: 'en',\n 'en-uk': 'en',\n en_uk: 'en',\n de_de: 'de',\n 'de-de': 'de',\n de: 'de',\n zh: 'zh-Hans',\n 'zh-hans': 'zh-Hans',\n zh_hans: 'zh-Hans',\n 'zh-cn': 'zh-CN',\n zh_cn: 'zh-CN',\n 'zh-hant': 'zh-Hant',\n zh_hant: 'zh-Hant',\n 'fr-fr': 'fr',\n fr_fr: 'fr',\n fr: 'fr',\n 'fr-ca': 'fr',\n fr_ca: 'fr',\n 'tr-tr': 'tr',\n tr_tr: 'tr',\n tr: 'tr',\n 'ja-jp': 'ja',\n ja_jp: 'ja',\n ja: 'ja',\n 'hi-in': 'hi',\n hi_in: 'hi',\n hi: 'hi',\n ru: 'ru',\n ru_ru: 'ru',\n 'ru-ru': 'ru',\n es: 'es',\n es_es: 'es',\n 'es-es': 'es',\n it: 'it',\n it_it: 'it',\n 'it-it': 'it',\n pt: 'pt-PT',\n pt_br: 'pt-br',\n 'pt-br': 'pt-br',\n pt_pt: 'pt-PT',\n 'pt-pt': 'pt-PT',\n ko: 'ko',\n ko_kr: 'ko',\n 'ko-kr': 'ko',\n 'nl-nl': 'nl',\n nl: 'nl',\n 'cs-cz': 'cs',\n cs: 'cs',\n 'pl-pl': 'pl',\n pl: 'pl',\n 'sv-se': 'sv',\n sv: 'sv',\n 'hu-hu': 'hu',\n hu: 'hu'\n};\n\nexport const DEFAULT_LOCALE_LANGUAGE = 'en';\nexport const DEFAULT_LOCALE_LANGUAGE_KEY = 'en-US';\n\nexport function getMappedLanguage(locale) {\n return (locale && SupportedLocaleLanguages[locale.toLowerCase()]) || DEFAULT_LOCALE_LANGUAGE;\n}\n","import {\n INotification,\n INotificationLink,\n NotificationFilterType,\n NotificationIcon,\n NotificationLevel,\n NotificationMessageType,\n NotificationType\n} from '@common/modules/core/services/toast/interfaces';\nimport { IStripData, MessageType } from '@common/modules/shared/components/strip/interfaces';\nimport { TimeInterval } from '@common/modules/utils/time';\n\nexport const NOTIFICATION_IN_PROGRESS_INTERVAL = TimeInterval.SECOND * 30;\nexport const NOTIFICATION_INTERVAL = TimeInterval.MINUTE * 30;\n\nexport const MIGRATION_LINK_ICON = '';\n\nexport const generateBannerLink = (path: string, text: string, hasIcon: boolean = false): string => {\n const icon = hasIcon ? MIGRATION_LINK_ICON : '';\n return `${text} ${icon}`;\n};\n\nexport const getMigrationNotification = (\n id: string,\n title: string,\n text: string,\n level: NotificationLevel,\n icon: NotificationIcon,\n toasted: boolean = false,\n link?: INotificationLink,\n type: NotificationType = NotificationType.Message\n): INotification => {\n return {\n id,\n title,\n text,\n link,\n level,\n icon,\n toasted,\n startDate: new Date(),\n endDate: new Date(),\n type,\n messageType: NotificationMessageType.Custom,\n filterType: NotificationFilterType.Default\n };\n};\n\nexport const getMigrationBanner = (\n text: string,\n iconClass: string,\n messageType: MessageType,\n trackingName: string,\n loadingProgress?: number\n): IStripData => {\n return {\n text,\n show: true,\n hasCloseButton: true,\n iconClass,\n messageType,\n trackingName,\n loadingProgress\n };\n};\n\n// Notifications\nexport const getMigrationFailedNotification = (title: string, text: string, toasted: boolean, link: INotificationLink): INotification => {\n return getMigrationNotification('migration-failed-notification', title, text, NotificationLevel.Info, NotificationIcon.Error, toasted, link);\n};\n\nexport const getMigrationPartlySuccessfulNotification = (title: string, text: string, toasted: boolean, link: INotificationLink): INotification => {\n return getMigrationNotification(\n 'migration-partly-successful-notification',\n title,\n text,\n NotificationLevel.Info,\n NotificationIcon.Info,\n toasted,\n link\n );\n};\n\nexport const getMigrationInProgressNotification = (title: string, text: string, toasted: boolean): INotification => {\n return getMigrationNotification('migration-in-progress-notification', title, text, NotificationLevel.Info, NotificationIcon.Info, toasted);\n};\n\nexport const getMigrationErrorNotification = (title: string, text: string, toasted: boolean, link: INotificationLink): INotification => {\n return getMigrationNotification('migration-error-notification', title, text, NotificationLevel.Info, NotificationIcon.Error, toasted, link);\n};\n\nexport const getMigrationCompleteNotification = (title: string, text: string, toasted: boolean): INotification => {\n return getMigrationNotification('migration-completed-notification', title, text, NotificationLevel.Info, NotificationIcon.Success, toasted);\n};\n\n// Banners\nexport const getMigrationFailedBanner = (text: string): IStripData => {\n return getMigrationBanner(text, NotificationIcon.Error, MessageType.ERROR, 'ams_migration_failed');\n};\n\nexport const getMigrationPartlySuccessfulBanner = (text: string): IStripData => {\n return getMigrationBanner(text, NotificationIcon.Info, MessageType.INFO, 'ams_migration_partly_successful');\n};\n\nexport const getMigrationPendingBanner = (text: string): IStripData => {\n return getMigrationBanner(text, NotificationIcon.Info, MessageType.INFO, 'ams_migration_pending');\n};\n\nexport const getMigrationInProgressBanner = (text: string, loadingProgress: number): IStripData => {\n return getMigrationBanner(text, NotificationIcon.Info, MessageType.INFO, 'ams_migration_in_progress', loadingProgress);\n};\n\nexport const getMigrationErrorBanner = (text: string): IStripData => {\n return getMigrationBanner(text, NotificationIcon.Error, MessageType.ERROR, 'ams_migration_error');\n};\n\nexport const getMigrationCompleteBanner = (text: string): IStripData => {\n return getMigrationBanner(text, NotificationIcon.Info, MessageType.INFO, 'ams_migration_completed');\n};\nexport function getMigrationFallbackBanner(text: string) {\n return getMigrationBanner(text, NotificationIcon.Warning, MessageType.WARNING, 'ams_migration_fallback');\n}\n","import { notificationTemplates } from '@common/modules/core/services/toast/notifications';\nimport {\n NotificationLevel,\n NotificationMessageType,\n NotificationType,\n NotificationIcon,\n IBaseNotification\n} from '@common/modules/core/services/toast/interfaces';\n\nexport function getNotificationsLevel(notification: IBaseNotification): NotificationLevel {\n if (notification.messageType === NotificationMessageType.Custom) {\n return notification.level;\n }\n\n return notificationTemplates[notification.messageType].level;\n}\n\nexport function getNotificationsType(notification: IBaseNotification): NotificationType {\n if (notification.messageType === NotificationMessageType.Custom) {\n return notification.type;\n }\n\n return notificationTemplates[notification.messageType].type;\n}\n\nexport function getNotificationIcon(notification: IBaseNotification): NotificationIcon {\n if (notification.messageType !== NotificationMessageType.Custom) {\n return notificationTemplates[notification.messageType].icon;\n }\n\n switch (notification.level) {\n case NotificationLevel.Critical:\n return NotificationIcon.Error;\n case NotificationLevel.Error:\n return NotificationIcon.Error;\n case NotificationLevel.Success:\n return NotificationIcon.Success;\n case NotificationLevel.Warning:\n return NotificationIcon.Warning;\n case NotificationLevel.Info:\n return NotificationIcon.Info;\n default:\n return NotificationIcon.None;\n }\n}\n","import { createAction, props } from '@ngrx/store';\n\nimport { IBrandsSettings } from '../../customization/components/brand/brand-container/interfaces';\n\nimport BrandContractV2 = Microsoft.VideoIndexer.Contracts.BrandContractV2;\n\nexport const loadBrandModels = createAction('[BrandModel/API] Load Brand Models');\nexport const loadBrandsSettings = createAction('[BrandModel] load brands settings');\nexport const failLoadBrandModels = createAction('[BrandModel] Fail load Brand Models');\nexport const upsertBrandModel = createAction('[BrandModel] Upsert Brand Model', props<{ brand: BrandContractV2 }>());\nexport const updateBrandModel = createAction('[BrandModel] Update Brand Model', props<{ brand: BrandContractV2 }>());\nexport const discardBrandSaving = createAction('[BrandModel] Discard Brand Models saving', props<{ brand: BrandContractV2 }>());\nexport const updateBrandsSettings = createAction('[BrandModel] Update Brands settings', props<{ settings: IBrandsSettings }>());\nexport const upsertBrandModels = createAction('[BrandModel] Upsert Brand Models', props<{ brands: BrandContractV2[] }>());\nexport const upsertBrandsSettings = createAction('[BrandModel] upsert brands settings', props<{ settings: IBrandsSettings }>());\nexport const deleteBrandModel = createAction('[BrandModel/API] Delete Brand Model', props<{ brand: BrandContractV2 }>());\nexport const addBrandModel = createAction('[BrandModel/API] Add Brand Model', props<{ brand: BrandContractV2 }>());\nexport const brandModelsLoaded = createAction('[BrandModel] Brand Models Loaded');\nexport const clearBrandModels = createAction('[BrandModel] Clear Brand Models');\n","import { createAction, props } from '@ngrx/store';\n\nexport const edgeUpsertSupportedLanguages = createAction(\n '[EdgeSupportedLanguage] Edge Upsert Language Model',\n props<{ supportedLanguages: Microsoft.VideoIndexer.Contracts.SupportedLanguageContract[] }>()\n);\n\nexport const edgeLoadSupportedLanguageFailed = createAction('[EdgeSupportedLanguage] Edge Failed load Supported Languages');\n","import { createAction, props } from '@ngrx/store';\n\nexport const clearLanguageIdDatasets = createAction('[LanguageID] Clear LanguageId datasets');\n\nexport const loadSelectedLanguages = createAction('[LanguageID] Load Selected AutoDetect Languages');\n\nexport const setSelectedLanguages = createAction(\n '[LanguageID] Set Selected AutoDetect Languages',\n props<{ selectedLanguages: Microsoft.VideoIndexer.Contracts.SupportedLanguageContract[] }>()\n);\n\nexport const deleteSelectedLanguage = createAction(\n '[LanguageID] Delete Selected Language Id',\n props<{ languageCode: Microsoft.VideoIndexer.Contracts.LanguageV2 }>()\n);\n\nexport const deleteSelectedLanguageSuccess = createAction('[LanguageID] Delete Selected Language Id Success');\n\nexport const addSelectedLanguage = createAction(\n '[LanguageID] Add Selected Language Id',\n props<{ selectedLanguage: Microsoft.VideoIndexer.Contracts.SupportedLanguageContract }>()\n);\n\nexport const loadDefaultLanguages = createAction('[LanguageID] Load Default AutoDetect Languages');\n\nexport const upsertDefaultLanguages = createAction(\n '[LanguageID] Upsert Default AutoDetect Languages',\n props<{ defaultLanguages: Microsoft.VideoIndexer.Contracts.SupportedLanguageContract[] }>()\n);\n","import { createAction, props } from '@ngrx/store';\n\nimport { IFileBlob } from '../../indexing/interfaces';\nimport { IUploadTrainingDataFile } from '../../customization/components/language/model-file/interfaces';\n\nimport LanguageModel = Microsoft.VideoIndexer.Contracts.LanguageModel;\nimport AddLanguageModel = Microsoft.VideoIndexer.Contracts.AddLanguageModel;\nimport TrainingDataFile = Microsoft.VideoIndexer.Contracts.TrainingDataFile;\nimport TrainingDataFromEdits = Microsoft.VideoIndexer.Contracts.TrainingDataFromEdits;\n\nexport const loadLanguageModels = createAction('[LanguageModel/API] Load Language Models');\n\nexport const failLoadLanguageModels = createAction('[LanguageModel] Fail Load Language Models');\n\nexport const upsertLanguageModel = createAction('[LanguageModel] Upsert Language Model', props<{ model: LanguageModel }>());\n\nexport const upsertLanguageModels = createAction('[LanguageModel] Upsert Language Models', props<{ models: LanguageModel[] }>());\n\nexport const deleteLanguageModel = createAction('[LanguageModel/API] Delete Language Model', props<{ model: LanguageModel }>());\n\nexport const addLanguageModel = createAction('[LanguageModel/API] Add Language Model', props<{ model: AddLanguageModel }>());\n\nexport const updateLanguageModel = createAction(\n '[LanguageModel/API] Update Language Model',\n props<{ model: AddLanguageModel; modelId: string; oldModel: LanguageModel }>()\n);\n\nexport const removeUpdatingFile = createAction('[LanguageModel] Remove Update Language Model', props<{ modelId: string; id: number }>());\n\nexport const uploadLanguageModelFile = createAction('[LanguageModel/API] Upload Language Model File', props<{ file: IFileBlob; modelId: string }>());\n\nexport const cancelLanguageModelFile = createAction('[LanguageModel/API] Cancel Language Model File', props<{ file: IFileBlob; modelId: string }>());\n\nexport const uploadFileToServer = createAction(\n '[LanguageModel/API] Upload File To Server',\n props<{ file: IFileBlob; modelId: string; fileId: number }>()\n);\n\nexport const updateUploadProgress = createAction(\n '[LanguageModel] Update Upload Progress',\n props<{ file: IUploadTrainingDataFile; modelId: string }>()\n);\n\nexport const updateLanguageModelFileContent = createAction(\n '[LanguageModel] Update Language Model File Content',\n props<{ file: TrainingDataFile; modelId: string }>()\n);\n\nexport const loadLanguageModelFileContent = createAction(\n '[LanguageModel/API] Load Language Model File Content',\n props<{ fileId: string; modelId: string }>()\n);\n\nexport const updateLanguageModelCrisEditsContent = createAction(\n '[LanguageModel] Update Language Model CrisEdits Content',\n props<{ crisEdits: TrainingDataFromEdits[]; modelId: string }>()\n);\n\nexport const loadLanguageModelCrisEditsContent = createAction(\n '[LanguageModel/API] Load Language Model Cris Edits Content',\n props<{ modelId: string }>()\n);\n\nexport const downloadFile = createAction('[LanguageModel/API] Download File', props<{ fileId: string; fileName: string; modelId: string }>());\n\nexport const downloadFromEditFile = createAction(\n '[LanguageModel] Download From Edit File',\n props<{ fileId: string; fileName: string; modelId: string }>()\n);\n\nexport const deleteFile = createAction('[LanguageModel/API] Delete File', props<{ fileId: string; modelId: string }>());\n\nexport const deleteLanguageModelFile = createAction('[LanguageModel] Delete Language Model File', props<{ fileId: string; modelId: string }>());\n\nexport const toggleLanguageModels = createAction('[LanguageModel] Toggle Language Model', props<{ modelId: string }>());\n\nexport const clearLanguageModels = createAction('[LanguageModel] Clear Language Models');\n\nexport const pullTrainingModel = createAction('[LanguageModel/API] Pull Train Language Model', props<{ model: LanguageModel }>());\n\nexport const trainModel = createAction('[LanguageModel/API] Train Language Model', props<{ model: LanguageModel }>());\n","import { createAction, props } from '@ngrx/store';\n\nimport LogoGroupContract = Microsoft.VideoIndexer.Contracts.Customization.LogoGroupContract;\n\nexport const logoGroupsLoad = createAction('[LogoGroups/API] Load Logo groups');\nexport const loadLogoGroupFailed = createAction('[LogoGroups] Fail load Logo Groups');\nexport const loadLogoGroupsInProgress = createAction('[LogoGroups] Load Logo Groups In Progress');\nexport const loadLogoGroupsSuccess = createAction('[LogoGroups] Upsert Logo Groups', props<{ groups: LogoGroupContract[] }>());\nexport const clearLogoGroups = createAction('[LogoGroups] Clear Logo Groups');\n","import { createAction, props } from '@ngrx/store';\n\nimport { PeopleTab } from '../../../customization/components/customization-people-container/interfaces';\n\nexport const selectPeopleTab = createAction('[PeoplePage] select tab', props<{ tab: PeopleTab }>());\nexport const initSelectedPeopleTab = createAction('[PeoplePage] init selected tab', props<{ tab: PeopleTab }>());\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { createAction, props } from '@ngrx/store';\n\nimport PaginatedResult = Microsoft.VideoIndexer.Contracts.PaginatedResult;\nimport UnknownPersonsJob = Microsoft.VideoIndexer.Contracts.UnknownPersonsJob;\nimport UnknownPerson = Microsoft.VideoIndexer.Contracts.UnknownPerson;\nimport UnknownPersonDetails = Microsoft.VideoIndexer.Contracts.UnknownPersonDetails;\n\nexport const selectUnknownPersonsTab = createAction('[UnknownPersons] Select Unknown Persons tab');\nexport const openUnknownPersonDetailsDialog = createAction('[UnknownPersons] Open Unknown Person Details Dialog', props<{ id: string }>());\n\nexport const submitUnknownPersonsJob = createAction('[UnknownPersons/API] Submit Unknown Persons Job');\nexport const submitUnknownPersonsJobSucceeded = createAction(\n '[UnknownPersons] Submit Unknown Persons Job succeeded',\n props<{ job?: UnknownPersonsJob }>()\n);\nexport const submitUnknownPersonsJobFailed = createAction(\n '[UnknownPersons] Submit Unknown Persons Job failed',\n props<{ error?: any; job: UnknownPersonsJob }>()\n);\nexport const getUnknownPersonsJob = createAction('[UnknownPersons/API] Get Unknown Persons Job');\nexport const getUnknownPersonsJobSucceeded = createAction(\n '[UnknownPersons/API] Get Unknown Persons Job Succeeded',\n props<{ job: UnknownPersonsJob }>()\n);\nexport const getUnknownPersonsJobFailed = createAction('[UnknownPersons/API] Get Unknown Persons Job Failed', props<{ error: any }>());\n\nexport const listUnknownPersons = createAction('[UnknownPersons/API] List Unknown Persons', props<{ searchValue?: string }>());\nexport const listUnknownPersonsSucceeded = createAction(\n '[UnknownPersons] List Unknown Persons succeeded',\n props<{ unknownPersons: PaginatedResult }>()\n);\nexport const listUnknownPersonsFailed = createAction('[UnknownPersons] List Unknown Persons failed', props<{ error?: any }>());\n\nexport const selectUnknownPerson = createAction('[UnknownPersons] Select Unknown Person', props<{ unknownPerson: UnknownPersonDetails }>());\nexport const getUnknownPerson = createAction('[UnknownPersons/API] Get Unknown Person', props<{ id: string }>());\nexport const getUnknownPersonSucceeded = createAction(\n '[UnknownPersons] Get Unknown Person succeeded',\n props<{ unknownPerson: UnknownPersonDetails }>()\n);\nexport const getUnknownPersonFailed = createAction('[UnknownPersons] Get Unknown Person failed', props<{ error?: any }>());\n\nexport const updateUnknownPerson = createAction('[UnknownPersons/API] Update Unknown Person', props<{ unknownPerson: Partial }>());\nexport const updateUnknownPersonSucceeded = createAction(\n '[UnknownPersons] Update Unknown Person succeeded',\n props<{ unknownPerson: Partial }>()\n);\nexport const updateUnknownPersonFailed = createAction('[UnknownPersons] Update Unknown Person failed', props<{ error?: any }>());\n\nexport const openDeleteUnknownPeopleDialog = createAction('[UnknownPersons/API] Open Delete Unknown Person Dialog', props<{ personIds: string[] }>());\n\nexport const deleteUnknownPerson = createAction('[UnknownPersons/API] Delete Unknown Person', props<{ id: string }>());\nexport const deleteUnknownPersonSucceeded = createAction('[UnknownPersons] Delete Unknown Person succeeded', props<{ id: string }>());\nexport const deleteUnknownPersonFailed = createAction('[UnknownPersons] Delete Unknown Person failed', props<{ error?: any }>());\n\nexport const deleteUnknownPersonFace = createAction(\n '[UnknownPersons/API] Delete Unknown Person Face',\n props<{ unknownPersonId: string; faceId: string }>()\n);\nexport const deleteUnknownPersonFaceSucceeded = createAction(\n '[UnknownPersons] Delete Unknown Person Face succeeded',\n props<{ unknownPersonId: string; faceId: string }>()\n);\nexport const deleteUnknownPersonFaceFailed = createAction('[UnknownPersons] Delete Unknown Person Face failed', props<{ error?: any }>());\n\nexport const moveUnknownPersonToModel = createAction(\n '[UnknownPersons/API] Move Unknown Person to model',\n props<{ personName: string; unknownPerson: UnknownPersonDetails }>()\n);\nexport const moveUnknownPersonToModelSucceeded = createAction(\n '[UnknownPersons] Move Unknown Person to model succeeded',\n props<{ unknownPerson: UnknownPerson; personName: string }>()\n);\nexport const moveUnknownPersonToModelFailed = createAction('[UnknownPersons] Move Unknown Person to model failed', props<{ error?: any }>());\n\nexport const searchUnknownPersons = createAction('[UnknownPersons] Search unknown persons', props<{ searchValue: string }>());\nexport const clearUnknownPersons = createAction('[UnknownPersons] Clear Unknown Persons State');\n\nexport const clearTableListError = createAction('[UnknownPersons] Clear Unknown Persons Table List Error State');\n","import { createAction, props } from '@ngrx/store';\n\nimport PersonModel = Microsoft.VideoIndexer.Contracts.PersonModel;\n\nexport const loadPersonModels = createAction('[PersonModel/API] Load Person Models', props<{ force?: boolean }>());\nexport const loadPersonModelsInProgress = createAction('[PersonModel/API] Load Person Models In Progress');\nexport const failLoadPersonModels = createAction('[PersonModel] Fail load Person Models');\nexport const upsertPersonModel = createAction('[PersonModel] Upsert Person Model', props<{ model: PersonModel }>());\nexport const upsertPersonModels = createAction('[PersonModel] Upsert Person Models', props<{ models: PersonModel[] }>());\nexport const deletePersonModel = createAction('[PersonModel/API] Delete Person Model', props<{ model: PersonModel }>());\nexport const addPersonModel = createAction('[PersonModel/API] Add Person Model', props<{ model: PersonModel }>());\nexport const personModelsLoaded = createAction('[PersonModel] Person Models Loaded');\nexport const clearPersonModels = createAction('[PersonModel] Clear Person Models');\n","import { HttpErrorResponse } from '@angular/common/http';\n\nimport { createAction, props } from '@ngrx/store';\n\nimport { IApiSasContract } from '@common/modules/api/interfaces';\n\nimport { IUISpeechDatasetInput, UploadDataDetails } from '../../../customization/interfaces';\nimport { ISpeechDatasetDetails } from '../../reducers/speech/interfaces';\nimport { IFileBlob } from '../../../indexing/interfaces';\nimport { IUISpeechDatasetTableDetail } from '../../interfaces';\n\nimport SpeechDataset = Microsoft.VideoIndexer.Contracts.SpeechDataset;\nimport SpeechDatasetFileContent = Microsoft.VideoIndexer.Contracts.SpeechDatasetFileContent;\n\nexport const loadSpeechDatasets = createAction('[SpeechDataset/API] Load Speech datasets');\nexport const loadSpeechDatasetsSucceeded = createAction('[SpeechDataset] Load Speech datasets succeeded', props<{ datasets: SpeechDataset[] }>());\nexport const loadSpeechDatasetsFailed = createAction('[SpeechDataset] Load Speech datasets failed');\nexport const clearSpeechDatasets = createAction('[SpeechModel] Clear Speech datasets');\nexport const openViewSpeechDatasetDialog = createAction('[SpeechDataset] Open View Speech Dataset Dialog', props<{ datasetId: string }>());\nexport const loadSpeechDatasetFiles = createAction('[SpeechDataset/API] Load Speech dataset files', props<{ datasetId: string }>());\nexport const loadSpeechDatasetFilesStarted = createAction('[SpeechDataset] Load Speech dataset files started');\nexport const loadSpeechDatasetFilesSucceeded = createAction(\n '[SpeechDataset] Load Speech dataset files succeeded',\n props<{ datasetId: string; files: SpeechDatasetFileContent[] }>()\n);\nexport const loadSpeechDatasetFilesFailed = createAction('[SpeechDataset] Load Speech dataset files failed', props<{ datasetId: string }>());\nexport const uploadButtonClicked = createAction('[SpeechDataset] Upload Button Clicked');\nexport const startUploadingDataset = createAction('[SpeechDataset/API] Start Uploading Dataset', props<{ uploadDetails: UploadDataDetails }>());\nexport const addUploadingDataset = createAction('[SpeechDataset] Add Uploading Dataset', props<{ dataset: ISpeechDatasetDetails }>());\nexport const getDatasetSasURL = createAction('[SpeechDataset/API] Get Dataset Sas URL', props<{ uploadDetails: UploadDataDetails }>());\nexport const getDatasetSasURLSucceeded = createAction(\n '[SpeechDataset] Get Dataset Sas URL Succeeded',\n props<{ uploadDetails: UploadDataDetails; file: IFileBlob; sas: IApiSasContract }>()\n);\nexport const getDatasetSasURLFailed = createAction(\n '[SpeechDataset] Get Dataset Sas URL Succeeded Failed',\n props<{ datasetId: string; datasetName: string }>()\n);\n\nexport const uploadDatasetToBlobSucceeded = createAction(\n '[SpeechDataset/API] Upload Dataset File to Blob Succeeded',\n props<{ datasetInput: IUISpeechDatasetInput }>()\n);\nexport const uploadDatasetToBlobFailed = createAction(\n '[SpeechDataset] Upload Dataset File to Blob Failed',\n props<{ datasetId: string; datasetName: string }>()\n);\nexport const removeSpeechDataset = createAction('[SpeechDataset] Remove Speech Dataset', props<{ datasetId: string }>());\nexport const createDatasetStarted = createAction('[SpeechDataset] Create Dataset Started');\nexport const createDatasetSucceeded = createAction('[SpeechDataset] Create Dataset Succeeded', props<{ datasetDetails: SpeechDataset }>());\nexport const createDatasetFailed = createAction('[SpeechDataset] Create Dataset Failed', props<{ datasetId: string; datasetName: string }>());\nexport const toggleSpeechDatasetSelection = createAction('[SpeechDataset] Toggle Speech Dataset Selection', props<{ datasetId: string }>());\nexport const clearSpeechDatasetSelection = createAction('[SpeechDataset] Clear Speech datasets selection');\nexport const openEditSpeechDatasetDialog = createAction(\n '[SpeechDataset] Open edit Speech dataset dialog',\n props<{ dataset: IUISpeechDatasetTableDetail }>()\n);\n\nexport const updateSpeechDataset = createAction(\n '[SpeechDataset/API] Update Speech datasets',\n props<{ datasetId: string; properties: Pick }>()\n);\nexport const updateSpeechDatasetStarted = createAction('[SpeechDataset] Update Speech dataset started');\nexport const updateSpeechDatasetSucceed = createAction('[SpeechDataset] Update Speech dataset Succeed', props<{ dataset: SpeechDataset }>());\nexport const updateSpeechDatasetFailed = createAction('[SpeechDataset] Update Speech dataset Failed');\nexport const openDeleteSpeechDatasetDialog = createAction(\n '[SpeechDataset] Open Delete Speech Dataset Dialog',\n props<{ dataset: IUISpeechDatasetTableDetail }>()\n);\nexport const deleteSpeechDataset = createAction('[SpeechDataset/API] Delete Speech datasets', props<{ dataset: IUISpeechDatasetTableDetail }>());\nexport const deleteSpeechDatasetStarted = createAction('[SpeechDataset] Delete Speech dataset started');\nexport const deleteSpeechDatasetSucceed = createAction('[SpeechDataset] Delete Speech dataset Succeed', props<{ datasetId: string }>());\nexport const deleteSpeechDatasetFailed = createAction(\n '[SpeechDataset] Delete Speech dataset Failed',\n props<{ error: HttpErrorResponse; datasetId: string; datasetName: string }>()\n);\nexport const downloadSpeechDataset = createAction('[SpeechDataset/API] Download Speech datasets', props<{ datasetId: string }>());\nexport const downloadSpeechDatasetStarted = createAction('[SpeechDataset] Download Speech dataset started');\nexport const downloadSpeechDatasetSucceed = createAction('[SpeechDataset] Download Speech dataset Succeed');\nexport const downloadSpeechDatasetFailed = createAction('[SpeechDataset] Download Speech dataset Failed');\nexport const getDatasetStatus = createAction('[SpeechDataset/API] Get Speech dataset status', props<{ datasetId: string }>());\nexport const getDatasetStatusSucceeded = createAction('[SpeechDataset] Get Speech dataset status Succeeded ', props<{ dataset: SpeechDataset }>());\nexport const getDatasetStatusFailed = createAction('[SpeechDataset] [SpeechDataset] Get Speech dataset status Failed');\n","import { HttpErrorResponse } from '@angular/common/http';\n\nimport { createAction, props } from '@ngrx/store';\n\nimport { IUISpeechModelTableDetail, TrainModelDialogSource } from '../../interfaces';\n\nimport SpeechModel = Microsoft.VideoIndexer.Contracts.CustomSpeechModel;\nimport SpeechModelInput = Microsoft.VideoIndexer.Contracts.CustomSpeechModelInput;\n\nexport const loadSpeechModels = createAction('[SpeechModel/API] Load Speech Models');\nexport const loadSpeechModelsSucceeded = createAction('[SpeechModel] Load Speech models succeeded', props<{ models: SpeechModel[] }>());\nexport const loadSpeechModelsFailed = createAction('[SpeechModel] Load Speech models failed');\nexport const clearSpeechModels = createAction('[SpeechModel] Clear Speech models');\nexport const loadSpeechModelsSupportedLocalesSucceeded = createAction(\n '[SpeechModel] Load Speech models supported locales succeeded',\n props<{ locales: string[] }>()\n);\nexport const loadSpeechModelsSupportedLocalesFailed = createAction(\n '[SpeechModel/API] Load Speech models supported locales failed',\n props<{ error: Error }>()\n);\n\nexport const openEditSpeechModelDialog = createAction('[SpeechModel] Open edit Speech model dialog', props<{ model: IUISpeechModelTableDetail }>());\n\nexport const updateSpeechModel = createAction(\n '[SpeechModel/API] Update Speech model',\n props<{ modelId: string; properties: Pick }>()\n);\nexport const updateSpeechModelStarted = createAction('[SpeechModel] Update Speech model started');\nexport const updateSpeechModelSucceed = createAction('[SpeechModel] Update Speech model Succeed', props<{ model: SpeechModel }>());\nexport const updateSpeechModelFailed = createAction('[SpeechModel] Update Speech model Failed');\nexport const removeSpeechModel = createAction('[SpeechModel] Remove Speech model', props<{ modelId: string }>());\nexport const createSpeechModel = createAction('[SpeechModel] Create Speech model', props<{ properties: SpeechModelInput }>());\nexport const createSpeechModelStarted = createAction('[SpeechModel] Create Speech model started', props<{ model: SpeechModel }>());\nexport const createSpeechModelSucceed = createAction('[SpeechModel] Create Speech model Succeed', props<{ model: SpeechModel }>());\nexport const createSpeechModelFailed = createAction('[SpeechModel] Create Speech model Failed', props<{ modelId: string }>());\nexport const openTrainModelDialog = createAction('[SpeechModel] Open Train Speech Model Dialog', props<{ source: TrainModelDialogSource }>());\nexport const trainModelDialogClosed = createAction('[SpeechModel] Train Speech Model Dialog Closed');\nexport const openViewModelDialog = createAction('[SpeechModel] Open View Speech Model Dialog', props<{ model: IUISpeechModelTableDetail }>());\nexport const openSpeechDeleteModelDialog = createAction(\n '[SpeechModel] Open Delete Speech Model Dialog',\n props<{ model: IUISpeechModelTableDetail }>()\n);\nexport const deleteSpeechModel = createAction('[SpeechModel/API] Delete Speech Model', props<{ model: IUISpeechModelTableDetail }>());\nexport const deleteSpeechModelStarted = createAction('[SpeechModel] Delete Speech Model Started');\nexport const deleteSpeechModelSucceed = createAction('[SpeechModel] Delete Speech Model Succeed', props<{ modelId: string }>());\nexport const deleteSpeechModelFailed = createAction(\n '[SpeechModel] Delete Speech Model Failed',\n props<{ error: HttpErrorResponse; modelId: string; modelName: string }>()\n);\nexport const getModelStatus = createAction('[SpeechModel/API] Get Speech Model status', props<{ modelId: string }>());\nexport const getModelStatusSucceeded = createAction('[SpeechModel] Get Speech Model status Succeeded ', props<{ model: SpeechModel }>());\nexport const getModelStatusFailed = createAction('[SpeechModel] [SpeechModel] Get Speech Model status Failed', props<{ error: Error }>());\n","import { createAction, props } from '@ngrx/store';\n\nimport { SpeechTab } from '../../../customization/components/speech/speech-container/interfaces';\nimport { SpeechPermission } from '../../interfaces';\n\nexport const selectSpeechTab = createAction('[SpeechPage] select tab', props<{ tab: SpeechTab }>());\nexport const initSelectedSpeechTab = createAction('[SpeechPage] init selected tab', props<{ tab: SpeechTab }>());\nexport const initSpeechPagePermission = createAction('[SpeechPage] init speech page permission', props<{ permission: SpeechPermission }>());\n","import { createAction, props } from '@ngrx/store';\n\nexport const loadSupportedLanguages = createAction('[SupportedLanguagesIds/API] Load Supported Languages');\n\nexport const upsertSupportedLanguages = createAction(\n '[SupportedLanguagesIds/API] Upsert Supported Languages',\n props<{ supportedLanguages: Microsoft.VideoIndexer.Contracts.SupportedLanguageContract[] }>()\n);\n\nexport const loadSupportedLanguageFailed = createAction('[SupportedLanguagesIds] Failed load Supported Languages');\n","import { createAction, props } from '@ngrx/store';\nimport { Update } from '@ngrx/entity';\n\nimport { ILanguageListContract } from '../reducers/supported-languages.reducer';\n\nexport const upsertSupportedLanguages = createAction(\n '[SupportedLanguage] Upsert Language Model',\n props<{ supportedLanguages: ILanguageListContract[] }>()\n);\n\nexport const updateSupportedLanguage = createAction(\n '[SupportedLanguage] Update Language Models',\n props<{ supportedLanguage: Update }>()\n);\n","import { CommonModule, DatePipe } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { EffectsModule } from '@ngrx/effects';\nimport { StoreModule } from '@ngrx/store';\n\nimport { SharedModule } from '@common/modules/shared/shared.module';\n\nimport { BrandModelEffects } from './effects/brands-model.effects';\nimport { CustomizationEffects } from './effects/customization.effects';\nimport { LanguageIdEffects } from './effects/language-id.effects';\nimport { LanguageModelEffects } from './effects/language-model.effects';\nimport { PersonModelEffects } from './effects/person-model.effects';\nimport { SpeechDatasetsEffects } from './effects/speech/speech-datasets.effects';\nimport { SpeechModelsEffects } from './effects/speech/speech-models.effects';\nimport { SpeechViewEffects } from './effects/speech/speech-page.effects';\nimport { SupportedLanguagesIdsEffects } from './effects/supported-languages-ids.effects';\nimport { SupportedLanguagesEffects } from './effects/supported-languages.effects';\nimport { reducers } from './reducers';\nimport { BrandsService } from './services/brands.service';\nimport { CustomizationDataStoreService } from './services/customization-data-store.service';\nimport { CustomizationDataService } from './services/customization-data.service';\nimport { CustomizationUtilsService } from './services/customization-utils.service';\nimport { CustomizationFilterService } from './services/fluent-list-filter-service';\nimport { LanguageCustomizationService } from './services/language-customization.service';\nimport { LanguageIdStoreService } from './services/language-id-store.service';\nimport { SpeechDatasetStoreService } from './services/speech/speech-dataset-store.service';\nimport { SpeechModelStoreService } from './services/speech/speech-model-store.service';\nimport { SpeechPageStoreService } from './services/speech/speech-page-store.service';\nimport { SpeechErrorsService } from './services/speech/speech-errors.service';\nimport { LogoGroupsEffects } from './effects/logo-groups.effects';\nimport { EdgeSupportedLanguagesEffects } from './effects/edge-supported-languages.effects';\nimport { UnknownPersonEffects } from './effects/people/unknown-person.effects';\nimport { UnknownPersonStoreService } from './services/people/unknown-person-store.service';\nimport { PeoplePageStoreService } from './services/people/people-page-store.service';\nimport { UnknownPersonService } from './services/people/unknown-person.service';\nimport { PeopleViewEffects } from './effects/people/people-page.effects';\nimport { UnknownPersonNotificationService } from '../customization/components/customization-people/services/unknown-person-notification.service';\n\n@NgModule({\n declarations: [],\n imports: [\n CommonModule,\n SharedModule,\n StoreModule.forFeature('customizationData', reducers),\n EffectsModule.forFeature([\n LanguageModelEffects,\n PersonModelEffects,\n BrandModelEffects,\n CustomizationEffects,\n SupportedLanguagesEffects,\n SpeechDatasetsEffects,\n SpeechModelsEffects,\n SpeechViewEffects,\n PeopleViewEffects,\n LanguageIdEffects,\n SupportedLanguagesIdsEffects,\n LogoGroupsEffects,\n EdgeSupportedLanguagesEffects,\n UnknownPersonEffects\n ])\n ],\n providers: [\n CustomizationDataStoreService,\n CustomizationFilterService,\n CustomizationUtilsService,\n CustomizationDataService,\n LanguageCustomizationService,\n SpeechDatasetStoreService,\n SpeechModelStoreService,\n SpeechPageStoreService,\n PeoplePageStoreService,\n BrandsService,\n LanguageIdStoreService,\n DatePipe,\n SpeechErrorsService,\n UnknownPersonStoreService,\n UnknownPersonService,\n SpeechErrorsService,\n UnknownPersonNotificationService\n ]\n})\nexport class CustomizationDataModule {}\n","import { Injectable, Injector } from '@angular/core';\n\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Store } from '@ngrx/store';\n\nimport { EMPTY } from 'rxjs';\nimport { catchError, switchMap, withLatestFrom } from 'rxjs/operators';\n\nimport { LoggerService } from '@common/modules/core/services/logger/logger.service';\nimport { ApiService } from '@common/modules/api/services/api.service';\nimport { EventCategory, TrackService } from '@common/modules/core/services/track';\nimport { TRANSLATION_DELAY } from '@common/modules/translation/variables';\n\nimport * as fromCore from '../../core/selectors';\nimport * as BrandActions from '../actions/brands-model.actions';\nimport * as fromCustomizationData from '../selectors';\nimport { IState } from '../../core/reducers';\nimport { CustomizationUtilsService } from '../services/customization-utils.service';\nimport { BrandsService } from '../services/brands.service';\nimport { IBrandsSettings } from '../../customization/components/brand/brand-container/interfaces';\n\n@Injectable()\nexport class BrandModelEffects {\n public loadBrandsModels$ = createEffect(() =>\n this.actions$.pipe(\n ofType(BrandActions.loadBrandModels),\n withLatestFrom(this.store.select(fromCore.selectCurrentAccountId)),\n withLatestFrom(this.store.select(fromCustomizationData.isBrandModelsLoaded)),\n switchMap(([[, accountId], isLoaded]) => {\n this.logger.log('[BrandModelEffects] load brands model');\n // Return empty in case the models already loaded in the store.\n if (isLoaded) {\n return EMPTY;\n }\n\n return this.apiService.Account.Customization.BrandsModels.getList(accountId).pipe(\n switchMap((result: Microsoft.VideoIndexer.Contracts.BrandContractV2[]) => {\n return [BrandActions.upsertBrandModels({ brands: result })];\n }),\n catchError(error => {\n this.logger.error('[BrandModelEffects]', error);\n return [BrandActions.failLoadBrandModels()];\n })\n );\n })\n )\n );\n\n public loadBrandsSettings$ = createEffect(() =>\n this.actions$.pipe(\n ofType(BrandActions.loadBrandsSettings),\n withLatestFrom(this.store.select(fromCore.selectCurrentAccountId)),\n switchMap(([, accountId]) => {\n this.logger.log('[BrandModelEffects] load brands settings');\n return this.apiService.Account.Customization.BrandsModels.getBrandsModelSettings(accountId).pipe(\n switchMap((result: IBrandsSettings) => {\n return [BrandActions.upsertBrandsSettings({ settings: result })];\n }),\n catchError(error => {\n this.logger.error('[BrandModelEffects]', error);\n return EMPTY;\n })\n );\n })\n )\n );\n\n public createBrandModels$ = createEffect(() =>\n this.actions$.pipe(\n ofType(BrandActions.addBrandModel),\n withLatestFrom(this.store.select(fromCore.selectCurrentAccountId)),\n switchMap(([{ brand }, accountId]) => {\n return this.apiService.Account.Customization.BrandsModels.addBrand(accountId, brand).pipe(\n switchMap((result: Microsoft.VideoIndexer.Contracts.BrandContractV2) => {\n this.logger.log('[BrandModelEffects] create brand models');\n this.customizationUtilsService.displayToast({ BrandsAddBrandSuccess: '' }, { name: result.name });\n this.trackService.track('models.brands.add_brand.success', {\n category: EventCategory.CUSTOMIZATION,\n brand: this.getBrandTraceData(result)\n });\n return [BrandActions.upsertBrandModel({ brand: result })];\n }),\n catchError(error => {\n this.logger.error('[BrandModelEffects]', error);\n this.brandsService.handleBrandsError(error, brand);\n this.trackService.track('models.brands.add_brand.failed', {\n category: EventCategory.CUSTOMIZATION,\n brand: this.getBrandTraceData(brand)\n });\n return [BrandActions.discardBrandSaving({ brand: brand })];\n })\n );\n })\n )\n );\n\n public updateBrandsModels$ = createEffect(() =>\n this.actions$.pipe(\n ofType(BrandActions.updateBrandModel),\n withLatestFrom(this.store.select(fromCustomizationData.getBrands)),\n withLatestFrom(this.store.select(fromCore.selectCurrentAccountId)),\n switchMap(([[{ brand }, brands], accountId]) => {\n return this.apiService.Account.Customization.BrandsModels.updateBrand(accountId, brand).pipe(\n switchMap((result: Microsoft.VideoIndexer.Contracts.BrandContractV2) => {\n this.logger.log('[BrandModelEffects] update brand models');\n this.customizationUtilsService.displayToast({ BrandsEditBrandSuccess: '' }, { name: result.name });\n this.trackService.track('models.brands.edit_brand.success', {\n category: EventCategory.CUSTOMIZATION,\n brand: this.getBrandTraceData(result)\n });\n return [BrandActions.upsertBrandModel({ brand: result })];\n }),\n catchError(error => {\n this.logger.error('[BrandModelEffects]', error);\n this.brandsService.handleBrandsError(error, brand);\n this.trackService.track('models.brands.edit_brand.failed', {\n category: EventCategory.CUSTOMIZATION,\n brand: this.getBrandTraceData(brand)\n });\n const oldBrand = brands.filter(currentBrand => currentBrand.id === brand.id);\n return [BrandActions.upsertBrandModel({ brand: oldBrand[0] })];\n })\n );\n })\n )\n );\n\n public updateBrandsSettings$ = createEffect(() =>\n this.actions$.pipe(\n ofType(BrandActions.updateBrandsSettings),\n withLatestFrom(this.store.select(fromCustomizationData.getBrandsSettings)),\n withLatestFrom(this.store.select(fromCore.selectCurrentAccountId)),\n switchMap(([[{ settings }, oldSettings], accountId]) => {\n return this.apiService.Account.Customization.BrandsModels.updateBrandsModelSettings(accountId, settings).pipe(\n switchMap((result: IBrandsSettings) => {\n this.logger.log('[BrandModelEffects] update brand settings');\n this.customizationUtilsService.displayToast({ AvertSuccessfullySubmitted: '' }, {});\n this.trackService.track('models.brands.active_suggestion.success', {\n category: EventCategory.CUSTOMIZATION,\n isActivated: settings.useBuiltIn\n });\n return [BrandActions.upsertBrandsSettings({ settings: result })];\n }),\n catchError(error => {\n this.logger.error('[BrandModelEffects]', error);\n this.brandsService.handleBrandsError(error, null);\n this.trackService.track('models.brands.active_suggestion.failed', {\n category: EventCategory.CUSTOMIZATION,\n isActivated: settings.useBuiltIn\n });\n return [BrandActions.upsertBrandsSettings({ settings: oldSettings })];\n })\n );\n })\n )\n );\n\n public deleteBrandModel$ = createEffect(() =>\n this.actions$.pipe(\n ofType(BrandActions.deleteBrandModel),\n withLatestFrom(this.store.select(fromCore.selectCurrentAccountId)),\n switchMap(([{ brand }, accountId]) => {\n return this.apiService.Account.Customization.BrandsModels.deleteBrand(accountId, brand.id).pipe(\n switchMap(() => {\n this.logger.log(`[BrandModelEffects] Delete brand ${brand.id} success`);\n this.trackService.track('models.brands.delete_brand.success', {\n category: EventCategory.CUSTOMIZATION,\n brandId: brand.id\n });\n this.customizationUtilsService.displayToast({ BrandsDeleteBrandSuccess: '' }, { name: brand.name });\n return EMPTY;\n }),\n catchError(error => {\n this.logger.error('[BrandModelEffects]', error);\n this.customizationUtilsService.displayErrorToast(error, { FailDeleteBRANDS: '' }, {});\n this.trackService.track('models.brands.delete_brand.failed', {\n category: EventCategory.CUSTOMIZATION,\n brandId: brand.id\n });\n return [BrandActions.upsertBrandModel({ brand: brand })];\n })\n );\n })\n )\n );\n private customizationUtilsService: CustomizationUtilsService;\n private brandsService: BrandsService;\n\n constructor(\n private actions$: Actions,\n private apiService: ApiService,\n private store: Store,\n private logger: LoggerService,\n private trackService: TrackService,\n private injector: Injector\n ) {\n setTimeout(() => {\n this.init();\n }, TRANSLATION_DELAY);\n }\n\n private init() {\n this.customizationUtilsService = this.injector.get(CustomizationUtilsService);\n this.brandsService = this.injector.get(BrandsService);\n }\n\n private getBrandTraceData(brand: Microsoft.VideoIndexer.Contracts.BrandContractV2): Microsoft.VideoIndexer.Contracts.BrandContractSlim {\n return {\n id: brand.id,\n name: brand.name,\n accountId: brand.accountId,\n create: brand.create,\n lastModified: brand.lastModified,\n enabled: brand.enabled\n };\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { ROUTER_NAVIGATION } from '@ngrx/router-store';\nimport { Store } from '@ngrx/store';\n\nimport { switchMap, withLatestFrom } from 'rxjs/operators';\nimport { EMPTY, tap } from 'rxjs';\n\nimport { FeatureSwitchService } from '@common/modules/core/services/feature-switch/feature-switch.service';\nimport { CustomizationPage, FeatureSwitch } from '@common/modules/core/services/interfaces';\nimport { StripService } from '@common/modules/shared/components/strip/strip.service';\nimport { MessageType } from '@common/modules/shared/components/strip/interfaces';\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\nimport { TRANSLATION_DELAY } from '@common/modules/translation/variables';\n\nimport { SpeechPageStoreService } from './../services/speech/speech-page-store.service';\nimport { VIRoutingMap } from '../../app/routing/routes';\nimport * as AccountsActions from '../../core/actions/accounts.actions';\nimport * as CustomizationViewActions from '../../core/actions/customization-view.actions';\nimport { IState } from '../../core/reducers';\nimport * as fromRouter from '../../core/reducers/router';\nimport { ofRoute } from '../../core/services/operations';\nimport * as BrandActions from '../actions/brands-model.actions';\nimport * as LogoGroupsActions from '../actions/logo-groups.actions';\nimport * as LanguageActions from '../actions/language-model.actions';\nimport * as PersonActions from '../actions/person-model.actions';\nimport * as UnknownPersonActions from '../actions/people/unknown-person.actions';\nimport * as SpeechDatasetsActions from '../actions/speech/speech-datasets.actions';\nimport * as SpeechModelsActions from '../actions/speech/speech-models.actions';\nimport * as SpeechPageActions from '../actions/speech/speech-page.actions';\nimport * as LanguageIdActions from '../actions/language-id.actions';\nimport * as SupportedLanguagesIdsActions from '../actions/supported-languages-ids.actions';\nimport { SpeechPermission } from '../interfaces';\nimport { resources } from '../resources/languages-resources';\nimport { selectSupportedLanguagesIdsError } from '../selectors';\n\n@Injectable()\nexport class CustomizationEffects {\n public customizationRoute$ = createEffect(() =>\n this.actions$.pipe(\n ofType(ROUTER_NAVIGATION),\n ofRoute([\n `/${VIRoutingMap.customization.path}/${VIRoutingMap.catalog.path}`,\n `/${VIRoutingMap.customization.path}/${VIRoutingMap.customizationPeople.path}`,\n `/${VIRoutingMap.customization.path}/${VIRoutingMap.customizationPeople.path}/${VIRoutingMap.customizationPeopleUnknown.path}`,\n `/${VIRoutingMap.customization.path}/${VIRoutingMap.customizationLanguage.path}`,\n `/${VIRoutingMap.customization.path}/${VIRoutingMap.customizationBrands.path}`,\n `/${VIRoutingMap.customization.path}/${VIRoutingMap.customizationSpeech.path}`,\n `/${VIRoutingMap.customization.path}/${VIRoutingMap.customizationSpeech.path}/${VIRoutingMap.customizationSpeechDatasets.path}`,\n `/${VIRoutingMap.customization.path}/${VIRoutingMap.customizationSpeech.path}/${VIRoutingMap.customizationSpeechModels.path}`,\n `/${VIRoutingMap.customization.path}/${VIRoutingMap.customizationLanguageId.path}`\n ]),\n withLatestFrom(this.store.select(fromRouter.getRouterState)),\n switchMap(([, routerState]) => {\n const customizationPath = routerState.state.data.path;\n switch (customizationPath) {\n case VIRoutingMap.customizationLanguage.path: {\n return [CustomizationViewActions.initPage({ page: CustomizationPage.Language })];\n }\n case VIRoutingMap.customizationPeople.path: {\n return [CustomizationViewActions.initPage({ page: CustomizationPage.People })];\n }\n case VIRoutingMap.customizationBrands.path: {\n return [CustomizationViewActions.initPage({ page: CustomizationPage.Brands })];\n }\n case VIRoutingMap.customizationSpeech.path: {\n this.handleSpeechRoute();\n return EMPTY;\n break;\n }\n case VIRoutingMap.customizationLanguageId.path: {\n const isLanguageIdEnabled = this.featureSwitchService.featureSwitch(FeatureSwitch.AutoDetectLanguage);\n if (isLanguageIdEnabled) {\n return [CustomizationViewActions.initPage({ page: CustomizationPage.LanguageId })];\n }\n break;\n }\n case VIRoutingMap.catalog.path: {\n const isLive = this.featureSwitchService.featureSwitch(FeatureSwitch.LiveEdge);\n if (isLive) {\n return [CustomizationViewActions.initPage({ page: CustomizationPage.Catalog })];\n }\n break;\n }\n }\n return EMPTY;\n })\n )\n );\n\n public clearCustomization$ = createEffect(() =>\n this.actions$.pipe(\n ofType(AccountsActions.selectAccountProcessing, AccountsActions.selectArmAccountProcessing),\n withLatestFrom(this.store.select(selectSupportedLanguagesIdsError)),\n switchMap(([, isSupportedLanguagesError]) => {\n this.hideLanguagesErrorStrip(isSupportedLanguagesError);\n\n return [\n LanguageActions.clearLanguageModels(),\n BrandActions.clearBrandModels(),\n LogoGroupsActions.clearLogoGroups(),\n PersonActions.clearPersonModels(),\n SpeechModelsActions.clearSpeechModels(),\n SpeechDatasetsActions.clearSpeechDatasets(),\n LanguageIdActions.clearLanguageIdDatasets(),\n UnknownPersonActions.clearUnknownPersons(),\n SpeechPageActions.initSpeechPagePermission({ permission: SpeechPermission.UNDEFINED })\n ];\n })\n )\n );\n\n public setErrorLoadingLanguages = createEffect(\n () =>\n this.actions$.pipe(\n ofType(\n LanguageActions.failLoadLanguageModels,\n SpeechModelsActions.loadSpeechModelsFailed,\n SupportedLanguagesIdsActions.loadSupportedLanguageFailed\n ),\n tap(() => {\n this.showLanguagesErrorStrip();\n })\n ),\n { dispatch: false }\n );\n\n private languagesErrorStripId: number;\n\n constructor(\n private actions$: Actions,\n private store: Store,\n private featureSwitchService: FeatureSwitchService,\n private speechPageStoreService: SpeechPageStoreService,\n private stripService: StripService,\n private translate: TranslateHelperService\n ) {\n setTimeout(() => {\n this.init();\n }, TRANSLATION_DELAY);\n }\n\n private init() {\n this.translate.translateResourcesInstant(resources);\n }\n\n private hideLanguagesErrorStrip(isSupportedLanguagesError) {\n if (this.languagesErrorStripId && !isSupportedLanguagesError) {\n this.stripService.hideStrip(this.languagesErrorStripId);\n this.languagesErrorStripId = null;\n }\n }\n\n private showLanguagesErrorStrip() {\n if (!this.languagesErrorStripId) {\n this.languagesErrorStripId = this.stripService.trigger({\n messageType: MessageType.WARNING,\n text: resources?.LanguagesLoadingFailErrorMsg,\n show: true,\n iconClass: 'i-vi-warning'\n });\n }\n }\n\n private handleSpeechRoute() {\n this.speechPageStoreService.isSpeechEnabled().subscribe(isSpeechEnabled => {\n if (isSpeechEnabled) {\n this.store.dispatch(CustomizationViewActions.initPage({ page: CustomizationPage.Speech }));\n }\n });\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Actions, ofType, createEffect } from '@ngrx/effects';\n\nimport { switchMap, catchError } from 'rxjs';\n\nimport { ApiService } from '@common/modules/api/services/api.service';\nimport { EventCategory, TrackService } from '@common/modules/core/services/track';\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\n\nimport * as EdgeExtensionsActions from '../../core/actions/edge-extensions.actions';\nimport * as EdgeSupportedLanguagesActions from '../actions/edge-supported-languages.actions';\nimport { isSupportedLanguageDialect } from '../utils';\n\n@Injectable()\nexport class EdgeSupportedLanguagesEffects {\n public loadEdgeSupportedLanguages$ = createEffect(() =>\n this.actions$.pipe(\n ofType(EdgeExtensionsActions.handshakeSuccess),\n switchMap(() => {\n return this.apiService.SupportedLanguages.getSupportedLanguages().pipe(\n switchMap((supportedLanguages: Microsoft.VideoIndexer.Contracts.SupportedLanguageContract[]) => {\n this.trackService.track('edge.load_supported_languages.success', {\n category: EventCategory.EDGE\n });\n supportedLanguages.forEach(l => {\n l.name = this.translateService.getLocaleLanguage(l.languageCode);\n l.isDialect = isSupportedLanguageDialect(\n supportedLanguages.map(l => l.languageCode),\n l.languageCode\n );\n });\n supportedLanguages.sort((a, b) => a.name.localeCompare(b.name));\n return [EdgeSupportedLanguagesActions.edgeUpsertSupportedLanguages({ supportedLanguages })];\n }),\n catchError(error => {\n this.trackService.track('edge.load_supported_languages.failed', {\n category: EventCategory.EDGE,\n data: { error }\n });\n return [EdgeSupportedLanguagesActions.edgeLoadSupportedLanguageFailed()];\n })\n );\n })\n )\n );\n\n constructor(\n private actions$: Actions,\n private apiService: ApiService,\n private trackService: TrackService,\n private translateService: TranslateHelperService\n ) {}\n}\n","import { Injectable } from '@angular/core';\n\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Store } from '@ngrx/store';\n\nimport { switchMap, tap, withLatestFrom } from 'rxjs/operators';\n\nimport { cloneDeep } from 'lodash-es';\n\nimport { LoggerService } from '@common/modules/core/services/logger/logger.service';\nimport { EventCategory, TrackService } from '@common/modules/core/services/track';\nimport { StorageCacheKey } from '@common/modules/shared/interfaces';\nimport { LocalStorageService } from '@common/modules/shared/services/local-storage.service';\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\n\nimport { DefaultSupportedLanguages } from '../../core/languages';\nimport * as fromCore from '../../core/selectors';\nimport * as LanguageIDActions from '../actions/language-id.actions';\nimport { IState } from '../reducers';\nimport * as fromLanguageId from '../selectors/language-id.selectors';\nimport * as fromSupportedLanguagesIds from '../selectors/supported-languages-ids.selectors';\n\n@Injectable()\nexport class LanguageIdEffects {\n public loadDefaultLanguages$ = createEffect(() =>\n this.actions$.pipe(\n ofType(LanguageIDActions.loadDefaultLanguages),\n switchMap(() => {\n const defaultLanguages = cloneDeep(DefaultSupportedLanguages);\n defaultLanguages.forEach(l => {\n l.name = this.translateService.getLocaleLanguage(l.languageCode);\n });\n return [LanguageIDActions.upsertDefaultLanguages({ defaultLanguages })];\n })\n )\n );\n\n public loadSelectedLanguages$ = createEffect(() =>\n this.actions$.pipe(\n ofType(LanguageIDActions.loadSelectedLanguages),\n withLatestFrom(this.store.select(fromSupportedLanguagesIds.selectSupportedLanguagesIds)),\n withLatestFrom(this.store.select(fromLanguageId.selectDefaultLanguages)),\n withLatestFrom(this.store.select(fromCore.selectCurrentAccountId)),\n switchMap(([[[, supportedLanguagesIds], defaultLanguages], accountId]) => {\n this.logger.log('[LanguageIdEffects] load selected languages');\n this.trackService.track('languageId.load.success', {\n category: EventCategory.Language_ID\n });\n\n // 1. In case there is value for the current accountId return the value including empty array\n // Save the default langs in the local storage. Default langs can't be empty.\n // 2. If no value, return the default supported languages\n const selectedLocalLanguagesId = this.localStorageService.getItem(`${StorageCacheKey.LanguageId}_${accountId}`);\n if (!selectedLocalLanguagesId && accountId && defaultLanguages?.length) {\n this.localStorageService.setItem(`${StorageCacheKey.LanguageId}_${accountId}`, JSON.stringify(defaultLanguages.map(l => l.languageCode)));\n return [LanguageIDActions.setSelectedLanguages({ selectedLanguages: Object.values(defaultLanguages) })];\n }\n const selectedLanguages = [];\n if (selectedLocalLanguagesId?.length && supportedLanguagesIds?.length) {\n const parsedLangs = JSON.parse(selectedLocalLanguagesId);\n // Set the list by the order user selected.\n parsedLangs.forEach(languageCode => {\n const selectedLanguage = supportedLanguagesIds.find(language => language.languageCode === languageCode);\n if (selectedLanguage) {\n selectedLanguages.push(selectedLanguage);\n }\n });\n }\n return [LanguageIDActions.setSelectedLanguages({ selectedLanguages: selectedLanguages })];\n })\n )\n );\n\n public deleteSelectedLanguageId$ = createEffect(() =>\n this.actions$.pipe(\n ofType(LanguageIDActions.deleteSelectedLanguage),\n withLatestFrom(this.store.select(fromLanguageId.selectSelectedLanguages)),\n withLatestFrom(this.store.select(fromCore.selectCurrentAccountId)),\n switchMap(([[{ languageCode }, selectedLanguages], accountId]) => {\n // After delete from store, update the langs list in the local storage\n this.localStorageService.setItem(`${StorageCacheKey.LanguageId}_${accountId}`, JSON.stringify(selectedLanguages.map(l => l.languageCode)));\n this.logger.log(`[LanguageIdEffects] Delete language ${languageCode} success`);\n this.trackService.track('languageId.delete_language.success', {\n category: EventCategory.Language_ID,\n data: {\n languageCode: languageCode\n }\n });\n return [LanguageIDActions.deleteSelectedLanguageSuccess()];\n })\n )\n );\n\n public addSelectedLanguageId$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(LanguageIDActions.addSelectedLanguage),\n withLatestFrom(this.store.select(fromLanguageId.selectSelectedLanguages)),\n withLatestFrom(this.store.select(fromCore.selectCurrentAccountId)),\n tap(([[{ selectedLanguage }, selectedLanguages], accountId]) => {\n // After delete from store, update the langs list in the local storage\n this.localStorageService.setItem(`${StorageCacheKey.LanguageId}_${accountId}`, JSON.stringify(selectedLanguages.map(l => l.languageCode)));\n this.logger.log(`[LanguageIdEffects] Add language ${selectedLanguage.languageCode} success`);\n this.trackService.track('languageId.add_language.success', {\n category: EventCategory.Language_ID,\n data: {\n languageCode: selectedLanguage.languageCode\n }\n });\n })\n ),\n {\n dispatch: false\n }\n );\n\n constructor(\n private store: Store,\n private actions$: Actions,\n private logger: LoggerService,\n private localStorageService: LocalStorageService,\n private trackService: TrackService,\n public translateService: TranslateHelperService\n ) {}\n}\n","import { Injectable, Injector } from '@angular/core';\nimport { HttpEventType, HttpEvent } from '@angular/common/http';\n\nimport { Store } from '@ngrx/store';\nimport { Actions, ofType, createEffect } from '@ngrx/effects';\nimport { ROUTER_NAVIGATION } from '@ngrx/router-store';\n\nimport { switchMap, withLatestFrom, catchError, delay } from 'rxjs/operators';\nimport { EMPTY, Subject } from 'rxjs';\n\nimport { saveAs } from 'file-saver';\n\nimport { ApiService } from '@common/modules/api/services/api.service';\nimport { LoggerService } from '@common/modules/core/services/logger/logger.service';\nimport { EventCategory, TrackService } from '@common/modules/core/services/track';\nimport { TRANSLATION_DELAY } from '@common/modules/translation/variables';\nimport { IApiSasContract } from '@common/modules/api/interfaces';\nimport { AccountPermission } from '@common/modules/shared/interfaces';\n\nimport { UploadService } from '../../indexing/services/upload.service';\nimport { AzureBlobStorageService } from '../../indexing/services/azure-blob-storage.service';\nimport { ofRoute } from '../../core/services/operations';\nimport { IState } from '../../core/reducers';\nimport { VIRoutingMap } from '../../app/routing/routes';\nimport { IFileBlob } from '../../indexing/interfaces';\nimport { IUploadTrainingDataFile } from '../../customization/components/language/model-file/interfaces';\nimport { LanguageCustomizationService } from '../services/language-customization.service';\nimport { CustomizationUtilsService } from '../services/customization-utils.service';\nimport { LanguageModelState } from '../../customization/interfaces';\nimport * as LanguageActions from '../actions/language-model.actions';\nimport * as SupportedLanguagesActions from '../actions/supported-languages.actions';\nimport * as fromCore from '../../core/selectors';\nimport * as fromLanguageModels from '../selectors';\nimport * as fromCustomizationData from '../selectors';\n\nimport LanguageModel = Microsoft.VideoIndexer.Contracts.LanguageModel;\nimport TrainingDataFile = Microsoft.VideoIndexer.Contracts.TrainingDataFile;\n\n@Injectable()\nexport class LanguageModelEffects {\n public languageRoute$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(ROUTER_NAVIGATION),\n ofRoute(`/${VIRoutingMap.customization.path}/${VIRoutingMap.customizationLanguage.path}`),\n withLatestFrom(this.store.select(fromLanguageModels.isLanguageModelsLoaded)),\n switchMap((action, loaded) => {\n this.logger.log('[LanguageModelEffects] route', action);\n\n if (loaded) {\n return EMPTY;\n }\n return EMPTY;\n })\n ),\n { dispatch: false }\n );\n\n public loadLanguageModels$ = createEffect(() =>\n this.actions$.pipe(\n ofType(LanguageActions.loadLanguageModels),\n withLatestFrom(this.store.select(fromCore.selectCurrentAccountId)),\n withLatestFrom(this.store.select(fromCore.selectAccountTokenPermission)),\n withLatestFrom(this.store.select(fromCustomizationData.isLanguageModelsLoaded)),\n switchMap(([[[, accountId], permission], isLoaded]) => {\n // Return empty in case the models already loaded in the store.\n if (isLoaded || !accountId || permission === AccountPermission.RESTRICTED_VIEWER) {\n return EMPTY;\n }\n\n return this.apiService.Account.Customization.LanguagesModels.getModels(accountId).pipe(\n switchMap((result: LanguageModel[]) => {\n const models = this.getModels(result);\n return [LanguageActions.upsertLanguageModels({ models: models })];\n }),\n catchError(() => {\n return [LanguageActions.failLoadLanguageModels()];\n })\n );\n })\n )\n );\n\n public addLanguageModel$ = createEffect(() =>\n this.actions$.pipe(\n ofType(LanguageActions.addLanguageModel),\n withLatestFrom(this.store.select(fromCore.selectCurrentAccountId)),\n switchMap(([{ model }, accountId]) => {\n return this.apiService.Account.Customization.LanguagesModels.addModel(accountId, model).pipe(\n switchMap((result: LanguageModel) => {\n this.trackService.track('models.language.add_model.success', {\n category: EventCategory.CUSTOMIZATION,\n data: {\n modelName: model.modelName\n }\n });\n\n this.languageCustomizationService.handelModelAdding(true, result?.id);\n return [\n LanguageActions.upsertLanguageModel({ model: result }),\n SupportedLanguagesActions.updateSupportedLanguage({\n supportedLanguage: {\n id: result.language,\n changes: { isCreating: false }\n }\n })\n ];\n }),\n catchError(error => {\n this.logger.error('[LanguageModelEffects]', error);\n const emptyModel: LanguageModel = Object.create(null);\n emptyModel.name = model.modelName;\n this.languageCustomizationService.handleLanguageError(error, emptyModel);\n this.trackService.track('models.language.add_model.failed', {\n category: EventCategory.CUSTOMIZATION,\n data: {\n modelName: model.modelName\n }\n });\n\n this.languageCustomizationService.handelModelAdding(false, model.language);\n\n return [\n SupportedLanguagesActions.updateSupportedLanguage({\n supportedLanguage: {\n id: model.language,\n changes: { isCreating: false }\n }\n })\n ];\n })\n );\n })\n )\n );\n\n public updateLanguageModel$ = createEffect(() =>\n this.actions$.pipe(\n ofType(LanguageActions.updateLanguageModel),\n withLatestFrom(this.store.select(fromCore.selectCurrentAccountId)),\n switchMap(([{ model, modelId, oldModel }, accountId]) => {\n return this.apiService.Account.Customization.LanguagesModels.updateModel(accountId, model, modelId).pipe(\n switchMap((result: LanguageModel) => {\n this.customizationUtilsService.displayToast({ LanguageModelEditSuccess: '' }, { name: result.name });\n this.trackService.track('models.language.update_model.success', {\n category: EventCategory.CUSTOMIZATION,\n data: {\n modelName: model.modelName\n }\n });\n return [LanguageActions.upsertLanguageModel({ model: result })];\n }),\n catchError(error => {\n this.logger.error('[LanguageModelEffects]', error);\n this.customizationUtilsService.displayErrorToast(error, { LanguageModelEditFailed: '' }, {});\n this.trackService.track('models.language.update_model.failed', {\n category: EventCategory.CUSTOMIZATION,\n data: {\n modelName: model.modelName\n }\n });\n return [LanguageActions.upsertLanguageModel({ model: oldModel })];\n })\n );\n })\n )\n );\n\n public deleteLanguageModel$ = createEffect(() =>\n this.actions$.pipe(\n ofType(LanguageActions.deleteLanguageModel),\n withLatestFrom(this.store.select(fromCore.selectCurrentAccountId)),\n switchMap(([{ model }, accountId]) => {\n return this.apiService.Account.Customization.LanguagesModels.deleteModel(accountId, model.id).pipe(\n switchMap(() => {\n this.logger.log(`[LanguageModelEffects] Delete Model ${model.id} success`);\n this.customizationUtilsService.displayToast({ LanguageDeleteModelSuccess: '' }, { name: model.name });\n this.trackService.track('models.language.delete_model.success', {\n category: EventCategory.CUSTOMIZATION,\n data: {\n modelName: model.name\n }\n });\n return EMPTY;\n }),\n catchError(error => {\n this.logger.error('[LanguageModelEffects]', error);\n this.customizationUtilsService.displayErrorToast(error, { LanguageModelFailedDeleteModel: '' }, {});\n this.trackService.track('models.language.delete_model.failed', {\n category: EventCategory.CUSTOMIZATION,\n data: {\n modelName: model.name\n }\n });\n return [LanguageActions.upsertLanguageModel({ model: model })];\n })\n );\n })\n )\n );\n\n public deleteLanguageModelFile$ = createEffect(() =>\n this.actions$.pipe(\n ofType(LanguageActions.deleteFile),\n withLatestFrom(this.store.select(fromCore.selectCurrentAccountId)),\n switchMap(([{ modelId, fileId }, accountId]) => {\n return this.apiService.Account.Customization.LanguagesModels.deleteModelFile(accountId, modelId, fileId).pipe(\n switchMap(() => {\n this.logger.log(`[LanguageModelEffects] Delete Model ${modelId} File ${fileId} success`);\n this.customizationUtilsService.displayToast({ LanguageDeleteFileSuccess: '' }, { name: '' });\n\n this.trackService.track('models.language.delete_file.success', {\n category: EventCategory.CUSTOMIZATION,\n data: {\n fileId: fileId\n }\n });\n return [LanguageActions.deleteLanguageModelFile({ modelId, fileId })];\n }),\n catchError(error => {\n this.logger.error('[LanguageModelEffects]', error);\n this.trackService.track('models.language.delete_file.failed', {\n category: EventCategory.CUSTOMIZATION,\n data: {\n fileId: fileId\n }\n });\n this.customizationUtilsService.displayErrorToast(error, { LanguageModelFailedDeleteFile: '' }, {});\n return EMPTY;\n })\n );\n })\n )\n );\n\n public downloadLanguageModelFile$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(LanguageActions.downloadFile),\n withLatestFrom(this.store.select(fromCore.selectCurrentAccountId)),\n switchMap(([{ modelId, fileId, fileName }, accountId]) => {\n return this.apiService.Account.Customization.LanguagesModels.downloadModelFile(accountId, modelId, fileId).pipe(\n switchMap((result: Microsoft.VideoIndexer.Contracts.TrainingDataFileContent) => {\n this.logger.log(`[LanguageModelEffects] Download Model ${modelId} File ${fileId} success!`);\n this.downloadFile(result.content, fileName, 'txt', { type: 'text/html;charset=utf-8' });\n this.trackService.track('models.language.download_file.success', {\n category: EventCategory.CUSTOMIZATION,\n data: {\n fileName: fileName\n }\n });\n return EMPTY;\n }),\n catchError(error => {\n this.logger.error('[LanguageModelEffects]', error);\n const file: IFileBlob = new File(null, fileName);\n this.languageCustomizationService.handleLanguageFileError(error, file, true);\n this.trackService.track('models.language.download_file.failed', {\n category: EventCategory.CUSTOMIZATION,\n data: {\n fileName: fileName\n }\n });\n return EMPTY;\n })\n );\n })\n ),\n { dispatch: false }\n );\n\n public downloadFromEditFile$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(LanguageActions.downloadFromEditFile),\n switchMap(({ modelId, fileId, fileName }) => {\n return this.store.select(fromCustomizationData.getLanguageModelFile(modelId, fileId)).pipe(\n switchMap((result: Microsoft.VideoIndexer.Contracts.TrainingDataFileContent) => {\n if (result.hasCrisEdits) {\n if (result.crisEdits.length) {\n const crisResult = this.languageCustomizationService.convertTranscriptEditToString(result.crisEdits, false);\n this.logger.log(`[LanguageModelEffects] Get Cris from edits content with Model ${modelId} File ${fileId} success!`);\n this.downloadFile(crisResult, fileName, 'txt', { type: 'text;charset=utf-8' });\n this.trackService.track('models.language.download_cfe_file.success', {\n category: EventCategory.CUSTOMIZATION,\n data: {\n fileName: fileName\n }\n });\n } else {\n return [LanguageActions.loadLanguageModelCrisEditsContent({ modelId })];\n }\n }\n return EMPTY;\n }),\n catchError(error => {\n this.logger.error('[LanguageModelEffects]', error);\n this.languageCustomizationService.handleLanguageFileError(error, null, true);\n this.trackService.track('models.language.download_cfe_file.failed', {\n category: EventCategory.CUSTOMIZATION,\n data: {\n fileName: fileName\n }\n });\n return EMPTY;\n })\n );\n })\n ),\n { dispatch: false }\n );\n\n public uploadLanguageModelFile$ = createEffect(() =>\n this.actions$.pipe(\n ofType(LanguageActions.uploadLanguageModelFile),\n withLatestFrom(this.store.select(fromCore.selectCurrentAccountId)),\n switchMap(([{ file, modelId }, accountId]) => {\n const emptyFile = this.getEmptyFileFromTrainingFile(file);\n this.store.dispatch(LanguageActions.updateUploadProgress({ file: emptyFile, modelId }));\n return this.uploadService.getSas(accountId, file.name, file.size).pipe(\n switchMap((res: IApiSasContract) => {\n const mergedFile: IFileBlob = this.azureBlobService.generateFile(file);\n mergedFile.baseUrl = res.baseUrl;\n mergedFile.sasToken = res.sasToken;\n mergedFile.blobPath = res.baseUrl + res.sasToken;\n return this.azureBlobService.uploadToBlobStorage(mergedFile, res).pipe(\n switchMap((event: HttpEvent) => {\n switch (event.type) {\n case HttpEventType.UploadProgress:\n const newFile = { ...emptyFile, progress: (event.loaded / event.total) * 100 };\n return [LanguageActions.updateUploadProgress({ file: newFile, modelId })];\n case HttpEventType.Response:\n this.trackService.track('models.language.upload.success', {\n category: EventCategory.CUSTOMIZATION,\n data: {\n modelId: modelId,\n fileName: mergedFile.name\n }\n });\n return [LanguageActions.uploadFileToServer({ file: mergedFile, modelId: modelId, fileId: emptyFile.id })];\n default:\n return EMPTY;\n }\n }),\n catchError(error => {\n this.logger.error('[LanguageModelEffects]', error);\n this.languageCustomizationService.handleLanguageFileError(error, file);\n this.trackService.track('models.language.upload.failed', {\n category: EventCategory.CUSTOMIZATION,\n data: {\n modelId: modelId,\n fileName: mergedFile.name\n }\n });\n\n return [LanguageActions.cancelLanguageModelFile({ file: file, modelId: modelId })];\n })\n );\n })\n );\n })\n )\n );\n\n public uploadFileToServer$ = createEffect(() =>\n this.actions$.pipe(\n ofType(LanguageActions.uploadFileToServer),\n withLatestFrom(this.store.select(fromCore.selectCurrentAccountId)),\n switchMap(([{ file, modelId, fileId }, accountId]) => {\n const data = new FormData();\n data.append(file.name, file.blobPath);\n return this.apiService.Account.Customization.LanguagesModels.uploadModelFile(accountId, modelId, data).pipe(\n switchMap((res: LanguageModel) => {\n const model = this.getModel(res);\n return [LanguageActions.upsertLanguageModel({ model: model }), LanguageActions.removeUpdatingFile({ modelId: model.id, id: fileId })];\n }),\n catchError(error => {\n this.logger.error('[LanguageModelEffects] ', error);\n this.languageCustomizationService.handleLanguageFileError(error, file);\n return [\n LanguageActions.cancelLanguageModelFile({ file: file, modelId: modelId }),\n LanguageActions.removeUpdatingFile({ modelId: modelId, id: fileId })\n ];\n })\n );\n })\n )\n );\n\n public loadLanguageModelFileContent$ = createEffect(() =>\n this.actions$.pipe(\n ofType(LanguageActions.loadLanguageModelFileContent),\n withLatestFrom(this.store.select(fromCore.selectCurrentAccountId)),\n switchMap(([{ fileId, modelId }, accountId]) => {\n return this.apiService.Account.Customization.LanguagesModels.getModelFile(accountId, modelId, fileId).pipe(\n switchMap((res: TrainingDataFile) => {\n this.trackService.track('models.language.load_file.success', {\n category: EventCategory.CUSTOMIZATION,\n fileId: fileId\n });\n return [LanguageActions.updateLanguageModelFileContent({ file: res, modelId: modelId })];\n }),\n catchError(error => {\n this.logger.error('[LanguageModelEffects]', error);\n const file: IFileBlob = new File(null, fileId);\n this.trackService.track('models.language.load_file.failed', {\n category: EventCategory.CUSTOMIZATION,\n fileId: fileId\n });\n this.languageCustomizationService.handleLanguageFileError(error, file);\n return EMPTY;\n })\n );\n })\n )\n );\n\n public loadLanguageModelCrisEditsContent$ = createEffect(() =>\n this.actions$.pipe(\n ofType(LanguageActions.loadLanguageModelCrisEditsContent),\n withLatestFrom(this.store.select(fromCore.selectCurrentAccountId)),\n switchMap(([{ modelId }, accountId]) => {\n return this.apiService.Account.Customization.LanguagesModels.getModelCrisEdits(accountId, modelId).pipe(\n switchMap((res: Microsoft.VideoIndexer.Contracts.TrainingDataFromEdits[]) => {\n this.trackService.track('models.language.load_cfe_file.success', {\n category: EventCategory.CUSTOMIZATION,\n modelId: modelId\n });\n return [LanguageActions.updateLanguageModelCrisEditsContent({ crisEdits: res, modelId: modelId })];\n }),\n catchError(error => {\n this.logger.error('[LanguageModelEffects] ', error);\n this.trackService.track('models.language.load_cfe_file.failed', {\n category: EventCategory.CUSTOMIZATION,\n modelId: modelId\n });\n this.languageCustomizationService.handleLanguageFileError(error, null);\n return EMPTY;\n })\n );\n })\n )\n );\n\n public processLanguageModels$ = createEffect(() =>\n this.actions$.pipe(\n ofType(LanguageActions.upsertLanguageModels),\n switchMap(({ models }) => {\n const processingModels = models.filter(model => model.state === LanguageModelState.Processing || model.state === LanguageModelState.Waiting);\n if (processingModels.length) {\n const actionsList = [];\n processingModels.forEach(model => {\n actionsList.push(LanguageActions.pullTrainingModel({ model: model }));\n });\n\n return [...actionsList];\n }\n\n return EMPTY;\n })\n )\n );\n\n public trainModel$ = createEffect(() =>\n this.actions$.pipe(\n // Filters by Action Creator 'login'\n ofType(LanguageActions.trainModel),\n withLatestFrom(this.store.select(fromCore.selectCurrentAccountId)),\n switchMap(([{ model }, accountId]) => {\n return this.apiService.Account.Customization.LanguagesModels.trainModel(accountId, model.id).pipe(\n switchMap((result: LanguageModel) => {\n const actions = [];\n actions.push(LanguageActions.upsertLanguageModel({ model: this.getModel(result) }));\n if (result && result.state !== 'Complete') {\n actions.push(LanguageActions.pullTrainingModel({ model: result }));\n }\n\n this.trackService.track('models.language.train_model.success', {\n category: EventCategory.CUSTOMIZATION,\n modelName: model.name\n });\n return actions;\n }),\n catchError(error => {\n this.logger.error('[LanguageModelEffects] ', error);\n this.languageCustomizationService.handleLanguageError(error, model);\n this.trackService.track('models.language.train_model.failed', {\n category: EventCategory.CUSTOMIZATION,\n modelName: model.name\n });\n return [LanguageActions.upsertLanguageModel({ model: { ...model, state: 'None' } })];\n })\n );\n })\n )\n );\n\n public pullTrainingModel$ = createEffect(() =>\n this.actions$.pipe(\n ofType(LanguageActions.pullTrainingModel),\n withLatestFrom(this.store.select(fromCore.selectCurrentAccountId)),\n delay(30000),\n switchMap(([{ model }, accountId]) => {\n return this.apiService.Account.Customization.LanguagesModels.getModel(accountId, model.id).pipe(\n switchMap((result: LanguageModel) => {\n const actions = [];\n actions.push(LanguageActions.upsertLanguageModel({ model: this.getModel(result) }));\n if (result && result.state !== 'Complete') {\n actions.push(LanguageActions.pullTrainingModel({ model: result }));\n }\n\n return actions;\n }),\n catchError(error => {\n this.logger.error('[LanguageModelEffects] ', error);\n this.languageCustomizationService.handleLanguageError(error, model);\n return [LanguageActions.upsertLanguageModel({ model: { ...model, state: 'None' } })];\n })\n );\n })\n )\n );\n\n public filesIndex = 0;\n private customizationUtilsService: CustomizationUtilsService;\n private languageCustomizationService: LanguageCustomizationService;\n\n constructor(\n private actions$: Actions,\n private apiService: ApiService,\n private store: Store,\n private logger: LoggerService,\n private uploadService: UploadService,\n private azureBlobService: AzureBlobStorageService,\n private trackService: TrackService,\n private injector: Injector\n ) {\n setTimeout(() => {\n this.init();\n }, TRANSLATION_DELAY);\n }\n\n public downloadFile(fileContent: string, fileName: string, fileType: string, fileProperties: BlobPropertyBag): Subject {\n const downloadSubject = new Subject();\n if (!fileName) {\n downloadSubject.error('FileName not exists');\n } else {\n try {\n const file = new Blob() ? new Blob([fileContent], fileProperties) : new File([fileContent], fileName, fileProperties);\n saveAs(file, `${fileName.replace(/\\s/g, '_')}`);\n downloadSubject.next(file);\n } catch (e) {\n downloadSubject.error(e);\n throw e;\n }\n }\n return downloadSubject;\n }\n\n private init() {\n this.customizationUtilsService = this.injector.get(CustomizationUtilsService);\n this.languageCustomizationService = this.injector.get(LanguageCustomizationService);\n }\n\n private getEmptyFileFromTrainingFile(file: IFileBlob): IUploadTrainingDataFile {\n const trainingFile: Microsoft.VideoIndexer.Contracts.TrainingDataFile = Object.create(null);\n trainingFile.name = file.name;\n return { file: trainingFile, inProgress: true, progress: 0, id: this.filesIndex++ };\n }\n\n private getModels(models: LanguageModel[]) {\n models.forEach(model => {\n model = this.getModel(model);\n });\n\n return models;\n }\n\n private getModel(model: LanguageModel) {\n if (model.hasCrisEdits && !model.files.filter(f => f.id === `cris-edits-id-${model.id}`).length) {\n const file: TrainingDataFile = {\n id: `cris-edits-id-${model.id}`,\n name: 'From transcript edits',\n fileName: 'From transcript edits',\n hasCrisEdits: true,\n modelId: model.id,\n crisEdits: [],\n enable: false,\n creator: '',\n creationTime: '',\n modelType: null,\n description: '',\n lastUpdateTime: '',\n active: false,\n fileContent: '',\n groupId: null\n };\n model.files.unshift(file);\n }\n return model;\n }\n}\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\n\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Store } from '@ngrx/store';\n\nimport { EMPTY } from 'rxjs';\nimport { catchError, switchMap, withLatestFrom } from 'rxjs/operators';\n\nimport { ApiService } from '@common/modules/api/services/api.service';\nimport { LoggerService } from '@common/modules/core/services/logger/logger.service';\nimport { EventCategory, TrackService } from '@common/modules/core/services/track';\n\nimport { IState } from '../../core/reducers';\nimport * as fromCore from '../../core/selectors';\nimport * as LogoGroupsActions from '../actions/logo-groups.actions';\nimport * as fromCustomizationData from '../selectors';\n\n@Injectable()\nexport class LogoGroupsEffects {\n public loadLogoGroups$ = createEffect(() =>\n this.actions$.pipe(\n ofType(LogoGroupsActions.logoGroupsLoad),\n withLatestFrom(this.store.select(fromCore.selectCurrentAccountId)),\n withLatestFrom(this.store.select(fromCustomizationData.isLogoGroupsLoaded)),\n switchMap(([[, accountId], isLoaded]) => {\n this.logger.log('[LogoGroupsEffects] load logo groups');\n // Return empty in case the groups already loaded in the store.\n if (isLoaded) {\n return EMPTY;\n }\n\n this.store.dispatch(LogoGroupsActions.loadLogoGroupsInProgress());\n\n return this.apiService.Account.Customization.LogoGroups.list(accountId).pipe(\n switchMap((result: Microsoft.VideoIndexer.Contracts.Customization.LogoGroupContract[]) => {\n this.trackService.track('logo_groups.load.success', {\n category: EventCategory.CUSTOMIZATION\n });\n return [LogoGroupsActions.loadLogoGroupsSuccess({ groups: result })];\n }),\n catchError((error: HttpErrorResponse) => {\n this.trackService.track('logo_groups.load.failed', {\n category: EventCategory.CUSTOMIZATION\n });\n return [LogoGroupsActions.loadLogoGroupFailed()];\n })\n );\n })\n )\n );\n\n constructor(\n private actions$: Actions,\n private apiService: ApiService,\n private store: Store,\n private logger: LoggerService,\n private trackService: TrackService\n ) {}\n}\n","import { Injectable } from '@angular/core';\n\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Store } from '@ngrx/store';\nimport { ROUTER_NAVIGATION } from '@ngrx/router-store';\n\nimport { EMPTY, switchMap, withLatestFrom } from 'rxjs';\n\nimport { FeatureSwitchService } from '@common/modules/core/services/feature-switch/feature-switch.service';\n\nimport { VIRoutingMap } from '../../../app/routing/routes';\nimport { IState } from '../../../core/reducers';\nimport { ofRoute } from '../../../core/services/operations';\nimport * as RouterActions from '../../../core/actions/router.actions';\nimport * as fromCore from '../../../core/selectors';\nimport * as PeoplePageActions from '../../actions/people/people-page.actions';\nimport * as fromRouter from '../../../core/reducers/router';\nimport * as UnknownPersonActions from '../../actions/people/unknown-person.actions';\nimport { PeopleTab } from '../../../customization/components/customization-people-container/interfaces';\n\n@Injectable()\nexport class PeopleViewEffects {\n public selectPeopleTab$ = createEffect(() =>\n this.actions$.pipe(\n ofType(PeoplePageActions.selectPeopleTab),\n withLatestFrom(this.store.select(fromCore.selectCurrentAccountId)),\n switchMap(([{ tab }, accountId]) => {\n if (!accountId) {\n return EMPTY;\n }\n const path = `${VIRoutingMap.customization.path.replace(':accountId', accountId)}/${VIRoutingMap.customizationPeople.path}${\n tab !== PeopleTab.PEOPLE ? '/' + tab.toLowerCase() : ''\n }`;\n\n return [\n RouterActions.Go({\n path: [path]\n }),\n UnknownPersonActions.clearUnknownPersons()\n ];\n })\n )\n );\n\n public initSelectedPeopleTab$ = createEffect(() =>\n this.actions$.pipe(\n ofType(ROUTER_NAVIGATION),\n ofRoute([\n `/${VIRoutingMap.customization.path}/${VIRoutingMap.customizationPeople.path}`,\n `/${VIRoutingMap.customization.path}/${VIRoutingMap.customizationPeople.path}/${VIRoutingMap.customizationPeopleUnknown.path}`\n ]),\n withLatestFrom(this.store.select(fromRouter.getRouterState)),\n switchMap(([, routerState]) => {\n const peoplePath = routerState.state.filteredUrl.substring(routerState.state.filteredUrl.lastIndexOf('/') + 1).toLowerCase();\n switch (peoplePath) {\n case VIRoutingMap.customizationPeople.path:\n return [PeoplePageActions.initSelectedPeopleTab({ tab: PeopleTab.PEOPLE })];\n break;\n case VIRoutingMap.customizationPeopleUnknown.path:\n return [PeoplePageActions.initSelectedPeopleTab({ tab: PeopleTab.UNKNOWN_PEOPLE })];\n }\n })\n )\n );\n\n constructor(private actions$: Actions, private store: Store, private featureSwitchService: FeatureSwitchService) {}\n}\n","export const resources = {\n Cancel: '',\n Delete: '',\n FailDeletePerson: '',\n UnknownPeopleDeleteDialogTitle: '',\n UnknownPeopleDeleteDialogContent: '',\n UnknownPersonMoveToModelSuccessTitle: '',\n UnknownPersonMoveToModelSuccessText: '',\n UnknownPersonDeleteFaceFailedMessage: '',\n RegroupNotificationHeader: '',\n RegroupNotificationText: '',\n GroupFailedNotificationTitle: '',\n GroupFailedNotificationText: ''\n};\n","import { Injectable, Injector } from '@angular/core';\n\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Store, select } from '@ngrx/store';\n\nimport { EMPTY, catchError, concatMap, switchMap, take, tap, withLatestFrom } from 'rxjs';\n\nimport { ApiService } from '@common/modules/api/services/api.service';\nimport { EventCategory, TrackService } from '@common/modules/core/services/track';\nimport { UIActionType } from '@common/modules/insights/interfaces';\nimport { ActionButtonType } from '@common/modules/shared/components/action-button/interfaces';\nimport { DialogService } from '@common/modules/shared/components/dialog/dialog.service';\nimport { IDialogButton, IDialogData, IDialogEvent } from '@common/modules/shared/components/dialog/interfaces';\nimport { ToastService } from '@common/modules/core/services/toast/toast.service';\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\nimport { TRANSLATION_DELAY } from '@common/modules/translation/variables';\nimport { NotificationIcon, NotificationLevel } from '@common/modules/core/services/toast/interfaces';\n\nimport { IState } from '../../../core/reducers';\nimport * as fromCore from '../../../core/selectors';\n// eslint-disable-next-line max-len\nimport { UnknownPersonDetailsDialogComponent } from '../../../customization/components/customization-people/unknown-person/unknown-person-details-dialog/unknown-person-details-dialog.component';\n// eslint-disable-next-line max-len\nimport { UnknownPersonNotificationService } from '../../../customization/components/customization-people/services/unknown-person-notification.service';\nimport { JobType } from '../../../customization/components/customization-unknown-people/interfaces';\nimport { GroupingState } from '../../../customization/components/customization-people/unknown-people-empty-state/interfaces';\nimport * as actions from '../../actions/people/unknown-person.actions';\nimport * as fromUnknownPersons from '../../selectors/people/unknown-person.selectors';\nimport { UnknownPersonStoreService } from '../../services/people/unknown-person-store.service';\nimport { resources } from './resources';\nimport { CustomizationDataStoreService } from '../../services/customization-data-store.service';\n\nimport UnknownPerson = Microsoft.VideoIndexer.Contracts.UnknownPerson;\nimport PaginatedResult = Microsoft.VideoIndexer.Contracts.PaginatedResult;\n\n@Injectable()\nexport class UnknownPersonEffects {\n public initUnknownPersonTab$ = createEffect(() =>\n this.actions$.pipe(\n ofType(actions.selectUnknownPersonsTab),\n switchMap(() => {\n return [actions.getUnknownPersonsJob(), actions.listUnknownPersons({})];\n })\n )\n );\n\n public getUnknownPersonsJob$ = createEffect(() =>\n this.actions$.pipe(\n ofType(actions.getUnknownPersonsJob),\n withLatestFrom(this.store.select(fromCore.selectCurrentAccount)),\n switchMap(([, account]) => {\n if (!account.id) {\n return EMPTY;\n }\n\n this.trackService.track('unknown_person_effect.get_job.started', {\n category: EventCategory.CUSTOMIZATION\n });\n return this.apiService.Account.Customization.UnknownPersons.getJob(account.id).pipe(\n switchMap(job => {\n this.trackService.track('unknown_person_effect.get_job.success', {\n category: EventCategory.CUSTOMIZATION\n });\n\n // Update job status to processed\n const updatedJob = (job as PaginatedResult).results\n ? {\n ...job,\n jobType: JobType.UnknownPersonsGrouping,\n state: GroupingState.Processed\n }\n : job;\n\n return [actions.getUnknownPersonsJobSucceeded({ job: updatedJob as Microsoft.VideoIndexer.Contracts.UnknownPersonsJob })];\n }),\n catchError(error => {\n this.trackService.track('unknown_person_effect.get_job.failed', {\n category: EventCategory.CUSTOMIZATION,\n data: {\n error: error\n }\n });\n return [actions.getUnknownPersonsJobFailed({ error })];\n })\n );\n })\n )\n );\n\n public submitUnknownPersonsJob$ = createEffect(() =>\n this.actions$.pipe(\n ofType(actions.submitUnknownPersonsJob),\n withLatestFrom(this.store.select(fromCore.selectCurrentAccount)),\n switchMap(([, account]) => {\n if (!account.id) {\n return EMPTY;\n }\n\n this.trackService.track('unknown_person_effect.submit_job.started', {\n category: EventCategory.CUSTOMIZATION\n });\n return this.apiService.Account.Customization.UnknownPersons.submitJob(account.id).pipe(\n switchMap(job => {\n // Notify\n this.unknownPersonNotificationService.notify(\n this.resources.RegroupNotificationHeader,\n this.resources.RegroupNotificationText,\n false,\n NotificationLevel.Info,\n NotificationIcon.Info\n );\n\n // Update job status to processing\n const updatedJob: Microsoft.VideoIndexer.Contracts.UnknownPersonsJob = job || {\n ...Object.create(null),\n jobType: JobType.UnknownPersonsGrouping,\n state: GroupingState.Processing\n };\n\n this.trackService.track('unknown_person_effect.submit_job.success', {\n category: EventCategory.CUSTOMIZATION\n });\n\n return [actions.submitUnknownPersonsJobSucceeded({ job: updatedJob })];\n }),\n catchError(error => {\n // Notify\n this.unknownPersonNotificationService.notify(\n this.resources.GroupFailedNotificationTitle,\n this.resources.GroupFailedNotificationText,\n false,\n NotificationLevel.Error,\n NotificationIcon.Error\n );\n\n // Update job status to failed\n const updatedJob: Microsoft.VideoIndexer.Contracts.UnknownPersonsJob = {\n ...Object.create(null),\n jobType: JobType.UnknownPersonsGrouping,\n state: GroupingState.Failed\n };\n\n this.trackService.track('unknown_person_effect.submit_job.failed', {\n category: EventCategory.CUSTOMIZATION,\n data: {\n error: error\n }\n });\n return [actions.submitUnknownPersonsJobFailed({ error, job: updatedJob })];\n })\n );\n })\n )\n );\n\n public getUnknownPerson$ = createEffect(() =>\n this.actions$.pipe(\n ofType(actions.getUnknownPerson),\n withLatestFrom(this.store.select(fromCore.selectCurrentAccount)),\n switchMap(([{ id }, account]) => {\n if (!account.id) {\n return EMPTY;\n }\n\n return this.apiService.Account.Customization.UnknownPersons.get(account.id, id).pipe(\n switchMap(unknownPerson => {\n return [actions.getUnknownPersonSucceeded({ unknownPerson })];\n }),\n catchError(error => {\n return [actions.getUnknownPersonFailed({ error })];\n })\n );\n })\n )\n );\n\n public listUnknownPersons$ = createEffect(() =>\n this.actions$.pipe(\n ofType(actions.listUnknownPersons),\n withLatestFrom(this.store.select(fromCore.selectCurrentAccount)),\n withLatestFrom(this.store.select(fromUnknownPersons.getPaginationState)),\n switchMap(([[{ searchValue }, account], { page, pageSize }]) => {\n if (!account.id) {\n return EMPTY;\n }\n this.trackService.track('unknown_person_effect.get_list.started', {\n category: EventCategory.CUSTOMIZATION,\n data: {\n page,\n pageSize,\n search: !!searchValue\n }\n });\n const skip = page * pageSize;\n return this.apiService.Account.Customization.UnknownPersons.list(account.id, skip, searchValue).pipe(\n switchMap(unknownPersons => {\n this.trackService.track('unknown_person_effect.get_list.success', {\n category: EventCategory.CUSTOMIZATION,\n data: {\n page,\n resultSize: unknownPersons?.results?.length,\n search: !!searchValue\n }\n });\n return [actions.listUnknownPersonsSucceeded({ unknownPersons })];\n }),\n catchError(error => {\n this.trackService.track('unknown_person_effect.get_list.failed', {\n category: EventCategory.CUSTOMIZATION,\n data: {\n page,\n error,\n search: !!searchValue\n }\n });\n return [actions.listUnknownPersonsFailed({ error })];\n })\n );\n })\n )\n );\n\n public searchUnknownPersons$ = createEffect(() =>\n this.actions$.pipe(\n ofType(actions.searchUnknownPersons),\n switchMap(({ searchValue }) => {\n return [actions.listUnknownPersons({ searchValue })];\n })\n )\n );\n\n public openUnknownPersonDetailsDialog$ = createEffect(() =>\n this.actions$.pipe(\n ofType(actions.openUnknownPersonDetailsDialog),\n withLatestFrom(this.store.select(fromCore.selectCurrentAccount)),\n switchMap(([{ id }, account]) => {\n if (!id || !account?.id) {\n return EMPTY;\n }\n\n // select unknown person from the store\n this.store.pipe(select(fromUnknownPersons.getById(id)), take(1)).subscribe(unknownPerson => {\n this.trackService.track('unknown_person_effect.details_dialog.opened', {\n category: EventCategory.CUSTOMIZATION\n });\n this.openUnknownPersonDetailsDialog(unknownPerson, account.id);\n });\n\n return this.apiService.Account.Customization.UnknownPersons.get(account.id, id).pipe(\n switchMap(unknownPerson => {\n return [actions.selectUnknownPerson({ unknownPerson })];\n }),\n catchError(error => {\n return [actions.getUnknownPersonFailed({ error })];\n })\n );\n })\n )\n );\n\n public updateUnknownPerson$ = createEffect(() =>\n this.actions$.pipe(\n ofType(actions.updateUnknownPerson),\n withLatestFrom(this.store.select(fromCore.selectCurrentAccount)),\n switchMap(([{ unknownPerson }, account]) => {\n if (!unknownPerson || !account.id) {\n return EMPTY;\n }\n\n return this.apiService.Account.Customization.UnknownPersons.patch(account.id, unknownPerson.id, unknownPerson).pipe(\n switchMap(unknownPerson => {\n return [actions.updateUnknownPersonSucceeded({ unknownPerson })];\n }),\n catchError(error => {\n return [actions.updateUnknownPersonFailed({ error })];\n })\n );\n })\n )\n );\n\n public deleteUnknownPerson$ = createEffect(() =>\n this.actions$.pipe(\n ofType(actions.deleteUnknownPerson),\n withLatestFrom(this.store.select(fromCore.selectCurrentAccount)),\n concatMap(([{ id }, account]) => {\n if (!id || !account.id) {\n return EMPTY;\n }\n\n this.trackService.track('unknown_person_effect.delete_person.started', {\n category: EventCategory.CUSTOMIZATION\n });\n return this.apiService.Account.Customization.UnknownPersons.delete(account.id, id).pipe(\n switchMap(() => {\n this.trackService.track('unknown_person_effect.delete_person.success', {\n category: EventCategory.CUSTOMIZATION\n });\n return [actions.deleteUnknownPersonSucceeded({ id })];\n }),\n catchError(error => {\n this.toastService.error(null, resources?.FailDeletePerson, false);\n this.trackService.track('unknown_person_effect.delete_person.failed', {\n category: EventCategory.CUSTOMIZATION,\n data: {\n error: error\n }\n });\n return [actions.deleteUnknownPersonFailed({ error })];\n })\n );\n })\n )\n );\n\n public deleteUnknownPersonFace$ = createEffect(() =>\n this.actions$.pipe(\n ofType(actions.deleteUnknownPersonFace),\n withLatestFrom(this.store.select(fromCore.selectCurrentAccount)),\n switchMap(([{ unknownPersonId, faceId }, account]) => {\n if (!unknownPersonId || !account.id || !faceId) {\n return EMPTY;\n }\n\n this.trackService.track('unknown_person_effect.delete_face.started', {\n category: EventCategory.CUSTOMIZATION\n });\n return this.apiService.Account.Customization.UnknownPersons.deleteFace(account.id, unknownPersonId, faceId).pipe(\n switchMap(() => {\n this.trackService.track('unknown_person_effect.delete_face.success', {\n category: EventCategory.CUSTOMIZATION\n });\n return [actions.deleteUnknownPersonFaceSucceeded({ unknownPersonId, faceId })];\n }),\n catchError(error => {\n this.toastService.error(null, resources?.UnknownPersonDeleteFaceFailedMessage, false);\n this.trackService.track('unknown_person_effect.delete_face.failed', {\n category: EventCategory.CUSTOMIZATION,\n data: {\n error: error\n }\n });\n return [actions.deleteUnknownPersonFaceFailed({ error })];\n })\n );\n })\n )\n );\n\n public deleteUnknownPersonFaceSucceeded$ = createEffect(() =>\n this.actions$.pipe(\n ofType(actions.deleteUnknownPersonFaceSucceeded),\n withLatestFrom(this.store.select(fromCore.selectCurrentAccount)),\n switchMap(([{ unknownPersonId, faceId }, account]) => {\n if (!unknownPersonId || !account.id || !faceId) {\n return EMPTY;\n }\n return this.apiService.Account.Customization.UnknownPersons.get(account.id, unknownPersonId).pipe(\n switchMap(unknownPerson => {\n // Need to find the next best face if the deleted face was the best face\n const bestFace = unknownPerson.faces.sort((b, a) => b.qualityRank - a.qualityRank)[0];\n return [\n actions.selectUnknownPerson({ unknownPerson }),\n actions.updateUnknownPersonSucceeded({\n unknownPerson: {\n id: unknownPerson.id,\n name: unknownPerson.name,\n score: unknownPerson.score,\n imageCount: unknownPerson.imageCount,\n bestFaceThumbnailId: bestFace?.thumbnailId,\n bestFaceVideoId: bestFace?.videoId,\n lastUpdated: unknownPerson.lastUpdated\n }\n })\n ];\n })\n );\n })\n )\n );\n\n public openDeleteUnknownPersonDialog$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(actions.openDeleteUnknownPeopleDialog),\n tap(({ personIds }) => {\n if (!personIds?.length) {\n return EMPTY;\n }\n this.trackService.track('unknown_person_effect.unknown_person_delete_dialog.opened', {\n category: EventCategory.CUSTOMIZATION,\n data: {\n count: personIds.length\n }\n });\n this.openDeleteModelDialog(personIds);\n })\n ),\n {\n dispatch: false\n }\n );\n\n public moveUnknownPersonToModel$ = createEffect(() =>\n this.actions$.pipe(\n ofType(actions.moveUnknownPersonToModel),\n withLatestFrom(this.store.select(fromCore.selectCurrentAccount)),\n switchMap(([{ unknownPerson, personName }, account]) => {\n if (!unknownPerson || !personName || !account.id) {\n return EMPTY;\n }\n\n this.trackService.track('unknown_person_effect.person_move.started', {\n category: EventCategory.CUSTOMIZATION\n });\n return this.apiService.Account.Customization.UnknownPersons.moveToKnownPersonModels(account.id, unknownPerson.id, personName).pipe(\n switchMap(_ => {\n this.trackService.track('unknown_person_effect.person_move.success', {\n category: EventCategory.CUSTOMIZATION\n });\n return [actions.moveUnknownPersonToModelSucceeded({ unknownPerson, personName })];\n }),\n catchError(error => {\n this.trackService.track('unknown_person_effect.person_move.failed', {\n category: EventCategory.CUSTOMIZATION,\n data: {\n error: error\n }\n });\n return [actions.moveUnknownPersonToModelFailed({ error })];\n })\n );\n })\n )\n );\n\n public moveUnknownPersonToModelSucceeded$ = createEffect(() =>\n this.actions$.pipe(\n ofType(actions.moveUnknownPersonToModelSucceeded),\n switchMap(({ unknownPerson, personName }) => {\n const force = true;\n this.customizationDataStoreService.loadPersonModels(force);\n this.dialogRef.close();\n this.unknownPersonNotificationService.notify(\n this.resources.UnknownPersonMoveToModelSuccessTitle,\n this.translationService.instant('UnknownPersonMoveToModelSuccessText', { personName }),\n false,\n NotificationLevel.Success,\n NotificationIcon.Success\n );\n this.trackService.track('unknown_person_effect.person_move.success', {\n category: EventCategory.CUSTOMIZATION\n });\n return [actions.deleteUnknownPersonSucceeded({ id: unknownPerson.id })];\n })\n )\n );\n\n private dialogRef;\n private resources = resources;\n private translationService: TranslateHelperService;\n\n constructor(\n private actions$: Actions,\n private store: Store,\n private apiService: ApiService,\n private injector: Injector,\n private trackService: TrackService,\n private unknownPersonStoreService: UnknownPersonStoreService,\n private customizationDataStoreService: CustomizationDataStoreService,\n private dialogService: DialogService,\n private toastService: ToastService,\n private unknownPersonNotificationService: UnknownPersonNotificationService\n ) {\n setTimeout(() => {\n this.init();\n }, TRANSLATION_DELAY);\n }\n\n private init() {\n this.translationService = this.injector.get(TranslateHelperService);\n this.translationService.translateResourcesInstant(this.resources);\n }\n\n private openUnknownPersonDetailsDialog(unknownPerson: UnknownPerson, accountId: string) {\n const dialog: IDialogData = {\n class: 'unknown-person-details-dialog',\n title: unknownPerson.name,\n component: UnknownPersonDetailsDialogComponent,\n componentData: {\n updating$: this.unknownPersonStoreService.getIsUpdating$(),\n accountId,\n unknownPerson$: this.unknownPersonStoreService.getSelected$()\n }\n };\n\n this.dialogRef = this.dialogService.openDialog(dialog, '808px', '632px');\n\n // reset selected unknown person on dialog close\n this.dialogRef.afterClosed().subscribe(() => {\n this.store.dispatch(actions.selectUnknownPerson({ unknownPerson: null }));\n });\n\n this.dialogRef.componentInstance.actionChange.pipe().subscribe((event: IDialogEvent) => {\n if (event.action.type === UIActionType.CANCEL) {\n this.trackService.track('unknown_person_effect.details_dialog_cancel.clicked', {\n category: EventCategory.CUSTOMIZATION\n });\n }\n\n if (event.action.type === UIActionType.UPDATE) {\n const { unknownPerson, personName } = event.action.value;\n this.trackService.track('unknown_person_effect.details_dialog_move_to_model.clicked', {\n category: EventCategory.CUSTOMIZATION\n });\n this.store.dispatch(actions.moveUnknownPersonToModel({ personName, unknownPerson }));\n }\n\n if (event.action.type == UIActionType.DELETE_PERSON) {\n this.dialogRef.close();\n this.trackService.track('unknown_person_effect.details_dialog_delete_person.clicked', {\n category: EventCategory.CUSTOMIZATION\n });\n this.store.dispatch(actions.openDeleteUnknownPeopleDialog({ personIds: [unknownPerson.id] }));\n }\n\n if (event.action.type == UIActionType.DELETE_FACE) {\n if (event.action?.value) {\n this.trackService.track('unknown_person_effect.details_dialog_delete_face.clicked', {\n category: EventCategory.CUSTOMIZATION\n });\n const { unknownPersonId, faceId } = event.action.value;\n this.store.dispatch(actions.deleteUnknownPersonFace({ unknownPersonId, faceId }));\n }\n }\n });\n }\n\n private openDeleteModelDialog(peopleIds: string[]) {\n const cancelBtn: IDialogButton = {\n type: ActionButtonType.SECONDARY,\n action: {\n title: resources.Cancel,\n value: null,\n id: 'delete-unknown-people-cancel-btn'\n }\n };\n\n const deleteBtn: IDialogButton = {\n type: ActionButtonType.PRIMARY,\n action: {\n title: resources.Delete,\n value: null,\n id: 'delete-unknown-people-delete-btn'\n }\n };\n\n const dialog: IDialogData = {\n class: 'delete-unknown-people-dialog',\n title: resources.UnknownPeopleDeleteDialogTitle,\n content: resources.UnknownPeopleDeleteDialogContent,\n secondaryButton: cancelBtn,\n primaryButton: deleteBtn\n };\n\n const deleteModelDialogRef = this.dialogService.openDialog(dialog, '440px');\n deleteModelDialogRef.componentInstance.actionChange.pipe(take(1)).subscribe((event: IDialogEvent) => {\n if (event.action.id === deleteBtn.action.id) {\n this.trackService.track('unknown_person_effect.delete_dialog_delete_button.clicked', {\n category: EventCategory.CUSTOMIZATION,\n data: {\n count: peopleIds.length\n }\n });\n peopleIds.forEach(id => this.store.dispatch(actions.deleteUnknownPerson({ id })));\n }\n });\n }\n}\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\n\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Store } from '@ngrx/store';\n\nimport { EMPTY } from 'rxjs';\nimport { catchError, switchMap, withLatestFrom } from 'rxjs/operators';\n\nimport { ApiService } from '@common/modules/api/services/api.service';\n\nimport { IState } from '../../core/reducers';\nimport * as fromCore from '../../core/selectors';\nimport * as PersonActions from '../actions/person-model.actions';\nimport * as fromCustomizationData from '../selectors';\n\n@Injectable()\nexport class PersonModelEffects {\n public loadPersonModels$ = createEffect(() =>\n this.actions$.pipe(\n ofType(PersonActions.loadPersonModels),\n withLatestFrom(this.store.select(fromCore.selectCurrentAccountId)),\n withLatestFrom(this.store.select(fromCustomizationData.isPeopleModelsLoaded)),\n switchMap(([[{ force }, accountId], isLoaded]) => {\n // Return empty in case the models already loaded in the store.\n if (isLoaded && !force) {\n return EMPTY;\n }\n\n this.store.dispatch(PersonActions.loadPersonModelsInProgress());\n\n return this.apiService.Account.Customization.PeopleModels.getList(accountId).pipe(\n switchMap((result: Microsoft.VideoIndexer.Contracts.PersonModel[]) => {\n return [PersonActions.upsertPersonModels({ models: result })];\n }),\n catchError((error: HttpErrorResponse) => {\n return [PersonActions.failLoadPersonModels()];\n })\n );\n })\n )\n );\n\n constructor(private actions$: Actions, private apiService: ApiService, private store: Store) {}\n}\n","export const resources = {\n SpeechFailedUploadDatasetText: '',\n SpeechFailedUpdateDatasetTitle: '',\n SpeechFailedUpdateDatasetText: '',\n SpeechFailedTrainModelText: '',\n SpeechFailedUpdateModelTitle: '',\n SpeechFailedUpdateModelText: ''\n};\n","import { Injectable, Injector } from '@angular/core';\nimport { HttpEvent, HttpEventType } from '@angular/common/http';\n\nimport { Store } from '@ngrx/store';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\n\nimport { switchMap, withLatestFrom, EMPTY, catchError, tap, take, of, filter, delay, exhaustMap, takeUntil } from 'rxjs';\n\nimport { ToastService } from '@common/modules/core/services/toast/toast.service';\nimport { INotification, NotificationLevel } from '@common/modules/core/services/toast/interfaces';\nimport { TimeInterval } from '@common/modules/utils/time';\nimport { ApiService } from '@common/modules/api/services/api.service';\nimport { IApiSasContract } from '@common/modules/api/interfaces';\nimport { EventCategory } from '@common/modules/core/services/track';\nimport { TrackService } from '@common/modules/core/services/track/track.service';\nimport { TRANSLATION_DELAY } from '@common/modules/translation/variables';\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\nimport { DownloadService } from '@common/modules/shared/components/download-menu/download-service.service';\nimport { NotificationsService } from '@common/modules/notifications/services/notifications.service';\nimport { guid } from '@common/modules/utils/string';\n\nimport { NotificationMessageType, NotificationType, NotificationIcon } from './../../../../../../common/modules/core/services/toast/interfaces';\nimport { UIDatasetState, SpeechObjectState } from './../../interfaces';\nimport { ISpeechDatasetDetails } from '../../reducers/speech/interfaces';\nimport { IState } from '../../../core/reducers';\nimport * as fromCore from '../../../core/selectors';\nimport * as fromCustomizationData from '../../selectors';\nimport * as SpeechDatasetsActions from '../../actions/speech/speech-datasets.actions';\nimport * as SpeechModelsActions from '../../actions/speech/speech-models.actions';\nimport { resources } from './resources';\nimport { UploadService } from '../../../indexing/services/upload.service';\nimport { AzureBlobStorageService } from '../../../indexing/services/azure-blob-storage.service';\nimport { IFileBlob } from '../../../indexing/interfaces';\nimport { IUISpeechDatasetInput } from '../../../customization/interfaces';\nimport { SpeechErrorsService } from '../../services/speech/speech-errors.service';\n\nimport SpeechDataset = Microsoft.VideoIndexer.Contracts.SpeechDataset;\nimport SpeechDatasetFileContent = Microsoft.VideoIndexer.Contracts.SpeechDatasetFileContent;\nimport SpeechDatasetInput = Microsoft.VideoIndexer.Contracts.SpeechDatasetInput;\n\n@Injectable()\nexport class SpeechDatasetsEffects {\n public readonly GET_DATASET_STATUS_DELAY = TimeInterval.SECOND * 10;\n\n public loadSpeechDatasets$ = createEffect(() =>\n this.actions$.pipe(\n ofType(SpeechDatasetsActions.loadSpeechDatasets),\n withLatestFrom(this.store.select(fromCore.selectCurrentAccountId)),\n withLatestFrom(this.store.select(fromCustomizationData.isSpeechDatasetsLoaded)),\n switchMap(([[, accountId], isLoaded]) => {\n // Return empty in case the models already loaded in the store.\n if (isLoaded || !accountId) {\n return EMPTY;\n }\n\n return this.apiService.Account.Customization.Speech.listDatasets(accountId).pipe(\n switchMap((datasets: SpeechDataset[]) => {\n this.trackService.track('speech.load_datasets.succeeded', {\n category: EventCategory.CUSTOMIZATION\n });\n\n return [SpeechDatasetsActions.loadSpeechDatasetsSucceeded({ datasets })];\n }),\n catchError(error => {\n this.trackService.track('speech.load_datasets.failed', {\n category: EventCategory.CUSTOMIZATION,\n data: { error: error }\n });\n return [SpeechDatasetsActions.loadSpeechDatasetsFailed()];\n })\n );\n })\n )\n );\n\n public loadSpeechDatasetFiles$ = createEffect(() =>\n this.actions$.pipe(\n ofType(SpeechDatasetsActions.openViewSpeechDatasetDialog, SpeechDatasetsActions.loadSpeechDatasetFiles),\n switchMap(({ datasetId }) => of(datasetId).pipe(withLatestFrom(this.store.select(fromCustomizationData.getSpeechDatasetById(datasetId))))),\n withLatestFrom(this.store.select(fromCore.selectCurrentAccountId)),\n switchMap(([[datasetId, dataset], accountId]) => {\n if (!datasetId || !accountId || dataset.filesLoaded) {\n return EMPTY;\n }\n\n this.store.dispatch(SpeechDatasetsActions.loadSpeechDatasetFilesStarted());\n return this.apiService.Account.Customization.Speech.getDatasetFiles(accountId, datasetId).pipe(\n switchMap(files => {\n return this.apiService.Account.Customization.Speech.getDatasetFilesContent(files).pipe(\n switchMap(contents => {\n const files = contents as SpeechDatasetFileContent[];\n this.trackService.track('speech.load_dataset_files.succeeded', {\n category: EventCategory.CUSTOMIZATION\n });\n return [SpeechDatasetsActions.loadSpeechDatasetFilesSucceeded({ datasetId: datasetId, files })];\n })\n );\n }),\n catchError(error => {\n this.trackService.track('speech.load_dataset_files.failed', {\n category: EventCategory.CUSTOMIZATION,\n data: {\n error: error\n }\n });\n return [SpeechDatasetsActions.loadSpeechDatasetFilesFailed({ datasetId })];\n })\n );\n })\n )\n );\n\n public updateSpeechDataset$ = createEffect(() =>\n this.actions$.pipe(\n ofType(SpeechDatasetsActions.updateSpeechDataset),\n switchMap(({ datasetId, properties }) =>\n of(datasetId).pipe(withLatestFrom(this.store.select(fromCustomizationData.getSpeechDatasetById(datasetId))), withLatestFrom(of(properties)))\n ),\n withLatestFrom(this.store.select(fromCore.selectCurrentAccountId)),\n switchMap(([[[datasetId, datasetBeforeUpdate], properties], accountId]) => {\n if (!datasetId || !accountId) {\n return EMPTY;\n }\n\n this.store.dispatch(SpeechDatasetsActions.updateSpeechDatasetStarted());\n\n return this.apiService.Account.Customization.Speech.updateDataset(accountId, datasetId, properties).pipe(\n switchMap(dataset => {\n this.trackService.track('speech.update_dataset.succeeded', {\n category: EventCategory.CUSTOMIZATION,\n data: {\n fields: {\n name: datasetBeforeUpdate.displayName !== properties.displayName,\n description: datasetBeforeUpdate.description !== properties.description,\n nameLength: properties.displayName.length,\n descriptionLength: properties.description?.length\n }\n }\n });\n return [SpeechDatasetsActions.updateSpeechDatasetSucceed({ dataset })];\n }),\n catchError(error => {\n this.trackService.track('speech.update_dataset.failed', {\n category: EventCategory.CUSTOMIZATION,\n data: {\n error: error\n }\n });\n const title = this.resources.SpeechFailedUpdateDatasetTitle;\n const text = this.resources.SpeechFailedUpdateDatasetText;\n const errorNotification = this.getErrorNotification(datasetId, title, text);\n this.toastService.notify(errorNotification);\n return [SpeechDatasetsActions.updateSpeechDatasetFailed()];\n })\n );\n })\n )\n );\n\n public deleteSpeechDataset$ = createEffect(() =>\n this.actions$.pipe(\n ofType(SpeechDatasetsActions.deleteSpeechDataset),\n withLatestFrom(this.store.select(fromCore.selectCurrentAccountId)),\n switchMap(([{ dataset }, accountId]) => {\n if (!dataset.id || !accountId) {\n return EMPTY;\n }\n\n this.store.dispatch(SpeechDatasetsActions.deleteSpeechDatasetStarted());\n\n return this.apiService.Account.Customization.Speech.deleteDataset(accountId, dataset.id).pipe(\n switchMap(() => {\n this.trackService.track('speech.delete_dataset.succeeded', {\n category: EventCategory.CUSTOMIZATION\n });\n return [\n SpeechDatasetsActions.deleteSpeechDatasetSucceed({ datasetId: dataset.id }),\n SpeechModelsActions.clearSpeechModels(),\n SpeechModelsActions.loadSpeechModels()\n ];\n }),\n catchError(error => {\n this.trackService.track('speech.delete_dataset.failed', {\n category: EventCategory.CUSTOMIZATION,\n data: { error: error }\n });\n return [SpeechDatasetsActions.deleteSpeechDatasetFailed({ error, datasetId: dataset.id, datasetName: dataset.name })];\n })\n );\n })\n )\n );\n\n public onDeleteDatasetFailed$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(SpeechDatasetsActions.deleteSpeechDatasetFailed),\n tap(({ error, datasetId, datasetName }) => {\n const errorTexts = this.speechErrorsService.getSpeechDatasetDeleteErrorTexts(error, datasetName);\n const errorNotification = this.getErrorNotification(datasetId, errorTexts.title, errorTexts.content);\n this.toastService.notify(errorNotification);\n })\n ),\n {\n dispatch: false\n }\n );\n\n public downloadSpeechDataset$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(SpeechDatasetsActions.downloadSpeechDataset),\n switchMap(({ datasetId }) => of(datasetId).pipe(withLatestFrom(this.store.select(fromCustomizationData.getSpeechDatasetById(datasetId))))),\n withLatestFrom(this.store.select(fromCore.selectCurrentAccountId)),\n tap(([[datasetId, dataset], accountId]) => {\n if (!datasetId || !accountId) {\n return EMPTY;\n }\n\n if (!dataset.filesLoaded) {\n this.store.dispatch(SpeechDatasetsActions.loadSpeechDatasetFiles({ datasetId }));\n this.store\n .select(fromCustomizationData.getSpeechDatasetById(datasetId))\n .pipe(\n filter(datasetContract => datasetContract.filesLoaded),\n take(1)\n )\n .subscribe(datasetContract => {\n this.trackService.track('speech.download_dataset.succeeded', {\n category: EventCategory.CUSTOMIZATION\n });\n this.downloadDatasetLanguageData(datasetContract.languageData, datasetContract.displayName);\n });\n } else {\n this.trackService.track('speech.download_dataset.succeeded', {\n category: EventCategory.CUSTOMIZATION\n });\n this.downloadDatasetLanguageData(dataset.languageData, dataset.displayName);\n }\n })\n ),\n {\n dispatch: false\n }\n );\n\n public startUploadingDataset$ = createEffect(() =>\n this.actions$.pipe(\n ofType(SpeechDatasetsActions.startUploadingDataset),\n switchMap(({ uploadDetails }) => {\n const uploadingDataset: ISpeechDatasetDetails = {\n id: uploadDetails.id,\n properties: {\n acceptedLineCount: 0,\n rejectedLineCount: 0,\n duration: ''\n },\n displayName: uploadDetails.displayName,\n description: uploadDetails.description,\n locale: uploadDetails.locale,\n kind: uploadDetails.kind,\n status: UIDatasetState.UPLOADING,\n disabled: true,\n lastActionDateTime: new Date().toString(),\n createdDateTime: new Date().toString(),\n customProperties: {}\n };\n return [SpeechDatasetsActions.addUploadingDataset({ dataset: uploadingDataset }), SpeechDatasetsActions.getDatasetSasURL({ uploadDetails })];\n })\n )\n );\n\n public getSasURL$ = createEffect(() =>\n this.actions$.pipe(\n ofType(SpeechDatasetsActions.getDatasetSasURL),\n withLatestFrom(this.store.select(fromCore.selectCurrentAccountId)),\n switchMap(([{ uploadDetails }, accountId]) => {\n if (!uploadDetails || !accountId) {\n return EMPTY;\n }\n return this.uploadService.getSas(accountId, uploadDetails.file.name, uploadDetails.file.size).pipe(\n switchMap((sas: IApiSasContract) => {\n this.trackService.track('speech.upload_dataset_get_sas.succeeded', {\n category: EventCategory.CUSTOMIZATION\n });\n const file: IFileBlob = this.azureBlobService.generateFile(uploadDetails.file);\n file.baseUrl = sas.baseUrl;\n file.sasToken = sas.sasToken;\n file.blobPath = sas.baseUrl + sas.sasToken;\n return [SpeechDatasetsActions.getDatasetSasURLSucceeded({ uploadDetails, file, sas })];\n }),\n catchError(error => {\n this.trackService.track('speech.upload_dataset_get_sas.failed', {\n category: EventCategory.CUSTOMIZATION,\n data: { error: error }\n });\n\n return [SpeechDatasetsActions.getDatasetSasURLFailed({ datasetId: uploadDetails.id, datasetName: uploadDetails.displayName })];\n })\n );\n })\n )\n );\n\n public uploadToBlobStorage$ = createEffect(() =>\n this.actions$.pipe(\n ofType(SpeechDatasetsActions.getDatasetSasURLSucceeded),\n withLatestFrom(this.store.select(fromCore.selectCurrentAccountId)),\n switchMap(([{ uploadDetails, file, sas }, accountId]) => {\n if (!uploadDetails || !accountId) {\n return EMPTY;\n }\n return this.azureBlobService.uploadToBlobStorage(file, sas).pipe(\n switchMap((event: HttpEvent) => {\n switch (event.type) {\n case HttpEventType.Response:\n this.trackService.track('speech.upload_dataset_to_blob.succeeded', {\n category: EventCategory.CUSTOMIZATION,\n data: {\n source: file.baseUrl\n }\n });\n const newDatasetDetails: IUISpeechDatasetInput = {\n ...uploadDetails,\n contentUrl: file.blobPath\n };\n return [SpeechDatasetsActions.uploadDatasetToBlobSucceeded({ datasetInput: newDatasetDetails })];\n default:\n return EMPTY;\n }\n }),\n catchError(error => {\n this.trackService.track('speech.upload_dataset_to_blob.failed', {\n category: EventCategory.CUSTOMIZATION,\n data: {\n source: file.baseUrl,\n error: error\n }\n });\n\n return [SpeechDatasetsActions.uploadDatasetToBlobFailed({ datasetId: uploadDetails.id, datasetName: uploadDetails.displayName })];\n })\n );\n })\n )\n );\n\n public createSpeechDataset$ = createEffect(() =>\n this.actions$.pipe(\n ofType(SpeechDatasetsActions.uploadDatasetToBlobSucceeded),\n withLatestFrom(this.store.select(fromCore.selectCurrentAccountId)),\n switchMap(([{ datasetInput }, accountId]) => {\n if (!datasetInput || !accountId) {\n return EMPTY;\n }\n\n this.store.dispatch(SpeechDatasetsActions.createDatasetStarted());\n\n return this.apiService.Account.Customization.Speech.createDataset(accountId, datasetInput as SpeechDatasetInput).pipe(\n switchMap((datasetDetails: SpeechDataset) => {\n this.trackService.track('speech.create_dataset.succeeded', {\n category: EventCategory.CUSTOMIZATION,\n data: {\n kind: datasetDetails.kind,\n locale: datasetDetails.locale,\n nameLength: datasetDetails.displayName.length,\n descriptionLength: datasetDetails.description?.length\n }\n });\n return [\n SpeechDatasetsActions.removeSpeechDataset({ datasetId: datasetInput.id }),\n SpeechDatasetsActions.createDatasetSucceeded({ datasetDetails }),\n SpeechDatasetsActions.getDatasetStatus({ datasetId: datasetDetails.id })\n ];\n }),\n catchError(error => {\n this.trackService.track('speech.create_dataset.failed', {\n category: EventCategory.CUSTOMIZATION,\n data: {\n error: error\n }\n });\n return [SpeechDatasetsActions.createDatasetFailed({ datasetId: datasetInput.id, datasetName: datasetInput.displayName })];\n })\n );\n })\n )\n );\n\n public onUploadDatasetFailed$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(\n SpeechDatasetsActions.getDatasetSasURLFailed,\n SpeechDatasetsActions.uploadDatasetToBlobFailed,\n SpeechDatasetsActions.createDatasetFailed\n ),\n tap(({ datasetId, datasetName }) => {\n const title = this.translationService.instant('SpeechFailedUploadDatasetTitle', { datasetName: datasetName });\n const text = this.resources.SpeechFailedUploadDatasetText;\n const errorNotification = this.getErrorNotification(datasetId, title, text);\n this.notificationService.notify(errorNotification);\n })\n ),\n {\n dispatch: false\n }\n );\n\n public getDatasetsStatus$ = createEffect(() =>\n this.actions$.pipe(\n ofType(SpeechDatasetsActions.loadSpeechDatasetsSucceeded),\n exhaustMap(({ datasets }) => {\n const processingDatasets = datasets.filter(dataset => this.isDatasetProcessing(dataset));\n if (processingDatasets.length === 0) {\n return EMPTY;\n }\n const actionsList = [];\n processingDatasets.forEach(dataset => {\n actionsList.push(SpeechDatasetsActions.getDatasetStatus({ datasetId: dataset.id }));\n });\n return actionsList;\n })\n )\n );\n\n public getDatasetStatus$ = createEffect(() =>\n this.actions$.pipe(\n ofType(SpeechDatasetsActions.getDatasetStatus),\n withLatestFrom(this.store.select(fromCore.selectCurrentAccountId)),\n delay(this.GET_DATASET_STATUS_DELAY),\n switchMap(([{ datasetId }, accountId]) => {\n if (!datasetId || !accountId) {\n return EMPTY;\n }\n\n return this.apiService.Account.Customization.Speech.getDataset(accountId, datasetId).pipe(\n takeUntil(this.actions$.pipe(ofType(SpeechDatasetsActions.clearSpeechDatasets))),\n switchMap((dataset: SpeechDataset) => {\n this.trackService.track('speech.get_dataset_status.succeeded', {\n category: EventCategory.CUSTOMIZATION,\n data: {\n status: dataset.status\n }\n });\n const actionsList = [];\n if (this.isDatasetProcessing(dataset)) {\n actionsList.push(SpeechDatasetsActions.getDatasetStatus({ datasetId }));\n }\n actionsList.push(SpeechDatasetsActions.getDatasetStatusSucceeded({ dataset }));\n return actionsList;\n }),\n catchError(error => {\n this.trackService.track('speech.get_dataset_status.failed', {\n category: EventCategory.CUSTOMIZATION,\n data: {\n error: error\n }\n });\n return [SpeechDatasetsActions.getDatasetStatusFailed()];\n })\n );\n })\n )\n );\n\n private resources = resources;\n private translationService: TranslateHelperService;\n\n constructor(\n private actions$: Actions,\n private apiService: ApiService,\n private store: Store,\n private trackService: TrackService,\n private injector: Injector,\n private downloadService: DownloadService,\n private uploadService: UploadService,\n private azureBlobService: AzureBlobStorageService,\n private notificationService: NotificationsService,\n private toastService: ToastService,\n private speechErrorsService: SpeechErrorsService\n ) {\n setTimeout(() => {\n this.init();\n }, TRANSLATION_DELAY);\n }\n\n private downloadDatasetLanguageData(languageData = '', name: string) {\n this.downloadService.downloadFile(languageData, `${name}-dataset`, 'txt', {});\n }\n\n private init() {\n this.translationService = this.injector.get(TranslateHelperService);\n this.translationService.translateResources(this.resources);\n }\n\n private isDatasetProcessing(dataset) {\n return dataset.status === SpeechObjectState.WAITING || dataset.status === SpeechObjectState.PROCESSING;\n }\n\n private getErrorNotification(datasetId: string, title: string, text: string): INotification {\n return {\n id: `failed_dataset_${datasetId}_${guid()}`,\n messageType: NotificationMessageType.Custom,\n startDate: new Date(),\n endDate: new Date(),\n type: NotificationType.Message,\n level: NotificationLevel.Error,\n icon: NotificationIcon.Error,\n title: title,\n text: text\n };\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Store } from '@ngrx/store';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\n\nimport { switchMap, withLatestFrom, EMPTY, catchError, tap, delay, takeUntil, of } from 'rxjs';\n\nimport { ApiService } from '@common/modules/api/services/api.service';\nimport { EventCategory, TrackService } from '@common/modules/core/services/track';\nimport { AccountPermission } from '@common/modules/shared/interfaces';\nimport { TRANSLATION_DELAY } from '@common/modules/translation/variables';\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\nimport { guid } from '@common/modules/utils/string';\nimport { TimeInterval } from '@common/modules/utils/time';\nimport {\n INotification,\n NotificationIcon,\n NotificationLevel,\n NotificationMessageType,\n NotificationType\n} from '@common/modules/core/services/toast/interfaces';\nimport { NotificationsService } from '@common/modules/notifications/services/notifications.service';\nimport { ToastService } from '@common/modules/core/services/toast/toast.service';\n\nimport { resources } from './resources';\nimport { IState } from '../../../core/reducers';\nimport * as fromCore from '../../../core/selectors';\nimport * as fromCustomizationData from '../../selectors';\nimport * as SpeechModelsActions from '../../actions/speech/speech-models.actions';\nimport { SpeechObjectState } from '../../interfaces';\nimport { SpeechErrorsService } from '../../services/speech/speech-errors.service';\n\nimport SpeechModel = Microsoft.VideoIndexer.Contracts.CustomSpeechModel;\nimport SpeechModelInput = Microsoft.VideoIndexer.Contracts.CustomSpeechModelInput;\n\n@Injectable()\nexport class SpeechModelsEffects {\n public readonly GET_MODEL_STATUS_DELAY = TimeInterval.SECOND * 10;\n\n public loadSpeechModels$ = createEffect(() =>\n this.actions$.pipe(\n ofType(SpeechModelsActions.loadSpeechModels),\n withLatestFrom(this.store.select(fromCore.selectCurrentAccountId)),\n withLatestFrom(this.store.select(fromCore.selectAccountTokenPermission)),\n withLatestFrom(this.store.select(fromCustomizationData.isSpeechModelsLoaded)),\n switchMap(([[[, accountId], permission], isLoaded]) => {\n // Return empty in case the models already loaded in the store or account with restricted viewer permission\n if (isLoaded || !accountId || permission === AccountPermission.RESTRICTED_VIEWER) {\n return EMPTY;\n }\n\n return this.apiService.Account.Customization.Speech.listModels(accountId).pipe(\n switchMap((models: SpeechModel[]) => {\n this.trackService.track('speech.load.models.succeeded', {\n category: EventCategory.CUSTOMIZATION\n });\n return [SpeechModelsActions.loadSpeechModelsSucceeded({ models: models })];\n }),\n catchError(error => {\n this.trackService.track('speech.load.models.failed', {\n category: EventCategory.CUSTOMIZATION,\n data: {\n error: error\n }\n });\n return [SpeechModelsActions.loadSpeechModelsFailed()];\n })\n );\n })\n )\n );\n\n public updateSpeechModel$ = createEffect(() =>\n this.actions$.pipe(\n ofType(SpeechModelsActions.updateSpeechModel),\n switchMap(({ modelId, properties }) =>\n of(modelId).pipe(withLatestFrom(this.store.select(fromCustomizationData.getSpeechModelId(modelId))), withLatestFrom(of(properties)))\n ),\n withLatestFrom(this.store.select(fromCore.selectCurrentAccountId)),\n switchMap(([[[modelId, modelBeforeUpdate], properties], accountId]) => {\n if (!modelId || !accountId) {\n return EMPTY;\n }\n\n this.store.dispatch(SpeechModelsActions.updateSpeechModelStarted());\n\n return this.apiService.Account.Customization.Speech.updateModel(accountId, modelId, properties).pipe(\n switchMap(model => {\n this.trackService.track('speech.update_model.succeeded', {\n category: EventCategory.CUSTOMIZATION,\n data: {\n fields: {\n name: modelBeforeUpdate.displayName !== properties.displayName,\n description: modelBeforeUpdate.description !== properties.description,\n nameLength: properties.displayName.length,\n descriptionLength: properties.description?.length\n }\n }\n });\n return [SpeechModelsActions.updateSpeechModelSucceed({ model })];\n }),\n catchError(error => {\n this.trackService.track('speech.update_model.failed', {\n category: EventCategory.CUSTOMIZATION,\n data: {\n error: error\n }\n });\n const title = this.resources.SpeechFailedUpdateModelTitle;\n const text = this.resources.SpeechFailedUpdateModelText;\n const errorNotification = this.getErrorNotification(modelId, title, text);\n this.toastService.notify(errorNotification);\n return [SpeechModelsActions.updateSpeechModelFailed()];\n })\n );\n })\n )\n );\n\n public createSpeechModel$ = createEffect(() =>\n this.actions$.pipe(\n ofType(SpeechModelsActions.createSpeechModel),\n withLatestFrom(this.store.select(fromCore.selectCurrentAccountId)),\n switchMap(([{ properties }, accountId]) => {\n if (!properties || !accountId) {\n return EMPTY;\n }\n\n const creatingModel = this.getCreatingSpeechModel(properties) as SpeechModel;\n this.store.dispatch(SpeechModelsActions.createSpeechModelStarted({ model: creatingModel }));\n\n return this.apiService.Account.Customization.Speech.createModel(accountId, properties).pipe(\n switchMap(model => {\n this.trackService.track('speech.train.models.succeed', {\n category: EventCategory.CUSTOMIZATION,\n data: {\n locale: model.locale,\n nameLength: model.displayName.length,\n descriptionLength: model.description?.length\n }\n });\n return [\n SpeechModelsActions.removeSpeechModel({ modelId: creatingModel.id }),\n SpeechModelsActions.createSpeechModelSucceed({ model }),\n SpeechModelsActions.getModelStatus({ modelId: model.id })\n ];\n }),\n catchError(error => {\n this.trackService.track('speech.train.models.failed', {\n category: EventCategory.CUSTOMIZATION,\n data: {\n error: error\n }\n });\n const title = this.translate.instant('SpeechFailedTrainModelTitle', { modelName: properties.displayName });\n const text = this.resources.SpeechFailedTrainModelText;\n const errorNotification = this.getErrorNotification(creatingModel.id, title, text);\n this.notificationService.notify(errorNotification);\n return [SpeechModelsActions.createSpeechModelFailed({ modelId: creatingModel.id })];\n })\n );\n })\n )\n );\n\n public deleteSpeechModel$ = createEffect(() =>\n this.actions$.pipe(\n ofType(SpeechModelsActions.deleteSpeechModel),\n withLatestFrom(this.store.select(fromCore.selectCurrentAccountId)),\n switchMap(([{ model }, accountId]) => {\n if (!model.id || !accountId) {\n return EMPTY;\n }\n\n this.store.dispatch(SpeechModelsActions.deleteSpeechModelStarted());\n\n return this.apiService.Account.Customization.Speech.deleteModel(accountId, model.id).pipe(\n switchMap(() => {\n this.trackService.track('speech.delete_model.succeeded', {\n category: EventCategory.CUSTOMIZATION\n });\n return [SpeechModelsActions.deleteSpeechModelSucceed({ modelId: model.id })];\n }),\n catchError(error => {\n this.trackService.track('speech.delete_model.failed', {\n category: EventCategory.CUSTOMIZATION,\n data: { error: error }\n });\n return [SpeechModelsActions.deleteSpeechModelFailed({ error, modelId: model.id, modelName: model.name })];\n })\n );\n })\n )\n );\n\n public onFailedDeleteModel$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(SpeechModelsActions.deleteSpeechModelFailed),\n tap(({ error, modelId, modelName }) => {\n const errorTexts = this.speechErrorsService.getSpeechModelDeleteErrorTexts(error, modelId, modelName);\n const errorNotification = this.getErrorNotification(modelId, errorTexts.title, errorTexts.content);\n this.toastService.notify(errorNotification);\n })\n ),\n {\n dispatch: false\n }\n );\n\n public getModelsStatus$ = createEffect(() =>\n this.actions$.pipe(\n ofType(SpeechModelsActions.loadSpeechModelsSucceeded),\n switchMap(({ models }) => {\n const processingModels = models.filter(model => this.isModelProcessing(model));\n if (processingModels.length === 0) {\n return EMPTY;\n }\n const actionsList = [];\n processingModels.forEach(model => {\n actionsList.push(SpeechModelsActions.getModelStatus({ modelId: model.id }));\n });\n return actionsList;\n })\n )\n );\n\n public getModelStatus$ = createEffect(() =>\n this.actions$.pipe(\n ofType(SpeechModelsActions.getModelStatus),\n withLatestFrom(this.store.select(fromCore.selectCurrentAccountId)),\n delay(this.GET_MODEL_STATUS_DELAY),\n switchMap(([{ modelId }, accountId]) => {\n if (!modelId || !accountId) {\n return EMPTY;\n }\n\n return this.apiService.Account.Customization.Speech.getModel(accountId, modelId).pipe(\n takeUntil(this.actions$.pipe(ofType(SpeechModelsActions.clearSpeechModels))),\n switchMap((model: SpeechModel) => {\n this.trackService.track('speech.get_model_status.succeeded', {\n category: EventCategory.CUSTOMIZATION,\n data: {\n status: model.status\n }\n });\n const actionsList = [];\n if (this.isModelProcessing(model)) {\n actionsList.push(SpeechModelsActions.getModelStatus({ modelId }));\n }\n actionsList.push(SpeechModelsActions.getModelStatusSucceeded({ model }));\n return actionsList;\n }),\n catchError(error => {\n this.trackService.track('speech.get_model_status.failed', {\n category: EventCategory.CUSTOMIZATION,\n data: {\n error: error\n }\n });\n return [SpeechModelsActions.getModelStatusFailed(error)];\n })\n );\n })\n )\n );\n\n private resources = resources;\n private newModelId = 0;\n\n constructor(\n private actions$: Actions,\n private apiService: ApiService,\n private store: Store,\n private trackService: TrackService,\n private translate: TranslateHelperService,\n private notificationService: NotificationsService,\n private toastService: ToastService,\n private speechErrorsService: SpeechErrorsService\n ) {\n setTimeout(() => {\n this.init();\n }, TRANSLATION_DELAY);\n }\n\n private init() {\n this.translate.translateResourcesInstant(this.resources);\n }\n\n private getCreatingSpeechModel(modelProperties: SpeechModelInput) {\n const creatingSpeechModel = {\n displayName: modelProperties.displayName,\n description: modelProperties.description,\n id: `new_model_${this.newModelId++}_${guid()}`,\n locale: modelProperties.locale,\n createdDateTime: new Date().toString(),\n lastActionDateTime: new Date().toString(),\n status: SpeechObjectState.WAITING,\n properties: null,\n datasets: [],\n customProperties: {}\n };\n return creatingSpeechModel;\n }\n\n private isModelProcessing(model) {\n return model.status === SpeechObjectState.WAITING || model.status === SpeechObjectState.PROCESSING;\n }\n\n private getErrorNotification(modelId: string, title: string, text: string): INotification {\n return {\n id: `failed_model_${modelId}_${guid()}`,\n messageType: NotificationMessageType.Custom,\n startDate: new Date(),\n endDate: new Date(),\n type: NotificationType.Message,\n level: NotificationLevel.Error,\n icon: NotificationIcon.Error,\n title: title,\n text: text\n };\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { ROUTER_NAVIGATION } from '@ngrx/router-store';\nimport { Store } from '@ngrx/store';\n\nimport { EMPTY, switchMap, withLatestFrom } from 'rxjs';\n\nimport { AccountResourceType } from '@common/modules/auth/interfaces';\nimport { FeatureSwitchService } from '@common/modules/core/services/feature-switch/feature-switch.service';\nimport { FeatureSwitch } from '@common/modules/core/services/interfaces';\n\nimport { VIRoutingMap } from '../../../app/routing/routes';\nimport * as AccountActions from '../../../core/actions/accounts.actions';\nimport * as RouterActions from '../../../core/actions/router.actions';\nimport { IState } from '../../../core/reducers';\nimport * as fromRouter from '../../../core/reducers/router';\nimport * as fromCore from '../../../core/selectors';\nimport * as fromCustomizationData from '../../selectors';\nimport { ofRoute } from '../../../core/services/operations';\nimport { SpeechTab } from '../../../customization/components/speech/speech-container/interfaces';\nimport * as SpeechDatasetsActions from '../../actions/speech/speech-datasets.actions';\nimport * as SpeechModelActions from '../../actions/speech/speech-models.actions';\nimport * as SpeechPageActions from '../../actions/speech/speech-page.actions';\nimport { SpeechPermission } from '../../interfaces';\n\n@Injectable()\nexport class SpeechViewEffects {\n public selectSpeechTab$ = createEffect(() =>\n this.actions$.pipe(\n ofType(SpeechPageActions.selectSpeechTab),\n withLatestFrom(this.store.select(fromCore.selectCurrentAccountId)),\n switchMap(([{ tab }, accountId]) => {\n if (!accountId) {\n return EMPTY;\n }\n const path = `${VIRoutingMap.customization.path.replace(':accountId', accountId)}/${\n VIRoutingMap.customizationSpeech.path\n }/${tab.toLowerCase()}`;\n\n return [\n RouterActions.Go({\n path: [path],\n removeParams: true\n })\n ];\n })\n )\n );\n\n public initSelectedSpeechTab$ = createEffect(() =>\n this.actions$.pipe(\n ofType(ROUTER_NAVIGATION),\n ofRoute([\n `/${VIRoutingMap.customization.path}/${VIRoutingMap.customizationSpeech.path}/${VIRoutingMap.customizationSpeechDatasets.path}`,\n `/${VIRoutingMap.customization.path}/${VIRoutingMap.customizationSpeech.path}/${VIRoutingMap.customizationSpeechModels.path}`\n ]),\n withLatestFrom(this.store.select(fromRouter.getRouterState)),\n switchMap(([, routerState]) => {\n const speechPath = routerState.state.filteredUrl.substring(routerState.state.filteredUrl.lastIndexOf('/') + 1).toLowerCase();\n switch (speechPath) {\n case VIRoutingMap.customizationSpeechDatasets.path:\n return [SpeechPageActions.initSelectedSpeechTab({ tab: SpeechTab.DATASETS })];\n break;\n case VIRoutingMap.customizationSpeechModels.path:\n return [SpeechPageActions.initSelectedSpeechTab({ tab: SpeechTab.MODELS })];\n }\n })\n )\n );\n\n public isSpeechPageEnabledARM$ = createEffect(() =>\n this.actions$.pipe(\n ofType(AccountActions.loadLastArmAccount),\n switchMap(() => {\n const isSpeechFeatureEnabled = this.featureSwitchService.featureSwitch(FeatureSwitch.Speech);\n\n return [\n SpeechPageActions.initSpeechPagePermission({ permission: isSpeechFeatureEnabled ? SpeechPermission.PERMITTED : SpeechPermission.REJECTED })\n ];\n })\n )\n );\n public isSpeechPageEnabled$ = createEffect(() =>\n this.actions$.pipe(\n ofType(AccountActions.selectAccountProcessing, AccountActions.selectArmAccountProcessing),\n withLatestFrom(this.store.select(fromCore.selectCurrentAccount)),\n switchMap(([, account]) => {\n const isSpeechFeatureEnabled = this.featureSwitchService.featureSwitch(FeatureSwitch.Speech);\n const isAccountEnabled =\n account?.resourceType === AccountResourceType.ARM || account?.accountType?.toLowerCase() === AccountResourceType.TRIAL.toLowerCase();\n const isSpeechPageEnabled = isSpeechFeatureEnabled && isAccountEnabled;\n return [\n SpeechPageActions.initSpeechPagePermission({ permission: isSpeechPageEnabled ? SpeechPermission.PERMITTED : SpeechPermission.REJECTED })\n ];\n })\n )\n );\n\n public loadSpeechData$ = createEffect(() =>\n this.actions$.pipe(\n ofType(AccountActions.addSelectedAccount, AccountActions.addSelectedArmAccount),\n withLatestFrom(this.store.select(fromCustomizationData.getSpeechPermission)),\n switchMap(([, permission]) => {\n if (permission === SpeechPermission.PERMITTED) {\n return [SpeechModelActions.loadSpeechModels(), SpeechDatasetsActions.loadSpeechDatasets()];\n } else {\n return EMPTY;\n }\n })\n )\n );\n\n constructor(private actions$: Actions, private store: Store, private featureSwitchService: FeatureSwitchService) {}\n}\n","import { Injectable } from '@angular/core';\n\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\n\nimport { EMPTY } from 'rxjs';\nimport { catchError, switchMap } from 'rxjs/operators';\n\nimport { orderBy } from 'lodash-es';\n\nimport { ApiService } from '@common/modules/api/services/api.service';\nimport { FeatureSwitchService } from '@common/modules/core/services/feature-switch/feature-switch.service';\nimport { FeatureSwitch } from '@common/modules/core/services/interfaces';\nimport { LoggerService } from '@common/modules/core/services/logger/logger.service';\nimport { EventCategory, TrackService } from '@common/modules/core/services/track';\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\n\nimport * as LanguageIdActions from '../actions/language-id.actions';\nimport * as SupportedLanguageIDActions from '../actions/supported-languages-ids.actions';\nimport { isSupportedLanguageDialect } from '../utils';\n\n@Injectable()\nexport class SupportedLanguagesIdsEffects {\n public loadSupportedLanguages$ = createEffect(() =>\n this.actions$.pipe(\n ofType(SupportedLanguageIDActions.loadSupportedLanguages),\n switchMap(() => {\n const isSupportedLanguagesFeatureEnabled = this.featureSwitchService.featureSwitch(FeatureSwitch.SupportedLanguages);\n const isAutoDetectFeatureEnable = this.featureSwitchService.featureSwitch(FeatureSwitch.AutoDetectLanguage);\n if (!isSupportedLanguagesFeatureEnabled) {\n return EMPTY;\n }\n return this.apiService.SupportedLanguages.getSupportedLanguages().pipe(\n switchMap((supportedLanguages: Microsoft.VideoIndexer.Contracts.SupportedLanguageContract[]) => {\n this.logger.log('[SupportedLanguagesIdsEffects] load supported languages');\n this.trackService.track('supportedLanguages.load.success', {\n category: EventCategory.SUPPORTED_LANGUAGES\n });\n supportedLanguages.forEach(l => {\n l.name = this.translateService.getLocaleLanguage(l.languageCode);\n l.isDialect = isSupportedLanguageDialect(\n supportedLanguages.map(l => l.languageCode),\n l.languageCode\n );\n });\n supportedLanguages = orderBy(supportedLanguages, language => language.name);\n return isAutoDetectFeatureEnable\n ? [\n SupportedLanguageIDActions.upsertSupportedLanguages({ supportedLanguages }),\n LanguageIdActions.loadSelectedLanguages(),\n LanguageIdActions.loadDefaultLanguages()\n ]\n : [SupportedLanguageIDActions.upsertSupportedLanguages({ supportedLanguages })];\n }),\n catchError(error => {\n this.logger.error('[SupportedLanguagesIdsEffects]', error);\n this.trackService.track('supportedLanguages.load.failed', {\n category: EventCategory.SUPPORTED_LANGUAGES,\n error: JSON.stringify(error)\n });\n return [SupportedLanguageIDActions.loadSupportedLanguageFailed()];\n })\n );\n })\n )\n );\n\n constructor(\n private actions$: Actions,\n private apiService: ApiService,\n private logger: LoggerService,\n private featureSwitchService: FeatureSwitchService,\n private trackService: TrackService,\n private translateService: TranslateHelperService\n ) {}\n}\n","import { Injectable } from '@angular/core';\n\nimport { Actions, ofType, createEffect } from '@ngrx/effects';\n\nimport { switchMap } from 'rxjs/operators';\n\nimport { SupportedLanguages } from '../../core/languages';\nimport * as LanguageActions from '../actions/language-model.actions';\nimport * as SupportedLanguagesActions from '../actions/supported-languages.actions';\n\n@Injectable()\nexport class SupportedLanguagesEffects {\n public loadSupportedLanguages$ = createEffect(() =>\n this.actions$.pipe(\n ofType(LanguageActions.loadLanguageModels),\n switchMap(() => {\n const supportedLanguages = SupportedLanguages.filter(supportedLanguage => supportedLanguage.supportedCustomization).map(\n supportedLanguage => ({\n ...supportedLanguage,\n isExpanded: true,\n isCreating: false,\n editMode: false\n })\n );\n return [SupportedLanguagesActions.upsertSupportedLanguages({ supportedLanguages: supportedLanguages })];\n })\n )\n );\n\n constructor(private actions$: Actions) {}\n}\n","import LanguageModel = Microsoft.VideoIndexer.Contracts.LanguageModel;\nimport SpeechModel = Microsoft.VideoIndexer.Contracts.CustomSpeechModel;\nimport SpeechDataset = Microsoft.VideoIndexer.Contracts.SpeechDataset;\n\nexport interface LanguageModelListContract {\n language: string;\n languageKey: string;\n languageModels: LanguageModel[];\n isExpanded?: boolean;\n isCreating?: boolean;\n editMode?: boolean;\n}\n\nexport enum DatasetKindEnum {\n Language = 'Language',\n Acoustic = 'Acoustic',\n Pronunciation = 'Pronunciation',\n AudioFiles = 'AudioFiles',\n LanguageMarkdown = 'LanguageMarkdown'\n}\n\nexport enum SpeechPermission {\n UNDEFINED = 'UNDEFINED',\n PERMITTED = 'PERMITTED',\n REJECTED = 'REJECTED'\n}\n\nexport enum SpeechDatasetKind {\n LANGUAGE = 'Language',\n PRONUNCIATION = 'Pronunciation'\n}\n\nexport enum SpeechObjectState {\n NONE = 'None',\n WAITING = 'Waiting',\n PROCESSING = 'Processing',\n COMPLETE = 'Complete',\n FAILED = 'Failed'\n}\n\nexport enum UIDatasetState {\n UPLOADING = 'Uploading'\n}\n\nexport type UISpeechObjectState = SpeechObjectState | UIDatasetState;\n\nexport interface IUISpeechModelTableDetail extends Pick {\n name: string;\n language: string;\n date: string;\n status: SpeechObjectState;\n}\n\nexport interface IUISpeechDatasetTableDetail extends Pick {\n name: string;\n type: string;\n language: string;\n numOfLines: string;\n date: string;\n disabled?: boolean;\n disabledReason?: string;\n selected?: boolean;\n status: UISpeechObjectState;\n}\n\nexport enum TrainModelDialogSource {\n DATASETS = 'DATASETS',\n MODELS = 'MODELS'\n}\n","import { EntityState, EntityAdapter, createEntityAdapter } from '@ngrx/entity';\nimport { createReducer, Action, on } from '@ngrx/store';\n\nimport * as BrandActions from '../actions/brands-model.actions';\nimport { IBrandsSettings } from '../../customization/components/brand/brand-container/interfaces';\n\nimport BrandContractV2 = Microsoft.VideoIndexer.Contracts.BrandContractV2;\n\nexport interface IState extends EntityState {\n // additional entities state properties\n selectedAccountId: string;\n loaded: boolean;\n savingIncluded: boolean;\n savingExcluded: boolean;\n error: boolean;\n settings: IBrandsSettings;\n}\n\nexport function selectAccountId(a: BrandContractV2): number {\n return a.id;\n}\n\nexport const adapter: EntityAdapter = createEntityAdapter({\n selectId: selectAccountId\n});\n\nexport const initialState: IState = adapter.getInitialState({\n // additional entity state properties\n selectedAccountId: null,\n loaded: false,\n savingIncluded: false,\n savingExcluded: false,\n error: false,\n settings: Object.create(null)\n});\n\nconst brandModelReducer = createReducer(\n initialState,\n on(BrandActions.upsertBrandModel, (state, { brand }) => {\n return adapter.upsertOne(brand, {\n ...state,\n savingIncluded: false,\n savingExcluded: false\n });\n }),\n on(BrandActions.upsertBrandModels, (state, { brands }) => {\n return adapter.upsertMany(brands, {\n ...state,\n loaded: true\n });\n }),\n on(BrandActions.upsertBrandsSettings, (state, { settings }) => {\n return {\n ...state,\n settings: settings\n };\n }),\n on(BrandActions.clearBrandModels, (state, {}) => {\n return adapter.removeAll({\n ...state,\n selectedAccountId: null,\n loaded: false,\n savingIncluded: false,\n savingExcluded: false,\n error: false,\n settings: Object.create(null)\n });\n }),\n on(BrandActions.addBrandModel, (state, { brand }) => {\n return {\n ...state,\n savingIncluded: brand.enabled,\n savingExcluded: !brand.enabled\n };\n }),\n on(BrandActions.discardBrandSaving, (state, { brand }) => {\n return {\n ...state,\n savingIncluded: brand.enabled ? false : state.savingIncluded,\n savingExcluded: !brand.enabled ? false : state.savingExcluded\n };\n }),\n on(BrandActions.deleteBrandModel, (state, { brand }) => {\n return adapter.removeOne(brand.id, state);\n }),\n on(BrandActions.failLoadBrandModels, state => {\n return {\n ...state,\n error: true\n };\n })\n);\n\nexport function reducer(state: IState | undefined, action: Action) {\n return brandModelReducer(state, action);\n}\n\nexport const getSelectedAccountId = (state: IState) => state.selectedAccountId;\n\n// get the selectors\nconst { selectIds, selectEntities, selectAll, selectTotal } = adapter.getSelectors();\n\n// select the array of user ids\nexport const selectAccountIds = selectIds;\n\n// select the dictionary of user entities\nexport const selectUserEntities = selectEntities;\n\n// select the array of users\nexport const selectAllAccounts = selectAll;\n\n// select the total user count\nexport const selectUserTotal = selectTotal;\n","import { createEntityAdapter, EntityAdapter, EntityState } from '@ngrx/entity';\nimport { Action, createReducer, on } from '@ngrx/store';\n\nimport * as actions from '../actions/edge-supported-languages.actions';\nimport * as edgeExtensionsActions from '../../core/actions/edge-extensions.actions';\n\nexport interface IState extends EntityState {\n // additional entities state properties\n loaded: boolean;\n error: boolean;\n}\n\nexport function selectLanguageId(language: Microsoft.VideoIndexer.Contracts.SupportedLanguageContract): Microsoft.VideoIndexer.Contracts.LanguageV2 {\n return language?.languageCode;\n}\n\nexport const adapter: EntityAdapter =\n createEntityAdapter({\n selectId: selectLanguageId\n });\n\nexport const initialState: IState = adapter.getInitialState({\n loaded: false,\n error: false\n});\n\nconst edgeSupportedLanguagesIdsReducer = createReducer(\n initialState,\n on(actions.edgeUpsertSupportedLanguages, (state, { supportedLanguages }) => {\n return adapter.upsertMany(supportedLanguages, {\n ...state,\n loaded: true,\n error: false\n });\n }),\n on(actions.edgeLoadSupportedLanguageFailed, state => {\n return {\n ...state,\n error: true\n };\n }),\n on(edgeExtensionsActions.handshakeEdgeExtension, state => {\n return adapter.removeAll({\n ...state,\n loaded: false,\n error: false\n });\n })\n);\n\nexport function reducer(state: IState | undefined, action: Action) {\n return edgeSupportedLanguagesIdsReducer(state, action);\n}\n","import { ActionReducerMap, createFeatureSelector } from '@ngrx/store';\n\nimport * as fromBrandModels from './brands-model.reducer';\nimport * as fromLanguageId from './language-id.reducer';\nimport * as fromLanguageModels from './language-model.reducer';\nimport * as fromPersonModels from './person-model.reducer';\nimport * as fromUnknownPersons from './people/unknown-persons.reducer';\nimport * as fromPeoplePage from './people/people-page.reducer';\nimport * as fromSpeech from './speech/speech.reducer';\nimport * as fromSupportedLanguagesIds from './supported-languages-ids.reducer';\nimport * as fromSupportedLanguages from './supported-languages.reducer';\nimport * as fromEdgeSupportedLanguages from './edge-supported-languages.reducer';\nimport * as fromLogoGroups from './logo-groups.reducer';\n\nexport interface IState {\n languageModels: fromLanguageModels.IState;\n supportedLanguages: fromSupportedLanguages.IState;\n personModels: fromPersonModels.IState;\n brandModels: fromBrandModels.IState;\n logoGroups: fromLogoGroups.IState;\n speech: fromSpeech.IState;\n languageId: fromLanguageId.IState;\n supportedLanguagesIds: fromSupportedLanguagesIds.IState;\n edgeSupportedLanguages: fromEdgeSupportedLanguages.IState;\n unknownPersons: fromUnknownPersons.IState;\n peoplePage: fromPeoplePage.IState;\n}\n\nexport const reducers: ActionReducerMap = {\n languageModels: fromLanguageModels.reducer,\n supportedLanguages: fromSupportedLanguages.reducer,\n personModels: fromPersonModels.reducer,\n unknownPersons: fromUnknownPersons.reducer,\n peoplePage: fromPeoplePage.reducer,\n brandModels: fromBrandModels.reducer,\n logoGroups: fromLogoGroups.reducer,\n speech: fromSpeech.reducer,\n languageId: fromLanguageId.reducer,\n supportedLanguagesIds: fromSupportedLanguagesIds.reducer,\n edgeSupportedLanguages: fromEdgeSupportedLanguages.reducer\n};\n\nexport const selectCoreState = createFeatureSelector('customizationData');\n","import { createEntityAdapter, EntityAdapter, EntityState } from '@ngrx/entity';\nimport { Action, createReducer, on } from '@ngrx/store';\n\nimport * as LanguageIDActions from '../actions/language-id.actions';\n\nexport interface IState extends EntityState {\n // additional entities state properties\n loaded: boolean;\n error: boolean;\n defaultLanguages: Microsoft.VideoIndexer.Contracts.SupportedLanguageContract[];\n}\n\nexport function selectLanguageId(l: Microsoft.VideoIndexer.Contracts.SupportedLanguageContract): Microsoft.VideoIndexer.Contracts.LanguageV2 {\n return l?.languageCode;\n}\n\nexport const adapter: EntityAdapter =\n createEntityAdapter({\n selectId: selectLanguageId\n });\n\nexport const initialState: IState = adapter.getInitialState({\n loaded: false,\n error: false,\n defaultLanguages: []\n});\n\nconst languagesIdReducer = createReducer(\n initialState,\n on(LanguageIDActions.setSelectedLanguages, (state, { selectedLanguages }) => {\n return adapter.setAll(selectedLanguages, {\n ...state,\n loaded: true\n });\n }),\n on(LanguageIDActions.upsertDefaultLanguages, (state, { defaultLanguages }) => {\n return {\n ...state,\n defaultLanguages: defaultLanguages\n };\n }),\n on(LanguageIDActions.clearLanguageIdDatasets, state => {\n return adapter.removeAll({\n ...state,\n loaded: false,\n error: false\n });\n }),\n on(LanguageIDActions.deleteSelectedLanguage, (state, { languageCode }) => {\n return adapter.removeOne(languageCode, state);\n }),\n on(LanguageIDActions.addSelectedLanguage, (state, { selectedLanguage }) => {\n return adapter.addOne(selectedLanguage, { ...state });\n })\n);\n\nexport function reducer(state: IState | undefined, action: Action) {\n return languagesIdReducer(state, action);\n}\n","import { EntityState, EntityAdapter, createEntityAdapter } from '@ngrx/entity';\nimport { createReducer, Action, on } from '@ngrx/store';\n\nimport { IExpandedListItem } from '@common/modules/shared/components/expanded-item/interfaces';\nimport { guid } from '@common/modules/utils/string';\n\nimport * as LanguageActions from '../actions/language-model.actions';\nimport { IUploadTrainingDataFile, ICreateListItem, IUILanguageModel } from '../../customization/components/language/model-file/interfaces';\n\nimport TrainingDataFile = Microsoft.VideoIndexer.Contracts.TrainingDataFile;\nexport interface ILanguageModelContract extends IUILanguageModel, IExpandedListItem, ICreateListItem {}\n\nexport interface IState extends EntityState {\n // additional entities state properties\n selectedAccountId: string;\n loaded: boolean;\n error: boolean;\n}\n\nexport function selectModelId(a: ILanguageModelContract): string {\n return a.id;\n}\n\nexport const adapter: EntityAdapter = createEntityAdapter({\n selectId: selectModelId\n});\n\nexport const initialState: IState = adapter.getInitialState({\n // additional entity state properties\n selectedAccountId: null,\n loaded: false,\n error: false\n});\n\nconst languageModelReducer = createReducer(\n initialState,\n on(LanguageActions.upsertLanguageModel, (state, { model }) => {\n return adapter.upsertOne(\n {\n ...model,\n isCreating: false,\n isExpanded: state.entities[model.id] ? state.entities[model.id].isExpanded : true,\n editMode: false,\n uploadingFiles: state.entities[model.id] ? state.entities[model.id].uploadingFiles : []\n },\n {\n ...state\n }\n );\n }),\n on(LanguageActions.upsertLanguageModels, (state, { models }) => {\n return adapter.upsertMany(\n models.map(model => ({\n ...model,\n isCreating: false,\n isExpanded: state.entities[model.id] ? state.entities[model.id].isExpanded : true,\n editMode: false,\n uploadingFiles: state.entities[model.id] ? state.entities[model.id].uploadingFiles : []\n })),\n {\n ...state,\n loaded: true,\n error: false\n }\n );\n }),\n on(LanguageActions.addLanguageModel, (state, { model }) => {\n return {\n ...state\n };\n }),\n on(LanguageActions.clearLanguageModels, (state, {}) => {\n return adapter.removeAll({\n ...state,\n selectedAccountId: null,\n loaded: false,\n error: false\n });\n }),\n on(LanguageActions.deleteLanguageModel, (state, { model }) => {\n return adapter.removeOne(model.id, state);\n }),\n on(LanguageActions.uploadLanguageModelFile, (state, { modelId }) => {\n return adapter.updateOne({ id: modelId, changes: { isCreating: true } }, state);\n }),\n on(LanguageActions.cancelLanguageModelFile, (state, { modelId }) => {\n return adapter.updateOne({ id: modelId, changes: { isCreating: false } }, state);\n }),\n on(LanguageActions.updateLanguageModelFileContent, (state, { file, modelId }) => {\n let files = state.entities[modelId].files;\n const index = files.findIndex(f => f.id === file.id);\n files = files.filter(f => f.id !== file.id);\n files.splice(index, 0, file);\n return adapter.updateOne({ id: modelId, changes: { files: files } }, state);\n }),\n on(LanguageActions.updateLanguageModelCrisEditsContent, (state, { crisEdits, modelId }) => {\n let files = state.entities[modelId].files;\n files = files.filter(f => f.id !== `cris-edits-id-${modelId}`);\n const file: TrainingDataFile = {\n id: `cris-edits-id-${modelId}`,\n name: 'From transcript edits',\n fileName: 'From transcript edits',\n hasCrisEdits: true,\n modelId: modelId,\n crisEdits: crisEdits,\n enable: false,\n creator: '',\n creationTime: '',\n modelType: null,\n description: '',\n lastUpdateTime: '',\n active: false,\n fileContent: '',\n groupId: null\n };\n files.splice(0, 0, file);\n return adapter.updateOne({ id: modelId, changes: { files: files } }, state);\n }),\n on(LanguageActions.updateLanguageModel, (state, { model, modelId, oldModel }) => {\n return adapter.updateOne({ id: modelId, changes: { isCreating: true, name: model.modelName } }, state);\n }),\n on(LanguageActions.trainModel, (state, { model }) => {\n return adapter.updateOne({ id: model.id, changes: { state: 'Waiting' } }, state);\n }),\n on(LanguageActions.toggleLanguageModels, (state, { modelId }) => {\n return adapter.updateOne({ id: modelId, changes: { isExpanded: !state.entities[modelId]?.isExpanded } }, state);\n }),\n on(LanguageActions.deleteLanguageModelFile, (state, { fileId, modelId }) => {\n const lm = state.entities[modelId];\n const newFiles = lm?.files?.filter(file => file.id !== fileId);\n // after deleting a file we reset the languageModelId as it isn't trained anymore\n return adapter.updateOne({ id: modelId, changes: { files: newFiles, languageModelId: guid(0), state: 'None' } }, state);\n }),\n on(LanguageActions.failLoadLanguageModels, state => {\n return {\n ...state,\n error: true\n };\n }),\n on(LanguageActions.updateUploadProgress, (state, { file: uploadFile, modelId }) => {\n const lm = state.entities[modelId];\n const fileIndex = lm?.uploadingFiles?.findIndex(file => file.id === uploadFile.id);\n let uploadingFiles: IUploadTrainingDataFile[] = [];\n if (fileIndex === -1) {\n uploadingFiles.push(uploadFile);\n } else {\n uploadingFiles = [...lm.uploadingFiles];\n uploadingFiles[fileIndex] = { ...uploadFile };\n }\n return adapter.updateOne({ id: modelId, changes: { uploadingFiles: uploadingFiles } }, state);\n }),\n on(LanguageActions.removeUpdatingFile, (state, { modelId, id }) => {\n const lm = state.entities[modelId];\n const newUploadingFiles = lm?.uploadingFiles?.filter(file => file.id !== id);\n return adapter.updateOne({ id: modelId, changes: { uploadingFiles: newUploadingFiles } }, state);\n })\n);\n\nexport function reducer(state: IState | undefined, action: Action) {\n return languageModelReducer(state, action);\n}\n\nexport const getSelectedAccountId = (state: IState) => state.selectedAccountId;\n\n// get the selectors\nconst { selectIds, selectEntities, selectAll, selectTotal } = adapter.getSelectors();\n\n// select the array of user ids\nexport const selectLanguageIds = selectIds;\n\n// select the dictionary of user entities\nexport const selectUserEntities = selectEntities;\n\n// select the array of users\nexport const selectAllLanguages = selectAll;\n\n// select the total user count\nexport const selectUserTotal = selectTotal;\n","import { EntityAdapter, EntityState, createEntityAdapter } from '@ngrx/entity';\nimport { Action, createReducer, on } from '@ngrx/store';\n\nimport * as LogoActions from '../actions/logo-groups.actions';\n\nimport LogoGroup = Microsoft.VideoIndexer.Contracts.Customization.LogoGroupContract;\n\nexport interface IState extends EntityState {\n // additional entities state properties\n selectedAccountId: string;\n loaded: boolean;\n loading: boolean;\n error: boolean;\n}\n\nexport function selectAccountId(a: LogoGroup): string {\n return a.id;\n}\n\nexport const adapter: EntityAdapter = createEntityAdapter({\n selectId: selectAccountId\n});\n\nexport const initialState: IState = adapter.getInitialState({\n // additional entity state properties\n selectedAccountId: null,\n loaded: false,\n loading: false,\n error: false\n});\n\nconst logoGroupsReducer = createReducer(\n initialState,\n on(LogoActions.loadLogoGroupsSuccess, (state, { groups }) => {\n return adapter.upsertMany(groups, {\n ...state,\n loaded: true,\n loading: false\n });\n }),\n on(LogoActions.loadLogoGroupsInProgress, state => {\n return {\n ...state,\n loading: true\n };\n }),\n on(LogoActions.clearLogoGroups, (state, {}) => {\n return adapter.removeAll({\n ...state,\n selectedAccountId: null,\n loaded: false,\n loading: false,\n error: false\n });\n }),\n on(LogoActions.loadLogoGroupFailed, state => {\n return {\n ...state,\n error: true,\n loading: false\n };\n })\n);\n\nexport function reducer(state: IState | undefined, action: Action) {\n return logoGroupsReducer(state, action);\n}\n","import { Action, createReducer, on } from '@ngrx/store';\n\nimport * as PeoplePageActions from '../../actions/people/people-page.actions';\nimport { PeopleTab } from '../../../customization/components/customization-people-container/interfaces';\n\nexport interface IState {\n selectedTab: PeopleTab;\n}\n\nexport const peoplePageInitialState: IState = {\n selectedTab: PeopleTab.PEOPLE\n};\n\nconst peoplePageReducer = createReducer(\n peoplePageInitialState,\n on(PeoplePageActions.initSelectedPeopleTab, (state, { tab }) => {\n return {\n ...state,\n selectedTab: tab\n };\n }),\n on(PeoplePageActions.selectPeopleTab, (state, { tab }) => {\n return {\n ...state,\n selectedTab: tab\n };\n })\n);\n\nexport function reducer(state: IState | undefined, action: Action) {\n return peoplePageReducer(state, action);\n}\n","import { createEntityAdapter, EntityState } from '@ngrx/entity';\nimport { Action, createReducer, on } from '@ngrx/store';\n\nimport * as actions from '../../actions/people/unknown-person.actions';\n\nimport UnknownPersonsJob = Microsoft.VideoIndexer.Contracts.UnknownPersonsJob;\nimport UnknownPerson = Microsoft.VideoIndexer.Contracts.UnknownPerson;\nimport UnknownPersonDetails = Microsoft.VideoIndexer.Contracts.UnknownPersonDetails;\n\nexport enum UnknownPersonTableListError {\n LOAD_MORE_ERROR = 'LOAD_MORE_ERROR',\n SEARCH_ERROR = 'SEARCH_ERROR',\n GET_LIST_ERROR = 'GET_LIST_ERROR'\n}\nexport interface IState extends EntityState {\n page: number;\n pageSize: number;\n isLastPage: boolean;\n loaded: boolean;\n jobDataLoaded: boolean;\n tableLoaded: boolean;\n tableListError: UnknownPersonTableListError;\n searching: boolean;\n updating: boolean;\n error: boolean;\n job: UnknownPersonsJob;\n selectedUnknownPerson: UnknownPersonDetails;\n}\n\nfunction selectUnknownPersonId(a: UnknownPerson): string {\n return a.id;\n}\n\nconst adapter = createEntityAdapter({\n selectId: selectUnknownPersonId\n});\n\nexport const initialState: IState = adapter.getInitialState({\n page: 0,\n pageSize: 25,\n isLastPage: true,\n loaded: false,\n jobDataLoaded: false,\n tableLoaded: false,\n tableListError: null,\n searching: false,\n updating: false,\n error: false,\n job: null,\n selectedUnknownPerson: null\n});\n\nconst unknownPersonsReducer = createReducer(\n initialState,\n\n on(actions.clearUnknownPersons, (_, {}) => {\n return adapter.removeAll({\n ...initialState\n });\n }),\n\n on(actions.submitUnknownPersonsJobSucceeded, (state, { job }) => {\n return {\n ...state,\n job,\n jobDataLoaded: true,\n searching: false\n };\n }),\n\n on(actions.submitUnknownPersonsJobFailed, (state, { error, job }) => {\n return {\n ...state,\n jobDataLoaded: true,\n searching: false\n };\n }),\n\n on(actions.getUnknownPersonsJobSucceeded, (state, { job }) => {\n return {\n ...state,\n job,\n jobDataLoaded: true,\n searching: false\n };\n }),\n\n on(actions.getUnknownPersonsJobFailed, (state, { error }) => {\n return {\n ...state,\n jobDataLoaded: true,\n searching: false\n };\n }),\n\n on(actions.getUnknownPersonSucceeded, (state, { unknownPerson }) => {\n return adapter.updateOne({ id: unknownPerson.id, changes: unknownPerson }, state);\n }),\n\n on(actions.listUnknownPersonsSucceeded, (state, { unknownPersons }) => {\n const newState = {\n ...state,\n page: unknownPersons.results?.length ? state.page + 1 : state.page,\n isLastPage: unknownPersons.nextPage?.done,\n loaded: true,\n tableLoaded: true,\n tableListError: null\n };\n return adapter.addMany(unknownPersons.results, newState);\n }),\n\n on(actions.listUnknownPersonsFailed, (state, { error }) => {\n const newState = { ...state, loaded: true, tableLoaded: true };\n if (state.page > 0) {\n return {\n ...newState,\n tableListError: UnknownPersonTableListError.LOAD_MORE_ERROR\n };\n }\n // Stimulate empty list\n return adapter.removeAll({\n ...newState,\n isLastPage: true,\n tableListError: state.searching ? UnknownPersonTableListError.SEARCH_ERROR : UnknownPersonTableListError.GET_LIST_ERROR\n });\n }),\n\n on(actions.selectUnknownPerson, (state, { unknownPerson }) => {\n return {\n ...state,\n selectedUnknownPerson: unknownPerson\n };\n }),\n\n on(actions.updateUnknownPersonSucceeded, (state, { unknownPerson }) => {\n return adapter.updateOne({ id: unknownPerson.id, changes: unknownPerson }, { ...state, updating: false });\n }),\n\n on(actions.deleteUnknownPersonSucceeded, (state, { id }) => {\n return adapter.removeOne(id, state);\n }),\n\n on(actions.moveUnknownPersonToModel, (state, {}) => {\n return {\n ...state,\n updating: true\n };\n }),\n\n on(actions.moveUnknownPersonToModelSucceeded, (state, { unknownPerson }) => {\n return {\n ...state,\n updating: false\n };\n }),\n\n on(actions.moveUnknownPersonToModelFailed, (state, {}) => {\n return {\n ...state,\n updating: false\n };\n }),\n on(actions.searchUnknownPersons, (state, {}) => {\n return adapter.removeAll({\n ...initialState,\n loaded: state.loaded,\n jobDataLoaded: state.jobDataLoaded,\n tableLoaded: false,\n searching: true\n });\n }),\n\n on(actions.clearTableListError, state => {\n return {\n ...state,\n tableListError: null\n };\n })\n);\n\nexport function reducer(state: IState | undefined, action: Action) {\n return unknownPersonsReducer(state, action);\n}\n","import { EntityState, EntityAdapter, createEntityAdapter } from '@ngrx/entity';\nimport { createReducer, Action, on } from '@ngrx/store';\n\nimport * as PersonActions from '../actions/person-model.actions';\n\nimport PersonModel = Microsoft.VideoIndexer.Contracts.PersonModel;\n\nexport interface IState extends EntityState {\n // additional entities state properties\n selectedAccountId: string;\n loaded: boolean;\n loading: boolean;\n creatingModel: boolean;\n error: boolean;\n}\n\nexport function selectAccountId(a: PersonModel): string {\n return a.id;\n}\n\nexport const adapter: EntityAdapter = createEntityAdapter({\n selectId: selectAccountId\n});\n\nexport const initialState: IState = adapter.getInitialState({\n // additional entity state properties\n selectedAccountId: null,\n loaded: false,\n loading: false,\n creatingModel: false,\n error: false\n});\n\nconst personModelReducer = createReducer(\n initialState,\n on(PersonActions.upsertPersonModel, (state, { model }) => {\n return adapter.upsertOne(model, state);\n }),\n on(PersonActions.upsertPersonModels, (state, { models }) => {\n return adapter.upsertMany(models, {\n ...state,\n loaded: true,\n loading: false\n });\n }),\n on(PersonActions.clearPersonModels, (state, {}) => {\n return adapter.removeAll({\n ...state,\n selectedAccountId: null,\n loaded: false,\n loading: false,\n creatingModel: false,\n error: false\n });\n }),\n on(PersonActions.failLoadPersonModels, state => {\n return {\n ...state,\n error: true,\n loading: false,\n loaded: true\n };\n }),\n on(PersonActions.loadPersonModelsInProgress, state => {\n return {\n ...state,\n loading: true\n };\n }),\n on(PersonActions.deletePersonModel, (state, { model }) => {\n return adapter.removeOne(model.id, state);\n })\n);\n\nexport function reducer(state: IState | undefined, action: Action) {\n return personModelReducer(state, action);\n}\n\nexport const getSelectedAccountId = (state: IState) => state.selectedAccountId;\n\n// get the selectors\nconst { selectIds, selectEntities, selectAll, selectTotal } = adapter.getSelectors();\n\n// select the array of user ids\nexport const selectAccountIds = selectIds;\n\n// select the dictionary of user entities\nexport const selectUserEntities = selectEntities;\n\n// select the array of users\nexport const selectAllAccounts = selectAll;\n\n// select the total user count\nexport const selectUserTotal = selectTotal;\n","import { UISpeechObjectState } from '../../interfaces';\n\nimport SpeechDataset = Microsoft.VideoIndexer.Contracts.SpeechDataset;\nimport SpeechModel = Microsoft.VideoIndexer.Contracts.CustomSpeechModel;\n\nexport interface ISpeechDatasetDetails extends Omit {\n report?: ISpeechDatasetReport;\n normalizedText?: string;\n languageData?: string;\n filesLoaded?: boolean;\n filesError?: boolean;\n status: UISpeechObjectState;\n disabled?: boolean;\n disabledReason?: DatasetDisabledReason;\n selected?: boolean;\n}\n\nexport interface ISpeechDatasetReport {\n acceptedLineCount: number;\n rejectedLineCount: number;\n details: ISpeechDatasetReportDetails[];\n}\n\nexport interface ISpeechDatasetReportDetails {\n filename: string;\n inputText: string;\n message: string;\n status: string;\n}\n\nexport enum DatasetDisabledReason {\n PronunciationAlreadySelected = 'PronunciationAlreadySelected',\n NotInSelectedLanguage = 'NotInSelectedLanguage'\n}\n\nexport interface ISpeechModel extends SpeechModel {}\n\nexport interface SelectedDatasets {\n pronunciationId: string;\n languageIds: string[];\n locale: string;\n}\n\nexport interface SpeechErrorTexts {\n title: string;\n content: string;\n}\n","import { createEntityAdapter, Dictionary, EntityState } from '@ngrx/entity';\nimport { Action, createReducer, on } from '@ngrx/store';\n\nimport { map, cloneDeep } from 'lodash-es';\n\nimport { SpeechDatasetKind, SpeechObjectState } from '../../interfaces';\nimport { DatasetDisabledReason, ISpeechDatasetDetails, ISpeechDatasetReport, SelectedDatasets } from './interfaces';\nimport * as SpeechDatasetsActions from '../../actions/speech/speech-datasets.actions';\n\nexport interface SpeechDatasetState extends EntityState {\n // additional entities state properties\n loaded: boolean;\n updating: boolean;\n error: boolean;\n selectedDatasets: SelectedDatasets;\n}\n\nfunction selectDatasetId(a: ISpeechDatasetDetails): string {\n return a.id;\n}\n\nconst adapter = createEntityAdapter({\n selectId: selectDatasetId\n});\n\nexport const datasetInitialState: SpeechDatasetState = adapter.getInitialState({\n loaded: false,\n updating: false,\n error: false,\n selectedDatasets: {\n pronunciationId: '',\n languageIds: [],\n locale: ''\n }\n});\n\nconst speechDatasetReducer = createReducer(\n datasetInitialState,\n on(SpeechDatasetsActions.loadSpeechDatasetsSucceeded, (state, { datasets }) => {\n const mappedDatasets: ISpeechDatasetDetails[] = map(datasets, dataset => {\n if (!isDatasetDone(dataset)) {\n return {\n ...dataset,\n disabled: true\n };\n }\n return dataset;\n });\n return adapter.upsertMany(mappedDatasets, { ...state, loaded: true });\n }),\n on(SpeechDatasetsActions.loadSpeechDatasetFilesSucceeded, (state, { datasetId, files }) => {\n return adapter.updateOne(\n {\n id: datasetId,\n changes: {\n languageData: files.find(file => file.name.includes('languagedata'))?.content as string,\n report: files.find(file => file.name.includes('report'))?.content as ISpeechDatasetReport,\n normalizedText: files.find(file => file.name.includes('normalized'))?.content as string,\n filesLoaded: true\n }\n },\n state\n );\n }),\n on(SpeechDatasetsActions.loadSpeechDatasetsFailed, state => {\n return {\n ...state,\n error: true,\n loaded: true\n };\n }),\n on(SpeechDatasetsActions.loadSpeechDatasetFilesFailed, (state, { datasetId }) => {\n return adapter.updateOne(\n {\n id: datasetId,\n changes: {\n filesLoaded: true,\n filesError: true\n }\n },\n state\n );\n }),\n on(SpeechDatasetsActions.clearSpeechDatasets, state => {\n return adapter.removeAll({\n ...state,\n loaded: false,\n error: false\n });\n }),\n on(SpeechDatasetsActions.updateSpeechDatasetStarted, state => {\n return {\n ...state,\n updating: true\n };\n }),\n on(SpeechDatasetsActions.updateSpeechDatasetSucceed, (state, { dataset }) => {\n return adapter.updateOne({ id: dataset.id, changes: dataset }, { ...state, updating: false });\n }),\n on(SpeechDatasetsActions.getDatasetStatusSucceeded, (state, { dataset }) => {\n let datasetDetails = { ...dataset } as ISpeechDatasetDetails;\n if (isDatasetDone(datasetDetails)) {\n datasetDetails.disabled = false;\n // when there are selected dataset, its properties can be updated according to the selected datasets\n if (state.selectedDatasets.locale) {\n datasetDetails = getDatasetOnSelect(datasetDetails, state.selectedDatasets);\n }\n }\n return adapter.updateOne({ id: dataset.id, changes: datasetDetails }, state);\n }),\n on(SpeechDatasetsActions.updateSpeechDatasetFailed, state => {\n return {\n ...state,\n updating: false\n };\n }),\n on(SpeechDatasetsActions.deleteSpeechDatasetStarted, state => {\n return {\n ...state,\n updating: true\n };\n }),\n on(SpeechDatasetsActions.deleteSpeechDatasetSucceed, (state, { datasetId }) => {\n if (!state.entities[datasetId]?.selected) {\n return state;\n }\n return getStateOnToggleDataset(state, datasetId);\n }),\n on(SpeechDatasetsActions.deleteSpeechDatasetSucceed, (state, { datasetId }) => {\n return adapter.removeOne(datasetId, { ...state, updating: false });\n }),\n on(SpeechDatasetsActions.deleteSpeechDatasetFailed, state => {\n return {\n ...state,\n updating: false\n };\n }),\n on(SpeechDatasetsActions.addUploadingDataset, (state, { dataset }) => {\n return adapter.addOne(dataset, state);\n }),\n on(SpeechDatasetsActions.uploadDatasetToBlobFailed, (state, { datasetId }) => {\n return adapter.removeOne(datasetId, state);\n }),\n on(SpeechDatasetsActions.getDatasetSasURLFailed, (state, { datasetId }) => {\n return adapter.removeOne(datasetId, state);\n }),\n on(SpeechDatasetsActions.removeSpeechDataset, (state, { datasetId }) => {\n return adapter.removeOne(datasetId, state);\n }),\n on(SpeechDatasetsActions.createDatasetSucceeded, (state, { datasetDetails }) => {\n let dataset = datasetDetails as ISpeechDatasetDetails;\n if (!isDatasetDone(dataset)) {\n dataset = {\n ...dataset,\n disabled: true\n };\n }\n return adapter.addOne(dataset, state);\n }),\n on(SpeechDatasetsActions.createDatasetFailed, (state, { datasetId }) => {\n return adapter.removeOne(datasetId, state);\n }),\n on(SpeechDatasetsActions.toggleSpeechDatasetSelection, (state, { datasetId }) => {\n return getStateOnToggleDataset(state, datasetId);\n }),\n on(SpeechDatasetsActions.clearSpeechDatasetSelection, state => {\n const clearSelectionsDatasets: ISpeechDatasetDetails[] = map(state.entities, dataset => {\n if (isDatasetDone(dataset)) {\n return {\n ...dataset,\n disabled: false,\n disabledReason: '',\n selected: false\n };\n }\n return dataset;\n });\n return adapter.upsertMany(clearSelectionsDatasets, {\n ...state,\n selectedDatasets: {\n pronunciationId: '',\n languageIds: [],\n locale: ''\n }\n });\n })\n);\n\nexport function reducer(state: SpeechDatasetState | undefined, action: Action) {\n return speechDatasetReducer(state, action);\n}\n\nfunction getStateOnToggleDataset(state: SpeechDatasetState, datasetId: string) {\n const clickedDataset: ISpeechDatasetDetails = { ...state.entities[datasetId] };\n clickedDataset.selected = !clickedDataset.selected;\n if (clickedDataset.selected && clickedDataset.disabled) {\n return state;\n }\n\n const selectedDatasets = getSelectedDatasetsOnSelect(clickedDataset, state.selectedDatasets);\n const updatedDatasets = changeDatasetsPropertiesOnSelect(state.entities, selectedDatasets, clickedDataset);\n\n return adapter.upsertMany(updatedDatasets, {\n ...state,\n selectedDatasets: selectedDatasets\n });\n}\n\nfunction getSelectedDatasetsOnSelect(clickedDataset: ISpeechDatasetDetails, selectedDatasets: SelectedDatasets): SelectedDatasets {\n let selectedPronunciationId = selectedDatasets.pronunciationId;\n let selectedLanguageIds = cloneDeep(selectedDatasets.languageIds);\n let selectedLocale = selectedDatasets.locale;\n\n // if dataset is selected add it in selectedDatasets state.\n if (clickedDataset.selected) {\n if (clickedDataset.kind === SpeechDatasetKind.LANGUAGE) {\n selectedLanguageIds.push(clickedDataset.id);\n } else if (clickedDataset.kind === SpeechDatasetKind.PRONUNCIATION) {\n selectedPronunciationId = clickedDataset.id;\n }\n selectedLocale = clickedDataset.locale;\n // if dataset is selected remove it in selectedDatasets state.\n } else if (!clickedDataset.selected) {\n if (clickedDataset.kind === SpeechDatasetKind.LANGUAGE) {\n selectedLanguageIds = selectedLanguageIds.filter(id => id !== clickedDataset.id);\n } else if (clickedDataset.kind === SpeechDatasetKind.PRONUNCIATION) {\n selectedPronunciationId = '';\n }\n selectedLocale = selectedLanguageIds.length > 0 || !!selectedPronunciationId ? selectedLocale : '';\n }\n\n return {\n pronunciationId: selectedPronunciationId,\n languageIds: selectedLanguageIds,\n locale: selectedLocale\n };\n}\n\nfunction changeDatasetsPropertiesOnSelect(\n datasetEntities: Dictionary,\n selectedDatasets: SelectedDatasets,\n clickedDataset?: ISpeechDatasetDetails\n) {\n const datasets: ISpeechDatasetDetails[] = map(datasetEntities, entity => ({ ...entity }));\n\n for (let dataset of datasets) {\n if (clickedDataset && dataset.id === clickedDataset.id) {\n dataset.selected = clickedDataset.selected;\n } else {\n dataset = getDatasetOnSelect(dataset, selectedDatasets);\n }\n }\n\n return datasets;\n}\n\nfunction getDatasetOnSelect(dataset: ISpeechDatasetDetails, selectedDatasets: SelectedDatasets) {\n const hasSelectedDataset = selectedDatasets.languageIds.length > 0 || !!selectedDatasets.pronunciationId;\n // all failed datasets should be disabled when there is selected dataset\n if (dataset.status === SpeechObjectState.FAILED) {\n dataset.disabled = hasSelectedDataset;\n dataset.disabledReason = undefined;\n } else {\n // disable other datasets in different locales\n const isLanguageDisabled = selectedDatasets.locale && dataset.locale !== selectedDatasets.locale;\n // disable other pronunciation when there is already selected one.\n const isPronunciationDisabled =\n !!selectedDatasets.pronunciationId && selectedDatasets.pronunciationId !== dataset.id && dataset.kind === SpeechDatasetKind.PRONUNCIATION;\n const isDatasetInProcess = !isDatasetDone(dataset);\n dataset.disabled = isLanguageDisabled || isPronunciationDisabled || isDatasetInProcess;\n dataset.disabledReason = isLanguageDisabled\n ? DatasetDisabledReason.NotInSelectedLanguage\n : isPronunciationDisabled\n ? DatasetDisabledReason.PronunciationAlreadySelected\n : undefined;\n }\n return dataset;\n}\n\nfunction isDatasetDone(dataset: ISpeechDatasetDetails) {\n return dataset.status === SpeechObjectState.COMPLETE || dataset.status === SpeechObjectState.FAILED;\n}\n","import { createEntityAdapter, EntityState } from '@ngrx/entity';\nimport { Action, createReducer, on } from '@ngrx/store';\n\nimport * as SpeechModelsActions from '../../actions/speech/speech-models.actions';\n\nimport SpeechModel = Microsoft.VideoIndexer.Contracts.CustomSpeechModel;\n\nexport interface SpeechModelsState extends EntityState {\n // additional entities state properties\n loaded: boolean;\n updating: boolean;\n creating: boolean;\n error: boolean;\n selectedModelId: string;\n isTrainDialogOpened: boolean;\n}\n\nfunction selectModelId(a: SpeechModel): string {\n return a.id;\n}\n\nconst adapter = createEntityAdapter({\n selectId: selectModelId\n});\n\nexport const modelsInitialState: SpeechModelsState = adapter.getInitialState({\n loaded: false,\n updating: false,\n creating: false,\n error: false,\n supportedLocales: [],\n isSupportedLocalesLoaded: false,\n selectedModelId: null,\n isTrainDialogOpened: false\n});\n\nconst speechModelsReducer = createReducer(\n modelsInitialState,\n on(SpeechModelsActions.loadSpeechModelsSucceeded, (state, { models }) => {\n return adapter.upsertMany(models, { ...state, loaded: true, error: false });\n }),\n on(SpeechModelsActions.loadSpeechModelsFailed, state => {\n return {\n ...state,\n error: true,\n loaded: true\n };\n }),\n on(SpeechModelsActions.clearSpeechModels, state => {\n return adapter.removeAll({\n ...state,\n loaded: false,\n error: false\n });\n }),\n on(SpeechModelsActions.createSpeechModelStarted, state => {\n return {\n ...state,\n creating: true\n };\n }),\n on(SpeechModelsActions.removeSpeechModel, (state, { modelId }) => {\n return adapter.removeOne(modelId, state);\n }),\n on(SpeechModelsActions.createSpeechModelSucceed, (state, { model }) => {\n return adapter.addOne(model, { ...state, creating: false });\n }),\n on(SpeechModelsActions.createSpeechModelFailed, (state, { modelId }) => {\n return adapter.removeOne(modelId, {\n ...state,\n creating: false\n });\n }),\n on(SpeechModelsActions.updateSpeechModelStarted, state => {\n return {\n ...state,\n updating: true\n };\n }),\n on(SpeechModelsActions.updateSpeechModelSucceed, (state, { model }) => {\n return adapter.updateOne({ id: model.id, changes: model }, { ...state, updating: false });\n }),\n on(SpeechModelsActions.updateSpeechModelFailed, state => {\n return {\n ...state,\n updating: false\n };\n }),\n on(SpeechModelsActions.deleteSpeechModelSucceed, (state, { modelId }) => {\n return adapter.removeOne(modelId, state);\n }),\n on(SpeechModelsActions.getModelStatusSucceeded, (state, { model }) => {\n return adapter.updateOne({ id: model.id, changes: model }, state);\n }),\n on(SpeechModelsActions.openTrainModelDialog, state => {\n return {\n ...state,\n isTrainDialogOpened: true\n };\n }),\n on(SpeechModelsActions.trainModelDialogClosed, state => {\n return {\n ...state,\n isTrainDialogOpened: false\n };\n })\n);\n\nexport function reducer(state: SpeechModelsState | undefined, action: Action) {\n return speechModelsReducer(state, action);\n}\n","import { Action, createReducer, on } from '@ngrx/store';\n\nimport { SpeechTab } from '../../../customization/components/speech/speech-container/interfaces';\nimport * as SpeechPageActions from '../../actions/speech/speech-page.actions';\nimport { SpeechPermission } from '../../interfaces';\n\nexport interface IState {\n selectedTab: SpeechTab;\n permission: SpeechPermission;\n}\n\nexport const speechPageInitialState: IState = {\n selectedTab: SpeechTab.DATASETS,\n permission: SpeechPermission.UNDEFINED\n};\n\nconst speechPageReducer = createReducer(\n speechPageInitialState,\n on(SpeechPageActions.initSelectedSpeechTab, (state, { tab }) => {\n return {\n ...state,\n selectedTab: tab\n };\n }),\n on(SpeechPageActions.selectSpeechTab, (state, { tab }) => {\n return {\n ...state,\n selectedTab: tab\n };\n }),\n on(SpeechPageActions.initSpeechPagePermission, (state, { permission }) => {\n return {\n ...state,\n permission: permission\n };\n })\n);\n\nexport function reducer(state: IState | undefined, action: Action) {\n return speechPageReducer(state, action);\n}\n","import { combineReducers } from '@ngrx/store';\n\nimport { datasetInitialState, SpeechDatasetState } from './speech-dataset.reducer';\nimport { modelsInitialState, SpeechModelsState } from './speech-model.reducer';\nimport { speechPageInitialState } from './speech-page.reducer';\nimport * as fromSpeechModels from './speech-model.reducer';\nimport * as fromSpeechDataset from './speech-dataset.reducer';\nimport * as fromSpeechPage from './speech-page.reducer';\n\nexport interface IState {\n page: fromSpeechPage.IState;\n datasets: SpeechDatasetState;\n models: SpeechModelsState;\n}\n\nexport const initialState: IState = {\n // additional entity state properties\n page: speechPageInitialState,\n datasets: datasetInitialState,\n models: modelsInitialState\n};\n\nexport const reducer = combineReducers({\n page: fromSpeechPage.reducer,\n models: fromSpeechModels.reducer,\n datasets: fromSpeechDataset.reducer\n});\n","import { createEntityAdapter, EntityAdapter, EntityState } from '@ngrx/entity';\nimport { Action, createReducer, on } from '@ngrx/store';\n\nimport * as LanguageIDActions from '../actions/supported-languages-ids.actions';\n\nexport interface IState extends EntityState {\n // additional entities state properties\n loaded: boolean;\n error: boolean;\n}\n\nexport function selectLanguageId(language: Microsoft.VideoIndexer.Contracts.SupportedLanguageContract): Microsoft.VideoIndexer.Contracts.LanguageV2 {\n return language?.languageCode;\n}\n\nexport const adapter: EntityAdapter =\n createEntityAdapter({\n selectId: selectLanguageId\n });\n\nexport const initialState: IState = adapter.getInitialState({\n loaded: false,\n error: false\n});\n\nconst supportedLanguagesIdsReducer = createReducer(\n initialState,\n on(LanguageIDActions.upsertSupportedLanguages, (state, { supportedLanguages }) => {\n return adapter.upsertMany(supportedLanguages, {\n ...state,\n loaded: true,\n error: false\n });\n }),\n on(LanguageIDActions.loadSupportedLanguageFailed, state => {\n return {\n ...state,\n error: true\n };\n })\n);\n\nexport function reducer(state: IState | undefined, action: Action) {\n return supportedLanguagesIdsReducer(state, action);\n}\n","import { createEntityAdapter, EntityAdapter, EntityState } from '@ngrx/entity';\nimport { Action, createReducer, on } from '@ngrx/store';\n\nimport { IExpandedListItem } from '@common/modules/shared/components/expanded-item/interfaces';\n\nimport { ILanguage } from '../../core/interfaces';\nimport { ICreateListItem } from '../../customization/components/language/model-file/interfaces';\nimport * as SupportedLanguagesActions from '../actions/supported-languages.actions';\n\nexport interface ILanguageListContract extends ILanguage, IExpandedListItem, ICreateListItem {}\n\nexport interface IState extends EntityState {}\n\nexport function selectModelId(a: ILanguageListContract): string {\n return a?.key;\n}\n\nexport const adapter: EntityAdapter = createEntityAdapter({\n selectId: selectModelId\n});\n\nexport const initialState: IState = adapter.getInitialState({});\n\nconst supportedLanguagesReducer = createReducer(\n initialState,\n on(SupportedLanguagesActions.updateSupportedLanguage, (state, { supportedLanguage }) => {\n return adapter.updateOne(supportedLanguage, {\n ...state,\n selectedLanguageKey: supportedLanguage?.id\n });\n }),\n on(SupportedLanguagesActions.upsertSupportedLanguages, (state, { supportedLanguages }) => {\n const supportedLanguagesList = supportedLanguages.map(supportedLanguage => ({\n key: supportedLanguage.key,\n name: supportedLanguage.name,\n rtl: supportedLanguage.rtl,\n sourceLanguage: supportedLanguage.sourceLanguage,\n supportedUserLocale: supportedLanguage.supportedUserLocale,\n supportedCustomization: supportedLanguage.supportedCustomization,\n padding: supportedLanguage.padding,\n editMode: false,\n isExpanded: true,\n isCreating: false\n }));\n return adapter.upsertMany(supportedLanguagesList, {\n ...state\n });\n })\n);\n\nexport function reducer(state: IState | undefined, action: Action) {\n return supportedLanguagesReducer(state, action);\n}\n\n// get the selectors\nconst { selectIds, selectEntities, selectAll, selectTotal } = adapter.getSelectors();\n\n// select the array of user ids\nexport const selectAccountIds = selectIds;\n\n// select the dictionary of user entities\nexport const selectUserEntities = selectEntities;\n\n// select the array of users\nexport const selectAllLanguages = selectAll;\n\n// select the total user count\nexport const selectUserTotal = selectTotal;\n","export const resources = {\n LanguagesLoadingFailErrorMsg: ''\n};\n","import { createSelector } from '@ngrx/store';\n\nimport { map } from 'lodash-es';\n\nimport { selectCoreState } from '../reducers';\n\nexport const getBrandModelsState = createSelector(selectCoreState, state => state.brandModels);\n\nexport const getBrands = createSelector(getBrandModelsState, state => map(state.entities, entity => ({ ...entity })));\n\nexport const getBrandsCount = (enabled: boolean) => createSelector(getBrands, brands => brands.filter(b => b.enabled === enabled).length);\n\nexport const getBrandsByType = (enabled: boolean) => createSelector(getBrands, brands => brands.filter(b => b.enabled === enabled));\n\nexport const getBrandsIsSaving = (enabled: boolean) =>\n createSelector(getBrandModelsState, state => (enabled ? state.savingIncluded : state.savingExcluded));\n\nexport const getBrandsSettings = createSelector(getBrandModelsState, state => state.settings);\n\nexport const getBrandsError = createSelector(getBrandModelsState, state => state.error);\n\nexport const isBrandModelsLoaded = createSelector(getBrandModelsState, state => state.loaded);\n\nexport const isBrandModelsLoading = createSelector(getBrandModelsState, state => !state.loaded);\n\nexport const getBrandModelDuplication = (brand: Microsoft.VideoIndexer.Contracts.BrandContractV2) =>\n createSelector(getBrands, brands => brands.filter(b => b.name === brand.name));\n\nexport const getBrandModelUrlDuplication = (brand: Microsoft.VideoIndexer.Contracts.BrandContractV2) =>\n createSelector(getBrands, brands => brands.filter(b => b.referenceUrl === brand.referenceUrl));\n","import { createSelector } from '@ngrx/store';\n\nimport { selectCoreState } from '../reducers';\n\nexport const selectEdgeSupportedLanguagesState = createSelector(selectCoreState, state => state.edgeSupportedLanguages);\n\nexport const selectEdgeSupportedLanguages = createSelector(selectEdgeSupportedLanguagesState, state => Object.values(state.entities));\n\nexport const selectEdgeSupportedLanguagesError = createSelector(selectEdgeSupportedLanguagesState, state => state.error);\n\nexport const selectEdgeSupportedLanguagesLoaded = createSelector(selectEdgeSupportedLanguagesState, state => state.loaded);\n","export * from './people.selectors';\nexport * from './brand.selectors';\nexport * from './language.selectors';\nexport * from './supported-languages-ids.selectors';\nexport * from './edge-supported-languages.selectors';\nexport * from './speech/speech-models.selectors';\nexport * from './speech/speech-datasets.selectors';\nexport * from './speech/speech-page.selectors';\nexport * from './logo-groups.selectors';\nexport * from './people/people-page.selectors';\nexport * as unknownPerson from './people/unknown-person.selectors';\n","import { createSelector } from '@ngrx/store';\n\nimport { UIActionType } from '@common/modules/insights/interfaces';\nimport { IAction } from '@common/modules/shared/interfaces';\n\nimport { selectCoreState } from '../reducers';\nimport { isSupportedLanguageDisabled } from '../utils';\nimport { selectSupportedLanguagesIds, selectSupportedLanguagesIdsState } from './supported-languages-ids.selectors';\n\nexport const selectLanguageIdState = createSelector(selectCoreState, state => state.languageId);\n\nexport const selectSelectedLanguages = createSelector(selectLanguageIdState, state => Object.values(state.entities));\n\nexport const selectSelectedLanguagesKeys = createSelector(selectLanguageIdState, state => Object.values(state.ids));\n\nexport const selectSelectedLanguagesNames = createSelector(selectSelectedLanguages, entities => Object.values(entities).map(l => l.name));\n\nexport const selectDefaultLanguages = createSelector(selectLanguageIdState, state => Object.values(state.defaultLanguages));\n\nexport const selectDefaultLanguagesNames = createSelector(selectLanguageIdState, state => Object.values(state.defaultLanguages).map(l => l.name));\n\nexport const selectSupportedLanguagesIdsActions = createSelector(\n selectSupportedLanguagesIdsState,\n selectSelectedLanguagesKeys,\n (state, selectedLanguages) => {\n const actions: IAction[] = [];\n Object.values(state.entities)\n .filter(entity => entity.isAutoDetect)\n .forEach(lang => {\n const isDisabled = isSupportedLanguageDisabled(selectedLanguages, lang.languageCode);\n const uiLanguage: IAction = {\n title: lang.name,\n type: UIActionType.CHANGE_LANGUAGE,\n value: lang.languageCode,\n id: lang.name,\n isDisabled: isDisabled,\n selectable: !isDisabled,\n selected: !isDisabled\n };\n actions.push(uiLanguage);\n });\n return actions;\n }\n);\n\nexport const selectSupportedAutoDetectLanguagesIds = createSelector(selectSupportedLanguagesIds, supportedLanguages =>\n supportedLanguages.filter(language => language.isAutoDetect)\n);\n","import { createSelector } from '@ngrx/store';\n\nimport { selectCoreState } from '../reducers';\nimport { LanguageModelState } from '../../customization/interfaces';\n\nexport const getLanguageModelsState = createSelector(selectCoreState, state => state.languageModels);\n\nexport const getSupportedLanguagesState = createSelector(selectCoreState, state => state.supportedLanguages);\n\nexport const isLanguageModelsLoaded = createSelector(getLanguageModelsState, state => state.loaded);\n\nexport const isLanguageModelsLoading = createSelector(getLanguageModelsState, state => !state.loaded);\n\nexport const isLanguageModelsError = createSelector(getLanguageModelsState, state => state?.error);\n\nexport const getLanguageModels = createSelector(getLanguageModelsState, state => Object.values(state.entities));\n\nexport const getTrainedLanguageModels = createSelector(getLanguageModels, languageModels =>\n languageModels.filter(l => l.state === LanguageModelState.Complete)\n);\n\nexport const getLanguageModelByLanguage = (language: string) =>\n createSelector(getLanguageModels, languages => languages.filter(l => l.language === language));\n\nexport const getLanguageModelIsExpanded = (modelId: string) =>\n createSelector(getLanguageModelsState, state => (state.entities[modelId] ? state.entities[modelId].isExpanded : true));\n\nexport const getLanguageModelIsSaving = (modelId: string) =>\n createSelector(getLanguageModelsState, state => (state.entities[modelId] ? state.entities[modelId].isCreating : false));\n\nexport const getLanguageModelIsTraining = (modelId: string) =>\n createSelector(getLanguageModelsState, state =>\n state.entities[modelId]\n ? state.entities[modelId].state === LanguageModelState.Waiting || state.entities[modelId].state === LanguageModelState.Processing\n : false\n );\n\nexport const getLanguageModelsIsTraining = (language: string) =>\n createSelector(\n getLanguageModelByLanguage(language),\n languages => languages.filter(l => l.state === LanguageModelState.Waiting || l.state === LanguageModelState.Processing).length\n );\n\nexport const getTrainedLanguageModelCount = (language: string) =>\n createSelector(getLanguageModelByLanguage(language), languages => languages.filter(l => l.state === LanguageModelState.Complete).length);\n\nexport const getSupportedLanguages = createSelector(getSupportedLanguagesState, state => Object.values(state.entities));\n\nexport const getSupportedLanguage = (key: string) => createSelector(getSupportedLanguagesState, state => state.entities[key]);\n\nexport const getSupportedLanguageIsSaving = (key: string) => createSelector(getSupportedLanguage(key), language => language?.isCreating);\n\nexport const getLanguageModel = (modelId: string) => createSelector(getLanguageModelsState, state => state.entities[modelId]);\n\nexport const getLanguageModelFiles = (modelId: string) => createSelector(getLanguageModel(modelId), language => language?.files || []);\n\nexport const getLanguageModelFile = (modelId: string, fileId: string) =>\n createSelector(getLanguageModelFiles(modelId), files => files.find(f => f.id === fileId));\n\nexport const getLanguageModelUploadingFiles = (modelId: string) =>\n createSelector(getLanguageModel(modelId), language => language?.uploadingFiles || []);\n\nexport const getLanguageModelIsTrained = (modelId: string) =>\n createSelector(getLanguageModel(modelId), language => language?.state === LanguageModelState.Complete);\n","import { createSelector } from '@ngrx/store';\n\nimport { IAction } from '@common/modules/shared/interfaces';\n\nimport { selectCoreState } from '../reducers';\n\nexport const selectLogoGroupsState = createSelector(selectCoreState, state => state.logoGroups);\n\nexport const selectLogoGroups = createSelector(selectLogoGroupsState, state => Object.values(state.entities));\n\nexport const getLogoGroupsActions = createSelector(selectLogoGroups, logoGroups => {\n const actions: IAction[] = [];\n logoGroups.forEach(logoGroup => {\n const logoGroupAction: IAction = {\n title: logoGroup.name,\n value: logoGroup.name,\n id: logoGroup.id\n };\n actions.push(logoGroupAction);\n });\n return actions;\n});\n\nexport const selectLogoGroupError = createSelector(selectLogoGroupsState, state => state.error);\n\nexport const isLogoGroupsLoaded = createSelector(selectLogoGroupsState, state => state.loaded);\n\nexport const isLogoGroupsLoading = createSelector(selectLogoGroupsState, state => state.loading);\n\nexport const getLogoGroupById = (id: string) => createSelector(selectLogoGroupsState, state => state.entities[id]);\n","import { createSelector } from '@ngrx/store';\n\nimport { map } from 'lodash-es';\n\nimport { selectCoreState } from '../reducers';\n\nexport const getPersonModelsState = createSelector(selectCoreState, state => state.personModels);\n\nexport const getPeopleModels = createSelector(getPersonModelsState, state => map(state.entities, entity => ({ ...entity })));\n\nexport const getPeopleError = createSelector(getPersonModelsState, state => state.error);\n\nexport const isPeopleModelsLoaded = createSelector(getPersonModelsState, state => state.loaded);\n\nexport const isPeopleModelsLoading = createSelector(getPersonModelsState, state => state.loading);\n\nexport const getPersonModelById = (id: string) => createSelector(getPersonModelsState, state => state.entities[id]);\n","import { createSelector } from '@ngrx/store';\n\nimport { selectCoreState } from '../../reducers';\n\nexport const getSelectedTab = createSelector(selectCoreState, state => state.peoplePage.selectedTab);\n","import { createSelector } from '@ngrx/store';\n\nimport { selectCoreState } from '../../reducers';\nimport { UnknownPersonTableListError } from '../../reducers/people/unknown-persons.reducer';\n\nexport const getState = createSelector(selectCoreState, state => state.unknownPersons);\nexport const getJob = createSelector(getState, state => state.job);\nexport const getEntities = createSelector(getState, state => state.entities);\nexport const list = createSelector(getEntities, entities => Object.values(entities));\nexport const getSelected = createSelector(getState, state => state.selectedUnknownPerson);\nexport const getById = id => createSelector(getState, state => state.entities[id]);\nexport const getPaginationState = createSelector(getState, state => ({ page: state.page, done: state.isLastPage, pageSize: state.pageSize }));\nexport const getIsUpdating = createSelector(getState, state => state.updating);\nexport const getIsLoaded = createSelector(getState, state => state.loaded);\nexport const getIsJobLoaded = createSelector(getState, state => state.jobDataLoaded);\nexport const getIsTableLoaded = createSelector(getState, state => state.tableLoaded);\nexport const getIsSearching = createSelector(getState, state => state.searching);\nexport const isLoadMoreError = createSelector(getState, state => state.tableListError === UnknownPersonTableListError.LOAD_MORE_ERROR);\nexport const isSearchError = createSelector(getState, state => state.tableListError === UnknownPersonTableListError.SEARCH_ERROR);\nexport const isGetListError = createSelector(getState, state => state.tableListError === UnknownPersonTableListError.GET_LIST_ERROR);\n","import { createSelector } from '@ngrx/store';\n\nimport { findIndex } from 'lodash-es';\n\nimport { getSpeechState } from './speech-models.selectors';\nimport { SpeechDatasetKind, SpeechObjectState } from '../../interfaces';\n\nexport const getSpeechDatasetsState = createSelector(getSpeechState, state => state.datasets);\nexport const getSpeechDatasets = createSelector(getSpeechDatasetsState, state => Object.values(state.entities));\nexport const getSpeechDatasetById = (id: string) => createSelector(getSpeechDatasetsState, state => state.entities[id]);\nexport const isSpeechDatasetsLoaded = createSelector(getSpeechDatasetsState, state => state.loaded);\nexport const isDatasetUpdating = createSelector(getSpeechDatasetsState, state => state.updating);\nexport const getSpeechDatasetError = createSelector(getSpeechDatasetsState, state => state.error);\nexport const isSpeechDatasetFilesError = (id: string) => createSelector(getSpeechDatasetsState, state => state.entities[id]?.filesError);\nexport const getSelectedDatasets = createSelector(getSpeechDatasetsState, state => state.selectedDatasets);\nexport const getSelectedDatasetsLocale = createSelector(getSpeechDatasetsState, state => state.selectedDatasets.locale);\nexport const getSelectedDatasetsIds = createSelector(getSpeechDatasetsState, state => {\n const selectedDatasetsIds = [...state.selectedDatasets.languageIds];\n if (state.selectedDatasets.pronunciationId) {\n selectedDatasetsIds.push(state.selectedDatasets.pronunciationId);\n }\n return selectedDatasetsIds;\n});\nexport const selectedDatasetsExists = createSelector(getSelectedDatasetsIds, selectedIds => {\n return selectedIds?.length > 0;\n});\n\nexport const getSpeechCompleteDatasetsByLocale = (locale: string) =>\n createSelector(getSpeechDatasets, datasets =>\n datasets.filter(dataset => dataset.status === SpeechObjectState.COMPLETE && dataset.locale === locale)\n );\nexport const isSelectedDatasetsForTrainModel = createSelector(\n getSpeechDatasets,\n datasets => findIndex(datasets, dataset => dataset.kind === SpeechDatasetKind.LANGUAGE && dataset.selected) > -1\n);\nexport const getSpeechDatasetsByIds = (ids: string[]) =>\n createSelector(getSpeechDatasets, datasets => datasets.filter(dataset => ids.includes(dataset.id)));\n","import { createSelector } from '@ngrx/store';\n\nimport { SpeechObjectState } from '../../interfaces';\nimport { selectCoreState } from '../../reducers';\n\nexport const getSpeechState = createSelector(selectCoreState, state => state.speech);\nexport const getSpeechModelsState = createSelector(getSpeechState, state => state.models);\nexport const isSpeechModelError = createSelector(getSpeechModelsState, state => state.error);\nexport const getSpeechModels = createSelector(getSpeechModelsState, state => Object.values(state.entities));\nexport const getTrainedSpeechModels = createSelector(getSpeechModels, speechModels =>\n speechModels.filter(s => s.status === SpeechObjectState.COMPLETE)\n);\nexport const getSpeechModelId = (id: string) => createSelector(getSpeechModelsState, state => state.entities[id]);\nexport const isSpeechModelsLoaded = createSelector(getSpeechModelsState, state => state.loaded);\nexport const isSpeechModelUpdating = createSelector(getSpeechModelsState, state => state.updating);\nexport const isSpeechModelTrainDialogOpened = createSelector(getSpeechModelsState, state => state.isTrainDialogOpened);\nexport const getSelectedSpeechModel = createSelector(getSpeechModelsState, state => state.entities[state.selectedModelId]);\n","import { createSelector } from '@ngrx/store';\n\nimport { getSpeechState } from './speech-models.selectors';\n\nexport const getSpeechSelectedTab = createSelector(getSpeechState, state => state.page.selectedTab);\nexport const getSpeechPermission = createSelector(getSpeechState, state => state.page.permission);\n","import { createSelector } from '@ngrx/store';\n\nimport { selectCoreState } from '../reducers';\n\nexport const selectSupportedLanguagesIdsState = createSelector(selectCoreState, state => state.supportedLanguagesIds);\n\nexport const selectSupportedLanguagesIds = createSelector(selectSupportedLanguagesIdsState, state => Object.values(state.entities));\n\nexport const selectSupportedLanguagesIdsError = createSelector(selectSupportedLanguagesIdsState, state => state.error);\n\nexport const selectSupportedLanguagesIdsSuccess = createSelector(selectSupportedLanguagesIdsState, state => state.loaded);\n\nexport const selectSpeechDatasetLocalesForLanguage = createSelector(selectSupportedLanguagesIds, entities => {\n return entities.reduce((acc, curr) => {\n if (curr.isSupportedForLanguageDataset) {\n return acc.concat([curr.languageCode]);\n }\n return acc;\n }, []);\n});\n\nexport const selectSpeechDatasetLocalesForPronunciation = createSelector(selectSupportedLanguagesIds, entities => {\n return entities.reduce((acc, curr) => {\n if (curr.isSupportedForPronunciationDataset) {\n return acc.concat([curr.languageCode]);\n }\n return acc;\n }, []);\n});\n\nexport const selectSpeechModelsLocales = createSelector(selectSupportedLanguagesIds, entities => {\n return entities.reduce((acc, curr) => {\n if (curr.isSupportedForCustomModels) {\n return acc.concat([curr.languageCode]);\n }\n return acc;\n }, []);\n});\n","import { Injectable } from '@angular/core';\nimport { HttpErrorResponse } from '@angular/common/http';\n\nimport { Customization_Error_Types } from '../../customization/interfaces';\nimport { CustomizationUtilsService } from './customization-utils.service';\n\n@Injectable()\nexport class BrandsService {\n constructor(private customizationUtilsService: CustomizationUtilsService) {}\n\n public handleBrandsError(error: HttpErrorResponse, brand: Microsoft.VideoIndexer.Contracts.BrandContractV2) {\n switch (error.error.ErrorType) {\n case Customization_Error_Types.ALREADY_EXISTS:\n this.customizationUtilsService.displayErrorToast(error, { BrandAlreadyExistsError: '' }, { name: brand?.name });\n break;\n case Customization_Error_Types.WIKI_ALREADY_EXISTS:\n this.customizationUtilsService.displayErrorToast(error, { BrandWikiAlreadyExistsError: '' }, { wikiUrl: brand?.referenceUrl });\n break;\n case Customization_Error_Types.INVALID_INPUT:\n this.customizationUtilsService.displayErrorToast(error, { BrandInvalidInputError: '' }, {});\n break;\n default:\n this.customizationUtilsService.displayErrorToast(error, { ErrorTypes_GENERAL: '' }, {});\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Store } from '@ngrx/store';\nimport { Update } from '@ngrx/entity';\n\nimport { Observable } from 'rxjs';\n\nimport { IAction } from '@common/modules/shared/interfaces';\n\nimport * as fromCustomizationDataState from '../reducers/index';\nimport * as fromCustomizationData from '../selectors';\nimport * as LanguageModelActions from '../actions/language-model.actions';\nimport * as SupportedLanguagesActions from '../actions/supported-languages.actions';\nimport * as PersonModelActions from '../actions/person-model.actions';\nimport * as LogoGroupsActions from '../actions/logo-groups.actions';\nimport * as BrandsModelActions from '../actions/brands-model.actions';\nimport * as LanguageIdActions from '../actions/language-id.actions';\nimport { ILanguageListContract } from '../reducers/supported-languages.reducer';\nimport { IFileBlob } from '../../indexing/interfaces';\nimport { IUploadTrainingDataFile } from '../../customization/components/language/model-file/interfaces';\nimport { IBrandsSettings } from '../../customization/components/brand/brand-container/interfaces';\n\nimport LanguageModel = Microsoft.VideoIndexer.Contracts.LanguageModel;\nimport AddLanguageModel = Microsoft.VideoIndexer.Contracts.AddLanguageModel;\nimport BrandContractV2 = Microsoft.VideoIndexer.Contracts.BrandContractV2;\nimport LogoGroupContract = Microsoft.VideoIndexer.Contracts.Customization.LogoGroupContract;\nimport TrainingDataFile = Microsoft.VideoIndexer.Contracts.TrainingDataFile;\n\n@Injectable()\nexport class CustomizationDataStoreService {\n constructor(private readonly store: Store) {}\n\n public loadAllCustomizations(): void {\n this.loadLanguageModels();\n this.loadPersonModels();\n this.loadBrandModels();\n this.loadLanguageId();\n }\n\n // People\n\n public loadPersonModels(force = false): void {\n this.store.dispatch(PersonModelActions.loadPersonModels({ force }));\n }\n\n public getPeopleModelById(id: string): Observable {\n return this.store.select(fromCustomizationData.getPersonModelById(id));\n }\n\n public getLogoGroupById(id: string): Observable {\n return this.store.select(fromCustomizationData.getLogoGroupById(id));\n }\n\n public get peopleModels(): Observable {\n return this.store.select(fromCustomizationData.getPeopleModels);\n }\n\n public get peopleModelsError(): Observable {\n return this.store.select(fromCustomizationData.getPeopleError);\n }\n\n public isPeopleModelsLoaded(): Observable {\n return this.store.select(fromCustomizationData.isPeopleModelsLoaded);\n }\n\n public updatePeopleModel(model: Microsoft.VideoIndexer.Contracts.PersonModel) {\n this.store.dispatch(PersonModelActions.upsertPersonModel({ model: model }));\n }\n\n public deletePersonModel(model: Microsoft.VideoIndexer.Contracts.PersonModel) {\n this.store.dispatch(PersonModelActions.deletePersonModel({ model: model }));\n }\n\n public loadLanguageModels(): void {\n this.store.dispatch(LanguageModelActions.loadLanguageModels());\n }\n\n public loadLanguageModelFileContent(fileId: string, modelId: string): void {\n this.store.dispatch(LanguageModelActions.loadLanguageModelFileContent({ fileId, modelId }));\n }\n\n public loadLanguageModelCrisEditsContent(modelId: string): void {\n this.store.dispatch(LanguageModelActions.loadLanguageModelCrisEditsContent({ modelId }));\n }\n\n public getLanguageModelIsTraining(modelId: string): Observable {\n return this.store.select(fromCustomizationData.getLanguageModelIsTraining(modelId));\n }\n\n public getLanguageModelIsTrained(modelId: string): Observable {\n return this.store.select(fromCustomizationData.getLanguageModelIsTrained(modelId));\n }\n\n public getLanguageModelFile(modelId: string, fileId: string): Observable {\n return this.store.select(fromCustomizationData.getLanguageModelFile(modelId, fileId));\n }\n\n public trainModel(model: LanguageModel) {\n this.store.dispatch(LanguageModelActions.trainModel({ model }));\n }\n\n public addLanguageModel(newModel: AddLanguageModel) {\n this.store.dispatch(LanguageModelActions.addLanguageModel({ model: newModel }));\n this.store.dispatch(\n SupportedLanguagesActions.updateSupportedLanguage({\n supportedLanguage: {\n id: newModel.language,\n changes: { isCreating: true }\n }\n })\n );\n }\n\n public getSupportedLanguageIsSaving(key: string): Observable {\n return this.store.select(fromCustomizationData.getSupportedLanguageIsSaving(key));\n }\n\n public getLanguageModelIsSaving(modelId: string): Observable {\n return this.store.select(fromCustomizationData.getLanguageModelIsSaving(modelId));\n }\n\n public getLanguageModelIsExpanded(modelId: string): Observable {\n return this.store.select(fromCustomizationData.getLanguageModelIsExpanded(modelId));\n }\n\n public getLanguageModelFilesById(modelId: string): Observable {\n return this.store.select(fromCustomizationData.getLanguageModelFiles(modelId));\n }\n\n public toggleLanguageModelIsExpanded(modelId: string) {\n this.store.dispatch(LanguageModelActions.toggleLanguageModels({ modelId }));\n }\n\n public updateLanguageModel(newModel: AddLanguageModel, modelId: string, oldModel: LanguageModel) {\n this.store.dispatch(LanguageModelActions.updateLanguageModel({ model: newModel, modelId: modelId, oldModel: oldModel }));\n }\n\n public deleteLanguageModel(model: LanguageModel) {\n this.store.dispatch(LanguageModelActions.deleteLanguageModel({ model: model }));\n }\n\n public deleteLanguageModelFile(modelId: string, fileId: string) {\n this.store.dispatch(LanguageModelActions.deleteFile({ modelId, fileId }));\n }\n\n public downloadLanguageModelFile(modelId: string, fileId: string, fileName: string) {\n this.store.dispatch(LanguageModelActions.downloadFile({ modelId, fileId, fileName }));\n }\n\n public downloadFromEditLanguageModelFile(modelId: string, fileId: string, fileName: string) {\n this.store.dispatch(LanguageModelActions.downloadFromEditFile({ modelId, fileId, fileName }));\n }\n\n public uploadLanguageModelFile(file: IFileBlob, modelId: string) {\n this.store.dispatch(LanguageModelActions.uploadLanguageModelFile({ file: file, modelId: modelId }));\n }\n\n public updateSupportedLanguageModels(update: Update) {\n this.store.dispatch(SupportedLanguagesActions.updateSupportedLanguage({ supportedLanguage: update }));\n }\n\n public getLanguageModelUploadingFiles(modelId: string): Observable {\n return this.store.select(fromCustomizationData.getLanguageModelUploadingFiles(modelId));\n }\n\n public get languageModelListContract(): Observable {\n return this.store.select(fromCustomizationData.getLanguageModels);\n }\n\n public get trainedLanguageModels$(): Observable {\n return this.store.select(fromCustomizationData.getTrainedLanguageModels);\n }\n\n public getLanguageModelByLanguage(language: string): Observable {\n return this.store.select(fromCustomizationData.getLanguageModelByLanguage(language));\n }\n\n public getTrainedLanguageModelCount(language: string): Observable {\n return this.store.select(fromCustomizationData.getTrainedLanguageModelCount(language));\n }\n\n public getLanguageModelsIsTraining(language: string): Observable {\n return this.store.select(fromCustomizationData.getLanguageModelsIsTraining(language));\n }\n\n public isLanguageModelsLoading(): Observable {\n return this.store.select(fromCustomizationData.isLanguageModelsLoading);\n }\n\n // Brands\n\n public loadBrandModels(): void {\n this.store.dispatch(BrandsModelActions.loadBrandModels());\n }\n\n public loadBrandsSettings(): void {\n this.store.dispatch(BrandsModelActions.loadBrandsSettings());\n }\n\n public getBrandsIsSaving(enabled: boolean): Observable {\n return this.store.select(fromCustomizationData.getBrandsIsSaving(enabled));\n }\n\n public addBrandModel(brand: BrandContractV2) {\n this.store.dispatch(BrandsModelActions.addBrandModel({ brand: brand }));\n }\n\n public updateBrandModel(brand: BrandContractV2) {\n this.store.dispatch(BrandsModelActions.updateBrandModel({ brand: brand }));\n }\n\n public deleteBrandModel(brand: BrandContractV2) {\n this.store.dispatch(BrandsModelActions.deleteBrandModel({ brand: brand }));\n }\n\n public updateBrandsSettings(settings: IBrandsSettings) {\n this.store.dispatch(BrandsModelActions.updateBrandsSettings({ settings: settings }));\n }\n\n public getBrandModelDuplication(brand: BrandContractV2): Observable {\n return this.store.select(fromCustomizationData.getBrandModelDuplication(brand));\n }\n\n public getBrandModelUrlDuplication(brand: BrandContractV2): Observable {\n return this.store.select(fromCustomizationData.getBrandModelUrlDuplication(brand));\n }\n\n public getBrandsByType(enabled: boolean): Observable {\n return this.store.select(fromCustomizationData.getBrandsByType(enabled));\n }\n\n public isBrandModelsLoading(): Observable {\n return this.store.select(fromCustomizationData.isBrandModelsLoading);\n }\n\n public get brands(): Observable {\n return this.store.select(fromCustomizationData.getBrands);\n }\n\n public get brandsSettings(): Observable {\n return this.store.select(fromCustomizationData.getBrandsSettings);\n }\n\n public isBrandModelsLoaded(): Observable {\n return this.store.select(fromCustomizationData.isBrandModelsLoaded);\n }\n\n public get brandsError(): Observable {\n return this.store.select(fromCustomizationData.getBrandsError);\n }\n\n // LanguageId\n public loadLanguageId(): void {\n this.store.dispatch(LanguageIdActions.loadDefaultLanguages());\n }\n\n // Logos\n public loadLogoGroups(): void {\n this.store.dispatch(LogoGroupsActions.logoGroupsLoad());\n }\n\n public get logoGroups(): Observable {\n return this.store.select(fromCustomizationData.selectLogoGroups);\n }\n\n public get logoGroupsActions(): Observable {\n return this.store.select(fromCustomizationData.getLogoGroupsActions);\n }\n\n public get logoGroupsError(): Observable {\n return this.store.select(fromCustomizationData.selectLogoGroupError);\n }\n\n public isLogoGroupsLoaded(): Observable {\n return this.store.select(fromCustomizationData.isLogoGroupsLoaded);\n }\n}\n","import { Injectable, OnDestroy } from '@angular/core';\n\nimport { find, remove, upperFirst, cloneDeep } from 'lodash-es';\n\nimport { ISubscriptions } from '@common/modules/insights/interfaces';\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\nimport { InsightsCommonUtilsService } from '@common/modules/insights-common/insights-common-utils.service';\nimport { IAction } from '@common/modules/shared/interfaces';\nimport { UIFaceType } from '@common/modules/insights/components/faces/interfaces';\nimport { IDurationDetails } from '@common/modules/utils/time';\n\nimport { IUIRow } from '../../grid/components/grid-body/interfaces';\nimport { IUIGridCell, UIGridCellTypes } from '../../grid/components/grid-cell/interfaces';\nimport { IUICellNameType } from '../../customization/components/customization-people/interfaces';\nimport { resources } from '../../customization/components/customization/services/resources';\n\n@Injectable()\nexport class CustomizationDataService implements OnDestroy {\n public resources = resources;\n\n private subscriptions: ISubscriptions = {};\n\n constructor(private insightsCommonUtilsService: InsightsCommonUtilsService, private translateService: TranslateHelperService) {\n this.subscriptions.translateResources = this.translateService.translateResources(this.resources).subscribe(() => {});\n }\n\n public ngOnDestroy() {\n // Unsubscribe all subscriptions.\n this.insightsCommonUtilsService.unsubscribeSubscriptions(this.subscriptions);\n }\n\n // TO-DO: Animation - Add types - T = PEOPLE || ANIMATED\n public addModelData(model: T, models: T[]) {\n models.unshift(model);\n }\n\n public addModelToData(\n model: Microsoft.VideoIndexer.Contracts.PersonModel,\n cells: IUIGridCell[],\n gridData: IUIRow[],\n modelGridData?: IUIRow,\n isUnshiftToList?: boolean\n ) {\n if (isUnshiftToList) {\n gridData.unshift({ cells: cells, edit: !model.id, expand: false }, { cells: null, rowDetails: [] });\n return;\n }\n // In case it is search request, set expand as previous value\n gridData.push(\n {\n cells: cells,\n edit: !model.id,\n expand: modelGridData && modelGridData.expand\n },\n { cells: null, rowDetails: [] }\n );\n }\n\n public createUniqueAction(currentAction: IAction, actionTitle: string, id: string): IAction {\n const currentRowAction = cloneDeep(currentAction);\n // Add title and remove whitespace\n currentRowAction.titleAttribute = actionTitle;\n currentRowAction.id += id;\n currentRowAction.id = currentRowAction.id.replace(/ /g, '');\n\n return currentRowAction;\n }\n\n public deleteModel(modelsGridData: IUIRow[], index: number): void {\n if (!modelsGridData || (modelsGridData && !modelsGridData.length)) {\n return;\n }\n // Delete row data for model details\n modelsGridData.splice(index, 2);\n }\n\n public deleteModelByIdFromGrid(modelsGridData: IUIRow[], id: string, nameCellIndex: number): void {\n const index = this.getModelDataIndexById(modelsGridData, id, nameCellIndex);\n // Delete row data + sub row for model details\n modelsGridData.splice(index, 2);\n }\n\n public deleteModelData(id: string, models: T[]): void {\n remove(models, p => {\n return p.id === id;\n });\n }\n\n public getModelDataIndexById(modelsGridData: IUIRow[], modelId: string, nameCellIndex: number): number {\n let modelIndex = null;\n modelsGridData.forEach((model, index) => {\n if (model.cells && model.cells[nameCellIndex].id === modelId) {\n modelIndex = index;\n return;\n }\n });\n return modelIndex;\n }\n\n public getCounterModelCell(model: Microsoft.VideoIndexer.Contracts.PersonModel, modelType?: UIFaceType): IUIGridCell {\n const modelName = upperFirst(modelType);\n const itemResources = {};\n itemResources[`${modelName}Customization${modelName}CounterSingular`] = '';\n itemResources[`${modelName}Customization${modelName}CounterPlural`] = '';\n\n // Casting for typescript\n const peopleModel = model;\n // Verify that there's a counter\n if (peopleModel.personsCount !== undefined) {\n this.translateService.translateResources(itemResources, { number: peopleModel.personsCount });\n const value = itemResources[`${modelName}Customization${modelName}Counter${peopleModel.personsCount === 1 ? 'Singular' : 'Plural'}`];\n // Model counter\n return {\n id: model.id,\n name: IUICellNameType.FacesModelName,\n title: this.resources[IUICellNameType.FacesModelName],\n placeholder: this.resources.FacesCustomizationEnterModelName,\n value: value,\n type: UIGridCellTypes.TEXT,\n loading: false,\n edit: false,\n isDisabled: !peopleModel.personsCount || peopleModel.personsCount < 1\n };\n }\n\n return null;\n }\n\n public updateModel(\n gridData: IUIRow[],\n model: Microsoft.VideoIndexer.Contracts.PersonModel,\n faceType: UIFaceType,\n nameCellIndex: number,\n counterCellIndex: number,\n actionsCellIndex: number,\n index?: number,\n infoModelAction?: IAction,\n ...indexToSkip: number[]\n ): void {\n // If Index, search by it. (Less calculation time O(1))\n if (index !== undefined) {\n this.updateModelByIndex(gridData, model, index, faceType, nameCellIndex, counterCellIndex, actionsCellIndex, infoModelAction, ...indexToSkip);\n return;\n }\n // Otherwise, search by ID\n this.updateModelById(gridData, model, faceType, nameCellIndex, counterCellIndex, actionsCellIndex, infoModelAction, ...indexToSkip);\n }\n\n public updateModelActions(model: IUIRow, id: string, faceType: UIFaceType, infoModelAction: IAction, actionsCellIndex: number) {\n // Add model info\n const modelInfo = cloneDeep(infoModelAction);\n modelInfo.value = id;\n const faceName = upperFirst(faceType);\n // Translate action\n const itemResources = {};\n itemResources[`${faceName}Customization${faceName}ModelIdTitle`] = '';\n\n this.translateService.translateResources(itemResources, { modelId: id });\n modelInfo.title = itemResources[`${faceName}Customization${faceName}ModelIdTitle`];\n model.cells[actionsCellIndex].actionsList.push(modelInfo);\n }\n\n public disableRowActions(row: IUIRow, isDisabled: boolean) {\n if (row && row.cells) {\n row.cells.forEach(c => {\n if (c) {\n // Update new pointer for cell\n c.isDisabled = isDisabled;\n c = cloneDeep(c);\n }\n });\n }\n }\n\n public disableRowDetailsActions(row: IUIRow, isDisabled: boolean) {\n if (row) {\n row.rowDetails.forEach(p => {\n this.disableRowActions(p, isDisabled);\n });\n }\n }\n\n public getFromNowText(duration: IDurationDetails): string {\n let dateValue = this.resources.UtilsServiceJustNow;\n if (duration) {\n const itemResources = {};\n itemResources[`UtilsService${duration.units}`] = '';\n this.translateService.translateResources(itemResources, { number: duration.number });\n dateValue = itemResources[`UtilsService${duration.units}`];\n }\n return dateValue;\n }\n\n private updateModelByIndex(\n gridData: IUIRow[],\n model: Microsoft.VideoIndexer.Contracts.PersonModel,\n index: number,\n faceType: UIFaceType,\n nameCellIndex: number,\n counterCellIndex: number,\n actionsCellIndex: number,\n infoModelAction?: IAction,\n ...indexToSkip: number[]\n ) {\n const modelGrid = gridData[index];\n this.updateModelCells(modelGrid, model, nameCellIndex, counterCellIndex, actionsCellIndex, faceType, infoModelAction, ...indexToSkip);\n }\n\n private updateModelById(\n gridData: IUIRow[],\n model: Microsoft.VideoIndexer.Contracts.PersonModel,\n faceType: UIFaceType,\n nameCellIndex: number,\n counterCellIndex: number,\n actionsCellIndex: number,\n infoModelAction?: IAction,\n ...indexToSkip: number[]\n ) {\n const modelGrid = find(gridData, p => {\n return !p.rowDetails && p.cells[nameCellIndex].id === model.id;\n });\n this.updateModelCells(modelGrid, model, nameCellIndex, counterCellIndex, actionsCellIndex, faceType, infoModelAction, ...indexToSkip);\n }\n\n private updateModelCells(\n modelGrid: IUIRow,\n model: Microsoft.VideoIndexer.Contracts.PersonModel,\n nameCellIndex: number,\n counterCellIndex: number,\n actionsCellIndex: number,\n faceType: UIFaceType,\n infoModelAction?: IAction,\n ...indexToSkip: number[]\n ) {\n if (!modelGrid || (modelGrid && !modelGrid.cells)) {\n return;\n }\n // Check if new model\n const isNewModel = modelGrid.cells[nameCellIndex].id ? false : true;\n modelGrid.edit = false;\n\n if (!modelGrid.cells) {\n return;\n }\n modelGrid.cells.forEach((c: IUIGridCell, index: number) => {\n if (!c) {\n return;\n }\n\n const isIndex = indexToSkip && indexToSkip.find(i => index === i);\n if (isIndex !== undefined) {\n return;\n }\n // Update model info\n c.id = model.id;\n c.value = model.name;\n // Update model actions\n if (c.actionsList) {\n c.actionsList.forEach(a => {\n a.isDisabled = !model.id;\n });\n }\n });\n\n if (counterCellIndex !== null) {\n modelGrid.cells[counterCellIndex] = this.getCounterModelCell(model, faceType);\n }\n\n // Check if new model and add Model info ID (Use in faces customization)\n if (isNewModel && infoModelAction) {\n this.updateModelActions(modelGrid, model.id, faceType, infoModelAction, actionsCellIndex);\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { values } from 'lodash-es';\n\nimport { ToastService } from '@common/modules/core/services/toast/toast.service';\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\nimport { IAction } from '@common/modules/shared/interfaces';\n\n@Injectable()\nexport class CustomizationUtilsService {\n constructor(private toastService: ToastService, private translateService: TranslateHelperService) {}\n\n public nameValidation(name: string) {\n return name && name.length < 100;\n }\n\n public disableActionsList(actions: IAction[], isDisabled: boolean) {\n actions.forEach((a: IAction) => {\n a.isDisabled = isDisabled;\n });\n }\n\n public displayToast(itemResources, translateValues) {\n this.translateService.translateResources(itemResources, translateValues).subscribe(() => {\n this.toastService.success(values(itemResources)[0], false);\n });\n }\n\n public displayErrorToast(error, itemResources, translateValues, isFullWidth = true) {\n this.translateService.translateResources(itemResources, translateValues).subscribe(() => {\n this.toastService.error(error, values(itemResources)[0], isFullWidth);\n });\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { BehaviorSubject } from 'rxjs';\n\nimport { LoggerService } from '@common/modules/core/services/logger/logger.service';\n\nimport { CustomizationFilterType } from '../../customization/core/data-sources/filters';\n\ntype FluentListFilterValue = string | number | boolean;\nexport type FluentListFilter = Map;\n\n@Injectable()\nexport class CustomizationFilterService {\n private filter$: BehaviorSubject;\n private currentFilter: FluentListFilter;\n\n constructor(private loggerService: LoggerService) {\n this.currentFilter = new Map();\n this.filter$ = new BehaviorSubject(this.currentFilter);\n this.loggerService.log(`CustomizationFilterService:init`);\n }\n\n public getFilter(): BehaviorSubject {\n return this.filter$;\n }\n\n public get filterLength() {\n return this.currentFilter.size;\n }\n\n public clearAllFilters(): void {\n this.currentFilter.clear();\n this.filter$.next(this.currentFilter);\n this.loggerService.log(`CustomizationFilterService:clearAllFilters`);\n }\n\n public addFilter(columnName: string, value: FluentListFilterValue): void {\n this.loggerService.log(`CustomizationFilterService:addFilter`);\n if (columnName in CustomizationFilterType) {\n this.currentFilter.set(columnName, value);\n this.filter$.next(this.currentFilter);\n return;\n }\n this.loggerService.error(`CustomizationFilterService:unsupported filter name ${columnName}`);\n }\n\n public removeFilter(columnName: string): void {\n this.loggerService.log(`CustomizationFilterService:removeFilter`);\n if (columnName in CustomizationFilterType) {\n this.currentFilter.delete(columnName);\n this.filter$.next(this.currentFilter);\n return;\n }\n this.loggerService.error(`CustomizationFilterService:unsupported filter ${columnName}`);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { DatePipe } from '@angular/common';\nimport { HttpErrorResponse } from '@angular/common/http';\n\nimport { take } from 'rxjs/operators';\n\nimport { orderBy } from 'lodash-es';\n\nimport { ActionButtonType } from '@common/modules/shared/components/action-button/interfaces';\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\nimport { DialogService } from '@common/modules/shared/components/dialog/dialog.service';\nimport { GeneralCancelDialogButton } from '@common/modules/shared/actions';\nimport { UIActionType } from '@common/modules/insights/interfaces';\nimport { FocusManagerService } from '@common/modules/accessibility/focus-manager.service';\n\nimport { Customization_Error_Types } from '../../customization/interfaces';\nimport { CustomizationUtilsService } from './customization-utils.service';\nimport { IFileBlob } from '../../indexing/interfaces';\nimport { DeleteBrandModelAction } from '../../customization/components/brand/actions';\nimport { resources } from './resources';\n\n@Injectable()\nexport class LanguageCustomizationService {\n public resources = resources;\n\n constructor(\n private customizationUtilsService: CustomizationUtilsService,\n private translateService: TranslateHelperService,\n private datePipe: DatePipe,\n private dialogService: DialogService,\n private focusManager: FocusManagerService\n ) {\n this.translateService.translateResources(this.resources).pipe(take(1)).subscribe();\n }\n\n public handleLanguageError(error: HttpErrorResponse, model: Microsoft.VideoIndexer.Contracts.LanguageModel) {\n switch (error.error.ErrorType) {\n case Customization_Error_Types.NOT_FOUND:\n this.customizationUtilsService.displayErrorToast(error, { LanguageGetModelNotFoundError: '' }, { name: model.name || '' });\n break;\n case Customization_Error_Types.ALREADY_EXISTS:\n this.customizationUtilsService.displayErrorToast(error, { LanguageCreateModelAlreadyExistsError: '' }, { name: model.name });\n break;\n default:\n this.customizationUtilsService.displayErrorToast(error, { ErrorTypes_GENERAL: '' }, {});\n }\n }\n\n public handleLanguageFileError(error: HttpErrorResponse, currentFile: IFileBlob, downloadMode = false) {\n switch (error.error.ErrorType) {\n case Customization_Error_Types.ALREADY_EXISTS:\n this.customizationUtilsService.displayErrorToast(error, { UploadBoxFileAlreadyExistsError: '' }, { currentFileName: currentFile.name });\n break;\n case Customization_Error_Types.INVALID_INPUT:\n this.customizationUtilsService.displayErrorToast(error, { UploadBox_UploadFile_INVALID_INPUT: '' }, {});\n break;\n case Customization_Error_Types.NOT_FOUND:\n const errorResource = downloadMode ? { LanguageDownloadFileContentNotFoundError: '' } : { LanguageGetFileContentNotFoundError: '' };\n if (currentFile) {\n this.customizationUtilsService.displayErrorToast(error, errorResource, { value: currentFile.name });\n } else {\n // Cris from edits\n const transcriptEditName = { Language_From_Transcript_File: '' };\n this.translateService.translateResources({ Language_From_Transcript_File: '' }, {}).subscribe(() => {\n this.customizationUtilsService.displayErrorToast(error, errorResource, {\n value: transcriptEditName.Language_From_Transcript_File\n });\n });\n }\n break;\n default:\n this.customizationUtilsService.displayErrorToast(error, { ErrorTypes_GENERAL: '' }, {});\n }\n }\n\n public convertTranscriptEditToString(transcriptEdits: Microsoft.VideoIndexer.Contracts.TrainingDataFromEdits[], asHTML: boolean = false): string {\n let outputString = '';\n\n // Sort transcript edits by video id\n transcriptEdits = orderBy(\n transcriptEdits,\n (transcriptEdit: Microsoft.VideoIndexer.Contracts.TrainingDataFromEdits) => {\n return transcriptEdit.videoId;\n },\n ['desc']\n );\n\n let oldVideoId = '';\n transcriptEdits.forEach(transcriptEdit => {\n if (asHTML) {\n outputString += `
`;\n // eslint-disable-next-line max-len\n outputString +=\n transcriptEdit.videoId !== oldVideoId\n ? `${this.resources.Language_From_Edits_Header}: '${\n transcriptEdit.videoName ? transcriptEdit.videoName : this.resources.LabelUnknown\n }'`\n : '';\n outputString +=\n transcriptEdit.videoId !== oldVideoId\n ? // eslint-disable-next-line max-len\n `${this.resources.LabelCrisFromEditsEditFrom}: ${this.datePipe.transform(\n transcriptEdit.createDate,\n 'fullDate'\n )}`\n : '';\n const valueAsDiff = this.getNewValueAsDiff(transcriptEdit.originalValue, transcriptEdit.currentValue, asHTML);\n outputString += `${valueAsDiff[0]}`;\n outputString += `${valueAsDiff[1]}`;\n outputString += '
';\n } else {\n outputString +=\n transcriptEdit.videoId !== oldVideoId\n ? `${this.resources.Language_From_Edits_Header}: '${transcriptEdit.videoName ? transcriptEdit.videoName : this.resources.LabelUnknown}'\\n`\n : '';\n outputString +=\n transcriptEdit.videoId !== oldVideoId\n ? `${this.resources.LabelCrisFromEditsEditFrom}: ${this.datePipe.transform(transcriptEdit.createDate, 'fullDate')}\\n`\n : '';\n const valueAsDiff = this.getNewValueAsDiff(transcriptEdit.originalValue, transcriptEdit.currentValue, asHTML);\n outputString += `${valueAsDiff[0]}\\n`;\n outputString += `${valueAsDiff[1]}\\n`;\n }\n\n oldVideoId = transcriptEdit.videoId;\n });\n\n return outputString;\n }\n\n public handelDeleteDialog(isModel = true, callBack: () => void) {\n const tempResources = {\n LanguageValidateVideoIndexingEmptyFileMsg: '',\n LanguageValidateVideoIndexingEmptyModelMsg: '',\n LanguageDeleteFileAction: '',\n LanguageModelDeleteModelHeader: ''\n };\n this.translateService\n .translateResources(tempResources, {})\n .pipe(take(1))\n .subscribe(() => {\n const primaryButton = {\n type: ActionButtonType.PRIMARY,\n action: DeleteBrandModelAction\n };\n const deleteModelDialog = this.dialogService.getDialogData(\n 'delete-language-model-or-file-dialog',\n isModel ? tempResources.LanguageModelDeleteModelHeader : tempResources.LanguageDeleteFileAction,\n isModel ? tempResources.LanguageValidateVideoIndexingEmptyModelMsg : tempResources.LanguageValidateVideoIndexingEmptyFileMsg,\n GeneralCancelDialogButton,\n primaryButton\n );\n\n const dialogRef = this.dialogService.openDialog(deleteModelDialog, '440px');\n\n dialogRef.componentInstance.actionChange.pipe(take(1)).subscribe(res => {\n // After closing the dialog handle the action according to its type\n if (res && res.action && res.action.type === UIActionType.DELETE) {\n callBack();\n }\n });\n\n dialogRef.afterClosed().subscribe(res => {\n // Add accessability\n });\n });\n }\n\n public handelModelAdding(success: boolean, ref: string) {\n setTimeout(() => {\n const buttonToFocus = success ? `#languageListItemMenu${ref}` : `#${ref}_languageAddBtn`;\n\n this.focusManager.focusByQuery(buttonToFocus);\n }, 10);\n }\n\n private getNewValueAsDiff(originValue: string, newValue: string, asHTML: boolean = false): string[] {\n const MARK_FOUND_AS_DIFF = '---found as diff---';\n let isSingleWord = false;\n let newAsDiff = '';\n let oldAsDiff = '';\n\n const arrNewAsDiff = [];\n const arrOldAsDiff = [];\n // If new value is empty\n if (newValue === '') {\n return [originValue, newValue];\n }\n\n // if old value is empty\n if (originValue === '') {\n return asHTML ? [originValue, `${newValue}`] : [originValue, newValue];\n }\n\n // Parse both strings\n let arrOriginValue = originValue.split(' ');\n let arrNewValue = newValue.split(' ');\n\n // If both values are single word -> its single word / Japanese / Chinese, split each character\n if (arrOriginValue.length === 1 && arrNewValue.length === 1) {\n arrOriginValue = originValue.split('');\n arrNewValue = newValue.split('');\n isSingleWord = true;\n }\n\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let index = 0; index < arrNewValue.length; index++) {\n const newElement = arrNewValue[index];\n\n for (let originIndex = 0; originIndex < arrOriginValue.length; originIndex++) {\n const oldElement = arrOriginValue[originIndex];\n\n // Check if value exist on origin array\n if (newElement === oldElement) {\n // same value, no change\n arrNewAsDiff.push(newElement);\n arrOldAsDiff.push(oldElement);\n\n // Go to next element and remove the selected string from origin array\n arrOriginValue[originIndex] = MARK_FOUND_AS_DIFF;\n break;\n } else if (originIndex === arrOriginValue.length - 1) {\n // Different value\n // If we loop over all origin string and haven't found the new word, it was added\n arrNewAsDiff.push(asHTML ? `${newElement}` : newElement);\n }\n }\n }\n\n // If there were strings that is not marked as diff, they were deleted\n for (let index = 0; index < arrOriginValue.length; index++) {\n const element = arrOriginValue[index];\n\n if (element !== MARK_FOUND_AS_DIFF) {\n // Push to the old as diff array the string as deleted\n arrOldAsDiff.splice(index, 0, asHTML ? `${element}` : element);\n }\n }\n\n newAsDiff = isSingleWord ? arrNewAsDiff.join('') : arrNewAsDiff.join(' ');\n oldAsDiff = isSingleWord ? arrOldAsDiff.join('') : arrOldAsDiff.join(' ');\n\n return [oldAsDiff, newAsDiff];\n }\n}\n","import { Injectable, OnDestroy } from '@angular/core';\n\nimport { Store } from '@ngrx/store';\n\nimport { Observable, Subject } from 'rxjs';\n\nimport { IAction } from '@common/modules/shared/interfaces';\n\nimport * as LanguageIdActions from '../actions/language-id.actions';\nimport { IState } from '../reducers';\nimport * as fromLanguageId from '../selectors/language-id.selectors';\n\n@Injectable()\nexport class LanguageIdStoreService implements OnDestroy {\n protected destroy$ = new Subject();\n\n constructor(private readonly store: Store) {}\n\n public ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n public deleteSelectedLanguage(languageCode: Microsoft.VideoIndexer.Contracts.LanguageV2) {\n this.store.dispatch(LanguageIdActions.deleteSelectedLanguage({ languageCode: languageCode }));\n }\n\n public addSelectedLanguage(selectedLanguage: Microsoft.VideoIndexer.Contracts.SupportedLanguageContract) {\n this.store.dispatch(LanguageIdActions.addSelectedLanguage({ selectedLanguage }));\n }\n\n public get selectedLanguagesId$(): Observable {\n return this.store.select(fromLanguageId.selectSelectedLanguages);\n }\n\n public get selectedLanguagesIdNames$(): Observable {\n return this.store.select(fromLanguageId.selectSelectedLanguagesNames);\n }\n\n public get selectedLanguagesIdKeys$(): Observable {\n return this.store.select(fromLanguageId.selectSelectedLanguagesKeys);\n }\n\n public get defaultLanguagesNames$(): Observable {\n return this.store.select(fromLanguageId.selectDefaultLanguagesNames);\n }\n\n public get selectSupportedLanguagesIdsActions$(): Observable {\n return this.store.select(fromLanguageId.selectSupportedLanguagesIdsActions);\n }\n\n public get supportedLanguagesIds$(): Observable {\n return this.store.select(fromLanguageId.selectSupportedAutoDetectLanguagesIds);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Store } from '@ngrx/store';\n\nimport { Observable } from 'rxjs';\n\nimport { PeopleTab } from './../../../customization/components/customization-people-container/interfaces';\nimport * as fromCustomizationDataState from '../../reducers/index';\nimport * as PeoplePageActions from '../../actions/people/people-page.actions';\nimport * as fromPeoplePage from '../../selectors/people/people-page.selectors';\n\n@Injectable()\nexport class PeoplePageStoreService {\n constructor(private readonly store: Store) {}\n\n public selectPeopleTab(tab: PeopleTab) {\n this.store.dispatch(PeoplePageActions.selectPeopleTab({ tab }));\n }\n\n public getSelectedTab(): Observable {\n return this.store.select(fromPeoplePage.getSelectedTab);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Store } from '@ngrx/store';\n\nimport { Observable } from 'rxjs';\n\nimport * as UnknownPersonActions from '../../actions/people/unknown-person.actions';\nimport * as fromUnknownPersons from '../../selectors/people/unknown-person.selectors';\nimport { IState } from '../../../core/reducers';\n\n@Injectable()\nexport class UnknownPersonStoreService {\n constructor(private readonly store: Store) {}\n\n // Selectors\n public getState() {\n return this.store.select(fromUnknownPersons.getState);\n }\n\n public getPaginationState() {\n return this.store.select(fromUnknownPersons.getPaginationState);\n }\n\n public getJob() {\n return this.store.select(fromUnknownPersons.getJob);\n }\n\n public getList() {\n return this.store.select(fromUnknownPersons.list);\n }\n\n public getSelected$() {\n return this.store.select(fromUnknownPersons.getSelected);\n }\n\n public getIsUpdating$(): Observable {\n return this.store.select(fromUnknownPersons.getIsUpdating);\n }\n\n public getIsLoaded$(): Observable {\n return this.store.select(fromUnknownPersons.getIsLoaded);\n }\n\n public getIsJobLoaded$(): Observable {\n return this.store.select(fromUnknownPersons.getIsJobLoaded);\n }\n\n public getIsTableLoaded$(): Observable {\n return this.store.select(fromUnknownPersons.getIsTableLoaded);\n }\n\n public getIsLoadMoreError$(): Observable {\n return this.store.select(fromUnknownPersons.isLoadMoreError);\n }\n\n public getIsSearchError$(): Observable {\n return this.store.select(fromUnknownPersons.isSearchError);\n }\n\n public getIsGetListError$(): Observable {\n return this.store.select(fromUnknownPersons.isGetListError);\n }\n\n public getIsSearching$(): Observable {\n return this.store.select(fromUnknownPersons.getIsSearching);\n }\n\n // Actions\n public selectUnknownPersonsTab() {\n this.store.dispatch(UnknownPersonActions.selectUnknownPersonsTab());\n }\n\n public getUnknownPersonsJob() {\n this.store.dispatch(UnknownPersonActions.getUnknownPersonsJob());\n }\n\n public deleteUnknownPerson(id: string) {\n this.store.dispatch(UnknownPersonActions.deleteUnknownPerson({ id }));\n }\n\n public listUnknownPersons(searchValue?: string) {\n const payload = searchValue ? { searchValue } : {};\n this.store.dispatch(UnknownPersonActions.listUnknownPersons(payload));\n }\n\n public submitUnknownPersonsJob() {\n this.store.dispatch(UnknownPersonActions.submitUnknownPersonsJob());\n }\n\n public openUnknownPersonDetailsDialog(id: string) {\n this.store.dispatch(UnknownPersonActions.openUnknownPersonDetailsDialog({ id }));\n }\n\n public openUnknownPersonDeleteDialog(personIds: string[]) {\n this.store.dispatch(UnknownPersonActions.openDeleteUnknownPeopleDialog({ personIds }));\n }\n\n public searchUnknownPersons(searchValue: string) {\n this.store.dispatch(UnknownPersonActions.searchUnknownPersons({ searchValue }));\n }\n\n public clearTableListError() {\n this.store.dispatch(UnknownPersonActions.clearTableListError());\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { AuthService } from '@common/modules/auth/services/auth.service';\nimport { DataService } from '@common/modules/shared/services/data.service';\nimport { humanizeFromNow } from '@common/modules/utils/time';\n\nimport { IPerson } from '../../../customization/components/people-table/interfaces';\nimport { CustomizationDataService } from '../customization-data.service';\n\n@Injectable()\nexport class UnknownPersonService {\n constructor(private dataService: DataService, private authService: AuthService, private customizationDataService: CustomizationDataService) {}\n\n public getThumbnailUrl(accountId: string, videoId: string, thumbnailId: string): string {\n return this.dataService.getThumbnailUrl(accountId, videoId, thumbnailId);\n }\n\n public getThumbnailUrlWithToken(accountId: string, videoId: string, thumbnailId: string): string {\n const accessToken = this.authService.getAccessToken(null, accountId);\n const url = this.getThumbnailUrl(accountId, videoId, thumbnailId);\n\n return `${url}?accessToken=${accessToken}`;\n }\n\n public convertPersonContract(people: Microsoft.VideoIndexer.Contracts.UnknownPerson[], accountId: string, selectedPersonIds: string[]): IPerson[] {\n return people.map(person => {\n const duration = humanizeFromNow(person.lastUpdated);\n const dateValue = this.customizationDataService.getFromNowText(duration);\n return {\n id: person.id,\n name: person.name,\n score: person.score * 100 || 0,\n imageCount: person.imageCount,\n selected: selectedPersonIds.includes(person.id),\n lastUpdated: dateValue,\n url: this.getThumbnailUrlWithToken(accountId, person.bestFaceVideoId, person.bestFaceThumbnailId)\n };\n });\n }\n}\n","export const resources = {\n Language_From_Edits_Header: '',\n LabelUnknown: '',\n LabelCrisFromEditsEditFrom: '',\n UtilsServiceJustNow: '',\n FacesCustomizationEnterModelName: '',\n FaceImageTitle: '',\n FacesName: '',\n FacesModelName: '',\n FacesCustomizationExpandMenuTitle: ''\n};\n","export const resources = {\n SpeechInUseFailedDeleteDatasetText: '',\n SpeechGeneralFailedDeleteDatasetText: '',\n SpeechOnIndexingFailedDeleteModelTitle: '',\n SpeechGeneralFailedDeleteModelText: ''\n};\n","import { Injectable } from '@angular/core';\n\nimport { Store } from '@ngrx/store';\n\nimport { Observable } from 'rxjs';\n\nimport * as fromCustomizationDataState from '../../reducers/index';\nimport * as fromCustomizationData from '../../selectors';\nimport * as SpeechDatasetsActions from '../../actions/speech/speech-datasets.actions';\nimport * as SpeechDatasetActions from '../../actions/speech/speech-datasets.actions';\nimport { ISpeechDatasetDetails } from '../../reducers/speech/interfaces';\nimport { IUISpeechDatasetTableDetail } from '../../interfaces';\n\nimport SpeechDataset = Microsoft.VideoIndexer.Contracts.SpeechDataset;\n\n@Injectable()\nexport class SpeechDatasetStoreService {\n constructor(private readonly store: Store) {}\n\n public loadSpeechData() {\n this.store.dispatch(SpeechDatasetsActions.loadSpeechDatasets());\n }\n\n public uploadSpeechDatasetClicked() {\n this.store.dispatch(SpeechDatasetActions.uploadButtonClicked());\n }\n\n public getSpeechDatasetById(id: string): Observable {\n return this.store.select(fromCustomizationData.getSpeechDatasetById(id));\n }\n\n public isLoadDatasetDetailsError(): Observable {\n return this.store.select(fromCustomizationData.getSpeechDatasetError);\n }\n\n public isSpeechDatasetFilesError(id: string): Observable {\n return this.store.select(fromCustomizationData.isSpeechDatasetFilesError(id));\n }\n\n public getSpeechDatasets(): Observable {\n return this.store.select(fromCustomizationData.getSpeechDatasets);\n }\n\n public getSpeechCompleteDatasetsByLocale(locale: string): Observable {\n return this.store.select(fromCustomizationData.getSpeechCompleteDatasetsByLocale(locale));\n }\n\n public getSpeechDatasetsByIds(datasetIds: string[]): Observable {\n return this.store.select(fromCustomizationData.getSpeechDatasetsByIds(datasetIds));\n }\n\n public isSpeechDatasetsLoaded(): Observable {\n return this.store.select(fromCustomizationData.isSpeechDatasetsLoaded);\n }\n\n public updateDataset(datasetId: string, properties: Pick) {\n this.store.dispatch(SpeechDatasetActions.updateSpeechDataset({ datasetId, properties }));\n }\n\n public openEditSpeechDatasetDialog(dataset: IUISpeechDatasetTableDetail) {\n this.store.dispatch(SpeechDatasetActions.openEditSpeechDatasetDialog({ dataset }));\n }\n\n public isDatasetUpdating(): Observable {\n return this.store.select(fromCustomizationData.isDatasetUpdating);\n }\n\n public openDeleteDatasetDialog(dataset: IUISpeechDatasetTableDetail) {\n this.store.dispatch(SpeechDatasetActions.openDeleteSpeechDatasetDialog({ dataset }));\n }\n\n public downloadDataset(datasetId: string) {\n this.store.dispatch(SpeechDatasetActions.downloadSpeechDataset({ datasetId }));\n }\n\n public openSpeechDatasetDialog(datasetId: string) {\n this.store.dispatch(SpeechDatasetActions.openViewSpeechDatasetDialog({ datasetId }));\n }\n\n public isSelectedDatasetsForTrainModel(): Observable {\n return this.store.select(fromCustomizationData.isSelectedDatasetsForTrainModel);\n }\n\n public getSelectedDatasetsIds(): Observable {\n return this.store.select(fromCustomizationData.getSelectedDatasetsIds);\n }\n\n public selectedDatasetsExists(): Observable {\n return this.store.select(fromCustomizationData.selectedDatasetsExists);\n }\n\n public toggleSpeechDatasetSelection(datasetId: string) {\n this.store.dispatch(SpeechDatasetActions.toggleSpeechDatasetSelection({ datasetId }));\n }\n\n public clearSpeechDatasetSelection() {\n this.store.dispatch(SpeechDatasetActions.clearSpeechDatasetSelection());\n }\n}\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\n\nimport { Errors } from '@common/modules/core/services/toast/errors';\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\n\nimport { SpeechErrorTexts } from '../../reducers/speech/interfaces';\nimport { resources } from './resources';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SpeechErrorsService {\n private resources = resources;\n constructor(private translate: TranslateHelperService) {\n this.translate.translateResourcesInstant(this.resources);\n }\n\n public getSpeechDatasetDeleteErrorTexts(err: HttpErrorResponse, datasetName: string): SpeechErrorTexts {\n const errorTexts = {\n title: '',\n content: ''\n };\n if (err?.error?.ErrorType === Errors.DATASET_IN_USE.key) {\n errorTexts.title = this.translate.instant('SpeechInUseFailedDeleteDatasetTitle', { datasetName: datasetName });\n errorTexts.content = this.resources.SpeechInUseFailedDeleteDatasetText;\n } else {\n errorTexts.title = this.translate.instant('SpeechGeneralFailedDeleteDatasetTitle', { datasetName: datasetName });\n errorTexts.content = this.resources.SpeechGeneralFailedDeleteDatasetText;\n }\n return errorTexts;\n }\n\n public getSpeechModelDeleteErrorTexts(err: HttpErrorResponse, modelId: string, modelName: string): SpeechErrorTexts {\n const errorTexts = {\n title: '',\n content: ''\n };\n if (err?.error?.ErrorType === Errors.MODEL_IN_USE.key) {\n errorTexts.title = this.resources.SpeechOnIndexingFailedDeleteModelTitle;\n errorTexts.content = this.translate.instant('SpeechOnIndexingFailedDeleteModelText', { modelId: modelId });\n } else {\n errorTexts.title = this.translate.instant('SpeechGeneralFailedDeleteModelTitle', { modelName: modelName });\n errorTexts.content = this.resources.SpeechGeneralFailedDeleteModelText;\n }\n return errorTexts;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Store } from '@ngrx/store';\n\nimport { Observable } from 'rxjs';\n\nimport { TrainModelDialogSource } from './../../interfaces';\nimport * as fromCustomizationDataState from '../../reducers/index';\nimport * as fromCustomizationData from '../../selectors';\nimport * as actions from '../../actions/speech/speech-models.actions';\nimport { IUISpeechModelTableDetail } from '../../interfaces';\n\nimport SpeechModel = Microsoft.VideoIndexer.Contracts.CustomSpeechModel;\nimport SpeechModelInput = Microsoft.VideoIndexer.Contracts.CustomSpeechModelInput;\n\n@Injectable()\nexport class SpeechModelStoreService {\n constructor(private readonly store: Store) {}\n\n public loadSpeechData() {\n this.store.dispatch(actions.loadSpeechModels());\n }\n\n public openEditSpeechModelDialog(model: IUISpeechModelTableDetail) {\n this.store.dispatch(actions.openEditSpeechModelDialog({ model }));\n }\n\n public openViewModelDialog(model: IUISpeechModelTableDetail) {\n this.store.dispatch(actions.openViewModelDialog({ model }));\n }\n\n public openDeleteModelDialog(model: IUISpeechModelTableDetail) {\n this.store.dispatch(actions.openSpeechDeleteModelDialog({ model }));\n }\n\n public createModel(properties: SpeechModelInput) {\n this.store.dispatch(actions.createSpeechModel({ properties }));\n }\n\n public updateModel(modelId: string, properties: Pick) {\n this.store.dispatch(actions.updateSpeechModel({ modelId, properties }));\n }\n\n public isUpdating(): Observable {\n return this.store.select(fromCustomizationData.isSpeechModelUpdating);\n }\n\n public getSelectedModel(): Observable {\n return this.store.select(fromCustomizationData.getSelectedSpeechModel);\n }\n\n public isSpeechModelsLoaded(): Observable {\n return this.store.select(fromCustomizationData.isSpeechModelsLoaded);\n }\n\n public getSpeechModels(): Observable {\n return this.store.select(fromCustomizationData.getSpeechModels);\n }\n\n public get trainedSpeechModels$(): Observable {\n return this.store.select(fromCustomizationData.getTrainedSpeechModels);\n }\n\n public isSpeechModelTrainDialogOpened(): Observable {\n return this.store.select(fromCustomizationData.isSpeechModelTrainDialogOpened);\n }\n\n public isSpeechModelError(): Observable {\n return this.store.select(fromCustomizationData.isSpeechModelError);\n }\n\n public openTrainModelDialog(source: TrainModelDialogSource) {\n this.store.dispatch(actions.openTrainModelDialog({ source }));\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Store } from '@ngrx/store';\n\nimport { Observable, filter, take, map } from 'rxjs';\n\nimport * as fromCustomizationDataState from '../../reducers/index';\nimport * as fromCustomizationData from '../../selectors';\nimport * as SpeechPageActions from '../../actions/speech/speech-page.actions';\nimport { SpeechTab } from '../../../customization/components/speech/speech-container/interfaces';\nimport { SpeechPermission } from '../../interfaces';\n\n@Injectable()\nexport class SpeechPageStoreService {\n constructor(private readonly store: Store) {}\n\n public selectSpeechTab(tab: SpeechTab) {\n this.store.dispatch(SpeechPageActions.selectSpeechTab({ tab }));\n }\n\n public getSpeechSelectedTab(): Observable {\n return this.store.select(fromCustomizationData.getSpeechSelectedTab);\n }\n\n public isSpeechEnabled(): Observable {\n return this.getSpeechPermission().pipe(\n filter(permission => permission !== SpeechPermission.UNDEFINED),\n take(1),\n map(permission => permission === SpeechPermission.PERMITTED)\n );\n }\n\n public getSpeechPermission(): Observable {\n return this.store.select(fromCustomizationData.getSpeechPermission);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Store } from '@ngrx/store';\n\nimport { Observable } from 'rxjs';\n\nimport { IState } from '../reducers';\nimport * as fromSupportedLanguagesIds from '../selectors/supported-languages-ids.selectors';\nimport * as fromEdgeSupportedLanguages from '../selectors/edge-supported-languages.selectors';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SupportedLanguagesStoreService {\n constructor(private readonly store: Store) {}\n\n public get supportedLanguagesIds$(): Observable {\n return this.store.select(fromSupportedLanguagesIds.selectSupportedLanguagesIds);\n }\n\n public get supportedLanguagesIdsError$() {\n return this.store.select(fromSupportedLanguagesIds.selectSupportedLanguagesIdsError);\n }\n\n public get supportedLanguagesIdsSuccess$() {\n return this.store.select(fromSupportedLanguagesIds.selectSupportedLanguagesIdsSuccess);\n }\n\n // Edge\n public get edgeSupportedLanguages$(): Observable {\n return this.store.select(fromEdgeSupportedLanguages.selectEdgeSupportedLanguages);\n }\n}\n","import { ExcludedSelectedDialectLanguages } from './../core/languages';\n// TODO: set the function in service/other specific utils for languages\nexport function isSupportedLanguageDisabled(selectedLanguages: string[], languageCode: Microsoft.VideoIndexer.Contracts.LanguageV2): boolean {\n // Disable the language\n // 1. Get selected languages and disable the selected languages\n // 2. If part of the list disable the duplicated in the list\n // Exception: zh-CN/ zh-TW can be at the same list of zh-HK\n const isDisabled = selectedLanguages?.includes(languageCode) || isSupportedLanguageDialect(selectedLanguages, languageCode);\n return isDisabled;\n}\n\nexport function isSupportedLanguageDialect(selectedLanguages: string[], languageCode: Microsoft.VideoIndexer.Contracts.LanguageV2) {\n return !!selectedLanguages?.find(selectedLanguage => {\n const languagePrefix = selectedLanguage?.slice(0, selectedLanguage?.indexOf('-')).toLocaleLowerCase();\n const isExcluded = ExcludedSelectedDialectLanguages.find(languageCode => selectedLanguage === languageCode);\n return isExcluded || selectedLanguage === languageCode\n ? false\n : languagePrefix === languageCode?.slice(0, languageCode?.indexOf('-')).toLocaleLowerCase();\n });\n}\n","import { IAction } from '@common/modules/shared/interfaces';\nimport { UIActionType, UIActionIcon } from '@common/modules/insights/interfaces';\n\nimport { UILanguageModelActionType } from '../../interfaces';\n\nexport const mainAction: IAction = {\n icon: 'i-vi-more',\n titleAttribute: 'Brand model menu',\n key: 'BrandCustomizationModelMenu',\n title: '',\n selected: false,\n type: UIActionType.EDIT,\n value: UIActionType.EDIT,\n selectable: true,\n hasDrop: true,\n id: 'brandCustomizationModelMenu'\n};\n\nexport const EditBrandModelAction: IAction = {\n icon: UIActionIcon.EDIT,\n title: 'Edit',\n key: 'Edit',\n selected: false,\n type: UIActionType.UPDATE,\n value: UILanguageModelActionType.RENAME_MODEL,\n selectable: true,\n hasDrop: false,\n id: 'EDIT_BRAND_MODEL'\n};\n\nexport const DeleteBrandModelAction: IAction = {\n icon: UIActionIcon.TRASH,\n title: 'Delete',\n key: 'Delete',\n selected: false,\n type: UIActionType.DELETE,\n value: UILanguageModelActionType.DELETE_MODEL,\n selectable: true,\n hasDrop: false,\n id: 'DELETE_BRAND_MODEL'\n};\n\nexport const brandsActions: IAction[] = [EditBrandModelAction, DeleteBrandModelAction];\n\nexport const brandAddAction: IAction = {\n icon: UIActionIcon.ADD,\n title: 'Create new brand',\n key: 'brandAddAction',\n selected: false,\n type: UIActionType.ADD,\n value: '',\n selectable: true,\n hasDrop: false,\n id: 'brandAddBtn',\n style: 'add-button'\n};\n\nexport const brandUpdateAction: IAction = {\n title: 'Update',\n key: 'brandUpdateAction',\n selected: false,\n type: UIActionType.UPDATE,\n value: '',\n selectable: true,\n hasDrop: false,\n id: 'brandUpdateBtn',\n style: 'update-button'\n};\n\nexport const brandSaveAction: IAction = {\n title: 'Save',\n key: 'brandSaveAction',\n selected: false,\n type: UIActionType.SAVE,\n value: '',\n selectable: true,\n hasDrop: false,\n id: 'brandSaveBtn',\n style: 'save-button'\n};\n\nexport const brandCancelAction: IAction = {\n title: 'Cancel',\n key: 'brandCancelAction',\n selected: false,\n type: UIActionType.CANCEL,\n value: '',\n selectable: true,\n hasDrop: false,\n id: 'brandCancelBtn',\n style: 'cancel-button'\n};\n","export enum PeopleTab {\n PEOPLE = 'People',\n UNKNOWN_PEOPLE = 'Unknown'\n}\n","import { ISortState } from '@common/modules/shared/components/sort-menu';\n\nexport enum IUICellNameType {\n FacesModelName = 'FacesModelName',\n FacesModelCounter = 'FacesModelCounter',\n FacesModelActionBar = 'FacesModelActionBar',\n FacesModelSort = 'FacesModelSort',\n FacesModelExpanded = 'FacesModelExpanded',\n FacesName = 'FacesName',\n FacesScoreCol = 'FacesScoreCol',\n FacesUpdatedBy = 'FacesUpdatedBy',\n FacesLastUpdated = 'FacesLastUpdated',\n FacesActionBar = 'FacesActionBar',\n FacesMerge = 'FacesMerge'\n}\n\nexport const emptyHeaderTitleCells = [IUICellNameType.FacesMerge];\n\nexport const displayedPeopleModelsColumns = {\n FacesModelName: '',\n FacesModelCounter: '',\n FacesModelSort: '',\n FacesModelActionBar: '',\n FacesModelExpanded: ''\n};\n\n// Expanded rows\nexport const displayedPeopleColumns = {\n FacesMerge: '',\n FacesName: '',\n FacesActionBar: '',\n FacesUpdatedBy: '',\n FacesLastUpdated: ''\n};\n\n// The order is determined by the object key order\n// To be merge with displayedPeopleColumns when ISA FS is removed\nexport const displayedPeopleColumnsISA = {\n FacesMerge: '',\n FacesName: '',\n FacesActionBar: '',\n FacesScoreCol: '',\n FacesUpdatedBy: '',\n FacesLastUpdated: ''\n};\n\nexport interface SortableColumn {\n column: IUICellNameType;\n state: ISortState;\n}\n\nexport interface IPeopleModelsSort {\n [modelId: string]: SortableColumn[];\n}\n\nexport const PeopleModelsSortParamName = {\n FacesName: 'name',\n FacesScoreCol: 'score'\n};\n\nexport enum PersonActionId {\n DIALOG_DELETE_PEOPLE = 'DIALOG_DELETE_PEOPLE',\n DELETE_MODEL = 'DELETE_MODEL',\n DIALOG_DELETE_FACE = 'DIALOG_DELETE_FACE',\n UPLOAD_FACES = 'UPLOAD_FACES'\n}\n","import { Injectable } from '@angular/core';\n\nimport {\n INotification,\n NotificationIcon,\n NotificationLevel,\n NotificationMessageType,\n NotificationType\n} from '@common/modules/core/services/toast/interfaces';\nimport { NotificationsService } from '@common/modules/notifications/services/notifications.service';\nimport { guid } from '@common/modules/utils/string';\n\n@Injectable()\nexport class UnknownPersonNotificationService {\n constructor(private notificationService: NotificationsService) {}\n\n public notify(title: string, text: string, toasted: boolean, level: NotificationLevel, icon: NotificationIcon) {\n const notification: INotification = {\n messageType: NotificationMessageType.Custom,\n id: `unknown_people_${guid()}`,\n startDate: new Date(),\n endDate: new Date(),\n type: NotificationType.Message,\n title: title,\n toasted: toasted,\n text: text,\n level: level,\n icon: icon\n };\n\n this.notificationService.notify(notification);\n }\n}\n","import { UnknownPersonTableListError } from 'src/apps/web/src/customization-data/reducers/people/unknown-persons.reducer';\n\nexport enum GroupingState {\n Processing = 'Processing',\n Processed = 'Completed',\n Failed = 'Failed'\n}\n\nexport type EmptyStateType = GroupingState | UnknownPersonTableListError;\n\nexport interface IUnknownPeopleEmptyState {\n title: string;\n content: string;\n shouldShowGroupFacesButton: boolean;\n}\n\ninterface DefaultState {\n default: IUnknownPeopleEmptyState;\n}\n\nexport type EmptyStateMap = {\n [K in EmptyStateType]?: IUnknownPeopleEmptyState;\n} & DefaultState;\n","import { IAction } from '@common/modules/shared/interfaces';\nimport { UIActionIcon, UIActionType } from '@common/modules/insights/interfaces';\n\nexport const cancelAction: IAction = {\n title: 'Cancel',\n key: 'Cancel',\n selected: false,\n type: UIActionType.CANCEL,\n value: 'Cancel',\n selectable: true,\n hasDrop: false,\n isDisabled: false,\n id: 'cancel'\n};\n\nexport const loadAction: IAction = {\n icon: '',\n title: '',\n key: 'GridLoadMoreButton',\n selected: false,\n type: UIActionType.SCROLL,\n value: '',\n selectable: true,\n hasDrop: true,\n id: 'Load'\n};\n\nexport const moveToModelAction: IAction = {\n title: 'Move to model',\n key: 'UnknownPersonDialogMoveToModel',\n selected: false,\n type: UIActionType.UPDATE,\n value: 'Update',\n selectable: true,\n hasDrop: false,\n isDisabled: false,\n id: 'moveToModel'\n};\n\nexport const barActions: IAction[] = [\n {\n icon: UIActionIcon.EDIT,\n title: 'Name person',\n key: 'UnknownPersonDialogNamePerson',\n selected: false,\n type: UIActionType.TOGGLE,\n value: 'Name person',\n selectable: true,\n hasDrop: false,\n id: 'namePerson'\n },\n {\n icon: UIActionIcon.TRASH,\n title: 'Delete',\n key: 'Delete',\n selected: false,\n type: UIActionType.DELETE_PERSON,\n value: 'Delete',\n selectable: true,\n hasDrop: false,\n id: 'deletePerson'\n }\n // @TODO: Enable when BE add support for PATCH API\n // {\n // icon: UIActionIcon.ADD_BIG,\n // title: 'Add Metadata',\n // key: 'AddMetadata',\n // selected: false,\n // type: UIActionType.EDIT_METADATA,\n // value: 'Add',\n // selectable: true,\n // hasDrop: false,\n // id: 'addMetadata'\n // }\n];\n\nexport const facesActions: IAction[] = [\n {\n icon: UIActionIcon.UPLOAD,\n title: 'Go to video',\n key: 'FacesCustomizationGoToVideoAction',\n selected: false,\n type: UIActionType.NAVIGATE,\n value: 'Navigate',\n selectable: true,\n hasDrop: false,\n id: 'goToVideo'\n },\n {\n icon: UIActionIcon.OPEN,\n title: 'Open image',\n key: 'FacesCustomizationOpenFaceAction',\n selected: false,\n type: UIActionType.OPEN,\n value: 'Open',\n selectable: true,\n hasDrop: false,\n id: 'OPEN_FACE'\n },\n {\n icon: UIActionIcon.TRASH,\n title: 'Delete',\n key: 'Delete',\n selected: false,\n type: UIActionType.DELETE_FACE,\n value: 'Delete',\n selectable: true,\n hasDrop: false,\n id: 'deleteFace'\n }\n];\n","export const resources = {\n Metadata: '',\n Save: '',\n Cancel: '',\n Delete: '',\n SettingsSave: '',\n AddMetadata: '',\n GridLoadMoreButton: '',\n FacesCustomizationGoToVideoAction: '',\n UnknownPersonDialogMoveToModel: '',\n UnknownPersonDialogSpinnerTitle: '',\n UnknownPersonDialogFacesTitle: '',\n UnknownPersonDialogPersonNameTitle: '',\n FacesCustomizationOpenFaceAction: '',\n UnknownPersonDialogNamePerson: '',\n UnknownPersonDialogNamePersonDescription: ''\n};\n","import { Component, EventEmitter, Input, OnInit, Output, ChangeDetectionStrategy, OnDestroy, ChangeDetectorRef } from '@angular/core';\n\nimport { Subject, takeUntil } from 'rxjs';\n\nimport { cloneDeep } from 'lodash-es';\n\nimport { ActionButtonType } from '@common/modules/shared/components/action-button/interfaces';\nimport { IDialogEvent } from '@common/modules/shared/components/dialog/interfaces';\nimport { IAction } from '@common/modules/shared/interfaces';\nimport { InsightsCommonUtilsService } from '@common/modules/insights-common/insights-common-utils.service';\nimport { UIActionType } from '@common/modules/insights/interfaces';\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\n\nimport { UnknownPersonService } from '../../../../../customization-data/services/people/unknown-person.service';\nimport { resources } from './resources';\nimport { IComponentData, IComponentState, IUnknownPersonFacesAction } from './interfaces';\nimport { loadAction, cancelAction, moveToModelAction, facesActions, barActions } from './actions';\n\nimport UnknownPersonFace = Microsoft.VideoIndexer.Contracts.UnknownPersonFace;\nimport UnknownPersonDetails = Microsoft.VideoIndexer.Contracts.UnknownPersonDetails;\n\n@Component({\n selector: 'vi-unknown-person-details-dialog',\n templateUrl: './unknown-person-details-dialog.component.html',\n styleUrls: ['./unknown-person-details-dialog.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class UnknownPersonDetailsDialogComponent implements OnInit, OnDestroy {\n @Input() public data: IComponentData;\n @Output() public componentEventEmitter = new EventEmitter();\n\n public fallbackUrl: string;\n public state: IComponentState;\n public ActionButtonType = ActionButtonType;\n public barActions = cloneDeep(barActions);\n public facesActions = cloneDeep(facesActions);\n public loadFacesAction = cloneDeep(loadAction);\n public moveToModelAction = cloneDeep(moveToModelAction);\n public cancelAction = cloneDeep(cancelAction);\n public unknownPerson: UnknownPersonDetails;\n public faces: IUnknownPersonFacesAction[] = [];\n public resources = resources;\n public FACE_PAGE_SIZE = 25;\n public facesPageIndex = 1;\n public METADATA_MAX_LENGTH = 1000;\n public METADATA_INPUT_HEIGHT = '132px';\n public METADATA_BUTTON_WIDTH = '82px';\n public CANCEL_BUTTON_MIN_WIDTH = '138px';\n public PRIMARY_BUTTON_MIN_WIDTH = '75px';\n\n private destroy$ = new Subject();\n\n constructor(\n private insightsCommonUtilsService: InsightsCommonUtilsService,\n private translateService: TranslateHelperService,\n private unknownPersonService: UnknownPersonService,\n private cdr: ChangeDetectorRef\n ) {}\n\n public ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n ngOnInit(): void {\n this.initTranslations();\n\n this.state = {\n moveToModel: false,\n editMetadata: false,\n metadata: '',\n personName: ''\n };\n\n this.fallbackUrl = this.insightsCommonUtilsService.FaceFallbackUrl;\n\n this.data.unknownPerson$.pipe(takeUntil(this.destroy$)).subscribe(unknownPerson => {\n this.unknownPerson = unknownPerson;\n this.initFaces(unknownPerson);\n this.cdr.detectChanges();\n });\n }\n\n public get loadedFaces() {\n return this.faces?.slice(0, this.loadedFacesCount);\n }\n\n public get facesCount() {\n return this.faces?.length;\n }\n\n public get loadedFacesCount() {\n return this.FACE_PAGE_SIZE * this.facesPageIndex;\n }\n\n public get showLoadMoreFaces() {\n return this.facesCount > this.loadedFacesCount;\n }\n\n public get canSaveMetadata() {\n return this.state.metadata !== this.unknownPerson?.metadata;\n }\n\n public get canMoveToModel() {\n return this.state.personName;\n }\n\n public onFacesActionClicked(action: IAction, data: UnknownPersonFace | IAction | null | IUnknownPersonFacesAction) {\n if (!action) {\n return;\n }\n switch (action.type) {\n case UIActionType.NAVIGATE:\n window.open(`/accounts/${this.data.accountId}/videos/${(data as UnknownPersonFace).videoId}`, '_blank');\n break;\n case UIActionType.DELETE_FACE:\n action.value = { unknownPersonId: this.unknownPerson?.id, faceId: (data as IUnknownPersonFacesAction).originalId };\n this.componentEventEmitter.emit({\n isDialogClose: false,\n action\n });\n break;\n case UIActionType.OPEN:\n window.open((data as IAction).value, '_blank');\n break;\n }\n }\n\n public loadMoreFaces() {\n this.facesPageIndex++;\n this.loadFacesAction = cloneDeep(loadAction);\n this.loadFacesAction.title = `+ ${this.facesCount - this.loadedFacesCount}`;\n }\n\n public saveMetadata() {\n // @TODO: implement\n }\n\n public resetMetadata() {\n this.state.editMetadata = false;\n this.state.metadata = this.unknownPerson?.metadata;\n }\n\n public onActionBarClicked(action: IAction) {\n switch (action.type) {\n case UIActionType.EDIT_METADATA:\n this.state.editMetadata = !this.state.editMetadata;\n break;\n case UIActionType.TOGGLE:\n this.state.moveToModel = !this.state.moveToModel;\n if (this.state.moveToModel) {\n action.isDisabled = true;\n }\n break;\n case UIActionType.DELETE_PERSON:\n this.componentEventEmitter.emit({\n isDialogClose: false,\n action\n });\n break;\n }\n }\n\n public moveToModel(action: IAction) {\n const payload = {\n unknownPerson: this.unknownPerson,\n personName: this.state.personName\n };\n\n this.componentEventEmitter.emit({\n isDialogClose: false,\n action: { ...action, value: payload }\n });\n }\n\n public close(action: IAction) {\n this.componentEventEmitter.emit({\n isDialogClose: true,\n action\n });\n }\n\n private initFaces(unknownPerson: UnknownPersonDetails) {\n this.faces = unknownPerson?.faces.map(\n (face, index) =>\n ({\n id: `face_${face.id}`,\n originalId: face.id,\n value: this.unknownPersonService.getThumbnailUrlWithToken(this.data.accountId, face.videoId, face.thumbnailId),\n title: '',\n titleAttribute: `face_${index + 1}`,\n type: UIActionType.IMAGE,\n videoId: face.videoId\n } as IUnknownPersonFacesAction)\n );\n\n this.loadFacesAction.title = `+ ${this.facesCount - this.loadedFacesCount}`;\n }\n\n private initTranslations() {\n this.translateService.translateResourcesInstant(resources);\n\n [this.moveToModelAction, this.cancelAction, ...this.barActions, ...this.facesActions].forEach(\n action => (action.title = this.resources[action.key])\n );\n }\n}\n","
\n
\n
\n \n \n
\n
\n\n
\n
\n \n

{{ resources?.UnknownPersonDialogNamePersonDescription }}

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

{{unknownPerson?.metadata}}

\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 {{ resources?.UnknownPersonDialogSpinnerTitle }}\n
\n
\n \n \n \n \n
\n
\n
\n
\n \n
","export enum JobType {\n UnknownPersonsGrouping = 'UnknownPersonsGrouping'\n}\n\nexport enum ActionId {\n MANAGE = 'MANAGE',\n DELETE_PERSON = 'DELETE_PERSON',\n REGROUP = 'REGROUP',\n DELETE_PEOPLE = 'DELETE_PEOPLE'\n}\n","export const resources = {\n UtilsServiceJustNow: '',\n FacesCustomizationEnterModelName: '',\n FaceImageTitle: '',\n FacesName: '',\n FacesModelName: '',\n FacesCustomizationExpandMenuTitle: ''\n};\n","export enum SpeechTab {\n DATASETS = 'Datasets',\n MODELS = 'Models'\n}\n","import { BasicFilterData } from '@common/modules/core/data-sources/interfaces';\n\nexport enum CustomizationFilterType {\n name = 'name',\n lastModifierUserName = 'lastModifierUserName',\n files = 'files',\n languageModel = 'languageModel',\n supportedLanguages = 'supportedLanguages',\n model = 'model',\n languageModelName = 'languageModelName',\n tags = 'tags',\n enabled = 'enabled'\n}\n\nexport function nameFilter(filterValue: string, item: BasicFilterData): boolean {\n if (!item[CustomizationFilterType.name]) {\n // eslint-disable-next-line no-console\n console.error('Missing name data');\n return false;\n }\n return !filterValue || item[CustomizationFilterType.name].toLocaleLowerCase().indexOf(filterValue.toLocaleLowerCase()) !== -1;\n}\n\nexport function ownerFilter(filterValue: string, item: BasicFilterData): boolean {\n if (!item[CustomizationFilterType.lastModifierUserName]) {\n // eslint-disable-next-line no-console\n console.error('Missing owner data');\n return false;\n }\n return !filterValue || item[CustomizationFilterType.lastModifierUserName].toLocaleLowerCase().indexOf(filterValue.toLocaleLowerCase()) !== -1;\n}\n\nexport function categoryFilter(filterValue: string, item: BasicFilterData, ...args): boolean {\n if (!item[CustomizationFilterType.tags]) {\n // eslint-disable-next-line no-console\n console.error('Missing tags data');\n return false;\n }\n return !filterValue || item[CustomizationFilterType.tags].toString().toLocaleLowerCase().indexOf(filterValue.toLocaleLowerCase()) !== -1;\n}\n","import { IUploadDialogDatasetState } from './components/speech/speech-upload-dataset-dialog/interfaces';\n\nimport SpeechDatasetInput = Microsoft.VideoIndexer.Contracts.SpeechDatasetInput;\n\nexport enum UILanguageModelActionType {\n DELETE_MODEL = 'DELETE_MODEL',\n RENAME_MODEL = 'RENAME_MODEL',\n ADD_MODEL = 'ADD_MODEL'\n}\n\nexport enum UILanguageIDActionType {\n DELETE_LANGUAGE_ID = 'DELETE_LANGUAGE_ID'\n}\n\nexport enum UILanguageModelFileActionType {\n PREVIEW_FILE = 'PREVIEW_FILE',\n DELETE_FILE = 'DELETE_FILE',\n DOWNLOAD_FILE = 'DOWNLOAD_FILE'\n}\n\nexport enum Customization_Error_Types {\n ALREADY_EXISTS = 'ALREADY_EXISTS',\n WIKI_ALREADY_EXISTS = 'WIKI_ALREADY_EXISTS',\n INVALID_INPUT = 'INVALID_INPUT',\n NOT_FOUND = 'NOT_FOUND'\n}\n\nexport enum LanguageModelState {\n Waiting = 'Waiting',\n Processing = 'Processing',\n Complete = 'Complete'\n}\n\nexport enum UIActionIcon {\n REMOVE_FROM = 'i-vi-removefrom'\n}\n\nexport interface UploadDataDetails extends IUploadDialogDatasetState {\n id: string;\n}\n\nexport interface IUISpeechDatasetInput extends SpeechDatasetInput {\n id: string;\n}\n","import { inject, Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, ResolveFn, RouterStateSnapshot } from '@angular/router';\n\nimport { filter, Observable, of, switchMap, take, withLatestFrom } from 'rxjs';\n\nimport { FeatureSwitchService } from '@common/modules/core/services/feature-switch/feature-switch.service';\nimport { FeatureSwitch } from '@common/modules/core/services/interfaces';\n\nimport { CoreStoreService } from '../../../core/services/core-store.service';\nimport { VIRoutingMap } from '../../../app/routing/routes';\nimport { EdgeExtensionsStoreService } from '../../../core/services/edge-extensions-store.service';\n\nexport const LiveEdgeGuard: ResolveFn> = (route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable => {\n return inject(LiveEdgeGuardService).canActivate(route);\n};\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LiveEdgeGuardService {\n constructor(\n private featureSwitchService: FeatureSwitchService,\n private coreStore: CoreStoreService,\n private edgeExtensionsStore: EdgeExtensionsStoreService\n ) {}\n\n public canActivate(route: ActivatedRouteSnapshot): Observable {\n if (!this.featureSwitchService.featureSwitch(FeatureSwitch.LiveEdge)) {\n return this.canNotActivate();\n }\n return this.edgeExtensionsStore.edgeExtensionsMetadataLoaded$.pipe(\n filter(loaded => loaded),\n take(1),\n withLatestFrom(this.coreStore.selectAccountIds$),\n switchMap(([loaded, accountIds]) => this.checkAccountExistence$(route, accountIds)),\n switchMap(isAccountExist => (isAccountExist ? this.checkExtensionConnectedToIotResource$(route) : of(false))),\n switchMap(isIotResourceHub => (isIotResourceHub ? this.checkLiveModuleLoaded$() : of(false)))\n );\n }\n\n /**\n * Check if the account ID from the route parameters exists in the logged-in user's account IDs.\n * If the account belongs to the user, selects the account and loads the edge extensions.\n * Otherwise, the route cannot be activated.\n */\n private checkAccountExistence$(route: ActivatedRouteSnapshot, accountIds: string[]): Observable {\n const accountId = route?.params?.accountId;\n if (!accountIds.includes(accountId)) {\n return this.canNotActivate();\n }\n this.coreStore.selectAccount(accountId, false, true);\n\n return this.edgeExtensionsStore.selectEdgeExtensionsLoaded$.pipe(\n filter(loaded => loaded),\n take(1),\n switchMap(() => of(true))\n );\n }\n\n /**\n * Select extension and checks if the extension is connected to an IoT resource.\n */\n private checkExtensionConnectedToIotResource$(route: ActivatedRouteSnapshot): Observable {\n const extensionId = route?.params?.extensionId;\n this.edgeExtensionsStore.selectEdgeExtensionByPrincipalId(extensionId);\n\n return this.edgeExtensionsStore.selectedEdgeExtensionIotHubResourceId$.pipe(\n switchMap(selectedEdgeExtensionIotHubResourceId => {\n //TODO: Add a check for selectedEdgeExtensionIotHubResourceId\n // if (!selectedEdgeExtensionIotHubResourceId) {\n // return this.canNotActivate();\n // }\n return of(true);\n })\n );\n }\n\n /**\n * Checks if the live mode is loaded.\n */\n private checkLiveModuleLoaded$(): Observable {\n return this.edgeExtensionsStore.isLiveModuleLoaded$.pipe(\n filter(loaded => loaded),\n take(1),\n switchMap(() => {\n return of(true);\n })\n );\n }\n\n private canNotActivate(): Observable {\n this.coreStore.navigate([`/${VIRoutingMap.pageNotFoundError.path}`]);\n return of(false);\n }\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { LoggerService } from '@common/modules/core/services/logger/logger.service';\nimport { IDialogEvent } from '@common/modules/shared/components/dialog/interfaces';\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\nimport { TrackService } from '@common/modules/core/services/track';\nimport { ActionButtonType } from '@common/modules/shared/components/action-button/interfaces';\n\nimport { cancelButtonAction, deleteButtonAction } from '../../core/models/actions';\nimport { AppListItem } from '../../data-source/app-list-data-source';\nimport { GalleryStoreService } from '../../services/gallery-store.service';\nimport { resources } from './resources';\n\n@Component({\n selector: 'vi-delete-video',\n templateUrl: './delete-video.component.html',\n styleUrls: ['./delete-video.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DeleteVideoComponent implements OnInit, OnDestroy {\n @Input() public data: AppListItem;\n @Output() public componentEventEmitter = new EventEmitter();\n\n public cancelButtonAction = cancelButtonAction;\n public deleteButtonAction = deleteButtonAction;\n public readonly BUTTONS_WIDTH = '84px';\n public resources = resources;\n public ActionButtonType = ActionButtonType;\n\n protected destroy$ = new Subject();\n\n constructor(\n private logger: LoggerService,\n private galleryStore: GalleryStoreService,\n private translate: TranslateHelperService,\n private trackService: TrackService\n ) {}\n\n public ngOnInit(): void {\n this.trackService.track('gallery.delete_video.init');\n this.setTranslations();\n }\n\n public ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n public deleteIndex() {\n this.logger.log(`[DeleteVideoComponent] Delete ${this.data.name} id: ${this.data.id}`);\n if (this.data.isBase) {\n this.galleryStore.deleteVideo(this.data.id, this.data.name);\n } else {\n this.galleryStore.deleteProject(this.data.id, this.data.name);\n }\n this.closeDialog();\n }\n\n public cancel() {\n this.logger.log(`[DeleteVideoComponent] Cancel delete ${this.data.name}`);\n this.closeDialog();\n }\n\n private closeDialog() {\n const dialogEvent: IDialogEvent = {\n isDialogClose: true,\n action: cancelButtonAction\n };\n this.componentEventEmitter.emit(dialogEvent);\n }\n\n private setTranslations(): void {\n this.translate\n .translateResources(resources, { videoName: this.data.name })\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n this.cancelButtonAction.title = this.resources.Cancel;\n this.deleteButtonAction.title = this.resources.Delete;\n });\n }\n}\n","

{{resources.GalleryDeleteVideoMassage}}

\n
\n \n \n \n\n \n \n \n
\n","export const resources = {\n GalleryDeleteVideoMassage: '',\n Delete: '',\n Cancel: ''\n};\n","import { createAction, props } from '@ngrx/store';\n\nimport { GalleryTab, GalleryView } from '../../interfaces';\n\nexport const selectTab = createAction('[GalleryView] Select Tab', props<{ tab: GalleryTab }>());\nexport const selectView = createAction('[GalleryView] Select View', props<{ view: GalleryView }>());\n","import { createAction, props } from '@ngrx/store';\n\nimport SinglePlaylistSearchResultV2 = Microsoft.VideoIndexer.Contracts.SinglePlaylistSearchResultV2;\n\nexport const clearGallery = createAction('[Gallery] Clear Gallery');\nexport const loadCurrentTab = createAction('[Gallery] Load Current Gallery Tab');\nexport const loadNext = createAction('[Gallery/API] Load Next');\nexport const loadProcessingVideo = createAction('[Gallery/API] Load Processing Videos', props<{ video: SinglePlaylistSearchResultV2 }>());\nexport const loadProcessingVideoDone = createAction('[Gallery] Load Processing Video Done', props<{ video: SinglePlaylistSearchResultV2 }>());\nexport const loadProcessingVideoOrProjectById = createAction('[Gallery] Load Processing Video Or Project By Id', props<{ id: string }>());\nexport const announceProcessVideos = createAction('[Gallery] Announce processing videos');\n","import { createAction, props } from '@ngrx/store';\n\nimport { APIErrors } from '@common/modules/core/services/toast/errors';\n\nimport { INextPage } from '../models/gallery';\n\nimport SinglePlaylistSearchResultV2 = Microsoft.VideoIndexer.Contracts.SinglePlaylistSearchResultV2;\n\nexport const loadLibrary = createAction('[Library/API] Load Library');\nexport const loadingLibrary = createAction('[Library] Loading Library');\nexport const loadLibraryNextPage = createAction('[Library/API] Load Next Page');\nexport const upsertVideos = createAction('[Library] Upsert Videos', props<{ videos: SinglePlaylistSearchResultV2[]; nextPage?: INextPage }>());\nexport const updateVideo = createAction('[Library] Update Video', props<{ video: SinglePlaylistSearchResultV2 }>());\nexport const updateVideoName = createAction('[Library] Update Video Name', props<{ id: string; name: string }>());\nexport const updateThumbnailId = createAction('[Library] Update Thumbnail Id', props<{ id: string; thumbnailId: string }>());\nexport const deleteVideo = createAction('[Library/API] Delete Video', props<{ id: string; name: string }>());\nexport const deleteVideoSuccess = createAction('[Library] Delete Video Success', props<{ id: string }>());\nexport const deleteVideoFailed = createAction('[Library] Delete Video Failed', props<{ id: string }>());\nexport const deleteVideos = createAction('[Library/API] Delete Videos', props<{ ids: string[] }>());\nexport const clearLibrary = createAction('[Library] Clear Library');\nexport const loadLibraryError = createAction('[Library] Load Library Error', props<{ errorType?: APIErrors }>());\nexport const loadVideo = createAction('[Library/API] Load video', props<{ id: string }>());\nexport const loadVideoError = createAction('[Library] Load Video Error');\n","import { createAction, props } from '@ngrx/store';\n\nimport { APIErrors } from '@common/modules/core/services/toast/errors';\n\nimport { INextPage } from '../models/gallery';\n\nimport SinglePlaylistSearchResultV2 = Microsoft.VideoIndexer.Contracts.SinglePlaylistSearchResultV2;\n\nexport const loadProjects = createAction('[Projects/API] Load Projects');\nexport const loadingProjects = createAction('[Projects] Loading Projects');\nexport const loadProjectsNextPage = createAction('[Projects/API] Load Next Page');\nexport const upsertVideos = createAction('[Projects/API] Upsert Videos', props<{ videos: SinglePlaylistSearchResultV2[]; nextPage?: INextPage }>());\nexport const updateVideo = createAction('[Projects] Update Video', props<{ video: SinglePlaylistSearchResultV2 }>());\nexport const updateVideoName = createAction('[Projects] Update Video Name', props<{ id: string; name: string }>());\nexport const updateThumbnailId = createAction('[Projects] Update Thumbnail Id', props<{ id: string; thumbnailId: string }>());\nexport const createProjectItem = createAction('[Projects] Add Create Project Item');\nexport const deleteVideo = createAction('[Projects/API] Delete Video', props<{ id: string; name: string }>());\nexport const deleteVideoSuccess = createAction('[Projects] Delete Video Success', props<{ id: string }>());\nexport const deleteVideoFailed = createAction('[Projects] Delete Video Failed', props<{ id: string }>());\nexport const deleteVideos = createAction('[Projects/API] Delete Videos', props<{ ids: string[] }>());\nexport const clearProjects = createAction('[Projects/API] Clear Projects');\nexport const loadProjectsError = createAction('[Projects] Load Projects Error', props<{ errorType?: APIErrors }>());\n","import { createAction, props } from '@ngrx/store';\n\nimport { INextPage } from '../models/gallery';\n\nimport SinglePlaylistSearchResultV2 = Microsoft.VideoIndexer.Contracts.SinglePlaylistSearchResultV2;\n\nexport const loadSamples = createAction('[Samples/API] Load Samples');\nexport const loadingSamples = createAction('[Samples] Loading Samples');\nexport const loadSamplesNextPage = createAction('[Samples/API] Load Next Page');\nexport const upsertVideos = createAction('[Samples] Upsert Videos', props<{ videos: SinglePlaylistSearchResultV2[]; nextPage?: INextPage }>());\nexport const updateVideo = createAction('[Samples] Update Video', props<{ video: SinglePlaylistSearchResultV2 }>());\nexport const clearSamples = createAction('[Samples/API] Clear Samples');\nexport const loadSamplesError = createAction('[Samples] Load Samples Error');\nexport const deleteVideoSuccess = createAction('[Samples] Delete Video Success', props<{ id: string }>());\n","import { createAction, props } from '@ngrx/store';\n\nimport { ISearchRequestParams } from '@common/modules/api/interfaces';\n\nimport { INextPage } from '../models/gallery';\n\nimport SinglePlaylistSearchResultV2 = Microsoft.VideoIndexer.Contracts.SinglePlaylistSearchResultV2;\n\nexport const searchVideos = createAction('[Search/API] Search Videos', props<{ params: ISearchRequestParams }>());\nexport const searchProjects = createAction('[Search/API] Search Projects', props<{ params: ISearchRequestParams }>());\nexport const upsertVideos = createAction('[Search] Upsert Videos', props<{ videos: SinglePlaylistSearchResultV2[]; nextPage?: INextPage }>());\nexport const updateVideo = createAction('[Search] Update Video', props<{ video: SinglePlaylistSearchResultV2 }>());\nexport const clearSearch = createAction('[Search] Clear Search');\nexport const searchNextSearchResults = createAction('[Search/API] Search Next Search Results');\nexport const searchVideosError = createAction('[Search] Search Videos Error');\nexport const deleteVideo = createAction('[Search] Delete Video', props<{ id: string }>());\n","import { UIActionIcon, UIActionType } from '@common/modules/insights/interfaces';\nimport { IAction } from '@common/modules/shared/interfaces';\n\nimport { UIGalleryActionType, UIGalleryTabsActionType } from './gallery';\n\nexport const indexingSummaryAction: IAction = {\n icon: UIActionIcon.INDEXING_SETTINGS,\n key: 'IndexingSettings',\n title: '',\n type: UIActionType.INDEXING_SETTINGS,\n selected: false,\n value: UIGalleryActionType.INDEXING_SETTINGS,\n selectable: true,\n id: 'INDEXING_SETTINGS',\n titleAttribute: 'gallery-indexing-settings'\n};\n\nexport const galleryActionsAmsless: IAction[] = [\n {\n icon: UIActionIcon.INDEX,\n key: 'Reindex',\n title: '',\n type: UIActionType.RE_INDEX,\n selected: false,\n value: UIGalleryActionType.REINDEX_VIDEO,\n selectable: true,\n id: 'REINDEX',\n titleAttribute: 'gallery-reindex' // for all actions\n },\n {\n icon: UIActionIcon.TRASH,\n key: 'Delete',\n title: 'Delete',\n type: UIActionType.DELETE,\n selected: false,\n value: UIGalleryActionType.DELETE_VIDEO,\n selectable: true,\n id: 'DELETE'\n },\n {\n icon: UIActionIcon.COPY,\n key: 'CopyFileId',\n title: '',\n type: UIActionType.COPY,\n selected: false,\n value: UIGalleryActionType.COPY_FILE_ID,\n selectable: true,\n id: 'copyFileId'\n },\n {\n icon: UIActionIcon.OPEN,\n key: 'OpenInNewTab',\n title: '',\n type: UIActionType.OPEN_IN_NEW_TAB,\n selected: false,\n value: UIGalleryActionType.OPEN_IN_NEW_TAB,\n selectable: true,\n id: 'openInNewTab'\n }\n];\n\nexport const galleryActions: IAction[] = [\n {\n icon: UIActionIcon.INDEX,\n key: 'Reindex',\n title: '',\n type: UIActionType.RE_INDEX,\n selected: false,\n value: UIGalleryActionType.REINDEX_VIDEO,\n selectable: true,\n id: 'REINDEX',\n titleAttribute: 'gallery-reindex' // for all actions\n },\n {\n icon: UIActionIcon.EDITOR,\n key: 'Editor',\n title: '',\n type: UIActionType.EDITOR,\n selected: false,\n value: UIGalleryActionType.EDIT_VIDEO,\n selectable: true,\n id: 'EDITOR'\n },\n {\n icon: UIActionIcon.TRASH,\n key: 'Delete',\n title: 'Delete',\n type: UIActionType.DELETE,\n selected: false,\n value: UIGalleryActionType.DELETE_VIDEO,\n selectable: true,\n id: 'DELETE'\n },\n {\n icon: UIActionIcon.COPY,\n key: 'CopyFileId',\n title: '',\n type: UIActionType.COPY,\n selected: false,\n value: UIGalleryActionType.COPY_FILE_ID,\n selectable: true,\n id: 'copyFileId'\n },\n {\n icon: UIActionIcon.OPEN,\n key: 'OpenInNewTab',\n title: '',\n type: UIActionType.OPEN_IN_NEW_TAB,\n selected: false,\n value: UIGalleryActionType.OPEN_IN_NEW_TAB,\n selectable: true,\n id: 'openInNewTab'\n }\n];\n\nexport const galleryProjectActions: IAction[] = [\n {\n icon: UIActionIcon.PLAY,\n key: 'Play',\n title: 'Play',\n type: UIActionType.PLAY,\n selected: false,\n value: UIGalleryActionType.PLAY_VIDEO,\n selectable: true,\n id: 'PLAY',\n titleAttribute: 'gallery-play'\n },\n {\n icon: UIActionIcon.TRASH,\n key: 'Delete',\n title: 'Delete',\n type: UIActionType.DELETE,\n selected: false,\n value: UIGalleryActionType.DELETE_VIDEO,\n selectable: true,\n id: 'DELETE'\n }\n];\n\nexport const galleryPlayAction: IAction = {\n icon: UIActionIcon.OPEN,\n key: 'GalleryActionPlay',\n title: 'Play',\n type: UIActionType.OPEN,\n selected: false,\n value: UIGalleryActionType.PLAY_VIDEO,\n selectable: true,\n id: 'PLAY'\n};\n\nexport const galleryGridViewAction: IAction = {\n icon: UIActionIcon.GRID,\n key: 'Tiles',\n title: '',\n type: UIActionType.GRID,\n selected: false,\n value: UIGalleryTabsActionType.GRID_VIEW,\n selectable: true,\n id: 'grid-view',\n titleAttribute: 'GalleryLayoutLabel'\n};\n\nexport const galleryListViewAction: IAction = {\n icon: UIActionIcon.LIST,\n key: 'List',\n title: '',\n type: UIActionType.LIST,\n selected: false,\n value: UIGalleryTabsActionType.LIST_VIEW,\n selectable: true,\n id: 'list-view',\n titleAttribute: 'GalleryLayoutLabel'\n};\n\nexport const galleryGridViewMainAction: IAction = {\n ...galleryGridViewAction,\n id: 'grid-view-main'\n};\n\nexport const galleryListViewMainAction: IAction = {\n ...galleryListViewAction,\n id: 'list-view-main'\n};\n\nexport const galleryViewActions: IAction[] = [galleryGridViewAction, galleryListViewAction];\n\nexport const galleryTabsNoTitleActions: IAction[] = [\n {\n icon: UIActionIcon.GRID,\n key: 'GalleryActionGrid',\n type: UIActionType.GRID_MINI,\n selected: false,\n value: UIGalleryTabsActionType.GRID_VIEW,\n selectable: true,\n id: 'GRID'\n },\n {\n icon: UIActionIcon.LIST,\n key: 'GalleryActionList',\n type: UIActionType.LIST_MINI,\n selected: false,\n value: UIGalleryTabsActionType.LIST_VIEW,\n selectable: true,\n id: 'LIST'\n }\n];\n\nexport const cancelButtonAction: IAction = {\n title: 'Cancel',\n key: 'Cancel',\n selected: false,\n type: UIActionType.CANCEL,\n value: 'Cancel',\n selectable: true,\n hasDrop: false,\n id: 'Cancel'\n};\n\nexport const deleteButtonAction: IAction = {\n title: 'Delete',\n key: 'Delete',\n selected: false,\n type: UIActionType.DELETE,\n value: 'Delete',\n selectable: true,\n hasDrop: false,\n id: 'Delete'\n};\n\nexport const mainAction: IAction = {\n icon: 'i-vi-more',\n titleAttribute: 'Video options',\n key: 'VideoOptions',\n title: '',\n selected: false,\n type: UIActionType.EDIT,\n value: UIActionType.EDIT,\n selectable: true,\n hasDrop: true,\n id: 'galleryVideo'\n};\n\nexport const searchAction: IAction = {\n title: 'Search',\n key: 'Search',\n type: UIActionType.SEARCH,\n value: UIActionType.SEARCH,\n id: 'search'\n};\n\nexport const clearFiltersAction: IAction = {\n title: 'Clear filters',\n key: 'ClearFilters',\n type: UIActionType.CLEAR_FILTERS,\n value: UIActionType.CLEAR_FILTERS,\n id: 'clearFilters'\n};\n","import { UIActionType } from '@common/modules/insights/interfaces';\nimport { UIFilterType } from '@common/modules/shared/components/filter-item/interfaces';\nimport { IAction } from '@common/modules/shared/interfaces';\nimport * as utils from '@common/modules/utils/time';\n\nexport const MAX_FILTERS = 5;\n\nexport enum IGalleryTab {\n Library = 0,\n Projects,\n Samples\n}\n\nexport enum IGalleryView {\n Grid = 'Grid',\n List = 'List',\n Search = 'Search'\n}\n\nexport enum UIGalleryActionType {\n INDEXING_SETTINGS = 'INDEXING_SETTINGS',\n DELETE_VIDEO = 'DELETE_VIDEO',\n REINDEX_VIDEO = 'REINDEX_VIDEO',\n EDIT_VIDEO = 'EDIT_VIDEO',\n PLAY_VIDEO = 'PLAY_VIDEO',\n COPY_FILE_ID = 'COPY_FILE_ID',\n OPEN_IN_NEW_TAB = 'OPEN_IN_NEW_TAB',\n PEOPLE_FILTER = 'PEOPLE_FILTER',\n TOPICS_FILTER = 'TOPICS_FILTER',\n KEYWORDS_FILTER = 'KEYWORDS_FILTER',\n EMOTIONS_FILTER = 'EMOTIONS_FILTER',\n SENTIMENTS_FILTER = 'SENTIMENTS_FILTER',\n LABELS_FILTER = 'LABELS_FILTER',\n SPEAKERS_FILTER = 'SPEAKERS_FILTER',\n TRANSCRIPT_FILTER = 'TRANSCRIPT_FILTER',\n OCR_FILTER = 'OCR_FILTER',\n FILE_NAME_FILTER = 'FILE_NAME_FILTER',\n CUSTOM_TAGS_FILTER = 'CUSTOM_TAGS_FILTER',\n NAMED_PEOPLE_FILTER = 'NAMED_PEOPLE_FILTER',\n BRANDS_FILTER = 'BRANDS_FILTER',\n NAMED_LOCATIONS_FILTER = 'NAMED_LOCATIONS_FILTER',\n SEARCH_CHANNEL_FILTER = 'SEARCH_CHANNEL_FILTER',\n SEARCH_OWNER_FILTER = 'SEARCH_OWNER_FILTER',\n ALL_INSIGHTS_FILTER = 'ALL_INSIGHTS_FILTER',\n DETECTED_OBJECTS_FILTER = 'DETECTED_OBJECTS_FILTER'\n}\n\nexport enum UIGalleryTabsActionType {\n GRID_VIEW = 'GRID_VIEW',\n LIST_VIEW = 'LIST_VIEW'\n}\n\nexport interface IVideoItem {\n name: string;\n createTime: number;\n createDate: string;\n createTimeFormated: string;\n lastIndexTimeFormatted: string;\n lastIndexedDate?: string;\n lastModifiedTimeFormatted?: string;\n privacyModeText: string;\n lastModified: string;\n userName: string;\n shortName: string;\n privacyMode: Microsoft.VideoIndexer.Contracts.PrivacyMode;\n accountId: string;\n sourceLanguage: string;\n sourceLanguages: string[];\n shortUserName: string;\n indexingPreset: string;\n streamingPreset?: string;\n state: string;\n moderationState: Microsoft.VideoIndexer.Contracts.ModerationState;\n reviewState: Microsoft.VideoIndexer.Contracts.ReviewState;\n reviewStateText?: string;\n processingProgress: string;\n progress: number;\n searchable?: boolean;\n uploadedByMe: boolean;\n isOwned: boolean;\n durationInSeconds: number;\n durationText: string;\n id: string;\n isBase: boolean;\n thumbnail: string;\n personModelId?: string;\n lastIndexed: string;\n deleteInProcess?: boolean;\n type?: VideoItemType;\n searchMatches?: Microsoft.VideoIndexer.Contracts.SearchMatch[];\n isExpanded?: boolean;\n thumbnailId?: string;\n isEditorSupported?: boolean;\n isEmptyProject?: boolean;\n maxConfidence?: Microsoft.VideoIndexer.Contracts.MaxConfidence;\n info?: {\n mediasCount: number;\n participantsCount: number;\n facesCount: number;\n snippetsCount: number;\n highlights: string;\n };\n}\n\nexport const emptyProjectItem: Microsoft.VideoIndexer.Contracts.SinglePlaylistSearchResultV2 = {\n accountId: 'accountId',\n id: 'emptyProjectItem',\n partition: '',\n externalId: '',\n metadata: '',\n name: 'Create new project',\n description: '',\n created: '',\n lastModified: '',\n lastIndexed: '',\n privacyMode: null,\n userName: '',\n isOwned: false,\n isBase: false,\n state: null,\n moderationState: null,\n reviewState: null,\n processingProgress: '',\n durationInSeconds: 0,\n thumbnailVideoId: '',\n thumbnailId: '',\n searchMatches: null,\n indexingPreset: '',\n streamingPreset: '',\n sourceLanguage: null,\n sourceLanguages: null,\n personModelId: null,\n isEmptyProject: true\n};\n\nexport enum VideoItemType {\n Account = 'Account',\n Project = 'Project',\n Sample = 'Sample'\n}\n\nexport enum IGalleryFilterType {\n DROP_DOWN = 'DROP_DOWN',\n TEXT = 'TEXT',\n TIME = 'TIME'\n}\n\nexport enum IGalleryFilterInsightType {\n People = 'people',\n Owner = 'owner',\n Language = 'language'\n}\n\nexport interface IGalleryFilter {\n placeHolderText: string;\n placeHolderKey: string;\n filterAction: IAction;\n type: UIFilterType;\n enableMultipleSelection?: boolean; // Relevant only for DROP_DOWN\n placeHolderIcon?: string;\n}\n\nexport interface INextPage {\n pageSize: number;\n skip: number;\n done: boolean;\n}\n\nexport interface IPlayerPlaylistItemTimeRange {\n end: number;\n start: number;\n}\n\nexport interface IDelete {\n id: string;\n index: Microsoft.VideoIndexer.Contracts.PlaylistContractV2;\n}\n\nexport class EventTimeRange {\n public start: string;\n public end: string;\n public startInSeconds: number;\n public endInSeconds: number;\n public fStart: string;\n public fEnd: string;\n public fStartInSeconds: number;\n public fEndInSeconds: number;\n\n constructor(tr?: Microsoft.VideoIndexer.Contracts.ElementInstance) {\n this.startInSeconds = tr ? utils.getSeconds(tr.start) : -1;\n this.endInSeconds = tr ? utils.getSeconds(tr.end) : -1;\n this.start = tr ? tr.start.toString() : '';\n this.end = tr ? tr.end.toString() : '';\n this.fStart = tr ? tr.adjustedStart.toString() : '';\n this.fEnd = tr ? tr.adjustedEnd.toString() : '';\n this.fStartInSeconds = tr ? utils.getSeconds(tr.adjustedStart) : -1;\n this.fEndInSeconds = tr ? utils.getSeconds(tr.adjustedEnd) : -1;\n }\n}\n\nexport const scopeFilterIssue: IGalleryFilter[] = [\n {\n placeHolderText: 'Enter scope',\n placeHolderKey: '',\n type: UIFilterType.DROP_DOWN,\n enableMultipleSelection: false,\n filterAction: {\n icon: '',\n title: 'Scope',\n key: 'VideosGalleryScopeFilter',\n type: UIGalleryActionType.SEARCH_CHANNEL_FILTER,\n value: '',\n selected: false,\n selectable: true,\n hasDrop: true,\n id: 'channel',\n applyValue: true\n }\n }\n];\n\nexport const peopleFilterIssue: IGalleryFilter = {\n placeHolderText: 'Enter person name',\n placeHolderKey: 'VideosGalleryEnterPersonNamePlaceholder',\n type: UIFilterType.TEXT,\n filterAction: {\n title: 'People',\n key: 'VideosGalleryPeopleFilter',\n selected: false,\n type: UIGalleryActionType.PEOPLE_FILTER,\n value: IGalleryFilterInsightType.People,\n icon: '',\n selectable: true,\n id: 'people'\n }\n};\n\nexport const ownerFilterIssue: IGalleryFilter = {\n placeHolderText: 'Enter owner name',\n placeHolderKey: 'VideosGalleryEnterOwnerNamePlaceholder',\n type: UIFilterType.TEXT,\n filterAction: {\n title: 'Owner',\n key: 'VideosGalleryOwnerFilter',\n selected: false,\n type: UIGalleryActionType.SEARCH_OWNER_FILTER,\n value: IGalleryFilterInsightType.Owner,\n icon: '',\n selectable: true,\n id: 'owner'\n }\n};\n\nexport const languageFilterIssue: IGalleryFilter = {\n placeHolderText: 'Enter language',\n placeHolderKey: 'VideosGalleryEnterLanguageNamePlaceholder',\n type: UIFilterType.DROP_DOWN,\n enableMultipleSelection: false,\n filterAction: {\n icon: '',\n title: 'Language',\n key: 'EditorTranslate',\n type: UIActionType.LANGUAGE,\n value: IGalleryFilterInsightType.Language,\n selected: false,\n selectable: true,\n hasDrop: true,\n id: 'language',\n applyValue: true\n }\n};\n\nexport const filterIssues: IGalleryFilter[] = [peopleFilterIssue, ownerFilterIssue, languageFilterIssue];\n\nexport enum GalleryProcessingProgress {\n PROCESSED = '100%',\n DELETING = 'Deleting'\n}\n","import { createReducer, Action, on } from '@ngrx/store';\n\nimport { GalleryTab, GalleryView } from '../../interfaces';\nimport * as ViewActions from '../actions/gallery-view.actions';\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport interface State {\n selectedTab: GalleryTab;\n view: GalleryView;\n}\n\nconst initialState: State = {\n selectedTab: GalleryTab.Library,\n view: getGalleryView()\n};\n\nfunction getGalleryView() {\n let viewStorage: string;\n try {\n viewStorage = window.localStorage?.getItem('GalleryView');\n } catch (error) {\n viewStorage = '';\n }\n return viewStorage === 'List' ? GalleryView.List : GalleryView.Grid;\n}\n\nconst viewReducer = createReducer(\n initialState,\n on(ViewActions.selectTab, (state, { tab }) => {\n return {\n ...state,\n selectedTab: tab\n };\n }),\n on(ViewActions.selectView, (state, { view }) => {\n return {\n ...state,\n view: view\n };\n })\n);\n\nexport function reducer(state: State | undefined, action: Action) {\n return viewReducer(state, action);\n}\n","import { createFeatureSelector, ActionReducerMap } from '@ngrx/store';\n\nimport * as fromLibrary from './library.reducer';\nimport * as fromProjects from './projects.reducer';\nimport * as fromSamples from './samples.reducer';\nimport * as fromSearch from './search.reducer';\nimport * as fromGalleryView from './gallery-view.reducer';\n\nexport interface IState {\n library: fromLibrary.State;\n projects: fromProjects.State;\n samples: fromSamples.State;\n search: fromSearch.IState;\n galleryView: fromGalleryView.State;\n}\n\nexport const reducers: ActionReducerMap = {\n library: fromLibrary.reducer,\n projects: fromProjects.reducer,\n samples: fromSamples.reducer,\n search: fromSearch.reducer,\n galleryView: fromGalleryView.reducer\n};\n\nexport const selectGalleryState = createFeatureSelector('gallery');\n","import { EntityState, EntityAdapter, createEntityAdapter } from '@ngrx/entity';\nimport { createReducer, Action, on } from '@ngrx/store';\n\nimport { APIErrors } from '@common/modules/core/services/toast/errors';\n\nimport { GalleryProcessingProgress, INextPage } from '../models/gallery';\nimport * as LibraryActions from '../actions/library.actions';\n\nimport SinglePlaylistSearchResultV2 = Microsoft.VideoIndexer.Contracts.SinglePlaylistSearchResultV2;\n\ninterface IVideo extends SinglePlaylistSearchResultV2 {\n prevProcessingProgress?: string;\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport interface State extends EntityState {\n // additional entities state properties\n selectedVideoId: string;\n loaded: boolean;\n loading: boolean;\n nextPage?: INextPage;\n loadingNext: boolean;\n error: boolean;\n errorType?: APIErrors;\n}\n\nfunction selectVideoId(a: IVideo): string {\n return a.id;\n}\n\nconst adapter: EntityAdapter = createEntityAdapter({\n selectId: selectVideoId\n});\n\nconst initialState: State = adapter.getInitialState({\n // additional entity state properties\n selectedVideoId: null,\n loaded: false,\n loading: false,\n nextPage: {\n pageSize: null,\n skip: null,\n done: false\n },\n loadingNext: false,\n error: false,\n errorType: null\n});\n\nconst libraryReducer = createReducer(\n initialState,\n on(LibraryActions.updateVideo, (state, { video }) => {\n return adapter.upsertOne(video, state);\n }),\n on(LibraryActions.upsertVideos, (state, { videos, nextPage }) => {\n return adapter.upsertMany(videos, {\n ...state,\n nextPage: nextPage,\n loaded: true,\n loading: false,\n loadingNext: false\n });\n }),\n on(LibraryActions.deleteVideo, (state, { id }) => {\n // save the current processing progress so we can restore it if the delete fails\n const prevProcessingProgress = state.entities[id].processingProgress;\n\n return adapter.updateOne({ id: id, changes: { prevProcessingProgress, processingProgress: GalleryProcessingProgress.DELETING } }, state);\n }),\n on(LibraryActions.deleteVideoSuccess, (state, { id }) => {\n return adapter.removeOne(id, state);\n }),\n on(LibraryActions.deleteVideoFailed, (state, { id }) => {\n // restore the processing progress from before the delete operation\n const processingProgress = state.entities[id].prevProcessingProgress;\n\n return adapter.updateOne({ id: id, changes: { processingProgress, prevProcessingProgress: null } }, state);\n }),\n on(LibraryActions.deleteVideos, (state, { ids }) => {\n return adapter.removeMany(ids, state);\n }),\n on(LibraryActions.clearLibrary, (state, {}) => {\n return adapter.removeAll({\n ...state,\n loaded: false,\n loading: false,\n nextPage: {\n pageSize: null,\n skip: null,\n done: false\n },\n loadingNext: false,\n error: false,\n selectedVideoId: null,\n errorType: null\n });\n }),\n on(LibraryActions.loadLibraryNextPage, (state, {}) => {\n return {\n ...state,\n loadingNext: true\n };\n }),\n on(LibraryActions.loadLibraryError, (state, { errorType }) => {\n return {\n ...state,\n error: true,\n errorType\n };\n }),\n on(LibraryActions.loadingLibrary, (state, {}) => {\n return {\n ...state,\n loading: true\n };\n }),\n on(LibraryActions.updateVideoName, (state, { id, name }) => {\n return adapter.updateOne({ id: id, changes: { name: name } }, state);\n }),\n on(LibraryActions.updateThumbnailId, (state, { id, thumbnailId }) => {\n return adapter.updateOne({ id: id, changes: { thumbnailId: thumbnailId } }, state);\n })\n);\n\nexport function reducer(state: State | undefined, action: Action) {\n return libraryReducer(state, action);\n}\n","import { createEntityAdapter, EntityAdapter, EntityState } from '@ngrx/entity';\nimport { Action, createReducer, on } from '@ngrx/store';\n\nimport { APIErrors } from '@common/modules/core/services/toast/errors';\n\nimport * as ProjectsActions from '../actions/projects.actions';\nimport { emptyProjectItem, GalleryProcessingProgress, INextPage } from '../models/gallery';\n\nimport SinglePlaylistSearchResultV2 = Microsoft.VideoIndexer.Contracts.SinglePlaylistSearchResultV2;\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport interface State extends EntityState {\n // additional entities state properties\n selectedVideoId: string;\n loaded: boolean;\n loading: boolean;\n nextPage?: INextPage;\n loadingNext: boolean;\n error: boolean;\n errorType?: APIErrors;\n}\n\nfunction selectVideoId(a: SinglePlaylistSearchResultV2): string {\n return a.id;\n}\n\nconst adapter: EntityAdapter = createEntityAdapter({\n selectId: selectVideoId\n});\n\nconst initialState: State = adapter.getInitialState({\n // additional entity state properties\n selectedVideoId: null,\n loaded: false,\n loading: false,\n nextPage: {\n pageSize: null,\n skip: null,\n done: false\n },\n loadingNext: false,\n error: false,\n errorType: null\n});\n\nconst projectsReducer = createReducer(\n initialState,\n on(ProjectsActions.createProjectItem, (state, {}) => {\n return adapter.upsertOne(emptyProjectItem, state);\n }),\n on(ProjectsActions.updateVideo, (state, { video }) => {\n return adapter.updateOne({ id: video.id, changes: video }, state);\n }),\n on(ProjectsActions.upsertVideos, (state, { videos, nextPage }) => {\n return adapter.upsertMany(videos, {\n ...state,\n loaded: true,\n loading: false,\n nextPage,\n loadingNext: false\n });\n }),\n on(ProjectsActions.deleteVideo, (state, { id }) => {\n return adapter.updateOne({ id, changes: { processingProgress: GalleryProcessingProgress.DELETING } }, state);\n }),\n on(ProjectsActions.deleteVideoSuccess, (state, { id }) => {\n return adapter.removeOne(id, state);\n }),\n on(ProjectsActions.deleteVideoFailed, (state, { id }) => {\n return adapter.updateOne({ id, changes: { processingProgress: GalleryProcessingProgress.PROCESSED } }, state);\n }),\n on(ProjectsActions.deleteVideos, (state, { ids }) => {\n return adapter.removeMany(ids, state);\n }),\n on(ProjectsActions.clearProjects, (state, {}) => {\n return adapter.removeAll({\n ...state,\n loaded: false,\n loading: false,\n nextPage: {\n pageSize: null,\n skip: null,\n done: false\n },\n loadingNext: false,\n error: false,\n errorType: null\n });\n }),\n on(ProjectsActions.loadProjectsNextPage, (state, {}) => {\n return {\n ...state,\n loadingNext: true\n };\n }),\n on(ProjectsActions.loadProjectsError, (state, { errorType }) => {\n return {\n ...state,\n error: true,\n errorType\n };\n }),\n on(ProjectsActions.loadingProjects, (state, {}) => {\n return {\n ...state,\n loading: true\n };\n }),\n on(ProjectsActions.updateVideoName, (state, { id, name }) => {\n return adapter.updateOne({ id: id, changes: { name: name } }, state);\n }),\n on(ProjectsActions.updateThumbnailId, (state, { id, thumbnailId }) => {\n return adapter.updateOne({ id: id, changes: { thumbnailId: thumbnailId } }, state);\n })\n);\n\nexport function reducer(state: State | undefined, action: Action) {\n return projectsReducer(state, action);\n}\n","import { EntityState, EntityAdapter, createEntityAdapter } from '@ngrx/entity';\nimport { createReducer, Action, on } from '@ngrx/store';\n\nimport { APIErrors } from '@common/modules/core/services/toast/errors';\n\nimport { INextPage } from '../models/gallery';\nimport * as SamplesActions from '../actions/samples.actions';\n\nimport SinglePlaylistSearchResultV2 = Microsoft.VideoIndexer.Contracts.SinglePlaylistSearchResultV2;\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport interface State extends EntityState {\n // additional entities state properties\n selectedVideoId: string;\n loaded: boolean;\n loading: boolean;\n nextPage?: INextPage;\n loadingNext: boolean;\n error: boolean;\n errorType?: APIErrors;\n}\n\nfunction selectVideoId(a: SinglePlaylistSearchResultV2): string {\n return a.id;\n}\n\nconst adapter: EntityAdapter = createEntityAdapter({\n selectId: selectVideoId\n});\n\nconst initialState: State = adapter.getInitialState({\n // additional entity state properties\n selectedVideoId: null,\n loaded: false,\n loading: false,\n nextPage: {\n pageSize: null,\n skip: null,\n done: false\n },\n loadingNext: false,\n error: false\n});\n\nconst samplesReducer = createReducer(\n initialState,\n on(SamplesActions.upsertVideos, (state, { videos, nextPage }) => {\n return adapter.upsertMany(videos, {\n ...state,\n loaded: true,\n nextPage: nextPage,\n loadingNext: false,\n loading: false\n });\n }),\n on(SamplesActions.clearSamples, (state, {}) => {\n return adapter.removeAll({\n ...state,\n loaded: false,\n loading: false,\n nextPage: {\n pageSize: null,\n skip: null,\n done: false\n },\n loadingNext: false,\n error: false\n });\n }),\n on(SamplesActions.loadSamplesNextPage, (state, {}) => {\n return {\n ...state,\n loadingNext: true\n };\n }),\n on(SamplesActions.loadSamplesError, (state, {}) => {\n return {\n ...state,\n error: true\n };\n }),\n on(SamplesActions.loadingSamples, (state, {}) => {\n return {\n ...state,\n loading: true\n };\n }),\n on(SamplesActions.deleteVideoSuccess, (state, { id }) => {\n return adapter.removeOne(id, state);\n }),\n on(SamplesActions.updateVideo, (state, { video }) => {\n return adapter.upsertOne(video, state);\n })\n);\n\nexport function reducer(state: State | undefined, action: Action) {\n return samplesReducer(state, action);\n}\n","import { EntityState, EntityAdapter, createEntityAdapter } from '@ngrx/entity';\nimport { createReducer, Action, on } from '@ngrx/store';\n\nimport { immerOn } from 'ngrx-immer/store';\n\nimport { ISearchRequestParams } from '@common/modules/api/interfaces';\n\nimport { INextPage } from '../models/gallery';\nimport * as SearchActions from '../actions/search.actions';\n\nimport SinglePlaylistSearchResultV2 = Microsoft.VideoIndexer.Contracts.SinglePlaylistSearchResultV2;\n\nexport interface IState extends EntityState {\n // additional entities state properties\n selectedVideoId: string;\n loading: boolean;\n searching: boolean;\n nextPage: INextPage;\n params: ISearchRequestParams;\n loadingNext: boolean;\n error: boolean;\n}\n\nfunction selectVideoId(a: SinglePlaylistSearchResultV2): string {\n return a.id;\n}\n\nconst adapter: EntityAdapter = createEntityAdapter({\n selectId: selectVideoId\n});\n\nconst initialState: IState = adapter.getInitialState({\n // additional entity state properties\n selectedVideoId: null,\n loading: false,\n searching: false,\n nextPage: {\n pageSize: null,\n skip: null,\n done: false\n },\n params: {},\n loadingNext: false,\n error: false\n});\n\nconst searchReducer = createReducer(\n initialState,\n on(SearchActions.searchVideos, (state, { params }) => {\n return {\n ...state,\n loading: true,\n searching: true,\n params: params\n };\n }),\n on(SearchActions.upsertVideos, (state, { videos, nextPage }) => {\n return adapter.upsertMany(videos, {\n ...state,\n loading: false,\n nextPage: nextPage,\n loadingNext: false\n });\n }),\n on(SearchActions.clearSearch, (state, {}) => {\n return adapter.removeAll(state);\n }),\n on(SearchActions.clearSearch, (state, {}) => {\n return {\n ...state,\n loading: false,\n searching: false,\n nextPage: {\n pageSize: null,\n skip: null,\n done: false\n },\n params: {}\n };\n }),\n on(SearchActions.searchNextSearchResults, (state, {}) => {\n return {\n ...state,\n loadingNext: true\n };\n }),\n on(SearchActions.searchVideosError, (state, {}) => {\n return {\n ...state,\n error: true\n };\n }),\n on(SearchActions.deleteVideo, (state, { id }) => {\n return adapter.removeOne(id, state);\n }),\n immerOn(SearchActions.updateVideo, (state: IState, { video }) => {\n if (state.entities[video.id]) {\n state.entities[video.id] = video;\n }\n\n return state;\n })\n);\n\nexport function reducer(state: IState, action: Action) {\n return searchReducer(state, action);\n}\n","import { createSelector } from '@ngrx/store';\n\nimport { AccountResourceType } from '@common/modules/auth/interfaces';\n\nimport {\n accountError,\n selectedAccountLoaded,\n selectAccountResourceType,\n hasSelectedEdgeExtension,\n selectedEdgeExtensionHandshakeDone\n} from '../../../core/selectors';\nimport { selectGalleryState } from '../reducers';\nimport { isLibraryLoaded, libraryError } from './library.selectors';\nimport { isProjectsLoaded, projectsError } from './projects.selectors';\nimport {\n isSpeechModelsLoaded,\n selectSupportedLanguagesIdsSuccess,\n isLanguageModelsLoaded,\n selectSupportedLanguagesIdsError,\n isSpeechModelError,\n isLanguageModelsError\n} from '../../../customization-data/selectors';\n\nexport const getGalleryViewState = createSelector(selectGalleryState, state => state.galleryView);\n\nexport const selectedGalleryTab = createSelector(getGalleryViewState, state => state.selectedTab);\n\nexport const selectedGalleryView = createSelector(getGalleryViewState, state => state.view);\n\nexport const isLanguagesLoaded = createSelector(\n selectSupportedLanguagesIdsSuccess,\n isLanguageModelsLoaded,\n isSpeechModelsLoaded,\n selectAccountResourceType,\n hasSelectedEdgeExtension,\n selectedEdgeExtensionHandshakeDone,\n (langLoaded, langModelsLoaded, speechModelsLoaded, accountType, hasSelectedEdgeExtension, handshakeDone) => {\n if (hasSelectedEdgeExtension) {\n return handshakeDone;\n }\n return langLoaded && langModelsLoaded && (speechModelsLoaded || accountType === AccountResourceType.CLASSIC);\n }\n);\n\nexport const showLanguagesError = createSelector(\n selectSupportedLanguagesIdsError,\n isLanguageModelsError,\n isSpeechModelError,\n (langError, langModelsError, speechError) => {\n return langError || langModelsError || speechError;\n }\n);\n\nexport const isUploadEnabled = createSelector(\n isLibraryLoaded,\n isProjectsLoaded,\n selectedAccountLoaded,\n isLanguagesLoaded,\n (libLoaded, projLoaded, accountLoaded, languagesLoaded) => (libLoaded || projLoaded || accountLoaded) && languagesLoaded\n);\n\nexport const showUploadError = createSelector(\n libraryError,\n projectsError,\n accountError,\n (libError, projError, accountError) => libError || projError || accountError\n);\n","import { createSelector } from '@ngrx/store';\n\nimport { isUserNotAuthenticatedOrUnauthorizedError } from '@common/modules/api/utils/request.function';\nimport { isEmptyGuid } from '@common/modules/utils/string';\nimport { APIErrors } from '@common/modules/core/services/toast/errors';\n\nimport { GalleryTab, GalleryView } from '../../interfaces';\nimport { getLibraryState } from './library.selectors';\nimport { getProjectsState } from './projects.selectors';\nimport { getSamplesState } from './samples.selectors';\nimport { getSearchState } from './search.selectors';\nimport { selectedGalleryTab, selectedGalleryView } from './gallery-view.selectors';\nimport { getUserDetails } from '../../../core/selectors/user.selectors';\nimport { selectErrorType as selectAccountErrorType } from '../../../core/selectors/accounts.selectors';\nimport { sortByUploaded } from '../../utils';\n\nexport const selectCurrentTabState = createSelector(\n selectedGalleryTab,\n getLibraryState,\n getProjectsState,\n getSamplesState,\n (tab, libraryState, projectsState, samplesState) => {\n switch (tab) {\n case GalleryTab.Library:\n return libraryState;\n case GalleryTab.Project:\n return projectsState;\n case GalleryTab.Sample:\n return samplesState;\n }\n }\n);\n\nexport const selectCurrentTabNextPage = createSelector(selectCurrentTabState, currentTabState => currentTabState?.nextPage);\n\nexport const isNextPageDone = createSelector(selectCurrentTabNextPage, nextPage => nextPage?.done);\n\nexport const isNextPageLoading = createSelector(selectCurrentTabState, currentTabState => currentTabState?.loadingNext);\n\nexport const selectAllEntities = createSelector(selectCurrentTabState, state => state?.entities || []);\n\nexport const selectCurrentGalleryItemsState = createSelector(\n selectCurrentTabState,\n getSearchState,\n selectedGalleryView,\n (tabVideosState, searchState, view) => {\n if (view === GalleryView.Search) {\n return searchState?.entities || [];\n }\n return tabVideosState?.entities || [];\n }\n);\n\nexport const isLoading = createSelector(selectCurrentTabState, state => !state?.loaded);\n\nexport const isError = createSelector(selectCurrentTabState, state => state?.error);\n\nexport const isUnauthorizedError = createSelector(selectCurrentTabState, selectAccountErrorType, (state, accountErrorType) =>\n isUserNotAuthenticatedOrUnauthorizedError(state?.errorType, accountErrorType)\n);\n\nexport const isNetworkAccessNotAllowedError = createSelector(\n selectCurrentTabState,\n state => state?.errorType === APIErrors.NETWORK_ACCESS_NOT_ALLOWED\n);\n\nexport const selectAllVideos = createSelector(selectAllEntities, entities => sortByUploaded(Object.values(entities)));\n\nexport const selectVideo = id => createSelector(selectCurrentGalleryItemsState, entities => entities[id]);\n\nexport const selectCurrentProcessingVideo = (videoId: string, isBase: boolean, accountId: string) =>\n createSelector(getLibraryState, getProjectsState, getSamplesState, (libraryState, projectsState, sampleState) => {\n if (!isBase) {\n return projectsState.entities[videoId];\n }\n\n if (isEmptyGuid(accountId)) {\n return sampleState.entities[videoId];\n }\n\n return libraryState.entities[videoId];\n });\n\nexport const selectProcessingVideos = createSelector(selectAllEntities, entities =>\n Object.values(entities).filter(e => e.state === 'Processing' || e.state === 'Uploaded')\n);\n\nexport const isSelectedTabHidden = createSelector(selectedGalleryTab, getUserDetails, (tab, user) =>\n tab === GalleryTab.Sample ? !user.showSamplesTab : !user.showGalleryByDefault\n);\n","export * from './library.selectors';\nexport * from './projects.selectors';\nexport * from './samples.selectors';\nexport * from './search.selectors';\nexport * from './gallery-view.selectors';\nexport * from './gallery.selectors';\n","import { createSelector } from '@ngrx/store';\n\nimport { selectGalleryState } from '../reducers';\n\nexport const getLibraryState = createSelector(selectGalleryState, state => state.library);\n\nexport const isLibraryLoaded = createSelector(getLibraryState, state => state.loaded);\n\nexport const isLibraryLoading = createSelector(getLibraryState, state => state.loading);\n\nexport const libraryError = createSelector(getLibraryState, state => state.error);\n\nexport const libraryErrorType = createSelector(getLibraryState, state => state.errorType);\n","import { createSelector } from '@ngrx/store';\n\nimport { selectGalleryState } from '../reducers';\n\nexport const getProjectsState = createSelector(selectGalleryState, state => state.projects);\n\nexport const isProjectsLoaded = createSelector(getProjectsState, state => state.loaded);\n\nexport const isProjectsLoading = createSelector(getProjectsState, state => state.loading);\n\nexport const projectsError = createSelector(getProjectsState, state => state.error);\n\nexport const projectsErrorType = createSelector(getProjectsState, state => state.errorType);\n","import { createSelector } from '@ngrx/store';\n\nimport { selectGalleryState } from '../reducers';\n\nexport const getSamplesState = createSelector(selectGalleryState, state => state.samples);\n\nexport const isSamplesLoaded = createSelector(getSamplesState, state => state.loaded);\n\nexport const isSamplesLoading = createSelector(getSamplesState, state => state.loading);\n","import { createSelector } from '@ngrx/store';\n\nimport { selectGalleryState } from '../reducers';\n\nexport const getSearchState = createSelector(selectGalleryState, state => state.search);\n\nexport const isSearchLoading = createSelector(getSearchState, state => state.loading);\n\nexport const isSearching = createSelector(getSearchState, state => state.searching);\n\nexport const isSearchNextPageDone = createSelector(getSearchState, state => state.nextPage.done);\n\nexport const selectSearchResults = createSelector(getSearchState, state => state.entities);\n\nexport const selectSearchParams = createSelector(getSearchState, state => state.params);\n\nexport const selectSearchResultsVideos = createSelector(selectSearchResults, videos => Object.values(videos));\n\nexport const getSearchStateNextPage = createSelector(getSearchState, state => state.nextPage);\n\nexport const isSearchStateNextPageDone = createSelector(getSearchStateNextPage, nextPage => nextPage.done);\n\nexport const isSearchNextPageLoading = createSelector(getSearchState, state => state.loadingNext);\n\nexport const isSearchError = createSelector(getSearchState, state => state?.error);\n","export enum GalleryTab {\n Library = 'Library',\n Project = 'Projects',\n Sample = 'Samples'\n}\n\nexport enum VideoType {\n Library = 'Library',\n Project = 'Project',\n Sample = 'Sample',\n Search = 'Search'\n}\n\nexport enum GalleryView {\n Grid = 'Grid',\n List = 'List',\n Search = 'Search'\n}\n\nexport enum SearchParams {\n Query = 'query',\n Scope = 'scope',\n People = 'people',\n Face = 'face',\n Owner = 'owner',\n TextScope = 'textScope',\n Language = 'language'\n}\n","export const resources = {\n GalleryItemPlayVideoTitle: '',\n GalleryItemEditVideoTitle: '',\n GalleryUploadedBy: '',\n GalleryDeleteVideoDialogTitle: '',\n IndexedBy: '',\n GalleryItemLastModified: '',\n Reindex: '',\n IndexingSettings: '',\n IndexingSettingsModalHeader: '',\n Editor: '',\n Delete: '',\n Close: '',\n Play: '',\n Tiles: '',\n List: '',\n VideoOptions: '',\n ReIndexDialogTitle: '',\n GalleryDeleteVideoSuccess: '',\n GalleryDeleteVideoSuccessTitle: '',\n GalleryItemFlaggedRequestedReviewApproval: '',\n GalleryItemFlaggedRequestedReview: '',\n GalleryItemFlaggedOffensiveContent: '',\n GalleryListItemMediaThumbnail: '',\n VideoUnavailable: '',\n GallerySearchExpandVideoItem: '',\n CopyFileId: '',\n CopyFileIDSuccess: '',\n OpenInNewTab: '',\n GalleryDeleteVideoErrorTitle: '',\n GalleryDeleteVideoErrorText: '',\n GalleryVideoCurrentlyBeingIndexedErrorTitle: '',\n GalleryVideoCurrentlyBeingIndexedErrorText: '',\n CouldntLoadMaxConfidence: ''\n};\n","import { Injectable } from '@angular/core';\n\nimport { Store } from '@ngrx/store';\n\nimport { Observable } from 'rxjs';\n\nimport { ISearchRequestParams } from '@common/modules/api/interfaces';\nimport { LocalStorageService } from '@common/modules/shared/services/local-storage.service';\n\nimport { showLanguagesError } from './../core/selectors/gallery-view.selectors';\nimport { IState } from '../../core/reducers';\nimport { GalleryTab, GalleryView } from '../interfaces';\nimport * as GalleryViewActions from '../core/actions/gallery-view.actions';\nimport * as GalleryActions from '../core/actions/gallery.actions';\nimport * as LibraryActions from '../core/actions/library.actions';\nimport * as ProjectsActions from '../core/actions/projects.actions';\nimport * as SamplesActions from '../core/actions/samples.actions';\nimport * as SearchActions from '../core/actions/search.actions';\nimport * as fromGallery from '../core/selectors';\n\n@Injectable()\nexport class GalleryStoreService {\n constructor(private readonly store: Store, private localStorageService: LocalStorageService) {}\n\n // Gallery selectors\n\n public loadAllGallery(): void {\n this.loadLibrary();\n this.loadProjects();\n this.loadSamples();\n }\n\n public clearGallery(): void {\n this.store.dispatch(GalleryActions.clearGallery());\n }\n\n public loadNext(): void {\n this.store.dispatch(GalleryActions.loadNext());\n }\n\n public loadProcessingVideoOrProjectById(id: string) {\n this.store.dispatch(GalleryActions.loadProcessingVideoOrProjectById({ id }));\n }\n\n public get currentTabVideos$(): Observable {\n return this.store.select(fromGallery.selectAllVideos);\n }\n\n public get loading$(): Observable {\n return this.store.select(fromGallery.isLoading);\n }\n\n public get isUploadEnabled$(): Observable {\n return this.store.select(fromGallery.isUploadEnabled);\n }\n\n public get showUploadError$(): Observable {\n return this.store.select(fromGallery.showUploadError);\n }\n\n public get showLanguagesError$(): Observable {\n return this.store.select(showLanguagesError);\n }\n\n public get error$(): Observable {\n return this.store.select(fromGallery.isError);\n }\n\n public get isUnauthorizedError$(): Observable {\n return this.store.select(fromGallery.isUnauthorizedError);\n }\n\n public get isNetworkAccessNotAllowedError$(): Observable {\n return this.store.select(fromGallery.isNetworkAccessNotAllowedError);\n }\n\n public get isNextPageDone$(): Observable {\n return this.store.select(fromGallery.isNextPageDone);\n }\n\n public get isNextPageLoading$(): Observable {\n return this.store.select(fromGallery.isNextPageLoading);\n }\n\n // Gallery View selectors\n\n public get selectedTab$(): Observable {\n return this.store.select(fromGallery.selectedGalleryTab);\n }\n\n public get selectedView$(): Observable {\n return this.store.select(fromGallery.selectedGalleryView);\n }\n\n public setSelectedTab(galleryTab: GalleryTab): void {\n this.store.dispatch(GalleryViewActions.selectTab({ tab: galleryTab }));\n }\n\n public setSelectedView(galleryView: GalleryView): void {\n if (galleryView !== GalleryView.Search) {\n this.localStorageService.setItem('GalleryView', galleryView);\n }\n this.store.dispatch(GalleryViewActions.selectView({ view: galleryView }));\n }\n\n public get isSelectedTabHidden$(): Observable {\n return this.store.select(fromGallery.isSelectedTabHidden);\n }\n\n // Search selectors\n\n public search(params: ISearchRequestParams): void {\n this.setSelectedView(GalleryView.Search);\n this.store.dispatch(SearchActions.searchVideos({ params }));\n }\n\n public clearSearch(): void {\n this.store.dispatch(SearchActions.clearSearch());\n const lastView = this.localStorageService.getItem('GalleryView');\n this.setSelectedView(lastView === 'List' ? GalleryView.List : GalleryView.Grid);\n }\n\n public get searchResults$(): Observable {\n return this.store.select(fromGallery.selectSearchResultsVideos);\n }\n\n public get searchParams$(): Observable {\n return this.store.select(fromGallery.selectSearchParams);\n }\n\n public get isSearching$(): Observable {\n return this.store.select(fromGallery.isSearching);\n }\n\n public get isSearchLoading$(): Observable {\n return this.store.select(fromGallery.isSearchLoading);\n }\n\n public get isSearchStateNextPageDone$(): Observable {\n return this.store.select(fromGallery.isSearchStateNextPageDone);\n }\n\n public get isSearchNextPageDone$(): Observable {\n return this.store.select(fromGallery.isSearchNextPageDone);\n }\n\n public get isSearchNextPageLoading$(): Observable {\n return this.store.select(fromGallery.isSearchNextPageLoading);\n }\n\n public get searchError$(): Observable {\n return this.store.select(fromGallery.isSearchError);\n }\n\n public searchNextSearchResults(): void {\n this.store.dispatch(SearchActions.searchNextSearchResults());\n }\n\n public selectVideo(id: string): Observable {\n return this.store.select(fromGallery.selectVideo(id));\n }\n\n // Library selectors\n\n public loadLibrary(): void {\n this.store.dispatch(LibraryActions.loadLibrary());\n }\n\n public deleteVideo(id: string, name: string) {\n this.store.dispatch(LibraryActions.deleteVideo({ id, name }));\n }\n\n // Projects selectors\n\n public loadProjects(): void {\n this.store.dispatch(ProjectsActions.loadProjects());\n }\n\n public deleteProject(id: string, name: string) {\n this.store.dispatch(ProjectsActions.deleteVideo({ id, name }));\n }\n\n public clearProjects(): void {\n this.store.dispatch(ProjectsActions.clearProjects());\n }\n\n // Samples selectors\n\n public loadSamples(): void {\n this.store.dispatch(SamplesActions.loadSamples());\n }\n}\n","import { Injectable } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { Params } from '@angular/router';\n\nimport { ClipboardService } from 'ngx-clipboard';\n\nimport { FocusManagerService } from '@common/modules/accessibility/focus-manager.service';\nimport { ISearchRequestParams, RegionType } from '@common/modules/api/interfaces';\nimport { ApiService } from '@common/modules/api/services/api.service';\nimport { SamplesAccountId } from '@common/modules/core/interfaces';\nimport { LoggerService } from '@common/modules/core/services/logger/logger.service';\nimport { ToastService } from '@common/modules/core/services/toast/toast.service';\nimport { EventCategory, TrackService } from '@common/modules/core/services/track';\nimport { IGallerySearchFilter } from '@common/modules/gallery-common/core/models/interfaces';\nimport { InsightsCommonUtilsService } from '@common/modules/insights-common/insights-common-utils.service';\nimport { ThumbnailClass } from '@common/modules/insights-common/interfaces';\nimport { DialogComponent } from '@common/modules/shared/components/dialog/dialog.component';\nimport { IDialogData } from '@common/modules/shared/components/dialog/interfaces';\nimport { IAction, VideoReviewState } from '@common/modules/shared/interfaces';\nimport { DataService } from '@common/modules/shared/services/data.service';\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\nimport { FeatureSwitchService } from '@common/modules/core/services/feature-switch/feature-switch.service';\nimport { APIErrors } from '@common/modules/core/services/toast/errors';\nimport { NotificationIcon, NotificationMessageType, NotificationType } from '@common/modules/core/services/toast/interfaces';\nimport { AuthService } from '@common/modules/auth/services/auth.service';\nimport { DialogService } from '@common/modules/shared/components/dialog/dialog.service';\nimport { ActionButtonType } from '@common/modules/shared/components/action-button/interfaces';\n\nimport { CoreStoreService } from '../../core/services/core-store.service';\nimport { DeleteVideoComponent } from '../components/delete-video/delete-video.component';\nimport { UIGalleryActionType } from '../core/models/gallery';\nimport { AppListItem } from '../data-source/app-list-data-source';\nimport { GalleryTab, SearchParams } from '../interfaces';\nimport { resources } from '../resources';\nimport { IndexingStoreService } from '../../indexing/services/indexing-store.service';\nimport { EdgeExtensionsApiHandlerService } from '../../core/services/edge-extensions-api.handler.service';\nimport { IndexingSummaryDialogComponent } from '../../indexing/components/shared/indexing-summary-dialog/indexing-summary-dialog.component';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class GalleryService {\n public resources = resources;\n\n constructor(\n private logger: LoggerService,\n private dataService: DataService,\n private insightsCommonUtils: InsightsCommonUtilsService,\n private coreStore: CoreStoreService,\n private dialog: MatDialog,\n private translate: TranslateHelperService,\n private focusManager: FocusManagerService,\n private toastService: ToastService,\n private apiService: ApiService,\n private clipboardService: ClipboardService,\n private trackService: TrackService,\n private featureSwitchService: FeatureSwitchService,\n private indexingStoreService: IndexingStoreService,\n private edgeExtensionsApiHandlerService: EdgeExtensionsApiHandlerService,\n private authService: AuthService,\n private dialogService: DialogService\n ) {\n this.setTranslations();\n }\n\n public getThumbnailUrl(accountId: string, videoId: string, thumbnailId: string): string {\n return this.dataService.getThumbnailUrl(accountId, videoId, thumbnailId);\n }\n\n public getThumbnailUrlWithToken(accountId: string, videoId: string, thumbnailId: string): string {\n const accessToken = this.authService.getAccessToken(null, accountId);\n const url = this.getThumbnailUrl(accountId, videoId, thumbnailId);\n\n return `${url}?accessToken=${accessToken}`;\n }\n\n public getThumbnailClass(item: AppListItem): ThumbnailClass {\n return this.insightsCommonUtils.getThumbnailClass(item.state, item.thumbnailId);\n }\n\n public uniqueId(itemId: string, prefix?: string): string {\n return `${prefix}_vid_${itemId}`;\n }\n\n public openDeleteDialog(deleteData: AppListItem, callbackAfterClose?: string) {\n const deleteDialogData: IDialogData = {\n class: 'delete-dialog',\n title: this.resources.GalleryDeleteVideoDialogTitle,\n component: DeleteVideoComponent,\n componentData: deleteData\n };\n this.dialog\n .open(DialogComponent, {\n width: '440px',\n height: 'auto',\n data: deleteDialogData,\n disableClose: false,\n ariaLabel: deleteDialogData.title,\n panelClass: 'delete-dialog-container'\n })\n .afterClosed()\n .subscribe(res => {\n if (callbackAfterClose) {\n this.focusManager.focusByQuery(callbackAfterClose);\n }\n });\n }\n\n public toastDeleteSuccess(name: string) {\n this.translate.translateResourcesInstant(resources, { name });\n\n this.toastService.notify({\n id: `${Date.now()}`,\n messageType: NotificationMessageType.Custom,\n startDate: new Date(),\n endDate: new Date(),\n type: NotificationType.Toast,\n icon: NotificationIcon.Success,\n title: this.resources.GalleryDeleteVideoSuccessTitle,\n text: `'${name}' ${this.resources.GalleryDeleteVideoSuccess}`\n });\n }\n\n public toastDeleteError(name: string, error) {\n this.translate.translateResourcesInstant(resources, { name });\n let title = this.resources.GalleryDeleteVideoErrorTitle;\n let text = this.resources.GalleryDeleteVideoErrorText;\n\n if (error?.ErrorType === APIErrors.VIDEO_CURRENTLY_BEING_INDEXED) {\n title = this.resources.GalleryVideoCurrentlyBeingIndexedErrorTitle;\n text = this.resources.GalleryVideoCurrentlyBeingIndexedErrorText;\n }\n\n this.toastService.notify({\n id: `${Date.now()}`,\n messageType: NotificationMessageType.Custom,\n startDate: new Date(),\n endDate: new Date(),\n type: NotificationType.Toast,\n icon: NotificationIcon.Error,\n title,\n text\n });\n }\n\n public copyVideoId(videoId: string) {\n this.clipboardService.copyFromContent(videoId);\n this.toastService.success(this.resources.CopyFileIDSuccess, false);\n this.trackService.track('gallery.copy_file_id.clicked', {\n category: EventCategory.GALLERY\n });\n }\n\n public openVideoInNewTab(videoId: string, accountId: string) {\n const path = `/accounts/${accountId}/videos/${videoId}`;\n window.open(path, '_blank');\n this.trackService.track('gallery.open_in_new_tab.clicked', {\n category: EventCategory.GALLERY\n });\n }\n\n public openIndexingSummaryDialog(openIndexingSummaryData: AppListItem) {\n this.dialogService.openDialog(\n {\n class: 'indexing-settings-dialog',\n component: IndexingSummaryDialogComponent,\n componentData: openIndexingSummaryData,\n title: this.resources.IndexingSettingsModalHeader,\n primaryButton: {\n type: ActionButtonType.SECONDARY,\n action: { title: this.resources.Close, value: null, id: 'close-indexing-settings' }\n }\n },\n '740px',\n '564px',\n 'indexing-settings-dialog-container',\n false,\n true,\n 'auto',\n true\n );\n }\n\n public openReIndexDialog(reIndexData: AppListItem) {\n this.indexingStoreService.openReIndexDialog(reIndexData.id);\n }\n\n public trackAppListItemBy(index: number, item: AppListItem): string {\n return `${index}:${item.accountId}:${item.id}`;\n }\n\n public hadExpandedDetails(appListItem: AppListItem): boolean {\n if (!appListItem.searchMatches) {\n return false;\n }\n\n return appListItem.searchMatches.filter(sm => sm.type !== 'Title' && sm.type !== 'Owner').length > 0;\n }\n\n public getParamsAsObject(queryParams: Params): ISearchRequestParams {\n const result: ISearchRequestParams = Object.create(null);\n if (queryParams.query) {\n result.query = queryParams.query;\n }\n if (queryParams.scope) {\n result.scope = queryParams.scope;\n }\n if (queryParams.people) {\n result.face = queryParams.people;\n }\n if (queryParams.face) {\n result.face = queryParams.face;\n }\n if (queryParams.owner) {\n result.owner = queryParams.owner;\n }\n if (queryParams.textScope) {\n if (queryParams.textScope === 'entities') {\n result.textScope = ['brands', 'namedLocations', 'namedPeople'];\n } else {\n result.textScope = queryParams.textScope;\n }\n }\n // Send language only if there is query\n if (queryParams.language) {\n result.language = queryParams.language;\n }\n\n return result;\n }\n\n public getSearchRequestParams(filters: IGallerySearchFilter[], scopeMainAction: IAction, addEntities = true): ISearchRequestParams {\n const searchRequestParams: ISearchRequestParams = {};\n const faceFilters = filters.filter(f => f.key === (SearchParams.Face || SearchParams.People));\n const ownerFilters = filters.filter(f => f.key === SearchParams.Owner);\n const languageFilters = filters.filter(f => f.key === SearchParams.Language);\n\n if (faceFilters.length) {\n const filteredFaces = faceFilters.filter(f => f.text !== '')?.map(f => f.text);\n if (filteredFaces.length) {\n searchRequestParams.face = filteredFaces;\n }\n }\n\n if (ownerFilters.length) {\n const filteredOwner = ownerFilters.filter(f => f.text !== '')?.map(f => f.text);\n if (filteredOwner.length) {\n searchRequestParams.owner = filteredOwner;\n }\n }\n\n if (languageFilters.length) {\n searchRequestParams.language = languageFilters.map(f => f.value);\n }\n\n if (scopeMainAction?.type !== UIGalleryActionType.ALL_INSIGHTS_FILTER) {\n // If user filters on entities - send multiple text scopes\n // change to entities after backend update\n if (scopeMainAction.value === 'entities' && addEntities) {\n searchRequestParams.textScope = ['brands', 'namedLocations', 'namedPeople'];\n } else {\n searchRequestParams.textScope = scopeMainAction.value;\n }\n }\n\n return searchRequestParams;\n }\n\n public getGalleryTabFromUrl(url: string): GalleryTab {\n switch (url) {\n case '/library':\n return GalleryTab.Library;\n case '/projects':\n return GalleryTab.Project;\n case '/samples':\n return GalleryTab.Sample;\n }\n }\n\n public navigateToVideo(accountId: string, videoId: string, isBase: boolean, queryParams?: object) {\n this.logger.log('[GalleryService] navigate to media');\n\n const location = this.apiService.getApiLocation();\n const params = {};\n if (location !== RegionType.TRIAL && isBase && accountId !== SamplesAccountId) {\n params['location'] = location;\n }\n\n const path = `/accounts/${accountId}/${isBase ? 'videos' : 'projects'}/${videoId}`;\n this.coreStore.navigate([path], { ...queryParams, ...params });\n }\n\n public navigateToEdgeExtensionVideo(extensionId: string, accountId: string, videoId: string, queryParams?: object) {\n this.logger.log('[GalleryService] navigate to edge extension media');\n\n const path = `/accounts/${accountId}/extensions/${extensionId}/videos/${videoId}`;\n this.coreStore.navigate([path], { ...queryParams });\n }\n\n public navigateToEditor(accountId: string, videoId: string, isBase: boolean) {\n this.logger.log('[GalleryService] navigate to editor');\n\n const path = `/editor/${accountId}/${isBase ? 'videos' : 'projects'}/${videoId}`;\n this.coreStore.navigate([path]);\n }\n\n public createNewProject(accountId: string) {\n this.logger.log('[GalleryService] navigate to editor = createNewProject');\n\n const path = `/editor/${accountId}`;\n this.coreStore.navigate([path]);\n }\n\n public isProject(isBase: boolean): boolean {\n return !isBase;\n }\n\n public getModerationStateText(videoReviewState: VideoReviewState | string) {\n if (this.edgeExtensionsApiHandlerService?.HasSelectedEdgeExtension) {\n return '';\n }\n\n switch (videoReviewState) {\n case VideoReviewState.NONE:\n return this.resources.GalleryItemFlaggedRequestedReviewApproval;\n case VideoReviewState.IN_PROGRESS:\n return this.resources.GalleryItemFlaggedRequestedReview;\n case VideoReviewState.COMPLETED:\n return this.resources.GalleryItemFlaggedOffensiveContent;\n default:\n return '';\n }\n }\n\n private setTranslations(): void {\n this.translate.translateResourcesInstant(resources);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { catchError, firstValueFrom, map, switchMap, withLatestFrom } from 'rxjs';\n\nimport { ApiService } from '@common/modules/api/services/api.service';\nimport { EventCategory, TrackService } from '@common/modules/core/services/track';\nimport { ExcludableAIsModels } from '@common/modules/api/interfaces';\n\nimport { CustomizationDataStoreService } from '../../customization-data/services/customization-data-store.service';\nimport { IndexingPreset, presetToRequiredAIsMap } from '../../indexing/components/shared/settings';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class IndexingSummaryService {\n constructor(\n private customizationDataStoreService: CustomizationDataStoreService,\n private apiService: ApiService,\n private trackService: TrackService\n ) {\n this.customizationDataStoreService.loadLogoGroups();\n this.customizationDataStoreService.loadPersonModels();\n }\n\n public getLogoGroupNameById(logoGroupId: string): Promise {\n return firstValueFrom(\n this.customizationDataStoreService.logoGroups.pipe(\n withLatestFrom(this.customizationDataStoreService.isLogoGroupsLoaded()),\n withLatestFrom(this.customizationDataStoreService.logoGroupsError),\n switchMap(async ([[, isLoaded], isError]) => {\n if (isError) {\n return Promise.reject();\n }\n if (isLoaded) {\n const logoGroup = await firstValueFrom(this.customizationDataStoreService.getLogoGroupById(logoGroupId));\n return logoGroup?.name || '';\n }\n })\n )\n );\n }\n\n public getPeopleModelNameById(personModelId: string): Promise {\n return firstValueFrom(\n this.customizationDataStoreService.peopleModels.pipe(\n withLatestFrom(this.customizationDataStoreService.isPeopleModelsLoaded()),\n withLatestFrom(this.customizationDataStoreService.peopleModelsError),\n switchMap(async ([[, isLoaded], isError]) => {\n if (isError) {\n return Promise.reject();\n }\n if (isLoaded) {\n const personModel = await firstValueFrom(this.customizationDataStoreService.getPeopleModelById(personModelId));\n return personModel?.name || '';\n }\n })\n )\n );\n }\n\n public getSupportedAINamesByPreset(accountId: string, preset: IndexingPreset): Promise {\n return firstValueFrom(\n this.apiService.Account.getAccountSupportedAIs(accountId, { indexingPreset: preset }).pipe(\n map(supportedAIs => {\n const aiNames = supportedAIs ? this.getSupportedAIsNames(supportedAIs.aIs) : [];\n this.trackService.track('indexing_summary_service.get_supported_ai_names_by_preset.success', {\n category: EventCategory.INDEXING_SETTINGS,\n data: aiNames\n });\n return aiNames;\n }),\n catchError(error => {\n this.trackService.track('indexing_summary_service.get_supported_ai_names_by_preset.failed', {\n category: EventCategory.INDEXING_SETTINGS,\n data: error\n });\n return Promise.reject();\n })\n )\n );\n }\n\n public getExcludedAIsNames(excludedAIs: ExcludableAIsModels[], supportedAIs: string[]): ExcludableAIsModels[] {\n return excludedAIs.filter(ai => supportedAIs.includes(ai));\n }\n\n public getIncludedAisNames(preset: IndexingPreset, supportedAIs: string[], excludedAIs: string[]): string[] {\n const RequiredAIs = presetToRequiredAIsMap[preset];\n return (RequiredAIs as string[]).concat(supportedAIs.filter(ai => !excludedAIs.includes(ai)));\n }\n\n private getSupportedAIsNames(supportedAIs: Microsoft.VideoIndexer.Contracts.SupportedAIs[]): string[] {\n return supportedAIs.map(ai => ai.name);\n }\n}\n","import { fromNow } from '@common/modules/utils/time';\nimport { IndexState } from '@common/modules/shared/interfaces';\n\nimport SinglePlaylistSearchResultV2 = Microsoft.VideoIndexer.Contracts.SinglePlaylistSearchResultV2;\n\nexport function sortByUploaded(list: SinglePlaylistSearchResultV2[]) {\n if (list.length) {\n // Get processing videos\n const processing = list.filter(v => {\n return v.state === IndexState.Processing || v.state === IndexState.Uploaded;\n });\n\n // Get processed videos\n const ready = list.filter(v => {\n return v.state !== IndexState.Processing && v.state !== IndexState.Uploaded;\n });\n\n // Sort all videos by created time\n const orderReady = ready.sort((a, b) => compareVideos(a, b));\n const orderProcessing = processing.sort((a, b) => compareVideos(a, b));\n\n return [...orderProcessing, ...orderReady];\n } else {\n return list;\n }\n}\n\nexport function compareVideos(a: SinglePlaylistSearchResultV2, b: SinglePlaylistSearchResultV2) {\n const lastModifiedA = fromNow(a.lastModified);\n const lastModifiedB = fromNow(b.lastModified);\n if (lastModifiedA < lastModifiedB) {\n return 1;\n } else if (lastModifiedA > lastModifiedB) {\n return -1;\n }\n return 0;\n}\n","import { ProgressStyle } from 'src/libs/vi-ui/src/lib/components/progress-bar/interfaces';\n\nimport { IAction } from '@common/modules/shared/interfaces';\n\nexport enum UIGridCellTypes {\n TEXT = 'TEXT',\n EDIT = 'EDIT',\n PROGRESS_BAR = 'PROGRESS_BAR',\n ACTION_MENU = 'ACTION_MENU',\n SORT_MENU = 'SORT_MENU',\n CREATE = 'CREATE',\n BUTTON = 'BUTTON',\n PERSONA = 'PERSONA',\n LINK = 'LINK',\n MERGE = 'MERGE'\n}\n\nexport enum IMaxWidthCalcType {\n PARENT = 'PARENT',\n PARENT_OF_PARENT = 'PARENT_OF_PARENT'\n}\n\nexport interface IUIGridCell {\n id: string;\n value: string;\n type: UIGridCellTypes;\n name: string;\n title?: string;\n key?: string;\n placeholder?: string;\n url?: string;\n edit?: boolean;\n isDisabled?: boolean;\n isSelected?: boolean;\n loading?: boolean;\n action?: IAction;\n actionsList?: IAction[];\n width?: string;\n minWidth?: string;\n status?: string;\n maxWidthCalcType?: IMaxWidthCalcType;\n}\n\nexport interface IUISortCell extends IUIGridCell {\n selectedColumn: string;\n selectedDirection: string;\n}\n\nexport interface IUIProgressCell extends IUIGridCell {\n progressStyle?: ProgressStyle;\n leftTitleStyle?: ProgressStyle;\n leftTitle?: string;\n rightTitle?: string;\n progress: number;\n}\n\nexport interface IEventCell {\n cell: IUIGridCell;\n action?: IAction;\n value?: string;\n edit?: boolean;\n index?: number;\n rowsIds?: number[];\n modelIds?: number[];\n}\n","import { Component, OnInit, ChangeDetectionStrategy, OnDestroy, Output, EventEmitter, Input, ChangeDetectorRef } from '@angular/core';\n\nimport { Subject, take, takeUntil } from 'rxjs';\n\nimport { FocusableComponent } from '@common/modules/accessibility/focusable/focusable.component';\nimport { IUIAccount, NavigationState } from '@common/modules/core/services/interfaces';\nimport { envTypes } from '@common/modules/api/interfaces';\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\n\nimport { CoreStoreService } from '../../../core/services/core-store.service';\nimport { resources } from './resources';\nimport { EdgeExtensionsStoreService } from '../../../core/services/edge-extensions-store.service';\nimport { BadgeClasses } from '../../../shell/interfaces';\n\n@Component({\n selector: 'vi-accounts-list-button',\n templateUrl: './accounts-list-button.component.html',\n styleUrls: ['./accounts-list-button.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AccountsListButtonComponent extends FocusableComponent implements OnInit, OnDestroy {\n @Input() selected = false;\n\n @Output() toggle = new EventEmitter();\n\n public selectedAccount: IUIAccount;\n public hasEdgeExtensions: boolean;\n public isSideBarOpened = false;\n\n public resources = resources;\n\n private destroy$ = new Subject();\n\n constructor(\n private coreStore: CoreStoreService,\n private edgeExtensionsStore: EdgeExtensionsStoreService,\n private translate: TranslateHelperService,\n private cdr: ChangeDetectorRef\n ) {\n super();\n }\n\n public ngOnInit(): void {\n this.translate.translateResourcesInstant(this.resources);\n this.coreStore.selectedAccount$.pipe(takeUntil(this.destroy$)).subscribe(account => {\n this.selectedAccount = account;\n this.cdr.detectChanges();\n });\n this.edgeExtensionsStore.hasEdgeExtensions$.pipe(takeUntil(this.destroy$)).subscribe(hasEdgeExtensions => {\n this.hasEdgeExtensions = hasEdgeExtensions;\n this.cdr.detectChanges();\n });\n this.coreStore.sidebarStateStatus$.pipe(takeUntil(this.destroy$)).subscribe(status => {\n this.isSideBarOpened = false;\n if (status === NavigationState.OPEN) {\n this.isSideBarOpened = true;\n }\n this.cdr.detectChanges();\n });\n this.accessibilityModeSubject.pipe(takeUntil(this.destroy$), take(1)).subscribe(() => {\n this.cdr.detectChanges();\n });\n }\n\n public ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n public isTrial(): boolean {\n return this.selectedAccount?.location === envTypes.TRIAL;\n }\n\n public getBadgeClass(): string {\n if (this.isTrial()) {\n return `${BadgeClasses.Trial} header`;\n }\n\n return this.hasEdgeExtensions ? BadgeClasses.Hybrid : BadgeClasses.NoBadge;\n }\n\n public getBadgeText(): string {\n if (this.isTrial()) {\n return this.resources.HeaderTrial;\n }\n\n return this.hasEdgeExtensions ? this.resources.Hybrid : '';\n }\n\n public openAccountsList() {\n this.toggle.emit();\n }\n}\n","
\n
{{selectedAccount?.name}}
\n \n {{ getBadgeText() }}\n \n
","export const resources = {\n Hybrid: '',\n HeaderTrial: ''\n};\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, OnDestroy, OnInit } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { IStripData, MessageType } from '@common/modules/shared/components/strip/interfaces';\nimport { StripService } from '@common/modules/shared/components/strip/strip.service';\nimport { EventCategory, TrackService } from '@common/modules/core/services/track';\nimport { DataService } from '@common/modules/shared/services/data.service';\nimport { FocusManagerService } from '@common/modules/accessibility/focus-manager.service';\nimport { NotificationLevel } from '@common/modules/core/services/toast/interfaces';\n\n@Component({\n selector: 'vi-header-strips',\n templateUrl: './header-strips.component.html',\n styleUrls: ['./header-strips.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class HeaderStripsComponent implements OnInit, OnDestroy {\n public notificationsStrips: IStripData[] = [];\n public strips: IStripData[] = [];\n private destroy$ = new Subject();\n\n constructor(\n private stripService: StripService,\n private cdr: ChangeDetectorRef,\n private trackService: TrackService,\n private dataService: DataService,\n private focusManager: FocusManagerService,\n @Inject(DOCUMENT) private document\n ) {}\n\n public ngOnInit(): void {\n this.initStrips();\n this.onResize();\n }\n\n public closeStrip($event, id: number) {\n // on click close focus should move to main content\n this.focusManager.focusByQuery('.main-content-action', this.cdr);\n this.deleteStrip($event, id);\n }\n\n public closeNotificationStrip($event, id: number) {\n // on click close focus should move to main content\n this.focusManager.focusByQuery('.main-content-action', this.cdr);\n this.deleteNotificationStrip($event, id);\n }\n\n public linkClicked($event, strip) {\n const noop = () => {};\n const callback = strip?.linkCallback || noop;\n callback($event);\n }\n\n public actionClicked($event, strip) {\n const noop = () => {};\n const callback = strip?.actionCallback || noop;\n callback($event);\n }\n\n public isProgressNumber(value?): boolean {\n return value !== null && value >= 0;\n }\n\n public ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n private initStrips() {\n this.stripService.triggerStripData.pipe(takeUntil(this.destroy$)).subscribe(stripData => {\n if (!stripData) {\n return;\n }\n\n const existingStrip = this.strips.find(strip => {\n return strip.id === stripData.id;\n });\n\n if (!!existingStrip && !stripData.show) {\n // exists and should be removed\n this.deleteStrip(null, stripData.id);\n } else if (!existingStrip && stripData.show) {\n // isn't already exists and should be shown\n this.addStrip(stripData);\n }\n });\n\n this.stripService.triggerNotificationsStripData.pipe(takeUntil(this.destroy$)).subscribe(stripData => {\n if (!stripData) {\n return;\n }\n\n const existingStrip = this.notificationsStrips.find(strip => {\n return strip.id === stripData.id;\n });\n\n if (!!existingStrip && !stripData.show) {\n // exists and should be removed\n this.deleteNotificationStrip(null, stripData.id);\n } else if (!existingStrip && stripData.show) {\n // isn't already exists and should be shown\n this.addNotificationStrip(stripData);\n }\n });\n }\n\n private addStrip(stripData: IStripData) {\n this.strips = [...this.strips, stripData];\n this.strips = this.strips.sort(this.compareStrips);\n this.setStripsHeight();\n }\n\n private addNotificationStrip(stripData: IStripData) {\n this.notificationsStrips = [...this.notificationsStrips, stripData];\n this.notificationsStrips = this.notificationsStrips.sort(this.compareNotificationStrips);\n this.setStripsHeight();\n }\n\n private compareStrips(stripA: IStripData, stripB: IStripData) {\n const typeA = stripA?.messageType;\n const typeB = stripB?.messageType;\n if (typeA === MessageType.WARNING && typeB === MessageType.ERROR) {\n return 1;\n } else if (typeA === MessageType.ERROR && typeB === MessageType.WARNING) {\n return -1;\n }\n return 0;\n }\n\n private compareNotificationStrips(stripA: IStripData, stripB: IStripData) {\n const typeA = stripA?.notificationLevel;\n const typeB = stripB?.notificationLevel;\n if (\n (typeA === NotificationLevel.Warning ||\n typeA === NotificationLevel.Info ||\n typeA === NotificationLevel.Success ||\n typeB === NotificationLevel.Error) &&\n typeB === NotificationLevel.Critical\n ) {\n return 1;\n } else if (\n (typeA === NotificationLevel.Warning || typeA === NotificationLevel.Info || typeA === NotificationLevel.Success) &&\n typeB === NotificationLevel.Error\n ) {\n return 1;\n } else if ((typeA === NotificationLevel.Info || typeA === NotificationLevel.Success) && typeB === NotificationLevel.Warning) {\n return 1;\n } else if (\n typeA === NotificationLevel.Error &&\n (typeB === NotificationLevel.Warning || typeB === NotificationLevel.Info || typeB === NotificationLevel.Success)\n ) {\n return -1;\n } else if (\n typeA === NotificationLevel.Critical &&\n (typeB === NotificationLevel.Warning || typeB === NotificationLevel.Info || typeB === NotificationLevel.Success || NotificationLevel.Error)\n ) {\n return -1;\n } else if (typeA === NotificationLevel.Warning && (typeB === NotificationLevel.Info || typeB === NotificationLevel.Success)) {\n return -1;\n }\n return 0;\n }\n\n private setStripsHeight() {\n this.cdr.detectChanges();\n setTimeout(() => {\n // init height with 2 because the shadow of the last strip\n let height = this.strips?.length || this.notificationsStrips?.length ? 2 : 0;\n const stripElements = this.document.querySelectorAll('.strip');\n stripElements.forEach(element => {\n height += element.clientHeight;\n });\n this.document.documentElement.style.setProperty('--header-strip-height', `${height}px`);\n });\n }\n\n private onResize() {\n this.dataService.onResizeEventStream(375, 0).subscribe(() => {\n this.setStripsHeight();\n });\n }\n\n private deleteStrip($event, id: number) {\n const removedStrip = this.strips.find(strip => strip.id === id);\n if (removedStrip?.closeCallback) {\n removedStrip?.closeCallback($event);\n }\n this.trackService.track(`header.strip.close`, {\n category: EventCategory.HEADER,\n data: {\n trackingName: removedStrip?.trackingName\n }\n });\n this.strips = this.strips.filter((strip: IStripData) => strip.id !== id);\n this.setStripsHeight();\n }\n\n private deleteNotificationStrip($event, id: number) {\n const removedStrip = this.notificationsStrips.find(strip => strip.id === id);\n if (removedStrip?.closeCallback) {\n removedStrip?.closeCallback($event);\n }\n this.trackService.track(`header.strip.closed`, {\n category: EventCategory.HEADER,\n data: {\n trackingName: removedStrip?.trackingName\n }\n });\n this.notificationsStrips = this.notificationsStrips.filter((strip: IStripData) => strip.id !== id);\n this.setStripsHeight();\n }\n}\n","\n\n\n\n","import { IAction } from '@common/modules/shared/interfaces';\n\nimport { UIHeaderActionType } from './interfaces';\n\nexport const connectToAzureAction: IAction = {\n title: '',\n key: 'HeaderCreatePro',\n icon: 'i-vi-add-big',\n value: UIHeaderActionType.CONNECT_TO_AZURE,\n selected: false,\n selectable: false,\n id: 'connectToAzureButton'\n};\n\nexport const sidemenuToggleAction: IAction = {\n title: '',\n key: 'HeaderToggleSidemenu',\n icon: 'i-vi-hamburger',\n value: '',\n selected: false,\n selectable: false,\n id: 'headerToggleSidemenu'\n};\n\nexport const helpAction: IAction = {\n titleAttribute: 'Help',\n key: 'HeaderHelp',\n icon: 'i-vi-help-menu',\n value: UIHeaderActionType.HELP,\n selected: false,\n selectable: false,\n id: 'help'\n};\n\nexport const helpLinkAction: IAction = {\n title: '',\n key: 'HeaderHelpLinkAria',\n icon: 'i-vi-help',\n value: UIHeaderActionType.HELP,\n selected: false,\n selectable: true,\n id: 'helpMobile'\n};\n\nexport const notificationsEmptyTitleAction: IAction = {\n title: '',\n titleAttribute: '',\n key: 'SidebarUserNotifications',\n icon: 'i-vi-notification',\n value: UIHeaderActionType.NOTIFICATIONS,\n selected: false,\n selectable: true,\n id: 'notificationsBtn'\n};\n\nexport const notificationsAction: IAction = {\n ...notificationsEmptyTitleAction,\n titleAttribute: 'Notifications'\n};\n\nexport const settingsEmptyTitleAction: IAction = {\n titleAttribute: '',\n key: 'HeaderUserSettings',\n icon: 'i-vi-settings',\n value: UIHeaderActionType.SETTINGS,\n selected: false,\n selectable: true,\n id: 'settings'\n};\n\nexport const settingsAction: IAction = {\n ...settingsEmptyTitleAction,\n titleAttribute: 'Settings'\n};\n\nexport const signOutAction: IAction = {\n title: 'Sign Out',\n key: 'HeaderSignOut',\n value: UIHeaderActionType.SIGN_OUT,\n id: 'signOut'\n};\n\nexport const switchDirectoryAction: IAction = {\n title: 'Switch Directory',\n icon: '',\n key: 'SwitchDirectory',\n value: UIHeaderActionType.SWITCH_DIRECTORY,\n id: 'switchDirectoryButton'\n};\n\nexport const modelCustomizationAction: IAction = {\n icon: 'i-vi-customization',\n titleAttribute: 'Content model customization',\n key: 'HeaderContentModelCustomization',\n value: UIHeaderActionType.MODEL_CUSTOMIZATION,\n selected: false,\n selectable: false,\n id: 'modelCustomization'\n};\n\nexport const accountsAction: IAction = {\n icon: 'i-vi-vi-accounts',\n titleAttribute: 'Accounts',\n key: 'HeaderUserAccounts',\n value: UIHeaderActionType.ACCOUNTS,\n selected: false,\n selectable: false,\n hasDrop: true,\n id: 'accounts'\n};\n\nexport const menuAction: IAction = {\n icon: 'i-vi-menu',\n key: '',\n value: UIHeaderActionType.MENU,\n selected: false,\n selectable: false,\n id: 'mobileMenu'\n};\n\nexport const menuActionList: IAction[] = [\n {\n icon: 'i-vi-vi-accounts',\n title: '',\n key: 'HeaderAccounts',\n value: UIHeaderActionType.ACCOUNTS,\n selected: false,\n selectable: true,\n id: 'accountsMobile'\n },\n settingsEmptyTitleAction,\n helpLinkAction\n];\n\nexport const menuWithNotificationsActionList: IAction[] = [\n {\n icon: 'i-vi-vi-accounts',\n title: '',\n key: 'HeaderAccounts',\n value: UIHeaderActionType.ACCOUNTS,\n selected: false,\n selectable: true,\n id: 'accountsMobile'\n },\n notificationsEmptyTitleAction,\n settingsEmptyTitleAction,\n helpLinkAction\n];\n\nexport const menuWithoutAccountsActionList: IAction[] = [connectToAzureAction, settingsEmptyTitleAction, helpLinkAction];\nexport const menuWithNotificationsWithoutAccountsActionList: IAction[] = [\n connectToAzureAction,\n notificationsEmptyTitleAction,\n settingsEmptyTitleAction,\n helpLinkAction\n];\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnInit, OnDestroy, Input } from '@angular/core';\n\nimport { takeUntil } from 'rxjs/operators';\nimport { Subject, Observable } from 'rxjs';\n\nimport { IAction } from '@common/modules/shared/interfaces';\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\nimport { AppNavigationService } from '@common/modules/core/services/app/app-navigation.service';\nimport { FocusManagerService } from '@common/modules/accessibility/focus-manager.service';\nimport { NavigationState, IUserDetails, FeatureSwitch } from '@common/modules/core/services/interfaces';\nimport { FocusableComponent } from '@common/modules/accessibility/focusable/focusable.component';\nimport { EventCategory, TrackService } from '@common/modules/core/services/track';\nimport { ActionButtonType } from '@common/modules/shared/components/action-button/interfaces';\nimport { UtilsService } from '@common/modules/shared/services/utils.service';\nimport { FeatureSwitchService } from '@common/modules/core/services/feature-switch/feature-switch.service';\nimport { AccountResourceType } from '@common/modules/auth/interfaces';\n\nimport { SidebarPages, ISidebarNavigationOptions } from '../../../sidebar/interfaces';\nimport { HeaderPreset, UIHeaderActionType } from './interfaces';\nimport { resources } from './resources';\nimport { CoreStoreService } from '../../../core/services/core-store.service';\nimport { VIRoutingMap } from '../../../app/routing/routes';\nimport {\n accountsAction,\n connectToAzureAction,\n helpAction,\n modelCustomizationAction,\n settingsAction,\n menuAction,\n menuActionList,\n sidemenuToggleAction,\n menuWithoutAccountsActionList,\n notificationsAction,\n menuWithNotificationsActionList,\n menuWithNotificationsWithoutAccountsActionList\n} from './actions';\nimport { NotificationsStoreService } from '../../../core/services/notifications-store.service';\n\n@Component({\n selector: 'app-vi-header',\n templateUrl: './header.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['./header.component.scss']\n})\nexport class HeaderComponent extends FocusableComponent implements OnInit, OnDestroy {\n @Input() public isUserAuthenticated: boolean;\n @Input() public isZeroAccounts = false;\n @Input() public preset: HeaderPreset = HeaderPreset.FULL;\n\n // Buttons Actions\n public userDetails: IUserDetails;\n public settings = settingsAction;\n public notifications = notificationsAction;\n public sidemenuToggle: IAction = sidemenuToggleAction;\n public connectToAzureAction: IAction;\n public help: IAction = helpAction;\n public modelCustomization: IAction = modelCustomizationAction;\n public accounts: IAction = accountsAction;\n public menu: IAction = menuAction;\n public menuType: ActionButtonType = ActionButtonType.HEADER_BUTTON;\n public userMenuExpanded = false;\n public resources = resources;\n public readonly logoText = 'Azure AI Video Indexer';\n public readonly logoTextShort = 'Video Indexer';\n public selectedAccountId: string;\n public coreMetadataLoaded$: Observable;\n public VIRoutingMap = VIRoutingMap;\n public isArmAccount = true;\n public showSkipMainContent = false;\n public mainContentTriggerTabIndex = 0;\n public isSideMenuEnabled = false;\n public isSideMenuOpened = false;\n public readonly logoTextTitle = 'Azure AI Video Indexer';\n public readonly logoTextShortTitle = 'Video Indexer';\n public ActionButtonType = ActionButtonType;\n public isMobile = false;\n public isNotificationCenterEnabled = false;\n public notClearedNotificationsCount$: Observable;\n public notificationsLoading$: Observable;\n public readonly HeaderPreset = HeaderPreset;\n\n protected destroy$ = new Subject();\n private selectedAction: IAction;\n private sidebarActions: IAction[] = [this.accounts, this.help, this.settings, this.notifications];\n\n constructor(\n private cdr: ChangeDetectorRef,\n private translate: TranslateHelperService,\n private navigationService: AppNavigationService,\n private focusManager: FocusManagerService,\n private coreStoreService: CoreStoreService,\n private notificationsStore: NotificationsStoreService,\n private trackService: TrackService,\n private utilService: UtilsService,\n private featureSwitchService: FeatureSwitchService\n ) {\n super();\n }\n\n public get menuList() {\n if (this.isNotificationCenterEnabled) {\n return !this.isZeroAccounts ? menuWithNotificationsActionList : menuWithNotificationsWithoutAccountsActionList;\n }\n\n return !this.isZeroAccounts ? menuActionList : menuWithoutAccountsActionList;\n }\n\n public get showSideMenuToggle() {\n return this.isUserAuthenticated && !this.isZeroAccounts && this.preset === this.HeaderPreset.FULL;\n }\n\n public ngOnInit() {\n this.setTranslations();\n this.isMobile = this.utilService.isMobile();\n\n this.coreStoreService.userDetails$.pipe(takeUntil(this.destroy$)).subscribe(user => {\n this.userDetails = {\n email: user.email,\n imageUrl: user.image,\n name: user.name\n };\n });\n\n this.coreMetadataLoaded$ = this.coreStoreService.coreMetadataLoaded$.pipe(takeUntil(this.destroy$));\n this.coreStoreService.selectedAccountId$.pipe(takeUntil(this.destroy$)).subscribe(res => {\n this.selectedAccountId = res;\n });\n this.coreStoreService.selectedAccount$.pipe(takeUntil(this.destroy$)).subscribe(account => {\n this.isArmAccount = account?.resourceType === AccountResourceType.ARM;\n this.cdr.detectChanges();\n });\n if (this.featureSwitchService.featureSwitch(FeatureSwitch.NotificationCenter)) {\n this.isNotificationCenterEnabled = true;\n this.notClearedNotificationsCount$ = this.notificationsStore.notClearedNotificationsCount$.pipe(takeUntil(this.destroy$));\n this.notificationsLoading$ = this.notificationsStore.getNotificationsLoadingState$.pipe(takeUntil(this.destroy$));\n }\n\n this.coreStoreService.selectSideMenuOpen().subscribe(open => {\n this.isSideMenuOpened = open;\n this.cdr.detectChanges();\n });\n }\n\n public ngOnDestroy(): void {\n this.destroy$.complete();\n }\n\n public handleToggleUserMenu(event: Event): void {\n // Toggle menu only when userDetails exist and isn't empty object\n if (!this.userDetails || !Object.keys(this.userDetails).length) {\n return;\n }\n\n // close sidebar and prevent default only on clicking user button\n if (event) {\n event.preventDefault();\n this.closeSidebar();\n\n if (this.selectedAction) {\n this.selectedAction.selected = false;\n }\n }\n this.userMenuExpanded = !this.userMenuExpanded;\n\n this.trackService.track('header.toggle_user_menu', {\n category: EventCategory.HEADER,\n data: { value: this.userMenuExpanded }\n });\n }\n\n public handleToggleSideMenu() {\n this.isSideMenuOpened = !this.isSideMenuOpened;\n this.coreStoreService.sideMenuToggled(this.isSideMenuOpened);\n this.trackService.track('header.toggle_side_menu.click', {\n category: EventCategory.HEADER,\n data: { value: this.isSideMenuOpened }\n });\n }\n\n public setTranslations(): void {\n this.translate.translateResources(resources).subscribe(() => {\n // Actions\n connectToAzureAction.title = this.resources.VIHeaderCreatePro;\n this.connectToAzureAction = connectToAzureAction;\n\n [this.modelCustomization, this.accounts, this.help, this.settings, this.sidemenuToggle, this.notifications].forEach(c => {\n c.titleAttribute = this.resources[c.key];\n });\n\n this.menuList.forEach(item => {\n item.title = this.resources[item.key];\n });\n\n this.cdr.detectChanges();\n });\n }\n\n public connectToAzure() {\n this.navigationService.createAccountSubject.next(NavigationState.OPEN);\n this.trackService.track('header.click_connect_to_azure', {\n category: EventCategory.HEADER,\n action: 'keydown'\n });\n }\n\n public onHeaderFocus($event: FocusEvent) {\n const relatedTarget: Element = $event?.relatedTarget as Element;\n\n // IF event came from header-content, return\n if (relatedTarget && relatedTarget?.classList?.contains('header-skip-main-content')) {\n return;\n }\n // Add skip content popup\n this.showSkipMainContent = true;\n\n // Disable focus div so when user will press tab it wont get focus again\n this.mainContentTriggerTabIndex = -1;\n // focus it\n setTimeout(() => {\n this.focusManager.focusByQuery('.header-skip-main-content', this.cdr);\n });\n }\n\n public onBlurSkipContent() {\n if (this.showSkipMainContent) {\n this.showSkipMainContent = false;\n\n setTimeout(() => {\n // Return focus trigger to skip to main content after use will move focus to other element\n this.mainContentTriggerTabIndex = 0;\n this.cdr.detectChanges();\n }, 200);\n }\n }\n\n public onEnterSkipContent() {\n this.showSkipMainContent = false;\n\n // Focus main action\n this.focusManager.focusByQuery('.main-content-action', this.cdr);\n\n // Return focus trigger to skip to main content\n this.mainContentTriggerTabIndex = 0;\n }\n\n public handleButtonClick(action: IAction) {\n // Toggle sidebar with the appropriate page or upload popup\n let navigationOptions: ISidebarNavigationOptions;\n switch (action.value) {\n case UIHeaderActionType.HELP:\n navigationOptions = {\n page: SidebarPages.HELP,\n state: NavigationState.TOGGLE,\n callbackAfterClose: () => {\n this.focusManager.focusByQuery('#headerHelpBtn .action-button');\n this.selectedAction.selected = false;\n }\n };\n break;\n case UIHeaderActionType.ACCOUNTS:\n this.coreStoreService.clearAccountsFilterValue();\n navigationOptions = {\n page: SidebarPages.ACCOUNTS,\n state: NavigationState.TOGGLE,\n callbackAfterClose: () => {\n // the next elements aren't shown at the same time.\n // One's shown in desktop view, the other in mobile. So, only one will be in focus at a time\n this.focusManager.focusByQuery('#headerAccountsBtn .button-container');\n this.focusManager.focusByQuery('#mobileMenu');\n this.selectedAction.selected = false;\n }\n };\n break;\n case UIHeaderActionType.SETTINGS:\n navigationOptions = {\n page: SidebarPages.SETTINGS,\n state: NavigationState.TOGGLE,\n callbackAfterClose: () => {\n // the next elements aren't shown at the same time.\n // One's shown in desktop view, the other in mobile. So, only one will be in focus at a time\n this.focusManager.focusByQuery('#headerSettingsBtn .action-button');\n this.focusManager.focusByQuery('#mobileMenu');\n this.selectedAction.selected = false;\n }\n };\n break;\n case UIHeaderActionType.NOTIFICATIONS:\n navigationOptions = {\n page: SidebarPages.NOTIFICATIONS,\n state: NavigationState.TOGGLE,\n callbackAfterClose: () => {\n // the next elements aren't shown at the same time.\n // One's shown in desktop view, the other in mobile. So, only one will be in focus at a time\n this.focusManager.focusByQuery('#headerNotificationsBtn .action-button');\n this.focusManager.focusByQuery('#mobileMenu');\n this.selectedAction.selected = false;\n }\n };\n break;\n case UIHeaderActionType.CONNECT_TO_AZURE:\n this.connectToAzure();\n break;\n default:\n return;\n }\n this.coreStoreService.setSidebar(navigationOptions);\n this.setSelectedAction(action);\n this.trackService.track('header.click_button', {\n category: EventCategory.HEADER,\n action: 'keydown',\n page: navigationOptions?.page\n });\n }\n\n public handleCustomization() {\n if (this.selectedAction) {\n this.selectedAction.selected = false;\n }\n this.navigate(VIRoutingMap.customization.path);\n }\n\n public handleLogoClick() {\n if (this.selectedAction) {\n // clear selected state from the current action to 'reset' the header's button state\n this.selectedAction.selected = false;\n }\n\n this.navigate(VIRoutingMap.galleryHomeFullRoute.path);\n }\n\n public navigate(route: string) {\n route = route.replace(':accountId', this.selectedAccountId);\n this.coreStoreService.navigate([`/${route}`], null, null, true);\n this.closeSidebar();\n }\n\n public showConnectToAzure() {\n return !this.isArmAccount;\n }\n\n public ToggleMobileMenu(isMenuOpened: boolean) {\n this.menu = { ...this.menu, selected: isMenuOpened };\n }\n\n private setSelectedAction(action: IAction) {\n this.sidebarActions.forEach(act => {\n if (action.value !== act.value) {\n act.selected = false;\n } else {\n act.selected = !act.selected;\n this.selectedAction = act;\n }\n });\n }\n\n private closeSidebar() {\n this.coreStoreService.clearSidebar();\n this.trackService.track('header.close_sidebar', {\n category: EventCategory.HEADER,\n action: 'keydown'\n });\n }\n}\n","
\n
\n {{resources.HeaderComponentSkipMainContent}}\n
\n \n
\n
\n
\n \n \n
\n {{logoText}}\n
\n \n
\n
\n \n
\n \n \n
\n\n \n \n\n \n \n
0 && (notificationsLoading$ | async) === false\"\n [ngClass]=\"{'selected': (selectedAction?.id === notifications?.id) && selectedAction.selected }\"\n class=\"notification-badge\">{{notClearedNotificationsCount$ | async}}
\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
","export enum UIHeaderActionType {\n SETTINGS = 'SETTINGS',\n SIGN_OUT = 'SIGN_OUT',\n HELP = 'HELP',\n MODEL_CUSTOMIZATION = 'MODEL_CUSTOMIZATION',\n INVITE = 'INVITE',\n UPLOAD = 'UPLOAD',\n CONNECT_TO_AZURE = 'CONNECT_TO_AZURE',\n HOME = 'HOME',\n ACCOUNTS = 'ACCOUNTS',\n MENU = 'MENU',\n NOTIFICATIONS = 'NOTIFICATIONS',\n SWITCH_DIRECTORY = 'SWITCH_DIRECTORY'\n}\n\nexport enum HeaderPreset {\n FULL = 'FULL',\n LEAN = 'LEAN'\n}\n","export const resources = {\n HeaderUploadVideo: '',\n HeaderContentModelCustomization: '',\n HeaderHelpLinkAria: '',\n HeaderHelp: '',\n HeaderUserSettings: '',\n HeaderSignOut: '',\n VIHeaderCreatePro: '',\n HeaderUserImageAlt: '',\n HeaderAccounts: '',\n HeaderUserAccounts: '',\n HeaderToggleSidemenu: '',\n HeaderComponentSkipMainContent: '',\n SidebarUserNotifications: ''\n};\n","export const resources = {\n HeaderUserImageAlt: 'User Image'\n};\n","import { OnInit, ChangeDetectionStrategy, Input, ChangeDetectorRef, Component } from '@angular/core';\n\nimport { IUserDetails } from '@common/modules/core/services/interfaces';\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\n\nimport { resources } from './resources';\n\n@Component({\n selector: 'app-user-details',\n templateUrl: './user-details.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['./user-details.component.scss']\n})\nexport class UserDetailsComponent implements OnInit {\n // Input\n @Input() public userDetails: IUserDetails;\n\n public resources = resources;\n public ready = false;\n\n constructor(private translate: TranslateHelperService, private cdr: ChangeDetectorRef) {}\n\n public ngOnInit() {\n this.translate.translateResources(resources).subscribe(() => {\n this.ready = true;\n this.cdr.detectChanges();\n });\n }\n\n public getUserTitle(): string {\n return `${this.userDetails?.name} (${this.userDetails?.email})`;\n }\n}\n","
\n
\n \n
\n
\n
{{userDetails?.name}}
\n
{{userDetails?.email}}
\n
\n
\n","export const resources = {\n SwitchDirectory: '',\n HeaderSignOut: ''\n};\n","import { Component, OnInit, Input, ChangeDetectionStrategy, Inject, EventEmitter, Output, ChangeDetectorRef } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { MatDialog } from '@angular/material/dialog';\n\nimport { FeatureSwitch, IUserDetails } from '@common/modules/core/services/interfaces';\nimport { AuthService } from '@common/modules/auth/services/auth.service';\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\nimport { ActionButtonType } from '@common/modules/shared/components/action-button/interfaces';\nimport { FocusManagerService } from '@common/modules/accessibility/focus-manager.service';\nimport { DialogService } from '@common/modules/shared/components/dialog/dialog.service';\nimport { DialogComponent } from '@common/modules/shared/components/dialog/dialog.component';\nimport { FeatureSwitchService } from '@common/modules/core/services/feature-switch/feature-switch.service';\n\nimport { CoreStoreService } from '../../../core/services/core-store.service';\nimport { VIRoutingMap } from '../../../app/routing/routes';\nimport { signOutAction, switchDirectoryAction } from '../header/actions';\nimport { resources } from './resources';\n\n@Component({\n selector: 'app-vi-user-menu',\n templateUrl: './user-menu.component.html',\n styleUrls: ['./user-menu.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class UserMenuComponent implements OnInit {\n // Input\n @Input() public userDetails: IUserDetails;\n @Input() public show: boolean;\n\n @Output() public close = new EventEmitter();\n\n // Public\n public resources = resources;\n\n public signOutAction = signOutAction;\n public switchDirectoryAction = switchDirectoryAction;\n public ready = false;\n public ActionButtonType = ActionButtonType;\n public isSwitchDirectoryEnabled = false;\n private dialogRef;\n\n constructor(\n @Inject(DOCUMENT) private document: Document,\n private translate: TranslateHelperService,\n private coreStore: CoreStoreService,\n private dialog: MatDialog,\n private focusManager: FocusManagerService,\n private dialogService: DialogService,\n private featureSwitchService: FeatureSwitchService,\n private authService: AuthService,\n private cdr: ChangeDetectorRef\n ) {}\n\n public ngOnInit() {\n this.setTranslation();\n this.isSwitchDirectoryEnabled = this.featureSwitchService.featureSwitch(FeatureSwitch.SwitchDirectory) && this.authService.isAad();\n }\n\n public closeMenu() {\n this.close.emit();\n }\n\n public signOut() {\n this.coreStore.navigate([`/${VIRoutingMap.logout.path}`]);\n }\n\n public async openSwitchDirectoryDialog() {\n const onCloseCallBack = (): void => {\n this.focusManager.focusByQuery(`#userButton`, this.cdr);\n };\n\n // lazy load SwitchDirectoryComponent component\n const { SwitchDirectoryComponent } = await import('../../../shell/components/switch-directory/switch-directory.component');\n\n const dialogData = this.dialogService.getDialogData(\n 'switch-directory-dialog',\n this.resources.SwitchDirectory,\n null,\n null,\n null,\n null,\n SwitchDirectoryComponent\n );\n\n this.dialogRef = this.dialog.open(DialogComponent, {\n width: '90vw',\n height: '',\n maxHeight: '90vh',\n maxWidth: '980px',\n minHeight: '276px',\n data: dialogData,\n disableClose: true,\n ariaLabel: dialogData.title,\n panelClass: 'switch-directory-container'\n });\n\n this.dialogService.addBackgroundToOverlay();\n\n if (onCloseCallBack) {\n this.dialogRef.afterClosed().subscribe(() => {\n onCloseCallBack();\n });\n }\n }\n\n private setTranslation(): void {\n this.translate.translateResourcesInstant(this.resources);\n this.signOutAction.title = this.resources.HeaderSignOut;\n this.switchDirectoryAction.title = this.resources.SwitchDirectory;\n this.ready = true;\n }\n}\n","\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\n\nimport { SharedModule } from '@common/modules/shared/shared.module';\n\nimport { UserMenuComponent } from './components/user-menu/user-menu.component';\nimport { UserDetailsComponent } from './components/user-details/user-details.component';\nimport { HeaderComponent } from './components/header/header.component';\nimport { HeaderStripsComponent } from './components/header-strips/header-strips.component';\nimport { AccountsListButtonComponent } from './components/accounts-list-button/accounts-list-button.component';\n\n@NgModule({\n declarations: [HeaderComponent, UserDetailsComponent, UserMenuComponent, HeaderStripsComponent, AccountsListButtonComponent],\n exports: [HeaderComponent, UserDetailsComponent, UserMenuComponent],\n imports: [CommonModule, SharedModule, RouterModule]\n})\nexport class HeaderModule {}\n","export enum ReIndexPages {\n IndexingForm = 'IndexingForm',\n ReIndexReview = 'ReIndexReview',\n ReIndexSummary = 'ReIndexSummary'\n}\n\nexport enum FailureCode {\n NONE = 'None',\n GENERAL = 'General',\n INVALID_INPUT = 'InvalidInput',\n UNSUPPORTED_FILE_TYPE = 'UnsupportedFileType',\n AMS_NOT_AVAILABLE = 'AmsNotAvailable',\n AMS_NOT_AVAILABLE_OR_FILE_NOT_ACCESSIBLE = 'AmsNotAvailableOrFileNotAccessible',\n EVENT_GRID_NOT_REGISTERED = 'EventGridNotRegistered',\n TIMEOUT = 'Timeout',\n UPLOAD_FAILED = 'UploadFailed',\n AMS_GATE_WAY_TIMEOUT = 'AmsGatewayTimeout',\n VIDEO_DELETED = 'VideoDeleted',\n TRANSIENT_ERROR = 'TransientError',\n AMS_JOB_EXTERNAL_CANCELLATION = 'AmsJobExternalCancellation',\n VIDEO_ALREADY_FAILED = 'VideoAlreadyFailed',\n ASSET_WAS_NOT_FOUND = 'AssetWasNotFound',\n AMS_QUOTA_EXCEEDED = 'AmsQuotaExceeded',\n UNABLE_TO_REACH_STREAMING_END_POINT = 'UnableToReachStreamingEndpoint',\n VIDEO_URL_UNREACHABLE = 'VideoUrlUnreachable',\n READ_ONLY_DISABLED_SUBSCRIPTION = 'ReadOnlyDisabledSubscription'\n}\n","import { IAction } from '@common/modules/shared/interfaces';\nimport { UIActionType } from '@common/modules/insights/interfaces';\n\nexport const reIndexAction: IAction = {\n title: '',\n key: 'Reindex',\n type: UIActionType.CLOSE,\n value: UIActionType.CLOSE,\n id: 'reIndexBtn'\n};\n\nexport const reviewAndReIndexAction: IAction = {\n title: '',\n key: 'ReviewAndReIndex',\n type: UIActionType.PREVIEW,\n value: UIActionType.PREVIEW,\n id: 'reviewAndReIndexBtn'\n};\n\nexport const cancelAction: IAction = {\n title: '',\n key: 'Cancel',\n type: UIActionType.CANCEL,\n value: UIActionType.CANCEL,\n id: 'cancelReIndexBtn'\n};\n\nexport const closeIconAction: IAction = {\n title: '',\n key: 'Close',\n type: UIActionType.CLOSE,\n value: '',\n icon: 'i-vi-close-big',\n id: 'closeIconReIndex',\n titleAttribute: 'Close'\n};\n\nexport const closeAction: IAction = {\n title: '',\n key: 'Close',\n type: UIActionType.CLOSE,\n value: UIActionType.CLOSE,\n id: 'closeReIndex'\n};\n","import { Component, OnInit, ChangeDetectionStrategy, Output, EventEmitter, OnDestroy, ChangeDetectorRef } from '@angular/core';\n\nimport { Subject, combineLatestWith, takeUntil } from 'rxjs';\n\nimport { AlertMessageType } from '@vi-ui/core';\n\nimport { ActionButtonType } from '@common/modules/shared/components/action-button/interfaces';\nimport { IDialogEvent } from '@common/modules/shared/components/dialog/interfaces';\nimport { CustomizationPage, FeatureSwitch } from '@common/modules/core/services/interfaces';\nimport { EventCategory, TrackService } from '@common/modules/core/services/track';\n\nimport { FeatureSwitchService } from './../../../../../../../common/modules/core/services/feature-switch/feature-switch.service';\nimport { ReIndexPages } from './../interfaces';\nimport { CoreStoreService } from '../../../../core/services/core-store.service';\nimport { TranslateHelperService } from './../../../../../../../common/modules/translation/services/translate-helper.service';\nimport { IndexingStoreService } from '../../../services/indexing-store.service';\nimport { reIndexAction, cancelAction, closeIconAction, reviewAndReIndexAction, closeAction } from './actions';\nimport { resources } from './resources';\nimport { IUploadErrorStrip } from '../../upload/summary-page/interfaces';\nimport { backToSettingsAction } from '../../shared/actions';\n\n@Component({\n selector: 'vi-re-index-dialog',\n templateUrl: './re-index-dialog.component.html',\n styleUrls: ['./re-index-dialog.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ReIndexDialogComponent implements OnInit, OnDestroy {\n @Output() public componentEventEmitter = new EventEmitter();\n\n public isExcludeAIsEnabled: boolean;\n public isIndexingSettingLoaded: boolean;\n public isReIndexProcessing: boolean;\n public indexingFormChanged: boolean = false;\n public showConfirmExit: boolean = false;\n public navigateToCreateAccount: boolean = false;\n public customizationPageToNavigate: CustomizationPage = null;\n public reIndexAction = reIndexAction;\n public cancelAction = cancelAction;\n public closeIconAction = closeIconAction;\n public closeAction = closeAction;\n public backToSettingsAction = backToSettingsAction;\n public reviewAndReIndexAction = reviewAndReIndexAction;\n public ActionButtonType = ActionButtonType;\n public resources = resources;\n public AlertMessageType = AlertMessageType;\n public showLoadingError = false;\n public showReIndexError = false;\n public error: Partial;\n public statusText: string;\n public displayedReIndexPage: ReIndexPages;\n public ReIndexPages = ReIndexPages;\n public isSupportedAIsLoaded: boolean = false;\n\n public readonly REVIEW_REINDEX_BUTTON_MIN_WIDTH = '155px';\n public readonly BACK_TO_SETTINGS_MIN_WIDTH = '141px';\n\n private destroy$ = new Subject();\n\n constructor(\n private indexingStore: IndexingStoreService,\n private translate: TranslateHelperService,\n private trackService: TrackService,\n private coreStoreService: CoreStoreService,\n private cdr: ChangeDetectorRef,\n private featureSwitchService: FeatureSwitchService\n ) {}\n\n public ngOnInit(): void {\n this.isExcludeAIsEnabled = this.featureSwitchService.featureSwitch(FeatureSwitch.ExcludeAIs);\n this.initTranslations();\n this.handleLoadingErrors();\n this.handleReIndexErrors();\n this.statusText = `${this.resources?.Processing}...`;\n this.indexingStore.isIndexingProcessDirty$.pipe(takeUntil(this.destroy$)).subscribe(isDirty => {\n this.indexingFormChanged = isDirty;\n });\n this.indexingStore.isIndexingSettingLoaded$.pipe(takeUntil(this.destroy$)).subscribe(isIndexingSettingLoaded => {\n this.isIndexingSettingLoaded = isIndexingSettingLoaded;\n this.cdr.detectChanges();\n });\n this.indexingStore.displayedReIndexPage$.pipe(takeUntil(this.destroy$)).subscribe(page => {\n this.displayedReIndexPage = page;\n this.cdr.detectChanges();\n });\n this.indexingStore.isReIndexProcessing$.pipe(takeUntil(this.destroy$)).subscribe(isReIndexProcessing => {\n this.isReIndexProcessing = isReIndexProcessing;\n this.cdr.detectChanges();\n });\n this.indexingStore.isSupportedAIsLoaded$.pipe(takeUntil(this.destroy$)).subscribe(isSupportedAIsLoaded => {\n this.isSupportedAIsLoaded = isSupportedAIsLoaded;\n this.cdr.detectChanges();\n });\n }\n\n public ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n public get showReIndexButton(): boolean {\n if (this.isExcludeAIsEnabled) {\n return this.displayedReIndexPage === ReIndexPages.ReIndexReview;\n }\n\n return this.isIndexingSettingLoaded;\n }\n\n public get showReviewReIndexButton(): boolean {\n return (\n this.isExcludeAIsEnabled && this.isIndexingSettingLoaded && !this.showLoadingError && this.displayedReIndexPage === ReIndexPages.IndexingForm\n );\n }\n\n public get showBackToSettingsButton(): boolean {\n return this.displayedReIndexPage === ReIndexPages.ReIndexReview;\n }\n\n public get showCloseButton(): boolean {\n return this.displayedReIndexPage === ReIndexPages.ReIndexSummary;\n }\n\n public get showCancelButton(): boolean {\n return this.displayedReIndexPage !== ReIndexPages.ReIndexSummary;\n }\n\n public get showReIndexStatus(): boolean {\n if (this.isExcludeAIsEnabled) {\n return this.displayedReIndexPage === ReIndexPages.ReIndexSummary;\n }\n return this.isIndexingFormDisabled;\n }\n\n public get reIndexStatusText(): string {\n if (!this.isReIndexProcessing && !this.showReIndexError) {\n this.statusText = '';\n }\n return this.statusText;\n }\n\n public get isReIndexButtonDisabled(): boolean {\n return this.isReIndexProcessing || this.showLoadingError || this.showReIndexError;\n }\n\n public get isIndexingFormDisabled(): boolean {\n return this.isReIndexProcessing || this.showReIndexError;\n }\n\n public reIndexClicked() {\n this.customizationPageToNavigate = null;\n this.indexingStore.reIndex();\n\n if (this.isExcludeAIsEnabled) {\n this.indexingStore.updateReIndexPage(ReIndexPages.ReIndexSummary);\n }\n }\n\n public reviewReIndexClicked() {\n this.indexingStore.updateReIndexPage(ReIndexPages.ReIndexReview);\n }\n\n public backToSettingsClicked() {\n this.indexingStore.updateReIndexPage(ReIndexPages.IndexingForm);\n }\n\n public confirmClose(pageToNavigate: CustomizationPage = null, navigateToCreateAccount: boolean = false) {\n this.customizationPageToNavigate = pageToNavigate;\n this.navigateToCreateAccount = navigateToCreateAccount;\n this.showConfirmExit = this.indexingFormChanged;\n\n if (!this.showConfirmExit) {\n this.close();\n } else {\n // This trace was emitted here and not inside the confirm exit component so we can differentiate upload_dialog event from re_index_dialog trace\n this.trackService.track('re_index_dialog.confirm_exit.init', { category: EventCategory.RE_INDEX });\n }\n }\n\n public close() {\n this.componentEventEmitter.emit({\n isDialogClose: true,\n dialogEventData: { customizationPageToNavigate: this.customizationPageToNavigate, navigateToCreateAccount: this.navigateToCreateAccount }\n });\n }\n\n public leaveIndexing() {\n this.trackService.track('re_index_dialog.confirm_exit.leave.clicked', { category: EventCategory.RE_INDEX });\n this.close();\n }\n\n public onBackToIndexing() {\n this.trackService.track('re_index_dialog.confirm_exit.cancel.clicked', { category: EventCategory.RE_INDEX });\n this.showConfirmExit = !this.showConfirmExit;\n }\n\n public onNavigateToCreateAccount() {\n this.confirmClose(null, true); // Nav to create account dialog\n }\n\n public onReIndexError() {\n this.showReIndexError = true;\n this.statusText = this.resources.Failed;\n this.cdr.detectChanges();\n }\n\n private initTranslations() {\n this.translate.translateResourcesInstant(resources);\n const actions = [reIndexAction, cancelAction, reviewAndReIndexAction, closeAction, backToSettingsAction];\n for (const action of actions) {\n action.title = this.resources[action.key];\n }\n }\n\n private handleLoadingErrors() {\n this.indexingStore.isFileNotFoundError$\n .pipe(\n takeUntil(this.destroy$),\n combineLatestWith(\n this.indexingStore.isGeneralLoadingReIndexError$,\n this.indexingStore.isVideoUrlUnreachableError$,\n this.indexingStore.isFileWasRemovedError$\n )\n )\n .subscribe(([isFileNotFoundError, isGeneralLoadingReIndexError, isVideoUrlUnreachableError, isFileWasRemovedError]) => {\n this.showLoadingError = isFileNotFoundError || isGeneralLoadingReIndexError || isVideoUrlUnreachableError || isFileWasRemovedError;\n\n if (isFileNotFoundError) {\n this.error = { content: this.resources.ReIndexFileNotFoundErrorMsg };\n }\n if (isGeneralLoadingReIndexError) {\n this.error = { content: this.resources.ReIndexGeneralLoadingErrorMsg };\n }\n if (isVideoUrlUnreachableError) {\n this.error = { content: this.resources.ReIndexVideoUrlUnreachableErrorMsg };\n }\n if (isFileWasRemovedError) {\n this.error = { content: this.resources.ReIndexFileWasRemovedErrorMsg };\n }\n\n if (this.showLoadingError) {\n this.cdr.detectChanges();\n }\n });\n }\n\n // TODO: delete when exclude AIs is enabled\n private handleReIndexErrors() {\n this.indexingStore.isAmsUnreachableReIndexError$\n .pipe(\n takeUntil(this.destroy$),\n combineLatestWith(\n this.indexingStore.isSourceVideoDeletedError$,\n this.indexingStore.isIndexingInProgressError$,\n this.indexingStore.isFileInReviewError$,\n this.indexingStore.isFileWasReportedError$,\n this.indexingStore.isProjectRenderInProgressError$,\n this.indexingStore.isAmsAadAppNotInTenantReIndexError$,\n this.indexingStore.isGeneralReIndexError$,\n this.indexingStore.isStorageAccessDeniedReIndexError$,\n this.indexingStore.isStorageUnreachableReIndexError$,\n this.indexingStore.isManageIdentityMissingReIndexError$\n )\n )\n .subscribe(\n ([\n isAmsUnreachableReIndexError,\n isSourceVideoDeletedError,\n isIndexingInProgressError,\n isFileInReviewError,\n isFileWasReportedError,\n isProjectRenderInProgressError,\n isAmsAadAppNotInTenantReIndexError,\n isGeneralReIndexError,\n isStorageAccessDeniedReIndexError,\n isStorageUnreachableReIndexError,\n isManageIdentityMissingReIndexError\n ]) => {\n const errorMessages = [\n { showError: isAmsUnreachableReIndexError, content: this.resources.ReIndexAmsUnreachableErrorMsg, linkText: null, onClick: null },\n { showError: isSourceVideoDeletedError, content: this.resources.ReIndexSourceVideoDeletedErrorMsg, linkText: null, onClick: null },\n { showError: isIndexingInProgressError, content: this.resources.ReIndexVideoIndexingInProgressErrorMsg, linkText: null, onClick: null },\n { showError: isFileInReviewError, content: this.resources.ReIndexFileInReviewErrorMsg, linkText: null, onClick: null },\n { showError: isFileWasReportedError, content: this.resources.ReIndexFileWasReportedErrorMsg, linkText: null, onClick: null },\n {\n showError: isProjectRenderInProgressError,\n content: this.resources.ReIndexProjectRenderInProgressErrorMsg,\n linkText: null,\n onClick: null\n },\n {\n showError: isAmsAadAppNotInTenantReIndexError,\n content: this.resources.ReIndexAmsAadAppNotInTenantErrorMsg,\n linkText: null,\n onClick: null\n },\n { showError: isGeneralReIndexError, content: this.resources.ReIndexGeneralErrorMessage, linkText: null, onClick: null },\n {\n showError: isStorageAccessDeniedReIndexError,\n content: this.resources.ReIndexStorageAccessDeniedErrorMsg,\n linkText: this.resources.StorageAccessDeniedErrorMsgLinkText,\n onClick: () => this.coreStoreService.navigateToViResourceOverviewPortalUrl()\n },\n { showError: isStorageUnreachableReIndexError, content: this.resources.ReIndexStorageUnreachableErrorMsg, linkText: null, onClick: null },\n {\n showError: isManageIdentityMissingReIndexError,\n content: this.resources.ReIndexFileManagedIdentityMissingErrorMsg,\n linkText: null,\n onClick: null\n }\n ];\n\n const error = errorMessages.find(error => error.showError);\n\n if (error) {\n this.showReIndexError = true;\n this.error = error;\n this.statusText = this.resources.Failed;\n this.cdr.detectChanges();\n }\n }\n );\n }\n}\n","\n
\n
\n \n

\n {{resources?.ReindexModalHeader}}\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 {{reIndexStatusText}}\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","export const resources = {\n ReindexModalHeader: '',\n Reindex: '',\n Cancel: '',\n Processing: '',\n ReIndexFileNotFoundErrorMsg: '',\n ReIndexGeneralLoadingErrorMsg: '',\n ReIndexVideoUrlUnreachableErrorMsg: '',\n ReIndexFileWasRemovedErrorMsg: '',\n ReIndexAmsUnreachableErrorMsg: '',\n ReIndexSourceVideoDeletedErrorMsg: '',\n ReIndexVideoIndexingInProgressErrorMsg: '',\n ReIndexFileInReviewErrorMsg: '',\n ReIndexFileWasReportedErrorMsg: '',\n ReIndexProjectRenderInProgressErrorMsg: '',\n ReIndexAmsAadAppNotInTenantErrorMsg: '',\n ReIndexGeneralErrorMessage: '',\n ReIndexStorageAccessDeniedErrorMsg: '',\n StorageAccessDeniedErrorMsgLinkText: '',\n ReIndexStorageUnreachableErrorMsg: '',\n ReIndexFileManagedIdentityMissingErrorMsg: '',\n Failed: '',\n Close: '',\n ReviewAndReIndex: '',\n IndexingBackToSettings: ''\n};\n","import { OnInit, ChangeDetectorRef, OnDestroy, EventEmitter, Output, ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { Subject, combineLatestWith, takeUntil } from 'rxjs';\n\nimport { AlertMessageType } from '@vi-ui/core';\n\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\n\nimport { CoreStoreService } from '../../../../core/services/core-store.service';\nimport { resources } from './resources';\nimport { IndexingStoreService } from '../../../services/indexing-store.service';\nimport { IUploadErrorStrip } from '../../upload/summary-page/interfaces';\n\n@Component({\n selector: 'vi-re-index-summary-page',\n templateUrl: './re-index-summary-page.component.html',\n styleUrls: ['./re-index-summary-page.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ReIndexSummaryPageComponent implements OnInit, OnDestroy {\n @Output() public reIndexError = new EventEmitter();\n\n public resources = resources;\n\n public file = '';\n public filesLabel = '';\n\n public showReIndexError = false;\n public AlertMessageType = AlertMessageType;\n public error: Partial;\n\n private destroy$ = new Subject();\n\n constructor(\n private translate: TranslateHelperService,\n private indexingStore: IndexingStoreService,\n private coreStoreService: CoreStoreService,\n private cdr: ChangeDetectorRef\n ) {}\n\n public ngOnInit(): void {\n this.translate.translateResourcesInstant(this.resources);\n this.indexingStore.fileName$.pipe(takeUntil(this.destroy$)).subscribe(fileName => {\n this.file = fileName;\n this.cdr.markForCheck();\n });\n this.handleReIndexErrors();\n }\n\n public ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n private handleReIndexErrors() {\n this.indexingStore.isAmsUnreachableReIndexError$\n .pipe(\n takeUntil(this.destroy$),\n combineLatestWith(\n this.indexingStore.isSourceVideoDeletedError$,\n this.indexingStore.isIndexingInProgressError$,\n this.indexingStore.isFileInReviewError$,\n this.indexingStore.isFileWasReportedError$,\n this.indexingStore.isProjectRenderInProgressError$,\n this.indexingStore.isAmsAadAppNotInTenantReIndexError$,\n this.indexingStore.isGeneralReIndexError$,\n this.indexingStore.isStorageAccessDeniedReIndexError$,\n this.indexingStore.isStorageUnreachableReIndexError$,\n this.indexingStore.isManageIdentityMissingReIndexError$\n )\n )\n .subscribe(\n ([\n isAmsUnreachableReIndexError,\n isSourceVideoDeletedError,\n isIndexingInProgressError,\n isFileInReviewError,\n isFileWasReportedError,\n isProjectRenderInProgressError,\n isAmsAadAppNotInTenantReIndexError,\n isGeneralReIndexError,\n isStorageAccessDeniedReIndexError,\n isStorageUnreachableReIndexError,\n isManageIdentityMissingReIndexError\n ]) => {\n const errorMessages = [\n { showError: isAmsUnreachableReIndexError, content: this.resources.ReIndexAmsUnreachableErrorMsg, linkText: null, onClick: null },\n { showError: isSourceVideoDeletedError, content: this.resources.ReIndexSourceVideoDeletedErrorMsg, linkText: null, onClick: null },\n { showError: isIndexingInProgressError, content: this.resources.ReIndexVideoIndexingInProgressErrorMsg, linkText: null, onClick: null },\n { showError: isFileInReviewError, content: this.resources.ReIndexFileInReviewErrorMsg, linkText: null, onClick: null },\n { showError: isFileWasReportedError, content: this.resources.ReIndexFileWasReportedErrorMsg, linkText: null, onClick: null },\n {\n showError: isProjectRenderInProgressError,\n content: this.resources.ReIndexProjectRenderInProgressErrorMsg,\n linkText: null,\n onClick: null\n },\n {\n showError: isAmsAadAppNotInTenantReIndexError,\n content: this.resources.ReIndexAmsAadAppNotInTenantErrorMsg,\n linkText: null,\n onClick: null\n },\n { showError: isGeneralReIndexError, content: this.resources.ReIndexGeneralErrorMessage, linkText: null, onClick: null },\n {\n showError: isStorageAccessDeniedReIndexError,\n content: this.resources.ReIndexStorageAccessDeniedErrorMsg,\n linkText: this.resources.StorageAccessDeniedErrorMsgLinkText,\n onClick: () => this.coreStoreService.navigateToViResourceOverviewPortalUrl()\n },\n { showError: isStorageUnreachableReIndexError, content: this.resources.ReIndexStorageUnreachableErrorMsg, linkText: null, onClick: null },\n {\n showError: isManageIdentityMissingReIndexError,\n content: this.resources.ReIndexFileManagedIdentityMissingErrorMsg,\n linkText: null,\n onClick: null\n }\n ];\n\n const error = errorMessages.find(error => error.showError);\n\n if (error) {\n this.showReIndexError = true;\n this.error = error;\n this.cdr.detectChanges();\n }\n }\n );\n }\n}\n","
\n
\n \n \n \n
\n
{{resources?.ReIndexSummaryTitle + ':'}}
\n
\n
\n
\n \n
{{file}}
\n
\n \n
","export const resources = {\n IndexingSingleFileLabel: '',\n ReIndexSummaryTitle: '',\n ReIndexAmsUnreachableErrorMsg: '',\n ReIndexSourceVideoDeletedErrorMsg: '',\n ReIndexVideoIndexingInProgressErrorMsg: '',\n ReIndexFileInReviewErrorMsg: '',\n ReIndexFileWasReportedErrorMsg: '',\n ReIndexProjectRenderInProgressErrorMsg: '',\n ReIndexAmsAadAppNotInTenantErrorMsg: '',\n ReIndexGeneralErrorMessage: '',\n ReIndexStorageAccessDeniedErrorMsg: '',\n StorageAccessDeniedErrorMsgLinkText: '',\n ReIndexStorageUnreachableErrorMsg: '',\n ReIndexFileManagedIdentityMissingErrorMsg: ''\n};\n","import { UIActionType } from '@common/modules/insights/interfaces';\nimport { IAction } from '@common/modules/shared/interfaces';\n\nexport const backToSettingsAction: IAction = {\n title: '',\n key: 'IndexingBackToSettings',\n type: UIActionType.PREVIOUS,\n value: UIActionType.PREVIOUS,\n id: 'backToSettingsBtn'\n};\n","import { UIActionType } from '@common/modules/insights/interfaces';\nimport { IAction } from '@common/modules/shared/interfaces';\n\nexport const leaveIndexingAction: IAction = {\n title: '',\n key: 'LeaveIndexingAction',\n type: UIActionType.NAVIGATE,\n value: UIActionType.NAVIGATE,\n id: 'leaveIndexingAction'\n};\n\nexport const backToIndexingAction: IAction = {\n title: '',\n key: 'BackToIndexingAction',\n type: UIActionType.CLOSE,\n value: UIActionType.CLOSE,\n id: 'backToIndexingAction'\n};\n","import { Component, OnInit, ChangeDetectionStrategy, Output, EventEmitter } from '@angular/core';\n\nimport { ActionButtonType } from '@common/modules/shared/components/action-button/interfaces';\nimport { IAction } from '@common/modules/shared/interfaces';\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\n\nimport { resources } from './resources';\nimport * as actions from './actions';\n\n@Component({\n selector: 'vi-confirm-exit-indexing',\n templateUrl: './confirm-exit-indexing.component.html',\n styleUrls: ['./confirm-exit-indexing.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ConfirmExitIndexingComponent implements OnInit {\n @Output() backToIndexing = new EventEmitter();\n @Output() leaveIndexing = new EventEmitter();\n\n public resources = resources;\n\n // Constants\n public readonly LEAVE_INDEXING_MIN_BUTTON_WIDTH: string = '77px';\n public readonly BACK_TO_INDEXING_MIN_BUTTON_WIDTH: string = '82px';\n // Buttons properties\n public leaveIndexingAction: IAction = actions.leaveIndexingAction;\n public backToIndexingAction: IAction = actions.backToIndexingAction;\n public ActionButtonType = ActionButtonType;\n\n constructor(private translate: TranslateHelperService) {}\n\n public ngOnInit(): void {\n this.initTranslations();\n }\n\n public onBackToIndexing() {\n this.backToIndexing.emit();\n }\n\n public onLeavePage(action: IAction) {\n this.leaveIndexing.emit(action);\n }\n\n private initTranslations() {\n this.translate.translateResourcesInstant(resources);\n this.leaveIndexingAction.title = this.resources.ConfirmExitIndexingLeaveButton;\n this.backToIndexingAction.title = this.resources.Cancel;\n }\n}\n","
\n
\n {{resources?.ConfirmExitIndexingTitle}}\n
\n
\n {{resources?.ConfirmExitIndexingDescription}}\n
\n
\n \n \n \n \n
\n
\n","export const resources = {\n ConfirmExitIndexingTitle: '',\n ConfirmExitIndexingDescription: '',\n ConfirmExitIndexingLeaveButton: '',\n Cancel: ''\n};\n","import { Component, OnInit, ChangeDetectionStrategy, Input, Output, EventEmitter } from '@angular/core';\n\nimport { IFile } from '../../../interfaces';\nimport { MAX_VIDEO_NAME_LENGTH } from '../../../utils/file';\n\n@Component({\n selector: 'vi-indexing-file-name-input',\n templateUrl: './file-name-input.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FileNameInputComponent implements OnInit {\n @Input() public file: IFile;\n @Input() public disabled?: boolean;\n @Input() public label?: string;\n @Input() public errorMessage?: string;\n @Output() public nameChanged = new EventEmitter();\n\n public filename: string;\n public MAX_VIDEO_NAME_LENGTH = MAX_VIDEO_NAME_LENGTH;\n private lastValidFilename: string;\n private lastEmittedValue: string;\n\n constructor() {}\n public ngOnInit(): void {\n this.filename = this.file.name;\n this.lastValidFilename = this.file.name;\n }\n\n public onFilenameChanged(value: string) {\n this.filename = value;\n\n if (this.isFilenameValid(this.filename)) {\n this.lastValidFilename = this.filename;\n }\n }\n\n public onFocusout(value: string) {\n if (this.lastEmittedValue === value) {\n return;\n }\n if (this.isFilenameValid(value)) {\n this.onFilenameChanged(value);\n } else {\n // restore to last valid file-name in case of inalid file name\n this.onFilenameChanged(this.lastValidFilename);\n }\n\n this.nameChanged.emit({ ...this.file, name: this.filename });\n this.lastEmittedValue = this.filename;\n }\n\n private isFilenameValid(filename: string): boolean {\n if (!filename) {\n return false;\n }\n\n return true;\n }\n}\n","","import { Component, OnInit, ChangeDetectionStrategy, OnDestroy, HostBinding, Input, Output, EventEmitter } from '@angular/core';\n\nimport { Subject, takeUntil, withLatestFrom } from 'rxjs';\n\nimport { AlertMessageType } from '@vi-ui/core';\n\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\nimport { FACE_RECOGNITION_FORM } from '@common/modules/shared/links';\nimport { FocusableComponent } from '@common/modules/accessibility/focusable/focusable.component';\n\nimport { resources } from './resources';\nimport { CoreStoreService } from '../../../../core/services/core-store.service';\nimport { FaceGateStripMode } from './interfaces';\n\n@Component({\n selector: 'vi-indexing-face-gate-strip',\n templateUrl: './indexing-face-gate-strip.component.html',\n styleUrls: ['./indexing-face-gate-strip.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class IndexingFaceGateStripComponent extends FocusableComponent implements OnInit, OnDestroy {\n @Input() public mode: FaceGateStripMode;\n @Output() public navigateToCreateAccount = new EventEmitter();\n\n public AlertMessageType = AlertMessageType;\n public isTrial = false;\n public isAccountLimitedWithFaces = false;\n public showFaceGateWarning = false;\n public resources = resources;\n\n @HostBinding('style.display') public get isVisible() {\n return this.showFaceGateWarning ? 'block' : 'none';\n }\n\n private isAccountInHighRiskRegion = false;\n\n private destroy$ = new Subject();\n\n constructor(private coreStore: CoreStoreService, private translate: TranslateHelperService) {\n super();\n }\n\n public ngOnInit(): void {\n this.initTranslations();\n this.coreStore.isTrialAccount$.pipe(takeUntil(this.destroy$)).subscribe(isTrial => {\n this.isTrial = isTrial;\n });\n\n this.coreStore.isAccountLimitedWithFaces$\n .pipe(withLatestFrom(this.coreStore.isAccountInHighRiskRegion$), takeUntil(this.destroy$))\n .pipe(withLatestFrom(this.coreStore.showFaceGateWarning$), takeUntil(this.destroy$))\n .subscribe(([[isAccountLimitedWithFaces, isAccountInHighRiskRegion], showFaceGateWarning]) => {\n if (isAccountLimitedWithFaces === undefined || isAccountLimitedWithFaces === null) {\n return;\n }\n this.isAccountLimitedWithFaces = isAccountLimitedWithFaces;\n this.isAccountInHighRiskRegion = isAccountInHighRiskRegion;\n this.showFaceGateWarning = showFaceGateWarning;\n });\n }\n\n public ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n public get faceGateStripMessage() {\n // When account is gated - can not access to faces\n if (this.mode === FaceGateStripMode.Indexing) {\n return this.faceGateIndexingStripMessage;\n } else {\n return this.faceGatePeopleModelStripMessage;\n }\n }\n\n public get faceGateStripLinkText() {\n // When account is gated - can not access to faces\n if (this.mode === FaceGateStripMode.Indexing) {\n return this.faceGateIndexingStripLinkText;\n } else {\n return this.faceGatePeopleModelStripLinkText;\n }\n }\n\n public handleLinkNavigation() {\n if (this.isTrial) {\n this.navigateToCreateAccount.emit();\n }\n }\n\n public get faceGateStripLinkPath() {\n return this.isTrial ? null : FACE_RECOGNITION_FORM;\n }\n\n private get faceGatePeopleModelStripLinkText() {\n return this.isTrial ? this.resources?.IndexingPeopleModelsTrialFaceGateLink : this.resources?.IndexingPaidFaceGateLink;\n }\n\n private get faceGatePeopleModelStripMessage() {\n return this.isTrial\n ? this.resources?.IndexingPeopleModelsTrialFaceGateMessage\n : this.isAccountInHighRiskRegion\n ? resources.IndexingPeopleModelsPaidHighRiskFaceGateMessage\n : this.resources?.IndexingPeopleModelsPaidFaceGateMessage;\n }\n\n private get faceGateIndexingStripMessage() {\n if (this.isAccountLimitedWithFaces) {\n // return different message to - trial, paid or paid in high risk region\n return this.isTrial\n ? this.resources?.IndexingTrialFaceGateMessage\n : this.isAccountInHighRiskRegion\n ? this.resources?.IndexingPaidHighRiskFaceGateMessage\n : this.resources?.IndexingPaidFaceGateMessage;\n } else {\n // When account is not gated - warning him\n // return different message to - trial, paid or paid in high risk region\n return this.isTrial\n ? this.resources?.IndexingOldTrialFaceGateMessage\n : this.isAccountInHighRiskRegion\n ? resources.IndexingOldPaidHighRiskFaceGateMessage\n : this.resources?.IndexingOldPaidFaceGateMessage;\n }\n }\n\n private get faceGateIndexingStripLinkText() {\n return this.isTrial ? this.resources?.CreateAccountWithAzure : this.resources?.IndexingPaidFaceGateLink;\n }\n\n private initTranslations() {\n this.translate.translateResourcesInstant(resources);\n }\n}\n","
\n \n
","export enum FaceGateStripMode {\n Indexing = 'indexing',\n PeopleModels = 'people-models'\n}\n","export const resources = {\n IndexingPaidHighRiskFaceGateMessage: '',\n IndexingPaidFaceGateLink: '',\n IndexingPaidFaceGateMessage: '',\n IndexingTrialFaceGateMessage: '',\n IndexingOldTrialFaceGateMessage: '',\n IndexingOldPaidHighRiskFaceGateMessage: '',\n IndexingOldPaidFaceGateMessage: '',\n IndexingPeopleModelsTrialFaceGateMessage: '',\n IndexingPeopleModelsPaidFaceGateMessage: '',\n IndexingPeopleModelsPaidHighRiskFaceGateMessage: '',\n IndexingPeopleModelsTrialFaceGateLink: '',\n CreateAccountWithAzure: ''\n};\n","import { IAction } from '@common/modules/shared/interfaces';\nimport { UIActionType, UIActionIcon } from '@common/modules/insights/interfaces';\n\nexport const backToBasic: IAction = {\n title: '',\n type: UIActionType.PREVIOUS,\n value: UIActionType.PREVIOUS,\n icon: UIActionIcon.PREVIOUS,\n selected: false,\n selectable: false,\n key: 'IndexingBackToBasicButton',\n id: 'backToBasicButton'\n};\n\nexport const advancedSettings: IAction = {\n title: '',\n type: UIActionType.CLICK,\n value: '',\n icon: UIActionIcon.SETTINGS,\n selected: false,\n selectable: false,\n key: 'IndexingAdvancedSettingsButton',\n id: 'advancedSettingsButton'\n};\n","import { Component, OnInit, ChangeDetectionStrategy, OnDestroy, Output, EventEmitter, Input, OnChanges } from '@angular/core';\n\nimport { combineLatestWith } from 'rxjs/operators';\nimport { takeUntil, Observable, Subject } from 'rxjs';\n\nimport { NavBarItem, AccordionMode } from '@vi-ui/core';\n\nimport { ComponentChanges, IAction } from '@common/modules/shared/interfaces';\nimport { ActionButtonType } from '@common/modules/shared/components/action-button/interfaces';\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\nimport { CustomizationPage, FeatureSwitch } from '@common/modules/core/services/interfaces';\nimport { EventCategory, TrackService } from '@common/modules/core/services/track';\nimport { DataService } from '@common/modules/shared/services/data.service';\nimport { FeatureSwitchService } from '@common/modules/core/services/feature-switch/feature-switch.service';\nimport { ExcludableAIsModels } from '@common/modules/api/interfaces';\n\nimport { EdgeExtensionsStoreService } from '../../../../core/services/edge-extensions-store.service';\nimport { CustomizationDataStoreService } from '../../../../customization-data/services/customization-data-store.service';\nimport { AdvancedSettings, IndexingMode, UploadMode } from './../../../interfaces';\nimport { resources } from './resources';\nimport { IndexingStoreService } from './../../../services/indexing-store.service';\nimport { settings, edgeSettings } from './settings';\nimport * as actions from './actions';\nimport { IndexingPreset } from '../settings';\nimport { isAdvancedIndexingPresetSelected } from '../../../core/effects/utils/indexing-utils';\n\n@Component({\n selector: 'vi-indexing-form',\n templateUrl: './indexing-form.component.html',\n styleUrls: ['./indexing-form.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class IndexingFormComponent implements OnInit, OnDestroy, OnChanges {\n @Input() isDisabled = false;\n @Output() public manageModelsClicked = new EventEmitter();\n @Output() public navigateToCreateAccount = new EventEmitter();\n\n public showAdvancedMode: boolean = false;\n public selectedAdvancedSettings$ = new Observable();\n public indexingMode: IndexingMode;\n public indexingPreset$ = new Observable();\n public excludeRAI$ = new Observable();\n public settingsItems: NavBarItem[] = settings;\n public edgeSettingsItems: NavBarItem[] = edgeSettings;\n public isUserConfirmTerms: boolean = false;\n public backToBasicAction: IAction = actions.backToBasic;\n public advancedSettingsAction: IAction = actions.advancedSettings;\n public AdvancedSettings = AdvancedSettings;\n public ActionButtonType = ActionButtonType;\n public IndexingMode = IndexingMode;\n public AccordionMode = AccordionMode;\n // Indicates if the user switched to multi file mode at least once\n public isMultiFileMode: boolean = false;\n public isAdvancedIndexingPresetSelected: boolean;\n public resources = resources;\n\n // Mobile\n public isGeneralSettingsMobileOpened = true;\n public readonly GENERAL_SETTINGS_MOBILE_ID = 'generalSettingMobileItem';\n public isMobileView = false;\n public fileInfoTitle: string;\n public enableBasicEdgePreset = false;\n public hasSelectedEdgeExtension = false;\n\n private destroy$ = new Subject();\n constructor(\n private indexingStore: IndexingStoreService,\n private customizationDataStoreService: CustomizationDataStoreService,\n private translate: TranslateHelperService,\n private trackService: TrackService,\n private dataService: DataService,\n private featureSwitchService: FeatureSwitchService,\n private edgeExtensionsStore: EdgeExtensionsStoreService\n ) {}\n\n public get fileInfoDisabled(): boolean {\n return this.indexingMode === IndexingMode.ReIndex;\n }\n\n public get showFileNamesSection() {\n return this.indexingMode === IndexingMode.Upload && this.isMultiFileMode;\n }\n\n public get settings() {\n return this.hasSelectedEdgeExtension ? this.edgeSettingsItems : this.settingsItems;\n }\n\n public set settings(settings: NavBarItem[]) {\n if (this.hasSelectedEdgeExtension) {\n this.edgeSettingsItems = settings;\n } else {\n this.settingsItems = settings;\n }\n }\n\n public ngOnInit(): void {\n this.enableBasicEdgePreset = this.featureSwitchService.featureSwitch(FeatureSwitch.EdgeBasicPreset);\n\n this.initTranslations();\n this.edgeExtensionsStore.hasSelectedEdgeExtension$.pipe(takeUntil(this.destroy$)).subscribe(hasSelectedEdgeExtension => {\n this.hasSelectedEdgeExtension = hasSelectedEdgeExtension;\n });\n this.indexingStore.indexingMode$.pipe(takeUntil(this.destroy$)).subscribe(indexingMode => {\n this.indexingMode = indexingMode;\n this.handleReIndexNavItems();\n });\n this.indexingStore.showAdvancedMode$.pipe(takeUntil(this.destroy$)).subscribe(showAdvancedMode => {\n this.showAdvancedMode = showAdvancedMode;\n });\n this.initUploadModeEvents();\n this.selectedAdvancedSettings$ = this.indexingStore.selectedAdvancedSettings$.pipe(takeUntil(this.destroy$));\n this.indexingPreset$ = this.indexingStore.indexingPreset$.pipe(takeUntil(this.destroy$));\n this.indexingPreset$.subscribe(preset => {\n this.isAdvancedIndexingPresetSelected = isAdvancedIndexingPresetSelected(preset);\n });\n this.excludeRAI$ = this.indexingStore.excludeRAI$;\n this.dataService.isResponsiveView$.subscribe(isResponsiveView => {\n this.isMobileView = isResponsiveView;\n });\n }\n\n public ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n public ngOnChanges(changes: ComponentChanges) {\n if (changes.isDisabled) {\n this.handleDisabledNavItems(changes.isDisabled.currentValue);\n }\n }\n\n public toggleAdvancedSettings(): void {\n this.indexingStore.toggleAdvancedMode();\n }\n\n public onAdvancedSettingsClicked(): void {\n this.trackEvent('advanced_settings.toggled', { advanced: true });\n this.toggleAdvancedSettings();\n this.customizationDataStoreService.loadPersonModels();\n this.customizationDataStoreService.loadBrandModels();\n this.customizationDataStoreService.loadLogoGroups();\n }\n\n public onBackToBasicSettings(): void {\n this.trackEvent('advanced_settings.toggled', { advanced: false });\n this.indexingStore.updateSelectedAdvancedSettings(AdvancedSettings.General);\n this.toggleAdvancedSettings();\n }\n\n public onSelectedSettings(selectedSettings: AdvancedSettings) {\n if (this.isDisabled) {\n return;\n }\n this.indexingStore.updateSelectedAdvancedSettings(selectedSettings);\n this.trackEvent('indexing_section.init', { selectedSettings });\n }\n\n public onIndexingPresetChanged(preset: IndexingPreset) {\n this.indexingStore.updateIndexingPreset(preset);\n }\n\n public onExcludedRAIChange(excluded: boolean) {\n this.indexingStore.updateExcludedRAI(excluded);\n }\n\n public onExcludeAIsChanged(excluded: ExcludableAIsModels[]) {\n this.indexingStore.updateExcludeAIs(excluded);\n }\n\n public onManageModelsClicked(customizationPageToNavigate: CustomizationPage) {\n this.manageModelsClicked.emit(customizationPageToNavigate);\n }\n\n public onNavigateToCreateAccount() {\n this.navigateToCreateAccount.emit();\n }\n\n public onAddFilesClicked() {\n if (!this.isMobileView) {\n this.indexingStore.updateSelectedAdvancedSettings(AdvancedSettings.General);\n return;\n }\n\n // scroll to general settings section and make sure it opened\n this.isGeneralSettingsMobileOpened = true;\n document.getElementById(this.GENERAL_SETTINGS_MOBILE_ID).scrollIntoView({\n behavior: 'smooth',\n block: 'start',\n inline: 'nearest'\n });\n }\n\n private initTranslations() {\n this.translate.translateResourcesInstant(resources);\n for (const item in this.settingsItems) {\n this.settingsItems[item].text = resources[this.settingsItems[item].key];\n }\n\n for (const item in this.edgeSettingsItems) {\n this.edgeSettingsItems[item].text = resources[this.edgeSettingsItems[item].key];\n }\n\n for (const action in actions) {\n actions[action].title = resources[actions[action].key];\n }\n }\n\n private initUploadModeEvents() {\n this.indexingStore.isMultiFileMode$\n .pipe(takeUntil(this.destroy$), combineLatestWith(this.indexingStore.uploadMode$))\n .subscribe(([isMultiFileMode, uploadMode]) => {\n // Indicates if the user switched to multi file mode at least once, switching back to single mode will not change this value by design\n if (isMultiFileMode) {\n this.isMultiFileMode = true;\n }\n this.handleUploadNavItems(isMultiFileMode, uploadMode);\n });\n }\n\n private handleUploadNavItems(isMultiFileMode: boolean, uploadMode: UploadMode) {\n if (this.indexingMode === IndexingMode.ReIndex) {\n return;\n }\n\n this.settings = this.settings.map(item => {\n const updatedItem = { ...item };\n // Hide the file names settings item if the current file mode is single file\n if (updatedItem.id === AdvancedSettings.FileNames && uploadMode === UploadMode.File) {\n updatedItem.hidden = !this.isMultiFileMode;\n }\n // Change the text of the file info settings item according to the current file mode\n if (updatedItem.id === AdvancedSettings.FileInfo) {\n // save in property for mobile view\n this.fileInfoTitle = isMultiFileMode ? resources.IndexingBatchInfoSettings : resources.IndexingFileInfoSettings;\n updatedItem.text = this.fileInfoTitle;\n }\n return updatedItem;\n });\n }\n\n private handleReIndexNavItems() {\n if (this.indexingMode === IndexingMode.Upload) {\n return;\n }\n // for re index mode remove file items\n this.settings = this.settings.filter(item => item.id !== AdvancedSettings.FileNames);\n this.fileInfoTitle = resources.IndexingFileInfoSettings;\n }\n\n private handleDisabledNavItems(isDisabled: boolean) {\n this.settings = this.settings.map(item => {\n const updatedItem = { ...item };\n updatedItem.disable = isDisabled;\n return updatedItem;\n });\n }\n\n private trackEvent(eventName: string, properties: object) {\n if (this.indexingMode === IndexingMode.Upload) {\n this.trackService.track(`upload_dialog.${eventName}`, { data: properties, category: EventCategory.UPLOAD });\n } else {\n this.trackService.track(`re_index_dialog.${eventName}`, { data: properties, category: EventCategory.RE_INDEX });\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 \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\n\n\n \n \n\n\n\n \n \n\n\n\n \n \n","export const resources = {\n IndexingGeneralSettings: '',\n IndexingFileNamesSettings: '',\n IndexingIndexingPresetsSettings: '',\n IndexingPeopleModelsSettings: '',\n IndexingBrandCategoriesSettings: '',\n IndexingLogoGroupsSettings: '',\n IndexingBatchInfoSettings: '',\n IndexingFileInfoSettings: '',\n IndexingBackToBasicButton: '',\n IndexingAdvancedSettingsButton: ''\n};\n","import { NavBarItem } from '@vi-ui/core';\n\nimport { AdvancedSettings } from '../../../interfaces';\n\nexport const settings: NavBarItem[] = [\n { id: AdvancedSettings.General, hidden: false, key: 'IndexingGeneralSettings', text: '' },\n { id: AdvancedSettings.FileNames, hidden: false, key: 'IndexingFileNamesSettings', text: '' },\n { id: AdvancedSettings.IndexingPreset, hidden: false, key: 'IndexingIndexingPresetsSettings', text: '' },\n { id: AdvancedSettings.PeopleModels, hidden: false, key: 'IndexingPeopleModelsSettings', text: '' },\n { id: AdvancedSettings.BrandCategories, hidden: false, key: 'IndexingBrandCategoriesSettings', text: '' },\n { id: AdvancedSettings.LogoGroups, hidden: false, key: 'IndexingLogoGroupsSettings', text: '' },\n { id: AdvancedSettings.FileInfo, hidden: false, key: 'IndexingFileInfoSettings', text: '' }\n];\n\nexport const edgeSettings: NavBarItem[] = [\n { id: AdvancedSettings.General, hidden: false, key: 'IndexingGeneralSettings', text: '' },\n { id: AdvancedSettings.FileNames, hidden: false, key: 'IndexingFileNamesSettings', text: '' },\n { id: AdvancedSettings.IndexingPreset, hidden: false, key: 'IndexingIndexingPresetsSettings', text: '' },\n { id: AdvancedSettings.FileInfo, hidden: false, key: 'IndexingFileInfoSettings', text: '' }\n];\n","import { ChangeDetectionStrategy, Component, OnDestroy, OnInit } from '@angular/core';\n\nimport { Observable, Subject, takeUntil } from 'rxjs';\n\nimport { CoreStoreService } from 'src/apps/web/src/core/services/core-store.service';\n\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\nimport { EventCategory, TrackService } from '@common/modules/core/services/track';\n\nimport { resources } from './resources';\nimport { IndexingStoreService } from '../../../services/indexing-store.service';\nimport { RowValueColor } from '../indexing-summary/interfaces';\nimport { IndexingMode } from '../../../interfaces';\n\n@Component({\n selector: 'vi-indexing-review-page',\n templateUrl: './indexing-review-page.component.html',\n styleUrls: ['./indexing-review-page.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class IndexingReviewPageComponent implements OnInit, OnDestroy {\n public filesNames: string = '';\n public resources = resources;\n public numOfFiles: number;\n public filesLabel = '';\n public summaryTitle = '';\n public isMultipleFileUpload: boolean;\n public showConsent: boolean = false;\n\n // styling\n public RowValueColor = RowValueColor;\n\n // user consent\n public userConsent: boolean;\n public isUSAccount$: Observable;\n public isTrialAccount$: Observable;\n\n private destroy$ = new Subject();\n\n constructor(\n private translate: TranslateHelperService,\n private indexingStore: IndexingStoreService,\n private coreStore: CoreStoreService,\n private trackService: TrackService\n ) {}\n\n public ngOnInit(): void {\n this.trackService.track('indexing_review_page.init', { category: EventCategory.INDEXING_REVIEW });\n this.translate.translateResourcesInstant(this.resources);\n this.isUSAccount$ = this.coreStore.isUSAccount$;\n this.isTrialAccount$ = this.coreStore.isTrialAccount$;\n this.indexingStore.userConsent$.pipe(takeUntil(this.destroy$)).subscribe(consent => {\n this.userConsent = consent;\n });\n this.handleFiles();\n this.summaryTitle = this.resources.IndexingReviewPageTitle;\n // show consent only when indexing mode is upload\n this.indexingStore.indexingMode$.pipe(takeUntil(this.destroy$)).subscribe(mode => {\n this.showConsent = mode === IndexingMode.Upload;\n });\n }\n\n public ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n public onConsentChanged(consent: boolean) {\n this.trackService.track('upload_dialog.confirm_terms.checked', { category: EventCategory.UPLOAD, data: { checked: consent } });\n this.indexingStore.updateUserConsent(consent);\n }\n\n private handleFiles() {\n this.indexingStore.allValidFilesNames$.pipe(takeUntil(this.destroy$)).subscribe(filesNames => {\n this.filesNames = filesNames?.join(', ') || '';\n this.numOfFiles = filesNames?.length;\n this.isMultipleFileUpload = this.numOfFiles > 1;\n this.filesLabel = this.isMultipleFileUpload\n ? [this.numOfFiles, this.resources.IndexingMultiFilesLabel].join(' ')\n : this.resources.IndexingSingleFileLabel;\n });\n }\n}\n","
{{summaryTitle}}
\n
\n
\n
\n \n
\n {{filesNames}}\n
\n
\n \n
\n
\n
\n \n \n
","export const resources = {\n IndexingSingleFileLabel: '',\n IndexingMultiFilesLabel: '',\n IndexingReviewPageTitle: ''\n};\n","import { Component, ChangeDetectionStrategy, ChangeDetectorRef, Input, OnDestroy, OnInit } from '@angular/core';\n\nimport { Observable, Subject, firstValueFrom, take } from 'rxjs';\n\nimport { snakeCase, startCase } from 'lodash-es';\nimport { AppListItem } from 'src/apps/web/src/gallery/data-source/app-list-data-source';\nimport { GalleryService } from 'src/apps/web/src/gallery/services/gallery.service';\n\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\nimport { StreamingPreset } from '@common/modules/shared/interfaces';\nimport { EventCategory, TrackService } from '@common/modules/core/services/track';\nimport { ApiService } from '@common/modules/api/services/api.service';\n\nimport { IndexingSummaryService } from '../../../../gallery/services/indexing-summary-service';\nimport { indexingSummaryData, IndexingSettingKeys } from './interfaces';\nimport { resources } from '../indexing-summary/resources';\nimport { dataset } from './settings';\nimport { IndexingPreset } from '../settings/indexing-presets/interfaces';\nimport { presets, presetsWithBasicVideo } from '../settings/indexing-presets/actions';\n\n@Component({\n selector: 'vi-indexing-summary-dialog',\n templateUrl: './indexing-summary-dialog.component.html',\n styleUrls: ['./indexing-summary-dialog.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class IndexingSummaryDialogComponent implements OnInit, OnDestroy {\n @Input() isDisabled = false;\n @Input() public data: AppListItem;\n readonly displayNameString = 'DisplayName';\n\n public isLoading: boolean = true;\n public showError: boolean = false;\n public videoTitle$ = new Observable();\n public dataset: indexingSummaryData = dataset;\n public resources = resources;\n public thumbnailClass: string = '';\n public logoGroupName: string = '';\n public peopleModelName: string = '';\n public includedAIsNames: string[] = [];\n public excludedAIsNames: string[] = [];\n\n private destroy$ = new Subject();\n\n constructor(\n private indexingSummaryService: IndexingSummaryService,\n private cdr: ChangeDetectorRef,\n private translate: TranslateHelperService,\n private trackService: TrackService,\n private apiService: ApiService,\n private galleryService: GalleryService\n ) {}\n\n public getThumbnailClass(item: AppListItem): string {\n return `i-vi-${this.galleryService.getThumbnailClass(item)}`;\n }\n\n ngOnInit(): void {\n this.trackService.track('indexing_settings_dialog.init', { category: EventCategory.INDEXING_SETTINGS });\n this.translate.translateResourcesInstant(resources);\n this.loadVideoIndexData();\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n public async loadVideoIndexData(): Promise {\n try {\n const videoIndexResponse = await firstValueFrom(\n this.apiService.Account.Video.getVideoIndex(this.data.accountId, this.data.id, {\n includeStreamingUrls: false,\n includeSummarizedInsights: false\n }).pipe(take(1))\n );\n\n this.thumbnailClass = this.getThumbnailClass(this.data);\n\n const [logoGroupName, peopleModelName, supportedAIs] = await Promise.all([\n this.indexingSummaryService.getLogoGroupNameById(videoIndexResponse.videos[0].logoGroupId),\n this.indexingSummaryService.getPeopleModelNameById(videoIndexResponse.videos[0].personModelId),\n this.indexingSummaryService.getSupportedAINamesByPreset(this.data.accountId, this.data.indexingPreset as IndexingPreset)\n ]);\n\n this.excludedAIsNames = this.indexingSummaryService.getExcludedAIsNames(videoIndexResponse.videos[0].excludedAIs || [], supportedAIs);\n this.includedAIsNames = this.indexingSummaryService.getIncludedAisNames(\n this.data.indexingPreset as IndexingPreset,\n supportedAIs,\n this.excludedAIsNames\n );\n\n this.logoGroupName = logoGroupName;\n this.peopleModelName = peopleModelName;\n\n this.initTranslations();\n this.initDatasetValues();\n this.isLoading = false;\n\n this.cdr.detectChanges();\n this.trackService.track('indexing_summary_dialog.load_video_index_data.success', { category: EventCategory.INDEXING_SETTINGS });\n } catch (err) {\n this.trackService.track('indexing_summary_dialog.load_video_index_data.failed', { category: EventCategory.INDEXING_SETTINGS, data: err });\n this.isLoading = false;\n this.showError = true;\n this.cdr.detectChanges();\n }\n }\n\n private initTranslations() {\n for (const item of this.dataset.indexingSettingsDetails) {\n item.text = resources[item.key];\n\n // translate sub settings titles\n if (item.children) {\n for (const child of item.children) {\n child.text = resources[child.key];\n }\n }\n }\n for (const item of this.dataset.videoDescription) {\n item.text = resources[item.key];\n }\n }\n\n private initDatasetValues() {\n const allSummaryKeys = [...this.dataset.videoDescription, ...this.dataset.indexingSettingsDetails];\n\n for (const item of allSummaryKeys) {\n switch (item.key) {\n case IndexingSettingKeys.IndexedBy:\n item.value = this.data.userName;\n break;\n case IndexingSettingKeys.GalleryItemLastModified:\n item.value = this.data.lastModifiedTimeFormatted;\n break;\n case IndexingSettingKeys.UploadPeopleModel:\n item.value = this.peopleModelName;\n break;\n case IndexingSettingKeys.UploadLogoGroupOption:\n item.value = this.logoGroupName;\n break;\n case IndexingSettingKeys.IndexingPresetLabel:\n item.children.find(child => child.key === IndexingSettingKeys.IncludedAIs).value = this.translatedAIs(this.includedAIsNames).join(', ');\n item.children.find(child => child.key === IndexingSettingKeys.ExcludedAIs).value = this.translatedAIs(this.excludedAIsNames).join(', ');\n item.value = this.translatedPreset;\n break;\n case IndexingSettingKeys.ReindexModalVideoSourceLanguage:\n item.value = this.languageName;\n break;\n case IndexingSettingKeys.UploadPrivacyLabel:\n item.value = this.translatedPrivacyMode;\n break;\n case IndexingSettingKeys.UploadStreaming:\n item.value = this.selectedStreaming;\n break;\n }\n }\n\n this.dataset.videoThumbnailUrl = this.data.thumbnail;\n this.dataset.videoTitle = this.data.name;\n }\n\n private translatedAIs(AIsNames: string[]): string[] {\n return AIsNames.map(ai => {\n let modelDisplayName = this.translate.instant(`${ai}${this.displayNameString}`);\n // if the displayName is not translated, use the startCase function as a fallback.\n if (modelDisplayName === `${ai}${this.displayNameString}`) {\n modelDisplayName = startCase(ai);\n }\n return modelDisplayName;\n });\n }\n\n private get selectedStreaming(): string {\n switch (this.data.streamingPreset) {\n case StreamingPreset.SingleBitrate:\n return this.resources.UploadServiceSingleBiterate;\n case StreamingPreset.NoStreaming:\n return this.resources.UploadServiceNoStreaming;\n }\n }\n\n private get translatedPrivacyMode(): string {\n return this.translate.instant(`${this.data.privacyMode}`);\n }\n\n private get languageName(): string | undefined {\n const languageNameTranslated = this.translate.instant(`Language_${snakeCase(this.data.sourceLanguage)}`);\n return languageNameTranslated;\n }\n\n private get translatedPreset(): string | undefined {\n const value = this.data.indexingPreset;\n const preset = [...presets, ...presetsWithBasicVideo].find(p => p.value === value);\n return preset ? this.resources[preset.key] : undefined;\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 {{dataset?.videoTitle}}\n
\n
\n \n {{generalSetting.text}}:\n {{generalSetting.value}}\n \n
\n
\n
\n
\n
\n \n
\n\n \n \n
\n {{setting.text}}:\n {{setting.value}}\n\n
\n \n
\n
\n
\n
\n
\n
","export enum IndexingSettingKeys {\n IncludedAIs = 'IncludedModelsLabel',\n ExcludedAIs = 'ExcludedModelsLabel',\n IndexedBy = 'IndexedBy',\n GalleryItemLastModified = 'GalleryItemLastModified',\n ReindexModalVideoSourceLanguage = 'ReindexModalVideoSourceLanguage',\n IndexingPresetLabel = 'IndexingPresetLabel',\n UploadPrivacyLabel = 'UploadPrivacyLabel',\n UploadStreaming = 'UploadStreaming',\n UploadPeopleModel = 'UploadPeopleModel',\n UploadLogoGroupOption = 'UploadLogoGroupOption',\n BrandsModel = 'BrandsModel'\n}\n\nexport interface indexingSetting {\n value: string;\n children?: indexingSetting[];\n key: IndexingSettingKeys;\n text: string;\n childrenClassName?: string;\n}\n\nexport interface indexingSummaryData {\n videoThumbnailUrl: string;\n videoTitle: string;\n videoDescription: indexingSetting[];\n indexingSettingsDetails: indexingSetting[];\n}\n","import { indexingSummaryData, indexingSetting, IndexingSettingKeys } from './interfaces';\n\nexport const models: indexingSetting[] = [\n { key: IndexingSettingKeys.IncludedAIs, text: '', value: '' },\n { key: IndexingSettingKeys.ExcludedAIs, text: '', value: '' }\n];\n\nexport const dataset: indexingSummaryData = {\n videoThumbnailUrl: '',\n videoTitle: '',\n videoDescription: [\n { key: IndexingSettingKeys.IndexedBy, text: '', value: '' },\n { key: IndexingSettingKeys.GalleryItemLastModified, text: '', value: '' }\n ],\n indexingSettingsDetails: [\n { key: IndexingSettingKeys.ReindexModalVideoSourceLanguage, text: '', value: '' },\n {\n key: IndexingSettingKeys.IndexingPresetLabel,\n text: '',\n value: '',\n children: models,\n childrenClassName: 'models-settings'\n },\n { key: IndexingSettingKeys.UploadPrivacyLabel, text: '', value: '' },\n { key: IndexingSettingKeys.UploadStreaming, text: '', value: '' },\n { key: IndexingSettingKeys.UploadPeopleModel, text: '', value: '' },\n { key: IndexingSettingKeys.UploadLogoGroupOption, text: '', value: '' },\n { key: IndexingSettingKeys.BrandsModel, text: '', value: '' }\n ]\n};\n","import { OnInit, ChangeDetectorRef, OnDestroy, EventEmitter, Output, ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\nimport { Subject, take, takeUntil, withLatestFrom } from 'rxjs';\n\nimport { startCase } from 'lodash-es';\n\nimport { PrivacyMode } from '@common/modules/core/interfaces';\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\nimport { StreamingPreset } from '@common/modules/shared/interfaces';\nimport { FeatureSwitchService } from '@common/modules/core/services/feature-switch/feature-switch.service';\nimport { FeatureSwitch } from '@common/modules/core/services/interfaces';\n\nimport { EdgeExtensionsStoreService } from '../../../../core/services/edge-extensions-store.service';\nimport { presetsWithBasicVideo } from '../settings/indexing-presets/actions';\nimport { defaultBrandCategory } from '../../../interfaces';\nimport { resources } from './resources';\nimport { IndexingStoreService } from '../../../services/indexing-store.service';\nimport { PresetHelperService } from '../../../services/preset-helper.service';\nimport { ISummaryRow, RowValueColor } from './interfaces';\n\n@Component({\n selector: 'vi-indexing-summary',\n templateUrl: './indexing-summary.component.html',\n styleUrls: ['./indexing-summary.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class IndexingSummaryComponent implements OnInit, OnDestroy {\n @Input() public rowValueColor?: string = RowValueColor.Secondary;\n\n @Output() public createAccountClicked = new EventEmitter();\n public resources = resources;\n\n public selectedPeopleModel = '';\n public selectedLogoGroup = '';\n public selectedBrandCategories = '';\n public selectedLanguage = '';\n public selectedPrivacy = '';\n public selectedStreaming = '';\n public selectedPreset = '';\n public includedAIs = '';\n public excludedAIs = '';\n public indexingSettingInfo: ISummaryRow[] = [];\n\n private presets;\n private destroy$ = new Subject();\n private hasSelectedEdgeExtension: boolean = false;\n private isExcludeAIsEnabled = false;\n\n private readonly DISPLAY_NAME_KEY = 'DisplayName';\n\n constructor(\n private translate: TranslateHelperService,\n private indexingStore: IndexingStoreService,\n private cdr: ChangeDetectorRef,\n private edgeExtensionService: EdgeExtensionsStoreService,\n private presetHelperService: PresetHelperService,\n private featureSwitchService: FeatureSwitchService\n ) {}\n\n public ngOnInit(): void {\n this.isExcludeAIsEnabled = this.featureSwitchService.featureSwitch(FeatureSwitch.ExcludeAIs);\n this.translate.translateResourcesInstant(this.resources);\n this.handleEdge();\n this.handleIndexingSetting();\n }\n\n public ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n public createAccount() {\n this.createAccountClicked.emit();\n }\n\n private handleEdge() {\n this.edgeExtensionService.hasSelectedEdgeExtension$.pipe(takeUntil(this.destroy$)).subscribe(hasSelectedEdgeExtension => {\n this.hasSelectedEdgeExtension = hasSelectedEdgeExtension;\n this.presets = this.hasSelectedEdgeExtension ? this.presetHelperService.getEdgePresets() : presetsWithBasicVideo;\n });\n }\n\n private handleIndexingSetting() {\n this.indexingStore.indexingSettingSummary$\n .pipe(take(1), withLatestFrom(this.indexingStore.indexingLanguages$), withLatestFrom(this.indexingStore.isLoadSupportedAIsError$))\n .subscribe(([[summary, languages], isLoadSupportedAIsError]) => {\n this.selectedPeopleModel = summary.peopleModel;\n this.selectedBrandCategories = this.getSelectedBrands(summary.brandsCategories);\n this.selectedPrivacy = this.getSelectedPrivacy(summary.privacy);\n this.selectedStreaming = this.getSelectedStreaming(summary.streamingPreset);\n this.selectedPreset = this.getSelectedPreset(summary.indexingPreset, summary.excludeRAI, isLoadSupportedAIsError);\n this.selectedLogoGroup = summary.logoGroup;\n const language = languages.find(lang => lang.id === summary.languageId);\n this.selectedLanguage = language.name;\n\n if (this.isExcludeAIsEnabled && !isLoadSupportedAIsError) {\n this.includedAIs = this.stringifySupportedAIs(summary.includedAIs);\n this.excludedAIs = this.stringifySupportedAIs(summary.excludedAIs);\n }\n\n this.handleRows();\n this.cdr.detectChanges();\n });\n }\n\n private handleRows(): void {\n this.indexingSettingInfo = [\n { label: `${this.resources.UploadVideoSourceLanguage}:`, value: this.selectedLanguage, show: true },\n {\n label: `${this.resources.IndexingPresetLabel}:`,\n value: this.selectedPreset,\n show: true,\n subRows: [\n {\n label: `${this.resources.IncludedModelsLabel}: `,\n value: this.includedAIs,\n show: this.isExcludeAIsEnabled && !!this.includedAIs\n },\n {\n label: `${this.resources.ExcludedModelsLabel}: `,\n value: this.excludedAIs,\n show: this.isExcludeAIsEnabled && !!this.excludedAIs\n }\n ]\n },\n { label: `${this.resources.UploadPrivacyLabel}:`, value: this.selectedPrivacy, show: !this.hasSelectedEdgeExtension },\n { label: `${this.resources.UploadStreaming}:`, value: this.selectedStreaming, show: !this.hasSelectedEdgeExtension },\n { label: `${this.resources.UploadPeopleModelOption}:`, value: this.selectedPeopleModel, show: !!this.selectedPeopleModel },\n { label: `${this.resources.UploadLogoGroupOption}:`, value: this.selectedLogoGroup, show: !!this.selectedLogoGroup },\n { label: `${this.resources.BrandsModel}:`, value: this.selectedBrandCategories, show: !!this.selectedBrandCategories }\n ];\n }\n\n private getSelectedBrands(brands: string[]): string {\n if (brands?.includes(defaultBrandCategory)) {\n return [this.resources.UploadServiceDefaultName].concat(brands.filter(brand => brand !== defaultBrandCategory)).join(', ');\n } else {\n return brands?.join(', ');\n }\n }\n\n private getSelectedPrivacy(privacy: string): string {\n switch (privacy) {\n case PrivacyMode.PUBLIC:\n return this.resources.AppSettingsPublic;\n case PrivacyMode.PRIVATE:\n return this.resources.AppSettingsPrivate;\n }\n }\n\n private getSelectedStreaming(streaming: string): string {\n switch (streaming) {\n case StreamingPreset.SingleBitrate:\n return this.resources.UploadServiceSingleBiterate;\n case StreamingPreset.NoStreaming:\n return this.resources.UploadServiceNoStreaming;\n }\n }\n\n private getSelectedPreset(preset, excludeRAI, isLoadSupportedAIsError) {\n const selected = this.presets.find(p => p.value === preset);\n if (excludeRAI && (!this.isExcludeAIsEnabled || isLoadSupportedAIsError)) {\n return `${this.resources[selected.key]} (${this.resources.ExcludeRAI})`;\n }\n return this.resources[selected.key];\n }\n\n private stringifySupportedAIs(supportedAIs) {\n return supportedAIs.map(ai => this.translateAI(ai)).join(', ');\n }\n\n private translateAI(ai: string) {\n let modelDisplayName = this.translate.instant(`${ai + this.DISPLAY_NAME_KEY}`);\n\n // if the AI name is not translated, use the startCase function as a fallback.\n if (modelDisplayName === `${ai + this.DISPLAY_NAME_KEY}`) {\n modelDisplayName = startCase(ai);\n }\n\n return modelDisplayName;\n }\n}\n","
\n \n
\n \n
\n {{row.value}}\n
\n \n
\n {{subRow.label}}\n {{subRow.value}}\n
\n
\n
\n
\n
\n
\n
","export interface ISummaryRow {\n label: string;\n value: string;\n show: boolean;\n subRows?: ISummaryRow[];\n}\n\nexport enum RowValueColor {\n Secondary = 'secondary',\n Primary = 'primary'\n}\n","export const resources = {\n UploadServiceDefaultName: '',\n AppSettingsPrivate: '',\n AppSettingsPublic: '',\n UploadPrivacyLabel: '',\n UploadServiceSingleBiterate: '',\n UploadServiceNoStreaming: '',\n UploadLogoGroupOption: '',\n UploadStreaming: '',\n IndexingPresetLabel: '',\n UploadVideoSourceLanguage: '',\n IndexingPresetBasicVideoAudioLabel: '',\n IndexingPresetBasicVideoAudioDetails: '',\n IndexingPresetStandardVideoAudioLabel: '',\n IndexingPresetStandardVideoAudioDetails: '',\n IndexingPresetAdvancedVideoAudioLabel: '',\n IndexingPresetAdvancedVideoAudioDetails: '',\n IndexingPresetBasicVideoLabel: '',\n IndexingPresetBasicVideoDetails: '',\n IndexingPresetStandardVideoLabel: '',\n IndexingPresetStandardVideoDetails: '',\n IndexingPresetAdvancedVideoLabel: '',\n IndexingPresetAdvancedVideoDetails: '',\n IndexingPresetBasicAudioLabel: '',\n IndexingPresetBasicAudioDetails: '',\n IndexingPresetStandardAudioLabel: '',\n IndexingPresetStandardAudioDetails: '',\n IndexingPresetAdvancedAudioLabel: '',\n IndexingPresetAdvancedAudioDetails: '',\n IndexingPresetTooltipText: '',\n IndexingPresetDetailsLabel: '',\n IndexingPresetLearnMoreLinkText: '',\n IndexingPresetExcludeRAICheckboxLabel: '',\n IndexingPresetExcludeRAITooltipText: '',\n IndexingPresetExcludeRAIDescription: '',\n IndexingPresetRAILinkText: '',\n UploadPeopleModelOption: '',\n UploadPeopleModel: '',\n BrandsModel: '',\n ExcludeRAI: '',\n IncludedModelsLabel: '',\n ExcludedModelsLabel: '',\n IndexingSummaryFailedTitle: '',\n InsightsTranslationErrorGetIndexDescription: '',\n IndexedBy: '',\n GalleryItemLastModified: '',\n ReindexModalVideoSourceLanguage: '',\n GalleryListItemMediaThumbnail: '',\n IndexingSummaryLoadingPlaceholder: ''\n};\n","import { Component, OnInit, ChangeDetectionStrategy, Input } from '@angular/core';\n\nimport { Observable, take } from 'rxjs';\n\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\n\nimport { resources } from './resources';\nimport { IndexingStoreService } from '../../../../services/indexing-store.service';\n@Component({\n selector: 'vi-indexing-file-information',\n templateUrl: './file-information.component.html',\n styleUrls: ['./file-information.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FileInformationComponent implements OnInit {\n @Input() public isDisabled = false;\n\n public metadata: string;\n public description: string;\n public resources = resources;\n public isMultiFileMode$ = new Observable();\n\n constructor(private translate: TranslateHelperService, private indexingStore: IndexingStoreService) {}\n\n public ngOnInit(): void {\n this.isMultiFileMode$ = this.indexingStore.isMultiFileMode$;\n this.indexingStore.metadata$.pipe(take(1)).subscribe(metadata => {\n this.metadata = metadata;\n });\n this.indexingStore.description$.pipe(take(1)).subscribe(description => {\n this.description = description;\n });\n\n this.translate.translateResourcesInstant(this.resources);\n }\n\n public onMetadataChanged(value: string) {\n if (this.metadata === value) {\n return;\n }\n this.metadata = value;\n this.indexingStore.updateMetadata(value);\n }\n\n public onDescriptionChanged(value: string) {\n if (this.description === value) {\n return;\n }\n this.description = value;\n this.indexingStore.updateDescription(value);\n }\n}\n","
\n \n \n\n \n \n
","export const resources = {\n Metadata: '',\n FileInformationMetadataDescription: '',\n Description: ''\n};\n","import { Component, ChangeDetectionStrategy, OnInit, Output, EventEmitter, OnDestroy, ChangeDetectorRef } from '@angular/core';\n\nimport { Subject, takeUntil } from 'rxjs';\n\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\nimport { EventCategory, TrackService } from '@common/modules/core/services/track';\n\nimport { IFile } from '../../../../interfaces';\nimport { IndexingStoreService } from '../../../../services/indexing-store.service';\nimport { resources } from './resources';\n\n@Component({\n selector: 'vi-indexing-file-names',\n templateUrl: './file-names.component.html',\n styleUrls: ['./file-names.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FileNamesComponent implements OnInit, OnDestroy {\n @Output() public addFilesClicked = new EventEmitter();\n\n public files: IFile[];\n public resources = resources;\n\n private destroy$ = new Subject();\n\n constructor(\n private translate: TranslateHelperService,\n private storeService: IndexingStoreService,\n private trackService: TrackService,\n private cdr: ChangeDetectorRef\n ) {}\n\n public ngOnInit() {\n this.translate.translateResourcesInstant(resources);\n this.storeService.allFiles$.pipe(takeUntil(this.destroy$)).subscribe(files => {\n this.files = [...files];\n this.cdr.detectChanges();\n });\n }\n\n public ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n public fileId(_: number, file: IFile) {\n return file.id;\n }\n\n public onFileNameChanged(file: IFile) {\n this.storeService.updateFile(file.id, { name: file.name });\n this.trackService.track('upload_dialog.filename.changed', {\n category: EventCategory.UPLOAD\n });\n }\n\n public onAddFilesClicked() {\n this.addFilesClicked.emit();\n }\n}\n","\n\n\n

\n {{resources.IndexingFileNameEmptyMessage}}\n \n

","export const resources = {\n Files: '',\n IndexingFileNameEmptyMessage: '',\n IndexingFileNameLinkEmptyText: ''\n};\n","export * from './indexing-presets';\nexport * from './interfaces';\n","import { IAction } from '@common/modules/shared/interfaces';\nimport { UIActionType } from '@common/modules/insights/interfaces';\n\nexport const languageAction: IAction = {\n title: '',\n type: UIActionType.LANGUAGE,\n value: UIActionType.LANGUAGE,\n selected: false,\n selectable: false,\n id: 'language'\n};\n","import {\n Component,\n OnInit,\n ChangeDetectionStrategy,\n OnDestroy,\n ChangeDetectorRef,\n EventEmitter,\n Output,\n Input,\n AfterViewInit,\n ElementRef\n} from '@angular/core';\nimport { SafeHtml, DomSanitizer } from '@angular/platform-browser';\n\nimport { Subject, takeUntil, withLatestFrom } from 'rxjs';\n\nimport { FocusableComponent } from '@common/modules/accessibility/focusable/focusable.component';\nimport { MULTI_LANGUAGE_LINK, UPLOAD_LIMITATION_LINK } from '@common/modules/shared/links';\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\nimport { LoggerService } from '@common/modules/core/services/logger/logger.service';\nimport { UIActionType } from '@common/modules/insights/interfaces';\nimport { FeatureSwitchService } from '@common/modules/core/services/feature-switch/feature-switch.service';\nimport { FeatureSwitch } from '@common/modules/core/services/interfaces';\nimport { IAction } from '@common/modules/shared/interfaces';\nimport { getKeyCode, KeyCode } from '@common/modules/utils/event';\nimport { guid } from '@common/modules/utils/string';\n\nimport { resources } from './resources';\nimport { LanguageIdStoreService } from './../../../../../customization-data/services/language-id-store.service';\nimport { IndexingStoreService } from './../../../../services/indexing-store.service';\nimport * as actions from './actions';\nimport { SpecialLanguageKey } from './../../../../../core/languages';\n\n@Component({\n selector: 'vi-indexing-language',\n templateUrl: './indexing-language.component.html',\n styleUrls: ['./indexing-language.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class IndexingLanguageComponent extends FocusableComponent implements OnInit, OnDestroy, AfterViewInit {\n @Input() public isDisabled = false;\n\n @Output() public languageIdLinkClick = new EventEmitter();\n @Output() public managedLanguageModelsClick = new EventEmitter();\n @Output() public managedSpeechModelsClick = new EventEmitter();\n\n //Constants\n public readonly multiLanguageLink = MULTI_LANGUAGE_LINK;\n public readonly limitationsLink = UPLOAD_LIMITATION_LINK;\n public readonly LANG_SCROLL_HEIGHT = '152px';\n public readonly indexingLanguageId = 'indexingLanguage_' + guid();\n public readonly indexingLanguageLabelId = 'indexingLanguageLabel_' + guid();\n\n // Actions\n public languageAction: IAction = actions.languageAction;\n public selectedLanguageAction: IAction = null;\n public languageOptions: IAction[] = [];\n\n // Public\n public linguisticModelId: string;\n public isAutoDetectLanguageEnabled: boolean;\n public isLanguageLoading: boolean = false;\n public showAutoMultiLanguageLink = false;\n public showCustomizationLink = false;\n public safeTextAutoMultiLanguageSelectedLanguagesIds: SafeHtml;\n public resources = resources;\n\n // Private\n private selectedLanguage: string;\n private languageIdLinkEl: Element;\n private languageIdLinkClickHandlerRef;\n private destroy$ = new Subject();\n\n constructor(\n private translate: TranslateHelperService,\n private featureSwitchService: FeatureSwitchService,\n private indexingStore: IndexingStoreService,\n private languageIdStoreService: LanguageIdStoreService,\n private sanitizer: DomSanitizer,\n private logger: LoggerService,\n private cdr: ChangeDetectorRef,\n private el: ElementRef\n ) {\n super();\n }\n\n public ngOnInit(): void {\n this.isAutoDetectLanguageEnabled = this.featureSwitchService.featureSwitch(FeatureSwitch.AutoDetectLanguage);\n this.initTranslations();\n this.initLanguages();\n // TODO: add support for custom languages\n }\n\n public ngOnDestroy(): void {\n this.removeLinkListeners();\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n public ngAfterViewInit(): void {\n if (this.selectedLanguageAction) {\n this.handlingLanguageLinks(this.selectedLanguageAction);\n }\n }\n\n public onSelectLang(langAction: IAction) {\n this.indexingStore.updateLanguageId(langAction.id);\n this.handlingLanguageLinks(langAction);\n }\n\n public onManageLanguageClicked() {\n this.managedLanguageModelsClick.emit();\n }\n\n public onSpeechModelsClicked() {\n this.managedSpeechModelsClick.emit();\n }\n\n private initTranslations() {\n this.translate.translateResourcesInstant(this.resources);\n\n for (const action in actions) {\n actions[action].title = this.resources[actions[action].key];\n }\n\n this.cdr.detectChanges();\n }\n\n private initLanguages() {\n this.isLanguageLoading = true;\n this.indexingStore.indexingLanguages$.pipe(takeUntil(this.destroy$)).subscribe(languages => {\n this.languageOptions = languages.map(lang => {\n const langAction: IAction = {\n isDisabled: lang.disabled,\n value: lang.id,\n id: lang.id,\n key: lang.languageCode,\n selected: false,\n selectable: true,\n title: lang.name,\n type: UIActionType.LANGUAGE\n };\n return langAction;\n });\n this.isLanguageLoading = false;\n this.initSelectedLanguageAction();\n this.cdr.detectChanges();\n });\n\n this.indexingStore.selectedLanguage$.pipe(takeUntil(this.destroy$)).subscribe(selectedLanguage => {\n this.selectedLanguage = selectedLanguage;\n this.initSelectedLanguageAction();\n this.cdr.detectChanges();\n });\n\n // Set Selected Languages for Multi Languages\n if (this.isAutoDetectLanguageEnabled) {\n this.setSelectedLanguagesIdsForMultiLanguages();\n }\n }\n\n private initSelectedLanguageAction(): void {\n if (!this.selectedLanguage || !this.languageOptions?.length) {\n return;\n }\n this.selectedLanguageAction = this.languageOptions?.find(opt => opt.id === this.selectedLanguage);\n this.handlingLanguageLinks(this.selectedLanguageAction);\n }\n\n private setSelectedLanguagesIdsForMultiLanguages() {\n // Check what are the selected languages\n // In case empty, display in the text the default languages.\n this.languageIdStoreService.selectedLanguagesIdNames$\n .pipe(withLatestFrom(this.languageIdStoreService.defaultLanguagesNames$), takeUntil(this.destroy$))\n .subscribe(([selectedLanguages, defaultLanguages]) => {\n if (!selectedLanguages?.length) {\n this.setMultiLanguageDescriptionText(defaultLanguages.join(', '));\n } else {\n this.setMultiLanguageDescriptionText(selectedLanguages.join(', '));\n }\n });\n }\n\n private setMultiLanguageDescriptionText(selectedLanguages: string) {\n const multiLanguagesTextObject = { UploadMultiLanguageSelectedLanguagesIds: '' };\n this.translate.translateResourcesInstant(multiLanguagesTextObject, {\n languagesList: selectedLanguages,\n editListTitle: this.resources.UploadEditLanguagesIdsList,\n learnMoreMulti: this.resources.UploadMultiLanguagePreviewFeature,\n multiLanguageLink: this.multiLanguageLink\n });\n this.resources.UploadMultiLanguageSelectedLanguagesIds = multiLanguagesTextObject.UploadMultiLanguageSelectedLanguagesIds;\n // eslint-disable-next-line @microsoft/sdl/no-angular-bypass-sanitizer\n this.safeTextAutoMultiLanguageSelectedLanguagesIds = this.sanitizer.bypassSecurityTrustHtml(\n this.resources?.UploadMultiLanguageSelectedLanguagesIds\n );\n this.cdr.markForCheck();\n }\n\n private handlingLanguageLinks(langAction: IAction) {\n this.showLanguageLinks(langAction);\n this.cdr.detectChanges();\n this.addClickLanguageIdLinkListener(langAction);\n }\n\n private showLanguageLinks(langAction: IAction) {\n this.showAutoMultiLanguageLink = langAction.value === SpecialLanguageKey.MULTI || langAction.value === SpecialLanguageKey.AUTO;\n }\n\n private removeLinkListeners() {\n this.languageIdLinkEl?.removeEventListener('click', this.languageIdLinkClickHandlerRef);\n this.languageIdLinkEl?.removeEventListener('keyup', this.languageIdLinkClickHandlerRef);\n }\n\n private addClickLanguageIdLinkListener(action: IAction) {\n // Initial event listener for navigation link to languageId customization page\n // The link is a part of the translation therefor require a listener\n\n // First check if there are already listeners to old HTML\n if (this.languageIdLinkEl) {\n this.removeLinkListeners();\n }\n\n if ((action.value === SpecialLanguageKey.MULTI || action.value === SpecialLanguageKey.AUTO) && this.isAutoDetectLanguageEnabled) {\n this.languageIdLinkEl = this.el.nativeElement.querySelector('.navigate-to-languageId');\n // Add listener to click 'switch to manual;\n this.languageIdLinkClickHandlerRef = this.navigateToLanguageId.bind(this);\n this.languageIdLinkEl?.addEventListener('click', this.languageIdLinkClickHandlerRef);\n this.languageIdLinkEl?.addEventListener('keyup', this.languageIdLinkClickHandlerRef);\n }\n }\n\n private navigateToLanguageId(event) {\n try {\n const keyCode = getKeyCode(event);\n\n if (keyCode === KeyCode.Enter || event?.type == 'click') {\n this.languageIdLinkClick.emit();\n }\n } catch (error) {\n this.logger.log('Please add key to dictionary.', error);\n }\n }\n}\n","
\n \n \n \n \n \n
\n \n \n
\n \n
\n
\n
\n
\n
\n
\n \n \n {{ resources?.UploadOrValue }}\n \n \n
\n
","export const resources = {\n IndexingManageSpeechModels: '',\n UploadOrValue: '',\n UploadEditLanguagesIdsList: '',\n UploadMultiLanguagePreviewFeature: '',\n UploadMultiLanguageSelectedLanguagesIds: '',\n VIUploadCustomizationApplied: '',\n UploadVideoSourceLanguage: '',\n ReindexModalKeepSourceValue: ''\n};\n","import { IAction } from '@common/modules/shared/interfaces';\n\nimport { IndexingPreset } from './interfaces';\nimport { UIIndexingActionType } from '../interfaces';\n\nexport const presetsAction: IAction = {\n type: UIIndexingActionType.INDEX,\n value: UIIndexingActionType.INDEX,\n selected: false,\n id: 'index'\n};\n\n// Basic presets\n\nexport const basicAudioOnlyPreset: IAction = {\n key: 'IndexingPresetBasicAudioLabel',\n selected: true,\n type: UIIndexingActionType.PRESET_AUDIO_BASIC,\n value: IndexingPreset.AUDIO_BASIC,\n id: 'audio-basic',\n groupKey: 'LabelIndexingPresetAudioOnly'\n};\n\nexport const basicVideoOnlyPreset: IAction = {\n key: 'IndexingPresetBasicVideoLabel',\n selected: false,\n type: UIIndexingActionType.PRESET_VIDEO_BASIC,\n value: IndexingPreset.VIDEO_BASIC,\n id: 'video-basic',\n groupKey: 'LabelIndexingPresetVideoOnly'\n};\n\nexport const basicPreset: IAction = {\n key: 'IndexingPresetBasicVideoAudioLabel',\n selected: true,\n type: UIIndexingActionType.PRESET_VIDEO_AUDIO_BASIC,\n value: IndexingPreset.VIDEO_AUDIO_BASIC,\n id: 'basic',\n groupKey: 'LabelIndexingPresetVideoAudio'\n};\n\n// Standard presets\n\nexport const standardAudioOnlyPreset: IAction = {\n key: 'IndexingPresetStandardAudioLabel',\n selected: true,\n type: UIIndexingActionType.PRESET_AUDIO_STANDARD,\n value: IndexingPreset.AUDIO_STANDARD,\n id: 'standard-audio',\n groupKey: 'LabelIndexingPresetAudioOnly'\n};\n\nexport const standardVideoOnlyPreset: IAction = {\n key: 'IndexingPresetStandardVideoLabel',\n selected: true,\n type: UIIndexingActionType.PRESET_VIDEO_STANDARD,\n value: IndexingPreset.VIDEO_STANDARD,\n id: 'video-standard',\n groupKey: 'LabelIndexingPresetVideoOnly'\n};\n\nexport const standardPreset: IAction = {\n key: 'IndexingPresetStandardVideoAudioLabel',\n selected: true,\n type: UIIndexingActionType.PRESET_VIDEO_AUDIO_STANDARD,\n value: IndexingPreset.VIDEO_AUDIO_STANDARD,\n id: 'standard',\n groupKey: 'LabelIndexingPresetVideoAudio'\n};\n\n// Advanced presets\n\nexport const advancedAudioOnlyPreset: IAction = {\n key: 'IndexingPresetAdvancedAudioLabel',\n selected: false,\n type: UIIndexingActionType.PRESET_AUDIO_ADVANCED,\n value: IndexingPreset.AUDIO_ADVANCED,\n id: 'advanced-audio',\n groupKey: 'LabelIndexingPresetAudioOnly'\n};\n\nexport const advancedVideoOnlyPreset: IAction = {\n key: 'IndexingPresetAdvancedVideoLabel',\n selected: false,\n type: UIIndexingActionType.PRESET_VIDEO_ADVANCED,\n value: IndexingPreset.VIDEO_ADVANCED,\n id: 'advanced-video',\n groupKey: 'LabelIndexingPresetVideoOnly'\n};\n\nexport const advancedPreset: IAction = {\n key: 'IndexingPresetAdvancedVideoAudioLabel',\n selected: false,\n type: UIIndexingActionType.PRESET_VIDEO_AUDIO_ADVANCED,\n value: IndexingPreset.VIDEO_AUDIO_ADVANCED,\n id: 'advanced',\n groupKey: 'LabelIndexingPresetVideoAudio'\n};\n\nexport const presets: IAction[] = [\n // video + audio\n {\n ...standardPreset,\n value: IndexingPreset.DEFAULT,\n id: 'default'\n },\n { ...advancedPreset },\n\n // video only\n { ...standardVideoOnlyPreset },\n { ...advancedVideoOnlyPreset },\n\n // audio only\n { ...basicAudioOnlyPreset },\n { ...standardAudioOnlyPreset },\n { ...advancedAudioOnlyPreset }\n];\n\nexport const presetsWithBasicVideo: IAction[] = [\n // video + audio\n { ...basicPreset },\n {\n ...standardPreset,\n value: IndexingPreset.DEFAULT,\n id: 'default'\n },\n { ...advancedPreset },\n\n // video only\n { ...basicVideoOnlyPreset },\n { ...standardVideoOnlyPreset },\n { ...advancedVideoOnlyPreset },\n\n // audio only\n { ...basicAudioOnlyPreset },\n { ...standardAudioOnlyPreset },\n { ...advancedAudioOnlyPreset }\n];\n","export * from './indexing-presets.component';\nexport * from './interfaces';\n","import {\n Component,\n ChangeDetectionStrategy,\n OnInit,\n Input,\n Output,\n EventEmitter,\n ViewChild,\n ElementRef,\n ChangeDetectorRef,\n OnDestroy,\n ViewChildren,\n QueryList\n} from '@angular/core';\n\nimport { Observable, Subject, take, takeUntil, withLatestFrom } from 'rxjs';\n\nimport { startCase } from 'lodash-es';\nimport { CoreStoreService } from 'src/apps/web/src/core/services/core-store.service';\nimport { ShimmerElementType } from 'src/libs/vi-ui/src/lib/components/shimmer/interfaces';\n\nimport { IAction } from '@common/modules/shared/interfaces';\nimport { RAI_LEARN_MORE, UPLOAD_INDEXING_PRESET } from '@common/modules/shared/links';\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\nimport { FeatureSwitchService } from '@common/modules/core/services/feature-switch/feature-switch.service';\nimport { FeatureSwitch } from '@common/modules/core/services/interfaces';\nimport { ExcludableAIsModels, SupportedAIModels } from '@common/modules/api/interfaces';\nimport { CheckboxSize } from '@common/modules/shared/components/checkbox-with-label/interfaces';\n\nimport { EdgeExtensionsStoreService } from '../../../../../core/services/edge-extensions-store.service';\nimport { IndexingStoreService } from '../../../../services/indexing-store.service';\nimport { SpecialLanguageKey } from './../../../../../core/languages';\nimport { IndexingPreset } from './interfaces';\nimport { resources } from './resources';\nimport { presets, presetsAction, presetsWithBasicVideo } from './actions';\nimport { UIIndexingActionType } from '../interfaces';\nimport { PresetHelperService } from '../../../../services/preset-helper.service';\nimport { SupportedAIsMap } from '../../../../interfaces';\nimport { ExcludeAIsHelperService } from '../../../../services/exclude-ais-helper.service';\n\n@Component({\n selector: 'vi-indexing-presets',\n templateUrl: './indexing-presets.component.html',\n styleUrls: ['./indexing-presets.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class IndexingPresetsComponent implements OnInit, OnDestroy {\n @Input() public indexingPreset: IndexingPreset;\n @Input() public excludeRAI: boolean = false;\n @Input() public isDisabled = false;\n @Output() public presetChange = new EventEmitter();\n @Output() public excludeRAIChange = new EventEmitter();\n @Output() public excludeAIsChange = new EventEmitter();\n\n @ViewChild('Info', { read: ElementRef }) public info: ElementRef;\n @ViewChild('ModelInfo', { read: ElementRef }) public modelInfo: ElementRef;\n @ViewChildren('AICheckbox', { read: ElementRef }) public aIsCheckbox: QueryList;\n\n public resources = resources;\n public presetsAction = presetsAction;\n public presetsOptions = presets;\n public edgePresetsOptions = [];\n public selectedPreset: IAction;\n public showPresetTooltip: boolean;\n public showAIInfoTooltip: boolean;\n public showCantExcludeRAITooltip: boolean;\n public indexingPresetsLink = UPLOAD_INDEXING_PRESET;\n public RAILink = RAI_LEARN_MORE;\n public dropdownLabelId = 'indexing-label';\n public dropdownId = 'indexing-input';\n public linkSize = '13-18';\n public hasSelectedEdgeExtension = false;\n public isExcludeAIsEnabled = false;\n public isAccountLimitedWithFaces = false;\n public checkboxSize = CheckboxSize.Small;\n public isLoadSupportedAIsError$: Observable;\n public isSupportedAIsLoaded$: Observable;\n public ShimmerElementType = ShimmerElementType;\n\n public supportedAIsMap = {} as SupportedAIsMap;\n public supportedAIs: SupportedAIModels[];\n public isLoadSupportedAIsError = false;\n\n public readonly LOADING_SHIMMER_ELEMENTS = 21;\n\n private destroy$ = new Subject();\n private selectedLanguage: string = 'en-US';\n private excludeAIs: ExcludableAIsModels[] = [];\n private modelOnHover: ExcludableAIsModels;\n\n constructor(\n private translate: TranslateHelperService,\n private indexingStore: IndexingStoreService,\n private cdr: ChangeDetectorRef,\n private edgeExtensionService: EdgeExtensionsStoreService,\n private presetHelperService: PresetHelperService,\n private featureSwitchService: FeatureSwitchService,\n private coreStore: CoreStoreService,\n private excludeAIsHelperService: ExcludeAIsHelperService\n ) {}\n\n public ngOnInit(): void {\n this.isExcludeAIsEnabled = this.featureSwitchService.featureSwitch(FeatureSwitch.ExcludeAIs);\n this.initPresets();\n this.initTranslations();\n this.setSelectedPreset();\n this.initEdge();\n\n if (this.isExcludeAIsEnabled) {\n this.initAIs();\n }\n\n if (this.disableExcludeRAI && !this.isExcludeAIsEnabled) {\n this.toggleRAI(false);\n }\n\n this.indexingStore.selectedLanguage$.pipe(take(1)).subscribe(language => {\n this.selectedLanguage = language;\n this.handleLanguageChange();\n });\n\n this.coreStore.isAccountLimitedWithFaces$.pipe(take(1)).subscribe(isAccountLimitedWithFaces => {\n this.isAccountLimitedWithFaces = isAccountLimitedWithFaces;\n });\n }\n\n public ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n public get excludeRAITooltipText() {\n if (this.selectedPreset.value === IndexingPreset.VIDEO_ADVANCED) {\n return this.resources.IndexingPresetExcludeRAIVideoAdvancedTooltipText;\n } else {\n return this.resources.IndexingPresetExcludeRAITooltipText;\n }\n }\n\n public get disableExcludeRAI() {\n return (\n this.isDisabled ||\n [UIIndexingActionType.PRESET_VIDEO_AUDIO_ADVANCED, UIIndexingActionType.PRESET_VIDEO_ADVANCED].includes(\n this.selectedPreset.type as UIIndexingActionType\n )\n );\n }\n\n public get presets() {\n return this.hasSelectedEdgeExtension ? this.edgePresetsOptions : this.presetsOptions;\n }\n\n public set presets(presets: IAction[]) {\n if (this.hasSelectedEdgeExtension) {\n this.edgePresetsOptions = presets;\n } else {\n this.presetsOptions = presets;\n }\n }\n\n public togglePresetTooltip(isHover: boolean) {\n this.showPresetTooltip = !!isHover;\n }\n\n public toggleAIInfoTooltip(isHover: boolean, model: ExcludableAIsModels) {\n this.showAIInfoTooltip = !!isHover;\n this.modelOnHover = isHover ? model : null;\n }\n\n public selectPreset(preset: IAction) {\n this.selectedPreset = preset;\n this.presetChange.emit(preset.value);\n\n if (this.disableExcludeRAI && !this.isExcludeAIsEnabled) {\n this.toggleRAI(false);\n }\n\n if (this.isExcludeAIsEnabled) {\n // Reset excludeAIs if the preset is changed\n this.resetExcludeAIs();\n this.indexingStore.loadSupportedAIs();\n }\n }\n\n public onExcludeAI(checked: boolean, model: ExcludableAIsModels) {\n const excludeAIsSet = new Set(this.excludeAIs);\n if (checked) {\n // Check the model and all the models it depends on\n this.excludeAIsHelperService.checkModel(model, this.supportedAIsMap, excludeAIsSet);\n this.excludeAIsHelperService.markRequiredModelsAsChecked(this.supportedAIsMap, model, excludeAIsSet);\n } else {\n this.excludeAIsHelperService.uncheckModel(model, this.supportedAIsMap, excludeAIsSet);\n this.excludeAIsHelperService.uncheckDependentModels(this.supportedAIsMap, model, excludeAIsSet);\n }\n\n this.excludeAIs = Array.from(excludeAIsSet);\n this.excludeAIsChange.emit(this.excludeAIs);\n\n this.indexingStore.updateSupportedAIsState(this.excludeAIsHelperService.getSupportedAIsState(this.supportedAIsMap));\n }\n\n public toggleRAI(excludeRAI: boolean) {\n this.excludeRAI = excludeRAI;\n this.excludeRAIChange.emit(this.excludeRAI);\n\n if (this.isExcludeAIsEnabled) {\n this.isLoadSupportedAIsError ? this.toggleSensitiveAIsOnError(excludeRAI) : this.toggleExcludeSensitiveAIs(excludeRAI);\n }\n }\n\n public toggleExcludeSensitiveAIs(excludeRAI: boolean) {\n const excludeAIsSet = new Set(this.excludeAIs);\n if (excludeRAI) {\n this.excludeAIsHelperService.disableSensitiveAIs(excludeAIsSet, this.supportedAIsMap);\n } else {\n this.excludeAIsHelperService.enableSensitiveAIs(excludeAIsSet, this.supportedAIsMap);\n }\n\n this.excludeAIs = Array.from(excludeAIsSet);\n this.excludeAIsChange.emit(this.excludeAIs);\n\n this.indexingStore.updateSupportedAIsState(this.excludeAIsHelperService.getSupportedAIsState(this.supportedAIsMap));\n }\n\n public get hideExcludeRAI() {\n return this.selectedPreset.type === UIIndexingActionType.PRESET_AUDIO_BASIC;\n }\n\n public onHoverSupportedAICheckbox(isHover: boolean, model: ExcludableAIsModels) {\n this.modelOnHover = isHover ? model : null;\n }\n\n public onHoverRAICheckbox(isHover: boolean) {\n this.showCantExcludeRAITooltip = isHover && this.disableExcludeRAI;\n }\n\n public shouldShowRAIExcludedTooltip(model: ExcludableAIsModels): boolean {\n return (\n this.excludeRAI && model === this.modelOnHover && this.excludeAIsHelperService.isSensitiveAI(model) && !this.shouldShowAIInfoTooltip(model)\n );\n }\n\n public shouldShowAIInfoTooltip(model: ExcludableAIsModels): boolean {\n return this.modelOnHover === model && this.showAIInfoTooltip;\n }\n\n private initTranslations() {\n this.translate.translateResourcesInstant(resources);\n this.presetsOptions.forEach(preset => {\n preset.title = this.resources[preset.key];\n preset.label = this.resources[preset.key.replace(/Label/i, 'Details')];\n preset.group = this.resources[preset.groupKey];\n });\n\n this.edgePresetsOptions?.forEach(preset => {\n preset.title = this.resources[preset.key];\n preset.label = this.resources[preset.key.replace(/Label/i, 'EdgeDetails')];\n preset.group = this.resources[preset.groupKey];\n });\n }\n\n private setSelectedPreset() {\n // Edge extension only supports standard audio only for multi-lid\n if (this.hasSelectedEdgeExtension && this.isAutoDetectLanguage) {\n this.presetsOptions.forEach((action: IAction) => {\n action.selected = false;\n if (action.type === UIIndexingActionType.PRESET_AUDIO_STANDARD) {\n action.isDisabled = this.isAutoDetectLanguage;\n action.selected = true;\n this.selectPreset(action);\n }\n });\n return;\n }\n\n this.selectedPreset = this.presets.find(preset => preset.selected);\n if (this.indexingPreset) {\n this.selectedPreset = this.presets.find(preset => preset.value.toLowerCase() === this.indexingPreset.toLowerCase());\n }\n }\n\n private handleLanguageChange() {\n const actionsToDisable = this.presets.filter((action: IAction) =>\n [\n UIIndexingActionType.PRESET_VIDEO_BASIC,\n UIIndexingActionType.PRESET_VIDEO_STANDARD,\n UIIndexingActionType.PRESET_VIDEO_ADVANCED,\n UIIndexingActionType.PRESET_AUDIO_BASIC,\n UIIndexingActionType.PRESET_VIDEO_AUDIO_BASIC\n ].includes(action.type as UIIndexingActionType)\n );\n actionsToDisable.forEach((action: IAction) => (action.isDisabled = this.isAutoDetectLanguage));\n this.presets = [...this.presets];\n this.setSelectedPreset();\n this.cdr.detectChanges();\n }\n\n private initEdge() {\n this.edgeExtensionService.hasSelectedEdgeExtension$.pipe(takeUntil(this.destroy$)).subscribe(hasSelectedEdgeExtension => {\n this.hasSelectedEdgeExtension = hasSelectedEdgeExtension;\n this.setSelectedPreset();\n });\n }\n\n private initPresets() {\n this.edgePresetsOptions = this.presetHelperService.getEdgePresets();\n if (this.featureSwitchService.featureSwitch(FeatureSwitch.BasicVideoPreset)) {\n this.presetsOptions = presetsWithBasicVideo;\n }\n }\n\n private initAIs() {\n this.indexingStore.isLoadSupportedAIsError$.pipe(takeUntil(this.destroy$)).subscribe(isLoadSupportedAIsError => {\n this.isLoadSupportedAIsError = isLoadSupportedAIsError;\n });\n\n this.isSupportedAIsLoaded$ = this.indexingStore.isSupportedAIsLoaded$;\n\n this.indexingStore.selectedSupportedAIs$\n .pipe(takeUntil(this.destroy$), withLatestFrom(this.indexingStore.excludeAIs$))\n .subscribe(([supportedAIs, excludeAIs]) => {\n this.supportedAIsMap = {} as SupportedAIsMap;\n Object.entries(supportedAIs).map(([ai, value]) => {\n this.supportedAIsMap[ai] = {\n ...value,\n displayName: this.translateSupportedAIName(ai as SupportedAIModels, value.displayName, value.isRequired),\n info: value.info ? this.translate.instant(value.info) : null,\n tooltip: this.getSensitiveAIsTooltip(ai as ExcludableAIsModels)\n };\n });\n\n this.excludeAIs = excludeAIs;\n\n this.supportedAIs = Object.keys(this.supportedAIsMap) as SupportedAIModels[];\n this.supportedAIs.sort((firstAI, secondAI) =>\n this.excludeAIsHelperService.compareSupportedAIs(this.supportedAIsMap[firstAI], this.supportedAIsMap[secondAI])\n );\n\n this.cdr.detectChanges();\n });\n }\n\n private translateSupportedAIName(aiName: SupportedAIModels, displayName: string, isRequired: boolean) {\n let modelDisplayName = this.translate.instant(displayName);\n\n // if the displayName is not translated, use the startCase function as a fallback.\n if (modelDisplayName === displayName) {\n modelDisplayName = startCase(aiName);\n }\n\n return isRequired ? this.translate.instant('RequiredFormat', { value: modelDisplayName }) : modelDisplayName;\n }\n\n private resetExcludeAIs() {\n this.excludeRAI = false;\n this.excludeRAIChange.emit(this.excludeRAI);\n\n this.excludeAIs = [];\n this.excludeAIsChange.emit(this.excludeAIs);\n }\n\n private get isAutoDetectLanguage() {\n return this.selectedLanguage === SpecialLanguageKey.AUTO || this.selectedLanguage === SpecialLanguageKey.MULTI;\n }\n\n private toggleSensitiveAIsOnError(excludeRAI: boolean) {\n if (excludeRAI) {\n // in case of an error loading supported AIs, we can't calculate the sensitive AIs so we exclude just the root sensitive models\n this.excludeAIs = this.excludeAIsHelperService.ROOT_SENSITIVE_MODELS;\n } else {\n this.excludeAIs = [];\n }\n\n this.excludeAIsChange.emit(this.excludeAIs);\n }\n\n private getSensitiveAIsTooltip(modelName: ExcludableAIsModels) {\n if (this.excludeAIsHelperService.isSensitiveAI(modelName)) {\n return {\n show: (ai: ExcludableAIsModels) => this.shouldShowRAIExcludedTooltip(ai),\n text: this.resources.IndexingPresetExcludeSensitiveModelsTooltip\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 {{ resources.IndexingPresetExcludeRAIDescription }}\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\n \n \n \n \n
\n \n \n \n
\n

\n {{ resources?.IndexingPresetExcludeSensitiveModelsDescription }}\n

\n \n \n
\n
\n
\n
\n\n\n \n \n \n \n \n\n\n\n \n \n","import { RequiredAIsModels } from '@common/modules/api/interfaces';\n\nexport enum IndexingPreset {\n AUDIO_ONLY = 'AudioOnly',\n BASIC = 'Basic',\n DEFAULT = 'Default',\n ADVANCED = 'Advanced',\n\n VIDEO_BASIC = 'BasicVideo',\n VIDEO_STANDARD = 'VideoOnly',\n VIDEO_ADVANCED = 'AdvancedVideo',\n\n AUDIO_BASIC = 'BasicAudio',\n AUDIO_STANDARD = 'AudioOnly',\n AUDIO_ADVANCED = 'AdvancedAudio',\n\n VIDEO_AUDIO_BASIC = 'Basic',\n VIDEO_AUDIO_STANDARD = 'Default',\n VIDEO_AUDIO_ADVANCED = 'Advanced'\n}\n\nexport const presetToRequiredAIsMap = {\n [IndexingPreset.AUDIO_BASIC]: [RequiredAIsModels.ClosedCaptions, RequiredAIsModels.Transcription],\n [IndexingPreset.BASIC]: [RequiredAIsModels.ClosedCaptions, RequiredAIsModels.Keyframes, RequiredAIsModels.Transcription],\n [IndexingPreset.VIDEO_BASIC]: [RequiredAIsModels.Keyframes],\n [IndexingPreset.VIDEO_STANDARD]: [RequiredAIsModels.Keyframes],\n [IndexingPreset.VIDEO_ADVANCED]: [RequiredAIsModels.Keyframes],\n [IndexingPreset.AUDIO_STANDARD]: [RequiredAIsModels.AudioEffects, RequiredAIsModels.ClosedCaptions, RequiredAIsModels.Transcription],\n [IndexingPreset.AUDIO_ADVANCED]: [RequiredAIsModels.AudioEffects, RequiredAIsModels.ClosedCaptions, RequiredAIsModels.Transcription],\n [IndexingPreset.DEFAULT]: [\n RequiredAIsModels.AudioEffects,\n RequiredAIsModels.ClosedCaptions,\n RequiredAIsModels.Keyframes,\n RequiredAIsModels.Transcription\n ],\n [IndexingPreset.ADVANCED]: [\n RequiredAIsModels.AudioEffects,\n RequiredAIsModels.ClosedCaptions,\n RequiredAIsModels.Keyframes,\n RequiredAIsModels.Transcription\n ]\n};\n","export const resources = {\n IndexingPresetBasicVideoAudioLabel: '',\n IndexingPresetBasicVideoAudioDetails: '',\n IndexingPresetStandardVideoAudioLabel: '',\n IndexingPresetStandardVideoAudioDetails: '',\n IndexingPresetAdvancedVideoAudioLabel: '',\n IndexingPresetAdvancedVideoAudioDetails: '',\n IndexingPresetBasicVideoLabel: '',\n IndexingPresetBasicVideoDetails: '',\n IndexingPresetStandardVideoLabel: '',\n IndexingPresetStandardVideoDetails: '',\n IndexingPresetAdvancedVideoLabel: '',\n IndexingPresetAdvancedVideoDetails: '',\n IndexingPresetBasicAudioLabel: '',\n IndexingPresetBasicAudioDetails: '',\n IndexingPresetStandardAudioLabel: '',\n IndexingPresetStandardAudioDetails: '',\n IndexingPresetAdvancedAudioLabel: '',\n IndexingPresetAdvancedAudioDetails: '',\n LabelIndexingPresetVideoAudio: '',\n LabelIndexingPresetVideoOnly: '',\n LabelIndexingPresetAudioOnly: '',\n IndexingPresetLabel: '',\n IndexingPresetTooltipText: '',\n IndexingPresetDetailsLabel: '',\n IndexingPresetLearnMoreLinkText: '',\n IndexingPresetExcludeRAICheckboxLabel: '',\n IndexingPresetExcludeRAITooltipText: '',\n IndexingPresetExcludeRAIVideoAdvancedTooltipText: '',\n IndexingPresetExcludeRAIDescription: '',\n IndexingPresetRAILinkText: '',\n IndexingPresetBasicAudioEdgeDetails: '',\n IndexingPresetBasicVideoEdgeDetails: '',\n IndexingPresetBasicVideoAudioEdgeDetails: '',\n IndexingPresetIncludedModelsLabel: '',\n IndexingPresetIncludedModelsDescription: '',\n IndexingPresetLearnMoreModelsLinkText: '',\n IndexingPresetExcludeRAITitle: '',\n IndexingPresetExcludeRAIToggleLabel: '',\n IndexingPresetExcludeSensitiveModelsDescription: '',\n IndexingPresetExcludeSensitiveModelsTooltip: '',\n SupportedAIsFailedTitle: '',\n SupportedAIsFailedContent: ''\n};\n","import { CustomizationPage } from '@common/modules/core/services/interfaces';\nimport { UIActionType } from '@common/modules/insights/interfaces';\nimport { IAction } from '@common/modules/shared/interfaces';\n\nimport { defaultBrandCategory } from '../../../../interfaces';\n\nexport const brandDefaultAction: IAction = {\n title: '',\n key: 'UploadServiceDefaultName',\n selected: true,\n value: defaultBrandCategory,\n id: 'defaultBrandModel'\n};\n\nexport const manageBrandCategoriesAction: IAction = {\n title: '',\n key: 'ManageBrandCategories',\n type: UIActionType.NAVIGATE,\n value: CustomizationPage.Brands,\n id: 'manageBrandCategoriesButton',\n icon: 'i-vi-customization'\n};\n","export * from './indexing-settings-brand-categories.component';\n","import { Component, OnInit, ChangeDetectionStrategy, Output, EventEmitter, ChangeDetectorRef, OnDestroy, Input } from '@angular/core';\n\nimport { combineLatest, Subject, takeUntil } from 'rxjs';\n\nimport { IndexingStoreService } from 'src/apps/web/src/indexing/services/indexing-store.service';\nimport { CustomizationDataStoreService } from 'src/apps/web/src/customization-data/services/customization-data-store.service';\n\nimport { ActionButtonType } from '@common/modules/shared/components/action-button/interfaces';\nimport { IAction } from '@common/modules/shared/interfaces';\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\nimport { guid } from '@common/modules/utils/string';\nimport { UtilsService } from '@common/modules/shared/services/utils.service';\nimport { CustomizationPage } from '@common/modules/core/services/interfaces';\n\nimport { resources } from './resources';\nimport { manageBrandCategoriesAction, brandDefaultAction } from './actions';\n\nexport interface IBrandsModel {\n name: string;\n value: string;\n}\n\n@Component({\n selector: 'vi-indexing-settings-brand-categories',\n templateUrl: './indexing-settings-brand-categories.component.html',\n styleUrls: ['./indexing-settings-brand-categories.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class IndexingSettingsBrandCategoriesComponent implements OnInit, OnDestroy {\n @Input() public isDisabled = false;\n @Output() public manageBrandsClicked = new EventEmitter();\n\n public ActionButtonType = ActionButtonType;\n public isLoading: boolean;\n public resources = resources;\n public dropdownId: string = 'brandsCategoriesDropdown_' + guid();\n public manageBrandsCategoriesAction: IAction = manageBrandCategoriesAction;\n public brandsModelActions: IAction[] = [];\n public defaultBrandCategory: IAction = brandDefaultAction;\n public menuPlaceholder: string;\n public actionButtonWidth: string = 'max-content';\n\n private destroy$ = new Subject();\n\n constructor(\n private translate: TranslateHelperService,\n private indexingStore: IndexingStoreService,\n private customizationDataStoreService: CustomizationDataStoreService,\n private utilsService: UtilsService,\n private cdr: ChangeDetectorRef\n ) {}\n\n public ngOnInit(): void {\n this.isLoading = true;\n this.translate.translateResourcesInstant(this.resources);\n this.manageBrandsCategoriesAction.title = this.resources.ManageBrandCategories;\n this.menuPlaceholder = this.resources.SettingsLoading;\n this.defaultBrandCategory.title = this.resources.UploadServiceDefaultName;\n this.defaultBrandCategory.group = this.resources.UploadSelectBrandsAllBrands;\n\n this.loadBrands();\n }\n\n public ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n public onManageBrandsCategories() {\n this.manageBrandsClicked.emit(CustomizationPage.Brands);\n }\n\n public onSelectBrandsModel(brandModels: IAction[]) {\n // Create from Actions to BrandsModel\n const brandList: IBrandsModel[] = [];\n brandModels.forEach(element => {\n brandList.push({ name: element.value, value: element.value });\n });\n\n const brandsCategories = brandList.length ? this.utilsService.parseArrayToString(brandList) : '';\n this.indexingStore.updateBrandCategory(brandsCategories);\n }\n\n private loadBrands() {\n combineLatest([\n this.customizationDataStoreService.brands,\n this.customizationDataStoreService.isBrandModelsLoaded(),\n this.indexingStore.selectBrandCategories$\n ])\n .pipe(takeUntil(this.destroy$))\n .subscribe(([brands, isLoaded, selectedBrandCategories]) => {\n if (isLoaded && !this.brandsModelActions.length) {\n this.setBrandsActions(brands, selectedBrandCategories);\n this.menuPlaceholder = this.resources?.CheckboxSelectLabel;\n this.isLoading = false;\n this.cdr.detectChanges();\n }\n });\n }\n\n private setBrandsActions(brands: Microsoft.VideoIndexer.Contracts.BrandContractV2[], selectedBrandCategories: string) {\n const selectedCategories = selectedBrandCategories?.split(',');\n this.brandsModelActions = [];\n\n brands.forEach(brand => {\n brand.tags.forEach(category => {\n // Add brand category to the list only if it isn't already exist.\n if (category && this.brandsModelActions.find(action => action.value === category) === undefined) {\n const isSelected = selectedCategories ? selectedCategories.includes(category) : false;\n const brandsModelAction: IAction = {\n title: category,\n value: category,\n id: brand.id.toString(),\n selected: isSelected,\n group: this.resources.UploadSelectBrandsAllBrands\n };\n this.brandsModelActions.push(brandsModelAction);\n }\n });\n });\n\n // Add brand default action to the list\n this.defaultBrandCategory.selected = selectedBrandCategories == null || selectedCategories.includes('Default');\n this.brandsModelActions.unshift(this.defaultBrandCategory);\n }\n}\n","
\n \n \n \n \n \n \n
","export const resources = {\n BrandsModel: '',\n UploadSelectBrandsAllBrands: '',\n UploadServiceDefaultName: '',\n ManageBrandCategories: '',\n SettingsLoading: '',\n CheckboxSelectLabel: ''\n};\n","import { PrivacyMode } from '@common/modules/core/interfaces';\nimport { IAction, StreamingPreset } from '@common/modules/shared/interfaces';\nimport { UIActionType } from '@common/modules/insights/interfaces';\n\nimport { UIIndexingActionType } from '../interfaces';\n\nexport const addURLAction: IAction = {\n title: '',\n type: UIActionType.ADD,\n value: '',\n selected: false,\n selectable: false,\n key: 'Add',\n id: 'addURLButton'\n};\n\nexport const addFilesAction: IAction = {\n title: '',\n type: UIActionType.ADD,\n value: '',\n selected: false,\n selectable: false,\n key: 'IndexingAddFilesButton',\n id: 'addFilesButton'\n};\n\nexport const privacyAction: IAction = {\n title: '',\n type: UIActionType.PRIVACY,\n value: UIActionType.PRIVACY,\n selected: false,\n selectable: false,\n id: 'privacy'\n};\n\nexport const privacyOptions: IAction[] = [\n {\n key: 'AppSettingsPrivate',\n title: '',\n selected: false,\n type: UIActionType.PRIVACY_SET_PRIVATE,\n value: PrivacyMode.PRIVATE,\n selectable: true,\n id: 'PRIVATE'\n },\n {\n key: 'AppSettingsPublic',\n title: '',\n selected: false,\n type: UIActionType.PRIVACY_SET_PUBLIC,\n value: PrivacyMode.PUBLIC,\n selectable: true,\n id: 'PUBLIC'\n }\n];\n\nexport const streamAction: IAction = {\n title: '',\n type: UIIndexingActionType.STREAM,\n value: UIIndexingActionType.STREAM,\n selected: false,\n selectable: false,\n id: 'stream'\n};\n\nexport const streamOptions: IAction[] = [\n {\n key: 'UploadServiceSingleBiterate',\n title: '',\n selected: false,\n type: UIIndexingActionType.STREAM_SINGLE,\n value: StreamingPreset.SingleBitrate,\n selectable: true,\n id: 'single'\n },\n {\n key: 'UploadServiceNoStreaming',\n title: '',\n selected: false,\n type: UIIndexingActionType.STREAM_NO_STREAM,\n value: StreamingPreset.NoStreaming,\n selectable: true,\n id: 'noStream'\n }\n];\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n ElementRef,\n Input\n} from '@angular/core';\n\nimport { Subject, takeUntil, Observable, withLatestFrom, combineLatestWith } from 'rxjs';\n\nimport { TagType } from '@vi-ui/core/lib/components/tag/tag.component';\nimport { ITag } from '@vi-ui/core/libs/vi-ui/src/lib/components/tag-container/interfaces';\n\nimport { guid } from '@common/modules/utils/string';\nimport { ActionButtonType } from '@common/modules/shared/components/action-button/interfaces';\nimport { Direction, IAction } from '@common/modules/shared/interfaces';\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\nimport { APIErrors } from '@common/modules/core/services/toast/errors';\nimport { CustomizationPage } from '@common/modules/core/services/interfaces';\nimport { AMS_RETIREMENT_LINK, UPLOAD_LIMITATION_LINK } from '@common/modules/shared/links';\nimport { EventCategory, TrackService } from '@common/modules/core/services/track';\n\nimport { getDefaultFileName } from './../../../../utils/file';\nimport { FileHelperService } from './../../../../services/file-helper.service';\nimport { ErrorType, IFile } from '../../../../interfaces';\nimport { UploadMode, IndexingMode } from './../../../../interfaces';\nimport { IndexingStoreService } from './../../../../services/indexing-store.service';\nimport { CoreStoreService } from '../../../../../core/services/core-store.service';\nimport * as actions from './actions';\nimport { resources } from './resources';\nimport { getFileNameFromURL, isValidURL } from '../../../../utils/file';\nimport { generateSupportedMediaTypesPattern } from '../../../../utils/mediaFormats';\n\n@Component({\n selector: 'vi-indexing-settings-general',\n templateUrl: './indexing-settings-general.component.html',\n styleUrls: ['./indexing-settings-general.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class IndexingSettingsGeneralComponent implements OnInit, OnDestroy {\n @Input() public isMultiFileMode = false;\n @Input() public isDisabled = false;\n public showAdvancedMode$ = new Observable();\n public uploadMode: UploadMode;\n\n @Output() public advancedSettingsClick = new EventEmitter();\n @Output() public managedLanguageModelsClick = new EventEmitter();\n @Output() public managedSpeechModelsClick = new EventEmitter();\n @Output() public languageIdLinkClick = new EventEmitter();\n @ViewChild('AddFilesButton', { read: ElementRef }) public addFilesButton: ElementRef;\n @ViewChild('AddURLButton', { read: ElementRef }) public addURLButton: ElementRef;\n @ViewChild('fileInput', { read: ElementRef }) public fileInput: ElementRef;\n\n // Constants\n public readonly ADD_URL_BUTTON_MIN_WIDTH = '67px';\n public readonly ADD_FILES_BUTTON_MIN_WIDTH = '120px';\n public readonly AMS_DEPRECATION_MESSAGE_TYPE = 'info';\n public readonly limitationsLink = UPLOAD_LIMITATION_LINK;\n public readonly amsDeprecationLink = AMS_RETIREMENT_LINK;\n public readonly filesContainerId: string = 'filesContainer_' + guid();\n public readonly indexingStreamingId: string = 'indexingStreaming_' + guid();\n public readonly indexingPrivacyId: string = 'indexingPrivacy_' + guid();\n public readonly indexingStreamingLabelId: string = 'indexingStreamingLabel_' + guid();\n public readonly indexingPrivacyLabelId: string = 'indexingPrivacyLabel_' + guid();\n\n // Indexing mode\n public indexingMode: IndexingMode;\n\n // Privacy mode\n public disablePrivacy: boolean = false;\n\n // Adaptive bitrate disclaimer\n public showAdaptiveBitrateDisclaimer: boolean = false;\n\n // URL\n public uploadURL: string;\n public isURLValid: boolean = false;\n public isUrlValidationLoading: boolean = false;\n public urlValidationErrorMessage: string = null;\n\n // Files\n public files: IFile[];\n public file: IFile; // Used in single file mode\n public fileTags: ITag[] = [];\n public filesType: string;\n public disableFileName: boolean = false;\n public maxFilesReached: boolean = false;\n public showAddFilesBtnTooltip: boolean = false;\n public showUploadFileError: boolean = false;\n public uploadFileErrorMessage: string;\n\n // Actions\n public addFilesAction: IAction = actions.addFilesAction;\n public privacyAction: IAction = actions.privacyAction;\n public privacyOptions: IAction[] = actions.privacyOptions;\n public streamAction: IAction = actions.streamAction;\n public streamOptions: IAction[] = actions.streamOptions;\n public selectedPrivacy: IAction;\n public selectedStreaming: IAction;\n public addURLAction: IAction = actions.addURLAction;\n\n // Interfaces\n public resources = resources;\n public ActionButtonType = ActionButtonType;\n public Direction = Direction;\n public UploadMode = UploadMode;\n public IndexingMode = IndexingMode;\n\n // Private\n private destroy$ = new Subject();\n private readonly DEFAULT_FILENAME_PREFIX = 'Media file';\n private readonly LOADING_ICON = 'loading';\n private readonly OK_ICON = 'ok';\n private maxVideosLimit: number;\n\n constructor(\n private translate: TranslateHelperService,\n private cdr: ChangeDetectorRef,\n private indexingStore: IndexingStoreService,\n private coreStoreService: CoreStoreService,\n private fileHelperService: FileHelperService,\n private trackService: TrackService\n ) {}\n\n public get showSingleFileName() {\n return this.indexingMode === IndexingMode.ReIndex || (this.isFileMode && !this.isMultiFileMode);\n }\n\n public get showAddFilesBtnSingleFileMode() {\n return this.isFileMode && !this.isMultiFileMode;\n }\n\n public get showAddFilesBtnMultiFileMode() {\n return this.isFileMode && this.isMultiFileMode;\n }\n\n public get showFilesContainer() {\n return this.isURLMode || this.isMultiFileMode;\n }\n\n public get isURLMode() {\n return this.indexingMode === IndexingMode.Upload && this.uploadMode === UploadMode.URL;\n }\n\n private get isFileMode() {\n return this.indexingMode === IndexingMode.Upload && this.uploadMode === UploadMode.File;\n }\n\n public get isFileNameDisabled() {\n return this.isDisabled || this.disableFileName;\n }\n\n public ngOnInit(): void {\n this.filesType = generateSupportedMediaTypesPattern();\n this.maxVideosLimit = this.fileHelperService.maxVideosLimit;\n this.initTranslations();\n this.showAdvancedMode$ = this.indexingStore.showAdvancedMode$.pipe(takeUntil(this.destroy$));\n this.indexingStore.uploadMode$.pipe(takeUntil(this.destroy$)).subscribe(uploadMode => {\n this.uploadMode = uploadMode;\n });\n\n //TODO: handle strip errors that might prevent uploading (AMS Unreachable, etc.)\n this.initUrlFileValidation();\n this.initIndexingMode();\n this.initFiles();\n this.initPrivacy();\n this.initStreaming();\n this.initInvalidFileValidation();\n }\n\n public ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n if (this.uploadMode === UploadMode.URL) {\n this.indexingStore.clearUrlValidationError();\n }\n }\n\n public onSelectPrivacy(privacyAction: IAction) {\n this.indexingStore.updatePrivacy(privacyAction.value);\n }\n\n public onSelectStreaming(streamingAction: IAction) {\n this.indexingStore.updateStreamingPreset(streamingAction.value);\n }\n\n public onFileRemoved(fileId: string) {\n this.indexingStore.removeFile(fileId);\n }\n\n public onChangeFileName(file: IFile) {\n this.indexingStore.updateFile(file.id, { name: file.name });\n this.trackService.track('upload_dialog.filename.changed', {\n category: EventCategory.UPLOAD\n });\n }\n\n public onChangeURL(url: string) {\n this.uploadURL = url.trim();\n this.isURLValid = isValidURL(this.uploadURL);\n this.urlValidationErrorMessage = null;\n }\n\n public uploadChooseFiles(fileInput: HTMLInputElement) {\n fileInput.click();\n }\n\n public onFileBrowse($event) {\n const files: File[] = Array.from($event.target.files);\n if (files.length > 0) {\n const filesWithProps = files.map(file => this.fileHelperService.extractFileProperties(file));\n this.indexingStore.addFilesForUpload(filesWithProps);\n if (this.fileInput?.nativeElement?.value) {\n this.fileInput.nativeElement.value = '';\n }\n }\n }\n\n public get urlIcon() {\n return this.isUrlValidationLoading ? { type: this.LOADING_ICON } : this.isURLValid ? { type: this.OK_ICON } : '';\n }\n public onAddURLClicked() {\n const file: IFile = {\n id: guid(),\n name: getFileNameFromURL(this.uploadURL) || getDefaultFileName(this.files, this.DEFAULT_FILENAME_PREFIX),\n url: this.uploadURL\n };\n this.urlValidationErrorMessage = null;\n this.indexingStore.updateUrlValidationLoading(true);\n this.indexingStore.addUrlFile(file);\n }\n\n public onManageLanguageClicked() {\n this.managedLanguageModelsClick.emit(CustomizationPage.Language);\n }\n\n public onSpeechModelsClicked() {\n this.managedSpeechModelsClick.emit(CustomizationPage.Speech);\n }\n\n public onAdvancedSettingsClicked(): void {\n this.advancedSettingsClick.emit();\n }\n\n public onLanguageIdLinkClicked(): void {\n this.languageIdLinkClick.emit(CustomizationPage.LanguageId);\n }\n\n public onAddFilesBtnHover(isHover: boolean) {\n this.showAddFilesBtnTooltip = this.maxFilesReached && isHover;\n }\n\n public get urlPlaceholder() {\n return this.files?.length ? resources?.UploadEnterAnotherUrlPlaceholder : resources.UploadEnterUrlPlaceholder;\n }\n\n private initTranslations() {\n this.translate.translateResourcesInstant(resources, { limit: this.maxVideosLimit });\n\n for (const action in actions) {\n actions[action].title = resources[actions[action].key];\n actions[action].id = `${actions[action].id}_ ${guid()}`;\n }\n\n [this.privacyOptions, this.streamOptions].forEach(options => {\n options.forEach(opt => {\n opt.title = opt.key ? this.resources[opt.key] : '';\n });\n });\n this.cdr.detectChanges();\n }\n\n private initPrivacy() {\n this.indexingStore.privacy$.pipe(takeUntil(this.destroy$)).subscribe(privacy => {\n this.selectedPrivacy = this.privacyOptions.find(option => option.value === privacy);\n this.cdr.detectChanges();\n });\n }\n\n private initStreaming() {\n this.indexingStore.streamingPreset$.pipe(takeUntil(this.destroy$)).subscribe(streaming => {\n // If the selected streaming preset is not available, select the first available option\n this.selectedStreaming = this.streamOptions.find(option => option.value === streaming) || this.streamOptions[0];\n this.cdr.detectChanges();\n });\n }\n\n private initFiles() {\n if (this.indexingMode === IndexingMode.ReIndex) {\n this.initFileName();\n return;\n }\n this.indexingStore.allFiles$.pipe(takeUntil(this.destroy$)).subscribe(files => {\n this.files = files;\n if (this.files.length) {\n this.file = this.files[0];\n }\n this.maxFilesReached = this.files?.length >= this.maxVideosLimit;\n this.fileTags = this.files?.map(file => ({\n id: file.id,\n content: file.name,\n type: file.error?.errorType ? TagType.ERROR : TagType.REST,\n removeTagTitleAttribute: this.resources.IndexingRemoveFileButtonTooltip,\n removable: true\n }));\n this.cdr.detectChanges();\n });\n }\n\n private initFileName() {\n this.indexingStore.fileName$.pipe(takeUntil(this.destroy$)).subscribe(name => {\n this.file = { id: guid(), name };\n });\n }\n\n private initIndexingMode() {\n this.indexingStore.indexingMode$.pipe(takeUntil(this.destroy$)).subscribe(mode => {\n this.indexingMode = mode;\n this.disableFileName = mode === IndexingMode.ReIndex;\n this.disablePrivacy = mode === IndexingMode.ReIndex;\n });\n }\n\n private initUrlFileValidation() {\n this.urlValidationErrorMessage = null;\n this.indexingStore.isUrlValidationLoading$\n .pipe(takeUntil(this.destroy$), withLatestFrom(this.indexingStore.urlValidationError$))\n .subscribe(([isLoading, errorType]) => {\n this.isUrlValidationLoading = isLoading;\n if (!isLoading) {\n if (!errorType) {\n this.uploadURL = '';\n } else {\n this.urlValidationErrorMessage = this.handleValidationErrorMessage(errorType);\n }\n }\n\n this.isURLValid = false;\n this.cdr.detectChanges();\n });\n }\n private handleValidationErrorMessage(errorType: APIErrors): string {\n let errorMessage = resources.UploadInvalidUrl;\n if (errorType === APIErrors.URL_UNREACHABLE) {\n errorMessage = resources.IndexingInvalidUrlValidationError;\n } else if (errorType === APIErrors.ALREADY_EXISTS) {\n errorMessage = resources.IndexingDuplicateFileValidationError;\n } else if (errorType === APIErrors.VIDEO_UPLOAD_LIMIT_EXCEEDED) {\n errorMessage = resources.UploadInvalidURLFileSizeMessage;\n }\n\n return errorMessage;\n }\n\n private initInvalidFileValidation() {\n this.indexingStore.showUploadFileError$\n .pipe(takeUntil(this.destroy$), combineLatestWith(this.indexingStore.isMultiFileMode$))\n .subscribe(([showUploadFileError]) => {\n this.showUploadFileError = showUploadFileError && !this.isMultiFileMode;\n this.uploadFileErrorMessage = showUploadFileError ? this.invalidFileErrorMessage : '';\n this.cdr.detectChanges();\n });\n }\n\n private get invalidFileErrorMessage() {\n switch (this.file?.error?.errorType) {\n case ErrorType.FileExtension:\n return this.resources.UploadInvalidFileExtensionMessage;\n case ErrorType.FileSize:\n return this.resources.UploadInvalidFileSizeMessage;\n default:\n return '';\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 {{ resources?.IndexingMultiFilesLabelDesc }}\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","export const resources = {\n AppSettingsPrivate: '',\n AppSettingsPublic: '',\n UploadPrivacyLabel: '',\n UploadStreaming: '',\n UploadServiceSingleBiterate: '',\n UploadServiceNoStreaming: '',\n IndexingFileNameLabel: '',\n UploadEnterURLLabel: '',\n Add: '',\n UploadGuidelinesLink2: '',\n UploadEnterUrlPlaceholder: '',\n UploadEnterAnotherUrlPlaceholder: '',\n IndexingMultiFilesLabel: '',\n IndexingMultiFilesLabelDesc: '',\n IndexingAddFilesButton: '',\n IndexingMaxFilesLimitTooltip: '',\n IndexingRemoveFileButtonTooltip: '',\n IndexingInvalidUrlValidationError: '',\n UploadInvalidUrl: '',\n IndexingDuplicateFileValidationError: '',\n UploadInvalidFileExtensionMessage: '',\n UploadInvalidURLFileSizeMessage: '',\n UploadInvalidFileSizeMessage: ''\n};\n","import { CustomizationPage } from '@common/modules/core/services/interfaces';\nimport { UIActionType } from '@common/modules/insights/interfaces';\nimport { IAction } from '@common/modules/shared/interfaces';\n\nimport { UIIndexingActionType } from '../interfaces';\n\nexport const logoGroupAction: IAction = {\n title: '',\n value: UIIndexingActionType.LOGO_GROUP,\n type: UIIndexingActionType.LOGO_GROUP,\n key: 'UploadServiceDefaultName',\n selected: true,\n id: 'logoGroup'\n};\n\nexport const manageLogoGroupsAction: IAction = {\n title: '',\n key: 'IndexingLogosManageLogoGroups',\n type: UIActionType.NAVIGATE,\n value: CustomizationPage.Logos,\n id: 'manageLogoGroupsButton',\n icon: 'i-vi-customization'\n};\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\n\nimport { Subject, combineLatest, takeUntil } from 'rxjs';\n\nimport { AlertMessageType } from '@vi-ui/core';\nimport { CustomizationDataStoreService } from 'src/apps/web/src/customization-data/services/customization-data-store.service';\nimport { IndexingStoreService } from 'src/apps/web/src/indexing/services/indexing-store.service';\n\nimport { CustomizationPage } from '@common/modules/core/services/interfaces';\nimport { ActionButtonType } from '@common/modules/shared/components/action-button/interfaces';\nimport { IAction } from '@common/modules/shared/interfaces';\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\nimport { guid } from '@common/modules/utils/string';\nimport { LOGO_API_LINK } from '@common/modules/shared/links';\n\nimport { AdvancedSettings } from '../../../../interfaces';\nimport { logoGroupAction, manageLogoGroupsAction } from './actions';\nimport { resources } from './resources';\n\n@Component({\n selector: 'vi-indexing-settings-logo-groups',\n templateUrl: './indexing-settings-logo-groups.component.html',\n styleUrls: ['./indexing-settings-logo-groups.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class IndexingSettingsLogoGroupsComponent implements OnInit, OnDestroy {\n @Input() public isDisabled = false;\n @Input() public isAdvancedIndexingPresetSelected: boolean;\n @Output() public manageLogosClicked = new EventEmitter();\n\n public ActionButtonType = ActionButtonType;\n public isLoading: boolean;\n public resources = resources;\n public manageLogosGroupsAction: IAction = manageLogoGroupsAction;\n public logosGroupActions: IAction[] = [];\n public logoGroupAction: IAction = logoGroupAction;\n public selectedLogoGroup: IAction = null;\n public menuPlaceholder: string;\n public actionButtonWidth: string = 'max-content';\n public AlertMessageType = AlertMessageType;\n public LOGO_API_LINK = LOGO_API_LINK;\n\n public readonly dropdownId: string = 'logosGroupsDropdown_' + guid();\n public readonly linkSize = '14-20';\n\n private destroy$ = new Subject();\n\n constructor(\n private translate: TranslateHelperService,\n private indexingStore: IndexingStoreService,\n private customizationDataStoreService: CustomizationDataStoreService,\n private cdr: ChangeDetectorRef\n ) {}\n\n public ngOnInit(): void {\n this.isLoading = true;\n this.translate.translateResourcesInstant(this.resources);\n this.manageLogosGroupsAction.title = this.resources.IndexingLogosManageLogoGroups;\n this.menuPlaceholder = this.resources.SettingsLoading;\n this.logoGroupAction.title = this.resources.IndexingLogosSelectLogoGroupsLabel;\n\n this.loadLogoGroups();\n }\n\n public ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n public onSelectLogoGroup() {\n this.indexingStore.updateLogoGroup(this.selectedLogoGroup?.id);\n }\n\n public handleNavigateToIndexingPresetTab() {\n this.indexingStore.updateSelectedAdvancedSettings(AdvancedSettings.IndexingPreset);\n }\n\n public loadLogoGroups() {\n combineLatest([\n this.customizationDataStoreService.logoGroupsActions,\n this.customizationDataStoreService.isLogoGroupsLoaded(),\n this.indexingStore.selectLogoGroupId$\n ])\n .pipe(takeUntil(this.destroy$))\n .subscribe(([logoGroupsActions, isLoaded, selectedLogoGroupId]) => {\n if (isLoaded && !this.logosGroupActions.length) {\n this.logosGroupActions = logoGroupsActions;\n\n if (this.logosGroupActions.length) {\n if (selectedLogoGroupId) {\n this.selectedLogoGroup = this.logosGroupActions.find(group => group.id === selectedLogoGroupId);\n this.cdr.detectChanges();\n } else {\n // Set the first item as selected\n this.selectedLogoGroup = this.logosGroupActions[0];\n }\n }\n\n this.menuPlaceholder = this.resources?.CheckboxSelectLabel;\n this.isLoading = false;\n this.cdr.detectChanges();\n }\n });\n }\n\n public isDisabledElement() {\n return !!this.logosGroupActions?.length && (this.isDisabled || this.isLoading || !this.isAdvancedIndexingPresetSelected);\n }\n}\n","
\n \n \n \n \n \n \n
\n
{{resources?.IndexingLogoEmptyLogoGroupsList}}
\n
{{resources?.IndexingLogoEmptyLogoGroupsListLogoCreationText}}\n \n \n
\n
\n
","export const resources = {\n IndexingLogoGroupsSettings: '',\n IndexingLogosManageLogoGroups: '',\n IndexingLogosSelectLogoGroupsLabel: '',\n IndexingLogoGroupsLabel: '',\n IndexingLogoEmptyLogoGroupsList: '',\n IndexingLogoEmptyLogoGroupsListLogoCreationText: '',\n IndexingLogoEmptyLogoGroupsListLogoCreationLink: '',\n IndexingLogoAdvancedPresetNotSelectedWarningInfo: '',\n IndexingLogoAdvancedPresetNotSelectedWarningInfoLink: '',\n SettingsLoading: '',\n CheckboxSelectLabel: ''\n};\n","export enum UIIndexingActionType {\n INDEX = 'INDEX',\n\n PRESET_VIDEO_AUDIO_BASIC = 'PRESET_VIDEO_AUDIO_BASIC',\n PRESET_VIDEO_AUDIO_STANDARD = 'PRESET_VIDEO_AUDIO_STANDARD',\n PRESET_VIDEO_AUDIO_ADVANCED = 'PRESET_VIDEO_AUDIO_ADVANCED',\n\n PRESET_VIDEO_BASIC = 'PRESET_VIDEO_BASIC',\n PRESET_VIDEO_STANDARD = 'PRESET_VIDEO_STANDARD',\n PRESET_VIDEO_ADVANCED = 'PRESET_VIDEO_ADVANCED',\n\n PRESET_AUDIO_BASIC = 'PRESET_AUDIO_BASIC',\n PRESET_AUDIO_STANDARD = 'PRESET_AUDIO_STANDARD',\n PRESET_AUDIO_ADVANCED = 'PRESET_AUDIO_ADVANCED',\n\n INDEX_DEFAULT = 'INDEX_DEFAULT',\n INDEX_AUDIO_ONLY = 'INDEX_AUDIO_ONLY',\n INDEX_ADVANCED_AUDIO = 'INDEX_ADVANCED_AUDIO',\n INDEX_ADVANCED_VIDEO = 'INDEX_ADVANCED_VIDEO',\n INDEX_ADVANCED = 'INDEX_ADVANCED',\n INDEX_BASIC_AUDIO = 'INDEX_BASIC_AUDIO',\n INDEX_VIDEO_ONLY = 'INDEX_VIDEO_ONLY',\n STREAM = 'STREAM',\n STREAM_SINGLE = 'STREAM_SINGLE',\n STREAM_ADAPTIVE = 'STREAM_ADAPTIVE',\n STREAM_NO_STREAM = 'STREAM_NO_STREAM',\n CUSTOMIZATION_MODEL = 'CUSTOMIZATION_MODEL',\n CUSTOMIZATION_PEOPLE_MODEL = 'CUSTOMIZATION_PEOPLE_MODEL',\n CUSTOMIZATION_LANGUAGE_MODEL = 'CUSTOMIZATION_LANGUAGE_MODEL',\n BRAND_MODEL = 'BRAND_MODEL',\n LOGO_GROUP = 'LOGO_GROUP'\n}\n","import { CustomizationPage } from '@common/modules/core/services/interfaces';\nimport { UIActionType } from '@common/modules/insights/interfaces';\nimport { IAction } from '@common/modules/shared/interfaces';\n\nimport { UIIndexingActionType } from '../interfaces';\n\nexport const peopleModelAction: IAction = {\n title: '',\n value: UIIndexingActionType.CUSTOMIZATION_PEOPLE_MODEL,\n type: UIIndexingActionType.CUSTOMIZATION_PEOPLE_MODEL,\n selected: false,\n selectable: false,\n id: 'peopleModel'\n};\n\nexport const managePeopleModelsAction: IAction = {\n title: '',\n key: 'ManagePeopleModels',\n type: UIActionType.NAVIGATE,\n value: CustomizationPage.People,\n id: 'managePeopleModelsButton',\n icon: 'i-vi-customization'\n};\n","import { Component, OnInit, ChangeDetectionStrategy, Output, EventEmitter, ChangeDetectorRef, OnDestroy, Input } from '@angular/core';\n\nimport { Subject, takeUntil, withLatestFrom } from 'rxjs';\n\nimport { CoreStoreService } from 'src/apps/web/src/core/services/core-store.service';\n\nimport { ActionButtonType } from '@common/modules/shared/components/action-button/interfaces';\nimport { IAction } from '@common/modules/shared/interfaces';\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\nimport { guid } from '@common/modules/utils/string';\nimport { CustomizationPage } from '@common/modules/core/services/interfaces';\nimport { AlertMessageType } from '@common/modules/shared/components/alert-message/interfaces';\n\nimport { resources } from './resources';\nimport { managePeopleModelsAction, peopleModelAction } from './actions';\nimport { IndexingStoreService } from '../../../../services/indexing-store.service';\nimport { CustomizationDataStoreService } from '../../../../../customization-data/services/customization-data-store.service';\nimport { FaceGateStripMode } from '../../indexing-face-gate-strip/interfaces';\n\n@Component({\n selector: 'vi-indexing-settings-people-models',\n templateUrl: './indexing-settings-people-models.component.html',\n styleUrls: ['./indexing-settings-people-models.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class IndexingSettingsPeopleModelsComponent implements OnInit, OnDestroy {\n @Input() public isDisabled = false;\n @Output() public managePeopleModelClicked = new EventEmitter();\n @Output() public navigateToCreateAccount = new EventEmitter();\n\n public AlertMessageType = AlertMessageType;\n public ActionButtonType = ActionButtonType;\n public isLoading: boolean;\n public isError: boolean;\n public selectedPeopleModelId: string;\n public resources = resources;\n public dropdownId: string = 'peopleModelsDropdown_' + guid();\n public peopleModelAction: IAction = peopleModelAction;\n public managePeopleModelsAction: IAction = managePeopleModelsAction;\n public peopleModelActions: IAction[] = [];\n public selectedPeopleModel: IAction = null;\n public showFaceGateWarning: boolean = false;\n public FaceGateStripMode = FaceGateStripMode;\n\n private destroy$ = new Subject();\n\n constructor(\n private translate: TranslateHelperService,\n private indexingStore: IndexingStoreService,\n private customizationDataStoreService: CustomizationDataStoreService,\n private coreStore: CoreStoreService,\n private cdr: ChangeDetectorRef\n ) {}\n\n public ngOnInit(): void {\n this.isLoading = true;\n this.translate.translateResourcesInstant(this.resources);\n this.managePeopleModelsAction.title = this.resources.ManagePeopleModels;\n\n this.loadPeopleModels();\n\n this.indexingStore.selectedPeopleModel$.pipe(takeUntil(this.destroy$)).subscribe(selectedModel => {\n if (selectedModel) {\n this.selectedPeopleModelId = selectedModel.id;\n this.initSelectedPeopleModelId();\n this.cdr.detectChanges();\n }\n });\n\n this.coreStore.showFaceGateWarning$.pipe(takeUntil(this.destroy$)).subscribe(showFaceGateWarning => {\n this.showFaceGateWarning = showFaceGateWarning;\n this.cdr.detectChanges();\n });\n }\n\n public ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n public loadPeopleModels() {\n this.customizationDataStoreService.peopleModels\n .pipe(\n takeUntil(this.destroy$),\n withLatestFrom(this.customizationDataStoreService.isPeopleModelsLoaded()),\n withLatestFrom(this.customizationDataStoreService.peopleModelsError)\n )\n .subscribe(([[models, isLoaded], isError]) => {\n if (isLoaded) {\n this.peopleModelActions = [];\n\n if (isError) {\n this.isError = true;\n } else {\n models.map((model: Microsoft.VideoIndexer.Contracts.PersonModel) => {\n this.peopleModelActions.push({\n title: model.name,\n value: model.name,\n id: model.id\n });\n });\n }\n\n this.isLoading = false;\n this.initSelectedPeopleModelId();\n this.cdr.detectChanges();\n }\n });\n }\n\n public get isPeopleModelsDropdownDisable() {\n return this.isDisabled || this.isLoading || this.isError;\n }\n\n public onSelectPeopleModel() {\n this.indexingStore.updatePeopleModel(this.selectedPeopleModel?.id);\n }\n\n public onManagePeopleModels() {\n this.managePeopleModelClicked.emit(CustomizationPage.People);\n }\n\n public initSelectedPeopleModelId() {\n if (!this.selectedPeopleModelId || !this.peopleModelActions?.length) {\n return;\n }\n\n this.selectedPeopleModel = this.peopleModelActions.find(model => model.id === this.selectedPeopleModelId);\n }\n\n public onNavigateToCreateAccount() {\n this.navigateToCreateAccount.emit();\n }\n}\n","
\n \n \n \n \n \n \n \n \n \n \n \n
","export const resources = {\n UploadPeopleModelOption: '',\n ManagePeopleModels: '',\n PeopleModelsLoadingPlaceholder: '',\n PeopleModelsLoadingErrorMessage: ''\n};\n","export const resources = {\n ViUploadConsentSubmitTerms: '',\n UploadOnlineServicesTerms: '',\n UploadServiceAgreement: '',\n UploadPrivacyStatement: '',\n UploadSubmitTermsTitle: '',\n UploadConsentUSSubmitTerms: '',\n UploadConsentUSSubmitTermsTitle: ''\n};\n","import { Component, OnInit, ChangeDetectionStrategy, Input, OnChanges, SimpleChanges, Output, EventEmitter } from '@angular/core';\n\nimport { ONLINE_SERVICES_TERMS } from '@common/modules/shared/links';\nimport { UtilsService } from '@common/modules/shared/services/utils.service';\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\n\nimport { resources } from './resources';\n\n@Component({\n selector: 'vi-upload-consent',\n templateUrl: './upload-consent.component.html',\n styleUrls: ['./upload-consent.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class UploadConsentComponent implements OnInit, OnChanges {\n @Input() consent: boolean = false;\n @Input() isUSAccount: boolean = false;\n @Input() disabled: boolean = false;\n @Input() isTrialAccount: boolean;\n @Output() consentChange = new EventEmitter();\n\n public resources = resources;\n\n constructor(private translate: TranslateHelperService, private utils: UtilsService) {}\n\n public ngOnInit(): void {\n this.initTranslations();\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n if (changes.isTrialAccount) {\n this.initTranslations();\n }\n }\n\n public get label() {\n return this.isUSAccount ? resources.UploadConsentUSSubmitTerms : resources.ViUploadConsentSubmitTerms;\n }\n\n public get inputLabel() {\n return this.isUSAccount ? resources.UploadConsentUSSubmitTermsTitle : resources.UploadSubmitTermsTitle;\n }\n\n public toggle(value: boolean) {\n this.consent = value;\n this.consentChange.emit(this.consent);\n }\n\n private initTranslations() {\n this.translate.translateResources(this.resources, {\n documentationLink: ONLINE_SERVICES_TERMS,\n documentationTitle: this.resources.UploadOnlineServicesTerms,\n serviceAgreementLink: this.utils.getLinkByValue(this.isTrialAccount, 'ServiceAgreement'),\n serviceAgreementTitle: this.resources.UploadServiceAgreement,\n privacyStatementLink: this.utils.getLinkByValue(this.isTrialAccount, 'PrivacyStatement'),\n privacyStatementTitle: this.resources.UploadPrivacyStatement\n });\n }\n}\n","\n\n","export enum UploadPages {\n UploadSource = 'UploadSource',\n UploadGuide = 'UploadGuide',\n IndexingForm = 'IndexingForm',\n UploadReview = 'UploadReview',\n UploadProgress = 'UploadProgress',\n UploadSummary = 'UploadSummary'\n}\n\nexport enum UploadSourceActions {\n URL = 'URL',\n UploadGuide = 'UploadGuide'\n}\n","import { Observable } from 'rxjs';\n\nimport { AlertMessageType } from '@vi-ui/core';\n\nexport enum ProgressTitleType {\n MULTIPLE_IN_PROGRESS = 'MULTIPLE_IN_PROGRESS',\n SINGLE_IN_PROGRESS = 'SINGLE_IN_PROGRESS',\n SINGLE_FAILED = 'SINGLE_FAILED',\n MULTIPLE_SUCCESS = 'MULTIPLE_SUCCESS',\n SINGLE_SUCCESS = 'SINGLE_SUCCESS',\n SINGLE_SUCCESS_WITH_FAILED = 'SINGLE_SUCCESS_WITH_FAILED',\n ALL_SUCCESS = 'ALL_SUCCESS',\n ALL_FAILED = 'ALL_FAILED'\n}\n\nexport interface IUploadErrorStrip {\n show: Observable;\n type: AlertMessageType;\n content: string;\n linkText: string;\n isButton: boolean;\n onCLick: () => void;\n}\n","export const resources = {\n IndexingMultiFilesLabel: '',\n IndexingSingleFileLabel: '',\n UploadingNumberFiles: '',\n NumberFilesUploaded: '',\n NumberFilesNotUploaded: '',\n NumberNotUploaded: '',\n SingleFileUploaded: '',\n SingleFileNotUploaded: '',\n Uploading: '',\n Failed: '',\n Progress: '',\n EventGridErrorMsg: '',\n AccountDurationQuotaErrorMsg: '',\n AccountDailyCountQuotaErrorMsg: '',\n AccountDailyDurationQuotaErrorMsg: '',\n CreateAccountWithAzureSubscription: '',\n CreateUnlimitedAccountWithAzure: '',\n AmsAadAppNotInTenantErrorMsg: '',\n AmsUnreachableErrorMsg: '',\n StorageUnreachableErrorMsg: '',\n UploadFileManagedIdentityMissingErrorMsg: '',\n UploadFileStorageAccessDeniedErrorMsg: '',\n StorageAccessDeniedErrorMsgLinkText: ''\n};\n","import { OnInit, ChangeDetectorRef, OnDestroy, EventEmitter, Output, ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { Subject, takeUntil, Observable, withLatestFrom } from 'rxjs';\n\nimport { AlertMessageType } from '@vi-ui/core';\n\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\n\nimport { CoreStoreService } from '../../../../core/services/core-store.service';\nimport { UploadingState } from './../../../interfaces';\nimport { resources } from './resources';\nimport { IndexingStoreService } from '../../../services/indexing-store.service';\nimport { IFile } from '../../../interfaces';\nimport { ProgressTitleType, IUploadErrorStrip } from './interfaces';\n\n@Component({\n selector: 'vi-upload-summary-page',\n templateUrl: './upload-summary-page.component.html',\n styleUrls: ['./upload-summary-page.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class UploadSummaryPageComponent implements OnInit, OnDestroy {\n @Output() public createAccountClicked = new EventEmitter();\n\n public resources = resources;\n public totalUploadProgress: number = 0;\n public isMultipleFileUpload: boolean;\n public files: IFile[] = [];\n public numOfFiles: number;\n public filesLabel = '';\n public progressTitle = '';\n public UploadingState = UploadingState;\n public isEventGridError$ = new Observable();\n public isAmsAadAppNotInTenantError$ = new Observable();\n public isAmsUnreachableError$ = new Observable();\n public isStorageUnreachableError$ = new Observable();\n public isAccountDurationQuota$ = new Observable();\n public isAccountDailyCountQuota$ = new Observable();\n public isAccountDailyDurationQuota$ = new Observable();\n public isStorageAccessDeniedError$ = new Observable();\n public isManagedIdentityMissingError$ = new Observable();\n public AlertMessageType = AlertMessageType;\n public errors: { [key: string]: IUploadErrorStrip };\n\n private destroy$ = new Subject();\n\n constructor(\n private translate: TranslateHelperService,\n private indexingStore: IndexingStoreService,\n private coreStoreService: CoreStoreService,\n private cdr: ChangeDetectorRef\n ) {}\n\n public ngOnInit(): void {\n this.translate.translateResourcesInstant(this.resources);\n this.handleProgress();\n this.handleFiles();\n this.handleErrors();\n }\n\n public ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n public createAccount() {\n this.createAccountClicked.emit();\n }\n\n private handleProgress() {\n this.indexingStore.totalUploadProgress$.pipe(takeUntil(this.destroy$)).subscribe(progress => {\n this.totalUploadProgress = progress;\n this.cdr.detectChanges();\n });\n }\n\n private handleFiles() {\n this.indexingStore.allValidFiles$\n .pipe(takeUntil(this.destroy$), withLatestFrom(this.indexingStore.isUploadingDone$))\n .subscribe(([files, isUploadingDone]) => {\n this.files = files;\n this.numOfFiles = files?.length;\n this.isMultipleFileUpload = this.numOfFiles > 1;\n const failedFilesCount = this.files.filter(file => file.uploadingState === UploadingState.Failed).length;\n this.filesLabel = this.isMultipleFileUpload ? this.resources.IndexingMultiFilesLabel : this.resources.IndexingSingleFileLabel;\n this.progressTitle = this.getProgressTitle(isUploadingDone, failedFilesCount);\n this.cdr.detectChanges();\n });\n }\n\n private getProgressTitle(isUploadingDone: boolean = false, failedFilesCount: number = 0): string {\n const succeededFilesCount = this.numOfFiles - failedFilesCount;\n const progressTitleCase = this.isMultipleFileUpload\n ? this.getProgressTitleCaseForMultipleFiles(isUploadingDone, failedFilesCount, succeededFilesCount)\n : this.getProgressTitleCaseForSingleFile(isUploadingDone, failedFilesCount);\n\n switch (progressTitleCase) {\n case ProgressTitleType.MULTIPLE_IN_PROGRESS:\n return `${this.translate.instant('UploadingNumberFiles', { number: this.numOfFiles })}...`;\n case ProgressTitleType.SINGLE_IN_PROGRESS:\n return `${this.resources.Uploading}...`;\n case ProgressTitleType.SINGLE_FAILED:\n return this.resources.SingleFileNotUploaded;\n case ProgressTitleType.MULTIPLE_SUCCESS:\n return `${this.translate.instant('NumberFilesUploaded', { number: succeededFilesCount })}, ${this.translate.instant('NumberNotUploaded', {\n number: failedFilesCount\n })}`;\n case ProgressTitleType.SINGLE_SUCCESS:\n return this.resources.SingleFileUploaded;\n case ProgressTitleType.SINGLE_SUCCESS_WITH_FAILED:\n return `${this.translate.instant('SingleFileUploaded')}, ${this.translate.instant('NumberNotUploaded', { number: failedFilesCount })}`;\n case ProgressTitleType.ALL_SUCCESS:\n return this.translate.instant('NumberFilesUploaded', { number: succeededFilesCount });\n case ProgressTitleType.ALL_FAILED:\n return this.translate.instant('NumberFilesNotUploaded', { number: failedFilesCount });\n }\n }\n\n private getProgressTitleCaseForMultipleFiles(isUploadingDone: boolean, failedFiles: number, succeededFilesCount: number): ProgressTitleType {\n const isMultipleFilesSucceeded = succeededFilesCount > 1;\n\n switch (true) {\n case !isUploadingDone:\n return ProgressTitleType.MULTIPLE_IN_PROGRESS;\n case failedFiles === 0:\n return ProgressTitleType.ALL_SUCCESS;\n case failedFiles === this.numOfFiles:\n return ProgressTitleType.ALL_FAILED;\n case isMultipleFilesSucceeded:\n return ProgressTitleType.MULTIPLE_SUCCESS;\n case !isMultipleFilesSucceeded:\n return ProgressTitleType.SINGLE_SUCCESS_WITH_FAILED;\n }\n }\n\n private getProgressTitleCaseForSingleFile(isUploadingDone: boolean, failedFiles: number): ProgressTitleType {\n switch (true) {\n case !isUploadingDone:\n return ProgressTitleType.SINGLE_IN_PROGRESS;\n case failedFiles === 0:\n return ProgressTitleType.SINGLE_SUCCESS;\n case failedFiles === 1:\n return ProgressTitleType.SINGLE_FAILED;\n }\n }\n\n private handleErrors() {\n this.isEventGridError$ = this.indexingStore.isEventGridError$;\n this.isAmsAadAppNotInTenantError$ = this.indexingStore.isAmsAadAppNotInTenantError$;\n this.isAmsUnreachableError$ = this.indexingStore.isAmsUnreachableError$;\n this.isStorageUnreachableError$ = this.indexingStore.isStorageUnreachableError$;\n this.isAccountDurationQuota$ = this.indexingStore.isAccountDurationQuota$;\n this.isAccountDailyCountQuota$ = this.indexingStore.isAccountDailyCountQuota$;\n this.isAccountDailyDurationQuota$ = this.indexingStore.isAccountDailyDurationQuota$;\n this.isStorageAccessDeniedError$ = this.indexingStore.isStorageAccessDeniedError$;\n this.isManagedIdentityMissingError$ = this.indexingStore.isManagedIdentityMissingError$;\n this.getErrors();\n }\n\n private getErrors() {\n this.errors = {\n eventGridError: {\n show: this.isEventGridError$,\n type: AlertMessageType.ERROR,\n content: this.resources?.EventGridErrorMsg,\n linkText: '',\n isButton: false,\n onCLick: null\n },\n accountDurationQuotaError: {\n show: this.isAccountDurationQuota$,\n type: AlertMessageType.WARNING,\n content: `${this.resources?.AccountDurationQuotaErrorMsg},`,\n linkText: this.resources?.CreateUnlimitedAccountWithAzure,\n isButton: true,\n onCLick: () => this.createAccount()\n },\n accountDailyCountQuotaError: {\n show: this.isAccountDailyCountQuota$,\n type: AlertMessageType.WARNING,\n content: `${this.resources?.AccountDailyCountQuotaErrorMsg},`,\n linkText: this.resources?.CreateAccountWithAzureSubscription,\n isButton: true,\n onCLick: () => this.createAccount()\n },\n accountDailyDurationQuotaError: {\n show: this.isAccountDailyDurationQuota$,\n type: AlertMessageType.WARNING,\n content: `${this.resources?.AccountDailyDurationQuotaErrorMsg},`,\n linkText: this.resources?.CreateAccountWithAzureSubscription,\n isButton: true,\n onCLick: () => this.createAccount()\n },\n amsUnReachableError: {\n show: this.isAmsUnreachableError$,\n type: AlertMessageType.ERROR,\n content: this.resources?.AmsUnreachableErrorMsg,\n linkText: '',\n isButton: false,\n onCLick: null\n },\n amsAadAppNotInTenantError: {\n show: this.isAmsAadAppNotInTenantError$,\n type: AlertMessageType.ERROR,\n content: this.resources?.AmsAadAppNotInTenantErrorMsg,\n linkText: '',\n isButton: false,\n onCLick: null\n },\n storageUnReachableError: {\n show: this.isStorageUnreachableError$,\n type: AlertMessageType.ERROR,\n content: this.resources?.StorageUnreachableErrorMsg,\n linkText: '',\n isButton: false,\n onCLick: null\n },\n storageAccessDeniedError: {\n show: this.isStorageAccessDeniedError$,\n type: AlertMessageType.ERROR,\n content: this.resources?.UploadFileStorageAccessDeniedErrorMsg,\n linkText: this.resources?.StorageAccessDeniedErrorMsgLinkText,\n isButton: false,\n onCLick: () => this.coreStoreService.navigateToViResourceOverviewPortalUrl()\n },\n managedIdentityMissingError: {\n show: this.isManagedIdentityMissingError$,\n type: AlertMessageType.ERROR,\n content: this.resources?.UploadFileManagedIdentityMissingErrorMsg,\n linkText: '',\n isButton: false,\n onCLick: null\n }\n };\n }\n}\n","
\n
\n \n \n \n \n \n \n \n \n \n
\n \n {{totalUploadProgress}}%\n \n {{progressTitle}}\n
\n\n
\n
\n \n
\n \n {{file.name}} ({{resources.Failed | lowercase}})\n \n \n \n
\n
\n \n
\n\n\n \n \n","import { IAction } from '@common/modules/shared/interfaces';\nimport { UIActionType } from '@common/modules/insights/interfaces';\n\nexport const runInBackAction: IAction = {\n title: '',\n key: 'UploadRunInBackground',\n type: UIActionType.HIDE,\n value: UIActionType.HIDE,\n id: 'runInBack'\n};\n\nexport const uploadAndIndexAction: IAction = {\n title: '',\n key: 'UploadAndIndexButton',\n type: UIActionType.CLOSE,\n value: UIActionType.CLOSE,\n id: 'uploadButtonAction'\n};\n\nexport const reviewAndUploadAction: IAction = {\n title: '',\n key: 'ReviewAndUploadButton',\n type: UIActionType.PREVIEW,\n value: UIActionType.PREVIEW,\n id: 'reviewAndUploadBtn'\n};\n\nexport const cancelAction: IAction = {\n title: '',\n key: 'Cancel',\n type: UIActionType.CANCEL,\n value: UIActionType.CANCEL,\n id: 'cancel'\n};\n\nexport const closeAction: IAction = {\n title: '',\n key: 'Close',\n type: UIActionType.CLOSE,\n value: UIActionType.CLOSE,\n id: 'close'\n};\n\nexport const closeFromHeaderAction: IAction = {\n title: '',\n key: 'Close',\n type: UIActionType.CLOSE,\n value: '',\n icon: 'i-vi-close-big',\n id: 'closeFromHeader',\n titleAttribute: 'Close'\n};\n","export const resources = {\n UploadDialogTitle: '',\n UploadRunInBackground: '',\n Cancel: '',\n Close: '',\n UploadAndIndexButton: '',\n UploadInvalidFilesMessage: '',\n ReviewAndUploadButton: '',\n IndexingBackToSettings: ''\n};\n","import { ChangeDetectionStrategy, Component, EventEmitter, OnInit, Output, OnDestroy, ChangeDetectorRef } from '@angular/core';\n\nimport { combineLatestWith, filter, Observable, Subject, take, takeUntil } from 'rxjs';\n\nimport { AlertMessageType } from '@vi-ui/core';\n\nimport { IDialogEvent } from '@common/modules/shared/components/dialog/interfaces';\nimport { UPLOAD_FORMAT_LINK } from '@common/modules/shared/links';\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\nimport { ActionButtonType } from '@common/modules/shared/components/action-button/interfaces';\nimport { CustomizationPage, FeatureSwitch } from '@common/modules/core/services/interfaces';\nimport { EventCategory, TrackService } from '@common/modules/core/services/track';\n\nimport { FeatureSwitchService } from './../../../../../../../common/modules/core/services/feature-switch/feature-switch.service';\nimport { CoreStoreService } from '../../../../core/services/core-store.service';\nimport { FileHelperService } from '../../../services/file-helper.service';\nimport { IndexingStoreService } from '../../../services/indexing-store.service';\nimport { UploadPages, UploadSourceActions } from '../interfaces';\nimport { resources } from './resources';\nimport { IFile, UploadMode } from '../../../interfaces';\nimport * as actions from './actions';\nimport { FaceGateStripMode } from '../../shared/indexing-face-gate-strip/interfaces';\nimport { backToSettingsAction } from '../../shared/actions';\n\n@Component({\n selector: 'vi-upload-dialog',\n templateUrl: './upload-dialog.component.html',\n styleUrls: ['./upload-dialog.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class UploadDialogComponent implements OnInit, OnDestroy {\n @Output() public componentEventEmitter = new EventEmitter();\n\n public readonly UPLOAD_BUTTON_MIN_WIDTH = '139px';\n public readonly BACK_TO_SETTINGS_BUTTON_MIN_WIDTH = '141px';\n public readonly CANCEL_BUTTON_MIN_WIDTH = '82px';\n public readonly RUN_IN_BACK_BUTTON_MIN_WIDTH = '161px';\n public readonly CLOSE_BUTTON_MIN_WIDTH = '75px';\n\n public displayedUploadPage: UploadPages;\n public filesType: string;\n public isUploadInProgress: boolean = false;\n public filesExist: boolean = false;\n public isUploadingDone: boolean = false;\n public totalUploadProgress: number = 0;\n public files: IFile[] = [];\n public uploadAndIndexAction = actions.uploadAndIndexAction;\n public reviewAndUploadAction = actions.reviewAndUploadAction;\n public cancelAction = actions.cancelAction;\n public closeAction = actions.closeAction;\n public closeFromHeaderAction = actions.closeFromHeaderAction;\n public runInBackAction = actions.runInBackAction;\n public backToSettingsACtion = backToSettingsAction;\n public isUSAccount$: Observable;\n public isTrialAccount$: Observable;\n public userConsent: boolean;\n public indexingFormChanged: boolean = false;\n public showConfirmExit: boolean = false;\n public customizationPageToNavigate: CustomizationPage = null;\n public navigateToCreateAccount: boolean = false;\n public showUploadFileError: boolean;\n public isMultiFileMode: boolean = false;\n public isExcludeAIsEnable: boolean = false;\n public isSupportedAIsLoaded: boolean = false;\n\n public resources = resources;\n public UploadPages = UploadPages;\n public ActionButtonType = ActionButtonType;\n public FaceGateStripMode = FaceGateStripMode;\n public AlertMessageType = AlertMessageType;\n\n private destroy$ = new Subject();\n\n constructor(\n private translate: TranslateHelperService,\n private indexingStore: IndexingStoreService,\n private coreStore: CoreStoreService,\n private fileHelperService: FileHelperService,\n private trackService: TrackService,\n private cdr: ChangeDetectorRef,\n private featureSwitchService: FeatureSwitchService\n ) {}\n\n public ngOnInit(): void {\n this.initTranslations();\n this.isExcludeAIsEnable = this.featureSwitchService.featureSwitch(FeatureSwitch.ExcludeAIs);\n this.filesType = this.fileHelperService.getSupportedMediaTypesPattern();\n this.isUSAccount$ = this.coreStore.isUSAccount$;\n this.isTrialAccount$ = this.coreStore.isTrialAccount$;\n this.indexingStore.userConsent$.pipe(takeUntil(this.destroy$)).subscribe(consent => {\n this.userConsent = consent;\n this.cdr.detectChanges();\n });\n this.indexingStore.isSupportedAIsLoaded$.pipe(takeUntil(this.destroy$)).subscribe(isLoaded => {\n this.isSupportedAIsLoaded = isLoaded;\n });\n\n this.indexingStore.isIndexingProcessDirty$.pipe(takeUntil(this.destroy$)).subscribe(isDirty => {\n this.indexingFormChanged = isDirty;\n });\n this.indexingStore.displayedUploadPage$.pipe(takeUntil(this.destroy$)).subscribe(page => {\n this.displayedUploadPage = page;\n this.cdr.detectChanges();\n });\n this.indexingStore.allValidFiles$.pipe(takeUntil(this.destroy$)).subscribe(files => {\n this.files = files;\n this.filesExist = !files.length;\n });\n this.indexingStore.isUploadingDone$.pipe(takeUntil(this.destroy$)).subscribe(isDone => {\n this.isUploadingDone = isDone;\n this.cdr.detectChanges();\n });\n this.indexingStore.totalUploadProgress$.pipe(takeUntil(this.destroy$)).subscribe(progress => {\n this.totalUploadProgress = progress;\n this.cdr.detectChanges();\n });\n this.indexingStore.isUploadInProgress$.pipe(takeUntil(this.destroy$)).subscribe(isUploading => {\n this.isUploadInProgress = isUploading;\n if (isUploading) {\n this.indexingStore.updateUploadPage(UploadPages.UploadSummary);\n }\n this.cdr.detectChanges();\n });\n this.indexingStore.isMultiFileMode$\n .pipe(\n filter(v => v),\n take(1)\n )\n .subscribe(isMultiFileMode => {\n this.isMultiFileMode = isMultiFileMode;\n });\n this.indexingStore.showUploadFileError$\n .pipe(takeUntil(this.destroy$), combineLatestWith(this.indexingStore.isMultiFileMode$))\n .subscribe(([showUploadFileError]) => {\n this.showUploadFileError = showUploadFileError && this.isMultiFileMode;\n this.cdr.detectChanges();\n });\n }\n\n public ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n public switchPage(page: UploadPages) {\n this.indexingStore.updateUploadPage(page);\n }\n\n public onUploadSourceButtonClicked(action: UploadSourceActions) {\n if (action === UploadSourceActions.URL) {\n this.trackService.track('upload_dialog.upload_by_url_button.clicked', {\n category: EventCategory.UPLOAD\n });\n this.indexingStore.updateUploadMode(UploadMode.URL);\n this.switchPage(UploadPages.IndexingForm);\n } else if (action === UploadSourceActions.UploadGuide) {\n this.trackService.track('upload_dialog.upload_guide_button.clicked', {\n category: EventCategory.UPLOAD\n });\n this.switchPage(UploadPages.UploadGuide);\n }\n }\n\n public onUseSavedIndexingSettingsChanged(useSavedIndexingSettings: boolean) {\n this.indexingStore.updateUseSavedIndexingSettings(useSavedIndexingSettings);\n }\n\n public onOpenUploadGuidelineLink() {\n this.trackService.track('upload_dialog.upload_guide_link.clicked', {\n category: EventCategory.UPLOAD\n });\n window.open(UPLOAD_FORMAT_LINK, '_blank');\n }\n\n public uploadClicked() {\n this.trackService.track('upload_dialog.upload_and_index_button.clicked', {\n category: EventCategory.UPLOAD\n });\n this.indexingStore.uploadFiles();\n }\n\n public close() {\n this.componentEventEmitter.emit({\n isDialogClose: true,\n dialogEventData: { customizationPageToNavigate: this.customizationPageToNavigate, navigateToCreateAccount: this.navigateToCreateAccount }\n });\n }\n\n public confirmClose(pageToNavigate: CustomizationPage = null, navigateToCreateAccount: boolean = false) {\n this.customizationPageToNavigate = pageToNavigate;\n this.navigateToCreateAccount = navigateToCreateAccount;\n this.showConfirmExit = this.indexingFormChanged;\n\n if (!this.showConfirmExit) {\n this.close();\n } else {\n // This trace was emitted here and not inside the confirm exit component so we can differentiate upload_dialog event from re_index_dialog trace\n this.trackService.track('upload_dialog.confirm_exit.init', {\n category: EventCategory.UPLOAD\n });\n }\n }\n\n public leaveIndexing() {\n this.trackService.track('upload_dialog.confirm_exit.leave.clicked', {\n category: EventCategory.UPLOAD\n });\n this.close();\n }\n\n public onBackToIndexing() {\n this.trackService.track('upload_dialog.confirm_exit.cancel.clicked', {\n category: EventCategory.UPLOAD\n });\n this.showConfirmExit = !this.showConfirmExit;\n }\n\n public onFilesSelected(files: File[]) {\n const filesWithProps = files.map(file => this.fileHelperService.extractFileProperties(file));\n this.indexingStore.addFilesForUpload(filesWithProps);\n this.indexingStore.updateUploadMode(UploadMode.File);\n this.switchPage(UploadPages.IndexingForm);\n }\n\n public get showFooter(): boolean {\n return [UploadPages.IndexingForm, UploadPages.UploadSummary, UploadPages.UploadReview].includes(this.displayedUploadPage);\n }\n\n public get showUploadButton(): boolean {\n if (this.isExcludeAIsEnable) {\n return this.displayedUploadPage === UploadPages.UploadReview;\n }\n return !this.isUploadInProgress && !this.isUploadingDone;\n }\n\n public get showReviewAndUploadButton(): boolean {\n return this.isExcludeAIsEnable && !this.isUploadInProgress && !this.isUploadingDone && this.displayedUploadPage === UploadPages.IndexingForm;\n }\n\n public get showBackToSettingButton(): boolean {\n return this.isExcludeAIsEnable && this.displayedUploadPage === UploadPages.UploadReview;\n }\n\n public onBackToSettingsClicked() {\n this.switchPage(UploadPages.IndexingForm);\n }\n\n public onReviewAndUploadClicked() {\n this.switchPage(UploadPages.UploadReview);\n }\n\n public onConsentChanged(consent: boolean) {\n this.trackService.track('upload_dialog.confirm_terms.checked', { category: EventCategory.UPLOAD, data: { checked: consent } });\n this.indexingStore.updateUserConsent(consent);\n }\n\n public get isUploadDisabled(): boolean {\n return this.isUploadInProgress || this.filesExist || !this.userConsent;\n }\n\n public get isReviewAndUploadDisabled(): boolean {\n return this.isUploadInProgress || this.filesExist || !this.isSupportedAIsLoaded;\n }\n\n public onNavigateToCreateAccount() {\n this.confirmClose(null, true); // Nav to create account dialog\n }\n\n private initTranslations() {\n this.translate.translateResourcesInstant(resources, { formatsLink: UPLOAD_FORMAT_LINK });\n\n for (const action in actions) {\n if (actions[action].id !== 'closeFromHeader') {\n actions[action].title = resources[actions[action].key];\n }\n }\n\n backToSettingsAction.title = resources[backToSettingsAction.key];\n }\n}\n","\n
\n
\n \n

\n {{resources?.UploadDialogTitle}}\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\n\n \n \n\n","import { IAction } from '@common/modules/shared/interfaces';\nimport { UIActionType, UIActionIcon } from '@common/modules/insights/interfaces';\n\nexport const backToUpload: IAction = {\n title: '',\n type: UIActionType.PREVIOUS,\n value: UIActionType.PREVIOUS,\n icon: UIActionIcon.PREVIOUS,\n selected: false,\n selectable: false,\n id: 'backToUploadButton'\n};\n","export const resources = {\n UploadGuidelinesSubTitle1: '',\n UploadGuidelinesSection1List1: '',\n UploadGuidelinesSection1List2: '',\n UploadGuidelinesLink1: '',\n UploadGuidelinesSubTitle2: '',\n UploadGuidelinesSection2List1: '',\n UploadGuidelinesSection2List2: '',\n UploadGuidelinesLink2: '',\n UploadGuideBackButton: '',\n UploadGuidelinesMaxFilesLimit: '',\n UploadGuidelinesTitle: ''\n};\n","import { ChangeDetectionStrategy, Component, EventEmitter, Output } from '@angular/core';\n\nimport { FocusableComponent } from '@common/modules/accessibility/focusable/focusable.component';\nimport { ActionButtonType } from '@common/modules/shared/components/action-button/interfaces';\nimport { UPLOAD_FORMAT_LINK, UPLOAD_LIMITATION_LINK } from '@common/modules/shared/links';\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\n\nimport { resources } from './resources';\nimport { backToUpload } from './actions';\n\n@Component({\n selector: 'vi-upload-guide',\n templateUrl: './upload-guide.component.html',\n styleUrls: ['./upload-guide.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class UploadGuideComponent extends FocusableComponent {\n @Output() public backClicked = new EventEmitter();\n public resources = resources;\n public ActionButtonType = ActionButtonType;\n public backAction = backToUpload;\n public formatsLink = UPLOAD_FORMAT_LINK;\n public readonly limitationsLink = UPLOAD_LIMITATION_LINK;\n\n constructor(private translate: TranslateHelperService) {\n super();\n\n this.translate.translateResourcesInstant(this.resources);\n this.backAction.title = this.resources.UploadGuideBackButton;\n }\n\n public backBtnClicked() {\n this.backClicked.emit();\n }\n\n public openLink(url) {\n window.open(url, '_blank');\n }\n}\n","
\n
\n \n \n

{{resources?.UploadGuidelinesTitle}}

\n
{{resources?.UploadGuidelinesSubTitle1}}
\n
    \n
  • \n \n {{resources?.UploadGuidelinesSection1List1}}\n
  • \n
  • \n \n {{resources?.UploadGuidelinesSection1List2}}\n
  • \n
  • \n \n {{resources?.UploadGuidelinesMaxFilesLimit}}\n
  • \n
\n {{resources?.UploadGuidelinesLink1}}\n
\n
\n
{{resources?.UploadGuidelinesSubTitle2}}
\n
    \n
  • \n \n \n
  • \n
  • \n \n {{resources?.UploadGuidelinesSection2List2}}\n
  • \n
  • \n \n {{resources?.UploadGuidelinesMaxFilesLimit}}\n
  • \n
\n {{resources?.UploadGuidelinesLink2}}\n
\n
","import { UIActionType } from '@common/modules/insights/interfaces';\nimport { IAction } from '@common/modules/shared/interfaces';\n\nexport const browseForFileAction: IAction = {\n title: '',\n key: 'UploadChooseFilesButton',\n type: UIActionType.CLOSE,\n value: UIActionType.CLOSE,\n id: 'browseForFileAction'\n};\n\nexport const enterFileUrlAction: IAction = {\n title: '',\n key: 'UploadEnterUrlButton',\n type: UIActionType.CLOSE,\n value: UIActionType.CLOSE,\n id: 'enterUrlAction'\n};\n","export const resources = {\n UploadChooseFilesButton: '',\n UploadOrValue: '',\n UploadEnterUrlButton: '',\n UploadDropMediaFile: '',\n UploadUploadingGuidelines: '',\n UploadErrorFileNotSupported: '',\n UploadErrorFileSize: '',\n UploadDropMediaFiles: '',\n UploadUsingSavedIndexingSettingsLabel: ''\n};\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\nimport { FocusableComponent } from '@common/modules/accessibility/focusable/focusable.component';\nimport { ActionButtonType } from '@common/modules/shared/components/action-button/interfaces';\nimport { IAction } from '@common/modules/shared/interfaces';\nimport { UPLOAD_FORMAT_LINK } from '@common/modules/shared/links';\nimport { FILE_UPLOAD_SVG } from '@common/modules/shared/svg-shapes';\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\nimport { EventCategory, TrackService } from '@common/modules/core/services/track';\n\nimport { InsightsCommonUtilsService } from './../../../../../../../common/modules/insights-common/insights-common-utils.service';\nimport { UploadSourceActions } from '../interfaces';\nimport * as actions from './actions';\nimport { resources } from './resources';\n\n@Component({\n selector: 'vi-upload-source',\n templateUrl: './upload-source.component.html',\n styleUrls: ['./upload-source.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class UploadSourceComponent extends FocusableComponent implements OnInit {\n @Input() public filesType: string;\n @Output() public buttonClicked = new EventEmitter();\n @Output() public filesSelected = new EventEmitter();\n @Output() public useSavedIndexingSettingsChanged = new EventEmitter();\n\n public FILE_UPLOAD_SVG = FILE_UPLOAD_SVG;\n public isDragOver: boolean = false;\n public UploadSourceActions = UploadSourceActions;\n\n // Buttons properties\n public readonly BUTTON_MARGIN = 18;\n public readonly MIN_BUTTON_WIDTH = 143;\n public buttonSize: string;\n public browseForFileAction: IAction = actions.browseForFileAction;\n public enterFileUrlAction: IAction = actions.enterFileUrlAction;\n public ActionButtonType = ActionButtonType;\n public resources = resources;\n public useSavedIndexingSettings = false;\n\n constructor(\n private translate: TranslateHelperService,\n private insightsCommonUtilsService: InsightsCommonUtilsService,\n private trackService: TrackService\n ) {\n super();\n }\n\n ngOnInit(): void {\n this.initTranslations();\n this.calcButtonsSize();\n }\n\n public onButtonClicked(action: UploadSourceActions) {\n this.buttonClicked.emit(action);\n }\n\n public uploadChooseFile(fileInput: HTMLInputElement) {\n fileInput.click();\n }\n\n public onDrop($event) {\n $event.preventDefault();\n this.isDragOver = false;\n if ($event.dataTransfer?.items?.length > 0) {\n const files = Array.from($event.dataTransfer.items)\n .filter((file: DataTransferItem) => file.kind === 'file')\n .map((file: DataTransferItem) => file.getAsFile());\n if (files.length > 0) {\n this.onVideoFilesSelected(files);\n }\n this.trackService.track('upload_dialog.add_fs_files.dropped', {\n category: EventCategory.UPLOAD,\n data: { filesCount: files.length }\n });\n }\n }\n\n public onDragOver($event) {\n this.isDragOver = true;\n $event.preventDefault();\n }\n\n public onDragLeave($event) {\n this.isDragOver = false;\n $event.preventDefault();\n }\n\n public onFileBrowse($event) {\n const files: File[] = Array.from($event.target.files);\n if (files.length > 0) {\n this.onVideoFilesSelected(files);\n this.trackService.track('upload_dialog.add_fs_files.browsed', {\n category: EventCategory.UPLOAD,\n data: { filesCount: files.length }\n });\n }\n }\n\n public onUseSavedIndexingSettingsChange(use: boolean) {\n this.useSavedIndexingSettings = use;\n this.useSavedIndexingSettingsChanged.emit(use);\n this.trackService.track('upload_dialog.use_saved_indexing_settings.checked', {\n category: EventCategory.UPLOAD,\n data: { use }\n });\n }\n\n private initTranslations() {\n this.translate.translateResourcesInstant(resources, { formatsLink: UPLOAD_FORMAT_LINK });\n const keys = Object.keys(actions);\n for (const key of keys) {\n actions[key].title = this.resources[actions[key].key];\n }\n }\n\n /**\n * Calculate the size of the buttons according to the longest text\n */\n private calcButtonsSize() {\n this.buttonSize =\n Math.max(\n this.insightsCommonUtilsService.measureText(this.browseForFileAction.title, 14) + this.BUTTON_MARGIN,\n this.insightsCommonUtilsService.measureText(this.enterFileUrlAction.title, 14) + this.BUTTON_MARGIN,\n this.MIN_BUTTON_WIDTH\n ) + 'px';\n }\n\n private onVideoFilesSelected(files: File[]) {\n this.filesSelected.emit(files);\n }\n}\n","
\n
\n
\n
\n
\n \n \n \n
\n \n {{ resources?.UploadDropMediaFiles }}\n \n {{ resources?.UploadOrValue }}\n
\n \n \n \n \n
\n {{ resources?.UploadUploadingGuidelines }}\n
\n \n\n \n \n
\n","import { HttpErrorResponse } from '@angular/common/http';\n\nimport { createAction, props } from '@ngrx/store';\n\nimport { IFile, UploadingStateError } from '../../interfaces';\n\nexport const uploadFileToEdge = createAction(\n '[Upload] Upload File To Edge',\n props<{\n storeFile: IFile;\n }>()\n);\nexport const uploadFileToEdgeFailed = createAction(\n '[Upload] Upload File To Edge Failed',\n props<{ storeFile: IFile; uploadingStateError: UploadingStateError; error?: HttpErrorResponse }>()\n);\n","export * from './upload.actions';\nexport * from './edge-upload.actions';\nexport * from './indexing-form.actions';\nexport * from './indexing-view.actions';\nexport * from './re-index.actions';\n","import { props, createAction } from '@ngrx/store';\n\nimport { SupportedAIModels } from '@common/modules/api/interfaces';\n\nimport { IIndexingSettings, SupportedAIsMap } from '../../interfaces';\n\nexport const updateIndexingSettings = createAction(\n '[Indexing Form] Update Indexing Settings',\n ({ settings, isDirty = true }: { settings: Partial; isDirty?: boolean }) => ({\n settings,\n isDirty\n })\n);\n\nexport const updateSupportedAIs = createAction('[Indexing Form] Update Supported AIs', props<{ supportedAIs: SupportedAIsMap }>());\n\nexport const updateSupportedAIsState = createAction(\n '[Indexing Form] Update Supported AI State',\n props<{ supportedAIs: { name: SupportedAIModels; checked: boolean; disabled: boolean }[] }>()\n);\n\nexport const loadSupportedAIs = createAction('[Indexing Form/ API] Load Supported AIs');\n\nexport const loadSupportedAIsFailed = createAction('[Indexing Form/ API] Load Supported AIs Failed');\n","import { props } from '@ngrx/store';\nimport { createAction } from '@ngrx/store';\n\nimport { IndexingMode, AdvancedSettings } from './../../interfaces';\n\nexport const updateIndexingMode = createAction('[Indexing View] Update Indexing Mode', props<{ mode: IndexingMode }>());\n\nexport const updateSelectedAdvancedSettings = createAction(\n '[Indexing View] Update Selected Advanced Settings',\n props<{ settings: AdvancedSettings }>()\n);\n\nexport const toggleAdvancedMode = createAction('[Indexing View] Toggle Advanced Mode');\n\nexport const resetIndexingViewState = createAction('[Indexing View] Reset Indexing View State');\n","import { createAction, props } from '@ngrx/store';\n\nimport { APIErrors } from '@common/modules/core/services/toast/errors';\n\nimport { IIndexingSettings, SupportedAIsMap } from '../../interfaces';\nimport { ReIndexPages, FailureCode } from '../../components/re-index/interfaces';\n\nexport const openReIndexDialog = createAction('[ReIndex] Open Re-Index Dialog', props<{ videoId: string }>());\nexport const resetReIndexState = createAction('[ReIndex] Reset Re-Index State');\nexport const updateReIndexPage = createAction('[ReIndex] Update ReIndex Page', props<{ page: ReIndexPages }>());\nexport const updateReIndexIndexingSettings = createAction('[ReIndex] Update Indexing Settings', props<{ settings: Partial }>());\nexport const updateReIndexIndexingAdvancedSettings = createAction('[ReIndex] Update Indexing Advanced Settings');\nexport const initReIndexIndexingSettings = createAction(\n '[ReIndex] Init Indexing Settings',\n props<{ videoIndex: Microsoft.VideoIndexer.Contracts.PlaylistContractV2; streamingPreset: string; reviewState: string; moderationState: string }>()\n);\nexport const getVideoIndexFailed = createAction('[ReIndex] Get Video Index Failed', props<{ errorType: APIErrors | FailureCode }>());\nexport const loadVideoIndex = createAction('[ReIndex] Load Video Index');\nexport const reIndexVideo = createAction('[ReIndex] Re-Index Video');\nexport const reIndexVideoFailed = createAction('[ReIndex] Re-Index Video Failed', props<{ errorType: APIErrors | FailureCode }>());\nexport const reIndexVideoSucceeded = createAction('[ReIndex] Re-Index Video Succeeded');\nexport const initVideoId = createAction('[ReIndex] Init Video Id', props<{ videoId: string }>());\nexport const indexingSettingsLoaded = createAction('[ReIndex] Indexing Settings Loaded');\nexport const updateOriginalLanguageId = createAction('[ReIndex] Update Original Language Id', props<{ languageId: string }>());\nexport const validateReIndexSettingReady = createAction('[ReIndex] Validate Re-Index Setting Ready');\nexport const updateReIndexSupportedAIs = createAction('[ReIndex] Update Supported AIs', props<{ supportedAIs: SupportedAIsMap }>());\nexport const updateReIndexSupportedAIsState = createAction(\n '[ReIndex] Update Supported AI Status',\n props<{ supportedAIs: { name: string; checked: boolean; disabled: boolean }[] }>()\n);\n","import { HttpErrorResponse } from '@angular/common/http';\n\nimport { createAction, props } from '@ngrx/store';\n\nimport { IApiSasContract } from '@common/modules/api/interfaces';\nimport { APIErrors } from '@common/modules/core/services/toast/errors';\n\nimport { UploadMode, IIndexingSettings, UploadingStateError, SupportedAIsMap } from './../../interfaces';\nimport { UploadPages } from '../../components/upload/interfaces';\nimport { IFile } from '../../interfaces';\nimport { IFileBlob } from '../../interfaces';\n\nexport const openUploadDialog = createAction('[Upload] Open Upload Dialog');\n\n// Get Video Info\nexport const getVideoInfoFailed = createAction('[Upload] Get Video Info Failed', props<{ errorType: APIErrors }>());\nexport const getVideoInfoSuccess = createAction('[Upload] Get Video Info Success', props<{ file: IFile; contentMD5?: string }>());\n// Get Sas\nexport const getFileSas = createAction('[Upload] Get File Sas', props<{ storeFile: IFile }>());\nexport const getFileSasFailed = createAction(\n '[Upload] Get File Sas Failed',\n props<{ storeFile: IFile; uploadingStateError: UploadingStateError; error?: HttpErrorResponse }>()\n);\nexport const getFileSasSuccess = createAction(\n '[Upload] Get File Sas Success',\n props<{ blobFile: IFileBlob; sas: IApiSasContract; storeFile: IFile }>()\n);\n// Upload to azure blob storage\nexport const uploadFileToBlobStorage = createAction('[Upload] Upload To Blob Storage Files');\nexport const uploadFileToBlobStorageFailed = createAction(\n '[Upload] Upload Files To Blob Storage Failed',\n props<{ storeFile: IFile; uploadingStateError: UploadingStateError; error?: HttpErrorResponse }>()\n);\nexport const uploadFileToBlobStorageSuccess = createAction(\n '[Upload] Upload Files To Blob Storage Success',\n props<{\n storeFile: IFile;\n fileUrl: string;\n }>()\n);\n// Upload Files\nexport const uploadFiles = createAction('[Upload] Upload Files');\nexport const uploadFilesFinished = createAction('[Upload] Upload Files Finished');\n// Upload file to server\nexport const uploadFileToServer = createAction(\n '[Upload] Upload Files To Server',\n props<{\n storeFile: IFile;\n fileUrl: string;\n contentMD5?: string;\n }>()\n);\nexport const initiateUploadFiles = createAction('[Upload] Initiate Upload Files');\nexport const uploadFileToServerFailed = createAction(\n '[Upload] Upload File To Server Failed',\n props<{ storeFile: IFile; uploadingStateError: UploadingStateError; error?: HttpErrorResponse }>()\n);\nexport const uploadFileFinished = createAction('[Upload] Upload File To Server Finished', props<{ file?: IFile }>());\n// Upload state changes\nexport const initUploadDialogState = createAction('[Upload] Init Upload Dialog State', props<{ indexingSettings: Partial }>());\nexport const updateUploadPage = createAction('[Upload] Update Upload Page', props<{ page: UploadPages }>());\nexport const addUploadFiles = createAction('[Upload] Add Upload Files', props<{ files: IFile[] }>());\nexport const addUploadFilesSuccess = createAction('[Upload] Add Upload Files Success', props<{ files: IFile[] }>());\nexport const addUrlFileForUpload = createAction('[Upload] Add URL File For Upload', props<{ file: IFile }>());\nexport const urlValidationFailed = createAction('[Upload] URL Validation Failed', props<{ errorType: APIErrors }>());\nexport const removeFile = createAction('[Upload] Remove File', props<{ fileId: string }>());\nexport const updateFile = createAction('[Upload] Update File', props<{ fileId: string; file: Partial }>());\nexport const uploadingFilesInProgress = createAction('[Upload] Uploading Files In Progress');\nexport const updateUploadMode = createAction('[Upload] Update Upload Mode', props<{ mode: UploadMode }>());\nexport const updateUploadIndexingSettings = createAction('[Upload] Update Indexing Settings', props<{ settings: Partial }>());\nexport const updateUserConsent = createAction('[Indexing View] Update user consent', props<{ consent: boolean }>());\nexport const updateUserConsentSuccess = createAction('[Indexing View] Update user consent updateUserConsentSuccess', props<{ consent: boolean }>());\nexport const updateUrlValidationLoading = createAction('[Upload] Update URL Validation Loading', props<{ loading: boolean }>());\nexport const updateUrlValidationError = createAction('[Upload] Update URL Validation Error', props<{ errorType: APIErrors }>());\nexport const uploadDialogClosed = createAction('[Upload] Upload Dialog Closed');\nexport const showIndexingStartedForSingleToast = createAction('[Upload] Show Indexing Started For Single Toast', props<{ file: IFile }>());\nexport const showIndexingStartedForMultiToast = createAction('[Upload] Show Indexing Started For Multi Toast', props<{ numberFiles: number }>());\nexport const showUploadFailedToast = createAction('[Upload] Show Upload Failed Toast', props<{ file: IFile; errorType: APIErrors }>());\nexport const updateAccountQuotaOnUploadFailure = createAction('[Upload] Update Account Quota On Upload Failure', props<{ file: IFile }>());\nexport const updateUseSavedIndexingSettings = createAction('[Upload] Update Use Saved Indexing Settings', props<{ use: boolean }>());\nexport const updateUploadSupportedAIs = createAction('[Upload] Update Supported AIs', props<{ supportedAIs: SupportedAIsMap }>());\nexport const updateUploadSupportedAIsState = createAction(\n '[Upload] Update Supported AI Status',\n props<{ supportedAIs: { name: string; checked: boolean; disabled: boolean }[] }>()\n);\n","import { Injectable } from '@angular/core';\nimport { HttpEvent, HttpEventType } from '@angular/common/http';\n\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Store } from '@ngrx/store';\n\nimport { catchError, mergeMap, withLatestFrom, EMPTY } from 'rxjs';\n\nimport { LoggerService } from '@common/modules/core/services/logger/logger.service';\nimport { EventCategory, TrackService } from '@common/modules/core/services/track';\nimport { ApiService } from '@common/modules/api/services/api.service';\nimport { FeatureSwitchService } from '@common/modules/core/services/feature-switch/feature-switch.service';\nimport { FeatureSwitch } from '@common/modules/core/services/interfaces';\n\nimport { IFile, ILanguage, UploadMode, UploadingState, UploadingStateError } from './../../interfaces';\nimport { IState } from './../reducers/index';\nimport * as actions from '../actions';\nimport * as fromIndexing from '../selectors';\nimport * as fromEdgeSupportedLanguages from '../../../customization-data/selectors/edge-supported-languages.selectors';\nimport * as fromCore from '../../../core/selectors';\nimport * as LibraryActions from '../../../gallery/core/actions/library.actions';\nimport {\n getLanguageParam,\n UPLOAD_PROCESS_FINISHED_PERCENTAGE,\n getFileTraceData,\n getUploadSettingsTraceData,\n getExcludeAIsParams\n} from './utils/indexing-utils';\nimport { convertToEdgeUploadParams, getCustomEdgeLanguagesParam } from './utils/edge-indexing-utils';\n\n@Injectable()\nexport class EdgeUploadEffects {\n public uploadFilesToEdge$ = createEffect(() =>\n this.actions$.pipe(\n ofType(actions.uploadFileToEdge),\n withLatestFrom(this.store.select(fromCore.selectCurrentAccountId)),\n withLatestFrom(this.store.select(fromIndexing.selectIndexingSettings)),\n withLatestFrom(this.store.select(fromIndexing.getLanguage)),\n withLatestFrom(this.store.select(fromEdgeSupportedLanguages.selectEdgeSupportedLanguages)),\n withLatestFrom(this.store.select(fromIndexing.selectUploadMode)),\n mergeMap(([[[[[{ storeFile }, accountId], indexingSettings], language], languageList], mode]) => {\n if (!accountId || !indexingSettings || !language || !storeFile) {\n return [actions.uploadFileToEdgeFailed({ storeFile, uploadingStateError: UploadingStateError.UploadToEdgeInitFailed })];\n }\n\n const isExcludeAIsEnabled = this.featureSwitchService.featureSwitch(FeatureSwitch.ExcludeAIs);\n\n const customLanguages = getCustomEdgeLanguagesParam(language as ILanguage, languageList);\n const languageSettings = getLanguageParam(language);\n const uploadSettings = convertToEdgeUploadParams(indexingSettings, languageSettings, storeFile, customLanguages);\n const excludeAIParams = isExcludeAIsEnabled ? getExcludeAIsParams(indexingSettings.excludeAIs) : [];\n\n const file = mode === UploadMode.File ? storeFile.fileContent : null;\n\n this.trackService.track('upload_dialog.upload_file_to_edge.started', {\n category: EventCategory.UPLOAD,\n data: { ...getFileTraceData(storeFile), ...getUploadSettingsTraceData(uploadSettings), excludeAIParams }\n });\n\n return this.apiService.EdgeExtensions.uploadFile(accountId, file, uploadSettings, excludeAIParams).pipe(\n mergeMap((event: HttpEvent) => {\n switch (event.type) {\n case HttpEventType.UploadProgress:\n return [\n actions.updateFile({\n fileId: storeFile.id,\n file: { progress: Math.floor((event.loaded / event.total) * UPLOAD_PROCESS_FINISHED_PERCENTAGE) }\n }),\n actions.uploadingFilesInProgress()\n ];\n case HttpEventType.Response:\n this.trackService.track('upload_dialog.upload_file_to_edge.succeeded', {\n category: EventCategory.UPLOAD,\n data: getFileTraceData(storeFile)\n });\n const fileUpdates: Partial = { uploadingState: UploadingState.Completed, progress: UPLOAD_PROCESS_FINISHED_PERCENTAGE };\n return [\n actions.updateFile({\n fileId: storeFile.id,\n file: fileUpdates\n }),\n actions.uploadFileFinished({ file: { ...storeFile, ...fileUpdates } }),\n LibraryActions.loadVideo({ id: event?.body?.id })\n ];\n default:\n return EMPTY;\n }\n }),\n catchError(error => {\n this.trackService.track('upload_dialog.upload_file_to_edge.failed', {\n category: EventCategory.UPLOAD,\n data: { ...getFileTraceData(storeFile), error: error?.error }\n });\n return [actions.uploadFileToEdgeFailed({ storeFile, uploadingStateError: UploadingStateError.UploadToEdgeFailed, error })];\n })\n );\n })\n )\n );\n constructor(\n private logger: LoggerService,\n private actions$: Actions,\n private store: Store,\n private trackService: TrackService,\n private apiService: ApiService,\n private featureSwitchService: FeatureSwitchService\n ) {\n this.init();\n }\n\n private init() {\n this.logger.log('[EdgeUploadEffects] On Init Effects');\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Store } from '@ngrx/store';\n\nimport { switchMap, withLatestFrom, catchError, EMPTY } from 'rxjs';\n\nimport { FeatureSwitchService } from '@common/modules/core/services/feature-switch/feature-switch.service';\nimport { LoggerService } from '@common/modules/core/services/logger/logger.service';\nimport { EventCategory, TrackService } from '@common/modules/core/services/track';\nimport { ApiService } from '@common/modules/api/services/api.service';\nimport { FeatureSwitch } from '@common/modules/core/services/interfaces';\n\nimport { ExcludeAIsHelperService } from './../../services/exclude-ais-helper.service';\nimport { IndexingMode } from '../../interfaces';\nimport { IState } from '../reducers/index';\nimport * as fromCore from '../../../core/selectors';\nimport * as actions from '../actions';\nimport * as fromIndexing from '../selectors';\nimport * as fromCustomizationData from '../../../customization-data/selectors';\n\n@Injectable()\nexport class IndexingFormEffects {\n public loadSupportedAIs$ = createEffect(() =>\n this.actions$.pipe(\n ofType(actions.loadSupportedAIs),\n withLatestFrom(this.store.select(fromIndexing.selectIndexingPreset)),\n withLatestFrom(this.store.select(fromCore.selectCurrentAccountId)),\n withLatestFrom(this.store.select(fromCore.isAccountLimitedWithFaces)),\n withLatestFrom(this.store.select(fromIndexing.selectExcludeAIs)),\n withLatestFrom(this.store.select(fromIndexing.selectIndexingMode)),\n withLatestFrom(this.store.select(fromIndexing.isUploadInProgress)),\n switchMap(([[[[[[, preset], accountId], isAccountFaceGated], excludeAIs], indexingMode], isUploadInProgress]) => {\n if (!this.isExcludeAIsEnabled || (indexingMode === IndexingMode.Upload && isUploadInProgress)) {\n return EMPTY;\n }\n\n return this.apiService.Account.getAccountSupportedAIs(accountId, { indexingPreset: preset }).pipe(\n switchMap((supportedAIs: Microsoft.VideoIndexer.Contracts.SupportedAIsContract) => {\n this.trackService.track('indexing_form_effect.load_supported_ais.success', { category: EventCategory.INDEXING_FORM });\n\n const supportedAIsMap = this.excludeAIsHelperService.getSupportedAIsMap(supportedAIs.aIs, preset, isAccountFaceGated, excludeAIs);\n\n // reset the exclude AIs list if the preset is changed.\n // add only the face gated AIs (if the account is not face gated, the face gated AIs list will be empty)\n this.store.dispatch(\n actions.updateIndexingSettings({\n settings: { excludeAIs: [...excludeAIs, ...this.excludeAIsHelperService.faceGatedAIs] },\n isDirty: false\n })\n );\n\n return [actions.updateSupportedAIs({ supportedAIs: supportedAIsMap })];\n }),\n catchError(error => {\n this.trackService.track('indexing_form_effect.load_supported_ais.failed', { category: EventCategory.INDEXING_FORM, data: error });\n return [actions.loadSupportedAIsFailed()];\n })\n );\n })\n )\n );\n\n public updateSupportedAIsForIndexing$ = createEffect(() =>\n this.actions$.pipe(\n ofType(actions.updateSupportedAIs),\n withLatestFrom(this.store.select(fromIndexing.selectIndexingMode)),\n switchMap(([{ supportedAIs }, mode]) => {\n if (mode === IndexingMode.Upload) {\n return [actions.updateUploadSupportedAIs({ supportedAIs })];\n } else if (mode === IndexingMode.ReIndex) {\n return [actions.updateReIndexSupportedAIs({ supportedAIs })];\n }\n })\n )\n );\n\n public updateSupportedAIsStatus$ = createEffect(() =>\n this.actions$.pipe(\n ofType(actions.updateSupportedAIsState),\n withLatestFrom(this.store.select(fromIndexing.selectIndexingMode)),\n switchMap(([{ supportedAIs }, mode]) => {\n if (mode === IndexingMode.Upload) {\n return [actions.updateUploadSupportedAIsState({ supportedAIs })];\n } else if (mode === IndexingMode.ReIndex) {\n return [actions.updateReIndexSupportedAIsState({ supportedAIs })];\n }\n })\n )\n );\n\n public updateIndexingSettings$ = createEffect(() =>\n this.actions$.pipe(\n ofType(actions.updateIndexingSettings),\n withLatestFrom(this.store.select(fromIndexing.selectIndexingMode)),\n withLatestFrom(this.store.select(fromIndexing.selectLogoGroupId)),\n withLatestFrom(this.store.select(fromCustomizationData.selectLogoGroups)),\n withLatestFrom(this.store.select(fromCustomizationData.isLogoGroupsLoaded)),\n switchMap(([[[[{ settings }, mode], selectLogoGroupId], logoGroups], isLogoGroupsLoaded]) => {\n const actionsList = [];\n if (mode === IndexingMode.Upload) {\n this.trackService.track('upload_dialog.indexing_form_effect.set_indexing_data', { category: EventCategory.UPLOAD, data: settings });\n actionsList.push(actions.updateUploadIndexingSettings({ settings }));\n } else if (mode === IndexingMode.ReIndex) {\n this.trackService.track('re_index_dialog.indexing_form_effect.set_indexing_data', { category: EventCategory.RE_INDEX, data: settings });\n actionsList.push(actions.updateReIndexIndexingSettings({ settings }));\n }\n\n if (isLogoGroupsLoaded && logoGroups?.length && !selectLogoGroupId) {\n actionsList.push(actions.updateIndexingSettings({ settings: { logoGroupId: logoGroups[0]?.id } }));\n }\n\n return actionsList;\n })\n )\n );\n\n private isExcludeAIsEnabled: boolean = false;\n constructor(\n private logger: LoggerService,\n private actions$: Actions,\n private store: Store,\n private trackService: TrackService,\n private apiService: ApiService,\n private featureSwitchService: FeatureSwitchService,\n private excludeAIsHelperService: ExcludeAIsHelperService\n ) {\n this.logger.log('[IndexingFormEffects] On Init Effects');\n this.isExcludeAIsEnabled = this.featureSwitchService.featureSwitch(FeatureSwitch.ExcludeAIs);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\n\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Store } from '@ngrx/store';\n\nimport { switchMap, EMPTY, catchError, of, take, delay, withLatestFrom } from 'rxjs';\n\nimport { FeatureSwitch, NavigationState } from '@common/modules/core/services/interfaces';\nimport { FeatureSwitchService } from '@common/modules/core/services/feature-switch/feature-switch.service';\nimport { DialogService } from '@common/modules/shared/components/dialog/dialog.service';\nimport { ApiService } from '@common/modules/api/services/api.service';\nimport { IDialogData } from '@common/modules/shared/components/dialog/interfaces';\nimport * as MediaActions from '@common/modules/media-data-common/actions/media.actions';\nimport { guid } from '@common/modules/utils/string';\nimport { DialogComponent } from '@common/modules/shared/components/dialog/dialog.component';\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\nimport { EventCategory, TrackService } from '@common/modules/core/services/track';\nimport { AppNavigationService } from '@common/modules/core/services/app/app-navigation.service';\nimport { TRANSLATION_DELAY } from '@common/modules/translation/variables';\n\nimport { UIShellActionType } from '../../../shell/interfaces';\nimport { defaultLangKey } from './../../../core/languages';\nimport * as PersonModelActions from '../../../customization-data/actions/person-model.actions';\nimport * as LogoGroupsActions from '../../../customization-data/actions/logo-groups.actions';\nimport * as IndexingActions from '../actions';\nimport * as fromIndexing from '../selectors';\nimport * as fromLanguageId from './../../../customization-data/selectors/language-id.selectors';\nimport * as fromCore from '../../../core/selectors';\nimport * as fromCustomization from '../../../customization-data/selectors';\nimport * as GalleryActions from '../../../gallery/core/actions/gallery.actions';\nimport * as fromGallery from '../../../gallery/core/selectors';\nimport { IIndexingSettings, IndexingMode } from '../../interfaces';\nimport { resources } from '../../resources';\nimport { IState } from '../reducers/index';\nimport { ReIndexDialogComponent } from '../../components/re-index/re-index-dialog/re-index-dialog.component';\nimport {\n convertToReIndexParams,\n getCustomLanguageModelParam,\n getExcludeSensitiveAIsParams,\n getLanguageParam,\n getCustomLanguagesParam,\n getExcludeAIsParams\n} from './utils/indexing-utils';\nimport { CoreStoreService } from '../../../core/services/core-store.service';\nimport { FailureCode } from '../../components/re-index/interfaces';\nimport { getReIndexErrorType } from './utils/indexing-error-utils';\n\nimport SinglePlaylistSearchResultV2 = Microsoft.VideoIndexer.Contracts.SinglePlaylistSearchResultV2;\n\n@Injectable()\nexport class ReIndexEffects {\n public reIndexDialogRef: MatDialogRef;\n public readonly HANDLE_RE_INDEX_SUCCESS = 750;\n\n public openReIndexDialog$ = createEffect(() =>\n this.actions$.pipe(\n ofType(IndexingActions.openReIndexDialog),\n switchMap(({ videoId }) => of(videoId).pipe(withLatestFrom(this.store.select(fromGallery.selectVideo(videoId))))),\n withLatestFrom(this.store.select(fromCore.selectCurrentAccountId)),\n withLatestFrom(this.store.select(fromCustomization.isPeopleModelsLoaded)),\n withLatestFrom(this.store.select(fromCustomization.isLogoGroupsLoaded)),\n switchMap(([[[[videoId, video], accountId], isPeopleModelsLoaded], isLogoGroupsLoaded]) => {\n if (this.featureSwitchService.featureSwitch(FeatureSwitch.NewUploadExperience)) {\n if (!isPeopleModelsLoaded) {\n this.store.dispatch(PersonModelActions.loadPersonModels({}));\n }\n if (!isLogoGroupsLoaded) {\n this.store.dispatch(LogoGroupsActions.logoGroupsLoad());\n }\n this.store.dispatch(IndexingActions.resetIndexingViewState());\n this.store.dispatch(IndexingActions.resetReIndexState());\n this.store.dispatch(IndexingActions.loadVideoIndex());\n this.openReIndexDialog();\n this.store.dispatch(IndexingActions.updateIndexingMode({ mode: IndexingMode.ReIndex }));\n return this.apiService.Account.Video.getVideoIndex(accountId, videoId).pipe(\n switchMap(videoIndex => {\n if (videoIndex?.videos[0] && videoIndex.videos[0].failureCode === FailureCode.VIDEO_URL_UNREACHABLE) {\n this.trackService.track('re_index_dialog.get_video_index.succeeded.video_url_unreachable', {\n category: EventCategory.RE_INDEX\n });\n return [IndexingActions.getVideoIndexFailed({ errorType: FailureCode.VIDEO_URL_UNREACHABLE })];\n }\n\n this.trackService.track('re_index_dialog.get_video_index.succeeded', { category: EventCategory.RE_INDEX });\n const streamingPreset = (video as SinglePlaylistSearchResultV2).streamingPreset;\n const reviewState = videoIndex?.videos[0]?.reviewState;\n const moderationState = videoIndex?.videos[0]?.moderationState;\n\n return [\n IndexingActions.initReIndexIndexingSettings({ videoIndex, streamingPreset, reviewState, moderationState }),\n IndexingActions.initVideoId({ videoId }),\n IndexingActions.loadSupportedAIs(),\n IndexingActions.validateReIndexSettingReady()\n ];\n }),\n catchError(error => {\n this.trackService.track('re_index_dialog.get_video_index.failed', { category: EventCategory.RE_INDEX, data: { error: error?.error } });\n return [IndexingActions.getVideoIndexFailed({ errorType: getReIndexErrorType(error) })];\n })\n );\n }\n\n return EMPTY;\n })\n )\n );\n\n public checkReIndexAdvancedSettings$ = createEffect(() =>\n this.actions$.pipe(\n ofType(IndexingActions.validateReIndexSettingReady),\n withLatestFrom(this.store.select(fromCustomization.isPeopleModelsLoaded)),\n withLatestFrom(this.store.select(fromCustomization.isPeopleModelsLoading)),\n withLatestFrom(this.store.select(fromCustomization.isLogoGroupsLoaded)),\n withLatestFrom(this.store.select(fromCustomization.isLogoGroupsLoading)),\n withLatestFrom(this.store.select(fromIndexing.isSupportedAIsLoaded)),\n switchMap(([[[[[, isPeopleModelsLoaded], isPeopleModelsLoading], isLogoGroupsLoaded], isLogoGroupsLoading], isSupportedAIsLoaded]) => {\n const isSupportedAIsStatusVerified = !this.featureSwitchService.featureSwitch(FeatureSwitch.ExcludeAIs) || isSupportedAIsLoaded;\n if (isPeopleModelsLoaded && isLogoGroupsLoaded && isSupportedAIsStatusVerified) {\n return [IndexingActions.updateReIndexIndexingAdvancedSettings()];\n }\n if (!isPeopleModelsLoading && !isPeopleModelsLoaded) {\n this.store.dispatch(PersonModelActions.loadPersonModels({}));\n }\n if (!isLogoGroupsLoading && !isLogoGroupsLoaded) {\n this.store.dispatch(LogoGroupsActions.logoGroupsLoad());\n }\n\n // wait for people models, logo groups and supported AIs to be loaded. Delay of 1 second and call this effect again\n setTimeout(() => {\n this.store.dispatch(IndexingActions.validateReIndexSettingReady());\n }, 1000);\n\n return EMPTY;\n })\n )\n );\n\n public checkReIndexSettings$ = createEffect(() =>\n this.actions$.pipe(\n ofType(IndexingActions.updateReIndexIndexingAdvancedSettings),\n withLatestFrom(this.store.select(fromIndexing.selectVideoIndex)),\n withLatestFrom(this.store.select(fromCustomization.getPeopleModels)),\n withLatestFrom(this.store.select(fromCustomization.selectLogoGroups)),\n withLatestFrom(this.store.select(fromCustomization.getTrainedLanguageModels)),\n withLatestFrom(this.store.select(fromCustomization.getTrainedSpeechModels)),\n switchMap(([[[[[, videoIndex], peopleModels], logoGroups], languagesModels], speechModels]) => {\n let actions = [];\n const updatedIndexingSettings: Partial = {};\n // set default person model when the model has not found\n updatedIndexingSettings.peopleModelId = peopleModels.find(model => model.id === videoIndex?.videos[0].personModelId)\n ? videoIndex?.videos[0].personModelId\n : '';\n\n updatedIndexingSettings.logoGroupId = logoGroups.find(group => group.id === videoIndex?.videos[0].logoGroupId)\n ? videoIndex?.videos[0].logoGroupId\n : '';\n const videoLangModelId = videoIndex?.videos[0].linguisticModelId;\n // set default language id model when the file was indexed with model and the model has not found\n if (videoLangModelId !== guid(0)) {\n const languageModel = languagesModels.find(model => model.languageModelId === videoLangModelId);\n const speechModel = speechModels.find(model => model.id === videoLangModelId);\n if (!languageModel && !speechModel) {\n updatedIndexingSettings.languageId = defaultLangKey;\n actions.push(IndexingActions.updateOriginalLanguageId({ languageId: defaultLangKey }));\n }\n }\n // set default texts for metadata and description when they are empty\n updatedIndexingSettings.metadata = videoIndex?.videos[0].metadata ?? resources?.NoMetadata;\n updatedIndexingSettings.description = videoIndex?.description ?? resources?.NoDescription;\n\n actions = actions.concat([\n IndexingActions.updateReIndexIndexingSettings({\n settings: updatedIndexingSettings\n }),\n IndexingActions.indexingSettingsLoaded()\n ]);\n return actions;\n })\n )\n );\n\n public reIndexVideo$ = createEffect(() =>\n this.actions$.pipe(\n ofType(IndexingActions.reIndexVideo),\n withLatestFrom(this.store.select(fromIndexing.selectVideoId)),\n withLatestFrom(this.store.select(fromCore.selectCurrentAccountId)),\n withLatestFrom(this.store.select(fromIndexing.selectIndexingSettings)),\n withLatestFrom(this.store.select(fromIndexing.getLanguage)),\n withLatestFrom(this.store.select(fromLanguageId.selectSelectedLanguagesKeys)),\n switchMap(([[[[[, videoId], accountId], indexingSettings], language], selectSelectedLanguagesKeys]) => {\n this.trackService.track('re_index_dialog.re_index_button.clicked', { category: EventCategory.RE_INDEX });\n const isExcludeAIsEnabled = this.featureSwitchService.featureSwitch(FeatureSwitch.ExcludeAIs);\n\n const languageSettings = getLanguageParam(language);\n const languageModelSettings = getCustomLanguageModelParam(language);\n const customLanguagesSettings = getCustomLanguagesParam(language, selectSelectedLanguagesKeys);\n const reIndexParams = convertToReIndexParams(indexingSettings, languageSettings, languageModelSettings, customLanguagesSettings);\n const excludedAIs = isExcludeAIsEnabled ? getExcludeAIsParams(indexingSettings.excludeAIs) : getExcludeSensitiveAIsParams(indexingSettings);\n this.trackService.track('re_index_dialog.re_index.started', { category: EventCategory.RE_INDEX, data: { ...reIndexParams, excludedAIs } });\n return this.apiService.Account.Video.reIndex(accountId, videoId, reIndexParams, undefined, excludedAIs).pipe(\n // Handle re-index response with delay so get processing will be with updated result\n delay(this.HANDLE_RE_INDEX_SUCCESS),\n switchMap(() => {\n if (!isExcludeAIsEnabled) {\n this.reIndexDialogRef.close();\n }\n this.trackService.track('re_index_dialog.re_index.succeeded', { category: EventCategory.RE_INDEX });\n return [\n IndexingActions.reIndexVideoSucceeded(),\n GalleryActions.loadProcessingVideoOrProjectById({ id: videoId }),\n MediaActions.removeMediaIndex({ id: videoId })\n ];\n }),\n catchError(error => {\n this.trackService.track('re_index_dialog.re_index.failed', { category: EventCategory.RE_INDEX, data: { error: error?.error } });\n return [IndexingActions.reIndexVideoFailed({ errorType: getReIndexErrorType(error) })];\n })\n );\n })\n )\n );\n\n constructor(\n private actions$: Actions,\n private store: Store,\n private featureSwitchService: FeatureSwitchService,\n private dialogService: DialogService,\n private coreStoreService: CoreStoreService,\n private apiService: ApiService,\n private trackService: TrackService,\n private translate: TranslateHelperService,\n private navigationService: AppNavigationService\n ) {\n setTimeout(() => {\n this.init();\n }, TRANSLATION_DELAY);\n }\n\n private init() {\n this.translate.translateResourcesInstant(resources);\n }\n\n private openReIndexDialog() {\n const reIndexDialogData: IDialogData = {\n class: 're-index-dialog',\n component: ReIndexDialogComponent,\n hideHeader: true\n };\n\n const dialogWidth = this.featureSwitchService.featureSwitch(FeatureSwitch.ExcludeAIs) ? '980px' : '840px';\n\n this.reIndexDialogRef = this.dialogService.openDialog(\n reIndexDialogData,\n dialogWidth,\n '800px',\n 're-index-dialog-container',\n true,\n true,\n 'auto',\n true\n );\n this.initDialogCloseEvent();\n this.trackService.track('re_index_dialog.init', { category: EventCategory.RE_INDEX });\n }\n\n private initDialogCloseEvent() {\n this.reIndexDialogRef.componentInstance.actionChange.pipe(take(1)).subscribe(event => {\n this.trackService.track('re_index_dialog.closed', { category: EventCategory.RE_INDEX });\n if (event.dialogEventData?.customizationPageToNavigate) {\n this.coreStoreService.navigateToCustomization(event.dialogEventData.customizationPageToNavigate);\n this.trackService.track('re_index_dialog.navigate', {\n category: EventCategory.RE_INDEX,\n data: { page: event.dialogEventData.customizationPageToNavigate }\n });\n }\n\n if (event.dialogEventData?.navigateToCreateAccount) {\n this.navigationService.createAccountSubject.next(NavigationState.OPEN);\n this.trackService.track('re_index_dialog.navigate', {\n category: EventCategory.RE_INDEX,\n data: { page: UIShellActionType.CREATE_ACCOUNT }\n });\n }\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpEvent, HttpEventType } from '@angular/common/http';\nimport { MatDialogRef, MatDialogState } from '@angular/material/dialog';\n\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Store } from '@ngrx/store';\n\nimport { switchMap, EMPTY, catchError, mergeMap, tap, withLatestFrom, take } from 'rxjs';\n\nimport { guid } from '@common/modules/utils/string';\nimport { NotificationLevel } from '@common/modules/core/services/toast/interfaces';\nimport { FeatureSwitchService } from '@common/modules/core/services/feature-switch/feature-switch.service';\nimport { LoggerService } from '@common/modules/core/services/logger/logger.service';\nimport { DialogService } from '@common/modules/shared/components/dialog/dialog.service';\nimport { IDialogData } from '@common/modules/shared/components/dialog/interfaces';\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\nimport { IApiSasContract, IUploadRequestParams } from '@common/modules/api/interfaces';\nimport { NotificationsService } from '@common/modules/notifications/services/notifications.service';\nimport { INotification, NotificationType, NotificationIcon } from '@common/modules/core/services/toast/interfaces';\nimport { FeatureSwitch, NavigationState } from '@common/modules/core/services/interfaces';\nimport { AppNavigationService } from '@common/modules/core/services/app/app-navigation.service';\nimport { DialogComponent } from '@common/modules/shared/components/dialog/dialog.component';\nimport { EventCategory, TrackService } from '@common/modules/core/services/track';\nimport { APIErrors, Errors } from '@common/modules/core/services/toast/errors';\nimport { UtilsService } from '@common/modules/shared/services/utils.service';\n\nimport { CoreStoreService } from './../../../core/services/core-store.service';\nimport { IFile, IndexingMode, UploadingState, UploadingStateError, UploadMode } from './../../interfaces';\nimport { IState } from './../reducers/index';\nimport { UploadDialogComponent } from '../../components/upload/upload-dialog/upload-dialog.component';\nimport * as actions from '../actions';\nimport * as fromIndexing from '../selectors';\nimport * as fromLanguageId from './../../../customization-data/selectors/language-id.selectors';\nimport * as fromCore from '../../../core/selectors';\nimport * as LibraryActions from '../../../gallery/core/actions/library.actions';\nimport { AzureBlobStorageService } from '../../services/azure-blob-storage.service';\nimport { UploadService } from '../../services/upload.service';\nimport { IFileBlob } from '../../interfaces';\nimport {\n getFSFileUploadBatchActions,\n getURLFileUploadBatchActions,\n getLanguageParam,\n getCustomLanguageModelParam,\n convertToUploadParams,\n UPLOAD_TO_BLOB_STORAGE_COMPLETED_PERCENTAGE,\n UPLOAD_PROCESS_FINISHED_PERCENTAGE,\n getExcludeSensitiveAIsParams,\n isUrlAlreadyAdded,\n MAX_FILE_SIZE_URL,\n getFileTraceData,\n getUploadSettingsTraceData,\n getCustomLanguagesParam,\n HTML_CONTENT_TYPE,\n getExcludeAIsParams\n} from './utils/indexing-utils';\nimport {\n getUploadErrorType,\n getNotification,\n getFileErrorNotification,\n getQuotaExceededNotification,\n getUploadFilesFailedNotification,\n FILES_UPLOAD_FAILED_NOTIFICATION_TITLE,\n FILE_UPLOAD_FAILED_NOTIFICATION_TITLE\n} from './utils/indexing-error-utils';\nimport { UIShellActionType } from '../../../shell/interfaces';\nimport { IndexingStoreService } from '../../services/indexing-store.service';\nimport { FileHelperService } from '../../services/file-helper.service';\nimport { EdgeExtensionsStoreService } from '../../../core/services/edge-extensions-store.service';\nimport { getEdgeUploadBatchActions } from './utils/edge-indexing-utils';\n@Injectable()\nexport class UploadEffects {\n public uploadDialogRef: MatDialogRef;\n public uploadProgressNotification: INotification;\n\n public openUploadDialog$ = createEffect(() =>\n this.actions$.pipe(\n ofType(actions.openUploadDialog),\n withLatestFrom(this.store.select(fromIndexing.isUploadInProgress)),\n switchMap(([, isUploadInProgress]) => {\n const consent = this.uploadService.hasUserConsent;\n\n if (!this.featureSwitchService.featureSwitch(FeatureSwitch.NewUploadExperience)) {\n return EMPTY;\n }\n\n if (!isUploadInProgress) {\n this.store.dispatch(actions.initUploadDialogState({ indexingSettings: {} }));\n this.store.dispatch(actions.resetIndexingViewState());\n // Trigger init only when upload is not taken place in the background\n this.trackService.track('upload_dialog.init', { category: EventCategory.UPLOAD });\n }\n\n this.openUploadDialog();\n\n return [actions.updateUserConsent({ consent }), actions.updateIndexingMode({ mode: IndexingMode.Upload }), actions.loadSupportedAIs()];\n })\n )\n );\n\n public updateUserConsent$ = createEffect(() =>\n this.actions$.pipe(\n ofType(actions.updateUserConsent),\n switchMap(({ consent }) => {\n this.uploadService.updateUserConsent(consent);\n return [actions.updateUserConsentSuccess({ consent })];\n })\n )\n );\n\n public updateUseSavedIndexingSettings$ = createEffect(() =>\n this.actions$.pipe(\n ofType(actions.updateUseSavedIndexingSettings),\n withLatestFrom(this.store.select(fromCore.selectCurrentAccountId)),\n switchMap(([{ use }, accountId]) => {\n const indexingSettings = use ? this.uploadService.getSavedIndexingSettings(accountId) : {};\n\n return [actions.initUploadDialogState({ indexingSettings }), actions.loadSupportedAIs()];\n })\n )\n );\n\n public uploadFiles$ = createEffect(() =>\n this.actions$.pipe(\n ofType(actions.uploadFiles),\n switchMap(() => {\n return [actions.initiateUploadFiles()];\n })\n )\n );\n\n public uploadFilesIterator$ = createEffect(() =>\n this.actions$.pipe(\n ofType(actions.initiateUploadFiles, actions.uploadFileFinished),\n withLatestFrom(this.store.select(fromIndexing.selectUploadMode)),\n withLatestFrom(this.store.select(fromIndexing.getAllValidFiles)),\n switchMap(([[, mode], files]) => {\n let uploadBatchActions = [];\n if (files.length) {\n const idleFiles = files.filter(file => file.uploadingState === UploadingState.Idle);\n const inProgressFilesCount = files.filter(file => file.uploadingState === UploadingState.InProgress).length;\n if (idleFiles.length === files.length) {\n this.trackService.track('upload_dialog.upload_files.started', { category: EventCategory.UPLOAD, data: { filesCount: files.length } });\n }\n // if there are more files to upload, get the next batch of files to upload\n if (idleFiles.length) {\n if (this.hasSelectedEdgeExtension) {\n uploadBatchActions = getEdgeUploadBatchActions(idleFiles, inProgressFilesCount);\n } else if (mode === UploadMode.File) {\n uploadBatchActions = getFSFileUploadBatchActions(idleFiles, inProgressFilesCount);\n } else if (mode === UploadMode.URL) {\n // Upload Mode URL\n uploadBatchActions = getURLFileUploadBatchActions(idleFiles, inProgressFilesCount);\n }\n } else if (!inProgressFilesCount) {\n // All files have been uploaded / failed\n const failedUploads = files.filter(file => file.uploadingState === UploadingState.Failed).length;\n const successfulUploads = files.filter(file => file.uploadingState === UploadingState.Completed).length;\n this.trackService.track('upload_dialog.upload_files.finished', {\n category: EventCategory.UPLOAD,\n data: { filesCount: files.length, failedUploads, successfulUploads }\n });\n return [actions.uploadFilesFinished()];\n } else {\n // Max number of concurrent files are still being uploaded, do nothing\n return EMPTY;\n }\n return uploadBatchActions;\n }\n\n return EMPTY;\n })\n )\n );\n\n public getSasURL$ = createEffect(() =>\n this.actions$.pipe(\n ofType(actions.getFileSas),\n withLatestFrom(this.store.select(fromCore.selectCurrentAccountId)),\n mergeMap(([{ storeFile }, accountId]) => {\n if (!storeFile || !accountId) {\n return [actions.getFileSasFailed({ storeFile, uploadingStateError: UploadingStateError.GetSasInitFailed })];\n }\n this.trackService.track('upload_dialog.get_sas.started', {\n category: EventCategory.UPLOAD,\n data: getFileTraceData(storeFile)\n });\n const filename = storeFile.fileContent?.name || storeFile.name;\n return this.uploadService.getSas(accountId, filename, storeFile.size).pipe(\n mergeMap((sas: IApiSasContract) => {\n const file: IFileBlob = this.azureBlobService.generateFile(storeFile.fileContent);\n file.baseUrl = sas.baseUrl;\n file.sasToken = sas.sasToken;\n file.blobPath = sas.baseUrl + sas.sasToken;\n this.trackService.track('upload_dialog.get_sas.succeeded', {\n category: EventCategory.UPLOAD,\n data: getFileTraceData(storeFile)\n });\n return [actions.getFileSasSuccess({ blobFile: file, sas, storeFile })];\n }),\n catchError(error => {\n this.trackService.track('upload_dialog.get_sas.failed', {\n category: EventCategory.UPLOAD,\n data: { ...getFileTraceData(storeFile), error: error?.error }\n });\n return [actions.getFileSasFailed({ storeFile, uploadingStateError: UploadingStateError.GetSasFailed, error })];\n })\n );\n })\n )\n );\n\n public uploadToBlobStorage$ = createEffect(() =>\n this.actions$.pipe(\n ofType(actions.getFileSasSuccess),\n withLatestFrom(this.store.select(fromCore.selectCurrentAccountId)),\n mergeMap(([{ blobFile, sas, storeFile }, accountId]) => {\n if (!blobFile || !accountId || !sas || !storeFile) {\n return [actions.uploadFileToBlobStorageFailed({ storeFile, uploadingStateError: UploadingStateError.BlobStorageInitFailed })];\n }\n this.trackService.track('upload_dialog.upload_to_blob_storage.started', {\n category: EventCategory.UPLOAD,\n data: getFileTraceData(storeFile)\n });\n return this.azureBlobService.uploadToBlobStorage(blobFile, sas).pipe(\n mergeMap((event: HttpEvent) => {\n switch (event.type) {\n case HttpEventType.UploadProgress:\n // Update progress up to 99% for the azure blob upload phase\n return [\n actions.updateFile({\n fileId: storeFile.id,\n file: { progress: Math.floor((event.loaded / event.total) * UPLOAD_TO_BLOB_STORAGE_COMPLETED_PERCENTAGE) }\n }),\n actions.uploadingFilesInProgress()\n ];\n case HttpEventType.Response:\n this.trackService.track('upload_dialog.upload_to_blob_storage.succeeded', {\n category: EventCategory.UPLOAD,\n data: getFileTraceData(storeFile)\n });\n return [actions.uploadFileToBlobStorageSuccess({ storeFile, fileUrl: blobFile.blobPath })];\n default:\n return EMPTY;\n }\n }),\n catchError(error => {\n this.trackService.track('upload_dialog.upload_to_blob_storage.failed', {\n category: EventCategory.UPLOAD,\n data: { ...getFileTraceData(storeFile), error }\n });\n return [actions.uploadFileToBlobStorageFailed({ storeFile, uploadingStateError: UploadingStateError.BlobStorageFailed, error })];\n })\n );\n })\n )\n );\n\n public uploadFileToBlobStorageSuccess$ = createEffect(() =>\n this.actions$.pipe(\n ofType(actions.uploadFileToBlobStorageSuccess),\n mergeMap(({ fileUrl, storeFile }) => {\n return [actions.uploadFileToServer({ storeFile, fileUrl })];\n })\n )\n );\n\n public uploadFilesToServer$ = createEffect(() =>\n this.actions$.pipe(\n ofType(actions.uploadFileToServer),\n withLatestFrom(this.store.select(fromCore.selectCurrentAccountId)),\n withLatestFrom(this.store.select(fromIndexing.selectIndexingSettings)),\n withLatestFrom(this.store.select(fromIndexing.getLanguage)),\n withLatestFrom(this.store.select(fromLanguageId.selectSelectedLanguagesKeys)),\n mergeMap(([[[[{ storeFile, fileUrl, contentMD5 }, accountId], indexingSettings], language], selectSelectedLanguagesKeys]) => {\n if (!fileUrl || !accountId || !indexingSettings || !language || !storeFile) {\n return [actions.uploadFileToServerFailed({ storeFile, uploadingStateError: UploadingStateError.UploadToServerInitFailed })];\n }\n\n const isExcludeAIsEnabled = this.featureSwitchService.featureSwitch(FeatureSwitch.ExcludeAIs);\n\n const languageSettings = getLanguageParam(language);\n const customLanguagesSettings = getCustomLanguagesParam(language, selectSelectedLanguagesKeys);\n const languageModelSettings = getCustomLanguageModelParam(language);\n const excludeAIParams = isExcludeAIsEnabled\n ? getExcludeAIsParams(indexingSettings.excludeAIs)\n : getExcludeSensitiveAIsParams(indexingSettings);\n const uploadSettings: IUploadRequestParams = convertToUploadParams(\n accountId,\n indexingSettings,\n languageSettings,\n languageModelSettings,\n storeFile,\n fileUrl,\n customLanguagesSettings\n );\n\n this.uploadService.setSavedIndexingSettings(accountId, {\n brandsCategories: indexingSettings.brandsCategories,\n indexingPreset: indexingSettings.indexingPreset,\n excludeAIs: indexingSettings.excludeAIs,\n languageId: indexingSettings.languageId,\n peopleModelId: indexingSettings.peopleModelId,\n privacy: indexingSettings.privacy,\n streamingPreset: indexingSettings.streamingPreset,\n excludeRAI: indexingSettings.excludeRAI,\n logoGroupId: indexingSettings.logoGroupId\n });\n\n this.trackService.track('upload_dialog.upload_file_to_server.started', {\n category: EventCategory.UPLOAD,\n data: { ...getFileTraceData(storeFile), ...getUploadSettingsTraceData(uploadSettings), excludeAIParams }\n });\n return this.uploadService.uploadToServer(accountId, uploadSettings, contentMD5, excludeAIParams).pipe(\n mergeMap((res: Microsoft.VideoIndexer.Contracts.SinglePlaylistSearchResultV2) => {\n this.trackService.track('upload_dialog.upload_file_to_server.succeeded', {\n category: EventCategory.UPLOAD,\n data: getFileTraceData(storeFile)\n });\n const fileUpdates: Partial = { uploadingState: UploadingState.Completed, progress: UPLOAD_PROCESS_FINISHED_PERCENTAGE };\n return [\n actions.updateFile({\n fileId: storeFile.id,\n file: fileUpdates\n }),\n actions.uploadFileFinished({ file: { ...storeFile, ...fileUpdates } }),\n LibraryActions.loadVideo({ id: res.id })\n ];\n }),\n catchError(error => {\n this.trackService.track('upload_dialog.upload_file_to_server.failed', {\n category: EventCategory.UPLOAD,\n data: { ...getFileTraceData(storeFile), error: error?.error }\n });\n return [actions.uploadFileToServerFailed({ storeFile, uploadingStateError: UploadingStateError.UploadToServerFailed, error })];\n })\n );\n })\n )\n );\n\n public onUploadFailed$ = createEffect(() =>\n this.actions$.pipe(\n ofType(actions.getFileSasFailed, actions.uploadFileToBlobStorageFailed, actions.uploadFileToServerFailed, actions.uploadFileToEdgeFailed),\n mergeMap(({ storeFile, uploadingStateError, error }) => {\n const uploadingErrorType = getUploadErrorType(error);\n const notificationAction = [];\n // Exceed quota has it's own toast effect\n if (uploadingErrorType !== APIErrors.ACCOUNT_UPLOAD_QUOTA_EXCEEDED) {\n notificationAction.push(actions.showUploadFailedToast({ file: storeFile, errorType: uploadingErrorType }));\n }\n return [\n actions.updateFile({\n fileId: storeFile.id,\n file: {\n uploadingState: UploadingState.Failed,\n uploadingStateError,\n progress: UPLOAD_PROCESS_FINISHED_PERCENTAGE,\n uploadingErrorType\n }\n }),\n actions.uploadFileFinished({ file: storeFile }),\n ...notificationAction\n ];\n })\n )\n );\n\n public addFilesForUpload$ = createEffect(() =>\n this.actions$.pipe(\n ofType(actions.addUploadFiles),\n withLatestFrom(this.store.select(fromIndexing.selectedFilesForUploadCount)),\n switchMap(([{ files: newFiles }, existingFilesCount]) => {\n // Take the top new files that are not exceeding the limit\n let topNewFiles = newFiles.slice(0, this.fileHelperService.maxVideosLimit - existingFilesCount);\n if (!topNewFiles.length) {\n return EMPTY;\n }\n topNewFiles = topNewFiles.map(file => ({ ...file, uploadingState: UploadingState.Idle }));\n\n return [actions.addUploadFilesSuccess({ files: topNewFiles })];\n })\n )\n );\n\n public addUrlFileForUpload$ = createEffect(() =>\n this.actions$.pipe(\n ofType(actions.addUrlFileForUpload),\n withLatestFrom(this.store.select(fromCore.selectCurrentAccountId)),\n withLatestFrom(this.store.select(fromIndexing.getAllValidFiles)),\n switchMap(([[{ file }, accountId], files]) => {\n this.trackService.track('upload_dialog.add_url.started', {\n category: EventCategory.UPLOAD\n });\n if (!accountId || !file.url) {\n return EMPTY;\n }\n\n if (isUrlAlreadyAdded(file.url, files)) {\n return [actions.urlValidationFailed({ errorType: APIErrors.ALREADY_EXISTS })];\n }\n\n return this.uploadService.getVideoInfo(accountId, file.url).pipe(\n switchMap(res => {\n // https://learn.microsoft.com/en-us/rest/api/storageservices/get-blob?tabs=azure-ad#request-headers\n // This header is returned only for blob storage URLs and if the blob has an MD5 hash.\n const contentMD5 = res && res.headers.has('Content-MD5') ? res.headers.get('Content-MD5') : undefined;\n const contentType = res?.body?.contentType;\n file = { ...file, size: res?.body?.length || 0 };\n // Check URL content size\n if (file.size > MAX_FILE_SIZE_URL) {\n this.trackService.track('upload_dialog.add_url.failed', {\n category: EventCategory.UPLOAD,\n data: { error: Errors.VIDEO_UPLOAD_LIMIT_EXCEEDED }\n });\n return [actions.urlValidationFailed({ errorType: APIErrors.VIDEO_UPLOAD_LIMIT_EXCEEDED })];\n }\n // Check URL content type doesn't contain HTML\n if (contentType === HTML_CONTENT_TYPE) {\n return [actions.urlValidationFailed({ errorType: APIErrors.URL_UNREACHABLE })];\n }\n\n this.trackService.track('upload_dialog.add_url.succeeded', {\n category: EventCategory.UPLOAD\n });\n return [actions.getVideoInfoSuccess({ file, contentMD5 })];\n }),\n catchError(error => {\n this.trackService.track('upload_dialog.add_url.failed', {\n category: EventCategory.UPLOAD,\n data: { error: error?.error }\n });\n return [actions.getVideoInfoFailed({ errorType: error?.error?.ErrorType })];\n })\n );\n })\n )\n );\n\n public getVideoInfoSuccess$ = createEffect(() =>\n this.actions$.pipe(\n ofType(actions.getVideoInfoSuccess),\n switchMap(({ file, contentMD5 }) => {\n const updatedFile = { ...file, contentMD5 };\n return [actions.addUploadFiles({ files: [updatedFile] })];\n })\n )\n );\n\n public createUploadProgressNotification$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(actions.uploadDialogClosed),\n withLatestFrom(this.store.select(fromIndexing.getInProgressFiles)),\n withLatestFrom(this.store.select(fromIndexing.getAllValidUploadFiles)),\n tap(([[, inProgressFiles], allValidFiles]) => {\n // no need notification in case there is no longer progressing files or the notification is already created\n if (!inProgressFiles?.length || !!this.uploadProgressNotification) {\n return EMPTY;\n }\n const notificationTitle =\n allValidFiles.length > 1\n ? this.translate.instant('UploadingNumberFiles', { number: allValidFiles.length })\n : this.translate.instant('UploadingFileName', { fileName: allValidFiles[0].name });\n const id = `uploadingProgress_${guid()}`;\n const link = {\n text: this.translate.instant('SeeDetails'),\n callback: () => {\n this.openUploadDialog();\n }\n };\n this.uploadProgressNotification = getNotification(\n id,\n notificationTitle,\n NotificationType.Message,\n NotificationLevel.Info,\n NotificationIcon.Upload,\n true,\n link\n );\n })\n ),\n {\n dispatch: false\n }\n );\n\n public showSingleFileUploadedToast$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(actions.uploadFileFinished),\n tap(({ file }) => {\n // Show uploaded toast only for completed file and when the upload dialog is closed\n if (!file || file.uploadingState !== UploadingState.Completed || this.uploadDialogRef.getState() !== MatDialogState.CLOSED) {\n return EMPTY;\n }\n const id = `${file.id}-uploaded`;\n const title = this.translate.instant('FileNameUploaded', { fileName: file.name });\n const toast = getNotification(id, title, NotificationType.Toast, NotificationLevel.Success, NotificationIcon.Success, false);\n this.notificationService.notify(toast);\n })\n ),\n {\n dispatch: false\n }\n );\n\n public showSingleFileUploadFailedToast$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(actions.showUploadFailedToast),\n tap(({ file, errorType }) => {\n const title = this.translate.instant(FILE_UPLOAD_FAILED_NOTIFICATION_TITLE, { filename: file.name });\n const toasted = this.uploadDialogRef.getState() !== MatDialogState.CLOSED;\n const notification = getFileErrorNotification(errorType, title, toasted);\n if (notification) {\n notification.text = this.translate.instant(notification.text, { filename: file.name });\n this.notificationService.notify(notification);\n }\n })\n ),\n {\n dispatch: false\n }\n );\n\n public showSingleFileUploadQuotaExceededToast$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(actions.updateAccountQuotaOnUploadFailure),\n withLatestFrom(this.coreStoreService.getSelectedAccountQuota$),\n tap(([{ file }, quota]) => {\n if (!quota) {\n return;\n }\n\n const title = this.translate.instant(FILE_UPLOAD_FAILED_NOTIFICATION_TITLE, { filename: file.name });\n const toasted = this.uploadDialogRef.getState() !== MatDialogState.CLOSED;\n const notification = getQuotaExceededNotification(quota, title, toasted);\n\n if (notification) {\n notification.text = this.translate.instant(notification.text);\n this.notificationService.notify(notification);\n }\n })\n ),\n {\n dispatch: false\n }\n );\n\n public showMultiFilesUploadedToast$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(actions.uploadFilesFinished),\n withLatestFrom(this.store.select(fromIndexing.isMultiFileMode)),\n withLatestFrom(this.store.select(fromIndexing.getAllCompletedFiles)),\n tap(([[, isMultiFileMode], completedFiles]) => {\n // Show all files uploaded toast only in multi mode and when the upload dialog is closed\n if (!isMultiFileMode || this.uploadDialogRef.getState() !== MatDialogState.CLOSED) {\n return EMPTY;\n }\n const id = `${guid()}-all-files-uploaded`;\n const title = this.translate.instant('NumberFilesUploaded', { number: completedFiles.length });\n const toast = getNotification(id, title, NotificationType.Toast, NotificationLevel.Success, NotificationIcon.Success, false);\n this.notificationService.notify(toast);\n })\n ),\n {\n dispatch: false\n }\n );\n public showUploadFilesErrorNotification$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(actions.uploadFilesFinished),\n withLatestFrom(this.indexingStore.isBroadUploadError$),\n withLatestFrom(this.indexingStore.uploadErrorType$),\n withLatestFrom(this.coreStoreService.selectedAccountContract$),\n tap(([[[, isBroadUploadError], uploadErrorType], account]) => {\n // Show all files failed toast only when a broad error occurred\n if (!isBroadUploadError) {\n return;\n }\n const title = this.translate.instant(FILES_UPLOAD_FAILED_NOTIFICATION_TITLE);\n const toasted = this.uploadDialogRef.getState() !== MatDialogState.CLOSED;\n const notification = getUploadFilesFailedNotification(uploadErrorType, title, toasted);\n notification.text = this.translate.instant(notification.text);\n if (notification.link) {\n notification.link.text = this.translate.instant(notification.link.text);\n notification.link.src = this.utilsService.getViResourceOverviewPortalUrl(account?.tenantId, account?.resourceId);\n }\n this.notificationService.notify(notification);\n })\n ),\n {\n dispatch: false\n }\n );\n\n public updateUploadProgressNotification$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(actions.uploadingFilesInProgress),\n withLatestFrom(this.store.select(fromIndexing.getTotalUploadProgress)),\n tap(([, progress]) => {\n if (!this.uploadProgressNotification) {\n return EMPTY;\n }\n this.notificationService.notify({ ...this.uploadProgressNotification, progress: progress });\n })\n ),\n {\n dispatch: false\n }\n );\n\n public clearUploadProgressNotification$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(actions.uploadFilesFinished),\n tap(() => {\n if (!this.uploadProgressNotification) {\n return EMPTY;\n }\n this.notificationService.clear([this.uploadProgressNotification.id]);\n this.uploadProgressNotification = null;\n })\n ),\n {\n dispatch: false\n }\n );\n\n public showIndexingStartedToast$ = createEffect(() =>\n this.actions$.pipe(\n ofType(actions.uploadFileFinished),\n withLatestFrom(this.store.select(fromIndexing.isMultiFileMode)),\n withLatestFrom(this.store.select(fromIndexing.getAllCompletedFiles)),\n switchMap(([[{ file }, isMultiFileMode], completedFiles]) => {\n // Show toast only when the upload dialog is closed\n if (this.uploadDialogRef.getState() !== MatDialogState.CLOSED) {\n return EMPTY;\n }\n // For multi file mode show start indexing only when the first file has been uploaded\n if (isMultiFileMode) {\n if (completedFiles.length > 1) {\n return EMPTY;\n } else {\n return [actions.showIndexingStartedForSingleToast({ file })];\n }\n }\n return [actions.showIndexingStartedForMultiToast({ numberFiles: completedFiles.length })];\n })\n )\n );\n\n public showIndexingStartedForSingleToast$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(actions.showIndexingStartedForSingleToast),\n tap(({ file }) => {\n const id = `${file.id}-start-indexing`;\n const title = this.translate.instant('IndexingStartedForFile', { fileName: file.name });\n const toast = getNotification(id, title, NotificationType.Toast, NotificationLevel.Info, NotificationIcon.Upload, false);\n this.notificationService.notify(toast);\n })\n ),\n {\n dispatch: false\n }\n );\n\n public showIndexingStartedForMultiToast$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(actions.showIndexingStartedForMultiToast),\n tap(({ numberFiles }) => {\n if (numberFiles === 0) {\n return;\n }\n const id = `${guid()}-start-indexing-files`;\n const title = this.translate.instant('IndexingStartedForNumberFiles', { number: numberFiles });\n const toast = getNotification(id, title, NotificationType.Toast, NotificationLevel.Info, NotificationIcon.Upload, false);\n this.notificationService.notify(toast);\n })\n ),\n {\n dispatch: false\n }\n );\n\n private hasSelectedEdgeExtension: boolean = false;\n constructor(\n private logger: LoggerService,\n private actions$: Actions,\n private dialogService: DialogService,\n private featureSwitchService: FeatureSwitchService,\n private translate: TranslateHelperService,\n private coreStoreService: CoreStoreService,\n private store: Store,\n private uploadService: UploadService,\n private azureBlobService: AzureBlobStorageService,\n private notificationService: NotificationsService,\n private trackService: TrackService,\n private navigationService: AppNavigationService,\n private indexingStore: IndexingStoreService,\n private utilsService: UtilsService,\n private fileHelperService: FileHelperService,\n private edgeExtensionsStore: EdgeExtensionsStoreService\n ) {\n this.init();\n }\n\n private init() {\n this.logger.log('[UploadEffects] On Init Effects');\n\n this.edgeExtensionsStore.hasSelectedEdgeExtension$.subscribe((hasSelectedEdgeExtension: boolean) => {\n this.hasSelectedEdgeExtension = hasSelectedEdgeExtension;\n });\n }\n\n private openUploadDialog() {\n const uploadDialogData: IDialogData = {\n class: 'upload-dialog',\n component: UploadDialogComponent,\n componentData: {},\n hideHeader: true\n };\n\n const dialogWidth = this.featureSwitchService.featureSwitch(FeatureSwitch.ExcludeAIs) ? '980px' : '880px';\n\n this.uploadDialogRef = this.dialogService.openDialog(uploadDialogData, dialogWidth, 'auto', 'upload-dialog-container', true, true, '740px', true);\n this.initDialogCloseEvent();\n\n this.uploadDialogRef.afterClosed().subscribe(() => {\n this.store.dispatch(actions.uploadDialogClosed());\n });\n }\n\n private initDialogCloseEvent() {\n this.uploadDialogRef.componentInstance.actionChange.pipe(take(1)).subscribe(event => {\n this.trackService.track('upload_dialog.closed', {\n category: EventCategory.UPLOAD\n });\n if (event.dialogEventData?.customizationPageToNavigate) {\n this.coreStoreService.navigateToCustomization(event.dialogEventData.customizationPageToNavigate);\n this.trackService.track('upload_dialog.navigate', {\n category: EventCategory.UPLOAD,\n data: { page: event.dialogEventData.customizationPageToNavigate }\n });\n }\n\n if (event.dialogEventData?.navigateToCreateAccount) {\n this.navigationService.createAccountSubject.next(NavigationState.OPEN);\n this.trackService.track('upload_dialog.navigate', {\n category: EventCategory.UPLOAD,\n data: { page: UIShellActionType.CREATE_ACCOUNT }\n });\n }\n });\n }\n}\n","import { Action } from '@ngrx/store';\n\nimport { IUploadRequestParams } from '@common/modules/api/interfaces';\nimport { StreamingPreset } from '@common/modules/shared/interfaces';\n\nimport * as actions from '../../actions';\nimport { IFile, IIndexingSettings, ILanguage, IndexingLanguageType, UploadingState } from '../../../interfaces';\n\nconst EDGE_CUSTOM_LANGUAGE_IDS: Microsoft.VideoIndexer.Contracts.LanguageV2[] = [\n 'ar-EG',\n 'he-IL',\n 'de-DE',\n 'en-US',\n 'fr-FR',\n 'es-ES',\n 'it-IT',\n 'zh-Hans'\n];\nexport const CONCURRENT_EDGE_UPLOADS = 1;\n\nexport const getEdgeUploadBatchActions = (idleFiles: IFile[], inProgressFilesCount: number): Action[] => {\n const uploadBatchActions = [];\n idleFiles\n .slice(0, CONCURRENT_EDGE_UPLOADS - inProgressFilesCount)\n .forEach(file =>\n uploadBatchActions.push(\n actions.updateFile({ fileId: file.id, file: { uploadingState: UploadingState.InProgress } }),\n actions.uploadFileToEdge({ storeFile: file })\n )\n );\n return uploadBatchActions;\n};\nexport const getCustomEdgeLanguagesParam = (language: ILanguage, languages: Microsoft.VideoIndexer.Contracts.SupportedLanguageContract[]): string => {\n if (language.type === IndexingLanguageType.Auto) {\n const languageIdKeys = languages\n .filter(l => l.isAutoDetect)\n .map(l => l.languageCode)\n .filter(l => EDGE_CUSTOM_LANGUAGE_IDS.includes(l));\n return languageIdKeys.join(',');\n }\n return null;\n};\n\nexport const convertToEdgeUploadParams = (\n indexingSettings: IIndexingSettings,\n language: Microsoft.VideoIndexer.Contracts.LanguageV2,\n storeFile: IFile,\n customLanguages: string\n): Partial => {\n return {\n name: storeFile.name,\n indexingPreset: indexingSettings.indexingPreset,\n streamingPreset: StreamingPreset.Default,\n language: language || 'en-US',\n description: indexingSettings.description,\n metadata: indexingSettings.metadata,\n ...(customLanguages && { customLanguages }),\n // in case of upload from url, we need to pass the url\n ...(storeFile.url && { videoUrl: storeFile.url })\n };\n};\n","import { HttpErrorResponse } from '@angular/common/http';\n\nimport {\n isAccountDailyCountQuotaExceeded,\n isAccountDailyDurationQuotaExceeded,\n isAccountDurationQuotaExceeded\n} from 'src/apps/web/src/core/effects/utils';\n\nimport { APIErrors } from '@common/modules/core/services/toast/errors';\nimport {\n INotification,\n INotificationLink,\n NotificationIcon,\n NotificationLevel,\n NotificationMessageType,\n NotificationType\n} from '@common/modules/core/services/toast/interfaces';\nimport { guid } from '@common/modules/utils/string';\n\nexport const UPLOAD_HANDLING_ERRORS = [\n APIErrors.ACCOUNT_UPLOAD_QUOTA_EXCEEDED,\n APIErrors.VIDEO_ALREADY_IN_PROGRESS,\n APIErrors.EVENT_GRID_NOT_REGISTERED,\n APIErrors.AMS_AAD_APPLICATION_NOT_IN_TENANT,\n APIErrors.AMS_UNREACHABLE,\n // In case of video info failed and the video is link to none video file\n APIErrors.INVALID_INPUT,\n APIErrors.STORAGE_UNREACHABLE,\n APIErrors.MANAGED_IDENTITY_MISSING,\n APIErrors.STORAGE_ACCESS_DENIED\n];\n\nexport const RE_INDEX_HANDLING_ERRORS = [\n APIErrors.BREAKDOWN_NOT_FOUND,\n APIErrors.GENERAL,\n APIErrors.VIDEO_REMOVED,\n APIErrors.AMS_UNREACHABLE,\n APIErrors.VIDEO_INDEXING_IN_PROGRESS,\n APIErrors.INVALID_INPUT,\n APIErrors.AMS_AAD_APPLICATION_NOT_IN_TENANT,\n APIErrors.PROJECT_RENDER_IN_PROGRESS,\n APIErrors.SOURCE_VIDEO_DELETED,\n APIErrors.STORAGE_UNREACHABLE,\n APIErrors.MANAGED_IDENTITY_MISSING,\n APIErrors.STORAGE_ACCESS_DENIED\n];\n\nexport const FILE_UPLOAD_FAILED_NOTIFICATION_TITLE = 'UploadFileFailedNotificationMessage';\nexport const FILES_UPLOAD_FAILED_NOTIFICATION_TITLE = 'UploadFilesFailedNotificationMessage';\n\nexport const getUploadErrorType = (err: HttpErrorResponse) => {\n if (UPLOAD_HANDLING_ERRORS.includes(err?.error?.ErrorType)) {\n return err.error.ErrorType;\n }\n return APIErrors.GENERAL;\n};\n\nexport const getNotification = (\n id: string,\n title: string,\n type: NotificationType,\n level: NotificationLevel,\n icon: NotificationIcon,\n toasted: boolean,\n link?: INotificationLink,\n text?: string\n): INotification => {\n return {\n id,\n messageType: NotificationMessageType.Custom,\n startDate: new Date(),\n endDate: new Date(),\n type,\n level,\n icon,\n title,\n toasted,\n link,\n text\n };\n};\n\nexport const getQuotaExceededNotification = (quota: Microsoft.VideoIndexer.Contracts.AccountQuotaUsage, title: string, toasted: boolean) => {\n let text = '';\n if (isAccountDurationQuotaExceeded(quota)) {\n text = 'UploadFileAccountDurationQuotaError';\n } else if (isAccountDailyCountQuotaExceeded(quota)) {\n text = 'UploadFileAccountDailyCountQuotaError';\n } else if (isAccountDailyDurationQuotaExceeded(quota)) {\n text = 'UploadFileAccountDailyDurationQuotaError';\n }\n\n if (text) {\n const id = `uploadExceedQuota_${guid()}`;\n return getErrorNotification(id, title, toasted, text);\n }\n};\nexport const getFileErrorNotification = (uploadingErrorType: APIErrors, title: string, toasted: boolean) => {\n let text;\n switch (uploadingErrorType) {\n case APIErrors.VIDEO_ALREADY_IN_PROGRESS:\n text = 'UploadFileURLAlreadyExistsError';\n break;\n case APIErrors.INVALID_INPUT:\n text = 'UploadFileInvalidURLError';\n break;\n case APIErrors.GENERAL:\n text = 'UploadFileGeneralError';\n }\n\n if (text) {\n const id = `uploadFileFailed_${guid()}`;\n return getErrorNotification(id, title, toasted, text);\n }\n};\n\nexport const getUploadFilesFailedNotification = (uploadErrorType, title, toasted) => {\n let text;\n let link;\n switch (uploadErrorType) {\n case APIErrors.EVENT_GRID_NOT_REGISTERED:\n text = 'UploadFileEventGridError';\n break;\n case APIErrors.AMS_UNREACHABLE:\n text = 'UploadFileAmsUnreachableError';\n break;\n case APIErrors.AMS_AAD_APPLICATION_NOT_IN_TENANT:\n text = 'AmsAadAppNotInTenantErrorMsg';\n break;\n case APIErrors.STORAGE_UNREACHABLE:\n text = 'StorageUnreachableErrorMsg';\n break;\n case APIErrors.STORAGE_ACCESS_DENIED:\n text = 'UploadFileStorageAccessDeniedErrorMsg';\n link = {\n text: 'StorageAccessDeniedErrorMsgLinkText',\n src: ''\n };\n break;\n case APIErrors.MANAGED_IDENTITY_MISSING:\n text = 'UploadFileManagedIdentityMissingErrorMsg';\n break;\n }\n\n if (text) {\n const id = `uploadFilesFailed_${guid()}`;\n return getErrorNotification(id, title, toasted, text, link);\n }\n};\n\nexport const getErrorNotification = (id, title: string, toasted: boolean, text: string, link?: INotificationLink) =>\n getNotification(id, title, NotificationType.Message, NotificationLevel.Error, NotificationIcon.Error, toasted, link, text);\n\nexport const getReIndexErrorType = (err: HttpErrorResponse) => {\n if (RE_INDEX_HANDLING_ERRORS.includes(err?.error?.ErrorType)) {\n return err.error.ErrorType;\n }\n return APIErrors.GENERAL;\n};\n","import { Action } from '@ngrx/store';\n\nimport { IUploadRequestParams, SensitiveAI, IReIndexRequestParams, IRequestParam, ExcludableAIsModels } from '@common/modules/api/interfaces';\n\nimport * as actions from '../../actions';\nimport { IFile, IIndexingSettings, IndexingLanguageType, UploadMode, UploadingState } from '../../../interfaces';\nimport { IndexingPreset } from '../../../components/shared/settings';\n\nexport const CONCURRENT_FS_UPLOADS = 3;\nexport const CONCURRENT_URL_UPLOADS = 10;\nexport const UPLOAD_PROCESS_FINISHED_PERCENTAGE = 100;\nexport const UPLOAD_TO_BLOB_STORAGE_COMPLETED_PERCENTAGE = 99;\n// Max size 30 GB from URL\nexport const MAX_FILE_SIZE_URL = Math.pow(1024, 3) * 30;\nexport const EXCLUDE_AI_PARAM = 'excludedAI';\nexport const HTML_CONTENT_TYPE = 'text/html';\n\nexport const getExcludeSensitiveAIsParams = (indexingSettings: IIndexingSettings): IRequestParam[] => {\n return indexingSettings.excludeRAI\n ? [SensitiveAI.Emotions, SensitiveAI.Faces, SensitiveAI.Labels, SensitiveAI.ObservedPeople].map(ai => ({ key: EXCLUDE_AI_PARAM, value: ai }))\n : null;\n};\n\nexport const getExcludeAIsParams = (excludeAIs: ExcludableAIsModels[]): IRequestParam[] => {\n const params = excludeAIs.map(excludeAI => ({ key: EXCLUDE_AI_PARAM, value: excludeAI }));\n return params;\n};\n\nexport const getFSFileUploadBatchActions = (idleFiles: IFile[], inProgressFilesCount: number) => {\n const uploadBatchActions = [];\n idleFiles\n .slice(0, CONCURRENT_FS_UPLOADS - inProgressFilesCount)\n .forEach(file =>\n uploadBatchActions.push(\n actions.updateFile({ fileId: file.id, file: { uploadingState: UploadingState.InProgress } }),\n actions.getFileSas({ storeFile: file })\n )\n );\n return uploadBatchActions;\n};\n\nexport const getURLFileUploadBatchActions = (idleFiles: IFile[], inProgressFilesCount: number): Action[] => {\n const uploadBatchActions = [];\n idleFiles\n .slice(0, CONCURRENT_URL_UPLOADS - inProgressFilesCount)\n .forEach(file =>\n uploadBatchActions.push(\n actions.updateFile({ fileId: file.id, file: { uploadingState: UploadingState.InProgress } }),\n actions.uploadFileToServer({ storeFile: file, fileUrl: file.url })\n )\n );\n return uploadBatchActions;\n};\n\nexport const getLanguageParam: (language) => Microsoft.VideoIndexer.Contracts.LanguageV2 = language => {\n switch (language.type) {\n case IndexingLanguageType.Language:\n return language.languageCode;\n case IndexingLanguageType.Auto:\n return language.key;\n case IndexingLanguageType.SpeechModel:\n return language.locale;\n case IndexingLanguageType.LanguageModel:\n return language.language;\n default:\n return null;\n }\n};\n\nexport const getCustomLanguagesParam = (language, languageIdKeys) => {\n if (language.type === IndexingLanguageType.Auto) {\n return languageIdKeys.join(',');\n }\n return null;\n};\n\nexport const getCustomLanguageModelParam = language => {\n return language.type === IndexingLanguageType.LanguageModel\n ? language.languageModelId\n : language.type === IndexingLanguageType.SpeechModel\n ? language.id\n : null;\n};\n\nexport const getBrandsCategoriesParam = (brands: string) => {\n return brands\n ? brands\n .split(',')\n .filter(brand => brand !== 'Default')\n .join(',')\n : null;\n};\n\nexport const convertToUploadParams = (\n accountId: string,\n indexingSettings: IIndexingSettings,\n languageSettings: Microsoft.VideoIndexer.Contracts.LanguageV2,\n languageModelSettings: string,\n storeFile: IFile,\n fileUrl: string,\n customLanguages\n): IUploadRequestParams => {\n const brandsCategories = getBrandsCategoriesParam(indexingSettings.brandsCategories);\n\n return {\n accountId: accountId,\n indexingPreset: indexingSettings.indexingPreset,\n language: languageSettings,\n linguisticModelId: languageModelSettings,\n name: storeFile.name,\n sendSuccessEmail: true,\n videoUrl: fileUrl,\n description: indexingSettings.description,\n metadata: indexingSettings.metadata,\n ...(customLanguages && { customLanguages }),\n streamingPreset: indexingSettings.streamingPreset,\n privacy: indexingSettings.privacy,\n ...(brandsCategories && { brandsCategories }),\n ...(indexingSettings.peopleModelId && { personModelId: indexingSettings.peopleModelId }),\n ...(isAdvancedIndexingPresetSelected(indexingSettings.indexingPreset) &&\n indexingSettings.logoGroupId && { logoGroupId: indexingSettings.logoGroupId })\n };\n};\nexport const convertToReIndexParams = (\n indexingSettings: IIndexingSettings,\n languageSettings: Microsoft.VideoIndexer.Contracts.LanguageV2,\n languageModelSettings: string,\n customLanguages: string\n): IReIndexRequestParams => {\n const brandsCategories = getBrandsCategoriesParam(indexingSettings.brandsCategories);\n\n return {\n indexingPreset: indexingSettings.indexingPreset,\n sourceLanguage: languageSettings,\n linguisticModelId: languageModelSettings,\n ...(customLanguages && { customLanguages: customLanguages }),\n streamingPreset: indexingSettings.streamingPreset,\n ...(brandsCategories && { brandsCategories }),\n ...(indexingSettings.peopleModelId && { personModelId: indexingSettings.peopleModelId }),\n ...(isAdvancedIndexingPresetSelected(indexingSettings.indexingPreset) &&\n indexingSettings.logoGroupId && { logoGroupId: indexingSettings.logoGroupId })\n };\n};\n\nexport const isUrlAlreadyAdded = (url: string, files: IFile[]) => {\n return !!files.find(f => f.url === url);\n};\n\nexport const isAdvancedIndexingPresetSelected = (indexingPreset: IndexingPreset) => {\n return indexingPreset === IndexingPreset.VIDEO_AUDIO_ADVANCED || indexingPreset === IndexingPreset.VIDEO_ADVANCED;\n};\n\nexport const getFileTraceData = (storeFile: IFile): object => {\n return { fileSize: storeFile.size, mode: storeFile.url ? UploadMode.URL : UploadMode.File };\n};\n\nexport const getUploadSettingsTraceData = (uploadParams: Partial): Omit, 'name' | 'videoUrl'> => {\n const updatedParams = { ...uploadParams };\n delete updatedParams.videoUrl;\n // name is UGC and as such can contain sensitive information (names, email addresses, etc.)\n delete updatedParams.name;\n return updatedParams;\n};\n","import { createFeatureSelector, ActionReducerMap } from '@ngrx/store';\n\nimport { initialUploadState, UploadState, reducer as uploadReducer } from './upload.reducer';\nimport { initialReIndexState, ReIndexState, reducer as reIndexReducer } from './re-index.reducer';\nimport { initialIndexingViewState, IndexingViewState, reducer as indexingViewStateReducer } from './indexing-view.reducer';\n\nexport interface IState {\n upload: UploadState;\n reIndex: ReIndexState;\n viewState: IndexingViewState;\n}\n\nexport const initialState: IState = {\n upload: initialUploadState,\n reIndex: initialReIndexState,\n viewState: initialIndexingViewState\n};\n\nexport const reducers: ActionReducerMap = {\n upload: uploadReducer,\n reIndex: reIndexReducer,\n viewState: indexingViewStateReducer\n};\n\nexport const selectIndexingState = createFeatureSelector('indexing');\n","import { Action, createReducer, on } from '@ngrx/store';\n\nimport { AdvancedSettings, IndexingMode } from './../../interfaces';\nimport * as indexingViewActions from '../actions/indexing-view.actions';\nimport * as actions from '../actions';\n\nexport interface IndexingViewState {\n permissionDenied: boolean;\n showAdvanced: boolean;\n isIndexingProcessDirty: boolean;\n indexingMode?: IndexingMode;\n selectedAdvancedSettings: AdvancedSettings;\n}\n\nexport const initialIndexingViewState: IndexingViewState = {\n permissionDenied: false,\n showAdvanced: false,\n isIndexingProcessDirty: false,\n indexingMode: null,\n selectedAdvancedSettings: AdvancedSettings.General\n};\n\nconst indexingViewStateReducer = createReducer(\n initialIndexingViewState,\n on(indexingViewActions.resetIndexingViewState, () => {\n return Object.assign({}, initialIndexingViewState);\n }),\n on(indexingViewActions.updateIndexingMode, (state, { mode }) => {\n return {\n ...state,\n indexingMode: mode\n };\n }),\n on(indexingViewActions.updateSelectedAdvancedSettings, (state, { settings }) => {\n return {\n ...state,\n selectedAdvancedSettings: settings\n };\n }),\n on(indexingViewActions.toggleAdvancedMode, state => {\n return {\n ...state,\n showAdvanced: !state.showAdvanced\n };\n }),\n on(actions.reIndexVideoFailed, actions.reIndexVideoSucceeded, actions.uploadFiles, state => {\n return {\n ...state,\n isIndexingProcessDirty: false\n };\n }),\n on(actions.updateIndexingSettings, (state, { isDirty }) => {\n return isDirty\n ? {\n ...state,\n isIndexingProcessDirty: true\n }\n : state;\n }),\n on(actions.addUploadFilesSuccess, state => {\n return {\n ...state,\n isIndexingProcessDirty: true\n };\n })\n);\n\nexport function reducer(state: IndexingViewState | undefined, action: Action) {\n return indexingViewStateReducer(state, action);\n}\n","import { Action, createReducer, on } from '@ngrx/store';\n\nimport { APIErrors } from '@common/modules/core/services/toast/errors';\nimport { PrivacyMode } from '@common/modules/core/interfaces';\nimport { guid } from '@common/modules/utils/string';\nimport { StreamingPreset } from '@common/modules/shared/interfaces';\nimport { ExcludableAIsModels } from '@common/modules/api/interfaces';\n\nimport { IIndexingSettings, LanguageAutoDetectMode, SupportedAIsMap } from '../../interfaces';\nimport * as ReIndexActions from '../actions/re-index.actions';\nimport { loadSupportedAIs, loadSupportedAIsFailed } from '../actions';\nimport { IndexingPreset } from '../../components/shared/settings';\nimport { SpecialLanguageKey } from '../../../core/languages';\nimport { ReIndexPages, FailureCode } from '../../components/re-index/interfaces';\n\nimport PlaylistContractV2 = Microsoft.VideoIndexer.Contracts.PlaylistContractV2;\n\nexport interface ReIndexState {\n displayedReIndexPage: ReIndexPages;\n videoId: string;\n videoIndex: PlaylistContractV2;\n supportedAIs?: SupportedAIsMap;\n isSupportedAIsLoaded?: boolean;\n isLoadSupportedAIsError?: boolean;\n indexingSettings?: IIndexingSettings;\n isIndexingSettingsLoaded: boolean;\n isProcessing: boolean;\n originalLanguageId: string;\n reviewState?: string;\n moderationState?: string;\n reIndexErrorType: APIErrors | FailureCode;\n}\n\nexport const initialReIndexState: ReIndexState = {\n displayedReIndexPage: ReIndexPages.IndexingForm,\n videoId: null,\n videoIndex: null,\n supportedAIs: {} as SupportedAIsMap,\n isSupportedAIsLoaded: false,\n isLoadSupportedAIsError: false,\n indexingSettings: null,\n isIndexingSettingsLoaded: false,\n isProcessing: false,\n originalLanguageId: '',\n reviewState: 'None',\n moderationState: 'OK',\n reIndexErrorType: null\n};\n\nconst reIndexReducer = createReducer(\n initialReIndexState,\n on(ReIndexActions.initReIndexIndexingSettings, (state, { videoIndex, streamingPreset, reviewState, moderationState }) => {\n return {\n ...state,\n videoIndex,\n indexingSettings: {\n privacy: videoIndex?.privacyMode as PrivacyMode,\n name: videoIndex?.name,\n indexingPreset: videoIndex?.videos[0].indexingPreset as IndexingPreset,\n excludeAIs: (videoIndex?.videos[0].excludedAIs || []) as ExcludableAIsModels[],\n peopleModelId: getPersonId(videoIndex?.videos[0].personModelId),\n streamingPreset: streamingPreset as StreamingPreset,\n description: videoIndex?.description,\n metadata: videoIndex?.videos[0].metadata,\n languageId: getLanguageId(videoIndex),\n brandsCategories: null,\n logoGroupId: videoIndex?.videos[0].logoGroupId\n },\n originalLanguageId: getLanguageId(videoIndex),\n reviewState,\n moderationState\n };\n }),\n on(ReIndexActions.resetReIndexState, () => {\n return Object.assign({}, initialReIndexState);\n }),\n on(ReIndexActions.loadVideoIndex, state => {\n return {\n ...state,\n isIndexingSettingsLoaded: false\n };\n }),\n on(ReIndexActions.initVideoId, (state, { videoId }) => {\n return {\n ...state,\n videoId: videoId\n };\n }),\n on(ReIndexActions.updateReIndexIndexingSettings, (state, { settings }) => {\n return {\n ...state,\n indexingSettings: {\n ...state.indexingSettings,\n ...settings\n }\n };\n }),\n on(loadSupportedAIs, state => {\n return {\n ...state,\n isSupportedAIsLoaded: false\n };\n }),\n on(loadSupportedAIsFailed, state => {\n return {\n ...state,\n supportedAIs: {},\n isLoadSupportedAIsError: true,\n isSupportedAIsLoaded: true\n };\n }),\n on(ReIndexActions.updateReIndexPage, (state, { page }) => {\n return {\n ...state,\n displayedReIndexPage: page\n };\n }),\n on(ReIndexActions.updateReIndexSupportedAIsState, (state, { supportedAIs: ais }) => {\n const updatedSupportedAIs = {};\n ais.forEach(({ name, checked, disabled }) => {\n updatedSupportedAIs[name] = {\n ...state.supportedAIs[name],\n checked: checked,\n disabled: disabled\n };\n });\n return {\n ...state,\n supportedAIs: updatedSupportedAIs\n };\n }),\n on(ReIndexActions.updateReIndexSupportedAIs, (state, { supportedAIs }) => {\n return {\n ...state,\n supportedAIs: supportedAIs,\n isSupportedAIsLoaded: true,\n isLoadSupportedAIsError: false\n };\n }),\n on(ReIndexActions.indexingSettingsLoaded, state => {\n return {\n ...state,\n isIndexingSettingsLoaded: true\n };\n }),\n on(ReIndexActions.updateOriginalLanguageId, (state, { languageId }) => {\n return {\n ...state,\n originalLanguageId: languageId\n };\n }),\n on(ReIndexActions.reIndexVideo, state => {\n return {\n ...state,\n isProcessing: true\n };\n }),\n on(ReIndexActions.reIndexVideoSucceeded, state => {\n return {\n ...state,\n isProcessing: false\n };\n }),\n on(ReIndexActions.reIndexVideoFailed, (state, { errorType }) => {\n return {\n ...state,\n isProcessing: false,\n reIndexErrorType: errorType\n };\n }),\n on(ReIndexActions.getVideoIndexFailed, (state, { errorType }) => {\n return {\n ...state,\n isIndexingSettingsLoaded: true,\n reIndexErrorType: errorType\n };\n })\n);\n\nexport function reducer(state: ReIndexState | undefined, action: Action) {\n return reIndexReducer(state, action);\n}\n\nfunction getLanguageId(videoIndex: PlaylistContractV2) {\n // if video was indexed with language/speech model\n if (videoIndex?.videos[0]?.linguisticModelId !== guid(0)) {\n return videoIndex?.videos[0].linguisticModelId;\n }\n\n // if video was indexed with auto detect single language\n if (videoIndex?.videos[0]?.languageAutoDetectMode === LanguageAutoDetectMode.Single) {\n return SpecialLanguageKey.AUTO;\n }\n\n // if video was indexed with auto detect multi language\n if (videoIndex?.videos[0]?.languageAutoDetectMode === LanguageAutoDetectMode.Multi || videoIndex?.videos[0]?.sourceLanguages?.length > 1) {\n return SpecialLanguageKey.MULTI;\n }\n\n // detect with some language\n return videoIndex?.videos[0]?.language;\n}\n\nfunction getPersonId(modelId: string) {\n // model id can be guid(0) when the default model has not been used yet.\n // In this case we save empty string - same as we save in upload state\n if (modelId === guid(0)) {\n return '';\n }\n return modelId;\n}\n","import { createReducer, Action, on } from '@ngrx/store';\nimport { createEntityAdapter, EntityAdapter, EntityState } from '@ngrx/entity';\n\nimport { merge } from 'lodash-es';\n\nimport { APIErrors } from '@common/modules/core/services/toast/errors';\nimport { PrivacyMode } from '@common/modules/core/interfaces';\nimport { StreamingPreset } from '@common/modules/shared/interfaces';\n\nimport { UploadPages } from '../../components/upload/interfaces';\nimport { IIndexingSettings, SupportedAIsMap, UploadMode } from '../../interfaces';\nimport { IFile } from '../../interfaces';\nimport * as UploadActions from '../actions/upload.actions';\nimport { loadSupportedAIs, loadSupportedAIsFailed } from '../actions';\nimport { IndexingPreset } from '../../components/shared/settings/indexing-presets/interfaces';\n\nexport interface UploadState extends EntityState {\n displayedUploadPage: UploadPages;\n supportedAIs?: SupportedAIsMap;\n isSupportedAIsLoaded?: boolean;\n isLoadSupportedAIsError?: boolean;\n indexingSettings?: IIndexingSettings;\n urlValidationLoading?: boolean;\n urlValidationError?: APIErrors;\n uploadingQuotaLimitReached?: boolean;\n uploadMode?: UploadMode; // URL or File\n userConsent: boolean;\n}\nfunction selectFileId(a: IFile): string {\n return a.id;\n}\n\nexport const adapter: EntityAdapter = createEntityAdapter({\n selectId: selectFileId\n});\n\nexport const initialUploadState: UploadState = adapter.getInitialState({\n displayedUploadPage: UploadPages.UploadSource,\n userConsent: false,\n urlValidationLoading: false,\n urlValidationError: null,\n uploadingQuotaLimitReached: false,\n supportedAIs: {} as SupportedAIsMap,\n isSupportedAIsLoaded: false,\n isLoadSupportedAIsError: false,\n indexingSettings: {\n indexingPreset: IndexingPreset.DEFAULT,\n excludeRAI: false,\n excludeAIs: [],\n peopleModelId: '',\n brandsCategories: null,\n logoGroupId: null,\n languageId: 'en-US',\n privacy: PrivacyMode.PRIVATE,\n streamingPreset: StreamingPreset.SingleBitrate\n }\n});\n\nconst uploadReducer = createReducer(\n initialUploadState,\n on(UploadActions.initUploadDialogState, (state, { indexingSettings }) => {\n return merge({}, initialUploadState, {\n userConsent: state.userConsent,\n indexingSettings\n });\n }),\n on(UploadActions.addUploadFilesSuccess, (state, { files }) => {\n const newState: UploadState = {\n ...state\n };\n return adapter.addMany(files, newState);\n }),\n on(UploadActions.updateFile, (state, { fileId, file: fileProps }) => {\n return adapter.updateOne({ id: fileId, changes: fileProps }, state);\n }),\n on(UploadActions.removeFile, (state, { fileId }) => {\n return adapter.removeOne(fileId, state);\n }),\n on(UploadActions.updateUploadPage, (state, { page }) => {\n return {\n ...state,\n displayedUploadPage: page\n };\n }),\n on(UploadActions.updateUrlValidationLoading, (state, { loading }) => {\n return {\n ...state,\n urlValidationLoading: loading\n };\n }),\n on(UploadActions.getVideoInfoSuccess, state => {\n return {\n ...state,\n urlValidationLoading: false,\n urlValidationError: null\n };\n }),\n on(UploadActions.urlValidationFailed, (state, { errorType }) => {\n return {\n ...state,\n urlValidationLoading: false,\n urlValidationError: errorType\n };\n }),\n on(UploadActions.updateUrlValidationError, (state, { errorType }) => {\n return {\n ...state,\n urlValidationError: errorType\n };\n }),\n on(UploadActions.updateUploadMode, (state, { mode }) => {\n return {\n ...state,\n uploadMode: mode\n };\n }),\n on(loadSupportedAIs, state => {\n return {\n ...state,\n isSupportedAIsLoaded: false\n };\n }),\n on(loadSupportedAIsFailed, state => {\n return {\n ...state,\n supportedAIs: {},\n isLoadSupportedAIsError: true,\n isSupportedAIsLoaded: true\n };\n }),\n on(UploadActions.updateUploadSupportedAIsState, (state, { supportedAIs: ais }) => {\n const updatedSupportedAIs = {};\n ais.forEach(({ name, checked, disabled }) => {\n updatedSupportedAIs[name] = {\n ...state.supportedAIs[name],\n checked: checked,\n disabled: disabled\n };\n });\n return {\n ...state,\n supportedAIs: updatedSupportedAIs\n };\n }),\n on(UploadActions.updateUploadSupportedAIs, (state, { supportedAIs }) => {\n return {\n ...state,\n supportedAIs: supportedAIs,\n isSupportedAIsLoaded: true,\n isLoadSupportedAIsError: false\n };\n }),\n on(UploadActions.updateUploadIndexingSettings, (state, { settings }) => {\n return {\n ...state,\n indexingSettings: {\n ...state.indexingSettings,\n ...settings\n }\n };\n }),\n on(UploadActions.updateUserConsentSuccess, (state, { consent }) => {\n return {\n ...state,\n userConsent: consent\n };\n }),\n on(UploadActions.updateAccountQuotaOnUploadFailure, state => {\n return {\n ...state,\n uploadingQuotaLimitReached: true\n };\n }),\n on(UploadActions.getVideoInfoFailed, (state, { errorType }) => {\n return {\n ...state,\n urlValidationLoading: false,\n urlValidationError: errorType\n };\n })\n);\n\nexport function reducer(state: UploadState | undefined, action: Action) {\n return uploadReducer(state, action);\n}\n","export * from './upload.selectors';\nexport * from './indexing-view.selectors';\nexport * from './indexing-form.selectors';\nexport * from './re-index.selectors';\n","import { createSelector } from '@ngrx/store';\n\nimport { ExcludableAIsModels } from '@common/modules/api/interfaces';\n\nimport { selectLogoGroups, getPeopleModels, getTrainedSpeechModels } from '../../../customization-data/selectors';\nimport { ILanguage } from './../../../core/interfaces';\nimport { ILanguageModelContract } from './../../../customization-data/reducers/language-model.reducer';\nimport { getTrainedLanguageModels } from './../../../customization-data/selectors/language.selectors';\nimport { selectSupportedLanguagesIds } from './../../../customization-data/selectors/supported-languages-ids.selectors';\nimport { IndexingLanguageType, IndexingMode, UploadingState } from '../../interfaces';\nimport { selectIndexingViewState } from './indexing-view.selectors';\nimport { selectUploadFiles, selectUploadState } from './upload.selectors';\nimport { selectOriginalLanguageId, selectReIndexState } from './re-index.selectors';\nimport { additionalUploadLanguages, keepSourceLanguageId } from '../../../core/languages';\nimport { isAdvancedIndexingPresetSelected } from '../effects/utils/indexing-utils';\n\nexport const selectIndexingSettings = createSelector(\n selectIndexingViewState,\n selectUploadState,\n selectReIndexState,\n (indexingViewState, uploadState, reIndexState) => {\n if (indexingViewState.indexingMode === IndexingMode.Upload) {\n return uploadState?.indexingSettings;\n } else {\n return reIndexState?.indexingSettings;\n }\n }\n);\n\nexport const selectSupportedAIs = createSelector(\n selectIndexingViewState,\n selectUploadState,\n selectReIndexState,\n (indexingViewState, uploadState, reIndexState) => {\n if (indexingViewState.indexingMode === IndexingMode.Upload) {\n return uploadState?.supportedAIs;\n } else {\n return reIndexState?.supportedAIs;\n }\n }\n);\n\nexport const isSupportedAIsLoaded = createSelector(\n selectIndexingViewState,\n selectUploadState,\n selectReIndexState,\n (indexingViewState, uploadState, reIndexState) => {\n if (indexingViewState.indexingMode === IndexingMode.Upload) {\n return uploadState?.isSupportedAIsLoaded;\n } else {\n return reIndexState?.isSupportedAIsLoaded;\n }\n }\n);\n\nexport const isLoadSupportedAIsError = createSelector(\n selectIndexingViewState,\n selectUploadState,\n selectReIndexState,\n (indexingViewState, uploadState, reIndexState) => {\n if (indexingViewState.indexingMode === IndexingMode.Upload) {\n return uploadState?.isLoadSupportedAIsError;\n } else {\n return reIndexState?.isLoadSupportedAIsError;\n }\n }\n);\n\nexport const getAllFiles = createSelector(selectUploadFiles, selectIndexingViewState, (uploadFiles, indexingViewState) => {\n if (indexingViewState?.indexingMode === IndexingMode.Upload) {\n return uploadFiles;\n } else {\n return null;\n }\n});\n\nexport const getAllValidFiles = createSelector(getAllFiles, files => {\n return files?.filter(file => !file.error);\n});\n\nexport const getAllUploadValidFilesNames = createSelector(getAllValidFiles, files => {\n return files?.map(file => file.name);\n});\n\nexport const getAllCompletedFiles = createSelector(getAllFiles, files => {\n return files?.filter(file => file.uploadingState === UploadingState.Completed);\n});\n\nexport const isMultiFileMode = createSelector(selectUploadState, selectIndexingViewState, (uploadState, indexingViewState) => {\n if (indexingViewState.indexingMode === IndexingMode.Upload && Object.keys(uploadState.entities).length > 1) {\n return true;\n } else {\n return false;\n }\n});\n\nexport const selectIndexingPreset = createSelector(selectIndexingSettings, state => state?.indexingPreset);\n\nexport const selectExcludeRAI = createSelector(selectIndexingSettings, state => state?.excludeRAI);\n\nexport const selectExcludeAIs = createSelector(selectIndexingSettings, state => state?.excludeAIs);\n\nexport const selectStreamingPreset = createSelector(selectIndexingSettings, state => state?.streamingPreset);\n\nexport const selectPrivacy = createSelector(selectIndexingSettings, state => state?.privacy);\n\nexport const selectMetadata = createSelector(selectIndexingSettings, state => state?.metadata);\n\nexport const selectDescription = createSelector(selectIndexingSettings, state => state?.description);\n\nexport const selectLanguageId = createSelector(selectIndexingSettings, state => state?.languageId);\n\nexport const selectFileName = createSelector(selectIndexingSettings, state => state.name);\n\nexport const selectFilesNames = createSelector(\n selectIndexingViewState,\n selectFileName,\n getAllUploadValidFilesNames,\n (indexingViewState, ReindexFileName, UploadFilesNames) => {\n if (indexingViewState?.indexingMode === IndexingMode.Upload) {\n return UploadFilesNames;\n } else {\n return [ReindexFileName];\n }\n }\n);\n\nexport const getLanguagesObject = createSelector(\n selectSupportedLanguagesIds,\n getTrainedLanguageModels,\n getTrainedSpeechModels,\n (supportedLanguages, trainedLanguageModels, speechModels) => {\n return {\n additionalUploadLanguages: additionalUploadLanguages.map(l => ({\n ...l,\n type: IndexingLanguageType.Auto\n })),\n supportedLanguages: supportedLanguages.map(l => ({ ...l, type: IndexingLanguageType.Language })),\n trainedLanguageModels: trainedLanguageModels.map(l => ({ ...l, type: IndexingLanguageType.LanguageModel })),\n speechModels: speechModels.map(l => ({ ...l, type: IndexingLanguageType.SpeechModel })),\n keepSource: { id: keepSourceLanguageId, type: IndexingLanguageType.KeepSource }\n };\n }\n);\nexport const getAllLanguages = createSelector(getLanguagesObject, languages => [\n ...languages.additionalUploadLanguages,\n ...languages.supportedLanguages,\n ...languages.trainedLanguageModels,\n ...languages.speechModels\n]);\n\n// TODO: Will be used by the upload click effect\nexport const getLanguage = createSelector(\n getAllLanguages,\n selectLanguageId,\n selectOriginalLanguageId,\n (languages, languageId, originalLanguageId) => {\n // in case languageId is keepSource so search for the language of the original language id\n const selectedLanguageId = languageId === keepSourceLanguageId ? originalLanguageId : languageId;\n return languages.find(\n l =>\n (l.type === IndexingLanguageType.Language &&\n (l)?.languageCode === selectedLanguageId) ||\n (l.type === IndexingLanguageType.Auto && (l)?.key === selectedLanguageId) ||\n (l.type === IndexingLanguageType.LanguageModel && (l)?.languageModelId === selectedLanguageId) ||\n (l.type === IndexingLanguageType.SpeechModel && (l)?.id === selectedLanguageId)\n );\n }\n);\n\nexport const selectPeopleModelId = createSelector(selectIndexingSettings, state => state?.peopleModelId);\n\nexport const selectedPeopleModel = createSelector(selectPeopleModelId, getPeopleModels, (id, peopleModels) => {\n if (!id) {\n return peopleModels.find(model => model.isDefault);\n }\n return peopleModels.find(model => model.id === id);\n});\n\nexport const selectLogoGroupId = createSelector(selectIndexingSettings, state => state?.logoGroupId);\n\nexport const selectedLogoGroup = createSelector(selectLogoGroupId, selectLogoGroups, (id, logoGroups) => {\n return logoGroups.find(group => group.id === id);\n});\n\nexport const selectBrandCategories = createSelector(selectIndexingSettings, state => state?.brandsCategories);\n\nexport const getIncludedAIs = createSelector(selectSupportedAIs, selectExcludeAIs, (SupportedAIsMap, excludedAIs) => {\n const supportedAIs = Object.keys(SupportedAIsMap);\n return supportedAIs.filter(ai => !excludedAIs.includes(ai as ExcludableAIsModels));\n});\n\nexport const getIndexingSettingSummary = createSelector(\n selectIndexingSettings,\n selectedPeopleModel,\n selectedLogoGroup,\n getIncludedAIs,\n selectExcludeAIs,\n (indexingSettings, selectedPeopleModel, selectedLogoGroup, includedAIs, excludedAIs) => {\n const selectedBrands = indexingSettings.brandsCategories?.split(',').filter(brand => brand);\n const summary = {\n languageId: indexingSettings.languageId,\n indexingPreset: indexingSettings.indexingPreset,\n excludeRAI: indexingSettings.excludeRAI,\n includedAIs,\n excludedAIs,\n streamingPreset: indexingSettings.streamingPreset,\n privacy: indexingSettings.privacy,\n brandsCategories: selectedBrands,\n peopleModel: indexingSettings.peopleModelId && selectedPeopleModel ? selectedPeopleModel.name : null,\n logoGroup:\n isAdvancedIndexingPresetSelected(indexingSettings.indexingPreset) && indexingSettings.logoGroupId && selectedLogoGroup\n ? selectedLogoGroup.name\n : null\n };\n return summary;\n }\n);\n","import { createSelector } from '@ngrx/store';\n\nimport { selectIndexingState } from '../reducers';\n\nexport const selectIndexingViewState = createSelector(selectIndexingState, state => state.viewState);\n\nexport const selectAdvancedMode = createSelector(selectIndexingViewState, state => state?.showAdvanced);\n\nexport const selectIndexingMode = createSelector(selectIndexingViewState, state => state?.indexingMode);\n\nexport const selectIsIndexingProcessDirty = createSelector(selectIndexingViewState, state => state.isIndexingProcessDirty);\n\nexport const selectSelectedAdvancedSettings = createSelector(selectIndexingViewState, state => state?.selectedAdvancedSettings);\n","import { createSelector } from '@ngrx/store';\n\nimport { selectIndexingState } from '../reducers';\n\nexport const selectReIndexState = createSelector(selectIndexingState, state => state.reIndex);\nexport const isIndexingSettingLoaded = createSelector(selectReIndexState, state => state.isIndexingSettingsLoaded);\nexport const isReIndexProcessing = createSelector(selectReIndexState, state => state.isProcessing);\nexport const selectVideoId = createSelector(selectReIndexState, state => state.videoId);\nexport const selectVideoIndex = createSelector(selectReIndexState, state => state.videoIndex);\nexport const selectOriginalLanguageId = createSelector(selectReIndexState, state => state?.originalLanguageId);\nexport const selectReIndexErrorType = createSelector(selectReIndexState, state => state?.reIndexErrorType);\nexport const selectReviewState = createSelector(selectReIndexState, state => state?.reviewState);\nexport const selectModerationState = createSelector(selectReIndexState, state => state?.moderationState);\nexport const selectReIndexDisplayedPage = createSelector(selectReIndexState, state => state.displayedReIndexPage);\n","import { createSelector } from '@ngrx/store';\n\nimport { UploadingState } from '../../interfaces';\nimport { selectIndexingState } from '../reducers';\n\nexport const selectUploadState = createSelector(selectIndexingState, state => state.upload);\nexport const selectUploadFiles = createSelector(selectUploadState, state => Object.values(state.entities));\nexport const selectUploadFileById = (id: string) => createSelector(selectUploadState, state => state.entities[id]);\nexport const selectUploadDisplayedPage = createSelector(selectUploadState, state => state.displayedUploadPage);\nexport const selectUploadingQuotaLimitReached = createSelector(selectUploadState, state => state.uploadingQuotaLimitReached);\nexport const selectUploadMode = createSelector(selectUploadState, state => state.uploadMode);\nexport const getAllValidUploadFiles = createSelector(selectUploadFiles, files => {\n return files?.filter(file => !file.error);\n});\nexport const showUploadFileError = createSelector(selectUploadFiles, files => {\n return !!files?.find(file => file.error);\n});\nexport const getTotalUploadProgress = createSelector(getAllValidUploadFiles, files =>\n files.length ? Math.floor(files.reduce((acc, f) => acc + (f.progress || 0), 0) / files.length) : 0\n);\nexport const getInProgressFiles = createSelector(selectUploadFiles, files => files?.filter(f => f.uploadingState === UploadingState.InProgress));\nexport const isUploadInProgress = createSelector(getInProgressFiles, files => !!files?.length);\nexport const isUploadingDone = createSelector(\n getAllValidUploadFiles,\n files => files.length && !files?.find(f => f.uploadingState === UploadingState.Idle || f.uploadingState === UploadingState.InProgress)\n);\nexport const isUserConsent = createSelector(selectUploadState, state => state.userConsent);\nexport const selectedFilesForUploadCount = createSelector(getAllValidUploadFiles, files => files.length);\nexport const isUrlValidationLoading = createSelector(selectUploadState, state => state.urlValidationLoading);\nexport const urlValidationError = createSelector(selectUploadState, state => state.urlValidationError);\n\nexport const getUploadErrorType = createSelector(selectUploadFiles, files => {\n return files?.reduce((errorType, file) => file?.uploadingErrorType || errorType, null);\n});\n\nexport const getFileUploadingErrorType = (id: string) => createSelector(selectUploadState, state => state.entities[id]?.uploadingErrorType);\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { EffectsModule } from '@ngrx/effects';\nimport { StoreModule } from '@ngrx/store';\n\nimport { VIUIModule } from '@vi-ui/core';\nimport { TranslateModule } from '@ngx-translate/core';\n\nimport { SharedModule } from '@common/modules/shared/shared.module';\n\nimport { ReIndexEffects } from './core/effects/re-index.effects';\nimport { IndexingFormEffects } from './core/effects/indexing-form.effects';\nimport { FileHelperService } from './services/file-helper.service';\nimport { CustomizationDataModule } from '../customization-data/customization-data.module';\nimport { UploadDialogComponent } from './components/upload/upload-dialog/upload-dialog.component';\nimport { UploadGuideComponent } from './components/upload/upload-guide/upload-guide.component';\nimport { UploadSourceComponent } from './components/upload/upload-source/upload-source.component';\nimport { IndexingPresetsComponent } from './components/shared/settings/indexing-presets/indexing-presets.component';\nimport { IndexingSettingsBrandCategoriesComponent } from './components/shared/settings/indexing-settings-brand-categories';\nimport { IndexingSettingsPeopleModelsComponent } from './components/shared/settings/people-models/indexing-settings-people-models.component';\n// eslint-disable-next-line max-len\nimport { IndexingSettingsLogoGroupsComponent } from './components/shared/settings/indexing-settings-logo-groups/indexing-settings-logo-groups.component';\nimport { FileInformationComponent } from './components/shared/settings/file-information/file-information.component';\nimport { UploadEffects } from './core/effects/upload.effects';\nimport { reducers } from './core/reducers';\nimport { IndexingStoreService } from './services/indexing-store.service';\nimport { IndexingFormComponent } from './components/shared/indexing-form/indexing-form.component';\nimport { IndexingSummaryDialogComponent } from './components/shared/indexing-summary-dialog/indexing-summary-dialog.component';\nimport { IndexingSettingsGeneralComponent } from './components/shared/settings/indexing-settings-general/indexing-settings-general.component';\nimport { IndexingLanguageComponent } from './components/shared/settings/indexing-language/indexing-language.component';\nimport { FileNamesComponent } from './components/shared/settings/file-names/file-names.component';\nimport { FileNameInputComponent } from './components/shared/file-name-input/file-name-input.component';\nimport { ReIndexDialogComponent } from './components/re-index/re-index-dialog/re-index-dialog.component';\nimport { ConfirmExitIndexingComponent } from './components/shared/confirm-exit-indexing/confirm-exit-indexing.component';\nimport { UploadConsentComponent } from './components/shared/upload-consent/upload-consent.component';\nimport { UploadSummaryPageComponent } from './components/upload/summary-page/upload-summary-page.component';\nimport { IndexingFaceGateStripComponent } from './components/shared/indexing-face-gate-strip/indexing-face-gate-strip.component';\nimport { EdgeUploadEffects } from './core/effects/edge-upload.effects';\nimport { PresetHelperService } from './services/preset-helper.service';\nimport { IndexingSummaryComponent } from './components/shared/indexing-summary/indexing-summary.component';\nimport { ReIndexSummaryPageComponent } from './components/re-index/re-index-summary-page/re-index-summary-page.component';\nimport { ExcludeAIsHelperService } from './services/exclude-ais-helper.service';\nimport { IndexingReviewPageComponent } from './components/shared/indexing-review-page/indexing-review-page.component';\n\n@NgModule({\n declarations: [\n UploadDialogComponent,\n UploadGuideComponent,\n UploadSourceComponent,\n IndexingPresetsComponent,\n IndexingFormComponent,\n IndexingSummaryDialogComponent,\n IndexingSettingsPeopleModelsComponent,\n FileInformationComponent,\n FileNamesComponent,\n IndexingSettingsGeneralComponent,\n IndexingLanguageComponent,\n FileNameInputComponent,\n IndexingSettingsBrandCategoriesComponent,\n ReIndexDialogComponent,\n UploadConsentComponent,\n ConfirmExitIndexingComponent,\n UploadSummaryPageComponent,\n IndexingSummaryComponent,\n ReIndexSummaryPageComponent,\n IndexingFaceGateStripComponent,\n IndexingSettingsLogoGroupsComponent,\n IndexingReviewPageComponent\n ],\n providers: [IndexingStoreService, FileHelperService, PresetHelperService, ExcludeAIsHelperService],\n imports: [\n VIUIModule,\n TranslateModule,\n CommonModule,\n SharedModule,\n FormsModule,\n CustomizationDataModule,\n StoreModule.forFeature('indexing', reducers),\n EffectsModule.forFeature([UploadEffects, EdgeUploadEffects, IndexingFormEffects, ReIndexEffects])\n ]\n})\nexport class IndexingModule {}\n","import { PrivacyMode } from '@common/modules/core/interfaces';\nimport { APIErrors } from '@common/modules/core/services/toast/errors';\nimport { StreamingPreset } from '@common/modules/shared/interfaces';\nimport { ExcludableAIsModels, SupportedAIModels } from '@common/modules/api/interfaces';\n\nimport { IndexingPreset } from './components/shared/settings';\nimport { LanguageName } from '../core/interfaces';\n\nexport enum ErrorType {\n FileSize = 'FileSize',\n FileExtension = 'FileExtension'\n}\n\nexport enum UploadingStateError {\n BlobStorageFailed = 'BlobStorageFailed',\n BlobStorageInitFailed = 'BlobStorageInitFailed',\n GetSasFailed = 'GetSasFailed',\n GetSasInitFailed = 'GetSasInitFailed',\n UploadToServerInitFailed = 'UploadToServerInitFailed',\n UploadToEdgeInitFailed = 'UploadToEdgeInitFailed',\n UploadToServerFailed = 'UploadToServerFailed',\n UploadToEdgeFailed = 'UploadToEdgeFailed',\n GetVideoInfoFailed = 'getVideoInfoFailed'\n}\n\nexport interface IFileBlob extends File {\n uploadUrl?: string;\n sasRelativePath?: string;\n baseUrl?: string;\n relativePath?: string;\n sasToken?: string;\n blobPath?: string;\n}\n\nexport interface IFile {\n id: string;\n name: string;\n fileContent?: File;\n error?: {\n errorType: ErrorType;\n };\n progress?: number;\n uploadingState?: UploadingState;\n uploadingStateError?: UploadingStateError;\n uploadingErrorType?: APIErrors;\n url?: string;\n contentMD5?: string;\n size?: number;\n}\n\nexport interface IIndexingSettings {\n name?: string;\n privacy?: PrivacyMode;\n languageId?: string;\n indexingPreset?: IndexingPreset;\n excludeRAI?: boolean;\n excludeAIs?: ExcludableAIsModels[];\n streamingPreset?: StreamingPreset;\n peopleModelId?: string;\n brandsCategories?: string;\n logoGroupId?: string;\n customizationModelOption?: string;\n metadata?: string;\n description?: string;\n}\n\nexport type SupportedAIsMap = {\n [key in SupportedAIModels]?: IUISupportedAis;\n};\n\nexport interface IUISupportedAis extends Microsoft.VideoIndexer.Contracts.SupportedAIs {\n displayName: string;\n checked: boolean;\n disabled?: boolean;\n isRequired?: boolean;\n info?: string;\n tooltip?: {\n show: (ai: ExcludableAIsModels) => boolean;\n text: string;\n };\n}\n\nexport enum UploadMode {\n URL = 'URL',\n File = 'File'\n}\n\nexport enum IndexingMode {\n Upload = 'UPLOAD',\n ReIndex = 'RE_INDEX'\n}\n\nexport enum AdvancedSettings {\n General = 'GENERAL',\n FileNames = 'FILE_NAMES',\n IndexingPreset = 'INDEXING_PRESET',\n PeopleModels = 'PEOPLE_MODELS',\n BrandCategories = 'BRAND_CATEGORIES',\n LogoGroups = 'LOGO_GROUPS',\n FileInfo = 'FILE_INFO'\n}\n\nexport interface IIndexingLanguage {\n name: string;\n languageCode: string;\n id: string;\n disabled: boolean;\n}\n\nexport enum IndexingLanguageType {\n SpeechModel = 'SpeechModel',\n LanguageModel = 'LanguageModel',\n Auto = 'Auto',\n Language = 'Language',\n KeepSource = 'KeepSource'\n}\n\nexport enum UploadingState {\n Idle = 'IDLE',\n InProgress = 'IN_PROGRESS',\n Completed = 'COMPLETED',\n Failed = 'FAILED'\n}\n\nexport enum LanguageAutoDetectMode {\n None = 'None',\n Single = 'Single',\n Multi = 'Multi'\n}\n\nexport const defaultBrandCategory = 'Default';\n\nexport interface ILanguage {\n key: Microsoft.VideoIndexer.Contracts.LanguageV2;\n name: LanguageName;\n rtl?: boolean;\n sourceLanguage?: boolean;\n supportedUserLocale?: boolean;\n supportedCustomization?: boolean;\n padding?: number;\n type?: IndexingLanguageType;\n}\n","export const resources = {\n NoMetadata: '',\n NoDescription: ''\n};\n","import { HttpEventType, HttpResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\n\nimport { Observable } from 'rxjs';\n\nimport { ApiService } from '@common/modules/api/services/api.service';\nimport { IApiSasContract } from '@common/modules/api/interfaces';\nimport { browserDetect } from '@common/modules/utils/browserDetect';\n\nimport { IFileBlob } from '../interfaces';\n\ninterface IUploadFileBlob {\n file: IFileBlob;\n fileUrl: string;\n totalBytesRemaining: number;\n bytesUploaded: number;\n currentFilePointer: number;\n maxBlockSize: number;\n blockIds: string[];\n cancelled: boolean;\n reader: FileReader;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AzureBlobStorageService {\n private readonly defaultBlockSize = 1024 * 4 * 1024; // 4 MB\n private readonly blockIdPrefix = 'block-';\n\n constructor(private apiService: ApiService) {}\n\n public uploadToBlobStorage(file: IFileBlob, sas: IApiSasContract) {\n // Check that file exists\n if (!file || !sas) {\n return;\n }\n const fileBlob = this.initParameters(file, sas);\n\n // The file is less than 256MB\n if (file.size < 1024 * 1024 * 256) {\n return this.apiService.Account.uploadToBlobStorage(fileBlob.fileUrl, fileBlob.file, this.getContentType(fileBlob.file.type));\n }\n\n // The file is larger than 256MB than upload in blocks.\n return this.uploadInBlocks(fileBlob);\n }\n\n public getContentType(type: string) {\n if (!type || type === 'text/plain') {\n return 'video/mp4';\n }\n return type;\n }\n\n public generateFile(fileParts: IFileBlob): File {\n let file;\n const currentBrowser = browserDetect();\n // File API is not supported on edge browser under version 19\n if (currentBrowser.browser === 'Edge' && currentBrowser.version < 19) {\n const fileBlob = new Blob([fileParts], { type: fileParts.type });\n file = this.blobToFile(fileBlob, fileParts.name);\n } else {\n file = new File([fileParts], fileParts.name, { type: fileParts.type });\n }\n\n return file;\n }\n\n private initParameters(file: IFileBlob, sas: IApiSasContract): IUploadFileBlob {\n return {\n currentFilePointer: 0,\n bytesUploaded: 0,\n blockIds: [],\n cancelled: false,\n totalBytesRemaining: file.size,\n reader: null,\n maxBlockSize: file.size < this.defaultBlockSize ? file.size : this.defaultBlockSize,\n file,\n fileUrl: sas.baseUrl + sas.sasToken\n };\n }\n\n private uploadInBlocks(blobFile: IUploadFileBlob): Observable {\n return new Observable(obs => {\n // Init reader\n blobFile.reader = new FileReader();\n // On loaded block ended\n blobFile.reader.onloadend = event => {\n this.onReaderLoadEnd(event, obs, blobFile);\n };\n\n // Read file\n this.readFileInBlocks(obs, blobFile);\n });\n }\n\n private onReaderLoadEnd(event, obs, blobFile: IUploadFileBlob) {\n // event not ready state or cancelled\n if (event.target.readyState !== 2 || blobFile.cancelled) {\n return;\n }\n\n const url = blobFile.fileUrl + '&comp=block&blockid=' + blobFile.blockIds[blobFile.blockIds.length - 1];\n\n // convert buffer bytes to blob and add it to form data\n const uploaded = new Uint8Array(event.target.result);\n const blob = new Blob([uploaded.buffer]);\n\n // upload one block to blob storage\n this.apiService.Account.uploadToBlobStorage(url, blob, blobFile.file.type).subscribe({\n next: (res: HttpResponse) => {\n if (res.type !== HttpEventType.Response) {\n return;\n }\n blobFile.bytesUploaded += uploaded.length;\n const prog = {\n type: HttpEventType.UploadProgress,\n loaded: parseFloat(blobFile.bytesUploaded.toString()).toFixed(2),\n total: parseFloat(blobFile.file.size.toString()).toFixed(2)\n };\n obs.next(prog);\n this.readFileInBlocks(obs, blobFile);\n },\n error: error => {\n obs.error(error);\n }\n });\n }\n\n private readFileInBlocks(obs, blobFile: IUploadFileBlob) {\n // Cancel upload\n if (blobFile.cancelled) {\n return;\n }\n\n // Finish put all blocks\n if (blobFile.totalBytesRemaining <= 0) {\n this.commitBlockList(obs, blobFile);\n return;\n }\n\n // Read next block from remaining bytes;\n const fileContent = blobFile.file.slice(blobFile.currentFilePointer, blobFile.currentFilePointer + blobFile.maxBlockSize);\n const blockId = this.blockIdPrefix + this.pad(blobFile.blockIds.length, 6);\n blobFile.blockIds.push(btoa(blockId));\n blobFile.reader.readAsArrayBuffer(fileContent);\n\n // Update parameters to read next block\n blobFile.currentFilePointer += blobFile.maxBlockSize;\n blobFile.totalBytesRemaining -= blobFile.maxBlockSize;\n blobFile.maxBlockSize = blobFile.totalBytesRemaining < blobFile.maxBlockSize ? blobFile.totalBytesRemaining : blobFile.maxBlockSize;\n }\n\n private pad(number, length) {\n let str = '' + number;\n while (str.length < length) {\n str = '0' + str;\n }\n return str;\n }\n\n private commitBlockList(obs, blobFile: IUploadFileBlob) {\n const url = blobFile.fileUrl + '&comp=blocklist';\n let requestBody = '';\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < blobFile.blockIds.length; i++) {\n requestBody += '' + blobFile.blockIds[i] + '';\n }\n requestBody += '';\n this.apiService.Account.commitUploadBlockList(url, requestBody, blobFile.file.type).subscribe({\n next: res => {\n obs.next(res);\n },\n error: error => {\n obs.error(error);\n }\n });\n }\n\n private blobToFile(blobFile: Blob, fileName: string): File {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const blob: any = blobFile;\n blob.lastModifiedDate = new Date();\n blob.name = fileName;\n return blob as File;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { cloneDeep } from 'lodash-es';\n\nimport { ExcludableAIsModels } from '@common/modules/api/interfaces';\n\nimport { IndexingPreset, presetToRequiredAIsMap } from '../components/shared/settings/indexing-presets/interfaces';\nimport { IUISupportedAis, SupportedAIsMap } from '../interfaces';\n\n@Injectable()\nexport class ExcludeAIsHelperService {\n public readonly DISPLAY_NAME_KEY = 'DisplayName';\n\n public readonly ROOT_SENSITIVE_MODELS = [\n ExcludableAIsModels.Emotions,\n ExcludableAIsModels.Faces,\n ExcludableAIsModels.Labels,\n ExcludableAIsModels.ObservedPeople\n ];\n\n private readonly ROOT_FACE_GATED_MODELS = [ExcludableAIsModels.Faces];\n private readonly INFO_MODELS = [ExcludableAIsModels.Entities, ExcludableAIsModels.Clapperboard];\n\n private _sensitiveAIs: ExcludableAIsModels[] = [];\n private _faceGatedAIs: ExcludableAIsModels[] = [];\n\n constructor() {}\n\n get sensitiveAIs() {\n return this._sensitiveAIs;\n }\n\n get faceGatedAIs() {\n return this._faceGatedAIs;\n }\n\n set sensitiveAIs(value: ExcludableAIsModels[]) {\n this._sensitiveAIs = value;\n }\n\n set faceGatedAIs(value: ExcludableAIsModels[]) {\n this._faceGatedAIs = value;\n }\n\n public getSupportedAIsMap(\n supportedAIs: Microsoft.VideoIndexer.Contracts.SupportedAIs[],\n preset: IndexingPreset,\n isAccountFaceGated: boolean,\n excludeAIs: ExcludableAIsModels[]\n ): SupportedAIsMap {\n this.resetAIsLists();\n let supportedAIsMap = {} as SupportedAIsMap;\n const requiredAIs = this.getRequiredAIsByPreset(preset);\n requiredAIs.forEach(requiredAI => {\n supportedAIsMap[requiredAI.name] = requiredAI;\n });\n\n const supportedAIsResponseAsMap = this.supportedAIsResponseAsMap(supportedAIs);\n this.updateSensitiveAIsList(supportedAIsResponseAsMap);\n\n // uncheck the excluded AIs\n this.uncheckModels(excludeAIs, supportedAIsResponseAsMap);\n\n // if account is face gated, update face gated AIs list, and unchecked and disable them\n if (isAccountFaceGated) {\n this.updateFaceGateAIsList(supportedAIsResponseAsMap);\n }\n\n supportedAIsMap = { ...supportedAIsMap, ...supportedAIsResponseAsMap };\n return supportedAIsMap;\n }\n\n public compareSupportedAIs(firstAI: IUISupportedAis, secondAI: IUISupportedAis) {\n // Sort by disabled state first (putting disabled AIs first)\n if (firstAI.isRequired !== secondAI.isRequired) {\n return firstAI.isRequired ? -1 : 1;\n }\n\n // If disabled state is the same, sort by displayName\n return firstAI.displayName.localeCompare(secondAI.displayName);\n }\n\n public getRequiredAIsByPreset(preset: IndexingPreset): IUISupportedAis[] {\n const requiredAIs = presetToRequiredAIsMap[preset];\n\n return requiredAIs.map(requiredAI => ({\n name: requiredAI,\n displayName: requiredAI + this.DISPLAY_NAME_KEY,\n disabled: true,\n checked: true,\n isRequired: true,\n mandatoryParents: [],\n optionalParents: [],\n requireAtLeastOneOptionalParent: false,\n descendants: []\n }));\n }\n\n public supportedAIsResponseAsMap(supportedAIs: Microsoft.VideoIndexer.Contracts.SupportedAIs[]): SupportedAIsMap {\n const supportedAIsResponsesMap = {} as SupportedAIsMap;\n supportedAIs.forEach((supportedAI: Microsoft.VideoIndexer.Contracts.SupportedAIs) => {\n supportedAIsResponsesMap[supportedAI.name] = {\n name: supportedAI.name,\n mandatoryParents: supportedAI.mandatoryParents,\n optionalParents: supportedAI.optionalParents,\n descendants: supportedAI.descendants,\n requireAtLeastOneOptionalParent: supportedAI.requireAtLeastOneOptionalParent,\n checked: true,\n disabled: false,\n displayName: supportedAI.name + this.DISPLAY_NAME_KEY,\n info: this.getModelInfo(supportedAI.name)\n };\n });\n return supportedAIsResponsesMap;\n }\n\n public isSensitiveAI(modelName: ExcludableAIsModels): boolean {\n return this.sensitiveAIs.includes(modelName) && !this.faceGatedAIs.includes(modelName);\n }\n\n public updateFaceGateAIsList(supportedAIsMap: SupportedAIsMap) {\n this.faceGatedAIs = this.updateAIList(supportedAIsMap, this.ROOT_FACE_GATED_MODELS, true);\n }\n\n public updateSensitiveAIsList(supportedAIsMap: SupportedAIsMap) {\n this.sensitiveAIs = this.updateAIList(cloneDeep(supportedAIsMap), this.ROOT_SENSITIVE_MODELS);\n }\n\n public updateAIList(supportedAIsMap: SupportedAIsMap, models: ExcludableAIsModels[], shouldDisable: boolean = false): ExcludableAIsModels[] {\n const fullModels = new Set();\n\n models.forEach(model => {\n if (supportedAIsMap[model]) {\n this.uncheckModel(model, supportedAIsMap, fullModels);\n this.disableModel(model, supportedAIsMap);\n this.uncheckDependentModels(supportedAIsMap, model, fullModels, shouldDisable);\n }\n });\n\n return Array.from(fullModels);\n }\n\n public uncheckDependentModels(\n supportedAIsMap: SupportedAIsMap,\n modelName: ExcludableAIsModels,\n excludeAIsSet: Set,\n shouldDisable: boolean = false\n ) {\n // get all models that are immediately dependent on the current model\n const aiToUncheck = supportedAIsMap[modelName].descendants;\n\n // if there are no models to uncheck, return\n if (aiToUncheck.length === 0) {\n return;\n }\n\n // for each model that is immediately dependent on the current model check if it should be unchecked\n aiToUncheck.forEach(ai => {\n // if the model should be unchecked, uncheck it and add it to the set of models to uncheck.\n // continue to check if there are models that are dependent on the current ai\n if (this.shouldUncheckModel(ai, supportedAIsMap)) {\n this.uncheckModel(ai, supportedAIsMap, excludeAIsSet);\n if (shouldDisable) {\n this.disableModel(ai, supportedAIsMap);\n }\n this.uncheckDependentModels(supportedAIsMap, ai, excludeAIsSet);\n }\n });\n }\n\n public uncheckModel(aiToUncheck: ExcludableAIsModels, supportedAIsMap: SupportedAIsMap, excludeAIsSet: Set) {\n if (supportedAIsMap[aiToUncheck]) {\n supportedAIsMap[aiToUncheck].checked = false;\n excludeAIsSet?.add(aiToUncheck);\n }\n }\n\n public checkModel(aiToCheck: ExcludableAIsModels, supportedAIsMap: SupportedAIsMap, excludeAIsSet: Set) {\n if (supportedAIsMap[aiToCheck]) {\n supportedAIsMap[aiToCheck].checked = true;\n excludeAIsSet?.delete(aiToCheck);\n }\n }\n\n public checkModels(\n aisToCheck: ExcludableAIsModels[],\n supportedAIsMap: SupportedAIsMap,\n excludeAIsSet: Set,\n shouldEnable: boolean = false\n ) {\n aisToCheck.forEach(ai => {\n if (supportedAIsMap[ai].disabled && !shouldEnable) {\n return;\n }\n\n this.checkModel(ai, supportedAIsMap, excludeAIsSet);\n if (shouldEnable) {\n this.enableModel(ai, supportedAIsMap);\n }\n });\n }\n\n public uncheckModels(\n aisToUncheck: ExcludableAIsModels[],\n supportedAIsMap: SupportedAIsMap,\n excludeAIsSet: Set = null,\n shouldDisable: boolean = false\n ) {\n aisToUncheck.forEach(ai => {\n this.uncheckModel(ai, supportedAIsMap, excludeAIsSet);\n\n if (shouldDisable) {\n this.disableModel(ai, supportedAIsMap);\n }\n });\n }\n\n public enableModel(aiToEnable: ExcludableAIsModels, supportedAIsMap: SupportedAIsMap) {\n if (supportedAIsMap[aiToEnable]) {\n supportedAIsMap[aiToEnable].disabled = false;\n }\n }\n\n public disableModel(aiToDisable: ExcludableAIsModels, supportedAIsMap: SupportedAIsMap) {\n if (supportedAIsMap[aiToDisable]) {\n supportedAIsMap[aiToDisable].disabled = true;\n }\n }\n\n public markRequiredModelsAsChecked(\n supportedAIsMap: SupportedAIsMap,\n modelName: ExcludableAIsModels,\n excludeAIsSet: Set,\n shouldEnable: boolean = false\n ) {\n const aisToCheck = [\n ...supportedAIsMap[modelName].mandatoryParents,\n ...(supportedAIsMap[modelName].requireAtLeastOneOptionalParent ? supportedAIsMap[modelName].optionalParents : [])\n ];\n\n if (aisToCheck.length === 0) {\n return;\n }\n this.checkModels(aisToCheck, supportedAIsMap, excludeAIsSet, shouldEnable);\n aisToCheck.forEach(ai => this.markRequiredModelsAsChecked(supportedAIsMap, ai, excludeAIsSet, shouldEnable));\n }\n\n public disableSensitiveAIs(excludeAIsSet: Set, supportedAIsMap: SupportedAIsMap) {\n this.uncheckModels(this.sensitiveAIs, supportedAIsMap, excludeAIsSet, /* should disable */ true);\n\n // check if uncheck sensitive models with the existing excludeAIs list affect other models\n this.sensitiveAIs.forEach(ai => {\n this.uncheckDependentModels(supportedAIsMap, ai, excludeAIsSet);\n });\n }\n\n public enableSensitiveAIs(excludeAIsSet: Set, supportedAIsMap: SupportedAIsMap) {\n // enable all sensitive AIs that are not face gated. if the account is not face gated, the face gated AIs list will be empty\n const AIsToEnable = this.sensitiveAIs.filter(ai => !this.faceGatedAIs.includes(ai));\n this.checkModels(AIsToEnable, supportedAIsMap, excludeAIsSet, /* should enable */ true);\n }\n\n public getSupportedAIsState(supportedAIs: SupportedAIsMap) {\n return Object.keys(supportedAIs).map(ai => ({\n name: ai,\n checked: supportedAIs[ai].checked,\n disabled: supportedAIs[ai].disabled\n }));\n }\n\n private shouldUncheckModel(modelName: ExcludableAIsModels, supportedAIsMap: SupportedAIsMap): boolean {\n const mandatoryParents = supportedAIsMap[modelName].mandatoryParents;\n const optionalParents = supportedAIsMap[modelName].optionalParents;\n const requireAtLeastOneOptionalParent = supportedAIsMap[modelName].requireAtLeastOneOptionalParent;\n\n // The model should be unchecked if any of its mandatory parent models are unchecked\n for (const parent of mandatoryParents) {\n if (!supportedAIsMap[parent].checked) {\n return true;\n }\n }\n\n // if require at least one optional parent, the model should be unchecked if all of its optional parent models are unchecked\n if (requireAtLeastOneOptionalParent) {\n return !optionalParents.some(parent => supportedAIsMap[parent].checked);\n }\n\n return false;\n }\n\n private getModelInfo(modelName: ExcludableAIsModels) {\n return this.INFO_MODELS.includes(modelName) ? `${modelName}TooltipInfo` : '';\n }\n\n private resetAIsLists() {\n this.sensitiveAIs = [];\n this.faceGatedAIs = [];\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { guid } from '@common/modules/utils/string';\nimport { FeatureSwitchService } from '@common/modules/core/services/feature-switch/feature-switch.service';\nimport { FeatureSwitch } from '@common/modules/core/services/interfaces';\n\nimport { IFile, ErrorType } from '../interfaces';\nimport { getFileName } from '../utils/file';\nimport { getFileType, CloudMediaFileFormats, EdgeMediaFileFormats, ImageFileFormats } from '../utils/mediaFormats';\nimport { EdgeExtensionsStoreService } from '../../core/services/edge-extensions-store.service';\n\n@Injectable()\nexport class FileHelperService {\n // Max size 2 GB from file system\n private readonly MAX_FILE_SIZE_FILE_SYSTEM = Math.pow(1024, 3) * 2;\n private readonly MAX_VIDEOS_CLOUD_LIMIT = 10;\n private readonly MAX_VIDEOS_EDGE_LIMIT = 10;\n private isImageUploadSupported: boolean = false;\n private hasSelectedEdgeExtension: boolean = false;\n private filesType: string;\n constructor(private edgeExtensionsStoreService: EdgeExtensionsStoreService, private featureSwitchService: FeatureSwitchService) {\n this.isImageUploadSupported = this.featureSwitchService.featureSwitch(FeatureSwitch.ImageUploadSupport);\n this.edgeExtensionsStoreService.hasSelectedEdgeExtension$.subscribe((hasSelectedEdgeExtension: boolean) => {\n this.filesType = this.getSupportedMediaTypesPattern();\n this.hasSelectedEdgeExtension = hasSelectedEdgeExtension;\n });\n }\n\n public get maxVideosLimit(): number {\n return this.hasSelectedEdgeExtension ? this.MAX_VIDEOS_EDGE_LIMIT : this.MAX_VIDEOS_CLOUD_LIMIT;\n }\n\n public extractFileProperties(file: File): IFile {\n const fileResult: IFile = {\n id: guid(),\n name: getFileName(file?.name),\n size: file?.size,\n fileContent: file\n };\n const errorType = this.validateFile(file);\n if (errorType) {\n fileResult.error = { errorType };\n }\n\n return fileResult;\n }\n\n public validateFile(file: File): ErrorType | null {\n let errorType: ErrorType | null = null;\n const fileExtension = getFileType(file.name)?.toLowerCase();\n const fileType = file?.type;\n // Separate type and subtype\n const typeArr = fileType.split('/');\n // In case file has wrong type (includes type/*) or wrong extension\n if (!fileExtension || (!this.filesType.includes(fileExtension) && (!fileType || !this.filesType.includes(`${typeArr[0]}/*`)))) {\n errorType = ErrorType.FileExtension;\n // If file size is bigger than 2GB\n } else if (file.size > this.MAX_FILE_SIZE_FILE_SYSTEM) {\n errorType = ErrorType.FileSize;\n }\n\n return errorType;\n }\n\n public getSupportedMediaTypesPattern(): string {\n let mediaTypes: string[];\n if (this.hasSelectedEdgeExtension) {\n mediaTypes = Object.values(EdgeMediaFileFormats);\n } else {\n mediaTypes = Object.values(CloudMediaFileFormats);\n if (this.isImageUploadSupported) {\n mediaTypes.push('image/*');\n mediaTypes = mediaTypes.concat(Object.values(ImageFileFormats));\n }\n mediaTypes.push('audio/*');\n }\n return `.${mediaTypes.join(',.')}`;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Store } from '@ngrx/store';\n\nimport { Observable, combineLatestWith, map, switchMap, withLatestFrom } from 'rxjs';\n\nimport { CoreStoreService } from 'src/apps/web/src/core/services/core-store.service';\n\nimport { PrivacyMode } from '@common/modules/core/interfaces';\nimport { FeatureSwitchService } from '@common/modules/core/services/feature-switch/feature-switch.service';\nimport { APIErrors } from '@common/modules/core/services/toast/errors';\nimport { StreamingPreset, VideoModerationState, VideoReviewState } from '@common/modules/shared/interfaces';\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\nimport { FeatureSwitch } from '@common/modules/core/services/interfaces';\nimport { ExcludableAIsModels } from '@common/modules/api/interfaces';\n\nimport { EdgeExtensionsStoreService } from '../../core/services/edge-extensions-store.service';\nimport { DEFAULT_LOCALE_LANGUAGE_KEY } from '../../core/supportedLocaleLanguages';\nimport { SpeechModelStoreService } from '../../customization-data/services/speech/speech-model-store.service';\nimport { SupportedLanguagesStoreService } from '../../customization-data/services/supported-languages-store.service';\nimport { IndexingPreset } from '../components/shared/settings';\nimport * as actions from '../core/actions';\nimport * as fromIndexing from '../core/selectors';\nimport { IFile, SupportedAIsMap } from '../interfaces';\nimport { sortLanguageCompare } from '../utils/languageSort';\nimport { CustomizationDataStoreService } from './../../customization-data/services/customization-data-store.service';\nimport { UploadPages } from '../components/upload/interfaces';\nimport { IState } from './../core/reducers';\nimport { AdvancedSettings, IIndexingLanguage, IndexingMode, UploadMode } from './../interfaces';\nimport { ReIndexPages, FailureCode } from '../components/re-index/interfaces';\nimport { isAccountDailyCountQuotaExceeded, isAccountDailyDurationQuotaExceeded, isAccountDurationQuotaExceeded } from '../../core/effects/utils';\n\n@Injectable()\nexport class IndexingStoreService {\n constructor(\n private readonly store: Store,\n private customizationDataStoreService: CustomizationDataStoreService,\n private coreStoreService: CoreStoreService,\n private translate: TranslateHelperService,\n private speechModelStoreService: SpeechModelStoreService,\n private supportedLanguagesStore: SupportedLanguagesStoreService,\n private edgeExtensionsStore: EdgeExtensionsStoreService,\n private featureSwitchService: FeatureSwitchService\n ) {}\n\n // Files getters\n public get allValidFilesNames$(): Observable {\n return this.store.select(fromIndexing.selectFilesNames);\n }\n\n public get allFiles$(): Observable {\n return this.store.select(fromIndexing.getAllFiles);\n }\n\n public get allValidFiles$(): Observable {\n return this.store.select(fromIndexing.getAllValidFiles);\n }\n\n public get totalUploadProgress$(): Observable {\n return this.store.select(fromIndexing.getTotalUploadProgress);\n }\n\n public get isMultiFileMode$(): Observable {\n return this.store.select(fromIndexing.isMultiFileMode);\n }\n\n // Indexing Settings getters\n public get indexingSettingSummary$() {\n return this.store.select(fromIndexing.getIndexingSettingSummary);\n }\n\n public get indexingPreset$(): Observable {\n return this.store.select(fromIndexing.selectIndexingPreset);\n }\n\n public get excludeRAI$(): Observable {\n return this.store.select(fromIndexing.selectExcludeRAI);\n }\n\n public get excludeAIs$(): Observable {\n return this.store.select(fromIndexing.selectExcludeAIs);\n }\n\n public get selectedSupportedAIs$(): Observable {\n return this.store.select(fromIndexing.selectSupportedAIs);\n }\n\n public get isSupportedAIsLoaded$(): Observable {\n return this.store.select(fromIndexing.isSupportedAIsLoaded);\n }\n\n public get selectedLanguage$(): Observable {\n return this.store.select(fromIndexing.selectLanguageId);\n }\n\n public get streamingPreset$(): Observable {\n return this.store.select(fromIndexing.selectStreamingPreset);\n }\n\n public get privacy$(): Observable {\n return this.store.select(fromIndexing.selectPrivacy);\n }\n\n public get description$(): Observable {\n return this.store.select(fromIndexing.selectDescription);\n }\n\n public get metadata$(): Observable {\n return this.store.select(fromIndexing.selectMetadata);\n }\n\n public get selectedPeopleModel$(): Observable {\n return this.store.select(fromIndexing.selectedPeopleModel);\n }\n\n public get selectBrandCategories$(): Observable {\n return this.store.select(fromIndexing.selectBrandCategories);\n }\n\n public selectedLogoGroup$(): Observable {\n return this.store.select(fromIndexing.selectedLogoGroup);\n }\n\n public get selectLogoGroupId$(): Observable {\n return this.store.select(fromIndexing.selectLogoGroupId);\n }\n\n public get indexingLanguages$(): Observable {\n return this.store.select(fromIndexing.getLanguagesObject).pipe(\n withLatestFrom(this.supportedLanguagesStore.supportedLanguagesIds$),\n withLatestFrom(this.customizationDataStoreService.trainedLanguageModels$),\n withLatestFrom(this.speechModelStoreService.trainedSpeechModels$),\n withLatestFrom(this.store.select(fromIndexing.selectIndexingMode)),\n withLatestFrom(this.supportedLanguagesStore.edgeSupportedLanguages$),\n withLatestFrom(this.edgeExtensionsStore.hasSelectedEdgeExtension$),\n withLatestFrom(this.store.select(fromIndexing.selectIndexingPreset)),\n switchMap(\n ([\n [\n [[[[[{ additionalUploadLanguages, keepSource }, supportedLanguagesIds], languageModels], speechModels], mode], edgeSupportedLanguages],\n hasSelectedEdgeExtension\n ],\n indexingPreset\n ]) => {\n const additionalLanguages = additionalUploadLanguages.map(lang => ({\n id: lang.key,\n name: this.translate.getLocaleLanguage(lang.key),\n languageCode: lang.key,\n disabled: [\n IndexingPreset.AUDIO_BASIC,\n IndexingPreset.VIDEO_BASIC,\n IndexingPreset.VIDEO_STANDARD,\n IndexingPreset.VIDEO_ADVANCED,\n IndexingPreset.VIDEO_AUDIO_BASIC\n ].includes(indexingPreset)\n }));\n\n if (hasSelectedEdgeExtension) {\n const edgeLanguages = edgeSupportedLanguages\n ?.filter(lang => lang.isSourceLanguage)\n ?.map(lang => ({\n id: lang.languageCode,\n name: this.translate.getLocaleLanguage(lang.languageCode),\n languageCode: lang.languageCode,\n disabled: false\n }));\n let languages = [...edgeLanguages];\n\n // In case the edge supported API isn't working, we fallback to the default languages\n if (!languages.length) {\n languages.push({\n id: DEFAULT_LOCALE_LANGUAGE_KEY,\n name: this.translate.instant('English'),\n languageCode: DEFAULT_LOCALE_LANGUAGE_KEY,\n disabled: false\n });\n }\n if (this.featureSwitchService.featureSwitch(FeatureSwitch.EdgeMultiLid)) {\n additionalLanguages.forEach(\n lang => (lang.disabled = [IndexingPreset.AUDIO_BASIC, IndexingPreset.VIDEO_BASIC, IndexingPreset.DEFAULT].includes(indexingPreset))\n );\n languages = [...additionalLanguages, ...languages];\n }\n languages.sort(sortLanguageCompare);\n return [languages];\n }\n\n const keepSourceLanguage = {\n id: keepSource.id,\n name: this.translate.instant('ReindexModalKeepSourceValue'),\n languageCode: keepSource.id,\n disabled: false\n };\n const supportedLanguages: IIndexingLanguage[] = supportedLanguagesIds\n ?.filter(lang => lang.isSourceLanguage)\n .map(lang => ({\n id: lang.languageCode,\n name: this.translate.getLocaleLanguage(lang.languageCode),\n languageCode: lang.languageCode,\n disabled: false\n }));\n\n const mappedLanguageModels: IIndexingLanguage[] = [];\n if (languageModels?.length > 0) {\n languageModels.forEach(model => {\n const lang = supportedLanguages.find(l => l.languageCode?.toLocaleLowerCase() === model.language?.toLocaleLowerCase());\n if (!lang) {\n return;\n }\n const langModel: IIndexingLanguage = {\n id: model.languageModelId,\n name: `${lang.name} (${model.name})`,\n languageCode: model.language,\n disabled: false\n };\n mappedLanguageModels.push(langModel);\n });\n }\n const mappedSpeechModels: IIndexingLanguage[] = [];\n if (speechModels?.length > 0) {\n speechModels.forEach(model => {\n const lang = supportedLanguages.find(l => l.languageCode?.toLocaleLowerCase() === model.locale?.toLocaleLowerCase());\n if (!lang) {\n return;\n }\n const speechModel: IIndexingLanguage = {\n id: model.id,\n name: `${lang.name} (${model.displayName})`,\n languageCode: model.locale,\n disabled: false\n };\n mappedSpeechModels.push(speechModel);\n });\n }\n\n const languages = [...additionalLanguages, ...supportedLanguages, ...mappedLanguageModels, ...mappedSpeechModels];\n languages.sort(sortLanguageCompare);\n if (mode === IndexingMode.ReIndex) {\n languages.unshift(keepSourceLanguage);\n }\n return [languages];\n }\n )\n );\n }\n\n public get isIndexingSettingLoaded$(): Observable {\n return this.store.select(fromIndexing.isIndexingSettingLoaded);\n }\n\n public get isReIndexProcessing$(): Observable {\n return this.store.select(fromIndexing.isReIndexProcessing);\n }\n\n public get fileName$(): Observable {\n return this.store.select(fromIndexing.selectFileName);\n }\n\n // Indexing errors\n public get isLoadSupportedAIsError$() {\n return this.store.select(fromIndexing.isLoadSupportedAIsError);\n }\n\n // Upload settings getters\n public get displayedUploadPage$(): Observable {\n return this.store.select(fromIndexing.selectUploadDisplayedPage);\n }\n\n public get isUrlValidationLoading$(): Observable {\n return this.store.select(fromIndexing.isUrlValidationLoading);\n }\n\n public get urlValidationError$(): Observable {\n return this.store.select(fromIndexing.urlValidationError);\n }\n\n public get isUploadInProgress$(): Observable {\n return this.store.select(fromIndexing.isUploadInProgress);\n }\n\n public get isUploadingDone$(): Observable {\n return this.store.select(fromIndexing.isUploadingDone);\n }\n\n public get showUploadFileError$(): Observable {\n return this.store.select(fromIndexing.showUploadFileError);\n }\n\n public get uploadMode$(): Observable {\n return this.store.select(fromIndexing.selectUploadMode);\n }\n\n // Indexing View getters\n public get showAdvancedMode$(): Observable {\n return this.store.select(fromIndexing.selectAdvancedMode);\n }\n\n public get selectedAdvancedSettings$(): Observable {\n return this.store.select(fromIndexing.selectSelectedAdvancedSettings);\n }\n\n public get indexingMode$(): Observable {\n return this.store.select(fromIndexing.selectIndexingMode);\n }\n\n public get userConsent$(): Observable {\n return this.store.select(fromIndexing.isUserConsent);\n }\n\n public get isIndexingProcessDirty$(): Observable {\n return this.store.select(fromIndexing.selectIsIndexingProcessDirty);\n }\n\n // Upload Errors\n\n public get uploadErrorType$() {\n return this.store.select(fromIndexing.getUploadErrorType);\n }\n\n public get isEventGridError$() {\n return this.uploadErrorType$.pipe(map(errorType => errorType === APIErrors.EVENT_GRID_NOT_REGISTERED));\n }\n\n public get isAmsAadAppNotInTenantError$() {\n return this.uploadErrorType$.pipe(map(errorType => errorType === APIErrors.AMS_AAD_APPLICATION_NOT_IN_TENANT));\n }\n\n public get isAmsUnreachableError$() {\n return this.uploadErrorType$.pipe(map(errorType => errorType === APIErrors.AMS_UNREACHABLE));\n }\n\n public get isStorageUnreachableError$() {\n return this.uploadErrorType$.pipe(map(errorType => errorType === APIErrors.STORAGE_UNREACHABLE));\n }\n\n public get isStorageAccessDeniedError$() {\n return this.uploadErrorType$.pipe(map(errorType => errorType === APIErrors.STORAGE_ACCESS_DENIED));\n }\n\n public get isManagedIdentityMissingError$() {\n return this.uploadErrorType$.pipe(map(errorType => errorType === APIErrors.MANAGED_IDENTITY_MISSING));\n }\n\n public get isQuotaError$() {\n return this.uploadErrorType$.pipe(map(errorType => errorType === APIErrors.ACCOUNT_UPLOAD_QUOTA_EXCEEDED));\n }\n\n public get isBroadUploadError$() {\n return this.uploadErrorType$.pipe(\n map(\n errorType =>\n errorType === APIErrors.EVENT_GRID_NOT_REGISTERED ||\n errorType === APIErrors.AMS_AAD_APPLICATION_NOT_IN_TENANT ||\n errorType === APIErrors.AMS_UNREACHABLE ||\n errorType === APIErrors.STORAGE_UNREACHABLE ||\n errorType === APIErrors.STORAGE_ACCESS_DENIED ||\n errorType === APIErrors.MANAGED_IDENTITY_MISSING\n )\n );\n }\n\n public get isAccountDurationQuota$() {\n return this.isQuotaError$.pipe(\n combineLatestWith(this.coreStoreService.getSelectedAccountQuota$),\n map(([isQuotaError, quota]) => isQuotaError && isAccountDurationQuotaExceeded(quota))\n );\n }\n\n public get isAccountDailyCountQuota$() {\n return this.isQuotaError$.pipe(\n combineLatestWith(this.coreStoreService.getSelectedAccountQuota$),\n map(([isQuotaError, quota]) => isQuotaError && isAccountDailyCountQuotaExceeded(quota))\n );\n }\n\n public get isAccountDailyDurationQuota$() {\n return this.isQuotaError$.pipe(\n combineLatestWith(this.coreStoreService.getSelectedAccountQuota$),\n map(([isQuotaError, quota]) => isQuotaError && isAccountDailyDurationQuotaExceeded(quota))\n );\n }\n\n public getFileUploadingError(fileId: string) {\n return this.store.select(fromIndexing.getFileUploadingErrorType(fileId));\n }\n\n public isVideoInProgressError(fileId: string) {\n return this.getFileUploadingError(fileId).pipe(map(errorType => errorType === APIErrors.VIDEO_ALREADY_IN_PROGRESS));\n }\n\n public isURLWasNotFileError$(fileId: string) {\n return this.getFileUploadingError(fileId).pipe(map(errorType => errorType === APIErrors.INVALID_INPUT));\n }\n\n // Re-Index Errors\n\n public get reIndexErrorType$() {\n return this.store.select(fromIndexing.selectReIndexErrorType);\n }\n\n public get isFileNotFoundError$() {\n return this.reIndexErrorType$.pipe(map(errorType => errorType === APIErrors.BREAKDOWN_NOT_FOUND));\n }\n\n public get isVideoUrlUnreachableError$() {\n return this.reIndexErrorType$.pipe(map(errorType => errorType === FailureCode.VIDEO_URL_UNREACHABLE));\n }\n\n public get isGeneralLoadingReIndexError$() {\n return this.reIndexErrorType$.pipe(\n combineLatestWith(this.store.select(fromIndexing.selectVideoId)),\n map(([errorType, videoId]) => !videoId && errorType === APIErrors.GENERAL)\n );\n }\n\n public get isGeneralReIndexError$() {\n return this.reIndexErrorType$.pipe(\n combineLatestWith(this.store.select(fromIndexing.selectVideoId)),\n map(([errorType, videoId]) => videoId && errorType === APIErrors.GENERAL)\n );\n }\n\n public get isFileWasRemovedError$() {\n return this.reIndexErrorType$.pipe(map(errorType => errorType === APIErrors.VIDEO_REMOVED));\n }\n\n public get isAmsUnreachableReIndexError$() {\n return this.reIndexErrorType$.pipe(map(errorType => errorType === APIErrors.AMS_UNREACHABLE));\n }\n\n public get isIndexingInProgressError$() {\n return this.reIndexErrorType$.pipe(map(errorType => errorType === APIErrors.VIDEO_INDEXING_IN_PROGRESS));\n }\n\n public get isInValidInput$() {\n return this.reIndexErrorType$.pipe(map(errorType => errorType === APIErrors.INVALID_INPUT));\n }\n\n public get isFileInReviewError$() {\n return this.isInValidInput$.pipe(\n combineLatestWith(this.store.select(fromIndexing.selectModerationState)),\n combineLatestWith(this.store.select(fromIndexing.selectReviewState)),\n map(\n ([[isInvalidInputError, moderationState], reviewState]) =>\n isInvalidInputError && moderationState !== VideoModerationState.REMOVED && reviewState === VideoReviewState.IN_PROGRESS\n )\n );\n }\n\n public get isFileWasReportedError$() {\n return this.isInValidInput$.pipe(\n combineLatestWith(this.store.select(fromIndexing.selectModerationState)),\n map(([isInvalidInputError, moderationState]) => isInvalidInputError && moderationState === VideoModerationState.REMOVED)\n );\n }\n\n public get isAmsAadAppNotInTenantReIndexError$() {\n return this.reIndexErrorType$.pipe(map(errorType => errorType === APIErrors.AMS_AAD_APPLICATION_NOT_IN_TENANT));\n }\n\n public get isStorageAccessDeniedReIndexError$() {\n return this.reIndexErrorType$.pipe(map(errorType => errorType === APIErrors.STORAGE_ACCESS_DENIED));\n }\n\n public get isStorageUnreachableReIndexError$() {\n return this.reIndexErrorType$.pipe(map(errorType => errorType === APIErrors.STORAGE_UNREACHABLE));\n }\n\n public get isManageIdentityMissingReIndexError$() {\n return this.reIndexErrorType$.pipe(map(errorType => errorType === APIErrors.MANAGED_IDENTITY_MISSING));\n }\n\n public get isProjectRenderInProgressError$() {\n return this.reIndexErrorType$.pipe(map(errorType => errorType === APIErrors.PROJECT_RENDER_IN_PROGRESS));\n }\n\n public get isSourceVideoDeletedError$() {\n return this.reIndexErrorType$.pipe(map(errorType => errorType === APIErrors.SOURCE_VIDEO_DELETED));\n }\n\n // Dialogs\n public openUploadDialog() {\n this.store.dispatch(actions.openUploadDialog());\n }\n\n public openReIndexDialog(videoId: string) {\n this.store.dispatch(actions.openReIndexDialog({ videoId }));\n }\n\n // Indexing View Actions\n public toggleAdvancedMode(): void {\n this.store.dispatch(actions.toggleAdvancedMode());\n }\n\n public updateIndexingMode(mode: IndexingMode): void {\n this.store.dispatch(actions.updateIndexingMode({ mode }));\n }\n\n public updateSelectedAdvancedSettings(settings: AdvancedSettings): void {\n this.store.dispatch(actions.updateSelectedAdvancedSettings({ settings }));\n }\n\n // Upload Actions\n public uploadFiles(): void {\n this.store.dispatch(actions.uploadFiles());\n }\n\n public addUrlFile(file: IFile): void {\n this.store.dispatch(actions.addUrlFileForUpload({ file }));\n }\n\n public updateUploadPage(page: UploadPages): void {\n this.store.dispatch(actions.updateUploadPage({ page }));\n }\n\n public updateUploadMode(mode: UploadMode): void {\n this.store.dispatch(actions.updateUploadMode({ mode }));\n }\n\n public updateUseSavedIndexingSettings(use: boolean): void {\n this.store.dispatch(actions.updateUseSavedIndexingSettings({ use }));\n }\n\n public clearUrlValidationError(): void {\n this.store.dispatch(actions.updateUrlValidationError({ errorType: null }));\n }\n\n public updateUrlValidationLoading(loading: boolean): void {\n this.store.dispatch(actions.updateUrlValidationLoading({ loading }));\n }\n\n public updateUserConsent(consent: boolean) {\n this.store.dispatch(actions.updateUserConsent({ consent }));\n }\n\n // Re Index Actions\n public reIndex() {\n this.store.dispatch(actions.reIndexVideo());\n }\n\n public updateReIndexPage(page: ReIndexPages): void {\n this.store.dispatch(actions.updateReIndexPage({ page }));\n }\n\n // Re Index settings getters\n public get displayedReIndexPage$(): Observable {\n return this.store.select(fromIndexing.selectReIndexDisplayedPage);\n }\n\n // Indexing Settings Actions\n public updateIndexingPreset(preset: IndexingPreset): void {\n this.store.dispatch(actions.updateIndexingSettings({ settings: { indexingPreset: preset } }));\n }\n\n public updateExcludedRAI(exclude: boolean): void {\n this.store.dispatch(actions.updateIndexingSettings({ settings: { excludeRAI: exclude } }));\n }\n\n public updateExcludeAIs(exclude: ExcludableAIsModels[]): void {\n this.store.dispatch(actions.updateIndexingSettings({ settings: { excludeAIs: exclude } }));\n }\n\n public updateLanguageId(languageId: string) {\n this.store.dispatch(actions.updateIndexingSettings({ settings: { languageId } }));\n }\n\n public updatePrivacy(privacy: PrivacyMode) {\n this.store.dispatch(actions.updateIndexingSettings({ settings: { privacy } }));\n }\n\n public updateMetadata(metadata: string) {\n this.store.dispatch(actions.updateIndexingSettings({ settings: { metadata } }));\n }\n\n public updateDescription(description: string) {\n this.store.dispatch(actions.updateIndexingSettings({ settings: { description } }));\n }\n\n public updateStreamingPreset(streamingPreset: StreamingPreset) {\n this.store.dispatch(actions.updateIndexingSettings({ settings: { streamingPreset } }));\n }\n\n public updatePeopleModel(model: string): void {\n this.store.dispatch(actions.updateIndexingSettings({ settings: { peopleModelId: model } }));\n }\n\n public updateLogoGroup(groupId: string): void {\n this.store.dispatch(actions.updateIndexingSettings({ settings: { logoGroupId: groupId } }));\n }\n\n public updateBrandCategory(brands: string): void {\n this.store.dispatch(actions.updateIndexingSettings({ settings: { brandsCategories: brands } }));\n }\n\n public loadSupportedAIs(): void {\n this.store.dispatch(actions.loadSupportedAIs());\n }\n\n public updateSupportedAIsState(supportedAIs): void {\n this.store.dispatch(actions.updateSupportedAIsState({ supportedAIs }));\n }\n\n // Files Actions\n public removeFile(fileId: string): void {\n this.store.dispatch(actions.removeFile({ fileId }));\n }\n\n public addFilesForUpload(files: IFile[]): void {\n this.store.dispatch(actions.addUploadFiles({ files }));\n }\n\n public updateFile(fileId: string, file: Partial): void {\n this.store.dispatch(actions.updateFile({ fileId, file }));\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { IAction } from '@common/modules/shared/interfaces';\nimport { FeatureSwitchService } from '@common/modules/core/services/feature-switch/feature-switch.service';\nimport { FeatureSwitch } from '@common/modules/core/services/interfaces';\n\nimport { IndexingPreset } from '../components/shared/settings';\nimport {\n basicPreset,\n basicVideoOnlyPreset,\n basicAudioOnlyPreset,\n standardAudioOnlyPreset\n} from '../components/shared/settings/indexing-presets/actions';\n\n@Injectable()\nexport class PresetHelperService {\n public readonly displayNameKey = 'DisplayName';\n\n constructor(private featureSwitchService: FeatureSwitchService) {}\n\n public getEdgePresets(): IAction[] {\n const edgePresetsOptions = [];\n if (this.featureSwitchService.featureSwitch(FeatureSwitch.EdgeBasicPreset)) {\n edgePresetsOptions.push({ ...basicPreset, id: 'default', value: IndexingPreset.DEFAULT });\n edgePresetsOptions.push(basicVideoOnlyPreset);\n edgePresetsOptions.push(basicAudioOnlyPreset);\n } else {\n edgePresetsOptions.push({ ...basicAudioOnlyPreset, id: 'default', value: IndexingPreset.DEFAULT });\n }\n\n if (this.featureSwitchService.featureSwitch(FeatureSwitch.EdgeMultiLid)) {\n edgePresetsOptions.push(standardAudioOnlyPreset);\n }\n\n return edgePresetsOptions;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpResponse } from '@angular/common/http';\n\nimport { Observable } from 'rxjs';\nimport { BehaviorSubject } from 'rxjs';\n\nimport { ApiService } from '@common/modules/api/services/api.service';\nimport { INetworkFileInfo, IRequestParam, IUploadRequestParams } from '@common/modules/api/interfaces';\nimport { LocalStorageService } from '@common/modules/shared/services/local-storage.service';\n\nimport { SessionStorageService } from '../../../../../common/modules/shared/services/session-storage.service';\nimport { IRequestShortcutConfig } from '../../shell/angular.interfaces';\nimport { IIndexingSettings } from '../interfaces';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UploadService {\n public uploadPlayList: BehaviorSubject;\n private consentSessionKey = 'uploadConsent';\n\n constructor(\n private apiService: ApiService,\n private sessionStorageService: SessionStorageService,\n private localStorageService: LocalStorageService\n ) {\n this.uploadPlayList = new BehaviorSubject(null);\n }\n\n public get hasUserConsent() {\n return this.sessionStorageService.getItem(this.consentSessionKey) === 'true';\n }\n\n public getVideoInfo(accountId: string, url: string): Observable> {\n return this.apiService.Account.getVideoInfo(accountId, url);\n }\n\n public uploadToServer(\n accountId: string,\n urlParams: IUploadRequestParams,\n contentMD5?: string,\n paramsList?: IRequestParam[]\n ): Observable {\n const requestSettings: IRequestShortcutConfig = {};\n if (contentMD5) {\n requestSettings.headers = {\n 'Content-MD5': contentMD5\n };\n }\n return this.apiService.Account.upload(accountId, urlParams, requestSettings, paramsList);\n }\n\n public getSas(accountId: string, fileName: string, fileSize: number) {\n return this.apiService.Account.getSas(accountId, {\n videoSize: fileSize.toString(),\n fileName: fileName,\n allowEdit: true\n });\n }\n\n public updateUserConsent(consent: boolean) {\n this.sessionStorageService.setItem(this.consentSessionKey, consent.toString());\n }\n\n public setSavedIndexingSettings(accountId: string, settings: IIndexingSettings) {\n this.localStorageService.setItem(this.indexingSettingsKey(accountId), JSON.stringify(settings));\n }\n\n public getSavedIndexingSettings(accountId: string) {\n const settings = this.localStorageService.getItem(this.indexingSettingsKey(accountId));\n\n return settings ? JSON.parse(settings) : {};\n }\n\n private indexingSettingsKey(accountId: string) {\n return `vi.${accountId}.indexingSettings`;\n }\n}\n","import { IFile } from '../interfaces';\n\nexport const MAX_VIDEO_NAME_LENGTH = 80;\n\n/**\n * Check if url is valid\n * @param url\n * @returns\n */\nexport const isValidURL = (url: string): boolean => {\n try {\n new URL(url);\n return true;\n } catch (err) {\n return false;\n }\n};\n\n/**\n * Get file name from url\n * Supports url with query params\n * @param url\n * @returns file name if found, empty string otherwise\n */\nexport const getFileNameFromURL = (url: string): string => {\n if (!url) {\n return '';\n }\n const parts = url.split('?');\n const fileName = parts[0].split('/').pop();\n const fileArr = fileName.split('.');\n if (fileArr.length > 1) {\n return decodeURI(fileArr.slice(0, -1).join('.')).trim().substring(0, MAX_VIDEO_NAME_LENGTH);\n }\n return '';\n};\n\nexport const getDefaultFileName = (fileList: IFile[], prefix: string) => {\n let maxIndex = 0;\n for (const file of fileList) {\n const fileName = file.name;\n const match = fileName.match(new RegExp(`${prefix} (\\\\d+)`));\n if (match) {\n const index = parseInt(match[1], 10);\n maxIndex = Math.max(maxIndex, index);\n }\n }\n\n const newIndex = maxIndex + 1;\n const defaultFileName = `${prefix} ${newIndex}`;\n\n return defaultFileName;\n};\n/**\n * Get file name from full file name with extension\n * @param fullFileName\n * @returns\n */\nexport const getFileName = (fullFileName: string): string => {\n if (!fullFileName) {\n return '';\n }\n\n const fileArr = fullFileName.split('.');\n let fileName;\n if (fileArr.length === 1) {\n fileName = fileArr[0];\n } else {\n fileName = fileArr.slice(0, -1).join('.');\n }\n return fileName.trim().substring(0, MAX_VIDEO_NAME_LENGTH);\n};\n","import { SpecialLanguageKey } from '../../core/languages';\nimport { IIndexingLanguage } from '../interfaces';\n\n// Keep source language id (used in the UI for ReIndex)\nexport const KEEP_SOURCE_ID = 'keepSource';\n\n// Sort by language title function\n// Put first keep source and then auto detects (single and multi) at the top of the list.\nexport const sortLanguageCompare = (a: IIndexingLanguage, b: IIndexingLanguage) =>\n a.languageCode === KEEP_SOURCE_ID\n ? -1\n : b.languageCode === KEEP_SOURCE_ID\n ? 1\n : a.languageCode === SpecialLanguageKey.AUTO && b.languageCode === SpecialLanguageKey.MULTI\n ? a.name.localeCompare(b.name)\n : a.languageCode === SpecialLanguageKey.MULTI || a.languageCode === SpecialLanguageKey.AUTO\n ? -1\n : b.languageCode === SpecialLanguageKey.MULTI || b.languageCode === SpecialLanguageKey.AUTO\n ? 1\n : a.name.localeCompare(b.name);\n","// Please find reference at : https://aka.ms/upload-standard-formats\n\nexport function generateSupportedMediaTypesPattern(): string {\n const mediaTypes = Object.values(CloudMediaFileFormats);\n\n return mediaTypes ? `audio/*,.${mediaTypes.join(',.')}` : '';\n}\n\nexport enum CloudMediaFileFormats {\n FLV = 'flv',\n MXF = 'mxf',\n GXF = 'gxf',\n TS = 'ts',\n PS = 'ps',\n THREE_GP = '3gp',\n THREE_GPP = '3gpp',\n MPG = 'mpg',\n MP4 = 'mp4',\n WMV = 'wmv',\n ASF = 'asf',\n AVI = 'avi',\n M4A = 'm4a',\n M4V = 'm4v',\n ISMV = 'ismv',\n ISMA = 'isma',\n DVR_MS = 'dvr-ms',\n MKV = 'mkv',\n WAV = 'wav',\n MOV = 'mov',\n WEBM = 'webm',\n GSM = 'gsm'\n}\n\nexport enum ImageFileFormats {\n PNG = 'png',\n MJPEG = 'mjpeg',\n GIF = 'gif',\n JPG = 'jpg',\n JPEG = 'jpeg',\n TIFF = 'tiff'\n}\n\nexport enum EdgeMediaFileFormats {\n FLV = 'flv',\n MXF = 'mxf',\n MP4 = 'mp4',\n AVI = 'avi',\n WAV = 'wav',\n MOV = 'mov',\n MP3 = 'mp3'\n}\n\nexport function getFileType(file: string): string {\n // Take file name if it has an extension\n const typeRegex = new RegExp(/.+(\\.\\w{2,4})$/g);\n const typeValue = typeRegex.exec(file);\n\n if (typeValue && typeValue.length > 1) {\n return typeValue[1];\n }\n return '';\n}\n","import { UIActionType } from '@common/modules/insights/interfaces';\nimport { IAction } from '@common/modules/shared/interfaces';\n\nimport { UIInviteActionType } from '../../../../interfaces';\n\nexport const roleAssignOptionsMainAction: IAction = {\n value: 'roleAssignOptions',\n id: 'roleAssignOptions'\n};\n\nexport const ownerAction: IAction = {\n title: '',\n key: 'Owner',\n value: UIInviteActionType.OWNER,\n type: UIInviteActionType.ROLE_ASSIGNMENT,\n id: 'owner'\n};\n\nexport const contributorAction = {\n title: '',\n key: 'InviteContributor',\n value: UIInviteActionType.CONTRIBUTOR,\n type: UIInviteActionType.ROLE_ASSIGNMENT,\n id: 'contributor'\n};\n\nexport const roleAssignmentsActions: IAction[] = [\n ownerAction,\n contributorAction,\n {\n title: '',\n key: 'Remove',\n value: UIInviteActionType.REMOVE,\n type: UIInviteActionType.ROLE_ASSIGNMENT,\n id: 'contributor'\n }\n];\n\nexport const invitationsOptionsMainAction: IAction = {\n title: '',\n key: 'InviteOptions',\n value: 'InviteOptions',\n id: 'InviteOptions',\n selectable: true,\n hasDrop: true\n};\n\nexport const invitationsActions: IAction[] = [\n {\n title: '',\n key: 'InviteCopyInviteUrlLabel',\n value: UIActionType.COPY,\n type: UIInviteActionType.INVITATION,\n selectable: true,\n id: 'owner'\n },\n {\n title: '',\n key: 'Remove',\n value: UIInviteActionType.REMOVE,\n type: UIInviteActionType.INVITATION,\n selectable: true,\n id: 'contributor'\n }\n];\n","export * from './interfaces';\nexport * from './components/invite/components/invited-list/actions';\n","export enum UIInviteActionType {\n OWNER = 'OWNER',\n CONTRIBUTOR = 'CONTRIBUTOR',\n REMOVE = 'REMOVE',\n INVITATION = 'INVITATION',\n ROLE_ASSIGNMENT = 'ROLE_ASSIGNMENT'\n}\n\nexport interface IUIAccountInvitation extends Microsoft.VideoIndexer.Contracts.InvitationContract {\n removing?: boolean;\n}\n","export interface ISignInURLs {\n base: string;\n returnUrl: string;\n consent: string;\n}\n\nexport type IVendorWindowSizes = {\n [Provider in LoginProvider]: IWindowSize;\n};\n\nexport interface IWindowSize {\n width: number;\n height: number;\n}\n\nexport enum LoginProvider {\n OpenIdConnect = 'OpenIdConnect',\n Microsoft = 'Microsoft',\n LinkedIn = 'LinkedIn',\n Google = 'Google',\n Facebook = 'Facebook'\n}\n","import { Injectable, Inject } from '@angular/core';\n\nimport { AuthService } from '@common/modules/auth/services/auth.service';\nimport { UrlService } from '@common/modules/core/services/url/url.service';\nimport { WINDOW } from '@common/modules/core/services/window.token';\nimport { SessionHandlerService } from '@common/modules/shared/services/session-handler.service';\n\nimport { ISignInURLs, LoginProvider } from '../pages/login/interfaces';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LoginService {\n private urls: ISignInURLs;\n\n constructor(\n private authService: AuthService,\n private urlService: UrlService,\n private sessionHandlerService: SessionHandlerService,\n @Inject(WINDOW) private window\n ) {\n this.initProperties();\n }\n\n public get email() {\n return this.authService.authenticatedUpn;\n }\n\n public isAuthenticated() {\n return this.authService.isAuthenticated();\n }\n\n public signIn(provider: LoginProvider) {\n let returnUrl = this.urlService.getQueryParam('returnUrl') || '';\n const accountId = this.urlService.getQueryParam('accountId');\n if (returnUrl) {\n returnUrl = this.urls.returnUrl + encodeURIComponent(returnUrl);\n if (accountId) {\n returnUrl += encodeURIComponent(`&accountId=${accountId}`);\n }\n } else if (accountId) {\n returnUrl = this.urls.returnUrl + encodeURIComponent(`/?accountId=${accountId}`);\n }\n\n const sessionId = this.sessionHandlerService.sessionId;\n let sessionParam = '';\n if (sessionId) {\n sessionParam = `&aisid=${sessionId}`;\n }\n\n let sourceParam = this.urlService.getQueryParam('source') || '';\n if (sourceParam) {\n sourceParam = `&source=${sourceParam}`;\n }\n\n const env = this.urlService.getQueryParam('env') || '';\n let envParam = '';\n if (env) {\n envParam = `&env=${env}`;\n }\n\n const url = this.urls.base + provider + sessionParam + returnUrl + sourceParam + envParam;\n this.window.location.replace(url);\n }\n\n private initProperties() {\n this.urls = {\n base: '/Account/SignIn?provider=',\n returnUrl: '&returnUrl=',\n consent: 'Api/Buy/RedirectToGraphConsent/'\n };\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { AuthService } from '@common/modules/auth/services/auth.service';\nimport { LoggerService } from '@common/modules/core/services/logger/logger.service';\nimport { LocalStorageService } from '@common/modules/shared/services/local-storage.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LogoutService {\n constructor(private logger: LoggerService, private authService: AuthService, private localStorageService: LocalStorageService) {\n this.logger.log('[LogoutService] init');\n }\n\n public logout() {\n setTimeout(() => {\n this.exitAccount();\n window.location.replace('/Account/SignOut');\n }, 3000);\n }\n\n public exitAccount(): void {\n this.authService.logout();\n this.removeLastProvider();\n }\n\n private removeLastProvider(): void {\n this.localStorageService.removeItem('lastProvider');\n this.localStorageService.removeItem('accountId');\n }\n}\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from '../../../environments/environment';\nimport { setRuntimeConfigurations } from './runtime';\n\nif (environment.production) {\n enableProdMode();\n}\n\nsetRuntimeConfigurations();\n\nconst now = Date.now();\n// Load environment configurations and bootstrap the application.\nplatformBrowserDynamic()\n .bootstrapModule(AppModule)\n .then(() => {\n if (!environment.production) {\n // eslint-disable-next-line no-console\n console.info('Angular bootstrapped in ' + (Date.now() - now) + 'ms');\n }\n })\n // eslint-disable-next-line no-console\n .catch(err => console.error(err));\n","import { Injectable, Injector } from '@angular/core';\nimport { HttpErrorResponse } from '@angular/common/http';\n\nimport { Store } from '@ngrx/store';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\n\nimport { EMPTY } from 'rxjs';\nimport { catchError, switchMap, withLatestFrom } from 'rxjs/operators';\n\nimport { ApiService } from '@common/modules/api/services/api.service';\nimport { AuthService } from '@common/modules/auth/services/auth.service';\nimport { IGetIndexRequestParams } from '@common/modules/api/interfaces';\nimport { LoggerService } from '@common/modules/core/services/logger/logger.service';\nimport { VideoReviewState } from '@common/modules/shared/interfaces';\nimport { EventCategory, TrackService } from '@common/modules/core/services/track';\nimport { TRANSLATION_DELAY } from '@common/modules/translation/variables';\nimport { AccountResourceType } from '@common/modules/auth/interfaces';\nimport { ConfigService } from '@common/modules/core/services/config/config.service';\nimport { FeatureSwitchService } from '@common/modules/core/services/feature-switch/feature-switch.service';\nimport { FeatureSwitch } from '@common/modules/core/services/interfaces';\nimport * as fromMedia from '@common/modules/media-data-common/selectors/media.selectors';\nimport * as MediaActions from '@common/modules/media-data-common/actions/media.actions';\n\nimport { MediaService } from '../../media/services/media.service';\nimport { getARMLocation } from '../../core/effects/utils';\nimport * as fromCore from '../../core/selectors';\nimport * as fromRouter from '../../core/reducers/router';\nimport * as GalleryActions from '../../gallery/core/actions/gallery.actions';\nimport * as AccountsActions from '../../core/actions/accounts.actions';\n\n@Injectable()\nexport class MediaEffects {\n public loadMedias$ = createEffect(() =>\n this.actions$.pipe(\n ofType(MediaActions.loadVideoIndex),\n withLatestFrom(this.routerStore.select(fromRouter.getRouteParams)),\n withLatestFrom(this.store.select(fromMedia.getMediaIndexIds)),\n withLatestFrom(this.store.select(fromCore.selectAllAccounts)),\n switchMap(([[[{ selectAccount }, routeParams], mediaIds], userAccounts]) => {\n const accountId: string = routeParams?.accountId;\n const videoId: string = routeParams?.videoId;\n this.store.dispatch(MediaActions.selectMediaIndex({ id: videoId }));\n if (mediaIds && mediaIds.includes(videoId)) {\n this.logger.log(`[MediaEffects] Index already loaded :) videoId: ${videoId}`);\n this.trackService.track('media.effects.load_media.index_already_loaded', {\n category: EventCategory.MEDIA\n });\n return EMPTY;\n }\n this.logger.log(`[MediaEffects] Load Index ny route accountId: ${accountId} videoId: ${videoId}`);\n\n this.trackService.track('media.effects.load_media.load_index', {\n category: EventCategory.MEDIA\n });\n\n const params: IGetIndexRequestParams = {};\n params.includeStreamingUrls = false;\n params.includeSummarizedInsights = !this.featureSwitchService.featureSwitch(FeatureSwitch.DisableSummarizedInsights);\n const account = userAccounts[accountId];\n if (account) {\n params.allowEdit = true;\n let location = account.location;\n if (account?.resourceType === AccountResourceType.ARM) {\n // For dev and local environment we need to map the Arm Account location to the environment location\n location = getARMLocation(account, this.configService);\n }\n this.apiService.setApiBaseLocation(location, account.accountType);\n this.apiService.setApiMediaLocation(location);\n this.authService.UserAccount = account;\n if (selectAccount) {\n this.store.dispatch(AccountsActions.selectAccount({ id: account.id }));\n }\n }\n\n const timeStamp = window.performance.now();\n return this.apiService.Account.Video.getVideoIndex(accountId, videoId, params).pipe(\n switchMap((result: Microsoft.VideoIndexer.Contracts.PlaylistContractV2) => {\n const timeTaken = window.performance.now() - timeStamp;\n this.trackService.track('media.effects.load_media.get_video_index_success', {\n category: EventCategory.MEDIA,\n data: {\n timeTaken: timeTaken,\n videoDuration: result?.durationInSeconds\n }\n });\n return [MediaActions.upsertMediaIndex({ mediaIndex: result })];\n }),\n catchError((err: HttpErrorResponse) => {\n const timeTaken = window.performance.now() - timeStamp;\n this.trackService.track('media.effects.load_media.get_video_index_failed', {\n category: EventCategory.MEDIA,\n data: {\n timeTaken: timeTaken,\n isAuthenticated: this.authService.isAuthenticated(),\n error: err\n }\n });\n return [MediaActions.loadMediaFailure({ error: err })];\n })\n );\n })\n )\n );\n\n public loadProjects$ = createEffect(() =>\n this.actions$.pipe(\n ofType(MediaActions.loadProjectIndex),\n withLatestFrom(this.routerStore.select(fromRouter.getRouteParams)),\n withLatestFrom(this.store.select(fromMedia.getMediaIndexIds)),\n withLatestFrom(this.store.select(fromCore.selectAllAccounts)),\n switchMap(([[[{}, routeParams], mediaIds], accountIds]) => {\n const accountId: string = routeParams?.accountId;\n const videoId: string = routeParams?.videoId;\n this.store.dispatch(MediaActions.selectMediaIndex({ id: videoId }));\n if (mediaIds && mediaIds.includes(videoId)) {\n this.logger.log(`[MediaEffects] Project already loaded :) videoId: ${videoId}`);\n return EMPTY;\n }\n\n this.logger.log(`[MediaEffects] Load Project ny route accountId: ${accountId} videoId: ${videoId}`);\n\n let params: IGetIndexRequestParams = {};\n params = { language: 'en-US' };\n params.includeStreamingUrls = false;\n params.includeSummarizedInsights = !this.featureSwitchService.featureSwitch(FeatureSwitch.DisableSummarizedInsights);\n\n const account = accountIds[accountId];\n if (account) {\n let location = account.location;\n if (account?.resourceType === AccountResourceType.ARM) {\n // For dev and local environment we need to map the Arm Account location to the environment location\n location = getARMLocation(account, this.configService);\n }\n this.apiService.setApiBaseLocation(location, account.accountType);\n this.apiService.setApiMediaLocation(location);\n this.authService.UserAccount = account;\n this.store.dispatch(AccountsActions.selectAccount({ id: account.id }));\n }\n\n return this.apiService.Account.Project.getProjectIndex(accountId, videoId, params).pipe(\n switchMap((result: Microsoft.VideoIndexer.Contracts.PlaylistContractV2) => {\n return [MediaActions.upsertMediaIndex({ mediaIndex: result })];\n }),\n catchError((error: HttpErrorResponse) => {\n return [MediaActions.loadMediaFailure({ error })];\n })\n );\n })\n )\n );\n\n public updateIndex$ = createEffect(() =>\n this.actions$.pipe(\n ofType(MediaActions.updateMediaIndex),\n withLatestFrom(this.routerStore.select(fromRouter.getRouteParams)),\n withLatestFrom(this.store.select(fromMedia.selectIsBase)),\n switchMap(([[{ id, index, newIndex }, params], isBase]) => {\n if (!isBase) {\n this.store.dispatch(MediaActions.updateProjectMediaIndex({ id: id, index: index, newIndex: newIndex }));\n return EMPTY;\n }\n this.store.dispatch(MediaActions.updateIndex({ mediaIndex: { id: id, changes: newIndex } }));\n this.logger.log('Update index in store');\n const accountId = params?.accountId;\n return this.apiService.Account.Video.saveVideoIndex(accountId, id, newIndex, null).pipe(\n switchMap(() => {\n this.logger.log('Update index success');\n this.mediaService.handelUpdateIndex(true);\n return [\n MediaActions.updateIndexSaving({ saving: false }),\n GalleryActions.loadProcessingVideoOrProjectById({ id }) // update gallery, for example with the new video name\n ];\n }),\n catchError(() => {\n this.logger.log('Update index failed');\n this.mediaService.handelUpdateIndex(false);\n return [MediaActions.updateIndex({ mediaIndex: { id: id, changes: index } }), MediaActions.updateIndexSaving({ saving: false })];\n })\n );\n })\n )\n );\n\n public updateProjectIndex$ = createEffect(() =>\n this.actions$.pipe(\n ofType(MediaActions.updateProjectMediaIndex),\n withLatestFrom(this.routerStore.select(fromRouter.getRouteParams)),\n withLatestFrom(this.store.select(fromMedia.selectedMediaIndex)),\n switchMap(([[{ id, index, newIndex }, params], selectedIndex]) => {\n this.store.dispatch(MediaActions.updateIndex({ mediaIndex: { id: id, changes: newIndex } }));\n this.logger.log('Update project index in store');\n const accountId = params?.accountId;\n const projectIndex = {\n ...selectedIndex,\n name: newIndex.name\n };\n return this.apiService.Account.Project.updateProject(accountId, id, projectIndex, null).pipe(\n switchMap(() => {\n this.logger.log('Update project index success');\n this.mediaService.handelUpdateIndex(true);\n return [\n MediaActions.updateIndexSaving({ saving: false }),\n GalleryActions.loadProcessingVideoOrProjectById({ id }) // update gallery, for example with the new project name\n ];\n }),\n catchError(() => {\n this.logger.log('Update project index failed');\n this.mediaService.handelUpdateIndex(false);\n return [MediaActions.updateIndex({ mediaIndex: { id: id, changes: index } }), MediaActions.updateIndexSaving({ saving: false })];\n })\n );\n })\n )\n );\n\n public requestReview$ = createEffect(() =>\n this.actions$.pipe(\n ofType(MediaActions.requestReview),\n switchMap(({ accountId, videoId }) => {\n return this.apiService.Account.Video.requestReview(accountId, videoId).pipe(\n switchMap(() => {\n this.mediaService.handelRequestReview(true);\n return EMPTY;\n }),\n catchError(() => {\n this.mediaService.handelRequestReview(false);\n return [MediaActions.updateMediaReviewState({ videoId: videoId, reviewState: VideoReviewState.NONE })];\n })\n );\n })\n )\n );\n\n private mediaService: MediaService;\n\n constructor(\n private actions$: Actions,\n private authService: AuthService,\n private apiService: ApiService,\n private store: Store,\n private logger: LoggerService,\n private readonly routerStore: Store,\n private trackService: TrackService,\n private injector: Injector,\n private configService: ConfigService,\n private featureSwitchService: FeatureSwitchService\n ) {\n setTimeout(() => {\n this.init();\n }, TRANSLATION_DELAY);\n }\n\n private init() {\n this.mediaService = this.injector.get(MediaService);\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { EffectsModule } from '@ngrx/effects';\n\nimport { MediaDataCommonModule } from '@common/modules/media-data-common/media-data.common.module';\n\nimport { MediaEffects } from './effects/media.effects';\nimport { MediaStoreService } from './services/media-store.service';\n\n@NgModule({\n declarations: [],\n imports: [MediaDataCommonModule, EffectsModule.forFeature([MediaEffects])],\n providers: [MediaStoreService]\n})\nexport class MediaDataModule {}\n","import { Injectable } from '@angular/core';\n\nimport { Store } from '@ngrx/store';\n\nimport { MediaCommonStoreService } from '@common/modules/media-data-common/services/media-common-store.service';\nimport { IUpdateInsights } from '@common/modules/insights/interfaces';\nimport * as fromMedia from '@common/modules/media-data-common/selectors/media.selectors';\nimport * as MediaActions from '@common/modules/media-data-common/actions/media.actions';\n\nimport * as LibraryActions from '../../gallery/core/actions/library.actions';\nimport * as LanguageModelActions from '../../customization-data/actions/language-model.actions';\nimport * as ProjectsActions from '../../gallery/core/actions/projects.actions';\n\n@Injectable()\nexport class MediaStoreService {\n constructor(private readonly store: Store, private mediaCommonStoreService: MediaCommonStoreService) {}\n\n public getMediaIndex() {\n return this.store.select(fromMedia.selectIndex);\n }\n\n public getMediaDetails() {\n return this.store.select(fromMedia.selectMediaDetails);\n }\n\n public getMediaActionsData() {\n return this.store.select(fromMedia.selectMediaActionsData);\n }\n\n public getMediaAlertData() {\n return this.store.select(fromMedia.selectMediaAlertData);\n }\n\n public getMediaSaving() {\n return this.store.select(fromMedia.selectedMediaIndexSaving);\n }\n\n public getMediaError() {\n return this.store.select(fromMedia.selectedMediaIndexError);\n }\n\n public updateMediaIndex(id, index, newIndex, isBase = true) {\n this.store.dispatch(MediaActions.updateMediaIndex({ id, index, newIndex }));\n if (newIndex.name) {\n this.updateIndexName(id, newIndex.name, isBase);\n }\n }\n\n public updateIndexName(id: string, name: string, isBase = true) {\n if (!name) {\n return;\n }\n const action = isBase ? LibraryActions.updateVideoName({ id, name: name }) : ProjectsActions.updateVideoName({ id, name: name });\n this.store.dispatch(action);\n }\n\n public updateThumbnailId(id: string, thumbnailId: string, isBase: boolean) {\n if (!thumbnailId) {\n return;\n }\n // Update thumbnail id in gallery video item\n const galleryAction = isBase\n ? LibraryActions.updateThumbnailId({ id, thumbnailId: thumbnailId })\n : ProjectsActions.updateThumbnailId({ id, thumbnailId: thumbnailId });\n // Update thumbnail id in media index\n const mediaIndexAction = MediaActions.updateThumbnailId({ id, thumbnailId });\n\n [galleryAction, mediaIndexAction].forEach(action => {\n this.store.dispatch(action);\n });\n }\n\n public updateInsights(id: string, data: IUpdateInsights) {\n this.store.dispatch(MediaActions.updateInsights({ id, data }));\n }\n\n public updateFace(id: string, face: Microsoft.VideoIndexer.Contracts.Face) {\n this.store.dispatch(MediaActions.updateFace({ id, face }));\n }\n\n public updateTranscriptLine(id: string, line: Microsoft.VideoIndexer.Contracts.TranscriptLine) {\n this.store.dispatch(MediaActions.updateTranscriptLine({ id, line }));\n }\n\n public updateAllTranscriptLines(id: string, transcript: Microsoft.VideoIndexer.Contracts.TranscriptLine[]) {\n this.store.dispatch(MediaActions.updateAllTranscriptLines({ id, transcript }));\n }\n\n public updateOcrLine(id: string, line: Microsoft.VideoIndexer.Contracts.Ocr) {\n this.store.dispatch(MediaActions.updateOcrLine({ id, line: line }));\n }\n\n public upsertIndex(index: Microsoft.VideoIndexer.Contracts.PlaylistContractV2) {\n this.mediaCommonStoreService.upsertIndex(index);\n }\n\n public selectIndex(id: string) {\n this.mediaCommonStoreService.selectIndex(id);\n }\n\n public loadVideoIndex(selectAccount = true) {\n this.store.dispatch(MediaActions.loadVideoIndex({ selectAccount }));\n }\n\n public loadVideoProject() {\n this.store.dispatch(MediaActions.loadProjectIndex());\n }\n\n public requestReview(accountId: string, videoId: string) {\n this.store.dispatch(MediaActions.requestReview({ accountId: accountId, videoId: videoId }));\n }\n\n public clearLanguageModels() {\n this.store.dispatch(LanguageModelActions.clearLanguageModels());\n }\n\n public removeMediaIndex(id: string) {\n this.store.dispatch(MediaActions.removeMediaIndex({ id }));\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { ApiService } from '@common/modules/api/services/api.service';\nimport { IAbuseParams } from '@common/modules/api/interfaces';\nimport { ToastService } from '@common/modules/core/services/toast/toast.service';\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\n\nimport { resources } from './resources';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MediaService {\n private resources = resources;\n constructor(private apiService: ApiService, private toastService: ToastService, private translate: TranslateHelperService) {\n this.translate.translateResources(this.resources);\n }\n\n public report(formData: IAbuseParams, id: string, accountId: string) {\n return this.apiService.Account.Video.reportAbuse(accountId, id, formData);\n }\n\n public handelUpdateIndex(isSuccess: boolean) {\n isSuccess\n ? this.toastService.success(this.resources.MediaUpdateVideoSuccess, false)\n : this.toastService.error(null, this.resources.MediaUpdateVideoFailed, false);\n }\n\n public handelRequestReview(isSuccess: boolean) {\n isSuccess\n ? this.toastService.success(this.resources.MediaReviewRequestSucceeded, false)\n : this.toastService.error(null, this.resources.MediaReviewRequestFailed, false);\n }\n}\n","export const resources = {\n MediaUpdateVideoFailed: '',\n MediaUpdateVideoSuccess: '',\n MediaReviewRequestSucceeded: '',\n MediaReviewRequestFailed: ''\n};\n","import { environment } from '../../../environments/environment';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ndeclare let __webpack_require__: any;\n\nexport function setRuntimeConfigurations() {\n if (window.viewContext && window.viewContext.codeLocation) {\n __webpack_require__.p = `${window.viewContext.codeLocation}/${environment?.localhost ? '' : `${window.viewContext.clientVersion}/apps/web/`}`;\n }\n}\n","import { IAction } from '@common/modules/shared/interfaces';\nimport { UIActionType } from '@common/modules/insights/interfaces';\n\nexport const cancelDeleteAction: IAction = {\n title: '',\n key: 'SettingsRecoverAccount',\n selected: false,\n type: UIActionType.CANCEL,\n value: '',\n selectable: true,\n hasDrop: false,\n id: 'recover'\n};\n\nexport const okAction: IAction = {\n title: '',\n key: 'OK',\n selected: false,\n type: UIActionType.CLICK,\n value: 'OK',\n selectable: true,\n hasDrop: false,\n isDisabled: false,\n id: 'OK'\n};\n","import { IAction } from '@common/modules/shared/interfaces';\nimport { UIActionType } from '@common/modules/insights/interfaces';\n\nexport const cancelAction: IAction = {\n title: 'Cancel',\n key: 'Cancel',\n selected: false,\n type: UIActionType.CANCEL,\n value: 'Cancel',\n selectable: true,\n hasDrop: false,\n isDisabled: false,\n id: 'Cancel'\n};\n\nexport const deleteAccountAction: IAction = {\n title: '',\n key: 'SettingsDeleteAccount',\n selected: false,\n type: UIActionType.DELETE,\n value: 'Delete account',\n selectable: true,\n hasDrop: false,\n isDisabled: true,\n id: 'deleteBtn'\n};\n","import { Component, OnInit, ChangeDetectionStrategy, Input, ChangeDetectorRef, EventEmitter, Output, OnDestroy } from '@angular/core';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil, withLatestFrom } from 'rxjs/operators';\n\nimport { cloneDeep } from 'lodash-es';\n\nimport { IDialogEvent } from '@common/modules/shared/components/dialog/interfaces';\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\nimport { EventCategory, TrackService } from '@common/modules/core/services/track';\nimport { FocusableComponent } from '@common/modules/accessibility/focusable/focusable.component';\nimport { ActionButtonType } from '@common/modules/shared/components/action-button/interfaces';\n\nimport { resources } from './resources';\nimport { cancelAction, deleteAccountAction } from './actions';\nimport { DeleteState, IDeleteAccount, IDeleteAccountOutput } from './interfaces';\nimport { SettingsService } from '../../services/settings.service';\n\n@Component({\n selector: 'app-vi-delete-account',\n templateUrl: './delete-account.component.html',\n styleUrls: ['./delete-account.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DeleteAccountComponent extends FocusableComponent implements OnInit, OnDestroy {\n @Input() public data: IDeleteAccount;\n @Output() public componentEventEmitter = new EventEmitter();\n\n public account: Microsoft.VideoIndexer.Contracts.AccountContract;\n public isUserOwner: boolean;\n public resources = resources;\n public accountNameInput = '';\n public state: DeleteState;\n public DeleteState = DeleteState;\n public cancelAction = cancelAction;\n public deleteAccountAction = cloneDeep(deleteAccountAction);\n public readonly BUTTON_WIDTH = '120px';\n public ActionButtonType = ActionButtonType;\n private readonly delayTimeout = 3000;\n private destroy$ = new Subject();\n\n constructor(\n private translate: TranslateHelperService,\n private cdr: ChangeDetectorRef,\n private settingsService: SettingsService,\n private trackService: TrackService\n ) {\n super();\n }\n\n public ngOnInit() {\n this.trackService.track('settings.account.delete_account_dialog.init');\n this.setProperties();\n this.setTranslation();\n this.addDataListeners();\n }\n\n public ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n public deleteAccount() {\n // Check account name\n if (!this.validateAccountName()) {\n return;\n }\n\n // Set state to Process\n this.state = DeleteState.PROCESS;\n this.cancelAction.isDisabled = true;\n\n // Call API to delete.\n if (this.isUserOwner) {\n this.trackService.track('settings.account.delete_account_dialog.delete_account', {\n category: EventCategory.SETTINGS\n });\n this.settingsService.deleteAccount(this.account.id);\n } else {\n this.trackService.track('settings.account.leave_account.init', {\n category: EventCategory.SETTINGS\n });\n this.settingsService.leaveAccount(this.account.id);\n }\n }\n\n public validateAccountName(): boolean {\n if (this.accountNameInput !== this.account.name) {\n this.deleteAccountAction.isDisabled = true;\n return false;\n }\n this.deleteAccountAction.isDisabled = false;\n return true;\n }\n\n public closeDialog(closeParentComponent: boolean, isAccountDeleted: boolean = false): void {\n const data: IDeleteAccountOutput = { closeParentComponent: closeParentComponent, isAccountDeleted: isAccountDeleted };\n const dialogEvent: IDialogEvent = {\n isDialogClose: true,\n dialogEventData: data\n };\n this.componentEventEmitter.emit(dialogEvent);\n }\n\n private setProperties() {\n this.state = DeleteState.FORM;\n this.isUserOwner = this.data.isUserOwner;\n this.account = this.data.account;\n }\n\n private handleActionSuccess() {\n this.state = DeleteState.COMPLETED;\n this.cdr.detectChanges();\n setTimeout(() => {\n this.closeDialog(!this.isUserOwner, true);\n }, this.delayTimeout);\n }\n\n private setTranslation() {\n this.translate.translateResources(this.resources, { name: this.account.name }).subscribe(() => {\n if (this.isUserOwner) {\n this.deleteAccountAction.title = this.resources.DeleteAccountTitle;\n } else {\n this.deleteAccountAction.title = this.resources.DeleteAccountDialogOptionsActionBtnText;\n }\n this.cdr.detectChanges();\n });\n }\n\n private addDataListeners() {\n // Listen to account saving - handle delete response\n this.settingsService.isAccountDeleteInProgress$\n .pipe(takeUntil(this.destroy$), withLatestFrom(this.settingsService.selectAccountError$))\n .subscribe(([saving, error]) => {\n if (!saving && this.state === DeleteState.PROCESS) {\n if (!error) {\n this.trackService.track('settings.account.delete_leave_account.success', {\n category: EventCategory.SETTINGS\n });\n this.handleActionSuccess();\n } else {\n this.trackService.track('settings.account.delete_leave_account.failed', {\n category: EventCategory.SETTINGS\n });\n this.closeDialog(false);\n }\n }\n });\n }\n}\n","
\n
\n \n \n \n
\n
\n {{ resources?.DeleteAccountSharedPeopleTitle }}\n
\n
    \n
  • \n \n \n {{ cont.name }}\n  \n ({{ cont.email }})\n
  • \n
\n
\n
\n {{ resources?.DeleteAccountEmptyAccountSharedList }}\n
\n
\n \n
\n \n \n
\n \n
\n \n \n \n \n
\n
\n
\n \n \n
\n
\n \n
\n
\n","export enum DeleteState {\n FORM,\n PROCESS,\n COMPLETED\n}\n\nexport interface IDeleteAccount {\n id: string;\n account: Microsoft.VideoIndexer.Contracts.AccountContract;\n isUserOwner: boolean;\n}\n\nexport interface IDeleteAccountOutput {\n closeParentComponent: boolean;\n isAccountDeleted: boolean;\n}\n","export const resources = {\n DeleteAccountPermanentlyDeletedMessage: '',\n DeleteAccountNoLongerAccessMessage: '',\n DeleteAccountSharedPeopleTitle: '',\n DeleteAccountEnterNameAccountLabel: '',\n DeleteAccountEnterNameAccountTitle: '',\n DeleteAccountEnterNameAccountPlaceholder: '',\n DeleteAccountDeletedAccountName: '',\n SettingsLeaveAccountPending: '',\n DeleteAccountPending: '',\n DeleteAccountPulledOutSuccessfully: '',\n DeleteAccountDialogOptionsActionBtnText: '',\n DeleteAccountTitle: '',\n DeleteAccountEmptyAccountSharedList: ''\n};\n","import { IAction } from '@common/modules/shared/interfaces';\nimport { UIActionType } from '@common/modules/insights/interfaces';\n\nexport const connectToAzureAction: IAction = {\n title: '',\n icon: 'i-vi-add',\n key: 'SettingsCreateAccount',\n value: UIActionType.CLICK,\n selected: false,\n selectable: false,\n id: 'connectToAzureButtonSettings'\n};\n","export const resources = {\n Close: '',\n UserNotInvitedToAccount: '',\n SettingsAccountTabHeader: '',\n SettingsIotConnectionsTabHeader: '',\n AccountSettingsTitle: '',\n SettingsUpdateAccountSuccess: '',\n SettingsUpdateAccountNameError: '',\n ErrorTypes_ACCESS_TOKEN_VALIDATION_FAILED: '',\n ErrorTypes_GENERAL: '',\n SettingsUpdateAccountError: '',\n UserInvitedToAccount: '',\n DeleteAccountDeleteAccountError: '',\n DeleteAccountPullOutFailed: '',\n Settings: '',\n AccountSettings: '',\n ErrorTypes_USER_NOT_ADMIN: '',\n BuyWizard_ContentMigration_AfterSignedIn: '',\n ConfigureConnectionDialogHeader: '',\n ConfigureConnectionSuccessLabel: '',\n ConfigureConnectionSuccessContentLabel: '',\n DeleteAccountDelete: '',\n DeleteAccountDialogOptionsHeader: ''\n};\n","import { Injectable } from '@angular/core';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { MatDialogRef } from '@angular/material/dialog';\n\nimport { Store } from '@ngrx/store';\n\nimport { take } from 'rxjs/operators';\n\nimport { Errors, APIErrors } from '@common/modules/core/services/toast/errors';\nimport { ToastService } from '@common/modules/core/services/toast/toast.service';\nimport { LoggerService } from '@common/modules/core/services/logger/logger.service';\nimport { ErrorHandlerService } from '@common/modules/core/services/error/error-handler.service';\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\nimport { IDialogData } from '@common/modules/shared/components/dialog/interfaces';\nimport { DialogComponent } from '@common/modules/shared/components/dialog/dialog.component';\nimport { DialogService } from '@common/modules/shared/components/dialog/dialog.service';\nimport { EventCategory, TrackService } from '@common/modules/core/services/track';\nimport { envTypes } from '@common/modules/api/interfaces';\n\nimport { resources } from '../pages/settings/resources';\nimport * as fromAccounts from '../../core/reducers/accounts.reducer';\nimport * as accountsSelectors from '../../core/selectors/accounts.selectors';\nimport * as AccountsActions from '../../core/actions/accounts.actions';\nimport { okAction } from '../components/account-settings/actions';\nimport { IDeleteAccount, IDeleteAccountOutput } from '../components/delete-account/interfaces';\nimport { DeleteAccountComponent } from '../components/delete-account/delete-account.component';\nimport { VIRoutingMap } from '../../app/routing/routes';\nimport { CoreStoreService } from '../../core/services/core-store.service';\n\nimport AccountContract = Microsoft.VideoIndexer.Contracts.AccountContract;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SettingsService {\n public resources = resources;\n public okAction = okAction;\n\n private dialogRef: MatDialogRef;\n\n constructor(\n private logger: LoggerService,\n private toastService: ToastService,\n private errorHandler: ErrorHandlerService,\n private readonly store: Store,\n private translate: TranslateHelperService,\n private dialogService: DialogService,\n private trackService: TrackService,\n private coreStore: CoreStoreService\n ) {}\n\n public updateAccount(account: AccountContract, newAccount: AccountContract) {\n this.store.dispatch(\n AccountsActions.updateAccountContract({\n account: account,\n newAccount: newAccount\n })\n );\n }\n\n public deleteAccount(accountId: string) {\n this.store.dispatch(AccountsActions.deleteOwnAccount({ id: accountId }));\n }\n\n public leaveAccount(accountId: string) {\n this.store.dispatch(AccountsActions.leaveAccount({ id: accountId }));\n }\n\n public cancelDeleteAccount(accountId) {\n this.store.dispatch(AccountsActions.recoverOwnAccount({ id: accountId }));\n }\n\n public get selectAccountSaving$() {\n return this.store.select(accountsSelectors.accountSaving);\n }\n\n public get isAccountDeleteInProgress$() {\n return this.store.select(accountsSelectors.isAccountDeleteInProgress);\n }\n\n public get selectAccountError$() {\n return this.store.select(accountsSelectors.accountError);\n }\n\n public handleUpdateAccount(success: boolean, err?: HttpErrorResponse) {\n // Success\n if (success) {\n this.toastService.success(this.resources.SettingsUpdateAccountSuccess, false);\n return;\n }\n // Fail\n switch (err.error.ErrorType) {\n case Errors[APIErrors.INVALID_INPUT].key:\n this.toastService.error(err, this.resources.SettingsUpdateAccountNameError);\n break;\n case Errors[APIErrors.ACCESS_TOKEN_VALIDATION_FAILED].key:\n this.toastService.error(err, this.resources.ErrorTypes_ACCESS_TOKEN_VALIDATION_FAILED);\n break;\n case Errors[APIErrors.GENERAL].key:\n this.toastService.error(err, this.resources.ErrorTypes_GENERAL);\n break;\n default:\n this.errorHandler.handler(this.resources.SettingsUpdateAccountError);\n }\n }\n\n public toastJoinAccountSuccess(accountId: string) {\n this.translate\n .translateResources(resources, { accountId: accountId })\n .pipe(take(1))\n .subscribe(() => {\n this.logger.log('[SettingsService] toastDeleteSuccess');\n this.toastService.success(this.resources.UserInvitedToAccount, false);\n });\n }\n\n public toastJoinAccountError(accountId: string) {\n this.translate\n .translateResources(resources, { accountId: accountId })\n .pipe(take(1))\n .subscribe(() => {\n this.logger.log('[SettingsService] toastDeleteError');\n this.toastService.error(null, this.resources.UserNotInvitedToAccount, false);\n });\n }\n\n public handleDeleteError(err) {\n if (err?.error?.ErrorType === APIErrors.USER_NOT_ADMIN) {\n this.toastService.error(err, this.resources.ErrorTypes_USER_NOT_ADMIN, false);\n } else {\n this.toastService.error(err, this.resources.DeleteAccountDeleteAccountError, false);\n }\n }\n\n public handleLeaveError(err) {\n this.toastService.error(err, this.resources.DeleteAccountPullOutFailed, false);\n }\n\n public openDeleteAccountDialog(account: AccountContract, isUserOwner: boolean) {\n // Delete account component input\n const data: IDeleteAccount = {\n id: account.id,\n account: account,\n isUserOwner: isUserOwner\n };\n\n // Dialog title\n const title = isUserOwner ? `${resources.DeleteAccountDelete} ${account.name}` : resources.DeleteAccountDialogOptionsHeader;\n\n // Dialog data\n const deleteAccountDialogData: IDialogData = {\n class: 'delete-account-dialog',\n title: title,\n component: DeleteAccountComponent,\n componentData: data\n };\n this.dialogRef = this.dialogService.openDialog(deleteAccountDialogData, '480px');\n // Listen to dialog - on close.\n this.dialogRef.componentInstance.actionChange.subscribe(res => {\n this.onCloseDeleteDialog(res);\n });\n\n this.trackService.track('settings.account.open_delete_account_dialog', {\n category: EventCategory.SETTINGS\n });\n }\n\n public isPaidAccount(account: AccountContract): boolean {\n return account?.accountType?.toLowerCase() === envTypes.PAID.toLowerCase();\n }\n\n private onCloseDeleteDialog(res) {\n const data: IDeleteAccountOutput = res.dialogEventData;\n if (data && data.closeParentComponent) {\n this.coreStore.navigate([`/${VIRoutingMap.mediaGallery.path}/${VIRoutingMap.galleryLibrary.path}`]);\n this.trackService.track('settings.account.closed', {\n category: EventCategory.SETTINGS\n });\n }\n\n this.trackService.track('settings.account.close_delete_account_dialog', {\n category: EventCategory.SETTINGS\n });\n }\n}\n","import { Component, ChangeDetectionStrategy, Input, OnInit } from '@angular/core';\n\nimport { AlertMessageType } from '@vi-ui/core';\n\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\nimport { EventCategory, TrackService } from '@common/modules/core/services/track';\n\nimport { resources } from './resources';\nimport { IAccountUnavailableData } from './interfaces';\n\n@Component({\n selector: 'vi-account-unavailable-dialog',\n templateUrl: './account-unavailable-dialog.component.html',\n styleUrls: ['./account-unavailable-dialog.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AccountUnavailableDialogComponent implements OnInit {\n @Input() public data: IAccountUnavailableData;\n\n public AlertMessageType = AlertMessageType;\n public resources = resources;\n\n constructor(private translate: TranslateHelperService, private trackService: TrackService) {}\n\n ngOnInit(): void {\n this.trackService.track('account_unavailable_dialog.init', { category: EventCategory.ACCOUNTS });\n this.initTranslations();\n }\n\n private initTranslations() {\n this.translate.translateResourcesInstant(this.resources);\n }\n}\n","
\n \n
\n \n \n
\n
\n","export const resources = {\n accountUnavailableDialog_Arm_Text: ''\n};\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnInit } from '@angular/core';\n\nimport { combineLatestWith } from 'rxjs/operators';\nimport { Observable, skip, take, withLatestFrom } from 'rxjs';\n\nimport { FeatureSwitchService } from '@common/modules/core/services/feature-switch/feature-switch.service';\nimport { FocusManagerService } from '@common/modules/accessibility/focus-manager.service';\nimport { FocusableComponent } from '@common/modules/accessibility/focusable/focusable.component';\nimport { CustomizationPage, FeatureSwitch } from '@common/modules/core/services/interfaces';\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\n\nimport { CoreStoreService } from '../../../core/services/core-store.service';\nimport { SpeechPageStoreService } from '../../../customization-data/services/speech/speech-page-store.service';\nimport { resources } from './resources';\nimport { ISubMenuItem } from '../side-sub-menu/interfaces';\nimport { EdgeExtensionsStoreService } from '../../../core/services/edge-extensions-store.service';\n\n@Component({\n selector: 'vi-customization-sub-menu',\n templateUrl: './customization-sub-menu.component.html',\n styleUrls: ['./customization-sub-menu.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CustomizationSubMenuComponent extends FocusableComponent implements OnInit {\n public menuItems: ISubMenuItem[];\n public selectedPage$: Observable;\n\n private resources = resources;\n private isSpeechEnabled$: Observable;\n private hasEdgeExtensions$: Observable;\n\n constructor(\n private translateHelper: TranslateHelperService,\n private coreStoreService: CoreStoreService,\n private cdr: ChangeDetectorRef,\n private focusManager: FocusManagerService,\n private speechPageStoreService: SpeechPageStoreService,\n private featureSwitchService: FeatureSwitchService,\n private edgeExtensionsStoreService: EdgeExtensionsStoreService\n ) {\n super();\n }\n\n public ngOnInit(): void {\n this.selectedPage$ = this.coreStoreService.getSelectedCustomizationPage();\n this.isSpeechEnabled$ = this.speechPageStoreService.isSpeechEnabled();\n this.hasEdgeExtensions$ = this.edgeExtensionsStoreService.hasEdgeExtensions$;\n\n this.translateHelper\n .translateResources(this.resources)\n .pipe(take(1), withLatestFrom(this.selectedPage$), combineLatestWith(this.isSpeechEnabled$, this.hasEdgeExtensions$))\n .subscribe(([[, selectedPage], isSpeechEnabled, hasEdgeExtensions]) => {\n this.initMenuOptions(selectedPage, isSpeechEnabled, hasEdgeExtensions);\n this.cdr.detectChanges();\n this.focusManager.focusByQuery(`.${selectedPage?.toLocaleLowerCase()}`, this.cdr);\n });\n\n this.selectedPage$\n .pipe(skip(1), combineLatestWith(this.isSpeechEnabled$, this.hasEdgeExtensions$))\n .subscribe(([newPage, isSpeechEnabled, hasEdgeExtensions]) => {\n this.initMenuOptions(newPage, isSpeechEnabled, hasEdgeExtensions);\n this.cdr.detectChanges();\n });\n }\n\n public handleSelectPage(item: ISubMenuItem) {\n this.coreStoreService.navigateToCustomization(item.value);\n }\n\n private initMenuOptions(selectedPage: CustomizationPage, isSpeechEnabled: boolean, hasEdgeExtensions: boolean) {\n this.menuItems = [\n {\n value: CustomizationPage.Language,\n selected: selectedPage === CustomizationPage.Language,\n text: isSpeechEnabled ? this.resources.LanguageClassic : this.resources.TabsLanguage,\n class: CustomizationPage.Language?.toLocaleLowerCase()\n },\n {\n value: CustomizationPage.LanguageId,\n selected: selectedPage === CustomizationPage.LanguageId,\n text: this.resources.TabsLanguageID,\n class: CustomizationPage.LanguageId?.toLocaleLowerCase()\n },\n {\n value: CustomizationPage.People,\n selected: selectedPage === CustomizationPage.People,\n text: this.resources.TabsFaces,\n class: CustomizationPage.People?.toLocaleLowerCase()\n },\n {\n value: CustomizationPage.Brands,\n selected: selectedPage === CustomizationPage.Brands,\n text: this.resources.TabsBrands,\n class: CustomizationPage.Brands?.toLocaleLowerCase()\n }\n ];\n\n if (isSpeechEnabled) {\n const speechOption: ISubMenuItem = {\n value: CustomizationPage.Speech,\n selected: selectedPage === CustomizationPage.Speech,\n text: this.resources.SpeechNew,\n class: CustomizationPage.Speech?.toLocaleLowerCase()\n };\n this.menuItems.unshift(speechOption);\n }\n\n if (this.featureSwitchService.featureSwitch(FeatureSwitch.LiveEdge) && hasEdgeExtensions) {\n const catalogOption: ISubMenuItem = {\n value: CustomizationPage.Catalog,\n selected: selectedPage === CustomizationPage.Catalog,\n text: this.resources.LiveModelCatalogTitle,\n class: CustomizationPage.Catalog?.toLocaleLowerCase()\n };\n this.menuItems.unshift(catalogOption);\n }\n }\n}\n","\n","export const resources = {\n TabsBrands: '',\n TabsLanguage: '',\n TabsFaces: '',\n TabsLanguageID: '',\n HeaderContentModelCustomization: '',\n SpeechNew: '',\n LanguageClassic: '',\n LiveModelCatalogTitle: ''\n};\n","import { Component, OnInit, ChangeDetectionStrategy, ChangeDetectorRef } from '@angular/core';\n\nimport { combineLatestWith } from 'rxjs';\n\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\nimport { FocusManagerService } from '@common/modules/accessibility/focus-manager.service';\nimport { SideMenuOption } from '@common/modules/core/services/interfaces';\nimport { EventCategory, TrackService } from '@common/modules/core/services/track';\n\nimport { EdgeExtensionsStoreService } from '../../../core/services/edge-extensions-store.service';\nimport { ISubMenuItem } from '../side-sub-menu/interfaces';\nimport { resources } from './resources';\nimport { CoreStoreService } from '../../../core/services/core-store.service';\n\n@Component({\n selector: 'vi-edge-extensions-sub-menu',\n templateUrl: './edge-extensions-sub-menu.component.html',\n styleUrls: ['./edge-extensions-sub-menu.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class EdgeExtensionsSubMenuComponent implements OnInit {\n public menuItems: ISubMenuItem[];\n public resources = resources;\n public hasSelectedEdgeExtension: boolean;\n\n private readonly CLOUD_ITEM_CLASS = 'cloud';\n private readonly EXTENSION_CLASS_PREFIX = 'extension';\n private isMediaSideMenuOptionSelected: boolean;\n\n constructor(\n public edgeExtensionsStore: EdgeExtensionsStoreService,\n public coreStore: CoreStoreService,\n private translate: TranslateHelperService,\n private cdr: ChangeDetectorRef,\n private focusManager: FocusManagerService,\n private trackService: TrackService\n ) {}\n\n public ngOnInit(): void {\n this.translate.translateResourcesInstant(resources);\n this.edgeExtensionsStore.accountEdgeExtensions$\n .pipe(combineLatestWith(this.edgeExtensionsStore.selectedEdgeExtensionId$, this.coreStore.selectSideMenuSelectedOption()))\n .subscribe(([accountExtensions, selectedEdgeExtensionId, sideMenuOption]) => {\n this.isMediaSideMenuOptionSelected = sideMenuOption === SideMenuOption.Media;\n this.initMenuItems(accountExtensions, selectedEdgeExtensionId);\n this.cdr.detectChanges();\n this.focusEdgeExtensionItem(selectedEdgeExtensionId);\n });\n this.edgeExtensionsStore.hasSelectedEdgeExtension$.subscribe(hasSelectedEdgeExtension => {\n this.hasSelectedEdgeExtension = hasSelectedEdgeExtension;\n });\n this.trackService.track('edge.extension_sub_menu.init', { category: EventCategory.EDGE });\n }\n\n public handleSelectItem(item: ISubMenuItem) {\n if (!item.value) {\n if (this.hasSelectedEdgeExtension) {\n this.edgeExtensionsStore.clearSelectedEdgeExtension();\n }\n return;\n }\n this.selectEdgeExtension(item.value);\n }\n\n private initMenuItems(accountExtensions: Microsoft.VideoIndexer.Contracts.IConnectedClusterExtension[], selectedEdgeExtensionId: string) {\n const cloudItem: ISubMenuItem = {\n value: '',\n selected: this.isMediaSideMenuOptionSelected && selectedEdgeExtensionId === '',\n text: resources.MyCloud,\n class: this.CLOUD_ITEM_CLASS\n };\n\n this.menuItems = [cloudItem];\n\n for (const extension of accountExtensions) {\n if (!extension?.identity?.principalId) {\n this.trackService.track('edge.sub_menu_add_extension.skipped', {\n category: EventCategory.EDGE,\n data: {\n extensionName: extension?.name,\n extensionType: extension?.type,\n hasIdentity: !!extension?.identity\n }\n });\n continue;\n }\n this.menuItems.push({\n value: extension.id,\n selected: this.isMediaSideMenuOptionSelected && selectedEdgeExtensionId === extension.id,\n text: extension.name,\n class: `${this.EXTENSION_CLASS_PREFIX}_${extension.identity.principalId}`\n });\n }\n }\n\n private focusEdgeExtensionItem(selectedEdgeExtensionId: string) {\n const menuItem = this.menuItems.find(item => item.value === selectedEdgeExtensionId);\n if (menuItem) {\n this.focusManager.focusByQuery(`.${menuItem.class}`, this.cdr);\n }\n }\n\n private selectEdgeExtension(id: string) {\n this.edgeExtensionsStore.selectEdgeExtensionClicked(id);\n }\n}\n","\n","export const resources = {\n MyCloud: ''\n};\n","import { IAction } from '@common/modules/shared/interfaces';\nimport { UIActionType } from '@common/modules/insights/interfaces';\n\nexport const closeAction: IAction = {\n icon: 'i-vi-close-small',\n title: '',\n key: 'SideBarCloseLabel',\n selected: false,\n type: UIActionType.CLOSE,\n value: '',\n selectable: true,\n hasDrop: false,\n id: 'sideMenuClose',\n titleAttribute: 'Close'\n};\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit, ViewChild, ViewContainerRef } from '@angular/core';\n\nimport { Observable, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { FocusableComponent } from '@common/modules/accessibility/focusable/focusable.component';\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\nimport { VIMainSidebarService } from '@common/modules/core/services/vi-main-sidebar/vi-sidebar.service';\n\nimport { closeAction } from './actions';\nimport { resources } from './resources';\n\n@Component({\n selector: 'vi-main-sidebar',\n templateUrl: './main-sidebar.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['./main-sidebar.component.scss']\n})\nexport class MainSidebarComponent extends FocusableComponent implements OnInit, OnDestroy {\n public closeAction = closeAction;\n public resources = resources;\n public show$: Observable;\n @ViewChild('viSidebar', { read: ViewContainerRef }) public viSidebar: ViewContainerRef;\n\n private destroy$ = new Subject();\n\n constructor(private viMainSidebar: VIMainSidebarService, private cdr: ChangeDetectorRef, private translate: TranslateHelperService) {\n super();\n }\n\n public ngOnInit(): void {\n this.setTranslations();\n this.show$ = this.viMainSidebar.isOpenSubject.pipe(takeUntil(this.destroy$));\n setTimeout(() => {\n this.viMainSidebar.setVISidebarElement(this.viSidebar);\n });\n }\n\n public ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n public closeSidebar() {\n this.viMainSidebar.closeSidebar();\n }\n\n private setTranslations() {\n this.translate.translateResources(this.resources).subscribe(() => {\n this.closeAction.titleAttribute = this.resources[this.closeAction.key];\n this.cdr.detectChanges();\n });\n }\n}\n","
\n \n \n \n
\n","export const resources = {\n SideBarCloseLabel: ''\n};\n","export const resources = {\n MediaFiles: '',\n LiveFeeds: '',\n AccountSettings: '',\n ModelCustomizations: '',\n OpenSideMenu: '',\n CloseSideMenu: ''\n};\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnDestroy, OnInit } from '@angular/core';\n\nimport { Observable, Subject } from 'rxjs';\nimport { combineLatestWith, take, takeUntil } from 'rxjs/operators';\n\nimport { FocusableComponent } from '@common/modules/accessibility/focusable/focusable.component';\nimport { TrackService } from '@common/modules/core/services/track';\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\nimport { FocusManagerService } from '@common/modules/accessibility/focus-manager.service';\nimport { IViewControlChangedEvent, ViewActionType } from '@common/modules/shared/components/role-based-view-control-wrapper/interfaces';\nimport { DataService } from '@common/modules/shared/services/data.service';\nimport { UtilsService } from '@common/modules/shared/services/utils.service';\nimport { AccountPermission } from '@common/modules/shared/interfaces';\nimport { SideMenuOption } from '@common/modules/core/services/interfaces';\n\nimport { resources } from './resources';\nimport { CoreStoreService } from '../../../core/services/core-store.service';\nimport { EdgeExtensionsStoreService } from '../../../core/services/edge-extensions-store.service';\n\n@Component({\n selector: 'vi-side-menu',\n templateUrl: './side-menu.component.html',\n styleUrls: ['./side-menu.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SideMenuComponent extends FocusableComponent implements OnInit, OnDestroy {\n @Input() public isMobile = false;\n public isOpened = false;\n public isResponsive = false;\n public option = SideMenuOption.Media;\n public sideMenuOption = SideMenuOption;\n public resources = resources;\n public currentPermission$: Observable;\n public AccountPermission = AccountPermission;\n public ViewActionType = ViewActionType;\n public isMenuItemDisabled = false;\n\n private destroy$ = new Subject();\n private readonly RESPONSIVE_WINDOW_WIDTH = 768;\n private readonly AUTO_CLOSED_WINDOW_WIDTH = 1024;\n private isAutoSideMenuClosed = false;\n private hasEdgeExtensions: boolean;\n private isGalleryRoute: boolean;\n\n constructor(\n private coreStore: CoreStoreService,\n private translate: TranslateHelperService,\n private cdr: ChangeDetectorRef,\n private trackService: TrackService,\n private focusManager: FocusManagerService,\n private utils: UtilsService,\n private dataService: DataService,\n private edgeExtensionsStore: EdgeExtensionsStoreService\n ) {\n super();\n }\n\n public get showCustomizationSubMenu(): boolean {\n return this.isResponsive || this.option === SideMenuOption.Customizations;\n }\n\n public get showExtensionsSubMenu(): boolean {\n return this.hasEdgeExtensions && (this.isResponsive || (this.option === SideMenuOption.Media && this.isGalleryRoute));\n }\n\n public get subMenuOpened(): boolean {\n return this.showCustomizationSubMenu || this.showExtensionsSubMenu;\n }\n\n public ngOnInit(): void {\n this.trackService.track('side_menu.init');\n this.translate.translateResources(this.resources).pipe(take(1));\n\n this.coreStore.selectSideMenuOpen().subscribe(open => {\n if (!this.isMobile && this.isResponsive) {\n if (open) {\n this.focusWithTimeOut('#toggleBtn');\n } else if (!open) {\n this.focusWithTimeOut('#headerToggleSidemenu');\n }\n }\n this.isOpened = open;\n this.cdr.detectChanges();\n });\n\n this.coreStore.isNetworkAccessNotAllowedError$.pipe(takeUntil(this.destroy$)).subscribe(isNetworkAccessNotAllowed => {\n this.isMenuItemDisabled = isNetworkAccessNotAllowed;\n this.cdr.detectChanges();\n });\n\n this.edgeExtensionsStore.hasEdgeExtensions$\n .pipe(combineLatestWith(this.coreStore.isGalleryRoute$))\n .subscribe(([hasEdgeExtensions, isGalleryRoute]) => {\n this.hasEdgeExtensions = hasEdgeExtensions;\n this.isGalleryRoute = isGalleryRoute;\n this.cdr.detectChanges();\n });\n\n this.coreStore.selectSideMenuSelectedOption().subscribe(option => {\n this.option = option;\n this.isOpened == this.isAutoSideMenuClosed && this.subMenuOpened ? false : this.isOpened;\n this.cdr.detectChanges();\n });\n\n this.accessibilityModeSubject.pipe(takeUntil(this.destroy$), take(1)).subscribe(() => {\n this.cdr.detectChanges();\n });\n\n if (!this.isMobile) {\n this.checkResponsive();\n }\n // Toggle the side menu if the window is resized\n this.dataService.onResizeEventStream(320, 0).subscribe(() => {\n if (!this.isMobile) {\n this.checkResponsive();\n }\n });\n\n this.currentPermission$ = this.coreStore.getAccountTokenPermission$.pipe(takeUntil(this.destroy$));\n }\n\n public ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n public toggleSideMenu() {\n this.isOpened = !this.isOpened;\n this.coreStore.sideMenuToggled(this.isOpened);\n this.trackService.track('side_menu.toggle_side_menu.click', {\n data: {\n value: this.isOpened\n }\n });\n }\n\n public navigate(option: SideMenuOption) {\n if (this.isMenuItemDisabled && (option === SideMenuOption.Customizations || option === SideMenuOption.Settings)) {\n return;\n }\n if (option !== this.option) {\n this.coreStore.navigateFromSideMenu(option);\n }\n\n if (this.isResponsive) {\n this.toggleSideMenu();\n if (!this.isMobile) {\n this.focusWithTimeOut('.main-content-action', 400);\n }\n }\n }\n\n public onMenuItemsControlChanged(viewChangedEvent: IViewControlChangedEvent) {\n if (viewChangedEvent.viewAction !== ViewActionType.DISABLE) {\n return;\n }\n\n this.isMenuItemDisabled = viewChangedEvent.result === false;\n }\n\n private checkResponsive() {\n this.utils.getBodyRectAsync().then(bodyRect => {\n const currResponsive = bodyRect.width <= this.RESPONSIVE_WINDOW_WIDTH;\n if (this.isOpened && !this.isResponsive && currResponsive) {\n this.focusWithTimeOut('#toggleBtn');\n }\n this.isResponsive = currResponsive;\n this.isAutoSideMenuClosed = bodyRect.width <= this.AUTO_CLOSED_WINDOW_WIDTH;\n this.cdr.detectChanges();\n });\n }\n\n private focusWithTimeOut(query: string, timeout = 0) {\n // Set timeout to 500ms to make sure the page has loaded\n setTimeout(() => {\n // Focus expanded button\n this.focusManager.focusByQuery(query, this.cdr);\n }, timeout);\n }\n}\n","
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n \n {{resources?.MediaFiles}}\n
\n
\n \n \n \n \n \n
\n
\n \n {{resources?.AccountSettings}}\n
\n
\n
\n
\n \n {{resources?.ModelCustomizations}}\n
\n
\n
\n
\n
\n
\n \n \n
\n \n \n \n \n
\n
\n\n\n
\n \n \n
\n
","import { Component, ChangeDetectionStrategy, Input, Output, EventEmitter } from '@angular/core';\n\nimport { FocusableComponent } from '@common/modules/accessibility/focusable/focusable.component';\n\nimport { ISubMenuItem } from './interfaces';\n\n@Component({\n selector: 'vi-side-sub-menu',\n templateUrl: './side-sub-menu.component.html',\n styleUrls: ['./side-sub-menu.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SideSubMenuComponent extends FocusableComponent {\n @Input() public items: ISubMenuItem[];\n\n @Output() public itemSelected = new EventEmitter>();\n\n constructor() {\n super();\n }\n\n public handleSelectItem(item: ISubMenuItem) {\n this.itemSelected.emit(item);\n }\n}\n","
\n
\n
\n {{item.text}}\n
\n
\n
","import { Component, OnInit, Input, ChangeDetectionStrategy } from '@angular/core';\n\nimport { VIDEO_INDEXER_PRICING_LINK, GET_STARTED_WITH_AZURE_FREE } from '@common/modules/shared/links';\n\nimport { LoginService } from '../../../../login/services/login.service';\nimport { LoginProvider } from '../../../../login/pages/login/interfaces';\nimport { LogoutService } from '../../../../logout/services/logout.service';\n\n@Component({\n selector: 'app-vi-create-new-account',\n templateUrl: './create-new-account.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['./create-new-account.component.scss']\n})\nexport class CreateNewAccountComponent implements OnInit {\n public VIDEO_INDEXER_PRICING_LINK = VIDEO_INDEXER_PRICING_LINK;\n public GET_STARTED_WITH_AZURE_FREE = GET_STARTED_WITH_AZURE_FREE;\n\n @Input() public resources;\n constructor(private loginService: LoginService, private logoutService: LogoutService) {}\n\n public ngOnInit(): void {}\n\n public signInWithAAD() {\n this.logoutService.exitAccount();\n this.loginService.signIn(LoginProvider.OpenIdConnect);\n }\n}\n","
\n

\n {{resources?.VIBuyWizardConnectToAzureText1}}\n
\n
\n {{resources?.VIBuyWizardConnectToAzureText2}}\n
\n
\n

\n

\n {{resources.BuyWizardNotAADRoles}}\n
\n {{resources.BuyWizardNotAADRolesOwner}}\n

\n \n \n {{ resources.SignInToAzure }}\n \n \n
\n","export enum UIShellActionType {\n AZURE_SUBSCRIPTION = 'AZURE_SUBSCRIPTION',\n ACCOUNT_REGION = 'ACCOUNT_REGION',\n AMS_ACCOUNT = 'AMS_ACCOUNT',\n SELECT_SUBSCRIPTION = 'SELECT_SUBSCRIPTION',\n SELECT_LOCATION = 'SELECT_LOCATION',\n SELECT_SUBSCRIPTION_RESOURCE = 'SELECT_SUBSCRIPTION_RESOURCE',\n CREATE_ACCOUNT = 'CREATE_ACCOUNT',\n SELECT_THEME = 'SELECT_THEME'\n}\n\nexport enum Error_Types {\n USER_NOT_SIGNED_IN = 'USER_NOT_SIGNED_IN',\n INVALID_INPUT = 'INVALID_INPUT',\n AMS_AAD_APPLICATION_NOT_IN_TENANT = 'AMS_AAD_APPLICATION_NOT_IN_TENANT',\n AMS_AAD_INVALID_APPLICATION_KEY = 'AMS_AAD_INVALID_APPLICATION_KEY',\n AMS_INVALID_AAD_CONNECTION = 'AMS_INVALID_AAD_CONNECTION',\n AMS_IN_ANOTHER_LOCATION = 'AMS_IN_ANOTHER_LOCATION'\n}\n\nexport enum SideMenuWidthSize {\n Opened = 216,\n Closed = 49\n}\n\nexport enum BadgeClasses {\n Trial = 'trial-badge',\n Classic = 'classic-badge',\n Hybrid = 'hybrid-badge',\n NoBadge = 'no-badge'\n}\n\nexport const EXTENSIONS_SUB_MENU_WIDTH = 212;\n","import { Injectable } from '@angular/core';\n\nimport { IStripData } from '@common/modules/shared/components/strip/interfaces';\nimport { TrackService } from '@common/modules/core/services/track';\nimport { StripService } from '@common/modules/shared/components/strip/strip.service';\nimport { AppNavigationService } from '@common/modules/core/services/app/app-navigation.service';\nimport { FeatureSwitch, NavigationState } from '@common/modules/core/services/interfaces';\nimport { FeatureSwitchService } from '@common/modules/core/services/feature-switch/feature-switch.service';\n\nimport { CoreStoreService } from '../../core/services/core-store.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FaceGateStripService {\n private readonly FACE_GATE_TRACKING = 'face_gate_strip';\n private isFaceGateEnabled: boolean;\n private showFaceGateWarning: boolean;\n\n constructor(\n private trackService: TrackService,\n private stripService: StripService,\n private navigationService: AppNavigationService,\n private coreStore: CoreStoreService,\n private featureSwitchService: FeatureSwitchService\n ) {\n this.isFaceGateEnabled = this.featureSwitchService.featureSwitch(FeatureSwitch.FaceGate);\n this.coreStore.showFaceGateWarning$.subscribe(showFaceGateWarning => {\n this.showFaceGateWarning = showFaceGateWarning;\n });\n }\n\n public showFaceGateStrip(stripMessage: string, isTrial: boolean, pageName: string): number {\n if (!this.isFaceGateEnabled || !this.showFaceGateWarning) {\n return;\n }\n const stripData: IStripData = {\n text: stripMessage,\n trackingName: this.FACE_GATE_TRACKING,\n show: true,\n hasCloseButton: true,\n linkCallback: () => {\n if (isTrial) {\n this.navigationService.createAccountSubject.next(NavigationState.OPEN);\n }\n this.trackEventLink(isTrial ? 'OpenCreateAccountDialog' : 'OpenFaceRecognitionFom', pageName);\n },\n iconClass: 'i-vi-info'\n };\n return this.stripService.trigger(stripData);\n }\n\n public hideFaceGetStrip(faceGateStripId: number) {\n if (!this.isFaceGateEnabled || !this.showFaceGateWarning) {\n return;\n }\n this.stripService.hideStrip(faceGateStripId);\n this.trackService.track(`${this.FACE_GATE_TRACKING}.hide_strip`);\n }\n\n private trackEventLink(linkType: string, pageName: string) {\n this.trackService.track(`${this.FACE_GATE_TRACKING}.link_clicked`, {\n linkType: linkType,\n page: pageName\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { MatSortModule } from '@angular/material/sort';\n\nimport { SharedModule } from '@common/modules/shared/shared.module';\n\nimport { CreateNewAccountComponent } from './connect-to-azure/components/create-new-account/create-new-account.component';\nimport { SideMenuComponent } from './components/side-menu/side-menu.component';\nimport { MainSidebarComponent } from './components/main-sidebar/main-sidebar.component';\nimport { FaceGateStripService } from './services/face-gate-strip.service';\nimport { CustomizationSubMenuComponent } from './components/customization-sub-menu/customization-sub-menu.component';\nimport { SideSubMenuComponent } from './components/side-sub-menu/side-sub-menu.component';\nimport { EdgeExtensionsSubMenuComponent } from './components/edge-extensions-sub-menu/edge-extensions-sub-menu.component';\nimport { AccountUnavailableDialogComponent } from './components/account-unavailable-dialog/account-unavailable-dialog.component';\n\n@NgModule({\n declarations: [\n CreateNewAccountComponent,\n SideMenuComponent,\n MainSidebarComponent,\n CustomizationSubMenuComponent,\n SideSubMenuComponent,\n EdgeExtensionsSubMenuComponent,\n AccountUnavailableDialogComponent\n ],\n providers: [FaceGateStripService],\n imports: [CommonModule, SharedModule, FormsModule, MatSortModule],\n exports: [SideMenuComponent, MainSidebarComponent, CreateNewAccountComponent]\n})\nexport class ShellModule {}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, OnInit, Output, OnDestroy } from '@angular/core';\nimport { LiveAnnouncer } from '@angular/cdk/a11y';\n\nimport { Observable, Subject } from 'rxjs';\nimport { take, takeUntil, debounceTime, skip } from 'rxjs/operators';\n\nimport { cloneDeep } from 'lodash-es';\nimport { ClipboardService } from 'ngx-clipboard';\n\nimport { envTypes } from '@common/modules/api/interfaces';\nimport { AppNavigationService } from '@common/modules/core/services/app/app-navigation.service';\nimport { FeatureSwitch, IUIAccount, NavigationState } from '@common/modules/core/services/interfaces';\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\nimport { EventCategory, TrackService } from '@common/modules/core/services/track';\nimport { ActionButtonType } from '@common/modules/shared/components/action-button/interfaces';\nimport { FeatureSwitchService } from '@common/modules/core/services/feature-switch/feature-switch.service';\nimport { AccountResourceType } from '@common/modules/auth/interfaces';\nimport { AccountPermission } from '@common/modules/shared/interfaces';\nimport { FocusManagerService } from '@common/modules/accessibility/focus-manager.service';\nimport { ToastService } from '@common/modules/core/services/toast/toast.service';\n\nimport { CoreStoreService } from '../../../core/services/core-store.service';\nimport { VIRoutingMap } from '../../../app/routing/routes';\nimport { resources } from './resources';\nimport { EdgeExtensionsStoreService } from '../../../core/services/edge-extensions-store.service';\nimport { BadgeClasses } from '../../../shell/interfaces';\nimport { connectToAzureAction } from '../../../settings/components/trial-account-settings-details/actions';\n\n@Component({\n selector: 'app-accounts-list',\n templateUrl: './accounts-list.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['./accounts-list.component.scss']\n})\nexport class AccountsListComponent implements OnInit, OnDestroy {\n @Output() public close = new EventEmitter();\n\n public resources = resources;\n public createAccount;\n public ready = false;\n public readonly BUTTON_WIDTH = '208px';\n public readonly MIN_ACCOUNTS_FOR_FILTER = 6;\n public ActionButtonType = ActionButtonType;\n\n public accounts$: Observable;\n public selectAccountsCount = 1;\n public edgeExtensions: Microsoft.VideoIndexer.Contracts.IConnectedClusterExtension[];\n public selectedAccount: IUIAccount;\n public selectedAccountContract$: Observable;\n public userRule$: Observable;\n public armAccountsError = false;\n public armAccountsLoaded = false;\n public AccountResourceType = AccountResourceType;\n public currentPermission$: Observable;\n public isZeroAccounts$: Observable;\n public AccountPermission = AccountPermission;\n public accountFilterValue = '';\n\n private destroy$ = new Subject();\n\n constructor(\n private cdr: ChangeDetectorRef,\n private translate: TranslateHelperService,\n private navigationService: AppNavigationService,\n private coreStore: CoreStoreService,\n private trackService: TrackService,\n private featureSwitchService: FeatureSwitchService,\n private liveAnnouncer: LiveAnnouncer,\n private toastService: ToastService,\n private clipboardService: ClipboardService,\n private focusManager: FocusManagerService,\n private edgeExtensionsStore: EdgeExtensionsStoreService\n ) {}\n\n public get showAccountsFilter(): boolean {\n return this.selectAccountsCount >= this.MIN_ACCOUNTS_FOR_FILTER;\n }\n\n public ngOnInit() {\n if (this.featureSwitchService.featureSwitch(FeatureSwitch.ARM)) {\n this.coreStore.armAccountsLoaded$.pipe(takeUntil(this.destroy$)).subscribe(armAccountsLoaded => {\n this.armAccountsLoaded = armAccountsLoaded;\n this.cdr.detectChanges();\n if (!this.armAccountsLoaded) {\n this.liveAnnouncer.announce(this.resources.ArmAccountsLoading);\n }\n });\n\n this.coreStore.armAccountsError$.pipe(takeUntil(this.destroy$)).subscribe(error => {\n if (error) {\n this.liveAnnouncer.announce(this.resources.ArmAccountsErrorLoading);\n this.armAccountsError = true;\n }\n });\n }\n\n if (this.featureSwitchService.featureSwitch(FeatureSwitch.Edge)) {\n this.edgeExtensionsStore.selectEdgeExtensions$.pipe(takeUntil(this.destroy$)).subscribe(edgeExtensions => {\n this.edgeExtensions = edgeExtensions;\n this.cdr.detectChanges();\n });\n }\n\n this.translate.translateResources(this.resources).subscribe(() => {\n this.setProperties();\n this.ready = true;\n this.cdr.detectChanges();\n });\n\n this.accounts$ = this.coreStore.filteredUIAccounts$().pipe(takeUntil(this.destroy$));\n this.coreStore.selectAccountsCount$.pipe(takeUntil(this.destroy$)).subscribe(count => {\n this.selectAccountsCount = count;\n });\n this.coreStore.selectedAccount$.pipe(takeUntil(this.destroy$)).subscribe(account => {\n this.selectedAccount = account;\n this.cdr.detectChanges();\n });\n this.selectedAccountContract$ = this.coreStore.selectedAccountContract$.pipe(takeUntil(this.destroy$));\n this.userRule$ = this.coreStore.roleByUser$.pipe(takeUntil(this.destroy$));\n this.isZeroAccounts$ = this.coreStore.isZeroAccounts$.pipe(takeUntil(this.destroy$));\n this.userRule$.subscribe(userRole => {\n this.trackService.track('shell.user_role', { role: userRole });\n });\n\n // using skip 1 to avoid tracking the initial value of the accounts\n this.accounts$.pipe(skip(1), debounceTime(1000), takeUntil(this.destroy$)).subscribe(() => {\n this.trackService.track('shell.account.filtered_accounts');\n });\n\n this.currentPermission$ = this.coreStore.getAccountTokenPermission$.pipe(takeUntil(this.destroy$));\n }\n\n public ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n public filterAccounts() {\n this.coreStore.setAccountsFilterValue(this.accountFilterValue);\n }\n\n public getTranslationLocationTitle(account: IUIAccount): string {\n if (!account) {\n return;\n }\n const titleResource = { HeaderLocationTitle: '' };\n this.translate.translateResources(titleResource, {\n location: account.location\n });\n return titleResource.HeaderLocationTitle;\n }\n\n public isTrial(account: IUIAccount): boolean {\n return account && account.location === envTypes.TRIAL;\n }\n\n public openInvite() {\n this.coreStore.openShareAccount(true);\n\n this.trackService.track('shell.account.open_invite.click', {\n category: EventCategory.SHELL\n });\n }\n\n public openConnectToAzure() {\n this.navigationService.createAccountSubject.next(NavigationState.OPEN);\n\n this.trackService.track('shell.account.open_connect_to_azure.click', {\n category: EventCategory.SHELL\n });\n }\n\n public openAccountSettings() {\n this.trackService.track('shell.account.open_account_settings.click', {\n category: EventCategory.SHELL\n });\n this.coreStore.selectedAccountId$.pipe(take(1)).subscribe(id => {\n const route = VIRoutingMap.settings.path.replace(':accountId', id);\n this.coreStore.navigate([`/${route}`]);\n this.close.emit();\n });\n }\n\n public chooseAccount(account: IUIAccount) {\n this.trackService.track('shell.account.choose_account.click', {\n category: EventCategory.SHELL\n });\n this.coreStore.selectAccount(account.id);\n this.resetFilterAccounts();\n // Clear query params on change account\n this.coreStore.navigate([`/${VIRoutingMap.mediaGallery.path}/${VIRoutingMap.galleryLibrary.path}`], null, null, true);\n }\n\n public copyAccountId() {\n // copy to clipboard\n this.clipboardService.copyFromContent(this.selectedAccount?.id);\n this.toastService.success(this.resources.SettingsCopyAccountIDSuccessNotification, false);\n // copyFromContent function change the focus.\n // So, set the focus back to copy button.\n setTimeout(() => {\n this.focusManager.focusByQuery('#copyBtnAccountList');\n }, 100);\n\n this.trackService.track('accounts_list.copy_account_id.clicked', {\n category: EventCategory.SIDE_BAR\n });\n }\n\n public getBadgeClass(account: IUIAccount) {\n if (account?.resourceType !== AccountResourceType.ARM) {\n return BadgeClasses.Classic;\n }\n\n return this.edgeExtensions?.filter(ext => ext.properties?.configurationSettings['videoIndexer.accountId'] === account.id)?.length > 0\n ? BadgeClasses.Hybrid\n : BadgeClasses.NoBadge;\n }\n\n public getBadgeText(account: IUIAccount) {\n if (account?.resourceType !== AccountResourceType.ARM) {\n return this.resources?.Classic;\n }\n\n return this.edgeExtensions?.filter(ext => ext.properties?.configurationSettings['videoIndexer.accountId'] === account.id)?.length > 0\n ? this.resources.Hybrid\n : '';\n }\n\n private setProperties() {\n connectToAzureAction.title = this.resources.VIHeaderCreatePro;\n this.createAccount = cloneDeep(connectToAzureAction);\n this.createAccount.id = this.createAccount.id + 'Sidebar';\n }\n\n private resetFilterAccounts() {\n this.accountFilterValue = '';\n this.filterAccounts();\n }\n}\n","
\n
\n \n
\n \n {{ selectedAccount?.name }}\n \n \n {{ resources?.HeaderTrial }}\n \n \n {{ getBadgeText(selectedAccount) }}\n \n
\n \n \n\n \n
\n
\n \n {{ resources.SidebarShareAccount }}\n
\n
\n \n {{ resources.SettingsAccountIDCopyLabel }}\n
\n
\n \n {{ resources.AccountSettingsTitle }}\n
\n
\n
\n\n \n
\n {{resources?.AccessTitle}}\n {{resources?.ViewOnly}}\n
\n
\n
\n\n \n\n
\n \n
\n {{ resources?.NoResultsFound }}\n
\n
\n
    \n \n
  • \n
    \n \n {{ account.name }}\n \n \n {{ isTrial(account) ? resources?.HeaderTrial : account.location }}\n \n \n {{ getBadgeText(account) }}\n \n
    \n
  • \n
    \n \n
\n\n
\n \n \n
\n
","export const resources = {\n AccountsIDLabel: '',\n VIHeaderCreatePro: '',\n AccountSettingsTitle: '',\n SidebarShareAccount: '',\n AccountListSelectedAccountInfoLabel: '',\n AccountListLabel: '',\n Classic: '',\n ArmAccountsLoading: '',\n ArmAccountsErrorLoading: '',\n AccessTitle: '',\n ViewOnly: '',\n NoResultsFound: '',\n FindAccount: '',\n ID: '',\n SelectedAccount: '',\n Region: '',\n SettingsAccountIDCopyLabel: '',\n SettingsCopyAccountIDSuccessNotification: '',\n Hybrid: '',\n HeaderTrial: ''\n};\n","import { IAction } from '@common/modules/shared/interfaces';\nimport { FACE_RECOGNITION_FORM, VI_SURVEY } from '@common/modules/shared/links';\n\nimport { UIHelpActionType } from './interfaces';\n\nexport const helpActionsList: IAction[] = [\n {\n title: 'Documentation',\n key: 'HeaderDocumentation',\n type: UIHelpActionType.DOCUMENTATION,\n value: 'https://aka.ms/vi-docs',\n selected: false,\n selectable: false,\n isLink: true,\n id: 'documentation',\n icon: 'i-vi-open'\n },\n {\n title: 'Support',\n key: 'HeaderHelpLinkSupport',\n type: UIHelpActionType.SUPPORT,\n value: 'Support',\n selected: false,\n selectable: false,\n isLink: true,\n id: 'support',\n icon: 'i-vi-open'\n },\n {\n title: 'Survey',\n key: 'HelpSurvey',\n type: UIHelpActionType.SURVEY,\n value: VI_SURVEY,\n selected: false,\n selectable: false,\n isLink: true,\n id: 'survey',\n icon: 'i-vi-open'\n },\n {\n title: '',\n key: 'FaceRecognitionFormHelpLink',\n type: UIHelpActionType.FACE_RECOGNITION_FORM,\n value: FACE_RECOGNITION_FORM,\n selected: false,\n selectable: false,\n isLink: true,\n id: 'faceRecognitionForm',\n icon: 'i-vi-open'\n },\n {\n title: '',\n key: 'FaceGatePopupTitle',\n type: UIHelpActionType.INTERNAL_FACE_GATE_POPUP,\n value: '#',\n selected: false,\n selectable: false,\n id: 'faceGatePopupLink'\n },\n {\n title: 'Give Feedback',\n key: 'HeaderHelpLinkGiveFeedback',\n type: UIHelpActionType.GIVE_FEEDBACK,\n value: 'https://aka.ms/vi-feedback',\n selected: false,\n selectable: false,\n isLink: true,\n id: 'giveFeedback',\n icon: 'i-vi-open'\n }\n];\n\nexport const referencesActionList: IAction[] = [\n {\n title: 'Blog',\n key: 'HeaderBlog',\n type: UIHelpActionType.BLOG,\n value: 'https://aka.ms/vi-blog',\n selected: false,\n selectable: false,\n isLink: true,\n id: 'blog',\n icon: 'i-vi-open'\n },\n {\n title: 'API Reference',\n key: 'HeaderAPIReference',\n type: UIHelpActionType.API_REFERENCE,\n value: 'https://aka.ms/viapi',\n selected: false,\n selectable: false,\n isLink: true,\n id: 'apiReference',\n icon: 'i-vi-open'\n },\n {\n title: 'About Video Indexer',\n key: 'HeaderAboutVideoIndexer',\n type: UIHelpActionType.ABOUT_VI,\n value: '#',\n selected: false,\n selectable: false,\n id: 'aboutVi'\n },\n {\n title: 'Pricing',\n key: 'HeaderPricing',\n type: UIHelpActionType.PRICING,\n value: 'https://aka.ms/vi-pricing',\n selected: false,\n selectable: false,\n isLink: true,\n id: 'pricing',\n icon: 'i-vi-open'\n },\n {\n title: 'Privacy Statement',\n key: 'FooterPrivacyStatement',\n type: UIHelpActionType.PRIVACY_STATEMENT,\n value: 'PrivacyStatement',\n selected: false,\n selectable: false,\n isLink: true,\n id: 'privacyStatement',\n icon: 'i-vi-open'\n },\n {\n title: 'Service Agreement',\n key: 'FooterServicesAgreement',\n type: UIHelpActionType.SERVICES_AGREEMENT,\n value: 'ServiceAgreement',\n selected: false,\n selectable: false,\n isLink: true,\n id: 'serviceAgreement',\n icon: 'i-vi-open'\n },\n {\n title: 'Accessibilité : partiellement conforme',\n key: 'fr-fr',\n type: UIHelpActionType.ACCESSIBILITY,\n value: 'https://aka.ms/accessibility-statement-france',\n selected: false,\n selectable: false,\n isLink: true,\n id: 'a11yConformance-france',\n icon: 'i-vi-open'\n },\n {\n title: 'Dichiarazione di accessibilità',\n key: 'it-it',\n type: UIHelpActionType.ACCESSIBILITY,\n value: 'https://aka.ms/accessibility-statement-italy',\n selected: false,\n selectable: false,\n isLink: true,\n id: 'a11yConformance-italy',\n icon: 'i-vi-open'\n }\n];\n","import { Component, OnInit, ChangeDetectionStrategy, ChangeDetectorRef, EventEmitter, Output } from '@angular/core';\n\nimport { withLatestFrom } from 'rxjs/operators';\n\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\nimport { IAction } from '@common/modules/shared/interfaces';\nimport { envTypes } from '@common/modules/api/interfaces';\nimport { TrackService } from '@common/modules/core/services/track';\nimport { UtilsService } from '@common/modules/shared/services/utils.service';\nimport { ConfigService } from '@common/modules/core/services/config/config.service';\nimport { AZURE_US_PORTAL_LINK } from '@common/modules/shared/links';\n\nimport { resources } from './resources';\nimport { helpActionsList, referencesActionList } from './actions';\nimport { UIHelpActionType } from './interfaces';\nimport { CoreStoreService } from '../../../core/services/core-store.service';\nimport { FaceGatePopupService } from '../../../core/services/face-gate-popup.service';\n\n@Component({\n selector: 'app-vi-help',\n templateUrl: './help.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['./help.component.scss']\n})\nexport class HelpComponent implements OnInit {\n @Output() public openAbout = new EventEmitter();\n\n public resources = resources;\n public helpList = helpActionsList;\n public referencesList = referencesActionList;\n public isTrial: boolean;\n public readonly MICROSOFT_COPYRIGHTS = '© Microsoft';\n public readonly LINK_ROLE = 'link';\n public showFaceGatePopupLink: boolean;\n private userEmail: string;\n private account: Microsoft.VideoIndexer.Contracts.AccountContract;\n\n constructor(\n private translate: TranslateHelperService,\n private cdr: ChangeDetectorRef,\n private coreStoreService: CoreStoreService,\n private trackService: TrackService,\n private utilsService: UtilsService,\n private config: ConfigService,\n private faceGatePopupService: FaceGatePopupService\n ) {}\n\n public ngOnInit() {\n this.trackService.track('help.init');\n if (this.config.isFairFaxEnv()) {\n this.referencesList.find(r => r.id === 'apiReference').value = AZURE_US_PORTAL_LINK;\n }\n\n this.coreStoreService.selectAccountType$.pipe().subscribe(type => {\n this.isTrial = type?.toLowerCase() === envTypes.TRIAL.toLowerCase();\n this.cdr.markForCheck();\n });\n\n this.coreStoreService.selectedAccountContract$\n .pipe(withLatestFrom(this.coreStoreService.getSignedInUserEmail$), withLatestFrom(this.coreStoreService.getAccountTokenPermission$))\n .subscribe(([[account, userEmail], accountPermission]) => {\n if (!account) {\n return;\n }\n this.account = account;\n this.userEmail = userEmail;\n this.showFaceGatePopupLink = this.faceGatePopupService.isShowPopupEnabled(\n userEmail,\n account?.limitedAccessFeatures?.isFaceIdentificationEnabled,\n accountPermission,\n account.location\n );\n this.cdr.detectChanges();\n });\n\n this.setTranslations();\n }\n\n public setTranslations(): void {\n this.translate.translateResources(resources).subscribe(() => {\n this.helpList.forEach(c => {\n c.title = this.resources[c.key];\n });\n this.referencesList.forEach(c => {\n // Accesibility link should only appear for french loc.so the string is already localized\n if (c?.type !== UIHelpActionType.ACCESSIBILITY) {\n c.title = this.resources[c.key];\n }\n });\n this.cdr.detectChanges();\n });\n }\n\n public getLinkByValue(action: IAction): string {\n return this.utilsService.getLinkByValue(this.isTrial, action.value);\n }\n\n public showLink(action: IAction) {\n switch (action?.type) {\n case UIHelpActionType.INTERNAL_FACE_GATE_POPUP:\n return this.showFaceGatePopupLink;\n case UIHelpActionType.FACE_RECOGNITION_FORM:\n return !this.isTrial && !this.account?.limitedAccessFeatures?.isFaceIdentificationEnabled;\n case UIHelpActionType.PRICING:\n return this.isTrial;\n case UIHelpActionType.ACCESSIBILITY:\n // using the key property to indicate the locale in which the action is relavant to\n return action.key === this.translate.locale.toLowerCase();\n default:\n return true;\n }\n }\n\n public isPopup(action: IAction) {\n return action?.type === UIHelpActionType.ABOUT_VI || action?.type === UIHelpActionType.INTERNAL_FACE_GATE_POPUP;\n }\n\n public emitPopup(action: IAction) {\n switch (action?.type) {\n case UIHelpActionType.ABOUT_VI:\n this.openAbout.emit();\n break;\n case UIHelpActionType.INTERNAL_FACE_GATE_POPUP:\n this.showFaceGatePopup();\n break;\n }\n }\n\n private showFaceGatePopup() {\n this.faceGatePopupService.showPopup(this.account, this.userEmail);\n }\n}\n","
\n \n \n\n
{{resources.HelpReferences}}\n
\n\n \n \n\n \n {{ MICROSOFT_COPYRIGHTS }}\n \n\n\n
\n\n\n \n","export enum UIHelpActionType {\n DOCUMENTATION,\n SUPPORT,\n GIVE_FEEDBACK,\n BLOG,\n API_REFERENCE,\n ABOUT_VI,\n PRICING,\n PRIVACY_STATEMENT,\n SERVICES_AGREEMENT,\n ACCESSIBILITY,\n SURVEY,\n FACE_RECOGNITION_FORM,\n INTERNAL_FACE_GATE_POPUP\n}\n","export const resources = {\n HelpReferences: '',\n HeaderDocumentation: '',\n HeaderHelpLinkSupport: '',\n HeaderHelpLinkGiveFeedback: '',\n HeaderBlog: '',\n HeaderAPIReference: '',\n HeaderAboutVideoIndexer: '',\n HeaderPricing: '',\n FooterPrivacyStatement: '',\n FooterServicesAgreement: '',\n HelpSurvey: '',\n FaceRecognitionFormHelpLink: '',\n FaceGatePopupTitle: ''\n};\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\n\nimport { getDateString } from '@common/modules/utils/time';\nimport { INotification } from '@common/modules/core/services/toast/interfaces';\nimport { EventCategory, TrackService } from '@common/modules/core/services/track';\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\n\n@Component({\n selector: 'vi-notification-card',\n templateUrl: './notification-card.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['./notification-card.component.scss']\n})\nexport class NotificationCardComponent implements OnInit {\n @Input() notification: INotification;\n\n public progressAriaLabel: string;\n constructor(private trackService: TrackService, private translate: TranslateHelperService) {}\n\n public ngOnInit(): void {\n this.progressAriaLabel = this.translate.instant('Progress');\n }\n public getDateString() {\n if (!this.notification?.startDate) {\n return '';\n }\n\n return getDateString(new Date(this.notification?.startDate));\n }\n\n public linkClicked() {\n this.trackService.track('notifications.card.open_link', {\n category: EventCategory.NOTIFICATIONS,\n data: {\n notificationId: this.notification.id,\n link: this.notification?.link?.src\n }\n });\n if (this.notification.link.callback) {\n this.notification.link.callback();\n } else if (this.notification.link.src) {\n window.open(this.notification.link?.src, '_blank');\n }\n }\n\n public get progressText() {\n return this.translate.instant('PercentageComplete', { percentage: this.notification?.progress });\n }\n}\n","
\n
\n \n \n {{notification?.title}}\n \n {{getDateString()}}\n
\n
\n \n
\n
= 0\"\n class=\"notification-progress-bar\">\n \n
{{progressText}}
\n
\n \n
\n","import { Component, OnInit, ChangeDetectionStrategy, ChangeDetectorRef, OnDestroy } from '@angular/core';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\nimport { IAction } from '@common/modules/shared/interfaces';\nimport { EventCategory, TrackService } from '@common/modules/core/services/track';\nimport { INotification } from '@common/modules/core/services/toast/interfaces';\nimport { NOTIFICATIONS_EMPTY_STATE_SVG_PATH1, NOTIFICATIONS_EMPTY_STATE_SVG_PATH2 } from '@common/modules/shared/svg-shapes';\nimport { ActionButtonType } from '@common/modules/shared/components/action-button/interfaces';\n\nimport { NotificationsHandlerService } from '../../../core/services/notifications-handler.service';\nimport { NotificationsStoreService } from '../../../core/services/notifications-store.service';\nimport { UINotificationsActionType } from '../../interfaces';\nimport { resources } from './resources';\n\n@Component({\n selector: 'vi-notifications-panel',\n templateUrl: './notifications-panel.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['./notifications-panel.component.scss']\n})\nexport class NotificationsPanelComponent implements OnInit, OnDestroy {\n public resources = resources;\n public alerts: INotification[];\n public messages: INotification[];\n public NOTIFICATIONS_EMPTY_STATE_SVG_PATH1 = NOTIFICATIONS_EMPTY_STATE_SVG_PATH1;\n public NOTIFICATIONS_EMPTY_STATE_SVG_PATH2 = NOTIFICATIONS_EMPTY_STATE_SVG_PATH2;\n public ActionButtonType = ActionButtonType;\n public notificationsLoading: boolean;\n public clearAlertsNotifications: IAction = {\n title: '',\n icon: '',\n key: 'SidebarUserClear',\n value: UINotificationsActionType.CLEAR,\n selected: false,\n selectable: false,\n id: 'clearAlertsNotificationsButton'\n };\n public clearMessagesNotifications: IAction = {\n title: '',\n icon: '',\n key: 'SidebarUserClear',\n value: UINotificationsActionType.CLEAR,\n selected: false,\n selectable: false,\n id: 'clearMessagesNotificationsButton'\n };\n private destroy$ = new Subject();\n\n constructor(\n private translate: TranslateHelperService,\n private cdr: ChangeDetectorRef,\n private notificationsStore: NotificationsStoreService,\n private trackService: TrackService,\n private notificationsHandlerService: NotificationsHandlerService\n ) {}\n\n public ngOnInit() {\n this.trackService.track('notifications.panel.init', {\n category: EventCategory.NOTIFICATIONS\n });\n\n this.setTranslations();\n this.notificationsStore.getNotificationPanelAlerts$.pipe(takeUntil(this.destroy$)).subscribe(notifications => {\n this.alerts = notifications;\n this.cdr.detectChanges();\n });\n\n this.notificationsStore.getNotificationPanelMessages$.pipe(takeUntil(this.destroy$)).subscribe(notifications => {\n this.messages = notifications;\n this.cdr.detectChanges();\n });\n\n this.notificationsStore.getNotificationsLoadingState$.pipe(takeUntil(this.destroy$)).subscribe(loading => {\n this.notificationsLoading = loading;\n this.cdr.detectChanges();\n });\n }\n\n public ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n public clearAlertsAndBannersNotificationsClicked() {\n this.trackService.track('notifications.panel.clear_alerts', {\n category: EventCategory.NOTIFICATIONS\n });\n this.notificationsHandlerService.clearAlertsAndBannersNotifications();\n }\n\n public clearMessagesNotificationsClicked() {\n this.trackService.track('notifications.panel.clear_messages', {\n category: EventCategory.NOTIFICATIONS\n });\n\n this.notificationsHandlerService.clearMessagesNotifications();\n }\n\n public setTranslations(): void {\n this.translate.translateResourcesInstant(this.resources);\n this.clearAlertsNotifications.title = this.resources.SidebarUserClear;\n this.clearMessagesNotifications.title = this.resources.SidebarUserClear;\n this.cdr.detectChanges();\n }\n}\n","
0 || messages?.length > 0) && !notificationsLoading\">\n 0\">\n
\n {{resources?.SidebarUserAlerts}}\n \n \n
\n
\n
    \n
  • \n \n
  • \n
\n
\n
\n 0\">\n
\n {{resources?.SidebarUserMessages}}\n \n \n
\n
\n
    \n
  • \n \n
  • \n
\n
\n
\n
\n
\n
\n \n \n \n \n \n
\n
{{resources?.SidebarNotificationsEmptyTitle}}
\n
{{resources?.SidebarNotificationsEmptySubtitle}}
\n
\n
\n \n
\n","export const resources = {\n SidebarUserAlerts: '',\n SidebarUserMessages: '',\n SidebarUserClear: '',\n SidebarNotificationsEmptyTitle: '',\n SidebarNotificationsEmptySubtitle: ''\n};\n","import { IAction } from '@common/modules/shared/interfaces';\nimport { UIActionType } from '@common/modules/insights/interfaces';\nimport { VIThemes } from '@common/modules/core/services/interfaces';\n\nimport { IVIThemeOption } from '../../interfaces';\n\nexport const languageFilterAction: IAction = {\n titleAttribute: '',\n type: UIActionType.LANGUAGE,\n value: UIActionType.LANGUAGE,\n selected: false,\n selectable: false,\n id: 'langFilter'\n};\n\nexport const themeOptions: IVIThemeOption[] = [\n {\n themeName: VIThemes.DEFAULT,\n selected: false,\n svgPath: VIThemes.DEFAULT\n },\n {\n themeName: VIThemes.DARK,\n selected: false,\n svgPath: VIThemes.DARK\n },\n {\n themeName: VIThemes.LEGACY,\n selected: false,\n svgPath: VIThemes.LEGACY\n },\n {\n themeName: VIThemes.DARKLEGACY,\n selected: false,\n svgPath: VIThemes.DARKLEGACY\n }\n];\n","export const resources = {\n SettingsSendNewsletter: '',\n SettingsAutoCompleteTitle: '',\n SettingsSamplesTabLabel: '',\n SettingsShowGalleryByDefaultTitle: '',\n SettingsLanguageSettingsTitle: '',\n SettingsAutoPlayTitle: '',\n Themes: '',\n SettingsShowArcExtensions: ''\n};\n","import { IUIRectElement } from '../../../interfaces';\nexport const svgElements: IUIRectElement[] = [\n { class: 'svg-fill-main', x: '1', y: '1', width: '64', height: '40' },\n { class: 'svg-fill-container', x: '0.5', y: '0.5', width: '65', height: '41' },\n { class: 'svg-fill-sidemenu', x: '1', y: '7', width: '7', height: '34' },\n { class: 'svg-fill-shadow', x: '46', y: '7', width: '1', height: '34' },\n { class: 'svg-fill-sidebar', x: '48', y: '7', width: '17', height: '34' },\n { class: 'svg-fill-header', x: '1', y: '1', width: '64', height: '6' },\n { class: 'svg-fill-title', x: '11', y: '10', width: '32', height: '3' },\n { class: 'svg-fill-subtitle', x: '11', y: '16', width: '24', height: '3' },\n { class: 'svg-fill-primary', x: '11', y: '22', width: '28', height: '3' },\n { class: 'svg-fill-highlight', x: '11', y: '31', width: '10', height: '3' }\n];\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\nimport { cloneDeep } from 'lodash-es';\n\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\n\nimport { IVIThemeOption } from '../../../interfaces';\nimport { svgElements } from './rect-elements';\nimport { IUIRectElement } from '../../../interfaces';\n\n@Component({\n selector: 'vi-theme-option',\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './theme-option.component.html',\n styleUrls: ['./theme-option.component.scss']\n})\nexport class ThemeOptionComponent implements OnInit {\n @Input() public theme: IVIThemeOption;\n @Input() public activeContainer = true;\n @Input() public selected = false;\n @Input() public accessibilityMode = true;\n @Output() public select = new EventEmitter();\n\n public titleValue = '';\n public base = '';\n public svgElements: IUIRectElement[];\n constructor(private translate: TranslateHelperService, private cdr: ChangeDetectorRef) {}\n\n public ngOnInit(): void {\n // traslate theme name\n this.getThemeTranslation();\n this.svgElements = cloneDeep(svgElements);\n }\n\n public selectTheme() {\n this.select.emit();\n }\n\n public handleFocus() {\n this.cdr.detectChanges();\n }\n\n private getThemeTranslation() {\n const themeTranslations = {};\n themeTranslations[`${this.theme.themeName}Theme`] = '';\n this.translate.translateResources(themeTranslations);\n this.titleValue = themeTranslations[`${this.theme.themeName}Theme`];\n }\n}\n","
\n \n \n \n
\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnInit } from '@angular/core';\n\nimport { cloneDeep } from 'lodash-es';\n\nimport { IUserSettings } from '@common/modules/core/services/interfaces';\nimport { IAction } from '@common/modules/shared/interfaces';\nimport { DataService } from '@common/modules/shared/services/data.service';\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\nimport { LocalStorageService } from '@common/modules/shared/services/local-storage.service';\nimport { EventCategory, TrackService } from '@common/modules/core/services/track';\nimport { ThemesService } from '@common/modules/core/services/themes/themes.service';\nimport { ConfigService } from '@common/modules/core/services/config/config.service';\nimport { FocusableComponent } from '@common/modules/accessibility/focusable/focusable.component';\nimport { UserType } from '@common/modules/auth/interfaces';\n\nimport { CoreStoreService } from '../../../core/services/core-store.service';\nimport { DEFAULT_LOCALE_LANGUAGE, DEFAULT_LOCALE_LANGUAGE_KEY } from '../../../core/supportedLocaleLanguages';\nimport { languageFilterAction, themeOptions } from './actions';\nimport { resources } from './resources';\nimport { IVIThemeOption } from '../../interfaces';\n\n@Component({\n selector: 'app-user-settings',\n templateUrl: './user-settings.component.html',\n styleUrls: ['./user-settings.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class UserSettingsComponent extends FocusableComponent implements OnInit {\n public settings: IUserSettings = {\n getNewsUpdates: false,\n autoCompleteSearch: false,\n showSamplesTab: false,\n showGalleryByDefault: false,\n locale: 'en-US',\n userType: null\n };\n\n public resources = resources;\n public ready = false;\n public languagesActions: IAction[];\n public themes: IVIThemeOption[];\n public selectedTheme: IVIThemeOption;\n public selectedLanguage: IAction;\n public languageFilterAction = languageFilterAction;\n public darkMode = false;\n public isFairFaxEnv = false;\n public autoPlayVideosSettings: boolean = true;\n public showArcExtensions: boolean = false;\n public languageSelectId = 'LanguageSelect';\n\n private isEdgeEnabled = false;\n\n constructor(\n private dataService: DataService,\n private cdr: ChangeDetectorRef,\n private translate: TranslateHelperService,\n private coreStoreService: CoreStoreService,\n private localStorageService: LocalStorageService,\n private trackService: TrackService,\n private themesService: ThemesService,\n private config: ConfigService\n ) {\n super();\n }\n\n public ngOnInit() {\n this.trackService.track('user_settings.init');\n this.isFairFaxEnv = this.config.isFairFaxEnv();\n this.themes = cloneDeep(themeOptions);\n const autoPlayVideosStorage = this.localStorageService.getItem('portal.AutoPlayVideos');\n this.autoPlayVideosSettings = !autoPlayVideosStorage || autoPlayVideosStorage == 'true';\n\n // TODO - hide edge extensions toggle until we have a better solution\n // this.isEdgeEnabled = this.featureSwitchService.featureSwitch(FeatureSwitch.Edge);\n // if (this.isEdgeEnabled) {\n // this.showArcExtensions = this.localStorageService.getItem(StorageCacheKey.ShowEdgeExtensions) === 'true';\n // }\n\n // Set language base to user saved selection.\n this.coreStoreService.userSettings$.pipe().subscribe(settings => {\n this.settings = settings;\n const activeTheme = this.themes?.find(theme => theme.themeName === this.themesService.activeTheme);\n this.selectTheme(activeTheme);\n this.setLanguage();\n this.setTranslation();\n });\n }\n\n public languageChanged(langAction: IAction) {\n this.settings.locale = langAction.value;\n this.settingsChange();\n }\n\n public onAutoPlaySettingsChange() {\n this.localStorageService.setItem('portal.AutoPlayVideos', this.autoPlayVideosSettings.toString());\n }\n\n // TODO - hide edge extensions toggle until we have a better solution\n // public onShowArcSettingsChange() {\n // this.localStorageService.setItem(StorageCacheKey.ShowEdgeExtensions, this.showArcExtensions.toString());\n // this.showArcExtensions ? this.edgeExtensionsStore.loadEdgeExtensions() : this.edgeExtensionsStore.clearEdgeExtensions();\n // }\n\n public settingsChange() {\n this.coreStoreService.saveUserSettings(this.settings);\n\n this.trackService.track('user_settings.change_settings.click', {\n category: EventCategory.SHELL,\n data: {\n settings: { ...this.settings }\n }\n });\n }\n\n public onClickTheme(theme: IVIThemeOption) {\n this.selectTheme(theme);\n }\n\n public showEdgeExtensionsToggle(): boolean {\n return this.isEdgeEnabled && this.settings.userType === UserType.MicrosoftCorpAad;\n }\n\n private selectTheme(theme: IVIThemeOption) {\n if (!theme || theme === this.selectedTheme) {\n return;\n }\n if (this.selectedTheme) {\n this.selectedTheme.selected = false;\n }\n theme.selected = true;\n this.selectedTheme = theme;\n this.themesService.activeTheme = theme.themeName;\n this.cdr.markForCheck();\n }\n\n private setLanguage(): void {\n // GET all languages as actions\n this.languagesActions = this.dataService.getLanguages(false, 'supportedUserLocale');\n // Translate the names of languages\n this.translate.translateLanguages(this.languagesActions, 'Language');\n // GET selected language by language key\n this.selectedLanguage = this.getSelectedLanguage();\n }\n\n private setTranslation(): void {\n this.translate.translateResources(this.resources).subscribe(() => {\n this.languageFilterAction.titleAttribute = this.resources.SettingsLanguageSettingsTitle;\n this.ready = true;\n this.cdr.detectChanges();\n });\n }\n\n private getSelectedLanguage(): IAction {\n let locale = this.localStorageService.getItem('vi.locale')?.toLowerCase() || this.settings.locale.toLowerCase() || DEFAULT_LOCALE_LANGUAGE_KEY;\n\n // Default value for the english is en, should be en-US. (The key value)\n locale = locale === DEFAULT_LOCALE_LANGUAGE ? DEFAULT_LOCALE_LANGUAGE_KEY : locale;\n return this.languagesActions.find(l => {\n return l.value.toLowerCase() === locale.toLowerCase();\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 {{resources.Themes}}\n
\n
\n
\n \n \n
\n
\n
\n\n \n\n \n \n
\n
","import { NavigationState, VIThemes } from '@common/modules/core/services/interfaces';\nexport interface ISidebarNavigationOptions {\n state: NavigationState;\n page?: SidebarPages;\n callbackAfterClose?: () => void;\n}\n\nexport interface ISidebarNavigationOptions {\n state: NavigationState;\n page?: SidebarPages;\n callbackAfterClose?: () => void;\n}\n\nexport enum SidebarPages {\n ACCOUNTS = 'ACCOUNTS',\n SETTINGS = 'SETTINGS',\n HELP = 'HELP',\n NOTIFICATIONS = 'NOTIFICATIONS',\n ANY = 'ANY'\n}\n\nexport interface IVIThemeOption {\n selected: boolean;\n themeName: VIThemes;\n svgPath: VIThemes;\n}\n\nexport interface IUIRectElement {\n class: string;\n x: string;\n y: string;\n height: string;\n width: string;\n}\n\nexport enum UINotificationsActionType {\n CLEAR = 'CLEAR'\n}\n","import { IAction } from '@common/modules/shared/interfaces';\nimport { UIActionType } from '@common/modules/insights/interfaces';\n\nexport const closeAction: IAction = {\n icon: 'i-vi-close-big',\n title: '',\n key: 'Close',\n selected: false,\n type: UIActionType.CLOSE,\n value: '',\n selectable: true,\n hasDrop: false,\n id: 'sideBarClose',\n titleAttribute: 'SideBarCloseLabel'\n};\n","import { animate, animateChild, query, state, style, transition, trigger } from '@angular/animations';\n\nexport const sidebarContent = trigger('contentInOut', [\n state(\n 'out',\n style({\n opacity: '0',\n transform: 'translate(40px, 0)'\n })\n ),\n state(\n 'in',\n style({\n opacity: '1',\n transform: 'translate(0, 0)'\n })\n ),\n transition('out => in', [animate('0.28s 40ms cubic-bezier(0.8, 0, 0.2, 1)')])\n]);\n\nexport const sidebarPage = trigger('pageInOut', [\n state(\n 'out',\n style({\n opacity: '0',\n // display: 'none',\n transform: 'translate(40px, 0)'\n })\n ),\n state(\n 'in',\n style({\n opacity: '1',\n display: 'block',\n transform: 'translate(0, 0)'\n })\n ),\n transition('out => in', [animate('0.16s 0s cubic-bezier(0.8, 0, 0.2, 1)'), query('@contentInOut', animateChild(), { optional: true })]),\n transition('in => out', [animate('0.16s 0s cubic-bezier(0.8, 0, 0.2, 1)')])\n]);\n","export const resources = {\n HeaderHelpLinkAria: '',\n SidebarAccounts: '',\n SidebarUserSettings: '',\n SideBarCloseLabel: '',\n SidebarUserNotifications: ''\n};\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, OnDestroy, OnInit, Output } from '@angular/core';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { FocusManagerService } from '@common/modules/accessibility/focus-manager.service';\nimport { NavigationState } from '@common/modules/core/services/interfaces';\nimport { IAction } from '@common/modules/shared/interfaces';\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\nimport { FocusableComponent } from '@common/modules/accessibility/focusable/focusable.component';\nimport { EventCategory, TrackService } from '@common/modules/core/services/track';\n\nimport { CoreStoreService } from '../../../core/services/core-store.service';\nimport { SidebarPages } from '../../interfaces';\nimport { closeAction } from './actions';\nimport { sidebarContent, sidebarPage } from './animations';\nimport { resources } from './resources';\n\n@Component({\n selector: 'app-vi-sidebar',\n templateUrl: './sidebar-container.component.html',\n styleUrls: ['./sidebar-container.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [sidebarContent, sidebarPage]\n})\nexport class SidebarContainerComponent extends FocusableComponent implements OnInit, OnDestroy {\n // Outputs\n @Output() public openAbout = new EventEmitter();\n\n public SidebarPages = SidebarPages;\n public NavigationState = NavigationState;\n public content: SidebarPages;\n public navigationState: NavigationState;\n public contentInAnimation = false;\n public resources = resources;\n public closeAction: IAction = closeAction;\n private readonly ANIMATION_DELAY = 180;\n private callbackAfterClose;\n private prevNavigationState: NavigationState;\n private destroy$ = new Subject();\n\n constructor(\n private cdr: ChangeDetectorRef,\n private translate: TranslateHelperService,\n private focusManager: FocusManagerService,\n private coreStore: CoreStoreService,\n private trackService: TrackService\n ) {\n super();\n }\n\n public ngOnInit() {\n this.trackService.track('sidebar_container.init');\n this.setTranslations();\n\n this.coreStore.sidebarStateStatus$.pipe(takeUntil(this.destroy$)).subscribe(newNavigation => {\n this.prevNavigationState = this.navigationState;\n this.navigationState = newNavigation;\n if (this.navigationState === NavigationState.OPEN) {\n this.setFocus();\n this.setAnimation();\n }\n this.cdr.detectChanges();\n });\n\n this.coreStore.sidebarPage$.pipe().subscribe((page: SidebarPages) => {\n if (this.content !== page) {\n this.setFocus();\n this.setAnimation();\n }\n this.content = page;\n this.cdr.detectChanges();\n });\n\n this.coreStore.sidebarCallbackAfterClose$.pipe().subscribe(callbackAfterClose => {\n this.callbackAfterClose = callbackAfterClose;\n });\n }\n\n public ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n public close() {\n if (this.callbackAfterClose) {\n this.callbackAfterClose();\n }\n this.cdr.detectChanges();\n this.coreStore.clearSidebar();\n\n this.trackService.track('sidebar_container.close', {\n category: EventCategory.SIDE_BAR\n });\n }\n\n public handleOpenAbout() {\n this.openAbout.emit();\n this.trackService.track('sidebar_container.open_about.click', {\n category: EventCategory.SIDE_BAR\n });\n }\n\n private setFocus() {\n // focus first element on sidebar (close button).\n // add timing only if pageInOut(out => in) animation plays.\n const timing = this.navigationState === this.prevNavigationState ? 0 : this.ANIMATION_DELAY;\n setTimeout(() => {\n this.focusManager.focusByQuery('#viSidebarClose .action-button', this.cdr);\n }, timing);\n }\n\n private setAnimation() {\n this.contentInAnimation = false;\n this.cdr.detectChanges();\n this.contentInAnimation = true;\n }\n\n private setTranslations() {\n this.translate.translateResources(this.resources).subscribe(() => {\n this.closeAction.titleAttribute = this.resources[this.closeAction.titleAttribute] || '';\n this.cdr.detectChanges();\n });\n }\n}\n","
\n
\n
\n
\n

\n {{resources.HeaderHelpLinkAria}}\n

\n

\n {{resources.SidebarAccounts}}\n

\n

\n {{resources.SidebarUserSettings}}\n

\n

\n {{resources.SidebarUserNotifications}}\n

\n
\n \n \n
\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';\n\nimport { VIUIModule } from '@vi-ui/core';\n\nimport { SharedModule } from '@common/modules/shared/shared.module';\n\nimport { SidebarContainerComponent } from './pages/sidebar-container/sidebar-container.component';\nimport { HelpComponent } from './components/help/help.component';\nimport { AccountsListComponent } from './components/accounts-list/accounts-list.component';\nimport { UserSettingsComponent } from './components/user-settings/user-settings.component';\nimport { ThemeOptionComponent } from './components/user-settings/theme-option/theme-option.component';\nimport { NotificationsPanelComponent } from './components/notifications-panel/notifications-panel.component';\nimport { NotificationCardComponent } from './components/notification-card/notification-card.component';\n\n@NgModule({\n declarations: [\n SidebarContainerComponent,\n HelpComponent,\n AccountsListComponent,\n UserSettingsComponent,\n ThemeOptionComponent,\n NotificationsPanelComponent,\n NotificationCardComponent\n ],\n imports: [CommonModule, SharedModule, VIUIModule],\n exports: [SidebarContainerComponent]\n})\nexport class SidebarModule {}\n","import { Directive, ElementRef, Inject, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\n// eslint-disable-next-line deprecation/deprecation\nimport { CdkTrapFocus, FocusTrapFactory } from '@angular/cdk/a11y';\n@Directive({\n selector: '[appCdkTrapFocus]'\n})\n// eslint-disable-next-line @angular-eslint/directive-class-suffix\nexport class AccessibleFocusTrap extends CdkTrapFocus implements OnChanges {\n @Input('appCdkTrapFocus') public AppCdkFocusTrap: boolean;\n // eslint-disable-next-line deprecation/deprecation\n constructor(@Inject(DOCUMENT) private document: Document, public elem: ElementRef, _focusTrapFactory: FocusTrapFactory) {\n super(elem, _focusTrapFactory, document);\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes.AppCdkFocusTrap) {\n this.focusTrap.enabled = this.AppCdkFocusTrap;\n this.setAriaHidden();\n }\n }\n\n private setAriaHidden(value = false) {\n setTimeout(() => {\n const focusTraps = this.elem.nativeElement?.parentNode?.querySelectorAll('.cdk-focus-trap-anchor');\n focusTraps?.forEach(elem => elem.setAttribute('aria-hidden', value));\n });\n }\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\n\nimport { Subject } from 'rxjs';\n\nimport { getKeyCode, KeyCode } from '../utils/event';\n\n@Injectable()\nexport class AccessibilityModeHandlerService {\n public static accessibilityModeUpdate: Subject;\n private static accessibilityModeOn = false;\n private static hasEventListener = false;\n @Inject(DOCUMENT) private document;\n constructor() {\n if (!AccessibilityModeHandlerService.hasEventListener) {\n AccessibilityModeHandlerService.accessibilityModeUpdate = new Subject();\n document.body.addEventListener('keydown', AccessibilityModeHandlerService.enableAccessibilityMode);\n AccessibilityModeHandlerService.hasEventListener = true;\n }\n }\n\n private static enableAccessibilityMode(event: KeyboardEvent): void {\n // Tab, enter and shift+tab\n try {\n const keyCode = getKeyCode(event);\n if (!keyCode) {\n return;\n }\n\n // If event is enter and came from input - ignore\n const target = event?.target as Element;\n if (keyCode === KeyCode.Enter && target?.tagName === 'INPUT') {\n return;\n }\n\n if (keyCode === KeyCode.Tab || keyCode === KeyCode.Enter || (event.shiftKey && keyCode === KeyCode.Tab)) {\n AccessibilityModeHandlerService.accessibilityModeOn = true;\n document.body.removeEventListener('keydown', AccessibilityModeHandlerService.enableAccessibilityMode);\n AccessibilityModeHandlerService.accessibilityModeUpdate.next(true);\n }\n } catch (error) {\n // Catch each key that is not on KeyCode list. No need to trace.\n }\n }\n\n public get AccessibilityMode(): boolean {\n return AccessibilityModeHandlerService.accessibilityModeOn;\n }\n\n public get AccessibilityModeSubject(): Subject {\n return AccessibilityModeHandlerService.accessibilityModeUpdate;\n }\n}\n","import {\n Directive,\n ElementRef,\n Input,\n OnDestroy,\n Renderer2,\n OnChanges,\n SimpleChanges,\n ChangeDetectorRef,\n Injector,\n AfterViewInit\n} from '@angular/core';\n\nimport { AccessibilityModeHandlerService } from './accessibility-mode-handler.service';\n\n@Directive({\n selector: '[appAccessibilityTooltip]'\n})\nexport class AccessibilityTooltipDirective implements AfterViewInit, OnDestroy, OnChanges {\n @Input() public tooltipAddEvents = 'focus';\n @Input() public tooltipRemoveEvents = 'blur';\n @Input() public showAccessibilityTooltip = true;\n @Input() public observeTitleChange = false;\n\n private mutationObserver: MutationObserver;\n private tooltipClasses = {\n tooltip: 'vi-tooltip',\n tooltipLeft: 'left-side',\n tooltipRight: 'right-side'\n };\n private accessibilityModeHandler: AccessibilityModeHandlerService;\n\n constructor(private el: ElementRef, private renderer: Renderer2, private cdr: ChangeDetectorRef) {\n // Get Accessibility mode service\n const injector = Injector.create({ providers: [{ provide: AccessibilityModeHandlerService, deps: [] }] });\n this.accessibilityModeHandler = injector.get(AccessibilityModeHandlerService);\n }\n\n public ngAfterViewInit(): void {\n if (this.observeTitleChange) {\n this.mutationObserver = new MutationObserver(mutationList => {\n if (mutationList.find(mutation => mutation.attributeName === 'title')) {\n if (document?.activeElement === this.el.nativeElement) {\n this.createTip();\n } else {\n this.deleteTip();\n }\n }\n });\n this.mutationObserver?.observe(this.el.nativeElement, { attributes: true });\n }\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n if (changes.showAccessibilityTooltip) {\n if (changes.showAccessibilityTooltip.currentValue === true) {\n this.el.nativeElement.addEventListener(this.tooltipAddEvents, this.createTip.bind(this));\n this.el.nativeElement.addEventListener(this.tooltipRemoveEvents, this.deleteTip.bind(this));\n this.el.nativeElement.addEventListener('mouseup mousedown', this.deleteTip.bind(this));\n\n // If during focus mode\n if (document?.activeElement === this.el.nativeElement) {\n // create tip\n this.createTip();\n }\n } else {\n this.removeEventListeners();\n }\n }\n }\n\n public ngOnDestroy(): void {\n this.removeEventListeners();\n }\n\n private removeEventListeners() {\n this.mutationObserver?.disconnect();\n this.el.nativeElement.removeEventListener(this.tooltipAddEvents, this.createTip);\n this.el.nativeElement.removeEventListener(this.tooltipRemoveEvents, this.deleteTip);\n }\n\n private createTip() {\n // Hide tooltip if not accessibility mode\n if (!this.accessibilityModeHandler.AccessibilityMode) {\n return;\n }\n if (!this.showAccessibilityTooltip) {\n return;\n }\n let tooltip = this.el.nativeElement.getElementsByClassName('.vi-tooltip');\n if (tooltip.length) {\n this.deleteTip();\n }\n\n const title = this.el.nativeElement.getAttribute('title');\n if (!title) {\n return;\n }\n this.renderer.removeAttribute(this.el.nativeElement, 'title');\n this.renderer.setAttribute(this.el.nativeElement, this.tooltipClasses.tooltip, title);\n\n tooltip = this.renderer.createElement('div');\n this.renderer.addClass(tooltip, this.tooltipClasses.tooltip);\n\n const textNode = this.renderer.createText(title);\n\n this.renderer.appendChild(tooltip, textNode);\n this.renderer.appendChild(this.el.nativeElement, tooltip);\n\n this.cdr.detectChanges();\n }\n\n private deleteTip() {\n if (!this.showAccessibilityTooltip) {\n return;\n }\n\n const tooltip = this.el.nativeElement.getElementsByClassName(this.tooltipClasses.tooltip);\n\n if (!(tooltip && tooltip.length)) {\n return;\n }\n const tooltipText = tooltip[0].textContent;\n\n if (tooltipText) {\n this.renderer.setAttribute(this.el.nativeElement, 'title', tooltipText);\n this.renderer.removeAttribute(this.el.nativeElement, this.tooltipClasses.tooltip);\n }\n\n if (tooltip.length) {\n this.renderer.removeChild(this.el.nativeElement, tooltip[0]);\n }\n }\n}\n","import { Injectable, ElementRef, Inject, Renderer2 } from '@angular/core';\nimport { LiveAnnouncer } from '@angular/cdk/a11y';\nimport { DOCUMENT } from '@angular/common';\n\nimport { take } from 'rxjs/operators';\n\nimport { TranslateHelperService } from '../translation/services/translate-helper.service';\n\n@Injectable()\nexport class AccessibilityUtilsService {\n @Inject(DOCUMENT) private document;\n\n constructor(private translate: TranslateHelperService, private liveAnnouncer: LiveAnnouncer) {}\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public getParents(node: any): any[] {\n let aNode = node.parentNode;\n\n const parents = [];\n while (aNode) {\n parents.push(aNode);\n aNode = aNode.parentNode;\n }\n\n return parents;\n }\n\n public createEnteringDiv(renderer: Renderer2, el: ElementRef, text: string) {\n const enteringContainer = renderer.createElement('div');\n renderer.addClass(enteringContainer, 'entering-container');\n // Create entering div\n const enteringDiv = document.getElementById('enteringDiv');\n if (!enteringDiv) {\n const enteringDivTemplate = `
`;\n // eslint-disable-next-line @microsoft/sdl/no-inner-html\n enteringContainer.innerHTML += enteringDivTemplate;\n } else {\n renderer.appendChild(enteringContainer, enteringDiv);\n }\n return enteringContainer;\n }\n\n public announceDynamicMessage(resourceProperty: string, variables: object) {\n const resource = {};\n resource[resourceProperty] = '';\n this.translate\n .translateResources(resource, variables)\n .pipe(take(1))\n .subscribe(() => {\n this.liveAnnouncer.announce(resource[resourceProperty]);\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { A11yModule } from '@angular/cdk/a11y';\n\nimport { AccessibleFocusAreaComponent } from './accessible-focus-area/accessible-focus-area.component';\nimport { SubMenuHandlerDirective } from './sub-menu-handler.directive';\nimport { AccessibilityUtilsService } from './accessibility-utils.service';\nimport { AnnouncerDirective } from './announcer.directive';\nimport { AccessibilityTooltipDirective } from './accessibility-tooltip.directive';\nimport { FocusableComponent } from './focusable/focusable.component';\nimport { LoggerService } from '../core/services/logger/logger.service';\nimport { ContentOnHoverHandlerDirective } from './content-on-hover-handler.directive';\nimport { AccessibleClickDirective } from './accessible-click.directive';\nimport { AccessibleFocusTrap } from './accessibility-cdk-focus-trap.directive';\n\n@NgModule({\n imports: [A11yModule],\n exports: [\n A11yModule,\n SubMenuHandlerDirective,\n AnnouncerDirective,\n AccessibilityTooltipDirective,\n AccessibleFocusAreaComponent,\n FocusableComponent,\n ContentOnHoverHandlerDirective,\n AccessibleClickDirective,\n AccessibleFocusTrap\n ],\n declarations: [\n AnnouncerDirective,\n AccessibleFocusAreaComponent,\n SubMenuHandlerDirective,\n AccessibilityTooltipDirective,\n FocusableComponent,\n ContentOnHoverHandlerDirective,\n AccessibleClickDirective,\n AccessibleFocusTrap\n ],\n providers: [AccessibilityUtilsService]\n})\nexport class AccessibilityModule {\n constructor(private logger: LoggerService) {\n this.logger.log('[AccessibilityModule] init');\n }\n}\n","import { Directive, Output, EventEmitter, Input, HostListener } from '@angular/core';\n\nimport { isMainButtonPressed } from '../utils/event';\n\n@Directive({\n selector: '[appAccessibleClick]'\n})\nexport class AccessibleClickDirective {\n @Input() public appClickDisabled = false;\n @Input() public appSpaceClickEnabled = false;\n @Output() public appAccessibleClick = new EventEmitter();\n\n @HostListener('mouseup', ['$event']) public onMouseUp(event: MouseEvent) {\n // Main button it's usually the left button or the un-initialized state\n if (!this.appClickDisabled && isMainButtonPressed(event)) {\n this.appAccessibleClick.emit(event);\n }\n }\n\n @HostListener('keyup.enter', ['$event']) public onEnterKeyUp(event: KeyboardEvent) {\n if (!this.appClickDisabled) {\n this.appAccessibleClick.emit(event);\n }\n }\n\n @HostListener('keyup.Space', ['$event']) public onSpaceKeyUp(event: KeyboardEvent) {\n if (this.appSpaceClickEnabled && !this.appClickDisabled) {\n this.appAccessibleClick.emit(event);\n }\n }\n}\n","import {\n Component,\n OnInit,\n ElementRef,\n HostListener,\n ChangeDetectorRef,\n Injector,\n Renderer2,\n HostBinding,\n Input,\n ViewChild,\n OnChanges,\n SimpleChanges\n} from '@angular/core';\n\nimport { AriaLivePolitenessEnum } from '@common/modules/editor/interfaces';\n\nimport { AccessibilityUtilsService } from '../accessibility-utils.service';\nimport { AnnouncerDirective } from '../announcer.directive';\nimport { FocusableComponent } from '../focusable/focusable.component';\nimport { TranslateHelperService } from '../../translation/services/translate-helper.service';\n\n@Component({\n selector: 'app-accessible-focus-area',\n templateUrl: './accessible-focus-area.component.html'\n})\nexport class AccessibleFocusAreaComponent extends FocusableComponent implements OnInit, OnChanges {\n @Input() public show: boolean;\n @HostBinding('attr.tabindex') public tabindex = 0;\n @ViewChild(AnnouncerDirective, { static: false }) public appAccessibilityAnnouncer: AnnouncerDirective;\n\n public isActive: boolean;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private enteringDiv: any;\n private accessibilityUtils: AccessibilityUtilsService;\n private bClicked = false;\n\n constructor(\n protected translate: TranslateHelperService,\n protected el: ElementRef,\n protected cdr: ChangeDetectorRef,\n protected renderer: Renderer2\n ) {\n super();\n // Get utils service\n const injector = Injector.create({ providers: [{ provide: AccessibilityUtilsService, deps: [] }] });\n this.accessibilityUtils = injector.get(AccessibilityUtilsService);\n }\n\n public ngOnInit() {\n this.active(true);\n // If show input is given, and false\n if (this.show !== undefined && !this.show) {\n this.tabindex = -1;\n }\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n // If shown, add tabIndex\n if (this.show !== undefined && changes.show) {\n this.tabindex = this.show ? 0 : -1;\n }\n }\n\n @HostListener('keyup.tab', ['$event']) public onFocusInTab(event) {\n this.bClicked = false;\n }\n\n @HostListener('mousedown', ['$event']) public onClick(event) {\n this.bClicked = true;\n }\n\n @HostListener('focus', ['$event']) public onFocus(event) {\n // If the was a focus event from mouse / we are not in accessibilityMode(tab/shift+tab pressed)\n if (this.bClicked || !this.accessibilityMode) {\n return;\n }\n\n this.active(true);\n\n if (!this.enteringDiv) {\n this.enteringDiv = this.getEnteringDiv();\n this.renderer.insertBefore(this.el.nativeElement, this.enteringDiv, this.el.nativeElement.children[0]);\n }\n\n this.enteringDiv.hidden = false;\n }\n\n @HostListener('focusout', ['$event']) public onFocusOut(event) {\n if (event.relatedTarget) {\n const parents = this.accessibilityUtils.getParents(event.relatedTarget);\n\n // if component focused out-\n if (parents.indexOf(this.el.nativeElement) === -1) {\n this.active(true);\n }\n }\n\n this.hideEntringDiv();\n }\n\n protected getCurrentType(): string {\n return '';\n }\n\n protected active(newValue: boolean) {\n this.isActive = newValue;\n }\n\n private hideEntringDiv() {\n if (this.enteringDiv) {\n this.renderer.removeChild(this.el.nativeElement, this.enteringDiv);\n this.el.nativeElement.removeEventListener('keyup', this.enteringDivClick);\n this.enteringDiv = null;\n\n if (this.appAccessibilityAnnouncer) {\n this.appAccessibilityAnnouncer.announce('');\n }\n }\n }\n\n private enteringDivClick(event) {\n const key = event.which || event.keyCode;\n if (key === 13) {\n // 13 is enter\n this.active(false);\n this.hideEntringDiv();\n this.cdr.markForCheck();\n }\n }\n\n private getEnteringDiv() {\n this.el.nativeElement.addEventListener('keyup', this.enteringDivClick.bind(this));\n const itemResources = { AccessibilityEnteringDivText: '' };\n this.translate.translateResources(itemResources, { name: this.getCurrentType().toLowerCase() });\n\n if (this.appAccessibilityAnnouncer) {\n this.appAccessibilityAnnouncer.announce(itemResources.AccessibilityEnteringDivText, AriaLivePolitenessEnum.POLITE);\n }\n return this.accessibilityUtils.createEnteringDiv(this.renderer, this.el, itemResources.AccessibilityEnteringDivText);\n }\n}\n","import { Directive, OnInit, Input, ElementRef, OnDestroy } from '@angular/core';\nimport { AriaLivePoliteness, LiveAnnouncer } from '@angular/cdk/a11y';\n\nimport { AriaLivePolitenessEnum } from '../editor/interfaces';\nimport { getKeyCode, KeyCode } from '../utils/event';\nimport { LoggerService } from '../core/services/logger/logger.service';\n\n@Directive({\n selector: '[appAccessibilityAnnouncer]'\n})\nexport class AnnouncerDirective implements OnInit, OnDestroy {\n @Input('appAccessibilityAnnouncer') public appAccessibilityAnnouncer: string;\n @Input() public listenedEvent: string;\n @Input() public announceText: string;\n\n private announceEventRef;\n private announceEnterEventRef;\n\n constructor(private liveAnnouncer: LiveAnnouncer, private el: ElementRef, private loggerService: LoggerService) {}\n\n public ngOnInit(): void {\n this.announceEventRef = this.announceEvent.bind(this);\n this.announceEnterEventRef = this.announceEnterEvent.bind(this);\n if (this.listenedEvent) {\n switch (this.listenedEvent) {\n case 'enter':\n this.el.nativeElement.addEventListener('keyup', this.announceEnterEventRef);\n break;\n default:\n this.el.nativeElement.addEventListener(this.listenedEvent, this.announceEventRef);\n break;\n }\n }\n\n if (this.appAccessibilityAnnouncer) {\n this.announce(this.appAccessibilityAnnouncer);\n }\n }\n\n public announceEnterEvent(e: KeyboardEvent) {\n try {\n const keyCode = getKeyCode(e);\n\n if (keyCode === KeyCode.Enter) {\n this.liveAnnouncer.announce(this.announceText);\n }\n } catch (error) {\n this.loggerService.log('Please add key to dictionary.', error);\n }\n }\n public announceEvent() {\n this.liveAnnouncer.announce(this.announceText);\n }\n\n public announce(text: string, politeness: AriaLivePoliteness = AriaLivePolitenessEnum.OFF) {\n this.liveAnnouncer.announce(text, politeness);\n }\n\n public ngOnDestroy(): void {\n if (this.listenedEvent) {\n this.el.nativeElement.removeEventListener(this.listenedEvent, this.announceEventRef);\n this.el.nativeElement.removeEventListener('keyup', this.announceEnterEventRef);\n }\n }\n}\n","import { Directive, HostListener, ElementRef, Input, Output, EventEmitter } from '@angular/core';\n\nimport { AccessibilityUtilsService } from './accessibility-utils.service';\n\n@Directive({\n selector: '[appAccessibilityContentOnHoverHandler]'\n})\nexport class ContentOnHoverHandlerDirective {\n @Input() public appAccessibilityContentOnHoverHandler;\n @Output() public contentOnHover: EventEmitter = new EventEmitter();\n\n constructor(private elRef: ElementRef, private accessibilityUtils: AccessibilityUtilsService) {}\n\n @HostListener('mouseover', ['$event']) public onMouseOver(event: MouseEvent) {\n this.contentOnHover.next(true);\n }\n\n @HostListener('mouseout', ['$event']) public onMouseOut(event: MouseEvent) {\n const relatedTarget = event.relatedTarget;\n\n // Check if target is child of element\n if (relatedTarget != null) {\n const parents = this.accessibilityUtils.getParents(relatedTarget);\n\n // if hover out-\n if (parents.indexOf(this.elRef.nativeElement) === -1) {\n // toggle sub window\n this.contentOnHover.next(false);\n }\n }\n }\n}\n","import { Injectable, ElementRef, ChangeDetectorRef } from '@angular/core';\nimport { FocusMonitor } from '@angular/cdk/a11y';\n\nimport { ZoneWrapperService } from '@common/modules/core/services/zone-wrapper/zone-wrapper.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FocusManagerService {\n constructor(public focusMonitor: FocusMonitor, private zone: ZoneWrapperService) {}\n\n public focusVia(preCallBack: () => ElementRef, cdr?: ChangeDetectorRef): void {\n this.zone.runOutsideAngular(() => {\n setTimeout(() => {\n const focusElement: ElementRef = preCallBack();\n if (!focusElement || !focusElement.nativeElement) {\n return;\n }\n this.focusMonitor.focusVia(focusElement.nativeElement, 'keyboard');\n if (cdr) {\n cdr.detectChanges();\n }\n });\n });\n }\n\n public focusByQuery(query: string, cdr?: ChangeDetectorRef): void {\n // Get triggered element\n const triggeredElement = document.querySelector(query);\n\n // Focus triggered element\n this.focusVia(() => {\n return new ElementRef(triggeredElement);\n }, cdr);\n }\n}\n","import { Component, OnInit, Injector } from '@angular/core';\n\nimport { AccessibilityModeHandlerService } from '../accessibility-mode-handler.service';\n\n@Component({\n selector: 'app-focusable',\n templateUrl: './focusable.component.html',\n styleUrls: ['./focusable.component.scss']\n})\nexport class FocusableComponent implements OnInit {\n private accessibilityModeHandler: AccessibilityModeHandlerService;\n\n constructor() {\n // Get Accessibility mode service\n const injector = Injector.create({ providers: [{ provide: AccessibilityModeHandlerService, deps: [] }] });\n this.accessibilityModeHandler = injector.get(AccessibilityModeHandlerService);\n }\n\n public ngOnInit() {}\n\n public get accessibilityMode() {\n return this.accessibilityModeHandler.AccessibilityMode;\n }\n\n public get accessibilityModeSubject() {\n return this.accessibilityModeHandler.AccessibilityModeSubject;\n }\n}\n","

\n focusable works!\n

\n","import { Directive, HostListener, ElementRef, Input, Output, EventEmitter } from '@angular/core';\n\nimport { AccessibilityUtilsService } from './accessibility-utils.service';\n\n@Directive({\n selector: '[appAccessibilitySubMenuHandler]'\n})\nexport class SubMenuHandlerDirective {\n @Input('appAccessibilitySubMenuHandler') public appAccessibilitySubMenuHandler: boolean;\n @Input() public toggleFuncOnNullRelatedTarget = false;\n @Output() public toggleFunc: EventEmitter = new EventEmitter();\n\n constructor(private elRef: ElementRef, private accessibilityUtils: AccessibilityUtilsService) {}\n\n @HostListener('focusout', ['$event']) public onFocusOut(event: FocusEvent) {\n if (this.appAccessibilitySubMenuHandler) {\n // e.relatedTarget property of focusOut event returns which element is being entered\n const relatedTarget = event.relatedTarget;\n const htmlPageElement = document?.querySelector('html');\n // If related target exist and not an html page\n if (relatedTarget !== null && relatedTarget !== htmlPageElement) {\n const parents = this.accessibilityUtils.getParents(relatedTarget);\n\n // If sub window focused out-\n if (parents.indexOf(this.elRef.nativeElement) === -1) {\n // toggle sub window\n this.toggleFunc.emit();\n }\n } else if (this.toggleFuncOnNullRelatedTarget) {\n this.toggleFunc.emit();\n }\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\n\nimport { FrontdoorInterceptor } from './interceptors/frontdoor.interceptor';\nimport { ApiService } from './services/api.service';\nimport { environment } from '../../../environments/environment';\nimport { ApiInterceptor } from './interceptors/api.interceptor';\nimport { ConfigService } from '../core/services/config/config.service';\nimport { LoggerService } from '../core/services/logger/logger.service';\nimport { GlobalHttpInterceptorService } from './interceptors/global.http.interceptor';\n\n@NgModule({\n imports: [CommonModule, HttpClientModule],\n providers: [\n { provide: 'API_BASE', useValue: environment.apiBase },\n { provide: HTTP_INTERCEPTORS, useClass: ApiInterceptor, multi: true },\n { provide: HTTP_INTERCEPTORS, useClass: GlobalHttpInterceptorService, multi: true },\n { provide: HTTP_INTERCEPTORS, useClass: FrontdoorInterceptor, multi: true },\n\n ApiService,\n ConfigService\n ],\n exports: [],\n declarations: []\n})\nexport class ApiModule {\n constructor(private logger: LoggerService) {\n this.logger.log('[ApiModule] init');\n }\n}\n","import { HttpResponse } from '@angular/common/http';\n\nimport { AccountPermission } from '@common/modules/shared/interfaces';\n\nimport { CustomizationApi } from './customization/customization-api.class';\nimport { concatParamsListToURL, getRequestSettings } from '../../api/utils/request.function';\nimport { IGetPersonMaxConfidenceInVideosRequestParams, IHttpWrapper, IRequestParam, ISupportedAIsRequestParams } from '../../api/interfaces';\nimport { ProjectApi } from './project-api.class';\nimport { getCustomEncodingParams, trialLocationForSampleAccount } from '../utils/api-utils';\nimport { VideoApi } from '../../api/classes/video-api.class';\nimport {\n IAddReaderParams,\n IAPIRequestParams,\n IApiSasContract,\n IGetIdByExternalRequestParams,\n IGetSasRequestParams,\n INetworkFileInfo,\n IRemoveInviteParams,\n ISearchRequestParams,\n IUpdateRole,\n IUploadRequestParams\n} from '../interfaces';\n\nexport class AccountApi {\n public Video: VideoApi;\n public Project: ProjectApi;\n\n public Customization: CustomizationApi;\n\n private apiBaseRoute = '/accounts';\n\n constructor(private ApiWrapper: IHttpWrapper) {\n this.Video = new VideoApi(this.ApiWrapper);\n this.Project = new ProjectApi(this.ApiWrapper);\n this.Customization = new CustomizationApi(this.ApiWrapper);\n }\n\n // GET [Route(\"Api/v2/auth/Accounts/{accountId}/AccessToken\")]\n public getAccountAccessToken(accountId: string, allowEdit?: boolean, permission?: AccountPermission, reqSettings?: object) {\n const url = `${this.apiAuthBase}/${accountId}/accessToken`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, { ...reqSettings, withCredentials: true }) as object;\n if (permission) {\n requestSettings['params'].permission = permission;\n }\n if (allowEdit) {\n requestSettings['params'].allowEdit = allowEdit;\n }\n\n requestSettings['params'].location = trialLocationForSampleAccount(accountId) || this.apiLocation;\n\n return this.ApiWrapper.HttpClient.get(url, requestSettings);\n }\n\n // [HttpGet]\n // [Route(\"Api/v2/Accounts\")]\n public getAccounts(reqSettings?: object, allowEdit: boolean = true) {\n const url = `${this.apiOperationBase}/`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings);\n requestSettings['params'].generateAccessTokens = true;\n requestSettings['params'].allowEdit = allowEdit;\n\n return this.ApiWrapper.HttpClient.get(url, requestSettings as object);\n }\n\n // [HttpGet]\n // [Route(\"Api/v2/Accounts/{accountId}\")]\n public getAccount(accountId: string, includeUsage?: boolean, reqSettings?: object) {\n const url = `${this.apiOperationBase}/${accountId}/`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, {\n includeUsage: includeUsage,\n includeAmsInfo: true,\n includeStatistics: true\n }) as object;\n\n return this.ApiWrapper.HttpClient.get(url, requestSettings);\n }\n\n // [HttpDelete]\n // [Route(\"Api/v2/Accounts/{accountId}\")]\n public deleteAccount(accountId: string, cancel?: boolean, reqSettings?: object) {\n const url = `${this.apiInternalsBase}/${accountId}/`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, { cancel: cancel }) as object;\n\n return this.ApiWrapper.HttpClient.delete(url, requestSettings);\n }\n\n // [Route(\"/{location}/Accounts/{accountId}/Videos\")]\n // [HttpPost]\n public upload(accountId: string, uploadParams: IUploadRequestParams, reqSettings?: object, paramsList?: IRequestParam[]) {\n let url = `${this.apiOperationBase}/${accountId}/videos/`;\n // Add list of params to the url. e.g. ?excludeAI=Faces&excludeAI=Labels...\n url = concatParamsListToURL(url, paramsList);\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, uploadParams) as object;\n\n return this.ApiWrapper.HttpClient.post(url, null, requestSettings);\n }\n\n // [HttpGet]\n // [Route(\"api/v2/Accounts/{accountId}/sas/\")]\n public getSas(accountId: string, reqParams: IGetSasRequestParams, reqSettings?: object) {\n const url = `${this.apiInternalsCloudBase}/${accountId}/sas/`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, reqParams) as object;\n return this.ApiWrapper.HttpClient.get(url, requestSettings);\n }\n\n // [HttpGet]\n // [Route(\"/api/MediaBreakdown/videoInfo/\")]\n public getVideoInfo(accountId: string, videoUrl: string, reqSettings?: object, allowEdit = true) {\n const url = `${this.apiInternalsBase}/${accountId}/videoInfo/`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, { allowEdit: allowEdit });\n requestSettings['params'].videoUrl = videoUrl;\n requestSettings['observe'] = 'response';\n\n return this.ApiWrapper.HttpClient.get>(url, requestSettings as object);\n }\n\n // [HttpPost]\n // https://{accountName}.blob.core.windows.net/{mycontainer}/{myblob}\n public uploadToBlobStorage(url: string, file: Blob, contentType: string) {\n return this.ApiWrapper.HttpClient.put(url, file, {\n headers: {\n 'x-ms-blob-type': 'BlockBlob',\n 'x-ms-version': '2017-04-17',\n 'Content-Type': contentType\n },\n reportProgress: true,\n observe: 'events'\n } as object);\n }\n\n // [HttpPost]\n // https://{accountName}.blob.core.windows.net/{mycontainer}/{myblob}&comp=blocklist\n public commitUploadBlockList(url: string, data: string, contentType: string) {\n return this.ApiWrapper.HttpClient.put(url, data, {\n headers: {\n 'x-ms-blob-content-type': contentType\n },\n observe: 'events'\n });\n }\n\n // [HttpGet]\n // [Route(\"Api/v2/Accounts/{accountId}/Videos\")]\n public getList(accountId: string, pageSize?: number, skip?: number, reqSettings?: object) {\n const url = `${this.apiOperationBase}/${accountId}/videos/`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings) as object;\n\n return this.ApiWrapper.HttpClient.get(url, requestSettings);\n }\n\n // [HttpGet]\n // [Route(\"Api/v2/Accounts/{accountId}/Videos/Search\")]\n public search(accountId: string, searchParams?: ISearchRequestParams, reqSettings?: object, suffixUrl = '') {\n const url = `${this.apiOperationBaseWithLocation(accountId)}/${accountId}/videos/search/?${suffixUrl}`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, searchParams) as object;\n\n return this.ApiWrapper.HttpClient.get(url, {\n ...requestSettings,\n params: getCustomEncodingParams(requestSettings['params'])\n });\n }\n\n // [HttpGet]\n // [Route(\"Api/v2/Accounts/{accountId}/Videos/PersonMaxConfidenceInVideos\")]\n public searchPersonMaxConfidenceInVideos(accountId: string, searchParams?: IGetPersonMaxConfidenceInVideosRequestParams, reqSettings?: object) {\n const url = `${this.apiInternalsBaseWithLocation(this.apiLocation)}/${accountId}/videos/PersonMaxConfidenceInVideos`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, searchParams) as object;\n\n return this.ApiWrapper.HttpClient.get(url, {\n ...requestSettings,\n params: getCustomEncodingParams(requestSettings['params'])\n });\n }\n\n // [HttpGet]\n // [Route(\"/{location}/Accounts/{accountId}/Videos/GetIdByExternalId\")]\n public getIdByExternalId(accountId: string, reqParams: IGetIdByExternalRequestParams, reqSettings?: object) {\n const url = `${this.apiOperationBase}/${accountId}/videos/getIdByExternalId/`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, reqParams) as object;\n\n return this.ApiWrapper.HttpClient.get(url, requestSettings);\n }\n\n // [HttpGet]\n // [Route(\"/internals/{location}/Accounts/{accountId}/invitations\")]\n public getInvitations(accountId: string, reqParams?: object, reqSettings?: object) {\n const url = `${this.apiInternalsBase}/${accountId}/invitations`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, reqParams) as object;\n\n return this.ApiWrapper.HttpClient.get(url, requestSettings);\n }\n\n // [HttpGet]\n // [Route(\"/internals/{location}/Accounts/{accountId}/roleAssignments\")]\n public getRoleAssignments(accountId: string, reqParams?: object, reqSettings?: object) {\n const url = `${this.apiInternalsBase}/${accountId}/roleAssignments`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, reqParams) as object;\n\n return this.ApiWrapper.HttpClient.get(url, requestSettings);\n }\n\n // [HttpDelete]\n // [Route(\"Api/v2/Accounts/{accountId}/invitations/${invitationId}\")]\n public deleteInvitation(accountId: string, invitationId: number, reqParams?: object, reqSettings?: object) {\n const url = `${this.apiInternalsBase}/${accountId}/invitations/${invitationId}`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, reqParams) as object;\n\n return this.ApiWrapper.HttpClient.delete(url, requestSettings);\n }\n\n // [HttpDelete]\n // [Route(\"Api/v2/Accounts/{accountId}/roleAssignments/${roleAssignmentId}\")]\n public deleteRoleAssignment(accountId: string, roleAssignmentId: number, reqParams?: object, reqSettings?: object) {\n const url = `${this.apiInternalsBase}/${accountId}/roleAssignments/${roleAssignmentId}`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, reqParams) as object;\n\n return this.ApiWrapper.HttpClient.delete(url, requestSettings);\n }\n\n // [HttpPut]\n // [Route(\"Api/v2/Accounts/{accountId}/roleAssignments/${roleAssignmentId}\")]\n public updateRoleAssignment(accountId: string, roleAssignmentId: number, data: IUpdateRole, reqParams?: object, reqSettings?: object) {\n const url = `${this.apiInternalsBase}/${accountId}/roleAssignments/${roleAssignmentId}`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, reqParams) as object;\n\n return this.ApiWrapper.HttpClient.put(url, data, requestSettings);\n }\n\n // [HttpPost]\n // [Route(\"Api/v2/Accounts/{accountId}/Videos/CreateVideoPlaylist\")]\n public createVideoPlaylist(\n accountId: string,\n userPlaylist: Microsoft.VideoIndexer.Contracts.PlaylistContractV2,\n reqParams?: IAPIRequestParams,\n reqSettings?: object\n ) {\n const url = `${this.apiInternalsBase}/${accountId}/videos/createVideoPlaylist/`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, reqParams) as object;\n\n return this.ApiWrapper.HttpClient.post(url, userPlaylist, requestSettings);\n }\n\n // [HttpPut]\n // [Route(\"Api/v2/Accounts/{accountId}\")]\n public updateAccount(accountId: string, account: Microsoft.VideoIndexer.Contracts.AccountContract, reqSettings?: object) {\n const url = `${this.apiInternalsBase}/${accountId}/`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings) as object;\n\n return this.ApiWrapper.HttpClient.put(url, account, requestSettings);\n }\n\n // [HttpPost]\n // [Route(\"/internals/{location}/Accounts/{accountId}/invitations\")]\n public inviteToAccount(accountId: string, inviteData: Microsoft.VideoIndexer.Contracts.InviteContract[], reqParams?: object, reqSettings?: object) {\n const url = `${this.apiInternalsBase}/${accountId}/invitations/`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, reqParams) as object;\n\n return this.ApiWrapper.HttpClient.post(url, inviteData, requestSettings);\n }\n\n // [HttpGet]\n // [Route(\"Api/v2/Accounts/{accountId}/settings\")]\n public getAccountSettings(accountId: string, reqSettings?: object) {\n const url = `${this.apiInternalsBase}/${accountId}/settings`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings) as object;\n\n return this.ApiWrapper.HttpClient.get(url, requestSettings);\n }\n\n // [HttpGet]\n public getAccountSupportedAIs(accountId: string, reqParams?: ISupportedAIsRequestParams, paramsList?: IRequestParam[], reqSettings?: object) {\n let url = `${this.apiInternalsBase}/${accountId}/SupportedAIs`;\n // Add list of params to the url. e.g. ?excludeAI=Faces&excludeAI=Labels...\n url = concatParamsListToURL(url, paramsList);\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, reqParams) as object;\n\n return this.ApiWrapper.HttpClient.get(url, requestSettings);\n }\n\n // [HttpPut]\n // [Route(\"Api/v2/Accounts/{accountId}/settings\")]\n public updateAccountSettings(\n accountId: string,\n settings: Microsoft.VideoIndexer.Contracts.AccountSettings,\n reqParams?: object,\n reqSettings?: object\n ) {\n const url = `${this.apiInternalsBase}/${accountId}/settings`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, reqParams) as object;\n\n return this.ApiWrapper.HttpClient.put(url, settings, requestSettings);\n }\n\n // [HttpPut]\n // [Route(\"Api/v2/Accounts/{accountId}/Join\")]\n public join(accountId: string, inviteCode: string, reqSettings?: object, location?: string) {\n const url = `${this.apiInternalsBaseWithLocation(location)}/${accountId}/join/${inviteCode}`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings) as object;\n\n return this.ApiWrapper.HttpClient.put(url, null, requestSettings);\n }\n\n // [HttpPut]\n // [Route(\"Api/v2/Accounts/{accountId}/AddReader\")]\n public addReader(accountId: string, addReaderParams?: IAddReaderParams, reqSettings?: object) {\n const url = `${this.apiInternalsBase}/${accountId}/addReader/`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings) as object;\n\n return this.ApiWrapper.HttpClient.put(url, addReaderParams, requestSettings);\n }\n\n // [HttpDelete]\n // [Route(\"Api/v2/Accounts/{accountId}/videos/{videoId}\")]\n public deleteClip(accountId: string, videoId: string, reqSettings?: object) {\n const url = `${this.apiOperationBase}/${accountId}/videos/${videoId}/`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings) as object;\n\n return this.ApiWrapper.HttpClient.delete(url, requestSettings);\n }\n\n // [HttpPut]\n // [Route(\"Api/Accounts/{accountId}/face-features\")]\n public updateFaceGateFeatures(accountId: string, signature: string, useCase: string, reqSettings?: object) {\n const url = `${this.apiAuthBase}/${accountId}/face-features/`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings) as object;\n const body: Microsoft.VideoIndexer.Contracts.InternalFaceGatingRequest = {\n value: true,\n signature: signature,\n useCase: useCase\n };\n\n requestSettings['params'].location = this.apiLocation;\n\n return this.ApiWrapper.HttpClient.put(url, body, requestSettings);\n }\n\n // [HttpPut]\n // [Route(\"Api/v2/Accounts/{accountId}/AddContributor\")]\n public addContributor(accountId: string, addContributorParams?: IAddReaderParams, reqSettings?: object) {\n const url = `${this.apiInternalsBase}/${accountId}/addContributor/`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings) as object;\n\n return this.ApiWrapper.HttpClient.put(url, addContributorParams, requestSettings);\n }\n\n // [HttpPut]\n // [Route(\"Api/v2/Accounts/{accountId}/RemoveReader\")]\n public removeReader(accountId: string, removeReaderParams?: IAddReaderParams, reqSettings?: object) {\n const url = `${this.apiInternalsBase}/${accountId}/removeReader/`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, removeReaderParams) as object;\n\n return this.ApiWrapper.HttpClient.put(url, null, requestSettings);\n }\n\n // [HttpPut]\n // [Route(\"Api/v2/Accounts/{accountId}/RemoveMyself\")]\n public removeMyself(accountId: string, removeMySelfParams?: object, reqSettings?: object) {\n const url = `${this.apiInternalsBase}/${accountId}/removeMyself/`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, removeMySelfParams) as object;\n\n return this.ApiWrapper.HttpClient.delete(url, requestSettings);\n }\n\n // [HttpPut]\n // [Route(\"Api/v2/Accounts/{accountId}/RemoveInvite\")]\n public removeInvite(accountId: string, removeInviteParams?: IRemoveInviteParams, reqSettings?: object) {\n const url = `${this.apiInternalsBase}/${accountId}/removeInvite/`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, removeInviteParams) as object;\n\n return this.ApiWrapper.HttpClient.put(url, null, requestSettings);\n }\n\n // [HttpGet]\n // [Route(\"Api/v2/Accounts/{accountId}/RecommendVideos\")]\n public getRecommendedVideos(accountId: string, videoId: string, reqSettings?: object) {\n const url = `${this.apiInternalsBase}/${accountId}/recommendVideos/`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, { videoId: videoId }) as object;\n\n return this.ApiWrapper.HttpClient.get(url, requestSettings);\n }\n\n // [HttpPatch]\n // [Route(\"Api/v2/Accounts/{accountId}/MediaServices\")]\n public updateAccountMediaServices(\n accountId: string,\n amsUpdateConfig: Microsoft.VideoIndexer.Contracts.UpdateAmsConnectionContract,\n reqSettings?: object\n ) {\n const url = `${this.apiOperationBase}/${accountId}/MediaServices`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings) as object;\n\n return this.ApiWrapper.HttpClient.patch(url, amsUpdateConfig, requestSettings);\n }\n\n private get apiOperationBaseWithoutLocation(): string {\n return this.ApiWrapper.GetApiOperationsBase(true);\n }\n\n private get apiOperationBase(): string {\n return this.ApiWrapper.GetApiOperationsBase() + this.apiBaseRoute;\n }\n\n private get apiInternalsBase(): string {\n return this.ApiWrapper.GetInternalApiBase() + this.apiBaseRoute;\n }\n\n private get apiInternalsCloudBase(): string {\n return this.ApiWrapper.GetInternalApiBase(null, null, true) + this.apiBaseRoute;\n }\n\n private get apiAuthBase(): string {\n return this.ApiWrapper.GetAuthApiBase(false) + this.apiBaseRoute;\n }\n\n private get apiLocation(): string {\n return this.ApiWrapper.GetApiLocation();\n }\n\n private apiInternalsBaseWithLocation(location?: string): string {\n return this.ApiWrapper.GetInternalApiBase(location) + this.apiBaseRoute;\n }\n\n private apiOperationBaseWithLocation(accountId: string): string {\n const location = trialLocationForSampleAccount(accountId);\n return `${this.ApiWrapper.GetApiOperationsBase(false, location)}${this.apiBaseRoute}`;\n }\n}\n","import { Params } from '@angular/router';\n\nimport { AccountPermission } from '@common/modules/shared/interfaces';\n\nimport { IHttpWrapper } from '../interfaces';\nimport { getRequestSettings } from '../utils/request.function';\n\nimport AmsMigrationsListResult = Microsoft.VideoIndexer.Contracts.AmsMigrationsListResult;\nimport AmsAccountMigration = Microsoft.VideoIndexer.Contracts.AmsAccountMigration;\n\nexport class AmsMigrationApi {\n constructor(private ApiWrapper: IHttpWrapper) {}\n\n // [HttpGet]\n public getStatus(accountId: string, reqParams?: Params, reqSettings?: object) {\n const url = `${this.apiOperationBase(reqParams?.location)}/accounts/${accountId}/AMSAssetsMigration`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, {\n permission: AccountPermission.CONTRIBUTOR,\n ...reqParams\n }) as object;\n\n return this.ApiWrapper.HttpClient.get(url, requestSettings);\n }\n\n // [HttpGet]\n public getVideoMigrations(accountId: string, reqParams?: Params, reqSettings?: object) {\n const url = `${this.apiOperationBase()}/accounts/${accountId}/VideoAMSAssetMigrations`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, {\n permission: AccountPermission.CONTRIBUTOR,\n ...reqParams\n }) as object;\n return this.ApiWrapper.HttpClient.get(url, requestSettings);\n }\n\n private get apiInternalsBase(): string {\n return this.ApiWrapper.GetInternalApiBase();\n }\n\n private apiOperationBase(location?: string): string {\n return this.ApiWrapper.GetApiOperationsBase(null, location, true);\n }\n}\n","import { Params } from '@angular/router';\n\nimport { IArmAccessTokenResponse, IArmAccountAccessTokenPayload, IArmAccountExtensionAccessTokenPayload, IHttpWrapper } from '../interfaces';\nimport { getRequestSettings } from '../utils/request.function';\n\nexport class ArmAccountApi {\n private apiBaseRoute = '/arm';\n public constructor(private ApiWrapper: IHttpWrapper) {}\n\n private get apiAuthBase(): string {\n return this.ApiWrapper.GetAuthApiBase() + this.apiBaseRoute;\n }\n\n private get apiProxy(): string {\n return this.ApiWrapper.GerProxyApiLocation() + this.apiBaseRoute;\n }\n\n // [HttpGet]\n public getArmAccounts(reqParams?: Params, reqSettings?: object) {\n const url = `${this.apiAuthBase}/accounts`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, reqParams) as object;\n\n return this.ApiWrapper.HttpClient.get(url, requestSettings);\n }\n\n // [HttpGet]\n public getArmAccount(subscriptionId: string, resourceGroupName: string, accountName: string, reqParams?: Params, reqSettings?: object) {\n const url = `${this.apiAuthBase}/subscriptions/${subscriptionId}/resourceGroups/${resourceGroupName}/accounts/${accountName}`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, reqParams) as object;\n requestSettings['params']['forceToken'] = true;\n\n return this.ApiWrapper.HttpClient.get(url, requestSettings);\n }\n\n // [HttpGet]\n public getArmAccountAccessToken(\n subscriptionId: string,\n resourceGroupName: string,\n accountName: string,\n armAccountAccessTokenPayload: IArmAccountAccessTokenPayload,\n reqSettings?: object\n ) {\n const url = `${this.apiAuthBase}/subscriptions/${subscriptionId}/resourceGroups/${resourceGroupName}/accounts/${accountName}/accessToken`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, armAccountAccessTokenPayload) as object;\n\n return this.ApiWrapper.HttpClient.get(url, requestSettings);\n }\n\n // [HttpGet]\n public getArmVideoAccessToken(\n subscriptionId: string,\n resourceGroupName: string,\n accountName: string,\n videoId: string,\n armAccountAccessTokenPayload: IArmAccountAccessTokenPayload,\n reqSettings?: object\n ) {\n // eslint-disable-next-line max-len\n const url = `${this.apiAuthBase}/subscriptions/${subscriptionId}/resourceGroups/${resourceGroupName}/accounts/${accountName}/videos/${videoId}/accessToken`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, armAccountAccessTokenPayload) as object;\n\n return this.ApiWrapper.HttpClient.get(url, requestSettings);\n }\n\n // [HttpGet]\n public getArmProjectAccessToken(\n subscriptionId: string,\n resourceGroupName: string,\n accountName: string,\n projectId: string,\n armAccountAccessTokenPayload: IArmAccountAccessTokenPayload,\n reqSettings?: object\n ) {\n // eslint-disable-next-line max-len\n const url = `${this.apiAuthBase}/subscriptions/${subscriptionId}/resourceGroups/${resourceGroupName}/accounts/${accountName}/projects/${projectId}/accessToken`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, armAccountAccessTokenPayload) as object;\n\n return this.ApiWrapper.HttpClient.get(url, requestSettings);\n }\n\n // [HttpGet]\n public getArmExtensionAccountAccessToken(\n subscriptionId: string,\n resourceGroupName: string,\n accountName: string,\n armAccountExtensionAccessTokenPayload: IArmAccountExtensionAccessTokenPayload,\n reqSettings?: object\n ) {\n // eslint-disable-next-line max-len\n const url = `${this.apiAuthBase}/subscriptions/${subscriptionId}/resourceGroups/${resourceGroupName}/accounts/${accountName}/extensionAccessToken`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, armAccountExtensionAccessTokenPayload) as object;\n\n return this.ApiWrapper.HttpClient.get(url, requestSettings);\n }\n\n // [HttpGet]\n public getArmExtensionVideoAccessToken(\n subscriptionId: string,\n resourceGroupName: string,\n accountName: string,\n videoId: string,\n armAccountExtensionAccessTokenPayload: IArmAccountExtensionAccessTokenPayload,\n reqSettings?: object\n ) {\n // eslint-disable-next-line max-len\n const url = `${this.apiAuthBase}/subscriptions/${subscriptionId}/resourceGroups/${resourceGroupName}/accounts/${accountName}/videos/${videoId}/extensionAccessToken`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, armAccountExtensionAccessTokenPayload) as object;\n\n return this.ApiWrapper.HttpClient.get(url, requestSettings);\n }\n\n // [HttpGet]\n // [Route(\"{apiInternalBase}/Users/me\")]\n public getArmDirectories(reqSettings?: object) {\n const url = `${this.apiAuthBase}/tenants`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, { ...reqSettings, withCredentials: true }) as object;\n\n return this.ApiWrapper.HttpClient.get(url, requestSettings);\n }\n}\n","import { IHttpWrapper } from '../../interfaces';\nimport { getRequestSettings } from '../../utils/request.function';\nimport { IBrandsSettings } from '../../../../../apps/web/src/customization/components/brand/brand-container/interfaces';\n\nimport BrandContractV2 = Microsoft.VideoIndexer.Contracts.BrandContractV2;\n\nexport class CustomizationBrandsModelsApi {\n private apiBaseRoute = '/accounts';\n constructor(private ApiWrapper: IHttpWrapper) {}\n\n private get apiOperationBase(): string {\n return this.ApiWrapper.GetApiOperationsBase(null, null, true) + this.apiBaseRoute;\n }\n\n // [HttpGet]\n // [Route(\"v2/Accounts/{accountId}/Customization/Brands\")]\n public getList(accountId: string, reqSettings?: object) {\n const url = `${this.apiOperationBase}/${accountId}/customization/brands/`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings) as object;\n return this.ApiWrapper.HttpClient.get(url, requestSettings);\n }\n\n // [HttpPost]\n // [Route(\"v2/Accounts/{accountId}/Customization/Brands\")]\n public addBrand(accountId: string, brand: BrandContractV2, reqSettings?: object) {\n const url = `${this.apiOperationBase}/${accountId}/customization/brands/`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings) as object;\n return this.ApiWrapper.HttpClient.post(url, brand, requestSettings);\n }\n\n // [HttpPut]\n // [Route(\"v2/Accounts/{accountId}/Customization/Brands/{brandId}\")]\n public updateBrand(accountId: string, brand: BrandContractV2, reqSettings?: object) {\n const url = `${this.apiOperationBase}/${accountId}/customization/brands/${brand.id}`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings) as object;\n return this.ApiWrapper.HttpClient.put(url, brand, requestSettings);\n }\n\n // [HttpDelete]\n // [Route(\"v2/Accounts/{accountId}/Customization/Brands/{brandId}\")]\n public deleteBrand(accountId: string, brandId: number, reqSettings?: object) {\n const url = `${this.apiOperationBase}/${accountId}/customization/brands/${brandId}`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings);\n return this.ApiWrapper.HttpClient.delete(url, requestSettings);\n }\n\n // [HttpGet]\n // [Route(\"v2/Accounts/{accountId}/Customization/BrandsModelSettings\")]\n public getBrandsModelSettings(accountId: string, reqSettings?: object) {\n const url = `${this.apiOperationBase}/${accountId}/customization/BrandsModelSettings`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache) as object;\n\n return this.ApiWrapper.HttpClient.get(url, requestSettings);\n }\n\n // [HttpPut]\n // [Route(\"v2/Accounts/{accountId}/Customization/BrandsModelSettings\")]\n public updateBrandsModelSettings(accountId: string, brandSettings: IBrandsSettings, reqSettings?: object) {\n const url = `${this.apiOperationBase}/${accountId}/customization/brandsModelSettings`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache) as object;\n\n return this.ApiWrapper.HttpClient.put(url, brandSettings, requestSettings);\n }\n}\n","import { IHttpWrapper } from '../../interfaces';\nimport { CustomizationPeopleModelsApi } from './people-models-api.class';\nimport { CustomizationPeopleApi } from './people-api.class';\nimport { CustomizationFacesApi } from './faces-api.class';\nimport { CustomizationBrandsModelsApi } from './brands-models-api.class';\nimport { CustomizationLanguageModelsApi } from './language-models-api';\nimport { CustomizationSpeechApi } from './speech-api.class';\nimport { CustomizationLogoGroupsApi } from './logo-groups-api.class';\nimport { CustomizationUnknownPersonsApi } from './unknown-person-api.class';\n\nexport class CustomizationApi {\n public PeopleModels: CustomizationPeopleModelsApi;\n public People: CustomizationPeopleApi;\n public UnknownPersons: CustomizationUnknownPersonsApi;\n public Faces: CustomizationFacesApi;\n public BrandsModels: CustomizationBrandsModelsApi;\n public LanguagesModels: CustomizationLanguageModelsApi;\n public Speech: CustomizationSpeechApi;\n public LogoGroups: CustomizationLogoGroupsApi;\n\n constructor(private ApiWrapper: IHttpWrapper) {\n this.PeopleModels = new CustomizationPeopleModelsApi(this.ApiWrapper);\n this.UnknownPersons = new CustomizationUnknownPersonsApi(this.ApiWrapper);\n this.People = new CustomizationPeopleApi(this.ApiWrapper);\n this.Faces = new CustomizationFacesApi(this.ApiWrapper);\n this.BrandsModels = new CustomizationBrandsModelsApi(this.ApiWrapper);\n this.LanguagesModels = new CustomizationLanguageModelsApi(this.ApiWrapper);\n this.Speech = new CustomizationSpeechApi(this.ApiWrapper);\n this.LogoGroups = new CustomizationLogoGroupsApi(this.ApiWrapper);\n }\n}\n","import { IHttpWrapper, IAPIRequestParams, IAPIPostFaces, IAPIGetFaces, IAPIPostFace } from '../../interfaces';\nimport { getRequestSettings } from '../../utils/request.function';\n\nexport class CustomizationFacesApi {\n private apiBaseRoute = '/accounts';\n constructor(private ApiWrapper: IHttpWrapper) {}\n\n private get apiOperationBase(): string {\n return this.ApiWrapper.GetApiOperationsBase(null, null, true) + this.apiBaseRoute;\n }\n\n // [HttpGet]\n // [Route(\"api/v2/Accounts/{accountId}/Customization/PersonModels/{personModelId}/Persons/{personId}/Faces\")]\n public getList(accountId: string, personModelId: string, personId: string, reqParams?: IAPIGetFaces, reqSettings?: object) {\n const url = `${this.apiOperationBase}/${accountId}/customization/personModels/${personModelId}/persons/${personId}/faces`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, reqParams) as object;\n\n return this.ApiWrapper.HttpClient.get(url, requestSettings);\n }\n\n // [HttpGet]\n // [Route(\"api/v2/Accounts/{accountId}/Customization/PersonModels/{personModelId}/Persons/{personId}/Faces/{faceId}\")]\n public getFaceBytes(accountId: string, personModelId: string, personId: string, faceId: string, accessToken: string) {\n const url = `${this.apiOperationBase}/${accountId}\n /Customization/PersonModels/${personModelId}/Persons/${personId}/Faces/${faceId}/?accessToken=${accessToken}`;\n\n return this.ApiWrapper.HttpClient.get(url);\n }\n\n public getFacesSpriteUrl(\n accountId: string,\n personModelId: string,\n personId: string,\n accessToken: string,\n pageSize: number,\n skip: number,\n sourceType?: Microsoft.VideoIndexer.Contracts.KnownPersonFaceSourceType\n ) {\n let sourceTypeParam = ``;\n if (sourceType !== undefined) {\n sourceTypeParam = `&sourceType=${sourceType}`;\n }\n\n // Total is for cache use only\n // eslint-disable-next-line max-len\n return `${this.apiOperationBase}/${accountId}/Customization/PersonModels/${personModelId}/Persons/${personId}/Faces/sprite/?total=${skip}&pageSize=${pageSize}&skip=${skip}${sourceTypeParam}&accessToken=${accessToken}`;\n }\n\n public getFaceUrl(accountId: string, personModelId: string, personId: string, faceId: string, accessToken: string) {\n // eslint-disable-next-line max-len\n return `${this.apiOperationBase}/${accountId}/Customization/PersonModels/${personModelId}/Persons/${personId}/Faces/${faceId}/?accessToken=${accessToken}`;\n }\n\n // [HttpPost]\n // [Route(\"Api/v2/Accounts/{accountId}/Customization/PersonModels/{personModelId}/Persons/{personId}/Faces\")]\n public create(\n accountId: string,\n personModelId: string,\n personId: string,\n files: FormData | IAPIPostFace,\n reqParams?: IAPIPostFaces,\n reqSettings?: object\n ) {\n const url = `${this.apiOperationBase}/${accountId}/Customization/PersonModels/${personModelId}/Persons/${personId}/Faces`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, reqParams);\n\n // Set header for uploading file - In case there is a content type type of multipart, do not change the header.\n // It will change itself by default\n requestSettings['headers'] = {\n ...requestSettings['headers'],\n Accept: 'application/json'\n };\n\n return this.ApiWrapper.HttpClient.post(url, files, requestSettings as object);\n }\n\n // [HttpDelete]\n // [Route(\"Api/v2/Accounts/{accountId}/Customization/PersonModels/{personModelId}/{personModelId}/Persons/{personId}/Faces/{faceId}\")]\n public delete(accountId: string, personModelId: string, personId: string, faceId: string, reqSettings?: object) {\n const url = `${this.apiOperationBase}/${accountId}/Customization/PersonModels/${personModelId}/Persons/${personId}/Faces/${faceId}`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings) as object;\n\n return this.ApiWrapper.HttpClient.delete(url, requestSettings);\n }\n\n // [HttpPut]\n // [Route(\"Api/v2/Accounts/{accountId}/Customization/PersonModels/{personModelId}/Persons/{personId}/Faces/{faceId}\")]\n public put(accountId: string, personModelId: string, personId: string, faceId: string, reqParams?: IAPIRequestParams, reqSettings?: object) {\n const url = `${this.apiOperationBase}/${accountId}/Customization/PersonModels/${personModelId}/Persons/${personId}/Faces/${faceId}`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, reqParams) as object;\n\n return this.ApiWrapper.HttpClient.put(url, requestSettings);\n }\n}\n","import { IHttpWrapper } from '../../interfaces';\nimport { getRequestSettings } from '../../utils/request.function';\n\nimport AddLanguageModel = Microsoft.VideoIndexer.Contracts.AddLanguageModel;\n\nexport class CustomizationLanguageModelsApi {\n private apiBaseRoute = '/accounts';\n constructor(private ApiWrapper: IHttpWrapper) {}\n\n private get apiOperationBase(): string {\n return this.ApiWrapper.GetApiOperationsBase(null, null, true) + this.apiBaseRoute;\n }\n\n // [HttpGet]\n // [Route('v2/Accounts/{accountId}/Customization/Language')]\n public getModels(accountId: string, reqSettings?: object) {\n const url = `${this.apiOperationBase}/${accountId}/customization/language`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings) as object;\n return this.ApiWrapper.HttpClient.get(url, requestSettings);\n }\n\n // [HttpGet]\n // [Route('v2/Accounts/{accountId}/Customization/Language')]\n public getModel(accountId: string, modelId: string, reqSettings?: object) {\n const url = `${this.apiOperationBase}/${accountId}/customization/language/${modelId}`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings) as object;\n return this.ApiWrapper.HttpClient.get(url, requestSettings);\n }\n\n // [HttpPost]\n // [Route('v2/Accounts/{accountId}/Customization/Language')]\n public addModel(accountId: string, reqParams: AddLanguageModel, reqSettings?: object) {\n const url = `${this.apiOperationBase}/${accountId}/customization/language`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, reqParams) as object;\n return this.ApiWrapper.HttpClient.post(url, null, requestSettings);\n }\n\n // [HttpPut]\n // [Route('v2/Accounts/{accountId}/Customization/Language/{modelId}')]\n public updateModel(accountId: string, reqParams: AddLanguageModel, modelId: string, reqSettings?: object) {\n const url = `${this.apiOperationBase}/${accountId}/customization/language/${modelId}`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, reqParams) as object;\n return this.ApiWrapper.HttpClient.put(url, null, requestSettings);\n }\n\n // [HttpDelete]\n // [Route('v2/Accounts/{accountId}/Customization/Language/{modelId}')]\n public deleteModel(accountId: string, modelId: string, reqSettings?: object) {\n const url = `${this.apiOperationBase}/${accountId}/customization/language/${modelId}`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings) as object;\n return this.ApiWrapper.HttpClient.delete(url, requestSettings);\n }\n\n // [HttpPut]\n // [Route('v2/Accounts/{accountId}/Customization/Language/{modelId}')]\n public uploadModelFile(accountId: string, modelId: string, reqBody: FormData, reqSettings?: object) {\n const url = `${this.apiOperationBase}/${accountId}/customization/language/${modelId}`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings) as object;\n return this.ApiWrapper.HttpClient.put(url, reqBody, requestSettings);\n }\n\n // [HttpDelete]\n // [Route('v2/Accounts/{accountId}/Customization/Language/{modelId}')]\n public deleteModelFile(accountId: string, modelId: string, fileId: string, reqSettings?: object) {\n const url = `${this.apiOperationBase}/${accountId}/customization/language/${modelId}/files/${fileId}`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings) as object;\n return this.ApiWrapper.HttpClient.delete(url, requestSettings);\n }\n\n // [HttpDelete]\n // [Route('v2/Accounts/{accountId}/Customization/Language/{modelId}')]\n public downloadModelFile(accountId: string, modelId: string, fileId: string, reqSettings?: object) {\n const url = `${this.apiOperationBase}/${accountId}/customization/language/${modelId}/files/${fileId}`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings) as object;\n return this.ApiWrapper.HttpClient.get(url, requestSettings);\n }\n\n // [HttpGet]\n // [Route('v2/Accounts/{accountId}/Customization/Language//{modelId}')]\n public getModelFile(accountId: string, modelId: string, fileId: string, reqSettings?: object) {\n const url = `${this.apiOperationBase}/${accountId}/customization/language/${modelId}/files/${fileId}`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings) as object;\n return this.ApiWrapper.HttpClient.get(url, requestSettings);\n }\n\n // [HttpGet]\n // [Route('v2/Accounts/{accountId}/Customization/Language//{modelId}')]\n public getModelCrisEdits(accountId: string, modelId: string, reqSettings?: object) {\n const url = `${this.apiOperationBase}/${accountId}/customization/language/${modelId}/edits`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings) as object;\n return this.ApiWrapper.HttpClient.get(url, requestSettings);\n }\n\n // [HttpPut]\n // [Route('v2/Accounts/{accountId}/Customization/Language/{modelId}/train')]\n public trainModel(accountId: string, modelId: string, reqSettings?: object) {\n const url = `${this.apiOperationBase}/${accountId}/customization/language/${modelId}/train`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings) as object;\n return this.ApiWrapper.HttpClient.put(url, null, requestSettings);\n }\n}\n","import { IHttpWrapper } from '@common/modules/api/interfaces';\n\nimport { getRequestSettings } from '../../utils/request.function';\n\nexport class CustomizationLogoGroupsApi {\n private apiBaseRoute = '/accounts';\n constructor(private ApiWrapper: IHttpWrapper) {}\n\n private get apiOperationBase(): string {\n return this.ApiWrapper.GetApiOperationsBase(null, null, true) + this.apiBaseRoute;\n }\n\n // [HttpGet]\n // [Route(\"Api/v2/Accounts/{accountId}/Customization/CustomLogos/Groups\")]\n public list(accountId: string, reqSettings?: object) {\n const url = `${this.apiOperationBase}/${accountId}/Customization/CustomLogos/Groups`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings) as object;\n\n // eslint-disable-next-line max-len\n return this.ApiWrapper.HttpClient.get(url, requestSettings);\n }\n}\n","import { IHttpWrapper, IAPIGetPeople, IAPIPeopleCustomization, IRequestParam } from '../../interfaces';\nimport { concatParamsListToURL, getRequestSettings } from '../../utils/request.function';\nimport { environment } from '../../../../../environments/environment';\n\nexport class CustomizationPeopleApi {\n private apiBaseRoute = '/accounts';\n constructor(private ApiWrapper: IHttpWrapper) {}\n\n private get apiOperationBase(): string {\n return this.ApiWrapper.GetApiOperationsBase(null, null, true) + this.apiBaseRoute;\n }\n\n private get apiInternalBase(): string {\n return this.ApiWrapper.GetInternalApiBase(null, null, true) + this.apiBaseRoute;\n }\n\n // [HttpGet]\n // [Route(\"api/v2/Accounts/{accountId}/Customization/PersonModels/{personModelId}/Persons\")]\n public getList(accountId: string, personModelId: string, reqParams?: IAPIGetPeople, reqSettings?: object) {\n const url = `${this.apiOperationBase}/${accountId}/customization/personModels/${personModelId}/persons`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, reqParams) as object;\n\n return this.ApiWrapper.HttpClient.get(url, requestSettings);\n }\n\n public getTestPeopleByModel() {\n let base = '';\n if (environment.production && window.viewContext) {\n base = window.viewContext.codeLocation;\n }\n const url = `${base}assets/testPersons.json`;\n return this.ApiWrapper.HttpClient.get(url);\n }\n\n // [HttpPost]\n // [Route(\"Api/v2/Accounts/{accountId}/Customization/PersonModels/{personModelId}/Persons\")]\n public create(accountId: string, personModelId: string, reqParams?: IAPIPeopleCustomization, reqSettings?: object) {\n const url = `${this.apiOperationBase}/${accountId}/Customization/PersonModels/${personModelId}/persons`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, reqParams) as object;\n\n return this.ApiWrapper.HttpClient.post(url, null, requestSettings);\n }\n\n // [HttpPost]\n // [Route(\"Api/v2/Accounts/{accountId}/Customization/PersonModels/{personModelId}/Persons/Merge[?name][&personId]\")]\n public merge(accountId: string, personModelId: string, paramsList?: IRequestParam[], reqSettings?: object) {\n let url = `${this.apiInternalBase}/${accountId}/Customization/PersonModels/${personModelId}/persons/merge`;\n url = concatParamsListToURL(url, paramsList);\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings) as object;\n\n return this.ApiWrapper.HttpClient.post(url, null, requestSettings);\n }\n\n // [HttpDelete]\n // [Route(\"Api/v2/Accounts/{accountId}/Customization/PersonModels/{personModelId}/{personModelId}/Persons/{personId}\")]\n public delete(accountId: string, personModelId: string, personId: string, reqSettings?: object) {\n const url = `${this.apiOperationBase}/${accountId}/Customization/PersonModels/${personModelId}/Persons/${personId}`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings) as object;\n\n return this.ApiWrapper.HttpClient.delete(url, requestSettings);\n }\n\n // [HttpPut]\n // [Route(\"Api/v2/Accounts/{accountId}/Customization/PersonModels/{personModelId}/Persons/{personId}\")]\n public put(accountId: string, personModelId: string, personId: string, reqParams?: IAPIPeopleCustomization, reqSettings?: object) {\n const url = `${this.apiOperationBase}/${accountId}/Customization/PersonModels/${personModelId}/Persons/${personId}`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, reqParams) as object;\n\n return this.ApiWrapper.HttpClient.put(url, null, requestSettings);\n }\n}\n","import { Observable } from 'rxjs';\n\nimport { IHttpWrapper, IAPIPostPeopleModel, IAPIGetPeopleModel } from '../../interfaces';\nimport { getRequestSettings } from '../../utils/request.function';\nimport { environment } from '../../../../../environments/environment';\n\nexport class CustomizationPeopleModelsApi {\n private apiBaseRoute = '/accounts';\n constructor(private ApiWrapper: IHttpWrapper) {}\n\n private get apiOperationBase(): string {\n return this.ApiWrapper.GetApiOperationsBase(null, null, true) + this.apiBaseRoute;\n }\n\n // [HttpGet]\n // [Route(\"Api/v2/Accounts/{accountId}/Customization/PersonModels\")]\n public getList(accountId: string, reqParams?: IAPIGetPeopleModel, reqSettings?: object) {\n const url = `${this.apiOperationBase}/${accountId}/customization/personModels`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, reqParams) as object;\n\n return this.ApiWrapper.HttpClient.get(url, requestSettings);\n }\n\n public getTestPeopleModels(): Observable {\n let base = '';\n if (environment.production && window.viewContext) {\n base = window.viewContext.codeLocation;\n }\n const url = `${base}assets/testPersonModels.json`;\n return this.ApiWrapper.HttpClient.get(url);\n }\n\n // [HttpPost]\n // [Route(\"Api/v2/Accounts/{accountId}/Customization/PersonModels\")]\n // Update person model name\n public post(accountId: string, reqParams?: IAPIPostPeopleModel, reqSettings?: object) {\n const url = `${this.apiOperationBase}/${accountId}/customization/personModels`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, reqParams) as object;\n\n return this.ApiWrapper.HttpClient.post(url, null, requestSettings);\n }\n\n // [HttpPut]\n // [Route(\"Api/v2/Accounts/{accountId}/Customization/PersonModels/{personModelId}\")]\n public put(accountId: string, personModelId: string, reqParams?: IAPIPostPeopleModel, reqSettings?: object) {\n const url = `${this.apiOperationBase}/${accountId}/customization/personModels/${personModelId}/`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, reqParams) as object;\n\n return this.ApiWrapper.HttpClient.put(url, null, requestSettings);\n }\n\n // [HttpDelete]\n // [Route(\"Api/v2/Accounts/{accountId}/Customization/PersonModels/{personModelId}\")]\n public delete(accountId: string, personModelId: string, reqSettings?: object) {\n const url = `${this.apiOperationBase}/${accountId}/customization/personModels/${personModelId}`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings) as object;\n\n return this.ApiWrapper.HttpClient.delete(url, requestSettings);\n }\n}\n","import { catchError, concatMap, from, mergeMap, of, switchMap, toArray } from 'rxjs';\nimport { fromFetch } from 'rxjs/fetch';\n\nimport { IHttpWrapper } from '@common/modules/api/interfaces';\n\nimport { getRequestSettings } from '../../utils/request.function';\n\nimport SpeechDataset = Microsoft.VideoIndexer.Contracts.SpeechDataset;\nimport SpeechDatasetFile = Microsoft.VideoIndexer.Contracts.SpeechDatasetFile;\nimport SpeechModel = Microsoft.VideoIndexer.Contracts.CustomSpeechModel;\nimport SpeechModelInput = Microsoft.VideoIndexer.Contracts.CustomSpeechModelInput;\nimport SpeechDatasetInput = Microsoft.VideoIndexer.Contracts.SpeechDatasetInput;\n\nexport class CustomizationSpeechApi {\n private apiBaseRoute = '/accounts';\n constructor(private ApiWrapper: IHttpWrapper) {}\n\n // [HttpGet]\n // [Route('v2/Accounts/{accountId}/Customization/Speech/models')]\n public listModels(accountId: string, reqSettings?: object) {\n const url = `${this.apiOperationBase}/${accountId}/customization/speech/models`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings) as object;\n return this.ApiWrapper.HttpClient.get(url, requestSettings);\n }\n\n // [HttpGet]\n // [Route('v2/Accounts/{accountId}/Customization/Speech/datasets')]\n public listDatasets(accountId: string, reqSettings?: object) {\n const url = `${this.apiOperationBase}/${accountId}/customization/speech/datasets`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings) as object;\n return this.ApiWrapper.HttpClient.get(url, requestSettings);\n }\n\n // [HttpGet]\n // [Route('v2/Accounts/{accountId}/Customization/Speech/datasets/{datasetId}')]\n public getDataset(accountId: string, datasetId: string, reqSettings?: object) {\n const url = `${this.apiOperationBase}/${accountId}/customization/speech/datasets/${datasetId}`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings) as object;\n return this.ApiWrapper.HttpClient.get(url, requestSettings);\n }\n\n // [Route('v2/Accounts/{accountId}/Customization/Speech/datasets/{datasetId}/files')]\n public getDatasetFiles(accountId: string, datasetId: string, reqSettings?: object) {\n const url = `${this.apiOperationBase}/${accountId}/customization/speech/datasets/${datasetId}/files`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings) as object;\n\n return this.ApiWrapper.HttpClient.get(url, requestSettings);\n }\n\n // [HttpPatch]\n // [Route('v2/Accounts/{accountId}/Customization/Speech/datasets/{datasetId}')]\n public updateDataset(\n accountId: string,\n datasetId: string,\n properties: Pick,\n reqSettings?: object\n ) {\n const url = `${this.apiOperationBase}/${accountId}/customization/speech/datasets/${datasetId}`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings) as object;\n\n return this.ApiWrapper.HttpClient.patch(url, properties, requestSettings);\n }\n\n // [HttpDelete]\n // [Route('v2/Accounts/{accountId}/Customization/Speech/datasets/{datasetId}')]\n public deleteDataset(accountId: string, datasetId: string, reqSettings?: object) {\n const url = `${this.apiOperationBase}/${accountId}/customization/speech/datasets/${datasetId}`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings) as object;\n\n return this.ApiWrapper.HttpClient.delete(url, requestSettings);\n }\n\n // [HttpPost]\n // [Route('v2/Accounts/{accountId}/Customization/Speech/datasets')]\n public createDataset(accountId: string, properties: SpeechDatasetInput, reqSettings?: object) {\n const url = `${this.apiOperationBase}/${accountId}/customization/speech/datasets`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings);\n\n return this.ApiWrapper.HttpClient.post(url, properties, requestSettings);\n }\n\n // [HttpPatch]\n // [Route('v2/Accounts/{accountId}/Customization/Speech/models/{modelId}')]\n public updateModel(\n accountId: string,\n modelId: string,\n properties: Pick,\n reqSettings?: object\n ) {\n const url = `${this.apiOperationBase}/${accountId}/customization/speech/models/${modelId}`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings);\n\n return this.ApiWrapper.HttpClient.patch(url, properties, requestSettings);\n }\n\n // [HttpPost]\n // [Route('v2/Accounts/{accountId}/Customization/Speech/models')]\n public createModel(accountId: string, properties: SpeechModelInput, reqSettings?: object) {\n const url = `${this.apiOperationBase}/${accountId}/customization/speech/models`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings);\n\n return this.ApiWrapper.HttpClient.post(url, properties, requestSettings);\n }\n\n // [HttpDelete]\n // [Route('v2/Accounts/{accountId}/Customization/Speech/models/{modelId}')]\n public deleteModel(accountId: string, modelId: string, reqSettings?: object) {\n const url = `${this.apiOperationBase}/${accountId}/customization/speech/models/${modelId}`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings) as object;\n\n return this.ApiWrapper.HttpClient.delete(url, requestSettings);\n }\n\n // [HttpGet]\n // [Route('v2/Accounts/{accountId}/Customization/Speech/models/{modelId}')]\n public getModel(accountId: string, modelId: string, reqSettings?: object) {\n const url = `${this.apiOperationBase}/${accountId}/customization/speech/models/${modelId}`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings) as object;\n return this.ApiWrapper.HttpClient.get(url, requestSettings);\n }\n\n public getDatasetFilesContent(files: SpeechDatasetFile[]) {\n return of(files).pipe(\n mergeMap(files => from(files)),\n concatMap(file =>\n fromFetch(file.contentUrl).pipe(\n switchMap(response => {\n if (response.ok) {\n const method = response.headers.get('Content-Type').includes('text/plain') ? 'text' : 'json';\n\n return response[method]().then(content => {\n return { content, ...file };\n });\n } else {\n return of({ error: response.statusText });\n }\n }),\n catchError(error => {\n return of({ error });\n })\n )\n ),\n toArray()\n );\n }\n\n private get apiInternalsBase(): string {\n return this.ApiWrapper.GetInternalApiBase() + this.apiBaseRoute;\n }\n\n private get apiOperationBase(): string {\n return this.ApiWrapper.GetApiOperationsBase(null, null, true) + this.apiBaseRoute;\n }\n}\n","import { IHttpWrapper } from '../../interfaces';\nimport { getRequestSettings } from '../../utils/request.function';\n\nimport UnknownPersonsJob = Microsoft.VideoIndexer.Contracts.UnknownPersonsJob;\nimport UnknownPerson = Microsoft.VideoIndexer.Contracts.UnknownPerson;\nimport UnknownPersonDetails = Microsoft.VideoIndexer.Contracts.UnknownPersonDetails;\nimport PaginatedResult = Microsoft.VideoIndexer.Contracts.PaginatedResult;\n\nexport class CustomizationUnknownPersonsApi {\n private apiBaseRoute = '/accounts';\n constructor(private ApiWrapper: IHttpWrapper) {}\n\n private get apiInternalBase(): string {\n return this.ApiWrapper.GetInternalApiBase(null, null, true) + this.apiBaseRoute;\n }\n\n // [HttpPost]\n // [Route(\"api/v2/Accounts/{accountId}/UnknownPersons/Job\")]\n public submitJob(accountId: string, reqSettings?: object) {\n const url = `${this.apiInternalBase}/${accountId}/UnknownPersons/Group`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings) as object;\n\n return this.ApiWrapper.HttpClient.post(url, requestSettings);\n }\n\n // [HttpGet]\n // [Route(\"api/v2/Accounts/{accountId}/Jobs\")]\n public getJob(accountId: string, reqSettings?: object) {\n const url = `${this.apiInternalBase}/${accountId}/Jobs/${accountId}`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings) as object;\n\n return this.ApiWrapper.HttpClient.get>(url, requestSettings);\n }\n\n // [HttpGet]\n // [Route(\"api/v2/Accounts/{accountId}/UnknownPersons\")]\n public list(accountId: string, skip: number, filterValue: string, reqSettings?: object) {\n const params = { nameForFilter: filterValue };\n const url = `${this.apiInternalBase}/${accountId}/UnknownPersons?skip=${skip}`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, params) as object;\n\n return this.ApiWrapper.HttpClient.get>(url, requestSettings);\n }\n\n // [HttpGet]\n // [Route(\"api/v2/Accounts/{accountId}/UnknownPersons/{unknownPersonId}\")]\n public get(accountId: string, unknownPersonId: string, reqSettings?: object) {\n const url = `${this.apiInternalBase}/${accountId}/UnknownPersons/${unknownPersonId}`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings) as object;\n\n return this.ApiWrapper.HttpClient.get(url, requestSettings);\n }\n\n // [HttpPatch]\n // [Route(\"api/v2/Accounts/{accountId}/UnknownPersons/{unknownPersonId}\")]\n public patch(accountId: string, unknownPersonId: string, params: Partial, reqSettings?: object) {\n const url = `${this.apiInternalBase}/${accountId}/UnknownPersons/${unknownPersonId}`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, params) as object;\n\n return this.ApiWrapper.HttpClient.patch(url, requestSettings);\n }\n\n // [HttpPut]\n // [Route(\"api/v2/Accounts/{accountId}/UnknownPersons/{unknownPersonId}/MoveToKnownPersonModels\")]\n public moveToKnownPersonModels(accountId: string, unknownPersonId: string, personName: string, reqSettings?: object) {\n const url = `${this.apiInternalBase}/${accountId}/UnknownPersons/${unknownPersonId}/MoveToKnownPersonModels?personName=${personName}`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings) as object;\n\n return this.ApiWrapper.HttpClient.put(url, requestSettings);\n }\n\n // [HttpDelete]\n // [Route(\"api/v2/Accounts/{accountId}/UnknownPersons/{unknownPersonId}\")]\n public delete(accountId: string, unknownPersonId: string, reqSettings?: object) {\n const url = `${this.apiInternalBase}/${accountId}/UnknownPersons/${unknownPersonId}`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings) as object;\n\n return this.ApiWrapper.HttpClient.delete(url, requestSettings);\n }\n\n // [HttpDelete]\n // [Route(\"api/v2/Accounts/{accountId}/UnknownPersons/{unknownPersonId}\")]\n public deleteFace(accountId: string, unknownPersonId: string, faceId: string, reqSettings?: object) {\n const url = `${this.apiInternalBase}/${accountId}/UnknownPersons/${unknownPersonId}/Faces/${faceId}`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings) as object;\n\n return this.ApiWrapper.HttpClient.delete(url, requestSettings);\n }\n}\n","import { Params } from '@angular/router';\n\nimport { IHttpWrapper, IRequestParam } from '../interfaces';\nimport { concatParamsListToURL, getRequestSettings } from '../utils/request.function';\n\nexport class EdgeExtensionsApi {\n public constructor(private ApiWrapper: IHttpWrapper) {}\n\n private get apiOperationBase(): string {\n return this.ApiWrapper.GetApiOperationsBase();\n }\n\n private get apiInternalBase(): string {\n return this.ApiWrapper.GetInternalApiBase();\n }\n\n // [HttpPost]\n public translate(accountId: string, videoId: string, language: Microsoft.VideoIndexer.Contracts.LanguageV2, reqSettings?: object) {\n const url = `${this.apiOperationBase}/accounts/${accountId}/videos/${videoId}/translate?language=${language}`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings) as object;\n\n return this.ApiWrapper.HttpClient.post(url, null, requestSettings);\n }\n\n // [HttpPost]\n public uploadFile(accountId: string, file: File, reqParams?: Params, paramsList?: IRequestParam[]) {\n const serializedParams = this.ApiWrapper.UrlUtility.paramsToUrl(reqParams);\n let url = `${this.apiOperationBase}/accounts/${accountId}/Videos?${serializedParams}`;\n // Add list of params to the url. e.g. ?excludeAI=Faces&excludeAI=Labels...\n url = concatParamsListToURL(url, paramsList);\n const formData: FormData = new FormData();\n\n if (file) {\n formData.append('fileName', file);\n }\n\n return this.ApiWrapper.HttpClient.post(url, formData, {\n headers: {\n Accept: 'text/plain'\n },\n reportProgress: true,\n observe: 'events'\n });\n }\n\n // [HttpGet]\n public list(reqSettings?: object) {\n const url = `${this.ApiWrapper.GetAuthApiBase()}/arm/edge/extensions`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, { ...reqSettings, withCredentials: true }) as object;\n\n return this.ApiWrapper.HttpClient.get(url, requestSettings);\n }\n\n // [HttpGet]\n public get(resourceId: string, reqSettings?: object) {\n const url = `${this.ApiWrapper.GetAuthApiBase()}/arm/edge${resourceId}`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, { ...reqSettings, withCredentials: true }) as object;\n\n return this.ApiWrapper.HttpClient.get(url, requestSettings);\n }\n\n // [HttpGet]\n public handshake(reqSettings?: object) {\n const url = `${this.apiOperationBase}/info`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, { ...reqSettings }) as object;\n\n return this.ApiWrapper.HttpClient.get(url, requestSettings);\n }\n\n // [APIM]\n // [HttpGet]\n // [Route(\"/{location}/Accounts/{accountId}/LanguageModels]\n public listLanguageModels(accountId: string, reqSettings?: object) {\n const url = `${this.apiInternalBase}/accounts/${accountId}/LanguageModels`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings) as object;\n return this.ApiWrapper.HttpClient.get(url, requestSettings);\n }\n}\n","import { INotificationsResponse } from '@common/modules/core/services/toast/interfaces';\n\nimport { IHttpWrapper, INotificationsRequestParams } from '../interfaces';\nimport { getRequestSettings } from '../utils/request.function';\n\nexport class NotificationsApi {\n constructor(private ApiWrapper: IHttpWrapper) {}\n\n // [HttpGet]\n // [Route(\"{apiAuthBase}{apiAuthRoute}/notifications\")]\n public getNotifications(reqParams: INotificationsRequestParams, reqSettings?: object) {\n const url = `${this.ApiWrapper.GetAuthApiBase()}/notifications`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, { ...reqSettings, withCredentials: true }, reqParams) as object;\n return this.ApiWrapper.HttpClient.get(url, requestSettings);\n }\n}\n","import { map } from 'rxjs';\n\nimport { IHttpWrapper, IAPIRequestParams, ICaptionsRequestParams, IListRequestParams, ISearchRequestParams } from '../interfaces';\nimport { getCustomEncodingParams, prepareProjectSummarizedInsights } from '../utils/api-utils';\nimport { getRequestSettings } from '../utils/request.function';\n\nexport class ProjectApi {\n private apiBaseRoute = '/accounts';\n constructor(private ApiWrapper: IHttpWrapper) {}\n\n private get apiInternalBase(): string {\n return this.ApiWrapper.GetInternalApiBase() + this.apiBaseRoute;\n }\n\n private get apiOperationBase(): string {\n return this.ApiWrapper.GetApiOperationsBase() + this.apiBaseRoute;\n }\n\n private get apiAuthBase(): string {\n return this.ApiWrapper.GetAuthApiBase(true) + this.apiBaseRoute;\n }\n\n private get apiLocation(): string {\n return this.ApiWrapper.GetApiLocation();\n }\n\n // [HttpGet]\n // [Route(\"Api/v2/Accounts/{accountId}/Projects\")]\n public list(accountId: string, requestParams?: IListRequestParams, reqSettings?: object) {\n const url = `${this.apiOperationBase}/${accountId}/projects/`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, requestParams) as object;\n\n return this.ApiWrapper.HttpClient.get(url, requestSettings);\n }\n\n // [HttpGet]\n // [Route(\"/{location}/Accounts/{accountId}/Projects/{projectId}\")]\n public get(accountId: string, projectId: string, reqSettings?: object) {\n const url = `${this.apiInternalBase}/${accountId}/projects/${projectId}/`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings) as object;\n\n return this.ApiWrapper.HttpClient.get(url, requestSettings);\n }\n\n // [HttpGet]\n // [Route(\"Api/v2/Accounts/{accountId}/Projects/Search\")]\n public search(accountId: string, searchParams?: ISearchRequestParams, reqSettings?: object, suffixUrl = '') {\n const url = `${this.apiInternalBase}/${accountId}/projects/search/?${suffixUrl}`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, searchParams) as object;\n\n return this.ApiWrapper.HttpClient.get(url, {\n ...requestSettings,\n params: getCustomEncodingParams(requestSettings['params'])\n });\n }\n\n // [HttpGet]\n // [Route(\"Api/v2/Accounts/{accountId}/Projects/{projectId}/Index\")]\n public getProjectIndex(accountId: string, projectId: string, reqParams?: IAPIRequestParams, reqSettings?: object) {\n const url = `${this.apiOperationBase}/${accountId}/Projects/${projectId}/index`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, reqParams) as object;\n\n return this.ApiWrapper.HttpClient.get(url, requestSettings).pipe(\n map(index => prepareProjectSummarizedInsights(index, this.ApiWrapper.Injector))\n );\n }\n\n // [HttpGet]\n // [Route(\"Api/v2/auth/Accounts/{accountId}/Projects/{videoId}/AccessToken\")]\n public getProjectAccessToken(accountId: string, projectId: string, allowEdit?: boolean, reqSettings?: object) {\n const url = `${this.apiAuthBase}/${accountId}/projects/${projectId}/accessToken/`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, { ...reqSettings, withCredentials: true }) as object;\n requestSettings['params'].allowEdit = allowEdit;\n requestSettings['params'].location = this.apiLocation;\n\n return this.ApiWrapper.HttpClient.get(url, requestSettings);\n }\n\n public getProjectIndexUrl(\n accountId: string,\n projectId: string,\n accessToken: string,\n language: Microsoft.VideoIndexer.Contracts.LanguageV2,\n query: { [key: string]: string | boolean } = {}\n ): string {\n const params = {\n language: language,\n accessToken: accessToken,\n ...query\n };\n\n const serializedParams = this.ApiWrapper.UrlUtility.paramsToUrl(params);\n\n return `${this.apiOperationBase}/${accountId}/Projects/${projectId}/Index/${serializedParams ? '?' + serializedParams : ''}`;\n }\n\n // [HttpPost]\n // [Route(\"Api/v2/Accounts/{accountId}/Projects\")]\n public createProject(\n accountId: string,\n playlist: Microsoft.VideoIndexer.Contracts.CreateOrUpdateProjectContract,\n reqParams?: IAPIRequestParams,\n reqSettings?: object\n ) {\n const url = `${this.apiOperationBase}/${accountId}/Projects`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, reqParams);\n return this.ApiWrapper.HttpClient.post(url, playlist, requestSettings);\n }\n\n // [HttpPut]\n // [Route(\"Api/v2/Accounts/{accountId}/Projects/{projectId}\")]\n public updateProject(\n accountId: string,\n projectId: string,\n playlist: Microsoft.VideoIndexer.Contracts.CreateOrUpdateProjectContract,\n reqParams?: IAPIRequestParams,\n reqSettings?: object\n ) {\n const url = `${this.apiOperationBase}/${accountId}/Projects/${projectId}`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, reqParams);\n return this.ApiWrapper.HttpClient.put(url, playlist, requestSettings);\n }\n\n // [HttpDelete]\n // [Route(\"/{location}/Accounts/{accountId}/Projects/{videoId}\")]\n public deleteVideo(accountId: string, videoId: string, reqSettings?: object) {\n const url = `${this.apiOperationBase}/${accountId}/projects/${videoId}/`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings);\n\n return this.ApiWrapper.HttpClient.delete(url, requestSettings);\n }\n\n // [HttpPut]\n // [Route(\"Api/v2/Accounts/{accountId}/Projects/{projectId}/captions\")]\n public getCaptionsUrl(accountId: string, projectId: string, reqParams: ICaptionsRequestParams): string {\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, null, reqParams);\n const serializedParams = this.ApiWrapper.UrlUtility.paramsToUrl(requestSettings['params']);\n return `${this.apiOperationBase}/${accountId}/projects/${projectId}/captions/?${serializedParams}`;\n }\n\n // [HttpGet]\n // [Route(\"Api/v2/Accounts/{accountId}/projects/{videoId}/Captions\")]\n public getCaptions(accountId: string, projectId: string, reqParams?: ICaptionsRequestParams, reqSettings?: object) {\n const url = `${this.apiOperationBase}/${accountId}/projects/${projectId}/captions/`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, reqParams);\n requestSettings['responseType'] = 'text';\n return this.ApiWrapper.HttpClient.get(url, requestSettings);\n }\n}\n","import { IHttpWrapper } from '../interfaces';\nimport { getRequestSettings } from '../utils/request.function';\n\nexport class SupportedLanguagesApi {\n constructor(private ApiWrapper: IHttpWrapper) {}\n // [HttpGet]\n // [Route(\"{apiOperationBase}/SupportedLanguages\")]\n public getSupportedLanguages() {\n const url = `${this.ApiWrapper.GetApiOperationsBase()}/SupportedLanguages`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache) as object;\n return this.ApiWrapper.HttpClient.get(url, requestSettings);\n }\n}\n","import { IHttpWrapper, IAzureLocation, IAmILoggedInResult } from '../interfaces';\nimport { getRequestSettings } from '../utils/request.function';\nimport { amILoggedInSuffix } from '../utils/api-utils';\n\nexport class UserApi {\n private apiBaseRoute = '/users';\n\n constructor(private ApiWrapper: IHttpWrapper) {}\n\n // [HttpGet]\n // [Route(\"{apiAuthBase}{apiAuthRoute}/Users/me/AccessToken\")]\n public getUserAccessToken(allowEdit?: boolean, reqSettings?: object) {\n const url = `${this.apiAuthBase()}/me/accessToken/`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, { ...reqSettings, withCredentials: true }) as object;\n if (allowEdit) {\n requestSettings['params'].allowEdit = allowEdit;\n }\n\n return this.ApiWrapper.HttpClient.get(url, requestSettings);\n }\n\n // [HttpGet]\n // [Route(\"{apiInternalBase}/Users/me\")]\n public getUser(reqSettings?: object) {\n const url = `${this.apiAuthBase()}/me/`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, { ...reqSettings, withCredentials: true }) as object;\n\n return this.ApiWrapper.HttpClient.get(url, requestSettings);\n }\n\n // [HttpPut]\n // [Route(\"{apiInternalBase}/Users/me\")]\n public saveUser(userSettings: Microsoft.VideoIndexer.Contracts.UserContract, reqSettings?: object) {\n const url = `${this.apiInternalBaseDefaultLocation}/me/`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings);\n\n return this.ApiWrapper.HttpClient.put(url, userSettings, requestSettings);\n }\n\n // [HttpDelete]\n // [Route(\"{apiInternalBase}/Users/{userId}\")]\n public deleteUser(userId: string, reqSettings?: object) {\n const url = `${this.apiInternalBase}/${userId}/`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings);\n\n return this.ApiWrapper.HttpClient.delete(url, requestSettings);\n }\n\n // [HttpGet]\n // [Route(\"{apiInternalBase}/Locations\")]\n public getVILocations(allowEdit?: boolean, reqSettings?: object) {\n const url = `${this.ApiWrapper.GetInternalApiBase()}/locations/`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings) as object;\n if (allowEdit) {\n requestSettings['params'].allowEdit = allowEdit;\n }\n return this.ApiWrapper.HttpClient.get(url, requestSettings);\n }\n\n // GET [Route(\"/auth/amILoggedIn\")]\n public amILoggedIn() {\n const url = `${window.location.origin}${amILoggedInSuffix}`;\n return this.ApiWrapper.HttpClient.get(url);\n }\n\n private get apiInternalBase(): string {\n return this.ApiWrapper.GetInternalApiBase(null, null, true) + this.apiBaseRoute;\n }\n\n private get apiInternalBaseDefaultLocation(): string {\n return this.ApiWrapper.GetInternalApiBase(null, true, true) + this.apiBaseRoute;\n }\n\n private apiAuthBase(isAuthPath: boolean = false): string {\n return this.ApiWrapper.GetAuthApiBase(isAuthPath) + this.apiBaseRoute;\n }\n}\n","import { Params } from '@angular/router';\n\nimport { map } from 'rxjs';\n\nimport { guid } from '@common/modules/utils/string';\n\nimport { environment } from '../../../../environments/environment';\nimport { concatParamsListToURL, getRequestSettings } from '../utils/request.function';\nimport { IDeleteFaceAPI } from '../../insights/services/interfaces';\nimport { IError } from '../../core/services/toast/interfaces';\nimport { prepareProjectSummarizedInsights, prepareVideoSummarizedInsights, trialLocationForSampleAccount } from '../utils/api-utils';\nimport {\n IAbuseParams,\n IAddKeywordsRequestParams,\n IAPIRequestParams,\n IAPISetThumbnailIdRequestParams,\n IAPISetThumbnailRequestParams,\n IArtifactRequestParams,\n ICaptionsRequestParams,\n ICreateTextualVideoSummaryParams,\n IGetBoundingBoxPageTimeRequestParams,\n IGetIndexRequestParams,\n IGetObservedPeoplePageTimeRequestParams,\n IGetStreamingUrlRequestParams,\n IHttpWrapper,\n IInsightsWidgetParams,\n IListRequestParams,\n IPlayerWidgetParams,\n IReIndexRequestParams,\n IRemoveBrandsRequestParams,\n IRenderFileDownloadUrl,\n IRequestParam,\n ITakeDownParams,\n IUpdateFaceRequestParams,\n IUpdateTranscriptRequestParams,\n IVideoRenderRequestParams\n} from '../interfaces';\n\nexport class VideoApi {\n private timeToken;\n private apiBaseRoute = '/accounts';\n\n constructor(private ApiWrapper: IHttpWrapper) {\n this.timeToken = Date.now();\n }\n\n private get apiAuthBase(): string {\n return this.ApiWrapper.GetAuthApiBase(true) + this.apiBaseRoute;\n }\n\n private get apiLocation(): string {\n return this.ApiWrapper.GetApiLocation();\n }\n\n // [HttpGet]\n // [Route(\"Api/v2/Accounts/{accountId}/Videos\")]\n public list(accountId: string, requestParams?: IListRequestParams, reqSettings?: object) {\n const url = `${this.apiOperationBaseWithLocation(accountId)}/${accountId}/videos/`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, requestParams) as object;\n\n return this.ApiWrapper.HttpClient.get(url, requestSettings);\n }\n\n // [HttpGet]\n // [Route(\"/{location}/Accounts/{accountId}/Videos/{videoId}\")]\n public get(accountId: string, videoId: string, reqSettings?: object) {\n const url = `${this.apiInternalsBaseWithLocation(accountId)}/${accountId}/videos/${videoId}/`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings) as object;\n\n return this.ApiWrapper.HttpClient.get(url, requestSettings);\n }\n\n // [HttpDelete]\n // [Route(\"/{location}/Accounts/{accountId}/Videos/{videoId}\")]\n public deleteVideo(accountId: string, videoId: string, reqSettings?: object) {\n const url = `${this.apiOperationBaseWithMediaApiLocation(accountId)}/${accountId}/videos/${videoId}/`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings) as object;\n\n return this.ApiWrapper.HttpClient.delete(url, requestSettings);\n }\n\n // [APIM]\n // [HttpDelete]\n // [Route(\"/{location}/Accounts/{accountId}/Videos/{videoId}/SourceFile\")]\n public deleteVideoSourceFile(accountId: string, videoId: string, reqSettings?: object) {\n const url = `${this.apiOperationBaseWithMediaApiLocation(accountId)}/${accountId}/videos/${videoId}/sourceFile/`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings) as object;\n\n return this.ApiWrapper.HttpClient.delete(url, requestSettings);\n }\n\n // [APIM]\n // [HttpGet]\n // [Route(\"/{location}/Accounts/{accountId}/Videos/{videoId}/Index\")]\n public getVideoIndex(accountId: string, videoId: string, reqParams?: IGetIndexRequestParams, reqSettings?: object) {\n const url = `${this.apiOperationBaseWithMediaApiLocation(accountId)}/${accountId}/videos/${videoId}/index`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, reqParams) as object;\n\n return this.ApiWrapper.HttpClient.get(url, requestSettings).pipe(\n map(index => prepareVideoSummarizedInsights(index, this.ApiWrapper.Injector))\n );\n }\n\n // Get video index from custom url\n public getCustomVideoIndex(url: string) {\n return this.ApiWrapper.HttpClient.get(url);\n }\n\n // [HttpGet]\n // [Route(\"Api/v2/Accounts/{accountId}/Projects/{projectId}/Index\")]\n public getProjectIndex(accountId: string, projectId: string, reqParams?: IAPIRequestParams | Params, reqSettings?: object) {\n const url = `${this.apiOperationBaseWithMediaApiLocation(accountId)}/${accountId}/Projects/${projectId}/index`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, reqParams) as object;\n\n return this.ApiWrapper.HttpClient.get(url, requestSettings).pipe(\n map(index => prepareProjectSummarizedInsights(index, this.ApiWrapper.Injector))\n );\n }\n\n public getVideoTestIndex() {\n let base = '';\n if (environment.production && window.viewContext) {\n base = window.viewContext.codeLocation + 'apps/web/';\n }\n const url = `${base}/assets/testdata.json`;\n return this.ApiWrapper.HttpClient.get(url);\n }\n\n public getVideoIndexUrl(\n accountId: string,\n videoId: string,\n accessToken: string,\n language: Microsoft.VideoIndexer.Contracts.LanguageV2,\n query: { [key: string]: string } = {}\n ): string {\n const params = {\n language: language,\n accessToken: accessToken,\n ...query\n };\n\n const serializedParams = this.ApiWrapper.UrlUtility.paramsToUrl(params);\n return `${this.apiOperationBaseWithMediaApiLocation(accountId)}/${accountId}/videos/${videoId}/Index/${\n serializedParams ? '?' + serializedParams : ''\n }`;\n }\n\n // [HttpPut]\n // [Route(\"Api/v2/Accounts/{accountId}/Videos/{videoId}/Index\")]\n public saveVideoIndex(\n accountId: string,\n videoId: string,\n index: Microsoft.VideoIndexer.Contracts.PlaylistContractV2,\n reqParams?: IAPIRequestParams,\n reqSettings?: object\n ) {\n const url = `${this.apiInternalsBaseWithMediaApiLocation(accountId)}/${accountId}/videos/${videoId}/index`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, reqParams) as object;\n return this.ApiWrapper.HttpClient.put(url, index, requestSettings);\n }\n\n // [HttpPatch]\n // [Route(\"{location}/Accounts/{accountId}/Videos/{videoId}/Index[?language]\n public updateVideoIndex(\n accountId: string,\n videoId: string,\n updateData: Microsoft.VideoIndexer.Contracts.IJsonPatchDocument[],\n reqParams?: IAPIRequestParams,\n reqSettings?: object\n ) {\n const url = `${this.apiOperationBaseWithMediaApiLocation(accountId)}/${accountId}/videos/${videoId}/index`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, reqParams);\n return this.ApiWrapper.HttpClient.patch(url, updateData, requestSettings).pipe(\n map(index => prepareVideoSummarizedInsights(index, this.ApiWrapper.Injector))\n );\n }\n\n // [APIM]\n // [HttpGet]\n // [Route(\"Api/v2/Accounts/{accountId}/Videos/{videoId}/SourceFile/DownloadUrl\")]\n public getSourceFileDownloadUrl(accountId: string, videoId: string, reqSettings?: object) {\n const url = `${this.apiOperationBaseWithMediaApiLocation(accountId)}/${accountId}/videos/${videoId}/sourceFile/downloadUrl`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings) as object;\n\n return this.ApiWrapper.HttpClient.get(url, requestSettings);\n }\n\n // [APIM]\n // [HttpGet]\n // [Route(\"/{location}/Accounts/{accountId}/Videos/{videoId}/Captions\")]\n public getCaptions(accountId: string, videoId: string, isBase: boolean, reqParams?: ICaptionsRequestParams, reqSettings?: object) {\n const type = isBase ? 'videos' : 'projects';\n const url = `${this.apiOperationBaseWithMediaApiLocation(accountId)}/${accountId}/${type}/${videoId}/captions/`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, reqParams) as object;\n requestSettings['responseType'] = 'text';\n return this.ApiWrapper.HttpClient.get(url, requestSettings);\n }\n\n public getCaptionsUrl(accountId: string, videoId: string, reqParams: ICaptionsRequestParams): string {\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, null, reqParams) as object;\n const serializedParams = this.ApiWrapper.UrlUtility.paramsToUrl(requestSettings['params']);\n return `${this.apiOperationBaseWithMediaApiLocation(accountId)}/${accountId}/videos/${videoId}/captions/?${serializedParams}`;\n }\n\n // [APIM]\n // [HttpGet]\n // [Route(\"Api/v2/Accounts/{accountId}/Videos/{videoId}/Thumbnails/{thumbnailId}\")]\n public getThumbnail(accountId: string, videoId: string, thumbnailId: string, reqSettings?: object) {\n const url = `${this.apiOperationBaseWithMediaApiLocation(accountId)}/${accountId}/videos/${videoId}/thumbnails/${thumbnailId}/`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings) as object;\n requestSettings['responseType'] = 'blob';\n return this.ApiWrapper.HttpClient.get(url, requestSettings);\n }\n\n // [HttpPut]\n // [Route(\"Api/v2/Accounts/{accountId}/Videos/{videoId}/Thumbnails\")]\n public setThumbnail(accountId: string, videoId: string, thumbnailId: string, reqParams: IAPISetThumbnailRequestParams, reqSettings?: object) {\n const url = `${this.apiInternalsBaseWithMediaApiLocation(accountId)}/${accountId}/videos/${videoId}/thumbnails/${thumbnailId}/`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, reqParams) as object;\n\n return this.ApiWrapper.HttpClient.put(url, null, requestSettings);\n }\n\n // [HttpPut]\n // [Route(\"Api/v2/Accounts/{accountId}/Videos/{videoId}/ThumbnailId\")]\n public setThumbnailId(accountId: string, videoId: string, reqParams: IAPISetThumbnailIdRequestParams, reqSettings?: object) {\n const url = `${this.apiInternalsBaseWithMediaApiLocation(accountId)}/${accountId}/videos/${videoId}/ThumbnailId/`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, reqParams) as object;\n return this.ApiWrapper.HttpClient.put(url, null, requestSettings);\n }\n\n public getThumbnailUrl(accountId: string, videoId: string, thumbnailId: string): string {\n // BE return thumbnailId=Guid(0) when there isn't thumbnail\n if (thumbnailId === guid(0)) {\n return '';\n }\n return `${this.apiOperationBaseWithMediaApiLocation(accountId)}/${accountId}/videos/${videoId}/thumbnails/${thumbnailId}`;\n }\n\n public getThumbnailSpriteCustomUrl(customURL: string, page: number = 0): string {\n return `${this.getCustomUrl(customURL, 'FacesLegendSprite')}/${page}`;\n }\n\n public getKeyframesSpriteCustomUrl(customURL: string, page: number = 0): string {\n return `${this.getCustomUrl(customURL, 'KeyframesSprite')}/${page}`;\n }\n\n /***\n * Get sprite url - generic for all kind of sprite types.\n * [Route(\"Api/v2/Accounts/{accountId}/Videos/{videoId}/Sprite\")]\n * Instead of:\n * [Route(\"Api/v2/Accounts/{accountId}/Videos/{videoId}/Thumbnails/FacesLegendSprite/{pageIndex}\")]\n * [Route(\"Api/v2/Accounts/{accountId}/Videos/{videoId}/Thumbnails/KeyframesSprite/{pageIndex}\")]\n ***/\n public getSpriteUrl(\n accountId: string,\n videoId: string,\n accessToken: string,\n pageIndex: number,\n spriteType: Microsoft.VideoIndexer.Contracts.SpriteType\n ): string {\n const tokenParam = accessToken && !accessToken.includes('refresh') ? `&accessToken=${accessToken}` : '';\n return `${this.apiInternalsBaseWithMediaApiLocation(\n accountId\n )}/${accountId}/videos/${videoId}/sprite/?type=${spriteType}&pageIndex=${pageIndex}${tokenParam}`;\n }\n\n public getTestThumbnailSpriteUrl(page: number = 0): string {\n let base = '';\n if (environment.production && window.viewContext) {\n base = window.viewContext.codeLocation;\n }\n return `${base}/assets/sprite${page}.jpg`;\n }\n\n public getTestKeyframesSpriteUrl(page: number = 0): string {\n let base = '';\n if (environment.production && window.viewContext) {\n base = window.viewContext.codeLocation;\n }\n return `${base}/assets/kf_sprite${page <= 5 ? page : 0}.jpg`;\n }\n\n // [APIM]\n // [HttpPut]\n // [Route(\"/{location}/Accounts/{accountId}/Videos/{videoId}/ReIndex\")]\n public reIndex(accountId: string, videoId: string, reqParams?: IReIndexRequestParams, reqSettings?: object, paramsList?: IRequestParam[]) {\n let url = `${this.apiOperationBaseWithMediaApiLocation(accountId)}/${accountId}/videos/${videoId}/reIndex/`;\n url = concatParamsListToURL(url, paramsList);\n const requestSettings = (getRequestSettings(this.ApiWrapper.Cache, reqSettings, reqParams)) as object;\n\n return this.ApiWrapper.HttpClient.put(url, null, requestSettings);\n }\n\n // [APIM]\n // [HttpPut]\n // [Route(\"/{location}/Accounts/{accountId}/Videos/{videoId}/Index/Faces/{faceId}\")]\n public updateFace(accountId: string, videoId: string, faceId: number, reqParams?: IUpdateFaceRequestParams, reqSettings?: object) {\n const url = `${this.apiOperationBaseWithMediaApiLocation(accountId)}/${accountId}/videos/${videoId}/index/faces/${faceId}/`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, reqParams) as object;\n\n return this.ApiWrapper.HttpClient.put(url, null, requestSettings);\n }\n\n // [HttpPut]\n // [Route(\"/{location}/Accounts/{accountId}/Videos/{videoId}/Index/Transcript\")]\n public updateTranscript(accountId: string, videoId: string, reqParams?: IUpdateTranscriptRequestParams, reqSettings?: object) {\n const url = `${this.apiOperationBaseWithMediaApiLocation(accountId)}/${accountId}/videos/${videoId}/index/transcript/`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings) as object;\n\n return this.ApiWrapper.HttpClient.put(url, reqParams, requestSettings);\n }\n\n // [HttpDelete]\n // [Route(\"Api/v2/Accounts/{accountId}/Videos/{videoId}/labels/{labelId}\")]\n public removeLabels(accountId: string, videoId: string, labelId: number, reqSettings?: object) {\n const url = `${this.apiInternalsBaseWithMediaApiLocation(accountId)}/${accountId}/videos/${videoId}/labels/${labelId}`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings) as object;\n\n return this.ApiWrapper.HttpClient.delete(url, requestSettings);\n }\n\n // [HttpDelete]\n // [Route(\"Api/v2/Accounts/{accountId}/Videos/{videoId}/Keywords/{keywordId}\")]\n public removeKeywords(accountId: string, videoId: string, keywordId: number, reqSettings?: object) {\n const url = `${this.apiInternalsBaseWithMediaApiLocation(accountId)}/${accountId}/videos/${videoId}/Keywords/${keywordId}`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings) as object;\n\n return this.ApiWrapper.HttpClient.delete(url, requestSettings);\n }\n\n // [HttpPost]\n // [Route(\"Api/v2/Accounts/{accountId}/Videos/{videoId}}/Keywords\")]\n public addKeywords(accountId: string, videoId: string, reqParams: IAddKeywordsRequestParams, reqSettings?: object) {\n const url = `${this.apiInternalsBaseWithMediaApiLocation(accountId)}/${accountId}/videos/${videoId}/keywords`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, reqParams) as object;\n\n return this.ApiWrapper.HttpClient.post(url, null, requestSettings);\n }\n\n // [HttpDelete]\n // [Route(\"/{location}/Accounts/{accountId}/Videos/{videoId}/Index/Faces/{faceId}\")]\n public removeFaces({ accountId, videoId, faceId, reqSettings }: IDeleteFaceAPI) {\n const url = `${this.apiOperationBaseWithMediaApiLocation(accountId)}/${accountId}/videos/${videoId}/index/faces/${faceId}/`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings) as object;\n\n return this.ApiWrapper.HttpClient.delete(url, requestSettings);\n }\n\n // [HttpPut]\n // [Route(\"Api/v2/Accounts/{accountId}/Videos/{videoId}/RemoveBrands\")]\n public removeBrands(accountId: string, videoId: string, reqParams?: IRemoveBrandsRequestParams, reqSettings?: object) {\n const url = `${this.apiInternalsBaseWithMediaApiLocation(accountId)}/${accountId}/videos/${videoId}/removeBrands/`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, reqParams) as object;\n\n return this.ApiWrapper.HttpClient.put(url, null, requestSettings);\n }\n\n // [HttpGet]\n // [Route(\"Api/v2/auth/Accounts/{accountId}/Videos/{videoId}/AccessToken\")]\n public getVideoAccessToken(accountId: string, videoId: string, allowEdit?: boolean, reqSettings?: object) {\n const url = `${this.apiAuthBase}/${accountId}/videos/${videoId}/accessToken/`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, { ...reqSettings, withCredentials: true }) as object;\n requestSettings['params'].allowEdit = allowEdit;\n requestSettings['params'].location = requestSettings['params'].location ?? this.apiLocation;\n\n return this.ApiWrapper.HttpClient.get(url, requestSettings);\n }\n\n // [HttpPost]\n // [Route(\"Api/v2/Accounts/{accountId}/Videos/{videoId}/Takedown\")]\n public takedown(accountId: string, videoId: string, takedownParams: ITakeDownParams, reqSettings?: object) {\n const url = `${this.apiInternalsBaseWithMediaApiLocation(accountId)}/${accountId}/videos/${videoId}/takedown/`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, takedownParams) as object;\n\n return this.ApiWrapper.HttpClient.post(url, null, requestSettings);\n }\n\n // [HttpPut]\n // [Route(\"Api/v2/Accounts/{accountId}/Videos/{videoId}/TakedownByAdmin\")]\n public takedownByAdmin(accountId: string, videoId: string, reqSettings?: object) {\n const url = `${this.apiInternalsBaseWithMediaApiLocation(accountId)}/${accountId}/videos/${videoId}/takedownByAdmin/`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings) as object;\n\n return this.ApiWrapper.HttpClient.put(url, null, requestSettings);\n }\n\n // [HttpPut]\n // [Route(\"Api/v2/Accounts/{accountId}/Videos/{videoId}/Unquarantine\")]\n public unquarantine(accountId: string, videoId: string, reqSettings?: object) {\n const url = `${this.apiInternalsBaseWithMediaApiLocation(accountId)}/${accountId}/videos/${videoId}/unquarantine/`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings) as object;\n\n return this.ApiWrapper.HttpClient.put(url, null, requestSettings);\n }\n\n // [APIM]\n // [HttpGet]\n // [Route(\"/{location}/Accounts/{accountId}/Videos/{videoId}/InsightsWidget\")]\n public getInsightsWidget(accountId: string, videoId: string, insightsParams: IInsightsWidgetParams, reqSettings?: object) {\n const url = `${this.apiOperationBaseWithMediaApiLocation(accountId)}/${accountId}/videos/${videoId}/insightsWidget/`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, insightsParams) as object;\n\n return this.ApiWrapper.HttpClient.get(url, requestSettings);\n }\n\n // [APIM]\n // [HttpGet]\n // [Route(\"/{location}/Accounts/{accountId}/Videos/{videoId}/PlayerWidget\")]\n public getPlayerWidget(accountId: string, videoId: string, playerParams: IPlayerWidgetParams, reqSettings?: object) {\n const url = `${this.apiOperationBaseWithMediaApiLocation(accountId)}/${accountId}/videos/${videoId}/insightsWidget/`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, playerParams) as object;\n\n return this.ApiWrapper.HttpClient.get(url, requestSettings);\n }\n\n // [HttpGet]\n public getArtifactByUrl(url: string, reqSettings?: object) {\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings) as object;\n return this.ApiWrapper.HttpClient.get(url, requestSettings);\n }\n\n // [APIM]\n // [HttpGet]\n // [Route(\"/{location}/Accounts/{accountId}/Videos/{videoId}/ArtifactUrl\")]\n public getArtifactUrl(accountId: string, videoId: string, reqParams?: IArtifactRequestParams, reqSettings?: object) {\n const url = `${this.apiOperationBaseWithMediaApiLocation(accountId)}/${accountId}/videos/${videoId}/ArtifactUrl/`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, reqParams) as object;\n return this.ApiWrapper.HttpClient.get(url, requestSettings);\n }\n\n // [HttpGet]\n // [Route(\"Api/v2/Accounts/{accountId}/Videos/{videoId}/ArtifactsZip\")]\n public getArtifactZip(accountId: string, videoId: string, reqParams?: IArtifactRequestParams, reqSettings?: object) {\n const url = `${this.apiInternalsBaseWithMediaApiLocation(accountId)}/${accountId}/videos/${videoId}/ArtifactsZip/`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, reqParams) as object;\n requestSettings['responseType'] = 'blob';\n return this.ApiWrapper.HttpClient.get(url, requestSettings);\n }\n\n // [HttpPost]\n // [Route(\"Api/v2/Accounts/{accountId}/Videos/{videoId}/ReportAbuse\")]\n public reportAbuse(accountId: string, videoId: string, abuseData: IAbuseParams) {\n const url = `${this.apiInternalsBaseWithMediaApiLocation(accountId)}/${accountId}/videos/${videoId}/reportAbuse/`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache) as object;\n\n return this.ApiWrapper.HttpClient.post(url, abuseData, requestSettings);\n }\n\n // [HttpPost]\n // [Route(\"/{location}/Accounts/{accountId}/Projects/{projectId}/render\")]\n public renderProject(accountId: string, projectId: string, reqParams?: IVideoRenderRequestParams, reqSettings?: object) {\n const url = `${this.apiOperationBaseWithMediaApiLocation(accountId)}/${accountId}/projects/${projectId}/render`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, reqParams) as object;\n return this.ApiWrapper.HttpClient.post(url, null, requestSettings);\n }\n\n // [HttpGet]\n // [Route(\"/{location}/Accounts/{accountId}/Projects/{projectId}/renderoperation\")]\n public checkRenderProjectStatus(accountId: string, projectId: string, reqParams?: IAPIRequestParams, reqSettings?: object) {\n const url = `${this.apiOperationBaseWithMediaApiLocation(accountId)}/${accountId}/projects/${projectId}/renderoperation`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, reqParams) as object;\n return this.ApiWrapper.HttpClient.get<\n Microsoft.VideoIndexer.Contracts.AsyncOperationContract\n >(url, requestSettings);\n }\n\n // [HttpGet]\n // [Route(\"{ProjectId}/renderedfile/downloadurl/\")]\n public getProjectRenderedFileDownloadUrl(accountId: string, projectId: string, reqParams?: IAPIRequestParams, reqSettings?: object) {\n const url = `${this.apiOperationBaseWithMediaApiLocation(accountId)}/${accountId}/Projects/${projectId}/renderedfile/downloadurl/`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, reqParams) as object;\n return this.ApiWrapper.HttpClient.get(url, requestSettings);\n }\n\n // [HttpPut]\n // [Route(\"{ProjectId}/renderoperation/Cancel\")]\n public cancelRenderProject(accountId: string, projectId: string, reqParams?: IAPIRequestParams, reqSettings?: object) {\n const url = `${this.apiOperationBaseWithMediaApiLocation(accountId)}/${accountId}/Projects/${projectId}/renderoperation/Cancel`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, reqParams) as object;\n return this.ApiWrapper.HttpClient.put(url, null, requestSettings);\n }\n\n // [HttpPost]\n // [Route(\"Api/v2/Accounts/{accountId}/Videos/{videoId}/ReportAbuse\")]\n public requestReview(accountId: string, videoId: string) {\n const url = `${this.apiInternalsBaseWithMediaApiLocation(accountId)}/${accountId}/videos/${videoId}/requestReview/`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache) as object;\n\n return this.ApiWrapper.HttpClient.post(url, null, requestSettings);\n }\n\n // [APIM]\n // [HttpGet]\n // [Route(\"/{location}/Accounts/{accountId}/Videos/{videoId}/streaming-url\")]\n public getVideoStreamingURL(accountId: string, videoId: string, reqParams?: IGetStreamingUrlRequestParams, reqSettings?: object) {\n const url = `${this.apiOperationBaseWithMediaApiLocation(accountId)}/${accountId}/videos/${videoId}/streaming-url`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, reqParams) as object;\n return this.ApiWrapper.HttpClient.get(url, requestSettings);\n }\n\n // [APIM]\n // [HttpGet]\n // [Route(\"/{location}/Accounts/{accountId}/Videos/{videoId}/ObservedPeople/Pages/{pageId}\")]\n public getObservedPeoplePageByID(accountId: string, videoId: string, pageId: number, reqSettings?: object) {\n const url = `${this.apiInternalsBaseWithMediaApiLocation(accountId)}/${accountId}/videos/${videoId}/ObservedPeople/Pages/${pageId}`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings) as object;\n return this.ApiWrapper.HttpClient.get(url, requestSettings);\n }\n\n // [APIM]\n // [HttpGet]\n // [Route(\"/{location}/Accounts/{accountId}/Videos/{videoId}/ObservedPeople/pages?time={time}\")]\n public getObservedPeoplePageByTime(accountId: string, videoId: string, reqParams?: IGetObservedPeoplePageTimeRequestParams, reqSettings?: object) {\n const url = `${this.apiInternalsBaseWithMediaApiLocation(accountId)}/${accountId}/videos/${videoId}/ObservedPeople/Pages`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, reqParams) as object;\n return this.ApiWrapper.HttpClient.get(url, requestSettings);\n }\n\n // [APIM]\n // [HttpGet]\n // [Route(\"/{location}/Accounts/{accountId}/Videos/{videoId}/FacesBoundaryBoxes/Pages/{pageId}\")]\n public getFacesPageByID(accountId: string, videoId: string, pageId: number, reqSettings?: object) {\n const url = `${this.apiInternalsBaseWithMediaApiLocation(accountId)}/${accountId}/videos/${videoId}/FacesBoundaryBoxes/Pages/${pageId}`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings) as object;\n return this.ApiWrapper.HttpClient.get(url, requestSettings);\n }\n\n // [APIM]\n // [HttpGet]\n // [Route(\"/{location}/Accounts/{accountId}/Videos/{videoId}/FacesBoundaryBoxes/Pages?time={time}\")]\n public getFacesPageByTime(accountId: string, videoId: string, reqParams?: IGetBoundingBoxPageTimeRequestParams, reqSettings?: object) {\n const url = `${this.apiInternalsBaseWithMediaApiLocation(accountId)}/${accountId}/videos/${videoId}/FacesBoundaryBoxes/Pages`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, reqParams) as object;\n return this.ApiWrapper.HttpClient.get(url, requestSettings);\n }\n\n // [APIM]\n // [HttpGet]\n // [Route(\"/{location}/Accounts/{accountId}/Videos/{videoId}/DetectedObjects/Pages/{pageId}\")]\n public getDetectedObjectsPageByID(accountId: string, videoId: string, pageId: number, reqSettings?: object) {\n const url = `${this.apiInternalsBaseWithLocation(accountId)}/${accountId}/videos/${videoId}/DetectedObjects/Pages/${pageId}`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings) as object;\n return this.ApiWrapper.HttpClient.get(url, requestSettings);\n }\n\n // [APIM]\n // [HttpGet]\n // [Route(\"/{location}/Accounts/{accountId}/Videos/{videoId}/DetectedObjects/\n // Pages?time={time}}&IncludedObjectTypes={type1}&IncludedObjectTypes={type2}\")]\n public getDetectedObjectsPageByTime(\n accountId: string,\n videoId: string,\n reqParams?: IGetBoundingBoxPageTimeRequestParams,\n reqSettings?: object,\n paramsList?: IRequestParam[]\n ) {\n let url = `${this.apiInternalsBaseWithLocation(accountId)}/${accountId}/videos/${videoId}/DetectedObjects/Pages`;\n url = concatParamsListToURL(url, paramsList);\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, reqParams) as object;\n\n return this.ApiWrapper.HttpClient.get(url, requestSettings);\n }\n\n // [APIM]\n // [HttpGet]\n // [Route(\"/{location}/Accounts/{accountId}/Videos/{videoId}/summaries/textual]\n public listTextualVideoSummaries(accountId: string, videoId: string, reqSettings?: object) {\n const url = `${this.apiOperationBaseWithLocation(accountId)}/${accountId}/videos/${videoId}/summaries/textual`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings) as object;\n return this.ApiWrapper.HttpClient.get(url, requestSettings);\n }\n\n // [APIM]\n // [HttpGet]\n // [Route(\"/{location}/Accounts/{accountId}/aoaideployments]\n public listAOAIDeployments(accountId: string, reqSettings?: object) {\n const url = `${this.apiInternalsBaseWithLocation(accountId)}/${accountId}/aoaideployments`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings) as object;\n return this.ApiWrapper.HttpClient.get(url, requestSettings);\n }\n\n // [HttpPost]\n // [Route(\"Api/v2/Accounts/{accountId}/Videos/{videoId}}/Summaries/Textual\")]\n public createTextualVideoSummary(accountId: string, videoId: string, reqParams: ICreateTextualVideoSummaryParams, reqSettings?: object) {\n const url = `${this.apiOperationBaseWithMediaApiLocation(accountId)}/${accountId}/videos/${videoId}/Summaries/Textual`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings, reqParams) as object;\n\n return this.ApiWrapper.HttpClient.post(url, null, requestSettings);\n }\n\n // [APIM]\n // [HttpGet]\n // [Route(\"/{location}/Accounts/{accountId}/Videos/{videoId}/summaries/textual/{summaryId}]\n public getTextualVideoSummary(accountId: string, videoId: string, summaryId: string, reqSettings?: object) {\n const url = `${this.apiOperationBaseWithLocation(accountId)}/${accountId}/videos/${videoId}/summaries/textual/${summaryId}`;\n const requestSettings = getRequestSettings(this.ApiWrapper.Cache, reqSettings) as object;\n return this.ApiWrapper.HttpClient.get(url, requestSettings);\n }\n\n private apiOperationBaseWithLocation(accountId: string): string {\n const location = trialLocationForSampleAccount(accountId);\n return `${this.ApiWrapper.GetApiOperationsBase(false, location)}${this.apiBaseRoute}`;\n }\n\n private apiOperationBaseWithMediaApiLocation(accountId: string): string {\n const location = trialLocationForSampleAccount(accountId) || this.ApiWrapper.GetApiMediaLocation();\n return `${this.ApiWrapper.GetApiOperationsBase(false, location)}${this.apiBaseRoute}`;\n }\n\n private apiInternalsBaseWithLocation(accountId: string): string {\n const location = trialLocationForSampleAccount(accountId);\n return this.ApiWrapper.GetInternalApiBase(location) + this.apiBaseRoute;\n }\n\n private apiInternalsBaseWithMediaApiLocation(accountId: string): string {\n const location = trialLocationForSampleAccount(accountId) || this.ApiWrapper.GetApiMediaLocation();\n return this.ApiWrapper.GetInternalApiBase(location) + this.apiBaseRoute;\n }\n\n private getCustomUrl(customURL: string, spriteType: string): string {\n let url = '';\n if (customURL) {\n // Check if url ends with '/'\n url = `${customURL.lastIndexOf('/') === customURL.length - 1 ? customURL : customURL + '/'}${spriteType}`;\n }\n return url;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor } from '@angular/common/http';\n\nimport { Observable } from 'rxjs/internal/Observable';\n\nimport { guid } from '../../utils/string';\nimport { ConfigService } from '../../core/services/config/config.service';\nimport { SessionHandlerService } from '../../shared/services/session-handler.service';\nimport { amILoggedInSuffix } from '../utils/api-utils';\n@Injectable()\nexport class ApiInterceptor implements HttpInterceptor {\n private apimBase: string;\n private authorizationApiLocation: string;\n\n constructor(public configService: ConfigService, private sessionHandlerService: SessionHandlerService) {\n this.apimBase = this.configService.Config?.api?.apimBase;\n this.authorizationApiLocation = this.configService.Config?.api?.authorizationApiLocation;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public intercept(request: HttpRequest, next: HttpHandler): Observable> {\n if (request.url.includes(this.apimBase) || request.url.includes(this.authorizationApiLocation) || request.url.endsWith(amILoggedInSuffix)) {\n request = request.clone({\n setHeaders: {\n 'x-ms-client-request-id': guid(),\n 'x-ms-client-session-id': this.sessionHandlerService.sessionId\n }\n });\n }\n return next.handle(request);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor } from '@angular/common/http';\n\nimport { Observable } from 'rxjs';\n\nimport { AuthService } from '../../auth/services/auth.service';\nimport { ConfigService } from '../../core/services/config/config.service';\n\n@Injectable()\nexport class FrontdoorInterceptor implements HttpInterceptor {\n private authorizationApiLocation: string;\n\n constructor(public auth: AuthService, public configService: ConfigService) {\n this.authorizationApiLocation = this.configService.Config?.api?.authorizationApiLocation;\n }\n\n public intercept(request: HttpRequest, next: HttpHandler): Observable> {\n // If its not api route\n if (!request.url.includes(this.authorizationApiLocation)) {\n return next.handle(request);\n }\n\n return next.handle(\n request.clone({\n setHeaders: {\n // @see https://learn.microsoft.com/en-us/azure/frontdoor/front-door-http-headers-protocol#from-client-to-the-front-door\n 'X-Azure-DebugInfo': '1'\n }\n })\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor } from '@angular/common/http';\nimport { Router } from '@angular/router';\n\nimport { Observable } from 'rxjs/internal/Observable';\nimport { catchError, throwError } from 'rxjs';\n\nimport { EventCategory } from '@common/modules/core/services/track';\n\nimport { TrackService } from './../../core/services/track/track.service';\n\n@Injectable()\nexport class GlobalHttpInterceptorService implements HttpInterceptor {\n constructor(public router: Router, private trackService: TrackService) {}\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\n return next.handle(req).pipe(\n catchError(error => {\n const urlObject = new URL(error?.url);\n const url = `${urlObject.protocol}//${urlObject.host}${urlObject.pathname}`;\n\n this.trackService.track('http.request.error', {\n category: EventCategory.HTTP,\n data: {\n status: error?.status,\n name: error?.name,\n method: req?.method,\n url,\n error: error?.error\n }\n });\n\n return throwError(() => error);\n })\n );\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injector } from '@angular/core';\n\nimport { AccountResourceType } from '../auth/interfaces';\nimport { UrlService } from '../core/services/url/url.service';\nimport { AccountPermission } from '../shared/interfaces';\n\nexport declare interface IAPIRegion {\n domain: string;\n link: string;\n location: string;\n prefix: string;\n value: string;\n regionType: RegionType;\n}\n\nexport enum UrlStreamingFormat {\n SMOOTH_STREAMING_FORMAT = 'SMOOTH_STREAMING_FORMAT',\n MPEG_DASH = 'MPEG_DASH',\n HLS_V4 = 'HLS_V4',\n HLS_V3 = 'HLS_V3'\n}\n\nexport interface IAPIRequestParams {\n language?: Microsoft.VideoIndexer.Contracts.LanguageV2 | Microsoft.VideoIndexer.Contracts.LanguageV2[];\n includeUsage?: boolean;\n includeAmsInfo?: boolean;\n}\n\nexport interface IGetIndexRequestParams extends IAPIRequestParams {\n includeStreamingUrls?: boolean;\n allowEdit?: boolean;\n includeSummarizedInsights?: boolean;\n includedInsights?: string;\n}\n\nexport interface IGetStreamingUrlRequestParams {\n useProxy?: boolean;\n urlFormat?: string;\n tokenLifetimeInMinutes?: string;\n isBase?: boolean;\n}\n\nexport interface IGetObservedPeoplePageTimeRequestParams {\n time?: number;\n}\n\nexport interface IGetBoundingBoxPageTimeRequestParams {\n time?: number;\n}\n\nexport interface IAzureSubscription {\n id: string;\n name: string;\n resources?: IAzureResource[];\n tenantId: string;\n}\n\nexport interface IAzureResource {\n location: string;\n resourceGroup: string;\n name: string;\n id: string;\n}\n\nexport interface IAzureLocation {\n name: string;\n key: string;\n type: environmentType;\n url: string;\n}\n\nexport interface IRequestParam {\n key: string;\n value: string;\n}\n\nexport declare interface IHttpWrapper {\n Cache: object;\n HttpClient: HttpClient;\n UrlUtility: UrlService;\n Injector: Injector;\n GetAuthApiBase(isAuthPath?: boolean): string;\n GetInternalApiBase(location?: string, defaultLocation?: boolean, forceCloudApi?: boolean): string;\n GetApiOperationsBase(removeApiLocation?: boolean, location?: string, forceCloudApi?: boolean): string;\n GetApiLocation(): string;\n GetApiMediaLocation(): string;\n GerProxyApiLocation(): string;\n}\n\nexport enum environmentType {\n Develop = 'Develop',\n Trial = 'Trial',\n Paid = 'Paid'\n}\n\nexport enum ApiType {\n Authorization = 'Authorization',\n Internals = 'Internals',\n Operations = 'Operations'\n}\n\nexport enum ApiRegionProperties {\n PREFIX = 'prefix',\n LOCATION = 'location'\n}\n\nexport enum envTypes {\n TRIAL = 'Trial',\n PAID = 'Paid',\n DEV = 'Dev'\n}\n\nexport enum RegionType {\n TRIAL = 'trial',\n PAID = 'paid'\n}\n\nexport interface IUploadRequestParams extends IAPIRequestParams {\n accountId?: string;\n name: string;\n privacy?: Microsoft.VideoIndexer.Contracts.PrivacyMode;\n description?: string;\n partition?: string;\n externalId?: string;\n callbackUrl?: string;\n metadata?: string;\n videoUrl?: string;\n fileName?: string;\n indexingPreset?: string;\n streamingPreset?: string;\n linguisticModelId?: string;\n animationModelId?: string;\n sendSuccessEmail: boolean;\n personModelId?: string;\n logoGroupId?: string;\n brandsCategories?: string;\n customLanguages?: string;\n}\n\nexport type SupportedAIModels = ExcludableAIsModels | RequiredAIsModels;\n\nexport enum SensitiveAI {\n Faces = 'Faces',\n ObservedPeople = 'ObservedPeople',\n Emotions = 'Emotions',\n Labels = 'Labels'\n}\n\nexport enum ExcludableAIsModels {\n OCR = 'OCR',\n TextualContentModeration = 'TextualContentModeration',\n Entities = 'Entities',\n Topics = 'Topics',\n Keywords = 'Keywords',\n Speakers = 'Speakers',\n Emotions = 'Emotions',\n VisualContentModeration = 'VisualContentModeration',\n Faces = 'Faces',\n Celebrities = 'Celebrities',\n KnownPeople = 'KnownPeople',\n Labels = 'Labels',\n ShotType = 'ShotType',\n RollingCredits = 'RollingCredits',\n DetectedObjects = 'DetectedObjects',\n Logos = 'Logos',\n ObservedPeople = 'ObservedPeople',\n MatchedPerson = 'MatchedPerson',\n PeopleDetectedClothing = 'PeopleDetectedClothing',\n FeaturedClothing = 'FeaturedClothing',\n Clapperboard = 'Clapperboard'\n}\n\nexport enum RequiredAIsModels {\n AudioEffects = 'AudioEffects',\n ClosedCaptions = 'ClosedCaptions',\n Keyframes = 'Keyframes',\n Transcription = 'Transcription'\n}\n\nexport interface IGetSasRequestParams {\n videoSize: string;\n fileName: string;\n allowEdit: boolean;\n}\n\nexport interface IListRequestParams extends IAPIRequestParams {\n pageSize?: number;\n skip?: number;\n isBase?: string;\n}\n\nexport interface ISearchRequestParams extends IAPIRequestParams {\n id?: string;\n partition?: string;\n externalId?: string;\n owner?: string | string[];\n face?: string | string[];\n query?: string;\n textScope?: string | string[];\n pageSize?: number;\n size?: number;\n hasSourceVideoFile?: boolean;\n scope?: string;\n isBase?: string;\n}\n\nexport interface IGetPersonMaxConfidenceInVideosRequestParams extends IAPIRequestParams {\n personName: string;\n videoIds?: string[];\n}\n\nexport interface ICaptionsRequestParams extends IAPIRequestParams {\n indexId?: string;\n format?: string;\n accessToken?: string;\n includeAudioEffects?: boolean;\n includeSpeakers?: boolean;\n}\n\nexport interface IUpdateFaceRequestParams {\n newName?: string;\n name?: string;\n}\n\nexport interface IReIndexRequestParams {\n indexingPreset?: string;\n streamingPreset?: string;\n sourceLanguage?: Microsoft.VideoIndexer.Contracts.LanguageV2;\n shortId?: string;\n linguisticModelId?: string;\n personModelId?: string;\n brandsCategories?: string;\n customLanguages?: string;\n}\n\nexport interface IUpdateTranscriptRequestParams extends IAPIRequestParams {\n vttBody?: string;\n callbackUrl?: string;\n setAsSourceLanguage?: boolean;\n sendSuccessEmail: boolean;\n}\n\nexport interface IGetIdByExternalRequestParams {\n externalId: string;\n}\n\nexport interface IAddKeywordsRequestParams extends IAPIRequestParams {\n keyword: string;\n}\n\nexport interface ICreateTextualVideoSummaryParamsCloud extends IAPIRequestParams {\n deploymentName: string;\n length?: string;\n style?: string;\n includedFrames?: Microsoft.VideoIndexer.Contracts.IncludedFrames;\n}\n\nexport interface ICreateTextualVideoSummaryParamsEdge extends IAPIRequestParams {\n modelName: string;\n length?: string;\n style?: string;\n includedFrames?: Microsoft.VideoIndexer.Arc.Common.IncludedFrames;\n}\n\nexport type ICreateTextualVideoSummaryParams = ICreateTextualVideoSummaryParamsCloud | ICreateTextualVideoSummaryParamsEdge;\n\nexport interface IRemoveBrandsRequestParams {\n brandId: number;\n}\n\nexport interface IBrandsRequestParams {\n id: string;\n}\n\nexport interface ISupportedAIsRequestParams {\n indexingPreset: string;\n includeFaces?: boolean;\n}\n\nexport interface IAPISetThumbnailRequestParams {\n imageUrl: string;\n}\n\nexport interface IAPISetThumbnailIdRequestParams {\n keyframeThumbnailId: string;\n}\n\nexport interface IAddReaderParams {\n userId: string;\n}\n\nexport interface IRemoveInviteParams {\n email: string;\n}\n\nexport interface ITakeDownParams {\n abuseId: string;\n}\n\nexport interface IInsightsWidgetParams {\n widgetTypes?: IWidgetType[];\n allowEdit?: boolean;\n title?: string;\n}\n\nexport interface IPlayerWidgetParams {\n type?: IPlayerWidgetType[];\n autoplay?: boolean;\n showCaptions?: boolean;\n captions?: string;\n}\n\nexport interface IUpdateRole {\n type: string;\n}\n\nexport interface IAbuseParams {\n shortId: string;\n type: AbuseType;\n url: string;\n text: string;\n}\n\nexport enum AbuseType {\n ThreatCyberHarassment,\n ChildEndangerment,\n OffensiveContent,\n ContentInfringement,\n Other\n}\n\nexport interface IModelRequestParams {\n modelName?: string;\n language?: Microsoft.VideoIndexer.Contracts.LanguageV2;\n translationModelId?: string; // not in used at the moment\n}\n\nexport interface IFileRequestParams {\n fileName: string;\n enable: boolean;\n}\n\nexport interface IArtifactRequestParams {\n type: Microsoft.VideoIndexer.Contracts.ArtifactType;\n}\n\nexport interface INotificationsRequestParams {\n region: string;\n accountType: NotificationAccountTypeRequestParam;\n eTag?: string;\n}\n\nexport enum NotificationExtendedAccountType {\n ARM_AMSLESS = 'ARMAMSLESS'\n}\n\nexport type NotificationAccountTypeRequestParam = AccountResourceType | NotificationExtendedAccountType;\n\nexport type IWidgetType = 'keywords' | 'transcript' | 'search' | 'brands' | 'annotations' | 'people' | 'sentiments' | 'logos';\n\nexport type IPlayerWidgetType = 'video' | 'audio';\n\nexport interface IApiSasContract {\n baseUrl: string;\n sasToken: string;\n relativePath: string;\n}\n\nexport interface INetworkFileInfo {\n length?: number;\n contentType?: string;\n extension?: string;\n}\n\nexport interface IAPIGetPeopleModel {\n personNamePrefix?: string;\n}\n\nexport interface IAPIPostPeopleModel {\n name: string;\n}\n\nexport interface IAPIPeopleCustomization {\n name: string;\n description?: string;\n}\n\nexport interface IAPIPostFace {\n urls: string[];\n}\n\nexport interface IAPIPostFaces {\n face: Microsoft.VideoIndexer.Contracts.Face;\n}\n\nexport interface IAPIGetPeople {\n pageSize: number;\n skip: number;\n namePrefix?: string;\n}\n\nexport interface IAPIGetFaces {\n pageSize: number;\n skip: number;\n sourceType?: Microsoft.VideoIndexer.Contracts.KnownPersonFaceSourceType;\n}\n\nexport interface IVideoRenderRequestParams {\n sendCompletionEmail: boolean;\n}\n\nexport interface IRenderFileDownloadUrl {\n downloadUrl: string;\n}\n\nexport interface IAPIGetPeopleModel {\n personNamePrefix?: string;\n}\n\nexport interface IAPIPostPeopleModel {\n name: string;\n}\n\nexport interface IAPIPeopleCustomization {\n name: string;\n}\n\nexport interface IAPIPostFaces {\n face: Microsoft.VideoIndexer.Contracts.Face;\n}\n\nexport interface IAPIGetPeople {\n pageSize: number;\n skip: number;\n namePrefix?: string;\n}\n\nexport interface IAPIGetFaces {\n pageSize: number;\n skip: number;\n sourceType?: Microsoft.VideoIndexer.Contracts.KnownPersonFaceSourceType;\n}\n\nexport interface IVideoRenderRequestParams {\n sendCompletionEmail: boolean;\n}\n\nexport interface IRenderFileDownloadUrl {\n downloadUrl: string;\n}\n\nexport interface IAmILoggedInResult {\n result: boolean;\n}\n\nexport enum TokenScope {\n ACCOUNT = 'Account',\n VIDEO = 'Video',\n PROJECT = 'Project',\n USER = 'User'\n}\n\nexport interface IArmAccountAccessTokenPayload {\n permissionType: AccountPermission;\n scope: TokenScope;\n}\n\nexport interface IArmAccountExtensionAccessTokenPayload extends IArmAccountAccessTokenPayload {\n extensionId?: string;\n tokenLifetimeInSeconds?: number;\n}\n\nexport interface IArmVideoAccessTokenPayload extends IArmAccountAccessTokenPayload {\n videoId: string;\n}\n\nexport interface IArmProjectAccessTokenPayload extends IArmAccountAccessTokenPayload {\n projectId: string;\n}\n\nexport interface IArmAccessTokenResponse {\n accessToken: string;\n}\n\nexport type SpeechDatasetLocale = {\n [key in string]: Microsoft.VideoIndexer.Contracts.DatasetKindEnum[];\n};\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable, Injector } from '@angular/core';\n\nimport { Observable, of } from 'rxjs';\n\nimport { EnvironmentNames } from '@common/modules/shared/environments';\n\nimport { ConfigService } from '../../core/services/config/config.service';\nimport { IConfiguration } from '../../core/services/interfaces';\nimport { UrlService } from '../../core/services/url/url.service';\nimport { AccountApi } from '../classes/account-api.class';\nimport { ArmAccountApi } from '../classes/arm-account-api.class';\nimport { UserApi } from '../classes/user-api.class';\nimport { IHttpWrapper, RegionType } from '../interfaces';\nimport { NotificationsApi } from '../classes/notifications-api.class';\nimport { SupportedLanguagesApi } from '../classes/supported-languages-api.class';\nimport { EdgeExtensionsApi } from '../classes/edge-extensions-api.class';\nimport { AmsMigrationApi } from '../classes/ams-migration-api.class';\n\n@Injectable()\nexport class ApiService {\n // API CLASSES\n public User: UserApi;\n public Account: AccountApi;\n public ArmAccount: ArmAccountApi;\n public EdgeExtensions: EdgeExtensionsApi;\n public Notifications: NotificationsApi;\n public SupportedLanguages: SupportedLanguagesApi;\n public AmsMigrationApi: AmsMigrationApi;\n\n private config: IConfiguration = {};\n private apiCache: object;\n private apiLocation: string = RegionType.TRIAL;\n private defaultLocation: string = RegionType.TRIAL;\n private configLoaded: Observable = of(false);\n private authRoutePath = ''; // '/auth';\n private apiMediaLocation = '';\n private _edgeExtensionApiUrl = null;\n\n constructor(private http: HttpClient, private urlUtility: UrlService, private configService: ConfigService, private injector: Injector) {\n this.init();\n }\n\n public set edgeExtensionApiUrl(value: string) {\n this._edgeExtensionApiUrl = value;\n }\n\n public get edgeExtensionApiUrl() {\n return this._edgeExtensionApiUrl;\n }\n\n public get baseApi() {\n return this.config.api.apimBase;\n }\n\n public getApiOperationsBase(removeApiLocation?: boolean, location?: string, forceCloudApi = false): string {\n const url = this.apiOperationsBase;\n\n if (location) {\n return this.apiOperationsBaseWithLocation(location, forceCloudApi);\n }\n\n if (this.config.local || !!removeApiLocation || this.configService.isEnvType(EnvironmentNames.LocalhostBE)) {\n return this.apiOperationsBase;\n }\n\n return this.apiOperationsBaseWithLocation(this.apiLocation, forceCloudApi);\n }\n\n public getAuthApiBase(isAuthPath: boolean = false): string {\n return `${this.config?.api?.authorizationApiLocation}${isAuthPath ? this.authRoutePath : ''}`;\n }\n\n public getInternalApiBase(location?: string, defaultLocation = false, forceCloudApi = false): string {\n if (this.config.local || this.configService.isEnvType(EnvironmentNames.LocalhostBE)) {\n return this.apiInternalsBase;\n }\n\n if (location) {\n return this.apiInternalsBaseWithLocation(location, forceCloudApi);\n }\n\n if (defaultLocation) {\n return this.apiInternalsBaseWithLocation(this.defaultLocation, forceCloudApi);\n }\n\n return this.apiInternalsBaseWithLocation(this.apiLocation, forceCloudApi);\n }\n\n public getApiLocation(): string {\n return this.apiLocation;\n }\n\n public getApiMediaLocation(): string {\n return this.apiMediaLocation;\n }\n\n public getProxyApiLocation(): string {\n return this.config.proxyUrlBase;\n }\n\n public isTrialApi(): boolean {\n return this.apiLocation === RegionType.TRIAL;\n }\n\n // Get location and set the url\n public setApiBaseLocation(location: string, accountType: string) {\n if (accountType === 'Paid' || accountType === 'paid') {\n this.apiLocation = location;\n } else {\n this.apiLocation = RegionType.TRIAL;\n }\n }\n\n public setApiMediaLocation(location: string) {\n this.apiMediaLocation = location;\n }\n\n public isConfigLoaded(): Observable {\n return this.configLoaded;\n }\n\n public get ApiWrapper(): IHttpWrapper {\n return {\n GetApiOperationsBase: (removeApiLocation?: boolean, location?: string, forceCloudApi?: boolean) =>\n this.getApiOperationsBase(removeApiLocation, location, forceCloudApi),\n GetInternalApiBase: (location?: string, defaultLocation = false, forceCloudApi?: boolean) =>\n this.getInternalApiBase(location, defaultLocation, forceCloudApi),\n GetAuthApiBase: (isAuthPath: boolean = false) => this.getAuthApiBase(isAuthPath),\n GetApiLocation: () => this.getApiLocation(),\n GetApiMediaLocation: () => this.getApiMediaLocation(),\n GerProxyApiLocation: () => this.getProxyApiLocation(),\n Cache: this.apiCache,\n UrlUtility: this.urlUtility,\n HttpClient: this.http,\n Injector: this.injector\n };\n }\n\n private init() {\n this.User = new UserApi(this.ApiWrapper);\n this.Account = new AccountApi(this.ApiWrapper);\n this.ArmAccount = new ArmAccountApi(this.ApiWrapper);\n this.Notifications = new NotificationsApi(this.ApiWrapper);\n this.SupportedLanguages = new SupportedLanguagesApi(this.ApiWrapper);\n this.EdgeExtensions = new EdgeExtensionsApi(this.ApiWrapper);\n this.AmsMigrationApi = new AmsMigrationApi(this.ApiWrapper);\n this.config = this.configService.Config;\n\n this.apiLocation = this.urlUtility.getQueryParam('location') || RegionType.TRIAL;\n this.defaultLocation = this.configService.Config?.api?.defaultRegion || RegionType.TRIAL;\n }\n\n private get apiInternalsBase(): string {\n return this._edgeExtensionApiUrl ? this._edgeExtensionApiUrl : this.config?.api?.internalApiLocation;\n }\n\n private get apiOperationsBase(): string {\n return this._edgeExtensionApiUrl ?? this.config?.api?.operationsApiLocation;\n }\n\n private apiInternalsBaseWithLocation(location?: string, forceCloudApi = false): string {\n return !!this._edgeExtensionApiUrl && !forceCloudApi\n ? this._edgeExtensionApiUrl\n : `${this.config?.api?.internalApiLocation}/${location ?? this.apiLocation}`;\n }\n\n private apiOperationsBaseWithLocation(location?: string, forceCloudApi = false): string {\n return !!this._edgeExtensionApiUrl && !forceCloudApi\n ? this._edgeExtensionApiUrl\n : `${this.config?.api?.operationsApiLocation}/${location ?? this.apiLocation}`;\n }\n}\n","export const locationsUS = ['centralus', 'eastus', 'eastus2', 'westus', 'northcentralus', 'southcentralus', 'westcentralus', 'westus2', 'westus3'];\n","import { HttpParams } from '@angular/common/http';\nimport { Injector } from '@angular/core';\n\nimport { FeatureSwitchService } from '@common/modules/core/services/feature-switch/feature-switch.service';\nimport { SamplesAccountId } from '@common/modules/core/interfaces';\nimport { EventCategory, TrackService } from '@common/modules/core/services/track';\nimport { getSeconds } from '@common/modules/utils/time';\nimport { FeatureSwitch } from '@common/modules/core/services/interfaces';\n\nimport { RegionType } from '../interfaces';\nimport { CustomUrlEncodingCodec } from './custom-url-encoding-codec';\n\nexport const amILoggedInSuffix = '/auth/amILoggedIn';\n\nexport function trialLocationForSampleAccount(accountId: string) {\n return accountId === SamplesAccountId ? RegionType.TRIAL : '';\n}\n\nexport function getCustomEncodingParams(params: Object): HttpParams {\n if (!params) {\n return null;\n }\n\n // Create http with custom encoding\n let customHttpParam = new HttpParams({ encoder: new CustomUrlEncodingCodec() });\n\n // Move all request params to customHttpParam object\n for (const key of Object.keys(params)) {\n customHttpParam = customHttpParam.append(key, params[key]);\n }\n\n return customHttpParam;\n}\n\nexport function prepareVideoSummarizedInsights(\n videoIndex: Microsoft.VideoIndexer.Contracts.PlaylistContractV2,\n injector: Injector\n): Microsoft.VideoIndexer.Contracts.PlaylistContractV2 {\n const featureSwitchService = injector?.get(FeatureSwitchService);\n if (!featureSwitchService.featureSwitch(FeatureSwitch.DisableSummarizedInsights)) {\n return videoIndex;\n }\n\n const faces = getFaces(videoIndex.videos, videoIndex.duration ? getSeconds(videoIndex.duration) : videoIndex.durationInSeconds, true, injector);\n\n videoIndex.summarizedInsights = {\n name: videoIndex.name,\n id: videoIndex.id,\n privacyMode: videoIndex.privacyMode,\n duration: {\n seconds: videoIndex.duration ? getSeconds(videoIndex.duration) : videoIndex.durationInSeconds,\n time: videoIndex.duration\n },\n thumbnailVideoId: '',\n thumbnailId: '',\n faces,\n keywords: [],\n sentiments: [],\n emotions: [],\n audioEffects: [],\n labels: [],\n brands: [],\n namedPeople: [],\n namedLocations: [],\n statistics: null,\n topics: [],\n framePatterns: []\n };\n\n return videoIndex;\n}\n\nexport function prepareProjectSummarizedInsights(\n videoIndex: Microsoft.VideoIndexer.Contracts.ProjectPlaylistContractV2,\n injector: Injector\n): Microsoft.VideoIndexer.Contracts.ProjectPlaylistContractV2 {\n const featureSwitchService = injector?.get(FeatureSwitchService);\n if (!featureSwitchService.featureSwitch(FeatureSwitch.DisableSummarizedInsights)) {\n return videoIndex;\n }\n\n const faces = getFaces(videoIndex.videos, videoIndex.duration ? getSeconds(videoIndex.duration) : videoIndex.durationInSeconds, false, injector);\n videoIndex.summarizedInsights = {\n name: videoIndex.name,\n id: videoIndex.id,\n privacyMode: videoIndex.privacyMode,\n duration: {\n seconds: videoIndex.duration ? getSeconds(videoIndex.duration) : videoIndex.durationInSeconds,\n time: videoIndex.duration\n },\n thumbnailVideoId: '',\n thumbnailId: '',\n faces,\n keywords: [],\n sentiments: [],\n emotions: [],\n audioEffects: [],\n labels: [],\n brands: [],\n namedPeople: [],\n namedLocations: [],\n statistics: null,\n topics: [],\n framePatterns: []\n };\n\n return videoIndex;\n}\n\n// TODO - move this function into selector once adding NGRX store to our widgets\nfunction getFaces(videos: Microsoft.VideoIndexer.Contracts.VideoContract[], duration: number, isBase: boolean, injector: Injector) {\n const trackService = injector?.get(TrackService);\n const startTime = performance.now();\n const facesDictionary = [];\n\n for (const video of videos) {\n if (video.insights?.faces) {\n for (const face of video.insights.faces) {\n let seenDuration = 0;\n for (const instance of face.instances) {\n seenDuration += getSeconds(instance.adjustedEnd) - getSeconds(instance.adjustedStart);\n }\n\n facesDictionary[face.id] = {\n confidence: face.confidence,\n description: face.description,\n id: face.id,\n name: face.name,\n seenDuration: facesDictionary[face.id] ? facesDictionary[face.id].seenDuration + seenDuration : seenDuration,\n thumbnailId: face.thumbnailId,\n title: face.title,\n videoId: video.id\n };\n\n facesDictionary[face.id].seenDurationRatio = facesDictionary[face.id].seenDuration / duration;\n }\n }\n }\n\n const sortedFaces = Object.values(facesDictionary).sort((f1, f2) => f2.seenDuration - f1.seenDuration);\n const endTime = performance.now();\n trackService?.trackPerformance('prepare_summarized_insights', EventCategory.INSIGHTS, endTime - startTime);\n\n return sortedFaces;\n}\n","import { HttpUrlEncodingCodec } from '@angular/common/http';\n\nexport class CustomUrlEncodingCodec extends HttpUrlEncodingCodec {\n public encodeKey(k: string): string {\n k = super.encodeKey(k);\n return k.replace(/\\+/gi, '%2B');\n }\n\n public encodeValue(v: string): string {\n v = super.encodeValue(v);\n return v.replace(/\\+/gi, '%2B');\n }\n}\n","import { HttpRequest, HttpParams } from '@angular/common/http';\nimport { Params } from '@angular/router';\n\nimport { merge } from 'lodash-es';\n\nimport { APIErrors, unauthorizedErrorTypes } from '@common/modules/core/services/toast/errors';\nimport { GuidPattern } from '@common/modules/utils/regexes';\nimport { AccountPermission } from '@common/modules/shared/interfaces';\n\nimport { IRequestParam } from '../interfaces';\n\nexport const AccessTokenHeaderName = 'Authorization';\n\nexport function getRequestSettings(cache: object, reqSettings?: object, reqParams?: Params): object {\n // Define the default request config object\n const defaultsSettings: object = {\n params: {}\n };\n\n // If has Cache\n if (cache) {\n defaultsSettings['cache'] = cache;\n }\n\n // Remove null params from reqParams\n if (reqParams) {\n Object.keys(reqParams).forEach(param => {\n if (reqParams[param] === null || reqParams[param] === undefined) {\n delete reqParams[param];\n }\n });\n }\n\n // If extra request params provided - merge them into defaults\n if (reqParams) {\n merge(defaultsSettings['params'], reqParams);\n }\n\n return merge(reqSettings, defaultsSettings);\n}\n\nexport function tryGetParam(request: HttpRequest, param: string): string {\n // Try get the param from request params\n if (request.params.has(param)) {\n return request.params.get(param);\n }\n\n // Try get it from body\n if (!!request.body && typeof request.body === 'object' && request.body[param]) {\n return request.body[param];\n }\n\n // try get it from route.\n return captureParamFromUrl(request.url, param) || '';\n}\n\n/**\n * Add list of params to the url. e.g. ?excludeAI=Faces&excludeAI=Labels...\n * @param url - the url to add the params to\n * @param params - list of params to add. e.g. [{key: 'excludeAI', value: 'Faces'}, {key: 'excludeAI', value: 'Labels'}]\n */\nexport function concatParamsListToURL(url: string, params: IRequestParam[]): string {\n if (params?.length) {\n let httpParams = new HttpParams();\n for (const param of params) {\n httpParams = httpParams.append(param.key, param.value);\n }\n // check if url already has params and add '?' if needed\n url += url.includes('?') ? '&' : '?';\n url = url + httpParams.toString();\n }\n\n return url;\n}\n\nexport function captureParamFromUrl(url: string, param: string): string {\n const idRegex = url.includes('videos')\n ? /(videos|[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3,4}-[0-9a-f]{3,4}-[0-9a-f]{12})\\/([0-9a-zA-Z]{10,12})\\b/\n : /(Projects|[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3,4}-[0-9a-f]{3,4}-[0-9a-f]{12})\\/([0-9a-zA-Z]{10,12})\\b/;\n let regex = idRegex;\n if (param === 'accountId') {\n const accountRegex = /(accounts|insights|player)\\/([0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3,4}-[0-9a-f]{3,4}-[0-9a-f]{12})/;\n regex = accountRegex;\n } else if (param === 'accountName') {\n const armAccountRegex = /(accounts)\\/([-\\w\\._\\(\\)]+$)/;\n regex = armAccountRegex;\n } else if (param === 'location') {\n const locationRegex = /(.+)\\/(.+)\\/accounts/;\n regex = locationRegex;\n }\n\n const match = url.match(regex);\n\n return (match && match[2]) || '';\n}\n\nexport function ignoreAccountId(url: string) {\n // If it is a join request - ignore account id\n const inviteIdPattern = '[0-9]{5}';\n const regex = `${GuidPattern}/join/${inviteIdPattern}`;\n return url.match(regex);\n}\n\nexport function isProjectRequest(request: HttpRequest) {\n return request?.url?.toLowerCase().includes('/projects/') || request.params.get('isBase') === 'false';\n}\n\nexport function isVideosRequest(request: HttpRequest) {\n return request?.url?.toLowerCase().includes('/videos/');\n}\nexport function isThumbnailsRequest(request: HttpRequest) {\n return request?.url?.toLowerCase().includes('/thumbnails/');\n}\n\nexport function isAccessTokenRequest(request: HttpRequest): boolean {\n return request.url.includes('/accessToken') || request.url.includes('/accesstoken');\n}\n\nexport function isUsersRequest(request: HttpRequest): boolean {\n return request.url.includes('/users/me');\n}\n\nexport function isReportAbuseRequest(request: HttpRequest): boolean {\n return request.url.includes('/reportAbuse');\n}\n\nexport function isArmAccountRequest(request: HttpRequest): boolean {\n return request.url.includes('/arm/');\n}\n\nexport function isNotificationsRequest(request: HttpRequest): boolean {\n return request.url.includes('/api/notifications');\n}\n\nexport function isSupportedLanguagesRequest(request: HttpRequest): boolean {\n return request.url.includes('/SupportedLanguages');\n}\n\nexport function isCustomizationRequest(request: HttpRequest): boolean {\n return request.url.includes('/customization/');\n}\n\nexport function isReIndexRequest(request: HttpRequest): boolean {\n return request.url.toLowerCase().includes('/reindex');\n}\n\nexport function forceAccessToken(request: HttpRequest) {\n return !!request.params.get('forceToken');\n}\n\nexport function ignoreEditRoutes(request: HttpRequest): boolean {\n return isReportAbuseRequest(request);\n}\n\nexport function getPermissionParam(request: HttpRequest): AccountPermission {\n return request.params.get('permission') as AccountPermission;\n}\n\nexport function hasAllowEdit(request: HttpRequest): boolean {\n const tokenSplit = request.headers.get(AccessTokenHeaderName)?.split('.');\n let tokenString = '';\n // Decode the token value to get the parameters in it.\n if (tokenSplit && tokenSplit.length >= 3) {\n tokenString = atob(tokenSplit[1]);\n }\n\n return (\n // Check the request method. for example - PUT should be with allowEdit=true\n isEditRequest(request) ||\n // Check allowEdit=true in url, params or in header with refresh\n request.params.get('allowEdit')?.toLocaleString() === 'true' ||\n request.url.includes('allowEdit=true') ||\n (request.headers.has(AccessTokenHeaderName) && request.headers.get(AccessTokenHeaderName).includes('refresh?allowEdit=true')) ||\n // Check the parameters in the decoded token\n tokenString.includes('\"AllowEdit\":\"True\"') ||\n tokenString.includes('\"Permission\":\"Contributor\"') ||\n tokenString.includes('\"Permission\":\"Owner\"')\n );\n}\n\nexport function isEditRequest(request: HttpRequest): boolean {\n return (\n !ignoreEditRoutes(request) &&\n (request.method.toLocaleLowerCase() === 'put' ||\n request.method.toLocaleLowerCase() === 'post' ||\n request.method.toLocaleLowerCase() === 'patch' ||\n request.method.toLocaleLowerCase() === 'delete')\n );\n}\n\nexport function getRequestVideoId(request: HttpRequest): string {\n if ((isProjectRequest(request) && hasAllowEdit(request)) || isThumbnailsRequest(request) || !isVideosRequest(request)) {\n return '';\n }\n return tryGetParam(request, 'id') || tryGetParam(request, 'videoId');\n}\n\nexport function getRequestAccountId(request: HttpRequest): string {\n return ignoreAccountId(request.url) ? '' : tryGetParam(request, 'accountId') || tryGetParam(request, 'accountName');\n}\n\nexport function addAuthenticationToken(request: HttpRequest, accessToken: string): HttpRequest {\n // If access token is empty - send as empty access token\n if (!accessToken) {\n return request;\n }\n\n // We clone the request, because the original request is immutable\n return request.clone({\n setHeaders: {\n Authorization: `Bearer ${accessToken}`\n }\n });\n}\n\nexport function isUserNotAuthenticatedError(error): boolean {\n return (\n error?.status === 401 &&\n (error?.error?.ErrorType === APIErrors.USER_NOT_AUTHENTICATED || error?.error?.ErrorType === APIErrors.USER_NOT_SIGNED_IN)\n );\n}\n\nexport function getErrorType(error): APIErrors {\n // Implicit unauthorized - from external services\n if (!error?.error?.ErrorType && error?.status === 403) {\n return APIErrors.USER_NOT_ALLOWED;\n }\n\n return error?.error?.ErrorType;\n}\n\nexport function isUserNotAuthenticatedOrUnauthorizedError(errorType: APIErrors, accountErrorType: APIErrors): boolean {\n return unauthorizedErrorTypes.includes(errorType) || unauthorizedErrorTypes.includes(accountErrorType);\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\n\nimport { AuthService } from './services/auth.service';\nimport { AccessTokenInterceptor } from './interceptors/access-token.interceptor';\nimport { AuthSessionInterceptor } from './interceptors/auth-session.interceptor';\nimport { AccessTokenService } from './services/access-token.service';\nimport { AuthSessionService } from './services/auth-session.service';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [],\n providers: [\n { provide: HTTP_INTERCEPTORS, useClass: AuthSessionInterceptor, multi: true },\n { provide: HTTP_INTERCEPTORS, useClass: AccessTokenInterceptor, multi: true },\n AuthService,\n AccessTokenService,\n AuthSessionService\n ]\n})\nexport class AuthModule {}\n","// ----------------------------------------------------------------------\n// AdalJS v1.0.15\n// @preserve Copyright (c) Microsoft Open Technologies, Inc.\n// All Rights Reserved\n// Apache License 2.0\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n// id\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// ----------------------------------------------------------------------\n\nimport { guid } from '../utils/string';\n\nexport class AuthenticationContext {\n // Configuration options for Authentication Context.\n private instance: string; // Azure Active Directory Instance.Defaults to `https://login.microsoftonline.com/`.\n\n private readonly CONSTANTS = {\n ACCESS_TOKEN: 'access_token',\n EXPIRES_IN: 'expires_in',\n ID_TOKEN: 'id_token',\n ERROR_DESCRIPTION: 'error_description',\n SESSION_STATE: 'session_state',\n STORAGE: {\n TOKEN_KEYS: 'adal.token.keys',\n ACCESS_TOKEN_KEY: 'adal.access.token.key',\n EXPIRATION_KEY: 'adal.expiration.key',\n STATE_LOGIN: 'adal.state.login',\n STATE_RENEW: 'adal.state.renew',\n NONCE_IDTOKEN: 'adal.nonce.idtoken',\n SESSION_STATE: 'adal.session.state',\n USERNAME: 'adal.username',\n IDTOKEN: 'adal.idtoken',\n ERROR: 'adal.error',\n ERROR_DESCRIPTION: 'adal.error.description',\n LOGIN_REQUEST: 'adal.login.request',\n LOGIN_ERROR: 'adal.login.error',\n RENEW_STATUS: 'adal.token.renew.status'\n },\n RESOURCE_DELIMETER: '|',\n LOADFRAME_TIMEOUT: 20000,\n TOKEN_RENEW_STATUS_CANCELED: 'Canceled',\n TOKEN_RENEW_STATUS_COMPLETED: 'Completed',\n TOKEN_RENEW_STATUS_IN_PROGRESS: 'In Progress',\n LOGGING_LEVEL: {\n ERROR: 0,\n WARN: 1,\n INFO: 2,\n VERBOSE: 3\n },\n LEVEL_STRING_MAP: {\n 0: 'ERROR:',\n 1: 'WARNING:',\n 2: 'INFO:',\n 3: 'VERBOSE:'\n },\n POPUP_WIDTH: 483,\n POPUP_HEIGHT: 600\n };\n\n /**\n * Creates a new AuthenticationContext object.\n * @constructor\n * @param {config} config Configuration options for AuthenticationContext\n */\n\n private config; // Configuration options for AuthenticationContext\n private callback;\n private isAngular;\n\n // private\n private user = {};\n private activeRenewals = {};\n private idTokenNonce;\n private profile; // properties parsed from idtoken.\n\n constructor(config) {\n // public\n this.instance = 'https://login.microsoftonline.com/';\n this.config = {};\n this.callback = null;\n this.isAngular = false;\n\n // private\n this.user = {};\n this.activeRenewals = {};\n\n window.renewStates = [];\n window.callbackMappedToRenewStates = {};\n window.callbackMappedToRenewStates = {};\n\n // validate before constructor assignments\n if (config.displayCall && typeof config.displayCall !== 'function') {\n throw new Error('displayCall is not a function');\n }\n\n if (!config.clientId) {\n throw new Error('clientId is required');\n }\n\n this.config = this.cloneConfig(config);\n\n if (this.config.navigateToLoginRequestUrl === undefined) {\n this.config.navigateToLoginRequestUrl = true;\n }\n\n if (this.config.callback && typeof this.config.callback === 'function') {\n this.callback = this.config.callback;\n }\n\n if (this.config.instance) {\n this.instance = this.config.instance;\n }\n\n // App can request idtoken for itself using clientid as resource\n if (!this.config.loginResource) {\n this.config.loginResource = this.config.clientId;\n }\n\n // redirect and logout_redirect are set to current location by default\n if (!this.config.redirectUri) {\n // strip off query parameters or hashes from the redirect uri as AAD does not allow those.\n this.config.redirectUri = window.location.href.split('?')[0].split('#')[0];\n }\n\n if (!this.config.postLogoutRedirectUri) {\n // strip off query parameters or hashes from the post logout redirect uri as AAD does not allow those.\n this.config.postLogoutRedirectUri = window.location.href.split('?')[0].split('#')[0];\n }\n\n if (!this.config.anonymousEndpoints) {\n this.config.anonymousEndpoints = [];\n }\n\n if (this.config.isAngular) {\n this.isAngular = this.config.isAngular;\n }\n\n if (this.config.loadFrameTimeout) {\n this.CONSTANTS.LOADFRAME_TIMEOUT = this.config.loadFrameTimeout;\n }\n }\n\n /**\n * Acquires token from the cache if it is not expired. Otherwise sends request to AAD to obtain a new token.\n * @param {string} resource ResourceUri identifying the target resource\n * @param {tokenCallback} callback - The callback provided by the caller. It will be called with token or error.\n */\n public acquireToken(resource, callback) {\n if (this.isEmpty(resource)) {\n this.warn('resource is required');\n callback('resource is required', null, 'resource is required');\n return;\n }\n\n const token = this.getCachedToken(resource);\n if (token) {\n this.info('Token is already in cache for resource:' + resource);\n callback(null, token, null);\n return;\n }\n\n if (!this.user) {\n this.warn('User login is required');\n callback('User login is required', null, 'login required');\n return;\n }\n\n // refresh attept with iframe\n // Already renewing for this resource, callback when we get the token.\n if (this.activeRenewals[resource]) {\n // Active renewals contains the state for each renewal.\n this.registerCallback(this.activeRenewals[resource], resource, callback);\n } else {\n if (resource === this.config.clientId) {\n // App uses idtoken to send to api endpoints\n // Default resource is tracked as clientid to store this token\n this.verbose('renewing idtoken');\n this.renewIdToken(callback);\n } else {\n this.renewToken(resource, callback);\n }\n }\n }\n\n public removeAdalFrame(iframeId) {\n if (typeof iframeId === 'undefined') {\n return;\n }\n\n this.info('Remove adal frame to document:' + iframeId);\n const adalFrame = document.getElementById(iframeId);\n\n if (adalFrame) {\n document.body.removeChild(adalFrame);\n }\n }\n\n // private loginInProgress() {\n // return this._loginInProgress;\n // };\n\n /**\n * Checks for the resource in the cache. By default, cache location is Session Storage\n * @ignore\n * @returns {Boolean} 'true' if login is in progress, else returns 'false'.\n */\n private hasResource(key) {\n const keys = this.getItem(this.CONSTANTS.STORAGE.TOKEN_KEYS);\n return keys && !this.isEmpty(keys) && keys.indexOf(key + this.CONSTANTS.RESOURCE_DELIMETER) > -1;\n }\n\n /**\n * Gets token for the specified resource from the cache.\n * @param {string} resource A URI that identifies the resource for which the token is requested.\n * @returns {string} token if if it exists and not expired, otherwise null.\n */\n private getCachedToken(resource) {\n if (!this.hasResource(resource)) {\n return null;\n }\n\n const token = this.getItem(this.CONSTANTS.STORAGE.ACCESS_TOKEN_KEY + resource);\n const expiry = this.getItem(this.CONSTANTS.STORAGE.EXPIRATION_KEY + resource);\n\n // If expiration is within offset, it will force renew\n const offset = this.config.expireOffsetSeconds || 300;\n\n if (expiry && expiry > this.now() + offset) {\n return token;\n } else {\n this.saveItem(this.CONSTANTS.STORAGE.ACCESS_TOKEN_KEY + resource, '');\n this.saveItem(this.CONSTANTS.STORAGE.EXPIRATION_KEY + resource, 0);\n return null;\n }\n }\n\n /**\n * Adds the passed callback to the array of callbacks for the specified resource and puts the array on the window object.\n * @param {string} resource A URI that identifies the resource for which the token is requested.\n * @param {string} expectedState A unique identifier (guid).\n * @param {tokenCallback} callback - The callback provided by the caller. It will be called with token or error.\n */\n private registerCallback(expectedState, resource, callback) {\n this.activeRenewals[resource] = expectedState;\n if (!window.callbackMappedToRenewStates[expectedState]) {\n window.callbackMappedToRenewStates[expectedState] = [];\n }\n window.callbackMappedToRenewStates[expectedState].push(callback);\n if (!window.callbackMappedToRenewStates[expectedState]) {\n window.callbackMappedToRenewStates[expectedState] = (errorDesc, token, error) => {\n this.activeRenewals[resource] = null;\n\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < window.callbackMappedToRenewStates[expectedState].length; ++i) {\n try {\n window.callbackMappedToRenewStates[expectedState][i](errorDesc, token, error);\n } catch (err) {\n this.warn(err);\n }\n }\n window.callbackMappedToRenewStates[expectedState] = null;\n window.callbackMappedToRenewStates[expectedState] = null;\n };\n }\n }\n\n // var errorResponse = {error:'', error_description:''};\n // var token = 'string token';\n // callback(errorResponse, token)\n // with callback\n /**\n * Acquires access token with hidden iframe\n * @ignore\n */\n private renewToken(resource, callback) {\n // use iframe to try refresh token\n // use given resource to create new authz url\n this.info('renewToken is called for resource:' + resource);\n const frameHandle = this.addAdalFrame('adalRenewFrame' + resource);\n const expectedState = guid() + '|' + resource;\n this.config.state = expectedState;\n // renew happens in iframe, so it keeps javascript context\n window.renewStates.push(expectedState);\n\n this.verbose('Renew token Expected state: ' + expectedState);\n let urlNavigate = this.getNavigateUrl('token', resource) + '&prompt=none';\n urlNavigate = this.addHintParameters(urlNavigate);\n\n this.registerCallback(expectedState, resource, callback);\n this.verbose('Navigate to:' + urlNavigate);\n frameHandle.setAttribute('src', 'about:blank');\n this.loadFrameTimeout(urlNavigate, 'adalRenewFrame' + resource, resource);\n }\n\n /**\n * Renews idtoken for app's own backend when resource is clientId and calls the callback with token/error\n * @ignore\n */\n private renewIdToken(callback) {\n // use iframe to try refresh token\n this.info('renewIdToken is called');\n const frameHandle = this.addAdalFrame('adalIdTokenFrame');\n const expectedState = guid() + '|' + this.config.clientId;\n this.idTokenNonce = guid();\n this.saveItem(this.CONSTANTS.STORAGE.NONCE_IDTOKEN, this.idTokenNonce);\n this.config.state = expectedState;\n // renew happens in iframe, so it keeps javascript context\n window.renewStates.push(expectedState);\n\n this.verbose('Renew Idtoken Expected state: ' + expectedState);\n let urlNavigate = this.getNavigateUrl('id_token', null) + '&prompt=none';\n urlNavigate = this.addHintParameters(urlNavigate);\n\n urlNavigate += '&nonce=' + encodeURIComponent(this.idTokenNonce);\n this.registerCallback(expectedState, this.config.clientId, callback);\n this.idTokenNonce = null;\n this.verbose('Navigate to:' + urlNavigate);\n frameHandle.setAttribute('src', 'about:blank');\n this.loadFrameTimeout(urlNavigate, 'adalIdTokenFrame', this.config.clientId);\n }\n\n /**\n * Checks if the authorization endpoint URL contains query string parameters\n * @ignore\n */\n private urlContainsQueryStringParameter(name, url) {\n // regex to detect pattern of a ? or & followed by the name parameter and an equals character\n const regex = new RegExp('[\\\\?&]' + name + '=');\n return regex.test(url);\n }\n\n // Calling _loadFrame but with a timeout to signal failure in loadframeStatus. Callbacks are left\n // registered when network errors occur and subsequent token requests for same resource are registered to the pending request\n /**\n * @ignore\n */\n private loadFrameTimeout(urlNavigation, frameName, resource) {\n // set iframe session to pending\n this.verbose('Set loading state to pending for: ' + resource);\n this.saveItem(this.CONSTANTS.STORAGE.RENEW_STATUS + resource, this.CONSTANTS.TOKEN_RENEW_STATUS_IN_PROGRESS);\n this.loadFrame(urlNavigation, frameName);\n setTimeout(() => {\n if (this.getItem(this.CONSTANTS.STORAGE.RENEW_STATUS + resource) === this.CONSTANTS.TOKEN_RENEW_STATUS_IN_PROGRESS) {\n // fail the iframe session if it's in pending state\n // eslint-disable-next-line max-len\n this.verbose('Loading frame has timed out after: ' + this.CONSTANTS.LOADFRAME_TIMEOUT / 1000 + ' seconds for resource ' + resource);\n const expectedState = this.activeRenewals[resource];\n if (expectedState && window.callbackMappedToRenewStates[expectedState]) {\n // eslint-disable-next-line max-len\n window.callbackMappedToRenewStates[expectedState][0]('Token renewal operation failed due to timeout', null, 'Token Renewal Failed');\n }\n\n this.saveItem(this.CONSTANTS.STORAGE.RENEW_STATUS + resource, this.CONSTANTS.TOKEN_RENEW_STATUS_CANCELED);\n }\n }, this.CONSTANTS.LOADFRAME_TIMEOUT);\n }\n\n /**\n * Loads iframe with authorization endpoint URL\n * @ignore\n */\n private loadFrame(urlNavigate, frameName) {\n // This trick overcomes iframe navigation in IE\n // IE does not load the page consistently in iframe\n this.info('LoadFrame: ' + frameName);\n const frameCheck = frameName;\n setTimeout(() => {\n const frameHandle = this.addAdalFrame(frameCheck);\n if (frameHandle.getAttribute('src') === '' || frameHandle.getAttribute('src') === 'about:blank') {\n frameHandle.setAttribute('src', urlNavigate);\n this.loadFrame(urlNavigate, frameCheck);\n }\n }, 500);\n }\n\n private isEmpty(str) {\n return typeof str === 'undefined' || !str || 0 === str.length;\n }\n\n /**\n * Adds login_hint to authorization URL which is used to pre-fill the\n * username field of sign in page for the user if known ahead of time.\n * domain_hint can be one of users/organisations which when added skips the email based discovery process of the user.\n * @ignore\n */\n private addHintParameters(urlNavigate) {\n // include hint params only if upn is present\n if (this.user && this.profile && this.profile.hasOwnProperty('upn')) {\n // don't add login_hint twice if user provided it in the extraQueryParameter value\n if (!this.urlContainsQueryStringParameter('login_hint', urlNavigate)) {\n // add login_hint\n urlNavigate += '&login_hint=' + encodeURIComponent(this.profile.upn);\n }\n\n // don't add domain_hint twice if user provided it in the extraQueryParameter value\n if (!this.urlContainsQueryStringParameter('domain_hint', urlNavigate) && this.profile.upn.indexOf('@') > -1) {\n const parts = this.profile.upn.split('@');\n // local part can include @ in quotes. Sending last part handles that.\n urlNavigate += '&domain_hint=' + encodeURIComponent(parts[parts.length - 1]);\n }\n }\n\n return urlNavigate;\n }\n\n // Constructs the authorization endpoint URL and returns it.\n private getNavigateUrl(responseType, resource) {\n // eslint-disable-next-line max-len\n const urlNavigate = this.instance + this.config.localLoginUrl + this.serialize(responseType, this.config, resource) + this.addLibMetadata();\n\n this.info('Navigate url:' + urlNavigate);\n return urlNavigate;\n }\n\n // Serializes the parameters for the authorization endpoint URL and returns the serialized uri string.\n private serialize(responseType, obj, resource) {\n const str = [];\n if (obj !== null) {\n str.push('?response_type=' + responseType);\n str.push('client_id=' + encodeURIComponent(obj.clientId));\n if (resource) {\n str.push('resource=' + encodeURIComponent(resource));\n str.push('provider=' + encodeURIComponent(resource));\n }\n\n if (obj.tenantId) {\n str.push('tenantId=' + obj.tenantId);\n }\n\n str.push('opener=iframe');\n str.push('returnUrl=' + encodeURIComponent(obj.redirectUri));\n str.push('redirect_uri=' + encodeURIComponent(obj.redirectUri));\n str.push('state=' + encodeURIComponent(obj.state));\n\n if (obj.hasOwnProperty('slice')) {\n str.push('slice=' + encodeURIComponent(obj.slice));\n }\n\n if (obj.hasOwnProperty('extraQueryParameter')) {\n str.push(obj.extraQueryParameter);\n }\n\n const correlationId = obj.correlationId ? obj.correlationId : guid();\n str.push('client-request-id=' + encodeURIComponent(correlationId));\n }\n\n return str.join('&');\n }\n\n // Return the number of milliseconds since 1970/01/01\n private now() {\n return Math.round(new Date().getTime() / 1000.0);\n }\n\n // Adds the hidden iframe for silent token renewal\n private addAdalFrame(iframeId) {\n if (typeof iframeId === 'undefined') {\n return;\n }\n\n this.info('Add adal frame to document:' + iframeId);\n let adalFrame = document.getElementById(iframeId);\n\n if (!adalFrame) {\n // eslint-disable-next-line deprecation/deprecation\n if (document.createElement && document.documentElement && window.navigator.userAgent.indexOf('MSIE 5.0') === -1) {\n const ifr = document.createElement('iframe');\n ifr.setAttribute('id', iframeId);\n ifr.setAttribute('aria-hidden', 'true');\n ifr.style.visibility = 'hidden';\n ifr.style.position = 'absolute';\n ifr.style.width = ifr.style.height = ifr.style.borderWidth = '0px';\n\n adalFrame = document.getElementsByTagName('body')[0].appendChild(ifr);\n } else if (document.body && document.body.insertAdjacentHTML) {\n // eslint-disable-next-line max-len, @microsoft/sdl/no-inner-html\n document.body.insertAdjacentHTML('beforeend', '');\n }\n // if (window.frames && window.frames[iframeId]) {\n // adalFrame = window.frames[iframeId];\n // }\n }\n\n return adalFrame;\n }\n\n // Saves the key-value pair in the cache\n private saveItem(key, obj) {\n if (this.config && this.config.cacheLocation && this.config.cacheLocation === 'localStorage') {\n if (!this.supportsLocalStorage()) {\n this.info('Local storage is not supported');\n return false;\n }\n\n localStorage.setItem(key, obj);\n\n return true;\n }\n\n // Default as session storage\n if (!this.supportsSessionStorage()) {\n this.info('Session storage is not supported');\n return false;\n }\n\n sessionStorage.setItem(key, obj);\n return true;\n }\n\n // Searches the value for the given key in the cache\n private getItem(key) {\n if (this.config && this.config.cacheLocation && this.config.cacheLocation === 'localStorage') {\n if (!this.supportsLocalStorage()) {\n this.info('Local storage is not supported');\n return null;\n }\n\n return localStorage.getItem(key);\n }\n\n // Default as session storage\n if (!this.supportsSessionStorage()) {\n this.info('Session storage is not supported');\n return null;\n }\n\n return sessionStorage.getItem(key);\n }\n\n // Returns true if browser supports localStorage, false otherwise.\n private supportsLocalStorage() {\n try {\n if (!window.localStorage) {\n return false; // Test availability\n }\n window.localStorage.setItem('storageTest', 'A'); // Try write\n if (window.localStorage.getItem('storageTest') !== 'A') {\n return false;\n } // Test read/write\n window.localStorage.removeItem('storageTest'); // Try delete\n if (window.localStorage.getItem('storageTest')) {\n return false;\n } // Test delete\n return true; // Success\n } catch (e) {\n return false;\n }\n }\n\n // Returns true if browser supports sessionStorage, false otherwise.\n private supportsSessionStorage() {\n try {\n if (!window.sessionStorage) {\n return false;\n } // Test availability\n window.sessionStorage.setItem('storageTest', 'A'); // Try write\n if (window.sessionStorage.getItem('storageTest') !== 'A') {\n return false;\n } // Test read/write\n window.sessionStorage.removeItem('storageTest'); // Try delete\n if (window.sessionStorage.getItem('storageTest')) {\n return false;\n } // Test delete\n return true; // Success\n } catch (e) {\n return false;\n }\n }\n\n // Returns a cloned copy of the passed object.\n private cloneConfig(obj) {\n if (null === obj || 'object' !== typeof obj) {\n return obj;\n }\n\n const copy = {};\n for (const attr of Object.keys(obj)) {\n if (obj.hasOwnProperty(attr)) {\n copy[attr] = obj[attr];\n }\n }\n return copy;\n }\n\n // Adds the library version and returns it.\n private addLibMetadata() {\n // x-client-SKU\n // x-client-Ver\n return '&x-client-SKU=Js&x-client-Ver=' + this.libVersion();\n }\n\n // Checks the Logging Level, constructs the Log message and logs it. Users need to implement/override this method to turn on Logging.\n private log(level: number, message: string, error) {\n if (level <= 5) {\n const timestamp = new Date().toUTCString();\n let formattedMessage = '';\n\n if (this.config.correlationId) {\n // eslint-disable-next-line max-len\n formattedMessage =\n timestamp + ':' + this.config.correlationId + '-' + this.libVersion() + '-' + this.CONSTANTS.LEVEL_STRING_MAP[level] + ' ' + message;\n } else {\n formattedMessage = timestamp + ':' + this.libVersion() + '-' + this.CONSTANTS.LEVEL_STRING_MAP[level] + ' ' + message;\n }\n\n if (error) {\n formattedMessage += '\\nstack:\\n' + error.stack;\n }\n\n // eslint-disable-next-line no-console\n console.log(formattedMessage);\n }\n }\n\n // Logs messages when Logging Level is set to 1.\n private warn(message: string) {\n this.log(this.CONSTANTS.LOGGING_LEVEL.WARN, message, null);\n }\n\n // Logs messages when Logging Level is set to 2.\n private info(message: string) {\n this.log(this.CONSTANTS.LOGGING_LEVEL.INFO, message, null);\n }\n\n // Logs messages when Logging Level is set to 3.\n private verbose(message: string) {\n this.log(this.CONSTANTS.LOGGING_LEVEL.VERBOSE, message, null);\n }\n\n // Returns the library version.\n private libVersion() {\n return '1.0.15';\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor } from '@angular/common/http';\n\nimport { throwError, Observable } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\n\nimport { LoggerService } from '@common/modules/core/services/logger/logger.service';\nimport { ApiService } from '@common/modules/api/services/api.service';\n\nimport { AuthService } from '../../auth/services/auth.service';\nimport { ConfigService } from '../../core/services/config/config.service';\nimport { AccessTokenService } from '../services/access-token.service';\nimport {\n forceAccessToken,\n isAccessTokenRequest,\n isArmAccountRequest,\n isNotificationsRequest,\n isSupportedLanguagesRequest,\n isUserNotAuthenticatedError\n} from '../../api/utils/request.function';\n\n@Injectable()\nexport class AccessTokenInterceptor implements HttpInterceptor {\n private apimBase: string;\n private authorizationApiLocation: string;\n\n constructor(\n public logger: LoggerService,\n public auth: AuthService,\n public configService: ConfigService,\n private accessTokenService: AccessTokenService,\n private apiService: ApiService\n ) {\n this.apimBase = this.configService.Config?.api?.apimBase;\n this.authorizationApiLocation = this.configService.Config?.api?.authorizationApiLocation;\n }\n\n public intercept(request: HttpRequest, next: HttpHandler): Observable> {\n // If its not api route or refresh token, continue\n if (\n this.isNotApimOrExtensionRequest(request) ||\n isAccessTokenRequest(request) ||\n (isArmAccountRequest(request) && !forceAccessToken(request)) ||\n isNotificationsRequest(request) ||\n isSupportedLanguagesRequest(request)\n ) {\n return next.handle(request);\n }\n\n const token = this.accessTokenService.getAccessTokenFromCache(request);\n if (token.includes('refresh')) {\n this.logger.log('[AccessTokenInterceptor] refresh token');\n return this.accessTokenService.accessTokenAuthorizationHandler(request, next);\n }\n\n return next.handle(this.accessTokenService.addAuthenticationToken(request)).pipe(\n catchError(error => {\n // If error status is different than 401 we want to skip refresh token\n // So we check that and throw the error if it's the case\n if (error.status !== 401 || (isUserNotAuthenticatedError(error) && !this.auth.isEmbedMode())) {\n this.logger.log(`[AccessTokenInterceptor] not 401 error: ${error.status}`);\n // eslint-disable-next-line deprecation/deprecation\n return throwError(error);\n }\n\n return this.accessTokenService.accessTokenAuthorizationHandler(request, next);\n })\n );\n }\n\n private isNotApimOrExtensionRequest(request: HttpRequest): boolean {\n return this.apiService.edgeExtensionApiUrl?.length\n ? !request.url.includes(this.apiService.edgeExtensionApiUrl) &&\n !request.url.includes(this.apiService.baseApi) &&\n !request.url.includes(this.authorizationApiLocation)\n : !request.url.includes(this.apiService.baseApi) && !request.url.includes(this.authorizationApiLocation);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor } from '@angular/common/http';\n\nimport { throwError, Observable, BehaviorSubject } from 'rxjs';\nimport { take, switchMap, filter, catchError } from 'rxjs/operators';\n\nimport { AuthService } from '../services/auth.service';\nimport { ConfigService } from '../../core/services/config/config.service';\nimport { LoggerService } from '../../core/services/logger/logger.service';\nimport { isUserNotAuthenticatedError, isAccessTokenRequest } from '../../api/utils/request.function';\nimport { AuthSessionService } from '../services/auth-session.service';\nimport { AccessTokenService } from '../services/access-token.service';\nimport { EventCategory, TrackService } from '../../core/services/track';\n\n@Injectable()\nexport class AuthSessionInterceptor implements HttpInterceptor {\n private refreshSessionInProgress = false;\n private refreshSessionSubject: BehaviorSubject = new BehaviorSubject(null);\n\n private apimBase: string;\n\n constructor(\n public auth: AuthService,\n public configService: ConfigService,\n private logger: LoggerService,\n private authSessionService: AuthSessionService,\n private accessTokenService: AccessTokenService,\n private trackService: TrackService\n ) {\n this.apimBase = this.configService.Config?.api?.apimBase;\n }\n\n public intercept(request: HttpRequest, next: HttpHandler): Observable> {\n // If its not api route , continue\n if (!request.url.includes('/api') && !request.url.includes(this.apimBase)) {\n return next.handle(request);\n }\n\n return next.handle(request).pipe(\n catchError(error => {\n // If error status is different than 401 we want to skip refresh token\n // So we check that and throw the error if it's the case\n if (error.status !== 401) {\n this.logger.log(`[SessionInterceptor] not 401 error: ${error.status}`);\n this.trackService.track('auth_session_interceptor.error.skip_refresh_token', {\n category: EventCategory.AUTH,\n data: {\n error\n }\n });\n // eslint-disable-next-line deprecation/deprecation\n return throwError(error);\n }\n\n // If it is not embed mode we want to refresh the session\n if (isUserNotAuthenticatedError(error) && !this.auth.isEmbedMode() && this.auth.isAuthenticated()) {\n if (!this.refreshSessionInProgress) {\n this.refreshSessionInProgress = true;\n this.refreshSessionSubject.next(null);\n this.authSessionService\n .tryRefreshSession()\n .pipe(take(1))\n // eslint-disable-next-line deprecation/deprecation\n .subscribe(\n (refreshSession: boolean) => {\n this.refreshSessionInProgress = false;\n if (refreshSession) {\n this.refreshSessionSubject.next('success');\n return this.handleRefreshTokenRequest(request, next);\n } else {\n this.refreshSessionSubject.next('failed');\n // eslint-disable-next-line deprecation/deprecation\n return throwError(error);\n }\n },\n err => {\n this.refreshSessionInProgress = false;\n this.refreshSessionSubject.next('failed');\n // eslint-disable-next-line deprecation/deprecation\n return throwError(err);\n }\n );\n }\n\n return this.refreshSessionSubject.pipe(\n filter(accessToken => accessToken !== null),\n take(1),\n switchMap(accessToken => {\n this.trackService.track('auth_session_interceptor.error.refresh_session_fallback.refresh_in_progress', {\n category: EventCategory.AUTH\n });\n if (accessToken === 'failed') {\n // eslint-disable-next-line deprecation/deprecation\n return throwError(error);\n }\n\n return this.handleRefreshTokenRequest(request, next);\n })\n );\n }\n\n // We don't want to refresh token for some requests like login or refresh token itself\n // So we verify url and we throw an error if it's the case\n if (isAccessTokenRequest(request)) {\n // We do another check to see if refresh token failed\n // eslint-disable-next-line deprecation/deprecation\n return throwError(error);\n }\n // eslint-disable-next-line deprecation/deprecation\n return throwError(error);\n })\n );\n }\n\n private handleRefreshTokenRequest(request: HttpRequest, next: HttpHandler) {\n if (isAccessTokenRequest(request)) {\n return next.handle(request);\n } else {\n return next.handle(this.accessTokenService.addAuthenticationToken(request));\n }\n }\n}\n","export const localhostClientID = '032dea9b-5591-4512-816f-3a9125100501'; // 'eda45e57-a35d-41ca-94ac-c676cc3aa127';\nexport const appClientID = '9873b408-1903-416c-acd6-79e6a95ce6f3';\n\nexport interface IAuthenticatedUser {\n upn: string;\n name: string;\n id: string;\n type: string;\n isAdmin: boolean;\n isSuspended: boolean;\n tenantId?: string;\n}\n\nexport enum AccountResourceType {\n TRIAL = 'TRIAL',\n ARM = 'ARM',\n CLASSIC = 'CLASSIC'\n}\n\nexport enum UserType {\n MicrosoftCorpAad = 'MicrosoftCorpAad',\n Microsoft = 'Microsoft',\n Google = 'Google'\n}\n","import { Injectable } from '@angular/core';\nimport { HttpRequest, HttpHandler, HttpEvent } from '@angular/common/http';\n\nimport { BehaviorSubject, Observable, throwError } from 'rxjs';\nimport { switchMap, catchError, filter, take, mergeMap, finalize } from 'rxjs/operators';\n\nimport {\n getRequestVideoId,\n getRequestAccountId,\n hasAllowEdit,\n isProjectRequest,\n addAuthenticationToken,\n isThumbnailsRequest,\n getPermissionParam,\n tryGetParam,\n isReIndexRequest\n} from '@common/modules/api/utils/request.function';\nimport { EventCategory, TrackService } from '@common/modules/core/services/track';\nimport { LoggerService } from '@common/modules/core/services/logger/logger.service';\nimport { AccountPermission } from '@common/modules/shared/interfaces';\nimport { ApiService } from '@common/modules/api/services/api.service';\nimport { FeatureSwitchService } from '@common/modules/core/services/feature-switch/feature-switch.service';\nimport { FeatureSwitch } from '@common/modules/core/services/interfaces';\n\nimport { AuthService } from '../../auth/services/auth.service';\nimport { ConfigService } from '../../core/services/config/config.service';\nimport { allowEditToPermission } from '../utils/auth.utils';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AccessTokenService {\n // refresh tokens subjects\n private refreshUserTokenInProgressMap = [];\n private refreshUserTokenSubjectMap: BehaviorSubject[] = [];\n\n private refreshAccountTokenInProgressMap = [];\n private refreshAccountTokenSubjectMap: BehaviorSubject[] = [];\n\n private refreshVideoTokenInProgressMap = [];\n private refreshVideoTokenSubjectMap: BehaviorSubject[] = [];\n\n private get enableEdgeExtensionTokens() {\n return this.featureSwitchService.featureSwitch(FeatureSwitch.EdgeTokens);\n }\n\n constructor(\n public logger: LoggerService,\n public auth: AuthService,\n public configService: ConfigService,\n private trackService: TrackService,\n private apiService: ApiService,\n private featureSwitchService: FeatureSwitchService\n ) {\n this.logger.log('[AccessTokenService] init');\n }\n\n public async getAccessTokenAsync(\n id?: string,\n accountId?: string,\n allowEdit: boolean = false,\n isProject = false,\n isExtensionRequest = false,\n permission?: AccountPermission,\n force = false,\n extendExtensionToken = false\n ): Promise {\n return new Promise((resolve, reject) => {\n const token = this.auth.getAccessToken(id, accountId, allowEdit, isProject, null, isExtensionRequest);\n if (token.includes('refresh') || force) {\n this.logger.log('[AccessTokenService] GetAccessTokenAsync refresh token');\n this.trackService.track('auth.get_access_token.start', {\n category: EventCategory.AUTH,\n data: {\n id,\n accountId,\n allowEdit,\n isProject\n }\n });\n this.auth\n .getAccessTokenApi(id, accountId, allowEdit, isProject, permission, null, isExtensionRequest, extendExtensionToken)\n .pipe(take(1))\n // eslint-disable-next-line deprecation/deprecation\n .subscribe(\n accessToken => {\n this.handleGetAccessTokenSuccess(accessToken, id, accountId, allowEdit, isProject);\n resolve(accessToken);\n },\n error => {\n this.trackService.track('auth.get_access_token.failed', {\n category: EventCategory.AUTH,\n data: {\n id,\n accountId,\n allowEdit,\n isProject\n }\n });\n reject(error);\n }\n );\n } else {\n resolve(token);\n }\n });\n }\n\n public getAccessTokenFromCache(request: HttpRequest): string {\n // Get params\n const id = this.getVideoId(request);\n const accountId = getRequestAccountId(request);\n const allowEdit = hasAllowEdit(request);\n const isProject = isProjectRequest(request);\n const permission = getPermissionParam(request);\n const isExtensionRequest = this.isExtensionRequest(request);\n return this.auth.getAccessToken(id, accountId, allowEdit, isProject, permission, isExtensionRequest);\n }\n\n public addAuthenticationToken(request: HttpRequest): HttpRequest {\n // Get params\n const id = this.getVideoId(request);\n const accountId = getRequestAccountId(request);\n const allowEdit = hasAllowEdit(request);\n const isProject = isProjectRequest(request);\n const permission = getPermissionParam(request);\n const isExtensionRequest = this.isExtensionRequest(request);\n /**\n * reindex request in arc extension uses account level token so in this case we can't\n * send the videoId otherwise the token will be scoped to the video\n */\n const useAccountScope = isExtensionRequest && isReIndexRequest(request);\n const accessToken = this.auth.getAccessToken(useAccountScope ? null : id, accountId, allowEdit, isProject, permission, isExtensionRequest);\n\n return addAuthenticationToken(request, accessToken);\n }\n\n // AccessTokenAuthorizationHandler - handle all tokens refresh requests (User/Account/Video)\n // depends on the the request params\n // refresh token mechanism for each token (User/Account/Video)\n public accessTokenAuthorizationHandler(request: HttpRequest, next: HttpHandler): Observable> {\n // Get params\n const id = this.getVideoId(request);\n const accountId = getRequestAccountId(request);\n const allowEdit = hasAllowEdit(request);\n const isProject = isProjectRequest(request);\n const permission = getPermissionParam(request);\n const isExtensionsRequest = this.isExtensionRequest(request);\n this.trackService.track('auth.access_token.refresh_token.init', {\n category: EventCategory.AUTH,\n data: {\n id,\n accountId,\n allowEdit,\n isProject\n }\n });\n\n // reindex request in arc extension uses account level token\n if (id && isExtensionsRequest && isReIndexRequest(request)) {\n return this.handleAccountAccessTokenAuthorizationError(request, next, accountId, allowEdit, permission, isExtensionsRequest);\n }\n\n // if in extension mode, don't send video access token request\n if (id && !isThumbnailsRequest(request)) {\n return this.handleVideoAccessTokenAuthorizationError(request, next, id, accountId, allowEdit, isProject, isExtensionsRequest);\n } else if (accountId) {\n return this.handleAccountAccessTokenAuthorizationError(request, next, accountId, allowEdit, permission, isExtensionsRequest);\n } else {\n return this.handleUserAccessTokenAuthorizationError(request, next, allowEdit);\n }\n }\n\n private handleUserAccessTokenAuthorizationError(\n request: HttpRequest,\n next: HttpHandler,\n allowEdit: boolean = false\n ): Observable> {\n if (!this.refreshUserTokenInProgressMap[`${allowEdit}`]) {\n this.refreshUserTokenInProgressMap[`${allowEdit}`] = true;\n this.refreshUserTokenSubjectMap[`${allowEdit}`] = new BehaviorSubject(null);\n\n return this.auth.getAccessTokenApi(null, null, allowEdit).pipe(\n switchMap((userToken: string) => {\n this.handleGetAccessTokenSuccess(userToken, null, null, allowEdit);\n this.refreshUserTokenSubjectMap[`${allowEdit}`].next(userToken);\n this.refreshUserTokenInProgressMap[`${allowEdit}`] = false;\n return next.handle(this.addAuthenticationToken(request));\n }),\n catchError(err => {\n this.handleGetAccessTokenError(err, null, null, allowEdit);\n this.refreshUserTokenSubjectMap[`${allowEdit}`].next(err);\n this.refreshUserTokenInProgressMap[`${allowEdit}`] = false;\n // eslint-disable-next-line deprecation/deprecation\n return throwError(err);\n })\n );\n } else {\n return this.refreshUserTokenSubjectMap[`${allowEdit}`].pipe(\n filter(token => token !== null),\n take(1),\n switchMap(() => {\n return next.handle(this.addAuthenticationToken(request));\n })\n );\n }\n }\n\n private handleAccountAccessTokenAuthorizationError(\n request: HttpRequest,\n next: HttpHandler,\n accountId: string,\n allowEdit: boolean = false,\n permission?: AccountPermission,\n isExtensionRequest = false\n ): Observable> {\n const permissionValue = permission || allowEditToPermission(allowEdit);\n const index = `${accountId}_${permissionValue}${isExtensionRequest ? this.auth.SelectedEdgeExtensionId : ''}`;\n if (!this.refreshAccountTokenInProgressMap[index]) {\n this.refreshAccountTokenInProgressMap[index] = true;\n this.refreshAccountTokenSubjectMap[index] = new BehaviorSubject(null);\n const reqSettings = { params: {} };\n if (this.auth.enableRestrictedViewer) {\n reqSettings.params['enableRestrictedViewer'] = true;\n }\n return this.auth.getAccessTokenApi(null, accountId, allowEdit, null, permission, reqSettings, isExtensionRequest).pipe(\n mergeMap((accountToken: string) => {\n this.handleGetAccessTokenSuccess(accountToken, null, accountId, allowEdit, null, permission, isExtensionRequest);\n this.refreshAccountTokenSubjectMap[index].next(accountToken);\n return next.handle(this.addAuthenticationToken(request));\n }),\n catchError(err => {\n this.handleGetAccessTokenError(err, null, accountId, allowEdit, null, permission);\n this.refreshAccountTokenSubjectMap[index].next(err);\n // eslint-disable-next-line deprecation/deprecation\n return throwError(err);\n }),\n finalize(() => {\n this.refreshAccountTokenInProgressMap[index] = false;\n })\n );\n } else {\n return this.refreshAccountTokenSubjectMap[index].pipe(\n filter(token => token !== null),\n take(1),\n switchMap(() => {\n return next.handle(this.addAuthenticationToken(request));\n })\n );\n }\n }\n\n private handleVideoAccessTokenAuthorizationError(\n request: HttpRequest,\n next: HttpHandler,\n id: string,\n accountId: string,\n allowEdit: boolean = false,\n isProject = false,\n isExtensionRequest = false\n ): Observable> {\n const index = `${id}_${allowEdit}${isExtensionRequest ? this.auth.SelectedEdgeExtensionId : ''}`;\n if (!this.refreshVideoTokenInProgressMap[index]) {\n this.refreshVideoTokenInProgressMap[index] = true;\n this.refreshVideoTokenSubjectMap[index] = new BehaviorSubject(null);\n\n const location = tryGetParam(request, 'location');\n const reqSettings = { params: {} };\n if (location) {\n reqSettings.params['location'] = location;\n }\n if (this.auth.enableRestrictedViewer) {\n reqSettings.params['enableRestrictedViewer'] = true;\n }\n return this.auth.getAccessTokenApi(id, accountId, allowEdit, isProject, null, reqSettings, isExtensionRequest).pipe(\n switchMap((videoToken: string) => {\n this.handleGetAccessTokenSuccess(videoToken, id, accountId, allowEdit, isProject, null, isExtensionRequest);\n this.refreshVideoTokenSubjectMap[index].next(videoToken);\n return next.handle(this.addAuthenticationToken(request));\n }),\n catchError(err => {\n this.handleGetAccessTokenError(err, id, accountId, allowEdit, isProject);\n this.refreshVideoTokenSubjectMap[index].next(err);\n // eslint-disable-next-line deprecation/deprecation\n return throwError(err);\n }),\n finalize(() => {\n this.refreshVideoTokenInProgressMap[index] = false;\n })\n );\n } else {\n return this.refreshVideoTokenSubjectMap[`${index}`].pipe(\n filter(token => token !== null),\n take(1),\n switchMap(() => {\n return next.handle(this.addAuthenticationToken(request));\n })\n );\n }\n }\n\n private handleGetAccessTokenSuccess(\n token: string,\n id?: string,\n accountId?: string,\n allowEdit: boolean = false,\n isProject = false,\n permission?: AccountPermission,\n isExtensionRequest = false\n ) {\n this.trackService.track('auth.access_token.refresh_token.success', {\n category: EventCategory.AUTH,\n data: {\n id,\n accountId,\n allowEdit,\n isProject,\n permission\n }\n });\n this.auth.setAccessToken(token, id, accountId, allowEdit, isProject, permission, isExtensionRequest);\n }\n\n private handleGetAccessTokenError(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n error: any,\n id?: string,\n accountId?: string,\n allowEdit: boolean = false,\n isProject = false,\n permission?: AccountPermission\n ) {\n this.trackService.track('auth.access_token.refresh_token.failed', {\n category: EventCategory.AUTH,\n data: {\n error: {\n name: error?.name,\n status: error?.status,\n error: error?.error\n },\n id,\n accountId,\n allowEdit,\n isProject,\n permission\n }\n });\n }\n\n private getVideoId(request: HttpRequest): string {\n if (!this.enableEdgeExtensionTokens) {\n return this.isExtensionRequest(request) ? '' : getRequestVideoId(request);\n }\n\n return getRequestVideoId(request);\n }\n\n private isExtensionRequest(request: HttpRequest): boolean {\n if (!this.apiService.edgeExtensionApiUrl?.length) {\n return false;\n }\n\n return request.url.includes(this.apiService.edgeExtensionApiUrl);\n }\n}\n","import { Injectable, Optional } from '@angular/core';\n\nimport { throwError, Observable } from 'rxjs';\nimport { catchError, map, switchMap, take } from 'rxjs/operators';\n\nimport { EventCategory, TrackService } from '@common/modules/core/services/track';\n\nimport { AuthService } from '../services/auth.service';\nimport { LoggerService } from '../../core/services/logger/logger.service';\nimport { CoreStoreService } from '../../../../apps/web/src/core/services/core-store.service';\n\n@Injectable()\nexport class AuthSessionService {\n constructor(\n public auth: AuthService,\n private logger: LoggerService,\n @Optional() private coreStore: CoreStoreService,\n private trackService: TrackService\n ) {\n this.logger.log('[AuthSessionService] init');\n }\n\n public tryRefreshSession(): Observable {\n return this.auth.refreshSession().pipe(\n switchMap(() => {\n return this.auth.checkIfUserAuthenticated().pipe(\n take(1),\n map((isUserAuthenticated: boolean) => {\n if (isUserAuthenticated) {\n this.trackService.track('auth_session_service.error.refresh_session_fallback.refresh_success', {\n category: EventCategory.AUTH\n });\n this.logger.log('[AuthSessionService] refresh cookie success');\n this.auth.login();\n return true;\n } else {\n this.trackService.track('auth_session_service.error.refresh_session_fallback.refresh_failed', {\n category: EventCategory.AUTH\n });\n this.logger.log('[AuthSessionService] refresh cookie failed user not authenticated');\n this.auth.logout();\n this.coreStore?.sessionExpired();\n return false;\n }\n })\n );\n }),\n catchError(err => {\n this.trackService.track('auth_session_service.error.refresh_session_fallback.refresh_failed', {\n category: EventCategory.AUTH\n });\n this.logger.log('[AuthSessionService] refresh cookie error');\n this.auth.logout();\n this.coreStore?.sessionExpired();\n // eslint-disable-next-line deprecation/deprecation\n return throwError(err);\n })\n );\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Observer, Observable, BehaviorSubject, Subject } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { TokenScope, IAmILoggedInResult, IArmAccountExtensionAccessTokenPayload } from '@common/modules/api/interfaces';\nimport { SamplesAccountId } from '@common/modules/core/interfaces';\nimport { AccountPermission } from '@common/modules/shared/interfaces';\nimport { FeatureSwitchService } from '@common/modules/core/services/feature-switch/feature-switch.service';\nimport { guid } from '@common/modules/utils/string';\n\nimport { ApiService } from '../../api/services/api.service';\nimport { UrlService } from '../../core/services/url/url.service';\nimport { CacheService } from './cache.service';\nimport { ConfigService } from '../../core/services/config/config.service';\nimport { FeatureSwitch, IConfiguration } from '../../core/services/interfaces';\nimport { LoggerService } from '../../core/services/logger/logger.service';\nimport { environment } from '../../../../environments/environment';\nimport { localhostClientID, appClientID, IAuthenticatedUser, AccountResourceType, UserType } from '../interfaces';\nimport { AuthenticationContext } from '../authenticationContext';\nimport { LocalStorageService } from '../../shared/services/local-storage.service';\nimport { EventCategory, TrackService } from '../../core/services/track';\nimport { allowEditToPermission, extractPermissionFromAccessToken, getTokenScope, isJwtTokenExpired } from '../utils/auth.utils';\n\n@Injectable()\nexport class AuthService {\n public AuthenticationContext: AuthenticationContext;\n public accountAccessTokenPermission$ = new Subject();\n public videoAccessTokenPermission$ = new Subject();\n private lastAccountIdSavedPermission: string;\n private providers = {\n MicrosoftCorpAad: 'OpenIdConnect',\n Google: 'Google',\n Microsoft: 'Microsoft',\n LinkedIn: 'LinkedIn',\n Facebook: 'Facebook',\n OpenIdConnect: 'OpenIdConnect'\n };\n private config: IConfiguration;\n private accountIds: string[] = [];\n private readonly authenticationConfig = {\n clientId: environment?.localhost ? localhostClientID : appClientID,\n localLoginUrl: '/Account/SignIn',\n instance: environment?.localhost ? 'http://localhost:4100' : window.location.origin,\n loadFrameTimeout: 6000,\n endpoints: [{ 'https://localhost:44303/': 'https://localhost:44303/' }, { 'http://localhost:4100/': 'http://localhost:4100/' }],\n tenantId: 'common'\n };\n\n private isUserAuthenticatedSubject: BehaviorSubject = new BehaviorSubject(false);\n\n private authUser: IAuthenticatedUser = {\n upn: '',\n name: '',\n id: '',\n type: '',\n isAdmin: false,\n isSuspended: false\n };\n\n private userAccount: Microsoft.VideoIndexer.Contracts.AccountContractSlim;\n private edgeExtensionId: string;\n\n public set AccountIds(accountIds: string[]) {\n this.accountIds = accountIds;\n }\n\n public set UserAccount(account: Microsoft.VideoIndexer.Contracts.AccountContractSlim) {\n this.userAccount = account;\n }\n\n public set SelectedEdgeExtensionId(id: string) {\n this.edgeExtensionId = id;\n }\n\n public get SelectedEdgeExtensionId() {\n return this.edgeExtensionId;\n }\n\n public get enableEdgeExtensionTokens() {\n return this.featureSwitchService.featureSwitch(FeatureSwitch.EdgeTokens);\n }\n\n public get defaultAccountId() {\n return this.accountIds?.length > 0 ? this.accountIds[0] : guid(0);\n }\n\n constructor(\n private logger: LoggerService,\n private apiService: ApiService,\n private cacheService: CacheService,\n private urlUtility: UrlService,\n private configService: ConfigService,\n private localStorageService: LocalStorageService,\n private trackService: TrackService,\n private featureSwitchService: FeatureSwitchService\n ) {\n this.init();\n }\n\n public get isSuspended(): boolean {\n return this.authenticatedUser?.isSuspended;\n }\n\n public get isAdmin(): boolean {\n return this.authenticatedUser?.isSuspended;\n }\n\n public get authenticatedUserId() {\n return this.authenticatedUser?.id;\n }\n\n public get authenticatedUpn(): string {\n return this.authenticatedUser?.upn;\n }\n\n public get authenticatedUserName() {\n return this.authenticatedUser?.name;\n }\n\n public get authenticatedUserType() {\n return this.authenticatedUser?.type;\n }\n\n public get authenticatedUser() {\n return this.authUser;\n }\n\n public get isArmAccount() {\n return this.userAccount?.resourceType === AccountResourceType.ARM;\n }\n\n public set authenticatedUser(user: IAuthenticatedUser) {\n this.authUser = user;\n this.initAuthenticationContext();\n this.saveLastProvider();\n this.login();\n }\n\n public login() {\n this.isUserAuthenticatedSubject.next(true);\n }\n\n public logout() {\n this.isUserAuthenticatedSubject.next(false);\n\n this.cacheService.removeAllAccessTokens();\n }\n\n public isLocal(): boolean {\n return this.config?.local;\n }\n\n public isAuthenticated(): boolean {\n return this.isUserAuthenticatedSubject.value;\n }\n\n public clearCache(): void {\n this.cacheService.removeAll();\n }\n\n public clearSession() {\n this.logout();\n }\n\n public getAccessTokenApi(\n id?: string,\n accountId?: string,\n allowEdit: boolean = false,\n isProject = false,\n permission?: AccountPermission,\n reqSettings?: object,\n isExtensionRequest = false,\n extendExtensionToken = false,\n extensionTokenLifetimeInSeconds?: number\n ): Observable {\n // If embed mode take url token (if url token is empty - may be public)\n if (this.isEmbedMode()) {\n return this.getAccessTokenFromUrlAsync(id, accountId, allowEdit);\n }\n\n const scope = getTokenScope(id, accountId, isProject);\n // User Token should remain vi token, also samples account should use classic tokens\n if (this.isArmAccount && scope !== TokenScope.USER && accountId !== SamplesAccountId) {\n return this.getArmAccessTokenApi(\n id,\n accountId,\n allowEdit,\n isProject,\n permission,\n reqSettings,\n isExtensionRequest,\n extendExtensionToken,\n extensionTokenLifetimeInSeconds\n );\n } else {\n return this.getClassicAccessTokenApi(id, accountId, allowEdit, isProject, permission, reqSettings);\n }\n }\n\n public getAccessTokenFromUrlAsync(videoId: string, accountId: string, allowEdit = false, isProject = false) {\n return new Observable((obs: Observer) => {\n const urlToken = this.tryGetAccessTokenFromUrl();\n this.setAccessToken(urlToken, videoId, accountId, allowEdit, isProject);\n obs.next(urlToken);\n });\n }\n\n public isCorp(): boolean {\n return ['Microsoft', 'Google', 'Facebook'].indexOf(this.authenticatedUserType) === -1;\n }\n\n public isAad(): boolean {\n return this.authenticatedUserType === UserType.MicrosoftCorpAad;\n }\n\n public user(): object {\n return {\n Email: this.authenticatedUpn,\n Id: this.authenticatedUserId,\n FullName: this.authenticatedUserName,\n Type: this.authenticatedUserType\n };\n }\n\n public setAccessToken(\n newToken: string,\n id?: string,\n accountId?: string,\n allowEdit: boolean = false,\n isProject = false,\n permission?: AccountPermission,\n isExtensionRequest = false\n ): void {\n const cacheKey = this.getAccessTokenCacheKey(id, accountId, allowEdit, isProject, permission, isExtensionRequest);\n return this.cacheService.set(cacheKey, newToken);\n }\n\n public tryGetAccessTokenFromUrl(): string {\n return this.urlUtility.getQueryParam('accessToken') || '';\n }\n\n public getPermissionFromURLToken() {\n return AccountPermission.CONTRIBUTOR;\n }\n\n public getAccessToken(\n id?: string,\n accountId?: string,\n allowEdit: boolean = false,\n isProject = false,\n permission?: AccountPermission,\n isExtensionRequest = false\n ): string {\n const urlToken = this.tryGetAccessTokenFromUrl();\n // If embed mode take url token (if url token is empty - may be public)\n if (this.isEmbedMode()) {\n return urlToken;\n } else {\n const allowEditParam = !allowEdit ? '' : `?allowEdit=true`;\n const cacheKey = this.getAccessTokenCacheKey(id, accountId, allowEdit, isProject, permission, isExtensionRequest);\n\n if (!this.isAuthenticated() && !this.isEmbedMode() && !(cacheKey as string).includes('/users/me/')) {\n return '';\n }\n\n const cacheValue = this.cacheService.get(cacheKey);\n\n if (typeof cacheValue === 'string' && cacheValue) {\n if (!isJwtTokenExpired(cacheValue)) {\n if (accountId && !id && accountId !== this.lastAccountIdSavedPermission && accountId !== SamplesAccountId) {\n this.setAccountAccessTokenPermission(cacheValue);\n this.lastAccountIdSavedPermission = accountId;\n } else if (accountId && id) {\n this.setVideoAccessTokenPermission(cacheValue);\n }\n return cacheValue;\n }\n }\n\n if (\n // If it is not a 'me' request\n (!(cacheKey as string).includes('/users/me') && !allowEdit && cacheValue === '') ||\n // if account isn't in user accounts list - for public videos\n (accountId &&\n accountId !== SamplesAccountId &&\n this.accountIds.length &&\n !this.accountIds.includes(accountId) &&\n this.userAccount?.id !== accountId)\n ) {\n return '';\n }\n\n return `refresh${allowEditParam}`;\n }\n }\n\n public removeAccessToken(id?: string, accountId?: string, allowEdit: boolean = false, isProject = false, permission?: AccountPermission) {\n const cacheKey = this.getAccessTokenCacheKey(id, accountId, allowEdit, isProject, permission);\n this.cacheService.removeItem(cacheKey);\n }\n\n public getAccessTokenCacheKey(\n id?: string,\n accountId?: string,\n allowEdit: boolean = false,\n isProject = false,\n permission?: AccountPermission,\n isExtensionRequest = false\n ) {\n if (\n this.userAccount?.resourceType === AccountResourceType.ARM &&\n accountId &&\n accountId !== SamplesAccountId &&\n this.accountIds.includes(accountId)\n ) {\n return this.getArmAccessTokenCacheKey(\n id,\n this.userAccount.name,\n getTokenScope(id, accountId, isProject),\n permission ?? allowEditToPermission(allowEdit),\n isExtensionRequest\n );\n } else {\n return this.getClassicAccessTokenCacheKey(id, accountId, allowEdit, isProject, permission);\n }\n }\n\n public getClassicAccessTokenCacheKey(\n id?: string,\n accountId?: string,\n allowEdit: boolean = false,\n isProject = false,\n permission?: AccountPermission\n ) {\n const allowEditParam = !allowEdit ? '' : `?allowEdit=true`;\n\n switch (getTokenScope(id, accountId, isProject)) {\n case TokenScope.USER: {\n return `${this.apiService.getAuthApiBase(true)}/users/me/accessToken${allowEditParam}`;\n }\n case TokenScope.ACCOUNT: {\n const permissionValue = permission || allowEditToPermission(allowEdit);\n const permissionParam = permissionValue ? `?permission=${permissionValue}` : '';\n return `${this.apiService.getAuthApiBase(true)}/accounts/${accountId}/accessToken${permissionParam}`;\n }\n case TokenScope.VIDEO: {\n return `${this.apiService.getAuthApiBase(true)}/accounts/${accountId}/videos/${id}/accessToken${allowEditParam}`;\n }\n case TokenScope.PROJECT: {\n return `${this.apiService.getAuthApiBase(true)}/accounts/${accountId}/projects/${id}/accessToken${allowEditParam}`;\n }\n default: {\n break;\n }\n }\n }\n\n public getArmAccessTokenCacheKey(id: string, accountId: string, scope: TokenScope, permission: AccountPermission, isExtensionRequest = false) {\n switch (scope) {\n case TokenScope.ACCOUNT: {\n return `${this.getArmAccessTokenPrefix(accountId, isExtensionRequest)}/accessToken?permission=${permission}&scope=${scope}`;\n }\n case TokenScope.VIDEO: {\n return `${this.getArmAccessTokenPrefix(accountId, isExtensionRequest)}/videos/${id}/accessToken?permission=${permission}&scope=${scope}`;\n }\n case TokenScope.PROJECT: {\n return `${this.getArmAccessTokenPrefix(accountId, isExtensionRequest)}/projects/${id}/accessToken?permission=${permission}&scope=${scope}`;\n }\n default: {\n break;\n }\n }\n return `${this.getArmAccessTokenPrefix(accountId, isExtensionRequest)}/accessToken?permission=${permission}&scope=${scope}`;\n }\n\n public getUserAccessTokenOrEmptyString(videoId?: string, accountId?: string, allowEdit: boolean = false) {\n let accessToken = '';\n if (videoId && accountId) {\n accessToken = this.getAccessToken(videoId, accountId, allowEdit);\n if (accessToken.includes('refresh')) {\n accessToken = this.getAccessToken(videoId, accountId, !allowEdit);\n }\n } else if (accountId) {\n accessToken = this.getAccessToken(null, accountId, allowEdit);\n if (accessToken.includes('refresh')) {\n accessToken = this.getAccessToken(null, accountId, !allowEdit);\n }\n } else {\n accessToken = this.getAccessToken(null, null, allowEdit);\n if (accessToken.includes('refresh')) {\n accessToken = this.getAccessToken(null, null, !allowEdit);\n }\n }\n\n return !accessToken.includes('refresh') ? accessToken : '';\n }\n\n public getAccountsTokensAsync(allowEdit = true) {\n return this.apiService.Account.getAccounts({ refresh: true }, allowEdit);\n }\n\n public tryGetLastProvider(): string {\n const lastProvider = this.localStorageService.getItem('lastProvider');\n\n if (!this.isAuthenticated() || !lastProvider) {\n return '';\n }\n\n return this.providers[lastProvider];\n }\n\n public saveLastProvider(): void {\n if (this.isAuthenticated() && this.authenticatedUserType) {\n this.localStorageService.setItem('lastProvider', this.authenticatedUserType);\n }\n }\n\n public refreshSession(): Observable {\n this.logger.log('[AuthService] try refresh session');\n return new Observable((obs: Observer) => {\n const lastProvider = this.tryGetLastProvider() || this.providers[this.authenticatedUserType];\n this.logger.log('[AuthService] TryRefreshSession acquireTokenSilent');\n if (!lastProvider) {\n this.logger.log('[AuthService] TryRefreshSession no lastProvider');\n this.trackService.track('auth.session_refresh.no_provider');\n this.logout();\n obs.error('no provider');\n } else {\n this.AuthenticationContext.acquireToken(lastProvider, (msg, token) => {\n this.AuthenticationContext.removeAdalFrame('adalRenewFrame' + lastProvider);\n this.AuthenticationContext = new AuthenticationContext(this.authenticationConfig);\n this.trackService.track('auth.session_refresh.success', { provider: lastProvider });\n obs.next(lastProvider);\n });\n }\n });\n }\n\n public isEmbedMode() {\n const path = window.location.pathname;\n const regex = new RegExp(/embed/i);\n\n return regex.test(path);\n }\n\n public isRouteAuthenticated(): boolean {\n // TO-DO: Add user info check.\n // Can add permissions as part of the token\n // At the moment it will stay static. Editor and Customization will be defaultly disable\n return false;\n }\n\n public isUserAuthenticated(): Observable {\n return this.isUserAuthenticatedSubject?.asObservable();\n }\n\n public checkIfUserAuthenticated(): Observable {\n return new Observable(obs => {\n // eslint-disable-next-line deprecation/deprecation\n this.apiService.User.amILoggedIn().subscribe(\n (res: IAmILoggedInResult) => {\n this.trackService.track('auth.check_user_authenticated.am_i_logged_in.success', {\n isUserLoggedIn: !!res?.result\n });\n this.isUserAuthenticatedSubject.next(!!res?.result);\n obs.next(!!res?.result);\n },\n error => {\n this.trackService.track('auth.check_user_authenticated.am_i_logged_in.failed', {\n category: EventCategory.AUTH\n });\n obs.error(error);\n }\n );\n });\n }\n\n public get enableRestrictedViewer() {\n return this.featureSwitchService.featureSwitch(FeatureSwitch.RestrictedViewer);\n }\n\n private getArmAccessTokenPrefix(accountId: string, isExtensionRequest = false) {\n if (this.edgeExtensionId && isExtensionRequest) {\n return this.edgeExtensionId;\n } else {\n return `${this.apiService.getAuthApiBase(true)}/accounts/${accountId}`;\n }\n }\n\n private setAccountAccessTokenPermission(accessToken: string) {\n const permission = this.featureSwitchService.featureSwitch(FeatureSwitch.RestrictedViewer)\n ? extractPermissionFromAccessToken(accessToken)\n : AccountPermission.CONTRIBUTOR;\n this.accountAccessTokenPermission$.next(permission);\n }\n\n private setVideoAccessTokenPermission(accessToken: string) {\n const permission = this.featureSwitchService.featureSwitch(FeatureSwitch.RestrictedViewer)\n ? extractPermissionFromAccessToken(accessToken)\n : AccountPermission.CONTRIBUTOR;\n this.videoAccessTokenPermission$.next(permission);\n }\n\n private getArmAccessTokenApi(\n id?: string,\n accountId?: string,\n allowEdit: boolean = false,\n isProject = false,\n permission?: AccountPermission,\n reqSettings?: object,\n isExtensionRequest = false,\n isExtendedExtension = false,\n extensionTokenLifetimeInSeconds?: number\n ): Observable {\n if (this.enableEdgeExtensionTokens && isExtensionRequest && this.edgeExtensionId) {\n return this.getArmExtensionAccessTokenApi(\n id,\n accountId,\n allowEdit,\n isProject,\n permission,\n reqSettings,\n isExtendedExtension,\n extensionTokenLifetimeInSeconds\n );\n }\n\n const scope = getTokenScope(id, accountId, isProject);\n // User Token should remain vi token\n const permissions = permission ?? allowEditToPermission(allowEdit);\n const payload = { permissionType: permissions, scope: scope };\n switch (scope) {\n case TokenScope.ACCOUNT: {\n return this.apiService.ArmAccount.getArmAccountAccessToken(\n this.userAccount?.subscriptionId,\n this.userAccount?.resourceGroupName,\n this.userAccount?.name,\n payload,\n reqSettings\n ).pipe(map(res => res.accessToken));\n }\n case TokenScope.VIDEO: {\n return this.apiService.ArmAccount.getArmVideoAccessToken(\n this.userAccount?.subscriptionId,\n this.userAccount?.resourceGroupName,\n this.userAccount?.name,\n id,\n payload,\n reqSettings\n ).pipe(map(res => res.accessToken));\n }\n case TokenScope.PROJECT: {\n return this.apiService.ArmAccount.getArmProjectAccessToken(\n this.userAccount?.subscriptionId,\n this.userAccount?.resourceGroupName,\n this.userAccount?.name,\n id,\n payload,\n reqSettings\n ).pipe(map(res => res.accessToken));\n }\n default: {\n break;\n }\n }\n }\n\n private getArmExtensionAccessTokenApi(\n id?: string,\n accountId?: string,\n allowEdit: boolean = false,\n isProject = false,\n permission?: AccountPermission,\n reqSettings?: object,\n isExtendedExtension = false,\n extensionTokenLifetimeInSeconds: number = 12 * 60 * 60 // 12 hours in seconds\n ): Observable {\n const scope = getTokenScope(id, accountId, isProject);\n const expirationTime = isExtendedExtension ? extensionTokenLifetimeInSeconds : undefined;\n // User Token should remain vi token\n const permissions = permission ?? allowEditToPermission(allowEdit);\n const payload = this.addExtensionIdPayloadIfNeeded({ permissionType: permissions, scope: scope, tokenLifetimeInSeconds: expirationTime });\n switch (scope) {\n case TokenScope.ACCOUNT: {\n return this.apiService.ArmAccount.getArmExtensionAccountAccessToken(\n this.userAccount?.subscriptionId,\n this.userAccount?.resourceGroupName,\n this.userAccount?.name,\n payload,\n reqSettings\n ).pipe(map(res => res.accessToken));\n }\n case TokenScope.VIDEO: {\n return this.apiService.ArmAccount.getArmExtensionVideoAccessToken(\n this.userAccount?.subscriptionId,\n this.userAccount?.resourceGroupName,\n this.userAccount?.name,\n id,\n payload,\n reqSettings\n ).pipe(map(res => res.accessToken));\n }\n default: {\n break;\n }\n }\n }\n\n private addExtensionIdPayloadIfNeeded(payload: IArmAccountExtensionAccessTokenPayload) {\n if (this.edgeExtensionId) {\n payload.extensionId = this.edgeExtensionId;\n }\n\n return payload;\n }\n\n private getClassicAccessTokenApi(\n id?: string,\n accountId?: string,\n allowEdit: boolean = false,\n isProject = false,\n permission?: AccountPermission,\n reqSettings?: object\n ): Observable {\n const scope = getTokenScope(id, accountId, isProject);\n switch (scope) {\n case TokenScope.USER: {\n return this.apiService.User.getUserAccessToken(allowEdit);\n }\n case TokenScope.ACCOUNT: {\n return this.apiService.Account.getAccountAccessToken(accountId, allowEdit, permission);\n }\n case TokenScope.VIDEO: {\n return this.apiService.Account.Video.getVideoAccessToken(accountId, id, allowEdit, reqSettings);\n }\n case TokenScope.PROJECT: {\n return this.apiService.Account.Project.getProjectAccessToken(accountId, id, allowEdit);\n }\n default: {\n break;\n }\n }\n }\n\n private init() {\n this.logger.log('[AuthService] init');\n this.config = this.configService.Config;\n\n this.saveLastProvider();\n this.initAuthenticationContext();\n }\n\n private initAuthenticationContext() {\n try {\n if (this.authUser.tenantId) {\n this.authenticationConfig.tenantId = this.authUser.tenantId;\n }\n this.AuthenticationContext = new AuthenticationContext(this.authenticationConfig);\n\n this.logger.log('[AuthService] AuthenticationContext created');\n this.logger.log(this.AuthenticationContext);\n } catch (e) {\n this.logger.log('[AuthService] AuthenticationContext create error');\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { SessionStorageService } from '../../shared/services/session-storage.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CacheService {\n constructor(private sessionStorageService: SessionStorageService) {}\n\n public get(key: string) {\n return this.sessionStorageService.getItem(key);\n }\n\n public set(key, val) {\n this.sessionStorageService.setItem(key, val);\n }\n\n public removeAll() {\n this.sessionStorageService.clear();\n }\n\n public removeAllAccessTokens() {\n for (const element in this.sessionStorageService.storage) {\n if (element.includes('/accessToken')) {\n this.sessionStorageService.removeItem(element);\n }\n }\n }\n\n public removeUserAccessTokens() {\n for (const element in this.sessionStorageService.storage) {\n if (element.includes('/users/me/accessToken')) {\n this.sessionStorageService.removeItem(element);\n }\n }\n }\n\n public removeItem(key: string) {\n this.sessionStorageService.removeItem(key);\n }\n}\n","import jwt_decode, { JwtPayload } from 'jwt-decode';\n\nimport { TokenScope } from '@common/modules/api/interfaces';\nimport { AccountAccessTokenClaims, AccountPermission } from '@common/modules/shared/interfaces';\n\nexport function isJwtTokenExpired(token: string): boolean {\n const decoded = jwt_decode(token) as JwtPayload;\n if (decoded.exp === undefined) {\n return null;\n }\n\n const date = new Date(0);\n date.setUTCSeconds(decoded.exp);\n\n return new Date().valueOf() >= date?.valueOf() || false;\n}\n\nexport function allowEditToPermission(allowEdit: boolean) {\n return allowEdit ? AccountPermission.CONTRIBUTOR : AccountPermission.READER;\n}\n\nexport function getTokenScope(id?: string, accountId?: string, isProject = false): TokenScope {\n if (id && accountId) {\n if (isProject) {\n return TokenScope.PROJECT;\n }\n return TokenScope.VIDEO;\n } else if (accountId) {\n return TokenScope.ACCOUNT;\n } else {\n return TokenScope.USER;\n }\n}\n\n/**\n *\n * @param accessToken string\n * @returns object\n *\n * Extracts claims from access token by:\n * 1. splitting access token by '.' to get the the second part of the JWT which is the claims\n * 2. decoding the base64 string to get the stringified JSON object\n * 3. parsing the stringified to it's JSON format\n *\n */\nfunction extractClaimsFromAccessToken(accessToken: string): Partial {\n const claims = accessToken.split('.')[1];\n\n return JSON.parse(atob(claims));\n}\n\nexport function extractPermissionFromAccessToken(accessToken: string) {\n const claims = extractClaimsFromAccessToken(accessToken);\n\n return claims?.Permission;\n}\n","import { NgModule, Optional, SkipSelf, ErrorHandler, APP_INITIALIZER } from '@angular/core';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\n\nimport { ToastrModule } from 'ngx-toastr';\n\nimport { EnsureModuleLoadedOnceGuard } from './ensureModuleLoadedOnceGuard';\nimport { ConfigService } from './services/config/config.service';\nimport { FeatureSwitchService } from './services/feature-switch/feature-switch.service';\nimport { LoggerService } from './services/logger/logger.service';\nimport { MonitoringErrorHandlerService } from './services/monitoring-error-handler/monitoring-error-handler.service';\nimport { PageTimingService } from './services/page-timing/service/page-timing.service';\nimport { ThemesService } from './services/themes/themes.service';\nimport { ToastService } from './services/toast/toast.service';\nimport { TrackService } from './services/track';\nimport { VIMainSidebarService } from './services/vi-main-sidebar/vi-sidebar.service';\nimport { WINDOW } from './services/window.token';\nimport { ZoneWrapperService } from './services/zone-wrapper/zone-wrapper.service';\nimport { environment } from '../../../environments/environment';\nimport { AccessibilityModule } from '../accessibility/accessibility.module';\nimport { ApiModule } from '../api/api.module';\nimport { TranslateHelperService } from '../translation/services/translate-helper.service';\nimport { TranslationModule } from '../translation/translation.module';\nimport { CacheStorageService } from './services/cache-storage/cache-storage.service';\nimport { SanitizerService } from './services/sanitizer/sanitizer.service';\n\n// Init translate before loading the app\nexport function appInitializerFactory(translate: TranslateHelperService) {\n return () => translate.init();\n}\n\n@NgModule({\n imports: [ToastrModule.forRoot(), BrowserAnimationsModule],\n exports: [TranslationModule, ApiModule, AccessibilityModule],\n providers: [\n {\n provide: APP_INITIALIZER,\n useFactory: appInitializerFactory,\n deps: [TranslateHelperService],\n multi: true\n },\n {\n provide: WINDOW,\n useValue: window\n },\n LoggerService,\n SanitizerService,\n TrackService,\n ToastService,\n { provide: 'ENABLE_LOGGER', useValue: environment.logger },\n ConfigService,\n {\n provide: ErrorHandler,\n useClass: MonitoringErrorHandlerService\n },\n FeatureSwitchService,\n VIMainSidebarService,\n ThemesService,\n ZoneWrapperService,\n PageTimingService,\n CacheStorageService\n ],\n declarations: []\n})\nexport class CommonCoreModule extends EnsureModuleLoadedOnceGuard {\n // Ensure that CoreModule is only loaded into AppModule\n\n // Looks for the module in the parent injector to see if it's already been loaded (only want it loaded once)\n constructor(@Optional() @SkipSelf() parentModule: CommonCoreModule, private logger: LoggerService) {\n super(parentModule);\n this.logger.log('[CommonCoreModule] init');\n }\n}\n","export class EnsureModuleLoadedOnceGuard {\n constructor(targetModule) {\n if (targetModule) {\n throw new Error(`${targetModule.constructor.name} has already been loaded. Import this module in the AppModule only.`);\n }\n }\n}\n","export const SamplesAccountId = '00000000-0000-0000-0000-000000000000';\n\nexport enum PrivacyMode {\n PUBLIC = 'Public',\n PRIVATE = 'Private'\n}\n","import { Injectable } from '@angular/core';\n\nimport { BehaviorSubject } from 'rxjs';\n\nimport { NavigationState } from '../interfaces';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AppNavigationService {\n public createAccountSubject: BehaviorSubject;\n constructor() {\n this.createAccountSubject = new BehaviorSubject(null);\n }\n}\n","import { Inject, Injectable } from '@angular/core';\n\nimport { CoreStoreService } from 'src/apps/web/src/core/services/core-store.service';\n\nimport { TrackService } from '../track';\nimport { WINDOW } from '../window.token';\n\nexport interface ICacheResponse {\n json?: T;\n date?: string;\n}\n\n@Injectable()\nexport class CacheStorageService {\n // cachable resources\n private resources_ = {\n ArmAccounts: 'ArmAccounts',\n EdgeExtensions: 'EdgeExtensions'\n };\n\n private cacheName_: string;\n private cacheMap: { [key: string]: Cache } = {};\n\n constructor(@Inject(WINDOW) private window: Window, private coreStoreService: CoreStoreService, private trackService: TrackService) {\n this.coreStoreService.userDetails$.subscribe(userDetails => {\n if (userDetails?.id) {\n const { id, tenantId } = userDetails;\n // to maintain uniqueness, cache name is based on user and tenant id\n this.cacheName_ = `user-${id}-tenant-${tenantId}`;\n }\n });\n }\n\n public get resources() {\n return this.resources_;\n }\n\n public get cacheName() {\n return this.cacheName_;\n }\n\n /**\n * match cached content with key\n * @param key cached content key\n * @param options\n * @returns\n */\n public async match(key: string, options: { maxAge: number }): Promise> {\n try {\n const cache = await this.open();\n const response = await cache.match(key);\n\n // return empty object if cache is empty\n if (!response) {\n return {};\n }\n\n const date = response.headers?.get('Date');\n const dateExpired = date && this.isDateExpired(new Date(date), options.maxAge);\n\n // return empty object if cache is stale\n if (!dateExpired) {\n return {};\n }\n\n const json = await response.json();\n\n return {\n json,\n date\n };\n } catch (error) {\n this.trackService.trackError(error);\n\n return {};\n }\n }\n\n /**\n * update cache with new data and set the date header of the response for freshness check\n * @param key cached content key\n * @param data content to be cached\n * @returns cached content\n */\n public async put(key: string, data: unknown) {\n try {\n const cache = await this.open();\n\n /**\n * update cache with new data and set the date of the response\n */\n await cache.put(\n key,\n new Response(JSON.stringify(data), {\n headers: {\n 'Content-Type': 'application/json',\n /**\n * set date header to the current date to indicate when the cache was last updated\n */\n Date: new Date().toUTCString()\n }\n })\n );\n } catch (error) {\n this.trackService.trackError(error);\n }\n }\n\n private open = async () => {\n // if cache is not found, open a new cache and store for fast access\n if (!this.cacheMap[this.cacheName_]) {\n const cache = await this.window.caches.open(this.cacheName_);\n this.cacheMap[this.cacheName_] = cache;\n }\n\n return this.cacheMap[this.cacheName_];\n };\n\n private isDateExpired(date: Date, threshold: number) {\n return new Date().getTime() - date.getTime() <= threshold;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { EnvironmentNames } from '@common/modules/shared/environments';\n\nimport { IConfiguration, IFeatureSwitches } from '../interfaces';\nimport { environment } from '../../../../../environments/environment';\nimport { UrlService } from '../../../core/services/url/url.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ConfigService {\n private config: IConfiguration = {\n codeLocation: '/',\n clientVersion: '0.0.0'\n };\n\n constructor(private urlUtility: UrlService) {\n this.loadConfig();\n }\n\n public loadConfig(): void {\n // Get filename based on location or host.\n const hostn = location.hostname.split('.')[0];\n\n // Get env type config\n const envTypeConfig = environment;\n\n // Get server config\n const nodeConfig = window.viewContext;\n\n this.config = Object.assign({}, envTypeConfig, nodeConfig);\n }\n\n public get Config(): IConfiguration {\n return this.config;\n }\n\n public get cdnDomain(): string {\n return (\n this.config.codeLocation\n // remove protocol\n ?.replace(/https:\\/\\//, '')\n // remove relative path (/spa)\n ?.replace(/\\/[^\\\\]+$/, '')\n );\n }\n\n public get featureSwitches(): IFeatureSwitches {\n return this.config?.featureSwitches || {};\n }\n\n public isDebugEnabled(): boolean {\n return this.config.debug;\n }\n\n public getCodeVersion(): string {\n return this.config.clientVersion;\n }\n\n public getCodeLocation(): string {\n return this.config.codeLocation && this.config.clientVersion\n ? `${this.config.codeLocation}/${environment?.localhost ? '' : `${window.viewContext.clientVersion}/`}`\n : '/';\n }\n\n public getLocationQueryParam(): string {\n // Select for location param only if it's embed\n if (!this.isEmbedMode()) {\n return '';\n }\n const locationParam = this.urlUtility.getQueryParam('location');\n return locationParam ? locationParam.toLowerCase() : '';\n }\n\n public isEmbedMode() {\n const path = window.location.pathname;\n const regex = new RegExp(/embed/i);\n\n return regex.test(path);\n }\n\n public isFairFaxEnv(): boolean {\n return this.Config?.environmentName?.includes('fairfax') || false;\n }\n\n public isEnvType(environmentName: EnvironmentNames): boolean {\n return this.Config?.environmentName?.includes(environmentName) || false;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpErrorResponse } from '@angular/common/http';\n\nimport { IAPIError } from '../toast/interfaces';\nimport { APIErrors, Errors } from '../toast/errors';\nimport { ToastService } from '../toast/toast.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ErrorHandlerService {\n public resources = {\n APIServiceServerError: ''\n };\n\n constructor(private toastService: ToastService) {}\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public handler(err: HttpErrorResponse | any, errMessage?: string) {\n if (!err) {\n return;\n }\n\n // eslint-disable-next-line one-var\n let statusCode = 0,\n errorType = '',\n message = '';\n\n if (typeof err === 'number') {\n message = this.resources.APIServiceServerError;\n statusCode = err;\n } else {\n // Get server message\n if (err.error) {\n if (typeof err.error === 'string') {\n message = err.error;\n } else if (err.error.Message) {\n // Res.data is an object that has Message member\n message = err.error.Message;\n }\n }\n message = message ? message : typeof err === 'string' ? err : this.resources.APIServiceServerError;\n // eslint-disable-next-line deprecation/deprecation\n statusCode = status || err.status;\n errorType = err.error ? err.error.ErrorType : err.ErrorType;\n }\n\n const errorMsg = errMessage ? errMessage : Errors[errorType] && Errors[errorType].msg !== '' ? Errors[errorType].msg : message;\n const serverError: IAPIError = err.error;\n switch (statusCode) {\n case 401:\n switch (serverError.ErrorType) {\n case APIErrors.ACCESS_TOKEN_VALIDATION_FAILED:\n this.toastService.error(err);\n break;\n default:\n }\n break;\n case 400:\n if (errorType && Errors[errorType]) {\n this.toastService.error(err, errorMsg, false, false, false, null, 'ErrorTypes');\n }\n break;\n case 403:\n break;\n case 500:\n break;\n case 503:\n break;\n case 504:\n break;\n case 404:\n break;\n case -1:\n default:\n this.toastService.error(err, message, false);\n }\n }\n\n static extractTraceIdFromMessage(message: string): string {\n if (!message) {\n return null;\n }\n\n const traceIdPattern = /Trace id: '([a-f0-9\\-]+)'/;\n const match = message.match(traceIdPattern);\n let traceId = null;\n if (match && match[1]) {\n traceId = match[1];\n }\n\n return traceId;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { cloneDeep } from 'lodash-es';\n\nimport { FeatureSwitch, IFeatureSwitches } from '../interfaces';\nimport { UrlService } from '../../../core/services/url/url.service';\nimport { ConfigService } from '../config/config.service';\nimport { LoggerService } from '../logger/logger.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FeatureSwitchService {\n private featureSwitches: IFeatureSwitches;\n private readonly featureToggleQueryParamPrefix = 'feature';\n\n constructor(private urlUtility: UrlService, private configService: ConfigService, private logger: LoggerService) {\n this.loadFeatureSwitches();\n }\n\n public featureSwitch(name: string) {\n return !!this.featureSwitches[name];\n }\n\n // if we want to enable query param switch need to call this function in the ctor\n public checkFeatureSwitchesQueryParams() {\n if (!this.featureSwitches) {\n this.featureSwitches = {};\n }\n const featureSwitchesKeys = Object.values(FeatureSwitch);\n for (const key of featureSwitchesKeys) {\n const featureSwitchParam = this.urlUtility.getQueryParam(`${this.featureToggleQueryParamPrefix}.${key}`);\n if (featureSwitchParam) {\n this.featureSwitches[key] = featureSwitchParam === 'true';\n }\n }\n }\n\n private loadFeatureSwitches(): void {\n this.featureSwitches = cloneDeep(this.configService.featureSwitches);\n // Get url params and override feature switches\n this.checkFeatureSwitchesQueryParams();\n this.logger.log('[FeatureSwitchService] FeatureSwitches', this.featureSwitches);\n }\n}\n","interface ICustomEventsTrackDataMap {\n [name: string]: string;\n}\n\nexport interface ICustomEventsTrackData extends ICustomEventsTrackDataMap {\n accountId?: string;\n sessionId?: string;\n locale?: string;\n action?: string;\n category?: string;\n browserLanguage?: string;\n appVersion?: string;\n host?: string;\n monitoringEnvironment?: string;\n embed?: string;\n location?: string;\n refferer?: string;\n}\n\nexport interface IEnvironmentTypeConfiguration {\n logger?: boolean;\n mapArmLocation?: boolean;\n}\n\nexport interface IConfiguration extends IEnvironmentTypeConfiguration, INodeConfig {\n domain?: string;\n debug?: boolean;\n version?: string;\n local?: boolean;\n production?: boolean;\n proxyUrlBase?: string;\n}\n\nexport interface IFeatureSwitches {\n [index: string]: boolean;\n}\n\nexport enum FeatureSwitch {\n SettingTabsView = 'SettingTabsView',\n ARM = 'ARM',\n FaceGate = 'FaceGate',\n AdvancedEditTranscript = 'AdvancedEditTranscript',\n SurveyPopup = 'SurveyPopup',\n SlateDetection = 'SlateDetection',\n RestrictedViewer = 'RestrictedViewer',\n EditSpeakers = 'EditSpeakers',\n DisableSummarizedInsights = 'DisableSummarizedInsights',\n Logos = 'Logos',\n Speech = 'Speech',\n InternalFaceGatePopup = 'InternalFaceGatePopup',\n SwitchDirectory = 'SwitchDirectory',\n NotificationCenter = 'NotificationCenter',\n AutoDetectLanguage = 'AutoDetectLanguage',\n SupportedLanguages = 'SupportedLanguages',\n NewUploadExperience = 'NewUploadExperience',\n Edge = 'Edge',\n EdgeTokens = 'EdgeTokens',\n EdgeBasicPreset = 'EdgeBasicPreset',\n EdgeMultiLid = 'EdgeMultiLid',\n ImageUploadSupport = 'ImageUploadSupport',\n ISA = 'ISA',\n FacesQuality = 'FacesQuality',\n ShowAllFaces = 'ShowAllFaces',\n NewFilterPerson = 'NewFilterPerson',\n MergePeople = 'MergePeople',\n GlobalGrouping = 'GlobalGrouping',\n BasicVideoPreset = 'BasicVideoPreset',\n Amsless = 'Amsless',\n MigrationReport = 'MigrationReport',\n ExcludeAIs = 'ExcludeAIs',\n ProjectsForAMSless = 'ProjectsForAMSless',\n UseCacheApi = 'UseCacheApi',\n TextualSummary = 'TextualSummary',\n TextualSummaryForEdge = 'TextualSummaryForEdge',\n IncludeCelebs = 'IncludeCelebs',\n HideClassicAccounts = 'HideClassicAccounts',\n RemoveAmsMigrationStatus = 'RemoveAmsMigrationStatus',\n TextualSummaryForEdgeKeyframes = 'TextualSummaryForEdgeKeyframes',\n LiveEdge = 'LiveEdge',\n LiveEdgeMock = 'LiveEdgeMock'\n}\n\nexport interface IUIAccount {\n name: string;\n id: string;\n location: string;\n selected?: boolean;\n accountType?: string;\n resourceType?: Microsoft.VideoIndexer.Contracts.AccountResourceType;\n}\n\nexport interface IUIDirectory {\n id: string;\n tenantId: string;\n countryCode: string;\n displayName: string;\n domains: string[];\n tenantCategory: string;\n defaultDomain: string;\n tenantType: string;\n}\n\nexport interface IUserAccounts {\n accounts: IUIAccount[];\n selectedAccount?: IUIAccount;\n selectedAccountId: string;\n}\n\nexport interface IUserDetails {\n imageUrl: string;\n name: string;\n email: string;\n}\n\nexport interface IUserSettings {\n getNewsUpdates: boolean;\n autoCompleteSearch: boolean;\n showSamplesTab: boolean;\n showGalleryByDefault: boolean;\n locale?: string;\n userType?: Microsoft.VideoIndexer.Contracts.UserType;\n}\n\nexport interface ISideBar {\n userAccounts: IUserAccounts;\n userSettings: IUserSettings;\n}\n\nexport interface IInvite {\n id: string;\n showForm?: boolean;\n}\n\nexport enum NavigationState {\n OPEN = 'OPEN',\n CLOSE = 'CLOSE',\n TOGGLE = 'TOGGLE',\n ERROR = 'ERROR'\n}\n\nexport enum AccountEvent {\n LEAVE = 'LEAVE',\n SELECTED = 'SELECTED'\n}\n\nexport enum VIThemes {\n LEGACY = 'legacy',\n DARK = 'dark',\n DARKLEGACY = 'darkLegacy',\n DEFAULT = 'default'\n}\n\nexport enum SideMenuOption {\n Media = 'Media',\n Customizations = 'Customizations',\n Settings = 'Settings'\n}\n\nexport enum SideSubMenuType {\n Customizations = 'Customizations',\n Extensions = 'Extensions'\n}\n\nexport enum CustomizationPage {\n Catalog = 'Catalog',\n People = 'People',\n Language = 'Language',\n Speech = 'Speech',\n Brands = 'Brands',\n Logos = 'Logos',\n LanguageId = 'LanguageId'\n}\n","import { Injectable, ViewContainerRef, NgModuleFactory, Compiler, Injector } from '@angular/core';\n\nimport { LoggerService } from '../logger/logger.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LazyLoadService {\n // eslint-disable-next-line deprecation/deprecation\n constructor(private logger: LoggerService, private compiler: Compiler, private injector: Injector) {}\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public async loadComponent(LazyModule: any, LazyComponent: any, ref: ViewContainerRef, data?) {\n const moduleFactory = await this.loadModuleFactory(LazyModule);\n const moduleRef = moduleFactory.create(this.injector);\n // eslint-disable-next-line deprecation/deprecation\n const factory = moduleRef.componentFactoryResolver.resolveComponentFactory(LazyComponent);\n // eslint-disable-next-line deprecation/deprecation\n const componentRef = ref.createComponent(factory);\n\n if (data) {\n Object.assign(\n componentRef.instance,\n // for backward compatibility\n { data },\n // spread the date object on component instance\n data\n );\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private async loadModuleFactory(t: any) {\n // eslint-disable-next-line deprecation/deprecation\n if (t instanceof NgModuleFactory) {\n return t;\n } else {\n return await this.compiler.compileModuleAsync(t);\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { ConfigService } from '../config/config.service';\n\n@Injectable()\nexport class LoggerService {\n public isEnabled = false;\n constructor(private configService: ConfigService) {\n const config = this.configService.Config;\n if (config.logger) {\n this.isEnabled = true;\n }\n this.log('[LoggerService] init');\n }\n\n public log(...msg) {\n if (!this.isEnabled) {\n return;\n }\n\n msg.forEach(m => {\n if (typeof m === 'string') {\n // eslint-disable-next-line no-console\n console.log(`%c${m}`, 'background: #222; color: #bada55');\n } else {\n // eslint-disable-next-line no-console\n console.log(m);\n }\n });\n }\n\n public error(...msg) {\n if (!this.isEnabled) {\n return;\n }\n // eslint-disable-next-line no-console\n console.error(msg);\n }\n}\n","import { Injectable, ErrorHandler } from '@angular/core';\n\nimport { TrackService } from '../track';\n\n@Injectable()\nexport class MonitoringErrorHandlerService extends ErrorHandler {\n constructor(public trackService: TrackService) {\n super();\n }\n\n public handleError(error: Error): void {\n this.trackService.trackError(error);\n super.handleError(error);\n }\n}\n","import { ITimeable, IPageTimingOptions, IPageTimingResult } from './interfaces';\nimport { NavigationTiming, PaintTiming, ResourceTiming } from './plugins';\nimport { getPerformanceApi } from './utils';\n\nexport class PageTiming {\n private plugins: { [name: string]: ITimeable } = {};\n\n constructor(private options: IPageTimingOptions) {\n if (!this.isSupported) {\n return;\n }\n\n const { resourceTimingOptions, paintTimingOptions, navigationTimingOptions } = options;\n\n if (navigationTimingOptions) {\n this.plugins.navigation = new NavigationTiming(navigationTimingOptions);\n }\n\n if (resourceTimingOptions) {\n this.plugins.resource = new ResourceTiming(resourceTimingOptions);\n }\n\n if (paintTimingOptions) {\n this.plugins.paint = new PaintTiming(paintTimingOptions);\n }\n }\n\n public collect() {\n const noop = _ => null;\n window.addEventListener('load', () => {\n // timeout is used to to let the Performance API finish calculating all timings\n setTimeout(() => {\n (this.options.onTimingsCollected || noop)(this.getTimings());\n });\n });\n }\n\n public get isSupported() {\n return !!this.performance;\n }\n\n public getTimings(): Partial {\n if (!this.isSupported) {\n return {};\n }\n\n return Object.keys(this.plugins).reduce(\n (acc, plugin) => ({\n ...acc,\n // For better seperation of each plugin, data will be nested under a dedicated key\n [plugin]: this.plugins[plugin].getTimings()\n }),\n {}\n );\n }\n\n private get performance(): Performance {\n return getPerformanceApi();\n }\n}\n","import { ITimeable, ITimingResult } from '../interfaces';\nimport { getPerformanceApi } from '../utils';\n\nexport abstract class BaseTiming implements ITimeable {\n constructor() {}\n\n get performance(): Performance {\n return getPerformanceApi();\n }\n\n public abstract getTimings(): ITimingResult;\n}\n","export * from './navigation';\nexport * from './paint';\nexport * from './resource';\n","import { toFixed } from '../../utils';\nimport { BaseTiming } from '../base';\nimport { INavigationTimingOptions, INavigationTimingResult } from './interfaces';\n\nexport { INavigationTimingOptions, INavigationTimingResult };\nexport class NavigationTiming extends BaseTiming {\n constructor(private options?: INavigationTimingOptions) {\n super();\n }\n\n public getTimings(): Partial {\n const entry = this.performance.getEntriesByType('navigation');\n if (!entry) {\n return {};\n }\n const timing = entry[0] as PerformanceNavigationTiming;\n\n if (!timing) {\n return {};\n }\n\n return {\n // Time spent unloading documents\n unloadEventTime: toFixed(timing.unloadEventEnd - timing.unloadEventStart),\n // Time consumed preparing the new page\n readyStart: toFixed(timing.fetchStart - timing.startTime),\n // Time Spent on application cache\n appcacheTime: toFixed(timing.domainLookupStart - timing.fetchStart),\n // TCP connection time\n connectTime: toFixed(timing.connectEnd - timing.connectStart),\n // DNS query time\n lookupDomainTime: toFixed(timing.domainLookupEnd - timing.domainLookupStart),\n // Time spent during redirection\n redirectTime: toFixed(timing.redirectEnd - timing.redirectStart),\n // Time spent during the request\n requestTime: toFixed(timing.responseEnd - timing.requestStart),\n // Time spent constructing the DOM tree\n domReadyTime: toFixed(timing.domComplete - timing.domInteractive),\n // Request to completion of the DOM loading\n initDomTreeTime: toFixed(timing.domInteractive - timing.responseEnd),\n // Load event time\n loadEventTime: toFixed(timing.loadEventEnd - timing.loadEventStart),\n // Total time from start to load\n loadTime: toFixed(timing.loadEventEnd - timing.fetchStart)\n };\n }\n}\n","import { IPaintTimingResult, IPaintTimingOptions } from './interfaces';\nimport { toFixed } from '../../utils';\nimport { BaseTiming } from '../base';\n\nexport { IPaintTimingOptions, IPaintTimingResult };\nexport class PaintTiming extends BaseTiming {\n constructor(private options?: IPaintTimingOptions) {\n super();\n }\n\n public getTimings(): Partial {\n const timings = this.performance.getEntriesByName('first-paint')[0];\n\n if (!timings) {\n return {};\n }\n\n return {\n firstPaintTime: toFixed(timings?.startTime)\n };\n }\n}\n","import { IResourceTimingOptions, IResourceTimingResult } from './interfaces';\nimport { toFixed, normalizeEntryName } from '../../utils';\nimport { BaseTiming } from '../base';\n\nexport { IResourceTimingOptions, IResourceTimingResult };\nexport class ResourceTiming extends BaseTiming {\n constructor(private options: IResourceTimingOptions = {}) {\n super();\n }\n\n public getTimings(): IResourceTimingResult {\n const { domains } = this.options;\n const entries = this.performance.getEntriesByType('resource');\n\n let regex = '(js|css)$';\n let compiledRegex = /(js|css)$/i;\n\n if (domains) {\n regex = `(${domains.join('|')}).*${regex}`;\n compiledRegex = new RegExp(regex, 'i');\n }\n\n return entries\n .filter(entry => compiledRegex.test(entry.name))\n .reduce(\n (acc, entry) => ({\n ...acc,\n [normalizeEntryName(entry.name)]: toFixed(entry.duration)\n }),\n {}\n );\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { PageTiming } from '..';\nimport { ConfigService } from '../../config/config.service';\nimport { TrackService } from '../../track';\n\n@Injectable()\nexport class PageTimingService {\n constructor(private track: TrackService, private config: ConfigService) {}\n\n public init() {\n const pageTimings = new PageTiming({\n onTimingsCollected: timings => {\n this.track.trackPageTimings({ timings });\n },\n navigationTimingOptions: {\n precision: 0\n },\n paintTimingOptions: {\n captureFirstPaint: true\n },\n resourceTimingOptions: {\n domains: [this.config.cdnDomain]\n }\n });\n\n pageTimings.collect();\n }\n}\n","export const matchLastToken = (string: string): string => string.match(/\\/([^\\/]+)\\/?$/)[1];\n\nexport const toFixed = (number: number, precision: number = 0): number => Number(number.toFixed(precision));\n\nexport const normalizeEntryName = (entry: string, options = { maxLength: 10 }) =>\n matchLastToken(entry)\n .replace(/[^\\w\\s]/gi, '_')\n .slice(-options.maxLength);\n\nexport const getPerformanceApi = () => window.performance || window.webkitPerformance || window.msPerformance || window.mozPerformance;\n","import { Injectable } from '@angular/core';\n\nimport { emailPattern, JWTTokenPattern, sasTokenPattern } from '@common/modules/utils/regexes';\n\nimport { LoggerService } from '../logger/logger.service';\nimport { ISanitizerConfig } from './interfaces';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SanitizerService {\n private static readonly MASK_CHAR = '*';\n private static readonly JWT_CHAR_OFFSET = 2;\n\n private config: ISanitizerConfig[] = [\n {\n // Email regex pattern\n regex: emailPattern,\n mask: (match: string) => SanitizerService.MASK_CHAR.repeat(match.length)\n },\n {\n // JWT regex pattern\n regex: RegExp(JWTTokenPattern, 'g'),\n mask: (match: string) =>\n `${match.slice(0, SanitizerService.JWT_CHAR_OFFSET)}${SanitizerService.MASK_CHAR.repeat(match.length - SanitizerService.JWT_CHAR_OFFSET)}`\n },\n {\n // SAS token regex pattern to find the sig parameter\n regex: sasTokenPattern,\n mask: (_: string, p1: string, p2: string, p3: string) => `${p1}${p2}${SanitizerService.MASK_CHAR.repeat(p3.length)}`\n }\n ];\n\n constructor(private logger: LoggerService) {}\n\n sanitizeObject(data: object): object {\n try {\n let dataString = JSON.stringify(data);\n for (const { regex, mask } of this.config) {\n dataString = dataString.replace(regex, mask);\n }\n return JSON.parse(dataString);\n } catch (e) {\n this.logger.error('[SanitizerService] Failed to sanitize data', e);\n return data;\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { LocalStorageService } from '@common/modules/shared/services/local-storage.service';\n\nimport { VIThemes } from '../interfaces';\nimport { EventCategory, TrackService } from '../track';\nimport { ZoneWrapperService } from '../zone-wrapper/zone-wrapper.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ThemesService {\n private _activeTheme = VIThemes.DEFAULT;\n\n constructor(private localStorageService: LocalStorageService, private zoneWrapperService: ZoneWrapperService, private trackService: TrackService) {}\n\n public get activeTheme() {\n return this._activeTheme;\n }\n\n public set activeTheme(theme: VIThemes) {\n if (theme === this._activeTheme) {\n return;\n }\n\n // remove currently active theme\n this.removeThemeClass(this._activeTheme);\n\n // add new theme\n this.addThemeClass(theme);\n\n // update local storage\n this.localStorageService.setItem('vi.theme', theme);\n this._activeTheme = theme;\n this.trackService.track('themes.update', {\n category: EventCategory.USER_SETTINGS,\n type: theme\n });\n }\n\n public initThemes(selectedTheme?: VIThemes) {\n let theme = VIThemes[this.localStorageService.getItem('vi.theme')?.toUpperCase()];\n theme = selectedTheme || theme || VIThemes.DEFAULT;\n\n this.addThemeClass(theme);\n\n // selectedTheme param is for widgets, should not effect the wep app.\n if (!selectedTheme) {\n // update local storage\n this.localStorageService.setItem('vi.theme', theme);\n this._activeTheme = theme;\n }\n\n this.trackService.track('themes.init', {\n category: EventCategory.USER_SETTINGS,\n type: this.activeTheme\n });\n }\n\n public addThemeClass(theme: VIThemes) {\n this.zoneWrapperService.runOutsideAngular(() => {\n window.document?.documentElement?.classList?.add(theme);\n });\n }\n\n public removeThemeClass(theme: VIThemes) {\n this.zoneWrapperService.runOutsideAngular(() => {\n window.document?.documentElement?.classList?.remove(theme);\n });\n }\n}\n","import { IErrorTypes } from './interfaces';\n\nexport enum APIErrors {\n GENERAL = 'GENERAL',\n INVALID_INPUT = 'INVALID_INPUT',\n USER_NOT_AUTHENTICATED = 'USER_NOT_AUTHENTICATED',\n USER_NOT_SIGNED_IN = 'USER_NOT_SIGNED_IN',\n USER_NOT_SIGNED_IN_AAD = 'USER_NOT_SIGNED_IN_AAD',\n USER_NOT_REGISTERED = 'USER_NOT_REGISTERED',\n USER_NOT_ALLOWED = 'USER_NOT_ALLOWED',\n USER_NOT_ADMIN = 'USER_NOT_ADMIN',\n USER_NOT_FOUND = 'USER_NOT_FOUND',\n USER_SUSPENDED = 'USER_SUSPENDED',\n ACCESS_TOKEN_VALIDATION_FAILED = 'ACCESS_TOKEN_VALIDATION_FAILED',\n ANTI_FORGERY_TOKEN_VALIDATION_FAILED = 'ANTI_FORGERY_TOKEN_VALIDATION_FAILED',\n VIDEO_UPLOAD_LIMIT_EXCEEDED = 'VIDEO_UPLOAD_LIMIT_EXCEEDED',\n ACCOUNT_UPLOAD_QUOTA_EXCEEDED = 'ACCOUNT_UPLOAD_QUOTA_EXCEEDED',\n BREAKDOWN_NOT_FOUND = 'BREAKDOWN_NOT_FOUND',\n NOT_FOUND = 'NOT_FOUND',\n URL_UNREACHABLE = 'URL_UNREACHABLE',\n OFFLINE = 'OFFLINE',\n ALREADY_EXISTS = 'ALREADY_EXISTS',\n WIKI_ALREADY_EXISTS = 'WIKI_ALREADY_EXISTS',\n VIDEO_ALREADY_IN_PROGRESS = 'VIDEO_ALREADY_IN_PROGRESS',\n VIDEO_ALREADY_EXISTS = 'VIDEO_ALREADY_EXISTS',\n ACCOUNT_NOT_FOUND = 'ACCOUNT_NOT_FOUND',\n EVENT_GRID_NOT_REGISTERED = 'EVENT_GRID_NOT_REGISTERED',\n VIDEO_REMOVED = 'VIDEO_REMOVED',\n EMPTY_INSIGHTS = 'EMPTY_INSIGHTS',\n QuotaViolation = 'QuotaViolation',\n Unauthorized = 'Unauthorized',\n INVALID_PICTURE_SIZE = 'INVALID_PICTURE_SIZE',\n AMS_UNREACHABLE = 'AMS_UNREACHABLE',\n CUSTOM_VISION_CHARACTER_NOT_FOUND = 'CUSTOM_VISION_CHARACTER_NOT_FOUND',\n CUSTOM_VISION_MODEL_NOT_FOUND = 'CUSTOM_VISION_MODEL_NOT_FOUND',\n CUSTOM_VISION_MODELS_TRAIN_LIMIT_EXCEEDED = 'CUSTOM_VISION_MODELS_TRAIN_LIMIT_EXCEEDED',\n CUSTOM_VISION_MODEL_TRAIN_OPERATION_NOT_FOUND = 'CUSTOM_VISION_MODEL_TRAIN_OPERATION_NOT_FOUND',\n TOO_MANY_SOURCE_VIDEOS = 'TOO_MANY_SOURCE_VIDEOS ',\n CUSTOM_VISION_ACCOUNT_NOT_FOUND = 'CUSTOM_VISION_ACCOUNT_NOT_FOUND',\n CUSTOM_VISION_UNSUPPORTED_LOCATION = 'CUSTOM_VISION_UNSUPPORTED_LOCATION',\n INVALID_URL = 'INVALID_URL',\n CUSTOM_VISION_VIDEO_INDEXER_LOCATION_CORRELATION = 'CUSTOM_VISION_VIDEO_INDEXER_LOCATION_CORRELATION',\n CUSTOM_VISION_INVALID_TRAINING_KEY = 'CUSTOM_VISION_INVALID_TRAINING_KEY',\n CUSTOM_VISION_INVALID_PREDICTION_KEY = 'CUSTOM_VISION_INVALID_PREDICTION_KEY',\n OPERATION_NOT_SUPPORTED_ON_TRIAL = 'OPERATION_NOT_SUPPORTED_ON_TRIAL',\n VIDEO_NAME_TOO_LONG = 'VIDEO_NAME_TOO_LONG',\n AMS_AAD_APPLICATION_NOT_IN_TENANT = 'AMS_AAD_APPLICATION_NOT_IN_TENANT',\n VIDEO_INDEXING_IN_PROGRESS = 'VIDEO_INDEXING_IN_PROGRESS',\n USER_EMAIL_ALREADY_REGISTERED_FROM_ANOTHER_IDENTITY_PROVIDER = 'USER_EMAIL_ALREADY_REGISTERED_FROM_ANOTHER_IDENTITY_PROVIDER',\n INVALID_INVITEE_FRIENDLY_EMAIL_ADDRESS = 'INVALID_INVITEE_FRIENDLY_EMAIL_ADDRESS',\n LOCATION_NOT_FOUND = 'LOCATION_NOT_FOUND',\n FACE_IDENTIFICATION_NOT_ALLOWED = 'FACE_IDENTIFICATION_NOT_ALLOWED',\n FACE_CUSTOMIZATION_NOT_ENABLED = 'FACE_CUSTOMIZATION_NOT_ENABLED',\n DATASET_IN_USE = 'DATASET_IN_USE',\n MODEL_IN_USE = 'MODEL_IN_USE',\n SOURCE_VIDEO_DELETED = 'SOURCE_VIDEO_DELETED',\n PROJECT_RENDER_IN_PROGRESS = 'PROJECT_RENDER_IN_PROGRESS',\n VIDEO_CURRENTLY_BEING_INDEXED = 'VIDEO_CURRENTLY_BEING_INDEXED',\n STORAGE_UNREACHABLE = 'STORAGE_UNREACHABLE',\n VIDEO_NO_STREAMING_PRESET = 'VIDEO_NO_STREAMING_PRESET',\n STORAGE_ACCESS_DENIED = 'STORAGE_ACCESS_DENIED',\n MANAGED_IDENTITY_MISSING = 'MANAGED_IDENTITY_MISSING',\n NETWORK_ACCESS_NOT_ALLOWED = 'NETWORK_ACCESS_NOT_ALLOWED'\n}\n\nexport const Errors: IErrorTypes = {\n GENERAL: {\n key: APIErrors.GENERAL,\n msg: 'General Error'\n },\n INVALID_INPUT: {\n key: APIErrors.INVALID_INPUT,\n msg: 'There is some problem with the input values'\n },\n USER_NOT_AUTHENTICATED: {\n key: APIErrors.USER_NOT_AUTHENTICATED,\n msg: 'Your session has timed out. Login again to resume your work.'\n },\n USER_NOT_SIGNED_IN: {\n key: APIErrors.USER_NOT_SIGNED_IN,\n msg: 'Your session has timed out. Please login again to resume your work.'\n },\n USER_NOT_SIGNED_IN_AAD: {\n key: APIErrors.USER_NOT_SIGNED_IN_AAD,\n msg: 'You are not logged in. Please login again to resume your work.'\n },\n USER_NOT_REGISTERED: {\n key: APIErrors.USER_NOT_REGISTERED,\n msg: 'You are not registered in the system'\n },\n USER_NOT_ALLOWED: {\n key: APIErrors.USER_NOT_ALLOWED,\n msg: 'You are not allowed to perform this action.'\n },\n USER_NOT_ADMIN: {\n key: APIErrors.USER_NOT_ADMIN,\n msg: 'You must be admin to perform this operation'\n },\n USER_NOT_FOUND: {\n key: APIErrors.USER_NOT_FOUND,\n msg: 'User not found in the system'\n },\n USER_SUSPENDED: {\n key: APIErrors.USER_SUSPENDED,\n msg: 'You are suspended. Please contact support.'\n },\n ACCESS_TOKEN_VALIDATION_FAILED: {\n key: APIErrors.ACCESS_TOKEN_VALIDATION_FAILED,\n msg: 'Your session is expired please refresh the page.'\n },\n ANTI_FORGERY_TOKEN_VALIDATION_FAILED: {\n key: APIErrors.ANTI_FORGERY_TOKEN_VALIDATION_FAILED,\n msg: 'Your session has timed out. Login again to resume your work.'\n },\n VIDEO_UPLOAD_LIMIT_EXCEEDED: {\n key: APIErrors.VIDEO_UPLOAD_LIMIT_EXCEEDED,\n msg: 'You cannot upload a video which is more than 4 GBs or over 4 hours.'\n },\n ACCOUNT_UPLOAD_QUOTA_EXCEEDED: {\n key: APIErrors.ACCOUNT_UPLOAD_QUOTA_EXCEEDED,\n msg: 'Your account has reached its maximum uploads quota.'\n },\n BREAKDOWN_NOT_FOUND: {\n key: APIErrors.BREAKDOWN_NOT_FOUND,\n msg: 'Breakdown is not found.'\n },\n NOT_FOUND: { key: APIErrors.NOT_FOUND, msg: 'Page is not found.' },\n URL_UNREACHABLE: {\n key: APIErrors.URL_UNREACHABLE,\n msg: 'The file url is unreachable.'\n },\n OFFLINE: {\n key: APIErrors.OFFLINE,\n msg: \"Seems that you're gone offline. Please check your internet connection and try again.\"\n },\n ALREADY_EXISTS: {\n key: APIErrors.ALREADY_EXISTS,\n msg: 'Creating linguistic training model failed since the name is already exits.'\n },\n WIKI_ALREADY_EXISTS: {\n key: APIErrors.WIKI_ALREADY_EXISTS,\n msg: \"Brand's URL address is already exits.\"\n },\n VIDEO_ALREADY_IN_PROGRESS: {\n key: APIErrors.VIDEO_ALREADY_IN_PROGRESS,\n msg: `This video is currently being uploaded. If you’d like to upload it again,\n please wait for the current upload to finish, and try again.`\n },\n VIDEO_ALREADY_EXISTS: {\n key: APIErrors.VIDEO_ALREADY_EXISTS,\n msg: `An attempt to upload this video recently failed. If you’d like to try to upload it again,\n please wait at least two hours from the last attempt, and try again.`\n },\n ACCOUNT_NOT_FOUND: {\n key: APIErrors.ACCOUNT_NOT_FOUND,\n msg: 'Account not found'\n },\n EVENT_GRID_NOT_REGISTERED: {\n key: APIErrors.EVENT_GRID_NOT_REGISTERED,\n msg: 'EventGrid resource provider is not registered'\n },\n QuotaViolation: {\n key: APIErrors.QuotaViolation,\n msg: 'The input text is too big. Please limit the input text to 200KB.'\n },\n VIDEO_REMOVED: {\n key: APIErrors.VIDEO_REMOVED,\n msg: 'The video has been removed'\n },\n EMPTY_INSIGHTS: {\n key: APIErrors.EMPTY_INSIGHTS,\n msg: 'No insights available'\n },\n Unauthorized: {\n key: APIErrors.Unauthorized,\n msg: 'Unauthorized'\n },\n INVALID_PICTURE_SIZE: {\n key: APIErrors.INVALID_PICTURE_SIZE,\n msg: 'INVALID_PICTURE_SIZE'\n },\n AMS_UNREACHABLE: {\n key: APIErrors.AMS_UNREACHABLE,\n msg: 'Failed to connect to Media Services account'\n },\n CUSTOM_VISION_MODEL_NOT_FOUND: {\n key: APIErrors.CUSTOM_VISION_MODEL_NOT_FOUND,\n msg: 'CUSTOM_VISION_MODEL_NOT_FOUND'\n },\n CUSTOM_VISION_CHARACTER_NOT_FOUND: {\n key: APIErrors.CUSTOM_VISION_CHARACTER_NOT_FOUND,\n msg: 'CUSTOM_VISION_CHARACTER_NOT_FOUND'\n },\n CUSTOM_VISION_MODELS_TRAIN_LIMIT_EXCEEDED: {\n key: APIErrors.CUSTOM_VISION_MODELS_TRAIN_LIMIT_EXCEEDED,\n msg: 'CUSTOM_VISION_MODELS_TRAIN_LIMIT_EXCEEDED'\n },\n CUSTOM_VISION_MODEL_TRAIN_OPERATION_NOT_FOUND: {\n key: APIErrors.CUSTOM_VISION_MODEL_TRAIN_OPERATION_NOT_FOUND,\n msg: 'CUSTOM_VISION_MODEL_TRAIN_OPERATION_NOT_FOUND'\n },\n TOO_MANY_SOURCE_VIDEOS: {\n key: APIErrors.TOO_MANY_SOURCE_VIDEOS,\n msg: 'TOO_MANY_SOURCE_VIDEOS'\n },\n CUSTOM_VISION_ACCOUNT_NOT_FOUND: {\n key: APIErrors.CUSTOM_VISION_ACCOUNT_NOT_FOUND,\n msg: 'CUSTOM_VISION_ACCOUNT_NOT_FOUND'\n },\n CUSTOM_VISION_UNSUPPORTED_LOCATION: {\n key: APIErrors.CUSTOM_VISION_UNSUPPORTED_LOCATION,\n msg: 'CUSTOM_VISION_UNSUPPORTED_LOCATION'\n },\n INVALID_URL: {\n key: APIErrors.INVALID_URL,\n msg: 'INVALID_URL'\n },\n CUSTOM_VISION_VIDEO_INDEXER_LOCATION_CORRELATION: {\n key: APIErrors.CUSTOM_VISION_VIDEO_INDEXER_LOCATION_CORRELATION,\n msg: 'CUSTOM_VISION_VIDEO_INDEXER_LOCATION_CORRELATION'\n },\n CUSTOM_VISION_INVALID_TRAINING_KEY: {\n key: APIErrors.CUSTOM_VISION_INVALID_TRAINING_KEY,\n msg: 'CUSTOM_VISION_INVALID_TRAINING_KEY'\n },\n CUSTOM_VISION_INVALID_PREDICTION_KEY: {\n key: APIErrors.CUSTOM_VISION_INVALID_PREDICTION_KEY,\n msg: 'CUSTOM_VISION_INVALID_PREDICTION_KEY'\n },\n OPERATION_NOT_SUPPORTED_ON_TRIAL: {\n key: APIErrors.OPERATION_NOT_SUPPORTED_ON_TRIAL,\n msg: 'OPERATION_NOT_SUPPORTED_ON_TRIAL'\n },\n VIDEO_NAME_TOO_LONG: {\n key: APIErrors.VIDEO_NAME_TOO_LONG,\n msg: 'Name is too long. Maximum name length is 80'\n },\n AMS_AAD_APPLICATION_NOT_IN_TENANT: {\n key: APIErrors.AMS_AAD_APPLICATION_NOT_IN_TENANT,\n msg: 'AMS_AAD_APPLICATION_NOT_IN_TENANT'\n },\n VIDEO_INDEXING_IN_PROGRESS: {\n key: APIErrors.VIDEO_INDEXING_IN_PROGRESS,\n msg: 'VIDEO_INDEXING_IN_PROGRESS'\n },\n INVALID_INVITEE_FRIENDLY_EMAIL_ADDRESS: {\n key: APIErrors.INVALID_INVITEE_FRIENDLY_EMAIL_ADDRESS,\n msg: 'INVALID_INVITEE_FRIENDLY_EMAIL_ADDRESS'\n },\n LOCATION_NOT_FOUND: {\n key: APIErrors.LOCATION_NOT_FOUND,\n msg: 'LOCATION_NOT_FOUND'\n },\n FACE_IDENTIFICATION_NOT_ALLOWED: {\n key: APIErrors.FACE_IDENTIFICATION_NOT_ALLOWED,\n msg: 'FACE_IDENTIFICATION_NOT_ALLOWED'\n },\n FACE_CUSTOMIZATION_NOT_ENABLED: {\n key: APIErrors.FACE_CUSTOMIZATION_NOT_ENABLED,\n msg: 'FACE_CUSTOMIZATION_NOT_ENABLED'\n },\n DATASET_IN_USE: {\n key: APIErrors.DATASET_IN_USE,\n msg: 'DATASET_IN_USE'\n },\n MODEL_IN_USE: {\n key: APIErrors.MODEL_IN_USE,\n msg: 'MODEL_IN_USE'\n },\n STORAGE_UNREACHABLE: {\n key: APIErrors.STORAGE_UNREACHABLE,\n msg: 'Failed to connect to Storage account'\n }\n};\n\nexport const unauthorizedErrorTypes = [APIErrors.USER_NOT_AUTHENTICATED, APIErrors.USER_NOT_SIGNED_IN, APIErrors.USER_NOT_ALLOWED];\n","import { AccountPermission, IAction } from '@common/modules/shared/interfaces';\n\nimport { APIErrors } from './errors';\n\nexport interface IError {\n key: APIErrors;\n msg: string;\n actionLink?: string;\n action?: string;\n actionState?: string;\n}\n\nexport interface IAPIError {\n ErrorType: APIErrors;\n Message: string;\n}\n\nexport interface IErrorTypes {\n GENERAL: IError;\n INVALID_INPUT: IError;\n USER_NOT_AUTHENTICATED: IError;\n USER_NOT_SIGNED_IN: IError;\n USER_NOT_SIGNED_IN_AAD: IError;\n USER_NOT_REGISTERED: IError;\n USER_NOT_ALLOWED: IError;\n USER_NOT_ADMIN: IError;\n USER_NOT_FOUND: IError;\n USER_SUSPENDED: IError;\n ACCESS_TOKEN_VALIDATION_FAILED: IError;\n ANTI_FORGERY_TOKEN_VALIDATION_FAILED: IError;\n VIDEO_UPLOAD_LIMIT_EXCEEDED: IError;\n ACCOUNT_UPLOAD_QUOTA_EXCEEDED: IError;\n BREAKDOWN_NOT_FOUND: IError;\n NOT_FOUND: IError;\n URL_UNREACHABLE: IError;\n OFFLINE: IError;\n ALREADY_EXISTS: IError;\n WIKI_ALREADY_EXISTS: IError;\n VIDEO_ALREADY_IN_PROGRESS: IError;\n VIDEO_ALREADY_EXISTS: IError;\n ACCOUNT_NOT_FOUND: IError;\n EVENT_GRID_NOT_REGISTERED: IError;\n QuotaViolation: IError;\n VIDEO_REMOVED: IError;\n EMPTY_INSIGHTS: IError;\n Unauthorized: IError;\n INVALID_PICTURE_SIZE: IError;\n AMS_UNREACHABLE: IError;\n CUSTOM_VISION_MODEL_NOT_FOUND: IError;\n CUSTOM_VISION_CHARACTER_NOT_FOUND: IError;\n CUSTOM_VISION_MODELS_TRAIN_LIMIT_EXCEEDED: IError;\n CUSTOM_VISION_MODEL_TRAIN_OPERATION_NOT_FOUND: IError;\n TOO_MANY_SOURCE_VIDEOS: IError;\n CUSTOM_VISION_ACCOUNT_NOT_FOUND: IError;\n CUSTOM_VISION_UNSUPPORTED_LOCATION: IError;\n INVALID_URL: IError;\n CUSTOM_VISION_VIDEO_INDEXER_LOCATION_CORRELATION: IError;\n CUSTOM_VISION_INVALID_TRAINING_KEY: IError;\n CUSTOM_VISION_INVALID_PREDICTION_KEY: IError;\n OPERATION_NOT_SUPPORTED_ON_TRIAL: IError;\n VIDEO_NAME_TOO_LONG: IError;\n AMS_AAD_APPLICATION_NOT_IN_TENANT: IError;\n VIDEO_INDEXING_IN_PROGRESS: IError;\n INVALID_INVITEE_FRIENDLY_EMAIL_ADDRESS: IError;\n LOCATION_NOT_FOUND: IError;\n FACE_IDENTIFICATION_NOT_ALLOWED: IError;\n FACE_CUSTOMIZATION_NOT_ENABLED: IError;\n DATASET_IN_USE: IError;\n MODEL_IN_USE: IError;\n STORAGE_UNREACHABLE: IError;\n}\n\nexport interface IAPIErrorContract {\n statusCode?: number;\n ErrorType: string;\n Message: string;\n}\n\nexport enum NotificationType {\n // Banner will be shown on top of the page as a strip and on the notifications panel\n Banner = 'BANNER',\n // Alert will be shown as a toast on the top right page corner and on the notifications panel\n Alert = 'ALERT',\n // Message will be shown as a toast on the top right page corner and on the notifications panel\n Message = 'MESSAGE',\n // Toast will be shown as a toast on the top right page corner (will not shown in the notifications panel)\n Toast = 'TOAST'\n}\n\nexport enum NotificationFilterType {\n Default = 'Default',\n Tenant = 'Tenant',\n Region = 'Region',\n AccountType = 'AccountType'\n}\n\nexport enum NotificationMessageType {\n Custom = 'Custom',\n ServiceOutage = 'ServiceOutage',\n PartialOutage = 'PartialOutage',\n RegionalOutage = 'RegionalOutage',\n ServiceRestored = 'ServiceRestored',\n DependencyOutageAzureMediaServices = 'DependencyOutageAzureMediaServices',\n DependencyOutageAzureKubernetesService = 'DependencyOutageAzureKubernetesService',\n DependencyOutageAzureNetworking = 'DependencyOutageAzureNetworking',\n DependencyOutageAzureStorage = 'DependencyOutageAzureStorage',\n DependencyOutageAzureCompute = 'DependencyOutageAzureCompute',\n FacialRecognition = 'FacialRecognition',\n ReleaseNotes = 'ReleaseNotes',\n WelcomeMessage = 'WelcomeMessage',\n UpdateAccount = 'UpdateAccount'\n}\n\nexport interface INotificationLink {\n text: string;\n src?: string;\n callback?: () => void;\n}\n\nexport interface INotificationButton {\n action: IAction;\n callback?: () => void;\n}\n\nexport enum NotificationLevel {\n None = 'None',\n Info = 'Info',\n Success = 'Success',\n Warning = 'Warning',\n Error = 'Error',\n Critical = 'Critical'\n}\n\nexport enum NotificationIcon {\n None = '',\n Info = 'i-vi-info',\n Success = 'i-vi-select',\n Warning = 'i-vi-warning',\n Error = 'i-vi-error',\n Upload = 'i-vi-cloudupload'\n}\n\nexport interface IBaseNotification {\n id: string;\n messageType: NotificationMessageType;\n startDate: Date;\n endDate: Date;\n type?: NotificationType;\n level?: NotificationLevel;\n title?: string;\n text?: string;\n region?: string;\n filterType?: NotificationFilterType;\n permission?: AccountPermission;\n}\n\nexport interface INotification extends IBaseNotification {\n link?: INotificationLink;\n button?: INotificationButton;\n icon?: NotificationIcon;\n seen?: boolean;\n toasted?: boolean;\n cleared?: boolean;\n progress?: number;\n resolveAccountData?: boolean;\n}\n\nexport interface INotificationsResponse {\n notifications: IBaseNotification[];\n eTag: string;\n}\n\nexport interface INotificationMap {\n type: NotificationType;\n level: NotificationLevel;\n icon: NotificationIcon;\n link?: INotificationLink;\n button?: INotificationButton;\n}\n","import { UpdateAccountAction } from '@common/modules/shared/actions';\n\nimport { INotificationMap, NotificationIcon, NotificationLevel, NotificationMessageType, NotificationType } from './interfaces';\n\nexport const notificationTemplates: { [key: string]: INotificationMap } = {\n [NotificationMessageType.ServiceOutage]: {\n type: NotificationType.Banner,\n level: NotificationLevel.Critical,\n icon: NotificationIcon.Error\n },\n [NotificationMessageType.PartialOutage]: {\n type: NotificationType.Banner,\n level: NotificationLevel.Critical,\n icon: NotificationIcon.Error\n },\n [NotificationMessageType.RegionalOutage]: {\n type: NotificationType.Banner,\n level: NotificationLevel.Critical,\n icon: NotificationIcon.Error\n },\n [NotificationMessageType.ServiceRestored]: {\n type: NotificationType.Alert,\n level: NotificationLevel.Info,\n icon: NotificationIcon.Info\n },\n [NotificationMessageType.DependencyOutageAzureMediaServices]: {\n type: NotificationType.Alert,\n level: NotificationLevel.Warning,\n icon: NotificationIcon.Warning\n },\n [NotificationMessageType.DependencyOutageAzureKubernetesService]: {\n type: NotificationType.Alert,\n level: NotificationLevel.Warning,\n icon: NotificationIcon.Warning\n },\n [NotificationMessageType.DependencyOutageAzureNetworking]: {\n type: NotificationType.Alert,\n level: NotificationLevel.Warning,\n icon: NotificationIcon.Warning\n },\n [NotificationMessageType.DependencyOutageAzureStorage]: {\n type: NotificationType.Alert,\n level: NotificationLevel.Warning,\n icon: NotificationIcon.Warning\n },\n [NotificationMessageType.DependencyOutageAzureCompute]: {\n type: NotificationType.Alert,\n level: NotificationLevel.Warning,\n icon: NotificationIcon.Warning\n },\n [NotificationMessageType.ReleaseNotes]: {\n type: NotificationType.Message,\n level: NotificationLevel.Info,\n icon: NotificationIcon.Info,\n link: {\n src: 'https://aka.ms/vi-release-notes',\n text: ''\n }\n },\n [NotificationMessageType.WelcomeMessage]: {\n type: NotificationType.Message,\n level: NotificationLevel.None,\n icon: NotificationIcon.None\n },\n [NotificationMessageType.FacialRecognition]: {\n type: NotificationType.Message,\n level: NotificationLevel.Warning,\n icon: NotificationIcon.Warning,\n link: {\n src: 'https://aka.ms/facerecognition',\n text: ''\n }\n },\n [NotificationMessageType.UpdateAccount]: {\n type: NotificationType.Banner,\n level: NotificationLevel.Error,\n icon: NotificationIcon.Error,\n button: {\n action: UpdateAccountAction\n }\n }\n};\n","export const resources = {\n InsightsErrorTypes_BREAKDOWN_NOT_FOUND: '',\n InsightsErrorTypes_VIDEO_REMOVED: '',\n InsightsErrorTypes_USER_NOT_ALLOWED: '',\n InsightsErrorTypes_EMPTY_INSIGHTS: '',\n InsightsErrorTypes_GENERAL: '',\n InsightsErrorTypes_USER_NOT_SIGNED_IN: '',\n ErrorTypes_GENERAL: '',\n ErrorTypes_INVALID_INPUT: '',\n ErrorTypes_USER_NOT_AUTHENTICATED: '',\n ErrorTypes_USER_NOT_SIGNED_IN: '',\n ErrorTypes_USER_NOT_SIGNED_IN_AAD: '',\n ErrorTypes_USER_NOT_REGISTERED: '',\n ErrorTypes_USER_NOT_ALLOWED: '',\n ErrorTypes_USER_NOT_ADMIN: '',\n ErrorTypes_USER_NOT_FOUND: '',\n ErrorTypes_USER_SUSPENDED: '',\n ErrorTypes_ACCESS_TOKEN_VALIDATION_FAILED: '',\n ErrorTypes_ACCESS_TOKEN_VALIDATION_FAILED_Embed: '',\n ErrorTypes_ACCESS_TOKEN_VALIDATION_FAILED_Player: '',\n ErrorTypes_CUSTOM_INDEX_LOCATION_LOADING_ERROR: '',\n ErrorTypes_ANTI_FORGERY_TOKEN_VALIDATION_FAILED: '',\n ErrorTypes_VIDEO_UPLOAD_LIMIT_EXCEEDED: '',\n ErrorTypes_ACCOUNT_UPLOAD_QUOTA_EXCEEDED: '',\n ErrorTypes_BREAKDOWN_NOT_FOUND: '',\n ErrorTypes_NOT_FOUND: '',\n ErrorTypes_URL_UNREACHABLE: '',\n ErrorTypes_OFFLINE: '',\n ErrorTypes_ALREADY_EXISTS: '',\n ErrorTypes_WIKI_ALREADY_EXISTS: '',\n FacesCustomizationError_DeleteModel_ACCOUNT_NOT_FOUND: '',\n FacesCustomizationError_DeleteModel_NOT_FOUND: '',\n FacesCustomizationError_DeleteModel_GENERAL: '',\n FacesCustomizationError_EditModel_ACCOUNT_NOT_FOUND: '',\n FacesCustomizationError_EditModel_NOT_FOUND: '',\n FacesCustomizationError_EditModel_ALREADY_EXISTS: '',\n FacesCustomizationError_EditModel_INVALID_INPUT: '',\n FacesCustomizationError_EditModel_GENERAL: '',\n FacesCustomizationError_AddModel_GENERAL: '',\n FacesCustomizationError_AddModel_INVALID_INPUT: '',\n FacesCustomizationError_AddModel_ALREADY_EXISTS: '',\n FacesCustomizationError_AddModel_ACCOUNT_NOT_FOUND: '',\n FacesCustomizationError_AddModel_ACCOUNT_REACHED_PERSON_MODELS_QUOTA: '',\n FacesCustomizationError_GetPeople_NOT_FOUND: '',\n FacesCustomizationError_GetPeople_INVALID_INPUT: '',\n FacesCustomizationError_EditPeople_NOT_FOUND: '',\n FacesCustomizationError_EditPeople_INVALID_INPUT: '',\n FacesCustomizationError_DeletePeople_NOT_FOUND: '',\n FacesCustomizationError_AddPeople_NOT_FOUND: '',\n FacesCustomizationError_AddPeople_INVALID_INPUT: '',\n FacesCustomizationError_EditPeople_ALREADY_EXISTS: '',\n FacesCustomizationError_GetModel_ACCESS_TOKEN_VALIDATION_FAILED: '',\n FacesCustomizationError_GetPeople_ACCESS_TOKEN_VALIDATION_FAILED: '',\n FacesCustomizationError_EditFace_INVALID_INPUT: '',\n FacesCustomizationError_EditFace_NOT_FOUND: '',\n FacesCustomizationError_GetFace_NOT_FOUND: '',\n FacesCustomizationError_AddFace_NOT_FOUND: '',\n FacesCustomizationError_AddFace_INVALID_INPUT: '',\n FacesCustomizationError_AddFace_INVALID_PICTURE_SIZE: '',\n FacesCustomizationError_AddFace_INVALID_PICTURE: '',\n FacesCustomizationError_DeleteFace_NOT_FOUND: '',\n EditorError_SaveProject_TOO_MANY_SOURCE_VIDEOS: ''\n};\n","import { Injectable } from '@angular/core';\nimport { LiveAnnouncer } from '@angular/cdk/a11y';\nimport { HttpErrorResponse } from '@angular/common/http';\n\nimport { ToastrService } from 'ngx-toastr';\n\nimport { TimeInterval } from '@common/modules/utils/time';\n\nimport { TranslateHelperService } from '../../../translation/services/translate-helper.service';\nimport { FocusManagerService } from '../../../accessibility/focus-manager.service';\nimport { getKeyCode, KeyCode } from '../../../utils/event';\nimport { LoggerService } from '../logger/logger.service';\nimport { FeatureSwitchService } from '../feature-switch/feature-switch.service';\nimport { ConfigService } from '../config/config.service';\nimport { FeatureSwitch } from '../interfaces';\nimport { INotification, NotificationLevel } from './interfaces';\nimport { Errors } from './errors';\nimport { resources } from './resources';\n\n@Injectable()\nexport class ToastService {\n public resources = resources;\n private messageTimeout = TimeInterval.SECOND * 5;\n private positionClass = 'toast-bottom-right';\n\n constructor(\n private toastr: ToastrService,\n private liveAnnouncer: LiveAnnouncer,\n private translate: TranslateHelperService,\n private loggerService: LoggerService,\n private focusManager: FocusManagerService,\n private featureSwitchService: FeatureSwitchService,\n private configService: ConfigService\n ) {\n this.translate.translateResources(this.resources);\n if (!this.configService.isEmbedMode() && this.featureSwitchService.featureSwitch(FeatureSwitch.NotificationCenter)) {\n this.positionClass = 'inline';\n }\n }\n\n // Given error object , tries to find suitable error message\n public handleError(err: HttpErrorResponse, errorPrefix?: string, values?): string {\n if (!err || !err.status || !err.error) {\n return '';\n }\n let errorObj = err.error;\n // Do this to ensure that errorObj is valid json\n try {\n errorObj = JSON.parse(errorObj);\n } catch {}\n if (!errorObj.ErrorType) {\n return '';\n }\n if (err.error instanceof ErrorEvent) {\n // A client-side or network error occurred. Handle it accordingly.\n return '';\n } else {\n // The backend returned an unsuccessful response code.\n const errorType = errorObj.ErrorType;\n if (errorPrefix) {\n if (values) {\n const ErrorResource = {};\n ErrorResource[`${errorPrefix}_${errorType}`] = '';\n this.translate.translateResources(ErrorResource, values);\n return ErrorResource[`${errorPrefix}_${errorType}`] !== `${errorPrefix}_${errorType}`\n ? ErrorResource[`${errorPrefix}_${errorType}`]\n : this.resources[`${errorPrefix}_GENERAL`];\n }\n return this.resources[`${errorPrefix}_${errorType}`];\n }\n switch (err.status) {\n case 401:\n const errorResource = {};\n const errorKey = Errors[errorType]?.key ? `ErrorTypes_${Errors[errorType].key}` : Errors.GENERAL.key;\n errorResource[errorKey] = '';\n this.translate.translateResources(errorResource);\n return errorResource[errorKey] || '';\n default:\n return '';\n }\n }\n }\n\n // Toast success notification\n public success(message: string, isFullWidth = true) {\n if (!message) {\n return;\n }\n const template = `\n \n ${message}\n `;\n this.toastr.success(template, '', {\n timeOut: this.messageTimeout,\n enableHtml: true,\n positionClass: isFullWidth ? 'toast-bottom-full-width' : this.positionClass\n });\n\n // Accessability announce message\n this.liveAnnouncer.announce(message);\n }\n\n // Toast notification\n public notify(notification: INotification) {\n if (!notification?.text && !notification?.title) {\n return;\n }\n\n // In embed mode we show only error/critical notifications as strips\n if (this.configService.isEmbedMode()) {\n if (notification?.level === NotificationLevel.Error || notification?.level === NotificationLevel.Critical) {\n this.error(null, notification?.text, true, false, true);\n }\n\n return;\n }\n\n // Toaster service can get angular component on the module declaration.\n // after we move all toast to use the notifications format all of the templates will be deleted and used the component\n const template = `\n
\n ${notification?.icon ? `` : ''}\n ${notification?.title}\n \n
\n
\n ${notification?.text}\n \n
\n ${\n notification?.link?.src\n ? `\n \n `\n : ''\n }\n
`;\n this.toastr.success(template, '', {\n timeOut: this.messageTimeout,\n enableHtml: true,\n messageClass: 'vi-notification-card'\n });\n\n // Accessability announce message\n this.liveAnnouncer.announce(notification?.text);\n }\n\n // Toast error notification\n public error(\n err?: HttpErrorResponse | ErrorEvent,\n message?: string,\n isFullWidth = true,\n local = false,\n disableTimeOut = false,\n values?,\n errorPrefix?: string\n ) {\n if (!err && !message) {\n return;\n }\n const errorMessage = this.handleError(err as HttpErrorResponse, errorPrefix, values);\n if (errorMessage && !local) {\n message = errorMessage;\n }\n\n const template = `\n \n ${message}\n `;\n\n if (disableTimeOut) {\n this.toastr.error(template, '', {\n disableTimeOut: disableTimeOut,\n enableHtml: true,\n positionClass: isFullWidth ? 'toast-bottom-full-width' : this.positionClass\n });\n\n this.addToasterAccessibility();\n } else {\n this.toastr.error(template, '', {\n timeOut: this.messageTimeout,\n enableHtml: true,\n positionClass: isFullWidth ? 'toast-bottom-full-width' : this.positionClass\n });\n }\n\n // Accessability announce message\n this.liveAnnouncer.announce(message);\n }\n\n public clearAllToasts() {\n this.toastr.clear();\n }\n\n private addToasterAccessibility() {\n // Add focus + enter key handling\n this.focusManager.focusVia(() => {\n // Get exit button\n const inputElement = document.querySelector('.toast-close') as HTMLElement;\n\n // Add keyup event to exit on enter\n inputElement.addEventListener(\n 'keyup',\n function onEnterPress(e) {\n try {\n const keyCode = getKeyCode(e);\n\n if (keyCode === KeyCode.Enter) {\n // Stimulate clicking\n inputElement.click();\n inputElement.removeEventListener('keyup', onEnterPress);\n }\n } catch (error) {\n this.loggerService.log('Please add key to dictionary.', error);\n }\n }.bind(this)\n );\n\n // Return the focus element\n return {\n nativeElement: inputElement\n };\n });\n }\n}\n","import { IOneDSClientConfiguration } from './interfaces';\n\nconst noop = () => null;\n\nexport const defaultParams: IOneDSClientConfiguration = {\n appId: '',\n onEventSent: noop,\n onEventDiscarded: noop,\n telemetryInitializers: [],\n webAnalyticsConfiguration: {\n autoCapture: {\n pageView: false,\n click: false,\n scroll: false,\n onUnload: false,\n resize: false,\n onLoad: true,\n jsError: false,\n lineage: false\n }\n },\n propertyConfiguration: {\n populateOperatingSystemInfo: true,\n populateBrowserInfo: true,\n enableApplicationInsightsUser: true,\n enableApplicationInsightsTrace: true,\n dropIdentifiers: true\n }\n};\n","import { cloneDeep } from 'lodash-es';\nimport { ApplicationInsights, IExtendedTelemetryItem, IExceptionTelemetry, IPageViewTelemetry } from '@microsoft/1ds-analytics-web-js';\n\nimport { defaultParams } from './config';\nimport { merge } from '../../../../utils/object';\nimport { EventType, IOneDSClientConfiguration } from './interfaces';\n\nexport { EventType };\n\nexport class OneDSClient {\n public config: IOneDSClientConfiguration;\n private client: ApplicationInsights;\n private commonData: Object;\n\n constructor(params: IOneDSClientConfiguration) {\n this.initialize(params);\n }\n\n public trackEvent(event: IExtendedTelemetryItem, properties?: object) {\n this.client.trackEvent({\n ...event,\n data: merge(this.commonData, event.data, properties)\n });\n }\n\n public trackException(event: IExceptionTelemetry, properties?: object) {\n const exception = {\n message: event?.exception?.message,\n stack: (event?.exception)?.stack,\n severityLevel: event.severityLevel || 1\n };\n\n this.trackEvent({ name: EventType.Exception }, merge(event.properties, properties, exception));\n }\n\n public trackPageView(event: IPageViewTelemetry, properties?: object) {\n this.client.trackPageView({\n ...event,\n properties: merge(this.commonData, event.properties, properties)\n });\n }\n\n private initialize(params: IOneDSClientConfiguration) {\n this.client = new ApplicationInsights();\n this.config = merge(defaultParams, { ...params });\n // deep clone common data object so we won't accidentally mutate constructor arguments\n this.commonData = cloneDeep(this.config.commonData);\n\n const { onEventSent, onEventDiscarded, telemetryInitializers, commonData, ...extendedConfiguration } = this.config;\n\n telemetryInitializers.forEach(telemetryInitializer => this.client.addTelemetryInitializer(telemetryInitializer));\n\n this.client.initialize(extendedConfiguration, []);\n\n const propertyManager = this.client.getPropertyManager();\n if (propertyManager) {\n const propertiesContext = propertyManager.getPropertiesContext();\n if (propertiesContext) {\n propertiesContext.app.id = params.appId;\n }\n }\n\n this.client.addNotificationListener({\n eventsSent: onEventSent,\n eventsDiscarded: onEventDiscarded\n });\n }\n}\n","import { ITelemetryItem } from '@microsoft/1ds-core-js';\nimport { IExtendedConfiguration, IExtendedTelemetryItem } from '@microsoft/1ds-analytics-web-js';\n\nexport enum EventType {\n Exception = 'Ms.Web.ClientError',\n Performance = 'Ms.Web.PageViewPerformance'\n}\n\ntype ITelemetryInitializer = (item: IExtendedTelemetryItem) => boolean | void;\n\nexport interface IOneDSClientConfiguration extends IExtendedConfiguration {\n /**\n * app id to identify the origin of the data in upstream service for privacy matters\n */\n appId: string;\n /**\n * Common data to be added to all events\n */\n commonData?: Object;\n onEventSent?: (events: IExtendedTelemetryItem[]) => void;\n onEventDiscarded?: (events: ITelemetryItem[]) => void;\n telemetryInitializers?: ITelemetryInitializer[];\n /**\n * Configuration for metrics account\n */\n metrics?: {\n namespace: string;\n dimensions?: { [dimension: string]: string };\n };\n /**\n * Instrumentation key of resource. Either this or connectionString must be specified.\n */\n instrumentationKey?: string;\n}\n","import { Injectable } from '@angular/core';\n\nimport { getCookie } from '@common/modules/utils/cookie';\nimport { ApiService } from '@common/modules/api/services/api.service';\nimport { AccountPermission } from '@common/modules/shared/interfaces';\n\nimport { LocalStorageService } from '../../../shared/services/local-storage.service';\nimport { envTypes } from '../../../api/interfaces';\nimport { GuidPattern } from '../../../utils/regexes';\nimport { replaceJWTToken } from '../../../utils/string';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CommonTrackingDataService {\n public accountPermission: AccountPermission = null;\n private _accountType = '';\n private _isAmslessAccount: boolean;\n private _isAccountFaceGated: boolean;\n private readonly UNKNOWN = 'Unknown';\n private selectedAccountId = '';\n private selectedEdgeExtensionId = '';\n\n constructor(private localStorageService: LocalStorageService, private apiService: ApiService) {}\n\n public set accountId(id: string) {\n this.selectedAccountId = id;\n }\n\n public set edgeExtensionId(id: string) {\n this.selectedEdgeExtensionId = id;\n }\n\n public get edgeExtensionId(): string {\n return this.selectedEdgeExtensionId;\n }\n\n public get accountId(): string {\n try {\n if (this.selectedAccountId) {\n return this.selectedAccountId;\n }\n\n // Retrieve account id from url\n // Affect on media page and embed\n const path = window.location?.pathname;\n const regex = new RegExp(`${GuidPattern}`);\n const match = path?.match(regex);\n return match?.length ? match[0] : this.UNKNOWN;\n } catch (e) {\n // No access - can't retrieve account id\n return this.UNKNOWN;\n }\n }\n\n public get embedMode() {\n try {\n const path = window.location.pathname;\n const regex = new RegExp(/embed/i);\n const isEmbedRoute = regex.test(path);\n return isEmbedRoute && window.self !== window.top && !window.top.location.host.includes('.videoindexer.ai');\n } catch (e) {\n // No access to parent - meaning is embedded.\n return true;\n }\n }\n\n public get referrer(): string {\n try {\n const url = document.referrer || window.parent.location.href;\n return new URL(url).hostname;\n } catch (e) {\n // No access to parent nor to referrer.\n return this.UNKNOWN;\n }\n }\n\n public get location() {\n try {\n // First, try to get location from URL with location param\n // Affects on embed & media page\n const urlParams = new URLSearchParams(window.location.search);\n const location = urlParams.get('location');\n\n if (location) {\n return replaceJWTToken(location);\n }\n\n // Dev environment\n return replaceJWTToken(this.apiService.getApiLocation() || envTypes.DEV);\n } catch {\n return this.UNKNOWN;\n }\n }\n\n public get browserLang() {\n return window.navigator.language || window.navigator['userLanguage'];\n }\n\n public get locale(): string {\n try {\n // Try to get locale from local storage\n let locale = this.localStorageService.getItem('vi.locale');\n\n if (locale) {\n return replaceJWTToken(locale);\n }\n\n // Try to get from url\n const urlParams = new URLSearchParams(window.location.search);\n locale = urlParams.get('locale');\n\n if (locale) {\n // If there is a JWT token inside of locale, remove it\n return replaceJWTToken(locale);\n }\n\n return this.UNKNOWN;\n } catch (error) {\n return this.UNKNOWN;\n }\n }\n\n public get accountType(): string {\n // Return current account type\n // Affects while using the app after getAccount called\n if (this._accountType) {\n return this._accountType;\n }\n\n // Try to get from location\n if (this.location && this.location !== this.UNKNOWN) {\n return this.location.toLowerCase() === envTypes.TRIAL.toLowerCase() || this.location.toLowerCase() === envTypes.DEV.toLowerCase()\n ? this.location\n : envTypes.PAID.toLowerCase();\n }\n\n return this.UNKNOWN;\n }\n\n public set accountType(value: string) {\n this._accountType = value;\n }\n\n public get isAccountFaceGated(): boolean {\n return this._isAccountFaceGated;\n }\n\n public set isAccountFaceGated(value: boolean) {\n this._isAccountFaceGated = value;\n }\n\n public get isAmslessAccount(): boolean {\n return this._isAmslessAccount;\n }\n\n public set isAmslessAccount(value: boolean) {\n this._isAmslessAccount = value;\n }\n\n public get aiUserId(): string {\n const defaultUserId = 'AnonymousUser';\n\n // This cookie is set by 1ds script on our domain\n const aiCookie = getCookie('MSFPC');\n\n if (!aiCookie) {\n return defaultUserId;\n }\n\n const result = aiCookie.match(/GUID=(.*?)(&)/);\n return result?.length ? result[1] : defaultUserId;\n }\n\n // Effective type is an experimental feature, therefore it doesn't exist in the navigator types yet\n public get effectiveType(): string {\n return window.navigator['connection']?.['effectiveType'] || '';\n }\n}\n","export * from './track.service';\nexport * from './interfaces';\n","export enum EventCategory {\n ACCOUNTS = 'Accounts',\n AMS_MIGRATION = 'Migration',\n AUTH = 'Auth',\n HTTP = 'HTTP',\n // for backward compatibility\n AZURE_CONNECT = 'azure_connect',\n CUSTOMIZATION = 'Customization',\n DOWNLOAD = 'Download',\n EDITOR = 'Editor',\n EXCEPTIONS = 'Exceptions',\n FACE_GATE = 'FaceGate',\n GALLERY = 'Gallery',\n GENERAL = 'General',\n HEADER = 'Header',\n INDEXING_FORM = 'IndexingForm',\n INSIGHTS = 'Insights',\n INVITE = 'Invite',\n MEDIA = 'Media',\n NOTIFICATIONS = 'Notifications',\n DIRECTORIES = 'Directories',\n EDGE = 'Edge',\n SUPPORTED_LANGUAGES = 'SupportedLanguages',\n PLAYER = 'Player',\n CORE_PLAYER = 'Core_Player',\n EDITOR_CORE_PLAYER = 'Editor_Core_Player',\n PRESET = 'Preset',\n SDK = 'SDK',\n SETTINGS = 'Settings',\n SHELL = 'Shell',\n SIDE_BAR = 'SideBar',\n STRIP = 'Strip',\n TIMELINE = 'Timeline',\n // for backward compatibility\n TIMELINE_DATA = 'Timeline-data',\n UPLOAD = 'Upload',\n RE_INDEX = 'ReIndex',\n INDEXING_SETTINGS = 'IndexingSettings',\n INDEXING_REVIEW = 'IndexingReview',\n USER_SETTINGS = 'UserSettings',\n USERS = 'Users',\n Language_ID = 'LanguageId',\n TEXTUAL_SUMMARY = 'TextualSummary',\n LIVE = 'Live'\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { ITelemetryItem } from '@microsoft/1ds-core-js';\nimport { IExtendedTelemetryItem } from '@microsoft/1ds-analytics-web-js';\n\nimport { LoggerService } from '../logger/logger.service';\nimport { ICustomEventsTrackData } from '../interfaces';\nimport { ConfigService } from '../config/config.service';\nimport { OneDSClient, EventType as OneDSEventType } from './1DSClient';\nimport { SessionHandlerService } from '../../../shared/services/session-handler.service';\nimport { CommonTrackingDataService } from './common-tracking-data.service';\nimport { GuidPattern, VideoIdPattern } from '../../../utils/regexes';\nimport { IVIRoute } from '../../../../../apps/web/src/app/routing/interfaces';\nimport { replaceJWTToken } from '../../../utils/string';\nimport { EventCategory } from './interfaces';\nimport { SanitizerService } from '../sanitizer/sanitizer.service';\n\nenum EventType {\n Action = 'FeActionEvent',\n Timing = 'FePageTimingEvent'\n}\n\nexport interface IEventProperties {\n data?: object;\n category?: EventCategory;\n // @TODO: remove this property when all events will be migrated to use the data property\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [key: string]: any;\n}\n\n@Injectable()\nexport class TrackService {\n private commonData: ICustomEventsTrackData;\n private onedsClient: OneDSClient;\n private readonly SERVICE_NAME = 'WebApp';\n private readonly ONE_DS_APPLICATION_ID = 'js:videoindexer.ai';\n\n constructor(\n private logger: LoggerService,\n private configService: ConfigService,\n private sessionHandlerService: SessionHandlerService,\n private commonTrackingDataService: CommonTrackingDataService,\n private activeRoute: ActivatedRoute,\n private sanitizerService: SanitizerService\n ) {\n this.setOnError();\n this.setCommonData();\n\n this.onedsClient = new OneDSClient({\n appId: this.ONE_DS_APPLICATION_ID,\n instrumentationKey: this.configService?.Config?.instrumentationKey,\n endpointUrl: this.configService?.Config?.collectorUrl || undefined,\n commonData: this.commonData,\n onEventSent: (events: ITelemetryItem[]) => events.map(this.logEvent.bind(this)),\n propertyConfiguration: {\n serviceName: this.SERVICE_NAME,\n env: this.monitoringEnvironment,\n gpcDataSharingOptIn: false\n },\n telemetryInitializers: [this.performanceEventTelemetryInitializer.bind(this)]\n });\n\n this.logger.log('[track] init 1DS Client', this.onedsClient.config);\n }\n\n private get runtimeData() {\n return {\n locale: this.commonTrackingDataService.locale,\n accountId: this.commonTrackingDataService.accountId,\n edgeExtensionId: this.commonTrackingDataService.edgeExtensionId,\n sessionId: this.sessionHandlerService.sessionId,\n sessionFromCookie: this.sessionHandlerService.sessionFromCookie,\n accountType: this.commonTrackingDataService.accountType,\n amsless: this.commonTrackingDataService.isAmslessAccount,\n faceGated: this.commonTrackingDataService.isAccountFaceGated,\n userId: this.commonTrackingDataService.aiUserId,\n effectiveType: this.commonTrackingDataService.effectiveType,\n accountPermission: this.commonTrackingDataService.accountPermission\n };\n }\n\n public track(eventName: string, additionalProperties: IEventProperties = {}) {\n const { data = {}, ...restAdditionalProperties } = additionalProperties;\n const cleanedData = this.sanitizerService.sanitizeObject(data);\n const properties = Object.assign({}, this.runtimeData, {\n ...restAdditionalProperties,\n data: JSON.stringify(cleanedData),\n context: eventName\n });\n\n this.onedsClient.trackEvent({ name: EventType.Action }, properties);\n }\n\n public trackPageView(pageName: string) {\n this.onedsClient.trackPageView({ name: pageName, uri: location.origin + location.pathname }, this.runtimeData);\n }\n\n public trackError(error: Error, properties: object = {}) {\n const data = Object.assign({}, this.runtimeData, properties);\n const cleanedData = this.sanitizerService.sanitizeObject(data);\n this.onedsClient.trackException(\n {\n exception: error\n },\n cleanedData\n );\n }\n\n public trackPageTimings(properties: object) {\n const data = Object.assign({}, this.runtimeData, properties);\n this.onedsClient.trackEvent({ name: EventType.Timing }, data);\n }\n\n public trackPerformance(eventName: string, category: EventCategory, time: number) {\n this.track(`${eventName}.timing`, {\n category,\n data: { measureTime: time }\n });\n }\n\n private logEvent(event: ITelemetryItem) {\n this.logger.log(`[track] ${event.name} ${event.data?.context}`, { event });\n }\n\n private performanceEventTelemetryInitializer(item: IExtendedTelemetryItem) {\n if (item?.baseData?.refUri) {\n // Remove token\n item.baseData.refUri = replaceJWTToken('' + item?.baseData?.refUri);\n }\n if (!([OneDSEventType.Performance, EventType.Timing]).includes(item.name)) {\n return;\n }\n\n // Get route from router\n const routeData = this.activeRoute?.snapshot?.firstChild?.data as IVIRoute;\n\n let pageName = '';\n if (routeData?.traceName) {\n pageName = `route.${routeData.traceName}`;\n } else {\n // Fallback - take from url\n pageName = location.pathname\n .replace(new RegExp(`\\/${GuidPattern}`, 'g'), '')\n .replace(new RegExp(`\\/${VideoIdPattern}`, 'g'), '')\n // remove leading/trailing back slashes\n .replace(/^\\/|\\/$/g, '')\n // convert inner backslashes to dots so eventually the result will be in the form of\n // route.subroute\n .replace(/\\//g, '.');\n }\n\n this.logger.log(`[track] Set page name to ${pageName}`);\n\n // Update base data\n Object.assign(item.baseData, this.runtimeData, { name: pageName });\n }\n\n private get monitoringEnvironment(): string {\n const monitoringEnvironment = this.configService?.Config?.monitoringEnvironment || window?.viewContext?.monitoringEnvironment;\n return monitoringEnvironment || 'Local';\n }\n\n private get appVersion(): string {\n return this.configService.getCodeVersion();\n }\n\n private setCommonData() {\n this.commonData = {\n monitoringEnvironment: this.monitoringEnvironment,\n host: window.location.host,\n appVersion: this.appVersion,\n category: EventCategory.GENERAL,\n serviceName: this.SERVICE_NAME,\n browserLanguage: this.commonTrackingDataService.browserLang,\n embed: this.commonTrackingDataService.embedMode.toString(),\n location: this.commonTrackingDataService.location,\n referrer: this.commonTrackingDataService.referrer\n };\n }\n\n private setOnError() {\n window.onerror = (message, url, lineNumber, columnNumber, error) => {\n // Take error data\n const errorData = {\n message: message,\n scriptUrl: url,\n lineNumber: lineNumber,\n columnNumber: columnNumber\n };\n let currentError = error;\n if (!currentError) {\n // Try to retrieve error data from message if error is undefined\n currentError = message ? (message as unknown as Error) : new Error('Window on Error');\n }\n this.trackError(currentError, errorData);\n };\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport urlParse from 'url-parse';\n\n@Injectable()\nexport class UrlService {\n constructor() {\n window['global'] = window['global'] || null;\n }\n\n public getQueryParam(queryParam: string) {\n return this.urlParse.query[queryParam];\n }\n\n public getRouteParam(param: string) {\n return this.captureParamFromUrl(param, this.url);\n }\n\n public getParam(param: string) {\n return this.getQueryParam(param) || this.getRouteParam(param);\n }\n\n public paramsToUrl(obj): string {\n // Check obj not null or empty\n if (!obj) {\n return '';\n }\n let str = '';\n const params = Object.keys(obj);\n params.forEach(param => {\n // In case of an empty value, don't chain it to the url params\n if (!obj[param]) {\n return;\n }\n if (str !== '') {\n str += '&';\n }\n str += param + '=' + encodeURIComponent(obj[param]);\n });\n\n return str;\n }\n\n private captureParamFromUrl(param, url): string {\n if (!param || (param !== 'videoId' && param !== 'accountId')) {\n return '';\n }\n\n const idRegex = /(videos|[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3,4}-[0-9a-f]{3,4}-[0-9a-f]{12})\\/([0-9a-zA-Z]{10,12})/;\n const accountRegex = /(accounts|insights|player|media)\\/([0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3,4}-[0-9a-f]{3,4}-[0-9a-f]{12})/;\n let regex = idRegex;\n if (param === 'accountId') {\n regex = accountRegex;\n }\n const match = url.match(regex);\n\n return (match && match[2]) || '';\n }\n\n private get url() {\n return window.location.href;\n }\n\n private get urlParse() {\n return urlParse(this.url, null, true);\n }\n}\n","import { Injectable, ViewContainerRef } from '@angular/core';\n\nimport { BehaviorSubject } from 'rxjs';\nimport { take } from 'rxjs/operators';\n\nimport { LoggerService } from '@common/modules/core/services/logger/logger.service';\nimport { LazyLoadService } from '@common/modules/core/services/lazy-load/lazy-load.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class VIMainSidebarService {\n public isOpenSubject: BehaviorSubject;\n\n private viSidebar: ViewContainerRef;\n\n constructor(private logger: LoggerService, private lazyLoadService: LazyLoadService) {\n this.isOpenSubject = new BehaviorSubject(false);\n }\n\n public closeSidebar() {\n this.viSidebar.clear();\n this.isOpenSubject.next(false);\n }\n\n public toggleSidebar() {\n this.isOpenSubject.pipe(take(1)).subscribe(open => {\n this.isOpenSubject.next(!open);\n });\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public async openSidebar(LazyModule: any, LazyComponent: any, data?) {\n this.viSidebar.clear();\n await this.lazyLoadService.loadComponent(LazyModule, LazyComponent, this.viSidebar, data);\n this.isOpenSubject.next(true);\n }\n\n public setVISidebarElement(element) {\n this.viSidebar = element;\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const WINDOW = new InjectionToken('WindowToken');\n","import { Injectable, NgZone } from '@angular/core';\n\nimport { TrackService } from '../track';\n\n@Injectable()\nexport class ZoneWrapperService {\n constructor(private zone: NgZone, private track: TrackService) {}\n\n public runOutsideAngular(callback: () => void, onError = _ => null) {\n try {\n this.zone.runOutsideAngular(callback);\n } catch (error) {\n this.track.trackError(error);\n onError(error);\n }\n }\n\n public run(callback: () => void, onError = _ => null) {\n try {\n this.zone.run(callback);\n } catch (error) {\n this.track.trackError(error);\n onError(error);\n }\n }\n}\n","import { IAction, UIActionTypeOptions } from '../shared/interfaces';\nimport { ITimelineSegment } from '../timeline/interfaces';\nimport { UIFilterType } from '../shared/components/filter-item/interfaces';\n\nexport interface IUIVideoHeader {\n thumbnail: string;\n name: string;\n duration: number;\n privacyMode: Microsoft.VideoIndexer.Contracts.PrivacyMode;\n isTimelineCollapsed: boolean;\n actionMenu: any;\n publishedUrl: string;\n viewToken: string;\n publishedProxyUrl: string;\n contentLoadState: UITimelineContentLoadState;\n selectedSegments: ITimelineSegment;\n durationOffset: number;\n state: string;\n accountId: string;\n errorType?: VideoErrorType;\n}\n\nexport enum VideoErrorType {\n INDEX = 'INDEX',\n STREAMING = 'STREAMING'\n}\n\nexport interface IUIVideoTimeline {\n playlistId: string;\n videos: Microsoft.VideoIndexer.Contracts.VideoContract[];\n videosRanges: Microsoft.VideoIndexer.Contracts.VideoRange[];\n isBase: boolean;\n dir: string;\n durationInSeconds: number;\n}\n\nexport interface IUIVideoItem {\n id: string;\n uniqueId: string;\n videoHeader: IUIVideoHeader;\n videoTimeline?: IUIVideoTimeline;\n}\n\nexport interface IVideoExpandedState {\n id: string;\n isCollapsed: boolean;\n}\n\nexport enum UIEditorActionType {\n DELETE_VIDEO = 'DELETE_VIDEO',\n SELECT_ALL = 'SELECT_ALL',\n DESELECT_ALL = 'DESELECT_ALL',\n MOVE_UP = 'MOVE_UP',\n MOVE_DOWN = 'MOVE_DOWN',\n ALL_INSIGHTS_FILTER = 'ALL_INSIGHTS_FILTER',\n PEOPLE_FILTER = 'PEOPLE_FILTER',\n TOPICS_FILTER = 'TOPICS_FILTER',\n KEYWORDS_FILTER = 'KEYWORDS_FILTER',\n EMOTIONS_FILTER = 'EMOTIONS_FILTER',\n SENTIMENTS_FILTER = 'SENTIMENTS_FILTER',\n LABELS_FILTER = 'LABELS_FILTER',\n SPEAKERS_FILTER = 'SPEAKERS_FILTER',\n TRANSCRIPT_FILTER = 'TRANSCRIPT_FILTER',\n OCR_FILTER = 'OCR_FILTER',\n NAMED_ENTITIES_FILTER = 'NAMED_ENTITIES_FILTER',\n ACOUSTIC_EVENT_FILTER = 'ACOUSTIC_EVENT_FILTER',\n TIME_FILTER = 'TIME_FILTER',\n INCLUDE_FILTER = 'INCLUDE_FILTER',\n EXCLUDE_FILTER = 'EXCLUDE_FILTER',\n BACK = 'BACK',\n CHANGE_PRIVACY = 'CHANGE_PRIVACY',\n DOWNLOAD = 'DOWNLOAD',\n SAVE = 'SAVE',\n PUBLISH = 'PUBLISH',\n SEARCH_PEOPLE_FILTER = 'SEARCH_PEOPLE_FILTER',\n SEARCH_CHANNEL_FILTER = 'SEARCH_CHANNEL_FILTER',\n SEARCH_OWNER_FILTER = 'SEARCH_OWNER_FILTER',\n RENDER_AND_DOWNLAD = 'RENDER_AND_DOWNLAD',\n INDEXING_PRESET_DEFAULT = 'INDEXING_PRESET_DEFAULT',\n INDEXING_PRESET_AUDIO_ONLY = 'INDEXING_PRESET_AUDIO_ONLY',\n INDEXING_PRESET_NOISE_REDUCE = 'INDEXING_PRESET_NOISE_REDUCE',\n INDEXING_PRESET_VIDEO_ONLY = 'INDEXING_PRESET_VIDEO_ONLY',\n INDEXING_STREAMING_SINGLE_BITRATE = 'INDEXING_STREAMING_SINGLE_BITRATE',\n INDEXING_STREAMING_ADAPTIVE_BITRATE = 'INDEXING_STREAMING_ADAPTIVE_BITRATE',\n INDEXING_STREAMING_NO = 'INDEXING_STREAMING_NO',\n PROCEED_RENDER = 'PROCEED_RENDER',\n CANCEL_DOWNLOAD = 'CANCEL_DOWNLOAD',\n CANCEL_RENDER = 'CANCEL_RENDER',\n REMOVE_USER_FEEDBACK_STRIP = 'REMOVE_USER_FEEDBACK_STRIP',\n BRANDS_FILTER = 'BRANDS_FILTER',\n NAMED_PEOPLE_FILTER = 'NAMED_PEOPLE_FILTER',\n NAMED_LOCATIONS_FILTER = 'NAMED_LOCATIONS_FILTER'\n}\n\nexport enum UIEditorFilterType {\n DROP_DOWN = 'DROP_DOWN',\n TEXT = 'TEXT',\n TIME = 'TIME'\n}\n\nexport enum UITimelineContentLoadState {\n LOADING = 'LOADING',\n LOADED = 'LOADED',\n LOAD_ERROR = 'LOAD_ERROR'\n}\n\nexport enum UITimelineScrollItemSelectState {\n NOT_SELECTED = 'NOT_SELECTED',\n SEMI_HOVER = 'SEMI_HOVER',\n SEMI_SELECTED = 'SEMI_SELECTED',\n SELECTED = 'SELECTED'\n}\n\nexport type IncludeExcludeType = UIEditorActionType.INCLUDE_FILTER | UIEditorActionType.EXCLUDE_FILTER;\n\nexport enum UIProjectRenderStatus {\n NOT_STARTED,\n IN_PROGRESS,\n SUCCEEDED,\n SUCCEEDED_NOT_SHOW_STRIP\n}\n\nexport interface IUIEditorFilterItem {\n id: string;\n index: number;\n includeExcludeType: IncludeExcludeType;\n actionType: UIActionTypeOptions;\n text: string[];\n value: any[];\n}\n\nexport interface IUIFilterItem {\n id: string;\n index: number;\n actionType: UIActionTypeOptions;\n text: string;\n value: any;\n}\n\nexport interface IUIFilterIssue {\n placeHolderText: string;\n placeHolderKey: string;\n filterAction: IAction;\n type: UIFilterType;\n enableMultipleSelection?: boolean; // Relevant only for UIFilterType = DROP_DOWN\n placeHolderIcon?: string;\n}\n\nexport interface IAppearance {\n from: number;\n to: number;\n}\n\nexport interface ITimeFilter {\n includeExcludeType: IncludeExcludeType;\n appearances: IAppearance[];\n insightType: UIActionTypeOptions;\n}\n\nexport interface ITextFilter {\n includeExcludeType: IncludeExcludeType;\n insightType: UIActionTypeOptions;\n wordArr: string[];\n}\n\nexport interface IEditorFilterForTimeline {\n timeFilters: ITimeFilter[];\n textFilters: ITextFilter[];\n}\n\nexport interface IUIInsightsDataToFilter {\n people: IAction[];\n namedEntities: IAction[];\n labels: IAction[];\n keywords: IAction[];\n speakers: IAction[];\n emotions: IAction[];\n acousticEvents: IAction[];\n}\n\nexport interface IAddVideosParams {\n accountId: string;\n topicsFilter: string;\n sourceLanguage?: string;\n}\n\nexport interface IVideoSelectAllScrollItemsToggle {\n uniqueId: string;\n isSelected: boolean;\n}\n\nexport interface CapsuleInsights {\n subType?: string;\n name?: string;\n text?: string;\n id: number;\n instances: Microsoft.VideoIndexer.Contracts.ElementInstance[];\n}\n\nexport enum AriaLivePolitenessEnum {\n OFF = 'off',\n POLITE = 'polite',\n ASSERTIVE = 'assertive'\n}\n","/* eslint-disable */\nimport { Injectable } from '@angular/core';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { TrackService } from '../core/services/track';\nimport { IUILanguage } from '../insights/components/action-bar/interfaces';\nimport { BoundingBoxType } from '../player/components/player/Plugins/body-tracking/interfaces';\nimport { BoundingBoxPropMsgName } from './interfaces';\n\n@Injectable()\nexport class CommunicationService {\n public changeLanguageSubject: Subject;\n public jumpToSubject: Subject;\n public refreshTracksSubject: Subject;\n public timeUpdateSubject: Subject;\n public pauseSubject: Subject;\n public markSelectedPersonSubject: BehaviorSubject;\n public markSelectedFaceSubject: BehaviorSubject;\n public markSelectedLogoSubject: BehaviorSubject;\n public markSelectedDetectedObjectSubject: BehaviorSubject;\n\n public onPlayerPausedSubject: Subject;\n public onFaceEditingSubject: Subject;\n constructor(private track: TrackService) {\n this.changeLanguageSubject = new Subject();\n this.jumpToSubject = new Subject();\n this.timeUpdateSubject = new Subject();\n this.refreshTracksSubject = new Subject();\n this.pauseSubject = new Subject();\n this.markSelectedPersonSubject = new BehaviorSubject(null);\n this.markSelectedFaceSubject = new BehaviorSubject(null);\n this.markSelectedDetectedObjectSubject = new BehaviorSubject(null);\n this.onPlayerPausedSubject = new Subject();\n this.onFaceEditingSubject = new Subject();\n }\n\n public jumpTo(time: number): void {\n if (time === 0) {\n time = 0.1;\n }\n\n // If embedded with angular / not from iframe\n if (this.isIframe()) {\n // Use post message\n if ('postMessage' in window) {\n window.parent.postMessage({ time: time, origin: window.location.origin }, '*');\n }\n }\n this.jumpToSubject.next(time);\n }\n\n public markSelectedItem(bbType: BoundingBoxType, id: number): void {\n let propMsgName = '';\n switch (bbType) {\n case BoundingBoxType.BODY:\n propMsgName = BoundingBoxPropMsgName.PERSON_ID;\n this.markSelectedPersonSubject.next(id);\n break;\n case BoundingBoxType.FACE:\n propMsgName = BoundingBoxPropMsgName.FACE_ID;\n this.markSelectedFaceSubject?.next(id);\n break;\n case BoundingBoxType.OBJECT:\n propMsgName = BoundingBoxPropMsgName.OBJECT_ID;\n // TODO: add to insights and select the first as default.\n this.markSelectedDetectedObjectSubject?.next(id);\n break;\n }\n\n // If embedded with angular / not from iframe\n if (this.isIframe()) {\n // Use post message\n if ('postMessage' in window) {\n window.parent.postMessage({ [propMsgName]: id, origin: window.location.origin }, '*');\n }\n }\n }\n\n public refreshTracks(): void {\n // If embedded with angular / not from iframe\n if (this.isIframe()) {\n // Use post message\n if ('postMessage' in window) {\n window.parent.postMessage({ refreshTracks: true, origin: window.location.origin }, '*');\n }\n }\n this.refreshTracksSubject.next();\n }\n\n public faceUpdated(id: number): void {\n // If embedded with angular / not from iframe\n if (this.isIframe()) {\n // Use post message\n if ('postMessage' in window) {\n window.parent.postMessage({ face_updated_id: id, origin: window.location.origin }, '*');\n }\n }\n this.onFaceEditingSubject.next(id);\n }\n\n public pause(): void {\n // If embedded with angular / not from iframe\n if (this.isIframe()) {\n // Use post message\n if ('postMessage' in window) {\n window.parent.postMessage({ pause: true, origin: window.location.origin }, '*');\n }\n }\n this.pauseSubject.next();\n }\n\n public isIframe(): boolean {\n try {\n return window.self !== window.top;\n } catch (e) {\n return true;\n }\n }\n\n public changeLanguage(languageObjToPlayer: IUILanguage) {\n if (!languageObjToPlayer) {\n return;\n }\n // Send to player through postMessage\n if ('postMessage' in window) {\n languageObjToPlayer.key = languageObjToPlayer.value;\n window.parent.postMessage({ language: languageObjToPlayer, origin: window.location.origin }, '*');\n }\n this.changeLanguageSubject.next(languageObjToPlayer);\n }\n\n public renderVideoAndDownload() {\n if ('postMessage' in window) {\n window.parent.postMessage({ renderAndDownload: '1', origin: window.location.origin }, '*');\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Subject } from 'rxjs';\n\nimport { sortBy, find, remove, cloneDeep, uniqBy, filter, difference } from 'lodash-es';\n\nimport { IUIFace, IVideoIdToIUIFace, UIFaceType } from '../insights/components/faces/interfaces';\nimport { IUIAppearance, IUITab } from '../insights/interfaces';\nimport { getSeconds } from '../utils/time';\nimport { ApiService } from '../api/services/api.service';\nimport { AuthService } from '../auth/services/auth.service';\nimport { InsightsCommonUtilsService } from './insights-common-utils.service';\nimport { resources } from './resources';\nimport { InsightsImagesService } from '../shared/components/insights-images/insights-images.service';\nimport { InsightsService } from '../insights/services/insights.service';\nimport { IUIInsightJsonKey, IInsightJsonKeyType, SpriteType, IUIInsightNoneJsonKey } from './interfaces';\nimport { TranslateHelperService } from '../translation/services/translate-helper.service';\nimport { ITabListTab } from '../shared/components/tablist/interfaces';\nimport { DeepPartial } from '../shared/interfaces';\n\n@Injectable()\nexport class InsightsCommonDataService {\n public personDataUpdate: Subject;\n public facesDataChange: Subject;\n\n // Private\n private tabs: ITabListTab[] = [];\n private resources = resources;\n private videoIndex: Microsoft.VideoIndexer.Contracts.PlaylistContractV2;\n private preparedVideosData: IVideoIdToIUIFace[] = [];\n private summarizedInsights: Microsoft.VideoIndexer.Contracts.SummarizedInsightsV2;\n\n constructor(\n private apiService: ApiService,\n private authService: AuthService,\n private utilsService: InsightsCommonUtilsService,\n private translate: TranslateHelperService,\n private insightsImagesService: InsightsImagesService,\n private insightsService: InsightsService\n ) {\n this.personDataUpdate = new Subject();\n this.facesDataChange = new Subject();\n }\n\n public setVideoIndex(videoIndex: DeepPartial) {\n this.videoIndex = cloneDeep(videoIndex);\n }\n\n public clearSummarizeInsights() {\n this.summarizedInsights = null;\n }\n\n public setSummarizeInsights(summarizedInsights: Microsoft.VideoIndexer.Contracts.SummarizedInsightsV2) {\n /* Get all id's that exist in summarized insights\n Summarized insights contain special data -\n * faces appearances.\n * Unique faces (Faces that were combined will appear once).\n */\n // Summarize insights only appear on timeline.\n // If faces has been set without summarize insights, set missing data\n if (this.summarizedInsights) {\n return;\n }\n\n this.summarizedInsights = summarizedInsights;\n\n // If there is an existing faces data, merge seen duration data\n const videoID = this.videoIndex.id;\n const peopleFaces =\n this.preparedVideosData[videoID] && this.preparedVideosData[videoID][UIFaceType.people]\n ? this.preparedVideosData[videoID][UIFaceType.people]\n : [];\n\n for (const face of peopleFaces) {\n face.seenDurationRatio = this.getSeenDurationRatio(this.summarizedInsights, face.id, IUIInsightJsonKey.faces);\n }\n }\n\n public getVideoIndex() {\n return this.videoIndex;\n }\n\n public getFacesByType(videoId: string, nameFilter?: string, facesType?: UIFaceType, forcePrepareData: boolean = false) {\n const faces = this.preparedVideosData[videoId] && this.preparedVideosData[videoId][facesType];\n if (!faces || forcePrepareData) {\n if (!this.preparedVideosData[videoId]) {\n this.preparedVideosData[videoId] = {};\n }\n this.preparedVideosData[videoId][facesType] = cloneDeep(this.prepareFaces(nameFilter, facesType));\n return cloneDeep(this.preparedVideosData[videoId][facesType]);\n } else {\n return this.filterByName(cloneDeep(faces), nameFilter);\n }\n }\n\n public getJsonKeyType(facesType: UIFaceType) {\n return facesType === UIFaceType.people ? IUIInsightJsonKey.faces : '';\n }\n\n public updateFaceLoading(videoId: string, loading: boolean, id: number, facesType: UIFaceType) {\n const faces = this.preparedVideosData[videoId] && this.preparedVideosData[videoId][facesType];\n if (!faces) {\n return;\n }\n const face = find(faces, f => {\n return f.id === id;\n });\n if (face) {\n face.loading = loading;\n }\n }\n\n public getSeenDurationRatio(\n summarizedInsights: Microsoft.VideoIndexer.Contracts.SummarizedInsightsV2,\n faceId,\n type: IInsightJsonKeyType = IUIInsightJsonKey.faces\n ) {\n const face = this.getFaceFromSummarize(summarizedInsights, faceId, type);\n return face ? Number((face.seenDurationRatio * 100).toFixed(2)) : 0;\n }\n\n public getFaceFromSummarize(\n summarizedInsights: Microsoft.VideoIndexer.Contracts.SummarizedInsightsV2,\n id: number,\n type: IInsightJsonKeyType = IUIInsightJsonKey.faces\n ) {\n if (!summarizedInsights || (summarizedInsights && !summarizedInsights[type])) {\n return;\n }\n return find(summarizedInsights[type], f => {\n return f.id === id;\n });\n }\n\n public getSpriteUrl(\n accountId: string,\n videoId: string,\n index: number,\n spriteSize: number,\n spriteType: IUIInsightJsonKey | IUIInsightNoneJsonKey | UIFaceType | SpriteType\n ) {\n const page = Math.floor(index / spriteSize);\n\n if (this.insightsService.customImagesLocation) {\n return this.apiService.Account.Video.getThumbnailSpriteCustomUrl(this.insightsService.customImagesLocation, page);\n } else if (accountId && videoId) {\n let accessToken = this.authService.getUserAccessTokenOrEmptyString(videoId, accountId);\n\n // Fallback - if access token is empty try to get from account token\n if (!accessToken) {\n accessToken = this.authService.getUserAccessTokenOrEmptyString(null, accountId);\n }\n return this.apiService.Account.Video.getSpriteUrl(accountId, videoId, accessToken, page, this.getSpriteType(spriteType));\n } else {\n return this.apiService.Account.Video.getTestThumbnailSpriteUrl(page);\n }\n }\n\n public updateFaceName(videoId: string, id: number, name: string, facesType: UIFaceType) {\n const faces: IUIFace[] = this.preparedVideosData[videoId] && this.preparedVideosData[videoId][facesType];\n if (!faces) {\n return;\n }\n\n const face = find(faces, f => {\n return f.id === id;\n });\n\n // Check if this name is already exist\n // Check if name wasn't changed to a celebrity (referenceId refers to a celebrity)\n const samePersonName = find(faces, person => {\n return person.name === name && !person.referenceId;\n });\n\n this.updatePersonNameData(face, name, facesType);\n\n this.personDataUpdate.next(videoId);\n\n if (!samePersonName) {\n return;\n }\n\n this.updateDuplicateName(samePersonName, face, faces, videoId, facesType);\n }\n\n public updatePersonNameData(face: IUIFace | Microsoft.VideoIndexer.Contracts.Face, name: string, facesType: UIFaceType) {\n if (face) {\n face.name = name;\n\n // If a celebrity name has been change, remove it's description - not a celebrity\n if (face.referenceId) {\n face.referenceId = '';\n face.description = '';\n if (facesType === UIFaceType.people) {\n face[`referenceType`] = '';\n face[`title`] = '';\n }\n }\n }\n }\n\n public removeFace(videoId: string, id: number, faceType: UIFaceType) {\n const faces: IUIFace[] = this.preparedVideosData[videoId] && this.preparedVideosData[videoId][faceType];\n remove(faces, (face: IUIFace) => {\n return face.id === id;\n });\n\n for (const video of this.videoIndex.videos) {\n remove(video.insights.faces, (face: Microsoft.VideoIndexer.Contracts.Face) => {\n return face.id === id;\n });\n }\n }\n\n public getTabs() {\n if (!this.tabs.length) {\n this.initTabs();\n }\n return this.tabs;\n }\n\n private filterByName(faces: IUIFace[], nameFilter: string): IUIFace[] {\n if (nameFilter) {\n return filter(faces, face => {\n return face.name.toLowerCase().includes(nameFilter.toLowerCase());\n });\n } else {\n return faces;\n }\n }\n\n private prepareFaces(customFilter?: string, facesType: UIFaceType = UIFaceType.people) {\n let faces: Microsoft.VideoIndexer.Contracts.Face[] = [];\n let UIFaces: IUIFace[] = [];\n const jsonKeyType: IInsightJsonKeyType = this.getJsonKeyType(facesType);\n if (!this.utilsService.hasData(jsonKeyType, this.videoIndex)) {\n return UIFaces;\n }\n\n // Get all faces\n this.videoIndex.videos.forEach(video => {\n let videoInsights: Microsoft.VideoIndexer.Contracts.Face[];\n switch (jsonKeyType) {\n case IUIInsightJsonKey.faces:\n videoInsights = video.insights.faces;\n break;\n }\n // If current video has faces data\n if (videoInsights) {\n videoInsights.forEach(face => {\n face['shortId'] = video.id;\n face['faceType'] = jsonKeyType;\n faces.push(face);\n });\n }\n });\n\n // Sort faces by id for matching the sprite\n faces = sortBy(faces, ['shortId', 'id']);\n // Create UI view model.\n faces.forEach((f, i) => {\n if (customFilter && !f.name.toLowerCase().includes(customFilter.toLowerCase())) {\n return UIFaces;\n }\n const personAppearances: IUIAppearance[] = [];\n\n f.instances.forEach(appearance => {\n personAppearances.push({\n adjustedStart: appearance.adjustedStart,\n endSeconds: getSeconds(appearance.adjustedEnd),\n startSeconds: getSeconds(appearance.adjustedStart)\n });\n });\n\n const face: IUIFace = {\n spriteIndex: i,\n description: f.description,\n appearances: personAppearances,\n id: f.id,\n selected: false,\n title: f.title,\n name: f.name,\n referenceId: f.referenceId,\n referenceType: f.referenceType,\n seenDurationRatio: this.summarizedInsights ? this.getSeenDurationRatio(this.summarizedInsights, f.id, jsonKeyType) : null,\n positionTiny: this.insightsImagesService.getSpritePosition(i, 32, 100),\n positionSmall: this.insightsImagesService.getSpritePosition(i, 40, 100),\n positionLarge: this.insightsImagesService.getSpritePosition(i, 72, 100),\n spriteUrl: this.getSpriteUrl(this.videoIndex.accountId, this.videoIndex.id, i, 100, facesType),\n style: null,\n highQuality: f.highQuality,\n selectedStyle: null,\n timelineStyle: null,\n confidence: Number((f.confidence * 100).toFixed(2)),\n knownPersonId: f.knownPersonId ? f.knownPersonId : null,\n videoId: f['shortId']\n };\n\n const itemResources = { PersonComponentAppearsDuration: '' };\n this.translate.translateResources(itemResources, { personSeenDuration: face.seenDurationRatio });\n face.appearTitle = itemResources.PersonComponentAppearsDuration;\n face.style = this.insightsImagesService.getThumbStyle(face, face.positionSmall);\n face.selectedStyle = this.insightsImagesService.getThumbStyle(face, face.positionLarge);\n face.timelineStyle = this.insightsImagesService.getThumbStyle(face, face.positionTiny);\n UIFaces.push(face);\n });\n\n UIFaces = this.removeDuplicateId(UIFaces);\n UIFaces = this.removeDuplicateName(UIFaces, jsonKeyType);\n UIFaces = this.sortByKnownAndSeenDuration(UIFaces);\n return UIFaces;\n }\n\n private getSpriteType(type: IUIInsightJsonKey | IUIInsightNoneJsonKey | UIFaceType | SpriteType): SpriteType {\n switch (type) {\n case IUIInsightJsonKey.faces:\n return SpriteType.Faces;\n case IUIInsightJsonKey.observedPeople:\n return SpriteType.ObservedPeople;\n case IUIInsightJsonKey.clapperboards:\n return SpriteType.Clapperboards;\n case IUIInsightNoneJsonKey.colorBars:\n return SpriteType.ColorBars;\n default:\n return type;\n }\n }\n\n private sortByKnownAndSeenDuration(people: IUIFace[]): IUIFace[] {\n people = sortBy(people, [\n // Sort by known first\n (p: IUIFace) => {\n return p.name.indexOf('Unknown #') !== -1;\n },\n // Sort by seen duration\n (p: IUIFace) => {\n return -p.seenDurationRatio;\n }\n ]);\n return people;\n }\n\n private updateDuplicateName(samePersonName: IUIFace, mergedFace: IUIFace, faces: IUIFace[], videoId: string, facesType: UIFaceType) {\n // Remove the merged face from faces array\n const duplicateNamePeopleRemoved = remove(faces, person => {\n return person.id !== mergedFace.id;\n });\n\n // Get person from the new uniq people array\n const personFromUniqArray = samePersonName;\n\n personFromUniqArray.appearances = personFromUniqArray.appearances.concat(mergedFace.appearances);\n personFromUniqArray.confidence = personFromUniqArray.confidence + mergedFace.confidence;\n personFromUniqArray.seenDurationRatio += mergedFace.seenDurationRatio;\n personFromUniqArray.seenDurationRatio = Number(personFromUniqArray.seenDurationRatio.toFixed(2));\n\n const itemResources = { PersonComponentAppearsDuration: '' };\n this.translate.translateResources(itemResources, { personSeenDuration: personFromUniqArray.seenDurationRatio });\n personFromUniqArray.appearTitle = itemResources.PersonComponentAppearsDuration;\n if (this.preparedVideosData[videoId] && this.preparedVideosData[videoId][facesType]) {\n this.preparedVideosData[videoId][facesType] = duplicateNamePeopleRemoved;\n }\n }\n\n private removeDuplicateName(people: IUIFace[], type: IInsightJsonKeyType = IUIInsightJsonKey.faces): IUIFace[] {\n if (!this.videoIndex.summarizedInsights || (this.videoIndex.summarizedInsights && !this.videoIndex.summarizedInsights[type])) {\n return null;\n }\n\n // Get all id's that exist in summarized insights\n const uniqPersonId = this.videoIndex.summarizedInsights[type].map(face => {\n return face.id;\n });\n\n // Get people that was removed\n let removedPeople = filter(people, person => {\n // Get duplicated on people array from other videos\n const faceFromArray = find(people, currentPerson => {\n return person.id === currentPerson.id && currentPerson.videoId !== person.videoId;\n });\n\n if (faceFromArray) {\n return true;\n }\n\n // Else if it is not exist on summarize insights array, it has been removed\n return !uniqPersonId.includes(person.id);\n });\n\n // Get uniqBy array\n removedPeople = uniqBy(removedPeople, person => {\n return person.id;\n });\n\n // Get the rest\n const duplicateNamePeopleRemoved = difference(people, removedPeople);\n\n // Get objects from uniq array\n for (const iterator of removedPeople) {\n // Get person from summarize insights (The appearances are combined there)\n const personFromSummarize = find(this.videoIndex.summarizedInsights[type], face => {\n return (\n (iterator.knownPersonId && face.knownPersonId && iterator.knownPersonId === face.knownPersonId) ||\n (iterator.referenceId && iterator.referenceId === face.referenceId && iterator.referenceType === face.referenceType)\n );\n });\n\n if (!personFromSummarize) {\n break;\n }\n\n // Get person from the new uniq people array\n const personFromUniqArray = find(duplicateNamePeopleRemoved, face => {\n return face.name === personFromSummarize.name;\n });\n\n if (!personFromUniqArray) {\n break;\n }\n // Create new person appearances\n const personAppearances: IUIAppearance[] = [];\n\n personFromSummarize.appearances.forEach(appearance => {\n personAppearances.push({\n adjustedStart: appearance.startTime,\n endSeconds: appearance.endSeconds,\n startSeconds: appearance.startSeconds\n });\n });\n\n personFromUniqArray.appearances = personAppearances;\n\n personFromUniqArray.confidence = personFromSummarize.confidence;\n personFromUniqArray.seenDurationRatio = Number((personFromSummarize.seenDurationRatio * 100).toFixed(2));\n\n const itemResources = { PersonComponentAppearsDuration: '' };\n this.translate.translateResources(itemResources, { personSeenDuration: personFromUniqArray.seenDurationRatio });\n personFromUniqArray.appearTitle = itemResources.PersonComponentAppearsDuration;\n }\n return duplicateNamePeopleRemoved;\n }\n\n private removeDuplicateId(faces: IUIFace[]): IUIFace[] {\n /**\n *@todo remove after duplicate id bug is fixed\n */\n // Remove duplicate id:\n // Filter null & non-null values\n const nullReferencePeople: IUIFace[] = filter(faces, person => {\n return !person.referenceId;\n });\n\n let nonNullReferencePeople: IUIFace[] = filter(faces, person => {\n return !!person.referenceId;\n });\n\n // Get uniq values\n nonNullReferencePeople = uniqBy(nonNullReferencePeople, person => {\n return person.referenceId;\n });\n\n faces = nonNullReferencePeople.concat(nullReferencePeople);\n return faces;\n }\n\n private initTabs() {\n this.translate.translateResources(this.resources);\n this.tabs = [\n {\n value: IUITab.INSIGHTS,\n active: true,\n selected: false,\n text: this.resources.CognitiveInsightsInsightsTabTitle\n },\n {\n value: IUITab.TIMELINE,\n active: true,\n selected: false,\n text: this.resources.Timeline\n }\n ];\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable } from '@angular/core';\n\nimport { camelCase, isEmpty, orderBy, random, reduce, upperFirst } from 'lodash-es';\nimport * as pixelWidth from 'string-pixel-width';\n\nimport { BING_SEARCH } from '@common/modules/shared/links';\n\nimport { ConfigService } from '../core/services/config/config.service';\nimport { FeatureSwitchService } from '../core/services/feature-switch/feature-switch.service';\nimport { FeatureSwitch } from '../core/services/interfaces';\nimport {\n IInsightsSortedBy,\n IInstancesToAppearancesOutput,\n InsightsSortedProperty,\n ISubscriptions,\n IUIAppearance,\n IUIBasicInsight,\n IUIInsight,\n IUIPreset,\n IUIPresetInsight\n} from '../insights/interfaces';\nimport { IndexState } from '../shared/interfaces';\nimport { getSeconds } from '../utils/time';\nimport { IInsightJsonKeyType, IUIInsightJsonKey, ThumbnailClass } from './interfaces';\nimport { InsightsWithAppearances, InsightsWithInstances } from '../insights/components/mentioned-entities/interfaces';\n\n@Injectable()\nexport class InsightsCommonUtilsService {\n public FaceFallbackUrl: string;\n public canvasElem: HTMLCanvasElement;\n public ctx: CanvasRenderingContext2D;\n\n constructor(\n @Inject(DOCUMENT) private document: Document,\n private configService: ConfigService,\n private featureSwitchService: FeatureSwitchService\n ) {\n this.canvasElem = this.document.createElement('canvas');\n this.ctx = this.canvasElem.getContext('2d');\n\n const base = this.getBasePath();\n this.FaceFallbackUrl = `${base}assets/images/face_empty.png`;\n }\n\n /**\n * @param {string} dataKey\n * @param {Microsoft.VideoIndexer.Contracts.PlaylistContractV2} videoIndex\n * @returns {boolean}\n * @memberof InsightsCommonService\n * @description Checks if given insights has data inside the video index.\n */\n public hasData(dataKey: IInsightJsonKeyType, videoIndex: Microsoft.VideoIndexer.Contracts.PlaylistContractV2): boolean {\n const summarizedInsights = ['faces'];\n\n const insights = [\n 'transcript',\n 'ocr',\n 'shots',\n 'speakers',\n 'scenes',\n 'emotions',\n 'sentiments',\n 'keywords',\n 'labels',\n 'topics',\n 'brands',\n 'namedLocations',\n 'namedPeople',\n 'audioEffects',\n 'observedPeople',\n 'clapperboards',\n 'logos',\n 'detectedObjects'\n ];\n\n if (dataKey === IUIInsightJsonKey.logos && !this.featureSwitchService.featureSwitch(FeatureSwitch.Logos)) {\n return false;\n }\n\n if (summarizedInsights.includes(dataKey)) {\n return !(\n !videoIndex ||\n !videoIndex.summarizedInsights ||\n !videoIndex.summarizedInsights[dataKey] ||\n !videoIndex.summarizedInsights[dataKey].length\n );\n } else if (insights.includes(dataKey)) {\n return !(!videoIndex || !videoIndex.videos || !this.hasVideosData(dataKey, videoIndex?.videos));\n } else if (dataKey === 'spokenLanguage') {\n // Custom data\n return this.isMultiLanguage(videoIndex);\n } else {\n return false;\n }\n }\n\n public hasVideosData(dataKey: IInsightJsonKeyType, videos: Microsoft.VideoIndexer.Contracts.VideoContract[]): boolean {\n for (const video of videos) {\n if (video && video.insights && video.insights[dataKey] && video.insights[dataKey].length) {\n return true;\n }\n }\n return false;\n }\n\n // text width is being measured by 2 different methods , max score is being returned\n public measureText(txt = '', fontSize = 13, fontFamily = 'Segoe UI'): number {\n this.ctx.font = `${fontSize}px ${fontFamily}`;\n const maxInput = reduce(txt.split('
'), (a, b) => (a.toString().length > b.toString().length ? a : b));\n\n return Math.ceil(this.ctx.measureText(maxInput).width ?? pixelWidth(maxInput, { size: fontSize, font: 'open sans' }));\n }\n\n public getCalculatedFontFamily(el: Element): string {\n const computedStyle = window.getComputedStyle(el);\n return computedStyle.getPropertyValue('font-family');\n }\n\n // returns an approximation of the maximum required padding for text spacing (spacing values accurate for WCAG 2.1)\n public measureTextSpacing(txt = '', fontSize = 13): number {\n const numSpaces = txt.split(' ').length - 1;\n const numLetters = txt.length - numSpaces * 2;\n return Math.ceil(fontSize * (numSpaces * 0.2 + numLetters * 0.2));\n }\n\n public measureWithTextSpacing(txt = '', fontSize = 13): number {\n this.ctx.font = `${fontSize}px Segoe UI`;\n const maxInput = reduce(txt.split('
'), (a, b) => (a.toString().length > b.toString().length ? a : b));\n const numSpaces = txt.split(' ').length - 1;\n const numLetters = txt.length - numSpaces * 2;\n const padding = Math.ceil(fontSize * (numSpaces * 0.2 + numLetters * 0.2));\n const txtLength = Math.ceil(this.ctx.measureText(maxInput).width ?? pixelWidth(maxInput, { size: fontSize, font: 'open sans' }));\n return padding + txtLength;\n }\n public unsubscribeSubscriptions(subscriptions: ISubscriptions): void {\n const keys = Object.keys(subscriptions);\n keys.forEach(k => {\n if (subscriptions[k]) {\n subscriptions[k].unsubscribe();\n }\n });\n }\n\n public isIframe(): boolean {\n try {\n return window.self !== window.top;\n } catch (e) {\n return true;\n }\n }\n\n public getBasePath(): string {\n return this.configService.getCodeLocation();\n }\n\n public isEmptyID(url: string): boolean {\n return !url || url.includes('00000000-0000-0000-0000-000000000000');\n }\n\n public getThumbnailClass(state: string, thumbnailUrl: string): ThumbnailClass {\n if (this.isEmptyID(thumbnailUrl)) {\n /**\n * @todo temp change. For now all thumb except audio are set-thumb\n */\n if (!state || state === IndexState.Processing || state === IndexState.Uploaded) {\n return 'set-thumb';\n } else if (state === IndexState.Failed) {\n return 'block';\n } else if (state === IndexState.Deleting) {\n return 'block';\n } else {\n return 'audio';\n }\n } else if (state === IndexState.Failed) {\n return 'block';\n }\n\n return 'image';\n }\n\n // Define Array = IUIPresetInsight[] | IUIPreset[]\n // 2nd option results typescript error compilation.\n public resetPresets(presets: Array): void {\n presets.forEach(p => (p.selected = false));\n }\n\n public isMultiLanguage(videoIndex: Microsoft.VideoIndexer.Contracts.PlaylistContractV2): boolean {\n if (!videoIndex) {\n return false;\n }\n // Multi language video\n if (videoIndex?.videos && videoIndex?.videos[0]?.sourceLanguages?.length > 1) {\n return true;\n }\n\n // Multi language project\n if (videoIndex.videos.length > 1) {\n // Video is a project - check if multi language project\n const firstLanguage = videoIndex.videos[0].sourceLanguage;\n for (let index = 1; index < videoIndex.videos.length; index++) {\n const video = videoIndex.videos[index];\n if (firstLanguage !== video.sourceLanguage) {\n return true;\n }\n }\n }\n\n return false;\n }\n\n public getDescriptionLink(selectedItem): string {\n if (!selectedItem) {\n return '';\n }\n\n if (selectedItem.referenceUrl) {\n return selectedItem.referenceUrl;\n }\n\n if (selectedItem.name) {\n return this.getBingLink(selectedItem.name);\n }\n return '';\n }\n\n public getBingLink(itemName): string {\n if (!itemName) {\n return '';\n }\n return `${BING_SEARCH}?q=${itemName}`;\n }\n\n public generateComponentID(prefix: string, id: string): string {\n // If there is no prefix, add general\n if (!prefix) {\n prefix = 'component';\n }\n\n // If there is no ID, generate an id\n if (!id) {\n id = random(1, 100).toString();\n }\n\n return `${prefix}${id}`;\n }\n\n public createInsightsArray(videos: Microsoft.VideoIndexer.Contracts.VideoContract[], type: string) {\n let insightRef = [];\n let items = [];\n for (const video of videos) {\n insightRef = video.insights[type];\n if (insightRef) {\n items = [...items, ...insightRef];\n }\n }\n\n return items;\n }\n\n public hasInsightsData(index: Microsoft.VideoIndexer.Contracts.PlaylistContractV2, type: IUIInsightJsonKey) {\n if (!index || !type) {\n return false;\n }\n // check if at least one video has type data\n for (const video of index?.videos) {\n if (video.insights && video.insights[type]) {\n return true;\n }\n }\n return false;\n }\n\n public convertInstancesToAppearances(instances: Microsoft.VideoIndexer.Contracts.ElementInstance[]): IInstancesToAppearancesOutput {\n const appearances = [];\n let seenDurationRatio = 0;\n for (const instance of instances) {\n const appearance: IUIAppearance = {\n startSeconds: getSeconds(instance?.adjustedStart),\n endSeconds: getSeconds(instance?.adjustedEnd),\n endTime: instance?.adjustedEnd,\n startTime: instance?.adjustedStart\n };\n if (instance?.adjustedStart && instance?.adjustedEnd) {\n seenDurationRatio += appearance.endSeconds - appearance.startSeconds;\n }\n appearances.push(appearance);\n }\n\n return {\n appearances: appearances,\n seenDurationRatio: seenDurationRatio\n };\n }\n\n public getUIObservedClothing(clothing: Microsoft.VideoIndexer.Contracts.PersonAttributeInsight[], resources: {}): IUIBasicInsight[] {\n const observedClothing: IUIBasicInsight[] = [];\n if (!clothing) {\n return observedClothing;\n }\n\n let id = 0;\n let name = '';\n for (const clothingItem of clothing) {\n if (clothingItem.properties && !isEmpty(clothingItem.properties)) {\n for (const propertyValue of Object.values(clothingItem.properties)) {\n name = resources[`${upperFirst(camelCase(propertyValue))}${upperFirst(camelCase(clothingItem.type))}`];\n if (name) {\n observedClothing.push({\n id: ++id,\n name: name\n });\n }\n }\n } else {\n name = resources[upperFirst(camelCase(clothingItem.type))];\n if (name) {\n observedClothing.push({\n id: ++id,\n name: name\n });\n }\n }\n }\n\n return observedClothing;\n }\n\n public getSortedItems(items: IUIInsight[], sortedBy: IInsightsSortedBy) {\n if (sortedBy?.property === InsightsSortedProperty.START_TIME || sortedBy?.property === InsightsSortedProperty.END_TIME) {\n const orderByMethod = (item: IUIInsight) => {\n const index = sortedBy?.property == InsightsSortedProperty.START_TIME ? 0 : item.appearances.length - 1;\n // Convert from start time to the correct property from contract\n const property = sortedBy?.property === InsightsSortedProperty.START_TIME ? 'startSeconds' : 'endSeconds';\n return item.appearances[index][property];\n };\n return orderBy(items, orderByMethod, [sortedBy?.order]);\n } else if (sortedBy?.property === InsightsSortedProperty.NAME) {\n return orderBy(items, [item => item && item?.name?.toLowerCase()], [sortedBy?.order]);\n } else {\n return orderBy(items, [sortedBy?.property], [sortedBy?.order]);\n }\n }\n\n public removeDuplicates2(items: T[]): T[] {\n const insightItemsMap: { [name: string]: T } = {};\n\n for (const item of items) {\n const { name, appearances } = item;\n\n if (insightItemsMap[name]) {\n insightItemsMap[name].appearances = insightItemsMap[name].appearances.concat(appearances);\n delete insightItemsMap[name].confidence; // Remove confidence as it's irrelevant across multiple videos\n } else {\n insightItemsMap[name] = item;\n }\n }\n\n return Object.values(insightItemsMap);\n }\n\n /**\n * Remove duplicate insights, was created to support merging of insights multiple videos in projects\n * @param items\n * @returns list of insights\n */\n public mergeInsightsWithInstances(items: T[]): T[] {\n const insightItemsMap: { [name: string]: T } = {};\n\n for (const item of items) {\n // eslint-disable-next-line max-len\n const uniqueKey = (item as InsightsWithAppearances).name || (item as Microsoft.VideoIndexer.Contracts.Keyword).text; // add type assertion to item\n const appearancesOrInstancesKey = 'appearances' in item ? 'appearances' : 'instances';\n const appearancesOrInstances = item[appearancesOrInstancesKey];\n if (insightItemsMap[uniqueKey]) {\n insightItemsMap[uniqueKey][appearancesOrInstancesKey] = insightItemsMap[uniqueKey][appearancesOrInstancesKey].concat(appearancesOrInstances);\n delete insightItemsMap[uniqueKey].confidence; // Remove confidence as it's irrelevant across multiple videos\n } else {\n // First occurrence of this insight\n insightItemsMap[uniqueKey] = item;\n }\n }\n\n return Object.values(insightItemsMap);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { KeyframeComponent } from '../insights/components/keyframe/keyframe.component';\nimport { InsightsContentListComponent } from '../insights/components/insights-content-list/insights-content-list.component';\nimport { CapsuleInputComponent } from '../insights/components/capsule-input/capsule-input.component';\nimport { InsightsCommonService } from './insights-common.service';\nimport { InsightsCommonDataService } from './insights-common-data.service';\nimport { InsightsCommonUtilsService } from './insights-common-utils.service';\nimport { AccessibilityModule } from '../accessibility/accessibility.module';\nimport { HighlightPipe } from '../timeline/pipes/highlight.pipe';\nimport { BoldPipe } from '../timeline/pipes/bold.pipe';\nimport { EmotionsMapComponent } from '../insights/components/emotions-map/emotions-map.component';\nimport { ToastService } from '../core/services/toast/toast.service';\nimport { SharedModule } from '../shared/shared.module';\nimport { CommunicationService } from './communication.service';\n\n@NgModule({\n imports: [CommonModule, AccessibilityModule, SharedModule],\n declarations: [EmotionsMapComponent, KeyframeComponent, InsightsContentListComponent, CapsuleInputComponent, HighlightPipe, BoldPipe],\n providers: [InsightsCommonService, InsightsCommonDataService, InsightsCommonUtilsService, ToastService, CommunicationService],\n exports: [EmotionsMapComponent, KeyframeComponent, InsightsContentListComponent, CapsuleInputComponent, HighlightPipe, BoldPipe]\n})\nexport class InsightsCommonModule {}\n","import { Injectable } from '@angular/core';\n\nimport { Subject, Observable, fromEvent } from 'rxjs';\nimport { distinctUntilChanged } from 'rxjs/operators';\n\nimport { PresetType } from '@azure/video-indexer-widgets';\nimport { remove, find, cloneDeep } from 'lodash-es';\n\nimport { IUIPresetInsight, IUIPreset, UIPresetInsight, IUITab, PresetInsightType } from '../insights/interfaces';\nimport { InsightsCommonUtilsService } from './insights-common-utils.service';\nimport { ApiService } from '../api/services/api.service';\nimport { presetInsights, presets } from '../insights/presetInsights';\nimport { ILanguage } from '../../../apps/web/src/core/interfaces';\nimport { SupportedLanguages } from '../../../apps/web/src/core/languages';\nimport { IInsightJsonKeyType, IUIInsightJsonKey } from './interfaces';\nimport { FramePatternType } from '../timeline/interfaces';\nimport { FeatureSwitchService } from '../core/services/feature-switch/feature-switch.service';\nimport { FeatureSwitch } from '../core/services/interfaces';\n\n@Injectable()\nexport class InsightsCommonService {\n public presetInsight: Subject;\n public presetInsightsObj: IUIPresetInsight[];\n public presetsObj: IUIPreset[];\n public currentPresetsName: string;\n public SupportedLanguages: ILanguage[];\n\n private videoIndex: Microsoft.VideoIndexer.Contracts.PlaylistContractV2;\n private customInsightsObj: IUIPresetInsight[] = [];\n\n constructor(private utils: InsightsCommonUtilsService, private apiService: ApiService, private featureSwitchService: FeatureSwitchService) {\n this.init();\n }\n\n public init() {\n this.presetInsightsObj = cloneDeep(presetInsights);\n this.presetsObj = cloneDeep(presets);\n this.currentPresetsName = this.presetsObj[0].name;\n this.presetInsight = new Subject();\n this.SupportedLanguages = SupportedLanguages;\n this.customInsightsObj = [];\n }\n\n public presetInsightsSubject(): Subject {\n return this.presetInsight;\n }\n public getPresetInsights() {\n return this.presetInsightsObj;\n }\n\n public getPresets() {\n return this.presetsObj;\n }\n\n public getPresetsName() {\n return this.currentPresetsName;\n }\n\n public setPresetsName(newPreset: string) {\n this.currentPresetsName = newPreset;\n }\n\n public getSupportedLanguages() {\n return this.SupportedLanguages;\n }\n\n public get customInsights() {\n return this.customInsightsObj;\n }\n\n public get customInsightsCount() {\n return this.customInsightsObj?.length;\n }\n\n public setVideoIndex(videoIndex: Microsoft.VideoIndexer.Contracts.PlaylistContractV2) {\n this.videoIndex = videoIndex;\n }\n\n public onTimeChange() {\n if (!window) {\n return;\n }\n const source = fromEvent(window, 'message');\n return source.pipe(distinctUntilChanged());\n }\n\n public filterPresetInsights(videoIndex: Microsoft.VideoIndexer.Contracts.PlaylistContractV2) {\n // Reset preset insights object\n this.presetInsightsObj = cloneDeep(presetInsights);\n\n remove(this.presetInsightsObj, (insight: IUIPresetInsight) => {\n let hasData;\n if (insight.dataKey === 'namedEntities') {\n hasData =\n this.utils.hasData(IUIInsightJsonKey.brands, videoIndex) ||\n this.utils.hasData(IUIInsightJsonKey.namedLocations, videoIndex) ||\n this.utils.hasData(IUIInsightJsonKey.namedPeople, videoIndex);\n } else if (insight.dataKey === 'postProduction') {\n hasData =\n this.featureSwitchService.featureSwitch(FeatureSwitch.SlateDetection) &&\n (this.utils.hasData(IUIInsightJsonKey.clapperboards, videoIndex) || this.hasColorBars(videoIndex));\n } else {\n hasData = this.utils.hasData(insight.dataKey, videoIndex);\n }\n // remove if sentiment has only neutral data\n if (hasData && insight.dataKey === 'sentiments') {\n return this.sentimentHasOnlyNeutralData(videoIndex);\n }\n\n // remove matched person if OP don't have matched person data\n if (hasData && insight.value === UIPresetInsight.MATCHED_PERSON) {\n return this.isOPWithoutMatchedFaces(videoIndex);\n }\n return !hasData;\n });\n\n // Hide the sentiments if we have emotions.\n const sentiments = find(this.presetInsightsObj, p => p.dataKey === 'sentiments');\n const emotions = find(this.presetInsightsObj, p => p.dataKey === 'emotions');\n const keywords = find(this.presetInsightsObj, p => p.dataKey === 'keywords');\n\n if (sentiments && emotions) {\n sentiments.selected = false;\n }\n\n // Hide keyframes if we have scenes\n const scenes = find(this.presetInsightsObj, p => p.dataKey === 'scenes');\n const keyframes = find(this.presetInsightsObj, p => p.dataKey === 'shots');\n\n if (scenes && keyframes) {\n keyframes.selected = false;\n }\n // Filter keywords by default\n if (keywords) {\n keywords.selected = false;\n }\n\n // Hide matched person by default\n const matchedPerson = find(this.presetInsightsObj, p => p.value === UIPresetInsight.MATCHED_PERSON);\n\n if (matchedPerson) {\n matchedPerson.selected = false;\n }\n\n // Add custom insights data\n this.presetInsightsObj = [...this.presetInsightsObj, ...this.customInsightsObj];\n }\n\n public updatePresetInsightsState(presetInsightsType: UIPresetInsight, isDisabled: boolean): void {\n if (!presetInsightsType) {\n return;\n }\n for (const iterator of this.presetInsightsObj) {\n if (presetInsightsType === iterator.value) {\n iterator.disabled = isDisabled;\n iterator.selected = !isDisabled;\n return;\n }\n }\n }\n\n public removeCapsule(type: UIPresetInsight, id: number, accountId: string, videoId: string): Observable {\n let ob = new Observable();\n switch (type) {\n case UIPresetInsight.KEYWORDS:\n ob = this.apiService.Account.Video.removeKeywords(accountId, videoId, id, null);\n break;\n case UIPresetInsight.BRANDS:\n ob = this.apiService.Account.Video.removeBrands(accountId, videoId, { brandId: id }, null);\n break;\n case UIPresetInsight.LABELS:\n ob = this.apiService.Account.Video.removeLabels(accountId, videoId, id, null);\n break;\n }\n return ob;\n }\n\n public addCapsule(type: UIPresetInsight, value: string, lang: Microsoft.VideoIndexer.Contracts.LanguageV2, accountId: string, videoId: string) {\n return this.apiService.Account.Video.addKeywords(accountId, videoId, { keyword: value, language: lang });\n }\n\n public filterPresetInsightsForEditor() {\n const defaultInsightsForEditor = [UIPresetInsight.TRANSCRIPT, UIPresetInsight.PEOPLE];\n this.presetInsightsObj.forEach(insight => {\n insight.selected = defaultInsightsForEditor.indexOf(insight.value) !== -1;\n });\n }\n\n public addPresetInsight(presetInsight: UIPresetInsight) {\n const insightsForEditor = [presetInsight];\n this.presetInsightsObj.forEach(insight => {\n if (!insight.selected) {\n insight.selected = insightsForEditor.indexOf(insight.value) !== -1;\n }\n });\n }\n\n public addNewPresetCustomInsights(key: string, title: string, presetList: PresetType[]) {\n const uiPresetInsights: IUIPresetInsight = {\n name: title,\n value: key as UIPresetInsight,\n selected: true,\n dataKey: key as IInsightJsonKeyType,\n config: true,\n ranking: 1,\n availableTabs: [IUITab.INSIGHTS, IUITab.TIMELINE],\n type: PresetInsightType.CUSTOM\n };\n\n this.customInsightsObj.push(uiPresetInsights);\n\n this.presetInsightsObj = [...this.presetInsightsObj, uiPresetInsights];\n\n // Add to preset list\n for (const preset of presetList) {\n // find preset from list\n const currentPreset = find(this.presetsObj, tempPreset => tempPreset.value === preset);\n currentPreset?.insights.push(key);\n }\n }\n\n public setPreset(preset: IUIPreset) {\n this.utils.resetPresets(this.presetsObj);\n this.utils.resetPresets(this.presetInsightsObj);\n preset.selected = true;\n this.setPresetsName(preset.name);\n preset.insights.forEach(insight => {\n this.presetInsightsObj.forEach(ins => {\n if (ins.value === insight) {\n ins.selected = true;\n }\n });\n });\n }\n\n public hasColorBars(videoIndex) {\n for (const video of videoIndex.videos) {\n if (video?.insights?.framePatterns) {\n const colorBars = video?.insights?.framePatterns.filter(pattern => pattern.patternType === FramePatternType.COLOR_BARS);\n if (colorBars.length) {\n return true;\n }\n }\n }\n return false;\n }\n\n private sentimentHasOnlyNeutralData(videoIndex: Microsoft.VideoIndexer.Contracts.PlaylistContractV2): boolean {\n let value = true;\n for (const video of videoIndex?.videos) {\n const sentiments = video.insights.sentiments;\n value = value && sentiments?.length === 1 && sentiments[0]?.sentimentType === 'Neutral';\n }\n return value;\n }\n\n private isOPWithoutMatchedFaces(videoIndex: Microsoft.VideoIndexer.Contracts.PlaylistContractV2): boolean {\n let value = true;\n for (const video of videoIndex?.videos) {\n if (!video.insights?.observedPeople) {\n continue;\n }\n for (const observedPeople of video.insights?.observedPeople) {\n value = value && !observedPeople?.matchingFace;\n }\n }\n return value;\n }\n}\n","import { IUIFace } from '../insights/components/faces/interfaces';\nimport { IUIKeyframe } from '../insights/components/keyframe/interfaces';\n\nexport type IInsightJsonKeyType =\n | IUIInsightJsonKey.brands\n | IUIInsightJsonKey.emotions\n | IUIInsightJsonKey.faces\n | IUIInsightJsonKey.topics\n | IUIInsightJsonKey.keywords\n | IUIInsightJsonKey.labels\n | IUIInsightJsonKey.speakers\n | IUIInsightJsonKey.transcript\n | IUIInsightJsonKey.ocr\n | IUIInsightJsonKey.shots\n | IUIInsightJsonKey.sentiments\n | IUIInsightJsonKey.scenes\n | IUIInsightJsonKey.spokenLanguage\n | IUIInsightJsonKey.namedLocations\n | IUIInsightJsonKey.namedPeople\n | IUIInsightJsonKey.audioEffects\n | IUIInsightJsonKey.observedPeople\n | IUIInsightJsonKey.detectedObjects\n | IUIInsightJsonKey.clapperboards\n | IUIInsightJsonKey.logos\n | '';\n\nexport enum IUIInsightJsonKey {\n brands = 'brands',\n emotions = 'emotions',\n faces = 'faces',\n topics = 'topics',\n keywords = 'keywords',\n labels = 'labels',\n speakers = 'speakers',\n transcript = 'transcript',\n ocr = 'ocr',\n shots = 'shots',\n sentiments = 'sentiments',\n scenes = 'scenes',\n spokenLanguage = 'spokenLanguage',\n namedLocations = 'namedLocations',\n namedPeople = 'namedPeople',\n audioEffects = 'audioEffects',\n observedPeople = 'observedPeople',\n clapperboards = 'clapperboards',\n postProduction = 'postProduction',\n logos = 'logos',\n detectedObjects = 'detectedObjects'\n}\n\nexport type IInsightGroupedKey = 'namedEntities' | 'postProduction';\n\nexport interface IInsightsPreparedPeopleData {\n key: string;\n faces?: IUIFace[];\n keframes?: IUIKeyframe[];\n}\n\nexport type ThumbnailClass = 'set-thumb' | 'processing' | 'failed' | 'audio' | 'image' | 'block';\n\nexport enum SpriteType {\n Faces = 'Faces',\n KeyFrames = 'KeyFrames',\n ObservedPeople = 'ObservedPeople',\n Clapperboards = 'Clapperboards',\n ColorBars = 'ColorBars',\n Logos = 'Logos',\n LogosInstances = 'LogosInstances',\n DetectedObjects = 'DetectedObjects'\n}\n\nexport enum IUIInsightNoneJsonKey {\n colorBars = 'colorBars'\n}\n\nexport type IUInsightsKey = IUIInsightJsonKey | IUIInsightNoneJsonKey;\n\nexport enum BoundingBoxPropMsgName {\n PERSON_ID = 'person_id',\n FACE_ID = 'face_id',\n OBJECT_ID = 'detectedObject_id'\n}\n","export const resources = {\n CognitiveInsightsInsightsTabTitle: 'Insights',\n Timeline: 'Timeline'\n};\n","import { Component, OnInit, ChangeDetectionStrategy, ChangeDetectorRef, Output, EventEmitter, ElementRef, ViewChild, Input } from '@angular/core';\n\nimport { find } from 'lodash-es';\n\nimport { ZoneWrapperService } from '@common/modules/core/services/zone-wrapper/zone-wrapper.service';\n\nimport { UIAddCapsuleMode } from './interfaces';\nimport { resources } from './resources';\nimport { TranslateHelperService } from '../../../translation/services/translate-helper.service';\nimport { isMainButtonPressed } from '../../../utils/event';\nimport { IUIInsight } from '../../interfaces';\n\n@Component({\n selector: 'app-vi-insights-capsule-input',\n templateUrl: './capsule-input.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['./capsule-input.component.scss']\n})\nexport class CapsuleInputComponent implements OnInit {\n // Inputs\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n @Input() public items?: IUIInsight[] = [];\n @Input() public text = 'Add';\n @Input() public EnterText = 'Enter';\n @Input() public activeContainer = false;\n\n // Outputs\n @Output() public addCapsule = new EventEmitter();\n\n // Publics\n @ViewChild('addCapsuleInput', { static: false }) public input: ElementRef;\n\n public UIAddCapsuleMode = UIAddCapsuleMode;\n public addCapsuleMode = UIAddCapsuleMode.DEFAULT;\n public placeholder = '';\n public resources = resources;\n\n constructor(private translate: TranslateHelperService, private cdr: ChangeDetectorRef, private zone: ZoneWrapperService) {}\n\n public ngOnInit() {\n // Translate resources\n this.translate.translateResources(this.resources);\n }\n\n public changeState(input?: string, $event?: Event) {\n if (this.addCapsuleMode === UIAddCapsuleMode.DEFAULT) {\n this.addCapsuleMode = UIAddCapsuleMode.CLICKED;\n this.focusInput();\n }\n\n if ($event) {\n $event.stopPropagation();\n }\n\n return false;\n }\n\n public add(input?: string) {\n if (this.isExistingCapsule(input)) {\n return false;\n }\n this.addCapsuleMode = UIAddCapsuleMode.ADDING;\n this.addCapsule.emit(input);\n this.addCapsuleMode = UIAddCapsuleMode.DEFAULT;\n this.cdr.markForCheck();\n }\n\n public handleInputClick($event: MouseEvent) {\n if (isMainButtonPressed($event)) {\n $event.stopPropagation();\n $event.preventDefault();\n }\n }\n\n public reset() {\n this.addCapsuleMode = UIAddCapsuleMode.DEFAULT;\n }\n\n public focusInput() {\n this.zone.runOutsideAngular(() => {\n setTimeout(() => {\n this.input.nativeElement.focus();\n }, 10);\n });\n }\n\n private isExistingCapsule(input: string) {\n if (!this.items.length || !input) {\n return false;\n }\n return find(this.items, item => {\n return item.name.toLocaleLowerCase() === input.toLowerCase();\n });\n }\n}\n","\n\n \n\n {{ text }}\n {{ resources?.CapsuleInputAdding }}\n\n \n\n","export enum UIAddCapsuleMode {\n DEFAULT = 'DEFAULT',\n CLICKED = 'CLICKED',\n ADDING = 'ADDING'\n}\n","export const resources = {\n CapsuleInputAdding: '',\n CapsuleInputAdd: '',\n InsightsShowingTimeline: ''\n};\n","import { IUIEntityInsight, IUIInsight } from '../../interfaces';\n\nexport interface IUIDetectedObjectGroup extends IUIInsight {\n objects: IUIDetectedObject[];\n className: string;\n}\n\nexport interface IUIDetectedObject extends IUIEntityInsight {\n className: string;\n displayClassName: string;\n}\n\nexport const DETECTED_OBJECT_WIDTH_TINY = 54;\nexport const DETECTED_OBJECT_WIDTH = 60;\nexport const DETECTED_OBJECT_WIDTH_LARGE = 72;\nexport const SPRITE_WIDTH = 100;\n","import { Component, OnInit, ChangeDetectionStrategy, Input } from '@angular/core';\n\nimport { IUIEmotion } from '../emotions/interfaces';\n\n@Component({\n selector: 'app-vi-insights-emotions-map',\n templateUrl: './emotions-map.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['./emotions-map.component.scss']\n})\nexport class EmotionsMapComponent implements OnInit {\n @Input() public emotions: IUIEmotion[];\n @Input() public showConfidence: boolean;\n\n constructor() {}\n\n public ngOnInit() {}\n}\n","
    \n
  • \n \n {{ emotion.title }}\n \n
  • \n
\n","import { IUIEntityInsight } from '../../interfaces';\n\nexport interface IUIFace extends IUIEntityInsight {\n thumb?: string;\n description: string;\n referenceId: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n timelineStyle: any;\n sourceType?: Microsoft.VideoIndexer.Contracts.KnownPersonFaceSourceType;\n sourceId?: string;\n knownPersonId?: string;\n referenceType?: string;\n highQuality?: boolean;\n}\n\nexport interface IVideoIdToIUIFace {\n [videoId: string]: IVideoIdToIUIFace;\n}\n\nexport interface IVideoIUIFace {\n [faceType: string]: IUIFace[];\n}\n\nexport enum UIFaceType {\n people = 'faces'\n}\n","import {\n Component,\n OnInit,\n Input,\n Output,\n EventEmitter,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n OnChanges,\n SimpleChanges,\n ViewChild,\n ElementRef,\n QueryList,\n ViewChildren,\n AfterViewInit,\n ContentChild,\n TemplateRef\n} from '@angular/core';\nimport { ListKeyManager } from '@angular/cdk/a11y';\n\nimport { IUIInsight, IWidgetExpandable, IUIInsightType } from '../../interfaces';\nimport { FocusManagerService } from '../../../accessibility/focus-manager.service';\nimport { TranslateHelperService } from '../../../translation/services/translate-helper.service';\nimport { resources } from './resources';\nimport { isMainButtonPressed } from '../../../utils/event';\nimport { FocusableComponent } from '../../../accessibility/focusable/focusable.component';\n\n@Component({\n selector: 'app-vi-insights-content-list',\n templateUrl: './insights-content-list.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['./insights-content-list.component.scss']\n})\nexport class InsightsContentListComponent extends FocusableComponent implements OnInit, OnChanges, AfterViewInit {\n // list of items to render capsule from\n @Input() public items: IUIInsight[];\n @Input() public edit: boolean;\n @Input() public activeContainer = false;\n @Input() public type: IUIInsightType;\n @Input() public timeline?: boolean;\n @Input() public dir = 'ltr';\n @Input() public listLabel = '';\n // Widget configurations\n @Input() public conf: IWidgetExpandable;\n // determines if to show add input box\n @Input() public enableAddNewItem = true;\n // search filter\n @Input() public textFilter = '';\n // onItemSelected event\n @Output() public itemSelected = new EventEmitter();\n\n // onToggleExpand event\n @Output() public toggleExpandList = new EventEmitter();\n\n // add new item\n @Output() public add = new EventEmitter();\n @Output() public remove = new EventEmitter();\n\n @ViewChild('itemObject', { static: false }) public itemObject: ElementRef;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n @ViewChildren('itemObject') public listItems: QueryList;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n @ContentChild('injectedInput', { static: false }) public injectedInputTemplate: TemplateRef;\n // Publics\n public placeholderText = '';\n public placeholderEnterText = '';\n public resources = resources;\n\n private keyboardEventsManager;\n\n constructor(private focusManager: FocusManagerService, public cdr: ChangeDetectorRef, private translate: TranslateHelperService) {\n super();\n }\n\n public ngOnInit() {\n // Translate resources\n this.translate.translateResources(this.resources);\n this.initPlaceholderText();\n }\n\n public ngAfterViewInit() {\n this.keyboardEventsManager = new ListKeyManager(this.listItems);\n this.keyboardEventsManager.setFirstItemActive();\n }\n\n public ngOnChanges(changes: SimpleChanges) {}\n\n public selectItem(item: IUIInsight) {\n this.itemSelected.emit(item);\n }\n\n public initPlaceholderText() {\n switch (this.type) {\n case 'namedEntities':\n // Can only add brands on named entities\n this.placeholderText = this.resources.BrandAddBrandAction;\n this.placeholderEnterText = this.resources.BrandsEnterBrand;\n break;\n case 'keywords':\n this.placeholderText = this.resources.KeywordAddKeyword;\n this.placeholderEnterText = this.resources.KeywordsEnterKeyword;\n break;\n case 'labels':\n this.placeholderText = this.resources.LabelAddLabel;\n this.placeholderEnterText = this.resources.LabelsEnterLabel;\n break;\n default:\n break;\n }\n }\n\n public toggleExpandMouse($event: MouseEvent) {\n if (isMainButtonPressed($event)) {\n this.toggleExpand();\n }\n }\n\n public toggleExpand(bFromEnter: boolean = false) {\n const currentLength: number = this.listItems.toArray().length;\n this.toggleExpandList.emit();\n\n if (bFromEnter) {\n this.focusManager.focusVia(() => {\n // Update view\n this.cdr.detectChanges();\n const listItems = this.listItems.toArray();\n return listItems[currentLength - 1];\n }, this.cdr);\n }\n\n this.cdr.detectChanges();\n }\n\n public handleAddCapsule(input: string) {\n this.add.emit(input);\n }\n\n public removeItem(item: IUIInsight, $event?) {\n this.remove.emit(item.id);\n if ($event) {\n $event.stopPropagation();\n\n if ($event.type !== 'keyup') {\n return;\n }\n }\n\n const currentObj = $event.target.parentNode;\n\n // Find previous item at list\n const currentArray = this.listItems.toArray();\n\n let index;\n for (index = 0; index < currentArray.length; index++) {\n const element: ElementRef = currentArray[index];\n if (element.nativeElement === currentObj) {\n break;\n }\n }\n\n this.focusManager.focusVia(() => {\n // Update view\n this.cdr.detectChanges();\n const listItmes = this.listItems.toArray();\n return listItmes[index - 1];\n }, this.cdr);\n }\n\n public markForCheck() {\n this.cdr.markForCheck();\n }\n\n public getShowingInsightTimelineText(insight: IUIInsight): string {\n const itemResources = { InsightsShowingTimeline: '' };\n this.translate.translateResources(itemResources, { name: insight.name });\n return itemResources.InsightsShowingTimeline;\n }\n\n public trackByIndex(i) {\n return i;\n }\n\n public getCapsuleId(item: IUIInsight): string {\n return `capsuleListItemId${item.id === -1 ? item.name : item.id}_${this.type}_${item?.appearances && item.appearances[0]?.adjustedStart}`;\n }\n}\n","
    \n \n
  • 0), timeline: timeline, custom: item?.customClass}\"\n (appAccessibleClick)=\"selectItem(item)\"\n appAccessibilityAnnouncer\n listenedEvent=\"enter\"\n [announceText]=\"getShowingInsightTimelineText(item)\"\n role=\"option\"\n [attr.aria-label]=\"item.name\"\n [attr.aria-selected]=\"item.selected\">\n 0)\"\n role=\"button\"\n (appAccessibleClick)=\"removeItem(item, $event)\"\n appAccessibilityTooltip\n [showAccessibilityTooltip]=\"!activeContainer && accessibilityMode\"\n [attr.title]=\"resources?.KeywordRemoveTitle\"\n [attr.tabindex]=\"activeContainer ? -1 : 0\"\n [attr.aria-hidden]=\"activeContainer? 'true':'false'\"\n [attr.aria-label]=\"resources?.KeywordRemoveTitle\">\n \n \n
  • \n
    \n \n \n
    \n \n
  • \n\n
    \n {{ conf.overflowSentence ? conf.overflowSentence : ('+' + conf.overflowValue) }}\n
    \n
  • \n
\n","export const resources = {\n BrandAddBrandAction: '',\n KeywordAddKeyword: '',\n LabelAddLabel: '',\n ShowMore: '',\n KeywordRemoveTitle: '',\n KeywordsEnterKeyword: '',\n LabelsEnterLabel: '',\n BrandsEnterBrand: ''\n};\n","import { Component, OnInit, ChangeDetectionStrategy, Input, Output, EventEmitter, ViewChild, ElementRef } from '@angular/core';\n\nimport { FocusableComponent } from '@common/modules/accessibility/focusable/focusable.component';\n\nimport { IUIKeyframe } from './interfaces';\nimport { resources } from './resources';\nimport { TranslateHelperService } from '../../../translation/services/translate-helper.service';\nimport { getSeconds } from '../../../utils/time';\n\n@Component({\n selector: 'app-vi-insights-keyframe',\n templateUrl: './keyframe.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['./keyframe.component.scss']\n})\nexport class KeyframeComponent extends FocusableComponent implements OnInit {\n @Input() public keyframe: IUIKeyframe;\n @Input() public hasTooltip = true;\n @Input() public activeContainer = false;\n @Input() public selected = false;\n @Input() public isActiveSelection = true;\n @Input() public roleType = 'button';\n @Input() public isVideoThumbnail = false;\n @Input() public currentStartTimeFrame: number;\n @Input() public currentEndTimeFrame: number;\n @Output() public select = new EventEmitter();\n\n @ViewChild('keyframeImage') public keyframeRef: ElementRef;\n\n public resources = resources;\n public keyframeStart = -1;\n public keyframeEnd = -1;\n public showTooltip = false;\n\n constructor(private translate: TranslateHelperService) {\n super();\n }\n\n public ngOnInit() {\n // Translate\n this.translate.translateResources(this.resources);\n\n if (this.keyframe) {\n this.keyframeStart = getSeconds(this.keyframe.start);\n this.keyframeEnd = getSeconds(this.keyframe.end);\n }\n }\n\n public selectKf(kf: IUIKeyframe) {\n this.select.emit(kf);\n }\n\n public isInCurrentTimeFrame(): boolean {\n return this.keyframeStart >= this.currentStartTimeFrame && this.keyframeEnd <= this.currentEndTimeFrame;\n }\n\n public onMouseOver(state: boolean) {\n this.showTooltip = state;\n }\n}\n","
\n
\n
\n
\n
\n \n \n
\n","export const resources = {\n KeyframeProfilePictureLabel: ''\n};\n","import { Subscription } from 'rxjs/internal/Subscription';\n\nimport { IInsightsSortedBy as CustomInsightSortedBy, insightsType } from '@azure/video-indexer-widgets';\nimport { ICustomItemElement } from '@azure/video-indexer-widgets';\n\nimport { IInsightGroupedKey, IInsightJsonKeyType } from '../insights-common/interfaces';\nimport { IAction, IStyle } from '../shared/interfaces';\nimport { IEntityTitles } from './components/entity-info/interfaces';\nimport { IUIPresetType } from './presetInsights';\n\nexport interface IVIInsightsEmbedUrlQueryParams {\n accessToken?: string;\n locale?: string;\n tab?: string;\n widgets?: string;\n customIndexLocation?: string;\n customImagesLocation?: string;\n preset?: string;\n language?: string;\n controls?: string;\n location?: string;\n search?: string;\n sort?: string;\n}\n\nexport interface IComponentMapItem {\n selected: boolean;\n disabled?: boolean;\n}\n\nexport interface IInsightsComponentMap {\n faces: IComponentMapItem;\n keywords: IComponentMapItem;\n audioEffects: IComponentMapItem;\n emotions: IComponentMapItem;\n speakers: IComponentMapItem;\n sentiments: IComponentMapItem;\n shots: IComponentMapItem;\n labels: IComponentMapItem;\n ocr: IComponentMapItem;\n transcript: IComponentMapItem;\n topics: IComponentMapItem;\n scenes: IComponentMapItem;\n namedEntities: IComponentMapItem;\n spokenLanguage: IComponentMapItem;\n observedPeople: IComponentMapItem;\n clapperboards: IComponentMapItem;\n colorBars: IComponentMapItem;\n logos: IComponentMapItem;\n detectedObjects: IComponentMapItem;\n}\n\nexport interface ITimelineComponentMap {\n faces: IUIPresetInsight;\n keywords: IUIPresetInsight;\n audioEffects: IUIPresetInsight;\n emotions: IUIPresetInsight;\n speakers: IUIPresetInsight;\n sentiments: IUIPresetInsight;\n shots: IUIPresetInsight;\n labels: IUIPresetInsight;\n ocr: IUIPresetInsight;\n transcript: IUIPresetInsight;\n topics: IUIPresetInsight;\n scenes: IUIPresetInsight;\n namedEntities: IUIPresetInsight;\n spokenLanguage: IUIPresetInsight;\n observedPeople: IUIPresetInsight;\n clapperboards: IUIPresetInsight;\n colorBars: IUIPresetInsight;\n logos: IUIPresetInsight;\n detectedObjects: IUIPresetInsight;\n}\n\nexport enum WidgetsParamOption {\n people = 'people',\n faces = 'faces',\n keywords = 'keywords',\n audioEffects = 'audioEffects',\n labels = 'labels',\n sentiments = 'sentiments',\n emotions = 'emotions',\n topics = 'topics',\n shots = 'shots',\n keyframes = 'keyframes',\n transcript = 'transcript',\n ocr = 'ocr',\n speakers = 'speakers',\n scenes = 'scenes',\n namedEntities = 'namedEntities',\n spokenLanguage = 'spokenLanguage',\n observedPeople = 'observedPeople',\n clapperboards = 'clapperboards',\n colorBars = 'colorBars',\n logos = 'logos',\n detectedObjects = 'detectedObjects'\n}\n\nexport enum ControlsParamOption {\n search = 'search',\n download = 'download',\n presets = 'presets',\n language = 'language'\n}\n\nexport type InsightsMap = {\n [key in WidgetsParamOption]: string;\n};\n\nexport type ControlsMap = {\n [key in ControlsParamOption]: boolean;\n};\n\nexport interface ISubscriptions {\n [key: string]: Subscription;\n}\n\nexport enum IUITab {\n INSIGHTS,\n TIMELINE\n}\n\nexport interface IWidgetExpandable {\n expanded?: boolean;\n overflowValue?: number;\n overflowSentence?: string;\n overflowWidth?: number;\n}\n\nexport enum UIActionType {\n INDEXING_SETTINGS = 'INDEXING_SETTINGS',\n DOWNLOAD = 'DOWNLOAD',\n LANGUAGE = 'LANGUAGE',\n PRESETS = 'PRESETS',\n EDIT = 'EDIT',\n PLAY = 'PLAY',\n TIMELINE_AUTO_SCROLL = 'TIMELINE_AUTO_SCROLL',\n EDIT_TEXT = 'EDIT_TEXT',\n EDIT_METADATA = 'EDIT_METADATA',\n RENAME = 'RENAME',\n SET_AS_THUMB = 'SET_AS_THUMB',\n ADD = 'ADD',\n PRIVACY = 'PRIVACY',\n PRIVACY_SET_PRIVATE = 'PRIVACY_SET_PRIVATE',\n PRIVACY_SET_PUBLIC = 'PRIVACY_SET_PUBLIC',\n CHANGE_LANGUAGE = 'CHANGE_LANGUAGE',\n SAVE = 'SAVE',\n APPLY = 'APPLY',\n DELETE = 'DELETE',\n DELETE_PERSON = 'DELETE_PERSON',\n DELETE_FACE = 'DELETE_FACE',\n EXPANDED = 'EXPANDED',\n DROPDOWN = 'DROPDOWN',\n CREATE = 'CREATE',\n PREVIEW = 'PREVIEW',\n CANCEL = 'CANCEL',\n UPLOAD = 'UPLOAD',\n SCROLL = 'SCROLL',\n EMBED = 'EMBED',\n EDITOR = 'EDITOR',\n INFO = 'INFO',\n CLICK = 'CLICK',\n OPEN = 'OPEN',\n OPEN_IN_NEW_TAB = 'OPEN_IN_NEW_TAB',\n NAVIGATE = 'NAVIGATE',\n IMAGE = 'IMAGE',\n NEXT = 'NEXT',\n PREVIOUS = 'PREVIOUS',\n CLOSE = 'CLOSE',\n BUTTON = 'BUTTON',\n HIDE = 'HIDE',\n COPY = 'COPY',\n TRAIN = 'TRAIN',\n SEARCH = 'SEARCH',\n CLEAR_FILTERS = 'CLEAR_FILTERS',\n RE_INDEX = 'RE_INDEX',\n UPDATE = 'UPDATE',\n GRID = 'GRID',\n LIST = 'LIST',\n GRID_MINI = 'GRID_MINI',\n LIST_MINI = 'LIST_MINI',\n FILE_STATUS = 'FILE_STATUS',\n GROUP = 'GROUP',\n COMPACT = 'COMPACT',\n SETTINGS = 'SETTINGS',\n CREATE_ACCOUNT = 'CREATE_ACCOUNT',\n NEW_SPEAKER = 'NEW_SPEAKER',\n RENAME_SPEAKER = 'RENAME_SPEAKER',\n UNASSIGNED_SPEAKER = 'UNASSIGNED_SPEAKER',\n EXISTING_SPEAKER = 'EXISTING_SPEAKER',\n SWITCH_DIRECTORY = 'SWITCH_DIRECTORY',\n SORT = 'SORT',\n SELECT_PERSON_ROW = 'SELECT_PERSON_ROW',\n SELECT_PERSON_MODEL = 'SELECT_PERSON_MODEL',\n MERGE_PEOPLE = 'MERGE_PEOPLE',\n REGROUP = 'REGROUP',\n TOGGLE = 'TOGGLE',\n STYLE = 'STYLE',\n LENGTH = 'LENGTH',\n THUMBS_UP = 'THUMBS_UP',\n THUMBS_DOWN = 'THUMBS_DOWN'\n}\n\nexport interface IUIPresetInsight {\n name: string;\n value: UIPresetInsight;\n selected: boolean;\n dataKey?: IInsightJsonKeyType | IInsightGroupedKey;\n config: boolean;\n disabled?: boolean;\n ranking: number;\n availableTabs: IUITab[];\n type: PresetInsightType;\n}\n\nexport interface IUICustomPresetInsight extends IUIPresetInsight {\n state: IUICustomPresetInsightState;\n}\n\nexport interface IUICustomPresetInsightState {\n selected: boolean;\n}\n\nexport enum PresetInsightType {\n REGULAR = 'regular',\n CUSTOM = 'custom'\n}\n\nexport interface ICustomUIPresetInsight {\n name: string;\n value: string;\n selected: boolean;\n config: boolean;\n ranking: number;\n availableTabs: IUITab[];\n}\n\nexport interface IUIPreset {\n name: string;\n value: IUIPresetType;\n insights: UIPresetInsight[];\n selected?: boolean;\n}\n\nexport interface IWidgetComponent {\n widget: IWidget;\n widgetHeader?: IWidgetHeader;\n prepareData(): void;\n hasInsightsData?(): boolean;\n setWidgetTitle(): void;\n}\n\nexport interface IWidget {\n ready: boolean;\n fallbackMessage: string;\n}\n\nexport interface IWidgetHeader extends IWidgetExpandable {\n title: string;\n expanded: boolean;\n miniMetadata?: {\n partA?: string;\n partB?: string;\n };\n overflowValue?: number;\n sideActions?: IAction[];\n mainSideAction?: IAction;\n}\n\nexport interface ICustomInsightsData {\n key: string;\n title: string;\n items:\n | ICustomItemElement[]\n | Microsoft.VideoIndexer.Contracts.CustomInsightsCapsuleAndTags[]\n | Microsoft.VideoIndexer.Contracts.CustomInsightsCapsule[];\n insightType: insightsType | Microsoft.VideoIndexer.Contracts.CustomInsightType;\n sortedBy?: CustomInsightSortedBy;\n presets: IUIPresetType[];\n}\n\nexport interface IUIAppearance {\n adjustedStart?: number | string;\n startSeconds: number;\n endSeconds: number;\n type?: string;\n endTime?: string;\n startTime?: string;\n}\n\nexport interface IUIBasicInsight {\n id: number;\n name: string;\n}\n\nexport interface IUIInsight extends IUIBasicInsight {\n selected?: boolean;\n appearances: IUIAppearance[];\n confidence?: number;\n referenceUrl?: string;\n referenceType?: string;\n seenDuration?: number;\n percentage?: number;\n title?: string;\n description?: string;\n customClass?: boolean;\n}\n\nexport type IUIInsightType = 'namedEntities' | 'labels' | 'keywords' | 'acousticEvents';\n\nexport enum UIInsightType {\n NAMED_ENTITIES = 'namedEntities',\n LABELS = 'labels',\n KEYWORDS = 'keywords'\n}\n\nexport enum UIPresetInsight {\n OCR = 'OCR',\n KEYFRAMES = 'KEYFRAMES',\n KEYWORDS = 'KEYWORDS',\n PEOPLE = 'PEOPLE',\n SPEAKERS = 'SPEAKERS',\n SPOKEN_LANGUAGE = 'SPOKEN_LANGUAGE',\n TRANSCRIPT = 'TRANSCRIPT',\n LABELS = 'LABELS',\n BRANDS = 'BRANDS',\n EMOTIONS = 'EMOTIONS',\n TOPICS = 'TOPICS',\n SENTIMENTS = 'SENTIMENTS',\n SCENES = 'SCENES',\n NAMED_ENTITIES = 'NAMED_ENTITIES',\n ACOUSTIC_EVENTS = 'ACOUSTIC_EVENTS',\n OBSERVED_PEOPLE = 'OBSERVED_PEOPLE',\n MATCHED_PERSON = 'MATCHED_PERSON',\n POST_PRODUCTION = 'POST_PRODUCTION',\n LOGOS = 'LOGOS',\n DETECTED_OBJECTS = 'DETECTED_OBJECTS'\n}\n\nexport enum IUIPostProductionInsights {\n COLOR_BARS = 'COLOR_BARS',\n CLAPPERBOARD = 'CLAPPERBOARD'\n}\n\nexport interface ISearchEvent {\n id: string;\n query: string;\n}\n\nexport enum UIActionIcon {\n EXPANDED_OPEN = 'i-vi-arrow-up',\n EXPANDED_CLOSE = 'i-vi-arrow-down',\n EXPANDED_OPEN_SMALL = 'i-vi-arrow-up-small',\n EXPANDED_CLOSE_SMALL = 'i-vi-arrow-down-small',\n TRASH = 'i-vi-trash',\n EDIT = 'i-vi-edit',\n PLAY = 'i-vi-play',\n EDITOR = 'i-vi-editor',\n CREATE = 'i-vi-add',\n DROPDOWN = 'i-vi-more',\n SETTINGS = 'i-vi-settings',\n CLOSE = 'i-vi-close-small',\n RENAME = 'i-vi-rename',\n UPLOAD = 'i-vi-upload',\n SORT = 'i-vi-sort',\n BUTTON = '',\n OK = 'i-vi-ok',\n SPINNER = 'i-vi-spinner',\n OPEN = 'i-vi-open',\n REFRESH = 'i-vi-refresh',\n ADD = 'i-vi-addto',\n ADD_BIG = 'i-vi-add-big',\n INDEX = 'i-vi-index',\n GRID = 'i-vi-grid-view',\n LIST = 'i-vi-list-view',\n CUSTOMIZATION = 'i-vi-customization',\n PREVIEW = 'i-vi-text-file',\n DOWNLOAD = 'i-vi-download',\n COMPACT = 'i-vi-compact-list-view',\n PROPERTIES = 'i-vi-properties',\n COPY = 'i-vi-copy',\n PREVIOUS = 'i-vi-back',\n MERGE = 'i-vi-merge',\n EXPORT = 'i-vi-export',\n INDEXING_SETTINGS = 'i-vi-view',\n THUMBS_DOWN = 'i-vi-thumbs-down',\n THUMBS_UP = 'i-vi-thumbs-up',\n HIDE = 'i-vi-hide',\n LIVE_FEED = 'i-vi-live-feed'\n}\n\nexport enum InsightErrorIcon {\n ILLUSTRATION_ERROR = 'i-vi-illustration-error',\n ILLUSTRATION_ERROR_NO_RESULTS = 'i-vi-illustration-no-results'\n}\n\nexport enum UIStripType {\n FACE_GATE = 'FACE_GATE'\n}\n\nexport type EditableInsights = 'labels' | 'keywords' | 'brands';\n\nexport interface IUpdateInsights {\n type: EditableInsights;\n insights: Microsoft.VideoIndexer.Contracts.Label[] | Microsoft.VideoIndexer.Contracts.Keyword[] | Microsoft.VideoIndexer.Contracts.Brand[];\n}\n\nexport interface IInstancesToAppearancesOutput {\n seenDurationRatio?: number;\n appearances: IUIAppearance[];\n}\n\nexport enum PresetRanking {\n SPEAKERS = 0,\n KEYFRAMES = 1,\n SCENES = 2,\n SENTIMENTS = 3,\n EMOTIONS = 4,\n ACOUSTIC_EVENTS = 5,\n SPOKEN_LANGUAGE = 6,\n TOPICS = 7,\n OBSERVED_PEOPLE = 8,\n MATCHED_PERSON = 9,\n NAMED_ENTITIES = 10,\n LABELS = 11,\n KEYWORDS = 12,\n OCR = 13,\n PEOPLE = 14,\n TRANSCRIPT = 16,\n POST_PRODUCTION = 17,\n LOGOS = 18,\n DETECTED_OBJECTS = 19\n}\n\nexport interface IInsightsError {\n title: string;\n icon?: string;\n description?: string;\n traceId?: string;\n}\n\nexport interface IUIEntityInsight extends IUIInsight {\n loading?: boolean;\n texts?: IEntityTitles;\n appearTitle?: string;\n seenDurationRatio?: number;\n positionTiny?: number;\n positionSmall?: number;\n positionLarge?: number;\n spriteUrl: string;\n spriteIndex: number;\n disabled?: boolean;\n titleAttribute?: string;\n // style for face pile\n style: IStyle;\n // style for entity info\n selectedStyle?: IStyle;\n showTooltip?: boolean;\n videoId?: string;\n}\n\nexport enum SpriteSize {\n TINY = 'TINY',\n SMALL = 'SMALL',\n LARGE = 'LARGE'\n}\n\nexport interface IUpdateLineEvent {\n type: UIPresetInsight;\n instance: Microsoft.VideoIndexer.Contracts.TranscriptLine | Microsoft.VideoIndexer.Contracts.Ocr;\n}\n\nexport enum SortableInsightsComponents {\n keywords = WidgetsParamOption.keywords,\n audioEffects = WidgetsParamOption.audioEffects,\n labels = WidgetsParamOption.labels,\n sentiments = WidgetsParamOption.sentiments,\n emotions = WidgetsParamOption.emotions,\n scenes = WidgetsParamOption.scenes,\n namedEntities = WidgetsParamOption.namedEntities,\n spokenLanguage = WidgetsParamOption.spokenLanguage,\n keyframes = WidgetsParamOption.keyframes\n}\n\nexport enum InsightsSortedProperty {\n START_TIME = 'startTime',\n END_TIME = 'endTime',\n SEEN_DURATION = 'seenDuration',\n NAME = 'name',\n ID = 'id'\n}\n\nexport enum InsightsSortedOrder {\n ASC = 'asc',\n DESC = 'desc'\n}\n\nexport interface IInsightsSortedBy {\n property: InsightsSortedProperty;\n order: InsightsSortedOrder;\n}\n\nexport type ISortedComponent = {\n [key in SortableInsightsComponents]?: IInsightsSortedBy;\n};\n","import { IUIInsightJsonKey } from '../insights-common/interfaces';\nimport { IUIPresetInsight, UIPresetInsight, IUIPreset, PresetRanking, IUITab, PresetInsightType } from './interfaces';\n\nexport const presetInsights: IUIPresetInsight[] = [\n {\n name: 'People',\n value: UIPresetInsight.PEOPLE,\n selected: true,\n config: true,\n dataKey: IUIInsightJsonKey.faces,\n ranking: PresetRanking.PEOPLE,\n availableTabs: [IUITab.INSIGHTS, IUITab.TIMELINE],\n type: PresetInsightType.REGULAR\n },\n {\n name: 'Detected Objects',\n value: UIPresetInsight.DETECTED_OBJECTS,\n selected: true,\n config: true,\n dataKey: IUIInsightJsonKey.detectedObjects,\n ranking: PresetRanking.DETECTED_OBJECTS,\n availableTabs: [IUITab.INSIGHTS, IUITab.TIMELINE],\n type: PresetInsightType.REGULAR\n },\n {\n name: 'Keywords',\n value: UIPresetInsight.KEYWORDS,\n selected: true,\n dataKey: IUIInsightJsonKey.keywords,\n config: true,\n ranking: PresetRanking.KEYWORDS,\n availableTabs: [IUITab.INSIGHTS, IUITab.TIMELINE],\n type: PresetInsightType.REGULAR\n },\n {\n name: 'Labels',\n value: UIPresetInsight.LABELS,\n selected: true,\n dataKey: IUIInsightJsonKey.labels,\n config: true,\n ranking: PresetRanking.LABELS,\n availableTabs: [IUITab.INSIGHTS, IUITab.TIMELINE],\n type: PresetInsightType.REGULAR\n },\n {\n name: 'Named entities',\n value: UIPresetInsight.NAMED_ENTITIES,\n selected: true,\n dataKey: 'namedEntities',\n config: true,\n ranking: PresetRanking.NAMED_ENTITIES,\n availableTabs: [IUITab.INSIGHTS, IUITab.TIMELINE],\n type: PresetInsightType.REGULAR\n },\n {\n name: 'Acoustic Events',\n value: UIPresetInsight.ACOUSTIC_EVENTS,\n selected: true,\n dataKey: IUIInsightJsonKey.audioEffects,\n config: true,\n ranking: PresetRanking.ACOUSTIC_EVENTS,\n availableTabs: [IUITab.INSIGHTS, IUITab.TIMELINE],\n type: PresetInsightType.REGULAR\n },\n {\n name: 'Emotions',\n value: UIPresetInsight.EMOTIONS,\n selected: true,\n config: true,\n dataKey: IUIInsightJsonKey.emotions,\n ranking: PresetRanking.EMOTIONS,\n availableTabs: [IUITab.INSIGHTS, IUITab.TIMELINE],\n type: PresetInsightType.REGULAR\n },\n {\n name: 'Sentiments',\n value: UIPresetInsight.SENTIMENTS,\n selected: true,\n config: true,\n dataKey: IUIInsightJsonKey.sentiments,\n ranking: PresetRanking.SENTIMENTS,\n availableTabs: [IUITab.INSIGHTS, IUITab.TIMELINE],\n type: PresetInsightType.REGULAR\n },\n {\n name: 'Keyframes',\n value: UIPresetInsight.KEYFRAMES,\n selected: true,\n config: true,\n dataKey: IUIInsightJsonKey.shots,\n ranking: PresetRanking.KEYFRAMES,\n availableTabs: [IUITab.INSIGHTS, IUITab.TIMELINE],\n type: PresetInsightType.REGULAR\n },\n {\n name: 'Topics',\n value: UIPresetInsight.TOPICS,\n selected: true,\n config: true,\n dataKey: IUIInsightJsonKey.topics,\n ranking: PresetRanking.TOPICS,\n availableTabs: [IUITab.INSIGHTS],\n type: PresetInsightType.REGULAR\n },\n {\n name: 'Scenes',\n value: UIPresetInsight.SCENES,\n selected: true,\n config: true,\n dataKey: IUIInsightJsonKey.scenes,\n ranking: PresetRanking.SCENES,\n availableTabs: [IUITab.INSIGHTS],\n type: PresetInsightType.REGULAR\n },\n {\n name: 'Speakers',\n value: UIPresetInsight.SPEAKERS,\n selected: true,\n config: true,\n dataKey: IUIInsightJsonKey.speakers,\n ranking: PresetRanking.SPEAKERS,\n availableTabs: [IUITab.TIMELINE],\n type: PresetInsightType.REGULAR\n },\n {\n name: 'Transcript',\n value: UIPresetInsight.TRANSCRIPT,\n selected: true,\n config: true,\n dataKey: IUIInsightJsonKey.transcript,\n ranking: PresetRanking.TRANSCRIPT,\n availableTabs: [IUITab.TIMELINE],\n type: PresetInsightType.REGULAR\n },\n {\n name: 'OCR',\n value: UIPresetInsight.OCR,\n selected: true,\n config: true,\n dataKey: IUIInsightJsonKey.ocr,\n ranking: PresetRanking.OCR,\n availableTabs: [IUITab.TIMELINE],\n type: PresetInsightType.REGULAR\n },\n {\n name: 'Spoken Language',\n value: UIPresetInsight.SPOKEN_LANGUAGE,\n selected: true,\n config: true,\n dataKey: IUIInsightJsonKey.spokenLanguage,\n ranking: PresetRanking.SPOKEN_LANGUAGE,\n availableTabs: [IUITab.INSIGHTS, IUITab.TIMELINE],\n type: PresetInsightType.REGULAR\n },\n {\n name: 'Observed People',\n value: UIPresetInsight.OBSERVED_PEOPLE,\n selected: true,\n config: true,\n dataKey: IUIInsightJsonKey.observedPeople,\n ranking: PresetRanking.OBSERVED_PEOPLE,\n availableTabs: [IUITab.INSIGHTS, IUITab.TIMELINE],\n type: PresetInsightType.REGULAR\n },\n {\n name: 'Matched Person',\n value: UIPresetInsight.MATCHED_PERSON,\n selected: false,\n config: true,\n dataKey: IUIInsightJsonKey.observedPeople,\n ranking: PresetRanking.MATCHED_PERSON,\n availableTabs: [IUITab.INSIGHTS],\n type: PresetInsightType.REGULAR\n },\n {\n name: 'Post-production',\n value: UIPresetInsight.POST_PRODUCTION,\n selected: true,\n config: true,\n dataKey: IUIInsightJsonKey.postProduction,\n ranking: PresetRanking.POST_PRODUCTION,\n availableTabs: [IUITab.INSIGHTS, IUITab.TIMELINE],\n type: PresetInsightType.REGULAR\n },\n {\n name: 'Logos',\n value: UIPresetInsight.LOGOS,\n selected: true,\n config: true,\n dataKey: IUIInsightJsonKey.logos,\n ranking: PresetRanking.LOGOS,\n availableTabs: [IUITab.INSIGHTS, IUITab.TIMELINE],\n type: PresetInsightType.REGULAR\n }\n];\n\nexport type IUIPresetType = 'all' | 'storyboard' | 'accessibility' | 'captioning' | 'monitoring';\n\nexport const presets: IUIPreset[] = [\n {\n value: 'all',\n name: 'All',\n insights: [\n UIPresetInsight.OCR,\n UIPresetInsight.KEYFRAMES,\n UIPresetInsight.SENTIMENTS,\n UIPresetInsight.KEYWORDS,\n UIPresetInsight.PEOPLE,\n UIPresetInsight.SPEAKERS,\n UIPresetInsight.TRANSCRIPT,\n UIPresetInsight.LABELS,\n UIPresetInsight.ACOUSTIC_EVENTS,\n UIPresetInsight.EMOTIONS,\n UIPresetInsight.TOPICS,\n UIPresetInsight.SCENES,\n UIPresetInsight.SPOKEN_LANGUAGE,\n UIPresetInsight.NAMED_ENTITIES,\n UIPresetInsight.OBSERVED_PEOPLE,\n UIPresetInsight.MATCHED_PERSON,\n UIPresetInsight.POST_PRODUCTION,\n UIPresetInsight.LOGOS,\n UIPresetInsight.DETECTED_OBJECTS\n ]\n },\n {\n name: 'Storyboard',\n value: 'storyboard',\n insights: [UIPresetInsight.PEOPLE, UIPresetInsight.KEYFRAMES, UIPresetInsight.LABELS, UIPresetInsight.LOGOS]\n },\n {\n name: 'Captioning',\n value: 'captioning',\n insights: [UIPresetInsight.TRANSCRIPT, UIPresetInsight.SPOKEN_LANGUAGE]\n },\n {\n name: 'Accessibility',\n value: 'accessibility',\n insights: [UIPresetInsight.OCR, UIPresetInsight.TRANSCRIPT, UIPresetInsight.LABELS, UIPresetInsight.ACOUSTIC_EVENTS]\n },\n {\n name: 'Monitoring',\n value: 'monitoring',\n insights: [UIPresetInsight.OBSERVED_PEOPLE, UIPresetInsight.MATCHED_PERSON, UIPresetInsight.DETECTED_OBJECTS]\n }\n];\n","import { Injectable } from '@angular/core';\n\nimport { Subject, fromEvent } from 'rxjs';\nimport { distinctUntilChanged } from 'rxjs/operators';\n\nimport { ICustomData } from '@azure/video-indexer-widgets';\n\nimport { FeatureSwitch } from '@common/modules/core/services/interfaces';\nimport { FeatureSwitchService } from '@common/modules/core/services/feature-switch/feature-switch.service';\n\nimport { AuthService } from '../../auth/services/auth.service';\nimport { ApiService } from '../../api/services/api.service';\nimport { UIFaceType } from '../components/faces/interfaces';\nimport { IArtifactRequestParams, IGetIndexRequestParams } from '../../api/interfaces';\nimport { ISceneTimeFrame } from '../components/scenes/interfaces';\nimport { IDeleteFaceAPI } from './interfaces';\nimport { SpriteType } from '../../insights-common/interfaces';\nimport { ITabListTab } from '../../shared/components/tablist/interfaces';\nimport { ICustomInsightsData, IUITab } from '../interfaces';\nimport { ICustomInsightsWidgetConfigSerialization, IVIInsightsWidgetConfigSerialization } from '../../insights-widget/services/interfaces';\nimport { CommunicationService } from '../../insights-common/communication.service';\nimport { IUIPresetType } from '../presetInsights';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class InsightsService {\n public initWidgetData: Subject;\n public initCustomWidgetData: Subject;\n public showFaceGateError: Subject;\n\n // In case there is custom images location - get the images from there\n public customImagesLocation: string;\n public tabChangeSubject: Subject>;\n public sceneChangeSubject: Subject;\n\n constructor(\n private authService: AuthService,\n private apiService: ApiService,\n private communicationService: CommunicationService,\n private featureSwitchService: FeatureSwitchService\n ) {\n this.tabChangeSubject = new Subject>();\n this.sceneChangeSubject = new Subject();\n this.initWidgetData = new Subject();\n this.initCustomWidgetData = new Subject();\n this.showFaceGateError = new Subject();\n }\n\n public getVideoTestIndex(accountId: string, videoId: string) {\n return this.apiService.Account.Video.getVideoTestIndex();\n }\n\n public getVideoIndex(accountId: string, videoId: string, language: Microsoft.VideoIndexer.Contracts.LanguageV2 = 'en-US') {\n if (accountId && videoId) {\n const params: IGetIndexRequestParams = {\n includeSummarizedInsights: !this.featureSwitchService.featureSwitch(FeatureSwitch.DisableSummarizedInsights),\n includeStreamingUrls: false\n };\n if (language) {\n params.language = language;\n }\n\n return this.apiService.Account.Video.getVideoIndex(accountId, videoId, params);\n } else {\n return this.apiService.Account.Video.getVideoTestIndex();\n }\n }\n\n public parseCustomDataItem(item: ICustomData | Microsoft.VideoIndexer.Contracts.CustomInsight) {\n const customDataItem: ICustomInsightsData = {\n key: (item as ICustomData).key || (item as Microsoft.VideoIndexer.Contracts.CustomInsight).name,\n title: (item as ICustomData).title || (item as Microsoft.VideoIndexer.Contracts.CustomInsight).displayName,\n insightType: (item as ICustomData).type || (item as Microsoft.VideoIndexer.Contracts.CustomInsight).displayType,\n items: (item as ICustomData).items || (item as Microsoft.VideoIndexer.Contracts.CustomInsight).results,\n sortedBy: (item as ICustomData).sortedBy,\n presets: (item as ICustomData).presets || (['all'] as IUIPresetType[])\n };\n return customDataItem;\n }\n\n public getThumbnailUrl(accountId: string, videoId: string, thumbnailId: string): string {\n return this.apiService.Account.Video.getThumbnailUrl(accountId, videoId, thumbnailId);\n }\n\n public getKeyframesSpriteUrl(accountId: string, videoId: string, page: number): string {\n if (this.customImagesLocation) {\n return this.apiService.Account.Video.getKeyframesSpriteCustomUrl(this.customImagesLocation, page);\n } else if (accountId && videoId) {\n let accessToken = this.authService.getUserAccessTokenOrEmptyString(videoId, accountId);\n // Fallback - if access token is empty try to get from account token\n if (!accessToken) {\n accessToken = this.authService.getUserAccessTokenOrEmptyString(null, accountId);\n }\n return this.apiService.Account.Video.getSpriteUrl(accountId, videoId, accessToken, page, SpriteType.KeyFrames);\n } else {\n return this.apiService.Account.Video.getTestKeyframesSpriteUrl(page);\n }\n }\n\n public getAccessToken(accountId: string, videoId: string): string {\n return this.authService.getAccessToken(videoId, accountId);\n }\n\n public getPermissionFromURLToken() {\n return this.authService.getPermissionFromURLToken();\n }\n\n public saveFace(accountId: string, videoId: string, faceId: number, facesType: UIFaceType, newName: string) {\n const paramsArg = [accountId, videoId, faceId];\n // Check face type value\n if (facesType === UIFaceType.people) {\n this.communicationService.faceUpdated(faceId);\n return this.apiService.Account.Video.updateFace(accountId, videoId, faceId, { newName: newName });\n }\n }\n\n public deleteFace(accountId: string, videoId: string, faceId: number, facesType: UIFaceType) {\n const { ...deleteFacesApiArgs }: IDeleteFaceAPI = { accountId, videoId, faceId };\n\n if (facesType === UIFaceType.people) {\n this.communicationService.faceUpdated(faceId);\n return this.apiService.Account.Video.removeFaces(deleteFacesApiArgs);\n }\n }\n\n public search(accountId: string, videoId: string, query: string) {\n return this.apiService.Account.search(accountId, {\n id: videoId,\n query: query\n });\n }\n\n public setThumbnail(accountId: string, videoId: string, imageUrl: string, thumbnailId?: string) {\n const accessToken = this.authService.getAccessToken(videoId, accountId, true);\n return this.apiService.Account.Video.setThumbnail(accountId, videoId, thumbnailId, {\n imageUrl: `${imageUrl}?accessToken=${accessToken}`\n });\n }\n\n public setThumbnailId(accountId: string, videoId: string, keyframeThumbnailId: string) {\n return this.apiService.Account.Video.setThumbnailId(accountId, videoId, {\n keyframeThumbnailId: keyframeThumbnailId\n });\n }\n\n public onTimeChange() {\n if (!window) {\n return;\n }\n const source = fromEvent(window, 'message');\n return source.pipe(distinctUntilChanged());\n }\n\n public getContainerWidthAsync(el: HTMLElement): Promise {\n return new Promise((resolve, reject) => {\n const w = el && el.getBoundingClientRect().width;\n resolve(w);\n });\n }\n\n public getContainerHeightAsync(el: HTMLElement): Promise {\n return new Promise((resolve, reject) => {\n const h = el && el.getBoundingClientRect().height;\n resolve(h);\n });\n }\n\n public getCaptionUrl(\n video: Microsoft.VideoIndexer.Contracts.PlaylistContractV2,\n language: Microsoft.VideoIndexer.Contracts.LanguageV2,\n format: string\n ): string {\n const reqParams = { language: language, format: format };\n\n return this.apiService.Account.Video.getCaptionsUrl(video.accountId, video.id, reqParams);\n }\n\n public getThumbnail(video: Microsoft.VideoIndexer.Contracts.PlaylistContractV2, thumbnailId: string, allowEdit?: boolean) {\n return this.apiService.Account.Video.getThumbnail(video.accountId, video.id, thumbnailId, { allowEdit: allowEdit });\n }\n\n public getMetadataUrlAsync(video: Microsoft.VideoIndexer.Contracts.PlaylistContractV2) {\n const reqParams: IArtifactRequestParams = { type: 'Metadata' };\n return this.apiService.Account.Video.getArtifactUrl(video.accountId, video.id, reqParams);\n }\n\n public getMetadataAsync(url: string) {\n return this.apiService.Account.Video.getArtifactByUrl(url);\n }\n}\n","import { createAction, props } from '@ngrx/store';\nimport { Update } from '@ngrx/entity';\n\nimport { VideoReviewState } from '@common/modules/shared/interfaces';\nimport { IUpdateInsights } from '@common/modules/insights/interfaces';\n\nimport { UpdateVideoIndexAction } from '../interfaces';\n\nimport PlaylistContractV2 = Microsoft.VideoIndexer.Contracts.PlaylistContractV2;\n\nexport const upsertMediaIndex = createAction('[Media] Upsert Media Index', props<{ mediaIndex: PlaylistContractV2 }>());\n\nexport const updateIndex = createAction('[Media] Update Media Index', props<{ mediaIndex: Update }>());\n\nexport const updateMediaIndex = createAction(\n '[Media/API] Update Media Index',\n props<{ id: string; index: PlaylistContractV2; newIndex: PlaylistContractV2 }>()\n);\n\nexport const updateVideoIndex = createAction(\n '[Media/API] Update Video Index',\n props<{\n action: UpdateVideoIndexAction;\n index?: PlaylistContractV2;\n }>()\n);\n\nexport const updateVideoIndexSucceed = createAction(\n '[Media] Update Video Index Succeed',\n props<{\n action: UpdateVideoIndexAction;\n }>()\n);\n\nexport const assignNewSpeaker = createAction(\n '[Media/API] Assign New Speaker',\n props<{\n addSpeakerAction: UpdateVideoIndexAction;\n updateTranscriptLineAction: UpdateVideoIndexAction;\n }>()\n);\n\nexport const updateProjectMediaIndex = createAction(\n '[Media/API] Update Project Media Index',\n props<{ id: string; index: PlaylistContractV2; newIndex: PlaylistContractV2 }>()\n);\n\nexport const updateIndexSaving = createAction('[Media] Update Media Index Saving', props<{ saving: boolean }>());\n\nexport const loadMediaFailure = createAction('[Media] Load Media Failure', props<{ error }>());\n\nexport const selectMediaIndex = createAction('[Media] Select Media Index', props<{ id: string }>());\n\nexport const loadVideoIndex = createAction('[Media API] Get Video Index', props<{ selectAccount?: boolean }>());\n\nexport const loadProjectIndex = createAction('[Media API] Get Project Index');\n\nexport const requestReview = createAction('[Media] Request Review', props<{ accountId: string; videoId: string }>());\n\nexport const updateMediaReviewState = createAction('[Media] Update Request Review', props<{ videoId: string; reviewState: VideoReviewState }>());\n\nexport const removeMediaIndex = createAction('[Media] Remove Media Index', props<{ id: string }>());\n\nexport const updateThumbnailId = createAction('[Media] Update Media Index Thumbnail Id', props<{ id: string; thumbnailId: string }>());\n\nexport const updateInsights = createAction('[Media] Update Insights In Media Index', props<{ id: string; data: IUpdateInsights }>());\n\nexport const updateFace = createAction('[Media] Update Face In Media Index', props<{ id: string; face: Microsoft.VideoIndexer.Contracts.Face }>());\n\nexport const updateTranscriptLine = createAction(\n '[Media] Update Transcript Line In Media Index',\n props<{ id: string; line: Microsoft.VideoIndexer.Contracts.TranscriptLine }>()\n);\n\nexport const updateAllTranscriptLines = createAction(\n '[Media] Update All Transcript Lines In Media Index',\n props<{ id: string; transcript: Microsoft.VideoIndexer.Contracts.TranscriptLine[] }>()\n);\n\nexport const updateOcrLine = createAction(\n '[Media] Update OCR Line In Media Index',\n props<{ id: string; line: Microsoft.VideoIndexer.Contracts.Ocr }>()\n);\n\nexport const setInsightsFilterValue = createAction('[Media] Set insights filter value', props<{ value: string }>());\n","import { Store } from '@ngrx/store';\n\nimport { Observable, switchMap, EMPTY, withLatestFrom } from 'rxjs';\n\nimport { orderBy } from 'lodash-es';\n\nimport { InsightsImagesService } from '@common/modules/shared/components/insights-images/insights-images.service';\nimport { InsightsCommonDataService } from '@common/modules/insights-common/insights-common-data.service';\nimport { InsightsCommonUtilsService } from '@common/modules/insights-common/insights-common-utils.service';\nimport { IUIAppearance } from '@common/modules/insights/interfaces';\nimport { zeroPad } from '@common/modules/utils/string';\nimport {\n DETECTED_OBJECT_WIDTH,\n DETECTED_OBJECT_WIDTH_LARGE,\n IUIDetectedObject,\n IUIDetectedObjectGroup,\n SPRITE_WIDTH\n} from '@common/modules/insights/components/detected-objects/interfaces';\nimport { IUIInsightJsonKey, SpriteType } from '@common/modules/insights-common/interfaces';\nimport { EventCategory, TrackService } from '@common/modules/core/services/track';\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\n\nimport * as fromMedia from '../selectors/media.selectors';\nimport { resources } from '../resources';\n\nexport class DetectedObjectsStore {\n private readonly ZERO_PAD_PLACES = 3;\n private resources = resources;\n\n constructor(\n private readonly store: Store,\n private insightsImagesService: InsightsImagesService,\n private dataService: InsightsCommonDataService,\n private insightsCommonUtilsService: InsightsCommonUtilsService,\n private trackService: TrackService,\n private translate: TranslateHelperService\n ) {\n this.init();\n }\n\n private init() {\n this.translate.translateResources(this.resources);\n }\n\n public get selectedAll$(): Observable {\n const timeStamp = window.performance.now();\n\n return this.store.select(fromMedia.selectedMediaIndex).pipe(\n withLatestFrom(this.store.select(fromMedia.selectMediaDetails)),\n switchMap(([mediaIndex, mediaDetails]) => {\n if (!this.insightsCommonUtilsService.hasInsightsData(mediaIndex, IUIInsightJsonKey.detectedObjects)) {\n return EMPTY;\n }\n\n const detectedObjectsGroupsMap: { [key: string]: IUIDetectedObjectGroup } = {};\n\n for (const video of mediaIndex.videos) {\n const detectedObjects = video.insights?.detectedObjects;\n detectedObjects?.forEach((obj, index) => {\n const objectAppearances: IUIAppearance[] = this.insightsCommonUtilsService.convertInstancesToAppearances(obj.instances).appearances;\n\n const object: IUIDetectedObject = {\n appearances: objectAppearances,\n id: obj.id,\n selected: false,\n name: zeroPad(obj.id, this.ZERO_PAD_PLACES),\n className: obj.type,\n displayClassName: obj.displayName.toLowerCase(),\n titleAttribute: `#${zeroPad(obj.id, this.ZERO_PAD_PLACES)}`,\n spriteIndex: index,\n positionSmall: this.insightsImagesService.getSpritePosition(index, DETECTED_OBJECT_WIDTH, SPRITE_WIDTH),\n positionLarge: this.insightsImagesService.getSpritePosition(index, DETECTED_OBJECT_WIDTH_LARGE, SPRITE_WIDTH),\n spriteUrl: this.dataService.getSpriteUrl(mediaDetails.accountId, mediaDetails.videoId, index, SPRITE_WIDTH, SpriteType.DetectedObjects),\n style: null,\n videoId: video.id,\n texts: {\n pictureTitle: this.resources?.DetectedObjectsComponentPictureLabel\n }\n };\n\n object.style = this.insightsImagesService.getThumbStyle(object, object.positionSmall);\n\n if (!detectedObjectsGroupsMap[object.className]) {\n detectedObjectsGroupsMap[object.className] = {\n id: object.id,\n name: object.displayClassName,\n className: object.className,\n objects: [],\n appearances: null,\n selected: false\n };\n }\n detectedObjectsGroupsMap[object.className].objects.push(object);\n });\n }\n\n // Sort by number of detected objects in a group\n const detectedObjectsGroups = orderBy(Object.values(detectedObjectsGroupsMap), [group => group.objects.length], ['desc']);\n\n const timeTaken = window.performance.now() - timeStamp;\n this.trackService.trackPerformance('detected_objects.prepare_data', EventCategory.INSIGHTS, timeTaken);\n\n return [detectedObjectsGroups];\n })\n );\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Store } from '@ngrx/store';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\n\nimport { catchError, switchMap, tap, withLatestFrom } from 'rxjs/operators';\n\nimport { ApiService } from '@common/modules/api/services/api.service';\nimport { LoggerService } from '@common/modules/core/services/logger/logger.service';\nimport { EventCategory, TrackService } from '@common/modules/core/services/track';\nimport { UrlService } from '@common/modules/core/services/url/url.service';\nimport { IGetIndexRequestParams } from '@common/modules/api/interfaces';\n\nimport { MediaCommonService } from '../services/media-common.service';\nimport { UpdateVideoIndexAction } from '../interfaces';\nimport * as fromMedia from '../selectors/media.selectors';\nimport * as MediaActions from '../actions/media.actions';\n\n@Injectable()\nexport class MediaCommonEffects {\n public updateVideoIndex$ = createEffect(() =>\n this.actions$.pipe(\n ofType(MediaActions.updateVideoIndex),\n withLatestFrom(this.store.select(fromMedia.selectIndexLanguage)),\n withLatestFrom(this.store.select(fromMedia.selectedMediaIndex)),\n switchMap(([[{ action, index }, language], selectedIndex]) => {\n const params: IGetIndexRequestParams = {\n language\n };\n this.logger.log('Update index in store');\n return this.apiService.Account.Video.updateVideoIndex(selectedIndex.accountId, selectedIndex.id, action.data, params).pipe(\n switchMap((result: Microsoft.VideoIndexer.Contracts.PlaylistContractV2) => {\n this.logger.log('Update index success');\n\n // TODO: remove this once completely migrating the insights to ngrx\n if (action.refreshData) {\n setTimeout(() => {\n this.mediaCommonService.videoIndexUpdated(result);\n });\n }\n\n this.trackService.track('insights.update_index.success', {\n category: EventCategory.MEDIA,\n data: { path: action.data[0].path }\n });\n return [\n MediaActions.updateIndexSaving({ saving: false }),\n MediaActions.upsertMediaIndex({ mediaIndex: result }),\n MediaActions.updateVideoIndexSucceed({ action })\n ];\n }),\n catchError(error => {\n this.logger.log('Update index failed', error);\n this.trackService.track('insights.update_index.failed', {\n category: EventCategory.MEDIA,\n data: { path: action.data[0].path, error }\n });\n this.mediaCommonService.handelError(action);\n const actionsList = [];\n if (index) {\n actionsList.push(MediaActions.upsertMediaIndex({ mediaIndex: index }));\n }\n actionsList.push(MediaActions.updateIndexSaving({ saving: false }));\n return actionsList;\n })\n );\n })\n )\n );\n\n public assignNewSpeaker$ = createEffect(() =>\n this.actions$.pipe(\n ofType(MediaActions.assignNewSpeaker),\n withLatestFrom(this.store.select(fromMedia.selectIndexLanguage)),\n withLatestFrom(this.store.select(fromMedia.selectedMediaIndex)),\n switchMap(([[{ addSpeakerAction, updateTranscriptLineAction }, language], selectedIndex]) => {\n const params: IGetIndexRequestParams = {\n language\n };\n return this.apiService.Account.Video.updateVideoIndex(selectedIndex.accountId, selectedIndex.id, addSpeakerAction.data, params).pipe(\n switchMap((result: Microsoft.VideoIndexer.Contracts.PlaylistContractV2) => {\n this.logger.log('Assign new speaker success');\n this.trackService.track('insights.assign_new_speaker.success', {\n category: EventCategory.MEDIA,\n data: { path: addSpeakerAction.data[0].path }\n });\n\n // assign to the transcript line action the new speaker id\n const newSpeakerName = addSpeakerAction.data[0].value['name'];\n const id = result.videos[0].insights.speakers.find(s => s.name === newSpeakerName)?.id;\n const newAction: UpdateVideoIndexAction = {\n ...updateTranscriptLineAction,\n data: [\n {\n ...updateTranscriptLineAction.data[0],\n value: id\n }\n ]\n };\n return [MediaActions.updateVideoIndex({ action: newAction, index: result })];\n }),\n catchError(error => {\n this.logger.log('Update index failed', error);\n this.trackService.track('insights.assign_new_speaker.failed', {\n category: EventCategory.MEDIA,\n data: { path: addSpeakerAction.data[0].path, error }\n });\n this.mediaCommonService.handelError(addSpeakerAction);\n return [MediaActions.updateIndexSaving({ saving: false })];\n })\n );\n })\n )\n );\n\n public updateVideoIndexSucceed$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(MediaActions.updateVideoIndexSucceed),\n tap(({ action }) => {\n this.mediaCommonService.handelSuccess(action);\n })\n ),\n { dispatch: false }\n );\n constructor(\n private actions$: Actions,\n private apiService: ApiService,\n private store: Store,\n private logger: LoggerService,\n private trackService: TrackService,\n private urlUtility: UrlService,\n private mediaCommonService: MediaCommonService\n ) {}\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { EffectsModule } from '@ngrx/effects';\nimport { StoreModule } from '@ngrx/store';\n\nimport { reducers } from './selectors/media.selectors';\nimport { MediaCommonEffects } from './effects/media-common.effects';\nimport { MediaCommonStoreService } from './services/media-common-store.service';\n\n@NgModule({\n declarations: [],\n imports: [CommonModule, StoreModule.forFeature('media', reducers), EffectsModule.forFeature([MediaCommonEffects])],\n providers: [MediaCommonStoreService]\n})\nexport class MediaDataCommonModule {}\n","import { HttpErrorResponse } from '@angular/common/http';\n\nimport { createEntityAdapter, EntityAdapter, EntityState } from '@ngrx/entity';\nimport { Action, createReducer, on } from '@ngrx/store';\n\nimport { immerOn } from 'ngrx-immer/store';\n\nimport { VideoReviewState } from '@common/modules/shared/interfaces';\n\nimport * as MediaActions from '../actions/media.actions';\n\nimport PlaylistContractV2 = Microsoft.VideoIndexer.Contracts.PlaylistContractV2;\n\nexport const mediaFeatureKey = 'media';\n\nexport interface IState extends EntityState {\n selectedIndexId: string;\n saving: boolean;\n error: HttpErrorResponse;\n insightsFilterValue: string;\n}\n\nexport function selectIndexId(a: PlaylistContractV2): string {\n return a.id;\n}\n\nexport const adapter: EntityAdapter = createEntityAdapter({\n selectId: selectIndexId\n});\n\nexport const initialState: IState = adapter.getInitialState({\n // additional entity state properties\n selectedIndexId: null,\n saving: false,\n error: null,\n insightsFilterValue: ''\n});\n\nconst mediaReducer = createReducer(\n initialState,\n on(MediaActions.upsertMediaIndex, (state, { mediaIndex }) => {\n return adapter.upsertOne(mediaIndex, state);\n }),\n on(MediaActions.updateIndex, (state, { mediaIndex }) => {\n return adapter.updateOne(mediaIndex, { ...state, saving: true });\n }),\n on(MediaActions.updateIndexSaving, (state, { saving }) => {\n return {\n ...state,\n saving: saving\n };\n }),\n on(MediaActions.selectMediaIndex, (state, { id }) => {\n return {\n ...state,\n selectedIndexId: id,\n insightsFilterValue: ''\n };\n }),\n on(MediaActions.loadMediaFailure, (state, { error }) => {\n return {\n ...state,\n error: error\n };\n }),\n on(MediaActions.loadVideoIndex, state => {\n return {\n ...state,\n error: null\n };\n }),\n on(MediaActions.loadProjectIndex, state => {\n return {\n ...state,\n error: null\n };\n }),\n immerOn(MediaActions.requestReview, (state: IState, { videoId }) => {\n state.entities[videoId].videos[0].reviewState = VideoReviewState.IN_PROGRESS;\n return state;\n }),\n immerOn(MediaActions.updateMediaReviewState, (state: IState, { videoId, reviewState }) => {\n state.entities[videoId].videos[0].reviewState = reviewState;\n return state;\n }),\n on(MediaActions.removeMediaIndex, (state, { id }) => {\n return adapter.removeOne(id, state);\n }),\n immerOn(MediaActions.updateThumbnailId, (state: IState, { id, thumbnailId }) => {\n state.entities[id].videos[0].thumbnailId = thumbnailId;\n return state;\n }),\n immerOn(MediaActions.updateInsights, (state: IState, { id, data }) => {\n state.entities[id].videos[0].insights[data.type as string] = data.insights;\n return state;\n }),\n immerOn(MediaActions.updateFace, (state: IState, { id, face }) => {\n const index = state.entities[id].videos[0].insights.faces.findIndex(faceElement => faceElement.id === face.id);\n state.entities[id].videos[0].insights.faces[index] = face;\n return state;\n }),\n immerOn(MediaActions.updateTranscriptLine, (state: IState, { id, line }) => {\n const index = state.entities[id].videos[0].insights.transcript.findIndex(transcriptElement => transcriptElement.id === line.id);\n state.entities[id].videos[0].insights.transcript[index] = { ...line };\n return state;\n }),\n immerOn(MediaActions.updateOcrLine, (state: IState, { id, line }) => {\n const index = state.entities[id].videos[0].insights.ocr.findIndex(ocrElement => ocrElement.id === line.id);\n state.entities[id].videos[0].insights.ocr[index] = { ...line };\n return state;\n }),\n immerOn(MediaActions.updateAllTranscriptLines, (state: IState, { id, transcript }) => {\n state.entities[id].videos[0].insights.transcript = transcript;\n return state;\n }),\n on(MediaActions.setInsightsFilterValue, (state, { value }) => {\n return {\n ...state,\n insightsFilterValue: value\n };\n })\n);\n\nexport function reducer(state: IState | undefined, action: Action) {\n return mediaReducer(state, action);\n}\n\n// get the selectors\nconst { selectIds, selectEntities, selectAll, selectTotal } = adapter.getSelectors();\n\n// select the array of user ids\nexport const selectIndexIds = selectIds;\n\n// select the dictionary of user entities\nexport const selectIndexEntities = selectEntities;\n\n// select the array of users\nexport const selectAllIndexes = selectAll;\n\n// select the total user count\nexport const selectIndexTotal = selectTotal;\n","export const resources = {\n DetectedObjectsComponentPictureLabel: ''\n};\n","import { ActionReducerMap, createFeatureSelector, createSelector } from '@ngrx/store';\n\nimport { map } from 'lodash-es';\n\nimport { getSeconds, humanizeFromNow } from '@common/modules/utils/time';\nimport { StreamingPreset } from '@common/modules/shared/interfaces';\n\nimport * as fromMedia from '../reducers/media.reducer';\n\nexport interface IState {\n media: fromMedia.IState;\n}\n\nexport const reducers: ActionReducerMap = {\n media: fromMedia.reducer\n};\n\nexport const selectMediaState = createFeatureSelector(fromMedia.mediaFeatureKey);\n\nexport const getMediaIndexState = createSelector(selectMediaState, state => state.media);\n\nexport const getMediaIndexIds = createSelector(getMediaIndexState, state => state.ids as string[]);\n\nexport const selectedMediaIndex = createSelector(getMediaIndexState, state => state.entities[state.selectedIndexId]);\n\nexport const selectedMediaIndexId = createSelector(getMediaIndexState, state => state.selectedIndexId);\n\nexport const selectedMediaIndexSaving = createSelector(getMediaIndexState, state => state.saving);\n\nexport const selectedMediaIndexError = createSelector(getMediaIndexState, state => state.error);\n\nexport const selectAllEntities = createSelector(getMediaIndexState, state => state.entities);\n\nexport const selectAllIndexes = createSelector(selectAllEntities, entities => map(entities, index => ({ ...index })));\n\nexport const selectedMediaIndexSpeakers = createSelector(selectedMediaIndex, index => index?.videos[0]?.insights?.speakers || []);\n\nexport const selectedMediaInsightsLogos = createSelector(selectedMediaIndex, index => index?.videos[0]?.insights?.logos || []);\n\nexport const selectMediaIndexDuration = createSelector(selectedMediaIndex, index => {\n return index?.duration ? getSeconds(index?.duration) : index?.durationInSeconds;\n});\n\nexport const selectIndex = createSelector(selectAllIndexes, selectedMediaIndexId, (indexes, selectedId) =>\n indexes.find(index => index.id === selectedId)\n);\n\nexport const selectIndexLanguage = createSelector(selectedMediaIndex, videoIndex => {\n if (!videoIndex) {\n return 'en-US';\n } else {\n return videoIndex.videos[0].language;\n }\n});\n\nexport const selectIsBase = createSelector(selectIndex, videoIndex => {\n if (!videoIndex) {\n return true;\n } else {\n return videoIndex.isBase;\n }\n});\n\nexport const selectMediaDetails = createSelector(selectIndex, videoIndex => {\n if (!videoIndex) {\n return {\n mediaName: '',\n privacyMode: 'Public' as Microsoft.VideoIndexer.Contracts.PrivacyMode,\n userName: '',\n createTimeFormated: undefined,\n moderationState: undefined,\n accountId: '',\n videoId: '',\n isBase: false\n };\n }\n return {\n createTimeFormated: humanizeFromNow(videoIndex.created),\n moderationState: videoIndex.videos && videoIndex.videos[0] && videoIndex.videos[0].moderationState ? videoIndex.videos[0].moderationState : null,\n userName: videoIndex.userName,\n privacyMode: videoIndex.privacyMode,\n mediaName: videoIndex.name,\n accountId: videoIndex.accountId,\n videoId: videoIndex.id,\n isBase: videoIndex.isBase\n };\n});\n\nexport const selectMediaActionsData = createSelector(selectIndex, videoIndex => {\n if (!videoIndex) {\n return {\n name: '',\n accountId: '',\n id: '',\n isBase: false,\n isEditable: false,\n videos: [],\n privacyMode: undefined\n };\n }\n return {\n name: videoIndex.name,\n accountId: videoIndex.accountId,\n id: videoIndex.id,\n isBase: videoIndex.isBase,\n isEditable: videoIndex.isEditable,\n videos: videoIndex.videos,\n privacyMode: videoIndex.isBase ? videoIndex.privacyMode : 'Private'\n };\n});\n\nexport const selectMediaAlertData = createSelector(selectIndex, videoIndex => {\n return {\n accountId: videoIndex ? videoIndex.accountId : '',\n id: videoIndex ? videoIndex.id : '',\n moderationState: videoIndex ? videoIndex.videos[0].moderationState : undefined,\n reviewState: videoIndex ? videoIndex.videos[0].reviewState : undefined,\n isNoStreaming: isNoStreaming(videoIndex)\n };\n});\n\nexport const selectInsightsFilterValue = createSelector(getMediaIndexState, state => state.insightsFilterValue);\n\n// eslint-disable-next-line deprecation/deprecation\nexport const selectFilteredLogos = createSelector(\n selectedMediaInsightsLogos,\n selectInsightsFilterValue,\n (logos: Microsoft.VideoIndexer.Contracts.Logo[], value) => {\n const mappedLogos = logos.map((l, i) => {\n return { ...l, spriteIndex: i };\n });\n\n if (!value) {\n return mappedLogos;\n }\n\n return [\n ...mappedLogos?.filter(l => {\n const appearances = l.instances?.filter(appearance => {\n return appearance.matchedValue?.toLowerCase().includes(value?.toLowerCase());\n });\n return l.name?.toLowerCase().includes(value?.toLowerCase()) || appearances?.length;\n })\n ];\n }\n);\n\n// Util function\nconst isNoStreaming = videoIndex => {\n if (!videoIndex) {\n return false;\n }\n // If there is a streaming preset data\n if (videoIndex?.videos[0]?.streamingPreset) {\n return videoIndex?.videos[0]?.streamingPreset === StreamingPreset.NoStreaming;\n } else {\n // No streaming preset data, base on published URL\n return !videoIndex?.videos[0]?.publishedUrl;\n }\n};\n","import { Injectable } from '@angular/core';\n\nimport { Store } from '@ngrx/store';\n\nimport { Observable } from 'rxjs';\n\nimport { InsightsImagesService } from '@common/modules/shared/components/insights-images/insights-images.service';\nimport { InsightsCommonDataService } from '@common/modules/insights-common/insights-common-data.service';\nimport { InsightsCommonUtilsService } from '@common/modules/insights-common/insights-common-utils.service';\nimport { TrackService } from '@common/modules/core/services/track';\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\n\nimport { DetectedObjectsStore } from './../classes/detected-objects-store';\nimport * as fromMedia from '../selectors/media.selectors';\nimport { UpdateVideoIndexAction } from '../interfaces';\nimport * as MediaActions from '../actions/media.actions';\n\n@Injectable()\nexport class MediaCommonStoreService {\n // INSIGHTS CLASSES\n public DetectedObjects: DetectedObjectsStore;\n\n constructor(\n private readonly store: Store,\n private insightsImagesService: InsightsImagesService,\n private dataService: InsightsCommonDataService,\n private insightsCommonUtilsService: InsightsCommonUtilsService,\n private trackService: TrackService,\n private translate: TranslateHelperService\n ) {\n this.init();\n }\n\n public updateVideoIndex(action: UpdateVideoIndexAction) {\n this.store.dispatch(MediaActions.updateVideoIndex({ action }));\n }\n\n public assignNewSpeaker(addSpeakerAction: UpdateVideoIndexAction, updateTranscriptLineAction: UpdateVideoIndexAction) {\n this.store.dispatch(MediaActions.assignNewSpeaker({ addSpeakerAction, updateTranscriptLineAction }));\n }\n\n public selectedIndexSpeakers(): Observable {\n return this.store.select(fromMedia.selectedMediaIndexSpeakers);\n }\n\n public selectedLogos(): Observable {\n return this.store.select(fromMedia.selectedMediaInsightsLogos);\n }\n\n public selectMediaIndexDuration() {\n return this.store.select(fromMedia.selectMediaIndexDuration);\n }\n\n public selectInsightsFilterValue() {\n return this.store.select(fromMedia.selectInsightsFilterValue);\n }\n\n public upsertIndex(index: Microsoft.VideoIndexer.Contracts.PlaylistContractV2) {\n this.store.dispatch(MediaActions.upsertMediaIndex({ mediaIndex: index }));\n }\n\n public selectAllIndexes(): Observable {\n return this.store.select(fromMedia.selectAllIndexes);\n }\n\n public selectedMediaIndex() {\n return this.store.select(fromMedia.selectedMediaIndex);\n }\n\n public selectIndex(id: string) {\n this.store.dispatch(MediaActions.selectMediaIndex({ id }));\n }\n\n public setInsightsFilterValue(value: string) {\n this.store.dispatch(MediaActions.setInsightsFilterValue({ value }));\n }\n\n public selectFilteredLogos$(): Observable {\n return this.store.select(fromMedia.selectFilteredLogos);\n }\n\n private init() {\n this.DetectedObjects = new DetectedObjectsStore(\n this.store,\n this.insightsImagesService,\n this.dataService,\n this.insightsCommonUtilsService,\n this.trackService,\n this.translate\n );\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Subject } from 'rxjs';\n\nimport { UpdateVideoIndexAction } from '../interfaces';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MediaCommonService {\n public videoIndexUpdate$: Subject = new Subject();\n public videoIndexUpdateError$: Subject = new Subject();\n public videoIndexUpdateSuccess$: Subject = new Subject();\n public videoIndexTranscriptLineUpdateError$: Subject[] = [];\n public videoIndexTranscriptLineUpdateSuccess$: Subject[] = [];\n\n constructor() {}\n\n public videoIndexUpdated(index: Microsoft.VideoIndexer.Contracts.PlaylistContractV2) {\n this.videoIndexUpdate$.next(index);\n }\n\n public handelSuccess(action: UpdateVideoIndexAction) {\n this.videoIndexUpdateSuccess$.next(action.successMessage);\n this.videoIndexTranscriptLineUpdateSuccess$[action.transcriptLineId].next(action.errorMessage);\n }\n\n public handelError(action: UpdateVideoIndexAction) {\n this.videoIndexUpdateError$.next(action.errorMessage);\n this.videoIndexTranscriptLineUpdateError$[action.transcriptLineId].next(action.errorMessage);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { NotificationsService } from './services/notifications.service';\n\n@NgModule({\n declarations: [],\n imports: [CommonModule],\n providers: [NotificationsService]\n})\nexport class NotificationsModule {}\n","import { Injectable } from '@angular/core';\n\nimport { Store } from '@ngrx/store';\n\nimport { INotification, NotificationType } from '@common/modules/core/services/toast/interfaces';\nimport { ToastService } from '@common/modules/core/services/toast/toast.service';\n\nimport * as fromNotificationState from './../../../../apps/web/src/core/reducers/notifications/notifications.reducer';\nimport * as NotificationsActions from './../../../../apps/web/src/core/actions/notifications.actions';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NotificationsService {\n constructor(private store: Store, private toastService: ToastService) {}\n\n public notify(notification: INotification) {\n switch (notification.type) {\n case NotificationType.Message:\n this.store.dispatch(NotificationsActions.addNotificationMessages({ notifications: [notification] }));\n break;\n case NotificationType.Alert:\n this.store.dispatch(NotificationsActions.addNotificationsAlerts({ notifications: [notification] }));\n break;\n case NotificationType.Banner:\n this.store.dispatch(NotificationsActions.addNotificationsBanners({ notifications: [notification] }));\n break;\n default:\n this.toastService.notify(notification);\n break;\n }\n }\n\n public clear(ids: string[]) {\n this.store.dispatch(NotificationsActions.removeNotifications({ ids }));\n }\n}\n","import { Observable, Subject } from 'rxjs';\n\nimport { IEventProperties } from '../../../../../core/services/track';\n\nexport type BoundingBoxPageType =\n | Microsoft.VideoIndexer.Contracts.IObservedPeoplePage\n | Microsoft.VideoIndexer.Contracts.IBoundingBoxesPage\n | Microsoft.VideoIndexer.Contracts.IDetectedObjectsPage;\n\nexport interface IBodyTrackingPluginOptions {\n containerNameId: string;\n getFirstPage: () => Observable;\n getPageByTime: (time: number) => Observable;\n exposeResizeFunction: boolean;\n currentSelectedItem: () => number;\n boundingBoxLabel: string;\n type: BoundingBoxType;\n typeLabel: string;\n isOn: boolean;\n colorMap: IBoundingBoxColorMap;\n clearDataSubject: Subject;\n track: (message: string, additionalProperties?: IEventProperties) => void;\n labelGenerator: (id: number, label?: string) => string;\n boundingBoxesFilterTypes?: IFilterItem[];\n boundingBoxFilterLabel?: string;\n filterDialogLabels?: IFilterItemsDialogLabels;\n}\n\nexport interface IBoundingBoxColorMap {\n outerBoundingBoxColor: string;\n innerBoundingBoxColor: string;\n outerBoundingBoxColorSelected: string;\n fontColor: string;\n fontColorSelected: string;\n}\nexport interface ITrackedItemSnapshot {\n colorMap: IBoundingBoxColorMap;\n label: string;\n instance: IInstance;\n}\n\nexport interface ITimeToInstance {\n [time: number]: IInstance;\n}\n\nexport interface IPoint {\n x: number;\n y: number;\n}\n\nexport interface IRelativePoint extends IPoint {\n w: number;\n h: number;\n}\n\nexport interface IInstance {\n startSeconds: number;\n endSeconds: number;\n points: IPoint[];\n relativePoint: IRelativePoint;\n start: number;\n end: number;\n topLeft?: number[];\n bottomRight?: number[];\n x?: number;\n y?: number;\n width?: number;\n height?: number;\n}\n\nexport enum BoundingBoxType {\n FACE = 'Face',\n BODY = 'Body',\n OBJECT = 'Object'\n}\n\nexport enum captionsConfigurationOptions {\n AUDIO_EFFECTS = 'AudioEffects',\n SPEAKERS = 'Speakers'\n}\n\nexport enum BoundingBoxOptionType {\n TOGGLE = 'Toggle',\n FILTER = 'Filter'\n}\n\nexport const bodyTrackingButtonComponent = 'BodyTrackingButton';\n\nexport interface IFilterItemsDialogLabels {\n title: string;\n selectAllCheckbox: string;\n doneBtn: string;\n cancelBtn: string;\n searchPlaceholder: string;\n nextBtn: string;\n prevBtn: string;\n noResultsFound: string;\n}\n\nexport interface IFilterItem {\n type: string;\n displayName: string;\n}\n","import { IAction } from '../shared/interfaces';\nimport { UIActionType, UIActionIcon } from '../insights/interfaces';\nimport { IDialogButton } from './components/dialog/interfaces';\nimport { ActionButtonType } from './components/action-button/interfaces';\n\nexport const actions: IAction[] = [\n {\n icon: 'i-vi-download',\n title: 'Download',\n key: 'Download',\n type: UIActionType.DOWNLOAD,\n value: UIActionType.DOWNLOAD,\n selected: false,\n selectable: true,\n hasDrop: true,\n id: 'download',\n isDisabled: false\n },\n {\n icon: 'i-vi-translate',\n title: 'Translate',\n key: 'Translate',\n isButtonAction: true,\n type: UIActionType.LANGUAGE,\n value: UIActionType.LANGUAGE,\n selected: false,\n selectable: true,\n hasDrop: true,\n id: 'language',\n isDisabled: false\n },\n {\n icon: 'i-vi-layers',\n title: 'View',\n key: 'View',\n type: UIActionType.PRESETS,\n value: UIActionType.PRESETS,\n selected: false,\n selectable: true,\n hasDrop: false,\n id: 'presets',\n isDisabled: false\n },\n {\n icon: UIActionIcon.EDIT,\n title: 'Edit',\n key: 'Edit',\n type: UIActionType.EDIT,\n value: UIActionType.EDIT,\n selected: false,\n selectable: true,\n hasDrop: false,\n id: 'edit',\n hasPressedMode: true,\n isDisabled: false\n },\n {\n icon: 'i-vi-layers',\n title: 'View',\n key: 'View',\n type: UIActionType.PRESETS,\n value: UIActionType.PRESETS,\n selected: false,\n selectable: true,\n hasDrop: true,\n id: 'presets',\n hasPressedMode: true\n }\n];\n\nexport const GeneralCancelDialogButton: IDialogButton = {\n type: ActionButtonType.SECONDARY,\n action: {\n title: 'Cancel',\n key: 'Cancel',\n selected: false,\n type: UIActionType.CANCEL,\n value: 'Cancel',\n selectable: true,\n hasDrop: false,\n id: 'Cancel'\n }\n};\n\nexport const UpdateAccountAction: IAction = {\n title: '',\n key: 'UpdateAccountNotificationButtonText',\n type: UIActionType.UPDATE,\n value: UIActionType.UPDATE,\n id: 'update-account'\n};\n","import { StorageCacheKey } from './interfaces';\n\nexport const VIResourceMarketplaceId = 'Microsoft.VideoIndexer';\nexport const PortalCreateVIDevAccountFlag = 'createDevEnv=true';\nexport const MigrationTimeOffset = 60 * 24 * 30; // 30 days\n\nexport function getCreateAccountPortalUrl(portalPrefix: string, createDevEnv = false) {\n if (createDevEnv) {\n return `${portalPrefix}/?${PortalCreateVIDevAccountFlag}#create/${VIResourceMarketplaceId}`;\n } else {\n return `${portalPrefix}/?#create/${VIResourceMarketplaceId}`;\n }\n}\n\nexport function getLastArmStorageKey(tenantId: string) {\n return `${StorageCacheKey.LastArmAccount}_${tenantId}`;\n}\n","import { Component, OnInit, Input, Output, EventEmitter, ChangeDetectionStrategy, ViewChild, ElementRef, AfterViewInit } from '@angular/core';\n\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\n\nimport { IAction } from '../../../shared/interfaces';\nimport { UIActionType, UIActionIcon } from '../../../insights/interfaces';\nimport { FocusableComponent } from '../../../accessibility/focusable/focusable.component';\nimport { ActionButtonType } from './interfaces';\nimport { resources } from './resources';\n\n@Component({\n selector: 'app-vi-action-button',\n templateUrl: './action-button.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['./action-button.component.scss']\n})\nexport class ActionButtonComponent extends FocusableComponent implements OnInit, AfterViewInit {\n // Input\n @Input() public action: IAction;\n\n // If to render opener or not. used for action menus.\n @Input() public hasOpenerIcon = false;\n\n // the height of the action button\n @Input() public height = null;\n\n // the width of the action button\n @Input() public width = 'auto';\n\n @Input() public maxWidth = 'auto';\n\n @Input() public minWidth = 'auto';\n\n // If we show the opener up or down\n @Input() public expanded = false;\n\n // size class [small/default]\n @Input() public sizeClass = '';\n\n // If button is internal and responsive hide its title\n // and opener if the screen is medium.\n @Input() public internal = false;\n\n // Is the button disabled or not.\n @Input() public isDisabled = false;\n\n // if the button already has a notification tooltip (hasTooltip = true), hide the title attribute.\n @Input() public hasNotificationTooltip = false;\n\n @Input() public type: ActionButtonType;\n\n @Input() public selected = false;\n\n // For tabindex\n @Input() public activeContainer = false;\n\n // if the button controls an action menu we link it with the aria-owns attribute\n @Input() public ariaOwns?: string;\n\n @Input() public showAccessibilityTooltip = false;\n\n // Fallback url for image\n @Input() public fallbackUrl?: string;\n\n // Id of button\n @Input() public uid?: string;\n\n // Specific Class\n @Input() public class = '';\n\n // loading state - Show spinner at the image location\n @Input() public isLoading = false;\n\n @Input() public whiteFocus = false;\n\n // represents a class that defines the button's breakpoints.\n @Input() public responsiveState = '';\n\n @Input() public ariaLabelledBy?: string;\n\n @Input() public isLink = false;\n\n // show the button as focused when init. only for init so no need manage the focus state.\n @Input() focusOnInit = false;\n\n // Output\n @Output() public actionClick = new EventEmitter();\n @Output() public mouseOver = new EventEmitter();\n @Output() public mouseLeave = new EventEmitter();\n @Output() public focusIn = new EventEmitter();\n\n @ViewChild('button', { static: true }) button: ElementRef;\n\n public mainActionIcon: string;\n public UIActionType = UIActionType;\n public UIActionIcon = UIActionIcon;\n public resources = resources;\n\n constructor(private translate: TranslateHelperService) {\n super();\n }\n\n public ngOnInit() {\n this.mainActionIcon = this.action ? this.action.icon : '';\n if (!this.uid) {\n this.uid = this.action ? this.action.id : '';\n }\n\n this.translate.translateResourcesInstant(resources);\n }\n\n public ngAfterViewInit() {\n if (this.focusOnInit) {\n this.button.nativeElement.focus();\n }\n }\n\n public selectAction(action: IAction, e: MouseEvent) {\n this.actionClick.emit(action);\n }\n\n public handleMouseOver() {\n this.mouseOver.emit();\n }\n\n public handleMouseLeave() {\n this.mouseLeave.emit();\n }\n\n public handleFocusIn() {\n this.focusIn.emit();\n }\n\n public isUIActionType(actionType: UIActionType): boolean {\n return this.action?.type === actionType;\n }\n}\n","\n","export enum ActionButtonType {\n SECONDARY = 'secondary',\n PRIMARY = 'primary',\n PRIMARY_TEXT = 'primaryText',\n HEADER_BUTTON = 'headerButton',\n COMMAND = 'command',\n COMMAND_TRANSPARENT = 'commandTrasparent',\n ACTION_BUTTON = 'actionButton',\n MAIN_ACTION_MENU = 'mainActionMenu',\n SECONDARY_SLIM = 'secondarySlim'\n}\n","export const resources = {\n Preview: ''\n};\n","import { Component, OnInit, Input } from '@angular/core';\n\nimport { IAction } from '../../interfaces';\nimport { FocusableComponent } from '../../../accessibility/focusable/focusable.component';\n\n@Component({\n selector: 'app-vi-action-link',\n templateUrl: './action-link.component.html',\n styleUrls: ['./action-link.component.scss']\n})\nexport class ActionLinkComponent extends FocusableComponent implements OnInit {\n // Input\n @Input() public action: IAction;\n\n // If to render opener or not. used for action menus.\n @Input() public hasOpenerIcon = false;\n\n // The width of the action button\n @Input() public width = 'auto';\n\n // If we show the opener up or down\n @Input() public expanded = false;\n\n // size class [small/default]\n @Input() public sizeClass = '';\n\n // If button is responsive it will hide its title\n // and opener if the screen is small\n @Input() public responsive = true;\n\n // For tabindex\n @Input() public activeContainer = false;\n\n // Is the button disabled or not.\n @Input() public isDisabled = false;\n\n @Input() public showAccessibilityTooltip = false;\n\n constructor() {\n super();\n }\n\n public ngOnInit() {}\n}\n","\n \n {{action?.title}}\n\n","import {\n Component,\n OnInit,\n OnChanges,\n Input,\n Output,\n EventEmitter,\n ChangeDetectionStrategy,\n SimpleChanges,\n ViewChild,\n ElementRef,\n ChangeDetectorRef\n} from '@angular/core';\n\nimport { take } from 'rxjs/operators';\n\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\n\nimport { InsightsCommonUtilsService } from '../../../insights-common/insights-common-utils.service';\nimport { FocusManagerService } from '../../../accessibility/focus-manager.service';\nimport { AccessibilityUtilsService } from '../../../accessibility/accessibility-utils.service';\nimport { resources } from './resources';\n\n@Component({\n selector: 'app-vi-actionable-input',\n templateUrl: './actionable-input.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['./actionable-input.component.scss']\n})\nexport class ActionableInputComponent implements OnInit, OnChanges {\n @Input() public disabled: boolean;\n @Input() public alwaysUnderlineOnEdit: boolean = false;\n @Input() public ignoreClickWhenDisabled: boolean = false;\n @Input() public val;\n @Input() public class = '';\n @Input() public activeContainer = false;\n @Input() public addApproveAndLoading = false;\n @Input() public autoSaveOn = false;\n @Input() public discardOnEsc = false;\n @Input() public loading = false;\n @Input() public focusOnEnable = false;\n @Input() public title = '';\n @Input() public fontSize = 13;\n @Input() public isBold = false;\n @Input() public calcFontFamilyWidth = false;\n @Input() public isHandleBlur: boolean;\n @Input() public placeholder?: string;\n @Input() public minWidth?: number = 40;\n @Input() public maxWidth = 0;\n // take letter spacing into account (accessibility)\n @Input() public calcTextSpacing = false;\n // In case using fixedWidth it ignores minWidth maxWidth inputs\n @Input() public fixedWidth: number;\n @Input() public responsiveState = '';\n @Input() public inputType = 'text';\n\n @Output() public enter = new EventEmitter();\n @Output() public esc = new EventEmitter();\n @Output() public focus = new EventEmitter();\n @Output() public emptyInput = new EventEmitter();\n @Output() public inputChanged = new EventEmitter();\n @Output() public inputChangedData = new EventEmitter();\n\n @ViewChild('acInput', { static: true }) public inputBox: ElementRef;\n\n // Public\n public valueChanged = false;\n public width = '0px';\n public isSaved = false;\n public resources = resources;\n // Private\n private readonly BORDER_SPACING = 2;\n constructor(\n private insightsCommonUtilsService: InsightsCommonUtilsService,\n private focusManagerService: FocusManagerService,\n private accessibilityUtils: AccessibilityUtilsService,\n private elementRef: ElementRef,\n public cdr: ChangeDetectorRef,\n private translate: TranslateHelperService\n ) {}\n\n public ngOnInit() {\n this.translate\n .translateResources(this.resources)\n .pipe(take(1))\n .subscribe(() => {});\n if (this.fixedWidth) {\n this.width = `${this.fixedWidth}px`;\n this.minWidth = this.fixedWidth;\n }\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n // Reset value changed\n if (this.disabled || changes.val) {\n this.valueChanged = false;\n this.inputChanged.emit(false);\n }\n\n // If changed to focus on enable, apply focus on text\n if (this.focusOnEnable && changes.disabled && !changes.disabled.currentValue) {\n this.focusInput();\n }\n\n if (!this.fixedWidth) {\n this.updateWidth();\n }\n }\n\n public handleEnterKeyDown(e: Event) {\n e.stopPropagation();\n e.preventDefault();\n }\n\n public handleEnter(value: string) {\n this.inputBox.nativeElement.focus();\n // Discard if not valid input\n if (!this.validateInput(value)) {\n this.discard();\n return;\n }\n\n this.enter.emit(value);\n this.isSaved = true;\n }\n\n public handleEsc() {\n if (this.discardOnEsc) {\n this.discard();\n }\n }\n\n public handleFocus(value: boolean) {\n this.focus.emit(value);\n }\n\n public validateInput(value: string): boolean {\n // Input box contains empty value\n return value && value.trim() !== '';\n }\n\n public onBlur($event) {\n // when on blur is handled, also handleEnter is also being called.\n const relatedTarget = $event.relatedTarget;\n\n // If focus moved to related\n if (relatedTarget) {\n const parents = this.accessibilityUtils.getParents(relatedTarget);\n\n // If blurred to a child - dont trigger blur\n if (parents.indexOf(this.elementRef.nativeElement) !== -1) {\n return;\n }\n }\n\n // If auto save is on, check that enter haven't called / not during loading\n if (this.autoSaveOn && (!this.isSaved || !this.loading)) {\n // Check if value has been changed, if so - save new value\n const currentInputValue = this.inputBox.nativeElement.value;\n\n if (this.val !== currentInputValue && this.validateInput(currentInputValue)) {\n // Update new val\n this.val = currentInputValue;\n\n // Trigger enter\n this.handleEnter(this.val);\n return;\n }\n }\n\n // In order to prevent 2 event emit, Check if isSaved is true\n if (!this.isHandleBlur || this.isSaved) {\n this.isSaved = false;\n return;\n }\n\n this.handleEsc();\n }\n\n public valueChange() {\n const currentInputValue = this.inputBox.nativeElement.value;\n if (!this.fixedWidth) {\n let fontFamily;\n if (this.calcFontFamilyWidth) {\n fontFamily = this.insightsCommonUtilsService.getCalculatedFontFamily(this.inputBox.nativeElement);\n }\n const textWidth =\n this.insightsCommonUtilsService.measureText(\n currentInputValue || this.inputBox.nativeElement.placeholder,\n this.fontSize + (this.isBold ? 1 : 0),\n fontFamily\n ) + this.BORDER_SPACING;\n this.width = this.maxWidth ? `${Math.max(Math.min(this.maxWidth, textWidth), this.minWidth)}px` : `${Math.max(textWidth, this.minWidth)}px`;\n }\n\n if (currentInputValue === '') {\n this.emptyInput.emit(currentInputValue);\n }\n // If the value has been changed, and not blank\n if (currentInputValue && this.val !== currentInputValue) {\n this.valueChanged = true;\n this.inputChanged.emit(true);\n this.inputChangedData.emit(currentInputValue);\n } else {\n this.valueChanged = false;\n this.inputChanged.emit(false);\n }\n\n if (!this.fixedWidth) {\n this.updateWidth();\n }\n }\n\n private focusInput() {\n // Wait until edit enabled and then focus\n setTimeout(() => {\n this.focusManagerService.focusVia(() => {\n return this.inputBox;\n });\n }, 200);\n }\n\n private discard() {\n if (!this.isSaved || !this.loading) {\n // Check if value has been changed, if so - return to old value\n const currentInputValue = this.inputBox.nativeElement.value;\n if (this.val !== currentInputValue) {\n // Return to old value and blur\n this.inputBox.nativeElement.value = this.val;\n this.valueChanged = false;\n // Update width\n if (!this.fixedWidth) {\n this.updateWidth();\n }\n }\n\n this.inputBox.nativeElement.blur();\n this.esc.emit();\n }\n }\n\n private updateWidth() {\n // Calc the value by order of values\n const currentValue = this.val || this.inputBox.nativeElement.value || this.placeholder;\n let fontFamily;\n if (this.calcFontFamilyWidth) {\n fontFamily = this.insightsCommonUtilsService.getCalculatedFontFamily(this.inputBox.nativeElement);\n }\n const textSpacing = this.calcTextSpacing ? this.insightsCommonUtilsService.measureTextSpacing(currentValue, this.fontSize) : 0;\n const textWidth =\n this.insightsCommonUtilsService.measureText(currentValue, this.fontSize + (this.isBold ? 1 : 0), fontFamily) +\n this.BORDER_SPACING +\n textSpacing;\n const totalWidth = this.maxWidth ? Math.min(this.maxWidth, textWidth) : textWidth;\n this.width = `${Math.max(totalWidth, this.minWidth)}px`;\n }\n}\n","\n\n\n\n\n","export const resources = {\n ActionableInputSaveChanges: ''\n};\n","import {\n Component,\n OnInit,\n Input,\n Output,\n EventEmitter,\n ChangeDetectorRef,\n Inject,\n OnDestroy,\n ViewChild,\n ChangeDetectionStrategy,\n OnChanges,\n SimpleChanges,\n ElementRef,\n Renderer2,\n ViewChildren,\n QueryList\n} from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\n\nimport { cloneDeep } from 'lodash-es';\n\nimport { ActionButtonType } from '@common/modules/shared/components/action-button/interfaces';\n\nimport { Direction, IAction } from '../../../shared/interfaces';\nimport { InsightsCommonUtilsService } from '../../../insights-common/insights-common-utils.service';\nimport { UIActionType } from '../../../insights/interfaces';\nimport { FocusManagerService } from '../../../accessibility/focus-manager.service';\nimport { TranslateHelperService } from '../../../translation/services/translate-helper.service';\nimport { isMainButtonPressed } from '../../../utils/event';\nimport { UtilsService } from '../../services/utils.service';\n\n@Component({\n selector: 'app-actions-menu',\n templateUrl: './actions-menu.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['./actions-menu.component.scss']\n})\nexport class ActionsMenuComponent implements OnInit, OnChanges, OnDestroy {\n // Public\n public mainActionIcon: string;\n public showTooltip = false;\n public containerWidth = 0;\n public width = 'auto';\n public buttonWidth = 'auto';\n public subMenuWidth = 'auto';\n public subMenuPadding = 24;\n public expanded = false;\n public defaultCSS = {\n padding: 8,\n fontSize: 14\n };\n public openRightClass = false;\n public UIActionType = UIActionType;\n public menuId: string;\n public menuItemRefs: ElementRef[];\n public Direction = Direction;\n\n // Input\n @Input() public action?: IAction;\n @Input() public type: ActionButtonType;\n @Input() public actionList: IAction[] = [];\n @Input() public hasOpenerIcon = false;\n @Input() public changeTextOnSelect = false;\n @Input() public defaultValue = 'en-US';\n @Input() public tooltipStatusType = '';\n @Input() public hasTooltip = false;\n @Input() public sizeClass = '';\n @Input() public calcWidth = true;\n @Input() public minDropDownWidth: string;\n @Input() public isDisabled = false;\n @Input() public activeContainer = false;\n @Input() public showAccessibilityTooltip = false;\n @Input() public updateDropdownLocation = false;\n @Input() public openSubMenuDown = false;\n // Fallback url for image\n @Input() public fallbackUrl?: string;\n @Input() public id?: string;\n\n // Output\n @Output() public actionChange = new EventEmitter(true);\n @Output() public mouseOverActionButton = new EventEmitter();\n @Output() public mouseLeaveActionButton = new EventEmitter();\n @Output() public focusInActionButton = new EventEmitter();\n @Output() public isMenuOpened = new EventEmitter();\n\n @ViewChild('dropdownMenu', { static: false }) public dropdownMenu: ElementRef;\n @ViewChild('dropdownContainer', { static: false }) public dropdownContainer: ElementRef;\n @ViewChildren('menuItems') public menuItems: QueryList;\n @ViewChild('MainButton', { read: ElementRef }) public mainButton: ElementRef;\n\n // Privates\n private documentClickHandlerRef;\n private isActionClick = false;\n private documentClickBound = false;\n\n constructor(\n @Inject(DOCUMENT) private document: Document,\n private cdr: ChangeDetectorRef,\n private commonUtilsService: InsightsCommonUtilsService,\n private translate: TranslateHelperService,\n private focusManager: FocusManagerService,\n public utils: UtilsService,\n public el: ElementRef,\n private renderer: Renderer2\n ) {}\n\n public get whiteFocus(): boolean {\n return this.type === ActionButtonType.HEADER_BUTTON;\n }\n\n public ngOnInit() {\n this.mainActionIcon = this.action ? this.action.icon : '';\n if (this.sizeClass === 'small') {\n this.defaultCSS.fontSize = 13;\n this.defaultCSS.padding = 9;\n }\n this.actionList.forEach(action => {\n action.selected = false;\n });\n if (this.calcWidth) {\n this.calcDropDownWidth();\n } else {\n this.subMenuWidth = `${this.calcMaxTextWidth() + this.subMenuPadding}px`;\n }\n if (!this.id && this.action) {\n this.id = this.action.id;\n }\n this.menuId = `submenu-${this.id}`;\n }\n\n public applyDirection(): void {\n if (!this.dropdownMenu) {\n return;\n }\n this.utils.getContainerRectAsync(this.el.nativeElement).then(elementRect => {\n this.utils.getBodyRectAsync().then(bodyRect => {\n // Get dropdown height\n this.utils.getContainerRectAsync(this.dropdownMenu.nativeElement).then(dropdownRect => {\n // Calculate height with padding and dropdown height\n const totalDropdownHeight = elementRect.bottom + dropdownRect.height + 20;\n const bottomOffset = Math.abs(bodyRect.bottom - totalDropdownHeight);\n // Check if drop-down is overlapping with screen border\n if (dropdownRect.width > bodyRect.right - dropdownRect.right) {\n this.renderer.removeClass(this.dropdownContainer.nativeElement, 'left');\n }\n\n if (totalDropdownHeight >= bodyRect.bottom && bottomOffset <= totalDropdownHeight && !this.openSubMenuDown) {\n this.renderer.setStyle(this.dropdownMenu.nativeElement, 'top', `-${dropdownRect.height}px`);\n }\n this.renderer.setStyle(this.dropdownContainer.nativeElement, 'opacity', `1`);\n });\n });\n });\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n if (changes && changes.defaultValue && !changes.defaultValue.firstChange) {\n // Set back action to default value\n if (this.changeTextOnSelect) {\n const type = this.action.type;\n let action: IAction;\n this.actionList.forEach(actionListItem => {\n actionListItem.selected = false;\n if (actionListItem.value === this.defaultValue) {\n action = actionListItem;\n }\n });\n this.action = cloneDeep(action);\n this.action.type = type;\n }\n }\n if (changes.actionList) {\n if (this.calcWidth) {\n this.calcDropDownWidth();\n } else {\n this.subMenuWidth = `${this.calcMaxTextWidth() + this.subMenuPadding}px`;\n }\n }\n }\n\n public handleArrowNav(index: number) {\n this.focusManager.focusVia(() => this.menuItems.find((_, i) => i === index), this.cdr);\n }\n\n // modulo function has undefined behaviour for negative numbers so we implement our own\n public calcIndex(index: number) {\n return index > -1 && index < this.actionList.length ? index : this.actionList.length - Math.abs(index);\n }\n\n public onEscHandler(event: KeyboardEvent) {\n // toggle sub window\n if (this.expanded) {\n this.selectAction(this.action, null);\n\n // Focus triggered button\n if (this.id) {\n this.focusManager.focusByQuery(`#${this.id}`);\n }\n }\n this.isMenuOpened.emit(this.expanded);\n }\n\n // User clicked on action button\n public selectAction(action: IAction, e: MouseEvent | KeyboardEvent) {\n this.expanded = !this.expanded;\n this.cdr.detectChanges();\n this.actionChange.emit(action);\n this.isActionClick = true;\n this.bindToDocumentClick();\n if (this.updateDropdownLocation) {\n setTimeout(() => {\n this.applyDirection();\n });\n } else {\n if (this.expanded) {\n this.renderer.setStyle(this.dropdownContainer.nativeElement, 'opacity', `1`);\n }\n }\n this.isMenuOpened.emit(this.expanded);\n }\n\n // User choose an action from dropdown menu\n public selectSubAction(action: IAction) {\n if (action.isDisabled) {\n return;\n }\n // Apply action\n if (this.changeTextOnSelect) {\n const type = this.action.type;\n this.action.isButtonAction = false;\n this.actionChange.emit(action);\n action.isButtonAction = true;\n this.action = cloneDeep(action);\n this.action.type = type;\n } else {\n this.actionChange.emit(action);\n }\n\n // Close drop\n this.expanded = false;\n\n // Focus triggered button\n if (this.id) {\n this.focusManager.focusByQuery(`#${this.id}`);\n }\n\n this.isMenuOpened.emit(this.expanded);\n // Calc new width\n if (this.calcWidth) {\n this.calcDropDownWidth();\n }\n }\n\n public onMouseOver(state: boolean) {\n this.showTooltip = state;\n this.cdr.detectChanges();\n\n if (state) {\n this.mouseOverActionButton.emit();\n } else {\n this.mouseLeaveActionButton.emit();\n }\n }\n\n public handleFocusInActionButton() {\n this.focusInActionButton.emit();\n }\n\n public generateTooltipText(): string {\n // Get current value\n let actionTitle = '';\n for (const action of this.actionList) {\n if (action.value === this.defaultValue) {\n actionTitle = action.title;\n break;\n }\n }\n const itemResources = { TooltipStatus: '' };\n this.translate.translateResources(itemResources, {\n statusType: this.tooltipStatusType,\n currentStatus: `${actionTitle}`\n });\n\n return itemResources.TooltipStatus;\n }\n\n public ngOnDestroy(): void {\n this.unbindToDocumentClick();\n }\n\n private bindToDocumentClick() {\n if (!this.documentClickBound) {\n this.documentClickHandlerRef = this.documentClickHandler.bind(this);\n this.document.addEventListener('mouseup', this.documentClickHandlerRef);\n this.documentClickBound = true;\n }\n }\n\n private unbindToDocumentClick() {\n if (this.documentClickBound) {\n this.document.removeEventListener('mouseup', this.documentClickHandlerRef);\n this.documentClickBound = false;\n }\n }\n\n private documentClickHandler(event: MouseEvent) {\n if (!isMainButtonPressed(event)) {\n return;\n }\n if (!this.isActionClick) {\n this.expanded = false;\n this.isMenuOpened.emit(this.expanded);\n this.cdr.detectChanges();\n this.unbindToDocumentClick();\n this.actionList.forEach(action => {\n action.selected = false;\n });\n }\n this.isActionClick = false;\n }\n\n private calcMaxTextWidth() {\n // Calc texts max width\n let max = 0;\n this.actionList.forEach(action => {\n const text = action.title;\n let textWidth = this.commonUtilsService.measureText(text, this.defaultCSS.fontSize);\n if (action.icon) {\n textWidth += 20;\n }\n if (max < textWidth) {\n max = textWidth;\n }\n });\n\n return max;\n }\n\n private calcDropDownWidth() {\n const dropdownTextsWidth = this.calcMaxTextWidth();\n const padding = this.defaultCSS.padding;\n\n // Calc button width\n const mainActionWidth = this.commonUtilsService.measureText(this.action ? this.action.title : ':', this.defaultCSS.fontSize);\n let totalWidth = Math.max(dropdownTextsWidth, mainActionWidth);\n\n // Add button padding\n totalWidth += 2 * padding;\n\n // Add icons padding\n if (this.mainActionIcon) {\n totalWidth += 20;\n }\n if (this.hasOpenerIcon) {\n totalWidth += 20;\n }\n\n // Add main text padding\n totalWidth += 8;\n\n if (totalWidth) {\n this.width = `${totalWidth}px`;\n }\n\n if (this.action && this.action.title) {\n this.buttonWidth = this.width;\n }\n }\n}\n","
\n
\n \n \n
\n
\n
\n
\n
    \n
  • \n \n
  • \n \n
\n
\n
\n
\n
","import { Component, OnInit, Input, ChangeDetectionStrategy, Output, EventEmitter } from '@angular/core';\n\nimport { AlertMessageType } from './interfaces';\n\n@Component({\n selector: 'app-vi-alert-message',\n templateUrl: './alert-message.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['./alert-message.component.scss']\n})\nexport class AlertMessageComponent implements OnInit {\n @Input() public type: AlertMessageType;\n @Input() public content: string;\n @Input() public contentTitle: string;\n @Input() public linkText?: string;\n @Input() public linkPath?: string;\n @Input() public isContentHtml = false;\n // isButton override linkPath. Only one of these inputs can be used.\n @Input() public isButton = false;\n @Output() public buttonClicked = new EventEmitter();\n\n constructor() {}\n\n public ngOnInit() {}\n\n public onClick() {\n this.buttonClicked.emit();\n }\n}\n","
\n
\n \n \n \n
\n\n
\n \n {{ content }}\n \n \n \n \n {{ linkText }}\n \n
\n
\n","export enum AlertMessageType {\n WARNING = 'warning',\n ERROR = 'error',\n SUCCESS = 'success',\n INFO = 'info'\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n OnChanges,\n SimpleChanges,\n OnDestroy,\n Inject,\n ChangeDetectorRef\n} from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\n\nimport { IAction } from '../../interfaces';\nimport { TranslateHelperService } from '../../../translation/services/translate-helper.service';\nimport { UIActionType } from '../../../insights/interfaces';\nimport { resources } from './resources';\nimport { isMainButtonPressed } from '../../../utils/event';\nimport { ActionButtonType } from '../action-button/interfaces';\nimport { CheckBoxActionMenuSize, CheckBoxActionMenuType } from './interfaces';\n\n@Component({\n selector: 'app-vi-check-box-action-menu',\n templateUrl: './check-box-action-menu.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['./check-box-action-menu.component.scss']\n})\nexport class CheckBoxActionMenuComponent implements OnInit, OnChanges, OnDestroy {\n @Input() public actionList: IAction[] = [];\n @Input() public hasOpenerIcon = true;\n @Input() public placeholder;\n @Input() public isDisabled = false;\n @Input() public selectedAction: IAction;\n @Input() public hasTooltip = false;\n @Input() public labelForId = '';\n @Input() public type: CheckBoxActionMenuType = ActionButtonType.MAIN_ACTION_MENU;\n @Input() public size: CheckBoxActionMenuSize = CheckBoxActionMenuSize.Large;\n @Input() public uid?: string;\n @Input() public ariaLabelledBy?: string;\n\n @Output() public selectedActionsChange = new EventEmitter(true);\n\n public placeholderAction;\n public value = '';\n public expanded = false;\n public isEmptySelectedActions: boolean;\n public actions: IAction[] = [];\n public resources = resources;\n public UIActionType = UIActionType;\n public ActionButtonType = ActionButtonType;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private timeout: any;\n private isActionButtonClick = false;\n private isCheckboxClick = false;\n private documentClickBound = false;\n private documentClickHandlerRef: (event: MouseEvent) => void;\n\n constructor(@Inject(DOCUMENT) private document: Document, private translate: TranslateHelperService, private cdr: ChangeDetectorRef) {}\n\n public ngOnInit() {\n this.translate.translateResourcesInstant(this.resources);\n this.placeholder = this.placeholder ?? this.resources?.CheckboxSelectLabel;\n this.placeholderAction = { title: this.placeholder };\n this.cdr.detectChanges();\n this.initActions();\n\n // Set selected menu actions according to input selected actions\n if (this.selectedAction) {\n this.setValue();\n } else {\n this.resetSelectedActions();\n }\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n // If new actions list - set action\n if (changes && changes.actionList) {\n this.initActions();\n this.setValue();\n }\n }\n\n public ngOnDestroy(): void {\n this.unbindToDocumentClick();\n }\n\n public handleChange(action: IAction) {\n if (this.isEmptySelectedActions) {\n this.selectedAction = action;\n this.isEmptySelectedActions = false;\n }\n\n this.isCheckboxClick = true;\n this.updateSelectionByGroup(action);\n\n // Set new value for menu\n this.setValue();\n\n // Get selected actions\n const selectedActions = this.actions.filter(currentAction => currentAction.selected && currentAction.type !== UIActionType.GROUP);\n\n // Reset selected actions if no action is chosen\n if (selectedActions.length === 0) {\n this.resetSelectedActions();\n }\n\n this.selectedActionsChange.emit(selectedActions);\n }\n\n public toggleDropdown() {\n this.expanded = !this.expanded;\n this.isActionButtonClick = this.expanded;\n\n if (this.expanded) {\n this.bindToDocumentClick();\n }\n }\n\n private bindToDocumentClick() {\n if (!this.documentClickBound) {\n this.documentClickHandlerRef = this.documentClickHandler.bind(this);\n this.document.addEventListener('mouseup', this.documentClickHandlerRef);\n this.documentClickBound = true;\n }\n }\n\n private unbindToDocumentClick() {\n if (this.documentClickBound) {\n this.document.removeEventListener('mouseup', this.documentClickHandlerRef);\n this.documentClickBound = false;\n }\n }\n\n // Hide dropdown if user clicked on document area which is not current component area\n private collapse() {\n if (!this.isActionButtonClick && !this.isCheckboxClick) {\n this.expanded = false;\n this.unbindToDocumentClick();\n this.cdr.detectChanges();\n }\n this.isActionButtonClick = false;\n this.isCheckboxClick = false;\n }\n\n private documentClickHandler = (event: MouseEvent): void => {\n if (!isMainButtonPressed(event)) {\n return;\n }\n clearTimeout(this.timeout);\n this.timeout = setTimeout(() => {\n this.collapse();\n });\n };\n\n private initActions() {\n this.actions = [];\n const actionsGroup: string[] = [];\n let groupCounter = 0;\n for (const action of this.actionList) {\n // Add group actions\n if (action.group && !actionsGroup.includes(action.group)) {\n const actionsInGroup = this.actionList.filter(currentAction => currentAction.group === action.group);\n const isGroupSelected = actionsInGroup.every(currentAction => currentAction.selected);\n const groupAction: IAction = {\n title: action.group,\n selected: isGroupSelected,\n value: action.group,\n id: `group_${groupCounter}`,\n type: UIActionType.GROUP\n };\n groupCounter++;\n actionsGroup.push(action.group);\n this.actions.push(groupAction);\n }\n\n // Push action\n this.actions.push(action);\n }\n }\n\n private updateSelectionByGroup(action: IAction) {\n // If a group action - select all or deselect sub actions, if all group actions selected - mark group\n if (action.type === UIActionType.GROUP) {\n for (const currentAction of this.actions) {\n if (currentAction.group === action.value) {\n currentAction.selected = action.selected;\n }\n }\n } else {\n let currentGroup;\n for (const currentAction of this.actions) {\n if (currentAction.type === UIActionType.GROUP) {\n currentGroup = currentAction;\n currentGroup.selected = true;\n } else if (currentAction.group && currentGroup && currentAction.group === currentGroup.value) {\n currentGroup.selected = currentGroup.selected && currentAction.selected;\n }\n }\n }\n }\n\n private resetSelectedActions() {\n this.selectedAction = this.placeholderAction;\n this.value = this.placeholder;\n this.isEmptySelectedActions = true;\n }\n\n private setValue() {\n this.value = '';\n // If action is selected - add to value\n this.actions.forEach(action => {\n this.value += `${action.selected && action.type !== UIActionType.GROUP ? action.title + ', ' : ''}`;\n });\n\n // Remove last ' ,'\n if (this.value) {\n this.value = this.value.slice(0, -2);\n }\n\n this.placeholderAction = { title: this.value ? this.value : this.placeholder };\n this.cdr.detectChanges();\n }\n}\n","
\n
\n \n \n
\n \n
\n
    \n
  • \n
    \n \n
    \n
  • \n
\n
\n
\n
","import { ActionButtonType } from '../action-button/interfaces';\n\nexport type CheckBoxActionMenuType = ActionButtonType | CheckBoxActionMenuExtendedType;\n\nexport enum CheckBoxActionMenuExtendedType {\n Underline = 'underline'\n}\n\nexport enum CheckBoxActionMenuSize {\n Small = 'small',\n Large = 'Large'\n}\n","export const resources = {\n CheckboxSelectLabel: ''\n};\n","import { Component, ChangeDetectionStrategy, Input, Output, EventEmitter } from '@angular/core';\n\nimport { FocusableComponent } from '@common/modules/accessibility/focusable/focusable.component';\nimport { guid } from '@common/modules/utils/string';\n\nimport { CheckboxSize } from './interfaces';\n\n@Component({\n selector: 'vi-checkbox-with-label',\n templateUrl: './checkbox-with-label.component.html',\n styleUrls: ['./checkbox-with-label.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CheckboxWithLabelComponent extends FocusableComponent {\n @Input() public checked = false;\n @Input() public label: string;\n @Input() public disabled = false;\n @Input() public size?: CheckboxSize = CheckboxSize.Large;\n @Input() public labelSize?: '12-16' | '13-18' | '14-20' = '14-20';\n @Input() public ariaLabel?: string;\n @Output() public checkedChange = new EventEmitter(false);\n\n public id = `checkboxWithLabel${guid()}`;\n\n constructor() {\n super();\n }\n\n public toggleCheckbox() {\n this.checked = !this.checked;\n this.checkedChange.emit(this.checked);\n }\n}\n","
\n \n
","export enum CheckboxSize {\n Small = 'small',\n Large = 'large'\n}\n","import { Component, OnInit, Input, ViewChild, ElementRef, ChangeDetectorRef, OnDestroy, OnChanges, SimpleChanges } from '@angular/core';\nimport { LiveAnnouncer } from '@angular/cdk/a11y';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { trimEnd } from 'lodash-es';\n\nimport { InsightsService } from '@common/modules/insights/services/insights.service';\n\nimport { InsightsCommonUtilsService } from '../../../insights-common/insights-common-utils.service';\nimport { TranslateHelperService } from '../../../translation/services/translate-helper.service';\nimport { DataService } from '../../services/data.service';\nimport { resources } from './resources';\n\n@Component({\n selector: 'app-description',\n templateUrl: './description.component.html',\n styleUrls: ['./description.component.scss']\n})\nexport class DescriptionComponent implements OnInit, OnDestroy, OnChanges {\n // Selected item object\n @Input() public selectedItem;\n\n // Item type (Brand, Person, ..)\n @Input() public type: string;\n\n // Show text - Show biography / Show description ..\n @Input() public showButtonText: string;\n\n // Selected item info title\n @Input() public infoTitle = '';\n\n // Show selected item name\n @Input() public showName = true;\n @Input() public disabled?: boolean;\n @Input() public activeContainer?: boolean;\n @Input() public additionalHeight?: number = 0;\n @Input() public disableEllipsis = false;\n\n public showDescription = false;\n public resources = resources;\n public readonly MIN_HEIGHT = 21;\n public readonly LINE_HEIGHT = 20;\n public readonly PADDING = 20;\n public readonly FONT_SIZE = 13;\n public height = this.MIN_HEIGHT;\n\n @ViewChild('showMoreContainer', { static: false })\n private showMoreContainer: ElementRef;\n @ViewChild('textContainer', { static: false })\n private textContainer: ElementRef;\n private destroy$ = new Subject();\n\n constructor(\n private translate: TranslateHelperService,\n private cdr: ChangeDetectorRef,\n private insightsCommonUtils: InsightsCommonUtilsService,\n private dataService: DataService,\n private insightsService: InsightsService,\n private liveAnnouncer: LiveAnnouncer\n ) {}\n\n public ngOnInit() {\n this.translate.translateResources(resources);\n this.showButtonText = this.showButtonText || this.resources.ShowDescription;\n this.dataService\n .onResizeEventStream(200)\n .pipe(takeUntil(this.destroy$))\n .subscribe(e => this.changeHeight());\n }\n\n public ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n // If selected item was change, reset description\n if (changes.selectedItem && this.showDescription) {\n this.toggleShowDescription();\n }\n }\n\n public toggleShowDescription(): void {\n this.showDescription = !this.showDescription;\n const msg = this.showDescription ? resources.DescriptionBioExpanded : resources.DescriptionCollapsed;\n this.changeHeight();\n this.liveAnnouncer.announce(msg);\n }\n\n public getDescriptionLink(): string {\n return this.insightsCommonUtils.getDescriptionLink(this.selectedItem);\n }\n\n public hasLink(): boolean {\n if (this.selectedItem.description && (this.selectedItem.referenceUrl || this.selectedItem.referenceId)) {\n return true;\n }\n return false;\n }\n\n public descriptionID(): string {\n const prefix = this.type ? `${this.type}Description` : 'Description';\n const id = this.selectedItem ? this.selectedItem.id : '';\n return this.insightsCommonUtils.generateComponentID(prefix, id);\n }\n\n public getItemDescriptions(): string {\n if (this.selectedItem && this.selectedItem.description) {\n // If description ends with three dots - only add space\n if (this.selectedItem.description.endsWith('…') || this.disableEllipsis) {\n return `${this.selectedItem.description} `;\n }\n // Remove dot and add three dots with space\n return `${trimEnd(this.selectedItem.description, '.')}… `;\n }\n return '';\n }\n\n private changeHeight() {\n setTimeout(() => {\n if (!this.showMoreContainer) {\n return;\n }\n // get the links container height\n this.insightsService.getContainerHeightAsync(this.showMoreContainer?.nativeElement).then(showMoreHeight => {\n this.height = showMoreHeight ? Math.max(this.MIN_HEIGHT, showMoreHeight) : this.MIN_HEIGHT;\n if (this.showDescription) {\n if (this.selectedItem && this.selectedItem.description) {\n this.insightsService.getContainerWidthAsync(this.textContainer.nativeElement).then(textContainerWidth => {\n const textWidth = this.insightsCommonUtils.measureWithTextSpacing(\n this.selectedItem.description + this.resources.ReadMore,\n this.FONT_SIZE\n );\n // divide the total line length by the host element's width and multiply by the line height to fet the required height.\n this.height += (textWidth / textContainerWidth) * this.LINE_HEIGHT + this.PADDING;\n this.height += this.additionalHeight;\n this.cdr.markForCheck();\n });\n }\n } else {\n this.cdr.markForCheck();\n }\n });\n }, 0);\n }\n}\n","
\n
\n \n
\n
\n {{selectedItem?.name}}\n \n
\n \n \n {{showButtonText}}\n \n \n \n \n
\n
\n \n
\n \n \n

\n {{getItemDescriptions()}}

\n {{resources.ReadMore}}\n
\n
\n
","export const resources = {\n ShowDescription: '',\n ReadMore: '',\n DescriptionCollapsed: '',\n DescriptionBioExpanded: ''\n};\n","import { IAction } from '../../interfaces';\nimport { UIActionType } from '../../../insights/interfaces';\n\nexport const closeAction: IAction = {\n icon: 'i-vi-close-big',\n title: '',\n key: 'Close',\n selected: false,\n type: UIActionType.CLOSE,\n value: '',\n selectable: true,\n hasDrop: false,\n id: 'CLOSE',\n titleAttribute: 'Close'\n};\n","import {\n Component,\n OnInit,\n Inject,\n Optional,\n Output,\n EventEmitter,\n ViewChild,\n ViewContainerRef,\n ComponentRef,\n OnDestroy,\n ChangeDetectorRef,\n ChangeDetectionStrategy\n} from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\n\nimport { IDialogData, IDialogEvent } from './interfaces';\nimport { IAction } from '../../interfaces';\nimport { closeAction } from './actions';\nimport { TranslateHelperService } from '../../../translation/services/translate-helper.service';\nimport { resources } from './resources';\nimport { ISubscriptions } from '../../../insights/interfaces';\nimport { InsightsCommonUtilsService } from '../../../insights-common/insights-common-utils.service';\nimport { IEventCell } from '../../../../../apps/web/src/grid/components/grid-cell/interfaces';\nimport { ActionButtonType } from '../action-button/interfaces';\n\n@Component({\n selector: 'app-vi-dialog',\n templateUrl: './dialog.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['./dialog.component.scss']\n})\nexport class DialogComponent implements OnInit, OnDestroy {\n // Set close button action\n public closeAction: IAction = closeAction;\n // Show dialog content only when ready\n public ready = false;\n // Set component property for updating injected component data\n public updateInjectedComponentDataFunc = this.updateInjectedComponentData;\n // Update event data in component\n public updateInjectedEventDataFunc = this.updateEventData;\n\n public resources = resources;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public componentRef: ComponentRef;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public headerComponentRef: ComponentRef;\n public ActionButtonType = ActionButtonType;\n\n @Output() public actionChange = new EventEmitter();\n // Reference to the injected component. (View component reference)\n @ViewChild('hostComponent', { read: ViewContainerRef, static: true }) private vcRef: ViewContainerRef;\n @ViewChild('hostHeaderComponent', { read: ViewContainerRef, static: true }) private vcHeaderRef: ViewContainerRef;\n\n private subscriptions: ISubscriptions = {};\n\n constructor(\n public dialogRef: MatDialogRef,\n private translateService: TranslateHelperService,\n private insightsCommonUtilsService: InsightsCommonUtilsService,\n private cdr: ChangeDetectorRef,\n @Optional() @Inject(MAT_DIALOG_DATA) public data: IDialogData\n ) {}\n\n public ngOnInit() {\n // Check if there is a component to inject\n if (this.data.component) {\n this.loadComponent();\n }\n\n // Check if there is a header component to inject\n if (this.data.headerComponent) {\n this.loadHeaderComponent();\n }\n\n this.subscriptions.translate = this.translateService.translateResources(this.resources).subscribe(() => {\n this.closeAction.titleAttribute = this.resources[this.closeAction.key];\n });\n }\n\n public loadComponent() {\n // Create reference to component\n this.componentRef = this.vcRef.createComponent(this.data.component);\n // Inject data to injected component\n this.componentRef.instance.data = this.data.componentData;\n // Listen to injected component event and fire the event up to the opener dialog component\n if (this.componentRef.instance.componentEventEmitter) {\n this.componentRef.instance.componentEventEmitter.subscribe((data: IDialogEvent) => {\n this.handleClick(data);\n });\n }\n }\n\n public loadHeaderComponent() {\n // Create reference to header component\n this.headerComponentRef = this.vcHeaderRef.createComponent(this.data.headerComponent);\n // Inject data to injected header component\n this.headerComponentRef.instance.data = this.data.headerComponentData;\n }\n\n public closeDialog(action: IAction): void {\n if (!this.data.disableAutoClose) {\n // Close the dialog and eit the event up\n this.dialogRef.close({ event: this.data.event, action: action, componentData: this.data.componentData });\n }\n\n // Notify close action\n this.actionChange.emit({ action: action });\n }\n\n public updatePrimaryButtonState(isDisabled: boolean) {\n this.data.primaryButton.isDisabled = isDisabled;\n this.cdr.detectChanges();\n }\n\n public updateSecondaryButtonState(isDisabled: boolean) {\n this.data.secondaryButton.isDisabled = isDisabled;\n this.cdr.detectChanges();\n }\n\n public handleClick(data: IDialogEvent) {\n if (data.isUpdateAction) {\n this.data.primaryButton.action = data.action;\n // Update primary button isDisable\n this.data.primaryButton.isDisabled = data.action.isDisabled;\n this.cdr.markForCheck();\n return;\n }\n\n if (data.isUpdatePrimaryButtonState) {\n this.updatePrimaryButtonState(data.action.isDisabled);\n return;\n }\n\n if (data.isUpdateSecondaryButtonState) {\n this.updateSecondaryButtonState(data.action.isDisabled);\n return;\n }\n\n this.actionChange.emit({\n event: this.data.event,\n action: data.action,\n dialogEventData: data.dialogEventData,\n componentData: this.data.componentData\n });\n if (data.isDialogClose) {\n this.closeDialog(data.action);\n }\n }\n\n public updateInjectedComponentData(data) {\n // Update injected component\n this.componentRef.instance.updateData(data);\n }\n\n public updateEventData(event: IEventCell) {\n if (this.data.event) {\n this.data.event = event;\n }\n }\n\n public ngOnDestroy() {\n if (this.componentRef) {\n this.componentRef.destroy();\n }\n\n this.insightsCommonUtilsService.unsubscribeSubscriptions(this.subscriptions);\n }\n}\n","
\n \n
\n
\n \n \n \n

\n \n {{data.title}}\n

\n \n \n
\n

\n {{data?.subtitle}}\n

\n
\n \n \n
\n \n
\n
\n\n \n
\n\n \n
\n
\n \n {{data.disclaimer}}\n
\n
\n \n \n \n \n
\n
\n
","import { Injectable, Type } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { LiveAnnouncer } from '@angular/cdk/a11y';\n\nimport { IDialogData, IDialogButton, IData } from './interfaces';\nimport { IEventCell } from '../../../../../apps/web/src/grid/components/grid-cell/interfaces';\nimport { DialogComponent } from './dialog.component';\n\n@Injectable()\nexport class DialogService {\n private readonly MOBILE_FULL_SCREEN = 'mobile-full-screen';\n private readonly DYNAMIC_HEIGHT_CLASS = 'dynamic-height';\n\n constructor(private dialog: MatDialog, private liveAnnounce: LiveAnnouncer) {}\n\n public getDialogData(\n c: string,\n t: string,\n content: string,\n sb: IDialogButton,\n pb: IDialogButton,\n e?: IEventCell,\n component?: Type,\n componentData?: IData,\n disableAutoClose?: boolean\n ): IDialogData {\n return {\n class: c,\n title: t,\n content: content,\n secondaryButton: sb,\n primaryButton: pb,\n event: e,\n component: component,\n componentData: componentData,\n disableAutoClose: disableAutoClose\n };\n }\n\n public openDialog(\n dialogData: IDialogData,\n width: string,\n height?: string,\n panelClass?: string,\n disableClose = false,\n isDynamicHeight = false,\n minHeight = 'auto',\n isMobileFullScreen = false\n ) {\n const panelClasses = [];\n if (panelClass) {\n panelClasses.push(panelClass);\n }\n if (isDynamicHeight) {\n panelClasses.push(this.DYNAMIC_HEIGHT_CLASS);\n }\n if (isMobileFullScreen) {\n panelClasses.push(this.MOBILE_FULL_SCREEN);\n }\n\n const dialogRef = this.dialog.open(DialogComponent, {\n width: width,\n height: height,\n data: dialogData,\n disableClose: disableClose,\n ariaLabel: dialogData.title,\n panelClass: panelClasses,\n minHeight: minHeight\n });\n\n if (isMobileFullScreen) {\n this.addMobileFullScreenOverlay();\n }\n\n return dialogRef;\n }\n\n public closeAllDialogs(announceMessage: string) {\n if (this.dialog.openDialogs?.length) {\n this.liveAnnounce.announce(announceMessage);\n this.dialog.closeAll();\n }\n }\n\n // add background (--bg-tertiary) instead of overlay\n public addBackgroundToOverlay() {\n const overlay = document?.querySelector('.cdk-global-overlay-wrapper');\n overlay?.classList?.add('bg-background');\n }\n\n private addMobileFullScreenOverlay() {\n const overlay = document?.querySelector('.cdk-global-overlay-wrapper');\n overlay?.classList?.add(this.MOBILE_FULL_SCREEN);\n }\n}\n","export const resources = {\n Close: ''\n};\n","import { UIActionType } from '../../../insights/interfaces';\nimport { IAction } from '../../../shared/interfaces';\nimport { DownloadCaptionType, UIDownloadActionType } from './interfaces';\n\nexport const downloadAction: IAction = {\n icon: 'i-vi-download',\n title: 'Download',\n key: 'Download',\n type: UIActionType.DOWNLOAD,\n value: UIActionType.DOWNLOAD,\n selected: false,\n selectable: true,\n hasDrop: true,\n id: 'download'\n};\n\n/** Download captions options are different in internal and embed\nIn internal - should NOT be translated, therefore there is fixed title (for example - DownloadCaptionType.SRT)\nIn embed - should be translated accordingly the key property **/\nexport const downloadCaptionsOptions: IAction[] = [\n {\n icon: '',\n key: 'DownloadOptionsSRT',\n title: DownloadCaptionType.SRT,\n selected: false,\n value: DownloadCaptionType.SRT,\n type: UIDownloadActionType.CLOSED_CAPTIONS,\n selectable: true,\n id: 'SRT'\n },\n {\n icon: '',\n key: 'DownloadOptionsVTT',\n title: DownloadCaptionType.VTT,\n selected: false,\n value: DownloadCaptionType.VTT,\n type: UIDownloadActionType.CLOSED_CAPTIONS,\n selectable: true,\n id: 'VTT'\n },\n {\n icon: '',\n key: 'DownloadOptionsTTML',\n title: DownloadCaptionType.TTML,\n selected: false,\n value: DownloadCaptionType.TTML,\n type: UIDownloadActionType.CLOSED_CAPTIONS,\n selectable: true,\n id: 'TTML'\n },\n {\n icon: '',\n key: 'DownloadOptionsTXT',\n title: DownloadCaptionType.TXT,\n selected: false,\n value: DownloadCaptionType.TXT,\n type: UIDownloadActionType.CLOSED_CAPTIONS,\n selectable: true,\n id: 'TXT'\n },\n {\n icon: '',\n key: 'DownloadOptionsCSV',\n title: DownloadCaptionType.CSV,\n selected: false,\n value: DownloadCaptionType.CSV,\n type: UIDownloadActionType.CLOSED_CAPTIONS,\n selectable: true,\n id: 'CSV'\n }\n];\n\nconst downloadJsonAction: IAction = {\n icon: '',\n key: 'DownloadOptionsJSON',\n title: '',\n selected: false,\n value: UIDownloadActionType.JSON,\n selectable: true,\n id: 'JSON'\n};\n\nconst downloadArtifactAction: IAction = {\n icon: '',\n key: 'DownloadOptionsDownloadArtifacts',\n title: '',\n selected: false,\n value: UIDownloadActionType.ARTIFACTS_ZIP,\n selectable: true,\n id: 'ARTIFACTS'\n};\n\nconst downloadVideoAction: IAction = {\n icon: '',\n key: 'DownloadOptionsVideo',\n title: '',\n selected: false,\n value: UIDownloadActionType.VIDEO,\n selectable: true,\n id: 'VIDEO'\n};\n\nconst downloadRenderedProjectAction: IAction = {\n icon: '',\n key: 'DownloadOptionsRenderedProject',\n title: '',\n selected: false,\n value: UIDownloadActionType.PROJECT_RENDERED_VIDEO,\n selectable: true,\n id: 'RENDERED_VIDEO'\n};\n\nconst closedCaptionAction: IAction = {\n icon: '',\n key: 'ClosedCaptions',\n title: '',\n selected: false,\n value: UIDownloadActionType.CLOSED_CAPTIONS,\n selectable: true,\n id: 'closedCaptions',\n separated: true\n};\n\nexport const downloadOptionsWithClosedCaptionOption = [\n downloadJsonAction,\n downloadArtifactAction,\n downloadVideoAction,\n downloadRenderedProjectAction,\n closedCaptionAction\n];\n\nexport const downloadOptionsWithClosedCaptionList = [\n downloadJsonAction,\n ...downloadCaptionsOptions,\n downloadArtifactAction,\n downloadVideoAction,\n downloadRenderedProjectAction\n];\n\nexport const downloadOptionsForEdgeVideo = [downloadJsonAction, downloadArtifactAction, closedCaptionAction];\n","import { IAction } from '@common/modules/shared/interfaces';\n\nexport const formatFilterAction: IAction = {\n value: '',\n id: 'formatFilter'\n};\n\nexport const downloadAction: IAction = {\n key: 'Download',\n title: '',\n value: '',\n id: 'download'\n};\n\nexport const cancelAction: IAction = {\n key: 'Cancel',\n title: '',\n value: '',\n id: 'cancel'\n};\n","import { Component, OnInit, ChangeDetectionStrategy, ChangeDetectorRef, Output, EventEmitter, Input } from '@angular/core';\n\nimport { take } from 'rxjs/operators';\n\nimport { cloneDeep } from 'lodash-es';\n\nimport { IAction } from '@common/modules/shared/interfaces';\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\nimport { FocusableComponent } from '@common/modules/accessibility/focusable/focusable.component';\nimport { EventCategory, TrackService } from '@common/modules/core/services/track';\n\nimport { IDialogEvent } from '../../../dialog/interfaces';\nimport { downloadCaptionsOptions } from '../../actions';\nimport { cancelAction, downloadAction, formatFilterAction } from './actions';\nimport { resources } from './resources';\nimport { DownloadCaptionType, IDownloadCaption } from '../../interfaces';\nimport { ActionButtonType } from '../../../action-button/interfaces';\nimport { IDownloadCationsData } from './interfaces';\n\n@Component({\n selector: 'vi-download-closed-captions',\n templateUrl: './download-closed-captions.component.html',\n styleUrls: ['./download-closed-captions.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DownloadClosedCaptionsComponent extends FocusableComponent implements OnInit {\n @Input() public data: IDownloadCationsData;\n @Output() public componentEventEmitter = new EventEmitter();\n\n public resources = resources;\n public downloadCaptionsOptions = downloadCaptionsOptions;\n public formatFilterAction = formatFilterAction;\n public includeAudioEffects = false;\n public includeSpeakers = false;\n public selectedFormat: IAction;\n public downloadAction = downloadAction;\n public cancelAction = cancelAction;\n public ActionButtonType = ActionButtonType;\n public formatSelectId = 'format-filter';\n\n constructor(public translate: TranslateHelperService, public cdr: ChangeDetectorRef, private trackService: TrackService) {\n super();\n }\n\n public ngOnInit(): void {\n this.selectedFormat = this.downloadCaptionsOptions[0];\n this.setTranslation();\n }\n\n public onDownloadClicked() {\n const outputData: IDownloadCaption = {\n type: this.selectedFormat.value,\n includeAudioEffects: this.includeAudioEffects,\n includeSpeakers: this.includeSpeakers\n };\n\n if (this.selectedFormat.value === DownloadCaptionType.TTML) {\n outputData.fileType = 'application/ttml+xml';\n }\n\n const dialogEvent: IDialogEvent = {\n isDialogClose: false,\n dialogEventData: outputData\n };\n\n this.componentEventEmitter.emit(dialogEvent);\n this.trackAction();\n }\n\n public onCancelClicked() {\n const dialogEvent: IDialogEvent = {\n isDialogClose: true\n };\n this.componentEventEmitter.emit(dialogEvent);\n }\n\n private setTranslation() {\n this.translate\n .translateResources(this.resources)\n .pipe(take(1))\n .subscribe(() => {\n [this.cancelAction, this.downloadAction].forEach(action => {\n action.title = this.resources[action.key];\n });\n this.cancelAction = cloneDeep(this.cancelAction);\n this.downloadAction = cloneDeep(this.downloadAction);\n this.cdr.detectChanges();\n });\n }\n\n private trackAction() {\n const trackData = {\n category: EventCategory.MEDIA,\n data: {\n format: this.selectedFormat.id,\n includeAudioEffects: this.includeAudioEffects,\n includeSpeakers: this.includeSpeakers\n }\n };\n this.trackService.track(`closed_captions_popup.download.${(this.selectedFormat.type as string).toLowerCase()}`, trackData);\n }\n}\n","
\n \n \n \n
\n \n
\n
\n \n
\n
\n \n \n \n \n
\n
","export const resources = {\n SelectFormat: '',\n IncludeAudioEffects: '',\n Download: '',\n Cancel: '',\n includeSpeakers: ''\n};\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnInit } from '@angular/core';\n\nimport { cloneDeep, remove } from 'lodash-es';\n\nimport { EventCategory, TrackService } from '@common/modules/core/services/track';\n\nimport { TranslateHelperService } from '../../../translation/services/translate-helper.service';\nimport { IAction } from '../../interfaces';\nimport { downloadAction, downloadOptionsWithClosedCaptionOption, downloadOptionsWithClosedCaptionList, downloadOptionsForEdgeVideo } from './actions';\nimport { DownloadService } from './download-service.service';\nimport { DownloadWidgetsName, IDownloadVideoData, UIDownloadActionType } from './interfaces';\nimport { resources } from './resources';\nimport { IDownloadCationsOptions } from './components/download-closed-captions/interfaces';\n\n@Component({\n selector: 'app-vi-download-menu',\n templateUrl: './download-menu.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['./download-menu.component.scss']\n})\nexport class DownloadMenuComponent implements OnInit {\n @Input() public videoData: IDownloadVideoData;\n @Input() public langKey: Microsoft.VideoIndexer.Contracts.LanguageV2 = 'en-US';\n @Input() public alignTo = 'left';\n @Input() public id = downloadAction.id;\n @Input() public widgetName: DownloadWidgetsName = DownloadWidgetsName.MEDIA;\n @Input() public renderState: Microsoft.VideoIndexer.Contracts.AsyncOperationState = 'Canceled';\n @Input() public internal = false;\n @Input() public hasSelectedEdgeExtension = false;\n\n // Actions\n public downloadAction = downloadAction;\n public downloadOptions: IAction[];\n\n public ready = false;\n public resources = resources;\n\n constructor(\n private translate: TranslateHelperService,\n private cdr: ChangeDetectorRef,\n private downloadService: DownloadService,\n private trackService: TrackService\n ) {}\n\n public ngOnInit() {\n this.initDownloadOptions();\n this.setTranslation();\n }\n\n public async selectAction(action: IAction) {\n this.trackAction(action);\n await this.downloadService.onSelectAction(\n action,\n this.videoData.id,\n this.videoData.accountId,\n this.videoData.isBase,\n this.videoData.name,\n this.downloadedLang,\n this.captionsOptions,\n this.id\n );\n }\n\n private get downloadedLang() {\n if (!this.videoData.isBase) {\n // If it's a project and the current language is empty, it's a multi video\n return this.langKey === '' ? this.langKey : this.videoData.videos[0].language;\n } else {\n if (this.videoData.videos[0].language) {\n // If the video index has a language, return it\n return this.videoData.videos[0].language;\n // If the video index has multiple languages (not source languages) but no language is requested,\n // download it without language param, the downloaded CC/insights will be with the multi-lid languages data\n } else if (this.videoData.videos[0].languages?.length) {\n return '';\n } else {\n // If none of the above, return the current language key\n return this.langKey;\n }\n }\n }\n\n private trackAction(action: IAction) {\n this.trackService.track(`${this.widgetName}.download.${(action.value as string).toLowerCase()}`, {\n category: EventCategory.DOWNLOAD,\n data: {\n actionId: action.id,\n includeAudioEffects: false\n }\n });\n }\n\n private setTranslation() {\n this.translate.translateResources(this.resources).subscribe(() => {\n this.downloadOptions.forEach(c => {\n // In internal - do not translate closed captions actions\n if (c.type === UIDownloadActionType.CLOSED_CAPTIONS && this.internal) {\n return;\n }\n c.title = this.resources[c.key];\n });\n this.downloadAction.title = this.resources[this.downloadAction.key];\n this.ready = true;\n this.cdr.detectChanges();\n });\n }\n\n private initDownloadOptions() {\n if (this.hasSelectedEdgeExtension) {\n this.downloadOptions = cloneDeep(downloadOptionsForEdgeVideo);\n return;\n }\n\n this.downloadOptions = this.internal ? cloneDeep(downloadOptionsWithClosedCaptionOption) : cloneDeep(downloadOptionsWithClosedCaptionList);\n\n remove(this.downloadOptions, s => {\n const downloadOptionsToCheck = [UIDownloadActionType.VIDEO, UIDownloadActionType.ARTIFACTS_ZIP, UIDownloadActionType.PROJECT_RENDERED_VIDEO];\n // If the options doesn't include download video and download zip\n if (!downloadOptionsToCheck.includes(s.value)) {\n return false;\n }\n // If it is a playlist that has been rendered - show\n if (s.value === UIDownloadActionType.PROJECT_RENDERED_VIDEO) {\n if (!this.videoData.isBase && this.renderState === 'Succeeded') {\n return false;\n } else {\n return true;\n }\n }\n // If not base, disable download video and download zip\n if (!this.videoData.isBase) {\n return true;\n }\n // If it's a not an editable video (User doesn't have an accessToken), don't allow to download the video\n if (!(this.videoData.isBase && this.videoData.isEditable) && s.value === UIDownloadActionType.VIDEO) {\n return true;\n }\n return false;\n });\n }\n\n public get captionsOptions(): IDownloadCationsOptions {\n const showIncludeSpeakers = this.videoData.videos.reduce(\n (includeSpeakers, video) => includeSpeakers || (video?.insights?.transcript?.length > 0 && video?.insights?.speakers?.length > 0),\n false\n );\n\n const showIncludeAudioEffects = this.videoData.videos.reduce(\n (includeAudioEffects, video) => includeAudioEffects || video?.insights?.audioEffects?.length > 0,\n false\n );\n return {\n showIncludeSpeakers: showIncludeSpeakers,\n showIncludeAudioEffects: showIncludeAudioEffects\n };\n }\n}\n","\n\n","import { Injectable } from '@angular/core';\n\nimport { Subject } from 'rxjs';\n\nimport { saveAs } from 'file-saver';\nimport { Cacheable } from 'ts-cacheable';\n\nimport { AccessTokenService } from '@common/modules/auth/services/access-token.service';\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\nimport { ToastService } from '@common/modules/core/services/toast/toast.service';\nimport { FocusManagerService } from '@common/modules/accessibility/focus-manager.service';\n\nimport { ApiService } from '../../../api/services/api.service';\nimport { formatFileName } from '../../../utils/string';\nimport { resources } from './resources';\nimport { DownloadClosedCaptionsComponent } from './components/download-closed-captions/download-closed-captions.component';\nimport { DownloadCaptionType, IDownloadCaption, UIDownloadActionType } from './interfaces';\nimport { IAction } from '../../interfaces';\nimport { DataService } from '../../services/data.service';\nimport { DialogService } from '../dialog/dialog.service';\nimport { IDialogData, IDialogEvent } from '../dialog/interfaces';\nimport { IDownloadCationsData, IDownloadCationsOptions } from './components/download-closed-captions/interfaces';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DownloadService {\n constructor(\n private apiService: ApiService,\n private accessTokenService: AccessTokenService,\n private dialogService: DialogService,\n private toastService: ToastService,\n private translate: TranslateHelperService,\n private dataService: DataService,\n private focusManager: FocusManagerService\n ) {}\n\n public async onSelectAction(\n action: IAction,\n id: string,\n accountId: string,\n isBase: boolean,\n name: string,\n downloadedLang: Microsoft.VideoIndexer.Contracts.LanguageV2,\n captionsOptions: IDownloadCationsOptions,\n downloadMenuId: string\n ) {\n switch (action.value) {\n case UIDownloadActionType.JSON:\n await this.downloadJson(id, accountId, isBase, downloadedLang);\n break;\n case UIDownloadActionType.CLOSED_CAPTIONS:\n this.openClosedCaptionsDialog(id, accountId, isBase, name, downloadedLang, captionsOptions, downloadMenuId);\n break;\n case DownloadCaptionType.SRT:\n case DownloadCaptionType.VTT:\n case DownloadCaptionType.TXT:\n case DownloadCaptionType.CSV:\n this.downloadCaption(id, accountId, isBase, name, downloadedLang, action.value);\n break;\n case DownloadCaptionType.TTML:\n this.downloadCaption(id, accountId, isBase, name, downloadedLang, DownloadCaptionType.TTML, 'application/ttml+xml');\n break;\n case UIDownloadActionType.VIDEO:\n this.downloadVideo(id, accountId, name);\n break;\n case UIDownloadActionType.ARTIFACTS_ZIP:\n this.downloadArtifactZip(id, accountId, name);\n break;\n case UIDownloadActionType.PROJECT_RENDERED_VIDEO:\n this.downloadRenderedProject(id, accountId, name);\n break;\n }\n }\n\n public downloadFile(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fileContent: any,\n fileName: string,\n fileType: string,\n fileProperties: BlobPropertyBag,\n encodeUtf8: boolean = false\n ): Subject {\n const downloadSubject = new Subject();\n if (!fileName) {\n downloadSubject.error('FileName not exists');\n } else {\n try {\n let file: Blob;\n if (encodeUtf8) {\n const UTF8_BOM_ENCODING = new Uint8Array([0xef, 0xbb, 0xbf]);\n file = new Blob()\n ? new Blob([UTF8_BOM_ENCODING, fileContent], fileProperties)\n : new File([UTF8_BOM_ENCODING, fileContent], fileName, fileProperties);\n } else {\n file = new Blob() ? new Blob([fileContent], fileProperties) : new File([fileContent], fileName, fileProperties);\n }\n saveAs(file, formatFileName(fileName, fileType));\n downloadSubject.next(file);\n } catch (e) {\n downloadSubject.error(e);\n throw e;\n }\n }\n return downloadSubject;\n }\n\n public createFakeLinkAndClick(href: string, fileName: string, download?: boolean) {\n const tempLink = document.createElement('a');\n tempLink.href = href;\n tempLink.target = '_blank';\n if (download) {\n tempLink.target = '_self';\n tempLink.setAttribute('download', fileName);\n }\n tempLink.click();\n tempLink.remove();\n }\n\n private async getJsonUrl(id: string, accountId: string, language: Microsoft.VideoIndexer.Contracts.LanguageV2, isBase: boolean): Promise {\n const token = await this.accessTokenService.getAccessTokenAsync(null, accountId);\n const queryParams = { includeSummarizedInsights: 'false' };\n\n if (isBase) {\n return this.apiService.Account.Video.getVideoIndexUrl(accountId, id, token, language, queryParams);\n }\n\n return this.apiService.Account.Project.getProjectIndexUrl(accountId, id, token, language, queryParams);\n }\n\n private getCaptionAsync(\n accountId: string,\n videoId: string,\n language: Microsoft.VideoIndexer.Contracts.LanguageV2,\n format: string,\n isBase: boolean,\n includeAudioEffects = false,\n includeSpeakers = false\n ) {\n const reqParams = { format: format, includeAudioEffects: includeAudioEffects, includeSpeakers: includeSpeakers };\n if (language) {\n reqParams['language'] = language;\n }\n\n return this.apiService.Account.Video.getCaptions(accountId, videoId, isBase, reqParams);\n }\n\n private getArtifactsZipAsync(accountId: string, videoId: string) {\n return this.apiService.Account.Video.getArtifactZip(accountId, videoId);\n }\n\n @Cacheable({ maxAge: 2000 })\n private download(accountId: string, videoId: string) {\n return this.apiService.Account.Video.getSourceFileDownloadUrl(accountId, videoId);\n }\n\n private async downloadJson(id: string, accountId: string, isBase: boolean, downloadedLang: Microsoft.VideoIndexer.Contracts.LanguageV2) {\n const jsonURL = await this.getJsonUrl(id, accountId, downloadedLang, isBase);\n this.createFakeLinkAndClick(jsonURL, null, false);\n }\n\n private openClosedCaptionsDialog(\n id: string,\n accountId: string,\n isBase: boolean,\n name: string,\n downloadedLang: Microsoft.VideoIndexer.Contracts.LanguageV2,\n captionsOptions: IDownloadCationsOptions,\n downloadMenuId: string\n ) {\n const componentData: IDownloadCationsData = {\n prefixId: 'mediaDialog',\n ...captionsOptions\n };\n const dialogData: IDialogData = {\n class: 'closed-captions-dialog',\n title: resources.DownloadClosedCaptions,\n componentData: componentData,\n component: DownloadClosedCaptionsComponent\n };\n const dialogRef = this.dialogService.openDialog(dialogData, '480px', '340px');\n dialogRef.componentInstance.actionChange.subscribe((res: IDialogEvent) => {\n // Focus download menu after dialog close\n this.focusManager.focusByQuery(`#${downloadMenuId}`);\n const data = res?.dialogEventData;\n if (!data) {\n return;\n }\n this.downloadCaption(id, accountId, isBase, name, downloadedLang, data.type, data.fileType, data.includeAudioEffects, data.includeSpeakers);\n });\n }\n\n private downloadCaption(\n id: string,\n accountId: string,\n isBase: boolean,\n name: string,\n downloadedLang: Microsoft.VideoIndexer.Contracts.LanguageV2,\n type: DownloadCaptionType,\n fileType?: string,\n includeAudioEffects = false,\n includeSpeakers = false\n ) {\n this.getCaptionAsync(accountId, id, downloadedLang, type.toLowerCase(), isBase, includeAudioEffects, includeSpeakers).subscribe({\n next: file => {\n this.downloadFile(\n file,\n name,\n type.toLowerCase(),\n {\n type: fileType || `text/${type.toLowerCase()};charset=utf-8`\n },\n true\n ).subscribe();\n },\n error: err => {\n this.toastService.error(err, this.getDownloadFileErrorText(type));\n }\n });\n }\n\n // Returns error text for download file failure\n private getDownloadFileErrorText(fileType: string): string {\n const itemResources = { DownloadFileFailed: '' };\n this.translate.translateResources(itemResources, { name: fileType });\n return itemResources.DownloadFileFailed;\n }\n\n private downloadVideo(id: string, accountId: string, name: string) {\n const fileName = formatFileName(name, 'mp4');\n this.download(accountId, id).subscribe({\n next: (url: string) => {\n this.createFakeLinkAndClick(url, fileName, true);\n },\n error: err => {\n this.toastService.error(err, this.getDownloadFileErrorText(''), false);\n }\n });\n }\n\n private downloadArtifactZip(id: string, accountId: string, name: string) {\n this.getArtifactsZipAsync(accountId, id).subscribe({\n next: zip => {\n this.downloadFile(zip, name, 'zip', {\n type: 'application/zip'\n }).subscribe();\n },\n error: err => {\n this.toastService.error(err, this.getDownloadFileErrorText('ZIP'));\n }\n });\n }\n\n private downloadRenderedProject(id: string, accountId: string, name: string) {\n this.dataService.getProjectRenderedFileDownloadUrl(accountId, id).subscribe({\n next: renderFileObj => {\n if (renderFileObj.downloadUrl) {\n const downloadUrl = renderFileObj.downloadUrl.toString();\n const fileName = `${name.replace(/\\s/g, '_')}.mp4`;\n this.createFakeLinkAndClick(downloadUrl, fileName, true);\n } else {\n this.toastService.error(null, this.getDownloadFileErrorText(''));\n }\n },\n error: err => {\n this.toastService.error(err, this.getDownloadFileErrorText(''));\n }\n });\n }\n}\n","export enum DownloadWidgetsName {\n INSIGHTS = 'insights',\n MEDIA = 'media'\n}\n\nexport interface IDownloadVideoData {\n name: string;\n accountId: string;\n id: string;\n isBase: boolean;\n isEditable: boolean;\n videos: Microsoft.VideoIndexer.Contracts.VideoContract[];\n}\n\nexport enum DownloadCaptionType {\n VTT = 'VTT',\n TTML = 'TTML',\n TXT = 'TXT',\n CSV = 'CSV',\n SRT = 'SRT'\n}\n\nexport enum UIDownloadActionType {\n CLOSED_CAPTIONS = 'CLOSED_CAPTIONS',\n JSON = 'JSON',\n VIDEO = 'VIDEO',\n ARTIFACTS_ZIP = 'ARTIFACTS_ZIP',\n PROJECT_RENDERED_VIDEO = 'PROJECT_RENDERED_VIDEO'\n}\n\nexport interface IDownloadCaption {\n type: DownloadCaptionType;\n includeAudioEffects: boolean;\n includeSpeakers: boolean;\n fileType?: string;\n}\n","export const resources = {\n Download: '',\n DownloadOptionsJSON: '',\n DownloadOptionsSRT: '',\n DownloadOptionsVTT: '',\n DownloadOptionsTTML: '',\n DownloadOptionsTXT: '',\n DownloadOptionsCSV: '',\n DownloadOptionsDownloadArtifacts: '',\n DownloadOptionsVideo: '',\n DownloadOptionsRenderedProject: '',\n DownloadClosedCaptions: '',\n ClosedCaptions: ''\n};\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'vi-dynamic-tooltip',\n templateUrl: './dynamic-tooltip.component.html',\n styleUrls: ['./dynamic-tooltip.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DynamicTooltipComponent {\n @Input() public tooltipTransform: string;\n @Input() public message: string;\n @Input() public showTooltipDown = false;\n\n // Do not delete cdr - used in DynamicTooltipDirective\n constructor(public cdr: ChangeDetectorRef) {}\n}\n","
\n \n \n
\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\nimport { NO_ACCESS_SVG } from '@common/modules/shared/svg-shapes';\n\n@Component({\n selector: 'vi-empty-state',\n templateUrl: './empty-state.component.html',\n styleUrls: ['./empty-state.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class EmptyStateComponent {\n @Input() title: string;\n @Input() content: string;\n @Input() shouldShowIcon: boolean = true;\n @Input() svgIcon = NO_ACCESS_SVG;\n @Input() iconHeight = 70;\n @Input() iconWidth = 44;\n @Input() linkText: string;\n @Input() linkPath: string;\n\n constructor() {}\n}\n","
\n
\n \n \n \n
\n
{{title}}
\n
\n \n
\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\n\nimport { IItemExpanded } from './interfaces';\n\n@Component({\n selector: 'app-expanded-item',\n templateUrl: './expanded-item.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['./expanded-item.component.scss']\n})\nexport class ExpandedItemComponent implements OnInit {\n @Input() public item: IItemExpanded;\n @Input() public expanded = false;\n\n constructor() {}\n\n public ngOnInit() {}\n}\n","\n
\n \n
\n
\n \n
\n
\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\n\n@Component({\n selector: 'app-filter-button',\n templateUrl: './filter-button.component.html',\n styleUrls: ['./filter-button.component.scss']\n})\nexport class FilterButtonComponent implements OnInit {\n // Input\n @Input() public isVisible = false;\n @Input() public expandedTxt: string;\n @Input() public collapsedTxt: string;\n @Input() public showIcon = true;\n @Input() public isDisabled = false;\n @Input() public buttonId: string;\n\n // Output\n @Output() public filterClick = new EventEmitter();\n\n constructor() {}\n\n public ngOnInit() {}\n\n public handleClick(e: MouseEvent) {\n this.filterClick.emit();\n e.stopPropagation();\n e.preventDefault();\n }\n}\n","\n","import { Component, OnInit, EventEmitter, Output, Input, OnDestroy, ChangeDetectorRef, ViewChild, HostBinding } from '@angular/core';\n\nimport { take } from 'rxjs/operators';\n\nimport { find } from 'lodash-es';\n\nimport { IUIFilterIssue, IUIFilterItem } from '@common/modules/editor/interfaces';\nimport { LoggerService } from '@common/modules/core/services/logger/logger.service';\n\nimport { UIActionType, ISubscriptions } from '../../../insights/interfaces';\nimport { InsightsCommonUtilsService } from '../../../insights-common/insights-common-utils.service';\nimport { IAction } from '../../../shared/interfaces';\nimport { SearchbarService } from '../../../shared/components/searchbar/services/searchbar.service';\nimport { UIFilterType } from './interfaces';\nimport { DataService } from '../../services/data.service';\nimport { resources } from './resources';\nimport { TranslateHelperService } from '../../../translation/services/translate-helper.service';\nimport { FocusableComponent } from '../../../accessibility/focusable/focusable.component';\nimport { SearchbarComponent } from '../searchbar/searchbar.component';\nimport { SelectComponentSize } from '../fluent-ui-select';\n\n@Component({\n selector: 'app-filter-item',\n templateUrl: './filter-item.component.html',\n styleUrls: ['./filter-item.component.scss']\n})\nexport class FilterItemComponent extends FocusableComponent implements OnInit, OnDestroy {\n // Input\n // Get filterItem and use it fire its details to parent when filtering\n @Input() public filterItem: IUIFilterItem;\n // Filter selection options\n @Input() public filterIssues: IUIFilterIssue[];\n @Input() public includeExcludeOptions?: IAction[];\n @Input() public isDisabled = false;\n @Input() public widthPercent = '';\n @Input() public associatedLabel = '';\n @Input() public disableAddButton = true;\n @Input() public disableRemoveButton = true;\n @Input() public ariaLabelledBy = '';\n\n // Output\n @Output() public addItem = new EventEmitter();\n @Output() public removeItem = new EventEmitter();\n @Output() public filterTextChange = new EventEmitter();\n\n @HostBinding('style.width') get isfullWidth() {\n if (this.widthPercent) {\n return this.widthPercent;\n }\n return '100%';\n }\n\n // Public\n public UIFilterType = UIFilterType;\n public filterType = this.UIFilterType.TEXT;\n public enableMultipleSelection = true;\n public placeholderAction: IAction;\n public searchbarPlaceholder = '';\n public filterActions: IAction[] = [];\n public actionList: IAction[] = [];\n public selectedAction: IAction | IAction[];\n public selFilterAction: IAction;\n public initValue: string = '';\n // Set ids for search and filter after get filter type\n public filterActionsId: string;\n public searchInputId: string;\n public includeExcludeOptionsId: string;\n public resources = resources;\n public SelectComponentSize = SelectComponentSize;\n\n // Private\n private selIncludeExcludeOption: IAction;\n private selectedActionText: string;\n private selectedActionValue = {};\n private subscriptions: ISubscriptions = {};\n private textFilter: string;\n\n @ViewChild('searchBarForTextFilter', { static: false }) private searchBarForTextFilter: SearchbarComponent;\n\n constructor(\n private logger: LoggerService,\n private cdr: ChangeDetectorRef,\n private dataService: DataService,\n private insightsCommonUtilsService: InsightsCommonUtilsService,\n private searchbarService: SearchbarService,\n private translateService: TranslateHelperService\n ) {\n super();\n }\n\n public ngOnInit() {\n this.subscriptions.translateResources = this.translateService\n .translateResources(this.resources)\n .pipe(take(1))\n .subscribe(() => {\n this.cdr.markForCheck();\n });\n this.logger.log(this.filterItem);\n\n this.initFilterActions();\n this.initPlaceholderAction();\n const action = this.filterIssues.find(f => f.filterAction.type === this.filterItem.actionType);\n this.selFilterAction = action.filterAction;\n this.initValue = this.filterItem.text;\n\n if (!this.filterItem.text) {\n this.searchbarPlaceholder = action?.placeHolderText;\n }\n if (this.includeExcludeOptions) {\n this.selIncludeExcludeOption = this.includeExcludeOptions[0];\n }\n this.setFilterSubjectSubscription();\n\n this.includeExcludeOptionsId = `includeExcludeOptions_${this.filterItem.index}`;\n this.filterActionsId = `filterActions_${this.filterItem.index}`;\n // Include the filter item id in order to listen to the right event\n this.searchInputId = `${this.filterItem.id}_${this.filterItem.index}`;\n\n if (this.filterItem.actionType === UIActionType.LANGUAGE) {\n this.actionList = this.dataService.getLanguages();\n\n // Update selected action to be the first action from action list\n this.selectedAction = this.actionList.find(a => a.value === this.filterItem.value);\n if (!this.selectedAction) {\n this.selectedAction = this.actionList[0];\n }\n this.filterType = UIFilterType.DROP_DOWN;\n } else {\n // this.selFilterAction.value = this.filterItem.text;\n setTimeout(() => {\n if (this.searchBarForTextFilter) {\n this.searchBarForTextFilter.setInput(this.filterItem.text);\n }\n });\n }\n }\n\n public ngOnDestroy() {\n this.insightsCommonUtilsService.unsubscribeSubscriptions(this.subscriptions);\n }\n\n public add() {\n this.addItem.emit();\n }\n\n public remove() {\n this.removeItem.emit(this.filterItem.index);\n }\n\n // Handles filter action selection\n public handleSelectFilterAction(filterAction: IAction) {\n this.selFilterAction = filterAction;\n const selFilterIssue = find(this.filterIssues, filterIssue => {\n return filterIssue.filterAction.type === this.selFilterAction.type;\n });\n\n // this.selectedActionText = this.selectedActionValue = filterAction.value;\n this.filterType = selFilterIssue.type;\n if (selFilterIssue.enableMultipleSelection !== undefined) {\n this.enableMultipleSelection = selFilterIssue.enableMultipleSelection;\n }\n if (selFilterIssue.type === UIFilterType.DROP_DOWN) {\n this.actionList = this.dataService.getLanguages();\n\n // If there is a placeholder - update it\n if (selFilterIssue.placeHolderKey) {\n this.placeholderAction.title = selFilterIssue.placeHolderText;\n this.placeholderAction = Object.assign({}, this.placeholderAction);\n }\n // Update selected action to be the first action from action list - default english\n this.selectedAction = this.actionList.find(a => a.value === 'en-US');\n this.selFilterAction.value = this.selectedAction.value;\n } else {\n this.searchbarPlaceholder = selFilterIssue.placeHolderText;\n // Reset search text\n if (this.searchBarForTextFilter) {\n this.searchBarForTextFilter.resetInput();\n }\n }\n\n // Emit filterTextChange event with empty values (clear previous filter action)\n this.filterTextChange.emit({\n id: this.filterItem.id,\n index: this.filterItem.index,\n // includeExcludeType: this.selIncludeExcludeOption ? this.selIncludeExcludeOption.value : null,\n actionType: this.selFilterAction.type,\n text: '',\n value: this.selFilterAction.value\n });\n\n this.cdr.detectChanges();\n }\n\n public getPlaceholderAction(): IAction {\n return this.placeholderAction;\n }\n\n public getSubActionID(): string {\n return `${this.searchInputId}_${this.selFilterAction.id}`;\n }\n\n public getIsSearchable(): boolean {\n return true;\n }\n\n // Handles include\\exclude action selection\n public handleSelectIncludeExcludeOption(option: IAction) {\n if (this.selIncludeExcludeOption.value !== option.value) {\n this.selIncludeExcludeOption = option;\n if (this.selectedActionText.length) {\n // Include/Exclude filter has been toggled, emit filterTextChange event\n this.filterTextChange.emit({\n id: this.filterItem.id,\n index: this.filterItem.index,\n // includeExcludeType: option.value,\n actionType: this.selFilterAction.type,\n text: option.value,\n value: option.value\n });\n }\n }\n }\n\n // Handles select change of item action\n public handleFilterTextChange(action: IAction) {\n // Verify selected action has been changed\n this.selectedAction = action;\n this.selectedActionText = '';\n this.selectedActionValue = [];\n this.filterTextChange.emit({\n id: this.filterItem.id,\n index: this.filterItem.index,\n // includeExcludeType: this.selIncludeExcludeOption ? this.selIncludeExcludeOption.value : null,\n actionType: this.selFilterAction.type,\n text: action.value,\n value: action.value\n });\n }\n\n private initFilterActions() {\n this.filterIssues.forEach(filterIssue => {\n // Insert filter action if its type is not DROP_DOWN or its type is DROP_DOWN and it has data\n let actionFilterHasSubActions = false;\n const subActions = this.dataService.getLanguages();\n if (filterIssue.type === UIFilterType.DROP_DOWN) {\n actionFilterHasSubActions = subActions !== undefined && subActions.length !== 0;\n }\n if (filterIssue.type !== UIFilterType.DROP_DOWN || actionFilterHasSubActions) {\n this.filterActions.push(filterIssue.filterAction);\n }\n });\n }\n\n // Place holder action is the action that is displayed as header of sub actions drop down\n private initPlaceholderAction() {\n this.placeholderAction = {\n title: '',\n selected: false,\n type: UIActionType.PRESETS,\n value: -1,\n icon: 'i-vi-search',\n selectable: true,\n id: UIActionType.PRESETS.toString()\n };\n }\n\n // Listens for text changes for filters of type UIEditorFilterType.TEXT (transcript, ocr...)\n private setFilterSubjectSubscription() {\n this.subscriptions.onFilter = this.searchbarService.filter(this.searchInputId).subscribe(searchEvent => {\n // Check that query filter has been changed (no need to filter on existing filter)\n if (searchEvent && searchEvent.id === this.searchInputId && this.textFilter !== searchEvent.query) {\n this.selectedActionText = searchEvent.query;\n this.textFilter = searchEvent.query;\n // Text has been changed for filters of type UIEditorFilterType.TEXT (transcript, ocr...) , emit filterTextChange event\n this.filterTextChange.emit({\n id: this.filterItem.id,\n index: this.filterItem.index,\n // includeExcludeType: this.selIncludeExcludeOption ? this.selIncludeExcludeOption.value : null,\n actionType: this.selFilterAction.type,\n text: this.selectedActionText,\n value: this.selectedActionText\n });\n }\n });\n }\n}\n","
\n
\n \n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n","import { UIActionTypeOptions } from '../../interfaces';\n\nexport enum UIFilterType {\n DROP_DOWN = 'DROP_DOWN',\n TEXT = 'TEXT',\n TIME = 'TIME'\n}\n\nexport interface IUIFilterItem {\n id: string;\n index: number;\n actionType: UIActionTypeOptions;\n text: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n value: any;\n}\n","export const resources = {\n EditorFilterItemRemoveTitle: '',\n EditorFilterItemAddTitle: ''\n};\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n ChangeDetectionStrategy,\n Component,\n OnInit,\n Input,\n Output,\n EventEmitter,\n ViewChild,\n ElementRef,\n OnChanges,\n SimpleChanges,\n AfterViewInit,\n OnDestroy\n} from '@angular/core';\n\nimport { FocusableComponent } from '@vi-ui/core';\nimport { provideFluentDesignSystem, fluentSelect, fluentOption, selectStyles, OptionStyles } from '@fluentui/web-components';\nimport { SelectPosition } from '@microsoft/fast-foundation';\nimport { css } from '@microsoft/fast-element';\n\nimport { guid } from '@common/modules/utils/string';\n\nimport { IAction, IGroupAction } from '../../interfaces';\nimport { indicatorSvg, viOptionStyle, viSelectStyle } from './styles';\nimport { SelectComponentAppearance, SelectComponentIndicatorSize, SelectComponentSize } from './interfaces';\n\n@Component({\n selector: 'vi-fluent-ui-select',\n templateUrl: './fluent-ui-select.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['./fluent-ui-select.component.scss']\n})\nexport class FluentUiSelectComponent extends FocusableComponent implements OnInit, OnChanges, AfterViewInit, OnDestroy {\n // Main user action\n @Input() public action: IAction;\n @Input() public selectedAction: IAction;\n // Action list\n @Input() public actionList: IAction[] = [];\n\n @Input() public placeholder = '';\n @Input() public position: SelectPosition = SelectPosition.below;\n @Input() public group = false;\n @Input() public isDisabled = false;\n @Input() public isError = false;\n @Input() public ariaLabelledBy = null;\n @Input() public ariaLabel? = null;\n @Input() public appearance = SelectComponentAppearance.Outline;\n @Input() public type: string = ''; //TODO: remove it when we upgrading to latest version of fluent-ui. this is a workaround for underline appearance\n @Input() public size: SelectComponentSize = SelectComponentSize.Medium;\n @Input() public indicatorSize: SelectComponentIndicatorSize = SelectComponentIndicatorSize.Medium;\n @Input() public isIconOnly = false;\n @Input() public placeholderAsFirstAction = false;\n @Input() public id = guid();\n\n @Output() public selectedActionChange = new EventEmitter(true);\n @Output() public hovered = new EventEmitter();\n @Output() public menuOpen = new EventEmitter();\n\n @ViewChild('FluentSelect', { read: ElementRef, static: false }) public fluentSelect: ElementRef;\n\n private listboxState$: MutationObserver;\n\n public constructor() {\n super();\n }\n\n public ngOnInit() {\n provideFluentDesignSystem().register(\n fluentSelect({\n indicator: indicatorSvg,\n styles: (ctx, def) => css`\n ${selectStyles(ctx, def as any)}\n ${viSelectStyle}\n `\n }),\n fluentOption({\n styles: (ctx, def) => css`\n ${OptionStyles(ctx, def as any)}\n ${viOptionStyle}\n `\n })\n );\n\n if (!this.selectedAction) {\n this.selectedAction = this.actionList[0];\n }\n\n if (this.group) {\n // Create group actions\n this.createGroupActions();\n }\n }\n\n public ngAfterViewInit() {\n this.listboxState$ = new MutationObserver(mutationList => {\n for (const mutation of mutationList) {\n if (mutation.type === 'attributes' && mutation.attributeName === 'aria-expanded') {\n this.menuOpen.emit(this.fluentSelect.nativeElement.open);\n }\n }\n });\n\n this.listboxState$.observe(this.fluentSelect.nativeElement, {\n attributeFilter: ['aria-expanded']\n });\n }\n\n public ngOnDestroy() {\n this.listboxState$.disconnect();\n }\n\n public ngOnChanges(change: SimpleChanges) {\n if (change?.actionList?.currentValue && change?.actionList?.previousValue) {\n if (this.selectedAction) {\n // The fluent select stores the selectedIndex. When the list changes, we need to manually update this value as it won't automatically refresh.\n const selectedIndex = this.actionList.findIndex(action => action.id === this.selectedAction.id);\n this.fluentSelect.nativeElement.selectedIndex = selectedIndex;\n\n // fallback to the first action if the selected action is not found in the list\n if (selectedIndex === -1) {\n this.selectedActionChange.emit(this.actionList[0]);\n }\n }\n\n // If list has been updated and has group, create group actions\n if (this.group) {\n this.createGroupActions();\n }\n }\n }\n\n public handleOnHover(isHover) {\n this.hovered.emit(isHover);\n }\n\n public handleOnChange(event: CustomEvent) {\n const index = event?.detail._selectedIndex;\n this.selectedActionChange.emit(this.actionList[index]);\n }\n\n public get icon() {\n return this.selectedAction?.icon || this.action?.icon;\n }\n\n private createGroupActions() {\n let currentGroup = '';\n const items = [];\n\n for (const action of this.actionList) {\n if (action.group !== currentGroup) {\n currentGroup = action.group;\n const groupItem: IGroupAction = {\n id: currentGroup,\n isGroup: true,\n value: currentGroup,\n title: currentGroup,\n isDisabled: true\n };\n items.push(groupItem);\n }\n\n action.titleAttribute = `${currentGroup} ${action.title}`;\n items.push(action);\n }\n\n this.actionList = items;\n }\n}\n","\n\n \n \n \n
\n
{{selectedAction?.title || placeholder}}
\n
\n \n \n {{item?.title}}\n \n
\n\n\n \n\n\n\n \n\n","export * from './fluent-ui-select.component';\nexport * from './interfaces';\n","export enum SelectComponentAppearance {\n Outline = 'outline',\n Filled = 'filled',\n Stealth = 'stealth'\n}\n\nexport enum SelectComponentSize {\n Small = 'small',\n Medium = 'medium'\n}\nexport enum SelectComponentIndicatorSize {\n Small = 'small',\n Medium = 'medium'\n}\n","import { css } from '@microsoft/fast-element';\n\nexport const viSelectStyle = css`\n :host-context(.indicator-small) {\n .indicator {\n svg {\n transform: scale(0.7);\n }\n }\n }\n .control .indicator {\n margin-inline-start: 8px;\n }\n .start {\n margin-inline-end: 8px;\n }\n .listbox::-webkit-scrollbar {\n width: 4px;\n }\n .listbox::-webkit-scrollbar-thumb {\n border-left: 0px solid transparent !important;\n background-clip: padding-box !important;\n background-color: var(--type-disabled-alt) !important;\n }\n`;\n\nexport const viOptionStyle = css`\n .start ::slotted([slot='start']) {\n margin-inline-end: 8px;\n }\n`;\n\nexport const indicatorSvg = `\n\n \n\n`;\n","import { Component, OnInit, ChangeDetectionStrategy } from '@angular/core';\n\nimport { resources } from './resources';\nimport { TranslateHelperService } from '../../../translation/services/translate-helper.service';\nimport { ConfigService } from '../../../core/services/config/config.service';\n\n@Component({\n selector: 'app-vi-embed-footer',\n templateUrl: './embed-footer.component.html',\n changeDetection: ChangeDetectionStrategy.Default,\n styleUrls: ['./embed-footer.component.scss']\n})\nexport class EmbedFooterComponent implements OnInit {\n // Public\n public resources = resources;\n\n // Ctor\n constructor(private translateHelper: TranslateHelperService, private config: ConfigService) {}\n\n public ngOnInit() {\n this.translateHelper.translateResources(this.resources, { year: 2018 });\n this.setPoweredByText();\n }\n\n private setPoweredByText() {\n const poweredByResources = { InsightsWidgetPoweredBy: '', InsightsWidgetPoweredByFF: '' };\n this.translateHelper.translateResources(poweredByResources).subscribe(() => {\n this.resources.InsightsWidgetPoweredBy = this.config.isFairFaxEnv()\n ? poweredByResources.InsightsWidgetPoweredByFF\n : poweredByResources.InsightsWidgetPoweredBy;\n });\n }\n}\n","
\n
\n
\n","export const resources = {\n InsightsWidgetPoweredBy: '',\n InsightsWidgetPoweredByFF: ''\n};\n","import {\n Component,\n OnInit,\n ChangeDetectionStrategy,\n Input,\n EventEmitter,\n Output,\n ViewChildren,\n QueryList,\n ChangeDetectorRef,\n ElementRef\n} from '@angular/core';\n\nimport { IUIEntityInsight } from '@common/modules/insights/interfaces';\n\nimport { FocusManagerService } from '../../../accessibility/focus-manager.service';\nimport { resources } from './resources';\nimport { TranslateHelperService } from '../../../translation/services/translate-helper.service';\nimport { isMainButtonPressed } from '../../../utils/event';\nimport { UIImageShapeType } from './interfaces';\n\n@Component({\n selector: 'vi-insights-images',\n templateUrl: './insights-images.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['./insights-images.component.scss']\n})\nexport class InsightsImagesComponent implements OnInit {\n // Inputs\n @Input() public entities: IUIEntityInsight[] = [];\n @Input() public expanded: boolean;\n @Input() public overflow: number;\n @Input() public activeContainer = false;\n @Input() public hasTooltip = false;\n @Input() public sizeClass = '';\n @Input() public stretchNotification = false;\n @Input() public imageShapeClass: UIImageShapeType = UIImageShapeType.ROUND;\n\n // Outputs\n @Output() public toggleExpand = new EventEmitter();\n @Output() public select = new EventEmitter();\n @Output() public hover = new EventEmitter();\n\n public resources = resources;\n @ViewChildren('pictureObject') public listPictureItems: QueryList;\n\n constructor(private focusManagerService: FocusManagerService, private cdr: ChangeDetectorRef, private translate: TranslateHelperService) {}\n\n public ngOnInit() {\n // Translate resources\n this.translate.translateResources(this.resources);\n }\n\n public toggleWidgetMouse($event: MouseEvent) {\n if (isMainButtonPressed($event)) {\n this.toggleWidget();\n }\n }\n\n public toggleWidget(bKeyboardEvent: boolean = false) {\n // Get current array length\n const currentLength: number = this.listPictureItems.toArray().length;\n this.toggleExpand.emit();\n\n if (bKeyboardEvent) {\n this.focusManagerService.focusVia(() => {\n // Update view\n this.cdr.detectChanges();\n const listItems = this.listPictureItems.toArray();\n return listItems[currentLength - 1];\n });\n }\n }\n\n public selectEntity(entity: IUIEntityInsight) {\n this.select.emit(entity);\n }\n\n public getShowingEntityProfileText(entity: IUIEntityInsight): string {\n const itemResources = { PeopleShowingPersonProfile: '' };\n this.translate.translateResources(itemResources, { name: entity.name });\n return itemResources.PeopleShowingPersonProfile;\n }\n\n public showEntityTooltip(entity: IUIEntityInsight, showTooltip: boolean) {\n entity.showTooltip = showTooltip;\n this.hover.emit(entity);\n }\n}\n","
\n
\n \n
\n
\n \n \n \n
\n
\n
\n +{{ overflow }}\n
\n
\n
","import { Injectable } from '@angular/core';\n\nimport { IUIEntityInsight } from '@common/modules/insights/interfaces';\n\nimport { IStyle } from '../../interfaces';\n\n@Injectable()\nexport class InsightsImagesService {\n constructor() {}\n\n public getSpritePosition(i: number, imageSize: number, spriteSize: number) {\n return (i % spriteSize) * imageSize;\n }\n\n public getThumbStyle(person: IUIEntityInsight, positionSize): IStyle {\n // Return the x position of the image based on the sprite image index\n return {\n backgroundImage: `url(${person.spriteUrl})`,\n backgroundPosition: `-${positionSize}px 0`\n };\n }\n}\n","export enum UIImageShapeType {\n ROUND = 'round',\n SQUARE = 'square'\n}\n","export const resources = {\n FacePileProfilePictureLabel: '',\n FacePileProfilePictureTitle: '',\n ShowMore: 'ShowMore',\n PeopleShowingPersonProfile: ''\n};\n","import { UIActionType } from '@common/modules/insights/interfaces';\n\nimport { IAction } from '../../interfaces';\n\nexport const acceptAction: IAction = {\n title: '',\n key: 'Accept',\n type: UIActionType.CLICK,\n value: UIActionType.CLICK,\n id: 'accept'\n};\n\nexport const dismissAction: IAction = {\n title: '',\n key: 'Dismiss',\n type: UIActionType.CANCEL,\n value: UIActionType.CANCEL,\n id: 'dismiss'\n};\n\nexport const useCaseMenuAction: IAction = {\n title: '',\n key: 'SelectAUseCase',\n type: UIActionType.CLICK,\n value: UIActionType.DROPDOWN,\n id: 'useCaseMenu'\n};\n\nexport const useCaseOptions: IAction[] = [\n {\n title: '',\n key: 'IdentityVerification',\n type: UIActionType.CLICK,\n value: 'Identity verification',\n id: 'identityVerification'\n },\n {\n title: '',\n key: 'TouchlessAccessControl',\n type: UIActionType.CLICK,\n value: 'Touchless access control',\n id: 'touchLessAccessControl'\n },\n {\n title: '',\n key: 'Personalization',\n type: UIActionType.CLICK,\n value: 'Personalization',\n id: 'personalization'\n },\n {\n title: '',\n key: 'DetectDuplicateOrBlockedUsers',\n type: UIActionType.CLICK,\n value: 'Detect duplicate or blocked users',\n id: 'detectDuplicateOrBlockedUsers'\n },\n {\n title: '',\n key: 'FaceInMediaOrEntertainmentVideo',\n type: UIActionType.CLICK,\n value: 'A face in a media or entertainment video archive',\n id: 'faceInMediaOrEntertainmentVideo'\n },\n {\n title: '',\n key: 'CelebrityRecognition',\n type: UIActionType.CLICK,\n value: 'Celebrity recognition',\n id: 'celebrityRecognition'\n },\n {\n title: '',\n key: 'DemoUse',\n type: UIActionType.CLICK,\n value: 'Demo use',\n id: 'DemoUse'\n }\n];\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output, ChangeDetectorRef } from '@angular/core';\n\nimport { EventCategory, TrackService } from '@common/modules/core/services/track';\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\n\nimport { IAction, IArrToString } from '../../interfaces';\nimport {\n AZURE_LEGAL_TERMS,\n CUSTOMER_SOLUTION,\n lIMITED_ACCESS_SERVICES_TERMS,\n ONLINE_SERVICES_DPA,\n REPORT_SENSITIVE_USE,\n RESTRICTION_ON_US_POLICE,\n VI_LIMITED_ACCESS_FEATURES_DOC\n} from '../../links';\nimport { UtilsService } from '../../services/utils.service';\nimport { ActionButtonType } from '../action-button/interfaces';\nimport { IDialogEvent } from '../dialog/interfaces';\nimport { acceptAction, dismissAction, useCaseMenuAction, useCaseOptions } from './actions';\nimport { IFaceGatePopupEvent, IFaceGatePopupInfo } from './interfaces';\nimport { resources } from './resources';\n\n@Component({\n selector: 'vi-internal-face-gate-form',\n templateUrl: './internal-face-gate-form.component.html',\n styleUrls: ['./internal-face-gate-form.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class InternalFaceGateFormComponent implements OnInit {\n @Input() public data: IFaceGatePopupInfo;\n @Output() public componentEventEmitter = new EventEmitter();\n\n public acceptAction = acceptAction;\n public dismissAction = dismissAction;\n public resources = resources;\n public isUserConfirmTerms: boolean;\n public signature = '';\n public ActionButtonType = ActionButtonType;\n public showEmailError = false;\n public useCaseMenuAction = useCaseMenuAction;\n public useCaseOptions = useCaseOptions;\n public selectedUseCases: string;\n\n constructor(\n private translate: TranslateHelperService,\n private cdr: ChangeDetectorRef,\n private trackService: TrackService,\n private utilsService: UtilsService\n ) {}\n\n public ngOnInit(): void {\n this.initTranslations();\n }\n\n public toggleConfirmTerms($event) {\n this.isUserConfirmTerms = $event;\n }\n\n public onEmailInputValueChanged(email: string) {\n this.showEmailError = !this.data.userEmail.toLowerCase().startsWith(email.toLowerCase());\n }\n\n public onEmailInputFocusout(email: string) {\n this.showEmailError = email && this.data.userEmail.toLowerCase() !== email.toLowerCase();\n }\n\n public get acceptBtnDisabled() {\n return !this.isUserConfirmTerms || this.signature.toLowerCase() !== this.data.userEmail.toLowerCase() || !this.selectedUseCases;\n }\n\n public onClickAccept() {\n if (this.acceptBtnDisabled) {\n return;\n }\n const eventData = {\n isAccepted: true,\n signature: this.signature.toLowerCase(),\n useCase: this.selectedUseCases\n };\n this.trackService.track('internal_face_gate_form.accept_btn.clicked', {\n category: EventCategory.FACE_GATE\n });\n this.emitEvent(eventData);\n }\n\n public onClickDismiss() {\n const eventData = {\n isAccepted: false,\n isDismissed: true\n };\n this.emitEvent(eventData);\n this.trackService.track('internal_face_gate_form.dismiss_btn.clicked', {\n category: EventCategory.FACE_GATE\n });\n }\n\n public onSelectUseCases(actions: IAction[]) {\n if (actions?.length <= 0) {\n this.selectedUseCases = '';\n return;\n }\n\n const arrToString: IArrToString[] = actions.map(action => {\n return { name: action.value as string };\n });\n this.selectedUseCases = this.utilsService.parseArrayToString(arrToString);\n }\n\n private emitEvent(outputData: IFaceGatePopupEvent) {\n const dialogEvent: IDialogEvent = {\n isDialogClose: true,\n dialogEventData: outputData\n };\n\n this.componentEventEmitter.emit(dialogEvent);\n }\n\n private initTranslations() {\n this.translate.translateResources(this.resources, { userEmail: this.data.userEmail, ...this.faceGateLinksVariables }).subscribe(() => {\n this.acceptAction = {\n ...this.acceptAction,\n title: this.resources[this.acceptAction.key]\n };\n\n this.dismissAction = {\n ...this.dismissAction,\n title: this.resources[this.dismissAction.key]\n };\n\n this.useCaseMenuAction = {\n ...this.useCaseMenuAction,\n title: this.resources[this.useCaseMenuAction.key]\n };\n\n this.useCaseOptions = this.useCaseOptions.map(option => {\n return {\n ...option,\n title: this.resources[option.key]\n };\n });\n\n this.cdr.detectChanges();\n });\n }\n\n private get faceGateLinksVariables() {\n return {\n FaceGateTermsOfUseLink: AZURE_LEGAL_TERMS,\n FaceGateCustomerSolutionLink: CUSTOMER_SOLUTION,\n FaceGateLimitedAccessServicesTermsLink: lIMITED_ACCESS_SERVICES_TERMS,\n FaceGateRestrictionsOnUSPoliceUseLink: RESTRICTION_ON_US_POLICE,\n FaceGateOnlineServicesDPALink: ONLINE_SERVICES_DPA,\n FaceGateSensitiveUseCaseLink: REPORT_SENSITIVE_USE,\n FaceGateVILimitedAccessFeaturesDocLink: VI_LIMITED_ACCESS_FEATURES_DOC\n };\n }\n}\n","
\n\n
\n
\n\n
\n \n
{{data?.accountName}}
\n
\n\n
\n \n
\n \n \n
\n\n
\n \n
\n \n \n
\n\n
\n \n \n {{resources?.FaceGatePopupEmailDoesNotMatch}}\n
\n
\n
\n \n \n \n \n
\n","export const resources = {\n Dismiss: '',\n Accept: '',\n FaceGatePopupDescription: '',\n AccountName: '',\n TermsOfUse: '',\n TypeYourEmailAddress: '',\n FaceGatePopupTermsOfUse: '',\n FaceGatePopupAgreement: '',\n TypeYourEmailAddressFoAddedSecurity: '',\n FaceGatePopupTitle: '',\n FaceGatePopupAgreementTitle: '',\n FaceGatePopupEmailDoesNotMatch: '',\n SelectAUseCase: '',\n FaceGatePopupSensitiveUseCase: '',\n IdentityVerification: '',\n TouchlessAccessControl: '',\n Personalization: '',\n DetectDuplicateOrBlockedUsers: '',\n FaceInMediaOrEntertainmentVideo: '',\n CelebrityRecognition: '',\n DemoUse: ''\n};\n","import {\n Component,\n OnInit,\n Input,\n Output,\n EventEmitter,\n ChangeDetectorRef,\n ChangeDetectionStrategy,\n OnChanges,\n SimpleChanges,\n ElementRef,\n HostBinding,\n HostListener,\n AfterViewInit\n} from '@angular/core';\n\nimport { resources } from './resources';\nimport { UtilsService } from '../../services/utils.service';\nimport { TranslateHelperService } from '../../../translation/services/translate-helper.service';\nimport { Direction } from '../../interfaces';\n\n@Component({\n selector: 'app-vi-notification-tooltip',\n templateUrl: './notification-tooltip.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['./notification-tooltip.component.scss']\n})\nexport class NotificationTooltipComponent implements OnInit, OnChanges, AfterViewInit {\n @Input() public notificationText = '';\n @Input() public duration = 3000;\n @Input() public hasExitButton = false;\n @Input() public addOverlay = true;\n @Input() public hasCheckbox = false;\n @Input() public checkboxText = '';\n @Input() public checkboxTextId: string;\n @Input() public addAnimation = true;\n // when stretch true the tooltip width wil be according to the content\n @Input() public stretch = false;\n @Input() public direction = Direction.RIGHT;\n // Pass target element to locate the tooltip when using left direction/relocate right direction/center arrow\n @Input() public targetElement: ElementRef;\n // center the tooltip arrow to the center of the target element\n @Input() public centerArrow = false;\n @Input() public tooltipClass = '';\n @Input() public showArrow = true;\n @Input() public showNotificationDown = false;\n @Input() public ignoreApplyDirection = false;\n\n @Output() public notificationDismiss = new EventEmitter();\n @Output() public selectCheckboxOutput = new EventEmitter();\n @Output() public escPressed = new EventEmitter();\n\n @HostBinding('style.left') public leftStyle: string;\n @HostBinding('style.top') public topStyle: string;\n @HostBinding('style.right') public rightStyle: string;\n @HostBinding('class.is-visible') public isVisible: boolean;\n\n public startAnimation = false;\n public checkboxSelected = false;\n public resources = resources;\n\n private dismissTimeout;\n private animationTimeout;\n private animationDuration = 500;\n\n constructor(private cdr: ChangeDetectorRef, private translate: TranslateHelperService, private el: ElementRef, private utils: UtilsService) {}\n\n public ngOnInit() {\n // Translate resources\n this.translate.translateResources(this.resources);\n }\n\n @HostListener('document:keydown.escape', ['$event']) public onKeyupHandler(event: KeyboardEvent) {\n this.escPressed.emit();\n }\n\n public ngAfterViewInit(): void {\n // Set tooltip direction must be in AfterViewInit so view will be loaded first\n this.applyDirection().then(() => {\n this.cdr.markForCheck();\n this.isVisible = true;\n });\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes && changes.notificationText) {\n // Text has been changed, apply timeout again\n clearTimeout(this.animationTimeout);\n clearTimeout(this.dismissTimeout);\n\n this.isVisible = false;\n this.initNotification();\n }\n }\n\n public applyDirection(): Promise {\n return this.utils.getContainerRectAsync(this.el.nativeElement).then(tooltipElement => {\n this.utils.getBodyRectAsync().then(bodyRect => {\n // apply direction if needed\n switch (this.direction) {\n case Direction.RIGHT:\n this.locateRightDirectionTooltip(tooltipElement, bodyRect);\n break;\n case Direction.LEFT:\n this.locateLeftDirectionTooltip(tooltipElement, bodyRect);\n break;\n }\n\n // when tooltip over body element bottom, show tooltip above the target element\n if (!this.ignoreApplyDirection && tooltipElement?.bottom > bodyRect?.bottom && !this.showNotificationDown) {\n this.topStyle = `-${tooltipElement?.height}px`;\n }\n });\n });\n }\n\n public dismiss(): void {\n if (this.dismissTimeout) {\n clearTimeout(this.dismissTimeout);\n }\n\n this.startAnimation = false;\n this.cdr.markForCheck();\n\n this.notificationText = '';\n this.notificationDismiss.emit();\n }\n\n public selectCheckbox() {\n this.selectCheckboxOutput.emit(this.checkboxSelected);\n }\n\n public get checkboxTextElementId() {\n return `notification${this.checkboxTextId}`;\n }\n\n private initNotification() {\n // Show popup according to duration input\n if (this.addAnimation) {\n this.animationTimeout = setTimeout(() => {\n this.startAnimation = true;\n this.cdr.markForCheck();\n\n this.dismissTimeout = setTimeout(() => {\n this.dismiss();\n }, this.animationDuration);\n }, this.duration);\n }\n }\n\n private locateRightDirectionTooltip(tooltipRect: DOMRect, bodyRect: DOMRect) {\n let leftLocation = 0;\n if (this.centerArrow) {\n leftLocation = this.applyCenterArrow(0, Direction.RIGHT);\n }\n // check if relocate (change direction) is needed\n if (tooltipRect.right + leftLocation > bodyRect.right) {\n this.changeDirection(Direction.LEFT, tooltipRect);\n }\n }\n\n private changeDirection(newDirection: Direction, tooltipRect: DOMRect) {\n this.direction = newDirection;\n let leftLocation = 0;\n switch (newDirection) {\n case Direction.LEFT:\n leftLocation = this.applyLeftDirection(tooltipRect);\n break;\n case Direction.RIGHT:\n this.leftStyle = '0px';\n break;\n }\n\n if (this.centerArrow) {\n this.applyCenterArrow(leftLocation, newDirection);\n }\n\n this.cdr.detectChanges();\n }\n\n private locateLeftDirectionTooltip(tooltipRect: DOMRect, bodyRect: DOMRect) {\n let leftLocation = this.applyLeftDirection(tooltipRect);\n\n if (this.centerArrow) {\n leftLocation = this.applyCenterArrow(leftLocation, Direction.LEFT);\n }\n\n const tooltipLeft = tooltipRect.left + leftLocation;\n // check if relocate (change direction) is needed\n if (tooltipLeft < bodyRect.left) {\n this.changeDirection(Direction.RIGHT, tooltipRect);\n }\n }\n\n private applyLeftDirection(tooltip: DOMRect): number {\n if (this.direction === Direction.LEFT && this.targetElement?.nativeElement) {\n const tooltipTargetGap = Math.abs(tooltip.width - this.targetElement.nativeElement.offsetWidth);\n this.leftStyle = `-${tooltipTargetGap}px`;\n return -tooltipTargetGap;\n }\n return 0;\n }\n\n private applyCenterArrow(leftLocation: number, direction: Direction) {\n // can't center arrow to target when there is no target\n if (!this.targetElement?.nativeElement) {\n return;\n }\n const arrowPadding = 12;\n const arrowWidth = 20;\n const arrowCenter = arrowWidth / 2;\n const targetCenter = this.targetElement.nativeElement.offsetWidth / 2;\n // direction to move tooltip is according to the tooltip direction\n const shiftDirection = direction === Direction.RIGHT ? -1 : 1;\n leftLocation += shiftDirection * (arrowPadding + arrowCenter - targetCenter);\n this.leftStyle = `${leftLocation}px`;\n return leftLocation;\n }\n}\n","
\n \n \n
\n \n
\n \n
\n
\n","export const resources = {\n Close: ''\n};\n","import { Component, OnInit, Input, ChangeDetectionStrategy, ChangeDetectorRef } from '@angular/core';\n\nimport { IPersonaStyle } from './interfaces';\nimport { InsightsCommonUtilsService } from '../../../insights-common/insights-common-utils.service';\n\n@Component({\n selector: 'app-vi-persona',\n templateUrl: './persona.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['./persona.component.scss']\n})\nexport class PersonaComponent implements OnInit {\n @Input() public personaId: string;\n @Input() public label: string;\n @Input() public personaStyle: string;\n @Input() public personsUrl: string;\n\n public style: IPersonaStyle = {\n backgroundImage: '',\n backgroundPosition: ''\n };\n\n public fallbackUrl: string;\n\n constructor(public cdr: ChangeDetectorRef, private commonUtilsService: InsightsCommonUtilsService) {}\n\n public ngOnInit() {\n this.fallbackUrl = this.commonUtilsService.FaceFallbackUrl;\n this.getStyle();\n }\n\n private getStyle() {\n if (!this.personsUrl) {\n return;\n }\n this.style.backgroundImage = `url(${this.personsUrl})`;\n // this.style.backgroundPosition = `-${this.person.positionLarge}px 0`;\n this.cdr.markForCheck();\n }\n}\n","\n \n\n","import {\n Component,\n OnInit,\n Input,\n Output,\n EventEmitter,\n ChangeDetectorRef,\n Inject,\n OnDestroy,\n ElementRef,\n ViewChild,\n Renderer2\n} from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\n\nimport { AccessibilityUtilsService } from '@common/modules/accessibility/accessibility-utils.service';\n\nimport { IUIPreset, IUIPresetInsight, IUITab, ISubscriptions, PresetInsightType } from '../../../insights/interfaces';\nimport { InsightsCommonUtilsService } from '../../../insights-common/insights-common-utils.service';\nimport { Direction, IAction } from '../../interfaces';\nimport { FocusManagerService } from '../../../accessibility/focus-manager.service';\nimport { InsightsCommonDataService } from '../../../insights-common/insights-common-data.service';\nimport { InsightsCommonService } from '../../../insights-common/insights-common.service';\nimport { InsightsService } from '../../../insights/services/insights.service';\nimport { UrlService } from '../../../core/services/url/url.service';\nimport { TranslateHelperService } from '../../../translation/services/translate-helper.service';\nimport { LocalStorageService } from '../../services/local-storage.service';\nimport { EventCategory, TrackService } from '../../../core/services/track';\nimport { ITabListTab } from '../tablist/interfaces';\nimport { ActionButtonType } from '../action-button/interfaces';\nimport { resources } from './resources';\n\n@Component({\n selector: 'app-vi-insights-presets',\n templateUrl: './presets.component.html',\n styleUrls: ['./presets.component.scss']\n})\nexport class PresetsComponent implements OnInit, OnDestroy {\n // Input\n @Input() public presets: IUIPreset[];\n @Input() public presetInsights: IUIPresetInsight[];\n @Input() public title = 'View Insights';\n @Input() public action?: IAction;\n @Input() public hasOpenerIcon = false;\n @Input() public tooltipText = '';\n @Input() public sizeClass = '';\n @Input() public calcWidth = true;\n @Input() public isDisabled = false;\n @Input() public responsiveState = '';\n @Input() public internal = false;\n @Input() public buttonType: ActionButtonType;\n\n // Output\n @Output() public presetChange: EventEmitter = new EventEmitter();\n @Output() public presetInsightChange: EventEmitter = new EventEmitter();\n @Output() public actionChange = new EventEmitter();\n @Output() public widthCalculated = new EventEmitter();\n @Output() public focusInActionButton = new EventEmitter();\n\n // Const\n public readonly PRESET_ID_PREFIX = 'checkboxId';\n public readonly OPTION_ID_SUFFIX = '_preset_item';\n public readonly MENU_ID = 'presetList';\n\n // Public\n public resources = resources;\n public dropDownWidth = 0;\n public expanded = false;\n public customInsightsExpanded = false;\n public showTooltip = false;\n public showTabTooltip = false;\n public width = 'auto';\n public maxWidth = '50vw';\n public Direction = Direction;\n public PresetInsightType = PresetInsightType;\n\n @ViewChild('customInsightsPresetsButton') public customInsightsPresetsButton: ElementRef;\n @ViewChild('customInsightsPresetsContainer') public customInsightsPresetsContainer: ElementRef;\n @ViewChild('insightsPresetsContainer') public insightsPresetsContainer: ElementRef;\n @ViewChild('PresetsContainer') public presetsContainer: ElementRef;\n @ViewChild('PresetButton', { read: ElementRef }) presetButton: ElementRef;\n\n // Private\n private tabPressedMap: Map = new Map();\n private tabs: ITabListTab[] = [];\n private subscriptions: ISubscriptions = {};\n\n // Const\n private readonly PRESET_BUTTON_HEIGHT = 36;\n private readonly PRESETS_TITLE = 3;\n private readonly MIN_AMOUNT_SHOW_CUSTOM_INSIGHTS = 1;\n\n constructor(\n @Inject(DOCUMENT) private document: Document,\n private commonUtilsService: InsightsCommonUtilsService,\n private dataService: InsightsCommonDataService,\n private commonInsights: InsightsCommonService,\n private insightsService: InsightsService,\n private cdr: ChangeDetectorRef,\n private urlUtility: UrlService,\n private translate: TranslateHelperService,\n private focusManager: FocusManagerService,\n private localStorageService: LocalStorageService,\n private trackService: TrackService,\n private renderer: Renderer2,\n private accessibilityUtils: AccessibilityUtilsService\n ) {}\n\n public ngOnInit() {\n this.translate.translateResources(this.resources);\n if (this.calcWidth) {\n this.calcDropDownWidth();\n }\n\n this.initConfigurations();\n }\n\n public ngOnDestroy(): void {\n this.commonUtilsService.unsubscribeSubscriptions(this.subscriptions);\n }\n\n public hideTooltip() {\n this.showTabTooltip = false;\n this.cdr.markForCheck();\n\n // Update local storage\n this.localStorageService.setItem(`tab${IUITab.INSIGHTS}tooltipShown`, this.tabPressedMap.get(IUITab.INSIGHTS).toString());\n this.localStorageService.setItem(`tab${IUITab.TIMELINE}tooltipShown`, this.tabPressedMap.get(IUITab.TIMELINE).toString());\n }\n\n public selectPreset(preset: IUIPreset) {\n this.presetChange.emit(preset);\n\n this.trackService.track('preset.select_preset', {\n category: EventCategory.PRESET,\n preset: preset?.value\n });\n }\n\n public selectPresetInsight(ins: IUIPresetInsight) {\n this.presetInsightChange.emit(ins);\n\n this.trackService.track('preset.select_insights', {\n category: EventCategory.PRESET,\n data: { preset: ins?.value, selected: ins?.selected }\n });\n }\n\n public convertPresetToString(preset: IUIPreset): string {\n let str = '';\n for (const element of this.presetInsights) {\n if (preset?.insights?.includes(element?.value)) {\n str += `${this.PRESET_ID_PREFIX + element?.value} `;\n }\n }\n return str.slice(0, -1);\n }\n\n public onCustomInsightContainerOut(event: MouseEvent) {\n // If the focus moves to the custom insights preset button\n if (event.relatedTarget === this.customInsightsPresetsButton.nativeElement) {\n this.customInsightsExpanded = true;\n this.placeCustomInsightsMenu();\n } else {\n this.customInsightsExpanded = false;\n }\n }\n\n public onCustomInsightArrow(open: boolean, event: KeyboardEvent) {\n event.stopPropagation();\n if (open) {\n this.customInsightsExpanded = true;\n this.placeCustomInsightsMenu();\n // Focus first element\n this.focusOnTarget(this.customInsightsPresetsContainer.nativeElement.querySelector('li [id^=\"checkboxId\"]'));\n } else {\n // close\n // Focus preset button\n this.focusManager.focusVia(() => {\n setTimeout(() => {\n this.customInsightsExpanded = false;\n this.cdr.detectChanges();\n });\n return this.customInsightsPresetsButton;\n });\n }\n }\n\n public onCustomInsightHover(mouseOver: boolean, event: MouseEvent) {\n // If user hover over the custom insights button / custom menu\n if (mouseOver) {\n // Show custom insights list\n this.customInsightsExpanded = true;\n } else {\n // If hovering over different element\n if (event.relatedTarget !== null) {\n // If this element is the custom insights menu list - keep open\n const parents = this.accessibilityUtils.getParents(event.relatedTarget);\n this.customInsightsExpanded = parents?.indexOf(this.customInsightsPresetsContainer?.nativeElement) !== -1;\n } else {\n this.customInsightsExpanded = false;\n }\n }\n\n this.placeCustomInsightsMenu();\n }\n\n public handleActionButtonClick(event: MouseEvent | KeyboardEvent) {\n if (!event) {\n // Resolve a11y problem - since it is a menu with an extra dropdown, when the custom dropdown is closed\n // After selecting one of the items, the focus disappear from the menu, causing the toggle to work\n // Only in this case the focus should be returned to the triggered button\n if (!this.customInsightsExpanded && document.querySelector('.dropdown.presets.custom-container')) {\n this.focusOnTarget(this.presetButton.nativeElement.querySelector('button'));\n return;\n }\n }\n this.actionChange.emit(this.action);\n this.expanded = !this.expanded;\n this.customInsightsExpanded = false;\n this.cdr.detectChanges();\n }\n\n public handleArrowUp(event: KeyboardEvent) {\n event.preventDefault();\n const prev = (event.target)?.previousElementSibling || this.presetsContainer?.nativeElement?.lastElementChild;\n this.focusOnTarget(prev);\n }\n\n public handleArrowDown(event: KeyboardEvent) {\n event.preventDefault();\n const next = (event.target)?.nextElementSibling || this.presetsContainer?.nativeElement?.firstElementChild;\n this.focusOnTarget(next);\n }\n\n public get isCustomPresetsListEnabled() {\n return this.commonInsights.customInsightsCount > this.MIN_AMOUNT_SHOW_CUSTOM_INSIGHTS;\n }\n\n public focusOnTarget(target: Element) {\n if (target) {\n this.focusManager.focusVia(() => {\n return new ElementRef(target);\n }, this.cdr);\n }\n }\n\n public handleEscClick(e: KeyboardEvent) {\n if (this.expanded) {\n this.expanded = !this.expanded;\n this.customInsightsExpanded = false;\n // Focus main action\n this.focusManager.focusByQuery('#presets', this.cdr);\n }\n }\n\n public generateTooltipText(): string {\n const itemResources = { TooltipStatus: '' };\n this.translate.translateResources(itemResources, {\n statusType: this.resources.View,\n currentStatus: `${this.commonInsights.getPresetsName()}`\n });\n\n return itemResources.TooltipStatus;\n }\n\n public tooltipNotificationTextOnTabChange() {\n const itemResources = { ActionBarPresetChangeNotification: '' };\n this.translate.translateResources(itemResources, {\n 'preset-name': this.commonInsights.getPresetsName()\n });\n\n return itemResources.ActionBarPresetChangeNotification;\n }\n\n public onMouseOver(state: boolean) {\n this.showTooltip = state;\n }\n\n public handleFocusInActionButton() {\n this.focusInActionButton.emit();\n }\n\n public getActionButtonWidth(): string {\n if (this.action.title) {\n return `${this.dropDownWidth}px`;\n } else {\n return 'auto';\n }\n }\n\n private initConfigurations() {\n this.showTabTooltip = false;\n // If theres a widgets param, dont show tab popup\n const widgetParam = this.urlUtility.getQueryParam('widgets');\n if (!widgetParam) {\n this.initTabTooltip();\n }\n }\n\n private initTabTooltip() {\n // Get tabs\n this.tabs = this.dataService.getTabs();\n\n // Init tabPressedMap object\n for (const tab of this.tabs) {\n // Set tab tooltip shown value according to local storage.\n // By default is false\n let isTooltipShown = 'false';\n\n isTooltipShown = this.localStorageService.getItem(`tab${tab.value}tooltipShown`);\n\n this.tabPressedMap.set(tab.value, isTooltipShown === 'true');\n }\n\n // Subscribe to tab change event\n this.subscriptions.onTabChange = this.insightsService.tabChangeSubject.subscribe((newTab: ITabListTab) => {\n // Get value from local storage\n if (this.tabPressedMap.get(newTab.value)) {\n return;\n }\n\n // Set pressed map = tooltip is shown\n this.tabPressedMap.set(newTab.value, true);\n this.showTabTooltip = true;\n this.cdr.markForCheck();\n });\n }\n\n private calcDropDownWidth() {\n this.dropDownWidth = 0;\n const padding = 9;\n const checkboxSize = 20;\n\n this.presets.forEach(preset => {\n const textWidth = this.commonUtilsService.measureText(preset.name, 14) + 2 * padding;\n if (this.dropDownWidth < textWidth) {\n this.dropDownWidth = textWidth;\n }\n });\n this.presetInsights.forEach(insight => {\n const textWidth = this.commonUtilsService.measureText(insight.name, 14) + 2 * padding + checkboxSize;\n if (this.dropDownWidth < textWidth) {\n this.dropDownWidth = textWidth;\n }\n });\n\n // Calc button text value width\n let mainActionWidth = this.commonUtilsService.measureText(this.title, 14);\n // i-span-i padding\n mainActionWidth += 18;\n // Add opener icon padding\n mainActionWidth += 32;\n // Add left icon padding\n mainActionWidth += 32;\n mainActionWidth += 2 * padding + 12;\n\n // Calc total max width\n this.dropDownWidth = Math.max(this.dropDownWidth, mainActionWidth);\n if (this.dropDownWidth) {\n this.width = `${this.dropDownWidth}px`;\n }\n this.widthCalculated.emit(this.dropDownWidth);\n }\n\n private placeCustomInsightsMenu() {\n if (!this.customInsightsExpanded) {\n return;\n }\n // First, render the screen to verify the menu is shown\n this.cdr.detectChanges();\n // Move the list to the left point of the last item\n const top = (this.presets.length + this.PRESETS_TITLE) * this.PRESET_BUTTON_HEIGHT - this.insightsPresetsContainer.nativeElement.scrollTop;\n this.renderer.setStyle(this.customInsightsPresetsContainer.nativeElement, 'top', `${top}px`);\n\n // Get custom preset trigger button and move menu according to width\n const clientRect = this.customInsightsPresetsButton.nativeElement.getBoundingClientRect();\n this.renderer.setStyle(this.customInsightsPresetsContainer.nativeElement, 'right', `${clientRect.width}px`);\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 \n
    \n
  • \n
    \n
\n
\n
\n
","export const resources = {\n UseScenarioLabel: '',\n PresetCustomViewTitle: '',\n View: '',\n Presets: '',\n LabelCustomInsightsPresetButton: ''\n};\n","export enum ViewActionType {\n DISABLE = 'DISABLE',\n SHOW = 'SHOW'\n}\n\nexport interface IViewControlChangedEvent {\n viewAction: ViewActionType;\n result: boolean;\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\n\nimport { AccountPermission } from '../../interfaces';\nimport { PermissionService } from '../../services/permission.service';\nimport { IViewControlChangedEvent, ViewActionType } from './interfaces';\n\n@Component({\n selector: 'vi-role-based-view-control-wrapper',\n template: `\n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class RoleBasedViewControlWrapperComponent implements OnChanges {\n /**\n * The role that is required to view the element.\n */\n @Input() public requiredPermission: AccountPermission = AccountPermission.CONTRIBUTOR;\n\n /**\n * The current permission\n * defaults to Contributor so current users won't get effected\n */\n @Input() public currentPermission: AccountPermission = AccountPermission.CONTRIBUTOR;\n\n /**\n * The action to take when the user is not authorized to view the element.\n */\n @Input() public viewAction: ViewActionType = ViewActionType.SHOW;\n\n /**\n * whether or not to match with the exact role of the user\n * otherwise it will match based on the access level\n */\n @Input() public exact = false;\n\n /**\n * Handler for role changed event.\n */\n @Output() public viewControlChanged = new EventEmitter();\n\n public shouldRender = true;\n private fallbackPermission = AccountPermission.CONTRIBUTOR;\n\n constructor(private permissionService: PermissionService) {}\n\n public ngOnChanges(changes: SimpleChanges) {\n if (changes.currentPermission) {\n this.handleRoleChanged(changes.currentPermission.currentValue);\n }\n }\n\n private isViewable(permission: AccountPermission) {\n if (!this.permissionService.isValidPermission(permission)) {\n permission = this.fallbackPermission;\n }\n\n if (this.exact) {\n return permission === this.requiredPermission;\n }\n\n return this.permissionService.ensurePermission(permission, this.requiredPermission);\n }\n\n private handleRoleChanged = (role: AccountPermission) => {\n const isViewable = this.isViewable(role);\n const { viewAction = ViewActionType.SHOW } = this;\n\n if (viewAction === ViewActionType.SHOW) {\n this.shouldRender = isViewable;\n }\n\n this.viewControlChanged.emit({ viewAction, result: isViewable });\n };\n}\n","export const resources = {\n CognitiveInsightsSearch: '',\n SearchCompleted: ''\n};\n","import { LiveAnnouncer } from '@angular/cdk/a11y';\nimport { Optional } from '@angular/core';\nimport { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, HostBinding, Input, OnDestroy, OnInit, Output } from '@angular/core';\n\nimport { fromEvent } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, map } from 'rxjs/operators';\n\nimport { MediaCommonStoreService } from '@common/modules/media-data-common/services/media-common-store.service';\n\nimport { TrackService } from '../../../core/services/track';\nimport { InsightsCommonUtilsService } from '../../../insights-common/insights-common-utils.service';\nimport { ISubscriptions } from '../../../insights/interfaces';\nimport { TranslateHelperService } from '../../../translation/services/translate-helper.service';\nimport { resources } from './resources';\nimport { SearchbarService } from './services/searchbar.service';\n\n@Component({\n selector: 'app-vi-searchbar',\n templateUrl: './searchbar.component.html',\n changeDetection: ChangeDetectionStrategy.Default,\n styleUrls: ['./searchbar.component.scss']\n})\nexport class SearchbarComponent implements OnInit, OnDestroy {\n // Inputs\n @Input() public status: string;\n @Input() public isStatusClickable: boolean;\n @Input() public isDisabled: boolean;\n @Input() public isFocusout: boolean;\n @Input() public placeholder: string;\n @Input() public id = 'searchbar';\n @Input() public delay = 800;\n @Input() public initialSearchValue = '';\n // Outputs\n @Output() public statusChanged = new EventEmitter();\n @Output() public focusSearch = new EventEmitter();\n @Output() public inputChanged = new EventEmitter();\n\n @HostBinding('class.focused') isFocused: boolean = false;\n // Public\n public resources = resources;\n public searching = false;\n\n // Privates\n private subscriptions: ISubscriptions = {};\n // Ctor\n constructor(\n private el: ElementRef,\n private translateHelper: TranslateHelperService,\n private track: TrackService,\n private insightsCommonUtilsService: InsightsCommonUtilsService,\n private searchbarService: SearchbarService,\n private liveAnnouncer: LiveAnnouncer,\n @Optional() private mediaCommonStoreService: MediaCommonStoreService\n ) {}\n\n public ngOnInit() {\n // Init tabs\n this.translateHelper.translateResources(this.resources);\n this.setSearchSubscription();\n }\n\n public setSearchSubscription() {\n // Create observable from event\n const inputElement = this.el.nativeElement.querySelector('input');\n const source = fromEvent(inputElement, 'keyup');\n\n if (this.isFocusout) {\n this.addFocusoutSubscriptions(inputElement);\n }\n\n // Reset search\n this.searchbarService.lastFilter = '';\n this.searchbarService.updateSearchEvent({ id: this.id, query: '' });\n\n if (this.initialSearchValue) {\n this.handleSearchEvent(this.initialSearchValue, 'search_by_search_parameter');\n }\n\n // Create subscription\n this.subscriptions.onSearchType = source\n .pipe(\n map(val => val.target['value']),\n // Filter empty values\n // .pipe(filter(v => v.length))\n // Delay for user typing\n debounceTime(this.delay),\n // Check for distinct typings\n distinctUntilChanged()\n )\n // Search\n // Subscribe to stream\n .subscribe(s => {\n this.handleSearchEvent(s);\n });\n }\n\n public handleFocus(isFocus: boolean) {\n this.focusSearch.emit(isFocus);\n this.isFocused = isFocus;\n }\n\n public statusClicked() {\n if (this.isStatusClickable) {\n this.statusChanged.emit();\n }\n }\n\n public resetInput() {\n const inputElement = this.el.nativeElement.querySelector('input');\n inputElement.value = '';\n }\n\n public setInput(value: string) {\n const inputElement = this.el.nativeElement.querySelector('input');\n inputElement.value = value;\n }\n\n public ngOnDestroy() {\n // Unsubscribe all subscriptions.\n this.insightsCommonUtilsService.unsubscribeSubscriptions(this.subscriptions);\n }\n\n private handleSearchEvent(s: string, trackingName?: string) {\n this.searchbarService.lastFilter = s;\n // Check that the value is not blank spaces\n // And skip if the length is zero length\n if (s.length !== 0 && s.trim().length === 0) {\n return;\n }\n this.searchbarService.updateSearchEvent({ id: this.id, query: s.trim() });\n this.searching = false;\n\n this.liveAnnouncer.announce(this.resources.SearchCompleted);\n // Set event for store\n this.mediaCommonStoreService?.setInsightsFilterValue(s);\n this.inputChanged.emit(s);\n }\n\n private addFocusoutSubscriptions(inputElement) {\n const focus = fromEvent(inputElement, 'blur');\n\n // Create subscription\n this.subscriptions.onSearchTypeFocusout = focus\n .pipe(\n map(val => val.target['value']),\n // Filter empty values\n // .pipe(filter(v => v.length))\n // Delay for user typing\n debounceTime(800),\n // Check for distinct typings\n distinctUntilChanged()\n )\n // Search\n // Subscribe to stream\n .subscribe(s => {\n this.handleSearchEvent(s);\n this.handleFocus(false);\n });\n }\n}\n","
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n {{ status }}\n
\n
\n
\n","import { Injectable } from '@angular/core';\n\nimport { BehaviorSubject, Observable } from 'rxjs';\n\nimport { find } from 'lodash-es';\n\nimport { ISearchEvent } from '../../../../insights/interfaces';\n\n@Injectable()\nexport class SearchbarService {\n public lastFilter: string;\n public filterSubject: BehaviorSubject;\n private searchEvents: ISearchEvent[] = [];\n\n constructor() {\n this.filterSubject = new BehaviorSubject(null);\n }\n\n public updateSearchEvent(srchEvent: ISearchEvent) {\n const searchEvent = find(this.searchEvents, srch => {\n return srch.id === srchEvent.id;\n });\n\n if (searchEvent) {\n // searchEvent exists , update its query\n searchEvent.query = srchEvent.query;\n } else {\n // searchEvent does not exist , add it to searchEvents array\n this.searchEvents.push(srchEvent);\n }\n this.filterSubject.next(srchEvent);\n }\n\n public filter(id: string): Observable {\n // Find searchEvent that is relevant to given id\n const searchEvent = find(this.searchEvents, srch => {\n return srch.id.toString() === id;\n });\n if (searchEvent) {\n this.filterSubject.next(searchEvent);\n }\n return this.filterSubject;\n }\n}\n","import { UIActionIcon, UIActionType } from '@common/modules/insights/interfaces';\n\nimport { IAction } from '../../interfaces';\nimport { ISortState } from './interfaces';\n\nexport const directionActions = [\n {\n title: '',\n key: 'SortOptionAscending',\n selected: false,\n type: UIActionType.SORT,\n value: ISortState.Ascending,\n selectable: true,\n hasDrop: false,\n id: 'ASCENDING',\n hasPressedMode: true,\n separated: true\n },\n {\n title: '',\n key: 'SortOptionDescending',\n selected: false,\n type: UIActionType.SORT,\n value: ISortState.Descending,\n selectable: true,\n hasDrop: false,\n id: 'DESCENDING',\n hasPressedMode: true,\n separated: false\n }\n];\nexport const sortAction: IAction = {\n icon: UIActionIcon.SORT,\n title: '',\n key: 'SortButton',\n selected: false,\n type: UIActionType.DROPDOWN,\n value: '',\n selectable: true,\n hasDrop: true,\n id: 'SORT_ACTION_BUTTON'\n};\n","export * from './sort-menu.component';\nexport * from './interfaces';\n","export enum ISortState {\n Inactive = 'inactive',\n Ascending = 'ascending',\n Descending = 'descending'\n}\n","export const resources = {\n SortButton: '',\n SortOptionDescending: '',\n SortOptionAscending: ''\n};\n","import { Component, Input, Output, EventEmitter, ChangeDetectorRef, ElementRef, ViewChild, ChangeDetectionStrategy, OnInit } from '@angular/core';\n\nimport { cloneDeep } from 'lodash-es';\n\nimport { guid } from '@common/modules/utils/string';\n\nimport { IUIPresetInsight } from '../../../insights/interfaces';\nimport { Direction, IAction } from '../../interfaces';\nimport { FocusManagerService } from '../../../accessibility/focus-manager.service';\nimport { TranslateHelperService } from '../../../translation/services/translate-helper.service';\nimport { EventCategory, TrackService } from '../../../core/services/track';\nimport { ActionButtonType } from '../action-button/interfaces';\nimport { resources } from './resources';\nimport { directionActions, sortAction } from './actions';\n\n@Component({\n selector: 'vi-sort-menu',\n templateUrl: './sort-menu.component.html',\n styleUrls: ['./sort-menu.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SortMenuComponent implements OnInit {\n // Input\n @Input() public columns: IAction[];\n @Input() public minWidth = '';\n @Input() public selectedColumn = '';\n @Input() public selectedDirection = '';\n @Input() public calcWidth = true;\n @Input() public isDisabled = false;\n @Input() public responsiveState = '';\n @Input() public sizeClass = '';\n @Input() public titleAttribute = '';\n @Input() public buttonType: ActionButtonType;\n\n // Output\n @Output() public presetInsightChange: EventEmitter = new EventEmitter();\n @Output() public actionChange = new EventEmitter();\n @Output() public widthCalculated = new EventEmitter();\n @Output() public focusInActionButton = new EventEmitter();\n\n // Actions\n public sortAction: IAction = cloneDeep(sortAction);\n public directions: IAction[] = cloneDeep(directionActions);\n\n // Const\n public readonly MENU_ID = 'sortMenu';\n\n // Public\n public buttonId = `sortBtn_${guid()}`;\n public resources = resources;\n public expanded = false;\n public showTooltip = false;\n public showTabTooltip = false;\n public width = 'auto';\n public maxWidth = '50vw';\n public Direction = Direction;\n\n @ViewChild('ColumnsContainer') public columnsContainer: ElementRef;\n\n // Private\n constructor(\n private cdr: ChangeDetectorRef,\n private translate: TranslateHelperService,\n private focusManager: FocusManagerService,\n private trackService: TrackService\n ) {}\n\n public ngOnInit() {\n this.translate.translateResources(this.resources);\n // Actions\n this.directions.forEach(c => (c.title = this.resources[c.key]));\n this.sortAction.title = this.resources[this.sortAction.key];\n this.sortAction.titleAttribute = this.titleAttribute;\n\n // Set selected column and direction\n this.setSelectedActions();\n }\n\n public selectColumn(column: IAction) {\n this.columns.forEach(p => (p.selected = false));\n column.selected = true;\n let direction = this.directions.find(p => p.selected === true);\n if (!direction) {\n direction = this.directions[0];\n direction.selected = true;\n }\n this.actionChange.emit([column, direction]);\n this.trackService.track('people.sort.column.click', {\n category: EventCategory.CUSTOMIZATION,\n data: { direction: direction?.value, column: column?.value }\n });\n }\n\n public selectDirection(direction: IAction) {\n this.directions.forEach(p => (p.selected = false));\n direction.selected = true;\n let column = this.columns.find(p => p.selected === true);\n if (!column) {\n column = this.columns[0];\n column.selected = true;\n }\n this.actionChange.emit([column, direction]);\n\n this.trackService.track('people.sort.direction.click', {\n category: EventCategory.CUSTOMIZATION,\n data: { direction: direction?.value, column: column?.value }\n });\n }\n\n public handleActionButtonClick(e: MouseEvent | KeyboardEvent) {\n this.expanded = !this.expanded;\n this.cdr.detectChanges();\n }\n\n public handleArrowUp(event: KeyboardEvent) {\n event.preventDefault();\n const prev = (event.target)?.previousElementSibling || this.columnsContainer?.nativeElement?.lastElementChild;\n this.focusOnTarget(prev);\n }\n\n public handleArrowDown(event: KeyboardEvent) {\n event.preventDefault();\n const next = (event.target)?.nextElementSibling || this.columnsContainer?.nativeElement?.firstElementChild;\n this.focusOnTarget(next);\n }\n\n public focusOnTarget(target: Element) {\n if (target) {\n this.focusManager.focusVia(() => {\n return new ElementRef(target);\n }, this.cdr);\n }\n }\n\n public handleEscClick(e: KeyboardEvent) {\n if (this.expanded) {\n this.expanded = !this.expanded;\n // Focus main action\n this.focusManager.focusByQuery(`#${this.buttonId}`, this.cdr);\n }\n }\n\n public onMouseOver(state: boolean) {\n this.showTooltip = state;\n }\n\n public handleFocusInActionButton() {\n this.focusInActionButton.emit();\n }\n\n private setSelectedActions() {\n if (this.selectedColumn && this.selectedDirection) {\n const column = this.columns.find(p => p.value === this.selectedColumn);\n const direction = this.directions.find(p => p.value === this.selectedDirection);\n if (column) {\n column.selected = true;\n }\n if (direction) {\n direction.selected = true;\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
","export const resources = {\n Loading: 'Loading'\n};\n","import { Component, OnInit, ChangeDetectionStrategy, Input } from '@angular/core';\n\nimport { resources } from './resources';\nimport { TranslateHelperService } from '../../../translation/services/translate-helper.service';\n\n@Component({\n selector: 'app-vi-spinner',\n templateUrl: './spinner.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['./spinner.component.scss']\n})\nexport class SpinnerComponent implements OnInit {\n // Privates\n @Input() public size = 'small';\n @Input() public invert = false;\n @Input() public label?: string;\n @Input() public labelSize?: string = 'normal';\n @Input() public isSecondary? = false;\n public resources = resources;\n\n constructor(private translate: TranslateHelperService) {}\n\n public ngOnInit() {\n // Translate resources\n this.translate.translateResources(this.resources);\n }\n}\n","
\n \n \n \n \n \n
\n
\n {{label}}\n
\n","import { NotificationLevel } from '@common/modules/core/services/toast/interfaces';\n\nimport { IAction } from '../../interfaces';\n\nexport enum MessageType {\n WARNING = 'warning',\n ERROR = 'error',\n INFO = 'info'\n}\n\nexport interface IStripData {\n id?: number;\n text?: string;\n show: boolean;\n action?: IAction;\n hasSpinner?: boolean;\n hasCloseButton?: boolean;\n iconClass?: string;\n type?: string;\n actionCallback?: ($event) => void;\n closeCallback?: ($event) => void;\n linkCallback?: ($event) => void;\n messageType?: MessageType;\n notificationLevel?: NotificationLevel;\n trackingName?: string;\n loadingProgress?: number;\n}\n","export const resources = {\n CloseIconLabel: ''\n};\n","import {\n Component,\n OnInit,\n Input,\n Output,\n EventEmitter,\n ElementRef,\n ChangeDetectionStrategy,\n OnChanges,\n SimpleChanges,\n AfterViewChecked\n} from '@angular/core';\nimport { SafeHtml, DomSanitizer } from '@angular/platform-browser';\n\nimport { FocusableComponent } from '@common/modules/accessibility/focusable/focusable.component';\nimport { LoggerService } from '@common/modules/core/services/logger/logger.service';\nimport { TrackService } from '@common/modules/core/services/track';\n\nimport { IAction } from '../../interfaces';\nimport { resources } from './resources';\nimport { removeHtmlTags } from '../../../utils/string';\nimport { TranslateHelperService } from '../../../translation/services/translate-helper.service';\nimport { getKeyCode, isMainButtonPressed, KeyCode } from '../../../utils/event';\nimport { MessageType } from './interfaces';\nimport { ActionButtonType } from '../action-button/interfaces';\n\n// The strip will be displayed as part of warning/ action or information for the user\n\n@Component({\n selector: 'app-vi-strip',\n templateUrl: './strip.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['./strip.component.scss']\n})\nexport class StripComponent extends FocusableComponent implements OnInit, AfterViewChecked, OnChanges {\n // Input\n @Input() public text: string;\n // Dispatch an action in case of a button needed\n @Input() public action?: IAction;\n // Display spinner\n @Input() public hasSpinner?: boolean;\n @Input() public hasCloseButton?: boolean;\n @Input() public iconClass?: string;\n @Input() public type?: string;\n @Input() public messageType = MessageType.WARNING;\n // Display progress\n @Input() public progress = false;\n @Input() public loadingProgress?: number;\n\n @Input() public isAlert = false;\n @Input() public truncate = true;\n // Output\n @Output() public actionClick = new EventEmitter();\n @Output() public closeClick = new EventEmitter();\n @Output() public linkClick = new EventEmitter();\n\n public safeText: SafeHtml;\n public resources = resources;\n public ActionButtonType = ActionButtonType;\n\n private textUpdated = false;\n\n constructor(\n private sanitizer: DomSanitizer,\n private el: ElementRef,\n private translate: TranslateHelperService,\n private loggerService: LoggerService,\n private trackService: TrackService\n ) {\n super();\n }\n\n public ngOnInit() {\n this.text = this.text || '';\n // eslint-disable-next-line @microsoft/sdl/no-angular-bypass-sanitizer\n this.safeText = this.sanitizer.bypassSecurityTrustHtml(this.text);\n // Remove html tags in text\n this.text = removeHtmlTags(this.text);\n // Translate resources\n this.translate.translateResources(this.resources);\n }\n\n public ngAfterViewChecked() {\n if (this.textUpdated) {\n this.bindClickEvent();\n this.textUpdated = false;\n }\n }\n\n public bindClickEvent() {\n const links = this.el.nativeElement.getElementsByClassName('link');\n\n for (const link of links) {\n link.addEventListener('mouseup', this.handleLinkClick.bind(this));\n link.addEventListener('keyup', this.enterLink.bind(this));\n }\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes.text) {\n this.textUpdated = true;\n // eslint-disable-next-line @microsoft/sdl/no-angular-bypass-sanitizer\n this.safeText = this.sanitizer.bypassSecurityTrustHtml(this.text);\n }\n }\n\n public handleActionClick() {\n this.actionClick.emit(this.action);\n }\n\n public closeStrip($event: Event) {\n this.closeClick.emit($event);\n }\n\n public handleLinkClick($event: MouseEvent) {\n if (isMainButtonPressed($event)) {\n this.linkClick.emit($event);\n }\n }\n\n private enterLink($event) {\n try {\n const key = getKeyCode($event);\n if (key === KeyCode.Enter) {\n this.linkClick.emit($event);\n }\n } catch (error) {\n this.loggerService.log('Please add key to dictionary.', error);\n this.trackService.trackError(error, { event: $event });\n }\n }\n}\n","
\n \n
\n \n
\n
\n
\n \n \n
\n \n \n \n
","import { Injectable } from '@angular/core';\n\nimport { BehaviorSubject } from 'rxjs';\n\nimport { IStripData } from './interfaces';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class StripService {\n public triggerStripData: BehaviorSubject;\n public triggerNotificationsStripData: BehaviorSubject;\n\n private id = 0;\n constructor() {\n this.triggerStripData = new BehaviorSubject(null);\n this.triggerNotificationsStripData = new BehaviorSubject(null);\n }\n\n public trigger(data: IStripData): number {\n const dataWithId = { ...data, id: ++this.id };\n this.triggerStripData.next(dataWithId);\n return dataWithId.id;\n }\n\n public hideStrip(id: number) {\n this.triggerStripData.next({ id: id, show: false, trackingName: 'strip' });\n }\n\n public triggerNotification(data: IStripData): number {\n const dataWithId = { ...data, id: ++this.id };\n this.triggerNotificationsStripData.next(dataWithId);\n return dataWithId.id;\n }\n\n public hideNotificationStrip(id: number) {\n this.triggerNotificationsStripData.next({ id: id, show: false, trackingName: 'strip.notification' });\n }\n}\n","export const resources = {\n InsightsTablistLabel: '',\n Preview: ''\n};\n","import { Component, OnInit, Input, EventEmitter, Output, ChangeDetectionStrategy } from '@angular/core';\n\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\n\nimport { resources } from './resources';\nimport { ITabListTab } from './interfaces';\n\n@Component({\n selector: 'app-vi-tablist',\n templateUrl: './tablist.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['./tablist.component.scss']\n})\nexport class TablistComponent implements OnInit {\n @Input() public tabs: ITabListTab[] = [];\n @Input() public isDisabled: boolean;\n @Output() public select = new EventEmitter>();\n\n public resources = resources;\n constructor(private translate: TranslateHelperService) {}\n\n public ngOnInit() {\n this.translate.translateResourcesInstant(resources);\n }\n\n public getId(tab: ITabListTab) {\n return `tab${tab.id || tab.value}`;\n }\n\n public selectTab(tab: ITabListTab) {\n this.select.emit(tab);\n }\n}\n","
    \n
  • \n \n
  • \n
\n","import { Directive, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Output, Renderer2 } from '@angular/core';\n\nimport { BehaviorSubject, Subscription } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, skip } from 'rxjs/operators';\n\n@Directive({\n selector: '[appDebounce]'\n})\nexport class DebounceDirective implements OnInit, OnDestroy {\n // The distinct value\n @Input() public debounceValue;\n\n // Debounce duration time\n @Input() public debounceDueTime = 800;\n\n // Event names array which debounce should consider\n @Input() public debounceEventNames = ['click'];\n\n // Output complete debounce\n @Output() public debounceEvent = new EventEmitter();\n\n private subscription: Subscription;\n private eventsSubject;\n\n constructor(private renderer: Renderer2, private el: ElementRef) {}\n\n public ngOnInit() {\n // Initial value for distinctUntilChanged function\n this.eventsSubject = new BehaviorSubject(this.debounceValue);\n // Add listener to all events\n this.addListen();\n // Create subscription\n this.subscription = this.eventsSubject\n .pipe(debounceTime(this.debounceDueTime))\n .pipe(distinctUntilChanged())\n // Pass emit initial value\n .pipe(skip(1))\n .subscribe(e => {\n this.debounceEvent.emit(e);\n });\n }\n\n public ngOnDestroy() {\n this.subscription.unsubscribe();\n }\n\n private addListen(): void {\n // add listen to each event\n this.debounceEventNames.forEach(eventName => {\n this.renderer.listen(this.el.nativeElement, eventName, event => {\n event.preventDefault();\n event.stopPropagation();\n this.eventsSubject.next(this.debounceValue);\n });\n });\n }\n}\n","import { AfterViewChecked, ComponentRef, Directive, Input, OnChanges, SimpleChanges, ViewContainerRef } from '@angular/core';\n\nimport { from } from 'rxjs';\n\nimport { DynamicTooltipComponent } from '../components/dynamic-tooltip/dynamic-tooltip.component';\nimport { UtilsService } from '../services/utils.service';\n\n@Directive({\n selector: '[viDynamicTooltip]'\n})\nexport class DynamicTooltipDirective implements OnChanges, AfterViewChecked {\n @Input() public showTooltip = false;\n @Input() public message: string;\n @Input() public showTooltipDown = false;\n\n private elementRect: DOMRect;\n private dynamicTooltipCompRef: ComponentRef;\n\n constructor(private viewContainerRef: ViewContainerRef, private utils: UtilsService) {}\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (!changes?.showTooltip) {\n return;\n }\n if (changes.showTooltip.currentValue) {\n this.createTooltipComponent();\n } else {\n this.removeTooltipComponent();\n }\n }\n\n public ngAfterViewChecked(): void {\n from(this.utils.getContainerRectAsync(this.viewContainerRef.element.nativeElement))\n .pipe()\n .subscribe(rect => {\n this.elementRect = rect;\n });\n }\n\n private createTooltipComponent() {\n this.dynamicTooltipCompRef = this.viewContainerRef.createComponent(DynamicTooltipComponent);\n this.dynamicTooltipCompRef.instance.message = this.message;\n this.dynamicTooltipCompRef.instance.showTooltipDown = this.showTooltipDown;\n document.addEventListener('mousemove', this.moveMouseHandler);\n }\n\n private removeTooltipComponent() {\n this.viewContainerRef.remove();\n document.removeEventListener('mousemove', this.moveMouseHandler);\n }\n\n private moveMouseHandler = mouseEvent => {\n const mouseOffset = 32;\n const tooltipWidth = 166;\n // tooltip transform is relative to element and mouseEvent is relative to document.\n // So set top/let according elementRect.top/left\n const tooltipTop = mouseEvent.clientY - this.elementRect.top - mouseOffset;\n let tooltipLeft = mouseEvent.clientX - this.elementRect.left - mouseOffset;\n if (tooltipLeft < 0) {\n tooltipLeft = 0;\n }\n if (this.elementRect.right < tooltipWidth + mouseEvent.clientX - mouseOffset) {\n tooltipLeft = this.elementRect.right - this.elementRect.left - tooltipWidth;\n }\n this.dynamicTooltipCompRef.instance.tooltipTransform = `translateY(${tooltipTop}px) translateX(${tooltipLeft}px)`;\n this.dynamicTooltipCompRef.instance.cdr.detectChanges();\n };\n}\n","import { Directive, ElementRef, EventEmitter, Input, OnChanges, OnDestroy, Output, SimpleChanges } from '@angular/core';\n\nimport { ElementSize } from '../interfaces';\n\n@Directive({\n selector: '[viElementResize]'\n})\nexport class ElementResizeDirective implements OnChanges, OnDestroy {\n // User can decide if listen or not to the dimensions change\n @Input() public elementResizeListener: boolean = true;\n\n // Element height has changed\n @Output() public heightChanged = new EventEmitter();\n // Element width has changed\n @Output() public widthChanged = new EventEmitter();\n // Element size has changed\n @Output() public sizeChanged = new EventEmitter();\n\n private height: number;\n private width: number;\n\n constructor(private el: ElementRef) {\n this.height = this.el.nativeElement.offsetHeight;\n this.width = this.el.nativeElement.offsetWidth;\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes?.elementResizeListener.currentValue) {\n this.el.nativeElement.addEventListener('input', this.onInput.bind(this));\n } else {\n this.el.nativeElement.removeEventListener('input', this.onInput);\n }\n }\n\n public ngOnDestroy(): void {\n this.el.nativeElement.removeEventListener('input', this.onInput);\n }\n\n public onInput(event) {\n const isHeightChanged = event.target.offsetHeight !== this.height;\n const isWidthChanged = event.target.offsetWidth !== this.width;\n if (isHeightChanged) {\n this.height = event.target.offsetHeight;\n this.heightChanged.emit(this.height);\n }\n if (isWidthChanged) {\n this.width = event.target.offsetWidth;\n this.widthChanged.emit(this.width);\n }\n if (isHeightChanged && isWidthChanged) {\n this.sizeChanged.emit({ height: this.height, width: this.width });\n }\n }\n}\n","import { Directive, ElementRef, Input } from '@angular/core';\n\n@Directive({\n selector: '[appHighlightText]'\n})\nexport class HighlightDirective {\n @Input('content')\n set content(content: string) {\n this._content = content;\n }\n get content(): string {\n return this._content;\n }\n\n @Input('searchTerm')\n set searchTerm(searchTerm: string) {\n this._searchTerm = searchTerm;\n this.highlight();\n }\n\n get searchTerm(): string {\n return this._searchTerm;\n }\n\n @Input() public caseSensitive: boolean;\n\n private _content: string;\n private _searchTerm: string;\n private separatedText = [];\n private separatedSearchedText = [];\n private final = '';\n private searchPattern: RegExp;\n private matchPattern: RegExp;\n private splitFlag = '';\n private matchFlag = '';\n private spanStart = '';\n private spanEnd = '';\n\n constructor(private el: ElementRef) {\n this.caseSensitive = false;\n }\n\n private highlight() {\n this.final = '';\n if (!this.caseSensitive) {\n this.splitFlag = 'i';\n this.matchFlag = 'gi';\n } else {\n this.splitFlag = '';\n this.matchFlag = 'g';\n }\n this.searchPattern = new RegExp(this._searchTerm, this.splitFlag);\n this.matchPattern = new RegExp(this._searchTerm, this.matchFlag);\n\n if (this._searchTerm !== undefined && this._searchTerm != null && this._searchTerm.length > 0 && this._searchTerm[0] !== '.') {\n this.separatedText = this._content.split(this.searchPattern);\n this.separatedSearchedText = this._content.match(this.matchPattern);\n\n if (this.separatedSearchedText != null && this.separatedSearchedText.length > 0) {\n for (let i = 0; i < this.separatedText.length; i++) {\n if (i <= this.separatedSearchedText.length - 1) {\n this.final += this.separatedText[i] + this.spanStart + this.separatedSearchedText[i] + this.spanEnd;\n } else {\n this.final += this.separatedText[i];\n }\n }\n }\n if (this.final.length > 0) {\n // eslint-disable-next-line\n this.el.nativeElement.innerHTML = this.final;\n } else {\n this.el.nativeElement.innerText = this._content;\n }\n } else {\n this.el.nativeElement.innerText = this._content;\n }\n }\n}\n","import { Directive, HostListener, Input } from '@angular/core';\n\n@Directive({\n selector: '[appViImageFallback]'\n})\nexport class ImageFallbackDirective {\n @Input('appViImageFallback') public fallbackSrc: string;\n\n constructor() {}\n\n @HostListener('error', ['$event']) public onError(event) {\n event.srcElement.src = this.fallbackSrc;\n }\n}\n","import { Directive, Input, HostListener, Renderer2, OnInit } from '@angular/core';\n\n@Directive({\n selector: '[appViImageIconFallback]'\n})\nexport class ImageIconFallbackDirective implements OnInit {\n @Input('appViImageIconFallback') public fallbackIconClass: string;\n\n @Input('appViImageIconFallbackRadius') public fallbackIconRadius = '50%';\n\n private originImgDisplay = '';\n private fallbackElement;\n private wrapperClassName;\n\n constructor(private renderer: Renderer2) {}\n\n public ngOnInit() {\n // Save class name for icon wrapper\n this.wrapperClassName = this.fallbackIconClass + '-wrapper';\n }\n\n @HostListener('load', ['$event.target']) public onLoad(target) {\n // Show the img if fallback icon had shown on error before\n const parentElement = target.parentElement;\n if (parentElement.getElementsByClassName(this.wrapperClassName)[0]) {\n // Show img\n this.renderer.setStyle(target, 'display', this.originImgDisplay);\n\n // Remove icon\n this.renderer.removeChild(parentElement, this.fallbackElement);\n }\n }\n\n @HostListener('error', ['$event.target']) public onError(target) {\n const parentElement = target.parentElement;\n\n // Insert fallback element only if it isn't exist.\n if (parentElement.getElementsByClassName(this.wrapperClassName)[0]) {\n return;\n }\n\n this.createFallbackElement();\n\n // Insert the icon wrapper where the img\n this.renderer.insertBefore(parentElement, this.fallbackElement, target);\n\n // Save origin img display value\n this.originImgDisplay = getComputedStyle(target).display;\n // Hide img\n this.renderer.setStyle(target, 'display', 'none');\n }\n\n private createFallbackElement() {\n // create the element only once\n if (this.fallbackElement) {\n return;\n }\n // create icon\n const icon = this.renderer.createElement('i');\n this.renderer.setAttribute(icon, 'aria-hidden', 'true');\n this.renderer.addClass(icon, this.fallbackIconClass);\n\n // create icon wrapper as circle\n this.fallbackElement = this.renderer.createElement('div');\n this.renderer.addClass(this.fallbackElement, this.wrapperClassName);\n this.renderer.setStyle(this.fallbackElement, 'border', '1px solid white');\n this.renderer.setStyle(this.fallbackElement, 'border-radius', this.fallbackIconRadius);\n this.renderer.setStyle(this.fallbackElement, 'width', '100%');\n this.renderer.setStyle(this.fallbackElement, 'height', '100%');\n this.renderer.appendChild(this.fallbackElement, icon);\n\n // locate the icon in the center of the wrapper\n this.renderer.setStyle(this.fallbackElement, 'display', 'flex');\n this.renderer.setStyle(icon, 'margin', 'auto');\n }\n}\n","import { Directive, Input, OnInit, TemplateRef, ViewContainerRef } from '@angular/core';\n\nimport { CoreStoreService } from 'src/apps/web/src/core/services/core-store.service';\n\n@Directive({\n selector: '[viShowIfAmsless]'\n})\nexport class ShowIfAmslessDirective implements OnInit {\n @Input('viShowIfAmsless') show: boolean = true;\n private isAmslessAccount: boolean;\n\n constructor(private templateRef: TemplateRef, private viewContainer: ViewContainerRef, private coreStoreService: CoreStoreService) {\n this.coreStoreService.isAmslessAccount$.subscribe(isAmslessAccount => {\n this.isAmslessAccount = isAmslessAccount;\n });\n }\n\n ngOnInit() {\n if (this.show) {\n this.showIfAmsless();\n } else {\n this.hideIfAmsless();\n }\n }\n\n private showIfAmsless() {\n if (!this.isAmslessAccount) {\n this.hideElement();\n } else if (this.isAmslessAccount) {\n this.showElement();\n }\n }\n\n private hideIfAmsless() {\n if (!this.isAmslessAccount) {\n this.showElement();\n } else if (this.isAmslessAccount) {\n this.hideElement();\n }\n }\n\n private showElement() {\n this.viewContainer.createEmbeddedView(this.templateRef);\n }\n\n private hideElement() {\n this.viewContainer.clear();\n }\n}\n","import { Directive, TemplateRef, ViewContainerRef, OnInit, Input } from '@angular/core';\n\nimport { EdgeExtensionsStoreService } from './../../../../apps/web/src/core/services/edge-extensions-store.service';\n\n@Directive({\n selector: '[viShowIfEdge]'\n})\nexport class ShowIfEdgeDirective implements OnInit {\n @Input('viShowIfEdge') show = true;\n private hasSelectedEdgeExtension = false;\n\n constructor(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private templateRef: TemplateRef,\n private viewContainer: ViewContainerRef,\n private edgeExtensionsService: EdgeExtensionsStoreService\n ) {\n this.edgeExtensionsService.hasSelectedEdgeExtension$.subscribe(hasSelectedEdgeExtension => {\n this.hasSelectedEdgeExtension = hasSelectedEdgeExtension;\n });\n }\n\n public ngOnInit(): void {\n if (this.show) {\n this.showIfEdge();\n } else {\n this.hideIfEdge();\n }\n }\n\n private hideIfEdge() {\n if (!this.hasSelectedEdgeExtension) {\n this.showElement();\n } else if (this.hasSelectedEdgeExtension) {\n this.hideElement();\n }\n }\n\n private showIfEdge() {\n if (!this.hasSelectedEdgeExtension) {\n this.hideElement();\n } else if (this.hasSelectedEdgeExtension) {\n this.showElement();\n }\n }\n\n private hideElement() {\n this.viewContainer.clear();\n }\n\n private showElement() {\n this.viewContainer.createEmbeddedView(this.templateRef);\n }\n}\n","import { ChangeDetectorRef, Directive, OnInit, TemplateRef, ViewContainerRef } from '@angular/core';\n\nimport { EdgeExtensionsStoreService } from './../../../../apps/web/src/core/services/edge-extensions-store.service';\n\n@Directive({\n selector: '[viShowIfHasEdgeExtensions]'\n})\nexport class ShowIfHasEdgeExtensionsDirective implements OnInit {\n private hasEdgeExtensions = false;\n\n constructor(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private templateRef: TemplateRef,\n private viewContainer: ViewContainerRef,\n private cdr: ChangeDetectorRef,\n private edgeExtensionsStore: EdgeExtensionsStoreService\n ) {\n this.edgeExtensionsStore.hasEdgeExtensions$.subscribe(hasEdgeExtensions => {\n this.hasEdgeExtensions = hasEdgeExtensions;\n this.updateRef();\n });\n }\n\n public ngOnInit(): void {}\n\n private updateRef(): void {\n if (this.hasEdgeExtensions) {\n this.viewContainer.createEmbeddedView(this.templateRef);\n this.cdr.markForCheck();\n } else {\n this.viewContainer.clear();\n }\n }\n}\n","import { Directive, HostListener, Input } from '@angular/core';\n\n@Directive({\n selector: '[appStopPropagation]'\n})\nexport class StopPropagationDirective {\n @Input() public stopPropagationActive = true;\n\n @HostListener('click', ['$event'])\n @HostListener('mouseup', ['$event'])\n @HostListener('keyup', ['$event'])\n public onStopPropagation(event) {\n if (!this.stopPropagationActive) {\n return;\n }\n event.stopPropagation();\n event.preventDefault();\n }\n}\n","import { Directive, OnInit, ElementRef, Renderer2, Input, OnDestroy, Output, EventEmitter } from '@angular/core';\n\nimport { TranslateHelperService } from '@common/modules/translation/services/translate-helper.service';\n\ninterface ReadMoreLinkStyle {\n fontSize: string;\n fontWeight: string;\n lineHeight: string;\n color: string;\n}\n\n@Directive({\n selector: '[viTextReadMore]'\n})\nexport class TextReadMoreDirective implements OnInit, OnDestroy {\n // Full text to represent\n @Input() public text: string;\n // When text has more characters than maxChars, cut the text and add '... read more'\n @Input() public maxChars: number;\n\n // read more link styling\n @Input() public linkStyling?: ReadMoreLinkStyle = {\n fontSize: '14px',\n fontWeight: '400',\n lineHeight: '20px',\n color: 'var(--primary)'\n };\n\n @Output() readMoreClicked = new EventEmitter();\n\n private readMoreText?: string;\n private readMoreLink: HTMLLinkElement;\n\n constructor(private el: ElementRef, private renderer: Renderer2, private translate: TranslateHelperService) {\n this.readMoreText = this.translate.instant('ReadMore');\n }\n\n public ngOnInit(): void {\n // add all text if it has not characters more than maxChars\n if (this.text.length <= this.maxChars) {\n this.el.nativeElement.innerText = this.text;\n return;\n }\n\n // Cut the text according to maxChars and for adding '... read more'\n const ellipsis = '... ';\n const truncatedLength = this.maxChars - ellipsis.length - this.readMoreText.length;\n const truncate = this.text.substring(0, truncatedLength);\n\n // create read more link\n this.setReadMoreLink();\n\n // create the element with the cut text and '... read more'\n const truncateElement = this.renderer.createElement('span');\n truncateElement.innerText = truncate + ellipsis;\n this.renderer.appendChild(truncateElement, this.readMoreLink);\n\n // add the element to the DOM\n this.renderer.appendChild(this.el.nativeElement, truncateElement);\n }\n\n public ngOnDestroy(): void {\n if (!this.readMoreLink) {\n return;\n }\n this.readMoreLink.removeEventListener('mouseup', this.showFullText);\n this.readMoreLink.removeEventListener('keyup.enter', this.showFullText);\n this.readMoreLink.removeEventListener('keyup.Space', this.showFullText);\n }\n\n private setReadMoreLink() {\n // create read more link element\n this.readMoreLink = this.renderer.createElement('a');\n this.readMoreLink.setAttribute('href', 'javascript:void(0);');\n this.readMoreLink.innerText = this.readMoreText;\n\n // add event listeners (all listeners necessary for accessibility)\n this.readMoreLink.addEventListener('mouseup', this.showFullText.bind(this));\n this.readMoreLink.addEventListener('keyup.enter', this.showFullText.bind(this));\n this.readMoreLink.addEventListener('keyup.Space', this.showFullText.bind(this));\n\n // add styling to the link\n const css = `font-weight: ${this.linkStyling.fontWeight};\n font-size: ${this.linkStyling.fontSize};\n line-height: ${this.linkStyling.lineHeight};\n color: ${this.linkStyling.color}`;\n this.readMoreLink.setAttribute('style', css);\n }\n\n private showFullText(): void {\n this.el.nativeElement.innerText = this.text;\n this.readMoreClicked.emit();\n }\n}\n","export enum EnvironmentNames {\n Localhost = 'localhost',\n LocalhostBE = 'localhost-be',\n Dev = 'dev',\n Staging = 'staging',\n Prod = 'prod',\n Fairfax = 'fairfax'\n}\n","import { UIInviteActionType } from 'src/apps/web/src/invite';\nimport { UICameraActionType } from 'src/apps/web/src/edge/live/components/live-camera-management/components/live-camera-item/interfaces';\n\nimport { UIActionType } from '../insights/interfaces';\nimport { UIEditorActionType } from '../editor/interfaces';\nimport { UISearchActionType } from './components/searchbar/interfaces';\nimport { UIHeaderActionType } from '../../../apps/web/src/header/components/header/interfaces';\nimport { UIIndexingActionType } from '../../../apps/web/src/indexing/components/shared/settings/interfaces';\nimport { UIHelpActionType } from '../../../apps/web/src/sidebar/components/help/interfaces';\nimport { UIMediaActionType } from '../../../apps/web/src/media/pages/media/interfaces';\nimport { UIShellActionType } from '../../../apps/web/src/shell/interfaces';\nimport { UINotificationsActionType } from '../../../apps/web/src/sidebar/interfaces';\nimport { ActionButtonType } from './components/action-button/interfaces';\nimport { UIGalleryActionType, UIGalleryTabsActionType } from '../../../apps/web/src/gallery/core/models/gallery';\nimport { UILanguageModelActionType, UILanguageModelFileActionType } from '../../../apps/web/src/customization/interfaces';\nimport { UIGalleryMatchActionType } from '../../../apps/web/src/gallery/components/search-view/gallery-search-matches/interfaces';\nimport { UIDownloadActionType } from './components/download-menu/interfaces';\nimport { UserType } from '../auth/interfaces';\n\nexport interface IAction {\n /**\n * Is this action is the main action, relevant in case of the action with actionList.\n */\n isButtonAction?: boolean;\n /**\n * the key is used for localization.\n */\n key?: string;\n /**\n * the left icon of the action. used for button / drop down\n */\n icon?: string;\n /**\n * The text that is rendered - should be translated.\n */\n title?: string;\n /**\n * Determine the [title] on the button. need to be localized.\n */\n titleAttribute?: string;\n /**\n * if the action is selected or not. used for preserve the select state.\n */\n selected?: boolean;\n /**\n * type of the action\n */\n type?: UIActionTypeOptions;\n /**\n * the value, can be anything ,depends of the context for example en-US or 'save' or 1/0.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n value: any;\n /**\n * is the action is selectable and preserved its state, for example 'edit' mode.\n */\n selectable?: boolean;\n /**\n * the id of the action.\n */\n id: string;\n /**\n * If the action has drop down or not, used for accessibility\n */\n hasDrop?: boolean;\n /**\n * If the action has press mode or not, used for accessibility\n */\n hasPressedMode?: boolean;\n /**\n * If the action is reflects at the drop down selection after selecting. example privacy drop\n */\n applyValue?: boolean;\n /**\n * Is action disabled\n */\n isDisabled?: boolean;\n /**\n * Action element style\n */\n style?: string;\n /**\n * Is action link\n */\n isLink?: boolean;\n /**\n * Group by option - the group name.\n */\n group?: string;\n /**\n * Group by option - the group name key for translation.\n */\n groupKey?: string;\n /**\n * Button Type\n */\n buttonType?: ActionButtonType;\n /**\n * href for link\n */\n href?: string;\n /**\n * Is separated. It is for action in menu\n */\n separated?: boolean;\n /**\n * placeholder\n */\n placeholder?: string;\n /**\n * Is action is in preview mode\n */\n preview?: boolean;\n /**\n * In case the UI value is different than the API value\n */\n label?: string;\n}\n\nexport interface IGroupAction extends IAction {\n isGroup: boolean;\n}\n\nexport type UIActionTypeOptions =\n | UIActionType\n | UIEditorActionType\n | UIHeaderActionType\n | UIIndexingActionType\n | UIHelpActionType\n | UIMediaActionType\n | UISearchActionType\n | UIGalleryActionType\n | UILanguageModelActionType\n | UILanguageModelFileActionType\n | UIGalleryTabsActionType\n | UIShellActionType\n | UIInviteActionType\n | UIGalleryMatchActionType\n | UIDownloadActionType\n | UINotificationsActionType\n | UICameraActionType;\n\nexport interface IVIBaseCompliant {\n setAccessibility(): void;\n setLocalization(): void;\n}\n\nexport interface IBrowserDetails {\n browser: string;\n version: number;\n isApproved: boolean;\n os: string;\n}\n\nexport enum VideoModerationState {\n OK = 'OK',\n EXPLICIT = 'Explicit',\n REMOVED = 'Removed',\n NONE = 'None'\n}\n\nexport enum StreamingPreset {\n SingleBitrate = 'SingleBitrate',\n AdaptiveBitrate = 'AdaptiveBitrate',\n NoStreaming = 'NoStreaming',\n Default = 'Default'\n}\n\nexport enum VideoReviewState {\n NONE = 'None',\n IN_PROGRESS = 'InProgress',\n COMPLETED = 'Completed'\n}\n\nexport enum ActionButtonResponsiveStatesClass {\n EDITOR_RESPONSIVE = 'editor-responsive',\n INSIGHTS_RESPONSIVE = 'insights-responsive'\n}\n\nexport enum ActionableInputResponsiveStatesClass {\n EDITOR_RESPONSIVE_INPUT = 'editor-responsive-input'\n}\n\nexport interface IComponentChange {\n previousValue: T[P];\n currentValue: T[P];\n firstChange: boolean;\n}\n\nexport type ComponentChanges = {\n [P in keyof T]?: IComponentChange;\n};\n\nexport interface IThumbStyle {\n style: IStyle;\n url: string;\n position: number;\n}\n\nexport interface IStyle {\n backgroundImage: string;\n backgroundPosition: string;\n}\n\nexport interface IArrToString {\n name: string;\n}\n\nexport enum Direction {\n LEFT = 'left',\n RIGHT = 'right'\n}\n\nexport enum StorageCacheKey {\n LoginHint = 'VILoginHint',\n Locale = 'vi.locale',\n LastAccountType = 'vi.accountType',\n LastAccountId = 'vi.lastAccount',\n LastArmSubscriptionId = 'vi.lastArmSubscriptionId',\n LastArmResourceGroup = 'vi.lastArmResourceGroup',\n LastArmAccountName = 'vi.lastArmAccountName',\n LastArmAccount = 'vi.lastArmAccount',\n LastExtension = 'vi.lastExtension',\n ShowEdgeExtensions = 'vi.showEdgeExtensions',\n LastTimeShowSurvey = 'vi.lastTimeShowSurvey',\n DoNotShowFaceGatePopup = 'vi.DoNotShowFaceGatePopup',\n ShowFaceGatePopupCounter = 'vi.ShowFaceGatePopupCounter',\n DoNotShowSurvey = 'vi.doNotShowSurvey-12-22',\n NotificationsLastSeenDate = 'vi.notificationsLastSeenDate',\n NotificationsRegionalLastSeenDate = 'vi.notificationsRegionalLastSeenDate',\n NotificationsETag = 'vi.notificationsETag',\n NotificationsIds = 'vi.notificationsIds',\n NotificationsToastedIds = 'vi.notificationsToastedIds',\n NotificationsRegionalIds = 'vi.notificationsRegionalIds',\n NotificationsRegionalToastedIds = 'vi.notificationsRegionalToastedIds',\n NotificationsAccountTypeIds = 'vi.notificationsAccountTypeIds',\n NotificationsAccountTypeToastedIds = 'vi.notificationsAccountTypeToastedIds',\n LastTenantId = 'vi.lastTenantId',\n LanguageId = 'vi.languageId'\n}\n\nexport type DeepPartial = {\n [propertyKey in keyof T]?: DeepPartial;\n};\n\nexport enum IndexState {\n Uploaded = 'Uploaded',\n Processing = 'Processing',\n Processed = 'Processed',\n Failed = 'Failed',\n Quarantined = 'Quarantined',\n Deleting = 'Deleting'\n}\n\nexport enum TextDirection {\n RTL = 'rtl',\n LTR = 'ltr'\n}\n\nexport interface ElementSize {\n height: number;\n width: number;\n}\n\nexport enum AccountPermission {\n OWNER = 'Owner',\n CONTRIBUTOR = 'Contributor',\n READER = 'Reader',\n MY_ACCESS_MANAGER = 'MyAccessManager',\n RESTRICTED_VIEWER = 'RestrictedViewer'\n}\n\nexport interface AccountAccessTokenClaims {\n Permission: AccountPermission;\n AccountId?: string;\n ExternalUserId?: string;\n UserType?: UserType;\n}\n\nexport enum TranslationJobState {\n VIDEO_TRANSLATION_FAILED = 'VIDEO_TRANSLATION_FAILED',\n TRANSLATION_NOT_FOUND = 'TRANSLATION_NOT_FOUND',\n VIDEO_PROCESSING = 'VIDEO_PROCESSING'\n}\n\nexport interface IUIAccountRoleAssignment extends Microsoft.VideoIndexer.Contracts.AccountRoleAssignment {\n removing?: boolean;\n selectedRoleAction?: IAction;\n}\n","// Upload\nexport const UPLOAD_LIMITATION_LINK = `https://aka.ms/vi-uploading-limitations`;\nexport const UPLOAD_FORMAT_LINK = `https://aka.ms/vi-supported-formats-codecs`;\nexport const MULTI_LANGUAGE_LINK = 'https://aka.ms/vi-multi-language-identification';\nexport const AZURE_US_PORTAL_LINK = 'https://aka.ms/vi-api-portal-us';\nexport const UPLOAD_INDEXING_PRESET = 'https://aka.ms/vi-indexing-preset';\nexport const RAI_LEARN_MORE = 'https://aka.ms/vi-sensitive-ai';\nexport const LOGO_API_LINK = 'https://aka.ms/vi-textual-logo';\n\n// Media\nexport const MEDIA_STREAMING_PRESET = `https://aka.ms/vi-indexing-streaming-preset`;\n\n// Create new account\nexport const VIDEO_INDEXER_PRICING_LINK = 'https://aka.ms/vi-pricing';\n\nexport const GET_STARTED_WITH_AZURE_FREE = 'https://azure.microsoft.com/en-us/free/';\n\nexport const CONNECT_TO_AZURE_DOCUMENTATION = 'https://aka.ms/vi-connect-to-azure';\n\nexport const VIDEO_INDEXER_ACCOUNT_TYPES = 'https://aka.ms/vi-account-update';\n\n// Settings\nexport const REPAIR_ACCOUNT_LINK = `https://aka.ms/vi-repair-account`;\n\nexport const INCREASE_RESERVED_UNITS = 'https://aka.ms/vi-increase-reserved-units';\n\n// General\nexport const ONLINE_SERVICES_TERMS = 'https://aka.ms/vi-online-services-terms';\n\nexport const VI_DEV_SUPPORT = 'https://aka.ms/visupport';\n\nexport const VI_SURVEY = 'https://aka.ms/vi-portal-survey';\n\nexport const VI_SWITCH_DIRECTORY_LEARN_MORE = 'https://aka.ms/vi-switch-directory-learn-more';\n\n// Customization\nexport const CUSTOMIZATION_PEOPLE_LINK = 'https://aka.ms/vi-customize-person-model-with-api';\n\nexport const LANGUAGE_CUSTOMIZATION_DOCUMENTATION = 'https://aka.ms/language-customisation';\n\nexport const CUSTOMIZATION_VISION_LINK = 'https://aka.ms/custom-vision-link';\n\nexport const CUSTOMIZATION_VISION_FF_LINK = 'https://aka.ms/custom-vision-us-link';\n\nexport const CUSTOMIZE_PEOPLE_MODEL = 'https://aka.ms/vi-customize-person-model-overview';\n\nexport const SPEECH_DATASET_PLAIN_TEXT = 'https://aka.ms/vi-speech-dataset-plain-text';\n\nexport const SPEECH_DATASET_PRONUNCIATION = 'https://aka.ms/vi-speech-dataset-pronunciation';\n\n// US Government Onboarding\nexport const US_GOV_ONBOARDING = 'https://aka.ms/vi-usgov';\n\n// Login\nexport const LINKEDIN_FACEBOOK_DEPRECATION_NOTE_LINK = 'https://aka.ms/vi-linkedIn-facebook-deprecation-note';\n\n// Privacy statement - IMPORTANT - we were asked by the privacy team to not use aka.ms link for the privacy statement (don't ask me why)\nexport const PRIVACY_STATEMENT = 'https://go.microsoft.com/fwlink/?LinkId=521839';\n\n// Service agreement\nexport const PAID_SERVICE_AGREEMENT = 'https://aka.ms/vi-paid-sa';\nexport const TRIAL_SERVICE_AGREEMENT = 'https://aka.ms/vi-tou';\n\n// PORTAL\nexport const US_PORTAL = 'https://portal.azure.us';\nexport const PORTAL = 'https://portal.azure.com';\n\n// Support\nexport const FF_SUPPORT = 'https://aka.ms/ff-support';\nexport const PAID_SUPPORT = 'https://aka.ms/visupport-azure';\nexport const TRIAL_SUPPORT = 'https://aka.ms/portal-stack-overflow';\n\n// Video indexer\nexport const VIDEO_INDEXER = 'https://aka.ms/vi-portal-link';\nexport const VIDEO_INDEXER_FF = 'https://aka.ms/vi-portal-link-us';\nexport const VIDEO_INDEXER_LANDING_PAGE = 'https://aka.ms/vi-landing-page';\n\n// Insights\nexport const VIDEO_INSIGHTS_OVERVIEW = 'https://aka.ms/vi-insights-overview';\n\n// Face Recognition Form\nexport const FACE_RECOGNITION_FORM = 'https://aka.ms/facerecognition';\n\n// Face Gate AVAM doc\nexport const FACE_GATE_DOC = 'https://aka.ms/vi-limited-faces';\n\n// Bing search\nexport const BING_SEARCH = 'https://www.bing.com/search';\n\n// Face Gate popup\nexport const VI_LIMITED_ACCESS_FEATURES_DOC = 'https://aka.ms/vi-limited-access-features';\nexport const AZURE_LEGAL_TERMS = 'https://aka.ms/vi-azure-legal-terms';\nexport const CUSTOMER_SOLUTION = 'https://aka.ms/vi-customer-solution';\nexport const lIMITED_ACCESS_SERVICES_TERMS = 'https://aka.ms/vi-limited-access-services';\nexport const RESTRICTION_ON_US_POLICE = 'https://aka.ms/vi-restrictions-us-police';\nexport const ONLINE_SERVICES_DPA = 'https://aka.ms/vi-online-services-dpa';\nexport const REPORT_SENSITIVE_USE = 'https://aka.ms/vi-report-sensitive-use';\n\n// AMS retirement\nexport const AMS_RETIREMENT_LINK = 'https://aka.ms/ams-retirement';\nexport const AMS_RETIREMENT_ACCOUNT_UPGRADE = 'https://aka.ms/vi-upgrade-arm';\nexport const AMS_RETIREMENT_ACCOUNT_UPDATE = 'https://aka.ms/vi-account-update-guide';\n\n// Permissions\nexport const MANAGE_ACCOUNT_ACCESS = 'https://aka.ms/vi-manage-account-access';\n\n// Textual summary\nexport const TEXTUAL_SUMMARY_DEPLOYMENTS = 'https://aka.ms/VI_AOAI_supported_models';\nexport const TEXTUAL_SUMMARY_FLAVORS = 'https://aka.ms/VI_Textual_Summary_Flavors';\nexport const TEXTUAL_SUMMARY_FILTERED_CONTENT = 'https://aka.ms/VI_AOAI_content_filters';\nexport const TEXTUAL_SUMMARY_KEYFRAMES = 'https://aka.ms/VI_KeyFramesSummary';\nexport const TEXTUAL_SUMMARY_SURVEY_LIKE = 'https://aka.ms/VI_SummarizationSurvey';\nexport const TEXTUAL_SUMMARY_SURVEY_DISLIKE = 'https://aka.ms/VI_dislike_feedback';\nexport const TEXTUAL_SUMMARY_KEYFRAMES_GPU = 'https://aka.ms/vi_gpu_specification';\n\n// live\nexport const LIVE_MODEL_CATALOG_LEARN_MORE = 'https://aka.ms/vi-live-available-models';\n","import { HttpClient } from '@angular/common/http';\nimport { Pipe, PipeTransform } from '@angular/core';\n\nimport { Observable, throwError } from 'rxjs';\nimport { catchError, switchMap } from 'rxjs/operators';\n\nimport { AuthService } from '@common/modules/auth/services/auth.service';\nimport { LoggerService } from '@common/modules/core/services/logger/logger.service';\nimport { TrackService } from '@common/modules/core/services/track';\n\n@Pipe({ name: 'imageSrc' })\nexport class ImageSrcPipe implements PipeTransform {\n constructor(private httpClient: HttpClient, private authService: AuthService, private logger: LoggerService, private track: TrackService) {}\n\n public transform(url: string, accountId: string): Observable {\n return this.loadImage(url, accountId);\n }\n\n private loadImage(url: string, accountId: string): Observable {\n if (!url || url.includes('/thumbnails/null')) {\n return null;\n }\n const accessToken = this.authService.getAccessToken(null, accountId);\n return this.httpClient\n .get(url, {\n responseType: 'blob',\n headers: {\n Authorization: `Bearer ${accessToken}`\n }\n })\n .pipe(\n switchMap(imageObj => {\n return this.getImageUrl(imageObj);\n }),\n catchError(err => {\n this.logger.error('[Image pipe] throw an error', err);\n this.track.trackError(err);\n // eslint-disable-next-line deprecation/deprecation\n return throwError(err);\n })\n );\n }\n\n private getImageUrl(imageObj: Blob): Observable {\n return new Observable(observer => {\n const reader = new FileReader();\n reader.readAsDataURL(imageObj);\n reader.onloadend = () => {\n observer.next(reader.result as string);\n };\n reader.onerror = err => {\n observer.error(err);\n };\n });\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n/**\n * @description\n * Prettify a JSON object so it can be rendered in HTML while preserving spaces\n */\n@Pipe({\n name: 'jsonPrettify'\n})\nexport class JsonPrettifyPipe implements PipeTransform {\n transform(json: object): string {\n if (!json) {\n return null;\n }\n\n return JSON.stringify(json, undefined, 4).replace(/ /g, ' ').replace(/\\n/g, '
');\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { capitalizeWithNumericPrefix } from '../../utils/string';\n\n@Pipe({ name: 'numericPrefixTitleCase' })\nexport class NumericPrefixTitleCasePipe implements PipeTransform {\n public transform(input: string): string {\n if (!input) {\n return '';\n } else {\n return capitalizeWithNumericPrefix(input);\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'titleCase' })\nexport class TitleCasePipe implements PipeTransform {\n public transform(input: string): string {\n if (!input) {\n return '';\n } else {\n return input.replace(/\\b\\w/g, first => first.toLocaleUpperCase());\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpErrorResponse, HttpStatusCode } from '@angular/common/http';\n\nimport { EMPTY, Observable, first, from, fromEvent, mergeWith, throwError, timer, tap } from 'rxjs';\nimport { catchError, debounceTime, distinctUntilChanged, filter, map, switchMap, timeout } from 'rxjs/operators';\n\nimport { cloneDeep, find, orderBy, sortBy } from 'lodash-es';\n\nimport { EventCategory, TrackService } from '@common/modules/core/services/track';\nimport { FeatureSwitchService } from '@common/modules/core/services/feature-switch/feature-switch.service';\nimport { FeatureSwitch } from '@common/modules/core/services/interfaces';\nimport { IUIInsightJsonKey } from '@common/modules/insights-common/interfaces';\nimport { UtilsService } from '@common/modules/shared/services/utils.service';\n\nimport { ILanguage } from '../../../../apps/web/src/core/interfaces';\nimport {\n ICaptionsRequestParams,\n IGetBoundingBoxPageTimeRequestParams,\n IGetIndexRequestParams,\n IGetObservedPeoplePageTimeRequestParams,\n IGetStreamingUrlRequestParams,\n IRenderFileDownloadUrl,\n IRequestParam,\n UrlStreamingFormat\n} from '../../api/interfaces';\nimport { ApiService } from '../../api/services/api.service';\nimport { AuthService } from '../../auth/services/auth.service';\nimport { IError } from '../../core/services/toast/interfaces';\nimport { InsightsCommonDataService } from '../../insights-common/insights-common-data.service';\nimport { InsightsCommonService } from '../../insights-common/insights-common.service';\nimport { IUIKeyframe } from '../../insights/components/keyframe/interfaces';\nimport { UIActionType } from '../../insights/interfaces';\nimport { InsightsService } from '../../insights/services/insights.service';\nimport { formatToStandardTime, getSeconds } from '../../utils/time';\nimport { IAction, IThumbStyle, TranslationJobState } from '../interfaces';\nimport { videoSearchOptions } from './videoSearchActions';\n\nimport PlaylistContractV2 = Microsoft.VideoIndexer.Contracts.PlaylistContractV2;\nimport LanguageV2 = Microsoft.VideoIndexer.Contracts.LanguageV2;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DataService {\n public customImagesLocation: string;\n private keyframesByVideoId: Map = new Map();\n private readonly RESPONSIVE_WINDOW_WIDTH = 768;\n private readonly MIN_SUPPORT_RESPONSIVE_WIDTH = 320;\n private readonly TRANSLATION_JOB_POLLING_INTERVAL = 15000; // 15sec\n private readonly TRANSLATION_JOB_POLLING_TIMEOUT = 600000; // 10min\n constructor(\n private authService: AuthService,\n private apiService: ApiService,\n private insightsCommonDataService: InsightsCommonDataService,\n private commonInsights: InsightsCommonService,\n private insightsService: InsightsService,\n private featureSwitchService: FeatureSwitchService,\n private utilsService: UtilsService,\n private trackService: TrackService\n ) {}\n\n public getVideoTestIndex(accountId: string, videoId: string) {\n return this.apiService.Account.Video.getVideoTestIndex();\n }\n\n public getVideoIndex(\n accountId: string,\n videoId: string,\n language: Microsoft.VideoIndexer.Contracts.LanguageV2 = 'en-US',\n customIndexLocation?: string,\n includeStreamingUrls?: boolean,\n allowEdit?: boolean,\n includedInsights?: IUIInsightJsonKey[],\n hasSelectedEdgeExtension: boolean = false\n ): Observable {\n if (customIndexLocation) {\n return this.apiService.Account.Video.getCustomVideoIndex(customIndexLocation);\n }\n\n if (accountId && videoId) {\n let params: IGetIndexRequestParams = {};\n if (language) {\n params = { language: language };\n }\n if (allowEdit) {\n params.allowEdit = true;\n }\n if (includedInsights) {\n params.includedInsights = includedInsights.toString();\n }\n params.includeStreamingUrls = includeStreamingUrls ? includeStreamingUrls : false;\n params.includeSummarizedInsights = !this.featureSwitchService.featureSwitch(FeatureSwitch.DisableSummarizedInsights);\n if (hasSelectedEdgeExtension) {\n return this.getVideoIndexEdgeExtension(accountId, videoId, params);\n }\n return this.apiService.Account.Video.getVideoIndex(accountId, videoId, params);\n }\n\n return this.apiService.Account.Video.getVideoTestIndex();\n }\n\n public getVideoIndexEdgeExtension(\n accountId: string,\n videoId: string,\n params: IGetIndexRequestParams\n ): Observable {\n return this.apiService.Account.Video.getVideoIndex(accountId, videoId, params).pipe(\n catchError((error: HttpErrorResponse) => {\n if (error?.status === HttpStatusCode.NotFound) {\n const language: LanguageV2 = params.language as LanguageV2;\n switch (error?.error?.ErrorType) {\n case TranslationJobState.TRANSLATION_NOT_FOUND:\n this.trackService.track('edge.translate_insights_job.not_found', { category: EventCategory.INSIGHTS, data: { language } });\n return this.apiService.EdgeExtensions.translate(accountId, videoId, language).pipe(\n switchMap(() => {\n this.trackService.track('edge.translate_insights_job.started', { category: EventCategory.INSIGHTS, data: { language } });\n return this.pollUntilTranslationComplete(accountId, videoId, params);\n }),\n catchError(translateError => {\n this.trackService.track('edge.translate_insights_job.failed', {\n category: EventCategory.INSIGHTS,\n data: { language, error: error?.error }\n });\n return throwError(() => translateError);\n })\n );\n case TranslationJobState.VIDEO_PROCESSING:\n this.trackService.track('edge.translate_insights_job.processing', { category: EventCategory.INSIGHTS, data: { language } });\n return this.pollUntilTranslationComplete(accountId, videoId, params);\n case TranslationJobState.VIDEO_TRANSLATION_FAILED:\n return throwError(() => error);\n }\n }\n // Failed to get video index for other reasons\n return throwError(() => error);\n })\n );\n }\n\n public getVideoStreamingUrl(\n accountId: string,\n videoId: string,\n useProxy?: boolean,\n urlFormat?: UrlStreamingFormat,\n tokenLifetimeInMinutes?: string,\n isBase = true\n ) {\n const params: IGetStreamingUrlRequestParams = {\n isBase\n };\n if (useProxy) {\n params.useProxy = useProxy;\n }\n if (urlFormat) {\n params.urlFormat = urlFormat;\n }\n if (tokenLifetimeInMinutes) {\n params.tokenLifetimeInMinutes = tokenLifetimeInMinutes;\n }\n\n return this.apiService.Account.Video.getVideoStreamingURL(accountId, videoId, params);\n }\n\n public getObservedPeoplePageByTime(\n accountId: string,\n videoId: string,\n time: number\n ): Observable {\n const params: IGetObservedPeoplePageTimeRequestParams = {\n time: time\n };\n\n return this.apiService.Account.Video.getObservedPeoplePageByTime(accountId, videoId, params);\n }\n\n public getObservedPeoplePageByID(\n accountId: string,\n videoId: string,\n pageID: number\n ): Observable {\n return this.apiService.Account.Video.getObservedPeoplePageByID(accountId, videoId, pageID);\n }\n\n public getFaceBoundingBoxPageByTime(\n accountId: string,\n videoId: string,\n time: number\n ): Observable {\n const params: IGetBoundingBoxPageTimeRequestParams = {\n time: time\n };\n\n return this.apiService.Account.Video.getFacesPageByTime(accountId, videoId, params);\n }\n\n public getFaceBoundingBoxPageByID(\n accountId: string,\n videoId: string,\n pageID: number\n ): Observable {\n return this.apiService.Account.Video.getFacesPageByID(accountId, videoId, pageID);\n }\n\n public getDetectedObjectsBoundingBoxPageByTime(\n accountId: string,\n videoId: string,\n time: number,\n includedObjectTypes: IRequestParam[]\n ): Observable {\n const params: IGetBoundingBoxPageTimeRequestParams = {\n time: time\n };\n\n return this.apiService.Account.Video.getDetectedObjectsPageByTime(accountId, videoId, params, null, includedObjectTypes);\n }\n\n public getDetectedObjectsBoundingBoxPageByID(\n accountId: string,\n videoId: string,\n pageID: number\n ): Observable {\n return this.apiService.Account.Video.getDetectedObjectsPageByID(accountId, videoId, pageID);\n }\n\n public getProjectIndex(\n accountId: string,\n videoId: string,\n language: Microsoft.VideoIndexer.Contracts.LanguageV2 = 'en-US'\n ): Observable {\n const params = {\n allowEdit: true,\n includeSummarizedInsights: !this.featureSwitchService.featureSwitch(FeatureSwitch.DisableSummarizedInsights)\n };\n if (language) {\n params['language'] = language;\n }\n return this.apiService.Account.Video.getProjectIndex(accountId, videoId, params);\n }\n\n public getLanguages(isMultiLanguage = false, propertyFilter: string = ''): IAction[] {\n let languages: IAction[] = [];\n const supportedLangs = propertyFilter ? this.getSupportedLanguagesFilterBy(propertyFilter) : this.commonInsights.getSupportedLanguages();\n supportedLangs.forEach(lang => {\n // Create lang\n const uiLanguage: IAction = {\n title: lang.name,\n selected: false,\n type: UIActionType.CHANGE_LANGUAGE,\n value: lang.key,\n icon: '',\n selectable: true,\n id: lang.name\n };\n // Add multi language only if it is a multi language video, and push it first\n if (lang.name === 'Multi') {\n if (isMultiLanguage) {\n languages.unshift(uiLanguage);\n }\n } else {\n languages.push(uiLanguage);\n }\n });\n // Sort aZ\n languages = orderBy(languages, [\n item => {\n return !(item.id === 'Multi');\n },\n 'title'\n ]);\n return languages;\n }\n\n public getSupportedLanguagesFilterBy(propertyFilter: string = 'sourceLanguage') {\n return this.commonInsights.getSupportedLanguages().filter((lang: ILanguage) => {\n return lang[propertyFilter];\n });\n }\n\n public getLanguageByKey(languageKey) {\n const languages = this.commonInsights.getSupportedLanguages();\n let languageObject = find(languages, language => {\n return languageKey === null ? language.key === '' : language.key.toLowerCase() === languageKey.toLowerCase();\n });\n\n if (!languageObject) {\n // if language is not supported get English\n languageObject = find(languages, language => {\n return 'en-us' === language.key.toLowerCase();\n });\n }\n\n return languageObject;\n }\n\n public getThumbnailUrl(accountId: string, videoId: string, thumbnailId: string): string {\n return this.apiService.Account.Video.getThumbnailUrl(accountId, videoId, thumbnailId);\n }\n\n public getThumbnail(video: Microsoft.VideoIndexer.Contracts.PlaylistContractV2, thumbnailId: string) {\n return this.apiService.Account.Video.getThumbnail(video.accountId, video.id, thumbnailId);\n }\n\n public getAccessToken(accountId: string, videoId: string): string {\n return this.authService.getAccessToken(videoId, accountId);\n }\n\n public setPrivacyMode(privacyMode: Microsoft.VideoIndexer.Contracts.PrivacyMode) {\n this.insightsCommonDataService.getVideoIndex().privacyMode = privacyMode;\n }\n\n public getSubtitlesUrl(accountId: string, videoId: string, params: ICaptionsRequestParams, isBase: boolean): string {\n let accessToken = this.authService.getUserAccessTokenOrEmptyString(videoId, accountId);\n\n // Fallback - if access token is empty try to get account token\n if (!accessToken) {\n accessToken = this.authService.getUserAccessTokenOrEmptyString(null, accountId);\n }\n\n params.accessToken = accessToken;\n\n if (isBase) {\n return this.apiService.Account.Video.getCaptionsUrl(accountId, videoId, params);\n }\n\n return this.apiService.Account.Project.getCaptionsUrl(accountId, videoId, params);\n }\n\n public getProjectRenderedFileDownloadUrl(accountId: string, projectId: string): Observable {\n return this.apiService.Account.Video.getProjectRenderedFileDownloadUrl(accountId, projectId);\n }\n\n public checkRenderProjectStatus(\n accountId: string,\n projectId: string\n ): Observable<\n Microsoft.VideoIndexer.Contracts.AsyncOperationContract\n > {\n return this.apiService.Account.Video.checkRenderProjectStatus(accountId, projectId, null, { allowEdit: true });\n }\n\n public getVideoSearchOptions(): IAction[] {\n return cloneDeep(videoSearchOptions);\n }\n\n public onResizeEventStream(minimum = 320, debounce = 600) {\n if (!window) {\n return;\n }\n const source = fromEvent(window, 'resize');\n return source\n .pipe(map(val => val.target['innerWidth']))\n .pipe(filter(val => val >= minimum))\n .pipe(debounceTime(debounce))\n .pipe(distinctUntilChanged());\n }\n\n public getKeyframeArray(\n index: Microsoft.VideoIndexer.Contracts.PlaylistContractV2,\n spriteSize: number,\n smallSize: number,\n keyframeTitle = ''\n ): IUIKeyframe[] {\n let shots: Microsoft.VideoIndexer.Contracts.Shot[];\n let keyframes: IUIKeyframe[] = [];\n\n // Sort keyframes by id for matching the sprite\n let currentIndex = 0;\n\n const videoID = index.id;\n // If keyframes array haven't initialize and it is the same video - take the old keyframes array\n if (!this.keyframesByVideoId.get(videoID)) {\n index.videos.forEach(video => {\n if (video.insights && video.insights.shots) {\n shots = video.insights.shots;\n\n // If current video has shots data\n if (shots) {\n shots.forEach(shot => {\n shot.keyFrames.forEach((kf, kfIndex) => {\n if (kf.instances) {\n kf.instances.forEach((kfi, kfiIndex) => {\n const keyframe = this.createUIKeyframe(\n kf,\n kfi,\n keyframeTitle,\n currentIndex,\n video.id,\n index.videos.length > 1 && index.summarizedInsights?.thumbnailId\n ? kfi.thumbnailId === index.summarizedInsights?.thumbnailId\n : kfi.thumbnailId === index.videos[0].thumbnailId\n );\n\n if (keyframe) {\n currentIndex++;\n keyframe.isFirstShotKeyframe = kfIndex === 0 && kfiIndex === 0;\n keyframes.push(keyframe);\n }\n });\n }\n });\n });\n }\n }\n });\n } else {\n keyframes = cloneDeep(this.keyframesByVideoId.get(videoID));\n }\n\n // Create thumb style\n keyframes = this.createThumbnailsWithStyle(index, spriteSize, smallSize, keyframes, keyframeTitle);\n this.keyframesByVideoId.set(videoID, cloneDeep(keyframes));\n return keyframes;\n }\n\n public getDefaultLanguage(videoIndex: Microsoft.VideoIndexer.Contracts.PlaylistContractV2): Microsoft.VideoIndexer.Contracts.LanguageV2 {\n if (videoIndex && videoIndex.videos && videoIndex.videos[0]) {\n // First, check if video is multi language\n if (videoIndex.videos[0].sourceLanguages && videoIndex.videos[0].sourceLanguages.length > 1) {\n return '';\n } else if (videoIndex.videos.length > 1) {\n // Video is a project - check if multi language project\n const firstLanguage = videoIndex.videos[0].sourceLanguage;\n for (let index = 1; index < videoIndex.videos.length; index++) {\n const video = videoIndex.videos[index];\n if (firstLanguage !== video.sourceLanguage) {\n return '';\n }\n }\n\n return firstLanguage;\n } else {\n // If video has null source object -> it's a multi language video\n if (videoIndex.videos[0].sourceLanguage) {\n return videoIndex.videos[0].sourceLanguage;\n }\n return '';\n }\n }\n\n return '';\n }\n\n public setVideoThumbnail(newThumbnail: string, indexID: string): void {\n const keyframes = this.keyframesByVideoId.get(indexID);\n if (keyframes) {\n keyframes.forEach(keyframe => {\n keyframe.isVideoThumbnail = keyframe.thumbnailId === newThumbnail ? true : false;\n });\n }\n }\n public get isResponsiveView$() {\n const isResponsiveWidth = width => width <= this.RESPONSIVE_WINDOW_WIDTH;\n const initViewResponsive$ = from(this.utilsService.getBodyRectAsync()).pipe(map(bodyRect => isResponsiveWidth(bodyRect.width)));\n const onResizeResponsive$ = this.onResizeEventStream(this.MIN_SUPPORT_RESPONSIVE_WIDTH).pipe(map(isResponsiveWidth));\n return initViewResponsive$.pipe(mergeWith(onResizeResponsive$));\n }\n\n private createThumbnailsWithStyle(\n index: Microsoft.VideoIndexer.Contracts.PlaylistContractV2,\n spriteSize: number,\n smallSize: number,\n keyframes: IUIKeyframe[],\n keyframeTitle = ''\n ): IUIKeyframe[] {\n // If it's a project, sort by video id + id\n const tempKeyframe = (index.videos.length > 1 ? sortBy(keyframes, ['videoId', 'id']) : keyframes).map((keyframe, keyframeIndex) => {\n keyframe.index = keyframeIndex;\n keyframe.title = `${keyframeTitle} : ${keyframe.startText} - ${keyframe.endText}`;\n const thumbStyle = this.getThumbStyleData(keyframe, smallSize, spriteSize, index);\n keyframe.style = thumbStyle.style;\n keyframe.url = thumbStyle.url;\n keyframe.xPosition = thumbStyle.position;\n keyframe.yPosition = 0;\n return keyframe;\n });\n\n keyframes = index.videos.length > 1 ? sortBy(tempKeyframe, ['originIndex']) : tempKeyframe;\n\n return keyframes;\n }\n\n private createUIKeyframe(\n kf: Microsoft.VideoIndexer.Contracts.KeyFrame,\n kfi: Microsoft.VideoIndexer.Contracts.KeyFrameElementInstance,\n keyframeTitle: string,\n currentIndex: number,\n videoId: string,\n isVideoThumbnail: boolean\n ): IUIKeyframe {\n // If there's no thumbnail id, probably an old video, return.\n if (!kfi.thumbnailId) {\n return null;\n }\n const formattedStart = formatToStandardTime(kfi.adjustedStart);\n const formattedEnd = formatToStandardTime(kfi.adjustedEnd);\n return {\n id: kf.id,\n title: `${keyframeTitle} : ${formattedStart} - ${formattedEnd}`,\n name: `${keyframeTitle} : ${formattedStart} - ${formattedEnd}`,\n thumbnailId: kfi.thumbnailId,\n index: currentIndex,\n originIndex: currentIndex,\n start: kfi.adjustedStart,\n startText: formattedStart,\n end: kfi.adjustedEnd,\n endText: formattedEnd,\n videoId: videoId,\n isVideoThumbnail: isVideoThumbnail,\n style: null,\n appearances: [\n {\n endSeconds: getSeconds(kfi.adjustedEnd),\n startSeconds: getSeconds(kfi.adjustedStart)\n }\n ]\n };\n }\n\n private getSpriteUrl(currentIndex: number, spriteSize: number, index: Microsoft.VideoIndexer.Contracts.PlaylistContractV2) {\n const page = Math.floor(currentIndex / spriteSize);\n return this.insightsService.getKeyframesSpriteUrl(index.accountId, index.id, page);\n }\n\n private getSpritePosition(index: number, smallSize: number, spriteSize: number) {\n const page = Math.floor(index / spriteSize);\n return (index % spriteSize) * smallSize;\n }\n\n private getThumbStyleData(\n kf: IUIKeyframe,\n smallSize: number,\n spriteSize: number,\n index: Microsoft.VideoIndexer.Contracts.PlaylistContractV2\n ): IThumbStyle {\n const position = this.getSpritePosition(kf.index, smallSize, spriteSize);\n // Return the x position of the image based on the sprite image index\n const spriteURL = this.getSpriteUrl(kf.index, spriteSize, index);\n return {\n style: {\n backgroundImage: `url(${spriteURL})`,\n backgroundPosition: `-${position}px 0`\n },\n url: spriteURL,\n position: position\n };\n }\n\n private pollUntilTranslationComplete(accountId: string, videoId: string, params: IGetIndexRequestParams): Observable {\n return timer(0, this.TRANSLATION_JOB_POLLING_INTERVAL).pipe(\n switchMap(() =>\n this.apiService.Account.Video.getVideoIndex(accountId, videoId, params).pipe(\n catchError((error: HttpErrorResponse) => {\n if (error.error?.ErrorType === TranslationJobState.VIDEO_PROCESSING) {\n // Retry until success or timeout\n return EMPTY;\n }\n this.trackService.track('edge.translate_insights_job.failed', {\n category: EventCategory.INSIGHTS,\n data: { language: params.language, error: error?.error }\n });\n return throwError(() => error);\n })\n )\n ),\n filter(response => response && !(response instanceof HttpErrorResponse)),\n tap(() => {\n this.trackService.track('edge.translate_insights_job.completed', { category: EventCategory.INSIGHTS, data: { language: params.language } });\n }),\n first(),\n timeout(this.TRANSLATION_JOB_POLLING_TIMEOUT)\n );\n }\n}\n","import { Injectable, Inject } from '@angular/core';\n\nimport { WINDOW } from '../../core/services/window.token';\nimport { StorageService } from './storage.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LocalStorageService extends StorageService {\n constructor(@Inject(WINDOW) protected window) {\n super(window);\n }\n\n public get storage(): Storage {\n return this.window.localStorage;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { AccountPermission } from '../interfaces';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PermissionService {\n constructor() {}\n\n public get accessLevels() {\n return {\n [AccountPermission.OWNER]: 0,\n [AccountPermission.CONTRIBUTOR]: 1,\n [AccountPermission.READER]: 1,\n [AccountPermission.RESTRICTED_VIEWER]: 2\n };\n }\n\n public isValidPermission(permission: AccountPermission) {\n return this.accessLevels.hasOwnProperty(permission);\n }\n\n public ensurePermission(permission: AccountPermission, requiredPermission: AccountPermission) {\n if (!this.isValidPermission(permission) || !this.isValidPermission(requiredPermission)) {\n return false;\n }\n return this.accessLevels[permission] <= this.accessLevels[requiredPermission];\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { getCookie } from '@common/modules/utils/cookie';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SessionHandlerService {\n private _sessionId = '';\n private _sessionFromCookie = false;\n\n private readonly SESSION_ID_KEY = 'ai_session';\n constructor() {\n // Default value is session id according to 1ds constraints\n this._sessionId = this.generateSessionId();\n }\n\n public get sessionId() {\n // Get session id from 1Ds cookie\n const sessionCookie = getCookie(this.SESSION_ID_KEY);\n if (sessionCookie) {\n this._sessionId = this.parseSessionId(sessionCookie);\n this._sessionFromCookie = true;\n }\n\n return this._sessionId;\n }\n\n public get sessionFromCookie() {\n return this._sessionFromCookie;\n }\n\n /**\n * Parse session id according to 1DS & Application insights template.\n */\n private parseSessionId(fullSessionId: string) {\n return fullSessionId.substring(0, fullSessionId.indexOf('|'));\n }\n\n /**\n * Generate a new session id compatible with 1DS constraints (either 5 or 22 characters long)\n */\n private generateSessionId() {\n return Math.floor((1 + Math.random()) * 0x10000).toString(16);\n }\n}\n","import { Injectable, Inject } from '@angular/core';\n\nimport { WINDOW } from '../../core/services/window.token';\nimport { StorageService } from './storage.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SessionStorageService extends StorageService {\n constructor(@Inject(WINDOW) protected window) {\n super(window);\n }\n\n public get storage(): Storage {\n return this.window.sessionStorage;\n }\n}\n","import { Injectable, Inject } from '@angular/core';\n\nimport { WINDOW } from '../../core/services/window.token';\n\n@Injectable({\n providedIn: 'root'\n})\nexport abstract class StorageService {\n private storageAvailable: boolean;\n\n constructor(@Inject(WINDOW) protected window) {\n this.setStorageAvailable();\n }\n\n public setItem(name: string, value: string) {\n if (!this.storageAvailable) {\n return;\n }\n this.storage.setItem(name, value);\n }\n\n public removeItem(name: string) {\n if (!this.storageAvailable) {\n return;\n }\n this.storage.removeItem(name);\n }\n\n public getItem(name: string): string {\n if (!this.storageAvailable) {\n return '';\n }\n return this.storage.getItem(name);\n }\n\n public clear() {\n this.storage.clear();\n }\n\n public abstract get storage();\n\n private setStorageAvailable() {\n const testStorage = `test-storage`;\n try {\n this.storage.setItem(testStorage, testStorage);\n this.storage.removeItem(testStorage);\n this.storageAvailable = true;\n } catch (e) {\n this.storageAvailable = false;\n }\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable } from '@angular/core';\n\nimport { locationsUS } from '../../api/services/locations-us';\nimport { ISubscriptions } from '../../insights/interfaces';\nimport { browserDetect, notSupportedBrowsers } from '../../utils/browserDetect';\nimport { IArrToString, IBrowserDetails } from '../interfaces';\nimport {\n FF_SUPPORT,\n PAID_SERVICE_AGREEMENT,\n PAID_SUPPORT,\n PORTAL,\n PRIVACY_STATEMENT,\n TRIAL_SERVICE_AGREEMENT,\n TRIAL_SUPPORT,\n US_PORTAL\n} from '../links';\nimport { ConfigService } from '../../core/services/config/config.service';\nimport { EnvironmentNames } from '../environments';\nimport { PortalCreateVIDevAccountFlag } from '../arm';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UtilsService {\n private browserDetails: IBrowserDetails;\n\n constructor(@Inject(DOCUMENT) private document: Document, private config: ConfigService) {\n this.init();\n }\n\n public get azurePortalLink() {\n return this.config.isFairFaxEnv() ? US_PORTAL : PORTAL;\n }\n\n public getBrowserDetails() {\n return this.browserDetails;\n }\n\n public getLinkByValue(isTrial: boolean, linkName: string): string {\n switch (linkName) {\n case 'PrivacyStatement':\n return PRIVACY_STATEMENT;\n\n case 'ServiceAgreement':\n if (!isTrial) {\n return PAID_SERVICE_AGREEMENT;\n } else {\n return TRIAL_SERVICE_AGREEMENT;\n }\n case 'Support':\n if (this.config.isFairFaxEnv()) {\n return FF_SUPPORT;\n } else if (!isTrial) {\n return PAID_SUPPORT;\n } else {\n return TRIAL_SUPPORT;\n }\n default:\n return linkName;\n }\n }\n\n public parseArrayToString(arrOutput: IArrToString[]): string {\n let currentString = '';\n if (arrOutput) {\n for (const item of arrOutput) {\n currentString += item.name + ',';\n }\n }\n\n return currentString;\n }\n\n public getContainerRectAsync(el: HTMLElement): Promise {\n return new Promise((resolve, reject) => {\n const rect = el && el.getBoundingClientRect();\n resolve(rect);\n });\n }\n\n public getBodyRectAsync(): Promise {\n return new Promise((resolve, reject) => {\n const rect = this.document && this.document.body && this.document.body.getBoundingClientRect();\n resolve(rect);\n });\n }\n\n public unsubscribeSubscriptions(subscriptions: ISubscriptions): void {\n const keys = Object.keys(subscriptions);\n keys.forEach(k => {\n if (subscriptions[k]) {\n subscriptions[k].unsubscribe();\n }\n });\n }\n\n public isIOSDevice() {\n const browserOS: string = this.browserDetails?.os.toLowerCase();\n return browserOS.includes('iphone') || browserOS.includes('ipod') || browserOS.includes('ipad');\n }\n public isMobile() {\n return this.browserDetails?.browser.toLowerCase() === 'mobile';\n }\n\n public isBrowserSupported(): boolean {\n if (this.browserDetails?.browser in notSupportedBrowsers && this.browserDetails?.browser <= notSupportedBrowsers[this.browserDetails?.browser]) {\n return false;\n }\n return true;\n }\n\n public isAccountOnUSDataCenter(location: string, isTrial: boolean) {\n // Trial account are on Eat US / West US\n if (isTrial) {\n return true;\n }\n\n return locationsUS.includes(location);\n }\n\n /**\n * Gets the parent resource ID (stringified) for the given ARM ID.\n * @example\n * /subscriptions/1234/resourceGroups/rg/providers/Microsoft.ParentProvider/parentResource/providers/Microsoft.ChildProvider/childResource\n * will return - /subscriptions/1234/resourceGroups/rg/providers/Microsoft.ParentProvider/parentResource\n */\n public getParentResourceId(resourceId: string = '') {\n const result = resourceId.match(/.+?(?=\\/providers)/g);\n\n if (!result) {\n return '';\n }\n\n return (result[0] || '') + (result[1] || '');\n }\n\n public azurePortalResourceLink(tenantId: string, resourceId: string, queryParams?: string) {\n queryParams = queryParams ? `?${queryParams}` : '';\n return `${this.azurePortalLink}/${queryParams}#@${tenantId}/resource/${resourceId}`;\n }\n\n public getUpdateAccountPortalUrl(tenantId: string, resourceId: string) {\n let queryParams = 'vi_update_to_amsless_account=true';\n\n if (this.isDevOrStagingEnv) {\n queryParams += `&${PortalCreateVIDevAccountFlag}`;\n }\n\n return `${this.azurePortalResourceLink(tenantId, resourceId, queryParams)}/overview`;\n }\n\n public getRequestMigrationInAzurePortalUrl(tenantId: string, resourceId: string) {\n let queryParams = 'vi_optin_to_ams_migration=true';\n\n if (this.isDevOrStagingEnv) {\n queryParams += `&${PortalCreateVIDevAccountFlag}`;\n }\n\n return `${this.azurePortalResourceLink(tenantId, resourceId, queryParams)}/overview`;\n }\n\n public getViResourceOverviewPortalUrl(tenantId: string, resourceId: string) {\n const queryParams = this.isDevOrStagingEnv ? `${PortalCreateVIDevAccountFlag}` : null;\n return `${this.azurePortalResourceLink(tenantId, resourceId, queryParams)}/overview`;\n }\n\n private init() {\n this.browserDetails = browserDetect();\n }\n\n private get isDevOrStagingEnv() {\n return this.config.isEnvType(EnvironmentNames.Dev) || this.config.isEnvType(EnvironmentNames.Staging);\n }\n}\n","import { UIGalleryActionType } from '../../../../apps/web/src/gallery/core/models/gallery';\nimport { IAction } from '../interfaces';\n\nexport const videoSearchOptions: IAction[] = [\n {\n icon: '',\n title: '',\n key: 'GalleryServiceEntireVideo',\n type: UIGalleryActionType.ALL_INSIGHTS_FILTER,\n value: 'All',\n selected: false,\n selectable: true,\n hasDrop: false,\n id: '',\n applyValue: true\n },\n {\n icon: '',\n title: '',\n key: 'GalleryServiceFileNameOnly',\n type: UIGalleryActionType.FILE_NAME_FILTER,\n value: 'name',\n // in case the UI value is different than the API value (e.g. 'name' vs 'file name')\n label: 'file name',\n selected: false,\n selectable: true,\n hasDrop: false,\n id: '',\n applyValue: true\n },\n {\n icon: '',\n title: '',\n key: 'GalleryServiceTagsOnly',\n type: UIGalleryActionType.CUSTOM_TAGS_FILTER,\n value: 'metadata',\n // in case the UI value is different than the API value (e.g. 'name' vs 'file name')\n label: 'tag',\n selected: false,\n selectable: true,\n hasDrop: false,\n id: '',\n applyValue: true\n },\n {\n icon: '',\n title: '',\n key: 'GalleryServiceDetectedObjectsOnly',\n type: UIGalleryActionType.DETECTED_OBJECTS_FILTER,\n value: 'detectedObjects',\n label: 'Detected objects',\n selected: false,\n selectable: true,\n hasDrop: false,\n id: '',\n applyValue: true\n },\n {\n icon: '',\n title: '',\n key: 'GalleryServiceVisualTextOnly',\n type: UIGalleryActionType.OCR_FILTER,\n value: 'ocr',\n selected: false,\n selectable: true,\n hasDrop: false,\n id: '',\n applyValue: true\n },\n {\n icon: '',\n title: '',\n key: 'GalleryServiceTranscriptOnly',\n type: UIGalleryActionType.TRANSCRIPT_FILTER,\n value: 'transcript',\n selected: false,\n selectable: true,\n hasDrop: false,\n id: '',\n applyValue: true\n },\n {\n icon: '',\n title: '',\n key: 'GalleryServiceAnnotationsOnly',\n type: UIGalleryActionType.LABELS_FILTER,\n value: 'annotations',\n label: 'labels',\n selected: false,\n selectable: true,\n hasDrop: false,\n id: '',\n applyValue: true\n },\n {\n icon: '',\n title: '',\n key: 'GalleryServiceNamedLocationsEntitiesOnly',\n type: UIGalleryActionType.NAMED_LOCATIONS_FILTER,\n value: 'namedLocations',\n selected: false,\n selectable: true,\n hasDrop: false,\n id: '',\n applyValue: true\n },\n {\n icon: '',\n title: '',\n key: 'GalleryServiceNamedPeopleEntitiesOnly',\n type: UIGalleryActionType.NAMED_PEOPLE_FILTER,\n value: 'namedPeople',\n selected: false,\n selectable: true,\n hasDrop: false,\n id: '',\n applyValue: true\n },\n {\n icon: '',\n title: '',\n key: 'GalleryServiceBrandsEntitiesOnly',\n type: UIGalleryActionType.BRANDS_FILTER,\n value: 'brands',\n selected: false,\n selectable: true,\n hasDrop: false,\n id: '',\n applyValue: true\n },\n {\n icon: '',\n title: '',\n key: 'TopicsOnly',\n type: UIGalleryActionType.TOPICS_FILTER,\n value: 'topics',\n selected: false,\n selectable: true,\n hasDrop: false,\n id: '',\n applyValue: true\n }\n];\n","import { CommonModule } from '@angular/common';\nimport { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { MatSliderModule } from '@angular/material/slider';\n\nimport { VIUIModule } from '@vi-ui/core';\n\nimport { ActionButtonComponent } from './components/action-button/action-button.component';\nimport { ActionableInputComponent } from './components/actionable-input/actionable-input.component';\nimport { ActionsMenuComponent } from './components/actions-menu/actions-menu.component';\nimport { AlertMessageComponent } from './components/alert-message/alert-message.component';\nimport { CheckBoxActionMenuComponent } from './components/check-box-action-menu/check-box-action-menu.component';\nimport { DownloadClosedCaptionsComponent } from './components/download-menu/components/download-closed-captions/download-closed-captions.component';\nimport { RoleBasedViewControlWrapperComponent } from './components/role-based-view-control-wrapper/role-based-view-control-wrapper.component';\nimport { NumericPrefixTitleCasePipe } from './pipes/numeric-prefix-title.pipe';\nimport { ElementResizeDirective } from './directives/element-resize.directive';\nimport { EmptyStateComponent } from './components/empty-state/empty-state.component';\nimport { PermissionService } from './services/permission.service';\nimport { JsonPrettifyPipe } from './pipes/json-prettify/json-prettify.pipe';\nimport { CheckboxWithLabelComponent } from './components/checkbox-with-label/checkbox-with-label.component';\nimport { DescriptionComponent } from './components/description/description.component';\nimport { DialogComponent } from './components/dialog/dialog.component';\nimport { DialogService } from './components/dialog/dialog.service';\nimport { DownloadMenuComponent } from './components/download-menu/download-menu.component';\nimport { InternalFaceGateFormComponent } from './components/internal-face-gate-form/internal-face-gate-form.component';\nimport { DynamicTooltipComponent } from './components/dynamic-tooltip/dynamic-tooltip.component';\nimport { ExpandedItemComponent } from './components/expanded-item/expanded-item.component';\nimport { FilterButtonComponent } from './components/filter-button/filter-button.component';\nimport { FilterItemComponent } from './components/filter-item/filter-item.component';\nimport { EmbedFooterComponent } from './components/footer/embed-footer.component';\nimport { InsightsImagesComponent } from './components/insights-images/insights-images.component';\nimport { InsightsImagesService } from './components/insights-images/insights-images.service';\nimport { NotificationTooltipComponent } from './components/notification-tooltip/notification-tooltip.component';\nimport { PersonaComponent } from './components/persona/persona.component';\nimport { PresetsComponent } from './components/presets/presets.component';\nimport { SearchbarComponent } from './components/searchbar/searchbar.component';\nimport { SearchbarService } from './components/searchbar/services/searchbar.service';\nimport { SpinnerComponent } from './components/spinner/spinner.component';\nimport { StripComponent } from './components/strip/strip.component';\nimport { TablistComponent } from './components/tablist/tablist.component';\nimport { DebounceDirective } from './directives/debounce.directive';\nimport { DynamicTooltipDirective } from './directives/dynamic-tooltip.directive';\nimport { HighlightDirective } from './directives/highlight.directive';\nimport { ImageFallbackDirective } from './directives/image-fallback.directive';\nimport { ImageIconFallbackDirective } from './directives/image-icon-fallback.directive';\nimport { StopPropagationDirective } from './directives/stop-propagation.directive';\nimport { ImageSrcPipe } from './pipes/image.pipe';\nimport { TitleCasePipe } from './pipes/title.pipe';\nimport { DataService } from './services/data.service';\nimport { LocalStorageService } from './services/local-storage.service';\nimport { UtilsService } from './services/utils.service';\nimport { AccessibilityModule } from '../accessibility/accessibility.module';\nimport { ActionLinkComponent } from '../shared/components/action-link/action-link.component';\nimport { TextReadMoreDirective } from './directives/text-read-more.directive';\nimport { ShowIfEdgeDirective } from './directives/show-if-edge.directive';\nimport { ShowIfHasEdgeExtensionsDirective } from './directives/show-if-has-edge-extensions.directive';\nimport { SortMenuComponent } from './components/sort-menu';\nimport { FluentUiSelectComponent } from './components/fluent-ui-select/fluent-ui-select.component';\nimport { ShowIfAmslessDirective } from './directives/show-if-amsless.directive';\n\n@NgModule({\n imports: [VIUIModule, CommonModule, FormsModule, AccessibilityModule, MatDialogModule, MatSliderModule, MatProgressBarModule],\n declarations: [\n SearchbarComponent,\n PresetsComponent,\n ActionsMenuComponent,\n ActionButtonComponent,\n SortMenuComponent,\n NotificationTooltipComponent,\n ActionableInputComponent,\n DescriptionComponent,\n DialogComponent,\n SpinnerComponent,\n PersonaComponent,\n InsightsImagesComponent,\n ImageFallbackDirective,\n FluentUiSelectComponent,\n ImageIconFallbackDirective,\n DebounceDirective,\n CheckBoxActionMenuComponent,\n ActionLinkComponent,\n StripComponent,\n AlertMessageComponent,\n DownloadMenuComponent,\n EmbedFooterComponent,\n HighlightDirective,\n StopPropagationDirective,\n FilterItemComponent,\n FilterButtonComponent,\n TablistComponent,\n TitleCasePipe,\n NumericPrefixTitleCasePipe,\n ExpandedItemComponent,\n ImageSrcPipe,\n JsonPrettifyPipe,\n DownloadClosedCaptionsComponent,\n ElementResizeDirective,\n RoleBasedViewControlWrapperComponent,\n EmptyStateComponent,\n CheckboxWithLabelComponent,\n InternalFaceGateFormComponent,\n DynamicTooltipComponent,\n DynamicTooltipDirective,\n ShowIfEdgeDirective,\n ShowIfAmslessDirective,\n TextReadMoreDirective,\n ShowIfHasEdgeExtensionsDirective\n ],\n providers: [DataService, DialogService, InsightsImagesService, SearchbarService, UtilsService, LocalStorageService, PermissionService],\n exports: [\n VIUIModule,\n FormsModule,\n SearchbarComponent,\n PresetsComponent,\n ActionsMenuComponent,\n ActionButtonComponent,\n SortMenuComponent,\n NotificationTooltipComponent,\n ActionableInputComponent,\n DescriptionComponent,\n DialogComponent,\n SpinnerComponent,\n PersonaComponent,\n InsightsImagesComponent,\n CheckBoxActionMenuComponent,\n ImageFallbackDirective,\n ImageIconFallbackDirective,\n DebounceDirective,\n FluentUiSelectComponent,\n AccessibilityModule,\n MatDialogModule,\n MatProgressBarModule,\n ActionLinkComponent,\n StripComponent,\n AlertMessageComponent,\n DownloadMenuComponent,\n EmbedFooterComponent,\n HighlightDirective,\n StopPropagationDirective,\n FilterItemComponent,\n FilterButtonComponent,\n TablistComponent,\n TitleCasePipe,\n NumericPrefixTitleCasePipe,\n ExpandedItemComponent,\n ImageSrcPipe,\n JsonPrettifyPipe,\n ElementResizeDirective,\n RoleBasedViewControlWrapperComponent,\n EmptyStateComponent,\n CheckboxWithLabelComponent,\n DynamicTooltipDirective,\n TextReadMoreDirective,\n ShowIfEdgeDirective,\n ShowIfAmslessDirective,\n ShowIfHasEdgeExtensionsDirective\n ],\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class SharedModule {}\n","/* eslint-disable max-len */\nexport const NO_ACCESS_SVG =\n 'M6,16C6,7.2,13.2,0,22,0s16,7.2,16,16v8h-6v-8c0-5.5-4.5-10-10-10s-10,4.5-10,10v8H6V16z M0,28c0-1.1,0.9-2,2-2h40c1.1,0,2,0.9,2,2v32c0,1.1-0.9,2-2,2H2c-1.1,0-2-0.9-2-2V28z M24.3,46.5c2.2-0.9,3.7-3,3.7-5.5c0-3.3-2.7-6-6-6s-6,2.7-6,6c0,2.5,1.5,4.6,3.7,5.5L17,53h10L24.3,46.5z';\nexport const FILE_UPLOAD_SVG =\n 'M44,12H34c-1.1,0-2-0.9-2-2V0L44,12z M34,14c-2.2,0-4-1.8-4-4V0H2C0.9,0,0,0.9,0,2v52c0,1.1,0.9,2,2,2h40c1.1,0,2-0.9,2-2V14H34z M22,41c-7.2,0-13-5.8-13-13s5.8-13,13-13s13,5.8,13,13S29.2,41,22,41z M22.7,20.3l6.4,6.4c0.4,0.4,0.4,1,0,1.4s-1,0.4-1.4,0L23,23.4V36c0,0.6-0.4,1-1,1s-1-0.4-1-1V23.4l-4.7,4.7c-0.4,0.4-1,0.4-1.4,0s-0.4-1,0-1.4l6.4-6.4C21.7,19.9,22.3,19.9,22.7,20.3z';\nexport const NOTIFICATIONS_EMPTY_STATE_SVG_PATH1 =\n 'M76.9002 63.3101C75.5802 62.6901 74.4502 61.7401 73.6002 60.5701C73.1502 59.9501 72.9402 59.2001 72.9402 58.4401V43.4601C72.9402 32.2601 65.1002 22.4701 54.3002 20.4001C53.3702 19.0201 51.7902 18.1201 50.0002 18.1201C48.2102 18.1201 46.6302 19.0301 45.7002 20.4101C35.1202 22.4401 27.0702 31.7901 27.0702 42.9301V58.4301C27.0702 59.1901 26.8602 59.9501 26.4102 60.5601C25.5602 61.7301 24.4302 62.6701 23.1102 63.3001C22.3102 63.6701 21.7902 64.5601 21.9902 65.5401C22.1802 66.4801 23.0702 67.1201 24.0302 67.1201H75.9902C76.9502 67.1201 77.8402 66.4801 78.0302 65.5401C78.2302 64.5601 77.7102 63.6701 76.9102 63.3001L76.9002 63.3101Z';\nexport const NOTIFICATIONS_EMPTY_STATE_SVG_PATH2 =\n 'M50 76.2499C54.38 76.2499 58.03 73.2099 58.99 69.1299H41C41.96 73.2099 45.62 76.2499 49.99 76.2499H50Z';\nexport const ADD_NEW_PATH_1 =\n 'M75 25H25V75H53.6085C52.5781 72.8856 52 70.5103 52 68C52 59.1634 59.1634 52 68 52C70.5103 52 72.8856 52.5781 75 53.6085V25Z';\nexport const ADD_NEW_PATH_2 =\n 'M75 55.8729C72.9408 54.6818 70.55 54 68 54C60.268 54 54 60.268 54 68C54 70.55 54.6818 72.9408 55.8729 75C58.2936 79.1846 62.818 82 68 82C75.732 82 82 75.732 82 68C82 62.818 79.1846 58.2936 75 55.8729ZM69 63C69 62.4477 68.5523 62 68 62C67.4477 62 67 62.4477 67 63V67H63C62.4477 67 62 67.4477 62 68C62 68.5523 62.4477 69 63 69H67V73C67 73.5523 67.4477 74 68 74C68.5523 74 69 73.5523 69 73V69H73C73.5523 69 74 68.5523 74 68C74 67.4477 73.5523 67 73 67H69V63Z';\nexport const ERROR_SVG =\n 'M50.6667 14.3V8L46 15.7H49.3333V22L54 14.3H50.6667ZM38 26H44V34H56V26H62V34H74V37C74 39.7614 71.7614 42 69 42H31C28.2386 42 26 39.7614 26 37V34H38V26ZM40.6667 16L41.3333 18.6667L40 19.3333L43.3333 22L42.6667 19.3333L44 18.6667L40.6667 16ZM58.6667 18.6667L59.3333 16L56 18.6667L57.3333 19.3333L56.6667 22L60 19.3333L58.6667 18.6667ZM70 56C70 66.7104 61.5811 75.4544 51 75.9754V79C51 79.5523 50.5523 80 50 80C49.4477 80 49 79.5523 49 79V75.9754C38.4189 75.4544 30 66.7104 30 56V44H70V56ZM50 66C53.3137 66 56 63.3137 56 60C56 56.6863 53.3137 54 50 54C46.6863 54 44 56.6863 44 60C44 63.3137 46.6863 66 50 66Z';\nexport const NO_RESULTS =\n 'M19 20H38L44 25H81C82.1046 25 83 25.8954 83 27V36H44L37 30H17V22C17 20.8954 17.8954 20 19 20ZM36 32H17V74C17 75.1046 17.8954 76 19 76H81C82.1046 76 83 75.1046 83 74V38H43L36 32ZM43 55C43 56.6569 41.6569 58 40 58C38.3431 58 37 56.6569 37 55C37 53.3431 38.3431 52 40 52C41.6569 52 43 53.3431 43 55ZM53 55C53 56.6569 51.6569 58 50 58C48.3431 58 47 56.6569 47 55C47 53.3431 48.3431 52 50 52C51.6569 52 53 53.3431 53 55ZM60 58C61.6569 58 63 56.6569 63 55C63 53.3431 61.6569 52 60 52C58.3431 52 57 53.3431 57 55C57 56.6569 58.3431 58 60 58Z';\n","import { IUIPresetInsight, IUIPostProductionInsights, UIPresetInsight, IUICustomPresetInsight } from '../insights/interfaces';\nimport { IUIVideoTimeline, IUIEditorFilterItem, UITimelineScrollItemSelectState } from '../editor/interfaces';\nimport {\n TimelineTranscriptLine,\n TimelineSpeakerLine,\n TimelineKeyframeLine,\n TimelineFaceLine,\n TimelineOcrLine,\n TimelineEmotionLine,\n TimelineCapsuleLine,\n TimelineSpokenLanguageLine,\n TimelineBaseScrollLine,\n TimelineLogoLine\n} from './classes';\nimport { UIScrollItem } from './components/scroll-item/classes';\nimport { TimelineAcousticEventLine } from './classes/timeline-acoustic-event-line.class';\nimport { TimelineObservedPeopleLine } from './classes/timeline-observed-people-line.class';\nimport { TimelineColorBarsLine } from './classes/timeline-color-bars-line.class';\nimport { TimelineClapperboardLine } from './classes/timeline-clapperboards-line.class';\nimport { TimelineDetectedObjectsLine } from './classes/TimelineDetectedObjects';\nimport { TimelineCustomInsightsLine } from './classes/timeline-custom-insights-line.class';\n\nexport interface ITime {\n adjustedStart: number | string;\n startText: string;\n from: number;\n to: number;\n}\nexport interface ITimelineData {\n textFilter: string;\n editorFilterItems: IUIEditorFilterItem[];\n keyframesRef: IUIPresetInsight;\n keywordsRef: IUIPresetInsight;\n observedPeopleRef: IUIPresetInsight;\n detectedObjectsRef: IUIPresetInsight;\n acousticEventsRef: IUIPresetInsight;\n labelsRef: IUIPresetInsight;\n peopleRef: IUIPresetInsight;\n namedEntitiesRef: IUIPresetInsight;\n speakersRef: IUIPresetInsight;\n ocrRef: IUIPresetInsight;\n transcriptRef: IUIPresetInsight;\n spokenLanguageRef: IUIPresetInsight;\n emotionsRef: IUIPresetInsight;\n postProductionRef: IUIPresetInsight;\n logosRef: IUIPresetInsight;\n customInsightsRef: Map;\n edit: boolean;\n selectedSegments: ITimelineSegment;\n durationOffset: number;\n}\n\nexport interface ITimelineSegment {\n timeRanges: Microsoft.VideoIndexer.Contracts.SegmentTimeRange[];\n videoId: string;\n uniqueVideoId: string;\n selectState: UITimelineScrollItemSelectState;\n}\n\nexport interface IAllSelectedToggle {\n isSelected: boolean;\n count: number;\n}\n\nexport interface ITimeToIndex {\n [time: number]: number;\n}\n\nexport interface IIndexToLineBlock {\n [index: number]: number[];\n}\n\nexport interface IDataForService {\n videoData: IUIVideoTimeline;\n sortedAndFlattenInsightsObj: ISortedAndFlattenInsightsObj;\n isInsightsSet: boolean;\n isGroupedInsightsSet: boolean;\n isScrollItemsSet: boolean;\n groupedInsights: TimelineBaseScrollLine[][];\n scrollItems: UIScrollItem[];\n keywords: string[];\n namedEntities: IEntityItem[];\n editorFilterItems?: IUIEditorFilterItem[];\n durationOffset: number;\n}\n\nexport interface IEntityItem {\n name: string;\n subType: string;\n}\n\nexport interface ISortedAndFlattenInsightsObj {\n transcript: TimelineTranscriptLine[];\n spokenLanguage: TimelineSpokenLanguageLine[];\n speakers: TimelineSpeakerLine[];\n keyframes: TimelineKeyframeLine[];\n observedPeople: TimelineObservedPeopleLine[];\n faces: TimelineFaceLine[];\n ocr: TimelineOcrLine[];\n logos: TimelineLogoLine[];\n emotions: TimelineEmotionLine[];\n labels: TimelineCapsuleLine[];\n keywords: TimelineCapsuleLine[];\n namedEntities: TimelineCapsuleLine[];\n audioEffects: TimelineAcousticEventLine[];\n clapperboards: TimelineClapperboardLine[];\n colorBars: TimelineColorBarsLine[];\n detectedObjects: TimelineDetectedObjectsLine[];\n custom: Map;\n}\n\nexport enum JsonPatchOperation {\n ADD = 'add',\n REMOVE = 'remove',\n REPLACE = 'replace',\n MOVE = 'move',\n COPY = 'copy',\n TEST = 'test'\n}\n\nexport interface ITranscriptLineInfo {\n id?: number;\n index: number;\n adjustedStart: string;\n adjustedEnd: string;\n text?: string;\n speakerId?: number;\n}\n\nexport interface IEditableTimelineLine {\n originalText: string;\n}\n\nexport enum FramePatternType {\n ROLLING_CREDITS = 'RollingCredits',\n BLACK = 'Black',\n COLOR_BARS = 'ColorBars'\n}\n\nexport type TimelineInsightType = IUIPostProductionInsights | UIPresetInsight | string;\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'bold'\n})\nexport class BoldPipe implements PipeTransform {\n public transform(value: string, boldItems: string[], title: string): string {\n if (!boldItems.length) {\n return value;\n }\n const boldItemsStr = boldItems.join('|');\n const regex = new RegExp(`\\\\b${boldItemsStr}\\\\b`, 'ig');\n\n // Verify there is no existing HTML elements\n const testDiv = document.createElement('div');\n // eslint-disable-next-line @microsoft/sdl/no-inner-html\n testDiv.insertAdjacentHTML('beforeend', value);\n\n let newValue = '';\n // Go over child nodes, and update only pure text element\n testDiv?.childNodes.forEach(node => {\n const text = node?.textContent;\n // If node is text type, and matches regex\n if (text && node?.nodeName === '#text' && regex.test(text)) {\n newValue += text.replace(regex, `$&`);\n } else {\n newValue += (node as Element)?.outerHTML || text;\n }\n });\n\n return newValue;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'highlight'\n})\nexport class HighlightPipe implements PipeTransform {\n public transform(value: string, textFilter: string): string {\n // LD means any letter or digit.\n textFilter = textFilter.replace(/\\\\p{LD}+/gi, '');\n if (textFilter.trim().length > 0) {\n const regex = new RegExp(textFilter, 'ig');\n if (value.match(regex) && value.match(regex).length > 0) {\n const origStr = value.match(regex)[0];\n value = value.replace(origStr, `${origStr}`);\n }\n }\n return value;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { MissingTranslationHandler, MissingTranslationHandlerParams } from '@ngx-translate/core';\n\nimport { TrackService } from '@common/modules/core/services/track';\n\nimport { SupportedLocaleLanguages } from './../../../../apps/web/src/core/supportedLocaleLanguages';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CustomMissingTranslationHandler extends MissingTranslationHandler {\n private isHandled = false;\n\n constructor(private trackService: TrackService) {\n super();\n }\n\n // TO-Do: add a test for the function\n public handle(params: MissingTranslationHandlerParams) {\n // Check id current language is already loaded\n // (Added due to a ngx-translate's bug when loading the requested language it calls the handle missing translation)\n const isCurrentLangLoaded =\n params.translateService.getLangs() && params.translateService.getLangs().includes(params.translateService.currentLang);\n if (!this.isHandled && !isCurrentLangLoaded) {\n // In case there was an error loading the language json file, the default language is en and set in the translate-helper\n params.translateService.use(SupportedLocaleLanguages.en);\n\n // TO-DO: add a notification.\n }\n\n this.isHandled = true;\n\n if (isCurrentLangLoaded) {\n // @TODO: figure out why translate method is being called with 'en' as key\n if (params.key !== 'en') {\n this.trackService.trackError(new Error(`Missing translation for key: ${params.key}`), {\n data: { key: params.key, lang: params.translateService.currentLang }\n });\n }\n }\n }\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\n\nimport { Subject } from 'rxjs';\n\nimport { TranslateService } from '@ngx-translate/core';\n\nimport { CommonTrackingDataService } from '@common/modules/core/services/track/common-tracking-data.service';\n\nimport { UrlService } from '../../core/services/url/url.service';\nimport { IAction } from '../../shared/interfaces';\nimport { LocalStorageService } from '../../shared/services/local-storage.service';\nimport { DEFAULT_LOCALE_LANGUAGE_KEY, getMappedLanguage, SupportedLocaleLanguages } from '../../../../apps/web/src/core/supportedLocaleLanguages';\nimport { TrackService } from '../../core/services/track';\nimport enJson from '../../../../assets/i18n/en.json';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TranslateHelperService {\n private mappedLang;\n\n constructor(\n private translate: TranslateService,\n private urlUtility: UrlService,\n private localStorageService: LocalStorageService,\n private trackingService: TrackService,\n private commonTrackingService: CommonTrackingDataService,\n @Inject(DOCUMENT) private document: Document\n ) {}\n\n public get locale() {\n const storedLang = this.localStorageService.getItem('vi.locale');\n const queryLang = this.urlUtility.getQueryParam('locale');\n const lang = this.commonTrackingService.embedMode ? queryLang || storedLang : storedLang || queryLang;\n return lang || this.translate.getBrowserCultureLang() || DEFAULT_LOCALE_LANGUAGE_KEY;\n }\n\n public init(): Promise {\n // Get the locale\n this.mappedLang = getMappedLanguage(this.locale && this.locale.toLowerCase());\n\n // In case the mappedLang is english, skip the call for the json file and load from import json\n this.translate.setTranslation(SupportedLocaleLanguages.en, enJson, false);\n this.translate.setDefaultLang(SupportedLocaleLanguages.en);\n\n // Update html lang attribute\n try {\n this.document.documentElement.lang = this.mappedLang;\n } catch (error) {\n this.trackingService.trackError(error);\n }\n\n // The lang to use, if the lang isn't available, it will use the current loader to get them\n return new Promise((resolve, reject) => {\n this.translate.use(this.mappedLang).subscribe({\n next: () => {\n resolve(true);\n },\n error: () => {\n resolve(true);\n }\n });\n });\n }\n\n public checkLanguageUpdate(newLanguage: string) {\n if (!newLanguage) {\n return;\n }\n const mappedNewLanguage = getMappedLanguage(newLanguage);\n\n if (mappedNewLanguage && mappedNewLanguage !== this.mappedLang) {\n window.location.reload();\n }\n }\n\n public translateResources(resources: object, values?: object) {\n if (!resources) {\n return;\n }\n\n const translateSubject = new Subject();\n\n for (const key of Object.keys(resources)) {\n const value = this.translate.instant(key, values);\n resources[key] = value;\n }\n\n setTimeout(() => {\n translateSubject.next();\n });\n\n return translateSubject;\n }\n\n public translateResourcesInstant(resources: object, values?: object) {\n if (!resources) {\n return;\n }\n\n for (const key of Object.keys(resources)) {\n const value = this.translate.instant(key, values);\n resources[key] = value;\n }\n }\n\n // Replace the regex inside the given string and return its value.\n public getStringReplaced(fullString: string, regex: RegExp[], strToReplace: string[]): string {\n let convertedString = fullString;\n for (let i = 0; i < regex.length; i++) {\n convertedString = convertedString.replace(regex[i], strToReplace[i]);\n }\n\n return convertedString;\n }\n\n // Localize action titles\n public translateLanguages(actionList: IAction[], resourcePrefix?: string) {\n const prefix = `${resourcePrefix}_` || '';\n actionList.forEach(action => {\n action.title = action && action.value ? this.translate.instant(`${prefix}${action.value.replace(/-/g, '_').toLocaleLowerCase()}`) : '';\n });\n }\n\n public instant(key: string, values = {}) {\n if (!key) {\n return;\n }\n\n return this.translate.instant(key, values);\n }\n\n public getLanguage() {\n return this.mappedLang;\n }\n\n public getLocaleLanguage(localeKey: string) {\n return this.translate.instant('Language_' + localeKey.replace(/-/g, '_').toLowerCase());\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { HttpClient } from '@angular/common/http';\n\nimport { TranslateModule, TranslateLoader, MissingTranslationHandler } from '@ngx-translate/core';\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\n\nimport { CustomMissingTranslationHandler } from './services/missing-translate-handler.service';\nimport { environment } from '../../../environments/environment';\nimport { UrlService } from '../core/services/url/url.service';\nimport { LoggerService } from '../core/services/logger/logger.service';\n\nexport function createTranslateLoader(http: HttpClient) {\n const base = `${window.viewContext?.codeLocation ? window.viewContext.codeLocation : ''}/${\n environment?.localhost ? '' : `${window.viewContext.clientVersion}/`\n }`;\n return new TranslateHttpLoader(http, base + 'assets/i18n/', '.json');\n}\n\n@NgModule({\n imports: [\n CommonModule,\n TranslateModule.forRoot({\n loader: {\n provide: TranslateLoader,\n useFactory: createTranslateLoader,\n deps: [HttpClient]\n },\n missingTranslationHandler: {\n provide: MissingTranslationHandler,\n useClass: CustomMissingTranslationHandler\n }\n })\n ],\n exports: [TranslateModule],\n providers: [UrlService],\n declarations: []\n})\nexport class TranslationModule {\n constructor(private logger: LoggerService) {\n this.logger.log('[TranslationModule] init');\n }\n}\n","export const TRANSLATION_DELAY = 500;\n","const dataBrowser = [\n {\n string: navigator.userAgent,\n subString: 'Mobile',\n identity: 'mobile'\n },\n {\n string: navigator.userAgent,\n subString: 'Chrome',\n identity: 'Chrome'\n },\n {\n string: navigator.userAgent,\n subString: 'OmniWeb',\n versionSearch: 'OmniWeb/',\n identity: 'OmniWeb'\n },\n {\n // eslint-disable-next-line deprecation/deprecation\n string: navigator.vendor,\n subString: 'Apple',\n identity: 'Safari',\n versionSearch: 'Version'\n },\n {\n // eslint-disable-next-line deprecation/deprecation\n string: navigator.vendor,\n subString: 'iCab',\n identity: 'iCab'\n },\n {\n // eslint-disable-next-line deprecation/deprecation\n string: navigator.vendor,\n subString: 'KDE',\n identity: 'Konqueror'\n },\n {\n string: navigator.userAgent,\n subString: 'Firefox',\n identity: 'Firefox'\n },\n {\n // eslint-disable-next-line deprecation/deprecation\n string: navigator.vendor,\n subString: 'Camino',\n identity: 'Camino'\n },\n {\n // for newer Netscapes (6+)\n string: navigator.userAgent,\n subString: 'Netscape',\n identity: 'Netscape'\n },\n {\n string: navigator.userAgent,\n subString: 'MSIE',\n identity: 'Explorer',\n versionSearch: 'MSIE'\n },\n {\n string: navigator.userAgent,\n subString: 'Gecko',\n identity: 'Mozilla',\n versionSearch: 'rv'\n },\n {\n // for older Netscapes (4-)\n string: navigator.userAgent,\n subString: 'Mozilla',\n identity: 'Netscape',\n versionSearch: 'Mozilla'\n }\n];\nconst dataOS = [\n {\n string: navigator.userAgent,\n subString: 'Android',\n identity: 'Android'\n },\n {\n // eslint-disable-next-line deprecation/deprecation\n string: navigator.platform,\n subString: 'Win',\n identity: 'Windows'\n },\n {\n // eslint-disable-next-line deprecation/deprecation\n string: navigator.platform,\n subString: 'Mac',\n identity: 'Mac'\n },\n {\n string: navigator.userAgent,\n subString: 'iPhone',\n identity: 'iPhone/iPod'\n },\n {\n // eslint-disable-next-line deprecation/deprecation\n string: navigator.platform,\n subString: 'Linux',\n identity: 'Linux'\n }\n];\n\nlet browser;\nlet version;\nlet OS;\nlet isApproved;\nlet versionSearchString;\nexport function browserDetect() {\n browser = searchString(dataBrowser) || 'An unknown browser';\n // eslint-disable-next-line deprecation/deprecation\n version = searchVersion(navigator.userAgent) || searchVersion(navigator.appVersion) || 'an unknown version';\n OS = searchString(dataOS) || 'an unknown OS';\n isApproved = searchList(browser, version);\n\n if (OS === 'iPad') {\n document.documentElement.className += ' iOS';\n }\n if (browser === 'Explorer') {\n document.documentElement.className += ' ie';\n }\n if (browser === 'Explorer' && version === 10) {\n document.documentElement.className += ' ie10';\n }\n // Check browser === 'Edge'\n const isEdgeBrowser = /Edg(e)?/i.test(navigator.userAgent);\n if (isEdgeBrowser) {\n const edgeVersion = navigator.userAgent.match(/Edg(e)?\\/([0-9.]*)/i);\n browser = 'Edge';\n version = edgeVersion && edgeVersion[1] ? edgeVersion[1] : version;\n }\n\n return { browser: browser, version: version, isApproved: isApproved, os: OS };\n}\n\nfunction searchList(brName: string, brVersion) {\n if (brName === 'Firefox') {\n return brVersion >= 3.5;\n } else if (brName === 'Explorer') {\n return brVersion >= 7;\n } else {\n return false;\n }\n}\n\nfunction searchString(data) {\n for (const dataItem of data) {\n const dataString = dataItem.string;\n const dataProp = dataItem.prop;\n if (dataString === 'iPad') {\n return 'iPad';\n }\n versionSearchString = dataItem.versionSearch || dataItem.identity;\n if (dataString) {\n if (dataString.indexOf(dataItem.subString) !== -1) {\n return dataItem.identity;\n }\n } else if (dataProp) {\n return dataItem.identity;\n }\n }\n}\n\nfunction searchVersion(dataString: string) {\n const index = dataString.indexOf(versionSearchString);\n if (index === -1) {\n return;\n }\n return parseFloat(dataString.substring(index + versionSearchString.length + 1));\n}\n\n// Define list of unsupported browsers (do not support css grid)\nexport const notSupportedBrowsers = {\n Chrome: 57.0,\n Explorer: 16.0,\n Firefox: 52.0,\n Safari: 10.1,\n Edge: 16\n};\n","const getCookies = () =>\n // eslint-disable-next-line @microsoft/sdl/no-cookies\n document?.cookie?.split(';').reduce((acc, current) => {\n const [name, ...value] = current.trim().split('=');\n acc[name] = value.join('=');\n\n return acc;\n }, {});\n\nexport const getCookie = (name: string) => getCookies()[name];\n","export enum KeyCode {\n Tab = '9',\n Enter = '13',\n ShiftLeft = '16',\n ESCAPE = '27',\n ArrowUp = '38',\n ArrowDown = '40'\n}\n\nexport function getKeyCode(event: KeyboardEvent): string {\n if (!event) {\n return '';\n }\n\n const keyName = event.code || event.key;\n if (keyName !== undefined) {\n if (KeyCode.hasOwnProperty(keyName)) {\n return KeyCode[keyName];\n } else {\n throw new Error(`Key ${keyName} not exist at KeyCode table. Please add it`);\n }\n }\n // @todo - remove when Edge that to support event.code\n // eslint-disable-next-line deprecation/deprecation\n if (event.keyCode) {\n // eslint-disable-next-line deprecation/deprecation\n return event.keyCode.toString();\n }\n\n return '';\n}\n\nexport function isMainButtonPressed(event: MouseEvent): boolean {\n // MouseEvent.button with 0 value means that the main button pressed.\n // It's usually the left button or the un-initialized state\n return event && event.button === 0;\n}\n","import { merge as lodashMerge } from 'lodash-es';\n\nexport const merge = (...args: Object[]) => {\n return lodashMerge({}, ...args);\n};\n","/* eslint-disable max-len, no-control-regex */\nexport const GuidPattern = '[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}';\nexport const VideoIdPattern = '(?<=\\\\/videos\\\\/|\\\\/projects\\\\/)[0-9a-zA-Z]{10,12}';\nexport const msCorpFullNameEmailPattern =\n /[[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+@microsoft.com/i;\nexport const msCropEmailPattern = /.+@microsoft.com/i;\nexport const JWTTokenPattern = 'ey([a-zA-Z0-9_=]{13,})\\\\.([a-zA-Z0-9_=]{15,})\\\\.([a-zA-Z0-9_\\\\-\\\\+\\\\/=]{15,})';\nexport const editableTimestampPattern = /([0-9]{2}):([0-9]{2}):([0-9]{2}),([0-9]{2})/g;\nexport const emailPattern =\n /(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\\\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\\\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9]))\\.){3}(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9])|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)])/gi;\nexport const sasTokenPattern = /([?&]|%26)(sig=)([^&\\\\\\'\\\"\\s\\)\\]\\}]*)/gi;\n","import { capitalize } from 'lodash-es';\n\nimport { JWTTokenPattern, msCropEmailPattern, msCorpFullNameEmailPattern } from './regexes';\n\nexport function formatFileName(fileName, fileType): string {\n return `${fileName.replace(/\\s/g, '_')}.${fileType}`;\n}\n\nexport function getFileNameWithoutExtension(filename: string) {\n return filename.substring(0, filename.lastIndexOf('.')) || filename;\n}\n\nexport function isEmptyGuid(comparable: string): boolean {\n return comparable === guid(0);\n}\n\nexport function guid(zero?: 0): string {\n if (zero === 0) {\n return '00000000-0000-0000-0000-000000000000';\n }\n\n function s4() {\n return Math.floor((1 + Math.random()) * 0x10000)\n .toString(16)\n .substring(1);\n }\n\n return s4() + s4() + '-' + s4() + '-' + s4() + '-' + s4() + '-' + s4() + s4() + s4();\n}\n\nexport function capitalizeWithNumericPrefix(currentString: string): string {\n // a-zA-Z - Latin alphabet\n // а-яА-Я - Cyrillic letters\n // First, trim white spaces\n currentString = currentString?.trim();\n const regExp = new RegExp(/^\\d/g);\n const regExpValue = regExp.exec(currentString);\n // Split the string according to first word if defined regExp\n return regExpValue ? currentString.toLowerCase() : capitalize(currentString);\n}\n\nexport function padWithZero(d: number): string {\n return d < 10 ? '0' + d.toString() : d.toString();\n}\n\n// eslint-disable-next-line max-len\nconst EMAIL_REGEX: RegExp = new RegExp(\n // eslint-disable-next-line max-len\n /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/\n);\n\nexport function isEmail(text: string): boolean {\n return EMAIL_REGEX.test(text);\n}\n\nexport function removeHtmlTags(text: string) {\n return text.replace(/<[^>]*>/g, '');\n}\n\nexport function isFriendlyMsCorpEmailAddress(email: string): boolean {\n const friendlyMsCropEmailRegex: RegExp = new RegExp(msCorpFullNameEmailPattern);\n return friendlyMsCropEmailRegex.test(email);\n}\n\nexport function isMsCorpEmailAddress(email: string): boolean {\n const friendlyMsCropEmailRegex: RegExp = new RegExp(msCropEmailPattern);\n return friendlyMsCropEmailRegex.test(email);\n}\n\nexport function zeroPad(num: number, places: number) {\n return String(num).padStart(places, '0');\n}\n\nexport function replaceJWTToken(originalString: string) {\n return originalString?.replace(new RegExp(`${JWTTokenPattern}`, 'g'), '_REDACTED_ACCESS_TOKEN');\n}\n","const DAYS_PER_MONTH: number = 146097 / 400 / 12;\nconst SECONDS_PER_HOUR: number = 60 * 60;\nconst SECONDS_PER_MINUTE: number = 60;\nexport const formattedStartTime = '00:00:00';\n\nexport interface IDurationDetails {\n number: number;\n units: string;\n}\n\nexport enum TimeInterval {\n MINUTE = 60 * 1000,\n SECOND = 1000,\n HOUR = 60 * 60 * 1000,\n DAY = 24 * 60 * 60 * 1000,\n YEAR = 365 * 24 * 60 * 60 * 1000\n}\n\nexport function getSeconds(hms: string | number): number {\n if (typeof hms === 'number') {\n return hms;\n }\n\n const time = formatToStandardTime(hms);\n const timeSplit = time.split(':');\n const hours = +timeSplit[0];\n const minutes = +timeSplit[1];\n const seconds = +timeSplit[2];\n\n return hours * SECONDS_PER_HOUR + minutes * SECONDS_PER_MINUTE + seconds;\n}\n\nexport function getTimeText(time: string): string {\n return time && time.split('.')[0];\n}\n\nexport function formatToStandardTime(time: string | number, padMilliSeconds = false, padNum = 3): string {\n if (typeof time === 'number') {\n time = toTimeText(time);\n }\n\n time = time?.toString();\n const displayTime = time?.split('.');\n\n if (!displayTime || !displayTime[0]) {\n return '';\n }\n const timeSplit = displayTime[0]?.split(':');\n const hours = timeSplit[0]?.padStart(2, '0');\n const minutes = timeSplit[1]?.padStart(2, '0');\n const seconds = timeSplit[2]?.padStart(2, '0');\n const milliseconds =\n displayTime[1] && !isNaN(displayTime[1] as unknown as number)\n ? '.' + `${+displayTime[1] / Math.pow(10, displayTime[1]?.length)}`?.split('.')[1]?.padEnd(padNum, '0')\n : padMilliSeconds\n ? '.'.padEnd(padNum + 1, '0')\n : '';\n\n return hours + ':' + minutes + ':' + seconds + milliseconds;\n}\n\nexport function toTimeText(time: number, roundSeconds = false): string {\n const sec_num = time; // don't forget the second param\n let hours: number | string = Math.floor(sec_num / 3600);\n let minutes: number | string = Math.floor((sec_num - hours * 3600) / 60);\n let seconds: number | string = sec_num - hours * 3600 - minutes * 60;\n if (roundSeconds) {\n seconds = Math.round(seconds);\n }\n if (seconds === 60) {\n seconds = 0;\n minutes++;\n if (minutes === 60) {\n minutes = 0;\n hours++;\n }\n }\n\n if (hours < 10) {\n hours = '0' + hours;\n }\n if (minutes < 10) {\n minutes = '0' + minutes;\n }\n if (seconds < 10) {\n seconds = '0' + seconds;\n }\n return hours + ':' + minutes + ':' + seconds;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function humanize(duration: any): IDurationDetails {\n let ago = duration < 0;\n duration = Math.abs(duration);\n duration = [\n { n: thresh(45, duration / 1000), units: 'Seconds' },\n { n: thresh(45, duration / (60 * 1000)), units: 'Minutes' },\n { n: thresh(22, duration / (60 * 60 * 1000)), units: 'Hours' },\n { n: thresh(26, duration / (24 * 60 * 60 * 1000)), units: 'Days' },\n { n: thresh(11, duration / (DAYS_PER_MONTH * 24 * 60 * 60 * 1000)), units: 'Months' },\n { n: thresh(Number.MAX_VALUE, duration / (365 * 24 * 60 * 60 * 1000)), units: 'Years' },\n { n: 'Now', units: 'Now' }\n ];\n\n duration = first(duration, part => {\n return part.n !== 0;\n });\n ago = ago && duration.n !== 'Now';\n if (duration.n === 1) {\n duration.units = duration.units.replace(/s$/, '');\n }\n\n return duration\n ? {\n number: duration.n,\n units: duration.units\n }\n : null;\n}\n\nexport function humanizeFromNow(date: Date | string): IDurationDetails {\n return humanize(fromNow(date));\n}\n\nexport function fromNow(date: Date | string) {\n if (!(date instanceof Date)) {\n date = new Date(date);\n }\n\n const now = new Date();\n return getUTCDate(date).valueOf() - getUTCDate(now).valueOf();\n}\n\nexport function getUTCDate(date: Date) {\n return new Date(date.getTime() + date.getTimezoneOffset() * 60000);\n}\n\nexport function isOverTimeOffset(timeForCheck, timeOffset) {\n return new Date(timeForCheck).getTime() < new Date().getTime() - timeOffset;\n}\n\nexport function hasDatePassed(date: Date, targetDate: Date) {\n return targetDate.setHours(0, 0, 0, 0) <= date.setHours(0, 0, 0, 0);\n}\n\n// if it is in the current day returns time, before returns the date in format DD/MM/YY\nexport function getDateString(startDate: Date) {\n if (new Date().getTime() - startDate.getTime() < TimeInterval.DAY) {\n return startDate.toLocaleTimeString(navigator.language, { hour: 'numeric', minute: 'numeric' });\n } else {\n return `${startDate.getDate()}/${startDate.getMonth() + 1}/${startDate?.getFullYear().toString().substring(2, 4)}`;\n }\n}\n\nexport function toLocaleString(\n date: Date,\n locale: string = 'en-US',\n options: Intl.DateTimeFormatOptions = { hour: 'numeric', minute: 'numeric', hour12: true }\n) {\n return date.toLocaleString(locale, options);\n}\n\nexport function toLocaleDateString(date: Date, locale: string = 'en-US', options: Intl.DateTimeFormatOptions = {}) {\n return date.toLocaleDateString(locale, options);\n}\n\nexport function toLocaleMonthFormattedString(date: Date, locale: string = 'en-US') {\n return date.toLocaleDateString(locale, { day: 'numeric', month: 'long', year: 'numeric' });\n}\n\nfunction thresh(t: number, val: number): number {\n val = Math.round(val);\n\n return val < t ? val : 0;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction first(arr: any, func: Function): string {\n for (const item of arr) {\n if (func(item)) {\n return item;\n }\n }\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\n/**\n * mapping for Arm accounts region\n * when calling data place APIs, we will use this location\n * instead of the location of the account\n */\nexport const devEnvironmentMapping = [\n {\n url: 'vi-fe-dev1.cloudapp.azure.com',\n location: 'westus2',\n name: 'dev1'\n },\n {\n url: 'vi-fe-dev2.cloudapp.azure.com',\n location: 'westus2',\n name: 'dev2'\n },\n {\n url: 'vi-fe-dev3.cloudapp.azure.com',\n location: 'westus2',\n name: 'dev3'\n },\n {\n url: 'vi-fe-dev4.cloudapp.azure.com',\n location: 'westus2',\n name: 'dev4'\n },\n {\n url: 'vi-fe-dev5.cloudapp.azure.com',\n location: 'westus2',\n name: 'dev5'\n },\n {\n url: 'vi-fe-dev6.cloudapp.azure.com',\n location: 'westus2',\n name: 'dev6'\n },\n {\n url: 'vi-fe-dev9.cloudapp.azure.com',\n location: 'westus2',\n name: 'dev9'\n },\n {\n url: 'vi-fe-dev10.cloudapp.azure.com',\n location: 'westus2',\n name: 'dev10'\n },\n {\n url: 'vi-fe-dev11.cloudapp.azure.com',\n location: 'westus2',\n name: 'dev11'\n },\n {\n url: 'vi-fe-dev12.cloudapp.azure.com',\n location: 'westus2',\n name: 'dev12'\n },\n {\n url: 'vi-fe-dev13.cloudapp.azure.com',\n location: 'westus2',\n name: 'dev13'\n },\n {\n url: 'vi-fe-dev15.cloudapp.azure.com',\n location: 'westus2',\n name: 'dev15'\n }\n];\n\nexport const environment = {\n production: false,\n logger: true,\n apiBase: 'https://localhost:44303/',\n localhost: false,\n debug: true,\n mapArmLocation: true\n};\n","import { Component, ChangeDetectionStrategy, Input, EventEmitter, ChangeDetectorRef, Output } from '@angular/core';\n\nimport { ExpandIconPosition } from './interfaces';\n\n@Component({\n selector: 'vi-ui-accordion-item',\n templateUrl: './accordion-item.component.html',\n styleUrls: ['./accordion-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AccordionItemComponent {\n @Input() title: string;\n @Input() expandIconPosition = ExpandIconPosition.END;\n @Input() iconOpened = 'i-vi-arrow-up';\n @Input() iconClosed = 'i-vi-arrow-down';\n @Input() set opened(isOpen) {\n this._opened = isOpen;\n this.cdr.detectChanges();\n }\n\n @Output() toggle = new EventEmitter();\n\n public ExpandIconPosition = ExpandIconPosition;\n\n public get opened() {\n return this._opened;\n }\n\n private _opened = false;\n\n constructor(private cdr: ChangeDetectorRef) {}\n\n public get startPosition() {\n return this.expandIconPosition === ExpandIconPosition.START;\n }\n\n public get endPosition() {\n return this.expandIconPosition === ExpandIconPosition.END;\n }\n\n public get iconClass() {\n return this._opened ? this.iconOpened : this.iconClosed;\n }\n\n public onToggle() {\n this.toggle.emit(!this._opened);\n }\n}\n","
\n
\n {{title}}\n
\n \n \n
\n\n \n","export * from './accordion-item.component';\n","export enum ExpandIconPosition {\n START = 'start',\n END = 'end'\n}\n","import { Component, ChangeDetectionStrategy, QueryList, OnDestroy, Input, ContentChildren, AfterContentInit } from '@angular/core';\n\nimport { Subject, takeUntil } from 'rxjs';\n\nimport { AccordionItemComponent } from './../accordion-item/accordion-item.component';\nimport { AccordionMode } from './interfaces';\n\n@Component({\n selector: 'vi-ui-accordion',\n templateUrl: './accordion.component.html',\n styleUrls: ['./accordion.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AccordionComponent implements AfterContentInit, OnDestroy {\n @Input() mode = AccordionMode.DEFAULT;\n\n @ContentChildren(AccordionItemComponent) contentChildren: QueryList;\n private openedItemId: number;\n private destroy$ = new Subject();\n private accordionItemListener$: Subject;\n\n constructor() {}\n\n public ngOnDestroy(): void {\n this.stopItemsListeners();\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n public ngAfterContentInit() {\n this.setListeners();\n this.contentChildren.changes.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.handleContentChanges();\n });\n }\n\n private handleContentChanges(): void {\n // stop listeners for old content children\n if (this.accordionItemListener$) {\n this.stopItemsListeners();\n }\n // add listeners to the relevant items in the accordion\n this.setListeners();\n }\n\n private setListeners() {\n this.accordionItemListener$ = new Subject();\n\n this.contentChildren?.forEach((item: AccordionItemComponent, index: number) => {\n item.toggle.pipe(takeUntil(this.accordionItemListener$)).subscribe((value: boolean) => {\n this.handleClickedItem(item, value, index);\n });\n });\n }\n\n private handleClickedItem(item: AccordionItemComponent, value: boolean, index: number) {\n // default can open selected item only if it is closed\n const isItemNotOpened = value && index !== this.openedItemId;\n // other modes can close selected item\n if (!this.isDefaultMode || isItemNotOpened) {\n item.opened = value;\n this.openedItemId = index;\n // multiple mode allow having multiple opened items\n if (!this.isMultipleMode) {\n this.closeNotSelectedItems();\n }\n }\n }\n\n private closeNotSelectedItems() {\n this.contentChildren?.forEach((item: AccordionItemComponent, index: number) => {\n if (index !== this.openedItemId) {\n item.opened = false;\n }\n });\n }\n\n private get isDefaultMode() {\n return this.mode === AccordionMode.DEFAULT;\n }\n\n private get isMultipleMode() {\n return this.mode === AccordionMode.MULTIPLE;\n }\n\n private stopItemsListeners() {\n this.accordionItemListener$.next();\n this.accordionItemListener$.complete();\n }\n}\n","","export * from './accordion.component';\nexport * from './interfaces';\n","export enum AccordionMode {\n DEFAULT = 'default',\n COLLAPSIBLE = 'collapsible',\n MULTIPLE = 'multiple'\n}\n","import { Component, Input, ChangeDetectionStrategy, Output, EventEmitter, ElementRef, OnDestroy, AfterViewInit } from '@angular/core';\n\nimport { getKeyCode, KeyCode } from '../../utils';\n\nexport enum AlertMessageType {\n WARNING = 'warning',\n WARNING_INFO = 'warning-info',\n ERROR = 'error',\n SUCCESS = 'success',\n INFO = 'info'\n}\n\n@Component({\n selector: 'vi-ui-alert-message',\n templateUrl: './alert-message.component.html',\n styleUrls: ['./alert-message.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AlertMessageComponent implements AfterViewInit, OnDestroy {\n @Input() public type: AlertMessageType;\n @Input() public content: string;\n @Input() public contentTitle: string;\n @Input() public linkText?: string;\n @Input() public linkPath?: string;\n @Input() public isContentHtml = false;\n // isButton override linkPath. Only one of these inputs can be used.\n @Input() public isButton = false;\n @Output() public buttonClicked = new EventEmitter();\n @Output() public contentLinkClicked = new EventEmitter();\n\n constructor(private el: ElementRef) {}\n\n public ngAfterViewInit() {\n if (this.isContentHtml) {\n this.bindClickEvent();\n }\n }\n\n public ngOnDestroy() {\n const links = this.el.nativeElement.getElementsByClassName('link');\n\n for (const link of links) {\n link.removeEventListener('mouseup', this.handleLinkClick.bind(this));\n link.removeEventListener('keyup', this.handleLinkClick.bind(this));\n }\n }\n\n public onClick() {\n this.buttonClicked.emit();\n }\n\n private bindClickEvent() {\n const links = this.el.nativeElement.getElementsByClassName('link');\n\n for (const link of links) {\n link.addEventListener('mouseup', this.handleLinkClick.bind(this));\n link.addEventListener('keyup', this.handleEnterPressed.bind(this));\n }\n }\n\n private handleLinkClick(event: MouseEvent) {\n if (event && (event?.button || event?.buttons) === 0) {\n this.contentLinkClicked.emit();\n }\n }\n\n private handleEnterPressed(event: KeyboardEvent) {\n try {\n const key = getKeyCode(event);\n if (key === KeyCode.Enter) {\n this.contentLinkClicked.emit(event);\n }\n } catch (error) {}\n }\n}\n","
\n
\n \n \n \n
\n\n
\n \n {{ content }}\n \n \n \n \n
\n
\n","export * from './alert-message.component';\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\nimport { BadgeType } from './interface';\n\n@Component({\n selector: 'vi-ui-badge',\n templateUrl: './badge.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['./badge.component.scss']\n})\nexport class BadgeComponent {\n @Input() public type: BadgeType = BadgeType.Primary;\n}\n","\n \n\n","export * from './badge.component';\nexport * from './interface';\n","export enum BadgeType {\n Primary = 'primary',\n Secondary = 'secondary'\n}\n","import { ChangeDetectionStrategy, Component, Input, Output, EventEmitter, OnInit } from '@angular/core';\n\nimport { fluentCheckbox, provideFluentDesignSystem } from '@fluentui/web-components';\n\nimport { FocusableComponent } from '../focusable/focusable.component';\nimport { CheckboxSize, LabelSize } from './interfaces';\nimport { guid } from '../../utils/string/utils.string';\n\n@Component({\n selector: 'vi-ui-checkbox',\n templateUrl: './checkbox.component.html',\n styleUrl: './checkbox.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CheckboxComponent extends FocusableComponent implements OnInit {\n @Input() public checked = false;\n @Input() public label?: string;\n @Input() public disabled = false;\n @Input() public size?: CheckboxSize = CheckboxSize.Large;\n @Input() public labelSize?: LabelSize = LabelSize.Large;\n @Input() public ariaLabel?: string;\n @Output() public checkedChange = new EventEmitter(false);\n\n public id = `checkboxWithLabel${guid()}`;\n\n constructor() {\n super();\n }\n\n public ngOnInit() {\n provideFluentDesignSystem().register(fluentCheckbox());\n }\n\n public onCheckboxChange(event: Event) {\n const target = event.target as HTMLInputElement;\n this.checked = target.checked;\n this.checkedChange.emit(this.checked);\n }\n}\n","\n \n\n","export * from './checkbox.component';\n","export enum CheckboxSize {\n Small = 'small',\n Large = 'large'\n}\n\nexport enum LabelSize {\n Small = '12-16',\n Medium = '13-18',\n Large = '14-20'\n}\n","import { Component, OnInit, Injector } from '@angular/core';\n\nimport { AccessibilityModeHandlerService } from '../../services';\n\n@Component({\n selector: 'vi-ui-focusable',\n templateUrl: './focusable.component.html'\n})\nexport class FocusableComponent implements OnInit {\n private accessibilityModeHandler: AccessibilityModeHandlerService;\n\n constructor() {\n // Get Accessibility mode service\n const injector = Injector.create({ providers: [{ provide: AccessibilityModeHandlerService, deps: [] }] });\n this.accessibilityModeHandler = injector.get(AccessibilityModeHandlerService);\n }\n\n public ngOnInit() {}\n\n public get accessibilityMode() {\n return this.accessibilityModeHandler.AccessibilityMode;\n }\n\n public get accessibilityModeSubject() {\n return this.accessibilityModeHandler.AccessibilityModeSubject;\n }\n}\n","

\n focusable works!\n

\n","export * from './focusable.component';\n","export * from './alert-message';\nexport * from './tag';\nexport * from './tag-container';\nexport * from './input';\nexport * from './nav-bar';\nexport * from './link';\nexport * from './text';\nexport * from './textarea';\nexport * from './label';\nexport * from './progress-bar';\nexport * from './accordion';\nexport * from './accordion-item';\nexport * from './switch';\nexport * from './focusable';\nexport * from './shimmer';\nexport * from './checkbox';\nexport * from './rounded-checkbox';\nexport * from './table';\nexport * from './badge';\n","export * from './input.component';\nexport * from './intefaces';\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\nimport { guid } from '../../utils';\nimport { IconProps, InputType } from './intefaces';\n\n@Component({\n selector: 'vi-ui-input',\n templateUrl: './input.component.html',\n styleUrls: ['./input.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class InputComponent {\n @Input() type: InputType = InputType.Text;\n @Input() label: string;\n @Input() value: string | number;\n @Input() placeholder: string = '';\n @Input() id: string = guid();\n @Input() disabled: boolean = false;\n\n @Input() min?: number;\n @Input() max?: number;\n\n @Input() icon: IconProps;\n @Input() errorMessage: string;\n @Input() required: boolean;\n @Input() maxLength: number;\n @Output() inputChanged = new EventEmitter();\n\n public get error() {\n return !!this.errorMessage;\n }\n}\n","
\n \n \n \n \n \n {{ errorMessage }}\n \n
\n","export enum IconType {\n OK = 'ok',\n Error = 'error',\n Loading = 'loading',\n Warning = 'warning',\n Info = 'info'\n}\n\nexport enum InputType {\n Text = 'text',\n Password = 'password',\n Email = 'email',\n Number = 'number',\n Tel = 'tel',\n Url = 'url'\n}\nexport interface IconProps {\n type: IconType;\n}\n","export * from './label.component';\n","import { Component, ChangeDetectionStrategy, Input } from '@angular/core';\n\nimport { guid } from '../../utils';\n\n@Component({\n selector: 'vi-ui-label',\n templateUrl: './label.component.html',\n styleUrls: ['./label.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LabelComponent {\n @Input() value: string;\n @Input() disabled: boolean;\n @Input() required: boolean;\n @Input() for: string = guid();\n @Input() id: string = guid();\n\n constructor() {}\n}\n","","export * from './link.component';\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, OnDestroy, Output } from '@angular/core';\n\nimport { Subject, take, takeUntil } from 'rxjs';\n\nimport { FocusableComponent } from '../focusable';\nimport { TextComponent } from '../text';\n\n@Component({\n selector: 'vi-ui-link',\n templateUrl: './link.component.html',\n styleUrls: ['./link.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LinkComponent extends FocusableComponent implements OnDestroy {\n @Input() text: string;\n @Input() href: string = 'javascript:void(0)';\n @Input() role: string = 'link';\n @Input() target: string = '_blank';\n @Input() size: TextComponent['size'];\n @Input() inline?: boolean = false;\n @Input() iconClass?: string;\n @Input() iconColor: string = 'var(--primary)';\n @Input() color: string = 'var(--primary)';\n @Input() highContrast?: boolean = false;\n @Input() highContrastColor?: string = 'var(--primary-press)';\n @Output() linkClicked = new EventEmitter();\n\n private destroy$ = new Subject();\n\n constructor(private cdr: ChangeDetectorRef) {\n super();\n this.accessibilityModeSubject.pipe(takeUntil(this.destroy$), take(1)).subscribe(() => {\n this.cdr.detectChanges();\n });\n }\n\n public ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n public get linkColor(): string {\n if (this.highContrast && this.highContrastColor) {\n return this.highContrastColor;\n }\n return this.color;\n }\n}\n","@if (iconClass) {\n\n}\n\n \n \n","export * from './nav-bar.component';\nexport * from './interfaces';\n","export interface NavBarItem {\n id: string;\n text: string;\n key?: string;\n hidden?: boolean;\n disable?: boolean;\n children?: NavBarItem[];\n expanded?: boolean;\n expandTitleAttribute?: string;\n collapseTitleAttribute?: string;\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\nimport { NavBarItem } from './interfaces';\n\n@Component({\n selector: 'vi-ui-nav-bar',\n templateUrl: './nav-bar.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['./nav-bar.component.scss']\n})\nexport class NavBarComponent implements OnInit {\n @Input() public items: NavBarItem[];\n @Input() public selectedItemId?: string;\n\n @Output() public itemSelected = new EventEmitter();\n @Output() public itemExpanded = new EventEmitter();\n\n public isFlat: boolean;\n\n constructor(private cdr: ChangeDetectorRef) {}\n\n public ngOnInit() {\n this.isFlat = !this.items.some((item: NavBarItem) => item.children !== undefined);\n }\n\n public onSelectItem(selectedItem: NavBarItem) {\n if (selectedItem.children !== undefined) {\n this.toggleItem(selectedItem);\n return;\n }\n\n this.selectedItemId = selectedItem.id;\n this.itemSelected.emit(this.selectedItemId);\n this.cdr.detectChanges();\n }\n\n public toggleItem(itemToToggle: NavBarItem) {\n itemToToggle.expanded = !itemToToggle.expanded;\n\n if (itemToToggle.expanded) {\n this.itemExpanded.emit(itemToToggle.id);\n }\n\n this.cdr.detectChanges();\n }\n}\n","\n
  • \n \n \n {{item.text}}\n \n
  • \n
  • \n
      \n \n \n \n \n
    \n
  • \n
    \n\n
      \n \n \n \n \n
    ","export * from './progress-bar.component';\n","export enum ProgressBarMode {\n DETERMINATE = 'determinate',\n INDETERMINATE = 'indeterminate',\n BUFFER = 'buffer',\n QUERY = 'query'\n}\n\nexport enum ProgressStyle {\n DEFAULT = 'default',\n SUCCESS = 'success',\n WARNING = 'warning',\n ERROR = 'error'\n}\n","import { Component, ChangeDetectionStrategy, Input, ViewEncapsulation } from '@angular/core';\n\nimport { ProgressBarMode, ProgressStyle } from './interfaces';\n\n@Component({\n selector: 'vi-ui-progress-bar',\n templateUrl: './progress-bar.component.html',\n styleUrls: ['./progress-bar.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n // encapsulation none for avoiding using ng-deep to style mat-progress-bar in VI style\n encapsulation: ViewEncapsulation.None\n})\nexport class ProgressBarComponent {\n @Input() mode = ProgressBarMode.DETERMINATE;\n @Input() progressStyle = ProgressStyle.DEFAULT;\n @Input() value = 0;\n @Input() progressAriaLabel: string;\n}\n","\n","export * from './rounded-checkbox.component';\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'vi-ui-rounded-checkbox',\n templateUrl: './rounded-checkbox.component.html',\n styleUrls: ['./rounded-checkbox.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class RoundedCheckboxComponent {\n @Input() public show = false;\n @Input() public selected = false;\n @Input() public focused = true;\n // passing ariaLabelledby of the element/component's name the rounded checkbox is referring to\n @Input() public ariaLabelledby = '';\n @Output() public clicked = new EventEmitter();\n\n constructor() {}\n\n public handleClick() {\n this.clicked.emit();\n }\n}\n","
    \n \n \n
    ","export * from './shimmer.component';\n","export enum ShimmerElementType {\n CHECKBOX = 'checkbox',\n ROW = 'row',\n SHORT_ROW = 'short_row'\n}\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\n\nimport { ShimmerElementType } from './interfaces';\n\n@Component({\n selector: 'vi-ui-shimmer',\n templateUrl: './shimmer.component.html',\n styleUrls: ['./shimmer.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ShimmerComponent implements OnInit {\n @Input() elementType: ShimmerElementType;\n @Input() numOfElements: number;\n\n public elements: number[];\n\n public ShimmerElementType = ShimmerElementType;\n\n public ngOnInit() {\n this.elements = new Array(this.numOfElements);\n }\n}\n","\n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    ","export * from './switch.component';\n","import { Component, ChangeDetectionStrategy, Input, Output, EventEmitter, OnInit } from '@angular/core';\n\nimport { FocusableComponent } from '../focusable';\n\n@Component({\n selector: 'vi-ui-switch',\n templateUrl: './switch.component.html',\n styleUrls: ['./switch.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SwitchComponent extends FocusableComponent implements OnInit {\n @Input() public checked = false;\n @Input() public title: string;\n @Input() public disabled: boolean = false;\n @Input() public debounceDelay: boolean = true;\n @Output() public checkedChange = new EventEmitter();\n\n constructor() {\n super();\n }\n\n public onChange() {\n this.checked = !this.checked;\n if (!this.debounceDelay) {\n this.checkedChange.emit(this.checked);\n }\n }\n\n public debounceCheckedChange() {\n if (this.debounceDelay) {\n this.checkedChange.emit(this.checked);\n }\n }\n}\n","
    \n \n
    \n","export * from './table.component';\nexport * from './interfaces';\n","import { Type } from '@angular/core';\nimport { SortDirection } from '@angular/material/sort';\n\nexport interface ITableColumnConfig {\n name: string;\n key: string;\n width?: string;\n padding?: string;\n component?: Type;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n componentInputs?: { [key: string]: (item) => any };\n sortable?: boolean;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n sortMethod?: (a: any, b: any) => number;\n}\n\nexport enum ITableStyleType {\n DEFAULT = 'default',\n COMPACT = 'compact'\n}\n\nexport interface ITableSort {\n key: string;\n direction: SortDirection;\n}\n\nexport interface ISelectionState {\n item: T;\n isSelected: boolean;\n}\n","import { Sort } from '@angular/material/sort';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n QueryList,\n Renderer2,\n SimpleChanges,\n ViewChild,\n ViewChildren,\n ViewContainerRef\n} from '@angular/core';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';\nimport { MatTableDataSource } from '@angular/material/table';\n\nimport { filter, map, pairwise, throttleTime, withLatestFrom } from 'rxjs';\n\nimport { FocusableComponent } from '../focusable';\nimport { ISelectionState, ITableColumnConfig, ITableSort, ITableStyleType } from './interfaces';\nimport { TableVirtualScrollDataSource } from './vs-for-table/table-data-source';\n\n@Component({\n selector: 'vi-ui-table',\n templateUrl: `./table.component.html`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['./table.component.scss']\n})\nexport class TableComponent extends FocusableComponent implements OnInit, OnChanges, AfterViewInit {\n @ViewChild(CdkVirtualScrollViewport) viewport: CdkVirtualScrollViewport;\n @ViewChildren('componentCell', { read: ViewContainerRef }) containers: QueryList;\n\n @Input() public items: T[];\n @Input() public columnsConfig: ITableColumnConfig[];\n\n @Input() public styleType: ITableStyleType = ITableStyleType.DEFAULT;\n @Input() public selectable = false;\n @Input() public allowMultiSelect = true;\n @Input() public initialSelection = [];\n @Input() public isLoading = false;\n @Input() public isVirtualScrollActive = false;\n\n @Output() public itemSelected = new EventEmitter>();\n @Output() public allItemSelected = new EventEmitter();\n @Output() public sort = new EventEmitter();\n @Output() public loadMore = new EventEmitter();\n\n public selection: SelectionModel;\n public dataSource: MatTableDataSource;\n public ITableStyleType = ITableStyleType;\n // Please avoid changing this to 'select' to prevent Material from applying styles that do not align with our design.\n public SELECT_COLUMN = 'select_column';\n public showHeaderSelection = false;\n\n private readonly ROW_HEIGHTS = {\n [ITableStyleType.DEFAULT]: 43,\n [ITableStyleType.COMPACT]: 33\n };\n\n constructor(private cdr: ChangeDetectorRef, private elementRef: ElementRef, private renderer: Renderer2) {\n super();\n }\n\n public get rowHeight() {\n return this.ROW_HEIGHTS[this.styleType];\n }\n\n public get displayedColumns() {\n const itemsColumns = this.columnsConfig.map(column => column.key);\n if (this.selectable) {\n return [this.SELECT_COLUMN, ...itemsColumns];\n }\n return itemsColumns;\n }\n\n public ngOnInit() {\n this.initializeDataSource();\n if (this.selectable) {\n this.selection = new SelectionModel(this.allowMultiSelect, this.initialSelection);\n }\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n if (this.dataSource && changes.items) {\n this.dataSource.data = this.items;\n if (this.selectable) {\n this.selection = new SelectionModel(this.allowMultiSelect, this.initialSelection);\n }\n\n this.cdr.detectChanges();\n this.setupVirtualScroll();\n }\n }\n\n public ngAfterViewInit() {\n this.setupVirtualScroll();\n }\n\n public isAllSelected() {\n const numSelected = this.selection.selected.length;\n const numRows = this.items.length;\n return numSelected == numRows;\n }\n\n public toggleAllRows() {\n const isAllSelected = this.isAllSelected();\n isAllSelected ? this.selection.clear() : this.items.forEach(item => this.selection.select(item));\n this.allItemSelected.emit(!isAllSelected);\n }\n\n public toggleRow(item: T) {\n this.selection.toggle(item);\n this.itemSelected.emit({ item, isSelected: this.selection.isSelected(item) });\n }\n\n public sortData(sort: Sort) {\n const column = this.columnsConfig[sort.active];\n if (!column.sortMethod) {\n this.sort.emit({ key: column.key, direction: sort.direction });\n return;\n }\n const data = this.items.slice();\n if (!column.sortable || !sort.active || sort.direction === '') {\n return;\n }\n this.dataSource.data = data.sort((item1, item2) => {\n const isAsc = sort.direction === 'asc';\n const comparisonResult = column.sortMethod(item1, item2);\n return comparisonResult * (isAsc ? 1 : -1);\n });\n }\n\n public trackByIndex(index: number): number {\n return index;\n }\n\n public setItemHovered(row, isHovered: boolean) {\n row.isHovered = isHovered;\n }\n\n private initializeDataSource() {\n if (this.isVirtualScrollActive) {\n this.dataSource = new TableVirtualScrollDataSource(this.items);\n return;\n }\n this.dataSource = new MatTableDataSource(this.items);\n }\n\n private setupVirtualScroll() {\n if (this.isVirtualScrollActive) {\n this.containers.changes.pipe(withLatestFrom((this.dataSource as TableVirtualScrollDataSource).dataOfRange$)).subscribe(([, data]) => {\n this.setCustomColumns(this.sortedContainers, data);\n });\n } else {\n this.setCustomColumns(this.containers.toArray(), this.items);\n }\n\n this.viewport\n .elementScrolled()\n .pipe(\n map(() => this.viewport.measureScrollOffset('bottom')),\n pairwise(),\n filter(([previousOffset, currentOffset]) => {\n const isScrollingDown = currentOffset < previousOffset;\n const isNearBottom = currentOffset < this.rowHeight * 2; // within the last 2 rows\n return isScrollingDown && isNearBottom;\n }),\n throttleTime(200)\n )\n .subscribe(() => {\n this.loadMore.emit();\n });\n }\n\n /**\n * Sets columns that show component in the cells.\n *\n * For each column that should show component, it creates an instance of the component and assigns it to the corresponding container.\n * It also sets the component's inputs based on the `componentInputs` configuration.\n */\n private setCustomColumns(containers, data) {\n let index = 0;\n this.columnsConfig.forEach(column => {\n if (!column?.component) {\n return;\n }\n\n const componentClass = column.component;\n\n data.forEach(item => {\n const container = containers[index++];\n container.clear();\n const component = container.createComponent(componentClass);\n Object.entries(column.componentInputs).forEach(([key, factory]) => {\n component.instance[key] = factory(item);\n });\n });\n this.cdr.detectChanges();\n });\n }\n\n /**\n * Retrieves the containers sorted by columns.\n *\n * This getter method converts the containers into an array and divides them into columns based on the number of columns containing components.\n * It then sorts the containers within each column.\n *\n * @returns An array of sorted containers.\n *\n * @remarks\n * Sorting containers is crucial for correctly mapping the containers to their respective columns.\n */\n private get sortedContainers() {\n const containersArray = this.containers.toArray();\n const numContainersInEachColumn = containersArray.length / this.columnsWithComponent;\n const containersColumns = [];\n for (let i = 0; i < this.containers.length; i += numContainersInEachColumn) {\n containersColumns.push(this.containers.toArray().slice(i, i + numContainersInEachColumn));\n }\n\n const sortedContainers = containersColumns.map(array => this.sortContainers(array));\n return [].concat(...sortedContainers);\n }\n\n private sortContainers(containers: ViewContainerRef[]) {\n // Sort containers based on their position in the DOM, This is needed when scroll up and new container is created above the existing ones\n return containers.sort((a, b) =>\n a.element.nativeElement.compareDocumentPosition(b.element.nativeElement) === Node.DOCUMENT_POSITION_PRECEDING ? 1 : -1\n );\n }\n\n private get columnsWithComponent() {\n return this.columnsConfig.reduce((count, column) => (column.component ? count + 1 : count), 0);\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 {{column.name}}\n \n
    \n {{item[column.key]}}\n
    \n\n\n
    \n \n
    \n\n
    \n \n \n \n \n \n
    \n @if (isLoading) {\n
    \n
    \n \n
    \n
    \n }\n
    ","import { Injectable } from '@angular/core';\nimport { CdkVirtualScrollViewport, VirtualScrollStrategy } from '@angular/cdk/scrolling';\nimport { ListRange } from '@angular/cdk/collections';\n\nimport { distinctUntilChanged } from 'rxjs/operators';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\n\nexport interface TSVStrategyConfigs {\n rowHeight: number;\n headerHeight: number;\n footerHeight: number;\n bufferMultiplier: number;\n}\n\n@Injectable()\nexport class FixedSizeTableVirtualScrollStrategy implements VirtualScrollStrategy {\n public viewport: CdkVirtualScrollViewport;\n public renderedRangeStream = new BehaviorSubject({ start: 0, end: 0 });\n public scrolledIndexChange: Observable;\n public stickyChange = new Subject();\n\n private rowHeight!: number;\n private headerHeight!: number;\n private footerHeight!: number;\n private bufferMultiplier!: number;\n private indexChange = new Subject();\n private _dataLength = 0;\n\n public get dataLength(): number {\n return this._dataLength;\n }\n\n public set dataLength(value: number) {\n if (value !== this._dataLength) {\n this._dataLength = value;\n this.onDataLengthChanged();\n }\n }\n\n constructor() {\n this.scrolledIndexChange = this.indexChange.pipe(distinctUntilChanged());\n }\n\n public attach(viewport: CdkVirtualScrollViewport): void {\n this.viewport = viewport;\n this.viewport.renderedRangeStream.subscribe(this.renderedRangeStream);\n this.stickyChange.next(0);\n this.onDataLengthChanged();\n }\n\n public detach(): void {\n this.indexChange.complete();\n this.stickyChange.complete();\n this.renderedRangeStream.complete();\n }\n\n public onContentScrolled(): void {\n this.updateContent();\n }\n\n public onDataLengthChanged(): void {\n if (this.viewport) {\n const contentSize = this.dataLength * this.rowHeight + this.headerHeight + this.footerHeight;\n this.viewport.setTotalContentSize(contentSize);\n const viewportSize = this.viewport.getViewportSize();\n if (this.viewport.measureScrollOffset() + viewportSize >= contentSize) {\n this.viewport.scrollToOffset(contentSize - viewportSize);\n }\n }\n this.updateContent();\n }\n\n public onContentRendered(): void {}\n\n public onRenderedOffsetChanged(): void {}\n\n public scrollToIndex(index: number, behavior?: ScrollBehavior): void {\n if (!this.viewport || !this.rowHeight) {\n return;\n }\n this.viewport.scrollToOffset((index - 1) * this.rowHeight + this.headerHeight, behavior);\n }\n\n public setConfig(configs: TSVStrategyConfigs) {\n const { rowHeight, headerHeight, footerHeight, bufferMultiplier } = configs;\n if (\n this.rowHeight === rowHeight &&\n this.headerHeight === headerHeight &&\n this.footerHeight === footerHeight &&\n this.bufferMultiplier === bufferMultiplier\n ) {\n return;\n }\n this.rowHeight = rowHeight;\n this.headerHeight = headerHeight;\n this.footerHeight = footerHeight;\n this.bufferMultiplier = bufferMultiplier;\n this.onDataLengthChanged();\n }\n\n private updateContent() {\n if (!this.viewport || !this.rowHeight) {\n return;\n }\n\n // Calculate the offset to the start of the rendered content\n const renderedOffset = this.viewport.getOffsetToRenderedContentStart();\n // Determine the start index based on the rendered offset and row height\n const start = renderedOffset / this.rowHeight;\n // Calculate the number of items that can be displayed in the viewport\n const itemsDisplayed = Math.ceil(this.viewport.getViewportSize() / this.rowHeight);\n // Calculate the number of buffer items to render before and after the visible items\n const bufferItems = Math.ceil(itemsDisplayed * this.bufferMultiplier);\n // Determine the end index based on the start index, items displayed, and buffer items\n const end = start + itemsDisplayed + 2 * bufferItems;\n\n // Calculate the buffer offset and the current scroll offset\n const bufferOffset = renderedOffset + bufferItems * this.rowHeight;\n const scrollOffset = this.viewport.measureScrollOffset();\n\n // Calculate how far the scroll offset is from the lower buffer, which is usually where items start being displayed\n const relativeScrollOffset = scrollOffset - bufferOffset;\n // Determine the number of rows scrolled based on the relative scroll offset and row height\n const rowsScrolled = relativeScrollOffset / this.rowHeight;\n\n // Calculate the displayed index based on the scroll offset and row height\n const displayed = scrollOffset / this.rowHeight;\n this.indexChange.next(displayed);\n\n // Only bother updating the displayed information if we've scrolled more than a row\n const rowSensitivity = 1.0;\n if (Math.abs(rowsScrolled) < rowSensitivity) {\n this.viewport.setRenderedContentOffset(renderedOffset);\n this.viewport.setRenderedRange({ start, end });\n return;\n }\n\n // Special case for the start of the table.\n // At the top of the table, the first few rows are first rendered because they're visible, and then still rendered\n // Because they move into the buffer. So we only need to change what's rendered once the user scrolls far enough down.\n if (renderedOffset === 0 && rowsScrolled < 0) {\n this.viewport.setRenderedContentOffset(renderedOffset);\n this.viewport.setRenderedRange({ start, end });\n return;\n }\n\n // Calculate the number of rows to move based on the rows scrolled\n const rowsToMove = Math.sign(rowsScrolled) * Math.floor(Math.abs(rowsScrolled));\n // Adjust the rendered offset based on the rows to move\n const adjustedRenderedOffset = Math.max(0, renderedOffset + rowsToMove * this.rowHeight);\n this.viewport.setRenderedContentOffset(adjustedRenderedOffset);\n\n // Adjust the start and end indices based on the rows to move\n const adjustedStart = Math.max(0, start + rowsToMove);\n const adjustedEnd = adjustedStart + itemsDisplayed + 2 * bufferItems;\n this.viewport.setRenderedRange({ start: adjustedStart, end: adjustedEnd });\n\n // Notify about the sticky change\n this.stickyChange.next(adjustedRenderedOffset);\n }\n}\n","import { MatTableDataSource } from '@angular/material/table';\nimport { MatSort, Sort } from '@angular/material/sort';\nimport { MatPaginator, PageEvent } from '@angular/material/paginator';\n\nimport { map } from 'rxjs/operators';\nimport { BehaviorSubject, combineLatest, merge, Observable, of, ReplaySubject, Subject, Subscription } from 'rxjs';\n\nexport class TableVirtualScrollDataSource extends MatTableDataSource {\n public dataToRender$: Subject; // Complete dataset\n public dataOfRange$: Subject; // Data currently displayed in the DOM\n private streamsReady: boolean;\n\n public _updateChangeSubscription() {\n this.initStreams();\n const _sort: MatSort | null = this['_sort'];\n const _paginator: MatPaginator | null = this['_paginator'];\n const _internalPageChanges: Subject = this['_internalPageChanges'];\n const _filter: BehaviorSubject = this['_filter'];\n const _renderData: BehaviorSubject = this['_renderData'];\n\n const sortChange: Observable = _sort ? (merge(_sort.sortChange, _sort.initialized) as Observable) : of(null);\n const pageChange: Observable = _paginator\n ? (merge(_paginator.page, _internalPageChanges, _paginator.initialized) as Observable)\n : of(null);\n const dataStream: Observable = this['_data'];\n const filteredData = combineLatest([dataStream, _filter]).pipe(map(([data]) => this._filterData(data)));\n const orderedData = combineLatest([filteredData, sortChange]).pipe(map(([data]) => this._orderData(data)));\n const paginatedData = combineLatest([orderedData, pageChange]).pipe(map(([data]) => this._pageData(data)));\n\n this._renderChangesSubscription?.unsubscribe();\n this._renderChangesSubscription = new Subscription();\n this._renderChangesSubscription.add(paginatedData.subscribe(data => this.dataToRender$.next(data)));\n this._renderChangesSubscription.add(this.dataOfRange$.subscribe(data => _renderData.next(data)));\n }\n\n private initStreams() {\n if (!this.streamsReady) {\n this.dataToRender$ = new ReplaySubject(1);\n this.dataOfRange$ = new ReplaySubject(1);\n this.streamsReady = true;\n }\n }\n}\n","import { VIRTUAL_SCROLL_STRATEGY } from '@angular/cdk/scrolling';\nimport { CanStick, CdkTableDataSourceInput } from '@angular/cdk/table';\nimport { AfterContentInit, ContentChild, Directive, forwardRef, Input, NgZone, OnChanges, OnDestroy } from '@angular/core';\nimport { MatTable } from '@angular/material/table';\n\nimport { combineLatest, from, Subject } from 'rxjs';\nimport { delayWhen, distinctUntilChanged, map, startWith, switchMap, take, takeUntil, tap } from 'rxjs/operators';\n\nimport { FixedSizeTableVirtualScrollStrategy } from './fixed-size-table-virtual-scroll-strategy';\nimport { TableVirtualScrollDataSource } from './table-data-source';\n\nexport function _tableVirtualScrollDirectiveStrategyFactory(tableDir: TableItemSizeDirective) {\n return tableDir.scrollStrategy;\n}\n\nfunction combineSelectors(...pairs: string[][]): string {\n return pairs.map(selectors => `${selectors.join(' ')}, ${selectors.join('')}`).join(', ');\n}\n\nconst stickyHeaderSelector = combineSelectors(\n ['.mat-mdc-header-row', '.mat-mdc-table-sticky'],\n ['.mat-header-row', '.mat-table-sticky'],\n ['.cdk-header-row', '.cdk-table-sticky']\n);\n\nconst stickyFooterSelector = combineSelectors(\n ['.mat-mdc-footer-row', '.mat-mdc-table-sticky'],\n ['.mat-footer-row', '.mat-table-sticky'],\n ['.cdk-footer-row', '.cdk-table-sticky']\n);\n\nconst defaults = {\n rowHeight: 43,\n headerHeight: 33,\n headerEnabled: true,\n footerHeight: 48,\n footerEnabled: false,\n bufferMultiplier: 0.7\n};\n\n@Directive({\n // [vi adaptation] update selector name to match vi directive convention\n selector: 'cdk-virtual-scroll-viewport[viUiItemSize]',\n providers: [\n {\n provide: VIRTUAL_SCROLL_STRATEGY,\n useFactory: _tableVirtualScrollDirectiveStrategyFactory,\n deps: [forwardRef(() => TableItemSizeDirective)]\n }\n ]\n})\nexport class TableItemSizeDirective implements OnChanges, AfterContentInit, OnDestroy {\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('viUiItemSize') rowHeight: string | number;\n\n @Input() headerEnabled: boolean = defaults.headerEnabled;\n\n @Input() headerHeight: string | number = defaults.headerHeight;\n\n @Input() footerEnabled: boolean = defaults.footerEnabled;\n\n @Input() footerHeight: string | number = defaults.footerHeight;\n\n @Input() bufferMultiplier: string | number = defaults.bufferMultiplier;\n\n @ContentChild(MatTable, { static: false }) table: MatTable;\n\n public scrollStrategy = new FixedSizeTableVirtualScrollStrategy();\n\n public dataSourceChanges = new Subject();\n\n private stickyPositions: Map;\n private resetStickyPositions = new Subject();\n private stickyEnabled = {\n header: false,\n footer: false\n };\n private destroyed$ = new Subject();\n\n constructor(private zone: NgZone) {}\n\n public ngOnDestroy() {\n this.destroyed$.next();\n this.destroyed$.complete();\n this.dataSourceChanges.complete();\n }\n\n public ngAfterContentInit() {\n // the directive is active only when rowHeight is provided\n if (!this.rowHeight) {\n return;\n }\n const switchDataSourceOrigin = this.table['_switchDataSource'];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.table['_switchDataSource'] = (dataSource: any) => {\n switchDataSourceOrigin.call(this.table, dataSource);\n this.connectDataSource(dataSource);\n };\n\n const updateStickyColumnStylesOrigin = this.table.updateStickyColumnStyles;\n this.table.updateStickyColumnStyles = () => {\n const stickyColumnStylesNeedReset = this.table['_stickyColumnStylesNeedReset'];\n updateStickyColumnStylesOrigin.call(this.table);\n if (stickyColumnStylesNeedReset) {\n this.resetStickyPositions.next();\n }\n };\n\n this.connectDataSource(this.table.dataSource);\n\n combineLatest([\n this.scrollStrategy.stickyChange,\n this.resetStickyPositions.pipe(\n startWith(void 0),\n delayWhen(() => this.getScheduleObservable()),\n tap(() => {\n this.stickyPositions = null;\n })\n )\n ])\n .pipe(takeUntil(this.destroyed$))\n .subscribe(([stickyOffset]) => {\n if (!this.stickyPositions) {\n this.initStickyPositions();\n }\n if (this.stickyEnabled.header) {\n this.setStickyHeader(stickyOffset);\n }\n if (this.stickyEnabled.footer) {\n this.setStickyFooter(stickyOffset);\n }\n });\n }\n\n public ngOnChanges() {\n // the directive is active only when rowHeight is provided\n if (!this.rowHeight) {\n return;\n }\n const config = {\n rowHeight: +this.rowHeight || defaults.rowHeight,\n headerHeight: this.headerEnabled ? +this.headerHeight || defaults.headerHeight : 0,\n footerHeight: this.footerEnabled ? +this.footerHeight || defaults.footerHeight : 0,\n bufferMultiplier: +this.bufferMultiplier || defaults.bufferMultiplier\n };\n this.scrollStrategy.setConfig(config);\n }\n\n private connectDataSource(dataSource: CdkTableDataSourceInput) {\n (dataSource as TableVirtualScrollDataSource).dataToRender$\n .pipe(\n distinctUntilChanged(),\n takeUntil(this.dataSourceChanges),\n takeUntil(this.destroyed$),\n tap(data => (this.scrollStrategy.dataLength = data.length)),\n switchMap(data =>\n this.scrollStrategy.renderedRangeStream.pipe(\n map(({ start, end }) => (typeof start !== 'number' || typeof end !== 'number' ? data : data.slice(start, end)))\n )\n )\n )\n .subscribe(data => {\n this.zone.run(() => {\n (dataSource as TableVirtualScrollDataSource).dataOfRange$.next(data);\n });\n });\n }\n\n private setStickyEnabled(): boolean {\n if (!this.scrollStrategy.viewport) {\n this.stickyEnabled = {\n header: false,\n footer: false\n };\n return;\n }\n\n const isEnabled = (rowDefs: CanStick[]) => rowDefs.map(def => def.sticky).reduce((prevState, state) => prevState && state, true);\n\n this.stickyEnabled = {\n header: isEnabled(this.table['_headerRowDefs']),\n footer: isEnabled(this.table['_footerRowDefs'])\n };\n }\n\n private setStickyHeader(offset: number) {\n this.scrollStrategy.viewport.elementRef.nativeElement.querySelectorAll(stickyHeaderSelector).forEach((el: HTMLElement) => {\n const parent = el.parentElement;\n let baseOffset = 0;\n if (this.stickyPositions.has(parent)) {\n baseOffset = this.stickyPositions.get(parent);\n }\n el.style.top = `${baseOffset - offset}px`;\n });\n }\n\n private setStickyFooter(offset: number) {\n this.scrollStrategy.viewport.elementRef.nativeElement.querySelectorAll(stickyFooterSelector).forEach((el: HTMLElement) => {\n const parent = el.parentElement;\n let baseOffset = 0;\n if (this.stickyPositions.has(parent)) {\n baseOffset = this.stickyPositions.get(parent);\n }\n el.style.bottom = `${-baseOffset + offset}px`;\n });\n }\n\n private initStickyPositions() {\n this.stickyPositions = new Map();\n\n this.setStickyEnabled();\n\n if (this.stickyEnabled.header) {\n this.scrollStrategy.viewport.elementRef.nativeElement.querySelectorAll(stickyHeaderSelector).forEach(el => {\n const parent = el.parentElement;\n if (!this.stickyPositions.has(parent)) {\n this.stickyPositions.set(parent, parent.offsetTop);\n }\n });\n }\n\n if (this.stickyEnabled.footer) {\n this.scrollStrategy.viewport.elementRef.nativeElement.querySelectorAll(stickyFooterSelector).forEach(el => {\n const parent = el.parentElement;\n if (!this.stickyPositions.has(parent)) {\n this.stickyPositions.set(parent, -parent.offsetTop);\n }\n });\n }\n }\n\n private getScheduleObservable() {\n // Use onStable when in the context of an ongoing change detection cycle so that we\n // do not accidentally trigger additional cycles.\n return this.zone.isStable ? from(Promise.resolve(undefined)) : this.zone.onStable.pipe(take(1));\n }\n}\n","export * from './tag-container.component';\nexport * from './interfaces';\n","import { TagType } from '../tag';\n\nexport interface ITag {\n content: string;\n id: string;\n type?: TagType;\n term?: string;\n enableRemove?: boolean;\n removeTagTitleAttribute?: string;\n}\n","import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy, ChangeDetectorRef } from '@angular/core';\n\nimport { guid } from '../../utils';\nimport { ITag } from './interfaces';\n\n@Component({\n selector: 'vi-ui-tag-container',\n templateUrl: './tag-container.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['./tag-container.component.scss']\n})\nexport class TagContainerComponent {\n @Input() public tags: ITag[];\n @Input() label: string;\n\n @Output() public tagRemoved = new EventEmitter();\n\n public containerId: string = 'tag-container_' + guid();\n\n constructor(private cdr: ChangeDetectorRef) {}\n\n public removeTag(tagId: string): void {\n this.tags = this.tags.filter((tag: ITag) => tag.id !== tagId);\n this.tagRemoved.emit(tagId);\n this.cdr.detectChanges();\n }\n\n public trackById(index: number, tag: ITag): string {\n return tag.id;\n }\n}\n","
    \n \n \n
    \n \n \n
    \n
    ","export * from './tag.component';\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output } from '@angular/core';\n\nimport { upperFirst } from 'lodash-es';\n\nexport enum TagType {\n REST = 'rest',\n ERROR = 'error'\n}\n\n@Component({\n selector: 'vi-ui-tag',\n templateUrl: './tag.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['./tag.component.scss']\n})\nexport class TagComponent {\n @Input() public type: TagType = TagType.REST;\n @Input() public content: string;\n @Input() public enableRemove: boolean = true;\n @Input() public term?: string = '';\n @Input() public removeTagTitleAttribute?: string;\n\n @Output() public closeClicked = new EventEmitter();\n\n constructor(private cdr: ChangeDetectorRef) {}\n\n public onRemoveTag() {\n this.closeClicked.emit();\n this.cdr.detectChanges();\n }\n\n private get formattedTerm() {\n return upperFirst(this.term.toLowerCase());\n }\n}\n","
    \n \n \n {{formattedTerm}}:\n \n {{content}}\n \n \n
    ","export * from './text.component';\n","import { Component, Input } from '@angular/core';\n@Component({\n selector: 'vi-ui-text',\n templateUrl: './text.component.html',\n styleUrls: ['./text.component.scss']\n})\nexport class TextComponent {\n @Input() text: string;\n @Input() size: '12-16' | '13-18' | '14-20' = '14-20';\n @Input() inline?: boolean = false;\n @Input() color?: string = 'var(--type-primary)';\n @Input() iconClass?: string;\n @Input() iconColor?: string = 'var(--type-primary)';\n}\n","@if (iconClass) {\n\n}\n\n {{text}}\n\n","export * from './textarea.component';\n","import { Component, ChangeDetectionStrategy, Input, Output, EventEmitter } from '@angular/core';\n\nimport { guid } from '../../utils';\n\n@Component({\n selector: 'vi-ui-textarea',\n templateUrl: './textarea.component.html',\n styleUrls: ['./textarea.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TextareaComponent {\n @Input() value: string;\n @Input() label: string;\n @Input() placeholder: string = '';\n @Input() disabled: boolean = false;\n @Input() errorMessage: string;\n @Input() description?: string;\n @Input() maxLength?: number;\n @Input() showCounter: boolean = true;\n @Input() height: string;\n @Output() inputChanged = new EventEmitter();\n @Output() focusedOut = new EventEmitter();\n\n public DEFAULT_HEIGHT = '72px';\n public name: string = guid();\n\n public get counter() {\n return this.showCounter && this.maxLength ? `${this.value?.length || 0}/${this.maxLength}` : '';\n }\n\n public get error() {\n return !!this.errorMessage;\n }\n\n public onFocusedOut(value: string) {\n this.focusedOut.emit(value);\n }\n}\n","
    \n \n
    \n {{description}}\n {{counter}}\n
    \n \n \n {{ errorMessage }}\n \n
    ","import { Directive, Output, EventEmitter, Input, HostListener } from '@angular/core';\n\n@Directive({\n selector: '[viUiAccessibleClick]'\n})\nexport class AccessibleClickDirective {\n @Input() public appClickDisabled = false;\n @Input() public appSpaceClickEnabled = false;\n @Output() public viUiAccessibleClick = new EventEmitter();\n\n @HostListener('mouseup', ['$event']) public onMouseUp(event: MouseEvent) {\n // Main button it's usually the left button or the un-initialized state\n if (!this.appClickDisabled && this.isMainButtonPressed(event)) {\n this.viUiAccessibleClick.emit(event);\n }\n }\n\n @HostListener('keyup.enter', ['$event']) public onEnterKeyUp(event: KeyboardEvent) {\n if (!this.appClickDisabled) {\n this.viUiAccessibleClick.emit(event);\n }\n }\n\n @HostListener('keyup.Space', ['$event']) public onSpaceKeyUp(event: KeyboardEvent) {\n if (this.appSpaceClickEnabled && !this.appClickDisabled) {\n this.viUiAccessibleClick.emit(event);\n }\n }\n\n private isMainButtonPressed(event: MouseEvent): boolean {\n // MouseEvent.button with 0 value means that the main button pressed.\n // It's usually the left button or the un-initialized state\n return event && event.button === 0;\n }\n}\n","import { Directive, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Output, Renderer2 } from '@angular/core';\n\nimport { BehaviorSubject, Subscription } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, skip } from 'rxjs/operators';\n\n@Directive({\n selector: '[viUiDebounce]'\n})\nexport class DebounceDirective implements OnInit, OnDestroy {\n // The distinct value\n @Input() public debounceValue;\n\n // Debounce duration time\n @Input() public debounceDueTime = 800;\n\n // Event names array which debounce should consider\n @Input() public debounceEventNames = ['click'];\n\n // Output complete debounce\n @Output() public debounceEvent = new EventEmitter();\n\n private subscription: Subscription;\n private eventsSubject;\n\n constructor(private renderer: Renderer2, private el: ElementRef) {}\n\n public ngOnInit() {\n // Initial value for distinctUntilChanged function\n this.eventsSubject = new BehaviorSubject(this.debounceValue);\n // Add listener to all events\n this.addListen();\n // Create subscription\n this.subscription = this.eventsSubject\n .pipe(debounceTime(this.debounceDueTime))\n .pipe(distinctUntilChanged())\n // Pass emit initial value\n .pipe(skip(1))\n .subscribe(e => {\n this.debounceEvent.emit(e);\n });\n }\n\n public ngOnDestroy() {\n this.subscription.unsubscribe();\n }\n\n private addListen(): void {\n // add listen to each event\n this.debounceEventNames.forEach(eventName => {\n this.renderer.listen(this.el.nativeElement, eventName, event => {\n event.preventDefault();\n event.stopPropagation();\n this.eventsSubject.next(this.debounceValue);\n });\n });\n }\n}\n","export * from './accessible-click.directive';\nexport * from './debounce.directive';\n","import { Injectable, Inject } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\n\nimport { Subject } from 'rxjs';\n\nimport { getKeyCode, KeyCode } from '../utils/dom/utils.dom';\n\n@Injectable()\nexport class AccessibilityModeHandlerService {\n public static accessibilityModeUpdate: Subject;\n private static accessibilityModeOn = false;\n private static hasEventListener = false;\n @Inject(DOCUMENT) private document;\n constructor() {\n if (!AccessibilityModeHandlerService.hasEventListener) {\n AccessibilityModeHandlerService.accessibilityModeUpdate = new Subject();\n document.body.addEventListener('keydown', AccessibilityModeHandlerService.enableAccessibilityMode);\n AccessibilityModeHandlerService.hasEventListener = true;\n }\n }\n\n private static enableAccessibilityMode(event: KeyboardEvent): void {\n // Tab, enter and shift+tab\n try {\n const keyCode = getKeyCode(event);\n if (!keyCode) {\n return;\n }\n\n // If event is enter and came from input - ignore\n const target = event?.target as Element;\n if (keyCode === KeyCode.Enter && target?.tagName === 'INPUT') {\n return;\n }\n\n if (keyCode === KeyCode.Tab || keyCode === KeyCode.Enter || (event.shiftKey && keyCode === KeyCode.Tab)) {\n AccessibilityModeHandlerService.accessibilityModeOn = true;\n document.body.removeEventListener('keydown', AccessibilityModeHandlerService.enableAccessibilityMode);\n AccessibilityModeHandlerService.accessibilityModeUpdate.next(true);\n }\n } catch (error) {\n // Catch each key that is not on KeyCode list. No need to trace.\n }\n }\n\n public get AccessibilityMode(): boolean {\n return AccessibilityModeHandlerService.accessibilityModeOn;\n }\n\n public get AccessibilityModeSubject(): Subject {\n return AccessibilityModeHandlerService.accessibilityModeUpdate;\n }\n}\n","export * from './accessibility-mode-handler.service';\n","export enum KeyCode {\n Tab = '9',\n Enter = '13',\n ShiftLeft = '16',\n ESCAPE = '27',\n ArrowUp = '38',\n ArrowDown = '40'\n}\n\nexport function getKeyCode(event: KeyboardEvent): string {\n if (!event) {\n return '';\n }\n\n const keyName = event.code || event.key;\n if (keyName !== undefined) {\n if (KeyCode.hasOwnProperty(keyName)) {\n return KeyCode[keyName];\n } else {\n throw new Error(`Key ${keyName} not exist at KeyCode table. Please add it`);\n }\n }\n // eslint-disable-next-line deprecation/deprecation\n if (event.keyCode) {\n // eslint-disable-next-line deprecation/deprecation\n return event.keyCode.toString();\n }\n\n return '';\n}\n","export * from './string/utils.string';\nexport * from './dom/utils.dom';\n","export function guid(zero?: 0): string {\n if (zero === 0) {\n return '00000000-0000-0000-0000-000000000000';\n }\n\n function s4() {\n return Math.floor((1 + Math.random()) * 0x10000)\n .toString(16)\n .substring(1);\n }\n\n return s4() + s4() + '-' + s4() + '-' + s4() + '-' + s4() + '-' + s4() + s4() + s4();\n}\n","import { MatTableModule } from '@angular/material/table';\nimport { CommonModule } from '@angular/common';\nimport { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { MatSortModule } from '@angular/material/sort';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\n\nimport {\n AlertMessageComponent,\n InputComponent,\n ShimmerComponent,\n TagComponent,\n NavBarComponent,\n TagContainerComponent,\n LinkComponent\n} from './components';\nimport { TextareaComponent } from './components/textarea/textarea.component';\nimport { LabelComponent } from './components/label/label.component';\nimport { ProgressBarComponent } from './components/progress-bar/progress-bar.component';\nimport { AccordionItemComponent } from './components/accordion-item/accordion-item.component';\nimport { AccordionComponent } from './components/accordion/accordion.component';\nimport { AccessibleClickDirective, DebounceDirective } from './directives';\nimport { SwitchComponent } from './components/switch/switch.component';\nimport { FocusableComponent } from './components/focusable';\nimport { CheckboxComponent } from './components/checkbox';\nimport { RoundedCheckboxComponent } from './components/rounded-checkbox';\nimport { TableComponent } from './components/table';\nimport { BadgeComponent } from './components/badge';\nimport { TableItemSizeDirective } from './components/table/vs-for-table/table-item-size.directive';\nimport { TextComponent } from './components/text';\n\n@NgModule({\n declarations: [\n AlertMessageComponent,\n AccessibleClickDirective,\n DebounceDirective,\n TagComponent,\n TagContainerComponent,\n InputComponent,\n NavBarComponent,\n LinkComponent,\n TextComponent,\n TextareaComponent,\n LabelComponent,\n ProgressBarComponent,\n AccordionItemComponent,\n AccordionComponent,\n SwitchComponent,\n FocusableComponent,\n ShimmerComponent,\n CheckboxComponent,\n RoundedCheckboxComponent,\n TableComponent,\n BadgeComponent,\n TableItemSizeDirective\n ],\n imports: [CommonModule, FormsModule, MatProgressBarModule, MatTableModule, MatSortModule, ScrollingModule],\n exports: [\n AlertMessageComponent,\n TagComponent,\n TagContainerComponent,\n NavBarComponent,\n InputComponent,\n TextareaComponent,\n LinkComponent,\n AccessibleClickDirective,\n LabelComponent,\n ProgressBarComponent,\n AccordionItemComponent,\n AccordionComponent,\n SwitchComponent,\n FocusableComponent,\n ShimmerComponent,\n CheckboxComponent,\n RoundedCheckboxComponent,\n TableComponent,\n BadgeComponent\n ],\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class VIUIModule {}\n","/*\n * Public API Surface of vi-ui\n */\n\nexport * from './lib/components';\nexport * from './lib/directives';\nexport * from './lib/vi-ui.module';\n"],"names":["Subject","combineLatestWith","take","takeUntil","ToastContainerDirective","FeatureSwitch","NavigationState","SideMenuOption","SideSubMenuType","DialogComponent","ActionButtonType","resources","fromRouter","HeaderPreset","i0","ɵɵelement","ɵɵproperty","ɵɵpureFunction1","_c1","ctx_r0","isSideMenuOpened","isAuthenticated","ɵɵelementContainerStart","ɵɵelementStart","ɵɵlistener","AppComponent_ng_container_7_Template_app_vi_sidebar_openAbout_2_listener","ɵɵrestoreView","_r2","ɵɵnextContext","ɵɵresetView","handleShowAbout","ɵɵelementEnd","isMobile","AppComponent","constructor","routerStore","logger","cdr","translate","navigationService","coreStore","focusManager","dialog","authService","utilsService","themesService","pageTiming","featureSwitchService","toastrService","progressBarColor","ready","isUploadShow","isSubMenuOpened","sideMenuEnabled","stripShow","isNewUploadExperienceEnabled","headerPreset","FULL","showSideMenu","MAIN_ROLE","NO_ROLE","destroy$","subMenuTypeClass","subMenuType","toLocaleLowerCase","ngOnInit","overlayContainer","toastContainer","init","initThemes","featureSwitch","NewUploadExperience","isUserAuthenticated","pipe","subscribe","detectChanges","select","getRouterState","routerState","state","data","showHeaderButtons","LEAN","userDetailsError","userDetailsError$","isZeroAccounts$","coreMetadataLoaded$","isLoaded","addListeners","selectSideMenuSelectedOption","isExtensionsSubMenuOpened$","sideMenuOption","isExtensionsSubMenuOpened","isCustomizationSubMenuOpened","Customizations","Extensions","selectSideMenuOpen","isOpen","log","setTranslations","ngOnDestroy","next","complete","createAccountSubject","options","OPEN","openConnectToAzure","openAbout","_this","_asyncToGenerator","emptyPrimary","Object","create","primaryButton","type","PRIMARY","action","onCloseCallBack","focusByQuery","CreateArmAccountDialogComponent","dialogData","class","component","openDialog","translateResourcesInstant","_this2","AboutPageComponent","AboutHeaderComponent","aboutDialogData","headerComponent","width","height","panelClass","maxHeight","dialogRef","open","disableClose","ariaLabel","title","afterClosed","_","ɵɵdirectiveInject","i1","Store","i2","LoggerService","ChangeDetectorRef","i3","TranslateHelperService","i4","AppNavigationService","i5","CoreStoreService","i6","FocusManagerService","i7","MatDialog","i8","AuthService","i9","UtilsService","i10","ThemesService","i11","PageTimingService","i12","FeatureSwitchService","i13","ToastrService","_2","selectors","viewQuery","AppComponent_Query","rf","ctx","ɵɵtemplate","AppComponent_div_2_Template","AppComponent_ng_container_7_Template","AppComponent_vi_side_menu_9_Template","AppComponent_app_vi_spinner_12_Template","ɵɵclassMapInterpolate1","ɵɵpureFunction4","_c0","ɵɵpipeBind1","ɵɵadvance","CommonModule","BrowserModule","ToastContainerModule","ToastrModule","SharedModule","AppRoutingModule","LoginErrorComponent","PageNotFoundComponent","UserAlreadyExistsComponent","CoreModule","AppModule","bootstrap","_3","forRoot","positionClass","maxOpened","declarations","imports","InviteHeader","AppSettingsSaveSuccessfully","AppSettingsSaveError","BuyWizardDialogOptionCreateHeader","CreateAccount","RouterModule","appRoutes","enableTracing","paramsInheritanceStrategy","onSameUrlNavigation","exports","AccountPermission","RouteResolver","UserMetadataResolver","VIRoutingMap","MediaMetadataResolver","AuthGuard","AuthenticatedResolver","PermissionGuard","EdgeExtensionsMediaMetadataResolver","RouteSelectAccountResolver","AmsMigrationReportGuard","NetworkAccessGuard","LiveEdgeGuard","path","customization","loadChildren","then","m","CustomizationModule","canActivate","resolve","resolver","routeResolver","runGuardsAndResolvers","customizationPeople","customizationLanguage","customizationBrands","customizationSpeech","editorNewProject","EditorWrapperModule","CONTRIBUTOR","editorProject","editorVideo","mediaVideo","MediaModule","mediaProject","edgeExtensionVideo","settings","SettingsModule","login","LoginModule","logout","LogoutModule","pageNotFoundError","loginError","userAlreadyExistsError","mediaGallery","GalleryModule","userMetadataResolver","amsMigrationReport","AmsMigrationReportModule","LiveRoutingModule","pathMatch","redirectTo","name","traceName","signout","signin","galleryLibrary","galleryProjects","gallerySamples","galleryHomeFullRoute","connections","customizationPeopleUnknown","customizationSpeechDatasets","customizationSpeechModels","customizationLanguageId","catalog","APIErrors","ɵɵtext","ɵɵtextInterpolate","LoginErrorPageMessage","LoginErrorPageMessageLine2","VILoginError_USER_EMAIL_ALREADY_REGISTERED_FROM_ANOTHER_IDENTITY_PROVIDER","ɵɵsanitizeHtml","LoginErrorComponent_p_8_ng_container_1_Template","errorType","USER_EMAIL_ALREADY_REGISTERED_FROM_ANOTHER_IDENTITY_PROVIDER","VILoginErrorPageMessageLine3","LoginErrorPageMessageLine4","ɵɵpropertyInterpolate","redirectUrl","ɵɵsanitizeUrl","LoginErrorPageMessageLine5","translateService","route","traceId","subscriptions","queryParams","params","setTranslationsSubscription","unsubscribeSubscriptions","translateResources","markForCheck","ActivatedRoute","decls","vars","consts","template","LoginErrorComponent_Template","LoginErrorComponent_p_7_Template","LoginErrorComponent_p_8_Template","LoginErrorComponent_span_12_Template","LoginErrorComponent_span_15_Template","LoginErrorComponent_a_17_Template","ɵɵtextInterpolate1","LoginErrorPageMessageHeader","VILoginErrorPageMessageLine3Label","VILoginError_USER_EMAIL_ALREADY_REGISTERED_FROM_ANOTHER_IDENTITY_PROVIDER_Label","trackService","router","urlTree","parseUrl","url","accessToken","track","router_url","toString","TrackService","Router","PageNotFoundComponent_Template","MessageServicePageNotFound","UserAlreadyExistsErrorPageHeader","UserAlreadyExistsErrorPageText","UserAlreadyExistsErrorPageNote","UserAlreadyExistsErrorPageTraceId","UserAlreadyExistsErrorPageBackToPortalLink","email","UserAlreadyExistsComponent_Template","createAction","props","loadAccounts","loadAccountsFailed","getAccounts","addAccount","upsertAccount","addAccounts","upsertAccounts","updateMediaServicesAccount","updateAccountContract","updateAccount","updateAccountQuota","updateAccountQuotaFailed","updateSelectedAccount","updateAccounts","updateAccountState","mapAccounts","selectAccount","selectAccountProcessing","addSelectedAccount","addSelectedAccountFailed","deleteOwnAccount","deleteOwnAccountSuccess","recoverOwnAccount","recoverOwnAccountSuccess","leaveAccount","deleteAccount","deleteAccounts","joinAccount","clearAccounts","accountsLoaded","navigateToSettings","navigateToCustomization","navigateToCamera","navigateToWorkflow","zeroAccountsLoaded","loadAccountSettings","updateAccountCelebSettings","addAccountSettings","loadAccountAccessTokenPermission","accountHasRestrictedAccess","checkGalleryProjectTabAccess","setAccountsFilterValue","clearAccountsFilterValue","acceptUseOfFacialIdentification","updateFaceGateFeaturesSuccess","updateFaceGateFeaturesFailed","loadArmAccounts","loadArmAccountsFailed","loadArmAccountsSuccess","loadArmAccountsNotNeeded","loadLastArmAccount","addSelectedArmAccountFailed","loadArmAccountNotNeededForInit","selectArmAccount","selectArmAccountProcessing","selectArmAccountSuccess","addSelectedArmAccount","refreshCachedArmAccounts","loadEdgeExtensions","loadEdgeExtensionsSuccess","loadEdgeExtensionsFailed","getAmsMigrationStatusStarted","getAmsMigrationStatusSuccess","startMigrationStatusInterval","getMigrationStatusFailed","loadMoreVideoMigrations","getVideoMigrationStarted","getVideoMigrationsSucceed","getVideoMigrationsFailed","resetAmsMigrationState","sessionExpired","loadChunksError","initPage","loadDirectories","loadDirectoriesSuccess","loadDirectoriesFailed","reloadDirectories","selectDirectory","loadLastEdgeExtension","clearEdgeExtensions","clearSelectedEdgeExtension","selectEdgeExtension","selectEdgeExtensionClicked","selectEdgeExtensionByPrincipalId","uploadFile","loadEdgeExtensionsNotNeededForInit","handshakeEdgeExtension","handshakeSuccess","handshakeFailed","liveModuleLoaded","openShareAccount","loadInvitations","loadInvitationsSuccess","loadInvitationsFailed","deleteInvitation","deleteInvitationSuccess","invitationsError","inviteToAccount","inviteToAccountInProgress","inviteToAccountSuccess","copyInvitationLink","initNotifications","loadNotifications","reloadNotifications","removeNotifications","clearNotificationsBanners","updateNotificationsBanners","addNotificationsBanners","removeNotificationsBanners","clearNotificationsAlerts","updateNotificationsAlerts","addNotificationsAlerts","removeNotificationsAlerts","clearNotificationsMessages","updateNotificationsMessages","addNotificationMessages","removeNotificationsMessages","loadRoleAssignments","loadRoleAssignmentsInProgress","loadRoleAssignmentsSuccess","loadRoleAssignmentsFailed","updateRoleAssignments","updateRoleAssignmentsSuccess","deleteRoleAssignment","deleteRoleAssignmentSuccess","roleAssignmentsError","Go","Back","Forward","sideMenuOptionSelected","sideMenuToggled","sideMenuInitOption","selectSidebarOptions","clearSidebar","loadUserDetails","loadUserDetailsSuccess","loadUserDetailsFailed","loadUserDetailsInProgress","loadUserNotAuthenticated","addUser","upsertUser","addUsers","upsertUsers","updateUser","updateUserApi","updateUsers","mapUsers","deleteUser","deleteUsers","clearUsers","ErrorHandler","EffectsModule","StoreRouterConnectingModule","NavigationActionTiming","StoreModule","StoreDevtoolsModule","LoadingBarRouterModule","storeFreeze","AccessibilityModule","AuthModule","CommonCoreModule","EnsureModuleLoadedOnceGuard","InsightsCommonModule","NotificationsModule","AccountsEffects","AmsMigrationEffects","CoreEffects","DirectoriesEffects","EdgeExtensionsEffects","InvitationsEffects","NotificationsEffects","RoleAssignmentsEffects","AppRouterEffects","SideMenuEffects","UserEffects","AuthGuardService","LoadChunksErrorHandler","reducers","routerReducers","VIRouterSerializer","AuthenticatedResolverService","MediaMetadataResolverService","RouteResolverService","UserMetadataResolverService","NotificationsHandlerService","NotificationsStoreService","SurveyService","UserService","environment","CustomizationDataModule","HeaderModule","IndexingModule","MediaDataModule","ShellModule","SidebarModule","EdgeExtensionsStoreService","EdgeExtensionsApiHandlerService","EdgeExtensionsMediaMetadataResolverService","RouteSelectAccountResolverService","GalleryStoreService","metaReducers","production","parentModule","ɵɵinject","provide","useClass","serializer","navigationActionTiming","PreActivation","instrument","maxAge","logOnly","features","pause","lock","persist","connectInZone","forFeature","StoreRootModule","EffectsRootModule","StoreFeatureModule","EffectsFeatureModule","createNgModule","createEffect","ofType","ROUTER_NAVIGATION","catchError","concatMap","delay","filter","map","mergeWith","skipWhile","switchMap","tap","withLatestFrom","EMPTY","from","of","camelCase","TimeInterval","envTypes","AccountResourceType","EventCategory","MessageType","StorageCacheKey","TRANSLATION_DELAY","NotificationIcon","NotificationLevel","NotificationMessageType","NotificationType","getLastArmStorageKey","AccountUnavailableDialogComponent","SettingsService","getARMLocation","isAccountDailyCountQuotaExceeded","isAccountDailyDurationQuotaExceeded","isAccountDurationQuotaExceeded","fromCore","fromIndexing","LanguageModelActions","UploadActions","LanguageIdActions","AccountsActions","RouterActions","UserActions","actions$","apiService","store","localStorageService","commonTrackingDataService","injector","stripService","configService","customizationUtilsService","faceGatePopupService","edgeExtensionsStore","notificationService","toastService","cacheService","dialogService","JOINING_DELAY","loadAccounts$","Account","accounts","error","joinAccount$","accountId","inviteCode","location","category","ACCOUNTS","join","settingsService","toastJoinAccountSuccess","extras","removeParams","forceLoad","selectAccountId","toastJoinAccountError","joinRoute$","getQueryParams","returnUrlParamValue","returnUrl","inviteParamValue","invitation","includes","window","host","replace","JSON","parse","decodeURI","invitationId","getSelectedAccountDetails$","selectedAccountContract","selectCurrentAccount","selectedAccountLoaded","id","doNotClearSelectedExtension","account","setApiBaseLocation","accountType","UserAccount","mediaConnectionStripId","hideStrip","openAIStripId","edgeExtensionApiUrl","resourceType","ARM","dispatch","getAccount","isArmAmslessAccount","res","setItem","LastAccountId","LastAccountType","TRIAL","isAmslessAccount","isPaid","mediaServices","connected","resource","StripAmsAddError","stripData","text","iconClass","show","messageType","ERROR","linkCallback","stripCallback","bind","trackingName","trigger","handleAccountQuotaNotification","actions","push","loadLanguageModels","isAutoDetectFeatureEnable","AutoDetectLanguage","loadDefaultLanguages","loadSelectedLanguages","ErrorType","updateAccount$","newAccount","handleUpdateAccount","err","changes","getTrialAccountUsage$","uploadFileToServerFailed","storeFile","ACCOUNT_UPLOAD_QUOTA_EXCEEDED","toLowerCase","selectUploadingQuotaLimitReached","quotaLoaded","updateAccountQuotaOnUploadFailure","file","accountResult","accountQuota","quotaUsage","getAccountSettings$","selectAccountTokenPermission","permission","RESTRICTED_VIEWER","getAccountSettings","updateAccountCelebSettings$","selectCurrentAccountId","getSelectedAccountSettings","includeCelebrityRecognition","updatedSettings","updateAccountSettings","OWNER","displayErrorToast","deleteOwnAccount$","handleDeleteError","saving","recoverOwnAccount$","SETTINGS","success","instant","leaveAccount$","getUserDetails","user","removeMyself","userId","MY_ACCESS_MANAGER","removeItem","handleLeaveError","updateMediaServiceAccount$","amsUpdateConfig","selectedAccount","aadApplicationId","aadConnection","applicationId","resourceGroup","subscriptionId","updateAccountMediaServices","navigateToSettings$","tab","currentAccount","navigateToCustomization$","page","loadArmAccounts$","UseCacheApi","match","ArmAccounts","DAY","cacheResponse","json","date","length","count","refreshThreshold","MINUTE","shouldRefreshData","Date","getTime","ArmAccount","getArmAccounts","armAccounts","put","selectUIAccounts","trialAccounts","isSelectedAccountLoaded","actionsList","allAccounts","Config","api","defaultRegion","PAID","shouldSelectAccount","AccountIds","a","refreshCachedArmAccounts$","getSelectedArmAccountDetails$","getTenantId","tenantId","getArmAccount","resourceGroupName","armAccountCacheData","stringify","getLastArmAccountDetails$","armAccountCache","getItem","armAccountsLoaded","isArmAccountsLoaded","status","defaultAccountId","checkGalleryProjectTabAccess$","loaded","acceptUseFaces$","signature","useCase","updateFaceGateFeatures","limitedAccessFeatures","onUpdateFaceFeaturesSuccess","onUpdateFaceFeaturesFailed","faceGatingPopUp$","isAccountLimitedWithFaces","isAccountFaceGated","shouldAutoShow","signedInUserEmail","autoShowPopup","accountUnavailablePopUp$","isArmAmsless","handleAccountUnavailableDialog","loadExtensions$","EdgeExtensions","list","extensions","EDGE","loadEdgeModule","setTimeout","initSettingsService","initAccountPermission","initTrackingSelectedAccountId","get","lastAccountType","lastUserEmail","LoginHint","isLastSelectedArmAccount","isDefaultTrialAccountAlreadySelected","isClassic","secondaryButton","SECONDARY","value","componentData","quota","quotaErrors","condition","quotaError","find","notification","getQuotaErrorMessageNotification","notify","Custom","startDate","endDate","Alert","level","Warning","icon","toasted","link","callback","accountAccessTokenPermission$","accountPermission","$event","selectedAccountId$","EdgeModule","Actions","ApiService","LocalStorageService","CommonTrackingDataService","Injector","StripService","ConfigService","CustomizationUtilsService","i14","FaceGatePopupService","i15","i16","NotificationsService","i17","i18","i19","ToastService","i20","CacheStorageService","i21","DialogService","i22","factory","ɵfac","hasDatePassed","isOverTimeOffset","MigrationActions","AMSAssetsMigrationStatus","AMSMigrationErrorType","NotificationsUtils","notificationsHandlerService","coreService","utilService","updateMigrationStatus$","RemoveAmsMigrationStatus","migrationState","NOT_APPLICABLE","AmsMigrationApi","getStatus","AMS_MIGRATION","MIGRATION_NOT_STARTED","NOT_STARTED","publishRequestMigrationNotification$","requestMigrationDeprecationDate","getRequestMigrationNotification","publishPendingMigrationBanner$","PENDING","getMigrationPendingBanner","StripAmsMigrationPending","removeCurrentStrip","migrationStripId","publishInProgressMigrationBanner$","IN_PROGRESS","getMigrationInProgressNotification","NotificationAmsMigrationInProgressTitle","NotificationAmsMigrationInProgressMessage","migrationNotificationId","getMigrationInProgressBanner","StripAmsMigrationInProgress","progress","NOTIFICATION_IN_PROGRESS_INTERVAL","publishMigrationErrorNotification$","PENDING_USER_ACTION","selectedAccountContract$","details","getViResourceOverviewPortalUrl","resourceId","AzurePortalLinkText","NotificationAmsMigrationErrorLinkText","src","getMigrationErrorNotification","NotificationAmsMigrationErrorTitleUntranslated","NotificationAmsMigrationErrorTitle","NotificationAmsMigrationErrorMessage","stripText","generateBannerLink","getMigrationErrorBanner","publishPartlySuccessfulMigrationNotification$","FAILED","videosMigrated","showMigrationTool","migrationCompletedDate","selectedUIAccount","getApiLocation","AmsMigrationReportLinkText","NotificationAmsMigrationPartlySuccessfulLinkText","origin","notificationText","accountName","totalVideos","totalVideosToMigrate","getMigrationPartlySuccessfulNotification","NotificationAmsMigrationPartlySuccessfulTitle","StripAmsMigrationPartlySuccessfulUntranslated","getMigrationPartlySuccessfulBanner","removeCurrentNotification","publishFailedMigrationNotification$","NotificationAmsMigrationFailedLinkText","getMigrationFailedNotification","NotificationAmsMigrationFailedTitleUntranslated","NotificationAmsMigrationFailedTitle","NotificationAmsMigrationFailedMessage","getMigrationFailedBanner","publishCompletedMigrationNotification$","COMPLETED","getMigrationCompleteNotification","NotificationAmsMigrationCompleteTitle","NotificationAmsMigrationCompleteMessage","getMigrationCompleteBanner","StripAmsMigrationComplete","publishMigrationsFallbackBanner$","getMigrationFallbackBanner","StripMigrationFallbackMessage","hideMigrationBanner$","updateVideoMigrations$","getAmsMigrationResultsNextPage","nextPage","getVideoMigrationsHandler","pageSize","skip","loadMoreVideoMigrations$","setMigrationInterval$","isArmAmslessAccount$","isAmsless","migrationStatusIntervalActive","updateMigrationStatusInterval$","NOTIFICATION_INTERVAL","getAmsMigrationStatus","UpdateMigrationStatusProgress$","navigateMigrationNotStarted$","selectedAccount$","navigate","getVideoMigrations","states","videoMigrations","completed","clear","InvitationsActions","sessionExpired$","openSessionExpiredDialog","loadChunksError$","openInternalErrorReloadDialog","openShareAccount$","showInviteForm","inviteData","showForm","openInviteDialog","accountHasRestrictedAccess$","openHasRestrictedAccessDialog","translationService","button","SessionExpiredButton","getDialogData","SessionExpiredTitle","SessionExpiredContent","closeAllDialogs","ForceCloseDialog","Close","RestrictedViewerPopupTitle","RestrictedViewerPopupContent","dialogWidth","dialogHeight","dialogPanelClass","InternalErrorReloadButton","InternalErrorReloadTitle","InternalErrorReloadContent","reload","InviteComponent","inviteDialogData","WINDOW","urlService","loadDirectories$","selectDirectoriesLoaded","selectDirectoriesError","getArmDirectories","result","DIRECTORIES","directories","selectDirectory$","currentTenantId","removeUserAccessTokens","env","getQueryParam","envParam","CacheService","UrlService","mergeMap","UserType","getErrorType","LibraryActions","extensionsApiHandlerService","userLoaded$","isEdgeEnabled","lastEdgeExtensionId","LastExtension","userType","MicrosoftCorpAad","getLastEdgeExtensionsDetails$","isGalleryRoute","loadLastExtension$","lastExtensionId","handshakeEdgeExtension$","loadingLibrary","handshake","extensionId","loadLibraryError","loadLibrary","selectExtensionByPrincipalId$","selectEdgeExtensions","selectedEdgeExtensionId","principalId","extension","e","identity","clearSelectedExtension$","clearSessionNotifications","selectExtension$","clearLibrary","selectEdgeExtensionClicked$","isLibraryRoute","Edge","initTrackingDataService","selectedEdgeExtensionId$","edgeExtensionId","RoleAssignmentsActions","clipboardService","accessibilityUtils","loadInvitations$","getInvitations","allowEdit","invitations","INVITE","isUserNotAllowedError","USER_NOT_ALLOWED","inviteToAccount$","selectInvitationsLength","formDetails","invitationsLength","cache","emails","invite","announceDynamicMessage","deleteInvitation$","selectInvitations","copyInvitationLink$","inviteUrl","createInviteUrl","copyFromContent","InviteCopyInviteUrlSuccessNotification","encodeURIComponent","isTrialApi","ClipboardService","AccessibilityUtilsService","combineLatest","NotificationFilterType","NotificationExtendedAccountType","notificationTemplates","UpdateAccountAction","getNotificationIcon","getNotificationsLevel","getNotificationsType","NotificationsActions","permissionService","NOTIFICATIONS_DELAY","initNotifications$","getSelectedAccountLocation","selectAccountResourceType","getUserId","accountResourceType","NotificationCenter","notificationsInit","accountTypeRequestParam","ARM_AMSLESS","loadNotificationsFromCache","region","Notifications","getNotifications","response","lastPollingTime","preparedNotifications","prepareNotifications","ETag","eTag","saveNotificationsIds","notifications","notificationsIds","n","NOTIFICATIONS","ids","accountRegion","getNotificationsActions","pollNotifications$","reloadNotificationsOnAccountChange$","clearBannersNotifications","initNotificationsService","clearedNotificationsIds","supportedNotifications","isSupportedMessageType","hasRequiredPermission","ensurePermission","newNotifications","Critical","mapNotifications","getNotificationTitle","getNotificationText","getNotificationLink","getNotificationButton","isNotificationsToasted","cleared","resolveAccountData","UpdateAccount","alerts","Message","alertsDefaultAndTenantNotificationsIds","filterType","Default","Tenant","alertsRegionalNotificationsIds","Region","alertsAccountTypeNotificationsIds","AccountType","messages","messagesDefaultAndTenantNotificationsIds","messagesRegionalNotificationsIds","messagesAccountTypeNotificationsIds","addNotificationsIds","RegionalOutage","accountError","_error","getUpdateAccountPortalUrl","toastedNotificationsIds","bannersNotifications","Banner","alertsNotifications","messagesNotifications","PermissionService","loadRoleAssignments$","getRoleAssignments","roleAssignments","deleteRoleAssignment$","selectRoleAssignments","roleAssignmentId","updateRoleAssignments$","role","updateRoleAssignment","EnvironmentNames","trackingService","navigate$","routerQueryParams","Localhost","navigateBack$","back","navigateForward$","forward","route$","routeData","trackPageView","filteredUrl","Location","CustomizationPage","CustomizationViewActions","SideMenuActions","ofRoute","customizationRoutes","speechPageStoreService","edgeExtensionsStoreService","navigateFromSideMenu$","option","handleCustomizationsOptionSelected","Settings","Media","sideMenuCustomizationNavigation$","sideMenuSpeechNavigation$","isSpeechEnabled","sideMenuSettingsNavigation$","sideMenuMediaNavigation$","hasEdgeExtensions$","hasEdgeExtensions","defaultPage","Catalog","Speech","Language","SpeechPageStoreService","isUserNotAuthenticatedError","MigrationTimeOffset","SupportedLanguageIDActions","getSelectedAccountId","surveyService","loadUserMetadata$","isUserDetailsLoaded","isUserDetailsLoading","loading","User","getUser","HideClassicAccounts","getUserObj","authenticatedUser","getAuthenticatedUser","accountIds","locale","Locale","USERS","checkLanguageUpdate","concat","selectedAccountId","moveToArmStartedDate","Math","floor","stripGAId","ArmAccountGeneralAvailabilityStrip","hasCloseButton","INFO","event","href","target","showSurveyPopup","joinTime","loadSupportedLanguages","updateUserSettings$","selectAllAccountsSlim","newUserSettings","currentUser","userLocale","newUser","getNewsUpdates","autoCompleteSearch","showSamplesTab","showGalleryByDefault","saveUser","userService","toastUserSettingsSaveSuccessfully","getVideoNotifications","isSuspended","isAdmin","image","upn","devEnvironmentMapping","cachedAccountId","isAccountExist","localhost","mappedEnv","internalApiLocation","mapArmLocation","hostname","everUploadDurationInSeconds","everUploadDurationLimitInSeconds","dailyUploadCount","dailyUploadCountLimit","dailyUploadDurationInSeconds","dailyUploadDurationLimitInSeconds","FACE_GATE_DATE","FACE_GATE_GRACE_END_DATE","inject","AmsMigrationReportGuardService","allowed","MigrationReport","handleNotAllowedStatus","providedIn","auth","userDetailsLoaded$","handleUserNotAuthenticated","AUTH","NetworkAccessGuardService","getSignedInUserEmail$","SignedInUserEmail","selectedAccountLoaded$","isNetworkAccessNotAllowedError$","isNetworkAccessNotAllowed","urlAccountId","HTTP","blocked","handleNetworkAccessNotAllowed","requiredPermission","ars","rss","PermissionGuardService","getAccountTokenPermission$","handleHasNoPermission","MonitoringErrorHandlerService","handleError","chunkFailedMessage","RegExp","test","message","trackError","EXCEPTIONS","highRiskRegions","LIVE_ROUTER_NAVIGATION","AccountStateOptions","ArabicLanguages","SupportedLanguages","key","rtl","sourceLanguage","supportedUserLocale","supportedCustomization","padding","additionalUploadLanguages","DefaultSupportedLanguages","languageCode","isRightToLeft","isSourceLanguage","isAutoDetect","ExcludedSelectedDialectLanguages","SpecialLanguageKey","defaultLangKey","keepSourceLanguageId","createEntityAdapter","createReducer","on","adapter","selectId","initialState","getInitialState","accountsFilterValue","deleteInProgress","armAccountsError","isArmAccountNeededForInit","selectedAccountSettings","selectedAccountAccessTokenPermission","accountsReducer","addOne","upsertMany","addMany","updateOne","updateMany","update","removeOne","removeMany","ACTIVE","setAll","removeAll","reducer","AmsMigrationActions","accountMigration","videosLeftToMigrate","videosFailedToMigrate","results","done","isLoading","loadingMore","amsMigrationReducer","selectedPage","viewReducer","selectTenantId","tenantsReducer","tenants","newState","AccountActions","selectEdgeExtensionId","selectedExtensionId","isEdgeExtensionsNeededForInit","handshakeDone","handshakeInProgress","isLiveModuleLoaded","edgeExtensionsReducer","createFeatureSelector","fromAccounts","fromUser","fromSidebar","fromInvitations","fromRoleAssignments","fromSideMenu","fromCustomizationView","fromNotifications","fromDirectories","fromEdgeExtensions","fromAmsMigration","sidebar","sideMenu","customizationView","edgeExtensions","amsMigration","selectCoreState","selectInvitationId","invitationsReducer","initialAlertsState","notificationsAlertsReducer","initialBannersState","notificationsBannersReducer","initialMessagesState","notificationsMessagesReducer","initialNotificationsViewState","notificationsViewStateReducer","combineReducers","fromNotificationsBanners","fromNotificationsAlerts","fromNotificationsMessages","fromNotificationsState","banners","viewState","RoleAssignments","roleAssignmentsReducer","createSelector","routerReducer","getRouteParams","getRouteData","serialize","root","firstChild","split","selectedOption","sideMenuReducer","SidebarPages","SidebarActions","CLOSE","ANY","callbackAfterClose","sidebarReducer","getSidebarNavigationState","currentState","optionsState","TOGGLE","userReducer","Promise","routerQueryParams$","handleUserAlreadyAuthenticated","URL","mediaStoreService","mediaCommonStoreService","edgeExtensionsMetadataLoaded$","selectAccountIds$","videoId","selectIndex","selectEdgeExtensionsLoaded$","loadVideoIndex","MediaStoreService","MediaCommonStoreService","RegionType","isFullMetadataLoaded$","routeConfig","setMediaApiLocation","loadVideoProject","locationParam","setApiMediaLocation","fullAccountIds","clientRoute","firstValueFrom","waitForUserMetadataToLoad","isCoreMetadataLoaded","InviteSuccessNarrator","InviteRemovingSuccessNarrator","SurveyDialogTitle","SurveyDialogMessage","SurveyDialogOkButton","SurveyDialogCancelButton","FaceGatePopupTitle","FaceGateInternalApproveSuccess","FaceGateInternalApproveFailed","StripAmsMigrationFailed","StripAmsMigrationPartlySuccessful","NotificationAmsMigrationPartlySuccessfulMessage","locationsUS","getAccountsState","selectAllAccounts","entities","accountSaving","isAccountDeleteInProgress","accountContract","accountCreateTime","createTime","today","isNewAccount","isAccountInGraceDate","isFaceGated","isFaceIdentificationEnabled","showFaceGateWarning","isAccountInHighRiskRegion","isFaceDetectionEnabled","accountEntities","selectAccountType","mapUIAccounts","values","selectAccountsCount","selectArmAccounts","selectArmAccountsFromLocation","sort","a1","a2","localeCompare","paidAccounts","selectAccountsFilterName","selectFilteredUIAccounts","acc","getSelectedAccountStatistics","statistics","getSelectedAccountQuota","getIncludeCelebSettings","CLASSIC","storageAccountResourceId","isConnectedToOpenAI","openAIResourceId","isUSAAccount","isTrialAccount","selectIds","selectEntities","selectAll","selectTotal","getSelectors","selectAccountIds","selectUserEntities","selectUserTotal","selectErrorType","isNetworkAccessNotAllowedError","NETWORK_ACCESS_NOT_ALLOWED","getAmsMigrationState","getAmsMigrationsListResult","getVideoMigrationResults","getAmsMigrationsPaginationDone","getIsLoading","getLoadingMore","getEdgeExtensionsState","getUserState","getInvitationsState","selectUIInvitations","getRoleAssignmentsState","selectUIRoleAssignments","getAllUserDetails","userState","accountState","extensionsState","isEdgeExtensionsMetadataLoaded","isFullMetadataLoaded","getRoleByUser","owners","o","contributors","isZeroAccounts","keys","selectInvitationsListLoaded","selectInviteError","selectInviteIsNotAllowedError","selectAllInvitationsEmails","invitationsEmails","roleAssEmails","assignment","selectUIRolesWithoutUser","roles","getCustomizationViewState","selectedCustomizationPage","getDirectoriesState","selectDirectories","selectedDirectory","tenant","countryCode","displayName","domains","tenantCategory","defaultDomain","tenantType","selectUIDirectories","allDirectories","directory","d","otherDirectories","selectEdgeExtensionsLoaded","selectEdgeExtensionsError","isSelectedEdgeExtensionError","hasSelectedEdgeExtension","selectedEdgeExtension","selectedEdgeExtensionName","selectedEdgeExtensionIotHubResourceId","iotHubResourceId","selectedEdgeExtensionHandshakeInProgress","selectedEdgeExtensionHandshakeDone","selectedEdgeExtensionEndpointUrl","properties","configurationSettings","selectedAccountEdgeExtensions","selectedEdgeExtensionUniqueId","selectInvitationLoaded","selectInvitationsError","selectInviteSaving","selectInvitationsIds","removing","fromBannersNotifications","getNotificationsState","getNotificationsLoadingState","selectBannersNotifications","selectAllBannersNotifications","getNotClearedBannersNotifications","getNotSeenBannersNotifications","seen","getNotToastedBannersNotifications","selectBannersNotificationsIds","selectAlertsNotifications","selectAllAlertsNotifications","getNotSeenAlertsNotifications","getNotToastedAlertsNotifications","getNotClearedAlertsNotifications","selectMessagesNotifications","selectAllMessagesNotifications","getNotSeenMessagesNotifications","getNotToastedMessagesNotifications","getNotClearedMessagesNotifications","getNotificationPanelAlerts","allNotifications","criticalNotifications","compareNotificationsStartDate","errorNotifications","Error","warningNotifications","infoNotifications","Info","noneNotifications","None","getNotificationPanelMessages","getNotClearedNotificationsCount","b","date1","date2","orderBy","contributorAction","ownerAction","selectRoleAssignmentsLoaded","selectRoleAssignmentsError","accountUIRoleAssignments","roleAssignment","selectedRoleAction","getSideMenuState","getSideMenuSelectedOption","getSideMenuOpen","getSidebarState","getSidebarStateStatus","getSidebarPage","getSidebarCallbackAfterClose","loadUserDetailsError","getUserSettings","getUserSettingsFromUserContract","getUserEmail","getSignedInUserEmail","autoCompleteEnabled","roleByUser$","userDetails$","allUserDetails$","userSettings$","showSamplesTab$","showGalleryByDefault$","getUserEmail$","autoCompleteEnabled$","saveUserSettings","userSettings","accounts$","selectAccountsCount$","UIAccounts$","selectedUIAccount$","armAccounts$","selectedAccountStatistics$","getSelectedAccountQuota$","selectIncludeCelebSettings$","selectedAccountLocation$","selectAccountType$","selectAccountError$","isAccountLimitedWithFaces$","showFaceGateWarning$","isAccountInHighRiskRegion$","isAmslessAccount$","isTrialAccount$","Amsless","isAccountConnectedToOpenAI$","isProjectsForAmslessEnabled$","isArmAmslessMigrated$","isArmAmslessMigrated","ProjectsForAMSless","amsMigrationStatus","noNeedMigration","isUSAccount$","armAccountsFromLocation","filteredUIAccounts$","armAccountsLoaded$","armAccountsError$","UIDirectories$","selectedDirectory$","currentTenantId$","directoriesLoaded$","directoriesError$","selectInvitationsListLoaded$","selectAllInvitationsEmails$","selectUIInvitations$","selectUIRolesWithoutUser$","selectInviteError$","selectInviteIsNotAllowedError$","selectInviteSaving$","sidebarStateStatus$","sidebarPage$","sidebarCallbackAfterClose$","setSidebar","sidebarNavigationOptions","routerParams$","isGalleryRoute$","cameraId","workflowId","navigateToViResourceOverviewPortalUrl","navigateFromSideMenu","getSelectedCustomizationPage","extensionsStore","accountEdgeExtensionUrl$","SelectedEdgeExtensionId","HasSelectedEdgeExtension","accountEdgeExtensions$","selectedEdgeExtensionUrl$","azurePortalResourceLink","selectedEdgeExtensionClusterUrl$","clusterResourceId","getParentResourceId","selectEdgeExtensions$","hasSelectedEdgeExtension$","selectedEdgeExtensionUniqueId$","selectedEdgeExtensionName$","selectedEdgeExtensionIotHubResourceId$","isSelectedEdgeExtensionError$","isLiveModuleLoaded$","InternalFaceGateFormComponent","isMsCorpEmailAddress","coreStoreService","MAX_COUNT_SHOW_NEW_SESSION","showPopup","userEmail","openFaceGateDialog","FACE_GATE","showCounterLocalStorageKey","getLocalStorageKey","ShowFaceGatePopupCounter","showCounterLocalStorageValue","showCounter","parseInt","doNotShowLocalStorageKey","DoNotShowFaceGatePopup","isShowPopupEnabled","isAccountEnabledWithFaces","accountLocation","showFaceGatePopupEnabled","InternalFaceGatePopup","popupInfo","componentInstance","actionChange","dialogEventData","isAccepted","isDismissed","localStorageKey","notificationsStore","alertsDefaultAndTenantNotificationsIdsList","alertsDefaultAndTenantNotificationsToastedIdsList","alertsRegionalNotificationsIdsList","alertsRegionalNotificationsToastedIdsList","alertsAccountTypeNotificationsIdsList","alertsAccountTypeNotificationsToastedIdsList","messagesDefaultAndTenantNotificationsIdsList","messagesDefaultAndTenantNotificationsToastedIdsList","messagesRegionalNotificationsIdsList","messagesRegionalNotificationsToastedIdsList","messagesAccountTypeNotificationsIdsList","messagesAccountTypeNotificationsToastedIdsList","sessionNotificationsIdsList","clearedNotificationsIdsList","bannersStripsIds","alertsSuffix","messagesSuffix","addAlertsDefaultAndTenantNotificationsIds","addAlertsRegionalNotificationsIds","addAlertsAccountTypeNotificationsIds","addMessagesDefaultAndTenantNotificationsIds","addMessagesRegionalNotificationsIds","addMessagesAccountTypeNotificationsIds","notToastedBannersNotifications$","updatedNotifications","getNotificationStripMessageType","notificationLevel","actionCallback","triggerNotification","updateNotification","updateBannersNotifications","notToastedAlertsNotifications$","saveAlertsToastNotificationToList","updateAlertsNotifications","saveToastNotificationsCache","notToastedMessagesNotifications$","saveMessagesToastNotificationToList","updateMessagesNotifications","clearAllToasts","clearRegionNotifications","clearAccountTypeNotifications","loadDefaultAndTenantNotificationsIdsCache","loadDefaultAndTenantNotificationsToastedIdsCache","loadRegionalNotificationsIdsCache","loadRegionalNotificationsToastedIdsCache","loadAccountTypeNotificationsIdsCache","loadAccountTypeNotificationsToastedIdsCache","setClearedNotifications","clearAlertsAndBannersNotifications","saveAlertsDefaultAndTenantNotificationsIdsCache","saveAlertsRegionalNotificationsIdsCache","saveAlertsAccountTypeNotificationsIdsCache","clearMessagesNotifications","saveMessagesDefaultAndTenantNotificationsIdsCache","saveMessagesRegionalNotificationsIdsCache","saveMessagesAccountTypeNotificationsIdsCache","markedAlertsAndBannersNotificationsBeenSeen","defaultChanges","regionalChanges","accountTypeChanges","hideNotificationStrip","getRequestMigrationNotificationButton","getRequestMigrationInAzurePortalUrl","newIds","WARNING","saveDefaultAndTenantNotificationsToastedIdsCache","saveRegionalNotificationsToastedIdsCache","saveAccountTypeNotificationsToastedIdsCache","NotificationsIds","alertsIds","messagesIds","NotificationsToastedIds","NotificationsRegionalIds","NotificationsRegionalToastedIds","NotificationsAccountTypeIds","NotificationsAccountTypeToastedIds","getNotificationPanelAlerts$","getNotificationPanelMessages$","getNotificationsLoadingState$","bannerNotifications$","notSeenBannersNotifications$","bannerNotificationsIds$","alertsNotifications$","notSeenAlertsNotifications$","messageNotifications$","notSeenMessagesNotifications$","notClearedNotificationsCount$","GuidPattern","VideoIdPattern","isRouteAction","routeAction","routePath","payload","routesArray","Array","isArray","currentRoute","formattedRoute","regex","formatRoute","VI_SURVEY","SURVEY_MIN_DAYS_USER_IN_VI","SURVEY_REPEAT_TIME_OFFSET","userJoinTime","isShowSurvey","openSurveyDialog","showSurveyPopupEnabled","SurveyPopup","doNotShowCacheValue","DoNotShowSurvey","lastTimeShowSurvey","LastTimeShowSurvey","isUserJoinAfterMin","okButton","cancelButton","surveyDialogData","content","now","SupportedLocaleLanguages","en","en_us","en_au","en_ca","en_nz","en_ph","en_uk","de_de","de","zh","zh_hans","zh_cn","zh_hant","fr_fr","fr","fr_ca","tr_tr","tr","ja_jp","ja","hi_in","hi","ru","ru_ru","es","es_es","it","it_it","pt","pt_br","pt_pt","ko","ko_kr","nl","cs","pl","sv","hu","DEFAULT_LOCALE_LANGUAGE","DEFAULT_LOCALE_LANGUAGE_KEY","getMappedLanguage","SECOND","MIGRATION_LINK_ICON","hasIcon","getMigrationNotification","getMigrationBanner","loadingProgress","Success","loadBrandModels","loadBrandsSettings","failLoadBrandModels","upsertBrandModel","updateBrandModel","discardBrandSaving","updateBrandsSettings","upsertBrandModels","upsertBrandsSettings","deleteBrandModel","addBrandModel","brandModelsLoaded","clearBrandModels","edgeUpsertSupportedLanguages","edgeLoadSupportedLanguageFailed","clearLanguageIdDatasets","setSelectedLanguages","deleteSelectedLanguage","deleteSelectedLanguageSuccess","addSelectedLanguage","upsertDefaultLanguages","failLoadLanguageModels","upsertLanguageModel","upsertLanguageModels","deleteLanguageModel","addLanguageModel","updateLanguageModel","removeUpdatingFile","uploadLanguageModelFile","cancelLanguageModelFile","uploadFileToServer","updateUploadProgress","updateLanguageModelFileContent","loadLanguageModelFileContent","updateLanguageModelCrisEditsContent","loadLanguageModelCrisEditsContent","downloadFile","downloadFromEditFile","deleteFile","deleteLanguageModelFile","toggleLanguageModels","clearLanguageModels","pullTrainingModel","trainModel","logoGroupsLoad","loadLogoGroupFailed","loadLogoGroupsInProgress","loadLogoGroupsSuccess","clearLogoGroups","selectPeopleTab","initSelectedPeopleTab","selectUnknownPersonsTab","openUnknownPersonDetailsDialog","submitUnknownPersonsJob","submitUnknownPersonsJobSucceeded","submitUnknownPersonsJobFailed","getUnknownPersonsJob","getUnknownPersonsJobSucceeded","getUnknownPersonsJobFailed","listUnknownPersons","listUnknownPersonsSucceeded","listUnknownPersonsFailed","selectUnknownPerson","getUnknownPerson","getUnknownPersonSucceeded","getUnknownPersonFailed","updateUnknownPerson","updateUnknownPersonSucceeded","updateUnknownPersonFailed","openDeleteUnknownPeopleDialog","deleteUnknownPerson","deleteUnknownPersonSucceeded","deleteUnknownPersonFailed","deleteUnknownPersonFace","deleteUnknownPersonFaceSucceeded","deleteUnknownPersonFaceFailed","moveUnknownPersonToModel","moveUnknownPersonToModelSucceeded","moveUnknownPersonToModelFailed","searchUnknownPersons","clearUnknownPersons","clearTableListError","loadPersonModels","loadPersonModelsInProgress","failLoadPersonModels","upsertPersonModel","upsertPersonModels","deletePersonModel","addPersonModel","personModelsLoaded","clearPersonModels","loadSpeechDatasets","loadSpeechDatasetsSucceeded","loadSpeechDatasetsFailed","clearSpeechDatasets","openViewSpeechDatasetDialog","loadSpeechDatasetFiles","loadSpeechDatasetFilesStarted","loadSpeechDatasetFilesSucceeded","loadSpeechDatasetFilesFailed","uploadButtonClicked","startUploadingDataset","addUploadingDataset","getDatasetSasURL","getDatasetSasURLSucceeded","getDatasetSasURLFailed","uploadDatasetToBlobSucceeded","uploadDatasetToBlobFailed","removeSpeechDataset","createDatasetStarted","createDatasetSucceeded","createDatasetFailed","toggleSpeechDatasetSelection","clearSpeechDatasetSelection","openEditSpeechDatasetDialog","updateSpeechDataset","updateSpeechDatasetStarted","updateSpeechDatasetSucceed","updateSpeechDatasetFailed","openDeleteSpeechDatasetDialog","deleteSpeechDataset","deleteSpeechDatasetStarted","deleteSpeechDatasetSucceed","deleteSpeechDatasetFailed","downloadSpeechDataset","downloadSpeechDatasetStarted","downloadSpeechDatasetSucceed","downloadSpeechDatasetFailed","getDatasetStatus","getDatasetStatusSucceeded","getDatasetStatusFailed","loadSpeechModels","loadSpeechModelsSucceeded","loadSpeechModelsFailed","clearSpeechModels","loadSpeechModelsSupportedLocalesSucceeded","loadSpeechModelsSupportedLocalesFailed","openEditSpeechModelDialog","updateSpeechModel","updateSpeechModelStarted","updateSpeechModelSucceed","updateSpeechModelFailed","removeSpeechModel","createSpeechModel","createSpeechModelStarted","createSpeechModelSucceed","createSpeechModelFailed","openTrainModelDialog","trainModelDialogClosed","openViewModelDialog","openSpeechDeleteModelDialog","deleteSpeechModel","deleteSpeechModelStarted","deleteSpeechModelSucceed","deleteSpeechModelFailed","getModelStatus","getModelStatusSucceeded","getModelStatusFailed","selectSpeechTab","initSelectedSpeechTab","initSpeechPagePermission","upsertSupportedLanguages","loadSupportedLanguageFailed","updateSupportedLanguage","DatePipe","BrandModelEffects","CustomizationEffects","LanguageIdEffects","LanguageModelEffects","PersonModelEffects","SpeechDatasetsEffects","SpeechModelsEffects","SpeechViewEffects","SupportedLanguagesIdsEffects","SupportedLanguagesEffects","BrandsService","CustomizationDataStoreService","CustomizationDataService","CustomizationFilterService","LanguageCustomizationService","LanguageIdStoreService","SpeechDatasetStoreService","SpeechModelStoreService","SpeechErrorsService","LogoGroupsEffects","EdgeSupportedLanguagesEffects","UnknownPersonEffects","UnknownPersonStoreService","PeoplePageStoreService","UnknownPersonService","PeopleViewEffects","UnknownPersonNotificationService","BrandActions","fromCustomizationData","loadBrandsModels$","isBrandModelsLoaded","Customization","BrandsModels","getList","brands","loadBrandsSettings$","getBrandsModelSettings","createBrandModels$","brand","addBrand","displayToast","BrandsAddBrandSuccess","CUSTOMIZATION","getBrandTraceData","brandsService","handleBrandsError","updateBrandsModels$","getBrands","updateBrand","BrandsEditBrandSuccess","oldBrand","currentBrand","updateBrandsSettings$","getBrandsSettings","oldSettings","updateBrandsModelSettings","AvertSuccessfullySubmitted","isActivated","useBuiltIn","deleteBrandModel$","deleteBrand","brandId","BrandsDeleteBrandSuccess","FailDeleteBRANDS","lastModified","enabled","LogoGroupsActions","LanguageActions","PersonActions","UnknownPersonActions","SpeechDatasetsActions","SpeechModelsActions","SpeechPageActions","SupportedLanguagesIdsActions","SpeechPermission","selectSupportedLanguagesIdsError","customizationRoute$","customizationPath","People","Brands","handleSpeechRoute","isLanguageIdEnabled","LanguageId","isLive","LiveEdge","clearCustomization$","isSupportedLanguagesError","hideLanguagesErrorStrip","UNDEFINED","setErrorLoadingLanguages","showLanguagesErrorStrip","languagesErrorStripId","LanguagesLoadingFailErrorMsg","EdgeExtensionsActions","EdgeSupportedLanguagesActions","isSupportedLanguageDialect","loadEdgeSupportedLanguages$","getSupportedLanguages","supportedLanguages","forEach","l","getLocaleLanguage","isDialect","cloneDeep","LanguageIDActions","fromLanguageId","fromSupportedLanguagesIds","loadDefaultLanguages$","defaultLanguages","loadSelectedLanguages$","selectSupportedLanguagesIds","selectDefaultLanguages","supportedLanguagesIds","Language_ID","selectedLocalLanguagesId","selectedLanguages","parsedLangs","selectedLanguage","language","deleteSelectedLanguageId$","selectSelectedLanguages","addSelectedLanguageId$","HttpEventType","saveAs","LanguageModelState","SupportedLanguagesActions","fromLanguageModels","uploadService","azureBlobService","languageRoute$","isLanguageModelsLoaded","loadLanguageModels$","LanguagesModels","getModels","models","addLanguageModel$","model","addModel","modelName","languageCustomizationService","handelModelAdding","supportedLanguage","isCreating","emptyModel","handleLanguageError","updateLanguageModel$","modelId","oldModel","updateModel","LanguageModelEditSuccess","LanguageModelEditFailed","deleteLanguageModel$","deleteModel","LanguageDeleteModelSuccess","LanguageModelFailedDeleteModel","deleteLanguageModelFile$","fileId","deleteModelFile","LanguageDeleteFileSuccess","LanguageModelFailedDeleteFile","downloadLanguageModelFile$","fileName","downloadModelFile","File","handleLanguageFileError","downloadFromEditFile$","getLanguageModelFile","hasCrisEdits","crisEdits","crisResult","convertTranscriptEditToString","uploadLanguageModelFile$","emptyFile","getEmptyFileFromTrainingFile","getSas","size","mergedFile","generateFile","baseUrl","sasToken","blobPath","uploadToBlobStorage","UploadProgress","newFile","total","Response","uploadFileToServer$","FormData","append","uploadModelFile","getModel","loadLanguageModelFileContent$","getModelFile","loadLanguageModelCrisEditsContent$","getModelCrisEdits","processLanguageModels$","processingModels","Processing","Waiting","trainModel$","pullTrainingModel$","filesIndex","fileContent","fileType","fileProperties","downloadSubject","Blob","trainingFile","inProgress","files","f","enable","creator","creationTime","modelType","description","lastUpdateTime","active","groupId","unshift","UploadService","AzureBlobStorageService","loadLogoGroups$","isLogoGroupsLoaded","LogoGroups","groups","PeoplePageActions","PeopleTab","selectPeopleTab$","PEOPLE","initSelectedPeopleTab$","peoplePath","substring","lastIndexOf","UNKNOWN_PEOPLE","Cancel","Delete","FailDeletePerson","UnknownPeopleDeleteDialogTitle","UnknownPeopleDeleteDialogContent","UnknownPersonMoveToModelSuccessTitle","UnknownPersonMoveToModelSuccessText","UnknownPersonDeleteFaceFailedMessage","RegroupNotificationHeader","RegroupNotificationText","GroupFailedNotificationTitle","GroupFailedNotificationText","UIActionType","UnknownPersonDetailsDialogComponent","JobType","GroupingState","fromUnknownPersons","unknownPersonStoreService","customizationDataStoreService","unknownPersonNotificationService","initUnknownPersonTab$","getUnknownPersonsJob$","UnknownPersons","getJob","job","updatedJob","jobType","UnknownPersonsGrouping","Processed","submitUnknownPersonsJob$","submitJob","Failed","getUnknownPerson$","unknownPerson","listUnknownPersons$","getPaginationState","searchValue","search","unknownPersons","resultSize","searchUnknownPersons$","openUnknownPersonDetailsDialog$","getById","updateUnknownPerson$","patch","deleteUnknownPerson$","delete","deleteUnknownPersonFace$","unknownPersonId","faceId","deleteFace","deleteUnknownPersonFaceSucceeded$","bestFace","faces","qualityRank","score","imageCount","bestFaceThumbnailId","thumbnailId","bestFaceVideoId","lastUpdated","openDeleteUnknownPersonDialog$","personIds","openDeleteModelDialog","moveUnknownPersonToModel$","personName","moveToKnownPersonModels","moveUnknownPersonToModelSucceeded$","force","close","updating$","getIsUpdating$","unknownPerson$","getSelected$","CANCEL","UPDATE","DELETE_PERSON","DELETE_FACE","peopleIds","cancelBtn","deleteBtn","deleteModelDialogRef","loadPersonModels$","isPeopleModelsLoaded","PeopleModels","SpeechFailedUploadDatasetText","SpeechFailedUpdateDatasetTitle","SpeechFailedUpdateDatasetText","SpeechFailedTrainModelText","SpeechFailedUpdateModelTitle","SpeechFailedUpdateModelText","exhaustMap","guid","UIDatasetState","SpeechObjectState","downloadService","speechErrorsService","GET_DATASET_STATUS_DELAY","loadSpeechDatasets$","isSpeechDatasetsLoaded","listDatasets","datasets","loadSpeechDatasetFiles$","datasetId","getSpeechDatasetById","dataset","filesLoaded","getDatasetFiles","getDatasetFilesContent","contents","updateSpeechDataset$","datasetBeforeUpdate","updateDataset","fields","nameLength","descriptionLength","errorNotification","getErrorNotification","deleteSpeechDataset$","deleteDataset","datasetName","onDeleteDatasetFailed$","errorTexts","getSpeechDatasetDeleteErrorTexts","downloadSpeechDataset$","datasetContract","downloadDatasetLanguageData","languageData","startUploadingDataset$","uploadDetails","uploadingDataset","acceptedLineCount","rejectedLineCount","duration","kind","UPLOADING","disabled","lastActionDateTime","createdDateTime","customProperties","getSasURL$","sas","uploadToBlobStorage$","source","newDatasetDetails","contentUrl","datasetInput","createSpeechDataset$","createDataset","datasetDetails","onUploadDatasetFailed$","getDatasetsStatus$","processingDatasets","isDatasetProcessing","getDatasetStatus$","getDataset","WAITING","PROCESSING","DownloadService","GET_MODEL_STATUS_DELAY","loadSpeechModels$","isSpeechModelsLoaded","listModels","updateSpeechModel$","getSpeechModelId","modelBeforeUpdate","createSpeechModel$","creatingModel","getCreatingSpeechModel","createModel","deleteSpeechModel$","onFailedDeleteModel$","getSpeechModelDeleteErrorTexts","getModelsStatus$","isModelProcessing","getModelStatus$","newModelId","modelProperties","creatingSpeechModel","SpeechTab","SpeechModelActions","selectSpeechTab$","initSelectedSpeechTab$","speechPath","DATASETS","MODELS","isSpeechPageEnabledARM$","isSpeechFeatureEnabled","PERMITTED","REJECTED","isSpeechPageEnabled$","isAccountEnabled","isSpeechPageEnabled","loadSpeechData$","getSpeechPermission","loadSupportedLanguages$","isSupportedLanguagesFeatureEnabled","SUPPORTED_LANGUAGES","isExpanded","editMode","DatasetKindEnum","SpeechDatasetKind","TrainModelDialogSource","savingIncluded","savingExcluded","brandModelReducer","upsertOne","edgeExtensionsActions","selectLanguageId","edgeSupportedLanguagesIdsReducer","fromBrandModels","fromPersonModels","fromPeoplePage","fromSpeech","fromSupportedLanguages","fromEdgeSupportedLanguages","fromLogoGroups","languageModels","personModels","peoplePage","brandModels","logoGroups","speech","languageId","edgeSupportedLanguages","languagesIdReducer","selectModelId","languageModelReducer","uploadingFiles","index","findIndex","splice","lm","newFiles","languageModelId","fileIndex","newUploadingFiles","selectLanguageIds","selectAllLanguages","LogoActions","logoGroupsReducer","peoplePageInitialState","selectedTab","peoplePageReducer","UnknownPersonTableListError","selectUnknownPersonId","isLastPage","jobDataLoaded","tableLoaded","tableListError","searching","updating","selectedUnknownPerson","unknownPersonsReducer","LOAD_MORE_ERROR","SEARCH_ERROR","GET_LIST_ERROR","personModelReducer","DatasetDisabledReason","selectDatasetId","datasetInitialState","selectedDatasets","pronunciationId","languageIds","speechDatasetReducer","mappedDatasets","isDatasetDone","report","normalizedText","filesError","getDatasetOnSelect","selected","getStateOnToggleDataset","clearSelectionsDatasets","disabledReason","clickedDataset","getSelectedDatasetsOnSelect","updatedDatasets","changeDatasetsPropertiesOnSelect","selectedPronunciationId","selectedLanguageIds","selectedLocale","LANGUAGE","PRONUNCIATION","datasetEntities","entity","hasSelectedDataset","undefined","isLanguageDisabled","isPronunciationDisabled","isDatasetInProcess","NotInSelectedLanguage","PronunciationAlreadySelected","COMPLETE","modelsInitialState","creating","supportedLocales","isSupportedLocalesLoaded","selectedModelId","isTrainDialogOpened","speechModelsReducer","speechPageInitialState","speechPageReducer","fromSpeechModels","fromSpeechDataset","fromSpeechPage","supportedLanguagesIdsReducer","supportedLanguagesReducer","selectedLanguageKey","supportedLanguagesList","getBrandModelsState","getBrandsCount","getBrandsByType","getBrandsIsSaving","getBrandsError","isBrandModelsLoading","getBrandModelDuplication","getBrandModelUrlDuplication","referenceUrl","selectEdgeSupportedLanguagesState","selectEdgeSupportedLanguages","selectEdgeSupportedLanguagesError","selectEdgeSupportedLanguagesLoaded","isSupportedLanguageDisabled","selectSupportedLanguagesIdsState","selectLanguageIdState","selectSelectedLanguagesKeys","selectSelectedLanguagesNames","selectDefaultLanguagesNames","selectSupportedLanguagesIdsActions","lang","isDisabled","uiLanguage","CHANGE_LANGUAGE","selectable","selectSupportedAutoDetectLanguagesIds","getLanguageModelsState","getSupportedLanguagesState","isLanguageModelsLoading","isLanguageModelsError","getLanguageModels","getTrainedLanguageModels","Complete","getLanguageModelByLanguage","languages","getLanguageModelIsExpanded","getLanguageModelIsSaving","getLanguageModelIsTraining","getLanguageModelsIsTraining","getTrainedLanguageModelCount","getSupportedLanguage","getSupportedLanguageIsSaving","getLanguageModel","getLanguageModelFiles","getLanguageModelUploadingFiles","getLanguageModelIsTrained","selectLogoGroupsState","selectLogoGroups","getLogoGroupsActions","logoGroup","logoGroupAction","selectLogoGroupError","isLogoGroupsLoading","getLogoGroupById","getPersonModelsState","getPeopleModels","getPeopleError","isPeopleModelsLoading","getPersonModelById","getSelectedTab","getState","getEntities","getSelected","getIsUpdating","getIsLoaded","getIsJobLoaded","getIsTableLoaded","getIsSearching","isLoadMoreError","isSearchError","isGetListError","getSpeechState","getSpeechDatasetsState","getSpeechDatasets","isDatasetUpdating","getSpeechDatasetError","isSpeechDatasetFilesError","getSelectedDatasets","getSelectedDatasetsLocale","getSelectedDatasetsIds","selectedDatasetsIds","selectedDatasetsExists","selectedIds","getSpeechCompleteDatasetsByLocale","isSelectedDatasetsForTrainModel","getSpeechDatasetsByIds","getSpeechModelsState","isSpeechModelError","getSpeechModels","getTrainedSpeechModels","speechModels","s","isSpeechModelUpdating","isSpeechModelTrainDialogOpened","getSelectedSpeechModel","getSpeechSelectedTab","selectSupportedLanguagesIdsSuccess","selectSpeechDatasetLocalesForLanguage","reduce","curr","isSupportedForLanguageDataset","selectSpeechDatasetLocalesForPronunciation","isSupportedForPronunciationDataset","selectSpeechModelsLocales","isSupportedForCustomModels","Customization_Error_Types","ALREADY_EXISTS","BrandAlreadyExistsError","WIKI_ALREADY_EXISTS","BrandWikiAlreadyExistsError","wikiUrl","INVALID_INPUT","BrandInvalidInputError","ErrorTypes_GENERAL","PersonModelActions","BrandsModelActions","loadAllCustomizations","loadLanguageId","getPeopleModelById","peopleModels","peopleModelsError","updatePeopleModel","newModel","getLanguageModelFilesById","toggleLanguageModelIsExpanded","downloadLanguageModelFile","downloadFromEditLanguageModelFile","updateSupportedLanguageModels","languageModelListContract","trainedLanguageModels$","brandsSettings","brandsError","loadLogoGroups","logoGroupsActions","logoGroupsError","remove","upperFirst","UIGridCellTypes","IUICellNameType","insightsCommonUtilsService","addModelData","addModelToData","cells","gridData","modelGridData","isUnshiftToList","edit","expand","rowDetails","createUniqueAction","currentAction","actionTitle","currentRowAction","titleAttribute","modelsGridData","deleteModelByIdFromGrid","nameCellIndex","getModelDataIndexById","deleteModelData","p","modelIndex","getCounterModelCell","itemResources","peopleModel","personsCount","number","FacesModelName","placeholder","FacesCustomizationEnterModelName","TEXT","faceType","counterCellIndex","actionsCellIndex","infoModelAction","indexToSkip","updateModelByIndex","updateModelById","updateModelActions","modelInfo","faceName","disableRowActions","row","c","disableRowDetailsActions","getFromNowText","dateValue","UtilsServiceJustNow","units","modelGrid","updateModelCells","isNewModel","isIndex","i","InsightsCommonUtilsService","nameValidation","disableActionsList","translateValues","isFullWidth","BehaviorSubject","CustomizationFilterType","loggerService","currentFilter","Map","filter$","getFilter","filterLength","clearAllFilters","addFilter","columnName","set","removeFilter","GeneralCancelDialogButton","DeleteBrandModelAction","datePipe","NOT_FOUND","LanguageGetModelNotFoundError","LanguageCreateModelAlreadyExistsError","currentFile","downloadMode","UploadBoxFileAlreadyExistsError","currentFileName","UploadBox_UploadFile_INVALID_INPUT","errorResource","LanguageDownloadFileContentNotFoundError","LanguageGetFileContentNotFoundError","transcriptEditName","Language_From_Transcript_File","transcriptEdits","asHTML","outputString","transcriptEdit","oldVideoId","Language_From_Edits_Header","videoName","LabelUnknown","LabelCrisFromEditsEditFrom","transform","createDate","valueAsDiff","getNewValueAsDiff","originalValue","currentValue","handelDeleteDialog","isModel","callBack","tempResources","LanguageValidateVideoIndexingEmptyFileMsg","LanguageValidateVideoIndexingEmptyModelMsg","LanguageDeleteFileAction","LanguageModelDeleteModelHeader","deleteModelDialog","DELETE","ref","buttonToFocus","originValue","newValue","MARK_FOUND_AS_DIFF","isSingleWord","newAsDiff","oldAsDiff","arrNewAsDiff","arrOldAsDiff","arrOriginValue","arrNewValue","newElement","originIndex","oldElement","element","selectedLanguagesId$","selectedLanguagesIdNames$","selectedLanguagesIdKeys$","defaultLanguagesNames$","selectSupportedLanguagesIdsActions$","supportedLanguagesIds$","getIsLoaded$","getIsJobLoaded$","getIsTableLoaded$","getIsLoadMoreError$","getIsSearchError$","getIsGetListError$","getIsSearching$","openUnknownPersonDeleteDialog","humanizeFromNow","dataService","customizationDataService","getThumbnailUrl","getThumbnailUrlWithToken","getAccessToken","convertPersonContract","people","selectedPersonIds","person","DataService","FaceImageTitle","FacesName","FacesCustomizationExpandMenuTitle","SpeechInUseFailedDeleteDatasetText","SpeechGeneralFailedDeleteDatasetText","SpeechOnIndexingFailedDeleteModelTitle","SpeechGeneralFailedDeleteModelText","SpeechDatasetActions","loadSpeechData","uploadSpeechDatasetClicked","isLoadDatasetDetailsError","datasetIds","openDeleteDatasetDialog","downloadDataset","openSpeechDatasetDialog","Errors","DATASET_IN_USE","MODEL_IN_USE","isUpdating","getSelectedModel","trainedSpeechModels$","SupportedLanguagesStoreService","supportedLanguagesIdsError$","supportedLanguagesIdsSuccess$","edgeSupportedLanguages$","languagePrefix","slice","indexOf","isExcluded","UIActionIcon","UILanguageModelActionType","mainAction","EDIT","hasDrop","EditBrandModelAction","RENAME_MODEL","TRASH","DELETE_MODEL","brandsActions","brandAddAction","ADD","style","brandUpdateAction","brandSaveAction","SAVE","brandCancelAction","emptyHeaderTitleCells","FacesMerge","displayedPeopleModelsColumns","FacesModelCounter","FacesModelSort","FacesModelActionBar","FacesModelExpanded","displayedPeopleColumns","FacesActionBar","FacesUpdatedBy","FacesLastUpdated","displayedPeopleColumnsISA","FacesScoreCol","PeopleModelsSortParamName","PersonActionId","cancelAction","loadAction","SCROLL","moveToModelAction","barActions","facesActions","UPLOAD","NAVIGATE","Metadata","Save","SettingsSave","AddMetadata","GridLoadMoreButton","FacesCustomizationGoToVideoAction","UnknownPersonDialogMoveToModel","UnknownPersonDialogSpinnerTitle","UnknownPersonDialogFacesTitle","UnknownPersonDialogPersonNameTitle","FacesCustomizationOpenFaceAction","UnknownPersonDialogNamePerson","UnknownPersonDialogNamePersonDescription","EventEmitter","UnknownPersonDetailsDialogComponent_div_0_app_vi_action_button_4_Template_app_vi_action_button_actionClick_0_listener","ctx_r2","onActionBarClicked","action_r4","UnknownPersonDetailsDialogComponent_div_0_div_6_Template_vi_ui_input_inputChanged_5_listener","_r5","metadata","UnknownPersonDetailsDialogComponent_div_0_div_9_Template_vi_ui_textarea_inputChanged_1_listener","_r6","UnknownPersonDetailsDialogComponent_div_0_div_9_Template_app_vi_action_button_actionClick_3_listener","saveMetadata","UnknownPersonDetailsDialogComponent_div_0_div_9_Template_app_vi_action_button_actionClick_4_listener","resetMetadata","METADATA_INPUT_HEIGHT","METADATA_MAX_LENGTH","saveAction","canSaveMetadata","METADATA_BUTTON_WIDTH","UnknownPersonDetailsDialogComponent_div_0_app_actions_menu_15_Template_app_actions_menu_actionChange_0_listener","face_r8","_r7","$implicit","onFacesActionClicked","ɵɵpropertyInterpolate1","fallbackUrl","UnknownPersonDetailsDialogComponent_div_0_app_vi_action_button_16_Template_app_vi_action_button_actionClick_0_listener","_r9","loadMoreFaces","loadFacesAction","UnknownPersonDetailsDialogComponent_div_0_app_vi_action_button_21_Template_app_vi_action_button_actionClick_0_listener","_r10","moveToModel","canMoveToModel","CANCEL_BUTTON_MIN_WIDTH","UnknownPersonDetailsDialogComponent_div_0_app_vi_action_button_4_Template","UnknownPersonDetailsDialogComponent_div_0_div_6_Template","UnknownPersonDetailsDialogComponent_div_0_div_8_Template","UnknownPersonDetailsDialogComponent_div_0_div_9_Template","UnknownPersonDetailsDialogComponent_div_0_app_actions_menu_15_Template","UnknownPersonDetailsDialogComponent_div_0_app_vi_action_button_16_Template","UnknownPersonDetailsDialogComponent_div_0_div_18_Template","UnknownPersonDetailsDialogComponent_div_0_app_vi_action_button_21_Template","UnknownPersonDetailsDialogComponent_div_0_Template_app_vi_action_button_actionClick_22_listener","_r1","editMetadata","ɵɵpipeBind2","loadedFaces","showLoadMoreFaces","PRIMARY_BUTTON_MIN_WIDTH","unknownPersonService","componentEventEmitter","FACE_PAGE_SIZE","facesPageIndex","initTranslations","FaceFallbackUrl","initFaces","loadedFacesCount","facesCount","originalId","emit","isDialogClose","EDIT_METADATA","face","IMAGE","inputs","outputs","UnknownPersonDetailsDialogComponent_Template","UnknownPersonDetailsDialogComponent_div_0_Template","UnknownPersonDetailsDialogComponent_div_1_Template","ActionId","nameFilter","filterValue","item","console","ownerFilter","lastModifierUserName","categoryFilter","args","tags","UILanguageIDActionType","UILanguageModelFileActionType","LiveEdgeGuardService","canNotActivate","checkAccountExistence$","checkExtensionConnectedToIotResource$","isIotResourceHub","checkLiveModuleLoaded$","cancelButtonAction","deleteButtonAction","DeleteVideoComponent","galleryStore","BUTTONS_WIDTH","deleteIndex","isBase","deleteVideo","deleteProject","closeDialog","cancel","dialogEvent","DeleteVideoComponent_Template","DeleteVideoComponent_Template_app_vi_action_button_actionClick_3_listener","DeleteVideoComponent_Template_app_vi_action_button_actionClick_4_listener","GalleryDeleteVideoMassage","selectTab","selectView","clearGallery","loadCurrentTab","loadNext","loadProcessingVideo","loadProcessingVideoDone","loadProcessingVideoOrProjectById","announceProcessVideos","loadLibraryNextPage","upsertVideos","updateVideo","updateVideoName","updateThumbnailId","deleteVideoSuccess","deleteVideoFailed","deleteVideos","loadVideo","loadVideoError","loadProjects","loadingProjects","loadProjectsNextPage","createProjectItem","clearProjects","loadProjectsError","loadSamples","loadingSamples","loadSamplesNextPage","clearSamples","loadSamplesError","searchVideos","searchProjects","clearSearch","searchNextSearchResults","searchVideosError","UIGalleryActionType","UIGalleryTabsActionType","indexingSummaryAction","INDEXING_SETTINGS","galleryActionsAmsless","INDEX","RE_INDEX","REINDEX_VIDEO","DELETE_VIDEO","COPY","COPY_FILE_ID","OPEN_IN_NEW_TAB","galleryActions","EDITOR","EDIT_VIDEO","galleryProjectActions","PLAY","PLAY_VIDEO","galleryPlayAction","galleryGridViewAction","GRID","GRID_VIEW","galleryListViewAction","LIST","LIST_VIEW","galleryGridViewMainAction","galleryListViewMainAction","galleryViewActions","galleryTabsNoTitleActions","GRID_MINI","LIST_MINI","searchAction","SEARCH","clearFiltersAction","CLEAR_FILTERS","UIFilterType","utils","MAX_FILTERS","IGalleryTab","IGalleryView","emptyProjectItem","partition","externalId","created","lastIndexed","privacyMode","userName","isOwned","moderationState","reviewState","processingProgress","durationInSeconds","thumbnailVideoId","searchMatches","indexingPreset","streamingPreset","sourceLanguages","personModelId","isEmptyProject","VideoItemType","IGalleryFilterType","IGalleryFilterInsightType","EventTimeRange","startInSeconds","getSeconds","start","endInSeconds","end","fStart","adjustedStart","fEnd","adjustedEnd","fStartInSeconds","fEndInSeconds","scopeFilterIssue","placeHolderText","placeHolderKey","DROP_DOWN","enableMultipleSelection","filterAction","SEARCH_CHANNEL_FILTER","applyValue","peopleFilterIssue","PEOPLE_FILTER","ownerFilterIssue","SEARCH_OWNER_FILTER","Owner","languageFilterIssue","filterIssues","GalleryProcessingProgress","GalleryTab","GalleryView","ViewActions","Library","view","getGalleryView","viewStorage","localStorage","List","Grid","fromLibrary","fromProjects","fromSamples","fromSearch","fromGalleryView","library","projects","samples","galleryView","selectGalleryState","selectVideoId","selectedVideoId","loadingNext","libraryReducer","video","videos","prevProcessingProgress","DELETING","ProjectsActions","projectsReducer","PROCESSED","SamplesActions","samplesReducer","immerOn","SearchActions","searchReducer","isLibraryLoaded","libraryError","isProjectsLoaded","projectsError","getGalleryViewState","selectedGalleryTab","selectedGalleryView","isLanguagesLoaded","langLoaded","langModelsLoaded","speechModelsLoaded","showLanguagesError","langError","langModelsError","speechError","isUploadEnabled","libLoaded","projLoaded","accountLoaded","languagesLoaded","showUploadError","libError","projError","isUserNotAuthenticatedOrUnauthorizedError","isEmptyGuid","getLibraryState","getProjectsState","getSamplesState","getSearchState","selectAccountErrorType","sortByUploaded","selectCurrentTabState","libraryState","projectsState","samplesState","Project","Sample","selectCurrentTabNextPage","currentTabState","isNextPageDone","isNextPageLoading","selectAllEntities","selectCurrentGalleryItemsState","tabVideosState","searchState","Search","isError","isUnauthorizedError","accountErrorType","selectAllVideos","selectVideo","selectCurrentProcessingVideo","sampleState","selectProcessingVideos","isSelectedTabHidden","isLibraryLoading","libraryErrorType","isProjectsLoading","projectsErrorType","isSamplesLoaded","isSamplesLoading","isSearchLoading","isSearching","isSearchNextPageDone","selectSearchResults","selectSearchParams","selectSearchResultsVideos","getSearchStateNextPage","isSearchStateNextPageDone","isSearchNextPageLoading","VideoType","SearchParams","GalleryItemPlayVideoTitle","GalleryItemEditVideoTitle","GalleryUploadedBy","GalleryDeleteVideoDialogTitle","IndexedBy","GalleryItemLastModified","Reindex","IndexingSettings","IndexingSettingsModalHeader","Editor","Play","Tiles","VideoOptions","ReIndexDialogTitle","GalleryDeleteVideoSuccess","GalleryDeleteVideoSuccessTitle","GalleryItemFlaggedRequestedReviewApproval","GalleryItemFlaggedRequestedReview","GalleryItemFlaggedOffensiveContent","GalleryListItemMediaThumbnail","VideoUnavailable","GallerySearchExpandVideoItem","CopyFileId","CopyFileIDSuccess","OpenInNewTab","GalleryDeleteVideoErrorTitle","GalleryDeleteVideoErrorText","GalleryVideoCurrentlyBeingIndexedErrorTitle","GalleryVideoCurrentlyBeingIndexedErrorText","CouldntLoadMaxConfidence","GalleryViewActions","GalleryActions","fromGallery","loadAllGallery","currentTabVideos$","loading$","isUploadEnabled$","showUploadError$","showLanguagesError$","error$","isUnauthorizedError$","isNextPageDone$","isNextPageLoading$","selectedTab$","selectedView$","setSelectedTab","galleryTab","setSelectedView","isSelectedTabHidden$","lastView","searchResults$","searchParams$","isSearching$","isSearchLoading$","isSearchStateNextPageDone$","isSearchNextPageDone$","isSearchNextPageLoading$","searchError$","SamplesAccountId","VideoReviewState","IndexingSummaryDialogComponent","GalleryService","insightsCommonUtils","indexingStoreService","edgeExtensionsApiHandlerService","getThumbnailClass","uniqueId","itemId","prefix","openDeleteDialog","deleteData","deleteDialogData","toastDeleteSuccess","Toast","toastDeleteError","VIDEO_CURRENTLY_BEING_INDEXED","copyVideoId","GALLERY","openVideoInNewTab","openIndexingSummaryDialog","openIndexingSummaryData","openReIndexDialog","reIndexData","trackAppListItemBy","hadExpandedDetails","appListItem","sm","getParamsAsObject","query","scope","owner","textScope","getSearchRequestParams","filters","scopeMainAction","addEntities","searchRequestParams","faceFilters","Face","ownerFilters","languageFilters","filteredFaces","filteredOwner","ALL_INSIGHTS_FILTER","getGalleryTabFromUrl","navigateToVideo","navigateToEdgeExtensionVideo","navigateToEditor","createNewProject","isProject","getModerationStateText","videoReviewState","NONE","IndexingStoreService","presetToRequiredAIsMap","IndexingSummaryService","getLogoGroupNameById","logoGroupId","_ref","reject","_x","apply","arguments","getPeopleModelNameById","_ref2","personModel","_x2","getSupportedAINamesByPreset","preset","getAccountSupportedAIs","supportedAIs","aiNames","getSupportedAIsNames","aIs","getExcludedAIsNames","excludedAIs","ai","getIncludedAisNames","RequiredAIs","fromNow","IndexState","processing","v","Uploaded","orderReady","compareVideos","orderProcessing","lastModifiedA","lastModifiedB","IMaxWidthCalcType","FocusableComponent","BadgeClasses","AccountsListButtonComponent","toggle","isSideBarOpened","accessibilityModeSubject","isTrial","getBadgeClass","Trial","Hybrid","NoBadge","getBadgeText","HeaderTrial","openAccountsList","ɵɵInheritDefinitionFeature","AccountsListButtonComponent_Template","AccountsListButtonComponent_Template_div_appAccessibleClick_0_listener","accessibilityMode","ɵɵclassMap","DOCUMENT","HeaderStripsComponent_app_vi_strip_0_Template_app_vi_strip_actionClick_0_listener","strip_r2","actionClicked","HeaderStripsComponent_app_vi_strip_0_Template_app_vi_strip_linkClick_0_listener","linkClicked","HeaderStripsComponent_app_vi_strip_0_Template_app_vi_strip_closeClick_0_listener","closeNotificationStrip","hasSpinner","HeaderStripsComponent_app_vi_strip_1_Template_app_vi_strip_linkClick_0_listener","strip_r5","_r4","HeaderStripsComponent_app_vi_strip_1_Template_app_vi_strip_closeClick_0_listener","closeStrip","isProgressNumber","HeaderStripsComponent","document","notificationsStrips","strips","initStrips","onResize","deleteStrip","deleteNotificationStrip","strip","noop","triggerStripData","existingStrip","addStrip","triggerNotificationsStripData","addNotificationStrip","compareStrips","setStripsHeight","compareNotificationStrips","stripA","stripB","typeA","typeB","stripElements","querySelectorAll","clientHeight","documentElement","setProperty","onResizeEventStream","removedStrip","closeCallback","HEADER","HeaderStripsComponent_Template","HeaderStripsComponent_app_vi_strip_0_Template","HeaderStripsComponent_app_vi_strip_1_Template","UIHeaderActionType","connectToAzureAction","CONNECT_TO_AZURE","sidemenuToggleAction","helpAction","HELP","helpLinkAction","notificationsEmptyTitleAction","notificationsAction","settingsEmptyTitleAction","settingsAction","signOutAction","SIGN_OUT","switchDirectoryAction","SWITCH_DIRECTORY","modelCustomizationAction","MODEL_CUSTOMIZATION","accountsAction","menuAction","MENU","menuActionList","menuWithNotificationsActionList","menuWithoutAccountsActionList","menuWithNotificationsWithoutAccountsActionList","HeaderComponent_div_1_Template_div_blur_0_listener","ctx_r1","onBlurSkipContent","HeaderComponent_div_1_Template_div_keyup_enter_0_listener","onEnterSkipContent","HeaderComponentSkipMainContent","HeaderComponent_app_vi_action_button_5_Template_app_vi_action_button_actionClick_0_listener","_r3","handleToggleSideMenu","HEADER_BUTTON","sidemenuToggle","HeaderComponent_div_11_div_1_Template_app_vi_action_button_actionClick_1_listener","connectToAzure","HeaderComponent_div_11_vi_accounts_list_button_2_Template_vi_accounts_list_button_toggle_0_listener","handleButtonClick","selectedAction","HeaderComponent_div_11_app_vi_action_button_3_Template_app_vi_action_button_actionClick_0_listener","HeaderComponent_div_11_app_vi_action_button_3_div_1_Template","notificationsLoading$","HeaderComponent_div_11_div_1_Template","HeaderComponent_div_11_vi_accounts_list_button_2_Template","HeaderComponent_div_11_app_vi_action_button_3_Template","HeaderComponent_div_11_Template_app_vi_action_button_actionClick_4_listener","HeaderComponent_div_11_Template_app_vi_action_button_actionClick_5_listener","help","HeaderComponent_div_11_Template_app_actions_menu_actionChange_6_listener","HeaderComponent_div_11_Template_app_actions_menu_isMenuOpened_6_listener","ToggleMobileMenu","HeaderComponent_div_11_Template_div_toggleFunc_7_listener","userMenuExpanded","HeaderComponent_div_11_Template_button_appAccessibleClick_8_listener","handleToggleUserMenu","HeaderComponent_div_11_Template_app_vi_user_menu_close_10_listener","showConnectToAzure","isNotificationCenterEnabled","menu","menuList","menuType","userDetails","imageUrl","HeaderUserImageAlt","HeaderComponent","modelCustomization","logoText","logoTextShort","isArmAccount","showSkipMainContent","mainContentTriggerTabIndex","isSideMenuEnabled","logoTextTitle","logoTextShortTitle","sidebarActions","showSideMenuToggle","preventDefault","closeSidebar","VIHeaderCreatePro","onHeaderFocus","relatedTarget","classList","contains","navigationOptions","setSelectedAction","handleCustomization","handleLogoClick","isMenuOpened","act","HeaderComponent_Template","HeaderComponent_div_1_Template","HeaderComponent_Template_div_focus_2_listener","HeaderComponent_app_vi_action_button_5_Template","HeaderComponent_Template_div_appAccessibleClick_7_listener","HeaderComponent_Template_div_appAccessibleClick_9_listener","HeaderComponent_div_11_Template","HeaderUploadVideo","HeaderContentModelCustomization","HeaderHelpLinkAria","HeaderHelp","HeaderUserSettings","HeaderSignOut","HeaderAccounts","HeaderUserAccounts","HeaderToggleSidemenu","SidebarUserNotifications","getUserTitle","UserDetailsComponent","UserDetailsComponent_Template","UserDetailsComponent_div_0_Template","SwitchDirectory","UserMenuComponent_li_3_Template_a_appAccessibleClick_2_listener","openSwitchDirectoryDialog","UserMenuComponent","isSwitchDirectoryEnabled","setTranslation","isAad","closeMenu","signOut","SwitchDirectoryComponent","maxWidth","minHeight","addBackgroundToOverlay","UserMenuComponent_Template","UserMenuComponent_li_3_Template","UserMenuComponent_Template_a_appAccessibleClick_6_listener","ReIndexPages","FailureCode","reIndexAction","reviewAndReIndexAction","PREVIEW","closeIconAction","closeAction","AlertMessageType","backToSettingsAction","ReIndexDialogComponent_app_vi_action_button_4_Template_app_vi_action_button_actionClick_0_listener","confirmClose","ReIndexDialogComponent_ng_container_5_div_3_vi_ui_alert_message_1_Template_vi_ui_alert_message_buttonClicked_0_listener","onClick","linkText","ReIndexDialogComponent_ng_container_5_div_3_vi_indexing_form_2_Template_vi_indexing_form_navigateToCreateAccount_0_listener","onNavigateToCreateAccount","ReIndexDialogComponent_ng_container_5_div_3_vi_indexing_form_2_Template_vi_indexing_form_manageModelsClicked_0_listener","isIndexingFormDisabled","ReIndexDialogComponent_ng_container_5_div_3_vi_ui_alert_message_1_Template","ReIndexDialogComponent_ng_container_5_div_3_vi_indexing_form_2_Template","showLoadingError","showReIndexError","isExcludeAIsEnabled","isIndexingSettingLoaded","ReIndexDialogComponent_ng_container_5_vi_re_index_summary_page_5_Template_vi_re_index_summary_page_reIndexError_0_listener","onReIndexError","ɵɵpureFunction2","isReIndexProcessing","reIndexStatusText","ReIndexDialogComponent_ng_container_5_app_vi_action_button_8_Template_app_vi_action_button_actionClick_0_listener","backToSettingsClicked","BACK_TO_SETTINGS_MIN_WIDTH","ReIndexDialogComponent_ng_container_5_app_vi_action_button_9_Template_app_vi_action_button_actionClick_0_listener","reIndexClicked","isReIndexButtonDisabled","ReIndexDialogComponent_ng_container_5_app_vi_action_button_10_Template_app_vi_action_button_actionClick_0_listener","_r8","reviewReIndexClicked","isSupportedAIsLoaded","REVIEW_REINDEX_BUTTON_MIN_WIDTH","ReIndexDialogComponent_ng_container_5_app_vi_action_button_11_Template_app_vi_action_button_actionClick_0_listener","ReIndexDialogComponent_ng_container_5_app_vi_action_button_12_Template_app_vi_action_button_actionClick_0_listener","ReIndexDialogComponent_ng_container_5_div_1_Template","ReIndexDialogComponent_ng_container_5_div_3_Template","ReIndexDialogComponent_ng_container_5_div_4_Template","ReIndexDialogComponent_ng_container_5_vi_re_index_summary_page_5_Template","ReIndexDialogComponent_ng_container_5_div_7_Template","ReIndexDialogComponent_ng_container_5_app_vi_action_button_8_Template","ReIndexDialogComponent_ng_container_5_app_vi_action_button_9_Template","ReIndexDialogComponent_ng_container_5_app_vi_action_button_10_Template","ReIndexDialogComponent_ng_container_5_app_vi_action_button_11_Template","ReIndexDialogComponent_ng_container_5_app_vi_action_button_12_Template","displayedReIndexPage","IndexingForm","ReIndexReview","ReIndexSummary","showReIndexStatus","showBackToSettingsButton","showReIndexButton","showReviewReIndexButton","showCancelButton","showCloseButton","ReIndexDialogComponent_ng_template_6_Template_vi_confirm_exit_indexing_backToIndexing_0_listener","_r11","onBackToIndexing","ReIndexDialogComponent_ng_template_6_Template_vi_confirm_exit_indexing_leaveIndexing_0_listener","leaveIndexing","ReIndexDialogComponent","indexingStore","indexingFormChanged","showConfirmExit","navigateToCreateAccount","customizationPageToNavigate","ExcludeAIs","handleLoadingErrors","handleReIndexErrors","statusText","isIndexingProcessDirty$","isDirty","isIndexingSettingLoaded$","displayedReIndexPage$","isReIndexProcessing$","isSupportedAIsLoaded$","reIndex","updateReIndexPage","pageToNavigate","isFileNotFoundError$","isGeneralLoadingReIndexError$","isVideoUrlUnreachableError$","isFileWasRemovedError$","isFileNotFoundError","isGeneralLoadingReIndexError","isVideoUrlUnreachableError","isFileWasRemovedError","ReIndexFileNotFoundErrorMsg","ReIndexGeneralLoadingErrorMsg","ReIndexVideoUrlUnreachableErrorMsg","ReIndexFileWasRemovedErrorMsg","isAmsUnreachableReIndexError$","isSourceVideoDeletedError$","isIndexingInProgressError$","isFileInReviewError$","isFileWasReportedError$","isProjectRenderInProgressError$","isAmsAadAppNotInTenantReIndexError$","isGeneralReIndexError$","isStorageAccessDeniedReIndexError$","isStorageUnreachableReIndexError$","isManageIdentityMissingReIndexError$","isAmsUnreachableReIndexError","isSourceVideoDeletedError","isIndexingInProgressError","isFileInReviewError","isFileWasReportedError","isProjectRenderInProgressError","isAmsAadAppNotInTenantReIndexError","isGeneralReIndexError","isStorageAccessDeniedReIndexError","isStorageUnreachableReIndexError","isManageIdentityMissingReIndexError","errorMessages","showError","ReIndexAmsUnreachableErrorMsg","ReIndexSourceVideoDeletedErrorMsg","ReIndexVideoIndexingInProgressErrorMsg","ReIndexFileInReviewErrorMsg","ReIndexFileWasReportedErrorMsg","ReIndexProjectRenderInProgressErrorMsg","ReIndexAmsAadAppNotInTenantErrorMsg","ReIndexGeneralErrorMessage","ReIndexStorageAccessDeniedErrorMsg","StorageAccessDeniedErrorMsgLinkText","ReIndexStorageUnreachableErrorMsg","ReIndexFileManagedIdentityMissingErrorMsg","ReIndexDialogComponent_Template","ReIndexDialogComponent_app_vi_action_button_4_Template","ReIndexDialogComponent_ng_container_5_Template","ReIndexDialogComponent_ng_template_6_Template","ɵɵtemplateRefExtractor","ReindexModalHeader","confirmExitScreen_r12","ReviewAndReIndex","IndexingBackToSettings","ReIndexSummaryPageComponent_vi_ui_alert_message_2_Template_vi_ui_alert_message_buttonClicked_0_listener","ReIndexSummaryPageComponent","reIndexError","filesLabel","fileName$","ReIndexSummaryPageComponent_Template","ReIndexSummaryPageComponent_vi_ui_alert_message_2_Template","ReIndexSummaryTitle","IndexingSingleFileLabel","PREVIOUS","leaveIndexingAction","backToIndexingAction","ConfirmExitIndexingComponent","backToIndexing","LEAVE_INDEXING_MIN_BUTTON_WIDTH","BACK_TO_INDEXING_MIN_BUTTON_WIDTH","onLeavePage","ConfirmExitIndexingLeaveButton","ConfirmExitIndexingComponent_Template","ConfirmExitIndexingComponent_Template_app_vi_action_button_actionClick_6_listener","ConfirmExitIndexingComponent_Template_app_vi_action_button_actionClick_7_listener","ConfirmExitIndexingTitle","ConfirmExitIndexingDescription","MAX_VIDEO_NAME_LENGTH","FileNameInputComponent","nameChanged","filename","lastValidFilename","onFilenameChanged","isFilenameValid","onFocusout","lastEmittedValue","label","errorMessage","FileNameInputComponent_Template","FileNameInputComponent_Template_vi_ui_input_focusout_0_listener","FileNameInputComponent_Template_vi_ui_input_inputChanged_0_listener","FACE_RECOGNITION_FORM","FaceGateStripMode","IndexingFaceGateStripComponent_div_0_Template_vi_ui_alert_message_buttonClicked_1_listener","handleLinkNavigation","WARNING_INFO","faceGateStripMessage","faceGateStripLinkText","faceGateStripLinkPath","IndexingFaceGateStripComponent","isVisible","mode","Indexing","faceGateIndexingStripMessage","faceGatePeopleModelStripMessage","faceGateIndexingStripLinkText","faceGatePeopleModelStripLinkText","IndexingPeopleModelsTrialFaceGateLink","IndexingPaidFaceGateLink","IndexingPeopleModelsTrialFaceGateMessage","IndexingPeopleModelsPaidHighRiskFaceGateMessage","IndexingPeopleModelsPaidFaceGateMessage","IndexingTrialFaceGateMessage","IndexingPaidHighRiskFaceGateMessage","IndexingPaidFaceGateMessage","IndexingOldTrialFaceGateMessage","IndexingOldPaidHighRiskFaceGateMessage","IndexingOldPaidFaceGateMessage","CreateAccountWithAzure","hostVars","hostBindings","IndexingFaceGateStripComponent_HostBindings","ɵɵstyleProp","IndexingFaceGateStripComponent_div_0_Template","backToBasic","advancedSettings","CLICK","Observable","AccordionMode","AdvancedSettings","IndexingMode","UploadMode","edgeSettings","isAdvancedIndexingPresetSelected","IndexingFormComponent_aside_2_Template_vi_ui_nav_bar_itemSelected_1_listener","onSelectedSettings","selectedAdvancedSettings$","ɵɵelementContainer","IndexingFormComponent_ng_container_6_ng_container_1_Template","generalSettings_r4","IndexingFormComponent_ng_container_7_ng_container_1_Template","indexingPreset_r5","IndexingFormComponent_ng_container_8_ng_container_1_Template","peopleModels_r6","IndexingFormComponent_ng_container_9_ng_container_1_Template","brandCategories_r7","IndexingFormComponent_ng_container_10_ng_container_1_Template","LogoGroups_r8","IndexingFormComponent_ng_container_11_ng_container_1_Template","fileNames_r9","IndexingFormComponent_ng_container_12_ng_container_1_Template","fileInfo_r10","IndexingFormComponent_vi_ui_accordion_item_18_ng_container_2_Template","IndexingFileNamesSettings","IndexingFormComponent_ng_container_34_app_vi_action_button_1_Template_app_vi_action_button_actionClick_0_listener","onBackToBasicSettings","ACTION_BUTTON","backToBasicAction","IndexingFormComponent_ng_container_34_app_vi_action_button_2_Template_app_vi_action_button_actionClick_0_listener","_r12","onAdvancedSettingsClicked","advancedSettingsAction","IndexingFormComponent_ng_container_34_app_vi_action_button_1_Template","IndexingFormComponent_ng_container_34_app_vi_action_button_2_Template","showAdvancedMode","IndexingFormComponent_ng_template_35_Template_vi_indexing_settings_general_advancedSettingsClick_0_listener","_r13","IndexingFormComponent_ng_template_35_Template_vi_indexing_settings_general_managedLanguageModelsClick_0_listener","onManageModelsClicked","IndexingFormComponent_ng_template_35_Template_vi_indexing_settings_general_managedSpeechModelsClick_0_listener","IndexingFormComponent_ng_template_35_Template_vi_indexing_settings_general_languageIdLinkClick_0_listener","isMultiFileMode","IndexingFormComponent_ng_template_37_Template_vi_indexing_presets_excludeRAIChange_0_listener","_r14","onExcludedRAIChange","IndexingFormComponent_ng_template_37_Template_vi_indexing_presets_excludeAIsChange_0_listener","onExcludeAIsChanged","IndexingFormComponent_ng_template_37_Template_vi_indexing_presets_presetChange_0_listener","onIndexingPresetChanged","excludeRAI$","indexingPreset$","IndexingFormComponent_ng_template_39_Template_vi_indexing_settings_people_models_navigateToCreateAccount_0_listener","_r15","IndexingFormComponent_ng_template_39_Template_vi_indexing_settings_people_models_managePeopleModelClicked_0_listener","IndexingFormComponent_ng_template_41_Template_vi_indexing_settings_brand_categories_manageBrandsClicked_0_listener","_r16","IndexingFormComponent_ng_template_43_Template_vi_indexing_settings_logo_groups_manageLogosClicked_0_listener","_r17","IndexingFormComponent_ng_template_45_Template_vi_indexing_file_names_addFilesClicked_0_listener","_r18","onAddFilesClicked","fileInfoDisabled","IndexingFormComponent","manageModelsClicked","settingsItems","edgeSettingsItems","isUserConfirmTerms","isGeneralSettingsMobileOpened","GENERAL_SETTINGS_MOBILE_ID","isMobileView","enableBasicEdgePreset","indexingMode","ReIndex","showFileNamesSection","Upload","EdgeBasicPreset","indexingMode$","handleReIndexNavItems","showAdvancedMode$","initUploadModeEvents","isResponsiveView$","isResponsiveView","ngOnChanges","handleDisabledNavItems","toggleAdvancedSettings","toggleAdvancedMode","trackEvent","advanced","updateSelectedAdvancedSettings","General","selectedSettings","updateIndexingPreset","excluded","updateExcludedRAI","updateExcludeAIs","getElementById","scrollIntoView","behavior","block","inline","isMultiFileMode$","uploadMode$","uploadMode","handleUploadNavItems","updatedItem","FileNames","hidden","FileInfo","fileInfoTitle","IndexingBatchInfoSettings","IndexingFileInfoSettings","disable","eventName","ɵɵNgOnChangesFeature","IndexingFormComponent_Template","IndexingFormComponent_aside_2_Template","IndexingFormComponent_ng_container_6_Template","IndexingFormComponent_ng_container_7_Template","IndexingFormComponent_ng_container_8_Template","IndexingFormComponent_ng_container_9_Template","IndexingFormComponent_ng_container_10_Template","IndexingFormComponent_ng_container_11_Template","IndexingFormComponent_ng_container_12_Template","IndexingFormComponent_Template_vi_ui_accordion_item_toggle_15_listener","IndexingFormComponent_ng_container_17_Template","IndexingFormComponent_vi_ui_accordion_item_18_Template","IndexingFormComponent_ng_container_21_Template","IndexingFormComponent_ng_container_24_Template","IndexingFormComponent_ng_container_27_Template","IndexingFormComponent_ng_container_30_Template","IndexingFormComponent_ng_container_33_Template","IndexingFormComponent_ng_container_34_Template","IndexingFormComponent_ng_template_35_Template","IndexingFormComponent_ng_template_37_Template","IndexingFormComponent_ng_template_39_Template","IndexingFormComponent_ng_template_41_Template","IndexingFormComponent_ng_template_43_Template","IndexingFormComponent_ng_template_45_Template","IndexingFormComponent_ng_template_47_Template","IndexingPreset","BrandCategories","MULTIPLE","IndexingGeneralSettings","IndexingIndexingPresetsSettings","IndexingPeopleModelsSettings","IndexingBrandCategoriesSettings","IndexingLogoGroupsSettings","IndexingBackToBasicButton","IndexingAdvancedSettingsButton","RowValueColor","IndexingReviewPageComponent_vi_upload_consent_11_Template_vi_upload_consent_consentChange_0_listener","onConsentChanged","userConsent","IndexingReviewPageComponent","filesNames","summaryTitle","showConsent","INDEXING_REVIEW","userConsent$","consent","handleFiles","IndexingReviewPageTitle","checked","updateUserConsent","allValidFilesNames$","numOfFiles","isMultipleFileUpload","IndexingMultiFilesLabel","IndexingReviewPageComponent_Template","IndexingReviewPageComponent_vi_upload_consent_11_Template","Primary","snakeCase","startCase","StreamingPreset","IndexingSettingKeys","presets","presetsWithBasicVideo","IndexingSummaryLoadingPlaceholder","IndexingSummaryFailedTitle","InsightsTranslationErrorGetIndexDescription","generalSetting_r2","IndexingSummaryDialogComponent_div_2_div_13_ng_container_1_Template","IndexingSummaryDialogComponent_div_2_ng_template_16_ng_container_0_div_1_div_5_ng_container_1_Template","setting_r3","childrenClassName","recursiveList_r4","children","IndexingSummaryDialogComponent_div_2_ng_template_16_ng_container_0_div_1_div_5_Template","IndexingSummaryDialogComponent_div_2_ng_template_16_ng_container_0_div_1_Template","IndexingSummaryDialogComponent_div_2_ng_template_16_ng_container_0_Template","list_r5","IndexingSummaryDialogComponent_div_2_div_13_Template","IndexingSummaryDialogComponent_div_2_ng_container_15_Template","IndexingSummaryDialogComponent_div_2_ng_template_16_Template","videoThumbnailUrl","thumbnailClass","videoTitle","videoDescription","indexingSettingsDetails","indexingSummaryService","galleryService","displayNameString","videoTitle$","logoGroupName","peopleModelName","includedAIsNames","excludedAIsNames","loadVideoIndexData","videoIndexResponse","Video","getVideoIndex","includeStreamingUrls","includeSummarizedInsights","all","initDatasetValues","child","allSummaryKeys","lastModifiedTimeFormatted","UploadPeopleModel","UploadLogoGroupOption","IndexingPresetLabel","IncludedAIs","translatedAIs","ExcludedAIs","translatedPreset","ReindexModalVideoSourceLanguage","languageName","UploadPrivacyLabel","translatedPrivacyMode","UploadStreaming","selectedStreaming","thumbnail","AIsNames","modelDisplayName","SingleBitrate","UploadServiceSingleBiterate","NoStreaming","UploadServiceNoStreaming","languageNameTranslated","IndexingSummaryDialogComponent_Template","IndexingSummaryDialogComponent_div_0_Template","IndexingSummaryDialogComponent_div_1_Template","IndexingSummaryDialogComponent_div_2_Template","BrandsModel","PrivacyMode","defaultBrandCategory","subRow_r1","IndexingSummaryComponent_ng_container_1_div_1_div_5_ng_container_1_div_1_Template","IndexingSummaryComponent_ng_container_1_div_1_div_5_ng_container_1_Template","row_r2","subRows","IndexingSummaryComponent_ng_container_1_div_1_div_5_Template","rowValueColor","IndexingSummaryComponent_ng_container_1_div_1_Template","IndexingSummaryComponent","edgeExtensionService","presetHelperService","Secondary","createAccountClicked","selectedPeopleModel","selectedLogoGroup","selectedBrandCategories","selectedPrivacy","selectedPreset","includedAIs","indexingSettingInfo","DISPLAY_NAME_KEY","handleEdge","handleIndexingSetting","createAccount","getEdgePresets","indexingSettingSummary$","indexingLanguages$","isLoadSupportedAIsError$","summary","isLoadSupportedAIsError","getSelectedBrands","brandsCategories","getSelectedPrivacy","privacy","getSelectedStreaming","getSelectedPreset","excludeRAI","stringifySupportedAIs","handleRows","UploadVideoSourceLanguage","IncludedModelsLabel","ExcludedModelsLabel","UploadPeopleModelOption","UploadServiceDefaultName","PUBLIC","AppSettingsPublic","PRIVATE","AppSettingsPrivate","streaming","ExcludeRAI","translateAI","PresetHelperService","IndexingSummaryComponent_Template","IndexingSummaryComponent_ng_container_1_Template","IndexingPresetBasicVideoAudioLabel","IndexingPresetBasicVideoAudioDetails","IndexingPresetStandardVideoAudioLabel","IndexingPresetStandardVideoAudioDetails","IndexingPresetAdvancedVideoAudioLabel","IndexingPresetAdvancedVideoAudioDetails","IndexingPresetBasicVideoLabel","IndexingPresetBasicVideoDetails","IndexingPresetStandardVideoLabel","IndexingPresetStandardVideoDetails","IndexingPresetAdvancedVideoLabel","IndexingPresetAdvancedVideoDetails","IndexingPresetBasicAudioLabel","IndexingPresetBasicAudioDetails","IndexingPresetStandardAudioLabel","IndexingPresetStandardAudioDetails","IndexingPresetAdvancedAudioLabel","IndexingPresetAdvancedAudioDetails","IndexingPresetTooltipText","IndexingPresetDetailsLabel","IndexingPresetLearnMoreLinkText","IndexingPresetExcludeRAICheckboxLabel","IndexingPresetExcludeRAITooltipText","IndexingPresetExcludeRAIDescription","IndexingPresetRAILinkText","FileInformationComponent_vi_ui_textarea_2_Template_vi_ui_textarea_focusedOut_0_listener","onDescriptionChanged","Description","FileInformationComponent","metadata$","description$","onMetadataChanged","updateMetadata","updateDescription","FileInformationComponent_Template","FileInformationComponent_Template_vi_ui_textarea_focusedOut_1_listener","FileInformationComponent_vi_ui_textarea_2_Template","FileInformationMetadataDescription","FileNamesComponent_vi_indexing_file_name_input_1_Template_vi_indexing_file_name_input_nameChanged_0_listener","onFileNameChanged","file_r3","FileNamesComponent_p_2_Template_vi_ui_link_linkClicked_2_listener","IndexingFileNameEmptyMessage","IndexingFileNameLinkEmptyText","FileNamesComponent","storeService","addFilesClicked","allFiles$","updateFile","FileNamesComponent_Template","FileNamesComponent_vi_indexing_file_name_input_1_Template","FileNamesComponent_p_2_Template","Files","languageAction","MULTI_LANGUAGE_LINK","UPLOAD_LIMITATION_LINK","getKeyCode","KeyCode","multiLanguageLink","UploadMultiLanguagePreviewFeature","safeTextAutoMultiLanguageSelectedLanguagesIds","IndexingLanguageComponent_ng_container_3_ng_container_1_div_1_Template","IndexingLanguageComponent_ng_container_3_ng_container_1_ng_template_2_Template","isAutoDetectLanguageEnabled","AutoMultiSelectedLanguages_r2","IndexingLanguageComponent_ng_container_3_ng_container_1_Template","showAutoMultiLanguageLink","IndexingLanguageComponent_div_4_Template_vi_ui_link_linkClicked_1_listener","onManageLanguageClicked","IndexingLanguageComponent_div_4_Template_vi_ui_link_linkClicked_4_listener","onSpeechModelsClicked","VIUploadCustomizationApplied","UploadOrValue","IndexingManageSpeechModels","IndexingLanguageComponent","languageIdStoreService","sanitizer","el","languageIdLinkClick","managedLanguageModelsClick","managedSpeechModelsClick","limitationsLink","LANG_SCROLL_HEIGHT","indexingLanguageId","indexingLanguageLabelId","selectedLanguageAction","languageOptions","isLanguageLoading","showCustomizationLink","initLanguages","removeLinkListeners","ngAfterViewInit","handlingLanguageLinks","onSelectLang","langAction","updateLanguageId","initSelectedLanguageAction","selectedLanguage$","setSelectedLanguagesIdsForMultiLanguages","opt","setMultiLanguageDescriptionText","multiLanguagesTextObject","UploadMultiLanguageSelectedLanguagesIds","languagesList","editListTitle","UploadEditLanguagesIdsList","learnMoreMulti","bypassSecurityTrustHtml","showLanguageLinks","addClickLanguageIdLinkListener","MULTI","AUTO","languageIdLinkEl","removeEventListener","languageIdLinkClickHandlerRef","nativeElement","querySelector","navigateToLanguageId","addEventListener","keyCode","Enter","DomSanitizer","ElementRef","IndexingLanguageComponent_Template","ɵɵtwoWayListener","IndexingLanguageComponent_Template_vi_fluent_ui_select_selectedActionChange_2_listener","ɵɵtwoWayBindingSet","IndexingLanguageComponent_ng_container_3_Template","IndexingLanguageComponent_div_4_Template","ɵɵtwoWayProperty","ReindexModalKeepSourceValue","UIIndexingActionType","presetsAction","basicAudioOnlyPreset","PRESET_AUDIO_BASIC","AUDIO_BASIC","groupKey","basicVideoOnlyPreset","PRESET_VIDEO_BASIC","VIDEO_BASIC","basicPreset","PRESET_VIDEO_AUDIO_BASIC","VIDEO_AUDIO_BASIC","standardAudioOnlyPreset","PRESET_AUDIO_STANDARD","AUDIO_STANDARD","standardVideoOnlyPreset","PRESET_VIDEO_STANDARD","VIDEO_STANDARD","standardPreset","PRESET_VIDEO_AUDIO_STANDARD","VIDEO_AUDIO_STANDARD","advancedAudioOnlyPreset","PRESET_AUDIO_ADVANCED","AUDIO_ADVANCED","advancedVideoOnlyPreset","PRESET_VIDEO_ADVANCED","VIDEO_ADVANCED","advancedPreset","PRESET_VIDEO_AUDIO_ADVANCED","VIDEO_AUDIO_ADVANCED","DEFAULT","ShimmerElementType","RAI_LEARN_MORE","UPLOAD_INDEXING_PRESET","CheckboxSize","info","excludeRAITooltipText","IndexingPresetsComponent_section_0_ng_container_11_Template_vi_checkbox_with_label_contentOnHover_2_listener","onHoverRAICheckbox","IndexingPresetsComponent_section_0_ng_container_11_Template_vi_checkbox_with_label_checkedChange_2_listener","toggleRAI","IndexingPresetsComponent_section_0_ng_container_11_app_vi_notification_tooltip_3_Template","disableExcludeRAI","showCantExcludeRAITooltip","_c3","RAILink","linkSize","IndexingPresetsComponent_section_0_Template_i_focus_3_listener","togglePresetTooltip","IndexingPresetsComponent_section_0_Template_i_blur_3_listener","IndexingPresetsComponent_section_0_Template_i_contentOnHover_3_listener","IndexingPresetsComponent_section_0_app_vi_notification_tooltip_5_Template","IndexingPresetsComponent_section_0_Template_vi_fluent_ui_select_selectedActionChange_6_listener","selectPreset","IndexingPresetsComponent_section_0_ng_container_11_Template","dropdownLabelId","dropdownId","showPresetTooltip","indexingPresetsLink","CHECKBOX","LOADING_SHIMMER_ELEMENTS","SupportedAIsFailedTitle","SupportedAIsFailedContent","IndexingPresetsComponent_ng_template_1_ng_template_13_ng_template_1_li_1_Template_vi_checkbox_with_label_contentOnHover_1_listener","ai_r6","onHoverSupportedAICheckbox","IndexingPresetsComponent_ng_template_1_ng_template_13_ng_template_1_li_1_Template_vi_checkbox_with_label_checkedChange_1_listener","onExcludeAI","supportedAIsMap","checkboxSize","aiInfo_r8","_c4","tooltip","sensitiveAITooltip_r9","_c5","i_r7","IndexingPresetsComponent_ng_template_1_ng_template_13_ng_template_1_li_1_Template","IndexingPresetsComponent_ng_template_1_ng_template_13_div_0_Template","IndexingPresetsComponent_ng_template_1_ng_template_13_ng_template_1_Template","ais_r10","IndexingPresetsComponent_ng_template_1_ng_container_15_ng_container_1_Template_vi_ui_switch_checkedChange_3_listener","IndexingPresetExcludeRAITitle","IndexingPresetExcludeRAIToggleLabel","IndexingPresetExcludeSensitiveModelsDescription","IndexingPresetsComponent_ng_template_1_ng_container_15_ng_container_1_Template","hideExcludeRAI","IndexingPresetsComponent_ng_template_1_Template_i_focus_3_listener","IndexingPresetsComponent_ng_template_1_Template_i_blur_3_listener","IndexingPresetsComponent_ng_template_1_Template_i_contentOnHover_3_listener","IndexingPresetsComponent_ng_template_1_app_vi_notification_tooltip_5_Template","IndexingPresetsComponent_ng_template_1_Template_vi_fluent_ui_select_selectedActionChange_6_listener","IndexingPresetsComponent_ng_template_1_ul_11_Template","IndexingPresetsComponent_ng_template_1_ng_template_13_Template","IndexingPresetsComponent_ng_template_1_ng_container_15_Template","IndexingPresetIncludedModelsLabel","IndexingPresetIncludedModelsDescription","IndexingPresetLearnMoreModelsLinkText","AIsLoaded_r12","ai_r14","IndexingPresetsComponent_ng_template_3_Template_i_focus_1_listener","toggleAIInfoTooltip","IndexingPresetsComponent_ng_template_3_Template_i_blur_1_listener","IndexingPresetsComponent_ng_template_3_Template_i_contentOnHover_1_listener","IndexingPresetsComponent_ng_template_3_app_vi_notification_tooltip_3_Template","shouldShowAIInfoTooltip","aIsCheckbox","index_r17","ai_r16","IndexingPresetsComponent_ng_template_5_app_vi_notification_tooltip_0_Template","IndexingPresetsComponent","excludeAIsHelperService","presetChange","excludeRAIChange","excludeAIsChange","presetsOptions","edgePresetsOptions","Small","excludeAIs","initPresets","setSelectedPreset","initEdge","initAIs","handleLanguageChange","IndexingPresetExcludeRAIVideoAdvancedTooltipText","isHover","showAIInfoTooltip","modelOnHover","resetExcludeAIs","loadSupportedAIs","excludeAIsSet","Set","checkModel","markRequiredModelsAsChecked","uncheckModel","uncheckDependentModels","updateSupportedAIsState","getSupportedAIsState","toggleSensitiveAIsOnError","toggleExcludeSensitiveAIs","disableSensitiveAIs","enableSensitiveAIs","shouldShowRAIExcludedTooltip","isSensitiveAI","group","isAutoDetectLanguage","actionsToDisable","BasicVideoPreset","selectedSupportedAIs$","excludeAIs$","entries","translateSupportedAIName","isRequired","getSensitiveAIsTooltip","firstAI","secondAI","compareSupportedAIs","aiName","ROOT_SENSITIVE_MODELS","IndexingPresetExcludeSensitiveModelsTooltip","ExcludeAIsHelperService","IndexingPresetsComponent_Query","IndexingPresetsComponent_section_0_Template","IndexingPresetsComponent_ng_template_1_Template","IndexingPresetsComponent_ng_template_3_Template","IndexingPresetsComponent_ng_template_5_Template","excludeAIs_r18","RequiredAIsModels","ClosedCaptions","Transcription","BASIC","Keyframes","AudioEffects","ADVANCED","LabelIndexingPresetVideoAudio","LabelIndexingPresetVideoOnly","LabelIndexingPresetAudioOnly","IndexingPresetBasicAudioEdgeDetails","IndexingPresetBasicVideoEdgeDetails","IndexingPresetBasicVideoAudioEdgeDetails","brandDefaultAction","manageBrandCategoriesAction","IndexingSettingsBrandCategoriesComponent","manageBrandsClicked","manageBrandsCategoriesAction","brandsModelActions","actionButtonWidth","ManageBrandCategories","menuPlaceholder","SettingsLoading","UploadSelectBrandsAllBrands","loadBrands","onManageBrandsCategories","onSelectBrandsModel","brandList","parseArrayToString","updateBrandCategory","selectBrandCategories$","setBrandsActions","CheckboxSelectLabel","selectedCategories","isSelected","brandsModelAction","IndexingSettingsBrandCategoriesComponent_Template","IndexingSettingsBrandCategoriesComponent_Template_app_vi_check_box_action_menu_selectedActionsChange_2_listener","IndexingSettingsBrandCategoriesComponent_Template_app_vi_action_button_actionClick_3_listener","addURLAction","addFilesAction","privacyAction","PRIVACY","privacyOptions","PRIVACY_SET_PRIVATE","PRIVACY_SET_PUBLIC","streamAction","STREAM","streamOptions","STREAM_SINGLE","STREAM_NO_STREAM","TagType","Direction","AMS_RETIREMENT_LINK","getDefaultFileName","getFileNameFromURL","isValidURL","generateSupportedMediaTypesPattern","IndexingSettingsGeneralComponent_div_2_Template_vi_ui_input_inputChanged_3_listener","onChangeURL","IndexingSettingsGeneralComponent_div_2_Template_div_contentOnHover_4_listener","onAddFilesBtnHover","IndexingSettingsGeneralComponent_div_2_Template_app_vi_action_button_actionClick_5_listener","onAddURLClicked","UploadEnterURLLabel","uploadURL","urlPlaceholder","urlIcon","urlValidationErrorMessage","maxFilesReached","isUrlValidationLoading","ADD_URL_BUTTON_MIN_WIDTH","isURLValid","filesLimitReachedNotification_r4","addURLButton","LEFT","UploadGuidelinesLink2","IndexingSettingsGeneralComponent_div_3_Template_vi_indexing_file_name_input_nameChanged_2_listener","onChangeFileName","uploadFileErrorMessage","IndexingFileNameLabel","isFileNameDisabled","IndexingSettingsGeneralComponent_ng_container_4_ng_container_1_Template","addFilesButtonTemplate_r6","IndexingSettingsGeneralComponent_div_5_Template_vi_ui_tag_container_tagRemoved_5_listener","onFileRemoved","filesContainerId","IndexingMultiFilesLabelDesc","fileTags","IndexingSettingsGeneralComponent_ng_container_6_ng_container_1_Template","IndexingSettingsGeneralComponent_div_7_Template_vi_fluent_ui_select_selectedActionChange_3_listener","onSelectPrivacy","IndexingSettingsGeneralComponent_div_7_Template_vi_fluent_ui_select_selectedActionChange_6_listener","onSelectStreaming","disablePrivacy","indexingPrivacyId","indexingPrivacyLabelId","indexingStreamingId","indexingStreamingLabelId","IndexingSettingsGeneralComponent_ng_template_10_Template_div_contentOnHover_2_listener","IndexingSettingsGeneralComponent_ng_template_10_Template_app_vi_action_button_actionClick_3_listener","fileInput_r10","ɵɵreference","uploadChooseFiles","IndexingSettingsGeneralComponent_ng_template_10_Template_input_change_6_listener","onFileBrowse","ADD_FILES_BUTTON_MIN_WIDTH","addFilesButton","RIGHT","filesType","targetButton_r12","direction_r13","IndexingMaxFilesLimitTooltip","IndexingSettingsGeneralComponent_ng_template_12_app_vi_notification_tooltip_0_Template","showAddFilesBtnTooltip","IndexingSettingsGeneralComponent","fileHelperService","advancedSettingsClick","AMS_DEPRECATION_MESSAGE_TYPE","amsDeprecationLink","showAdaptiveBitrateDisclaimer","disableFileName","showUploadFileError","DEFAULT_FILENAME_PREFIX","LOADING_ICON","OK_ICON","showSingleFileName","isFileMode","showAddFilesBtnSingleFileMode","showAddFilesBtnMultiFileMode","showFilesContainer","isURLMode","maxVideosLimit","initUrlFileValidation","initIndexingMode","initFiles","initPrivacy","initStreaming","initInvalidFileValidation","clearUrlValidationError","updatePrivacy","streamingAction","updateStreamingPreset","removeFile","trim","fileInput","click","filesWithProps","extractFileProperties","addFilesForUpload","updateUrlValidationLoading","addUrlFile","onLanguageIdLinkClicked","UploadEnterAnotherUrlPlaceholder","UploadEnterUrlPlaceholder","limit","privacy$","streamingPreset$","initFileName","REST","removeTagTitleAttribute","IndexingRemoveFileButtonTooltip","removable","isUrlValidationLoading$","urlValidationError$","handleValidationErrorMessage","UploadInvalidUrl","URL_UNREACHABLE","IndexingInvalidUrlValidationError","IndexingDuplicateFileValidationError","VIDEO_UPLOAD_LIMIT_EXCEEDED","UploadInvalidURLFileSizeMessage","showUploadFileError$","invalidFileErrorMessage","FileExtension","UploadInvalidFileExtensionMessage","FileSize","UploadInvalidFileSizeMessage","FileHelperService","IndexingSettingsGeneralComponent_Query","IndexingSettingsGeneralComponent_div_2_Template","IndexingSettingsGeneralComponent_div_3_Template","IndexingSettingsGeneralComponent_ng_container_4_Template","IndexingSettingsGeneralComponent_div_5_Template","IndexingSettingsGeneralComponent_ng_container_6_Template","IndexingSettingsGeneralComponent_div_7_Template","IndexingSettingsGeneralComponent_Template_vi_indexing_language_languageIdLinkClick_9_listener","IndexingSettingsGeneralComponent_Template_vi_indexing_language_managedLanguageModelsClick_9_listener","IndexingSettingsGeneralComponent_Template_vi_indexing_language_managedSpeechModelsClick_9_listener","IndexingSettingsGeneralComponent_ng_template_10_Template","IndexingSettingsGeneralComponent_ng_template_12_Template","Add","IndexingAddFilesButton","LOGO_GROUP","manageLogoGroupsAction","Logos","LOGO_API_LINK","IndexingSettingsLogoGroupsComponent_vi_ui_alert_message_1_Template_vi_ui_alert_message_buttonClicked_0_listener","handleNavigateToIndexingPresetTab","IndexingLogoAdvancedPresetNotSelectedWarningInfo","IndexingLogoAdvancedPresetNotSelectedWarningInfoLink","IndexingSettingsLogoGroupsComponent_vi_fluent_ui_select_3_Template_vi_fluent_ui_select_selectedActionChange_0_listener","onSelectLogoGroup","logosGroupActions","isDisabledElement","IndexingLogoEmptyLogoGroupsList","IndexingLogoEmptyLogoGroupsListLogoCreationText","IndexingLogoEmptyLogoGroupsListLogoCreationLink","IndexingSettingsLogoGroupsComponent","manageLogosClicked","manageLogosGroupsAction","IndexingLogosManageLogoGroups","IndexingLogosSelectLogoGroupsLabel","updateLogoGroup","selectLogoGroupId$","selectedLogoGroupId","IndexingSettingsLogoGroupsComponent_Template","IndexingSettingsLogoGroupsComponent_vi_ui_alert_message_1_Template","IndexingSettingsLogoGroupsComponent_vi_fluent_ui_select_3_Template","IndexingSettingsLogoGroupsComponent_div_4_Template","IndexingLogoGroupsLabel","peopleModelAction","CUSTOMIZATION_PEOPLE_MODEL","managePeopleModelsAction","PeopleModelsLoadingErrorMessage","IndexingSettingsPeopleModelsComponent_ng_container_3_Template_vi_fluent_ui_select_selectedActionChange_2_listener","onSelectPeopleModel","IndexingSettingsPeopleModelsComponent_ng_container_3_Template_app_vi_action_button_actionClick_3_listener","onManagePeopleModels","isPeopleModelsDropdownDisable","peopleModelActions","PeopleModelsLoadingPlaceholder","IndexingSettingsPeopleModelsComponent","managePeopleModelClicked","ManagePeopleModels","loadPeopleModels","selectedPeopleModel$","selectedModel","selectedPeopleModelId","initSelectedPeopleModelId","IndexingSettingsPeopleModelsComponent_Template","IndexingSettingsPeopleModelsComponent_vi_ui_alert_message_1_Template","IndexingSettingsPeopleModelsComponent_Template_vi_indexing_face_gate_strip_navigateToCreateAccount_2_listener","IndexingSettingsPeopleModelsComponent_ng_container_3_Template","ViUploadConsentSubmitTerms","UploadOnlineServicesTerms","UploadServiceAgreement","UploadPrivacyStatement","UploadSubmitTermsTitle","UploadConsentUSSubmitTerms","UploadConsentUSSubmitTermsTitle","ONLINE_SERVICES_TERMS","UploadConsentComponent","isUSAccount","consentChange","inputLabel","documentationLink","documentationTitle","serviceAgreementLink","getLinkByValue","serviceAgreementTitle","privacyStatementLink","privacyStatementTitle","UploadConsentComponent_Template","UploadConsentComponent_Template_vi_checkbox_with_label_checkedChange_0_listener","UploadPages","UploadSourceActions","ProgressTitleType","UploadingNumberFiles","NumberFilesUploaded","NumberFilesNotUploaded","NumberNotUploaded","SingleFileUploaded","SingleFileNotUploaded","Uploading","Progress","EventGridErrorMsg","AccountDurationQuotaErrorMsg","AccountDailyCountQuotaErrorMsg","AccountDailyDurationQuotaErrorMsg","CreateAccountWithAzureSubscription","CreateUnlimitedAccountWithAzure","AmsAadAppNotInTenantErrorMsg","AmsUnreachableErrorMsg","StorageUnreachableErrorMsg","UploadFileManagedIdentityMissingErrorMsg","UploadFileStorageAccessDeniedErrorMsg","UploadingState","UploadSummaryPageComponent_ng_container_20_span_6_Template","file_r1","uploadingState","_c2","i_r2","UploadSummaryPageComponent_ng_template_22_vi_ui_alert_message_0_Template_vi_ui_alert_message_buttonClicked_0_listener","error_r5","onCLick","isButton","UploadSummaryPageComponent_ng_template_22_vi_ui_alert_message_0_Template","UploadSummaryPageComponent","totalUploadProgress","progressTitle","isEventGridError$","isAmsAadAppNotInTenantError$","isAmsUnreachableError$","isStorageUnreachableError$","isAccountDurationQuota$","isAccountDailyCountQuota$","isAccountDailyDurationQuota$","isStorageAccessDeniedError$","isManagedIdentityMissingError$","handleProgress","handleErrors","totalUploadProgress$","allValidFiles$","isUploadingDone$","isUploadingDone","failedFilesCount","getProgressTitle","succeededFilesCount","progressTitleCase","getProgressTitleCaseForMultipleFiles","getProgressTitleCaseForSingleFile","MULTIPLE_IN_PROGRESS","SINGLE_IN_PROGRESS","SINGLE_FAILED","MULTIPLE_SUCCESS","SINGLE_SUCCESS","SINGLE_SUCCESS_WITH_FAILED","ALL_SUCCESS","ALL_FAILED","failedFiles","isMultipleFilesSucceeded","getErrors","errors","eventGridError","accountDurationQuotaError","accountDailyCountQuotaError","accountDailyDurationQuotaError","amsUnReachableError","amsAadAppNotInTenantError","storageUnReachableError","storageAccessDeniedError","managedIdentityMissingError","UploadSummaryPageComponent_Template","UploadSummaryPageComponent_ng_container_20_Template","UploadSummaryPageComponent_ng_template_22_Template","errorStrip_r6","runInBackAction","HIDE","uploadAndIndexAction","reviewAndUploadAction","closeFromHeaderAction","UploadDialogTitle","UploadRunInBackground","UploadAndIndexButton","UploadInvalidFilesMessage","ReviewAndUploadButton","UPLOAD_FORMAT_LINK","UploadDialogComponent_app_vi_action_button_4_Template_app_vi_action_button_actionClick_0_listener","UploadDialogComponent_ng_container_5_vi_upload_source_2_Template_vi_upload_source_filesSelected_0_listener","onFilesSelected","UploadDialogComponent_ng_container_5_vi_upload_source_2_Template_vi_upload_source_buttonClicked_0_listener","onUploadSourceButtonClicked","UploadDialogComponent_ng_container_5_vi_upload_source_2_Template_vi_upload_source_useSavedIndexingSettingsChanged_0_listener","onUseSavedIndexingSettingsChanged","UploadDialogComponent_ng_container_5_vi_upload_guide_3_Template_vi_upload_guide_backClicked_0_listener","switchPage","UploadSource","UploadDialogComponent_ng_container_5_div_4_vi_ui_alert_message_3_Template_vi_ui_alert_message_contentLinkClicked_0_listener","onOpenUploadGuidelineLink","UploadDialogComponent_ng_container_5_div_4_Template_vi_indexing_face_gate_strip_navigateToCreateAccount_2_listener","UploadDialogComponent_ng_container_5_div_4_vi_ui_alert_message_3_Template","UploadDialogComponent_ng_container_5_div_4_Template_vi_indexing_form_filesSelected_4_listener","UploadDialogComponent_ng_container_5_div_4_Template_vi_indexing_form_navigateToCreateAccount_4_listener","UploadDialogComponent_ng_container_5_div_4_Template_vi_indexing_form_manageModelsClicked_4_listener","UploadDialogComponent_ng_container_5_vi_upload_summary_page_6_Template_vi_upload_summary_page_createAccountClicked_0_listener","UploadDialogComponent_ng_container_5_footer_7_vi_upload_consent_1_Template_vi_upload_consent_consentChange_0_listener","displayedUploadPage","UploadSummary","UploadDialogComponent_ng_container_5_footer_7_app_vi_action_button_3_Template_app_vi_action_button_actionClick_0_listener","onBackToSettingsClicked","backToSettingsACtion","BACK_TO_SETTINGS_BUTTON_MIN_WIDTH","UploadDialogComponent_ng_container_5_footer_7_app_vi_action_button_4_Template_app_vi_action_button_actionClick_0_listener","uploadClicked","isUploadDisabled","UPLOAD_BUTTON_MIN_WIDTH","UploadDialogComponent_ng_container_5_footer_7_app_vi_action_button_5_Template_app_vi_action_button_actionClick_0_listener","onReviewAndUploadClicked","isReviewAndUploadDisabled","UploadDialogComponent_ng_container_5_footer_7_app_vi_action_button_6_Template_app_vi_action_button_actionClick_0_listener","RUN_IN_BACK_BUTTON_MIN_WIDTH","UploadDialogComponent_ng_container_5_footer_7_app_vi_action_button_7_Template_app_vi_action_button_actionClick_0_listener","CLOSE_BUTTON_MIN_WIDTH","UploadDialogComponent_ng_container_5_footer_7_app_vi_action_button_8_Template_app_vi_action_button_actionClick_0_listener","UploadDialogComponent_ng_container_5_footer_7_vi_upload_consent_1_Template","UploadDialogComponent_ng_container_5_footer_7_app_vi_action_button_3_Template","UploadDialogComponent_ng_container_5_footer_7_app_vi_action_button_4_Template","UploadDialogComponent_ng_container_5_footer_7_app_vi_action_button_5_Template","UploadDialogComponent_ng_container_5_footer_7_app_vi_action_button_6_Template","UploadDialogComponent_ng_container_5_footer_7_app_vi_action_button_7_Template","UploadDialogComponent_ng_container_5_footer_7_app_vi_action_button_8_Template","isExcludeAIsEnable","showBackToSettingButton","showUploadButton","showReviewAndUploadButton","isUploadInProgress","UploadDialogComponent_ng_container_5_vi_upload_source_2_Template","UploadDialogComponent_ng_container_5_vi_upload_guide_3_Template","UploadDialogComponent_ng_container_5_div_4_Template","UploadDialogComponent_ng_container_5_div_5_Template","UploadDialogComponent_ng_container_5_vi_upload_summary_page_6_Template","UploadDialogComponent_ng_container_5_footer_7_Template","UploadGuide","UploadReview","showFooter","UploadDialogComponent_ng_template_6_Template_vi_confirm_exit_indexing_backToIndexing_0_listener","UploadDialogComponent_ng_template_6_Template_vi_confirm_exit_indexing_leaveIndexing_0_listener","UploadDialogComponent","filesExist","getSupportedMediaTypesPattern","displayedUploadPage$","isDone","isUploadInProgress$","isUploading","updateUploadPage","updateUploadMode","useSavedIndexingSettings","updateUseSavedIndexingSettings","uploadFiles","formatsLink","UploadDialogComponent_Template","UploadDialogComponent_app_vi_action_button_4_Template","UploadDialogComponent_ng_container_5_Template","UploadDialogComponent_ng_template_6_Template","confirmExitScreen_r16","backToUpload","UploadGuidelinesSubTitle1","UploadGuidelinesSection1List1","UploadGuidelinesSection1List2","UploadGuidelinesLink1","UploadGuidelinesSubTitle2","UploadGuidelinesSection2List1","UploadGuidelinesSection2List2","UploadGuideBackButton","UploadGuidelinesMaxFilesLimit","UploadGuidelinesTitle","UploadGuideComponent","backClicked","backAction","backBtnClicked","openLink","UploadGuideComponent_Template","UploadGuideComponent_Template_app_vi_action_button_actionClick_2_listener","UploadGuideComponent_Template_a_appAccessibleClick_20_listener","UploadGuideComponent_Template_a_appAccessibleClick_37_listener","browseForFileAction","enterFileUrlAction","UploadChooseFilesButton","UploadEnterUrlButton","UploadDropMediaFile","UploadUploadingGuidelines","UploadErrorFileNotSupported","UploadErrorFileSize","UploadDropMediaFiles","UploadUsingSavedIndexingSettingsLabel","FILE_UPLOAD_SVG","UploadSourceComponent_vi_checkbox_with_label_20_Template_vi_checkbox_with_label_checkedChange_0_listener","ctx_r3","onUseSavedIndexingSettingsChange","UploadSourceComponent","buttonClicked","filesSelected","useSavedIndexingSettingsChanged","isDragOver","BUTTON_MARGIN","MIN_BUTTON_WIDTH","calcButtonsSize","onButtonClicked","uploadChooseFile","onDrop","dataTransfer","items","getAsFile","onVideoFilesSelected","filesCount","onDragOver","onDragLeave","use","buttonSize","max","measureText","UploadSourceComponent_Template","UploadSourceComponent_Template_div_dragleave_1_listener","UploadSourceComponent_Template_div_dragover_1_listener","UploadSourceComponent_Template_div_drop_1_listener","UploadSourceComponent_Template_app_vi_action_button_actionClick_12_listener","fileInput_r2","UploadSourceComponent_Template_app_vi_action_button_actionClick_14_listener","UploadSourceComponent_Template_a_appAccessibleClick_16_listener","UploadSourceComponent_Template_input_change_18_listener","UploadSourceComponent_vi_checkbox_with_label_20_Template","uploadFileToEdge","uploadFileToEdgeFailed","updateIndexingSettings","updateSupportedAIs","loadSupportedAIsFailed","updateIndexingMode","resetIndexingViewState","resetReIndexState","updateReIndexIndexingSettings","updateReIndexIndexingAdvancedSettings","initReIndexIndexingSettings","getVideoIndexFailed","reIndexVideo","reIndexVideoFailed","reIndexVideoSucceeded","initVideoId","indexingSettingsLoaded","updateOriginalLanguageId","validateReIndexSettingReady","updateReIndexSupportedAIs","updateReIndexSupportedAIsState","openUploadDialog","getVideoInfoFailed","getVideoInfoSuccess","getFileSas","getFileSasFailed","getFileSasSuccess","uploadFileToBlobStorage","uploadFileToBlobStorageFailed","uploadFileToBlobStorageSuccess","uploadFilesFinished","initiateUploadFiles","uploadFileFinished","initUploadDialogState","addUploadFiles","addUploadFilesSuccess","addUrlFileForUpload","urlValidationFailed","uploadingFilesInProgress","updateUploadIndexingSettings","updateUserConsentSuccess","updateUrlValidationError","uploadDialogClosed","showIndexingStartedForSingleToast","showIndexingStartedForMultiToast","showUploadFailedToast","updateUploadSupportedAIs","updateUploadSupportedAIsState","UploadingStateError","getLanguageParam","UPLOAD_PROCESS_FINISHED_PERCENTAGE","getFileTraceData","getUploadSettingsTraceData","getExcludeAIsParams","convertToEdgeUploadParams","getCustomEdgeLanguagesParam","EdgeUploadEffects","uploadFilesToEdge$","selectIndexingSettings","getLanguage","selectUploadMode","indexingSettings","languageList","uploadingStateError","UploadToEdgeInitFailed","customLanguages","languageSettings","uploadSettings","excludeAIParams","fileUpdates","Completed","body","UploadToEdgeFailed","IndexingFormEffects","loadSupportedAIs$","selectIndexingPreset","selectExcludeAIs","selectIndexingMode","INDEXING_FORM","getSupportedAIsMap","faceGatedAIs","updateSupportedAIsForIndexing$","updateSupportedAIsStatus$","updateIndexingSettings$","selectLogoGroupId","MediaActions","UIShellActionType","IndexingActions","fromCustomization","convertToReIndexParams","getCustomLanguageModelParam","getExcludeSensitiveAIsParams","getCustomLanguagesParam","getReIndexErrorType","ReIndexEffects","HANDLE_RE_INDEX_SUCCESS","openReIndexDialog$","videoIndex","failureCode","VIDEO_URL_UNREACHABLE","checkReIndexAdvancedSettings$","isSupportedAIsStatusVerified","checkReIndexSettings$","selectVideoIndex","languagesModels","updatedIndexingSettings","peopleModelId","videoLangModelId","linguisticModelId","languageModel","speechModel","NoMetadata","NoDescription","reIndexVideo$","languageModelSettings","customLanguagesSettings","reIndexParams","reIndexDialogRef","removeMediaIndex","reIndexDialogData","hideHeader","initDialogCloseEvent","CREATE_ACCOUNT","MatDialogState","getFSFileUploadBatchActions","getURLFileUploadBatchActions","convertToUploadParams","UPLOAD_TO_BLOB_STORAGE_COMPLETED_PERCENTAGE","isUrlAlreadyAdded","MAX_FILE_SIZE_URL","HTML_CONTENT_TYPE","getUploadErrorType","getNotification","getFileErrorNotification","getQuotaExceededNotification","getUploadFilesFailedNotification","FILES_UPLOAD_FAILED_NOTIFICATION_TITLE","FILE_UPLOAD_FAILED_NOTIFICATION_TITLE","getEdgeUploadBatchActions","UploadEffects","openUploadDialog$","hasUserConsent","updateUserConsent$","updateUseSavedIndexingSettings$","getSavedIndexingSettings","uploadFiles$","uploadFilesIterator$","getAllValidFiles","uploadBatchActions","idleFiles","Idle","inProgressFilesCount","InProgress","failedUploads","successfulUploads","GetSasInitFailed","blobFile","GetSasFailed","BlobStorageInitFailed","fileUrl","BlobStorageFailed","uploadFileToBlobStorageSuccess$","uploadFilesToServer$","contentMD5","UploadToServerInitFailed","setSavedIndexingSettings","uploadToServer","UploadToServerFailed","onUploadFailed$","uploadingErrorType","notificationAction","addFilesForUpload$","selectedFilesForUploadCount","existingFilesCount","topNewFiles","addUrlFileForUpload$","getVideoInfo","headers","has","contentType","getVideoInfoSuccess$","updatedFile","createUploadProgressNotification$","getInProgressFiles","getAllValidUploadFiles","inProgressFiles","allValidFiles","uploadProgressNotification","notificationTitle","showSingleFileUploadedToast$","uploadDialogRef","CLOSED","toast","showSingleFileUploadFailedToast$","showSingleFileUploadQuotaExceededToast$","showMultiFilesUploadedToast$","getAllCompletedFiles","completedFiles","showUploadFilesErrorNotification$","isBroadUploadError$","uploadErrorType$","isBroadUploadError","uploadErrorType","updateUploadProgressNotification$","getTotalUploadProgress","clearUploadProgressNotification$","showIndexingStartedToast$","numberFiles","showIndexingStartedForSingleToast$","showIndexingStartedForMultiToast$","uploadDialogData","IndexingLanguageType","EDGE_CUSTOM_LANGUAGE_IDS","CONCURRENT_EDGE_UPLOADS","Auto","languageIdKeys","videoUrl","UPLOAD_HANDLING_ERRORS","VIDEO_ALREADY_IN_PROGRESS","EVENT_GRID_NOT_REGISTERED","AMS_AAD_APPLICATION_NOT_IN_TENANT","AMS_UNREACHABLE","STORAGE_UNREACHABLE","MANAGED_IDENTITY_MISSING","STORAGE_ACCESS_DENIED","RE_INDEX_HANDLING_ERRORS","BREAKDOWN_NOT_FOUND","GENERAL","VIDEO_REMOVED","VIDEO_INDEXING_IN_PROGRESS","PROJECT_RENDER_IN_PROGRESS","SOURCE_VIDEO_DELETED","SensitiveAI","CONCURRENT_FS_UPLOADS","CONCURRENT_URL_UPLOADS","pow","EXCLUDE_AI_PARAM","Emotions","Faces","Labels","ObservedPeople","excludeAI","SpeechModel","LanguageModel","getBrandsCategoriesParam","sendSuccessEmail","fileSize","uploadParams","updatedParams","initialUploadState","uploadReducer","initialReIndexState","reIndexReducer","initialIndexingViewState","indexingViewStateReducer","upload","selectIndexingState","indexingViewActions","permissionDenied","showAdvanced","isIndexingProcessDirty","selectedAdvancedSettings","assign","LanguageAutoDetectMode","ReIndexActions","isIndexingSettingsLoaded","isProcessing","originalLanguageId","reIndexErrorType","getPersonId","getLanguageId","ais","updatedSupportedAIs","languageAutoDetectMode","Single","Multi","merge","selectFileId","urlValidationLoading","urlValidationError","uploadingQuotaLimitReached","fileProps","selectIndexingViewState","selectUploadFiles","selectUploadState","selectOriginalLanguageId","selectReIndexState","indexingViewState","uploadState","reIndexState","selectSupportedAIs","getAllFiles","getAllUploadValidFilesNames","selectExcludeRAI","selectStreamingPreset","selectPrivacy","selectMetadata","selectDescription","selectFileName","selectFilesNames","ReindexFileName","UploadFilesNames","getLanguagesObject","trainedLanguageModels","keepSource","KeepSource","getAllLanguages","selectedLanguageId","selectPeopleModelId","isDefault","selectBrandCategories","getIncludedAIs","SupportedAIsMap","getIndexingSettingSummary","selectedBrands","selectAdvancedMode","selectIsIndexingProcessDirty","selectSelectedAdvancedSettings","selectReIndexErrorType","selectReviewState","selectModerationState","selectReIndexDisplayedPage","selectUploadFileById","selectUploadDisplayedPage","isUserConsent","getFileUploadingErrorType","FormsModule","VIUIModule","TranslateModule","browserDetect","defaultBlockSize","blockIdPrefix","fileBlob","initParameters","getContentType","uploadInBlocks","fileParts","currentBrowser","browser","version","blobToFile","currentFilePointer","bytesUploaded","blockIds","cancelled","totalBytesRemaining","reader","maxBlockSize","obs","FileReader","onloadend","onReaderLoadEnd","readFileInBlocks","readyState","uploaded","Uint8Array","blob","buffer","prog","parseFloat","toFixed","commitBlockList","blockId","pad","btoa","readAsArrayBuffer","str","requestBody","commitUploadBlockList","lastModifiedDate","ExcludableAIsModels","ROOT_FACE_GATED_MODELS","INFO_MODELS","Entities","Clapperboard","_sensitiveAIs","_faceGatedAIs","sensitiveAIs","resetAIsLists","requiredAIs","getRequiredAIsByPreset","requiredAI","supportedAIsResponseAsMap","updateSensitiveAIsList","uncheckModels","updateFaceGateAIsList","mandatoryParents","optionalParents","requireAtLeastOneOptionalParent","descendants","supportedAIsResponsesMap","supportedAI","getModelInfo","updateAIList","shouldDisable","fullModels","disableModel","aiToUncheck","shouldUncheckModel","add","aiToCheck","checkModels","aisToCheck","shouldEnable","enableModel","aisToUncheck","aiToEnable","aiToDisable","AIsToEnable","parent","some","getFileName","getFileType","CloudMediaFileFormats","EdgeMediaFileFormats","ImageFileFormats","MAX_FILE_SIZE_FILE_SYSTEM","MAX_VIDEOS_CLOUD_LIMIT","MAX_VIDEOS_EDGE_LIMIT","isImageUploadSupported","ImageUploadSupport","fileResult","validateFile","fileExtension","typeArr","mediaTypes","VideoModerationState","sortLanguageCompare","speechModelStoreService","supportedLanguagesStore","selectedLogoGroup$","additionalLanguages","edgeLanguages","EdgeMultiLid","keepSourceLanguage","mappedLanguageModels","langModel","mappedSpeechModels","isQuotaError$","isQuotaError","getFileUploadingError","isVideoInProgressError","isURLWasNotFileError$","reIndexErrorType$","isInValidInput$","isInvalidInputError","REMOVED","exclude","displayNameKey","sessionStorageService","consentSessionKey","uploadPlayList","urlParams","paramsList","requestSettings","videoSize","indexingSettingsKey","SessionStorageService","parts","pop","fileArr","fileList","maxIndex","newIndex","defaultFileName","fullFileName","KEEP_SOURCE_ID","typeRegex","typeValue","exec","UIInviteActionType","roleAssignOptionsMainAction","ROLE_ASSIGNMENT","roleAssignmentsActions","REMOVE","invitationsOptionsMainAction","invitationsActions","INVITATION","LoginProvider","LoginService","sessionHandlerService","initProperties","authenticatedUpn","signIn","provider","urls","sessionId","sessionParam","sourceParam","base","SessionHandlerService","LogoutService","exitAccount","removeLastProvider","enableProdMode","setRuntimeConfigurations","__NgCli_bootstrap_1","platformBrowser","bootstrapModule","catch","fromMedia","MediaService","MediaEffects","loadMedias$","getMediaIndexIds","routeParams","mediaIds","userAccounts","selectMediaIndex","MEDIA","DisableSummarizedInsights","timeStamp","performance","timeTaken","videoDuration","upsertMediaIndex","mediaIndex","loadMediaFailure","loadProjects$","loadProjectIndex","getProjectIndex","updateIndex$","updateMediaIndex","selectIsBase","updateProjectMediaIndex","updateIndex","saveVideoIndex","mediaService","handelUpdateIndex","updateIndexSaving","updateProjectIndex$","selectedMediaIndex","selectedIndex","projectIndex","updateProject","requestReview$","requestReview","handelRequestReview","updateMediaReviewState","MediaDataCommonModule","getMediaIndex","getMediaDetails","selectMediaDetails","getMediaActionsData","selectMediaActionsData","getMediaAlertData","selectMediaAlertData","getMediaSaving","selectedMediaIndexSaving","getMediaError","selectedMediaIndexError","updateIndexName","galleryAction","mediaIndexAction","updateInsights","updateFace","updateTranscriptLine","line","updateAllTranscriptLines","transcript","updateOcrLine","upsertIndex","formData","reportAbuse","isSuccess","MediaUpdateVideoSuccess","MediaUpdateVideoFailed","MediaReviewRequestSucceeded","MediaReviewRequestFailed","viewContext","codeLocation","__webpack_require__","clientVersion","cancelDeleteAction","okAction","deleteAccountAction","DeleteState","cont_r2","DeleteAccountComponent_div_1_div_3_div_1_li_4_Template","DeleteAccountSharedPeopleTitle","DeleteAccountEmptyAccountSharedList","DeleteAccountComponent_div_1_div_3_div_1_Template","DeleteAccountComponent_div_1_div_3_div_2_Template","DeleteAccountComponent_div_1_app_vi_action_button_9_Template_app_vi_action_button_actionClick_0_listener","BUTTON_WIDTH","DeleteAccountComponent_div_1_div_3_Template","DeleteAccountComponent_div_1_Template_input_ngModelChange_7_listener","accountNameInput","DeleteAccountComponent_div_1_Template_input_debounceEvent_7_listener","validateAccountName","DeleteAccountComponent_div_1_Template_input_keyup_enter_7_listener","DeleteAccountComponent_div_1_app_vi_action_button_9_Template","DeleteAccountComponent_div_1_Template_app_vi_action_button_actionClick_10_listener","isUserOwner","DeleteAccountPermanentlyDeletedMessage","DeleteAccountNoLongerAccessMessage","DeleteAccountEnterNameAccountLabel","DeleteAccountEnterNameAccountTitle","DeleteAccountEnterNameAccountPlaceholder","ɵɵpureFunction0","DeleteAccountDeletedAccountName","SettingsLeaveAccountPending","DeleteAccountPending","DeleteAccountPulledOutSuccessfully","DeleteAccountComponent","delayTimeout","setProperties","addDataListeners","PROCESS","closeParentComponent","isAccountDeleted","FORM","handleActionSuccess","DeleteAccountTitle","DeleteAccountDialogOptionsActionBtnText","isAccountDeleteInProgress$","DeleteAccountComponent_Template","DeleteAccountComponent_div_1_Template","DeleteAccountComponent_div_2_Template","DeleteAccountComponent_div_3_Template","UserNotInvitedToAccount","SettingsAccountTabHeader","SettingsIotConnectionsTabHeader","AccountSettingsTitle","SettingsUpdateAccountSuccess","SettingsUpdateAccountNameError","ErrorTypes_ACCESS_TOKEN_VALIDATION_FAILED","SettingsUpdateAccountError","UserInvitedToAccount","DeleteAccountDeleteAccountError","DeleteAccountPullOutFailed","AccountSettings","ErrorTypes_USER_NOT_ADMIN","BuyWizard_ContentMigration_AfterSignedIn","ConfigureConnectionDialogHeader","ConfigureConnectionSuccessLabel","ConfigureConnectionSuccessContentLabel","DeleteAccountDelete","DeleteAccountDialogOptionsHeader","accountsSelectors","errorHandler","cancelDeleteAccount","selectAccountSaving$","ACCESS_TOKEN_VALIDATION_FAILED","handler","USER_NOT_ADMIN","openDeleteAccountDialog","deleteAccountDialogData","onCloseDeleteDialog","isPaidAccount","ErrorHandlerService","AccountUnavailableDialogComponent_Template","accountUnavailableDialog_Arm_Text","CustomizationSubMenuComponent","translateHelper","selectedPage$","isSpeechEnabled$","initMenuOptions","newPage","handleSelectPage","menuItems","LanguageClassic","TabsLanguage","TabsLanguageID","TabsFaces","TabsBrands","speechOption","SpeechNew","catalogOption","LiveModelCatalogTitle","CustomizationSubMenuComponent_Template","CustomizationSubMenuComponent_Template_vi_side_sub_menu_itemSelected_0_listener","EdgeExtensionsSubMenuComponent","CLOUD_ITEM_CLASS","EXTENSION_CLASS_PREFIX","accountExtensions","isMediaSideMenuOptionSelected","initMenuItems","focusEdgeExtensionItem","handleSelectItem","cloudItem","MyCloud","extensionName","extensionType","hasIdentity","menuItem","EdgeExtensionsSubMenuComponent_Template","EdgeExtensionsSubMenuComponent_Template_vi_side_sub_menu_itemSelected_0_listener","ViewContainerRef","MainSidebarComponent","viMainSidebar","show$","isOpenSubject","setVISidebarElement","viSidebar","VIMainSidebarService","MainSidebarComponent_Query","MainSidebarComponent_Template_app_vi_action_button_actionClick_2_listener","SideBarCloseLabel","MediaFiles","LiveFeeds","ModelCustomizations","OpenSideMenu","CloseSideMenu","ViewActionType","SideMenuComponent_ng_container_11_ng_container_1_Template","edgeExtensionsSubMenu_r3","SideMenuComponent_ng_container_23_ng_container_1_Template","SideMenuComponent_ng_template_24_div_0_Template","showExtensionsSubMenu","SideMenuComponent","isOpened","isResponsive","isMenuItemDisabled","RESPONSIVE_WINDOW_WIDTH","AUTO_CLOSED_WINDOW_WIDTH","isAutoSideMenuClosed","showCustomizationSubMenu","subMenuOpened","focusWithTimeOut","checkResponsive","currentPermission$","toggleSideMenu","onMenuItemsControlChanged","viewChangedEvent","viewAction","DISABLE","getBodyRectAsync","bodyRect","currResponsive","timeout","SideMenuComponent_Template","SideMenuComponent_Template_div_keyup_esc_0_listener","SideMenuComponent_Template_div_toggleFunc_0_listener","SideMenuComponent_Template_div_appAccessibleClick_3_listener","SideMenuComponent_Template_div_appAccessibleClick_7_listener","SideMenuComponent_span_10_Template","SideMenuComponent_ng_container_11_Template","SideMenuComponent_Template_vi_role_based_view_control_wrapper_viewControlChanged_12_listener","SideMenuComponent_Template_div_appAccessibleClick_14_listener","SideMenuComponent_span_17_Template","SideMenuComponent_Template_div_appAccessibleClick_18_listener","SideMenuComponent_span_21_Template","SideMenuComponent_div_22_Template","SideMenuComponent_ng_container_23_Template","SideMenuComponent_ng_template_24_Template","ɵɵpureFunction3","SideSubMenuComponent_div_1_Template_div_appAccessibleClick_1_listener","item_r2","SideSubMenuComponent","itemSelected","SideSubMenuComponent_Template","SideSubMenuComponent_div_1_Template","VIDEO_INDEXER_PRICING_LINK","GET_STARTED_WITH_AZURE_FREE","CreateNewAccountComponent","loginService","logoutService","signInWithAAD","OpenIdConnect","CreateNewAccountComponent_Template","CreateNewAccountComponent_Template_button_appAccessibleClick_12_listener","VIBuyWizardConnectToAzureText1","VIBuyWizardConnectToAzureText2","BuyWizardNotAADRoles","BuyWizardNotAADRolesOwner","LoginSignInCorporateAccountTitle","SignInToAzure","BuyWizardNotAADLinkPricing","BuyWizardNotAADDontHaveAccount","BuyWizardNotAADGetStartedAzure","Error_Types","SideMenuWidthSize","EXTENSIONS_SUB_MENU_WIDTH","FaceGateStripService","FACE_GATE_TRACKING","isFaceGateEnabled","FaceGate","showFaceGateStrip","stripMessage","pageName","trackEventLink","hideFaceGetStrip","faceGateStripId","linkType","MatSortModule","debounceTime","getTranslationLocationTitle","AccountsListComponent_div_0_div_18_Template_div_appAccessibleClick_0_listener","openInvite","SidebarShareAccount","AccountsListComponent_div_0_div_20_Template_div_appAccessibleClick_0_listener","copyAccountId","SettingsAccountIDCopyLabel","ArmAccountsErrorLoading","NoResultsFound","AccountsListComponent_div_0_div_33_Template_input_ngModelChange_1_listener","accountFilterValue","filterAccounts","AccountsListComponent_div_0_div_33_div_2_Template","FindAccount","tmp_4_0","account_r7","AccountsListComponent_div_0_ng_container_37_li_1_Template_div_appAccessibleClick_1_listener","chooseAccount","AccountsListComponent_div_0_ng_container_37_li_1_span_6_Template","AccountsListComponent_div_0_ng_container_37_li_1_Template","ArmAccountsLoading","AccountsListComponent_div_0_span_7_Template","AccountsListComponent_div_0_span_8_Template","AccountsListComponent_div_0_div_9_Template","AccountsListComponent_div_0_div_18_Template","AccountsListComponent_div_0_div_20_Template","AccountsListComponent_div_0_Template_div_appAccessibleClick_21_listener","openAccountSettings","AccountsListComponent_div_0_vi_ui_alert_message_32_Template","AccountsListComponent_div_0_div_33_Template","AccountsListComponent_div_0_ng_container_37_Template","AccountsListComponent_div_0_div_39_Template","AccountsListComponent_div_0_Template_app_vi_action_button_appAccessibleClick_41_listener","AccountListSelectedAccountInfoLabel","SelectedAccount","ID","userRule$","AccessTitle","ViewOnly","showAccountsFilter","ɵɵpureFunction5","tmp_26_0","AccountListLabel","AccountsListComponent","liveAnnouncer","MIN_ACCOUNTS_FOR_FILTER","announce","userRole","titleResource","HeaderLocationTitle","SHELL","resetFilterAccounts","SettingsCopyAccountIDSuccessNotification","SIDE_BAR","Classic","ext","LiveAnnouncer","AccountsListComponent_Template","AccountsListComponent_div_0_Template","AccountsIDLabel","UIHelpActionType","helpActionsList","DOCUMENTATION","isLink","SUPPORT","SURVEY","INTERNAL_FACE_GATE_POPUP","GIVE_FEEDBACK","referencesActionList","BLOG","API_REFERENCE","ABOUT_VI","PRICING","PRIVACY_STATEMENT","SERVICES_AGREEMENT","ACCESSIBILITY","AZURE_US_PORTAL_LINK","HelpComponent_ng_template_7_ng_container_1_ng_container_1_ng_container_1_Template","isPopup","action_r1","link_r2","button_r3","HelpComponent_ng_template_7_ng_container_1_ng_template_4_Template_a_appAccessibleClick_1_listener","emitPopup","HelpComponent_ng_template_7_ng_container_1_ng_container_1_Template","HelpComponent_ng_template_7_ng_container_1_ng_template_2_Template","HelpComponent_ng_template_7_ng_container_1_ng_template_4_Template","showLink","HelpComponent_ng_template_7_ng_container_1_Template","list_r6","HelpComponent","config","helpList","referencesList","MICROSOFT_COPYRIGHTS","LINK_ROLE","isFairFaxEnv","r","showFaceGatePopupLink","showFaceGatePopup","HelpComponent_Template","HelpComponent_ng_container_1_Template","HelpComponent_ng_container_4_Template","HelpComponent_ng_template_7_Template","listTemplate_r7","HelpReferences","HeaderDocumentation","HeaderHelpLinkSupport","HeaderHelpLinkGiveFeedback","HeaderBlog","HeaderAPIReference","HeaderAboutVideoIndexer","HeaderPricing","FooterPrivacyStatement","FooterServicesAgreement","HelpSurvey","FaceRecognitionFormHelpLink","getDateString","progressAriaLabel","progressText","NotificationCardComponent_div_9_Template_a_appAccessibleClick_1_listener","NotificationCardComponent","notificationId","percentage","NotificationCardComponent_Template","NotificationCardComponent_i_2_Template","NotificationCardComponent_span_3_Template","NotificationCardComponent_div_8_Template","NotificationCardComponent_div_9_Template","NOTIFICATIONS_EMPTY_STATE_SVG_PATH1","NOTIFICATIONS_EMPTY_STATE_SVG_PATH2","UINotificationsActionType","notification_r3","NotificationsPanelComponent_div_0_ng_container_1_Template_app_vi_action_button_appAccessibleClick_4_listener","clearAlertsAndBannersNotificationsClicked","NotificationsPanelComponent_div_0_ng_container_1_li_7_Template","SidebarUserAlerts","clearAlertsNotifications","PRIMARY_TEXT","notification_r5","NotificationsPanelComponent_div_0_ng_container_2_Template_app_vi_action_button_appAccessibleClick_4_listener","clearMessagesNotificationsClicked","NotificationsPanelComponent_div_0_ng_container_2_li_7_Template","SidebarUserMessages","NotificationsPanelComponent_div_0_ng_container_1_Template","NotificationsPanelComponent_div_0_ng_container_2_Template","SidebarNotificationsEmptyTitle","SidebarNotificationsEmptySubtitle","NotificationsPanelComponent","CLEAR","notificationsLoading","SidebarUserClear","NotificationsPanelComponent_Template","NotificationsPanelComponent_div_0_Template","NotificationsPanelComponent_div_1_Template","NotificationsPanelComponent_div_2_Template","VIThemes","languageFilterAction","themeOptions","themeName","svgPath","DARK","LEGACY","DARKLEGACY","SettingsSendNewsletter","SettingsAutoCompleteTitle","SettingsSamplesTabLabel","SettingsShowGalleryByDefaultTitle","SettingsLanguageSettingsTitle","SettingsAutoPlayTitle","Themes","SettingsShowArcExtensions","svgElements","x","y","elem_r1","ThemeOptionComponent","activeContainer","titleValue","getThemeTranslation","selectTheme","handleFocus","themeTranslations","theme","ThemeOptionComponent_Template","ThemeOptionComponent_Template_div_focus_0_listener","ThemeOptionComponent_Template_div_appAccessibleClick_0_listener","ThemeOptionComponent__svg_rect_2_Template","UserSettingsComponent_div_0_vi_ui_switch_9_Template_vi_ui_switch_checkedChange_0_listener","settingsChange","UserSettingsComponent_div_0_div_17_Template_vi_theme_option_select_1_listener","theme_r5","onClickTheme","UserSettingsComponent_div_0_Template_vi_ui_switch_checkedChange_4_listener","autoPlayVideosSettings","onAutoPlaySettingsChange","UserSettingsComponent_div_0_Template_vi_ui_switch_checkedChange_7_listener","UserSettingsComponent_div_0_label_8_Template","UserSettingsComponent_div_0_vi_ui_switch_9_Template","UserSettingsComponent_div_0_Template_vi_ui_switch_checkedChange_12_listener","UserSettingsComponent_div_0_div_17_Template","UserSettingsComponent_div_0_Template_vi_fluent_ui_select_selectedActionChange_20_listener","languageChanged","themes","languageSelectId","languagesActions","UserSettingsComponent","darkMode","showArcExtensions","autoPlayVideosStorage","activeTheme","setLanguage","showEdgeExtensionsToggle","selectedTheme","getLanguages","translateLanguages","getSelectedLanguage","UserSettingsComponent_Template","UserSettingsComponent_div_0_Template","animate","animateChild","transition","sidebarContent","opacity","sidebarPage","display","optional","SidebarAccounts","SidebarUserSettings","SidebarContainerComponent_div_1_app_vi_help_9_Template_app_vi_help_openAbout_0_listener","handleOpenAbout","SidebarContainerComponent_div_1_app_accounts_list_10_Template_app_accounts_list_close_0_listener","SidebarContainerComponent_div_1_h2_3_Template","SidebarContainerComponent_div_1_h2_4_Template","SidebarContainerComponent_div_1_h2_5_Template","SidebarContainerComponent_div_1_h2_6_Template","SidebarContainerComponent_div_1_Template_app_vi_action_button_actionClick_7_listener","SidebarContainerComponent_div_1_app_vi_help_9_Template","SidebarContainerComponent_div_1_app_accounts_list_10_Template","SidebarContainerComponent_div_1_app_user_settings_11_Template","SidebarContainerComponent_div_1_vi_notifications_panel_12_Template","navigationState","contentInAnimation","SidebarContainerComponent","ANIMATION_DELAY","newNavigation","prevNavigationState","setFocus","setAnimation","timing","SidebarContainerComponent_Template","SidebarContainerComponent_div_1_Template","changeDetection","CdkTrapFocus","AccessibleFocusTrap","elem","_focusTrapFactory","AppCdkFocusTrap","focusTrap","setAriaHidden","focusTraps","parentNode","setAttribute","FocusTrapFactory","ɵɵInputFlags","AccessibilityModeHandlerService","accessibilityModeOn","hasEventListener","accessibilityModeUpdate","enableAccessibilityMode","tagName","Tab","shiftKey","AccessibilityMode","AccessibilityModeSubject","_4","AccessibilityTooltipDirective","renderer","tooltipAddEvents","tooltipRemoveEvents","showAccessibilityTooltip","observeTitleChange","tooltipClasses","tooltipLeft","tooltipRight","providers","deps","accessibilityModeHandler","mutationObserver","MutationObserver","mutationList","mutation","attributeName","activeElement","createTip","deleteTip","observe","attributes","removeEventListeners","disconnect","getElementsByClassName","getAttribute","removeAttribute","createElement","addClass","textNode","createText","appendChild","tooltipText","textContent","removeChild","Renderer2","getParents","node","aNode","parents","createEnteringDiv","enteringContainer","enteringDiv","enteringDivTemplate","innerHTML","resourceProperty","variables","A11yModule","AccessibleFocusAreaComponent","SubMenuHandlerDirective","AnnouncerDirective","ContentOnHoverHandlerDirective","AccessibleClickDirective","isMainButtonPressed","appClickDisabled","appSpaceClickEnabled","appAccessibleClick","onMouseUp","onEnterKeyUp","onSpaceKeyUp","AccessibleClickDirective_HostBindings","AccessibleClickDirective_mouseup_HostBindingHandler","AccessibleClickDirective_keyup_enter_HostBindingHandler","AccessibleClickDirective_keyup_Space_HostBindingHandler","AriaLivePolitenessEnum","tabindex","bClicked","onFocusInTab","onFocus","getEnteringDiv","insertBefore","onFocusOut","hideEntringDiv","getCurrentType","isActive","enteringDivClick","appAccessibilityAnnouncer","which","AccessibilityEnteringDivText","POLITE","AccessibleFocusAreaComponent_Query","AccessibleFocusAreaComponent_keyup_tab_HostBindingHandler","AccessibleFocusAreaComponent_mousedown_HostBindingHandler","AccessibleFocusAreaComponent_focus_HostBindingHandler","AccessibleFocusAreaComponent_focusout_HostBindingHandler","announceEventRef","announceEvent","announceEnterEventRef","announceEnterEvent","listenedEvent","announceText","politeness","OFF","elRef","contentOnHover","onMouseOver","onMouseOut","ContentOnHoverHandlerDirective_HostBindings","ContentOnHoverHandlerDirective_mouseover_HostBindingHandler","ContentOnHoverHandlerDirective_mouseout_HostBindingHandler","focusMonitor","zone","focusVia","preCallBack","runOutsideAngular","focusElement","triggeredElement","FocusMonitor","ZoneWrapperService","FocusableComponent_Template","toggleFuncOnNullRelatedTarget","toggleFunc","appAccessibilitySubMenuHandler","htmlPageElement","SubMenuHandlerDirective_HostBindings","SubMenuHandlerDirective_focusout_HostBindingHandler","HttpClientModule","HTTP_INTERCEPTORS","FrontdoorInterceptor","ApiInterceptor","GlobalHttpInterceptorService","ApiModule","useValue","apiBase","multi","CustomizationApi","concatParamsListToURL","getRequestSettings","ProjectApi","getCustomEncodingParams","trialLocationForSampleAccount","VideoApi","AccountApi","ApiWrapper","apiBaseRoute","getAccountAccessToken","reqSettings","apiAuthBase","Cache","withCredentials","apiLocation","HttpClient","apiOperationBase","generateAccessTokens","includeUsage","includeAmsInfo","includeStatistics","apiInternalsBase","post","reqParams","apiInternalsCloudBase","reportProgress","searchParams","suffixUrl","apiOperationBaseWithLocation","searchPersonMaxConfidenceInVideos","apiInternalsBaseWithLocation","getIdByExternalId","createVideoPlaylist","userPlaylist","addReader","addReaderParams","deleteClip","addContributor","addContributorParams","removeReader","removeReaderParams","removeMySelfParams","removeInvite","removeInviteParams","getRecommendedVideos","apiOperationBaseWithoutLocation","GetApiOperationsBase","GetInternalApiBase","GetAuthApiBase","GetApiLocation","ArmAccountApi","apiProxy","GerProxyApiLocation","getArmAccountAccessToken","armAccountAccessTokenPayload","getArmVideoAccessToken","getArmProjectAccessToken","projectId","getArmExtensionAccountAccessToken","armAccountExtensionAccessTokenPayload","getArmExtensionVideoAccessToken","CustomizationBrandsModelsApi","brandSettings","CustomizationPeopleModelsApi","CustomizationPeopleApi","CustomizationFacesApi","CustomizationLanguageModelsApi","CustomizationSpeechApi","CustomizationLogoGroupsApi","CustomizationUnknownPersonsApi","personId","getFaceBytes","getFacesSpriteUrl","sourceType","sourceTypeParam","getFaceUrl","Accept","reqBody","apiInternalBase","getTestPeopleByModel","getTestPeopleModels","toArray","fromFetch","ok","method","nameForFilter","EdgeExtensionsApi","serializedParams","UrlUtility","paramsToUrl","listLanguageModels","NotificationsApi","prepareProjectSummarizedInsights","requestParams","getProjectAccessToken","getProjectIndexUrl","createProject","playlist","getCaptionsUrl","getCaptions","SupportedLanguagesApi","amILoggedInSuffix","UserApi","getUserAccessToken","apiInternalBaseDefaultLocation","getVILocations","amILoggedIn","isAuthPath","prepareVideoSummarizedInsights","timeToken","apiOperationBaseWithMediaApiLocation","deleteVideoSourceFile","getCustomVideoIndex","getVideoTestIndex","getVideoIndexUrl","apiInternalsBaseWithMediaApiLocation","updateVideoIndex","updateData","getSourceFileDownloadUrl","getThumbnail","setThumbnail","setThumbnailId","getThumbnailSpriteCustomUrl","customURL","getCustomUrl","getKeyframesSpriteCustomUrl","getSpriteUrl","pageIndex","spriteType","tokenParam","getTestThumbnailSpriteUrl","getTestKeyframesSpriteUrl","updateTranscript","removeLabels","labelId","removeKeywords","keywordId","addKeywords","removeFaces","removeBrands","getVideoAccessToken","takedown","takedownParams","takedownByAdmin","unquarantine","getInsightsWidget","insightsParams","getPlayerWidget","playerParams","getArtifactByUrl","getArtifactUrl","getArtifactZip","abuseData","renderProject","checkRenderProjectStatus","getProjectRenderedFileDownloadUrl","cancelRenderProject","getVideoStreamingURL","getObservedPeoplePageByID","pageId","getObservedPeoplePageByTime","getFacesPageByID","getFacesPageByTime","getDetectedObjectsPageByID","getDetectedObjectsPageByTime","listTextualVideoSummaries","listAOAIDeployments","createTextualVideoSummary","getTextualVideoSummary","summaryId","GetApiMediaLocation","apimBase","authorizationApiLocation","intercept","request","endsWith","clone","setHeaders","handle","throwError","req","urlObject","protocol","pathname","UrlStreamingFormat","environmentType","ApiType","ApiRegionProperties","AbuseType","TokenScope","http","urlUtility","defaultLocation","configLoaded","authRoutePath","apiMediaLocation","_edgeExtensionApiUrl","baseApi","getApiOperationsBase","removeApiLocation","forceCloudApi","apiOperationsBase","apiOperationsBaseWithLocation","local","isEnvType","LocalhostBE","getAuthApiBase","getInternalApiBase","getApiMediaLocation","getProxyApiLocation","proxyUrlBase","isConfigLoaded","apiCache","operationsApiLocation","HttpParams","CustomUrlEncodingCodec","customHttpParam","encoder","getFaces","summarizedInsights","seconds","time","keywords","sentiments","emotions","audioEffects","labels","namedPeople","namedLocations","topics","framePatterns","startTime","facesDictionary","insights","seenDuration","instance","instances","confidence","seenDurationRatio","sortedFaces","f1","f2","endTime","trackPerformance","INSIGHTS","HttpUrlEncodingCodec","encodeKey","k","encodeValue","unauthorizedErrorTypes","AccessTokenHeaderName","defaultsSettings","param","tryGetParam","captureParamFromUrl","httpParams","idRegex","accountRegex","armAccountRegex","locationRegex","ignoreAccountId","inviteIdPattern","isProjectRequest","isVideosRequest","isThumbnailsRequest","isAccessTokenRequest","isUsersRequest","isReportAbuseRequest","isArmAccountRequest","isNotificationsRequest","isSupportedLanguagesRequest","isCustomizationRequest","isReIndexRequest","forceAccessToken","ignoreEditRoutes","getPermissionParam","hasAllowEdit","tokenSplit","tokenString","atob","isEditRequest","toLocaleString","getRequestVideoId","getRequestAccountId","addAuthenticationToken","Authorization","USER_NOT_AUTHENTICATED","USER_NOT_SIGNED_IN","AccessTokenInterceptor","AuthSessionInterceptor","AccessTokenService","AuthSessionService","AuthenticationContext","CONSTANTS","ACCESS_TOKEN","EXPIRES_IN","ID_TOKEN","ERROR_DESCRIPTION","SESSION_STATE","STORAGE","TOKEN_KEYS","ACCESS_TOKEN_KEY","EXPIRATION_KEY","STATE_LOGIN","STATE_RENEW","NONCE_IDTOKEN","USERNAME","IDTOKEN","LOGIN_REQUEST","LOGIN_ERROR","RENEW_STATUS","RESOURCE_DELIMETER","LOADFRAME_TIMEOUT","TOKEN_RENEW_STATUS_CANCELED","TOKEN_RENEW_STATUS_COMPLETED","TOKEN_RENEW_STATUS_IN_PROGRESS","LOGGING_LEVEL","WARN","VERBOSE","LEVEL_STRING_MAP","POPUP_WIDTH","POPUP_HEIGHT","activeRenewals","isAngular","renewStates","callbackMappedToRenewStates","displayCall","clientId","cloneConfig","navigateToLoginRequestUrl","loginResource","redirectUri","postLogoutRedirectUri","anonymousEndpoints","loadFrameTimeout","acquireToken","isEmpty","warn","token","getCachedToken","registerCallback","verbose","renewIdToken","renewToken","removeAdalFrame","iframeId","adalFrame","hasResource","expiry","offset","expireOffsetSeconds","saveItem","expectedState","errorDesc","frameHandle","addAdalFrame","urlNavigate","getNavigateUrl","addHintParameters","idTokenNonce","urlContainsQueryStringParameter","urlNavigation","frameName","loadFrame","frameCheck","profile","hasOwnProperty","responseType","localLoginUrl","addLibMetadata","obj","extraQueryParameter","correlationId","round","navigator","userAgent","ifr","visibility","position","borderWidth","getElementsByTagName","insertAdjacentHTML","cacheLocation","supportsLocalStorage","supportsSessionStorage","sessionStorage","copy","attr","libVersion","timestamp","toUTCString","formattedMessage","stack","accessTokenService","isNotApimOrExtensionRequest","getAccessTokenFromCache","accessTokenAuthorizationHandler","isEmbedMode","authSessionService","refreshSessionInProgress","refreshSessionSubject","tryRefreshSession","refreshSession","handleRefreshTokenRequest","localhostClientID","appClientID","finalize","allowEditToPermission","enableEdgeExtensionTokens","EdgeTokens","refreshUserTokenInProgressMap","refreshUserTokenSubjectMap","refreshAccountTokenInProgressMap","refreshAccountTokenSubjectMap","refreshVideoTokenInProgressMap","refreshVideoTokenSubjectMap","getAccessTokenAsync","isExtensionRequest","extendExtensionToken","getAccessTokenApi","handleGetAccessTokenSuccess","getVideoId","useAccountScope","isExtensionsRequest","handleAccountAccessTokenAuthorizationError","handleVideoAccessTokenAuthorizationError","handleUserAccessTokenAuthorizationError","userToken","handleGetAccessTokenError","permissionValue","enableRestrictedViewer","accountToken","videoToken","setAccessToken","checkIfUserAuthenticated","extractPermissionFromAccessToken","getTokenScope","isJwtTokenExpired","userAccount","videoAccessTokenPermission$","Google","Microsoft","LinkedIn","Facebook","authenticationConfig","endpoints","isUserAuthenticatedSubject","authUser","authenticatedUserId","authenticatedUserName","authenticatedUserType","initAuthenticationContext","saveLastProvider","removeAllAccessTokens","isLocal","clearCache","clearSession","extensionTokenLifetimeInSeconds","getAccessTokenFromUrlAsync","USER","getArmAccessTokenApi","getClassicAccessTokenApi","urlToken","tryGetAccessTokenFromUrl","isCorp","Email","Id","FullName","Type","newToken","cacheKey","getAccessTokenCacheKey","getPermissionFromURLToken","allowEditParam","cacheValue","lastAccountIdSavedPermission","setAccountAccessTokenPermission","setVideoAccessTokenPermission","removeAccessToken","getArmAccessTokenCacheKey","getClassicAccessTokenCacheKey","ACCOUNT","permissionParam","VIDEO","PROJECT","getArmAccessTokenPrefix","getUserAccessTokenOrEmptyString","getAccountsTokensAsync","refresh","tryGetLastProvider","lastProvider","msg","isRouteAuthenticated","asObservable","isUserLoggedIn","RestrictedViewer","isExtendedExtension","getArmExtensionAccessTokenApi","permissions","permissionType","expirationTime","addExtensionIdPayloadIfNeeded","tokenLifetimeInSeconds","val","storage","jwt_decode","decoded","exp","setUTCSeconds","valueOf","READER","extractClaimsFromAccessToken","claims","Permission","APP_INITIALIZER","BrowserAnimationsModule","TranslationModule","SanitizerService","appInitializerFactory","useFactory","targetModule","resources_","cacheMap","cacheName_","caches","cacheName","dateExpired","isDateExpired","_this3","threshold","loadConfig","hostn","envTypeConfig","nodeConfig","cdnDomain","featureSwitches","isDebugEnabled","debug","getCodeVersion","getCodeLocation","getLocationQueryParam","environmentName","APIServiceServerError","errMessage","statusCode","errorMsg","serverError","extractTraceIdFromMessage","traceIdPattern","featureToggleQueryParamPrefix","loadFeatureSwitches","checkFeatureSwitchesQueryParams","featureSwitchesKeys","featureSwitchParam","AccountEvent","NgModuleFactory","LazyLoadService","compiler","loadComponent","LazyModule","LazyComponent","moduleFactory","loadModuleFactory","moduleRef","componentFactoryResolver","resolveComponentFactory","componentRef","createComponent","t","compileModuleAsync","Compiler","isEnabled","NavigationTiming","PaintTiming","ResourceTiming","getPerformanceApi","PageTiming","plugins","isSupported","resourceTimingOptions","paintTimingOptions","navigationTimingOptions","navigation","paint","collect","onTimingsCollected","getTimings","plugin","BaseTiming","entry","getEntriesByType","unloadEventTime","unloadEventEnd","unloadEventStart","readyStart","fetchStart","appcacheTime","domainLookupStart","connectTime","connectEnd","connectStart","lookupDomainTime","domainLookupEnd","redirectTime","redirectEnd","redirectStart","requestTime","responseEnd","requestStart","domReadyTime","domComplete","domInteractive","initDomTreeTime","loadEventTime","loadEventEnd","loadEventStart","loadTime","timings","getEntriesByName","firstPaintTime","normalizeEntryName","compiledRegex","pageTimings","trackPageTimings","precision","captureFirstPaint","matchLastToken","string","Number","maxLength","webkitPerformance","msPerformance","mozPerformance","emailPattern","JWTTokenPattern","sasTokenPattern","MASK_CHAR","JWT_CHAR_OFFSET","mask","repeat","p1","p2","p3","sanitizeObject","dataString","zoneWrapperService","_activeTheme","removeThemeClass","addThemeClass","USER_SETTINGS","toUpperCase","USER_NOT_SIGNED_IN_AAD","USER_NOT_REGISTERED","USER_NOT_FOUND","USER_SUSPENDED","ANTI_FORGERY_TOKEN_VALIDATION_FAILED","OFFLINE","VIDEO_ALREADY_EXISTS","ACCOUNT_NOT_FOUND","QuotaViolation","EMPTY_INSIGHTS","Unauthorized","INVALID_PICTURE_SIZE","CUSTOM_VISION_MODEL_NOT_FOUND","CUSTOM_VISION_CHARACTER_NOT_FOUND","CUSTOM_VISION_MODELS_TRAIN_LIMIT_EXCEEDED","CUSTOM_VISION_MODEL_TRAIN_OPERATION_NOT_FOUND","TOO_MANY_SOURCE_VIDEOS","CUSTOM_VISION_ACCOUNT_NOT_FOUND","CUSTOM_VISION_UNSUPPORTED_LOCATION","INVALID_URL","CUSTOM_VISION_VIDEO_INDEXER_LOCATION_CORRELATION","CUSTOM_VISION_INVALID_TRAINING_KEY","CUSTOM_VISION_INVALID_PREDICTION_KEY","OPERATION_NOT_SUPPORTED_ON_TRIAL","VIDEO_NAME_TOO_LONG","INVALID_INVITEE_FRIENDLY_EMAIL_ADDRESS","LOCATION_NOT_FOUND","FACE_IDENTIFICATION_NOT_ALLOWED","FACE_CUSTOMIZATION_NOT_ENABLED","ServiceOutage","PartialOutage","ServiceRestored","DependencyOutageAzureMediaServices","DependencyOutageAzureKubernetesService","DependencyOutageAzureNetworking","DependencyOutageAzureStorage","DependencyOutageAzureCompute","ReleaseNotes","WelcomeMessage","FacialRecognition","InsightsErrorTypes_BREAKDOWN_NOT_FOUND","InsightsErrorTypes_VIDEO_REMOVED","InsightsErrorTypes_USER_NOT_ALLOWED","InsightsErrorTypes_EMPTY_INSIGHTS","InsightsErrorTypes_GENERAL","InsightsErrorTypes_USER_NOT_SIGNED_IN","ErrorTypes_INVALID_INPUT","ErrorTypes_USER_NOT_AUTHENTICATED","ErrorTypes_USER_NOT_SIGNED_IN","ErrorTypes_USER_NOT_SIGNED_IN_AAD","ErrorTypes_USER_NOT_REGISTERED","ErrorTypes_USER_NOT_ALLOWED","ErrorTypes_USER_NOT_FOUND","ErrorTypes_USER_SUSPENDED","ErrorTypes_ACCESS_TOKEN_VALIDATION_FAILED_Embed","ErrorTypes_ACCESS_TOKEN_VALIDATION_FAILED_Player","ErrorTypes_CUSTOM_INDEX_LOCATION_LOADING_ERROR","ErrorTypes_ANTI_FORGERY_TOKEN_VALIDATION_FAILED","ErrorTypes_VIDEO_UPLOAD_LIMIT_EXCEEDED","ErrorTypes_ACCOUNT_UPLOAD_QUOTA_EXCEEDED","ErrorTypes_BREAKDOWN_NOT_FOUND","ErrorTypes_NOT_FOUND","ErrorTypes_URL_UNREACHABLE","ErrorTypes_OFFLINE","ErrorTypes_ALREADY_EXISTS","ErrorTypes_WIKI_ALREADY_EXISTS","FacesCustomizationError_DeleteModel_ACCOUNT_NOT_FOUND","FacesCustomizationError_DeleteModel_NOT_FOUND","FacesCustomizationError_DeleteModel_GENERAL","FacesCustomizationError_EditModel_ACCOUNT_NOT_FOUND","FacesCustomizationError_EditModel_NOT_FOUND","FacesCustomizationError_EditModel_ALREADY_EXISTS","FacesCustomizationError_EditModel_INVALID_INPUT","FacesCustomizationError_EditModel_GENERAL","FacesCustomizationError_AddModel_GENERAL","FacesCustomizationError_AddModel_INVALID_INPUT","FacesCustomizationError_AddModel_ALREADY_EXISTS","FacesCustomizationError_AddModel_ACCOUNT_NOT_FOUND","FacesCustomizationError_AddModel_ACCOUNT_REACHED_PERSON_MODELS_QUOTA","FacesCustomizationError_GetPeople_NOT_FOUND","FacesCustomizationError_GetPeople_INVALID_INPUT","FacesCustomizationError_EditPeople_NOT_FOUND","FacesCustomizationError_EditPeople_INVALID_INPUT","FacesCustomizationError_DeletePeople_NOT_FOUND","FacesCustomizationError_AddPeople_NOT_FOUND","FacesCustomizationError_AddPeople_INVALID_INPUT","FacesCustomizationError_EditPeople_ALREADY_EXISTS","FacesCustomizationError_GetModel_ACCESS_TOKEN_VALIDATION_FAILED","FacesCustomizationError_GetPeople_ACCESS_TOKEN_VALIDATION_FAILED","FacesCustomizationError_EditFace_INVALID_INPUT","FacesCustomizationError_EditFace_NOT_FOUND","FacesCustomizationError_GetFace_NOT_FOUND","FacesCustomizationError_AddFace_NOT_FOUND","FacesCustomizationError_AddFace_INVALID_INPUT","FacesCustomizationError_AddFace_INVALID_PICTURE_SIZE","FacesCustomizationError_AddFace_INVALID_PICTURE","FacesCustomizationError_DeleteFace_NOT_FOUND","EditorError_SaveProject_TOO_MANY_SOURCE_VIDEOS","toastr","messageTimeout","errorPrefix","errorObj","ErrorEvent","ErrorResource","errorKey","timeOut","enableHtml","messageClass","disableTimeOut","addToasterAccessibility","inputElement","onEnterPress","defaultParams","appId","onEventSent","onEventDiscarded","telemetryInitializers","webAnalyticsConfiguration","autoCapture","pageView","scroll","onUnload","resize","onLoad","jsError","lineage","propertyConfiguration","populateOperatingSystemInfo","populateBrowserInfo","enableApplicationInsightsUser","enableApplicationInsightsTrace","dropIdentifiers","ApplicationInsights","EventType","OneDSClient","initialize","client","commonData","trackException","exception","severityLevel","Exception","extendedConfiguration","telemetryInitializer","addTelemetryInitializer","propertyManager","getPropertyManager","propertiesContext","getPropertiesContext","app","addNotificationListener","eventsSent","eventsDiscarded","getCookie","replaceJWTToken","_accountType","UNKNOWN","embedMode","isEmbedRoute","self","top","referrer","URLSearchParams","DEV","browserLang","_isAccountFaceGated","_isAmslessAccount","aiUserId","defaultUserId","aiCookie","effectiveType","OneDSEventType","activeRoute","sanitizerService","SERVICE_NAME","ONE_DS_APPLICATION_ID","setOnError","setCommonData","onedsClient","instrumentationKey","endpointUrl","collectorUrl","events","logEvent","serviceName","monitoringEnvironment","gpcDataSharingOptIn","performanceEventTelemetryInitializer","runtimeData","sessionFromCookie","amsless","faceGated","additionalProperties","restAdditionalProperties","cleanedData","context","Action","uri","Timing","measureTime","baseData","refUri","Performance","snapshot","appVersion","browserLanguage","embed","onerror","lineNumber","columnNumber","errorData","scriptUrl","currentError","urlParse","queryParam","getRouteParam","getParam","lazyLoadService","toggleSidebar","openSidebar","InjectionToken","onError","run","NgZone","VideoErrorType","UIEditorActionType","UIEditorFilterType","UITimelineContentLoadState","UITimelineScrollItemSelectState","UIProjectRenderStatus","BoundingBoxType","BoundingBoxPropMsgName","CommunicationService","changeLanguageSubject","jumpToSubject","timeUpdateSubject","refreshTracksSubject","pauseSubject","markSelectedPersonSubject","markSelectedFaceSubject","markSelectedDetectedObjectSubject","onPlayerPausedSubject","onFaceEditingSubject","jumpTo","isIframe","postMessage","markSelectedItem","bbType","propMsgName","BODY","PERSON_ID","FACE","FACE_ID","OBJECT","OBJECT_ID","refreshTracks","faceUpdated","face_updated_id","changeLanguage","languageObjToPlayer","renderVideoAndDownload","renderAndDownload","sortBy","uniqBy","difference","UIFaceType","IUITab","IUIInsightJsonKey","SpriteType","IUIInsightNoneJsonKey","InsightsCommonDataService","insightsImagesService","insightsService","tabs","preparedVideosData","personDataUpdate","facesDataChange","setVideoIndex","clearSummarizeInsights","setSummarizeInsights","videoID","peopleFaces","getSeenDurationRatio","getFacesByType","facesType","forcePrepareData","prepareFaces","filterByName","getJsonKeyType","updateFaceLoading","getFaceFromSummarize","spriteSize","customImagesLocation","getSpriteType","updateFaceName","samePersonName","referenceId","updatePersonNameData","updateDuplicateName","removeFace","getTabs","initTabs","customFilter","UIFaces","jsonKeyType","hasData","videoInsights","personAppearances","appearance","endSeconds","startSeconds","spriteIndex","appearances","referenceType","positionTiny","getSpritePosition","positionSmall","positionLarge","spriteUrl","highQuality","selectedStyle","timelineStyle","knownPersonId","PersonComponentAppearsDuration","personSeenDuration","appearTitle","getThumbStyle","removeDuplicateId","removeDuplicateName","sortByKnownAndSeenDuration","observedPeople","clapperboards","Clapperboards","colorBars","ColorBars","mergedFace","duplicateNamePeopleRemoved","personFromUniqArray","uniqPersonId","removedPeople","faceFromArray","currentPerson","iterator","personFromSummarize","nullReferencePeople","nonNullReferencePeople","CognitiveInsightsInsightsTabTitle","TIMELINE","Timeline","InsightsImagesService","InsightsService","random","pixelWidth","BING_SEARCH","InsightsSortedProperty","canvasElem","getContext","getBasePath","dataKey","logos","hasVideosData","isMultiLanguage","txt","fontSize","fontFamily","font","maxInput","ceil","getCalculatedFontFamily","computedStyle","getComputedStyle","getPropertyValue","measureTextSpacing","numSpaces","numLetters","measureWithTextSpacing","txtLength","unsubscribe","isEmptyID","thumbnailUrl","Deleting","resetPresets","firstLanguage","getDescriptionLink","selectedItem","getBingLink","itemName","generateComponentID","createInsightsArray","insightRef","hasInsightsData","convertInstancesToAppearances","getUIObservedClothing","clothing","observedClothing","clothingItem","propertyValue","getSortedItems","sortedBy","property","START_TIME","END_TIME","orderByMethod","order","NAME","removeDuplicates2","insightItemsMap","mergeInsightsWithInstances","uniqueKey","appearancesOrInstancesKey","appearancesOrInstances","KeyframeComponent","InsightsContentListComponent","CapsuleInputComponent","InsightsCommonService","HighlightPipe","BoldPipe","EmotionsMapComponent","fromEvent","distinctUntilChanged","UIPresetInsight","PresetInsightType","presetInsights","FramePatternType","customInsightsObj","presetInsightsObj","presetsObj","currentPresetsName","presetInsight","presetInsightsSubject","getPresetInsights","getPresets","getPresetsName","setPresetsName","newPreset","customInsights","customInsightsCount","onTimeChange","filterPresetInsights","insight","SlateDetection","hasColorBars","sentimentHasOnlyNeutralData","MATCHED_PERSON","isOPWithoutMatchedFaces","scenes","keyframes","matchedPerson","updatePresetInsightsState","presetInsightsType","removeCapsule","ob","KEYWORDS","BRANDS","LABELS","addCapsule","keyword","filterPresetInsightsForEditor","defaultInsightsForEditor","TRANSCRIPT","addPresetInsight","insightsForEditor","addNewPresetCustomInsights","presetList","uiPresetInsights","ranking","availableTabs","CUSTOM","currentPreset","tempPreset","setPreset","ins","pattern","patternType","COLOR_BARS","sentimentType","matchingFace","UIAddCapsuleMode","CapsuleInputAdding","CapsuleInputComponent_input_4_Template_input_mouseup_0_listener","handleInputClick","CapsuleInputComponent_input_4_Template_input_keyup_enter_0_listener","addCapsuleInput_r3","EnterText","addCapsuleMode","changeState","input","CLICKED","focusInput","stopPropagation","isExistingCapsule","ADDING","reset","focus","CapsuleInputComponent_Query","CapsuleInputComponent_Template_span_appAccessibleClick_0_listener","CapsuleInputComponent_Template_span_keyup_esc_0_listener","CapsuleInputComponent_span_2_Template","CapsuleInputComponent_span_3_Template","CapsuleInputComponent_input_4_Template","CapsuleInputAdd","InsightsShowingTimeline","DETECTED_OBJECT_WIDTH_TINY","DETECTED_OBJECT_WIDTH","DETECTED_OBJECT_WIDTH_LARGE","SPRITE_WIDTH","emotion_r1","className","showConfidence","EmotionsMapComponent_Template","EmotionsMapComponent_li_1_Template","ListKeyManager","InsightsContentListComponent_li_1_i_2_Template_i_appAccessibleClick_0_listener","InsightsContentListComponent_li_1_Template_li_appAccessibleClick_0_listener","selectItem","InsightsContentListComponent_li_1_i_2_Template","InsightsContentListComponent_li_1_ng_container_4_Template","getCapsuleId","timeline","customClass","getShowingInsightTimelineText","injectedInputTemplate","InsightsContentListComponent_div_2_Template_app_vi_insights_capsule_input_addCapsule_1_listener","handleAddCapsule","placeholderText","placeholderEnterText","InsightsContentListComponent_li_3_Template_li_mouseup_0_listener","toggleExpandMouse","InsightsContentListComponent_li_3_Template_li_keyup_enter_0_listener","toggleExpand","conf","overflowWidth","overflowSentence","overflowValue","dir","listLabel","enableAddNewItem","textFilter","toggleExpandList","initPlaceholderText","keyboardEventsManager","listItems","setFirstItemActive","BrandAddBrandAction","BrandsEnterBrand","KeywordAddKeyword","KeywordsEnterKeyword","LabelAddLabel","LabelsEnterLabel","bFromEnter","currentLength","currentObj","currentArray","listItmes","trackByIndex","contentQueries","InsightsContentListComponent_ContentQueries","dirIndex","InsightsContentListComponent_li_1_Template","InsightsContentListComponent_div_2_Template","InsightsContentListComponent_li_3_Template","expanded","ShowMore","KeywordRemoveTitle","KeyframeComponent_app_vi_notification_tooltip_4_Template_app_vi_notification_tooltip_escPressed_0_listener","showTooltip","keyframeRef","keyframe","hasTooltip","isActiveSelection","roleType","isVideoThumbnail","keyframeStart","keyframeEnd","selectKf","kf","isInCurrentTimeFrame","currentStartTimeFrame","currentEndTimeFrame","KeyframeComponent_Query","KeyframeComponent_Template_div_contentOnHover_0_listener","KeyframeComponent_Template_div_appAccessibleClick_1_listener","KeyframeComponent_app_vi_notification_tooltip_4_Template","KeyframeProfilePictureLabel","WidgetsParamOption","ControlsParamOption","UIInsightType","IUIPostProductionInsights","InsightErrorIcon","UIStripType","PresetRanking","SpriteSize","SortableInsightsComponents","InsightsSortedOrder","REGULAR","DETECTED_OBJECTS","detectedObjects","NAMED_ENTITIES","ACOUSTIC_EVENTS","EMOTIONS","SENTIMENTS","KEYFRAMES","shots","TOPICS","SCENES","SPEAKERS","speakers","OCR","ocr","SPOKEN_LANGUAGE","spokenLanguage","OBSERVED_PEOPLE","POST_PRODUCTION","postProduction","LOGOS","communicationService","tabChangeSubject","sceneChangeSubject","initWidgetData","initCustomWidgetData","showFaceGateError","parseCustomDataItem","customDataItem","insightType","displayType","getKeyframesSpriteUrl","KeyFrames","saveFace","newName","paramsArg","deleteFacesApiArgs","keyframeThumbnailId","getContainerWidthAsync","w","getBoundingClientRect","getContainerHeightAsync","h","getCaptionUrl","format","getMetadataUrlAsync","getMetadataAsync","updateVideoIndexSucceed","assignNewSpeaker","setInsightsFilterValue","zeroPad","DetectedObjectsStore","ZERO_PAD_PLACES","selectedAll$","mediaDetails","detectedObjectsGroupsMap","objectAppearances","object","displayClassName","DetectedObjects","texts","pictureTitle","DetectedObjectsComponentPictureLabel","objects","detectedObjectsGroups","MediaCommonEffects","mediaCommonService","updateVideoIndex$","selectIndexLanguage","refreshData","videoIndexUpdated","handelError","assignNewSpeaker$","addSpeakerAction","updateTranscriptLineAction","newSpeakerName","newAction","updateVideoIndexSucceed$","handelSuccess","MediaCommonService","mediaFeatureKey","selectIndexId","selectedIndexId","insightsFilterValue","mediaReducer","faceElement","transcriptElement","ocrElement","selectIndexIds","selectIndexEntities","selectAllIndexes","selectIndexTotal","media","selectMediaState","getMediaIndexState","selectedMediaIndexId","selectedMediaIndexSpeakers","selectedMediaInsightsLogos","selectMediaIndexDuration","indexes","selectedId","mediaName","createTimeFormated","isEditable","isNoStreaming","selectInsightsFilterValue","selectFilteredLogos","mappedLogos","matchedValue","publishedUrl","selectedIndexSpeakers","selectedLogos","selectFilteredLogos$","videoIndexUpdate$","videoIndexUpdateError$","videoIndexUpdateSuccess$","videoIndexTranscriptLineUpdateError$","videoIndexTranscriptLineUpdateSuccess$","successMessage","transcriptLineId","captionsConfigurationOptions","BoundingBoxOptionType","bodyTrackingButtonComponent","DOWNLOAD","isButtonAction","PRESETS","hasPressedMode","VIResourceMarketplaceId","PortalCreateVIDevAccountFlag","getCreateAccountPortalUrl","portalPrefix","createDevEnv","LastArmAccount","mainActionIcon","Preview","ActionButtonComponent_div_7_div_2_Template","ActionButtonComponent_div_7_img_3_Template","ActionButtonComponent","hasOpenerIcon","minWidth","sizeClass","internal","hasNotificationTooltip","whiteFocus","responsiveState","focusOnInit","actionClick","mouseOver","mouseLeave","focusIn","uid","selectAction","handleMouseOver","handleMouseLeave","handleFocusIn","isUIActionType","actionType","ActionButtonComponent_Query","ActionButtonComponent_Template_button_appAccessibleClick_0_listener","ActionButtonComponent_Template_button_mouseover_0_listener","ActionButtonComponent_Template_button_mouseleave_0_listener","ActionButtonComponent_Template_button_focusin_0_listener","ActionButtonComponent_i_2_Template","ActionButtonComponent_i_3_Template","ActionButtonComponent_span_4_Template","ActionButtonComponent_i_5_Template","ActionButtonComponent_span_6_Template","ActionButtonComponent_div_7_Template","ɵɵprojection","ɵɵclassMapInterpolate4","ɵɵpureFunction6","SPINNER","preview","ActionLinkComponent","responsive","ActionLinkComponent_Template","ActionLinkComponent_i_1_Template","ActionLinkComponent_span_2_Template","ActionableInputComponent_i_2_Template_i_appAccessibleClick_0_listener","acInput_r2","handleEnter","ActionableInputComponent_i_2_Template_i_focus_0_listener","ActionableInputComponent_i_2_Template_i_focusout_0_listener","ActionableInputComponent","focusManagerService","elementRef","alwaysUnderlineOnEdit","ignoreClickWhenDisabled","addApproveAndLoading","autoSaveOn","discardOnEsc","focusOnEnable","isBold","calcFontFamilyWidth","calcTextSpacing","inputType","enter","esc","emptyInput","inputChanged","inputChangedData","valueChanged","isSaved","BORDER_SPACING","fixedWidth","updateWidth","handleEnterKeyDown","inputBox","validateInput","discard","handleEsc","onBlur","currentInputValue","isHandleBlur","valueChange","textWidth","min","blur","textSpacing","totalWidth","ActionableInputComponent_Query","ActionableInputComponent_Template_input_keydown_enter_0_listener","ActionableInputComponent_Template_input_keyup_enter_0_listener","ActionableInputComponent_Template_input_keyup_esc_0_listener","ActionableInputComponent_Template_input_input_0_listener","ActionableInputComponent_Template_input_blur_0_listener","ActionableInputComponent_i_2_Template","ActionableInputComponent_app_vi_spinner_3_Template","ɵɵclassMapInterpolate2","ActionableInputSaveChanges","ActionsMenuComponent_app_vi_notification_tooltip_4_Template_app_vi_notification_tooltip_escPressed_0_listener","mainButton","generateTooltipText","action_r6","ActionsMenuComponent_div_5_li_6_Template_li_keyup_arrowdown_0_listener","i_r5","handleArrowNav","calcIndex","ActionsMenuComponent_div_5_li_6_Template_li_keyup_arrowup_0_listener","ActionsMenuComponent_div_5_li_6_Template_li_appAccessibleClick_0_listener","selectSubAction","ActionsMenuComponent_div_5_li_6_i_3_Template","_c6","separated","_c7","ActionsMenuComponent_div_5_li_6_Template","actionList","subMenuWidth","minDropDownWidth","menuId","ActionsMenuComponent","commonUtilsService","containerWidth","buttonWidth","subMenuPadding","defaultCSS","openRightClass","changeTextOnSelect","defaultValue","tooltipStatusType","calcWidth","updateDropdownLocation","openSubMenuDown","mouseOverActionButton","mouseLeaveActionButton","focusInActionButton","isActionClick","documentClickBound","calcDropDownWidth","calcMaxTextWidth","applyDirection","dropdownMenu","getContainerRectAsync","elementRect","dropdownRect","totalDropdownHeight","bottom","bottomOffset","abs","right","removeClass","dropdownContainer","setStyle","firstChange","actionListItem","onEscHandler","bindToDocumentClick","handleFocusInActionButton","TooltipStatus","statusType","currentStatus","unbindToDocumentClick","documentClickHandlerRef","documentClickHandler","dropdownTextsWidth","mainActionWidth","ActionsMenuComponent_Query","ActionsMenuComponent_Template_div_toggleFunc_0_listener","ActionsMenuComponent_Template_div_keyup_esc_0_listener","ActionsMenuComponent_Template_div_contentOnHover_1_listener","ActionsMenuComponent_Template_app_vi_action_button_actionClick_2_listener","ActionsMenuComponent_Template_app_vi_action_button_focusIn_2_listener","ActionsMenuComponent_app_vi_notification_tooltip_4_Template","ActionsMenuComponent_div_5_Template","contentTitle","AlertMessageComponent_a_8_Template_a_appAccessibleClick_0_listener","linkPath","AlertMessageComponent","isContentHtml","AlertMessageComponent_Template","AlertMessageComponent_i_2_Template","AlertMessageComponent_i_3_Template","AlertMessageComponent_i_4_Template","AlertMessageComponent_span_6_Template","AlertMessageComponent_span_7_Template","AlertMessageComponent_a_8_Template","CheckBoxActionMenuSize","CheckBoxActionMenuComponent_ng_container_3_li_3_Template_input_change_3_listener","ins_r2","handleChange","CheckBoxActionMenuComponent_ng_container_3_li_3_Template_input_ngModelChange_3_listener","GROUP","ɵɵpropertyInterpolate2","i_r4","CheckBoxActionMenuComponent_ng_container_3_li_3_Template","CheckBoxActionMenuComponent","labelForId","MAIN_ACTION_MENU","Large","selectedActionsChange","isActionButtonClick","isCheckboxClick","clearTimeout","collapse","placeholderAction","initActions","setValue","resetSelectedActions","isEmptySelectedActions","updateSelectionByGroup","selectedActions","toggleDropdown","actionsGroup","groupCounter","actionsInGroup","isGroupSelected","every","groupAction","currentGroup","ariaLabelledBy","CheckBoxActionMenuComponent_Template","CheckBoxActionMenuComponent_Template_app_vi_action_button_actionClick_2_listener","CheckBoxActionMenuComponent_ng_container_3_Template","CheckBoxActionMenuExtendedType","CheckboxWithLabelComponent","labelSize","checkedChange","toggleCheckbox","CheckboxWithLabelComponent_Template","CheckboxWithLabelComponent_Template_input_change_2_listener","trimEnd","infoTitle","DescriptionComponent_div_0_span_6_Template_a_appAccessibleClick_1_listener","toggleShowDescription","descriptionID","showButtonText","showDescription","ReadMore","DescriptionComponent_div_0_div_8_a_6_Template","hasLink","getItemDescriptions","DescriptionComponent_div_0_h5_5_Template","DescriptionComponent_div_0_span_6_Template","DescriptionComponent_div_0_div_8_Template","showName","DescriptionComponent","additionalHeight","disableEllipsis","MIN_HEIGHT","LINE_HEIGHT","PADDING","FONT_SIZE","ShowDescription","changeHeight","DescriptionBioExpanded","DescriptionCollapsed","showMoreContainer","showMoreHeight","textContainer","textContainerWidth","DescriptionComponent_Query","DescriptionComponent_div_0_Template","MAT_DIALOG_DATA","titleIcon","DialogComponent_h1_5_i_1_Template","DialogComponent_app_vi_action_button_6_Template_app_vi_action_button_actionClick_0_listener","subtitle","disclaimer","DialogComponent_div_12_app_vi_action_button_3_Template_app_vi_action_button_actionClick_0_listener","handleClick","disableClickClose","DialogComponent_div_12_app_vi_action_button_4_Template_app_vi_action_button_actionClick_0_listener","DialogComponent_div_12_div_1_Template","DialogComponent_div_12_app_vi_action_button_3_Template","DialogComponent_div_12_app_vi_action_button_4_Template","updateInjectedComponentDataFunc","updateInjectedComponentData","updateInjectedEventDataFunc","updateEventData","loadHeaderComponent","vcRef","headerComponentRef","vcHeaderRef","headerComponentData","disableAutoClose","updatePrimaryButtonState","updateSecondaryButtonState","isUpdateAction","isUpdatePrimaryButtonState","isUpdateSecondaryButtonState","destroy","MatDialogRef","DialogComponent_Query","DialogComponent_ng_template_3_Template","DialogComponent_h1_5_Template","DialogComponent_app_vi_action_button_6_Template","DialogComponent_p_7_Template","DialogComponent_div_9_Template","DialogComponent_ng_template_10_Template","DialogComponent_div_12_Template","liveAnnounce","MOBILE_FULL_SCREEN","DYNAMIC_HEIGHT_CLASS","sb","pb","isDynamicHeight","isMobileFullScreen","panelClasses","addMobileFullScreenOverlay","announceMessage","openDialogs","closeAll","overlay","DownloadCaptionType","UIDownloadActionType","downloadAction","downloadCaptionsOptions","SRT","CLOSED_CAPTIONS","VTT","TTML","TXT","CSV","downloadJsonAction","downloadArtifactAction","ARTIFACTS_ZIP","downloadVideoAction","downloadRenderedProjectAction","PROJECT_RENDERED_VIDEO","closedCaptionAction","downloadOptionsWithClosedCaptionOption","downloadOptionsWithClosedCaptionList","downloadOptionsForEdgeVideo","formatFilterAction","DownloadClosedCaptionsComponent_div_4_Template_input_change_2_listener","includeAudioEffects","IncludeAudioEffects","DownloadClosedCaptionsComponent_div_5_Template_input_change_2_listener","includeSpeakers","DownloadClosedCaptionsComponent","formatSelectId","selectedFormat","onDownloadClicked","outputData","trackAction","onCancelClicked","trackData","DownloadClosedCaptionsComponent_Template","DownloadClosedCaptionsComponent_Template_vi_fluent_ui_select_selectedActionChange_3_listener","DownloadClosedCaptionsComponent_div_4_Template","DownloadClosedCaptionsComponent_div_5_Template","DownloadClosedCaptionsComponent_Template_app_vi_action_button_actionClick_7_listener","DownloadClosedCaptionsComponent_Template_app_vi_action_button_actionClick_8_listener","showIncludeAudioEffects","showIncludeSpeakers","prefixId","SelectFormat","Download","DownloadWidgetsName","DownloadMenuComponent_app_actions_menu_0_Template_app_actions_menu_actionChange_0_listener","downloadOptions","alignTo","DownloadMenuComponent","langKey","widgetName","renderState","initDownloadOptions","onSelectAction","videoData","downloadedLang","captionsOptions","actionId","downloadOptionsToCheck","DownloadMenuComponent_Template","DownloadMenuComponent_app_actions_menu_0_Template","Cacheable","formatFileName","downloadMenuId","downloadJson","openClosedCaptionsDialog","downloadCaption","downloadVideo","downloadArtifactZip","downloadRenderedProject","encodeUtf8","UTF8_BOM_ENCODING","createFakeLinkAndClick","download","tempLink","getJsonUrl","getCaptionAsync","getArtifactsZipAsync","jsonURL","DownloadClosedCaptions","getDownloadFileErrorText","DownloadFileFailed","zip","renderFileObj","downloadUrl","__decorate","DownloadOptionsJSON","DownloadOptionsSRT","DownloadOptionsVTT","DownloadOptionsTTML","DownloadOptionsTXT","DownloadOptionsCSV","DownloadOptionsDownloadArtifacts","DownloadOptionsVideo","DownloadOptionsRenderedProject","DynamicTooltipComponent","showTooltipDown","tooltipTransform","DynamicTooltipComponent_Template","NO_ACCESS_SVG","EmptyStateComponent","shouldShowIcon","svgIcon","iconHeight","iconWidth","EmptyStateComponent_Template","EmptyStateComponent_div_1_Template","EmptyStateComponent_div_4_Template","EmptyStateComponent_vi_ui_link_5_Template","ExpandedItemComponent","ngContentSelectors","ExpandedItemComponent_Template","ExpandedItemComponent_Template_button_appAccessibleClick_2_listener","ExpandedItemComponent_div_11_Template","FilterButtonComponent","showIcon","filterClick","expandedTxt","collapsedTxt","buttonId","FilterButtonComponent_Template","FilterButtonComponent_Template_button_click_0_listener","FilterButtonComponent_Template_button_keydown_enter_0_listener","FilterButtonComponent_i_1_Template","SelectComponentSize","searchbarPlaceholder","searchInputId","initValue","FilterItemComponent_vi_fluent_ui_select_5_Template_vi_fluent_ui_select_selectedActionChange_0_listener","handleFilterTextChange","getSubActionID","FilterItemComponent","isfullWidth","widthPercent","searchbarService","associatedLabel","disableAddButton","disableRemoveButton","addItem","filterTextChange","filterActions","selectedActionValue","filterItem","initFilterActions","initPlaceholderAction","selFilterAction","includeExcludeOptions","selIncludeExcludeOption","setFilterSubjectSubscription","includeExcludeOptionsId","filterActionsId","searchBarForTextFilter","setInput","handleSelectFilterAction","selFilterIssue","filterIssue","resetInput","getPlaceholderAction","getIsSearchable","handleSelectIncludeExcludeOption","selectedActionText","actionFilterHasSubActions","subActions","onFilter","searchEvent","SearchbarService","FilterItemComponent_Query","FilterItemComponent_Template_vi_fluent_ui_select_selectedActionChange_2_listener","FilterItemComponent_app_vi_searchbar_4_Template","FilterItemComponent_vi_fluent_ui_select_5_Template","FilterItemComponent_Template_i_appAccessibleClick_7_listener","FilterItemComponent_Template_i_appAccessibleClick_8_listener","EditorFilterItemRemoveTitle","EditorFilterItemAddTitle","provideFluentDesignSystem","fluentSelect","fluentOption","selectStyles","OptionStyles","SelectPosition","css","indicatorSvg","viOptionStyle","viSelectStyle","SelectComponentAppearance","SelectComponentIndicatorSize","isIconOnly","iconOnlyTemplate_r3","iconAndTextTemplate_r4","FluentUiSelectComponent_fluent_option_6_i_1_Template","item_r5","isGroup","FluentUiSelectComponent_ng_template_7_Template_i_contentOnHover_0_listener","handleOnHover","FluentUiSelectComponent_ng_template_9_Template_i_contentOnHover_0_listener","FluentUiSelectComponent","below","Outline","Medium","indicatorSize","placeholderAsFirstAction","selectedActionChange","hovered","menuOpen","register","indicator","styles","def","createGroupActions","listboxState$","attributeFilter","change","previousValue","handleOnChange","detail","_selectedIndex","groupItem","FluentUiSelectComponent_Query","FluentUiSelectComponent_Template_fluent_select_change_0_listener","FluentUiSelectComponent_ng_container_2_Template","FluentUiSelectComponent_Template_div_contentOnHover_3_listener","FluentUiSelectComponent_fluent_option_6_Template","FluentUiSelectComponent_ng_template_7_Template","FluentUiSelectComponent_ng_template_9_Template","ɵɵclassMapInterpolate3","EmbedFooterComponent","year","setPoweredByText","poweredByResources","InsightsWidgetPoweredBy","InsightsWidgetPoweredByFF","EmbedFooterComponent_Template","UIImageShapeType","listPictureItems","stretchNotification","InsightsImagesComponent_div_1_Template_picture_appAccessibleClick_1_listener","entity_r2","selectEntity","InsightsImagesComponent_div_1_Template_picture_contentOnHover_1_listener","showEntityTooltip","InsightsImagesComponent_div_1_Template_picture_focus_1_listener","InsightsImagesComponent_div_1_Template_picture_focusout_1_listener","InsightsImagesComponent_div_1_app_vi_notification_tooltip_4_Template","getShowingEntityProfileText","InsightsImagesComponent_div_2_Template_div_mouseup_1_listener","toggleWidgetMouse","InsightsImagesComponent_div_2_Template_div_keyup_enter_1_listener","toggleWidget","overflow","InsightsImagesComponent","imageShapeClass","ROUND","hover","bKeyboardEvent","PeopleShowingPersonProfile","InsightsImagesComponent_Query","InsightsImagesComponent_div_1_Template","InsightsImagesComponent_div_2_Template","imageSize","positionSize","backgroundImage","backgroundPosition","FacePileProfilePictureLabel","FacePileProfilePictureTitle","acceptAction","dismissAction","useCaseMenuAction","DROPDOWN","useCaseOptions","AZURE_LEGAL_TERMS","CUSTOMER_SOLUTION","lIMITED_ACCESS_SERVICES_TERMS","ONLINE_SERVICES_DPA","REPORT_SENSITIVE_USE","RESTRICTION_ON_US_POLICE","VI_LIMITED_ACCESS_FEATURES_DOC","InternalFaceGateFormComponent_app_vi_check_box_action_menu_11_Template_app_vi_check_box_action_menu_selectedActionsChange_0_listener","onSelectUseCases","selectedUseCaseAction","showEmailError","toggleConfirmTerms","onEmailInputValueChanged","startsWith","onEmailInputFocusout","acceptBtnDisabled","selectedUseCases","onClickAccept","eventData","emitEvent","onClickDismiss","arrToString","faceGateLinksVariables","FaceGateTermsOfUseLink","FaceGateCustomerSolutionLink","FaceGateLimitedAccessServicesTermsLink","FaceGateRestrictionsOnUSPoliceUseLink","FaceGateOnlineServicesDPALink","FaceGateSensitiveUseCaseLink","FaceGateVILimitedAccessFeaturesDocLink","InternalFaceGateFormComponent_Template","InternalFaceGateFormComponent_app_vi_check_box_action_menu_11_Template","InternalFaceGateFormComponent_Template_vi_checkbox_with_label_checkedChange_16_listener","InternalFaceGateFormComponent_Template_input_ngModelChange_20_listener","InternalFaceGateFormComponent_Template_input_focusout_20_listener","InternalFaceGateFormComponent_Template_input_input_20_listener","InternalFaceGateFormComponent_Template_app_vi_action_button_actionClick_24_listener","InternalFaceGateFormComponent_Template_app_vi_action_button_actionClick_25_listener","FaceGatePopupDescription","AccountName","SelectAUseCase","FaceGatePopupSensitiveUseCase","TermsOfUse","FaceGatePopupTermsOfUse","FaceGatePopupAgreement","FaceGatePopupAgreementTitle","TypeYourEmailAddressFoAddedSecurity","TypeYourEmailAddress","FaceGatePopupEmailDoesNotMatch","Dismiss","IdentityVerification","TouchlessAccessControl","Personalization","DetectDuplicateOrBlockedUsers","FaceInMediaOrEntertainmentVideo","CelebrityRecognition","DemoUse","NotificationTooltipComponent_i_1_Template_i_appAccessibleClick_0_listener","dismiss","NotificationTooltipComponent_div_3_Template_input_change_2_listener","selectCheckbox","NotificationTooltipComponent_div_3_Template_input_ngModelChange_2_listener","checkboxSelected","checkboxText","NotificationTooltipComponent","hasExitButton","addOverlay","hasCheckbox","addAnimation","stretch","direction","centerArrow","tooltipClass","showArrow","showNotificationDown","ignoreApplyDirection","notificationDismiss","selectCheckboxOutput","escPressed","startAnimation","animationDuration","onKeyupHandler","animationTimeout","dismissTimeout","initNotification","tooltipElement","locateRightDirectionTooltip","locateLeftDirectionTooltip","topStyle","checkboxTextElementId","checkboxTextId","tooltipRect","leftLocation","applyCenterArrow","changeDirection","newDirection","applyLeftDirection","leftStyle","left","targetElement","tooltipTargetGap","offsetWidth","arrowPadding","arrowWidth","arrowCenter","targetCenter","shiftDirection","NotificationTooltipComponent_HostBindings","NotificationTooltipComponent_keydown_escape_HostBindingHandler","ɵɵresolveDocument","rightStyle","ɵɵclassProp","NotificationTooltipComponent_i_1_Template","NotificationTooltipComponent_span_2_Template","NotificationTooltipComponent_div_3_Template","NotificationTooltipComponent_div_5_Template","PersonaComponent","getStyle","personsUrl","personaId","personaStyle","PersonaComponent_Template","PresetsComponent_app_vi_notification_tooltip_4_Template_app_vi_notification_tooltip_notificationDismiss_0_listener","hideTooltip","presetButton","tooltipNotificationTextOnTabChange","PresetsComponent_app_vi_notification_tooltip_5_Template_app_vi_notification_tooltip_escPressed_0_listener","PresetsComponent_div_6_ng_container_4_li_1_Template_li_mousedown_0_listener","PresetsComponent_div_6_ng_container_4_li_1_Template_input_keyup_arrowleft_3_listener","onCustomInsightArrow","PresetsComponent_div_6_ng_container_4_li_1_Template_input_change_3_listener","ins_r7","selectPresetInsight","PresetsComponent_div_6_ng_container_4_li_1_Template_input_ngModelChange_3_listener","ɵɵattributeInterpolate2","PresetCustomViewTitle","PRESET_ID_PREFIX","PresetsComponent_div_6_ng_container_4_li_1_Template","PresetsComponent_div_6_Template_div_mouseleave_0_listener","onCustomInsightContainerOut","PresetsComponent_div_6_ng_container_4_Template","PresetsComponent_div_7_li_7_Template_li_appAccessibleClick_0_listener","preset_r10","UseScenarioLabel","OPTION_ID_SUFFIX","PresetsComponent_div_7_div_12_Template_li_keyup_arrowleft_1_listener","PresetsComponent_div_7_div_12_Template_li_keyup_arrowright_1_listener","PresetsComponent_div_7_div_12_Template_li_mousedown_1_listener","PresetsComponent_div_7_div_12_Template_li_mouseover_1_listener","onCustomInsightHover","PresetsComponent_div_7_div_12_Template_li_mouseleave_1_listener","LabelCustomInsightsPresetButton","PresetsComponent_div_7_ng_container_13_li_1_Template_li_mousedown_0_listener","PresetsComponent_div_7_ng_container_13_li_1_Template_input_change_3_listener","ins_r13","PresetsComponent_div_7_ng_container_13_li_1_Template_input_ngModelChange_3_listener","PresetsComponent_div_7_ng_container_13_li_1_Template","isCustomPresetsListEnabled","PresetsComponent_div_7_Template_div_scroll_0_listener","customInsightsExpanded","PresetsComponent_div_7_Template_ul_keyup_arrowDown_5_listener","handleArrowDown","PresetsComponent_div_7_Template_ul_keyup_arrowUp_5_listener","handleArrowUp","PresetsComponent_div_7_li_7_Template","PresetsComponent_div_7_div_12_Template","PresetsComponent_div_7_ng_container_13_Template","PresetsComponent","commonInsights","presetInsightChange","widthCalculated","MENU_ID","dropDownWidth","showTabTooltip","tabPressedMap","PRESET_BUTTON_HEIGHT","PRESETS_TITLE","MIN_AMOUNT_SHOW_CUSTOM_INSIGHTS","initConfigurations","PRESET","convertPresetToString","customInsightsPresetsButton","placeCustomInsightsMenu","focusOnTarget","customInsightsPresetsContainer","handleActionButtonClick","prev","previousElementSibling","presetsContainer","lastElementChild","nextElementSibling","firstElementChild","handleEscClick","View","ActionBarPresetChangeNotification","getActionButtonWidth","widgetParam","initTabTooltip","isTooltipShown","onTabChange","newTab","insightsPresetsContainer","scrollTop","clientRect","PresetsComponent_Query","PresetsComponent_Template_div_toggleFunc_0_listener","PresetsComponent_Template_div_keyup_esc_0_listener","PresetsComponent_Template_div_contentOnHover_1_listener","PresetsComponent_Template_app_vi_action_button_actionClick_2_listener","PresetsComponent_Template_app_vi_action_button_focusIn_2_listener","PresetsComponent_app_vi_notification_tooltip_4_Template","PresetsComponent_app_vi_notification_tooltip_5_Template","PresetsComponent_div_6_Template","PresetsComponent_div_7_Template","buttonType","Presets","RoleBasedViewControlWrapperComponent","currentPermission","SHOW","exact","viewControlChanged","shouldRender","fallbackPermission","handleRoleChanged","isViewable","isValidPermission","RoleBasedViewControlWrapperComponent_Template","RoleBasedViewControlWrapperComponent_ng_container_0_Template","CognitiveInsightsSearch","SearchCompleted","SearchbarComponent_div_6_Template_div_appAccessibleClick_1_listener","statusClicked","isStatusClickable","SearchbarComponent","initialSearchValue","statusChanged","focusSearch","isFocused","setSearchSubscription","isFocusout","addFocusoutSubscriptions","lastFilter","updateSearchEvent","handleSearchEvent","onSearchType","isFocus","onSearchTypeFocusout","SearchbarComponent_HostBindings","SearchbarComponent_Template_input_focus_5_listener","SearchbarComponent_Template_input_focusout_5_listener","SearchbarComponent_div_6_Template","searchEvents","filterSubject","srchEvent","srch","ISortState","directionActions","SORT","Ascending","Descending","sortAction","SortButton","SortOptionDescending","SortOptionAscending","column_r5","SortMenuComponent_div_4_li_4_Template_li_appAccessibleClick_0_listener","selectColumn","SortMenuComponent_div_4_li_4_i_2_Template","direction_r7","SortMenuComponent_div_4_li_8_Template_li_appAccessibleClick_0_listener","selectDirection","SortMenuComponent_div_4_li_8_i_2_Template","SortMenuComponent_div_4_Template_ul_keyup_arrowDown_2_listener","SortMenuComponent_div_4_Template_ul_keyup_arrowUp_2_listener","SortMenuComponent_div_4_li_4_Template","SortMenuComponent_div_4_Template_ul_keyup_arrowDown_6_listener","SortMenuComponent_div_4_Template_ul_keyup_arrowUp_6_listener","SortMenuComponent_div_4_li_8_Template","columns","directions","SortMenuComponent","selectedColumn","selectedDirection","setSelectedActions","column","columnsContainer","SortMenuComponent_Query","SortMenuComponent_Template_div_toggleFunc_0_listener","SortMenuComponent_Template_div_keyup_esc_0_listener","SortMenuComponent_Template_div_contentOnHover_1_listener","SortMenuComponent_Template_app_vi_action_button_actionClick_2_listener","SortMenuComponent_Template_app_vi_action_button_focusIn_2_listener","SortMenuComponent_div_4_Template","Loading","SpinnerComponent","invert","isSecondary","SpinnerComponent_Template","SpinnerComponent_div_6_Template","CloseIconLabel","removeHtmlTags","StripComponent_app_vi_action_button_6_Template_app_vi_action_button_actionClick_0_listener","handleActionClick","StripComponent_i_7_Template_i_appAccessibleClick_0_listener","StripComponent","isAlert","truncate","closeClick","linkClick","textUpdated","safeText","ngAfterViewChecked","bindClickEvent","links","handleLinkClick","enterLink","StripComponent_Template","StripComponent_app_vi_spinner_1_Template","StripComponent_i_3_Template","StripComponent_div_5_Template","StripComponent_app_vi_action_button_6_Template","StripComponent_i_7_Template","dataWithId","InsightsTablistLabel","TablistComponent_li_1_Template_button_appAccessibleClick_1_listener","tab_r2","TablistComponent_li_1_span_3_Template","styleClass","getId","isTruncate","TablistComponent","TablistComponent_Template","TablistComponent_li_1_Template","DebounceDirective","debounceDueTime","debounceEventNames","debounceEvent","eventsSubject","debounceValue","addListen","subscription","listen","DynamicTooltipDirective","viewContainerRef","moveMouseHandler","mouseEvent","mouseOffset","tooltipWidth","tooltipTop","clientY","clientX","dynamicTooltipCompRef","createTooltipComponent","removeTooltipComponent","rect","ElementResizeDirective","elementResizeListener","heightChanged","widthChanged","sizeChanged","offsetHeight","onInput","isHeightChanged","isWidthChanged","HighlightDirective","_content","searchTerm","_searchTerm","highlight","separatedText","separatedSearchedText","final","splitFlag","matchFlag","spanStart","spanEnd","caseSensitive","searchPattern","matchPattern","innerText","ImageFallbackDirective","srcElement","fallbackSrc","ImageFallbackDirective_HostBindings","ImageFallbackDirective_error_HostBindingHandler","ImageIconFallbackDirective","fallbackIconRadius","originImgDisplay","wrapperClassName","fallbackIconClass","parentElement","fallbackElement","createFallbackElement","ImageIconFallbackDirective_HostBindings","ImageIconFallbackDirective_load_HostBindingHandler","ImageIconFallbackDirective_error_HostBindingHandler","ShowIfAmslessDirective","templateRef","viewContainer","showIfAmsless","hideIfAmsless","hideElement","showElement","createEmbeddedView","TemplateRef","ShowIfEdgeDirective","edgeExtensionsService","showIfEdge","hideIfEdge","ShowIfHasEdgeExtensionsDirective","updateRef","StopPropagationDirective","stopPropagationActive","onStopPropagation","StopPropagationDirective_HostBindings","StopPropagationDirective_click_HostBindingHandler","StopPropagationDirective_mouseup_HostBindingHandler","StopPropagationDirective_keyup_HostBindingHandler","TextReadMoreDirective","linkStyling","fontWeight","lineHeight","color","readMoreClicked","readMoreText","maxChars","ellipsis","truncatedLength","setReadMoreLink","truncateElement","readMoreLink","showFullText","ActionButtonResponsiveStatesClass","ActionableInputResponsiveStatesClass","TextDirection","TranslationJobState","MEDIA_STREAMING_PRESET","CONNECT_TO_AZURE_DOCUMENTATION","VIDEO_INDEXER_ACCOUNT_TYPES","REPAIR_ACCOUNT_LINK","INCREASE_RESERVED_UNITS","VI_DEV_SUPPORT","VI_SWITCH_DIRECTORY_LEARN_MORE","CUSTOMIZATION_PEOPLE_LINK","LANGUAGE_CUSTOMIZATION_DOCUMENTATION","CUSTOMIZATION_VISION_LINK","CUSTOMIZATION_VISION_FF_LINK","CUSTOMIZE_PEOPLE_MODEL","SPEECH_DATASET_PLAIN_TEXT","SPEECH_DATASET_PRONUNCIATION","US_GOV_ONBOARDING","LINKEDIN_FACEBOOK_DEPRECATION_NOTE_LINK","PAID_SERVICE_AGREEMENT","TRIAL_SERVICE_AGREEMENT","US_PORTAL","PORTAL","FF_SUPPORT","PAID_SUPPORT","TRIAL_SUPPORT","VIDEO_INDEXER","VIDEO_INDEXER_FF","VIDEO_INDEXER_LANDING_PAGE","VIDEO_INSIGHTS_OVERVIEW","FACE_GATE_DOC","AMS_RETIREMENT_ACCOUNT_UPGRADE","AMS_RETIREMENT_ACCOUNT_UPDATE","MANAGE_ACCOUNT_ACCESS","TEXTUAL_SUMMARY_DEPLOYMENTS","TEXTUAL_SUMMARY_FLAVORS","TEXTUAL_SUMMARY_FILTERED_CONTENT","TEXTUAL_SUMMARY_KEYFRAMES","TEXTUAL_SUMMARY_SURVEY_LIKE","TEXTUAL_SUMMARY_SURVEY_DISLIKE","TEXTUAL_SUMMARY_KEYFRAMES_GPU","LIVE_MODEL_CATALOG_LEARN_MORE","ImageSrcPipe","httpClient","loadImage","imageObj","getImageUrl","observer","readAsDataURL","pure","JsonPrettifyPipe","capitalizeWithNumericPrefix","NumericPrefixTitleCasePipe","TitleCasePipe","first","toLocaleUpperCase","HttpErrorResponse","HttpStatusCode","timer","formatToStandardTime","videoSearchOptions","insightsCommonDataService","keyframesByVideoId","MIN_SUPPORT_RESPONSIVE_WIDTH","TRANSLATION_JOB_POLLING_INTERVAL","TRANSLATION_JOB_POLLING_TIMEOUT","customIndexLocation","includedInsights","getVideoIndexEdgeExtension","NotFound","TRANSLATION_NOT_FOUND","pollUntilTranslationComplete","translateError","VIDEO_PROCESSING","VIDEO_TRANSLATION_FAILED","getVideoStreamingUrl","useProxy","urlFormat","tokenLifetimeInMinutes","pageID","getFaceBoundingBoxPageByTime","getFaceBoundingBoxPageByID","getDetectedObjectsBoundingBoxPageByTime","includedObjectTypes","getDetectedObjectsBoundingBoxPageByID","propertyFilter","supportedLangs","getSupportedLanguagesFilterBy","getLanguageByKey","languageKey","languageObject","setPrivacyMode","getSubtitlesUrl","getVideoSearchOptions","minimum","debounce","getKeyframeArray","smallSize","keyframeTitle","currentIndex","shot","keyFrames","kfIndex","kfi","kfiIndex","createUIKeyframe","isFirstShotKeyframe","createThumbnailsWithStyle","getDefaultLanguage","setVideoThumbnail","newThumbnail","indexID","isResponsiveWidth","initViewResponsive$","onResizeResponsive$","tempKeyframe","keyframeIndex","startText","endText","thumbStyle","getThumbStyleData","xPosition","yPosition","formattedStart","formattedEnd","spriteURL","StorageService","accessLevels","_sessionId","_sessionFromCookie","SESSION_ID_KEY","generateSessionId","sessionCookie","parseSessionId","fullSessionId","setStorageAvailable","storageAvailable","testStorage","notSupportedBrowsers","azurePortalLink","getBrowserDetails","browserDetails","linkName","arrOutput","currentString","isIOSDevice","browserOS","os","isBrowserSupported","isAccountOnUSDataCenter","isDevOrStagingEnv","Dev","Staging","FILE_NAME_FILTER","CUSTOM_TAGS_FILTER","DETECTED_OBJECTS_FILTER","OCR_FILTER","TRANSCRIPT_FILTER","LABELS_FILTER","NAMED_LOCATIONS_FILTER","NAMED_PEOPLE_FILTER","BRANDS_FILTER","TOPICS_FILTER","MatDialogModule","MatProgressBarModule","MatSliderModule","ADD_NEW_PATH_1","ADD_NEW_PATH_2","ERROR_SVG","NO_RESULTS","JsonPatchOperation","boldItems","boldItemsStr","testDiv","childNodes","nodeName","outerHTML","origStr","MissingTranslationHandler","CustomMissingTranslationHandler","isHandled","isCurrentLangLoaded","getLangs","currentLang","enJson","commonTrackingService","storedLang","queryLang","getBrowserCultureLang","mappedLang","setDefaultLang","newLanguage","mappedNewLanguage","translateSubject","getStringReplaced","fullString","strToReplace","convertedString","resourcePrefix","localeKey","TranslateService","TranslateLoader","TranslateHttpLoader","createTranslateLoader","loader","missingTranslationHandler","dataBrowser","subString","versionSearch","vendor","dataOS","platform","OS","isApproved","versionSearchString","searchString","searchVersion","searchList","isEdgeBrowser","edgeVersion","brName","brVersion","dataItem","dataProp","prop","Chrome","Explorer","Firefox","Safari","getCookies","cookie","current","keyName","code","lodashMerge","msCorpFullNameEmailPattern","msCropEmailPattern","editableTimestampPattern","capitalize","getFileNameWithoutExtension","comparable","zero","s4","regExp","regExpValue","padWithZero","EMAIL_REGEX","isEmail","isFriendlyMsCorpEmailAddress","friendlyMsCropEmailRegex","num","places","String","padStart","originalString","DAYS_PER_MONTH","SECONDS_PER_HOUR","SECONDS_PER_MINUTE","formattedStartTime","hms","timeSplit","hours","minutes","getTimeText","padMilliSeconds","padNum","toTimeText","displayTime","milliseconds","isNaN","padEnd","roundSeconds","sec_num","humanize","ago","thresh","MAX_VALUE","part","getUTCDate","getTimezoneOffset","timeForCheck","timeOffset","targetDate","setHours","toLocaleTimeString","hour","minute","getDate","getMonth","getFullYear","hour12","toLocaleDateString","toLocaleMonthFormattedString","day","month","arr","func","ExpandIconPosition","AccordionItemComponent","opened","_opened","expandIconPosition","END","iconOpened","iconClosed","startPosition","START","endPosition","onToggle","AccordionItemComponent_Template","AccordionItemComponent_Template_div_viUiAccessibleClick_0_listener","AccordionItemComponent_ng_container_4_Template","AccordionComponent","stopItemsListeners","ngAfterContentInit","setListeners","contentChildren","handleContentChanges","accordionItemListener$","handleClickedItem","isItemNotOpened","openedItemId","isDefaultMode","isMultipleMode","closeNotSelectedItems","AccordionComponent_ContentQueries","AlertMessageComponent_vi_ui_link_8_Template_vi_ui_link_linkClicked_0_listener","contentLinkClicked","handleEnterPressed","buttons","AlertMessageComponent_vi_ui_link_8_Template","BadgeType","BadgeComponent","BadgeComponent_Template","fluentCheckbox","LabelSize","CheckboxComponent","onCheckboxChange","CheckboxComponent_Template","CheckboxComponent_Template_fluent_checkbox_change_0_listener","InputType","required","InputComponent","Text","InputComponent_Template","InputComponent_vi_ui_label_1_Template","InputComponent_Template_input_ngModelChange_2_listener","InputComponent_Template_input_input_2_listener","InputComponent_i_3_Template","InputComponent_span_4_Template","IconType","LabelComponent","for","LabelComponent_Template","LabelComponent_span_2_Template","iconColor","LinkComponent","highContrast","highContrastColor","linkColor","LinkComponent_Template","LinkComponent_Conditional_0_Template","LinkComponent_Template_a_viUiAccessibleClick_1_listener","ɵɵconditional","NavBarComponent_ng_template_0_li_0_Template_li_viUiAccessibleClick_0_listener","onSelectItem","level_r5","selectedItemId","isFlat","NavBarComponent_ng_template_0_ul_2_ng_template_1_ng_template_0_Template","menuItemTemplateRef_r7","child_r6","NavBarComponent_ng_template_0_ul_2_ng_template_1_Template","NavBarComponent_ng_template_0_li_0_Template","NavBarComponent_ng_template_0_ul_2_Template","NavBarComponent_ng_container_3_ng_template_1_Template","item_r8","NavBarComponent","itemExpanded","toggleItem","itemToToggle","NavBarComponent_Template","NavBarComponent_ng_template_0_Template","NavBarComponent_ng_container_3_Template","ProgressBarMode","ProgressStyle","ProgressBarComponent","DETERMINATE","progressStyle","ProgressBarComponent_Template","RoundedCheckboxComponent","focused","ariaLabelledby","clicked","RoundedCheckboxComponent_Template","RoundedCheckboxComponent_Template_div_viUiAccessibleClick_0_listener","ShimmerComponent_ng_container_0_div_2_Template","ShimmerComponent_ng_container_0_div_3_Template","ShimmerComponent_ng_container_0_div_4_Template","elementType","ROW","SHORT_ROW","ShimmerComponent","elements","numOfElements","ShimmerComponent_Template","ShimmerComponent_ng_container_0_Template","SwitchComponent","debounceDelay","onChange","debounceCheckedChange","SwitchComponent_Template","SwitchComponent_Template_button_viUiAccessibleClick_1_listener","SwitchComponent_Template_button_debounceEvent_1_listener","ITableStyleType","SelectionModel","CdkVirtualScrollViewport","MatTableDataSource","pairwise","throttleTime","TableVirtualScrollDataSource","index_r3","column_r2","sortable","item_r4","TableComponent_ng_container_2_td_3_div_1_Template","TableComponent_ng_container_2_td_3_div_2_Template","TableComponent_ng_container_2_th_2_Template","TableComponent_ng_container_2_td_3_Template","TableComponent_th_4_vi_ui_rounded_checkbox_1_Template_vi_ui_rounded_checkbox_clicked_0_listener","ctx_r5","toggleAllRows","TableComponent_th_4_vi_ui_rounded_checkbox_1_Template_vi_ui_rounded_checkbox_keyup_space_0_listener","TableComponent_th_4_vi_ui_rounded_checkbox_1_Template_vi_ui_rounded_checkbox_focusout_0_listener","showHeaderSelection","TableComponent_th_4_vi_ui_rounded_checkbox_1_Template_vi_ui_rounded_checkbox_focus_0_listener","selection","hasValue","isAllSelected","TableComponent_th_4_vi_ui_rounded_checkbox_1_Template","allowMultiSelect","TableComponent_td_5_Template_vi_ui_rounded_checkbox_clicked_1_listener","toggleRow","isHovered","i_r9","TableComponent_tr_6_Template_tr_mouseenter_0_listener","headerRowHovered","TableComponent_tr_6_Template_tr_mouseleave_0_listener","TableComponent_tr_7_Template_tr_keyup_space_0_listener","row_r12","TableComponent_tr_7_Template_tr_mouseenter_0_listener","setItemHovered","TableComponent_tr_7_Template_tr_mouseleave_0_listener","TableComponent_tr_7_Template_tr_focusout_0_listener","TableComponent_tr_7_Template_tr_focus_0_listener","i_r13","TableComponent","styleType","initialSelection","isVirtualScrollActive","allItemSelected","loadMore","SELECT_COLUMN","ROW_HEIGHTS","COMPACT","rowHeight","displayedColumns","itemsColumns","columnsConfig","initializeDataSource","dataSource","setupVirtualScroll","numSelected","numRows","sortData","sortMethod","item1","item2","isAsc","comparisonResult","containers","dataOfRange$","setCustomColumns","sortedContainers","viewport","elementScrolled","measureScrollOffset","previousOffset","currentOffset","isScrollingDown","isNearBottom","componentClass","container","componentInputs","containersArray","numContainersInEachColumn","columnsWithComponent","containersColumns","array","sortContainers","compareDocumentPosition","Node","DOCUMENT_POSITION_PRECEDING","TableComponent_Query","TableComponent_Template_table_matSortChange_1_listener","TableComponent_ng_container_2_Template","TableComponent_th_4_Template","TableComponent_td_5_Template","TableComponent_tr_6_Template","TableComponent_tr_7_Template","TableComponent_Conditional_8_Template","FixedSizeTableVirtualScrollStrategy","dataLength","_dataLength","onDataLengthChanged","renderedRangeStream","stickyChange","indexChange","scrolledIndexChange","attach","detach","onContentScrolled","updateContent","contentSize","headerHeight","footerHeight","setTotalContentSize","viewportSize","getViewportSize","scrollToOffset","onContentRendered","onRenderedOffsetChanged","scrollToIndex","setConfig","configs","bufferMultiplier","renderedOffset","getOffsetToRenderedContentStart","itemsDisplayed","bufferItems","bufferOffset","scrollOffset","relativeScrollOffset","rowsScrolled","displayed","rowSensitivity","setRenderedContentOffset","setRenderedRange","rowsToMove","sign","adjustedRenderedOffset","ReplaySubject","Subscription","_updateChangeSubscription","initStreams","_sort","_paginator","_internalPageChanges","_filter","_renderData","sortChange","initialized","pageChange","dataStream","filteredData","_filterData","orderedData","_orderData","paginatedData","_pageData","_renderChangesSubscription","dataToRender$","streamsReady","VIRTUAL_SCROLL_STRATEGY","forwardRef","MatTable","delayWhen","startWith","_tableVirtualScrollDirectiveStrategyFactory","tableDir","scrollStrategy","combineSelectors","pairs","stickyHeaderSelector","stickyFooterSelector","defaults","headerEnabled","footerEnabled","TableItemSizeDirective","dataSourceChanges","resetStickyPositions","stickyEnabled","header","footer","destroyed$","switchDataSourceOrigin","table","call","connectDataSource","updateStickyColumnStylesOrigin","updateStickyColumnStyles","stickyColumnStylesNeedReset","getScheduleObservable","stickyPositions","stickyOffset","initStickyPositions","setStickyHeader","setStickyFooter","setStickyEnabled","rowDefs","sticky","prevState","baseOffset","offsetTop","isStable","onStable","TableItemSizeDirective_ContentQueries","containerId","TagContainerComponent_vi_ui_tag_3_Template_vi_ui_tag_closeClicked_0_listener","tag_r3","removeTag","term","TagContainerComponent","tagRemoved","tagId","tag","trackById","TagContainerComponent_Template","TagContainerComponent_vi_ui_label_1_Template","TagContainerComponent_vi_ui_tag_3_Template","formattedTerm","TagComponent_button_4_Template_button_viUiAccessibleClick_0_listener","onRemoveTag","TagComponent","enableRemove","closeClicked","TagComponent_Template","TagComponent_span_2_Template","TagComponent_button_4_Template","TextComponent","TextComponent_Template","TextComponent_Conditional_0_Template","counter","TextareaComponent_div_2_span_1_Template","TextareaComponent_div_2_span_2_Template","TextareaComponent","focusedOut","DEFAULT_HEIGHT","onFocusedOut","TextareaComponent_Template","TextareaComponent_vi_ui_label_1_Template","TextareaComponent_div_2_Template","TextareaComponent_Template_textarea_ngModelChange_3_listener","TextareaComponent_Template_textarea_input_3_listener","TextareaComponent_Template_textarea_focusout_3_listener","TextareaComponent_span_4_Template","viUiAccessibleClick","MatTableModule","ScrollingModule"],"sourceRoot":"webpack:///","x_google_ignoreList":[]}