@the-liberators/ngx-scrumteamsurvey-tools 2.3.119 → 2.3.120

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"the-liberators-ngx-scrumteamsurvey-tools.mjs","sources":["../../../projects/ngx-scrumteamsurvey-tools/src/lib/componentBase.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/paginator/paginator.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/paginator/paginator.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/paginator/paginator.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/viewModel/viewModelState.service.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/componentWithViewStateBase.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/actions/models/actionDto.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/actions/models/actionOptionsDto.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/models/selectListItem.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/actions/models/actionPrefillDto.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/apiUrlToken.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/actions/pipes/interventionOwnerToString.pipe.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/actions/pipes/interventionStateToString.pipe.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/actions/pipes/interventionTypeToString.pipe.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/actions/services/actionService.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/actions/components/action-manage/action-manage.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/actions/components/action-manage/action-manage.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/models/factorScoreDto.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/models/pagingOptions.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/models/userSettingsDto.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/viewModel/userSettings.service.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/actions/dialogs/dialog-manageaction/dialog-manageaction.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/actions/dialogs/dialog-manageaction/dialog-manageaction.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/actions/components/action-tile/action-tile.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/actions/components/action-tile/action-tile.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/actions/dialogs/dialog-filters/dialog-filters.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/actions/dialogs/dialog-filters/dialog-filters.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/pipes/dateRange/ngx-dateRangeDto.model.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/actions/models/exportRequestDto.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/actions/dialogs/dialog-export-actions/dialog-export-actions.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/actions/dialogs/dialog-export-actions/dialog-export-actions.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/actions/dialogs/dialog-export-actions/dialog-export-actions.directive.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/actions/components/action-list/action-list.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/actions/components/action-list/action-list.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/actions/actions.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/models/paginatedResponse.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/actions/models/actionResponseDto.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/actions/services/actionClientConfig.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/add-calendar/generators/base-calendar.generator.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/add-calendar/generators/google-calendar.generator.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/add-calendar/generators/ics-calendar.generator.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/add-calendar/generators/outlook-calendar.generator.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/add-calendar/generators/yahoo-calendar.generator.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/add-calendar/model/calendar-type.enum.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/add-calendar/service/ng-add-to-calendar.service.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/add-calendar/ng-add-to-calendar.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/alerts/models/dismissAlertRequestDto.model.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/alerts/services/alerts.service.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/alerts/services/dismissedAlerts.service.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/alerts/components/alerts-list/alerts.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/alerts/components/alerts-list/alerts.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/alerts/components/dialog-alerts/dialog-alerts.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/alerts/components/dialog-alerts/dialog-alerts.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/alerts/components/dialog-alerts/dialog-alerts.directive.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/alerts/components/alert-announcement/alert-announcement.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/alerts/components/alert-announcement/alert-announcement.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/alerts/alerts.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/alerts/models/alertDto.model.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/alerts/models/alertFilterDto.model.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/alerts/models/alertResponseDto.model.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/alerts/services/alertClientConfig.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/branding/brandingProvider.service.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/branding/brandBackground.directive.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/branding/brandConditionalBackgroundColor.directive.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/branding/brandConditionalColor.directive.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/branding/brandHoverColor.directive.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/models/brandingSettingsDto.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/models/channelDto.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/dialogs/dialog-support/contactService.service.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/dialogs/dialog-support/dialog-support.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/dialogs/dialog-support/dialog-support.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/dialogs/dialog-support/dialog-support.directive.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/branding/components/site-default-footer/site-default-footer.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/branding/components/site-default-footer/site-default-footer.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/branding/components/site-default-header/site-default-header.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/branding/components/site-default-header/site-default-header.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/branding/components/site-micro-footer/site-micro-footer.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/branding/components/site-micro-footer/site-micro-footer.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/dialogs/dialog-support/dialog-support.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/branding/branding.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/checkbox/checkbox.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/checkbox/checkbox.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/checkbox/checkbox.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/expand/expand.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/expand/expand.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/expand/expand.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/loading/loading.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/loading/loading.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/loading/loading.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/mat-tags/mat-tags.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/mat-tags/mat-tags.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/mat-tags/mat-tags.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/models/keyValueDto.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/metadata-input/metadata-input.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/metadata-input/metadata-input.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/metadata-input/metadata-input.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/multi-email-input/multi-email-input.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/multi-email-input/multi-email-input.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/multi-email-input/multi-email-input.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/quantity-selector/quantity-selector.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/quantity-selector/quantity-selector.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/quantity-selector/quantity-selector.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/select-list/select-list.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/select-list/select-list.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/select-list/select-list.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/snapshot-inviteurls/snapshot-inviteurls.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/snapshot-inviteurls/snapshot-inviteurls.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/snapshot-inviteurls/snapshot-inviteurls.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/pipes/slugify/ngx-slugify.pipe.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/tabnavigator/tabnavigator.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/tabnavigator/tabnavigator.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/pipes/slugify/ngx-slugify.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/tabnavigator/tabnavigator.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/topicselector/customCheckValidator.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/topicselector/minTopicsSelectedValidator.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/models/modelStructureDto.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/dialogs/dialog-factorinformation/dialog-factorinformation.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/dialogs/dialog-factorinformation/dialog-factorinformation.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/topicselector/topic-selector.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/topicselector/topic-selector.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/dialogs/dialog-factorinformation/dialog-factorinformation.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/topicselector/topic-selector.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/progressbar/progressbar.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/progressbar/progressbar.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/progressbar/progressbar.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/pipes/dateRange/ngx-dateRange.pipe.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/pipes/dateRange/ngx-dateRange.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/arrow/ArrowUpdateService.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/arrow/arrow.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/arrow/arrow.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/services/factorService.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/dialogs/dialog-settings/dialog-settings.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/dialogs/dialog-settings/dialog-settings.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/models/exportRequestDto.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/services/exportService.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/dialogs/dialog-export-factorscores/dialog-export-factorscores.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/dialogs/dialog-export-factorscores/dialog-export-factorscores.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/dialogs/dialog-export-factorscores/dialog-export-factorscores.directive.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/dialogs/dialog-notes/dialog-notes.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/dialogs/dialog-notes/dialog-notes.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/dialogs/dialog-notes/dialog-notes.directive.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/delta-arrow/delta-arrow.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/delta-arrow/delta-arrow.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/age-indicator/age-indicator.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/age-indicator/age-indicator.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/dialogs/dialog-subscribe/dialog-subscribe.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/dialogs/dialog-subscribe/dialog-subscribe.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/dialogs/dialog-subscribe/dialog-subscribe.directive.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/quicktips/quicktips.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/quicktips/quicktips.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/model-visualization/model-factor-benchmark/model-factor-benchmark.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/model-visualization/model-factor-benchmark/model-factor-benchmark.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/model-visualization/model-factor-breakdown/model-factor-breakdown.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/model-visualization/model-factor-breakdown/model-factor-breakdown.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/model-visualization/dialog-integration/dialog-integration.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/model-visualization/dialog-integration/dialog-integration.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/model-visualization/model-factor-metric/model-factor-metric.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/model-visualization/model-factor-metric/model-factor-metric.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/model-visualization/model-factor-indicator/model-factor-indicator.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/model-visualization/model-factor-indicator/model-factor-indicator.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/model-visualization/model-factor-core/model-factor-core.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/model-visualization/model-factor-core/model-factor-core.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/model-visualization/model-canvas/model-canvas.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/model-visualization/model-canvas/model-canvas.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/dialogs/dialog-resourcedownload/resourceDownload.service.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/dialogs/dialog-resourcedownload/dialog-resourcedownload.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/dialogs/dialog-resourcedownload/dialog-resourcedownload.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/dialogs/dialog-resourcedownload/dialog-resourcedownload.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/dialogs/dialog-subscribe/dialog-subscribe.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/guides/components/imageslider/imageslider.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/guides/components/imageslider/imageslider.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/guides/services/guidesClientConfig.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/guides/services/guidePopup.service.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/guides/dialogs/dialog-guides/dialog-guides.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/guides/dialogs/dialog-guides/dialog-guides.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/guides/dialogs/dialog-guide/dialog-guide.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/guides/dialogs/dialog-guide/dialog-guide.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/guides/components/resumeguidehover/resumeguidehover.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/guides/components/resumeguidehover/resumeguidehover.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/guides/models/guideCollectionDto.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/guides/services/guideStateInBrowser.service.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/guides/services/guideStateInBackEnd.service.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/guides/directives/startguide/startguide.directive.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/guides/guides.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/badge-progression/badge-progression.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/badge-progression/badge-progression.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/badge-streak/badge-streak.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/badge-streak/badge-streak.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/models/badgeDto.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/badge/badge.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/badge/badge.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/badges/badges.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/badges/badges.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/benchmark-indicator/benchmark-indicator.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/benchmark-indicator/benchmark-indicator.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/doityourself/doityourself.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/doityourself/doityourself.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/doityourselfworkshops/doityourselfworkshops.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/doityourselfworkshops/doityourselfworkshops.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/tip-badge/tip-badge.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/tip-badge/tip-badge.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/factor-axis/factor-axis.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/factor-axis/factor-axis.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/limitationsapply/limitationsapply.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/limitationsapply/limitationsapply.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/factors/factors.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/factors/factors.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/filter-tags/filter-tags.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/filter-tags/filter-tags.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/impact-indicator/impact-indicator.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/impact-indicator/impact-indicator.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/focusareas/focusareas.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/focusareas/focusareas.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/footer/footer.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/footer/footer.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/dialogs/dialog-modelfilter/dialog-modelfilter.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/dialogs/dialog-modelfilter/dialog-modelfilter.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/model-switcher/model-switcher.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/model-switcher/model-switcher.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/nav-button/nav-button.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/nav-button/nav-button.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/participants/participants.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/participants/participants.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/result-indicator/result-indicator.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/result-indicator/result-indicator.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/recommendation/recommendation.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/recommendation/recommendation.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/recommendations/recommendations.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/recommendations/recommendations.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/research/research.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/research/research.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/roadmap/roadmap.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/roadmap/roadmap.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/teameffectiveness/teameffectiveness.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/teameffectiveness/teameffectiveness.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/services/terms.service.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/termsupdated/termsupdated.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/termsupdated/termsupdated.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/models/trendDataRequestDto.model.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/services/trend.service.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/trends/trends.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/trends/trends.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/trynow-professional/trynow-professional.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/trynow-professional/trynow-professional.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/update-in-progress/update-in-progress.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/update-in-progress/update-in-progress.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/models/clientInfoDto.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/models/featuresDto.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/models/userInfoDto.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/services/userProfile.service.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/services/account.service.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/userprofile/userprofile.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/userprofile/userprofile.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/video/video.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/video/video.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/widget-factorscore/widget-factorscore.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/widget-factorscore/widget-factorscore.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/widget-participationrate/widget-participationrate.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/widget-participationrate/widget-participationrate.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/dialogs/dialog-export-teamlist/dialog-export-teamlist.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/dialogs/dialog-export-teamlist/dialog-export-teamlist.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/dialogs/dialog-export-teamlist/dialog-export-teamlist.directive.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/dialogs/dialog-teamfilter/dialog-teamfilters.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/dialogs/dialog-teamfilter/dialog-teamfilters.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/dialogs/dialog-teamfilter/dialog-teamfilters.directive.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/services/dimissPopupService.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/results.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/model-visualization/model-visualization.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/dialogs/dialog-account/resetPasswordRequestDto.model.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/dialogs/dialog-account/account.service.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/dialogs/dialog-account/dialog-account.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/dialogs/dialog-account/dialog-account.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/dialogs/dialog-account/dialog-account.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/directives/backbutton/backbutton.directive.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/directives/backbutton/backbutton.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/directives/clickableTooltip/clickableTooltip.directive.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/directives/guards/validChangeTokenGuard.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/directives/guards/validKeyGuard.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/directives/guards/validSnapshotKeyGuard.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/directives/guards/validTeamKeyGuard.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/directives/guards/guards.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/errorhandling/error.model.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/errorhandling/errorServiceConfig.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/errorhandling/errorHandler.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/errorhandling/errorService.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/models/integrationDto.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/models/contextItemDto.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/pipes/callback/callback.pipe.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/pipes/callback/callback.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/pipes/segmentName/segmentName.pipe.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/pipes/segmentName/segmentName.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/pipes/truncate/truncate.pipe.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/pipes/truncate/truncate.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/models/dataSetDto.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/models/dimensionResultDto.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/models/localUserDto.model.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/models/participantDto.model.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/models/snapshotDto.model.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/models/snapshotMetaDataDto.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/models/teamDto.model.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/models/teamListResponseDto.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/models/teamMetaDataDto.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/models/userListResponseDto.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/models/widgetDataDto.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/services/resultsClientConfig.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/validators/domainValidator.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/validators/httpsHostValidator.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/validators/matchInputValidator.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/validators/maxSelectedValidator.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/viewModel/interfaces.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/viewModel/reloadStrategies/noReloadStrategy.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/viewModel/services/sessionIdProvider.service.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/viewModel/reloadStrategies/reloadOnPushStrategy.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/viewModel/services/sessionIdInterceptor.service.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/viewModel/viewModelState.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/viewModel/viewModelStateConfig.ts","../../../projects/ngx-scrumteamsurvey-tools/src/public-api.ts","../../../projects/ngx-scrumteamsurvey-tools/src/the-liberators-ngx-scrumteamsurvey-tools.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { MatSnackBar, MatSnackBarConfig } from '@angular/material/snack-bar';\n\n@Injectable()\nexport abstract class ComponentBase {\n constructor(protected snackBar: MatSnackBar) {\n }\n\n protected showSuccess(message: string) {\n let config = new MatSnackBarConfig();\n config.panelClass = ['success', 'snackbar'];\n config.duration = 5000;\n this.snackBar.open(message, \"dismiss\", config);\n }\n\n protected showMessage(message: string) {\n let config = new MatSnackBarConfig();\n config.panelClass = ['information', 'snackbar'];\n config.duration = 5000;\n this.snackBar.open(message, \"dismiss\", config);\n }\n\n protected showError(message: string) {\n let config = new MatSnackBarConfig();\n config.panelClass = ['error', 'snackbar'];\n config.duration = 5000;\n this.snackBar.open(message, \"dismiss\", config);\n }\n}\n","import { Component, EventEmitter, Inject, Input, Output } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ComponentBase } from '../../componentBase';\nimport { PaginatedResponse } from '../../models/paginatedResponse';\n\n@Component({\n selector: 'paginator',\n templateUrl: './paginator.component.html',\n styleUrls: ['./paginator.component.less'],\n standalone: false\n})\nexport class PaginatorComponent extends ComponentBase {\n @Input() public items: PaginatedResponse<any>;\n @Output() readonly page: EventEmitter<PaginatorPageEvent> = new EventEmitter<PaginatorPageEvent>();\n public pageIndex: number;\n public pageSize: number;\n public pageCount: number;\n\n constructor(protected snackBar: MatSnackBar) {\n super(snackBar)\n }\n\n public ngOnInit(): void {\n this.pageIndex = this.items.page;\n this.pageSize = this.items.itemsPerPage;\n this.pageCount = Math.ceil(this.items.totalItems / this.pageSize);\n }\n\n public next(): void {\n this.pageIndex++;\n this.emitPageEvent();\n }\n\n public back(): void {\n this.pageIndex--;\n this.emitPageEvent();\n }\n\n public changePageSize(): void {\n this.pageIndex = 0;\n this.emitPageEvent();\n }\n\n private emitPageEvent() {\n this.page.emit({\n pageIndex: this.pageIndex,\n pageSize: this.pageSize\n });\n }\n}\n\nexport declare class PaginatorPageEvent {\n pageIndex: number;\n pageSize: number;\n}\n","<div class=\"paginator\">\n <div class=\"paginator-tools\">\n @if (items.page > 0) {\n <div class=\"back button\" (click)=\"back()\">\n back\n </div>\n }\n @if (((items.page + 1) * items.itemsPerPage) < items.totalItems) {\n <div class=\"next button primary\" (click)=\"next()\">\n next\n </div>\n }\n <mat-form-field class=\"itemsperpage\" subscriptSizing=\"dynamic\">\n <mat-label>pagesize</mat-label>\n <mat-select [(ngModel)]=\"pageSize\" id=\"select-pagesize\" (ngModelChange)=\"changePageSize()\">\n <mat-option class=\"select-option\" [value]=\"6\">6</mat-option>\n <mat-option class=\"select-option\" [value]=\"12\">12</mat-option>\n <mat-option class=\"select-option\" [value]=\"24\">24</mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n <div class=\"paginator-metadata\">\n {{items.totalItems}} items | page {{pageIndex + 1}} of {{pageCount}}\n </div>\n</div>\n\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { RouterModule } from '@angular/router';\nimport { PaginatorComponent } from './paginator.component';\n\n@NgModule({\n imports: [\n MatSelectModule,\n RouterModule,\n CommonModule,\n FormsModule,\n MatInputModule],\n declarations: [\n PaginatorComponent],\n exports: [\n PaginatorComponent]\n})\nexport class PaginatorModule { }\n","import { Inject, InjectionToken } from '@angular/core';\nimport { BehaviorSubject, Subscription } from 'rxjs';\nimport { take } from 'rxjs/operators';\nimport { IAggregateRootSource, IReloadStrategy, IViewState } from './interfaces';\n\nexport const VIEWSTATE_LOAD_STRATEGY = new InjectionToken<IAggregateRootSource>('viewstate.load.strategy');\nexport const VIEWSTATE_RELOAD_STRATEGY = new InjectionToken<IAggregateRootSource>('viewstate.reload.strategy');\nexport const VIEWSTATE_PROVIDER = new InjectionToken<ViewModelStateBase<IViewState>>('viewstate.provider');\n\nexport abstract class ViewModelStateBase<T extends IViewState> {\n public data: BehaviorSubject<T>;\n public updating = new BehaviorSubject<boolean>(false);\n protected result: T = null;\n protected loadUrl: string;\n protected subscription: Subscription;\n\n constructor(@Inject(VIEWSTATE_LOAD_STRATEGY) protected strategy: IAggregateRootSource, @Inject(VIEWSTATE_RELOAD_STRATEGY) protected reloadStrategy: IReloadStrategy, protected startInstance: (new () => T)) {\n this.startInstance = startInstance;\n this.strategy = strategy;\n this.data = new BehaviorSubject(new this.startInstance());\n }\n\n public load() {\n if (this.result) { return; }\n this.result = new this.startInstance();\n this.updating.next(true);\n this.strategy.subscribe<T>().pipe(take(2)).subscribe(success => {\n if (success) {\n success.loaded = true;\n this.map(success);\n this.data.next(this.result);\n this.updating.next(false);\n }\n }, error => {\n this.result = null;\n });\n }\n\n public forcedReload() {\n if (!this.strategy.reloadable()) { return; }\n this.result = null;\n this.updating.next(true);\n this.load();\n }\n\n public reload() {\n if (!this.strategy.reloadable()) { return; }\n this.result = null;\n this.updating.next(true);\n\n if (!this.reloadStrategy.isConnected()) {\n console.error(\"Reload strategy is not connected. We are reloading manually in 3 seconds as a fall-back strategy.\");\n\n setTimeout(() => {\n this.forcedReload();\n }, 3000);\n }\n }\n\n public close() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n protected map(aggregate: T): void {\n throw \"Must implement. This method is called every time an update is received.\";\n };\n\n public initiate(): void {\n this.reloadStrategy.subscribe();\n this.reloadStrategy.reload.subscribe(reload => {\n if (reload) {\n console.log(\"Received push notification that command completed. Reloading data.\", reload);\n this.result = null;\n this.load();\n }\n });\n };\n}\n","import { Injectable, OnDestroy, OnInit } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { Subscription } from 'rxjs';\nimport { ComponentBase } from './componentBase';\nimport { IViewState } from './viewModel/interfaces';\nimport { ViewModelStateBase } from './viewModel/viewModelState.service';\n\n@Injectable()\nexport abstract class ComponentWithViewStateBase<T extends IViewState> extends ComponentBase implements OnInit, OnDestroy {\n public loaded: boolean = false;\n private stateStoreSubscription: Subscription;\n\n constructor(private stateStore: ViewModelStateBase<T>, protected snackBar: MatSnackBar) {\n super(snackBar);\n }\n\n public ngOnInit() {\n this.stateStoreSubscription = this.stateStore.data.subscribe((success: T) => {\n this.loaded = success.loaded;\n\n if (success && success.loaded) {\n this.onDataUpdate(success);\n }\n });\n\n this.stateStore.load();\n }\n\n protected onDataUpdate(data: T): void {\n throw \"Must implement onDataUpdate\";\n };\n\n public ngOnDestroy() {\n if (this.stateStoreSubscription) {\n this.stateStoreSubscription.unsubscribe();\n }\n\n this.stateStore.close();\n }\n}\n","export class ActionDto {\n constructor() {\n this.team = new ActionTeamDto();\n }\n\n publicKey: string;\n description: string;\n url: string;\n team: ActionTeamDto;\n created: Date;\n due: Date;\n isDue: boolean;\n state: InterventionStateEnum;\n type: InterventionTypeEnum;\n owner: InterventionOwnerEnum;\n expectedImpactOn: string[];\n expectedImpactOnLabels: string[];\n deleted: boolean;\n quickTipPublicKey: string;\n ageInDays: number;\n}\n\nexport class ActionTeamDto {\n publicKey: string;\n name: string;\n colorString: string;\n}\n\n\nexport enum InterventionStateEnum {\n open = \"Open\",\n completed = \"Completed\",\n impeded = \"Impeded\",\n obsolete = \"Obsolete\",\n due = \"Due\"\n}\n\nexport enum InterventionSortEnum {\n due = \"Due\",\n owner = \"Owner\",\n type = \"Type\",\n created = \"Created\",\n age = \"Age\"\n}\n\nexport enum InterventionTypeEnum {\n conversation = \"Conversation\",\n involveOthers = \"InvolveOthers\",\n runExperiment = \"RunExperiment\",\n research = \"Research\",\n workshop = \"Workshop\",\n other = \"Other\"\n}\n\nexport enum InterventionOwnerEnum {\n entireTeam = \"EntireTeam\",\n management = \"Management\",\n productPerson = \"ProductPerson\",\n teamCoach = \"TeamCoach\",\n teamMember = \"TeamMember\",\n stakeholder = \"Stakeholder\",\n other = \"Other\"\n}\n","export class ActionOptionsDto {\n teams: ActionOptionDto[];\n}\n\nexport class ActionOptionDto {\n constructor(key: string, label: string) {\n this.key = key;\n this.label = label;\n }\n\n key: string;\n label: string;\n}\n","export class SelectItem {\n constructor(value: string, label: string, lower: boolean = false) {\n this.value = value;\n this.label = label;\n this.lower = lower;\n }\n\n value: string;\n label: string;\n lower: boolean;\n}\n","import { InterventionOwnerEnum, InterventionStateEnum, InterventionTypeEnum } from \"./actionDto\";\n\nexport class ActionPrefillDto {\n teamKey: string;\n description: string;\n expectedImpactOn: string[];\n type: InterventionTypeEnum;\n owner: InterventionOwnerEnum;\n state: InterventionStateEnum;\n quickTipPublicKey: string;\n url: string;\n}\n","import { Inject, Injectable, InjectionToken, Optional } from '@angular/core';\n\nexport const ApiConfigToken = new InjectionToken<ApiConfigDto>(\n 'apiurl-angular.config'\n);\n\n@Injectable({ providedIn: 'root' })\nexport class ApiConfig {\n private config?: ApiConfigDto;\n\n constructor(@Optional() @Inject(ApiConfigToken) config?: ApiConfigDto) {\n if (config) {\n this.set(config);\n }\n }\n\n set(config: ApiConfigDto): void {\n this.config = config;\n }\n\n get(): ApiConfigDto {\n return this.config as ApiConfigDto;\n }\n}\n\nexport class ApiConfigDto {\n apiUrl: string;\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { InterventionOwnerEnum } from '../models/actionDto';\n\n@Pipe({\n name: 'interventionOwnerToString',\n standalone: false\n})\nexport class InterventionOwnerToStringPipe implements PipeTransform {\n transform(type: InterventionOwnerEnum): string {\n switch (type) {\n case InterventionOwnerEnum.entireTeam:\n return \"Entire team\";\n case InterventionOwnerEnum.management:\n return \"Management\";\n case InterventionOwnerEnum.productPerson:\n return \"Product manager/owner\";\n case InterventionOwnerEnum.teamCoach:\n return \"Team coach\";\n case InterventionOwnerEnum.teamMember:\n return \"Team member\";\n case InterventionOwnerEnum.stakeholder:\n return \"Stakeholder\";\n case InterventionOwnerEnum.other:\n return \"Other\";\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { InterventionStateEnum } from '../models/actionDto';\n\n@Pipe({\n name: 'interventionStateToStringPipe',\n standalone: false\n})\nexport class InterventionStateToStringPipe implements PipeTransform {\n transform(type: InterventionStateEnum): string {\n switch (type) {\n case InterventionStateEnum.completed:\n return \"Completed\";\n case InterventionStateEnum.impeded:\n return \"Impeded\";\n case InterventionStateEnum.obsolete:\n return \"Canceled (obsolete or no longer relevant)\";\n case InterventionStateEnum.open:\n return \"Open\";\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { InterventionTypeEnum } from '../models/actionDto';\n\n@Pipe({\n name: 'interventionTypeToString',\n standalone: false\n})\nexport class InterventionTypeToStringPipe implements PipeTransform {\n transform(type: InterventionTypeEnum): string {\n switch (type) {\n case InterventionTypeEnum.conversation:\n return \"Initiate a conversation\";\n case InterventionTypeEnum.involveOthers:\n return \"Request help outside team\";\n case InterventionTypeEnum.research:\n return \"Research options\";\n case InterventionTypeEnum.runExperiment:\n return \"Run an experiment\";\n case InterventionTypeEnum.workshop:\n return \"Facilitate a workshop\";\n case InterventionTypeEnum.other:\n return \"Other\";\n }\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ApiConfig } from '../../apiUrlToken';\nimport { UserSettingsDto } from '../../models/userSettingsDto';\nimport { ActionDto, InterventionOwnerEnum, InterventionStateEnum, InterventionTypeEnum } from '../models/actionDto';\nimport { ActionOptionDto } from '../models/actionOptionsDto';\nimport { ExportActionsRequestDto } from '../models/exportRequestDto';\nimport { InterventionOwnerToStringPipe } from '../pipes/interventionOwnerToString.pipe';\nimport { InterventionStateToStringPipe } from '../pipes/interventionStateToString.pipe';\nimport { InterventionTypeToStringPipe } from '../pipes/interventionTypeToString.pipe';\n\n@Injectable()\nexport class ActionService {\n private baseUrl: string;\n\n constructor(private http: HttpClient, @Inject(ApiConfig) private config: ApiConfig) {\n console.log(\"Config for action client set, and viewmodel provided\", config);\n this.baseUrl = config.get().apiUrl;\n }\n\n public create(teamKey: string, dto: ActionDto): Promise<Object> {\n return this.http.post(this.baseUrl + \"actions/\" + teamKey, dto).toPromise();\n }\n\n public update(teamKey: string, dto: ActionDto): Promise<Object> {\n return this.http.put(this.baseUrl + \"actions/\" + teamKey, dto).toPromise();\n }\n\n public delete(teamKey: string, publicKey: string): Promise<Object> {\n return this.http.delete(this.baseUrl + \"actions/\" + teamKey + \"/\" + publicKey).toPromise();\n }\n\n public changeState(teamKey: string, publicKey: string, state: InterventionStateEnum): Promise<Object> {\n return this.http.post(this.baseUrl + \"actions/\" + teamKey + \"/\" + publicKey + \"/\" + state, null).toPromise();\n }\n\n public getStateOptions() {\n var pipe = new InterventionStateToStringPipe();\n var list: ActionOptionDto[] = [];\n\n for (const value of Object.values(InterventionStateEnum)) {\n list.push(new ActionOptionDto(value, pipe.transform(value)));\n }\n\n return list;\n }\n\n public getOwnerOptions() {\n var pipe = new InterventionOwnerToStringPipe();\n var list: ActionOptionDto[] = [];\n\n for (const value of Object.values(InterventionOwnerEnum)) {\n list.push(new ActionOptionDto(value, pipe.transform(value)));\n }\n\n return list;\n }\n\n public getTypeOptions() {\n var pipe = new InterventionTypeToStringPipe();\n var list: ActionOptionDto[] = [];\n\n for (const value of Object.values(InterventionTypeEnum)) {\n list.push(new ActionOptionDto(value, pipe.transform(value)));\n }\n\n return list;\n }\n\n public exportActions(request: ExportActionsRequestDto): Observable<any> {\n return this.http.post(this.baseUrl + \"export/actions\", request, { responseType: 'blob' });\n }\n}\n","import { Component, Inject, Input } from '@angular/core';\nimport { FormBuilder, FormGroup, FormGroupDirective, Validators } from '@angular/forms';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { Subscription } from 'rxjs';\nimport { ComponentBase } from '../../../componentBase';\nimport { ModelStructureDto } from '../../../models/modelStructureDto';\nimport { SelectItem } from '../../../models/selectListItem';\nimport { VIEWSTATE_PROVIDER, ViewModelStateBase } from '../../../viewModel/viewModelState.service';\nimport { IActionState } from '../../interfaces/IActionState';\nimport { ActionDto, InterventionStateEnum } from '../../models/actionDto';\nimport { ActionOptionDto } from '../../models/actionOptionsDto';\nimport { ActionPrefillDto } from '../../models/actionPrefillDto';\nimport { ActionService } from '../../services/actionService';\n\n@Component({\n selector: 'action-manage',\n templateUrl: './action-manage.component.html',\n styleUrls: ['./action-manage.component.less'],\n standalone: false\n})\nexport class ActionManageComponent extends ComponentBase {\n @Input() public prefill: ActionPrefillDto;\n @Input() public action: ActionDto;\n public form: FormGroup;\n public interventionTypeList: ActionOptionDto[];\n public expectedEffectOnList: ActionOptionDto[];\n public stateList: ActionOptionDto[];\n public ownerList: ActionOptionDto[];\n public teams: ActionOptionDto[] = [];\n public multipleTeams: boolean;\n public viewStateSubscription: Subscription;\n public showTeamSelector: boolean = true;\n public factors: SelectItem[];\n\n constructor(private dialogRef: MatDialog, private formBuilder: FormBuilder, private actionService: ActionService, @Inject(VIEWSTATE_PROVIDER) private viewModelState: ViewModelStateBase<IActionState>, protected snackBar: MatSnackBar) {\n super(snackBar)\n }\n\n public ngOnInit() {\n this.createForm();\n this.ownerList = this.actionService.getOwnerOptions();\n this.interventionTypeList = this.actionService.getTypeOptions();\n this.stateList = this.actionService.getStateOptions();\n\n this.viewStateSubscription = this.viewModelState.data.subscribe(success => {\n if (success.loaded) {\n this.factors = this.getFactors(success.factorScores.modelStructure);\n this.expectedEffectOnList = success.factorScores.factorScores.map(p => new ActionOptionDto(p.key, p.name));\n\n if (success.teamList.names != null) { // teams dashboard\n this.teams = success.teamList.names.map(p => new ActionOptionDto(p.publicKey, p.name));\n }\n else if (success.teamMetaData != null) { // team report\n this.teams.push(new ActionOptionDto(success.teamMetaData.teamKey, success.teamMetaData.name));\n }\n\n if (this.teams.length == 1) { this.prefill.teamKey = this.teams[0].key; }\n this.showTeamSelector = (!this.prefill.teamKey || this.prefill.teamKey.length == 0);\n this.applyPrefill();\n }\n });\n\n if (this.action && this.action.publicKey) {\n this.form.controls.teamKey.setValue(this.action.team.publicKey);\n this.form.controls.publicKey.setValue(this.action.publicKey);\n this.form.controls.description.setValue(this.action.description);\n this.form.controls.url.setValue(this.action.url);\n this.form.controls.expectedImpactOn.setValue(this.action.expectedImpactOn);\n this.form.controls.type.setValue(this.action.type);\n this.form.controls.owner.setValue(this.action.owner);\n this.form.controls.state.setValue(this.action.state);\n this.form.controls.due.setValue(this.action.due);\n this.form.controls.quickTipPublicKey.setValue(this.action.quickTipPublicKey);\n this.showTeamSelector = false;\n }\n }\n\n public async onSubmit(formDirective: FormGroupDirective): Promise<void> {\n if (!this.form.valid) { return; }\n\n if (this.form.controls.publicKey.value) {\n await this.actionService.update(this.form.controls.teamKey.value, this.form.getRawValue());\n } else {\n await this.actionService.create(this.form.controls.teamKey.value, this.form.getRawValue());\n }\n\n this.dialogRef.closeAll();\n this.viewModelState.reload();\n }\n\n public async delete(): Promise<void> {\n if (window.confirm(\"Are you sure you want to delete this intervention?\")) {\n await this.actionService.delete(this.form.controls.teamKey.value, this.form.controls.publicKey.value);\n this.dialogRef.closeAll();\n this.viewModelState.reload();\n }\n }\n\n public cancel() {\n this.resetForm(null);\n this.dialogRef.closeAll();\n }\n\n private resetForm(formDirective: FormGroupDirective): void {\n this.showTeamSelector = (!this.prefill.teamKey || this.prefill.teamKey.length == 0);\n this.form.reset();\n this.action = null;\n\n if (formDirective) {\n formDirective.resetForm();\n }\n\n this.form.controls.state.setValue(InterventionStateEnum.open);\n this.applyPrefill();\n }\n\n private getFactors(model: ModelStructureDto): SelectItem[] {\n if (model == null || model.definition == null || model.definition.factors == null) { return null; }\n var result: SelectItem[] = [];\n\n for (var factor of model.definition.factors.filter(p => p.parentKey == null)) {\n result.push(new SelectItem(factor.publicKey, factor.name, false));\n\n for (var lowerDimension of factor.lower) {\n result.push(new SelectItem(lowerDimension.publicKey, lowerDimension.name, true));\n }\n }\n\n return result;\n }\n\n private createForm(): void {\n this.form = this.formBuilder.group({\n publicKey: [\"\"],\n teamKey: [\"\", [Validators.required]],\n quickTipPublicKey: [\"\"],\n description: [\"\", [Validators.required, Validators.maxLength(500)]],\n url: [\"\", [Validators.maxLength(500)]],\n owner: [\"\", Validators.required],\n state: [\"\", Validators.required],\n type: [\"\", Validators.required],\n due: [\"\"],\n expectedImpactOn: [\"\", Validators.required]\n });\n }\n\n private applyPrefill(): void {\n if (this.prefill) {\n this.form.controls.teamKey.setValue(this.prefill.teamKey);\n this.form.controls.description.setValue(this.prefill.description);\n this.form.controls.expectedImpactOn.setValue(this.prefill.expectedImpactOn);\n this.form.controls.type.setValue(this.prefill.type);\n this.form.controls.owner.setValue(this.prefill.owner);\n this.form.controls.state.setValue(this.prefill.state);\n this.form.controls.url.setValue(this.prefill.url);\n this.form.controls.quickTipPublicKey.setValue(this.prefill.quickTipPublicKey);\n }\n else {\n this.prefill = new ActionPrefillDto();\n this.prefill.expectedImpactOn = [];\n }\n }\n\n ngOnDestroy() {\n if (this.viewStateSubscription) {\n this.viewStateSubscription.unsubscribe();\n }\n }\n}\n","<form [formGroup]=\"form\" (ngSubmit)=\"onSubmit(formDirective)\" #formDirective=\"ngForm\" class=\"manage-action-form\">\n @if (showTeamSelector) {\n <mat-form-field appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>Which team owns this action?</mat-label>\n <mat-select formControlName=\"teamKey\" id=\"teamKey\">\n @for (team of teams; track team) {\n <mat-option class=\"select-option\" [value]=\"team.key\">{{team.label}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n <mat-form-field appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>Enter short description</mat-label>\n <textarea matInput formControlName=\"description\" id=\"description\" rows=\"2\" maxlength=\"500\"></textarea>\n </mat-form-field>\n @if (!prefill.expectedImpactOn || prefill.expectedImpactOn.length == 0) {\n <mat-form-field appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>Where do you expect improvement?</mat-label>\n <mat-select multiple formControlName=\"expectedImpactOn\" id=\"expectedImpactOn\">\n @for (factor of factors; track factor) {\n <mat-option class=\"select-option\" [ngClass]=\"{'lower' : factor.lower}\" [value]=\"factor.value\">{{factor.label}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n @if (!prefill.owner) {\n <mat-form-field appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>Who owns this action?</mat-label>\n <mat-select formControlName=\"owner\" id=\"owner\">\n @for (owner of ownerList; track owner) {\n <mat-option class=\"select-option\" [value]=\"owner.key\">{{owner.label}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n @if (!prefill.type) {\n <mat-form-field appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>What is the type of action?</mat-label>\n <mat-select formControlName=\"type\" id=\"type\">\n @for (interventionType of interventionTypeList; track interventionType) {\n <mat-option class=\"select-option\" [value]=\"interventionType.key\">{{interventionType.label}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n @if (!prefill.state || action) {\n <mat-form-field appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>What is the state of this action?</mat-label>\n <mat-select formControlName=\"state\" id=\"state\">\n @for (state of stateList; track state) {\n <mat-option class=\"select-option\" [value]=\"state.key\">{{state.label}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n @if (!prefill.url || prefill.url.length == 0) {\n <mat-form-field appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>Url for additional details (e.g. JIRA or Trello)</mat-label>\n <input matInput formControlName=\"url\" id=\"url\" rows=\"1\" maxlength=\"500\">\n </mat-form-field>\n }\n <mat-form-field appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>When should it be done?</mat-label>\n <input matInput [matDatepicker]=\"picker\" formControlName=\"due\" id=\"due\">\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-datepicker #picker></mat-datepicker>\n </mat-form-field>\n <div class=\"toolbar leftright\">\n <div>\n @if (action) {\n <a class=\"button borderless delete\" href=\"javascript:void(null);\" (click)=\"delete()\" id=\"delete\"><span class=\"icon ph-trash\"></span> delete</a>\n }\n @if (form.dirty || action) {\n <a class=\"button borderless cancel\" href=\"javascript:void(null);\" (click)=\"cancel()\" id=\"cancel\"><span class=\"icon ph-x-circle\"></span> cancel</a>\n }\n </div>\n <input class=\"button primary\" type=\"submit\" id=\"submit\" value=\"save\" />\n </div>\n</form>\n","import { InterventionTypeEnum } from \"../../actions/models/actionDto\";\nimport { ModelStructureDto } from \"../../models/modelStructureDto\";\nimport { DateRangeDto } from \"../../pipes/dateRange/ngx-dateRangeDto.model\";\nimport { ParticipationRateDto } from \"./widgetDataDto\";\n\nexport class FactorScoreDto {\n name: string;\n key: string;\n score: number;\n upperConfidence: number;\n lowerConfidence: number;\n delta: number;\n deltaAvailable: boolean;\n impact: number;\n benchmark: number;\n benchmarkUpperQuartile: number;\n benchmarkLowerQuartile: number;\n points: PointDto[];\n sampleSize: number;\n qualification: QualificationEnum;\n interventionSummary: InterventionSummaryDto;\n recommendation: FactorRecommendationDto;\n effects: FactorEffectDto[];\n notes: string[];\n anonymized: boolean;\n lastMeasured: Date;\n type: string;\n}\n\nexport class FactorRecommendationDto {\n available: boolean;\n research: string;\n improve: string;\n summary: string;\n resources: FeedbackResourceDto[];\n quickTips: FeedbackQuickTipDto[];\n}\n\nexport class ProcessingDataDto {\n qualifiedBy: QualifiedByEnum;\n notes: string[];\n anonymized: boolean;\n cacheRenewsAt: Date;\n}\n\nexport class PointDto {\n publicKey: string;\n type: PointTypeEnum;\n name: string;\n normalizedScore: number;\n occurances: number;\n lowerConfidence: number;\n upperConfidence: number;\n}\n\nexport class FactorScoreCollectionDto {\n filters: FactorScoreCollectionFiltersDto;\n dateRange: DateRangeDto;\n factorScores: FactorScoreDto[];\n interventionSummary: InterventionSummaryDto;\n delta: FactorScoreCollectionDeltaDto;\n benchmark: FactorScoreCollectionBenchmarkDto;\n composition: FactorScoreCollectionCompositionDto;\n processingData: ProcessingDataDto;\n modelStructure: ModelStructureDto;\n participationRate: ParticipationRateDto;\n}\n\nexport class FactorScoreCollectionFiltersDto {\n tags: string[];\n}\n\nexport class FactorScoreCollectionDeltaDto {\n dateRange: DateRangeDto;\n available: boolean;\n teams: FactorScoreCompositionPointsDto;\n type: DeltaPeriodEnum;\n}\n\nexport class FactorScoreCollectionBenchmarkDto {\n type: BenchmarkTypeEnum;\n name: string;\n size: number;\n available: BenchmarkOptionDto[];\n}\n\nexport class BenchmarkOptionDto {\n key: string;\n name: string;\n}\n\nexport class FactorScoreCompositionPointsDto {\n count: number;\n points: FactorScoreCompositionPointDto[];\n type: PointTypeEnum;\n}\n\nexport class FactorScoreCompositionPointDto {\n name: string;\n publicKey: string;\n}\n\nexport class FactorScoreCollectionCompositionDto {\n population: number;\n segments: FactorScoreCollectionCompositionSegmentDto[];\n points: FactorScoreCompositionPointsDto;\n}\n\nexport class FactorScoreCollectionCompositionSegmentDto {\n name: string;\n occurances: number;\n}\n\nexport class InterventionSummaryDto {\n open: number;\n completed: number;\n impeded: number;\n obsolete: number;\n total: number;\n due: number;\n}\n\nexport class FeedbackResourceDto {\n publicKey: string;\n title: string;\n}\n\nexport class FeedbackQuickTipDto {\n publicKey: string;\n description: string;\n type: InterventionTypeEnum;\n}\n\nexport class FactorEffectDto {\n key: string;\n name: string;\n effect: number;\n type: EffectTypeEnum;\n}\n\nexport enum BenchmarkTypeEnum {\n NoBenchmark = \"NoBenchmark\",\n MostRecentSamples = \"MostRecentSamples\",\n TopSamplesByExperience = \"TopSamplesByExperience\",\n TopSamplesByEffectiveness = \"TopSamplesByEffectiveness\",\n topSamplesByValue = \"TopSamplesByValue\",\n TopSamplesByResponsiveness = \"TopSamplesByResponsiveness\",\n TeamsFromSameClient = \"TeamsFromSameclient\",\n TeamsFromSameBroker = \"TeamsFromSameBroker\",\n TeamsInSectorFinance = \"TeamsInSectorFinance\",\n TeamsInSectorIT = \"TeamsInSectorIT\",\n TeamsFrameworkSAFe = \"TeamsFrameworkSAFe\",\n TeamsFrameworkScrum = \"TeamsFrameworkScrum\",\n}\n\nexport enum ContextTypes {\n Unset = \"Unset\",\n Participant = \"Participant\",\n Snapshot = \"Snapshot\"\n}\n\nexport enum QualifiedByEnum {\n benchmark = \"Benchmark\",\n delta = \"Delta\",\n none = \"None\"\n}\n\nexport enum EffectTypeEnum {\n predicts = \"Predicts\",\n isPartOf = \"IsPartOf\",\n isPredictedby = \"IsPredictedBy\"\n}\n\nexport enum PointTypeEnum {\n unspecified = \"Unspecified\",\n team = \"Team\",\n segment = \"Segment\",\n individual = \"Individual\",\n client = \"Client\"\n}\n\nexport enum QualificationEnum {\n positive = \"Positive\",\n neutral = \"Neutral\",\n negative = \"Negative\"\n}\n\nexport enum DeltaPeriodEnum {\n previousMonth = \"PreviousMonth\",\n previousQuarter = \"PreviousQuarter\",\n previousYear = \"PreviousYear\",\n previousSnapshot = \"PreviousSnapshot\",\n previousHalfYear = \"PreviousHalfYear\",\n none = \"None\"\n}\n\nexport enum IncludeActionsModeEnum {\n none = \"None\",\n includeAll = \"IncludeAll\",\n includeRelevant = \"IncludeRelevant\"\n}\n","export class PagingOptions {\n page: number;\n pageSize: number;\n}\n","import { InterventionOwnerEnum, InterventionSortEnum, InterventionStateEnum, InterventionTypeEnum } from \"../actions/models/actionDto\";\nimport { BenchmarkTypeEnum, DeltaPeriodEnum, QualifiedByEnum } from \"../results/models/factorScoreDto\";\nimport { PagingOptions } from \"./pagingOptions\";\n\nexport class UserSettingsDto {\n constructor() {\n this.global = new UserGlobalSettingsDto();\n this.user = new UserSpecificSettingsDto();\n }\n\n global: UserGlobalSettingsDto;\n user: UserSpecificSettingsDto;\n}\n\nexport class UserGlobalSettingsDto {\n constructor() {\n this.deltaPeriod = DeltaPeriodEnum.previousQuarter;\n this.benchmark = BenchmarkTypeEnum.MostRecentSamples;\n this.overviewFactors = [];\n }\n\n benchmark: BenchmarkTypeEnum;\n deltaPeriod: DeltaPeriodEnum;\n qualifyBy: QualifiedByEnum;\n overviewFactors: string[];\n stacking: boolean;\n}\n\nexport class UserSpecificSettingsDto {\n constructor() {\n this.teamFilter = new TeamListFilter();\n this.userFilter = new UserListFilter();\n this.modelFilter = new ModelFilter();\n this.interventionFilter = new ActionListFilter();\n this.guideSettings = new GuideSettingsDto();\n }\n\n modelKey: string;\n teamFilter: TeamListFilter;\n userFilter: UserListFilter;\n modelFilter: ModelFilter;\n interventionFilter: ActionListFilter;\n guideSettings: GuideSettingsDto;\n teamPassword: string;\n}\n\n\nexport class GuideSettingsDto {\n constructor() {\n this.completedSteps = [];\n }\n\n activeGuideKey: string;\n completedSteps: string[];\n}\n\nexport class ModelFilter {\n constructor() {\n this.layers = [];\n this.interventionFilter = InterventionFilterType.All;\n }\n \n public interventionFilter: InterventionFilterType;\n public advanced: boolean;\n public layers: ModelVisualizationLayer[];\n}\n\nexport class ModelVisualizationLayer {\n constructor(key: string, label: string, selected: boolean = false) {\n this.key = key;\n this.label = label;\n this.selected = selected;\n }\n\n key: string;\n label: string;\n selected: boolean;\n}\n\nexport class TeamListFilter extends PagingOptions {\n constructor() {\n super();\n this.tags = [];\n }\n\n tags: string[];\n keyword: string;\n sort?: TeamSortEnum;\n status: TeamStatusEnum;\n}\n\nexport class UserListFilter extends PagingOptions {\n constructor() {\n super();\n }\n \n keyword: string;\n}\n\nexport class ActionListFilter extends PagingOptions {\n keyword: string;\n sort?: InterventionSortEnum;\n state?: InterventionStateEnum;\n owner?: InterventionOwnerEnum;\n type?: InterventionTypeEnum;\n teamKey: string;\n expectedImpactOn: string;\n}\n\nexport enum InterventionFilterType {\n All = \"All\",\n OnlyOpen = \"OnlyOpen\",\n OnlyCompleted = \"OnlyCompleted\",\n None = \"None\"\n}\n\nexport enum TeamSortEnum {\n name = \"Name\",\n created = \"Created\",\n}\n\nexport enum TeamStatusEnum {\n active = \"Active\",\n archived = \"Archived\",\n}\n","import { Inject, Injectable, InjectionToken } from '@angular/core';\nimport { LOCAL_STORAGE, StorageService } from 'ngx-webstorage-service';\nimport { Subject } from 'rxjs';\nimport { UserSettingsDto } from '../models/userSettingsDto';\n\nexport const VIEWSTATE_USERSETTINGS_STRATEGY = new InjectionToken<IUserSettingStrategy>('viewstate.usersettings.strategy');\n@Injectable({ providedIn: 'root' })\nexport class UserSettingService {\n private settings: UserSettingsDto = new UserSettingsDto();\n public changed: Subject<UserSettingsDto> = new Subject<UserSettingsDto>();\n\n constructor(@Inject(LOCAL_STORAGE) private storage: StorageService) {\n this.settings = this.storage.get(\"usersettings\") || new UserSettingsDto();\n }\n\n public set(filters: UserSettingsDto) {\n this.settings = filters;\n this.storage.set(\"usersettings\", this.settings);\n this.changed.next(this.settings);\n }\n\n public get(): UserSettingsDto {\n return this.settings;\n }\n}\n\nexport interface IUserSettingStrategy {\n apply(): Promise<void>;\n settings: UserSettingsDto\n}\n","import { Component, Directive, HostListener, Inject, Input } from '@angular/core';\nimport { MatDialog, MatDialogConfig, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { ActionDto } from '../../models/actionDto';\nimport { ActionPrefillDto } from '../../models/actionPrefillDto';\n\n@Component({\n templateUrl: './dialog-manageaction.component.html',\n styleUrls: ['./dialog-manageaction.component.less'],\n standalone: false\n})\nexport class DialogActionManageComponent {\n constructor(private dialogRef: MatDialog, @Inject(MAT_DIALOG_DATA) public data: { prefill: ActionPrefillDto, action: ActionDto }) {\n }\n\n ngOnInit() {\n }\n}\n\n@Directive({\n selector: '[addActionDialog]',\n standalone: false\n})\nexport class OpenAddActionDialogDirective {\n @Input() public prefill: ActionPrefillDto;\n\n constructor(private dialog: MatDialog) {\n }\n\n @HostListener('click')\n onClick(): void {\n const dialogConfig = new MatDialogConfig();\n dialogConfig.panelClass = 'dialog';\n dialogConfig.data = { prefill: this.prefill }\n dialogConfig.enterAnimationDuration = 0;\n dialogConfig.exitAnimationDuration = 0;\n this.dialog.open(DialogActionManageComponent, dialogConfig);\n }\n}\n\n@Directive({\n selector: '[editActionDialog]',\n standalone: false\n})\nexport class OpenEditActionDialogDirective {\n @Input() public action: ActionDto;\n\n constructor(private dialog: MatDialog) {\n }\n\n @HostListener('click')\n onClick(): void {\n const dialogConfig = new MatDialogConfig();\n dialogConfig.panelClass = 'dialog';\n dialogConfig.data = { prefill: new ActionPrefillDto(), action: this.action }\n dialogConfig.autoFocus = false;\n dialogConfig.exitAnimationDuration = 0;\n dialogConfig.enterAnimationDuration = 0;\n this.dialog.open(DialogActionManageComponent, dialogConfig);\n }\n}\n\n\n","<div class=\"dialog-header\">\n @if (!data.action) {\n <h1 mat-dialog-title>Add Action</h1>\n }\n @if (data.action) {\n <h1 mat-dialog-title>Edit Action</h1>\n }\n <div class=\"close\" mat-dialog-close><i class=\"responsive icon ph-x-bold\"></i></div>\n</div>\n<mat-dialog-content>\n <action-manage [prefill]=\"data.prefill\" [action]=\"data.action\" id=\"dialog-manageaction\"></action-manage>\n</mat-dialog-content>\n","import { Component, Inject, Input } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ActivatedRoute } from '@angular/router';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { ViewModelStateBase, VIEWSTATE_PROVIDER } from '../../../viewModel/viewModelState.service';\nimport { IActionState } from '../../interfaces/IActionState';\nimport { ActionDto, InterventionStateEnum } from '../../models/actionDto';\nimport { ActionService } from '../../services/actionService';\nimport { ActionManageComponent } from '../action-manage/action-manage.component';\n\n@Component({\n selector: 'action-tile',\n templateUrl: './action-tile.component.html',\n styleUrls: ['./action-tile.component.less'],\n standalone: false\n})\nexport class ActionTileComponent extends ComponentWithViewStateBase<IActionState> {\n @Input() public action: ActionDto;\n @Input() public multipleTeams: boolean;\n @Input() public actionManageComponent: ActionManageComponent;\n\n constructor(protected snackBar: MatSnackBar, protected actionService: ActionService, @Inject(VIEWSTATE_PROVIDER) private viewModelState: ViewModelStateBase<IActionState>, protected route: ActivatedRoute) {\n super(viewModelState, snackBar)\n }\n\n ngOnInit(): void {\n super.ngOnInit();\n }\n\n public async obsolete(event: MouseEvent, action: ActionDto): Promise<void> {\n event.stopPropagation();\n await this.changeState(action, InterventionStateEnum.obsolete);\n action.state = InterventionStateEnum.obsolete;\n }\n\n public async complete(event: MouseEvent, action: ActionDto): Promise<void> {\n event.stopPropagation();\n await this.changeState(action, InterventionStateEnum.completed);\n action.state = InterventionStateEnum.completed;\n }\n\n public async open(event: MouseEvent, action: ActionDto): Promise<void> {\n event.stopPropagation();\n await this.changeState(action, InterventionStateEnum.open);\n action.state = InterventionStateEnum.open;\n }\n\n public async impede(event: MouseEvent, action: ActionDto): Promise<void> {\n event.stopPropagation();\n await this.actionService.changeState(action.team.publicKey, action.publicKey, InterventionStateEnum.impeded);\n action.state = InterventionStateEnum.impeded;\n }\n\n public async unimpede(event: MouseEvent, action: ActionDto): Promise<void> {\n event.stopPropagation();\n await this.changeState(action, InterventionStateEnum.open);\n action.state = InterventionStateEnum.open;\n }\n\n private async changeState(action: ActionDto, state: InterventionStateEnum): Promise<void> {\n await this.actionService.changeState(action.team.publicKey, action.publicKey, state);\n this.viewModelState.reload();\n }\n\n protected onDataUpdate(data: IActionState): void {\n };\n}\n","@if (!action.deleted) {\n <div [id]=\"'action-' + action.publicKey\" class=\"wirebox action contentwithborders\" [ngClass]=\"[multipleTeams ? action.team.colorString : '', action.isDue ? 'due' : '']\" editActionDialog [action]=\"action\">\n <div class=\"summary property-description\" [innerHTML]=\"action.description\">\n </div>\n <div class=\"expectedeffect\">\n <h4>Should improve</h4>\n @for (area of action.expectedImpactOnLabels; track area) {\n <span class=\"badge positive\">{{ area }}</span>\n }\n </div>\n <div class=\"details\">\n <div class=\"properties\">\n <div class=\"property property-age\"><i class=\"ph-clock-bold icon\"></i> {{action.ageInDays}} days old</div>\n @if (multipleTeams) {\n <div class=\"property property-team\"><i class=\"ph-users-three-bold icon\"></i> {{action.team.name}}</div>\n }\n <div class=\"property property-owner\"><i class=\"ph-user-bold icon\"></i> {{action.owner | interventionOwnerToString}}</div>\n <div class=\"property property-type\"><i class=\"ph-tag-bold icon\"></i> {{action.type | interventionTypeToString}}</div>\n @if (action.url) {\n <div class=\"property property-url\"><i class=\"ph-arrow-square-in-bold icon\"></i> <a [href]=\"action.url\" target=\"_blank\" (click)=\"$event.stopPropagation()\">open detail url</a></div>\n }\n @if (action.due) {\n <div class=\"property property-due\">@if (!action.isDue) {\n <i class=\"ph-calendar-bold icon\"></i>\n }@if (action.isDue) {\n <i class=\"ph-bell-simple-ringing-bold\"></i>\n } Due on {{action.due | date}}</div>\n }\n </div>\n @if (action.state == 'Open') {\n <span class=\"status unimpeded ph-fire-simple\" matTooltip=\"Mark this item as impeded. This means that help from outside the team (e.g. management, coaches) is urgently needed to complete on this action. Impeded actions are highlighted in the Teams Dashboard.'\" (click)=\"impede($event, action)\"></span>\n }\n @if (action.state == 'Impeded') {\n <span class=\"status impeded\" matTooltip=\"This action is impeded. The team needs urgent help from outside team to complete this action.\" (click)=\"unimpede($event, action)\">\n <img src=\"/assets/img/impeded.svg\" class=\"icon\">\n </span>\n }\n <div>\n @if (action.state == 'Obsolete') {\n <span class=\"status obsolete ph-eye-slash-bold\" matTooltip=\"This action was marked obsolete. Click to re-open this action\" (click)=\"open($event, action)\"></span>\n }\n @if (action.state == 'Completed') {\n <span class=\"status checked ph-check-circle-fill\" matTooltip=\"Mark this action as uncompleted\" (click)=\"open($event, action)\"></span>\n }\n @if (action.state == 'Open' || action.state == 'Impeded') {\n <span class=\"status unchecked ph-circle\" matTooltip=\"Mark this action as completed\" (click)=\"complete($event, action)\"></span>\n }\n </div>\n </div>\n </div>\n}\n","import { Component, Directive, HostListener, Inject } from '@angular/core';\nimport { MatDialog, MatDialogConfig, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { UserSettingsDto } from '../../../models/userSettingsDto';\nimport { IUserSettingStrategy, VIEWSTATE_USERSETTINGS_STRATEGY } from '../../../viewModel/userSettings.service';\nimport { ViewModelStateBase, VIEWSTATE_PROVIDER } from '../../../viewModel/viewModelState.service';\nimport { IActionState } from '../../interfaces/IActionState';\nimport { InterventionOwnerEnum, InterventionStateEnum, InterventionTypeEnum } from '../../models/actionDto';\nimport { ActionOptionDto } from '../../models/actionOptionsDto';\nimport { ActionService } from '../../services/actionService';\n\n@Component({\n templateUrl: './dialog-filters.component.html',\n styleUrls: ['./dialog-filters.component.less'],\n standalone: false\n})\nexport class DialogActionFiltersComponent extends ComponentWithViewStateBase<IActionState> {\n public stateFilterList: ActionOptionDto[];\n public ownerFilterList: ActionOptionDto[];\n public typeFilterList: ActionOptionDto[];\n public expectedEffectOnList: ActionOptionDto[];\n public teams: ActionOptionDto[];\n public multipleTeams: boolean;\n\n constructor(@Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IActionState>, private actionService: ActionService, protected snackBar: MatSnackBar, private dialogRef: MatDialogRef<DialogActionFiltersComponent>, @Inject(VIEWSTATE_USERSETTINGS_STRATEGY) protected userSettings: IUserSettingStrategy, @Inject(MAT_DIALOG_DATA) public data: {}) {\n super(state, snackBar)\n }\n\n async ngOnInit(): Promise<void> {\n super.ngOnInit();\n\n this.stateFilterList = [];\n this.stateFilterList.push(new ActionOptionDto(null, \"Show all\"));\n this.stateFilterList.push(...this.actionService.getStateOptions());\n\n this.ownerFilterList = [];\n this.ownerFilterList.push(new ActionOptionDto(null, \"Show all\"));\n this.ownerFilterList.push(...this.actionService.getOwnerOptions());\n\n this.typeFilterList = [];\n this.typeFilterList.push(new ActionOptionDto(null, \"Show all\"));\n this.typeFilterList.push(...this.actionService.getTypeOptions());\n }\n\n protected onDataUpdate(data: IActionState): void {\n this.expectedEffectOnList = data.factorScores.factorScores.map(p => new ActionOptionDto(p.key, p.name));\n this.expectedEffectOnList.unshift(new ActionOptionDto(null, \"All\"));\n this.teams = data.teamList.names != null ? data.teamList.names.map(p => new ActionOptionDto(p.publicKey, p.name)) : [];\n this.multipleTeams = this.teams.length > 0;\n };\n\n public async applyFilters() {\n await this.userSettings.apply();\n this.dialogRef.close();\n }\n\n public async clearFilters() {\n this.userSettings.settings.user.interventionFilter.expectedImpactOn = null;\n this.userSettings.settings.user.interventionFilter.type = null;\n this.userSettings.settings.user.interventionFilter.owner = null;\n this.userSettings.settings.user.interventionFilter.state = null;\n this.userSettings.settings.user.interventionFilter.teamKey = null;\n this.userSettings.settings.user.interventionFilter.keyword = null;\n\n await this.userSettings.apply();\n this.dialogRef.close();\n }\n}\n\n@Directive({\n selector: '[actionFiltersDialog]',\n standalone: false\n})\nexport class OpenActionFiltersDialogDirective {\n constructor(private dialog: MatDialog) {\n }\n\n @HostListener('click')\n onClick(): void {\n const dialogConfig = new MatDialogConfig();\n dialogConfig.panelClass = 'dialog';\n dialogConfig.enterAnimationDuration = 0;\n dialogConfig.exitAnimationDuration = 0;\n this.dialog.open(DialogActionFiltersComponent, dialogConfig);\n }\n}\n\n","<div class=\"dialog-header\" id=\"dialog-actionfilters\">\n <h1 mat-dialog-title>Action filters</h1>\n <div class=\"close\" mat-dialog-close><i class=\"responsive icon ph-x-bold\"></i></div>\n</div>\n<mat-dialog-content>\n @if (userSettings.settings && userSettings.settings.user) {\n <div class=\"filters\">\n <mat-form-field class=\"status\" appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>Status</mat-label>\n <mat-select id=\"actions-filter-state\" [(ngModel)]=\"userSettings.settings.user.interventionFilter.state\">\n @for (state of stateFilterList; track state) {\n <mat-option class=\"select-option\" [value]=\"state.key\">{{state.label}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <mat-form-field class=\"owner\" appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>Owner</mat-label>\n <mat-select id=\"actions-filter-owner\" [(ngModel)]=\"userSettings.settings.user.interventionFilter.owner\">\n @for (state of ownerFilterList; track state) {\n <mat-option class=\"select-option\" [value]=\"state.key\">{{state.label}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n @if (multipleTeams) {\n <mat-form-field class=\"team\" appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>Team</mat-label>\n <mat-select id=\"actions-filter-team\" [(ngModel)]=\"userSettings.settings.user.interventionFilter.teamKey\">\n <mat-option class=\"select-option\" [value]=\"null\">All teams</mat-option>\n @for (team of teams; track team) {\n <mat-option class=\"select-option\" [value]=\"team.key\">{{team.label}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n <mat-form-field class=\"type\" appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>Type</mat-label>\n <mat-select id=\"actions-filter-type\" [(ngModel)]=\"userSettings.settings.user.interventionFilter.type\">\n @for (state of typeFilterList; track state) {\n <mat-option class=\"select-option\" [value]=\"state.key\">{{state.label}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <mat-form-field class=\"expectedImpactOn\" appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>Expected impact on</mat-label>\n <mat-select id=\"actions-filter-expectedImpactOn\" [(ngModel)]=\"userSettings.settings.user.interventionFilter.expectedImpactOn\">\n @for (state of expectedEffectOnList; track state) {\n <mat-option class=\"select-option\" [value]=\"state.key\">{{state.label}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <div class=\"toolbar\">\n <div class=\"button primary\" id=\"actions-filters-apply\" (click)=\"applyFilters()\">apply filters</div>\n <div class=\"button\" id=\"actions-filters-clear\" (click)=\"clearFilters()\"><span class=\"icon ph-trash\"></span>clear filters</div>\n </div>\n </div>\n }\n</mat-dialog-content>\n","export class DateRangeDto {\n from: Date;\n to: Date;\n}\n","import { DateRangeDto } from \"../../pipes/dateRange/ngx-dateRangeDto.model\";\n\nexport class ExportActionsRequestDto {\n dateRange: DateRangeDto;\n}\n","import { Component, Inject } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport * as moment from 'moment';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { DateRangeDto } from '../../../pipes/dateRange/ngx-dateRangeDto.model';\nimport { IViewState } from '../../../viewModel/interfaces';\nimport { ViewModelStateBase, VIEWSTATE_PROVIDER } from '../../../viewModel/viewModelState.service';\nimport { ExportActionsRequestDto } from '../../models/exportRequestDto';\nimport { ActionService } from '../../services/actionService';\n\n@Component({\n templateUrl: './dialog-export-actions.component.html',\n styleUrls: ['./dialog-export-actions.component.less'],\n standalone: false\n})\nexport class DialogExportActionsComponent extends ComponentWithViewStateBase<IViewState> {\n public form: FormGroup;\n public sending: boolean;\n public submitted: boolean;\n\n constructor(@Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IViewState>, protected snackBar: MatSnackBar, private actionService: ActionService, private dialogRef: MatDialogRef<DialogExportActionsComponent>, private formBuilder: FormBuilder) {\n super(state, snackBar);\n }\n\n ngOnInit() {\n this.createForm();\n this.form.controls.start.setValue(moment.utc().subtract(6, 'months').toISOString());\n this.form.controls.end.setValue(moment.utc().toISOString());\n }\n\n public async submit(): Promise<void> {\n this.submitted = true;\n if (!this.form.valid) { return; }\n\n var request = new ExportActionsRequestDto();\n request.dateRange = new DateRangeDto();\n request.dateRange.from = this.form.controls.start.value;\n request.dateRange.to = this.form.controls.end.value;\n\n this.sending = true;\n this.actionService.exportActions(request).subscribe(success => {\n let binaryData = [];\n binaryData.push(new Uint8Array([0xEF, 0xBB, 0xBF])); // UTF8 bom\n binaryData.push(success);\n let downloadLink = document.createElement('a');\n downloadLink.href = window.URL.createObjectURL(new Blob(binaryData, { type: success.type }));\n downloadLink.setAttribute('download', 'export-actions.csv');\n document.body.appendChild(downloadLink);\n downloadLink.click();\n this.dialogRef.close();\n this.sending = false;\n this.showSuccess(\"Download started. You may have to allow it in your browser.\");\n });\n }\n\n protected onDataUpdate(data: IViewState): void {\n };\n\n private createForm(): void {\n this.form = this.formBuilder.group({\n start: [{ value: \"\" }, Validators.required],\n end: [{ value: \"\" }, Validators.required],\n });\n };\n}\n","<div class=\"dialog-header\">\n <h1 mat-dialog-title>Export actions</h1>\n <div class=\"close\" mat-dialog-close><i class=\"responsive icon ph-x-bold\"></i></div>\n</div>\n<mat-dialog-content>\n <p>Export actions to .csv for your own analyses. <a href=\"https://github.com/theliberators/scrumteamsurvey.docs/wiki/Export-File-Definitions\">Our Wiki</a> has a definition.</p>\n <form [formGroup]=\"form\" (ngSubmit)=\"submit()\">\n <mat-form-field>\n <mat-label>Select date range (creation date)</mat-label>\n <mat-date-range-input [rangePicker]=\"picker\">\n <input matStartDate formControlName=\"start\" placeholder=\"Start date\">\n <input matEndDate formControlName=\"end\" placeholder=\"End date\">\n </mat-date-range-input>\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-date-range-picker #picker></mat-date-range-picker>\n @if (form.controls.start.hasError('matStartDateInvalid')) {\n <mat-error>Invalid start date</mat-error>\n }\n @if (form.controls.end.hasError('matEndDateInvalid')) {\n <mat-error>Invalid end date</mat-error>\n }\n </mat-form-field>\n\n <div class=\"toolbar\">\n <button class=\"button primary\" type=\"submit\" [ngClass]=\"{'loading': sending }\" [disabled]=\"sending\">export</button>\n <button class=\"button\" mat-dialog-close>cancel</button>\n </div>\n </form>\n</mat-dialog-content>\n","import { Directive, HostListener } from '@angular/core';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\nimport { DialogExportActionsComponent } from './dialog-export-actions.component';\n\n@Directive({\n selector: '[exportActionsDialog]',\n standalone: false\n})\nexport class OpenExportActionsDialogDirective {\n constructor(private dialog: MatDialog) {\n }\n\n @HostListener('click')\n onClick(): void {\n const dialogConfig = new MatDialogConfig();\n dialogConfig.panelClass = ['dialog', 'export'];\n dialogConfig.autoFocus = false;\n dialogConfig.enterAnimationDuration = 0;\n dialogConfig.exitAnimationDuration = 0;\n this.dialog.open(DialogExportActionsComponent, dialogConfig);\n }\n}\n","import { Component, Inject, Input, ViewChild } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ActivatedRoute } from '@angular/router';\nimport { Subscription, timer } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\nimport { PaginatorPageEvent } from '../../../components/paginator/paginator.component';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { PaginatedResponse } from '../../../models/paginatedResponse';\nimport { ActionListFilter, UserSettingsDto } from '../../../models/userSettingsDto';\nimport { IUserSettingStrategy, UserSettingService, VIEWSTATE_USERSETTINGS_STRATEGY } from '../../../viewModel/userSettings.service';\nimport { ViewModelStateBase, VIEWSTATE_PROVIDER } from '../../../viewModel/viewModelState.service';\nimport { IActionState } from '../../interfaces/IActionState';\nimport { ActionDto, InterventionSortEnum } from '../../models/actionDto';\nimport { ActionOptionDto } from '../../models/actionOptionsDto';\nimport { ActionPrefillDto } from '../../models/actionPrefillDto';\nimport { ActionService } from '../../services/actionService';\nimport { ActionManageComponent } from '../action-manage/action-manage.component';\n\n@Component({\n selector: 'action-list',\n templateUrl: './action-list.component.html',\n styleUrls: ['./action-list.component.less'],\n standalone: false\n})\nexport class ActionListComponent extends ComponentWithViewStateBase<IActionState> {\n @Input() public prefill: ActionPrefillDto;\n @Input() public overrideFilter: ActionListFilter;\n @ViewChild(ActionManageComponent) actionManageComponent: ActionManageComponent;\n public actions: PaginatedResponse<ActionDto>;\n public multipleTeams: boolean;\n public sortOptionsList: ActionOptionDto[];\n public filterCount: number;\n public keywordControl: FormControl;\n public isLoggedIn: boolean;\n public userSettings: UserSettingsDto;\n public subscription: Subscription;\n\n constructor(protected snackBar: MatSnackBar, protected userSettingsService: UserSettingService, protected actionService: ActionService, @Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IActionState>, protected route: ActivatedRoute) {\n super(state, snackBar)\n }\n\n async ngOnInit(): Promise<void> {\n super.ngOnInit();\n this.multipleTeams = this.prefill.teamKey == null || this.prefill.teamKey.length == 0;\n this.userSettings = this.userSettingsService.get();\n\n this.subscription = this.userSettingsService.changed.subscribe((settings: UserSettingsDto) => {\n this.userSettings = settings;\n });\n\n this.sortOptionsList = [];\n this.sortOptionsList.push(new ActionOptionDto(InterventionSortEnum.age, \"Age (oldest first)\"));\n this.sortOptionsList.push(new ActionOptionDto(InterventionSortEnum.due, \"Due (upcoming first)\"));\n this.sortOptionsList.push(new ActionOptionDto(InterventionSortEnum.created, \"Created (newest first)\"));\n this.sortOptionsList.push(new ActionOptionDto(InterventionSortEnum.owner, \"Owner\"));\n this.sortOptionsList.push(new ActionOptionDto(InterventionSortEnum.type, \"Action type\"));\n\n this.keywordControl = new FormControl();\n this.keywordControl.valueChanges.pipe(debounceTime(1000)).subscribe(data => {\n this.userSettings.user.interventionFilter.keyword = this.keywordControl.value;\n this.userSettings.user.interventionFilter.page = 0;\n this.loadActions();\n });\n\n if (this.overrideFilter) {\n this.userSettings.user.interventionFilter = this.overrideFilter;\n\n // this is a bit of hack to avoid Angular from throwing errors because the viewstate has been checked\n timer(0).subscribe(() => {\n this.loadActions();\n });\n }\n }\n\n public async setPaging(event: PaginatorPageEvent) {\n this.userSettings.user.interventionFilter.pageSize = event.pageSize;\n this.userSettings.user.interventionFilter.page = event.pageIndex;\n await this.loadActions();\n }\n\n public async setSort(sort: string) {\n this.userSettings.user.interventionFilter.sort = sort as InterventionSortEnum;\n await this.loadActions();\n }\n\n protected onDataUpdate(data: IActionState): void {\n this.actions = data.actions.items;\n this.isLoggedIn = data.userInfo.isAdmin || data.userInfo.isCoach;\n this.userSettings = data.userInfo.settings;\n\n this.filterCount = 0;\n if (this.userSettings.user.interventionFilter.owner != null) {\n this.filterCount++;\n }\n\n if (this.userSettings.user.interventionFilter.type != null) {\n this.filterCount++;\n }\n\n if (this.userSettings.user.interventionFilter.state != null) {\n this.filterCount++;\n }\n\n if (this.userSettings.user.interventionFilter.expectedImpactOn != null) {\n this.filterCount++;\n }\n\n if (this.userSettings.user.interventionFilter.teamKey != null) {\n this.filterCount++;\n }\n };\n\n public async loadActions() {\n this.actions.items = null;\n await this.userSettingsService.set(this.userSettings);\n this.state.forcedReload();\n document.getElementById(\"actionstoolbar\").scrollIntoView({\n behavior: \"smooth\",\n block: \"start\",\n inline: \"nearest\"\n });\n }\n}\n","<div class=\"primarycolumn\">\n <h2>Actions</h2>\n <div class=\"listtoolbar\" id=\"actionstoolbar\">\n <div class=\"listtoolbar-item settings\">\n <div class=\"button borderless filters\" id=\"actions-filters\" actionFiltersDialog><span class=\"ph-faders-horizontal-bold icon\"></span> Filters @if (filterCount > 0) {\n <span class=\"filtercount\">{{filterCount}}</span>\n }</div>\n <div class=\"button borderless sort\" id=\"actions-sort\" [matMenuTriggerFor]=\"matSortingMenu\"><span class=\"ph-funnel-simple-bold icon\"></span> {{userSettings.user.interventionFilter.sort || \"Sort\"}}</div>\n <mat-menu #matSortingMenu=\"matMenu\">\n @for (sortOption of sortOptionsList; track sortOption) {\n <button mat-menu-item (click)=\"setSort(sortOption.key)\">\n {{sortOption.label}}\n </button>\n }\n </mat-menu>\n @if (isLoggedIn) {\n <div class=\"button borderless\" id=\"export-actions\" exportActionsDialog><span class=\"ph-download-simple icon\"></span> Export</div>\n }\n </div>\n\n <mat-form-field class=\"listtoolbar-item findbykeyword\" appearance=\"fill\">\n <mat-label>search</mat-label>\n <input matInput name=\"keyword\" id=\"actions-filter-keyword\" type=\"text\" maxlength=\"50\" [formControl]=\"keywordControl\" />\n </mat-form-field>\n\n <div class=\"listtoolbar-item quickactions\">\n <!--<div class=\"viewmodes\">\n <div class=\"viewmode active\"><span class=\"ph-grid-four icon\"></span></div>\n <div class=\"viewmode\"><span class=\"ph-list icon\"></span></div>\n </div>-->\n <a class=\"button primary newaction\" id=\"action-addnew\" addActionDialog [prefill]=\"prefill\"><span class=\"icon ph-plus\"></span> New action</a>\n</div>\n</div>\n\n@if (!actions.items) {\n <div class=\"loading\">\n <div class=\"loading-icon dark\"></div>\n </div>\n}\n\n@if (actions.items && actions.items.length == 0) {\n <div class=\"wirebox calltoaction\">\n <div class=\"contentwithborders\">\n <div class=\"center\">\n <img src=\"assets/img/improve.png\" />\n <h2>How will you improve?</h2>\n <p>Identifying the areas where you want to improve is only the first step. How do you and your team(s) aim to improve? Add the actions you intend to take and where you expect improvements when successful.</p>\n </div>\n </div>\n </div>\n}\n\n@if (actions && actions.items) {\n <div class=\"actions\">\n @for (action of actions.items; track action) {\n <action-tile [action]=\"action\" [multipleTeams]=\"multipleTeams\" [actionManageComponent]=\"actionManageComponent\"></action-tile>\n }\n </div>\n}\n\n@if (actions && actions.items && actions.totalItems > 0) {\n <paginator [items]=\"actions\" (page)=\"setPaging($event)\"></paginator>\n}\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatNativeDateModule } from '@angular/material/core';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatPaginatorModule } from '@angular/material/paginator';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { RouterModule } from '@angular/router';\nimport { PaginatorModule } from '../components/paginator/paginator.module';\nimport { ActionListComponent } from './components/action-list/action-list.component';\nimport { ActionManageComponent } from './components/action-manage/action-manage.component';\nimport { ActionTileComponent } from './components/action-tile/action-tile.component';\nimport { DialogExportActionsComponent } from './dialogs/dialog-export-actions/dialog-export-actions.component';\nimport { OpenExportActionsDialogDirective } from './dialogs/dialog-export-actions/dialog-export-actions.directive';\nimport { DialogActionFiltersComponent, OpenActionFiltersDialogDirective } from './dialogs/dialog-filters/dialog-filters.component';\nimport { DialogActionManageComponent, OpenAddActionDialogDirective, OpenEditActionDialogDirective } from './dialogs/dialog-manageaction/dialog-manageaction.component';\nimport { InterventionOwnerToStringPipe } from './pipes/interventionOwnerToString.pipe';\nimport { InterventionStateToStringPipe } from './pipes/interventionStateToString.pipe';\nimport { InterventionTypeToStringPipe } from './pipes/interventionTypeToString.pipe';\n\n@NgModule({\n imports: [\n MatDialogModule,\n MatTooltipModule,\n MatNativeDateModule,\n MatMenuModule,\n MatPaginatorModule,\n MatSelectModule,\n RouterModule,\n PaginatorModule,\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n MatInputModule,\n MatDatepickerModule],\n declarations: [\n ActionListComponent,\n ActionManageComponent,\n ActionTileComponent,\n DialogActionManageComponent,\n DialogActionFiltersComponent,\n DialogExportActionsComponent,\n InterventionTypeToStringPipe,\n InterventionStateToStringPipe,\n InterventionOwnerToStringPipe,\n OpenAddActionDialogDirective,\n OpenEditActionDialogDirective,\n OpenActionFiltersDialogDirective,\n OpenExportActionsDialogDirective],\n exports: [\n ActionListComponent,\n ActionManageComponent,\n ActionTileComponent,\n DialogActionManageComponent,\n DialogActionFiltersComponent,\n DialogExportActionsComponent,\n InterventionTypeToStringPipe,\n InterventionOwnerToStringPipe,\n InterventionStateToStringPipe,\n OpenAddActionDialogDirective,\n OpenEditActionDialogDirective,\n OpenActionFiltersDialogDirective,\n OpenExportActionsDialogDirective]\n})\nexport class ActionsModule { }\n","export class PaginatedResponse<Dto> {\n constructor() {\n this.items = [];\n }\n\n items: Dto[];\n totalItems: number;\n page: number;\n itemsPerPage: number;\n}\n","import { PaginatedResponse } from \"../../models/paginatedResponse\";\nimport { ActionDto } from \"./actionDto\";\n\nexport class ActionCollectionDto {\n constructor() {\n this.items = new PaginatedResponse<ActionDto>;\n }\n\n items: PaginatedResponse<ActionDto>;\n}\n","import { Inject, Injectable, InjectionToken, Optional } from '@angular/core';\n\nexport class ActionConfigDto {\n}\n\nexport const ActionConfigToken = new InjectionToken<ActionConfigDto>(\n 'actions-angular.config'\n);\n\n@Injectable({ providedIn: 'root' })\nexport class ActionClientConfig {\n private config?: ActionConfigDto;\n\n constructor(@Optional() @Inject(ActionConfigToken) config?: ActionConfigDto) {\n if (config) {\n this.set(config);\n }\n }\n\n set(config: ActionConfigDto): void {\n this.config = config;\n }\n\n get(): ActionConfigDto {\n return this.config as ActionConfigDto;\n }\n}\n","import { ICalendarEvent } from './../model/calendar-event.model';\n\nexport const MS_IN_MINUTES = 60 * 1000;\nexport const DATE_POCTUATION_REGEX = /-|:|\\.\\d+/g;\n\nexport abstract class BaseCalendarGenerator {\n protected startTime: string;\n protected endTime: string;\n protected description: string;\n\n public abstract get href(): string;\n\n constructor(protected event: ICalendarEvent) {\n this.startTime = this.formatTime(event.start);\n this.endTime = this.calculateEndTime(event);\n this.description = this.formatDescription(event.description || '');\n }\n\n protected get uid(): string {\n return (this.s4()\n + this.s4()\n + '-' + this.s4()\n + '-4' + this.s4().substr(0, 3)\n + '-' + this.s4()\n + '-' + this.s4()\n + this.s4()\n + this.s4()).toLowerCase();\n }\n\n protected formatDescription(description: string): string {\n return description.replace(/'/g, '\\'');\n }\n\n protected formatDescriptionForOnlineCalendar(description: string): string | null {\n if (description.length) {\n return description.replace(/\\\\r/g, '\\n').replace(/\\\\n/g, '\\n');\n }\n\n return null;\n }\n\n protected formatTime(date: Date): string {\n return date.toISOString().replace(DATE_POCTUATION_REGEX, '');\n }\n\n protected calculateEndTime(event: any): string {\n if (event.end) {\n return this.formatTime(event.end);\n }\n\n if (!event.duration) {\n throw new Error('You have to provide either the duration or end');\n }\n\n return this.formatTime(new Date(event.start.getTime() + (event.duration * MS_IN_MINUTES)));\n }\n\n private s4(): string {\n // tslint:disable-next-line\n return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);\n }\n}\n","import { ICalendarEvent } from '../model/calendar-event.model';\nimport { BaseCalendarGenerator } from './base-calendar.generator';\n\nexport const GOOGLE_URL = 'https://www.google.com/calendar/render?action=TEMPLATE';\nexport const DATE_POCTUATION_REGEX = /-|:|\\.\\d+/g;\n\nexport class GoogleCalendarGenerator extends BaseCalendarGenerator {\n\n constructor(protected event: ICalendarEvent) {\n super(event);\n }\n\n public get href(): string {\n const chunk = encodeURI(\n `${GOOGLE_URL}&dates=${(this.startTime || '')}/${(this.endTime || '')}&location=${(this.event.address || '')}&sprop=${(this.event.url || '')}`,\n );\n\n return chunk\n + `&text=${encodeURIComponent(this.event.title || '')}`\n + `&details=${encodeURIComponent(this.formatDescriptionForOnlineCalendar(this.event.description || '') || '')}`;\n }\n}\n","import { ICalendarEvent } from '../model/calendar-event.model';\nimport { BaseCalendarGenerator } from './base-calendar.generator';\n\nexport class IcsCalendarGenerator extends BaseCalendarGenerator {\n\n constructor(protected event: ICalendarEvent) {\n super(event);\n }\n\n public get href(): string {\n return encodeURI(\n 'data:text/calendar;charset=utf8,' + [\n 'BEGIN:VCALENDAR',\n 'PRODID:-//Destination Search//ical4j 1.0//EN',\n 'VERSION:2.0',\n 'CALSCALE:GREGORIAN',\n 'X-MS-OLK-FORCEINSPECTOROPEN:true',\n 'METHOD:PUBLISH',\n 'BEGIN:VEVENT',\n `URL:${this.event.url || ''}`,\n `DTSTART:${(this.startTime || '')}`,\n `DTEND:${(this.endTime || '')}`,\n `SUMMARY:${(this.event.title || '')}`,\n `DESCRIPTION:${(this.event.description || '')}`,\n `LOCATION:${(this.event.address || '')}`,\n 'SEQUENCE:0',\n `DTSTAMP:${this.dtStamp}`,\n `UID:${this.uid}`,\n 'END:VEVENT',\n 'END:VCALENDAR'].join('\\n'));\n }\n\n private get dtStamp() {\n return this.formatTime(new Date());\n }\n}\n","import { ICalendarEvent } from '../model/calendar-event.model';\nimport { BaseCalendarGenerator } from './base-calendar.generator';\n\n// tslint:disable-next-line\nexport const OUTLOOK_BASE_URL = 'https://outlook.live.com/owa/?rru=addevent&path=%2fcalendar%2fview%2fMonth&authRedirect=true&realm=live.com&whr=live.com&CBCXT=out&fl=wld';\nexport const DATE_POCTUATION_REGEX = /-|:|\\.\\d+/g;\n\nexport class OutlookCalendarGenerator extends BaseCalendarGenerator {\n\n constructor(protected event: ICalendarEvent) {\n super(event);\n }\n\n public get href(): string {\n const chunk = encodeURI(\n `${OUTLOOK_BASE_URL}&startdt=${(this.startTime || '')}&enddt=${(this.endTime || '')}&uid=${this.uid}&location=${this.event.address}`);\n\n return chunk\n + `&subject=${encodeURIComponent(this.event.title || '')}`\n + `&body=${encodeURIComponent(this.formatDescriptionForOnlineCalendar(this.event.description || '') || '')}`;\n }\n}\n","import { ICalendarEvent } from '../model/calendar-event.model';\nimport { BaseCalendarGenerator, MS_IN_MINUTES } from './base-calendar.generator';\n\nexport const YAHOO_URL = 'http://calendar.yahoo.com/?v=60&view=d&type=20';\n\nexport class YahooCalendarGenerator extends BaseCalendarGenerator {\n\n constructor(protected event: ICalendarEvent) {\n super(event);\n }\n\n private getYahooEventDuration() {\n const eventDuration = this.event.end ?\n ((this.event.end.getTime() - this.event.start.getTime()) / MS_IN_MINUTES) :\n this.event.duration;\n\n // Yahoo dates are crazy, we need to convert the duration from minutes to hh:mm\n const yahooHourDuration = eventDuration < 600 ?\n `0${Math.floor((eventDuration / 60))}` :\n `${Math.floor((eventDuration / 60))}`;\n\n const yahooMinuteDuration = eventDuration % 60 < 10 ?\n `0${eventDuration % 60}` :\n `${eventDuration % 60}`;\n\n return yahooHourDuration + yahooMinuteDuration;\n }\n\n public get href(): string {\n const chunk = encodeURI(\n `${YAHOO_URL}&st=${this.startTime || ''}&dur=${(this.getYahooEventDuration() || '')}&in_loc=${(this.event.address || '')}&url=${(this.event.url || '')}`,\n );\n return chunk\n + `&title=${encodeURIComponent(this.event.title || '')}`\n + `&desc=${encodeURIComponent(this.formatDescriptionForOnlineCalendar(this.event.description || '') || '')}`;\n }\n}\n","export enum CalendarTypeEnum {\n google = 0,\n yahoo = 1,\n iCalendar = 2,\n outlook = 3,\n outlookLive = 4,\n}\n","import { Injectable } from '@angular/core';\nimport { BaseCalendarGenerator } from './../generators/base-calendar.generator';\nimport { GoogleCalendarGenerator } from './../generators/google-calendar.generator';\nimport { IcsCalendarGenerator } from './../generators/ics-calendar.generator';\nimport { OutlookCalendarGenerator } from './../generators/outlook-calendar.generator';\nimport { YahooCalendarGenerator } from './../generators/yahoo-calendar.generator';\nimport { CalendarTypeEnum } from './../model/calendar-type.enum';\nimport { ICalendarEvent } from './../model/calendar-event.model';\n\n@Injectable()\nexport class NgAddToCalendarService {\n\n public calendarType: typeof CalendarTypeEnum = CalendarTypeEnum;\n\n public getHrefFor(type: CalendarTypeEnum, event: ICalendarEvent): string {\n const generatorType = this.getGeneratorFor(type) as any;\n\n return (new generatorType(event) as BaseCalendarGenerator).href;\n }\n\n // tslint:disable-next-line:member-ordering\n private _factory: typeof BaseCalendarGenerator[] = [\n GoogleCalendarGenerator,\n YahooCalendarGenerator,\n IcsCalendarGenerator,\n IcsCalendarGenerator,\n OutlookCalendarGenerator\n ];\n\n private getGeneratorFor(type: CalendarTypeEnum): typeof BaseCalendarGenerator {\n return this._factory[type];\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { NgAddToCalendarService } from './service/ng-add-to-calendar.service';\n\n// REFERENCE: Codebase from https://github.com/TradeMe/ngAddToCalendar/tree/master/src. We moved it to the project to benefit from ES6 compilation\n@NgModule({\n declarations: [],\n providers: [NgAddToCalendarService],\n exports: []\n})\n\nexport class NgAddToCalendarModule { }\n","export class DismissAlertRequestDto {\n keys: string[];\n\n // set only the narrowest one of these three, and no more than one\n snapshotKey: string;\n participantKey: string;\n teamKey: string;\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ApiConfig } from '../../apiUrlToken';\nimport { VIEWSTATE_PROVIDER, ViewModelStateBase } from '../../viewModel/viewModelState.service';\nimport { IAlertState } from '../interfaces/IAlertState';\nimport { DismissAlertRequestDto } from '../models/dismissAlertRequestDto.model';\n\n@Injectable()\nexport class AlertService {\n constructor(@Inject(VIEWSTATE_PROVIDER) protected state: ViewModelStateBase<IAlertState>, private http: HttpClient, @Inject(ApiConfig) private config: ApiConfig) {\n console.log(\"Config for alert client set\", config);\n }\n\n public dismiss(request: DismissAlertRequestDto): Observable<void> {\n this.state.reload();\n return this.http.post<void>(this.config.get().apiUrl + \"alerts/dismiss/\", request);\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { LOCAL_STORAGE, StorageService } from 'ngx-webstorage-service';\nimport { AlertDto } from '../models/alertDto.model';\n\n@Injectable({ providedIn: 'root' })\nexport class DismissedAlertsService {\n public dismissedAlerts: string[];\n\n constructor(@Inject(LOCAL_STORAGE) private storage: StorageService) {\n this.dismissedAlerts = this.storage.get(\"dismissed-alerts\") || [];\n }\n\n public dismiss(alert: AlertDto): void {\n if (!alert) { return; }\n if (this.isDismissed(alert)) { return; }\n this.dismissedAlerts.push(alert.key);\n this.storage.set(\"dismissed-alerts\", this.dismissedAlerts);\n }\n\n public isDismissed(alert: AlertDto): boolean {\n return this.dismissedAlerts.find(p => p == alert.key) != null;\n }\n\n public clear(): void {\n this.storage.remove(\"dismissed-alerts\");\n this.dismissedAlerts = [];\n }\n}\n","import { Component, Inject, Input } from '@angular/core';\nimport { PageEvent } from '@angular/material/paginator';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { LOCAL_STORAGE, StorageService } from 'ngx-webstorage-service';\nimport { Subscription } from 'rxjs';\nimport { ComponentBase } from '../../../componentBase';\nimport { PaginatedResponse } from '../../../models/paginatedResponse';\nimport { ViewModelStateBase, VIEWSTATE_PROVIDER } from '../../../viewModel/viewModelState.service';\nimport { IAlertState } from '../../interfaces/IAlertState';\nimport { AlertDto } from '../../models/alertDto.model';\nimport { AlertFilterDto } from '../../models/alertFilterDto.model';\nimport { DismissAlertRequestDto } from '../../models/dismissAlertRequestDto.model';\nimport { AlertService } from '../../services/alerts.service';\nimport { DismissedAlertsService } from '../../services/dismissedAlerts.service';\n\n@Component({\n selector: 'alerts',\n templateUrl: './alerts.component.html',\n styleUrls: ['./alerts.component.less'],\n standalone: false\n})\nexport class AlertsComponent extends ComponentBase {\n @Input() public pageSize: number = 10;\n @Input() public onlyUnread: boolean = false;\n private allAlerts: PaginatedResponse<AlertDto>;\n private unreadAlerts: PaginatedResponse<AlertDto>;\n public filteredAlerts: AlertDto[];\n public filter: AlertFilterDto = { itemsPerPage: this.pageSize, page: 0, totalItems: 0 };\n public viewStateSubscription: Subscription;\n\n constructor(private alertService: AlertService, private dismissedAlertService: DismissedAlertsService, protected snackBar: MatSnackBar, @Inject(VIEWSTATE_PROVIDER) private viewModelState: ViewModelStateBase<IAlertState>) {\n super(snackBar);\n }\n\n ngOnInit(): void {\n this.viewStateSubscription = this.viewModelState.data.subscribe(success => {\n if (success && success.loaded) {\n this.allAlerts = success.alerts.alerts;\n this.unreadAlerts = success.unreadAlerts;\n this.selectAlerts();\n }\n });\n\n this.selectAlerts();\n }\n\n public isDismissed(alert: AlertDto) {\n if (alert.isDismissed) { return true; }\n return this.dismissedAlertService.isDismissed(alert);\n }\n\n public setPaging(event: PageEvent) {\n this.filter.itemsPerPage = event.pageSize;\n this.filter.page = event.pageIndex;\n this.selectAlerts();\n }\n\n private selectAlerts() {\n if (!this.allAlerts) { return; }\n\n if (this.onlyUnread) {\n this.filteredAlerts = this.unreadAlerts.items;\n }\n else {\n this.filteredAlerts = this.allAlerts.items;\n }\n\n this.filter.itemsPerPage = this.pageSize;\n this.filter.totalItems = this.filteredAlerts.length;\n\n var startIndex = this.filter.page * this.filter.itemsPerPage;\n if (startIndex >= this.allAlerts.items.length) { startIndex = 0 };\n\n this.filteredAlerts = this.filteredAlerts\n .slice(startIndex, startIndex + this.filter.itemsPerPage);\n }\n\n public dismiss(alert: AlertDto) {\n if (alert.canBeDismissed) {\n var request = new DismissAlertRequestDto();\n request.keys = [alert.key];\n this.alertService.dismiss(request).subscribe(success => {\n alert.isDismissed = true;\n });\n }\n else {\n this.dismissedAlertService.dismiss(alert);\n this.unreadAlerts.items = this.unreadAlerts.items.filter(p => p.key != alert.key);\n }\n\n this.showSuccess(\"Alert dismissed. You can still find it in your archive.\");\n this.selectAlerts();\n }\n\n ngOnDestroy() {\n if (this.viewStateSubscription) {\n this.viewStateSubscription.unsubscribe();\n }\n }\n}\n","@if (filteredAlerts && filteredAlerts.length > 0) {\n <div class=\"alerts\">\n @for (alert of filteredAlerts; track alert) {\n <div class=\"alert-item\">\n <div class=\"description\" [innerHtml]=\"alert.body\"></div>\n <div class=\"bar\">\n @if (alert.urgency == 'warning') {\n <span class=\"icon ph-warning-fill\"></span>\n }\n @if (alert.urgency == 'information') {\n <span class=\"icon ph-info\"></span>\n }\n @if (alert.urgency == 'critical') {\n <span class=\"icon ph-circle-wavy-warning-fill\"></span>\n }\n <div class=\"date\">\n {{alert.posted | date : 'short'}}\n </div>\n @if (alert.url) {\n <div class=\"action\"><a target=\"_blank\" [href]=\"alert.url\">Explore ></a></div>\n }\n @if (!isDismissed(alert)) {\n <div class=\"dismiss\"><a href=\"javascript:void(null);\" (click)=\"dismiss(alert)\">Dismiss</a></div>\n }\n </div>\n </div>\n }\n </div>\n}\n\n@if (!filteredAlerts || filteredAlerts.length == 0) {\n <div class=\"wirebox calltoaction\">\n <div class=\"contentwithborders\">\n <div class=\"center\">\n <p>There are no alert. Or you've dismissed all.</p>\n </div>\n </div>\n </div>\n}\n\n@if (filteredAlerts && filteredAlerts.length > filter.itemsPerPage) {\n <mat-paginator [length]=\"filter.totalItems\" hidePageSize=\"true\" [pageSize]=\"filter.itemsPerPage\" (page)=\"setPaging($event)\"></mat-paginator>\n}\n","import { Component, Inject } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\n\n@Component({\n templateUrl: './dialog-alerts.component.html',\n styleUrls: ['./dialog-alerts.component.less'],\n standalone: false\n})\nexport class DialogAlertsComponent {\n public key: string;\n public archiveUrl: any[];\n\n constructor(public dialogRef: MatDialogRef<DialogAlertsComponent>, @Inject(MAT_DIALOG_DATA) public data: { archiveUrl: any[] }) {\n this.archiveUrl = data.archiveUrl;\n }\n\n ngOnInit() {\n }\n}\n","<div class=\"dialog-header\">\n <h1 mat-dialog-title>Alerts</h1>\n <div class=\"close\" mat-dialog-close><i class=\"responsive icon ph-x-bold\"></i></div>\n</div>\n<mat-dialog-content>\n <alerts [pageSize]=\"4\" [onlyUnread]=\"true\"></alerts>\n <div class=\"link\">\n <a href=\"javascript:void(null);\" [routerLink]=\"archiveUrl\" mat-dialog-close>archive ></a>\n </div>\n</mat-dialog-content>\n","import { Directive, HostListener, Input } from '@angular/core';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\nimport { DialogAlertsComponent } from './dialog-alerts.component';\n\n@Directive({\n selector: '[alertsDialog]',\n standalone: false\n})\nexport class OpenAlertsDialogDirective {\n @Input('archiveUrl') archiveUrl: any[] = ['/alerts'];\n\n constructor(private dialog: MatDialog) {\n }\n\n @HostListener('click')\n onClick(): void {\n const dialogConfig = new MatDialogConfig();\n dialogConfig.panelClass = ['dialog', 'alerts'];\n dialogConfig.autoFocus = false;\n dialogConfig.enterAnimationDuration = 0;\n dialogConfig.exitAnimationDuration = 0;\n dialogConfig.data = { archiveUrl: this.archiveUrl }\n this.dialog.open(DialogAlertsComponent, dialogConfig);\n }\n}\n\n","import { Component, Inject } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { VIEWSTATE_PROVIDER, ViewModelStateBase } from '../../../viewModel/viewModelState.service';\nimport { IAlertState } from '../../interfaces/IAlertState';\nimport { AlertDto } from '../../models/alertDto.model';\nimport { DismissedAlertsService } from '../../services/dismissedAlerts.service';\n\n@Component({\n selector: 'alert-announcement',\n templateUrl: './alert-announcement.component.html',\n styleUrls: ['./alert-announcement.component.less'],\n standalone: false\n})\nexport class AlertAnnouncementComponent extends ComponentWithViewStateBase<IAlertState> {\n public announcement: AlertDto;\n\n constructor(@Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IAlertState>, protected snackBar: MatSnackBar, private dismissedAlertService: DismissedAlertsService) {\n super(state, snackBar)\n }\n\n public dismiss() {\n this.dismissedAlertService.dismiss(this.announcement);\n this.announcement = null;\n }\n\n protected onDataUpdate(data: IAlertState): void {\n if (!data.alerts.announcement) { return; }\n if (this.dismissedAlertService.isDismissed(data.alerts.announcement)) { return; }\n this.announcement = data.alerts.announcement;\n };\n}\n","@if (announcement) {\n <div class=\"announcement\">\n <span class=\"icon ph-info-fill\"></span>\n {{announcement.title}}@if (announcement.url) {\n <a class=\"action\" [href]=\"announcement.url\" target=\"_blank\"><span class=\"icon ph-arrow-square-out\"></span>visit</a>\n }\n <span class=\"icon ph-x-circle dismiss\" (click)=\"dismiss()\"></span>\n</div>\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatPaginatorModule } from '@angular/material/paginator';\nimport { RouterModule } from '@angular/router';\nimport { StorageServiceModule } from 'ngx-webstorage-service';\nimport { AlertsComponent } from './components/alerts-list/alerts.component';\nimport { DialogAlertsComponent } from './components/dialog-alerts/dialog-alerts.component';\nimport { OpenAlertsDialogDirective } from './components/dialog-alerts/dialog-alerts.directive';\nimport { DismissedAlertsService } from './services/dismissedAlerts.service';\nimport { AlertAnnouncementComponent } from './components/alert-announcement/alert-announcement.component';\n\n@NgModule({\n imports: [MatDialogModule, MatPaginatorModule, RouterModule, CommonModule, StorageServiceModule],\n declarations: [AlertsComponent, OpenAlertsDialogDirective, DialogAlertsComponent, AlertAnnouncementComponent],\n exports: [AlertsComponent, OpenAlertsDialogDirective, DialogAlertsComponent, AlertAnnouncementComponent],\n providers: [DismissedAlertsService]\n})\nexport class AlertsModule { }\n","export class AlertDto {\n key: string;\n title: string;\n body: string;\n posted: Date;\n isDismissed: boolean;\n canBeDismissed: boolean;\n urgency: string;\n url: string;\n}\n","export class AlertFilterDto {\n itemsPerPage: number;\n totalItems: number;\n page: number;\n}\n","import { PaginatedResponse } from \"../../models/paginatedResponse\";\nimport { AlertDto } from \"./alertDto.model\";\n\nexport class AlertResponseDto {\n constructor() {\n this.alerts = new PaginatedResponse<AlertDto>();\n }\n\n alerts: PaginatedResponse<AlertDto>;\n announcement: AlertDto;\n}\n","import { Inject, Injectable, InjectionToken, Optional } from '@angular/core';\nexport class AlertConfigDto {\n}\n\nexport const AlertConfigToken = new InjectionToken<AlertConfigDto>(\n 'alert-angular.config'\n);\n\n@Injectable({ providedIn: 'root' })\nexport class AlertClientConfig {\n private config?: AlertConfigDto;\n\n constructor(@Optional() @Inject(AlertConfigToken) config?: AlertConfigDto) {\n if (config) {\n this.set(config);\n }\n }\n\n set(config: AlertConfigDto): void {\n this.config = config;\n }\n\n get(): AlertConfigDto {\n return this.config as AlertConfigDto;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { BrandingSettingsDto } from '../models/brandingSettingsDto';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class BrandingProvider {\n public palette: PaletteItem[];\n public changed = new Subject<PaletteItem[]>();\n public branding = new Subject<BrandingSettingsDto>();\n public currentBranding: BrandingSettingsDto;\n\n constructor() {\n }\n\n public set(branding: BrandingSettingsDto) {\n this.palette = [];\n this.palette.push(new PaletteItem(\"accent\", branding.accentColor));\n this.palette.push(new PaletteItem(\"theme\", branding.themeColor));\n this.palette.push(new PaletteItem(\"neutral\", branding.neutralColor));\n\n this.currentBranding = branding;\n this.branding.next(branding);\n this.changed.next(this.palette);\n }\n}\n\nexport class PaletteItem {\n constructor(key: string, hex: string) {\n this.key = key;\n this.hex = hex;\n }\n\n key: string;\n hex: string;\n}\n","import { Directive, HostBinding, Input } from '@angular/core';\nimport { take } from 'rxjs/operators';\nimport { BrandingProvider, PaletteItem } from './brandingProvider.service';\n\n@Directive({\n selector: '[brandbackground]',\n standalone: false\n})\nexport class BrandBackgroundDirective {\n @Input(\"palette\") palette: string = null;\n @HostBinding('style.background-color') backgroundColor: string;\n private paletteItems: PaletteItem[] = [];\n\n constructor(private brandingProvider: BrandingProvider) {\n this.brandingProvider.changed.pipe(take(1)).subscribe(success => {\n this.paletteItems = success;\n this.setColor();\n });\n }\n\n public ngOnInit() {\n this.paletteItems = this.brandingProvider.palette;\n this.setColor();\n }\n\n private setColor() {\n if (this.paletteItems == null) { return; }\n var paletteItem = this.paletteItems.find(p => p.key == this.palette);\n if (paletteItem == null) {\n console.log(\"Can't find color for Palette Key [\" + this.palette + \"]\");\n }\n else {\n this.backgroundColor = paletteItem.hex;\n }\n }\n}\n","import { Directive, HostBinding, HostListener, Input } from '@angular/core';\nimport { take } from 'rxjs/operators';\nimport { BrandingProvider, PaletteItem } from './brandingProvider.service';\n\n@Directive({\n selector: '[brandConditionalBackgroundColor]',\n standalone: false\n})\nexport class BrandConditionalBackgroundColorDirective {\n @Input(\"palette\") defaultColor: string = null;\n @Input(\"activePalette\") activeColor: string = null;\n @Input(\"active\") active: boolean = false;\n @HostBinding('style.background-color') backgroundColor: string;\n private loadedDefaultColor: PaletteItem;\n private loadedActiveColor: PaletteItem;\n\n constructor(private brandingProvider: BrandingProvider) {\n this.brandingProvider.changed.pipe(take(1)).subscribe(success => {\n this.setColors();\n });\n }\n\n public ngOnInit() {\n }\n\n public ngOnChanges() {\n this.setColors();\n\n }\n private setColors() {\n this.loadedDefaultColor = this.getColor(this.defaultColor);\n this.loadedActiveColor = this.getColor(this.activeColor);\n this.backgroundColor = this.active ? this.loadedActiveColor.hex : this.loadedDefaultColor.hex;\n }\n\n private getColor(paletteKey: string): PaletteItem {\n if (this.brandingProvider.palette == null) { return; }\n var paletteItem = this.brandingProvider.palette.find(p => p.key == paletteKey);\n if (paletteItem != null) { return paletteItem; }\n\n paletteItem = new PaletteItem(paletteKey, paletteKey);\n return paletteItem;\n }\n}\n","import { Directive, HostBinding, HostListener, Input } from '@angular/core';\nimport { take } from 'rxjs/operators';\nimport { BrandingProvider, PaletteItem } from './brandingProvider.service';\n\n@Directive({\n selector: '[brandConditionalColor]',\n standalone: false\n})\nexport class BrandConditionalColorDirective {\n @Input(\"palette\") defaultColor: string = null;\n @Input(\"activePalette\") activeColor: string = null;\n @Input(\"active\") active: boolean = false;\n @HostBinding('style.background-color') backgroundColor: string;\n @HostBinding('style.color') textColor: string;\n private loadedDefaultColor: PaletteItem;\n private loadedActiveColor: PaletteItem;\n\n constructor(private brandingProvider: BrandingProvider) {\n this.brandingProvider.changed.pipe(take(1)).subscribe(success => {\n this.setColors();\n });\n }\n\n public ngOnInit() {\n this.setColors();\n }\n\n public ngOnChanges() {\n this.setColors();\n\n }\n private setColors() {\n this.loadedDefaultColor = this.getColor(this.defaultColor);\n this.loadedActiveColor = this.getColor(this.activeColor);\n this.backgroundColor = this.active ? this.loadedActiveColor.hex : this.loadedDefaultColor.hex;\n this.textColor = this.active ? this.loadedDefaultColor.hex : this.loadedActiveColor.hex;\n }\n\n private getColor(paletteKey: string): PaletteItem {\n if (this.brandingProvider.palette == null) { return; }\n var paletteItem = this.brandingProvider.palette.find(p => p.key == paletteKey);\n if (paletteItem != null) { return paletteItem; }\n\n paletteItem = new PaletteItem(paletteKey, paletteKey);\n return paletteItem;\n }\n}\n","import { Directive, HostBinding, HostListener, Input } from '@angular/core';\nimport { take } from 'rxjs/operators';\nimport { BrandingProvider, PaletteItem } from './brandingProvider.service';\n\n@Directive({\n selector: '[brandHoverColor]',\n standalone: false\n})\nexport class BrandHoverColorDirective {\n @Input(\"palette\") defaultColor: string = null;\n @Input(\"hoverPalette\") hoverColor: string = null;\n @HostBinding('style.background-color') backgroundColor: string;\n @HostBinding('style.color') textColor: string;\n private loadedDefaultColor: PaletteItem;\n private loadedHoverColor: PaletteItem;\n\n constructor(private brandingProvider: BrandingProvider) {\n this.brandingProvider.changed.pipe(take(1)).subscribe(success => {\n this.setColors();\n });\n }\n\n private getColor(paletteKey: string): PaletteItem {\n if (this.brandingProvider.palette == null) { return; }\n var paletteItem = this.brandingProvider.palette.find(p => p.key == paletteKey);\n if (paletteItem != null) { return paletteItem; }\n\n paletteItem = new PaletteItem(paletteKey, paletteKey);\n return paletteItem;\n }\n\n public ngOnInit() {\n this.setColors();\n }\n\n private setColors() {\n this.loadedDefaultColor = this.getColor(this.defaultColor);\n this.loadedHoverColor = this.getColor(this.hoverColor);\n this.backgroundColor = this.loadedDefaultColor.hex;\n this.textColor = this.loadedHoverColor.hex;\n }\n\n @HostListener('mouseover') mouseOver() {\n if (!this.hoverColor) { return; }\n\n if (this.loadedHoverColor) {\n this.backgroundColor = this.loadedHoverColor.hex;\n }\n\n if (this.loadedDefaultColor) {\n this.textColor = this.loadedDefaultColor.hex;\n }\n }\n\n @HostListener('mouseleave') mouseLeave() {\n if (!this.hoverColor) { return; }\n\n if (this.loadedDefaultColor) {\n this.backgroundColor = this.loadedDefaultColor.hex;\n }\n\n if (this.loadedHoverColor) {\n this.textColor = this.loadedHoverColor.hex;\n }\n }\n}\n","export class BrandingSettingsDto {\n accentColor: string;\n themeColor: string;\n backgroundColor: string;\n neutralColor: string;\n logoUrl: string;\n publicKey: string;\n platformName: string;\n platformLearnMoreUrl: string;\n name: string;\n companyUrl: string;\n isDefault: boolean;\n hasBroker: boolean;\n channelKey: string;\n channelName: string;\n channelSubscribeUrl: string;\n channelCompanyUrl: string;\n channelPrivacyPolicyUrl: string;\n channelTermsOfUseUrl: string;\n channelAccentColor: string;\n channelThemeColor: string;\n channelPlatformName: string;\n contentBranding: ContentBrandingDto;\n brokerUrl: string;\n teamReportUrl: string;\n teamsDashboardUrl: string;\n}\n\nexport class ContentBrandingDto {\n settings: Record<string, string>[];\n signature: string;\n}\n","import { BrandingSettingsDto } from \"./brandingSettingsDto\";\n\nexport class ChannelDto {\n publicKey: string;\n name: string;\n branding: ChannelDefaultBrandingDto;\n siteUrl: string;\n poweredBy: string;\n pitch: string;\n navigationUrls: NavigationUrlDto[];\n};\n\nexport class ChannelDefaultBrandingDto extends BrandingSettingsDto {\n logoLargeUrl: string;\n}\n\nexport class NavigationUrlDto {\n name: string;\n url: string;\n category: NavigationUrlTypeEnum;\n icon: string;\n children: NavigationUrlDto[];\n}\n\nexport enum NavigationUrlTypeEnum {\n MainMenuCTA = \"MainMenuCTA\",\n MainMenu = \"MainMenu\",\n Resources = \"Resources\",\n Support = \"Support\",\n SocialMedia = \"SocialMedia\",\n Legal = \"Legal\"\n}\n","import { HttpBackend, HttpClient } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ApiConfig } from '../../apiUrlToken';\nimport { ContactDto } from './contactDto';\n\n@Injectable()\nexport class ContactService {\n // this uses HttpBackend because we want to circumvent the authinjector that we normally apply to httpclient, and require a login\n constructor(private handler: HttpBackend, @Inject(ApiConfig) private config: ApiConfig) {\n }\n\n public send(contact: ContactDto): Observable<any> {\n return new HttpClient(this.handler).post<ContactDto>(this.config.get().apiUrl + 'contact/', contact);\n }\n}\n","import { Component, Inject } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { Subscription } from 'rxjs';\nimport { ContextItemDto } from '../../models/contextItemDto';\nimport { IViewState } from '../../viewModel/interfaces';\nimport { VIEWSTATE_PROVIDER, ViewModelStateBase } from '../../viewModel/viewModelState.service';\nimport { ContactDto } from './contactDto';\nimport { ContactService } from './contactService.service';\nimport { ContactTypeDto } from './contactTypeDto';\n\n@Component({\n templateUrl: './dialog-support.component.html',\n styleUrls: ['./dialog-support.component.less'],\n standalone: false\n})\nexport class DialogSupportComponent { // don't inherit from baseclass that requires a viewstate, otherwise we can't use this component in errorpages\n public form: FormGroup;\n public title: string;\n public textAreaLabel: string;\n public sending: boolean;\n public success: boolean;\n public error: string;\n public submitted: boolean;\n public typePrefilled: boolean;\n private context: ContextItemDto[];\n private stateStoreSubscription: Subscription;\n\n public contactTypes: ContactTypeDto[] = [\n { id: 0, label: \"I'd like to share my feedback\" },\n { id: 1, label: \"I'm running into problems\" },\n { id: 2, label: \"I'm looking for help for my team\" },\n { id: 3, label: \"I have a question\" },\n { id: 4, label: \"Contact sales\" }\n ]\n\n constructor(@Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IViewState>, public dialogRef: MatDialogRef<DialogSupportComponent>, @Inject(MAT_DIALOG_DATA) public data: { type: number }, private contactService: ContactService, protected snackBar: MatSnackBar, private formBuilder: FormBuilder) {\n this.stateStoreSubscription = this.state.data.subscribe((success: IViewState) => {\n this.context = success.context;\n });\n }\n\n ngOnInit() {\n this.createForm();\n\n if (this.data != null) {\n this.form.controls.type.setValue(this.data.type);\n this.typePrefilled = true;\n }\n }\n\n public submitContactForm(): void {\n this.submitted = true;\n this.error = null;\n if (!this.form.valid) { return; }\n this.sending = true;\n this.success = false;\n\n var request: ContactDto = {\n type: this.form.get(\"type\").value,\n fromEmail: this.form.get(\"email\").value,\n body: this.form.get(\"body\").value,\n requests: [],\n context: this.context\n }\n\n this.contactService.send(request).subscribe(success => {\n this.sending = false;\n this.success = true;\n\n setTimeout(() => {\n this.success = false;\n this.dialogRef.close();\n }, 3000);\n }, error => {\n this.sending = false;\n this.error = error.message != null ? error.message : \"An unknown error occured. Please e-mail info@theliberatorsimproveyourteam.org instead.\";\n })\n }\n\n private createForm(): void {\n this.form = this.formBuilder.group({\n type: [\"\", Validators.required],\n email: [\"\", Validators.email],\n body: [\"\", Validators.required]\n });\n };\n}\n","<div class=\"dialog-header\">\n @if (form.controls.type.value == 0) {\n <h1 mat-dialog-title>Share feedback</h1>\n }\n @if (form.controls.type.value == 1) {\n <h1 mat-dialog-title>Report bug</h1>\n }\n @if (form.controls.type.value == 2) {\n <h1 mat-dialog-title>Ask for help</h1>\n }\n @if (form.controls.type.value == 3) {\n <h1 mat-dialog-title>Ask a question</h1>\n }\n @if (form.controls.type.value == 4) {\n <h1 mat-dialog-title>Contact sales</h1>\n }\n <div class=\"close\" mat-dialog-close><i class=\"responsive icon ph-x-bold\"></i></div>\n</div>\n<mat-dialog-content>\n @if (!success) {\n <form [formGroup]=\"form\">\n @if (form.controls.type.value == 0) {\n <p>We'd love to hear your feedback, and will do our best to improve!</p>\n }\n @if (form.controls.type.value == 1) {\n <p>We're sorry you ran into a bug. Tell us what happend and we'll fix it.</p>\n }\n @if (form.controls.type.value == 2) {\n <p>Looking for help? Let us know how we can assist you best.</p>\n }\n @if (form.controls.type.value == 3) {\n <p>Got a question for us? Let us know and we'll get back quickly.</p>\n }\n @if (form.controls.type.value == 4) {\n <p>Lets us know how we can help you.</p>\n }\n @if (error) {\n <div class=\"errors\">\n {{error}}\n </div>\n }\n @if (!typePrefilled) {\n <mat-form-field class=\"type\" appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>Type of request</mat-label>\n <mat-select formControlName=\"type\" id=\"question-type\">\n @for (item of contactTypes; track item) {\n <mat-option class=\"select-option\" [value]=\"item.id\">{{item.label}}</mat-option>\n }\n </mat-select>\n @if (form.controls.type.errors && submitted) {\n <mat-error>\n @if (form.controls.type.errors.required) {\n <div>Please select the type of request</div>\n }\n </mat-error>\n }\n </mat-form-field>\n }\n <mat-form-field appearance=\"fill\" subscriptSizing=\"dynamic\">\n @if (form.controls.type.value == 0) {\n <mat-label>What would you like us to improve?</mat-label>\n }\n @if (form.controls.type.value == 1) {\n <mat-label>Please describe the problem</mat-label>\n }\n @if (form.controls.type.value == 2) {\n <mat-label>How can we help you?</mat-label>\n }\n @if (form.controls.type.value == 3) {\n <mat-label>Please describe your question</mat-label>\n }\n @if (form.controls.type.value == 4) {\n <mat-label>What are you looking for?</mat-label>\n }\n <textarea formControlName=\"body\" id=\"question-description\" matInput></textarea>\n @if (form.controls.body.errors && submitted) {\n <mat-error>\n @if (form.controls.body.errors.required) {\n <div>Please enter this field</div>\n }\n </mat-error>\n }\n </mat-form-field>\n <mat-form-field appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>Your e-mail address (optional)</mat-label>\n <input matInput formControlName=\"email\" id=\"question-email\" type=\"email\">\n @if (form.controls.email.errors && submitted) {\n <mat-error>\n @if (form.controls.email.errors.email) {\n <div>Please provide a valid e-mail</div>\n }\n </mat-error>\n }\n </mat-form-field>\n <button class=\"button primary\" type=\"submit\" [ngClass]=\"{'loading': sending }\" (click)=\"submitContactForm()\">submit</button>\n </form>\n }\n @if (success) {\n <div class=\"confirmation\">\n <p>Thank you for contacting us. We will contact you shorthly to resolve your question, feedback or issue. This window will close automatically in a few seconds.</p>\n </div>\n }\n</mat-dialog-content>\n","import { Directive, HostListener } from '@angular/core';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\nimport { DialogSupportComponent } from './dialog-support.component';\n\n@Directive({\n selector: '[supportDialog]',\n standalone: false\n})\nexport class OpenSupportDialogDirective {\n constructor(private dialog: MatDialog) {\n }\n\n @HostListener('click')\n onClick(): void {\n const dialogConfig = new MatDialogConfig();\n dialogConfig.panelClass = ['dialog', 'support'];\n dialogConfig.data = { type: 2 };\n dialogConfig.autoFocus = false;\n dialogConfig.enterAnimationDuration = 0;\n dialogConfig.exitAnimationDuration = 0;\n this.dialog.open(DialogSupportComponent, dialogConfig);\n }\n}\n\n@Directive({\n selector: '[feedbackDialog]',\n standalone: false\n})\nexport class OpenFeedbackDialogDirective {\n constructor(private dialog: MatDialog) {\n }\n\n @HostListener('click')\n onClick(): void {\n const dialogConfig = new MatDialogConfig();\n dialogConfig.panelClass = ['dialog','support'];\n dialogConfig.data = { type: 0 };\n dialogConfig.autoFocus = false;\n dialogConfig.enterAnimationDuration = 0;\n dialogConfig.exitAnimationDuration = 0;\n this.dialog.open(DialogSupportComponent, dialogConfig);\n }\n}\n\n@Directive({\n selector: '[lookingForHelpDialog]',\n standalone: false\n})\nexport class OpenLookingForHelpDialog {\n constructor(private dialog: MatDialog) {\n }\n\n @HostListener('click')\n onClick(): void {\n const dialogConfig = new MatDialogConfig();\n dialogConfig.panelClass = ['dialog', 'support'];\n dialogConfig.data = { type: 2 };\n dialogConfig.autoFocus = false;\n dialogConfig.enterAnimationDuration = 0;\n dialogConfig.exitAnimationDuration = 0;\n this.dialog.open(DialogSupportComponent, dialogConfig);\n }\n}\n\n@Directive({\n selector: '[reportBugDialog]',\n standalone: false\n})\nexport class OpenReportBugDialogDirective {\n constructor(private dialog: MatDialog) {\n }\n\n @HostListener('click')\n onClick(): void {\n const dialogConfig = new MatDialogConfig();\n dialogConfig.panelClass = ['dialog', 'support'];\n dialogConfig.data = { type: 1 };\n dialogConfig.autoFocus = false;\n dialogConfig.enterAnimationDuration = 0;\n dialogConfig.exitAnimationDuration = 0;\n this.dialog.open(DialogSupportComponent, dialogConfig);\n }\n}\n\n@Directive({\n selector: '[contactSalesDialog]',\n standalone: false\n})\nexport class OpenContactSalesDialog {\n constructor(private dialog: MatDialog) {\n }\n\n @HostListener('click')\n onClick(): void {\n const dialogConfig = new MatDialogConfig();\n dialogConfig.panelClass = ['dialog', 'support'];\n dialogConfig.data = { type: 4 };\n dialogConfig.autoFocus = false;\n dialogConfig.enterAnimationDuration = 0;\n dialogConfig.exitAnimationDuration = 0;\n this.dialog.open(DialogSupportComponent, dialogConfig);\n }\n}\n","import { Component, Inject } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { IViewState } from '../../../viewModel/interfaces';\nimport { VIEWSTATE_PROVIDER, ViewModelStateBase } from '../../../viewModel/viewModelState.service';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { ChannelDto, NavigationUrlDto, NavigationUrlTypeEnum } from '../../../models/channelDto';\n@Component({\n selector: 'site-default-footer',\n templateUrl: './site-default-footer.component.html',\n styleUrls: ['./site-default-footer.component.less'],\n standalone: false\n})\nexport class SiteDefaultFooterComponent extends ComponentWithViewStateBase<IViewState> {\n public error: string\n public channel: ChannelDto;\n public mainMenu: NavigationUrlDto[];\n public socialMediaMenu: NavigationUrlDto[];\n public resourcesMenu: NavigationUrlDto[];\n public supportMenu: NavigationUrlDto[];\n\n constructor(@Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IViewState>, snackBar: MatSnackBar) {\n super(state, snackBar)\n }\n\n async ngOnInit(): Promise<void> {\n super.ngOnInit();\n }\n\n protected onDataUpdate(data: IViewState): void {\n this.channel = data.channel;\n this.mainMenu = data.channel.navigationUrls.filter(p => p.category.toString() == NavigationUrlTypeEnum.MainMenu.toString());\n this.socialMediaMenu = data.channel.navigationUrls.filter(p => p.category == NavigationUrlTypeEnum.SocialMedia);\n this.resourcesMenu = data.channel.navigationUrls.filter(p => p.category == NavigationUrlTypeEnum.Resources);\n this.supportMenu = data.channel.navigationUrls.filter(p => p.category == NavigationUrlTypeEnum.Support);\n };\n}\n","@if (loaded) {\n <footer>\n <div class=\"section-content\">\n <div class=\"footer-columns\">\n <div class=\"footer-column footer-about\">\n <h4>About</h4>\n <div [innerHtml]=\"channel.pitch\"></div>\n </div>\n <div class=\"footer-column footer-links\">\n <h4>Pages</h4>\n <ul>\n @for (item of mainMenu; track item) {\n <li><a [href]=\"item.url\">{{item.name}}</a></li>\n }\n </ul>\n </div>\n <div class=\"footer-column footer-links\">\n <h4>Resources</h4>\n <ul>\n @for (item of resourcesMenu; track item) {\n <li><a [href]=\"item.url\" target=\"_blank\">{{item.name}}</a></li>\n }\n </ul>\n </div>\n <div class=\"footer-column footer-links\">\n <h4>Support</h4>\n <ul>\n @for (item of supportMenu; track item) {\n <li><a [href]=\"item.url\" target=\"_blank\">{{item.name}}</a></li>\n }\n <li><a [routerLink]=\"[]\" supportDialog id=\"footer-support\">Contact us</a></li>\n <li><a [routerLink]=\"[]\" reportBugDialog id=\"footer-reportbug\">Report a bug</a></li>\n </ul>\n </div>\n </div>\n </div>\n <div class=\"section-content\">\n <div class=\"footer-bottom\">\n <a class=\"footer-logo\" [href]=\"channel.siteUrl\">\n @if (channel.branding.logoLargeUrl) {\n <img class=\"responsive\" [src]=\"channel.branding.logoLargeUrl\" [title]=\"channel.name\" />\n }\n </a>\n <div class=\"footer-socialmedia\">\n @for (item of socialMediaMenu; track item) {\n <a class=\"footer-socialmedia-icon\" [href]=\"item.url\" target=\"_blank\"><span [class]=\"'ph ' + item.icon\"></span></a>\n }\n </div>\n </div>\n <div class=\"footer-companyinformation\">\n {{channel.poweredBy}}\n </div>\n </div>\n </footer>\n}\n","import { animate, state, style, transition, trigger } from '@angular/animations';\nimport { Component, Inject } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { IViewState } from '../../../viewModel/interfaces';\nimport { VIEWSTATE_PROVIDER, ViewModelStateBase } from '../../../viewModel/viewModelState.service';\nimport { ChannelDto, NavigationUrlDto, NavigationUrlTypeEnum } from '../../../models/channelDto';\n\n@Component({\n selector: 'site-default-header',\n templateUrl: './site-default-header.component.html',\n styleUrls: ['./site-default-header.component.less'],\n animations: [\n trigger('openClose', [\n state('true', style({\n height: 'auto',\n width: '300px',\n opacity: 1.0\n })),\n state('false', style({\n height: '0',\n width: '0',\n opacity: 0,\n display: 'none'\n })),\n transition('false <=> true', animate(200))\n ])\n ],\n host: {\n \"(window:click)\": \"onClick()\"\n },\n standalone: false\n})\nexport class SiteDefaultHeaderComponent extends ComponentWithViewStateBase<IViewState > {\n public visible: boolean = false;\n public channel: ChannelDto;\n public mainMenu: NavigationUrlDto[];\n public cta: NavigationUrlDto;\n\n constructor(@Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IViewState>, snackBar: MatSnackBar) {\n super(state, snackBar)\n }\n\n async ngOnInit(): Promise<void> {\n super.ngOnInit();\n }\n\n public toggleMenu($event) {\n $event.stopPropagation();\n this.visible = !this.visible;\n }\n\n public onClick() {\n this.visible = false;\n }\n\n protected onDataUpdate(data: IViewState): void {\n this.channel = data.channel;\n this.mainMenu = data.channel.navigationUrls.filter(p => p.category.toString() == NavigationUrlTypeEnum.MainMenu.toString());\n this.cta = data.channel.navigationUrls.find(p => p.category.toString() == NavigationUrlTypeEnum.MainMenuCTA.toString());\n };\n}\n","@if (channel) {\n <header>\n <a class=\"header header-logo\" [href]=\"channel.siteUrl\">\n @if (channel.branding.logoLargeUrl) {\n <img class=\"responsive\" [src]=\"channel.branding.logoLargeUrl\" [title]=\"channel.name\"/>\n }\n </a>\n <div class=\"header header-nav\">\n <div class=\"nav nav-main\" (click)=\"toggleMenu($event)\">\n <div class=\"menu\" role=\"navigation\" [@openClose]=\"visible ? true : false\">\n <div class=\"menu-close\">close</div>\n <ul>\n @for (item of mainMenu; track item) {\n <li>\n @if (item.url) {\n <a [href]=\"item.url\">{{item.name}}</a>\n }\n @if (!item.url) {\n <span>{{item.name}}</span>\n }\n </li>\n @if (item.children) {\n <li>\n <ul>\n @for (child of item.children; track child) {\n <li><a [href]=\"item.url\">{{child.name}}</a></li>\n }\n </ul>\n </li>\n }\n }\n </ul>\n </div>\n <div class=\"label\">\n Menu\n </div>\n </div>\n @if (cta) {\n <a class=\"nav nav-try responsive-hidesmall\" [href]=\"cta.url\">\n {{cta.name}}\n </a>\n }\n </div>\n </header>\n}\n","import { Component, Inject } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ChannelDto, NavigationUrlDto, NavigationUrlTypeEnum } from '../../../models/channelDto';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { VIEWSTATE_PROVIDER, ViewModelStateBase } from '../../../viewModel/viewModelState.service';\nimport { IViewState } from '../../../viewModel/interfaces';\n\n@Component({\n selector: 'footer[site-micro-footer]',\n templateUrl: './site-micro-footer.component.html',\n styleUrls: ['./site-micro-footer.component.less'],\n standalone: false\n})\nexport class SiteMicroFooterComponent extends ComponentWithViewStateBase<IViewState> {\n public channel: ChannelDto;\n public legalMenu: NavigationUrlDto[];\n\n constructor(@Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IViewState>, snackBar: MatSnackBar) {\n super(state, snackBar)\n }\n\n async ngOnInit(): Promise<void> {\n super.ngOnInit();\n }\n\n protected onDataUpdate(data: IViewState): void {\n this.channel = data.channel;\n this.legalMenu = data.channel.navigationUrls.filter(p => p.category.toString() == NavigationUrlTypeEnum.Legal.toString());\n };\n}\n","@if (loaded) {\n @for (item of legalMenu; track item) {\n <div class=\"item\"><a [href]=\"item.url\">{{item.name}}</a></div>\n }\n <div class=\"item\" id=\"footer-reportbug\"><a [routerLink]=\"[]\" reportBugDialog>Report a bug</a></div>\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatOptionModule } from '@angular/material/core';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\nimport { ContactService } from './contactService.service';\nimport { DialogSupportComponent } from './dialog-support.component';\nimport { OpenContactSalesDialog, OpenFeedbackDialogDirective, OpenLookingForHelpDialog, OpenReportBugDialogDirective, OpenSupportDialogDirective } from './dialog-support.directive';\n\n@NgModule({\n imports: [FormsModule, MatSelectModule, MatSnackBarModule, MatInputModule, CommonModule, ReactiveFormsModule, MatOptionModule, MatDialogModule],\n declarations: [DialogSupportComponent, OpenFeedbackDialogDirective, OpenReportBugDialogDirective, OpenLookingForHelpDialog, OpenSupportDialogDirective, OpenContactSalesDialog],\n exports: [DialogSupportComponent, OpenFeedbackDialogDirective, OpenReportBugDialogDirective, OpenLookingForHelpDialog, OpenSupportDialogDirective, OpenContactSalesDialog],\n providers: [ContactService]\n})\nexport class DialogSupportModule { }\n","import { NgModule } from '@angular/core';\nimport { BrandBackgroundDirective } from './brandBackground.directive';\nimport { BrandConditionalColorDirective } from './brandConditionalColor.directive';\nimport { BrandHoverColorDirective } from './brandHoverColor.directive';\nimport { BrandingProvider } from './brandingProvider.service';\nimport { SiteDefaultFooterComponent } from './components/site-default-footer/site-default-footer.component';\nimport { SiteDefaultHeaderComponent } from './components/site-default-header/site-default-header.component';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\nimport { SiteMicroFooterComponent } from './components/site-micro-footer/site-micro-footer.component';\nimport { DialogSupportModule } from '../dialogs/dialog-support/dialog-support.module';\nimport { BrandConditionalBackgroundColorDirective } from './brandConditionalBackgroundColor.directive';\n\n@NgModule({\n imports: [\n CommonModule,\n RouterModule,\n DialogSupportModule\n ],\n declarations: [\n BrandBackgroundDirective,\n BrandHoverColorDirective,\n BrandConditionalBackgroundColorDirective,\n BrandConditionalColorDirective,\n SiteDefaultFooterComponent,\n SiteDefaultHeaderComponent,\n SiteMicroFooterComponent\n ],\n exports: [\n BrandBackgroundDirective,\n BrandHoverColorDirective,\n BrandConditionalColorDirective,\n BrandConditionalBackgroundColorDirective,\n SiteDefaultFooterComponent,\n SiteDefaultHeaderComponent,\n SiteMicroFooterComponent\n ],\n providers: [\n BrandingProvider\n ]\n})\nexport class BrandingModule { }\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\n\n@Component({\n selector: 'checkbox',\n templateUrl: './checkbox.component.html',\n styleUrls: ['./checkbox.component.less'],\n standalone: false\n})\nexport class CheckboxComponent implements ControlValueAccessor {\n @Input() label: string;\n @Input() disabled = false;\n @Output() onCheckChange = new EventEmitter<boolean>();\n @Input() checked: boolean = false;\n\n constructor() {\n }\n\n ngOnInit() {\n }\n\n public toggle() {\n if (!this.disabled) {\n this.checked = !this.checked;\n this.writeValue(this.checked);\n this.onCheckChange.emit(this.checked);\n }\n }\n\n onChange = (rating: boolean) => { };\n\n onTouched = () => { };\n\n writeValue(checked: boolean): void {\n this.checked = checked;\n this.onChange(this.checked);\n }\n\n get value(): boolean {\n return this.checked;\n }\n\n registerOnChange(fn: (rating: boolean) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n}\n","<div class=\"checkbox\" [ngClass]=\"{'checked': checked, 'unchecked': !checked}\">\n @if (checked) {\n <div class=\"checkbox-check checked ph-check-circle-fill\" (click)=\"toggle()\"></div>\n }\n @if (!checked) {\n <div class=\"checkbox-check unchecked ph-circle\" (click)=\"toggle()\"></div>\n }\n <div class=\"label\" [innerHtml]=\"label\"></div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { CheckboxComponent } from './checkbox.component';\n\n@NgModule({\n imports: [\n CommonModule],\n declarations: [\n CheckboxComponent],\n exports: [\n CheckboxComponent]\n})\nexport class CheckboxModule { }\n\n","import { Component, Input } from '@angular/core';\n@Component({\n selector: 'expand',\n templateUrl: './expand.component.html',\n styleUrls: ['./expand.component.less'],\n standalone: false\n})\nexport class ExpandComponent {\n @Input() items: ExpandItemDto[];\n @Input() theme: string;\n @Input() numbering: boolean = true;\n public categories: string[];\n public selected: number;\n\n constructor() {\n }\n\n ngOnInit() {\n var categories = this.items.map(p => p.category);\n this.categories = categories.filter((value, index) => categories.indexOf(value) === index);\n }\n\n public expand(index: number) {\n if (index == this.selected) {\n this.selected = null;\n }\n else {\n this.selected = index;\n }\n }\n}\n\nexport class ExpandItemDto {\n constructor(index: number, category: string, label: string, body: string) {\n this.category = category;\n this.index = index;\n this.label = label;\n this.body = body;\n }\n\n index: number;\n category: string;\n label: string;\n body: string;\n}\n","<div class=\"expand\" [ngClass]=\"theme\">\n @for (category of categories; track category) {\n <div class=\"expand-category\">\n @if (categories.length > 0) {\n <div class=\"expand-item-category-title\">{{category}}</div>\n }\n @for (item of items; track item) {\n @if (item.category == category) {\n <div class=\"expand-item\">\n <div class=\"expand-header\" (click)=\"expand(item.index)\">\n @if (numbering) {\n <div class=\"expand-header-number\">{{item.index}}</div>\n }\n <div class=\"expand-header-label\">{{item.label}}</div>\n @if (selected == item.index) {\n <div class=\"expand-header-expand ph-minus-bold\"></div>\n }\n @if (selected != item.index) {\n <div class=\"expand-header-expand ph-plus-bold\"></div>\n }\n </div>\n @if (selected == item.index) {\n <div class=\"body\" [innerHtml]=\"item.body\">\n </div>\n }\n </div>\n }\n }\n </div>\n }\n\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ExpandComponent } from './expand.component';\n\n@NgModule({\n imports: [\n CommonModule],\n declarations: [\n ExpandComponent],\n exports: [\n ExpandComponent]\n})\nexport class ExpandModule { }\n\n","import { Component, Inject, Input } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ComponentWithViewStateBase } from '../../componentWithViewStateBase';\nimport { ViewModelStateBase, VIEWSTATE_PROVIDER } from '../../viewModel/viewModelState.service';\nimport { IViewState } from '../../viewModel/interfaces';\n\n@Component({\n selector: 'loading',\n templateUrl: './loading.component.html',\n styleUrls: ['./loading.component.less'],\n standalone: false\n})\nexport class LoadingComponent extends ComponentWithViewStateBase<IViewState> { \n @Input() public showLoading: boolean = false;\n @Input() public message: string = \"We're loading your data ...\";\n public ready: boolean = true;\n\n constructor(@Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IViewState>, protected snackBar: MatSnackBar) {\n super(state, snackBar);\n }\n\n protected onDataUpdate(data: IViewState): void {\n }\n}\n","@if (!loaded || showLoading) {\n <div class=\"loading\">\n <div class=\"top\">\n <div class=\"pleasewait\">{{message}}</div>\n <div class=\"loading-icon dark\"></div>\n </div>\n </div>\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { LoadingComponent } from './loading.component';\n\n@NgModule({\n imports: [\n CommonModule],\n declarations: [\n LoadingComponent],\n exports: [\n LoadingComponent]\n})\nexport class LoadingModule { }\n\n","import { COMMA, ENTER } from '@angular/cdk/keycodes';\nimport { Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';\nimport { UntypedFormBuilder, UntypedFormControl, UntypedFormGroup } from '@angular/forms';\nimport { MatAutocompleteSelectedEvent } from '@angular/material/autocomplete';\nimport { MatChipInputEvent } from '@angular/material/chips';\nimport { Observable } from 'rxjs';\nimport { map, startWith } from 'rxjs/operators';\n\n@Component({\n selector: 'mat-tags',\n templateUrl: './mat-tags.component.html',\n styleUrls: ['./mat-tags.component.less'],\n standalone: false\n})\nexport class MatTagsComponent {\n public form: UntypedFormGroup;\n public newTagControl: UntypedFormControl = new UntypedFormControl();\n public filteredTags: Observable<string[]>;\n @Input() public allTags: string[] = [];\n public tags: string[] = [];\n @Output() tagsChangedEvent = new EventEmitter<string[]>();\n @ViewChild('tagInput') tagInput: ElementRef<HTMLInputElement>;\n public separatorKeysCodes: number[] = [ENTER, COMMA];\n\n constructor(private formBuilder: UntypedFormBuilder) {\n this.createForm();\n this.filteredTags = this.form.controls.tags.valueChanges.pipe(startWith(null), map((tag: string | null) => (tag ? this.filter([tag]) : this.allTags.slice())));\n }\n\n public ngOnInit() {\n }\n\n private createForm(): void {\n this.form = this.formBuilder.group({\n tags: [\"\"]\n });\n };\n\n public add(event: MatChipInputEvent): void {\n const value = (event.value || '').trim();\n if (value == '') { return; }\n\n if (value && this.tags.indexOf(value) == -1) {\n this.tags.push(value);\n this.tagsChangedEvent.emit(this.tags);\n }\n\n event.chipInput!.clear();\n this.form.controls.tags.setValue(null);\n }\n\n public remove(tag: string): void {\n const index = this.tags.indexOf(tag);\n\n if (index >= 0) {\n this.tags.splice(index, 1);\n this.tagsChangedEvent.emit(this.tags);\n }\n }\n\n private filter(value: string[]): string[] {\n if (value == null) { return; }\n if (value[0] == null) { return; }\n const filterValue = value[0].toLowerCase();\n return this.allTags.filter(tag => tag != null && tag.toLowerCase().includes(filterValue));\n }\n\n public selected(event: MatAutocompleteSelectedEvent): void {\n if (this.tags.indexOf(event.option.viewValue) == -1) {\n this.tags.push(event.option.viewValue);\n this.tagsChangedEvent.emit(this.tags);\n }\n\n this.tagInput.nativeElement.value = '';\n this.form.controls.tags.setValue(null);\n }\n}\n","<div class=\"mat-form-field\">\n <div class=\"form-label\">Add tags to organize and filter clients</div>\n <mat-form-field appearance=\"fill\">\n <mat-chip-grid #tagList aria-label=\"Tags\" id=\"tags-selecttag\">\n @for (tag of tags; track tag) {\n <mat-chip-row (removed)=\"remove(tag)\">\n {{tag}}\n <span class=\"icon ph-trash-fill\" matChipRemove></span>\n </mat-chip-row>\n }\n <input placeholder=\"New tag ...\" id=\"tags-newtag\" #tagInput [formControl]=\"newTagControl\" [matAutocomplete]=\"auto\" [matChipInputFor]=\"tagList\" [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\" (matChipInputTokenEnd)=\"add($event)\">\n </mat-chip-grid>\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"selected($event)\">\n @for (tag of filteredTags | async; track tag) {\n <mat-option class=\"select-option\" [value]=\"tag\">{{tag}}</mat-option>\n }\n </mat-autocomplete>\n </mat-form-field>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatTagsComponent } from './mat-tags.component';\n\n@NgModule({\n imports: [\n MatAutocompleteModule,\n FormsModule,\n MatFormFieldModule,\n ReactiveFormsModule,\n CommonModule,\n MatChipsModule,\n MatInputModule],\n declarations: [\n MatTagsComponent],\n exports: [\n MatTagsComponent]\n})\nexport class MatTagsModule { }\n","\nexport class KeyValueDto {\n constructor(key: string, value: string) {\n this.key = key;\n this.value = value;\n }\n\n key: string;\n value: string;\n}\n","import { Component, EventEmitter, HostListener, Input, Output, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, FormArray, FormBuilder, FormGroup, NG_VALUE_ACCESSOR, Validators } from '@angular/forms';\nimport { KeyValueDto } from '../../models/keyValueDto';\n\n@Component({\n selector: 'metadata-input',\n templateUrl: './metadata-input.component.html',\n styleUrls: ['./metadata-input.component.less'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MetaDataInputComponent),\n multi: true\n }\n ],\n standalone: false\n})\nexport class MetaDataInputComponent implements ControlValueAccessor {\n public form: FormGroup;\n @Input() maximum: number;\n @Input() addLabel: string;\n @Input() emptyLabel: string;\n @Output() changed = new EventEmitter<KeyValueDto[]>();\n\n constructor(private formBuilder: FormBuilder) {\n this.form = this.formBuilder.group({\n fields: this.formBuilder.array([])\n });\n }\n\n ngOnInit() {\n this.form.valueChanges.subscribe(() => {\n this.onChange(this.getValue());\n });\n }\n\n onChange: any = () => { };\n onTouch: any = () => { };\n\n writeValue(fields: KeyValueDto[]): void {\n if (fields && fields.length) {\n var fieldControls = fields.map(field => this.createField(field));\n this.form.setControl('fields', this.formBuilder.array(fieldControls));\n }\n }\n\n public getValue(): KeyValueDto[] {\n return this.fields().controls\n .filter(control => control.valid && control.value.key && control.value.value)\n .map(control => new KeyValueDto(control.value.key, control.value.value));\n }\n\n public registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n public registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n\n public setDisabledState?(isDisabled: boolean): void {\n isDisabled ? this.form.disable() : this.form.enable();\n }\n\n public addField() {\n var group = this.fields();\n\n if (group.controls.length > 0) {\n var lastField = group.controls[group.controls.length - 1];\n if (!lastField.value || !lastField.value.value) { return; }\n }\n\n var value = this.getValue();\n group.push(this.createField(null));\n this.onChange(value);\n this.changed.emit(value);\n }\n\n public removeField(index: number) {\n this.fields().removeAt(index);\n var value = this.getValue();\n this.onChange(value);\n this.changed.emit(value);\n }\n\n public fields(): FormArray {\n return this.form.get(\"fields\") as FormArray;\n }\n\n private createField(field: KeyValueDto) {\n return this.formBuilder.group({\n key: [field != null ? field.key : null, [Validators.required, Validators.maxLength(50)]],\n value: [field != null ? field.value : null, [Validators.required, Validators.maxLength(50)]]\n })\n }\n}\n","<form [formGroup]=\"form\" class=\"metadatafields\" id=\"component-metadata\">\n @if (fields().controls.length == 0 && emptyLabel) {\n <div>{{emptyLabel}}</div>\n }\n <ng-container formArrayName=\"fields\">\n @for (item of fields().controls; track item; let i = $index) {\n <div class=\"question metadatafield\" [formGroupName]=\"i\">\n <div class=\"question-body text\">\n <mat-form-field appearance=\"fill\" class=\"metadatafield-key\" subscriptSizing=\"dynamic\">\n <mat-label>Key</mat-label>\n <input matInput formControlName=\"key\" required maxlength=\"50\" name=\"metadatafield-key\">\n </mat-form-field>\n <mat-form-field appearance=\"fill\" class=\"metadatafield-key\" subscriptSizing=\"dynamic\">\n <mat-label>Value</mat-label>\n <input matInput formControlName=\"value\" required maxlength=\"50\" name=\"metadatafield-value\">\n </mat-form-field>\n <div class=\"delete\" [id]=\"'action-removemetadatafield-' + i\" (click)=\"removeField(i)\"><span class=\"icon ph-trash-bold\"></span></div>\n </div>\n </div>\n }\n </ng-container>\n @if (maximum == 0 || fields().controls.length < maximum) {\n <button id=\"action-addmetadatafield\" (click)=\"addField()\" class=\"subactionbutton\"><span class=\"icon ph-plus-bold\"></span>{{addLabel ?? \"Add\"}}</button>\n }\n</form>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MetaDataInputComponent } from './metadata-input.component';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n MatFormFieldModule,\n ReactiveFormsModule,\n MatInputModule],\n declarations: [\n MetaDataInputComponent],\n exports: [\n MetaDataInputComponent]\n})\nexport class MetadataInputModule { }\n\n","import { Component, EventEmitter, HostListener, Input, Output, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, FormArray, FormBuilder, FormControl, FormGroup, NG_VALUE_ACCESSOR, Validators } from '@angular/forms';\n\n@Component({\n selector: 'multi-email-input',\n templateUrl: './multi-email-input.component.html',\n styleUrls: ['./multi-email-input.component.less'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MultiEmailInputComponent),\n multi: true\n }\n ],\n standalone: false\n})\nexport class MultiEmailInputComponent implements ControlValueAccessor {\n public form: FormGroup;\n @Input() maximum: number;\n @Input() addLabel: string;\n @Input() emptyLabel: string;\n @Output() changed = new EventEmitter<string[]>();\n\n constructor(private formBuilder: FormBuilder) {\n this.form = this.formBuilder.group({\n emails: this.formBuilder.array([])\n });\n }\n\n ngOnInit() {\n this.form.valueChanges.subscribe(() => {\n this.onChange(this.getValue());\n });\n }\n\n onChange: any = () => { };\n onTouch: any = () => { };\n\n writeValue(emails: string[]): void {\n if (emails && emails.length) {\n var emailControls = emails.map(email => this.createField(email));\n this.form.setControl('emails', this.formBuilder.array(emailControls));\n }\n }\n\n public getValue(): string[] {\n return this.fields().controls\n .filter(control => control.valid && control.value.email)\n .map(control => control.value.email);\n }\n\n public registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n public registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n\n public setDisabledState?(isDisabled: boolean): void {\n isDisabled ? this.form.disable() : this.form.enable();\n }\n\n public addField() {\n var group = this.fields();\n\n if (group.controls.length > 0) {\n var lastField = group.controls[group.controls.length - 1];\n if (!lastField.value || !lastField.value.email || !this.isValidEmail(lastField.value.email)) { return; }\n }\n\n var value = this.getValue();\n group.push(this.createField());\n this.onChange(value);\n this.changed.emit(value);\n }\n\n public removeField(index: number) {\n this.fields().removeAt(index);\n var value = this.getValue();\n this.onChange(value);\n this.changed.emit(value);\n }\n \n public fields(): FormArray {\n return this.form.get(\"emails\") as FormArray;\n }\n\n @HostListener('keydown', ['$event'])\n public onKeyDown(event: KeyboardEvent): void {\n if (event.key === 'Tab' && event.target instanceof HTMLInputElement) {\n const input = event.target;\n if (input.value && this.isValidEmail(input.value)) {\n event.preventDefault();\n this.addField();\n }\n }\n }\n \n private createField(email: string = null) {\n return this.formBuilder.group({\n email: [email, [Validators.required, Validators.email]]\n })\n }\n\n private isValidEmail(email: string): boolean {\n return Validators.email(new FormControl(email)) === null;\n }\n}\n","<form [formGroup]=\"form\">\n @if (fields().controls.length == 0 && emptyLabel) {\n <div>{{emptyLabel}}</div>\n }\n <ng-container formArrayName=\"emails\">\n @for (item of fields().controls; track item; let i = $index) {\n <div class=\"question email\" [formGroupName]=\"i\">\n <div class=\"question-body text\">\n <mat-form-field appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>E-mail address</mat-label>\n <input matInput formControlName=\"email\" type=\"email\" required>\n </mat-form-field>\n <div class=\"delete\" [id]=\"'action-removeemail-' + i\" (click)=\"removeField(i)\"><span class=\"icon ph-trash-bold\"></span></div>\n </div>\n </div>\n }\n </ng-container>\n @if (maximum == 0 || fields().controls.length < maximum) {\n <button id=\"action-addemail\" (click)=\"addField()\" class=\"subactionbutton\"><span class=\"icon ph-plus-bold\"></span>{{addLabel ?? \"Add\"}}</button>\n }\n</form>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MultiEmailInputComponent } from './multi-email-input.component';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n MatFormFieldModule,\n ReactiveFormsModule,\n MatInputModule],\n declarations: [\n MultiEmailInputComponent],\n exports: [\n MultiEmailInputComponent]\n})\nexport class MultiEmailInputModule { }\n\n","import { Component, Input, ViewEncapsulation, forwardRef, signal } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'quantity-selector',\n templateUrl: './quantity-selector.component.html',\n styleUrls: ['./quantity-selector.component.less'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => QuantitySelectorComponent),\n multi: true\n }\n ],\n standalone: false\n})\nexport class QuantitySelectorComponent implements ControlValueAccessor {\n public quantity: number;\n @Input() disabled = false;\n @Input() maximum: number = 999;\n @Input() minimum: number = 0;\n onChange: any = () => { };\n onTouched: any = () => { };\n\n public increaseQuantity() {\n if (this.quantity >= this.maximum) { this.quantity = this.maximum } else { this.quantity = this.quantity + 1 }\n this.onChange(this.quantity);\n }\n\n public setQuantity() {\n if (this.quantity < this.minimum) { this.quantity = this.minimum; }\n if (this.quantity > this.maximum) { this.quantity = this.maximum; }\n this.onChange(this.quantity);\n }\n\n public decreaseQuantity() {\n if (this.quantity <= this.minimum) { this.quantity = this.minimum } else { this.quantity = this.quantity - 1 }\n this.onChange(this.quantity);\n }\n\n public onInput(event: Event): void {\n const input = event.target as HTMLInputElement;\n const value = input.value.trim();\n\n if (/^-?\\d*\\.?\\d*$/.test(value) && value !== \"\" && !Number.isNaN(value)) {\n this.quantity = parseFloat(input.value);\n }\n else {\n this.quantity = this.minimum;\n input.value = this.quantity.toString();\n }\n \n this.onChange(this.quantity);\n }\n\n public writeValue(quantity: number): void {\n this.quantity = quantity;\n }\n\n public registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n public registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n public setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n}\n","<div class=\"quantity-selector\">\n @if (quantity <= minimum) {\n <div class=\"quantity-selector-change quantity-selector-change-minus disabled\" id=\"quantity-decrease\"><span class=\"ph ph-minus-bold\"></span></div>\n }\n @if (quantity > minimum) {\n <div class=\"quantity-selector-change quantity-selector-change-minus\" id=\"quantity-decrease\" (click)=\"decreaseQuantity()\" (keyup.arrowleft)=\"decreaseQuantity()\"><span class=\"ph ph-minus-bold\"></span></div>\n }\n <input class=\"quantity-selector-change quantity-selector-change-quantity\" id=\"quantity-input\" (blur)=\"setQuantity()\" [value]=\"quantity\" (input)=\"onInput($event)\" />\n @if (quantity < maximum) {\n <div class=\"quantity-selector-change quantity-selector-change-plus\" id=\"quantity-increase\" (click)=\"increaseQuantity()\" (keyup.arrowright)=\"increaseQuantity()\"><span class=\"ph ph-plus-bold\"></span></div>\n }\n @if (quantity >= maximum) {\n <div class=\"quantity-selector-change quantity-selector-change-plus disabled\" id=\"quantity-increase\"><span class=\"ph ph-plus-bold\"></span></div>\n }\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { RouterModule } from '@angular/router';\nimport { QuantitySelectorComponent } from './quantity-selector.component';\n\n@NgModule({\n imports: [\n CommonModule,\n RouterModule,\n FormsModule,\n MatFormFieldModule,\n ReactiveFormsModule,\n MatInputModule\n ],\n declarations: [\n QuantitySelectorComponent],\n exports: [\n QuantitySelectorComponent]\n})\nexport class QuantitySelectorModule { }\n","import { Component, Input, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'select-list',\n templateUrl: './select-list.component.html',\n styleUrls: ['./select-list.component.less'],\n providers: [\n { provide: NG_VALUE_ACCESSOR, multi: true, useExisting: forwardRef(() => SelectListComponent), }\n ],\n standalone: false\n})\nexport class SelectListComponent implements ControlValueAccessor {\n @Input() options: SelectListItem[] = [];\n @Input() multiple: boolean;\n @Input() noAnswerOption: SelectListItem;\n @Input() disabled = false;\n\n constructor() {\n }\n \n public select(option: SelectListItem) {\n if (!this.multiple || (this.noAnswerOption && this.noAnswerOption.key == option.key)) {\n this.options.forEach(p => p.selected = false);\n }\n else if (this.noAnswerOption && this.noAnswerOption.key !== option.key) {\n var noAnswer = this.options.find(p => p.key == this.noAnswerOption.key);\n if (noAnswer) { noAnswer.selected = false; }\n }\n \n option.selected = !option.selected;\n this.onChange(this.options.filter(p => p.selected));\n }\n\n public writeValue(selected: SelectListItem[]): void {\n if (!selected || selected.length == 0) { return; }\n\n for (var selectedOption of selected) {\n var option = this.options.find(p => p.key == selectedOption.key);\n if (option != null) { option.selected = true; }\n };\n }\n \n public registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n public registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n public setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n onChange = (options: SelectListItem[]) => { };\n onTouched = () => { };\n}\n\nexport class SelectListItem {\n constructor(key: string, label: string, selected: boolean = false) {\n this.key = key;\n this.label = label;\n this.selected = selected;\n }\n\n key: string;\n label: string;\n selected: boolean;\n}\n","<div class=\"columinity-select-list\" [ngClass]=\"{'columinity-select-list-multiple': multiple}\">\n @for (option of options; track option) {\n <div tabindex=\"0\" class=\"columinity-select-list-option select-option\" [ngClass]=\"{'selected': option.selected}\" brandConditionalBackgroundColor [palette]=\"'neutral'\" [activePalette]=\"'accent'\" [active]=\"option.selected\" (click)=\"select(option)\" (keydown.Space)=\"select(option)\">\n <div class=\"button-letter\">@if (option.selected && !multiple) {\n <span class=\"ph ph-circle-fill\"></span>\n }@if (option.selected && multiple) {\n <span class=\"ph ph-check-bold\"></span>\n }</div>\n {{option.label}}\n </div>\n }\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatTooltip } from '@angular/material/tooltip';\nimport { SelectListComponent } from './select-list.component';\nimport { BrandingModule } from '../../branding/branding.module';\n\n@NgModule({\n imports: [\n FormsModule,\n MatFormFieldModule,\n ReactiveFormsModule,\n CommonModule,\n MatSelectModule,\n MatTooltip,\n BrandingModule\n ],\n declarations: [\n SelectListComponent],\n exports: [\n SelectListComponent]\n})\nexport class SelectListModule { }\n","import { Clipboard } from '@angular/cdk/clipboard';\nimport { Component, Input, ViewEncapsulation } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { SnapshotMetaDataDto } from '../../results/models/snapshotMetaDataDto';\n\n@Component({\n selector: 'snapshot-inviteurls',\n templateUrl: './snapshot-inviteurls.component.html',\n styleUrls: ['./snapshot-inviteurls.component.less'],\n encapsulation: ViewEncapsulation.None,\n standalone: false\n})\nexport class SnapshotInviteUrlsComponent {\n @Input() public snapshot: SnapshotMetaDataDto;\n\n constructor(private snackBar: MatSnackBar, private clipboard: Clipboard) {\n }\n\n public unsorted(a: any, b: any): number {\n // avoid keyvalue from sorting alphabetically\n return 0;\n }\n\n public copyInvitationUrl(url: string): void {\n this.clipboard.copy(url);\n this.snackBar.open('We copied the link to your clipboard', null, { duration: 3000 });\n setTimeout(() => {\n }, 2000);\n }\n}\n","@if (snapshot) {\n <div class=\"inviteurls\">\n @for (url of snapshot.inviteUrls | keyvalue: unsorted; track url) {\n <div class=\"inviteurl\">\n @if (url.key == 'TeamMember') {\n <div class=\"label inviteurl-teammember\">Invite team (e.g. members, leads, team roles)</div>\n }\n @if (url.key == 'Stakeholder') {\n <div class=\"label inviteurl-stakeholder\">Invite stakeholders (e.g. customers, users)</div>\n }\n @if (url.key == 'Supporter') {\n <div class=\"label inviteurl-supporter\">Invite supporters (e.g. management, external coaches)</div>\n }\n <div class=\"joinsnapshot\">\n <div class=\"url\">\n <input type=\"text\" [value]=\"url.value\" href=\"javascript:void(null);\" (click)=\"copyInvitationUrl(url.value)\" />\n <span class=\"ph-clipboard copy\" (click)=\"copyInvitationUrl(url.value)\"></span>\n </div>\n </div>\n </div>\n }\n </div>\n}\n\n","import { ClipboardModule } from '@angular/cdk/clipboard';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { SnapshotInviteUrlsComponent } from './snapshot-inviteurls.component';\n\n@NgModule({\n imports: [\n MatFormFieldModule,\n ReactiveFormsModule,\n CommonModule,\n ClipboardModule\n ],\n declarations: [\n SnapshotInviteUrlsComponent],\n exports: [\n SnapshotInviteUrlsComponent]\n})\nexport class SnapshotInviteUrlsModule { }\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'slugify',\n standalone: false\n})\nexport class SlugifyPipe implements PipeTransform {\n transform(str: string): string {\n return this.isString(str)\n ? str.toLowerCase().trim()\n .replace(/[^\\w\\-]+/g, ' ')\n .replace(/\\s+/g, '-')\n .replace(/^\\-+|\\-+$/g, '')\n : str;\n }\n\n isString(value: any) {\n return typeof value === 'string';\n }\n}\n","import { Component, Input, ViewEncapsulation, signal } from '@angular/core';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'tabnavigator',\n templateUrl: './tabnavigator.component.html',\n styleUrls: ['./tabnavigator.component.less'],\n standalone: false\n})\nexport class TabNavigatorComponent{\n public itemSet = signal<TabItemDto[]>([]);\n @Input() set items(value: TabItemDto[]) {\n this.itemSet.set(value);\n this.updateActiveItem();\n }\n\n constructor(private router: Router) {\n }\n\n updateActiveItem() {\n var matchingItem = this.itemSet().find(p => p.url == this.router.url);\n if (matchingItem != null) {\n matchingItem.active = true;\n }\n }\n}\n\nexport class TabItemDto {\n constructor(label: string, url: string) {\n this.label = label;\n this.url = url;\n }\n\n label: string;\n url: string;\n active: boolean;\n}\n","<div class=\"tabnavigation\">\n @for (item of itemSet(); track item) {\n <a class=\"tabnavigation-tab\" [ngClass]=\"{'active': item.active}\" [routerLink]=\"item.url\" [id]=\"'tabnavigation-tab-' + item.label | slugify\">\n @if (!item.active) {\n <span class=\"icon ph-caret-right\"></span>\n }\n @if (item.active) {\n <span class=\"icon ph-caret-down\"></span>\n }\n {{item.label}}\n </a>\n }\n <div class=\"filler\"></div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { SlugifyPipe } from './ngx-slugify.pipe';\n\n@NgModule({\n providers: [SlugifyPipe],\n declarations: [SlugifyPipe],\n exports: [SlugifyPipe]\n})\nexport class SlugifyPipeModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { TabNavigatorComponent } from './tabnavigator.component';\nimport { SlugifyPipeModule } from '../../pipes/slugify/ngx-slugify.module';\n\n@NgModule({\n imports: [\n CommonModule,\n RouterModule,\n SlugifyPipeModule\n ],\n declarations: [\n TabNavigatorComponent],\n exports: [\n TabNavigatorComponent]\n})\nexport class TabNavigatorModule { }\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\nimport { TopicSelectorDto } from './topic-selector.component';\nexport function presetCheckValidator(presetKey: string): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n var value = control.value as TopicSelectorDto;\n if (!value) { return null; }\n if (value.presetKey == presetKey) {\n return {\n presetCheck: true\n }\n }\n return null;\n }\n}\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\nimport { TopicSelectorDto } from './topic-selector.component';\nexport function minTopicsSelectedValidator(minimum: number): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n var value = control.value as TopicSelectorDto;\n if (!value) { return null; }\n if (value.topicKeys == null || (value.topicKeys.length + 1) <= minimum) {\n return {\n minTopics: true\n }\n }\n return null;\n }\n}\n","export class ModelStructureDto {\n definition: ModelDefinitionDto;\n models: ModelSummaryDto[];\n}\n\nexport class ModelDefinitionDto {\n constructor() {\n this.questionnaireTypes = [];\n this.demoUrls = [];\n this.factors = [];\n }\n\n name: string;\n publicKey: string;\n description: string;\n demoUrls: ModelDemoUrlDto[];\n attribution: string;\n questionnaireTypes: QuestionnaireTypeDto[];\n factors: FactorStructureDto[];\n explainerVideoUrl: string;\n}\n\nexport class ModelDemoUrlDto {\n type: string;\n url: string;\n}\n\nexport class DefinitionDto {\n term: string;\n definition: string;\n}\n\nexport class EffectDto {\n to: string;\n standardizedBeta: number;\n standardError: number;\n}\n\nexport class FactorStructureDto {\n constructor() {\n this.lower = [];\n this.segments = [];\n this.effects = [];\n this.constraints = new FactorStructureConstraintDto();\n }\n\n publicKey: string;\n parentKey: string;\n name: string;\n color: string;\n core: boolean;\n metric: boolean;\n unit: string;\n indicatorPosition: string;\n description: string;\n questionCount: number;\n ownQuestionCount: number;\n explainerVideoUrl: string;\n effects: EffectDto[];\n segments: FactorStructureSegmentDto[];\n constraints: FactorStructureConstraintDto;\n lower: FactorStructureDto[];\n attribution: string;\n antecedents: FactorStructureDto[];\n recommended: boolean;\n}\n\nexport class FactorStructureSegmentDto {\n questionCount: number;\n ownQuestionCount: number;\n segment: SegmentEnum;\n durationInSeconds: number;\n questions: string[];\n}\n\nexport class ModelSummaryDto {\n publicKey: string;\n name: string;\n description: string;\n isInBeta: boolean;\n}\n\nexport class FactorStructureConstraintDto {\n constructor() {\n this.forSegments = [];\n this.teamTraitKeys = [];\n }\n\n forSegments: string[];\n teamTraitKeys: string[];\n}\n\nexport class QuestionnaireTypeDto {\n constructor(publicKey, name) {\n this.publicKey = publicKey;\n this.name = name;\n }\n\n publicKey: string;\n name: string;\n description: string;\n scaleKeys: string[];\n}\n\nexport class TeamFlagMatchDto {\n isSoftwareTeam: boolean | null;\n isAgileTeam: boolean | null;\n isIterationTeam: boolean | null;\n}\n\nexport enum SegmentEnum {\n TeamMember = 'TeamMember',\n Stakeholder = 'Stakeholder',\n Management = 'Supporter'\n}\n","import { Component, Directive, HostListener, Inject, Input } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialog, MatDialogConfig } from '@angular/material/dialog';\nimport { FactorStructureDto } from '../../models/modelStructureDto';\n\n@Component({\n templateUrl: './dialog-factorinformation.component.html',\n styleUrls: ['./dialog-factorinformation.component.less'],\n standalone: false\n})\nexport class DialogFactorInformationComponent {\n public factor: FactorStructureDto;\n\n constructor(@Inject(MAT_DIALOG_DATA) factor: FactorStructureDto) {\n this.factor = factor;\n }\n}\n\n@Directive({\n selector: '[factorInformationDialog]',\n standalone: false\n})\nexport class OpenFactorInformationDialogDirective {\n @Input() factor: FactorStructureDto;\n\n constructor(private dialog: MatDialog) {\n }\n\n @HostListener('click', ['$event'])\n onClick($event: any): void {\n $event.stopPropagation();\n const dialogConfig = new MatDialogConfig();\n dialogConfig.panelClass = ['dialog', 'factor'];\n dialogConfig.data = this.factor;\n dialogConfig.autoFocus = false;\n dialogConfig.enterAnimationDuration = 0;\n dialogConfig.exitAnimationDuration = 0;\n this.dialog.open(DialogFactorInformationComponent, dialogConfig);\n }\n}\n\n","@if (factor) {\n <div class=\"dialog-header\">\n <h1 mat-dialog-title>{{factor.name}}</h1>\n <div class=\"close\" mat-dialog-close><i class=\"responsive icon ph-x-bold\"></i></div>\n </div>\n}\n<mat-dialog-content>\n {{factor.description}}\n\n @if (factor.attribution) {\n <div class=\"attribution\">\n <h4>Attribution for measurement method</h4>\n <p>{{factor.attribution}}</p>\n </div>\n }\n\n @if (!factor.metric) {\n <div class=\"questions\">\n <h4>Question pool</h4>\n <div>Below are the questions we use for this factor. They may be narrowed down further based on segment. See <a href=\"https://github.com/theliberators/columinity.docs/wiki/How-the-questionnaire-links-to-factors\" target=\"_blank\">wiki</a> for details.</div>\n @for (segment of factor.segments; track segment) {\n <div class=\"questions-segment\">\n @if (segment.questions.length > 0) {\n <div>\n <h5>For {{segment.segment.toLowerCase()}}s</h5>\n <ul>\n @for (question of segment.questions; track question) {\n <li>{{question}}</li>\n }\n </ul>\n </div>\n }\n </div>\n }\n </div>\n }\n</mat-dialog-content>\n","import { Component, Input, SimpleChanges, forwardRef } from '@angular/core';\nimport { AbstractControl, ControlValueAccessor, FormArray, FormBuilder, FormControl, FormGroup, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\nimport { FactorStructureDto, QuestionnaireTypeDto, SegmentEnum } from '../../models/modelStructureDto';\nimport { DialogFactorInformationComponent } from '../../dialogs/dialog-factorinformation/dialog-factorinformation.component';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'topic-selector',\n templateUrl: './topic-selector.component.html',\n styleUrls: ['./topic-selector.component.less'],\n providers: [\n { provide: NG_VALUE_ACCESSOR, multi: true, useExisting: forwardRef(() => TopicSelectorComponent), }\n ],\n standalone: false\n})\nexport class TopicSelectorComponent implements ControlValueAccessor {\n public form: FormGroup;\n public warnings: string[] = []\n private topicSelectionDto: TopicSelectorDto;\n private selectedTopics: string[] = [];\n public questionnaireAccuracy: number = 0;\n public questionsTeamMembers: number = 0;\n public questionsStakeholders: number = 0;\n public questionsSupporters: number = 0;\n public durationTeamMembers: number = 0;\n public durationStakeholders: number = 0;\n public durationSupporters: number = 0;\n public questionsTotal: number = 0;\n @Input() topics: FactorStructureDto[];\n @Input() presets: QuestionnaireTypeDto[] = [];\n @Input() disabled = false;\n @Input() topicKeys: string[] = [];\n public SegmentEnum = SegmentEnum;\n private formSubscription: Subscription;\n\n constructor(private formBuilder: FormBuilder, private dialog: MatDialog) {\n }\n\n ngOnInit() {\n }\n\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['topics'] || changes['presets']) {\n this.createForm();\n this.wireUpTopicSelection();\n this.formSubscription = this.form.valueChanges.subscribe(() => {\n const output = this.getValue();\n this.onChange(output);\n this.updateMetaData(output);\n });\n }\n }\n\n ngOnDestroy() {\n if (this.formSubscription) {\n this.formSubscription.unsubscribe();\n }\n }\n\n public toggleTopic() {\n this.form.controls.preset.setValue(\"custom\");\n }\n\n public registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n public registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n\n onChange: any = () => { };\n onTouch: any = () => { };\n\n writeValue(dto: TopicSelectorDto): void {\n this.topicSelectionDto = dto;\n this.wireUpTopicSelection();\n this.onChange(this.topicSelectionDto);\n }\n\n setDisabledState?(isDisabled: boolean): void {\n if (isDisabled) {\n this.form.disable();\n } else {\n this.form.enable();\n }\n }\n\n public selectPreset() {\n var questionnaire = this.presets.find(p => p.publicKey == this.form.controls.preset.value);\n if (!questionnaire) { return; }\n\n var topicKeys = questionnaire.scaleKeys;\n if (topicKeys.length == 0) { topicKeys = this.presets[0].scaleKeys; }\n\n this.selectedTopics = topicKeys ?? [];\n var topics = this.form.controls.topics as FormGroup;\n Object.keys(topics.controls)\n .forEach(p => topics.get(p).setValue(this.selectedTopics.includes(p)));\n\n if (questionnaire.publicKey == 'custom') { this.form.controls.showTopics.setValue(true, { emitEvent: false }); }\n var dto = new TopicSelectorDto(questionnaire.publicKey, topicKeys);\n this.updateMetaData(dto);\n this.onChange(dto);\n }\n\n public getValue(): TopicSelectorDto {\n var topics = this.form.controls.topics as FormGroup;\n var selected = Object.keys(topics.controls)\n .filter(p => topics.get(p).value == true)\n .map(p => p);\n\n var presetKey = this.form.controls.preset.value;\n return new TopicSelectorDto(presetKey, selected);\n }\n\n public openFactorInformation(topicKey: string, $event: Event) {\n var topic = this.topics.find(p => p.publicKey == topicKey);\n if (!topic) { return; }\n\n $event.preventDefault()\n const dialogConfig = new MatDialogConfig();\n dialogConfig.panelClass = ['dialog', 'factor'];\n dialogConfig.data = topic;\n dialogConfig.enterAnimationDuration = 0;\n dialogConfig.exitAnimationDuration = 0;\n this.dialog.open(DialogFactorInformationComponent, dialogConfig);\n }\n\n public hasSegmentQuestions(factor: FactorStructureDto, segment: SegmentEnum, useOwnQuestionCount: boolean): boolean {\n if (useOwnQuestionCount) {\n return factor.segments.find(p => p.segment == segment.toString()).ownQuestionCount > 0;\n }\n else {\n return factor.segments.find(p => p.segment == segment.toString()).questionCount > 0;\n }\n }\n\n public getCoreFactors() {\n return this.topics.filter(p => p.parentKey == null);\n }\n\n public getSubFactors(parentKey: string) {\n return this.topics.filter(p => p.parentKey == parentKey).sort((a, b) => a.name.localeCompare(b.name));\n }\n\n public selectAll(topic: FactorStructureDto, $event: Event) {\n $event.preventDefault();\n var topics = this.form.controls.topics as FormGroup;\n this.topics\n .filter(p => p.parentKey == topic.publicKey || (p.publicKey == topic.publicKey && p.ownQuestionCount > 0))\n .forEach(p => topics.get(p.publicKey).setValue(true))\n }\n\n public selectNone(topic: FactorStructureDto, $event: Event) {\n $event.preventDefault()\n var topics = this.form.controls.topics as FormGroup;\n this.topics\n .filter(p => p.parentKey == topic.publicKey || (p.publicKey == topic.publicKey && p.ownQuestionCount > 0))\n .forEach(p => topics.get(p.publicKey).setValue(false))\n }\n\n private wireUpTopicSelection() {\n if (!this.topicSelectionDto) { return; }\n var questionnaire = this.presets.find(p => p.publicKey == this.topicSelectionDto.presetKey);\n\n if (!questionnaire) {\n questionnaire = this.presets[0];\n this.topicSelectionDto.topicKeys = questionnaire.scaleKeys;\n this.topicSelectionDto.presetKey = questionnaire.publicKey;\n }\n\n this.selectedTopics = this.topicSelectionDto.topicKeys ?? [];\n this.form.controls.preset.setValue(this.topicSelectionDto.presetKey);\n\n if (questionnaire.publicKey == 'custom') { this.form.controls.showTopics.setValue(true, { emitEvent: false }); }\n var topics = this.form.controls.topics as FormGroup;\n Object.keys(topics.controls).forEach(p => topics.get(p).setValue(this.selectedTopics.includes(p), { emitEvent: false }));\n\n this.updateMetaData(this.topicSelectionDto);\n }\n\n private createForm() {\n this.form = this.formBuilder.group({\n preset: [null],\n topicKeys: [[]],\n topics: this.formBuilder.group([]),\n showTopics: [false]\n });\n\n this.topics.filter(p => p.parentKey != null || (p.parentKey == null && p.ownQuestionCount > 0))\n .forEach(p => (this.form.controls.topics as FormGroup).addControl(p.publicKey, new FormControl(false), { emitEvent: false }))\n }\n\n private updateMetaData(output: TopicSelectorDto) {\n this.warnings = [];\n\n // only work with lower-level factors, as higher-level contain aggregated higher-level question counts\n var scalesToInclude = this.topics.filter(p => p.parentKey != null && output.topicKeys.includes(p.publicKey));\n var totalQuestions = this.topics.filter(p => p.parentKey != null).reduce((sum, current) => sum += current.questionCount, 0);\n\n this.questionsTotal = scalesToInclude.reduce((sum, current) => sum += current.questionCount, 0);\n this.questionsTeamMembers = scalesToInclude.flatMap(p => p.segments).filter(p => p.segment == SegmentEnum.TeamMember).reduce((sum, current) => sum += current.questionCount, 0);\n this.questionsStakeholders = scalesToInclude.flatMap(p => p.segments).filter(p => p.segment == SegmentEnum.Stakeholder).reduce((sum, current) => sum += current.questionCount, 0);\n this.questionsSupporters = scalesToInclude.flatMap(p => p.segments).filter(p => p.segment == SegmentEnum.Management).reduce((sum, current) => sum += current.questionCount, 0);\n\n this.durationTeamMembers = scalesToInclude.flatMap(p => p.segments).filter(p => p.segment == SegmentEnum.TeamMember).reduce((sum, current) => sum += current.durationInSeconds, 0) / 60;\n this.durationStakeholders = scalesToInclude.flatMap(p => p.segments).filter(p => p.segment == SegmentEnum.Stakeholder).reduce((sum, current) => sum += current.durationInSeconds, 0) / 60;\n this.durationSupporters = scalesToInclude.flatMap(p => p.segments).filter(p => p.segment == SegmentEnum.Management).reduce((sum, current) => sum += current.durationInSeconds, 0) / 60;\n\n if (this.durationTeamMembers < 1) { this.durationTeamMembers = 1; }\n if (this.durationStakeholders < 1) { this.durationStakeholders = 1; }\n if (this.durationSupporters < 1) { this.durationSupporters = 1; }\n\n if (this.questionsStakeholders == 0) {\n this.warnings.push(\"The selection does not include topics for stakeholders.\");\n }\n if (this.questionsSupporters == 0) {\n this.warnings.push(\"The selection does not include topics for supporters / management.\");\n }\n if (this.questionsTeamMembers == 0) {\n this.warnings.push(\"The selection does not include topics for team members.\");\n }\n if (this.questionnaireAccuracy < 0.25) {\n this.warnings.push(\"The selection measures few topics, so its overall accuracy is low.\");\n }\n\n this.questionnaireAccuracy = this.questionsTotal / totalQuestions;\n }\n}\n\nexport class TopicSelectorDto {\n constructor(presetKey: string, topicKeys: string[]) {\n this.presetKey = presetKey;\n this.topicKeys = topicKeys ?? [];\n }\n\n presetKey: string;\n topicKeys: string[];\n}\n","<form [formGroup]=\"form\">\n <div class=\"topicselector-container\">\n <div class=\"topicselector-metadata\">\n <div class=\"questionnaire-preset\">\n <mat-form-field class=\"questionnaire-preset-select\" appearance=\"fill\">\n <mat-label>Select predefined questionnaire</mat-label>\n <mat-select id=\"question-preset\" formControlName=\"preset\" (selectionChange)=\"selectPreset()\">\n @for (type of presets; track type) {\n <mat-option [value]=\"type.publicKey\" class=\"select-option\">{{type.name}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n <div class=\"questionnaire-accuracy\">\n <div class=\"questionnaire-breakdown-label\">Accuracy</div>\n <div class=\"questionnaire-breakdown-bar-holder\">\n <div class=\"questionnaire-accuracy-bar\" [ngClass]=\"{'low': questionnaireAccuracy < 0.25, 'moderate' : questionnaireAccuracy < 0.5 && questionnaireAccuracy >= 0.25}\" [ngStyle]=\"{'width': (questionnaireAccuracy * 100) + '%' }\">{{questionnaireAccuracy * 100 | number:'1.0-0'}}%</div>\n </div>\n </div>\n <div class=\"questionnaire-segments\">\n <div class=\"questionnaire-segments-label\">Time investment</div>\n <div class=\"questionnaire-breakdowns\">\n <div class=\"questionnaire-breakdown\">\n <div class=\"questionnaire-breakdown-label\">Team members</div>\n <div class=\"progressbar progressbar-positive progressbar-teammember\">\n @if (questionsTeamMembers > 0) {\n <div class=\"progressbar-bar\" [style.width]=\"((questionsTeamMembers / questionsTotal) * 100) + '%'\"></div>\n }\n <div class=\"progressbar-score\">{{durationTeamMembers | number:'1.0-0'}} min</div>\n </div>\n </div>\n <div class=\"questionnaire-breakdown\">\n <div class=\"questionnaire-breakdown-label\">Stakeholders</div>\n <div class=\"progressbar progressbar-positive progressbar-stakeholder\">\n @if (questionsStakeholders > 0) {\n <div class=\"progressbar-bar\" [style.width]=\"((questionsStakeholders / questionsTotal) * 100) + '%'\"></div>\n }\n <div class=\"progressbar-score\">{{durationStakeholders | number:'1.0-0'}} min</div>\n </div>\n </div>\n <div class=\"questionnaire-breakdown\">\n <div class=\"questionnaire-breakdown-label\">Supporters</div>\n <div class=\"progressbar progressbar-positive progressbar-supporter\">\n @if (questionsSupporters > 0) {\n <div class=\"progressbar-bar\" [style.width]=\"((questionsSupporters / questionsTotal) * 100) + '%'\"></div>\n }\n <div class=\"progressbar-score\">{{durationSupporters | number:'1.0-0'}} min</div>\n </div>\n </div>\n </div>\n </div>\n @if (warnings.length > 0) {\n <div class=\"topicselector-warnings\">\n @for (warning of warnings; track warning) {\n <div class=\"topicselector-warnings-warning\">\n <span class=\"icon ph-info-fill\"></span>{{warning}}\n </div>\n }\n </div>\n }\n @if (!form.controls.showTopics.value) {\n <a href=\"javascript:void(null)\" id=\"action-advancedviewtoggle\" class=\"topic-selector-advancedviewtoggle\" (click)=\"form.controls.showTopics.setValue(true)\"><span class=\"icon ph-caret-down-bold\"></span>Customize topics</a>\n }\n @if (form.controls.showTopics.value) {\n <a href=\"javascript:void(null)\" id=\"action-advancedviewtoggle\" class=\"topic-selector-advancedviewtoggle\" (click)=\"form.controls.showTopics.setValue(false)\"><span class=\"icon ph-caret-up-bold\"></span>Hide topics</a>\n }\n </div>\n @if (form.controls.showTopics.value) {\n <div class=\"topicselector-topics\">\n @for (topic of getCoreFactors(); track topic) {\n <div class=\"topic-parent\" formArrayName=\"topics\">\n <div class=\"name\">\n <h4>{{topic.name}}</h4>\n <div class=\"helpers\">(<a href=\"#\" (click)=\"selectAll(topic, $event)\">all</a> | <a href=\"#\" (click)=\"selectNone(topic, $event)\">none</a>)</div>\n <div class=\"topic-child-moreinformation\">\n <span class=\"icon ph-info-bold\" (click)=\"openFactorInformation(topic.publicKey, $event)\"></span>\n </div>\n </div>\n @if (topic.ownQuestionCount > 0) {\n <div class=\"topic-child\">\n <mat-checkbox class=\"topic-child-check\" [formControlName]=\"topic.publicKey\" (click)=\"toggleTopic()\" [id]=\"'topic-' + topic.name | slugify\"></mat-checkbox>\n <div class=\"topic-child-description\">\n {{topic.name}} ({{topic.ownQuestionCount}} questions)\n <div class=\"tags\">\n @if (topic.recommended) {\n <div class=\"tags-tag recommended\">Recommended</div>\n }\n @if (hasSegmentQuestions(topic, SegmentEnum.TeamMember, true)) {\n <div class=\"tags-tag teammember\">For team members</div>\n }\n @if (hasSegmentQuestions(topic, SegmentEnum.Stakeholder, true)) {\n <div class=\"tags-tag stakeholder\">For stakeholders</div>\n }\n @if (hasSegmentQuestions(topic, SegmentEnum.Management, true)) {\n <div class=\"tags-tag supporter\">For supporters</div>\n }\n </div>\n </div>\n <div class=\"topic-child-moreinformation\">\n <span class=\"icon ph-info-bold\" (click)=\"openFactorInformation(topic.publicKey, $event)\"></span>\n </div>\n </div>\n }\n @for (subTopic of getSubFactors(topic.publicKey); track subTopic) {\n <div class=\"topic-child\">\n <mat-checkbox class=\"topic-child-check\" [formControlName]=\"subTopic.publicKey\" (click)=\"toggleTopic()\" [id]=\"'topic-' + subTopic.name | slugify\"></mat-checkbox>\n <div class=\"topic-child-description\">\n {{subTopic.name}} ({{subTopic.questionCount}} questions)\n <div class=\"tags\">\n @if (subTopic.recommended) {\n <div class=\"tags-tag recommended\">Recommended</div>\n }\n @if (hasSegmentQuestions(subTopic, SegmentEnum.TeamMember, false)) {\n <div class=\"tags-tag teammember\">For team members</div>\n }\n @if (hasSegmentQuestions(subTopic, SegmentEnum.Stakeholder, false)) {\n <div class=\"tags-tag stakeholder\">For stakeholders</div>\n }\n @if (hasSegmentQuestions(subTopic, SegmentEnum.Management, false)) {\n <div class=\"tags-tag supporter\">For supporters</div>\n }\n </div>\n </div>\n <div class=\"topic-child-moreinformation\">\n <span class=\"icon ph-info-bold\" (click)=\"openFactorInformation(subTopic.publicKey, $event)\"></span>\n </div>\n </div>\n }\n </div>\n }\n </div>\n }\n </div>\n</form>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\nimport { DialogFactorInformationComponent, OpenFactorInformationDialogDirective } from './dialog-factorinformation.component';\n\n\n@NgModule({\n imports: [MatDialogModule, MatSnackBarModule, CommonModule],\n declarations: [DialogFactorInformationComponent, OpenFactorInformationDialogDirective],\n exports: [DialogFactorInformationComponent, OpenFactorInformationDialogDirective],\n providers: []\n})\nexport class FactorInformationDialogModule { }\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatSelectModule } from '@angular/material/select';\nimport { FactorInformationDialogModule } from '../../dialogs/dialog-factorinformation/dialog-factorinformation.module';\nimport { SlugifyPipeModule } from '../../pipes/slugify/ngx-slugify.module';\nimport { TopicSelectorComponent } from './topic-selector.component';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n MatFormFieldModule,\n ReactiveFormsModule,\n MatInputModule,\n MatSelectModule,\n MatCheckboxModule,\n SlugifyPipeModule,\n FactorInformationDialogModule\n ],\n declarations: [\n TopicSelectorComponent],\n exports: [\n TopicSelectorComponent]\n})\nexport class TopicSelectorModule { }\n","import { Component, Input } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { FactorScoreDto } from '../../results/models/factorScoreDto';\nimport { UserSettingsDto } from '../../models/userSettingsDto';\nimport { UserSettingService } from '../../viewModel/userSettings.service';\n\n@Component({\n selector: 'progressbar',\n templateUrl: './progressbar.component.html',\n styleUrls: ['./progressbar.component.less'],\n standalone: false\n})\nexport class ProgressbarComponent {\n @Input() factorScore: FactorScoreDto;\n public confidenceAvailable: boolean;\n public direction: string;\n public segmentTeamMembers: boolean;\n public segmentSupporters: boolean;\n public segmentStakeholders: boolean;\n public score: number;\n public factorScoreWidth: number;\n public factorScoreLeft: number;\n public settings: UserSettingsDto;\n public settingsSubscription: Subscription;\n\n constructor(private userSettingsService: UserSettingService) {\n this.settings = this.userSettingsService.get();\n }\n\n ngOnInit() {\n this.settingsSubscription = this.userSettingsService.changed.subscribe((settings: UserSettingsDto) => {\n this.settings = settings;\n });\n\n this.direction = this.factorScore.qualification.toLowerCase();\n this.confidenceAvailable = this.factorScore.sampleSize > 0 && !this.factorScore.anonymized;\n this.segmentTeamMembers = this.factorScore.points.find(p => p.name == \"TeamMember\") != null;\n this.segmentStakeholders = this.factorScore.points.find(p => p.name == \"Stakeholder\") != null;\n this.segmentSupporters = this.factorScore.points.find(p => p.name == \"Supporter\") != null;\n this.factorScoreWidth = (this.factorScore.upperConfidence - this.factorScore.lowerConfidence);\n if (this.factorScoreWidth <= 10) { this.factorScoreWidth = 10 };\n this.factorScoreLeft = this.factorScore.lowerConfidence;\n if (this.factorScoreLeft >= 90) { this.factorScoreLeft = 90 };\n }\n\n ngOnDestroy() {\n if (this.settingsSubscription) {\n this.settingsSubscription.unsubscribe();\n }\n }\n\n}\n","<div [class]=\"'progressbar progressbar-' + direction\">\n <div class=\"progressbar-segments\">\n @if (segmentTeamMembers) {\n <span class=\"progressbar-segment progressbar-segment-teammembers icon ph-user-fill\" title=\"This factor was measured through responses from team members\"></span>\n }\n @if (segmentStakeholders) {\n <span class=\"progressbar-segment progressbar-segment-stakeholders icon ph-user-fill\" title=\"This factor was measured through responses from stakeholders\"></span>\n }\n @if (segmentSupporters) {\n <span class=\"progressbar-segment progressbar-segment-supporters icon ph-user-fill\" title=\"This factor was measured through responses from supporters\"></span>\n }\n </div>\n <div class=\"progressbar-score\">{{factorScore.score | number:'1.0-0'}}</div>\n @if (confidenceAvailable && settings.user.modelFilter.advanced) {\n <div class=\"progressbar-confidence\" [title]=\"'Most responses fall in the range of ' + factorScore.lowerConfidence + ' (15% percentile) and ' + factorScore.upperConfidence + ' (85% percentile).'\" [style]=\"'left: ' + factorScoreLeft + '%; width: ' + factorScoreWidth + '%'\"></div>\n }\n @if (!confidenceAvailable || !settings.user.modelFilter.advanced) {\n <div class=\"progressbar-bar\" [style]=\"'width: ' + factorScore.score + '%'\"></div>\n }\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatInputModule } from '@angular/material/input';\nimport { RouterModule } from '@angular/router';\nimport { ProgressbarComponent } from './progressbar.component';\n\n@NgModule({\n imports: [\n RouterModule,\n CommonModule,\n MatInputModule],\n declarations: [\n ProgressbarComponent],\n exports: [\n ProgressbarComponent]\n})\nexport class ProgressbarModule { }\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DatePipe } from '@angular/common';\nimport { DateRangeDto } from './ngx-dateRangeDto.model';\n\n@Pipe({\n name: 'dateRange',\n standalone: false\n})\nexport class DateRangePipe implements PipeTransform {\n constructor(private datePipe: DatePipe) {\n }\n\n transform(dateRange: DateRangeDto): string {\n if (dateRange == null) { return null }\n\n var fromDate = new Date(dateRange.from);\n var toDate = new Date(dateRange.to);\n var isSameDay = (fromDate.getDate() === toDate.getDate() && fromDate.getMonth() === toDate.getMonth() && fromDate.getFullYear() === toDate.getFullYear())\n\n var pattern = fromDate.getFullYear() == toDate.getFullYear() ? 'MMMM d' : 'MMM d, YYYY';\n if (dateRange.from != null && dateRange.to == null) { return this.datePipe.transform(dateRange.from, pattern); }\n if (dateRange.from == null && dateRange.to != null) { return this.datePipe.transform(dateRange.to, pattern); }\n\n if (isSameDay) { return this.datePipe.transform(dateRange.from, pattern) }\n return this.datePipe.transform(dateRange.from, pattern) + ' to ' + this.datePipe.transform(dateRange.to, pattern);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DateRangePipe } from './ngx-dateRange.pipe';\n\n@NgModule({\n providers: [DateRangePipe],\n declarations: [DateRangePipe],\n exports: [DateRangePipe]\n})\nexport class DateRangePipeModule {}\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class ArrowUpdateService {\n private updateArrows: Subject<boolean> = new Subject<boolean>();\n updateArrows$ = this.updateArrows.asObservable();\n\n constructor() {\n }\n\n triggerUpdate() {\n this.updateArrows.next(true);\n }\n}\n","import { Component, DoCheck, ElementRef, Input, OnInit } from '@angular/core';\nimport { ArrowUpdateService } from './ArrowUpdateService';\nimport { Subscription, timer } from 'rxjs';\n\n// Source byu Samuel Berthe - https://github.com/samber/ngx-domarrow\n@Component({\n selector: 'arrow',\n templateUrl: './arrow.component.html',\n styleUrls: ['./arrow.component.less'],\n standalone: false\n})\nexport class ArrowComponent implements OnInit, DoCheck {\n @Input() public from: string = null;\n @Input() public to: string = null;\n @Input() public head: boolean = false;\n @Input() public tail: boolean = false;\n @Input() public text: string = null;\n @Input() public toolTip: string = null;\n @Input() public color: string = null;\n @Input() public width: number = null;\n @Input() public onlyVisible: boolean = false;\n @Input() public fromX: number = null;\n @Input() public fromY: number = null;\n @Input() public toX: number = null;\n @Input() public toY: number = null;\n\n private subscription: Subscription;\n public arrowIndices: number[] = [];\n public styleLine: object[] = [];\n public styleArrowFw: object[] = [];\n public styleArrowBw: object[] = [];\n public needSwap: boolean[] = [];\n private elementPositionBackup: string = '';\n constructor(\n private elem: ElementRef,\n private arrowUpdateService: ArrowUpdateService\n ) { }\n\n private getNumberOrDef(val, def) {\n return typeof val === 'number' && !isNaN(val) ? val : def;\n }\n\n private isVisible(element) {\n return element && element.style.visibility !== 'hidden';\n }\n\n private inside(minX, minY, maxX, maxY, x1, y1) {\n return minX <= x1 && x1 <= maxX && minY <= y1 && y1 <= maxY;\n }\n\n private intersectionPoint(x1, y1, x2, y2, minX, minY, maxX, maxY) {\n const min = Math.min;\n const max = Math.max;\n const good = this.inside.bind(null, min(x1, x2), min(y1, y2), max(x1, x2), max(y1, y2));\n\n if ((x1 <= minX && x2 <= minX)\n || (y1 <= minY && y2 <= minY)\n || (x1 >= maxX && x2 >= maxX)\n || (y1 >= maxY && y2 >= maxY)\n || (this.inside(minX, minY, maxX, maxY, x1, y1) && this.inside(minX, minY, maxX, maxY, x2, y2)))\n return null;\n\n const m = (y2 - y1) / (x2 - x1);\n let y = m * (minX - x1) + y1;\n if (minY < y && y < maxY && good(minX, y))\n return {\n x: minX,\n y: y\n };\n\n y = m * (maxX - x1) + y1;\n if (minY < y && y < maxY && good(maxX, y))\n return {\n x: maxX,\n y: y\n };\n\n let x = (minY - y1) / m + x1;\n if (minX < x && x < maxX && good(x, minY))\n return {\n x: x,\n y: minY\n };\n\n x = (maxY - y1) / m + x1;\n if (minX < x && x < maxX && good(x, maxY))\n return {\n x: x,\n y: maxY\n };\n\n return null;\n }\n\n private adjustLine(nth: number, from: HTMLElement, to: HTMLElement) {\n if (to == null || from == null)\n return;\n\n const color = this.color || '808080';\n const W = this.width || 1;\n\n const fromB = parseFloat(from.style.top) ? null : from.getBoundingClientRect();\n const toB = parseFloat(to.style.top) ? null : to.getBoundingClientRect();\n const fromBStartY = (fromB ? window.scrollY + fromB.top : parseFloat(from.style.top));\n const fromBStartX = (fromB ? window.scrollX + fromB.left : parseFloat(from.style.left));\n const toBStartY = (toB ? window.scrollY + toB.top : parseFloat(to.style.top));\n const toBStartX = (toB ? window.scrollX + toB.left : parseFloat(to.style.left));\n const fromBWidth = (fromB ? fromB.width : parseFloat(from.style.width) || from.offsetWidth);\n const fromBHeight = (fromB ? fromB.height : parseFloat(from.style.height) || from.offsetHeight);\n const toBWidth = (toB ? toB.width : parseFloat(to.style.width) || to.offsetWidth);\n const toBHeight = (toB ? toB.height : parseFloat(to.style.height) || to.offsetHeight);\n\n let fT = fromBStartY + fromBHeight * this.getNumberOrDef(this.fromY, 0.5);\n let tT = toBStartY + toBHeight * this.getNumberOrDef(this.toY, 0.5);\n let fL = fromBStartX + fromBWidth * this.getNumberOrDef(this.fromX, 0.5);\n let tL = toBStartX + toBWidth * this.getNumberOrDef(this.toX, 0.5);\n\n let CA = Math.abs(tT - fT);\n let CO = Math.abs(tL - fL);\n let H = Math.sqrt(CA * CA + CO * CO);\n let ANG = 180 / Math.PI * Math.acos(CO / H);\n\n if ((fT >= tT || fL >= tL) && (tT >= fT || tL >= fL))\n ANG *= -1;\n\n if (this.onlyVisible) {\n const arrangeFrom = this.intersectionPoint(fL, fT, tL, tT, fromBStartX, fromBStartY, fromBStartX + fromBWidth, fromBStartY + fromBHeight);\n const arrangeTo = this.intersectionPoint(fL, fT, tL, tT, toBStartX, toBStartY, toBStartX + toBWidth, toBStartY + toBHeight);\n\n if (arrangeFrom) {\n fL = arrangeFrom.x;\n fT = arrangeFrom.y;\n }\n if (arrangeTo) {\n tL = arrangeTo.x;\n tT = arrangeTo.y;\n }\n CA = Math.abs(tT - fT);\n CO = Math.abs(tL - fL);\n H = Math.sqrt(CA * CA + CO * CO);\n }\n\n const top = (tT + fT) / 2 - W / 2;\n const left = (tL + fL) / 2 - H / 2;\n\n const arrows = this.elem.nativeElement.querySelectorAll('.line-' + nth + ' .arrow');\n\n this.needSwap[nth] = (fL > tL || (fL === tL && fT < tT));\n const arrowFw = this.needSwap[nth] && this.isVisible(arrows[0]) && arrows[0] || !this.needSwap[nth] && this.isVisible(arrows[1]) && arrows[1];\n const arrowBw = !this.needSwap[nth] && this.isVisible(arrows[0]) && arrows[0] || this.needSwap[nth] && this.isVisible(arrows[1]) && arrows[1];\n\n this.styleArrowFw[nth] = {};\n this.styleArrowBw[nth] = {};\n this.styleLine[nth] = {};\n\n this.styleArrowFw[nth]['top'] = W / 2 - 6 + 'px';\n this.styleArrowBw[nth]['top'] = W / 2 - 6 + 'px';\n\n this.styleLine[nth]['display'] = 'none';\n this.styleLine[nth]['-webkit-transform'] = 'rotate(' + ANG + 'deg)';\n this.styleLine[nth]['-moz-transform'] = 'rotate(' + ANG + 'deg)';\n this.styleLine[nth]['-ms-transform'] = 'rotate(' + ANG + 'deg)';\n this.styleLine[nth]['-o-transform'] = 'rotate(' + ANG + 'deg)';\n this.styleLine[nth]['-transform'] = 'rotate(' + ANG + 'deg)';\n this.styleLine[nth]['top'] = top + 'px';\n this.styleLine[nth]['left'] = left + 'px';\n this.styleLine[nth]['width'] = H + 'px';\n this.styleLine[nth]['height'] = W + 'px';\n this.styleLine[nth]['background'] = 'linear-gradient(to right, ' +\n (arrowFw ? 'transparent' : color) + ' 11px, ' +\n color + ' 11px ' + (H - 11) + 'px, ' +\n (arrowBw ? 'transparent' : color) + ' ' + (H - 11) + 'px 100%)';\n this.styleLine[nth]['display'] = 'initial';\n }\n\n private adjustLines() {\n const pairs = this.getFromToPairs();\n\n // init values\n this.needSwap = Array(pairs.length).fill(false);\n this.styleLine = Array(pairs.length).fill([]);\n this.styleArrowBw = Array(pairs.length).fill({});\n this.styleArrowFw = Array(pairs.length).fill({});\n\n this.arrowIndices = Array(pairs.length)\n .fill(null).map((_, i) => i);\n\n pairs.map((pair: HTMLElement[], i: number) => {\n this.adjustLine(i, pair[0], pair[1]);\n });\n }\n\n private getFromToPairs() {\n const froms = Array.from(document.querySelectorAll(this.from) as NodeListOf<HTMLElement>);\n const tos = Array.from(document.querySelectorAll(this.to) as NodeListOf<HTMLElement>);\n\n return froms.reduce((acc1, cur1) => {\n return tos.reduce((acc2, cur2) => {\n acc2.push([cur1, cur2]);\n return acc2;\n }, acc1);\n }, []).filter((pair: HTMLElement[]) => !!pair[0] && !!pair[1]);\n }\n\n private trackPositionChange() {\n const pairs = this.getFromToPairs();\n\n const currentPos = pairs.map((pair: HTMLElement[]) => {\n return JSON.stringify(pair[0].getBoundingClientRect()) + JSON.stringify(pair[1].getBoundingClientRect());;\n }).join(',');\n\n if (currentPos !== this.elementPositionBackup) {\n this.elementPositionBackup = currentPos;\n this.adjustLines();\n }\n }\n\n ngOnInit() {\n this.subscription = this.arrowUpdateService.updateArrows$.subscribe(() => {\n timer(10).subscribe(() => this.adjustLines());\n });\n\n this.adjustLines();\n window.addEventListener(\"scroll\", () => {\n if (new Date().getTime() % 5 == 0) {\n // don't 🔥 the CPU\n // @TODO: better hack with setTimeout overriden at each event ?\n this.trackPositionChange();\n }\n });\n }\n\n ngDoCheck() {\n this.trackPositionChange();\n }\n\n ngOnDestroy() {\n this.subscription.unsubscribe();\n }\n\n}\n","@for (index of arrowIndices; track index) {\n<div class=\"line line-{{ index }}\" [ngStyle]=\"styleLine[index]\" [matTooltip]=\"toolTip\">\n @if (head == true) {\n <div class=\"arrow head {{ needSwap[index] ? 'arrow-bw' : 'arrow-fw' }}\"\n [ngStyle]=\"needSwap[index] ? styleArrowBw[index] : styleArrowFw[index]\"></div>\n }\n @if (tail == true) {\n <div class=\"arrow tail {{ needSwap[index] ? 'arrow-fw' : 'arrow-bw' }}\"\n [ngStyle]=\"needSwap[index] ? styleArrowFw[index] : styleArrowBw[index]\"></div>\n }\n @if (!!text && text.length > 0) {\n <div class=\"text\">{{ text }}</div>\n }\n</div>\n}\n","import { Injectable } from '@angular/core';\nimport { SelectItem } from '../../models/selectListItem';\nimport { ModelStructureDto } from '../../models/modelStructureDto';\n\n@Injectable()\nexport class FactorService {\n public toSelectList(model: ModelStructureDto): SelectItem[] {\n if (model == null || model.definition == null || model.definition.factors == null) { return null; }\n var result: SelectItem[] = [];\n\n for (var factor of model.definition.factors.filter(p => p.parentKey == null)) {\n result.push(new SelectItem(factor.publicKey, factor.name, false));\n\n for (var lowerDimension of factor.lower) {\n result.push(new SelectItem(lowerDimension.publicKey, lowerDimension.name, true));\n }\n }\n\n return result;\n }\n}\n","import { Component, Directive, HostListener, Inject, Input } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { MatDialog, MatDialogConfig, MatDialogRef } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { SelectItem } from '../../../models/selectListItem';\nimport { ModelFilter, UserSettingsDto } from '../../../models/userSettingsDto';\nimport { UserSettingService } from '../../../viewModel/userSettings.service';\nimport { VIEWSTATE_PROVIDER, ViewModelStateBase } from '../../../viewModel/viewModelState.service';\nimport { IResultsState } from '../../interfaces/IResultsState';\nimport { QualifiedByEnum } from '../../models/factorScoreDto';\nimport { FactorService } from '../../services/factorService';\n\n@Component({\n templateUrl: './dialog-settings.component.html',\n styleUrls: ['./dialog-settings.component.less'],\n standalone: false\n})\nexport class DialogSettingsComponent extends ComponentWithViewStateBase<IResultsState> {\n public form: FormGroup;\n public sending: boolean;\n private settings: UserSettingsDto;\n public factors: SelectItem[];\n public isSingleTeam: boolean;\n public isSubscriber: boolean;\n public modelFilterSettings: ModelFilter;\n public customFactorsSelected: boolean;\n public benchmarkTypes: SelectItem[] = []\n public deltaPeriods: SelectItem[] = [\n new SelectItem(\"None\", \"Don't compare (shows results from past 12 months)\"),\n new SelectItem(\"PreviousMonth\", \"Compare current month with previous month\"),\n new SelectItem(\"PreviousQuarter\", \"Compare recent 3 months with previous 3 months\"),\n new SelectItem(\"PreviousHalfYear\", \"Compare recent 6 months with previous 6 months\"),\n new SelectItem(\"PreviousYear\", \"Compare recent 12 months with previous 12 months\")\n ]\n\n public qualifyByTypes: SelectItem[] = [\n new SelectItem(QualifiedByEnum.benchmark.toString(), \"Against benchmark\"),\n new SelectItem(QualifiedByEnum.delta.toString(), \"Against previous period or snapshot\"),\n new SelectItem(QualifiedByEnum.none.toString(), \"No comparison\"),\n ]\n\n constructor(public dialogRef: MatDialogRef<DialogSettingsComponent>, private factorService: FactorService, private userSettingsService: UserSettingService, protected snackBar: MatSnackBar, private formBuilder: FormBuilder, @Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IResultsState>) {\n super(state, snackBar)\n }\n\n ngOnInit() {\n this.createForm();\n super.ngOnInit();\n }\n\n public submit(): void {\n if (!this.form.valid) { return; }\n\n this.sending = true;\n this.settings.global.benchmark = this.form.controls.benchmarkType.value;\n this.settings.global.deltaPeriod = this.form.controls.deltaPeriod.value;\n this.settings.global.overviewFactors = this.form.controls.overviewFactors.value;\n var otherModelFactors = this.form.controls.otherModelOverviewFactors.value;\n\n if (otherModelFactors.length > 0) {\n this.settings.global.overviewFactors = this.settings.global.overviewFactors.concat(otherModelFactors.filter((item) => this.settings.global.overviewFactors.indexOf(item) < 0));\n }\n\n this.settings.global.qualifyBy = this.form.controls.qualifyBy.value;\n this.settings.global.stacking = this.form.controls.stacking.value == \"true\" ? true : false;\n this.userSettingsService.set(this.settings);\n this.state.forcedReload();\n this.dialogRef.close();\n this.showSuccess(\"We updated your settings. We are now reloading the results.\");\n this.sending = false;\n }\n\n public resetOverviewFactors(): void {\n this.form.controls.overviewFactors.setValue(this.factors.filter(p => !p.lower).map(p => p.value));\n this.customFactorsSelected = false;\n }\n\n public verifyOverviewFactors(): void {\n var coreFactors = this.factors.filter(p => !p.lower).map(p => p.value);\n var selectedFactors = this.form.controls.overviewFactors.value;\n this.customFactorsSelected = !this.arraysHaveSameElements(coreFactors, selectedFactors);\n }\n\n private createForm(): void {\n this.form = this.formBuilder.group({\n deltaPeriod: [{ value: \"\" }, Validators.required],\n benchmarkType: [{ value: \"\" }, Validators.required],\n qualifyBy: [{ value: \"\" }, Validators.required],\n overviewFactors: [{ value: null }, Validators.required],\n otherModelOverviewFactors: [{ value: null }],\n stacking: [{ value: \"false\" }, Validators.required]\n });\n };\n\n\n protected onDataUpdate(data: IResultsState): void {\n this.settings = this.userSettingsService.get();\n this.isSubscriber = data.isSubscriber;\n this.isSingleTeam = data.teamMetaData != null;\n\n if (this.isSubscriber) {\n this.form.controls.benchmarkType.enable();\n }\n else {\n this.form.controls.benchmarkType.disable();\n }\n\n this.benchmarkTypes = data.factorScores.benchmark.available.map(p => new SelectItem(p.key, p.name));\n this.form.controls.deltaPeriod.setValue(this.settings.global.deltaPeriod);\n this.form.controls.benchmarkType.setValue(this.settings.global.benchmark);\n this.form.controls.stacking.setValue(this.settings.global.stacking ? \"true\" : \"false\");\n this.form.controls.qualifyBy.setValue(this.settings.global.qualifyBy ?? data.factorScores.processingData.qualifiedBy);\n this.factors = this.factorService.toSelectList(data.factorScores.modelStructure);\n\n if (this.settings.global.overviewFactors.length == 0) {\n this.form.controls.overviewFactors.setValue(data.factorScores.modelStructure.definition.factors.filter(p => p.parentKey == null && !p.metric).map(p => p.publicKey));\n }\n else {\n this.form.controls.overviewFactors.setValue(this.settings.global.overviewFactors);\n this.form.controls.otherModelOverviewFactors.setValue(this.settings.global.overviewFactors.filter(p => this.factors.find(x => x.value == p) == null));\n }\n\n this.deltaPeriods = [\n new SelectItem(\"None\", \"Don't compare (shows results from past 12 months)\"),\n new SelectItem(\"PreviousMonth\", \"Compare current month with previous month\"),\n new SelectItem(\"PreviousQuarter\", \"Compare recent 3 months with previous 3 months\"),\n new SelectItem(\"PreviousHalfYear\", \"Compare recent 6 months with previous 6 months\"),\n new SelectItem(\"PreviousYear\", \"Compare recent 12 months with previous 12 months\")\n ]\n\n this.qualifyByTypes = [\n new SelectItem(QualifiedByEnum.benchmark.toString(), \"Against benchmark\"),\n new SelectItem(QualifiedByEnum.delta.toString(), this.isSingleTeam ? \"Against previous snapshot\" : \"Against previous period\"),\n new SelectItem(QualifiedByEnum.none.toString(), \"No comparison\"),\n ]\n };\n\n private arraysHaveSameElements(arr1: any[], arr2: any[]): boolean {\n if (arr1.length !== arr2.length) return false;\n const set1 = new Set(arr1);\n return arr2.every(item => set1.has(item));\n }\n}\n\n@Directive({\n selector: '[settingsDialog]',\n standalone: false\n})\nexport class OpenSettingsDialogDirective {\n @Input() showSettingStacking: boolean;\n\n constructor(private dialog: MatDialog) {\n }\n\n @HostListener('click')\n onClick(): void {\n const dialogConfig = new MatDialogConfig();\n dialogConfig.panelClass = ['dialog', 'settings'];\n dialogConfig.autoFocus = false;\n dialogConfig.enterAnimationDuration = 0;\n dialogConfig.exitAnimationDuration = 0;\n dialogConfig.data = {};\n this.dialog.open(DialogSettingsComponent, dialogConfig);\n }\n}\n","<div class=\"dialog-header\">\n <h1 mat-dialog-title>Statistical Settings</h1>\n <div class=\"close\" mat-dialog-close><i class=\"responsive icon ph-x-bold\" ></i></div>\n</div>\n<mat-dialog-content>\n <form [formGroup]=\"form\" (ngSubmit)=\"submit()\">\n <div class=\"message message-information\"><span class=\"icon ph-info-fill\"></span><div><a target=\"_blank\" href=\"https://columinity.com/wiki/How-Statistical-Settings-impact-the-results\">Learn</a> how these settings affect insights.</div></div>\n <mat-form-field class=\"qualifyBy\" subscriptSizing=\"dynamic\">\n <mat-label>What baseline should we compare with?</mat-label>\n <mat-select class=\"qualifyBy-dropdown\" formControlName=\"qualifyBy\">\n @for (item of qualifyByTypes; track item) {\n <mat-option class=\"select-option\" [value]=\"item.value\">{{item.label}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n\n @if (isSingleTeam) {\n <mat-form-field class=\"stacking\" subscriptSizing=\"dynamic\">\n <mat-label>Combine snapshots?</mat-label>\n <mat-select class=\"stacking-dropdown\" formControlName=\"stacking\">\n <mat-option class=\"select-option\" [value]=\"'false'\">No, only show most recent snapshot</mat-option>\n <mat-option class=\"select-option\" [value]=\"'true'\">Yes, and use most recent measure (max 12 months back)</mat-option>\n </mat-select>\n </mat-form-field>\n }\n\n <mat-form-field class=\"benchmark\" subscriptSizing=\"dynamic\">\n <mat-label>Which benchmark should we use?</mat-label>\n <mat-select class=\"benchmark-dropdown\" formControlName=\"benchmarkType\">\n @for (item of benchmarkTypes; track item) {\n <mat-option class=\"select-option\" [value]=\"item.value\">{{item.label}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n\n @if (!isSubscriber) {\n <div class=\"message message-information\">\n <span class=\"ph-info-fill icon\"></span>\n Eager to see how your team compares to other benchmarks? Subscribe to unlock dozens of benchmarks, including the 'Top 100 most effective teams', benchmarks for world regions, sectors, scaling frameworks and your organization.\n </div>\n }\n\n @if (!isSingleTeam) {\n <mat-form-field class=\"deltaPeriod\" subscriptSizing=\"dynamic\">\n <mat-label>Which periods should we compare?</mat-label>\n <mat-select class=\"deltaPeriod-dropdown\" formControlName=\"deltaPeriod\">\n @for (item of deltaPeriods; track item) {\n <mat-option class=\"select-option\" [value]=\"item.value\">{{item.label}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <mat-form-field class=\"overviewFactors\" subscriptSizing=\"dynamic\">\n <mat-label>Which factors should we show in the overview?</mat-label>\n <mat-select class=\"overviewFactors-dropdown\" formControlName=\"overviewFactors\" multiple (selectionChange)=\"verifyOverviewFactors()\">\n @if (customFactorsSelected) {\n <mat-option class=\"select-option\" (click)=\"resetOverviewFactors();\">Reset to default factors</mat-option>\n }\n @for (factor of factors; track factor) {\n <mat-option class=\"select-option\" [ngClass]=\"{'lower' : factor.lower}\" [value]=\"factor.value\">{{factor.label}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n\n <div class=\"toolbar\">\n <button class=\"button primary\" type=\"submit\" [ngClass]=\"{'loading': sending }\">submit</button>\n <button class=\"button\" mat-dialog-close>cancel</button>\n </div>\n </form>\n</mat-dialog-content>\n","import { DateRangeDto } from \"../../pipes/dateRange/ngx-dateRangeDto.model\";\nimport { BenchmarkTypeEnum } from \"./factorScoreDto\";\n\nexport class ExportFactorScoresRequestDto {\n constructor(modelKey: string) {\n this.modelKey = modelKey;\n }\n\n modelKey: string;\n periodGrouping: string;\n dateRange: DateRangeDto;\n benchmark: BenchmarkTypeEnum;\n}\n\nexport class ExportTeamListRequestDto {\n constructor(modelKey: string) {\n this.modelKey = modelKey;\n }\n\n modelKey: string;\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ApiConfig } from '../../apiUrlToken';\nimport { ExportFactorScoresRequestDto, ExportTeamListRequestDto } from '../models/exportRequestDto';\n\n@Injectable()\nexport class ExportService {\n private baseUrl: string;\n\n constructor(private http: HttpClient, @Inject(ApiConfig) private config: ApiConfig) {\n this.baseUrl = config.get().apiUrl;\n }\n\n public exportFactorScores(request: ExportFactorScoresRequestDto): Observable<any> {\n return this.http.post(this.baseUrl + \"export/factorscores\", request, { responseType: 'blob' });\n }\n\n public exportTeamList(request: ExportTeamListRequestDto): Observable<any> {\n return this.http.post(this.baseUrl + \"export/teamlist\", request, { responseType: 'blob' });\n }\n\n public exportParticipationRate(request: ExportTeamListRequestDto): Observable<any> {\n return this.http.post(this.baseUrl + \"export/participationrate\", request, { responseType: 'blob' });\n }\n}\n","import { Component, Inject } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport * as moment from 'moment';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { SelectItem } from '../../../models/selectListItem';\nimport { DateRangeDto } from '../../../pipes/dateRange/ngx-dateRangeDto.model';\nimport { IViewState } from '../../../viewModel/interfaces';\nimport { ViewModelStateBase, VIEWSTATE_PROVIDER } from '../../../viewModel/viewModelState.service';\nimport { IResultsState } from '../../interfaces/IResultsState';\nimport { ExportFactorScoresRequestDto } from '../../models/exportRequestDto';\nimport { ExportService } from '../../services/exportService';\n\n@Component({\n templateUrl: './dialog-export-factorscores.component.html',\n styleUrls: ['./dialog-export-factorscores.component.less'],\n standalone: false\n})\nexport class DialogExportFactorScoresComponent extends ComponentWithViewStateBase<IViewState> {\n public form: FormGroup;\n public sending: boolean;\n public submitted: boolean;\n public modelKey: string;\n public periodGroupings: SelectItem[] = [\n new SelectItem(\"PreviousMonth\", \"1 month\"),\n new SelectItem(\"PreviousQuarter\", \"3 months\"),\n new SelectItem(\"PreviousHalfYear\", \"6 months\"),\n new SelectItem(\"PreviousYear\", \"12 months\")\n ]\n public benchmarkTypes: SelectItem[] = []\n\n constructor(@Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IViewState>, protected snackBar: MatSnackBar, private exportService: ExportService, private dialogRef: MatDialogRef<DialogExportFactorScoresComponent>, private formBuilder: FormBuilder) {\n super(state, snackBar);\n this.createForm();\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.form.controls.periodGrouping.setValue(\"PreviousQuarter\");\n this.form.controls.benchmarkType.setValue(\"MostRecentSamples\");\n this.form.controls.start.setValue(moment.utc().subtract(3, 'months').toISOString());\n this.form.controls.end.setValue(moment.utc().toISOString());\n }\n\n public async submit(): Promise<void> {\n this.submitted = true;\n if (!this.form.valid) { return; }\n\n var request = new ExportFactorScoresRequestDto(this.modelKey);\n request.periodGrouping = this.form.controls.periodGrouping.value;\n request.dateRange = new DateRangeDto();\n request.dateRange.from = this.form.controls.start.value;\n request.dateRange.to = this.form.controls.end.value;\n request.benchmark = this.form.controls.benchmarkType.value;\n\n this.sending = true;\n this.exportService.exportFactorScores(request).subscribe(success => {\n let binaryData = [];\n binaryData.push(new Uint8Array([0xEF, 0xBB, 0xBF])); // UTF8 bom\n binaryData.push(success);\n let downloadLink = document.createElement('a');\n downloadLink.href = window.URL.createObjectURL(new Blob(binaryData, { type: success.type }));\n downloadLink.setAttribute('download', 'export-factorscores-' + this.modelKey + '.csv');\n document.body.appendChild(downloadLink);\n downloadLink.click();\n this.dialogRef.close();\n this.sending = false;\n this.showSuccess(\"Download started. You may have to allow it in your browser.\");\n });\n }\n\n protected onDataUpdate(data: IResultsState): void {\n this.benchmarkTypes = data.factorScores.benchmark.available.map(p => new SelectItem(p.key, p.name));\n this.modelKey = data.factorScores.modelStructure.definition.publicKey;\n };\n\n private createForm(): void {\n this.form = this.formBuilder.group({\n periodGrouping: [{ value: \"\" }, Validators.required],\n start: [{ value: \"\" }, Validators.required],\n end: [{ value: \"\" }, Validators.required],\n benchmarkType: [{ value: \"\" }, Validators.required],\n });\n };\n}\n","<div class=\"dialog-header\">\n <h1 mat-dialog-title>Export summary results</h1>\n <div class=\"close\" mat-dialog-close><i class=\"responsive icon ph-x-bold\"></i></div>\n</div>\n<mat-dialog-content>\n <p>Export team-level results to .csv for your own analyses. <a href=\"https://github.com/theliberators/scrumteamsurvey.docs/wiki/Export-File-Definitions\">Our Wiki</a> has a definition.</p>\n <form [formGroup]=\"form\" (ngSubmit)=\"submit()\">\n <mat-form-field class=\"periodGrouping\" subscriptSizing=\"dynamic\">\n <mat-label>Summarize to periods of</mat-label>\n <mat-select class=\"periodGrouping-dropdown\" formControlName=\"periodGrouping\">\n @for (item of periodGroupings; track item) {\n <mat-option class=\"select-option\" [value]=\"item.value\">{{item.label}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n\n <mat-form-field subscriptSizing=\"dynamic\">\n <mat-label>Select date range</mat-label>\n <mat-date-range-input [rangePicker]=\"picker\">\n <input matStartDate formControlName=\"start\" placeholder=\"Start date\">\n <input matEndDate formControlName=\"end\" placeholder=\"End date\">\n </mat-date-range-input>\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-date-range-picker #picker></mat-date-range-picker>\n\n @if (form.controls.start.hasError('matStartDateInvalid')) {\n <mat-error>Invalid start date</mat-error>\n }\n @if (form.controls.end.hasError('matEndDateInvalid')) {\n <mat-error>Invalid end date</mat-error>\n }\n </mat-form-field>\n\n <mat-form-field class=\"benchmark\" subscriptSizing=\"dynamic\">\n <mat-label>Which benchmark should be exported along?</mat-label>\n <mat-select class=\"benchmark-dropdown\" formControlName=\"benchmarkType\">\n @for (item of benchmarkTypes; track item) {\n <mat-option class=\"select-option\" [value]=\"item.value\">{{item.label}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n\n <div class=\"toolbar\">\n <button class=\"button primary\" type=\"submit\" [ngClass]=\"{'loading': sending }\" [disabled]=\"sending\">export</button>\n <button class=\"button\" mat-dialog-close>cancel</button>\n </div>\n </form>\n</mat-dialog-content>\n","import { Directive, HostListener } from '@angular/core';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\nimport { DialogExportFactorScoresComponent } from './dialog-export-factorscores.component';\n\n@Directive({\n selector: '[exportFactorScoresDialog]',\n standalone: false\n})\nexport class OpenExportFactorScoresDialogDirective {\n constructor(private dialog: MatDialog) {\n }\n\n @HostListener('click')\n onClick(): void {\n const dialogConfig = new MatDialogConfig();\n dialogConfig.panelClass = ['dialog', 'export'];\n dialogConfig.autoFocus = false;\n dialogConfig.enterAnimationDuration = 0;\n dialogConfig.exitAnimationDuration = 0;\n this.dialog.open(DialogExportFactorScoresComponent, dialogConfig);\n }\n}\n","import { Component, Inject } from '@angular/core';\nimport { MAT_DIALOG_DATA } from '@angular/material/dialog';\n\n@Component({\n templateUrl: './dialog-notes.component.html',\n styleUrls: ['./dialog-notes.component.less'],\n standalone: false\n})\nexport class DialogNotesComponent {\n constructor(@Inject(MAT_DIALOG_DATA) public notes: string[]) {\n }\n}\n","<div class=\"dialog-header\">\n <h1 mat-dialog-title>Data warnings</h1>\n <div class=\"close\" mat-dialog-close><i class=\"responsive icon ph-x-bold\"></i></div>\n</div>\n<mat-dialog-content>\n <p>Please take the following limitations into account when interpreting the data:</p>\n @for (item of notes; track item) {\n <ul>\n <li>{{item}}</li>\n </ul>\n }\n</mat-dialog-content>\n","import { Component, Directive, HostListener, Inject, Input } from '@angular/core';\nimport { MatDialog, MatDialogConfig, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { DialogNotesComponent } from './dialog-notes.component';\n\n@Directive({\n selector: '[notesDialog]',\n standalone: false\n})\nexport class OpenNotesDialogDirective {\n @Input() notes: string[];\n\n constructor(private dialog: MatDialog) {\n }\n\n @HostListener('click')\n onClick(): void {\n const dialogConfig = new MatDialogConfig();\n dialogConfig.panelClass = ['dialog', 'notes'];\n dialogConfig.data = this.notes;\n dialogConfig.enterAnimationDuration = 0;\n dialogConfig.exitAnimationDuration = 0;\n this.dialog.open(DialogNotesComponent, dialogConfig);\n }\n}\n","import { DatePipe } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { DeltaPeriodEnum, FactorScoreCollectionDeltaDto, FactorScoreDto, QualificationEnum } from '../../models/factorScoreDto';\n\n@Component({\n selector: 'delta-arrow',\n templateUrl: './delta-arrow.component.html',\n styleUrls: ['./delta-arrow.component.less'],\n standalone: false\n})\nexport class DeltaArrowComponent {\n public deltaDateRangeFrom: string;\n public deltaDateRangeTo: string;\n public available: boolean;\n public comparedTo: string;\n public direction: string;\n @Input() public factorScore: FactorScoreDto;\n @Input() public delta: FactorScoreCollectionDeltaDto;\n @Input() public noDataIndicator: boolean;\n\n constructor(private datePipe: DatePipe) {\n }\n\n ngOnInit() {\n this.available = this.factorScore && this.delta.available && this.factorScore.deltaAvailable;\n\n if (this.available) {\n if (this.delta.type == DeltaPeriodEnum.previousSnapshot) {\n var deltaDateRangeFrom = this.datePipe.transform(this.delta.dateRange.from, 'longDate');\n this.comparedTo = \"the previous snapshot for this team from \" + deltaDateRangeFrom;\n }\n else {\n var deltaDateRangeFrom = this.datePipe.transform(this.delta.dateRange.from, 'longDate');\n var deltaDateRangeTo = this.datePipe.transform(this.delta.dateRange.to, 'longDate');\n this.comparedTo = \"the previous period (\" + deltaDateRangeFrom + \" to \" + deltaDateRangeTo + \")\";\n }\n\n if (this.factorScore.qualification == QualificationEnum.positive) {\n this.direction = \"up\";\n }\n else if (this.factorScore.qualification == QualificationEnum.negative) {\n this.direction = \"down\";\n }\n else {\n this.direction = \"same\";\n }\n }\n }\n}\n","@if (available && factorScore.delta > 0) {\n <div [class]=\"'delta ' + direction\" [title]=\"'The score on this factor increased by ' + factorScore.delta + ' points since ' + comparedTo\"><i class=\"icon ph-caret-up-fill\"></i>{{factorScore.delta}}</div>\n}\n@if (available && factorScore.delta < 0) {\n <div [class]=\"'delta ' + direction\" [title]=\"'The score on this factor decreased by ' + factorScore.delta * -1 + ' points since ' + comparedTo\"><i class=\"icon ph-caret-down-fill\"></i>{{factorScore.delta * -1}}</div>\n}\n@if (available && factorScore.delta == 0) {\n <div [class]=\"'delta ' + direction\" [title]=\"'The score on this factor did not change since ' + comparedTo\"><i class=\"icon ph-circle-fill\"></i>{{factorScore.delta}}</div>\n}\n@if (!available) {\n <div [class]=\"'delta ' + direction\" title=\"No historical data available to show changes since previous measure. Perform scans periodically to see improvements.\"><i class=\"icon ph-circle-fill\"></i> ?</div>\n}\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'age-indicator',\n templateUrl: './age-indicator.component.html',\n styleUrls: ['./age-indicator.component.less'],\n standalone: false\n})\nexport class AgeIndicatorComponent implements OnInit {\n @Input() lastMeasured: Date;\n public lastMeasuredMonths: number;\n public lastMeasuredDays: number;\n public lastMeasuredYears: number;\n\n constructor() {\n }\n\n public ngOnInit() {\n if (this.lastMeasured) {\n var measureDate = new Date(this.lastMeasured);\n this.lastMeasuredMonths = this.montsBetweenUTC(new Date(), measureDate);\n this.lastMeasuredYears = Math.floor(this.lastMeasuredMonths / 12);\n this.lastMeasuredDays = this.daysBetweenUTC(new Date(), measureDate);\n }\n }\n\n private montsBetweenUTC(date1: Date, date2: Date): number {\n return Math.max(0, (date1.getFullYear() - date2.getFullYear()) * 12 - date2.getMonth() + date1.getMonth());\n }\n\n private daysBetweenUTC(date1: Date, date2: Date): number {\n const d1 = Date.UTC(date1.getFullYear(), date1.getMonth(), date1.getDate());\n const d2 = Date.UTC(date2.getFullYear(), date2.getMonth(), date2.getDate());\n const oneDayMs = 1000 * 60 * 60 * 24;\n return Math.floor((d1 - d2) / oneDayMs);\n }\n}\n","@if (lastMeasured && lastMeasuredMonths < 1) {\n <div class=\"age-indicator\" [title]=\"'Last measured ' + lastMeasuredDays + ' days ago.'\">\n {{lastMeasuredDays}}do\n </div>\n}\n@if (lastMeasured && lastMeasuredMonths >= 1 && lastMeasuredMonths <= 12) {\n <div class=\"age-indicator\" [title]=\"'Last measured ' + lastMeasuredMonths + ' months ago.'\">\n {{lastMeasuredMonths}}mo\n </div>\n}\n@if (lastMeasured && lastMeasuredMonths > 12) {\n <div class=\"age-indicator\" [title]=\"'Last measured ' + lastMeasuredMonths + ' months ago.'\">\n {{lastMeasuredYears}}yo\n </div>\n}\n","import { Component, Inject } from '@angular/core';\nimport { take } from 'rxjs/operators';\nimport { IViewState } from '../../viewModel/interfaces';\nimport { VIEWSTATE_PROVIDER, ViewModelStateBase } from '../../viewModel/viewModelState.service';\n\n@Component({\n templateUrl: './dialog-subscribe.component.html',\n styleUrls: ['./dialog-subscribe.component.less'],\n standalone: false\n})\nexport class DialogSubscribeComponent {\n public subscribeUrl: string;\n public companyUrl: string;\n public title: string;\n public button: string;\n public discount: boolean;\n\n constructor(@Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IViewState>) {\n this.state.data.pipe(take(1)).subscribe(success => {\n if (success.userInfo.branding.isDefault) {\n this.title = \"Try 1 month for &euro;1,-\";\n this.button = \"Try now\";\n this.discount = true;\n }\n else {\n this.title = \"Upgrade to Professional\";\n this.button = \"Learn more\";\n }\n\n this.subscribeUrl = success.userInfo.branding.channelSubscribeUrl;\n this.companyUrl = success.userInfo.branding.channelCompanyUrl;\n });\n }\n\n}\n","<div class=\"dialog-header\">\n <h1 mat-dialog-title [innerHtml]=\"title\"></h1>\n <div class=\"close\" mat-dialog-close><i class=\"responsive icon ph-x-bold\"></i></div>\n</div>\n<mat-dialog-content>\n <p>Discover the full power of Columinity with our <b>Professional plan</b>:</p>\n <ul>\n <li>Unlimited science-based recommendations.</li>\n <li>Access to the Teams Dashboard.</li>\n <li>Benchmarks per industry/size/region.</li>\n <li>Pull metrics from JIRA, Azure DevOps, etc.</li>\n <li>Receive star ratings from users, customers and other stakeholders.</li>\n <li>Secure access with user accounts.</li>\n <li>Aggregate results from many teams.</li>\n <li>Set up repeat scans easily.</li>\n <li>Access to advanced results.</li>\n </ul>\n\n @if (discount) {\n <div class=\"message message-black\"><span class=\"icon ph-smiley-fill\"></span><span>Use the coupon <b>TRYPRO</b> to pay &euro;1,- for the first team on your monthly Professional plan.</span></div>\n }\n <a class=\"button primary\" [href]=\"subscribeUrl\">{{button}}</a>\n</mat-dialog-content>\n","import { Component, Directive, HostListener } from '@angular/core';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\nimport { DialogSubscribeComponent } from './dialog-subscribe.component';\n\n@Directive({\n selector: '[subscribeDialog]',\n standalone: false\n})\nexport class OpenSubscribeDialogDirective {\n constructor(private dialog: MatDialog) {\n }\n\n @HostListener('click', ['$event'])\n onClick($event: any): void {\n $event.stopPropagation();\n const dialogConfig = new MatDialogConfig();\n dialogConfig.panelClass = ['dialog', 'subscribe', 'primary'];\n dialogConfig.autoFocus = false;\n dialogConfig.enterAnimationDuration = 0;\n dialogConfig.exitAnimationDuration = 0;\n this.dialog.open(DialogSubscribeComponent, dialogConfig);\n }\n}\n","import { Component, Inject, Input } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { Subscription } from 'rxjs';\nimport { IActionState } from '../../../actions/interfaces/IActionState';\nimport { InterventionOwnerEnum, InterventionStateEnum, InterventionTypeEnum } from '../../../actions/models/actionDto';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { ViewModelStateBase, VIEWSTATE_PROVIDER } from '../../../viewModel/viewModelState.service';\nimport { IResultsState } from '../../interfaces/IResultsState';\nimport { FeedbackQuickTipDto } from '../../models/factorScoreDto';\n\n@Component({\n selector: 'quicktips',\n templateUrl: './quicktips.component.html',\n styleUrls: ['./quicktips.component.less'],\n standalone: false\n})\nexport class QuickTipsComponent extends ComponentWithViewStateBase<IActionState> {\n public quickTip: FeedbackQuickTipDto;\n @Input() public dimensionKey: string;\n @Input() public extraClass: string;\n public InterventionTypeEnum = InterventionTypeEnum;\n public InterventionStateEnum = InterventionStateEnum;\n public InterventionOwnerEnum = InterventionOwnerEnum;\n public quickTips: FeedbackQuickTipDto[];\n public tipIndex: number;\n public tipCount: number;\n public stateSubscription: Subscription;\n\n constructor(@Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IResultsState>, protected snackBar: MatSnackBar) {\n super(state, snackBar)\n }\n\n public nextTip() {\n if (this.tipIndex + 1 >= this.quickTips.length) { return; }\n this.tipIndex++;\n this.quickTip = this.quickTips[this.tipIndex];\n }\n\n public previousTip() {\n if (this.tipIndex == 0) { return; }\n this.tipIndex--;\n this.quickTip = this.quickTips[this.tipIndex];\n }\n\n protected onDataUpdate(data: IResultsState): void {\n if (data.factorScores.factorScores.length == 0) { return; }\n var factor = data.factorScores.factorScores.find(p => p.key == this.dimensionKey);\n if (factor == null) { return; }\n var feedback = factor.recommendation;\n\n var quickTipsAdded: string[] = [];\n\n if (data.factorScores.composition.points.count == 1) {\n // only remove already-added actions when viewing a single team; otherwise the same action can be useful for another team\n quickTipsAdded = data.actions.items.items.filter(p => p.quickTipPublicKey && p.state !== \"Completed\").map(p => p.quickTipPublicKey);\n }\n\n this.quickTips = feedback != null ? feedback.quickTips.filter(p => quickTipsAdded.indexOf(p.publicKey) == -1) : [];\n\n if (this.quickTips.length == 0 && !data.isSubscriber) {\n var subscribeQuickTip = new FeedbackQuickTipDto();\n subscribeQuickTip.description = \"Subscribe to get more actionable quick tips, free do-it-yourself workshops and detailed feedback for more than 5 categories.\";\n subscribeQuickTip.type = InterventionTypeEnum.other;\n subscribeQuickTip.publicKey = \"subscribe\";\n this.quickTips.push(subscribeQuickTip);\n }\n\n this.quickTip = this.quickTips.find(p => quickTipsAdded.indexOf(p.publicKey) == -1);\n this.tipIndex = 0;\n this.tipCount = this.quickTips.length;\n };\n}\n","@if (quickTip) {\n <div class=\"quicktips\" [class]=\"extraClass\">\n <div class=\"quicktips-container\">\n @if (tipCount > 1) {\n <div class=\"link back\">\n @if (tipIndex > 0) {\n <a class=\"ph-caret-left icon\" (click)=\"previousTip()\"></a>\n }\n </div>\n }\n <div class=\"quicktip\" [id]=\"'quicktip-' + quickTip.publicKey\" [ngClass]=\"{'subscribe' : quickTip.publicKey == 'subscribe' }\">\n <div class=\"quicktip-description\">{{quickTip.description}}</div>\n @if (quickTip.publicKey != 'subscribe') {\n <div class=\"link\">\n <span class=\"ph-plus icon\"></span> <a [routerLink]=\"[]\" class=\"addasaction\" addActionDialog [prefill]=\"{description: quickTip.description, teamKey: null, expectedImpactOn: [dimensionKey], type: quickTip.type, owner: null, quickTipPublicKey: quickTip.publicKey, url: null, state: InterventionStateEnum.open }\">Add as action</a>\n </div>\n }\n @if (quickTip.publicKey == 'subscribe') {\n <div class=\"link\">\n <span class=\"ph-plus icon\"></span> <a [routerLink]=\"[]\" class=\"addasaction\" subscribeDialog>Subscribe</a>\n </div>\n }\n </div>\n @if (tipCount > 1) {\n <div class=\"link forward\">\n @if (tipIndex + 1 < tipCount) {\n <a class=\"ph-caret-right icon\" (click)=\"nextTip()\"></a>\n }\n </div>\n }\n </div>\n </div>\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { FactorScoreCollectionBenchmarkDto, FactorScoreDto } from '../../../results/models/factorScoreDto';\n\n@Component({\n selector: 'model-factor-benchmark',\n templateUrl: './model-factor-benchmark.component.html',\n styleUrls: ['./model-factor-benchmark.component.less'],\n standalone: false\n})\nexport class ModelFactorBenchmarkComponent implements OnInit {\n @Input() factor: FactorScoreDto;\n @Input() benchmark: FactorScoreCollectionBenchmarkDto;\n\n public async ngOnInit() {\n }\n}\n","<div class=\"breakdown\">\n @if (factor.benchmark != 0) {\n <div [title]=\"'This is the average score of teams in the benchmark [' + benchmark.name + ']. Change the benchmark under \\'Settings\\'.'\" [attr.normalizedScore]=\"factor.benchmark\" [class]=\"'progressbar progressbar-inverted progressbar-benchmark'\">\n <div class=\"progressbar-bar\" [style]=\"'width: ' + (factor.type == 'Metric' ? 100 : factor.benchmark) + '%'\"></div>\n <div class=\"progressbar-label\">benchmark</div>\n <div class=\"progressbar-score\">{{factor.benchmark}}</div>W\n </div>\n }\n <div class=\"details\">\n </div>\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { PointDto } from '../../../results/models/factorScoreDto';\n\n@Component({\n selector: 'model-factor-breakdown',\n templateUrl: './model-factor-breakdown.component.html',\n styleUrls: ['./model-factor-breakdown.component.less'],\n standalone: false\n})\nexport class ModelFactorBreakdownComponent implements OnInit {\n @Input() factor: { points: any[], name?: string, type?: string };\n @Input() pageSize: number = 8;\n public currentPage: number = 0;\n public pageCount: number = 0;\n public pagedPoints: any[] = [];\n public points: PointDto[];\n \n public async ngOnInit() {\n if (!this.pageSize || this.pageSize < 1) {\n this.pageSize = 8;\n }\n this.updatePaging();\n }\n\n public updatePaging() {\n const totalPoints = this.factor?.points?.length || 0;\n this.pageCount = totalPoints > this.pageSize ? Math.ceil(totalPoints / this.pageSize) : 1;\n\n this.showPage(this.currentPage);\n }\n\n public showPage(page: number) {\n const totalPoints = this.factor?.points?.length || 0;\n if (totalPoints <= this.pageSize) {\n this.pagedPoints = this.factor.points;\n this.currentPage = 0;\n } else {\n const start = page * this.pageSize;\n const end = start + this.pageSize;\n this.pagedPoints = this.factor.points.slice(start, end);\n this.currentPage = page;\n }\n }\n\n public nextPage() {\n if (this.hasNext()) {\n this.showPage(this.currentPage + 1);\n }\n }\n\n public prevPage() {\n if (this.hasPrev()) {\n this.showPage(this.currentPage - 1);\n }\n }\n\n public hasNext(): boolean {\n return (this.currentPage + 1) < this.pageCount;\n }\n\n public hasPrev(): boolean {\n return this.currentPage > 0;\n }\n}\n","@for (point of pagedPoints; track point) {\n <div class=\"breakdown\">\n <div [attr.normalizedScore]=\"point.normalizedScore\" class=\"progressbar progressbar-inverted progressbar-{{point.type | slugify}} progressbar-{{point.name | slugify}}\">\n <div class=\"progressbar-bar\" [style]=\"'width: ' + (factor.type == 'Metric' ? 100 : point.normalizedScore) + '%'\"></div>\n <div class=\"progressbar-label\">{{point.name | lowercase}} @if (point.type == 'Segment') {\n <span>{{point.occurances}}x</span>\n }</div>\n <div class=\"progressbar-score\">{{point.normalizedScore}}</div>\n </div>\n <div class=\"details\">\n @if (point.type == 'Team') {\n <a [matTooltip]=\"'Open detailed report in new window'\" [routerLink]=\"['/', 'snapshot', point.publicKey]\"><i class=\"ph-faders-horizontal icon\"></i> </a>\n }\n @if (point.type == 'Client') {\n <a target=\"_blank\" [matTooltip]=\"'Jump to Teams Dashboard for this organization'\" [href]=\"'https://coachingcenter.columinity.com/select/' + point.publicKey\"><i class=\"ph-faders-horizontal icon\"></i> </a>\n }\n </div>\n </div>\n}\n\n@if (factor.points.length > pageSize) {\n <div class=\"breakdown-paginator\">\n @if (hasPrev()) {\n <div class=\"breakdown-paginator-previous\" (click)=\"prevPage()\"><span class=\"icon ph-caret-left\"></span></div>\n }\n @if (!hasPrev()) {\n <div class=\"breakdown-paginator-previous\"></div>\n }\n @if (hasNext()) {\n <div class=\"breakdown-paginator-next\" (click)=\"nextPage()\"><span class=\"icon ph-caret-right\"></span></div>\n }\n </div>\n}\n","import { Clipboard } from '@angular/cdk/clipboard';\nimport { Component, Directive, HostListener, Inject, Input } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialog, MatDialogConfig } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { FactorStructureDto } from '../../../models/modelStructureDto';\nimport { ClientIntegrationSummaryDto } from '../../../models/integrationDto';\n\n@Component({\n templateUrl: './dialog-integration.component.html',\n styleUrls: ['./dialog-integration.component.less'],\n standalone: false\n})\nexport class DialogIntegrationComponent {\n public metric: FactorStructureDto;\n public integration: ClientIntegrationSummaryDto;\n public inviteUrlCopied: boolean;\n\n constructor(@Inject(MAT_DIALOG_DATA) data: { metric: FactorStructureDto, integration: ClientIntegrationSummaryDto }, protected snackBar: MatSnackBar, private clipboard: Clipboard) {\n this.metric = data.metric;\n this.integration = data.integration;\n }\n\n public copyInviteLink(): void {\n this.clipboard.copy(this.integration.collectorUrl);\n this.inviteUrlCopied = true;\n this.snackBar.open('We copied the link to invite link to your clipboard', null, { duration: 3000 });\n setTimeout(() => {\n this.inviteUrlCopied = false;\n }, 2000);\n }\n}\n\n\n@Directive({\n selector: '[integrationDialog]',\n standalone: false\n})\nexport class OpenIntegrationDialogDirective {\n @Input() metric: FactorStructureDto;\n @Input() integration: ClientIntegrationSummaryDto;\n\n constructor(private dialog: MatDialog) {\n }\n\n @HostListener('click', ['$event'])\n onClick($event: any): void {\n $event.stopPropagation();\n const dialogConfig = new MatDialogConfig();\n dialogConfig.panelClass = ['dialog', 'integration'];\n dialogConfig.data = { metric: this.metric, integration: this.integration };\n dialogConfig.autoFocus = false;\n dialogConfig.enterAnimationDuration = 0;\n dialogConfig.exitAnimationDuration = 0;\n this.dialog.open(DialogIntegrationComponent, dialogConfig);\n }\n}\n\n","@if (metric) {\n <div class=\"dialog-header\">\n <h1 mat-dialog-title>{{metric.name}}</h1>\n <div class=\"close\" mat-dialog-close><i class=\"responsive icon ph-x-bold\"></i></div>\n </div>\n}\n<mat-dialog-content>\n <p>{{metric.description}}</p>\n\n @if (integration.collectorUrl) {\n <div class=\"howtocollect\">\n <h4>How to collect</h4>\n <p>Share this permanent link with the relevant audience, such as e-mail footers, team pages, in follow-up emails or in bulk emails.</p>\n <div class=\"invitebox\">\n <div class=\"url\">\n <input type=\"text\" [value]=\"integration.collectorUrl\" />\n <span [class]=\"'clipboard ' + (inviteUrlCopied ? 'ph-clipboard-text' : 'ph-clipboard')\" (click)=\"copyInviteLink()\"></span>\n </div>\n </div>\n </div>\n }\n\n @if (!integration.collectorUrl) {\n <div class=\"howtocollect\">\n <h4>How to collect</h4>\n <p>Open this dialogue from a Team Report to see how that team can collect data for this metric.</p>\n </div>\n }\n</mat-dialog-content>\n","import { Component, Inject, Input } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { ClientIntegrationSummaryDto } from '../../../models/integrationDto';\nimport { FactorStructureDto } from '../../../models/modelStructureDto';\nimport { IResultsState } from '../../../results/interfaces/IResultsState';\nimport { FactorScoreCollectionBenchmarkDto, FactorScoreCollectionDeltaDto, FactorScoreDto } from '../../../results/models/factorScoreDto';\nimport { IUserSettingStrategy, VIEWSTATE_USERSETTINGS_STRATEGY } from '../../../viewModel/userSettings.service';\nimport { VIEWSTATE_PROVIDER, ViewModelStateBase } from '../../../viewModel/viewModelState.service';\nimport { ConnectedPosition } from '@angular/cdk/overlay';\n\n@Component({\n selector: 'model-factor-metric',\n templateUrl: './model-factor-metric.component.html',\n styleUrls: ['./model-factor-metric.component.less'],\n standalone: false\n})\nexport class ModelFactorMetricComponent extends ComponentWithViewStateBase<IResultsState> {\n @Input() metric: FactorStructureDto;\n private teamsDashboardUrl: string;\n public integration: ClientIntegrationSummaryDto;\n public factorScore: FactorScoreDto;\n public showSetupTeaser: boolean;\n public showSetup: boolean;\n public delta: FactorScoreCollectionDeltaDto;\n public benchmark: FactorScoreCollectionBenchmarkDto;\n public baseUrl: string;\n public showMetricResult: boolean;\n public isPopoverOpen = false;\n public overlayPositions: ConnectedPosition[] = [\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'center',\n offsetY: 0\n }\n ];\n\n constructor(@Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IResultsState>, public snackBar: MatSnackBar, @Inject(VIEWSTATE_USERSETTINGS_STRATEGY) protected userSettings: IUserSettingStrategy) {\n super(state, snackBar)\n }\n\n ngOnInit() {\n super.ngOnInit();\n }\n\n public toManage($event: any) {\n $event.stopPropagation();\n window.location.href = this.teamsDashboardUrl + '/integrations';\n }\n\n protected onDataUpdate(data: IResultsState): void {\n this.delta = data.factorScores.delta;\n this.baseUrl = data.baseUrl;\n this.benchmark = data.factorScores.benchmark;\n this.teamsDashboardUrl = data.userInfo.branding.teamsDashboardUrl;\n this.factorScore = data.factorScores.factorScores.find(p => p.key == this.metric.publicKey);\n\n this.integration = data.integrations.items.find(p => p.metricKeys.includes(this.metric.publicKey));\n this.showMetricResult = (this.integration && this.integration.isSetup) || data.appContext == \"CoachingCenter\";\n\n this.showSetupTeaser = !data.isSubscriber && (!this.integration || !this.integration.isSetup) && data.appContext !== \"CoachingCenter\";\n this.showSetup = data.isSubscriber && (!this.integration || !this.integration.isSetup) && data.appContext !== \"CoachingCenter\";\n }\n}\n\n","<div class=\"model-factor-metric\" #badgeOrigin=\"cdkOverlayOrigin\" cdkOverlayOrigin (click)=\"isPopoverOpen = true\" [id]=\"'metric-' + metric.publicKey\">\n <div class=\"model-factor-metric-title\">\n {{metric.name}}\n <span class=\"ph-info-fill icon\"></span>\n </div>\n @if (showMetricResult && factorScore) {\n <div class=\"model-factor-metric-result\">\n @if (factorScore) {\n <div class=\"digit\">{{factorScore.score}}</div>\n }\n <div class=\"unit\">{{metric.unit}}</div>\n @if (factorScore && userSettings.settings.user.modelFilter.advanced) {\n <div class=\"confidence\" title=\"The confidence interval\">CI: {{factorScore.lowerConfidence}} - {{factorScore.upperConfidence}}</div>\n }\n <div class=\"model-factor-metric-result-details\">\n @if (userSettings.settings.user.modelFilter.advanced) {\n <age-indicator [lastMeasured]=\"factorScore.lastMeasured\"></age-indicator>\n }\n <delta-arrow [factorScore]=\"factorScore\" [delta]=\"delta\"></delta-arrow>\n </div>\n </div>\n }\n @if (!showMetricResult || !factorScore) {\n <div class=\"model-factor-metric-result\">\n <div class=\"digit\">?</div>\n <div class=\"unit\">{{metric.unit}}</div>\n </div>\n }\n <div class=\"model-factor-metric-setup\">\n @if (integration && integration.hasCollectorUrl && integration.isSetup) {\n <div class=\"howtocollect collectordialog\" integrationDialog [metric]=\"metric\" [integration]=\"integration\"><span class=\"icon ph-funnel-fill\"></span> How to collect</div>\n }\n @if (showSetup) {\n <a class=\"howtocollect setup\" (click)=\"toManage($event)\"><span class=\"icon ph-gear-fill\"></span> Set up</a>\n }\n @if (showSetupTeaser) {\n <a class=\"howtocollect teaser\" subscribeDialog><span class=\"icon ph-gear-fill\"></span> Set up</a>\n }\n </div>\n</div>\n\n<ng-template cdkConnectedOverlay [cdkConnectedOverlayOrigin]=\"badgeOrigin\" [cdkConnectedOverlayPush]=\"true\" [cdkConnectedOverlayViewportMargin]=\"8\" [cdkConnectedOverlayOpen]=\"isPopoverOpen\" [cdkConnectedOverlayHasBackdrop]=\"true\" [cdkConnectedOverlayBackdropClass]=\"'cdk-overlay-transparent-backdrop'\" [cdkConnectedOverlayPositions]=\"overlayPositions\" (backdropClick)=\"isPopoverOpen = false\">\n <div class=\"popover\" [id]=\"'popover-' + metric.publicKey\">\n <div class=\"popover-container\">\n <span (click)=\"isPopoverOpen = false\" class=\"close ph-x\"></span>\n <h3 factorInformationDialog [factor]=\"metric\">\n {{metric.name}}\n <span class=\"icon ph-info-fill\"></span>\n </h3>\n <div class=\"description\">{{metric.description}}</div>\n <ng-container *ngIf=\"factorScore\">\n <model-factor-benchmark [factor]=\"factorScore\" [benchmark]=\"benchmark\"></model-factor-benchmark>\n <model-factor-breakdown [factor]=\"factorScore\"></model-factor-breakdown>\n <quicktips [dimensionKey]=\"metric.publicKey\" [extraClass]=\"'quicktips-popover'\"></quicktips>\n @if (factorScore.recommendation.available) {\n <div class=\"link\">\n <a [routerLink]=\"[baseUrl, 'tips']\" [fragment]=\"metric.publicKey\">discover how to improve ></a>\n </div>\n }\n </ng-container>\n </div>\n <div class=\"arrow\"></div>\n </div>\n</ng-template>\n","import { Component, Inject, Input } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { Subscription } from 'rxjs';\nimport { InterventionStateEnum } from '../../../actions/models/actionDto';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { FactorStructureDto } from '../../../models/modelStructureDto';\nimport { UserSettingsDto } from '../../../models/userSettingsDto';\nimport { ArrowUpdateService } from '../../../results/components/arrow/ArrowUpdateService';\nimport { IResultsState } from '../../../results/interfaces/IResultsState';\nimport { FactorScoreCollectionBenchmarkDto, FactorScoreCollectionDeltaDto, FactorScoreDto } from '../../../results/models/factorScoreDto';\nimport { IUserSettingStrategy, UserSettingService, VIEWSTATE_USERSETTINGS_STRATEGY } from '../../../viewModel/userSettings.service';\nimport { VIEWSTATE_PROVIDER, ViewModelStateBase } from '../../../viewModel/viewModelState.service';\nimport { ConnectedPosition } from '@angular/cdk/overlay';\n\n@Component({\n selector: 'model-factor-indicator',\n templateUrl: './model-factor-indicator.component.html',\n styleUrls: ['./model-factor-indicator.component.less'],\n standalone: false\n})\nexport class ModelFactorIndicatorComponent extends ComponentWithViewStateBase<IResultsState> {\n @Input() public indicator: FactorStructureDto;\n @Input() public actionStatusPosition: string;\n @Input() public visible: boolean;\n public isInActiveLayer: boolean;\n public direction: string;\n public factorScore: FactorScoreDto;\n public indicators: FactorStructureDto[];\n public benchmark: FactorScoreCollectionBenchmarkDto;\n public notes: string[];\n public dataAvailable: boolean;\n public delta: FactorScoreCollectionDeltaDto;\n public baseUrl: string;\n public expandIndicators: boolean = true;\n public InterventionStateEnum = InterventionStateEnum;\n public settingsSubscription: Subscription;\n public isPopoverOpen = false;\n public overlayPositions: ConnectedPosition[] = [\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'center'\n }\n ];\n constructor(@Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IResultsState>, @Inject(VIEWSTATE_USERSETTINGS_STRATEGY) protected userSettings: IUserSettingStrategy, private userSettingService: UserSettingService, protected snackBar: MatSnackBar, private arrowUpdateService: ArrowUpdateService) {\n super(state, snackBar)\n }\n\n ngOnInit() {\n super.ngOnInit();\n\n this.settingsSubscription = this.userSettingService.changed.subscribe((settings: UserSettingsDto) => {\n if (this.userSettings.settings.user.modelFilter.advanced !== this.expandIndicators) {\n this.toggleIndicators();\n }\n \n this.setIsInActiveLayer();\n });\n }\n\n ngOnDestroy() {\n if (this.settingsSubscription) {\n this.settingsSubscription.unsubscribe();\n }\n }\n\n public toggleIndicators() {\n this.expandIndicators = !this.expandIndicators;\n this.arrowUpdateService.triggerUpdate();\n }\n\n protected onDataUpdate(data: IResultsState): void {\n this.factorScore = data.factorScores.factorScores.find(p => p.key == this.indicator.publicKey);\n if (this.factorScore == null) { return; }\n\n this.delta = data.factorScores.delta;\n this.baseUrl = data.baseUrl;\n this.benchmark = data.factorScores.benchmark;\n this.dataAvailable = !this.factorScore.anonymized && this.factorScore.sampleSize > 0;\n this.notes = this.factorScore.notes;\n this.direction = this.factorScore.qualification.toLowerCase();\n this.setIsInActiveLayer();\n };\n\n private setIsInActiveLayer() {\n if (this.userSettings.settings.user.modelFilter.layers.length == 0) { this.isInActiveLayer = true; return; }\n this.isInActiveLayer =\n (this.userSettings.settings.user.modelFilter.layers.find(p => p.key == \"TeamMembers\" && p.selected) != null && this.factorScore.points.find(p => p.name == \"TeamMember\") != null) ||\n (this.userSettings.settings.user.modelFilter.layers.find(p => p.key == \"Stakeholders\" && p.selected) != null && this.factorScore.points.find(p => p.name == \"Stakeholder\") != null) ||\n (this.userSettings.settings.user.modelFilter.layers.find(p => p.key == \"Supporters\" && p.selected) != null && this.factorScore.points.find(p => p.name == \"Supporter\") != null);\n }\n}\n","@if (visible) {\n<div [class]=\"'factor-indicator factor-indicator-actions-' + actionStatusPosition + ' factor-indicator-' + direction\" [ngClass]=\"{'factor-fade' : !isInActiveLayer || !dataAvailable}\" [id]=\"'factor-' + indicator.publicKey\" #badgeOrigin=\"cdkOverlayOrigin\" cdkOverlayOrigin (click)=\"isPopoverOpen = true\">\n @if ((notes.length > 0 || factorScore.interventionSummary.impeded > 0 || factorScore.interventionSummary.open > 0) && userSettings.settings.user.modelFilter.advanced) {\n <div class=\"factor-actions\">\n @if (factorScore.interventionSummary.open > 0) {\n <div class=\"factor-actions-status\">\n <span [routerLink]=\"[baseUrl, 'actions']\" [queryParams]=\"{ state: InterventionStateEnum.open, expectedImpactOn: indicator.publicKey }\">{{factorScore.interventionSummary.open}}</span>/\n <span [routerLink]=\"[baseUrl, 'actions']\" [queryParams]=\"{ state: InterventionStateEnum.completed, expectedImpactOn: indicator.publicKey }\">{{factorScore.interventionSummary.completed}}</span>\n </div>\n }\n @if (factorScore.interventionSummary.impeded > 0) {\n <div class=\"factor-actions-impeded\" [routerLink]=\"[baseUrl, 'actions']\" [queryParams]=\"{ state: InterventionStateEnum.impeded, expectedImpactOn: indicator.publicKey }\">\n <img class=\"icon\" src=\"/assets/img/impeded.svg\" /> {{factorScore.interventionSummary.impeded}}\n </div>\n }\n @if (notes.length > 0) {\n <div class=\"factor-warnings\" notesDialog [notes]=\"notes\">\n <span class=\"icon ph-warning-fill\" title=\"There are some issues in the data that might influence your interpretations\"></span>\n </div>\n }\n </div>\n }\n <div class=\"factor-content\" (click)=\"isPopoverOpen = true\">\n <div class=\"factor-name\">\n {{indicator.name}}\n </div>\n <progressbar [factorScore]=\"factorScore\"></progressbar>\n <div class=\"factor-details\">\n @if (userSettings.settings.user.modelFilter.advanced) {\n <age-indicator [lastMeasured]=\"factorScore.lastMeasured\"></age-indicator>\n }\n @if (dataAvailable) {\n <delta-arrow [factorScore]=\"factorScore\" [delta]=\"delta\" [noDataIndicator]=\"false\"></delta-arrow>\n }\n </div>\n </div>\n <div class=\"factor-anchor\" [id]=\"'factor-' + indicator.publicKey + '-anchor'\">\n </div>\n</div>\n<ng-template cdkConnectedOverlay [cdkConnectedOverlayOrigin]=\"badgeOrigin\" [cdkConnectedOverlayPush]=\"true\" [cdkConnectedOverlayViewportMargin]=\"8\" [cdkConnectedOverlayOpen]=\"isPopoverOpen\" [cdkConnectedOverlayHasBackdrop]=\"true\" [cdkConnectedOverlayBackdropClass]=\"'cdk-overlay-transparent-backdrop'\" [cdkConnectedOverlayPositions]=\"overlayPositions\" (backdropClick)=\"isPopoverOpen = false\">\n <div class=\"popover\" [id]=\"'popover-' + indicator.publicKey\">\n <div class=\"popover-container\">\n <span (click)=\"isPopoverOpen = false\" class=\"close ph-x\"></span>\n <h3 factorInformationDialog [factor]=\"indicator\">\n {{indicator.name}}\n <span class=\"icon ph-info-fill\"></span>\n </h3>\n <div class=\"description\">{{indicator.description}}</div>\n <model-factor-benchmark [factor]=\"factorScore\" [benchmark]=\"benchmark\"></model-factor-benchmark>\n <model-factor-breakdown [factor]=\"factorScore\"></model-factor-breakdown>\n <quicktips [dimensionKey]=\"indicator.publicKey\" [extraClass]=\"'quicktips-popover'\"></quicktips>\n @if (factorScore.recommendation.available) {\n <div class=\"link\">\n <a [routerLink]=\"[baseUrl, 'tips']\" [fragment]=\"indicator.publicKey\">discover how to improve ></a>\n </div>\n }\n </div>\n <div class=\"arrow\"></div>\n </div>\n</ng-template>\n}\n","import { Component, Inject, Input } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { Subscription } from 'rxjs';\nimport { InterventionStateEnum } from '../../../actions/models/actionDto';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { FactorStructureDto } from '../../../models/modelStructureDto';\nimport { UserSettingsDto } from '../../../models/userSettingsDto';\nimport { ArrowUpdateService } from '../../../results/components/arrow/ArrowUpdateService';\nimport { IResultsState } from '../../../results/interfaces/IResultsState';\nimport { FactorScoreCollectionBenchmarkDto, FactorScoreCollectionDeltaDto, FactorScoreDto } from '../../../results/models/factorScoreDto';\nimport { IUserSettingStrategy, UserSettingService, VIEWSTATE_USERSETTINGS_STRATEGY } from '../../../viewModel/userSettings.service';\nimport { VIEWSTATE_PROVIDER, ViewModelStateBase } from '../../../viewModel/viewModelState.service';\nimport { ConnectedPosition } from '@angular/cdk/overlay';\n\n@Component({\n selector: 'model-factor-core',\n templateUrl: './model-factor-core.component.html',\n styleUrls: ['./model-factor-core.component.less'],\n standalone: false\n})\nexport class ModelFactorCoreComponent extends ComponentWithViewStateBase<IResultsState> {\n @Input() public factor: FactorStructureDto;\n @Input() public allowExpand: boolean;\n @Input() public expandPosition: string;\n public isInActiveLayer: boolean;\n public direction: string;\n public factorScore: FactorScoreDto;\n public indicators: FactorStructureDto[];\n public benchmark: FactorScoreCollectionBenchmarkDto;\n public notes: string[];\n public dataAvailable: boolean;\n public delta: FactorScoreCollectionDeltaDto;\n public baseUrl: string;\n public expandIndicators: boolean = false;\n public InterventionStateEnum = InterventionStateEnum;\n private settingsSubscription: Subscription;\n public isPopoverOpen = false;\n public overlayPositions: ConnectedPosition[] = [\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'center',\n offsetY: 0\n }\n ];\n\n constructor(@Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IResultsState>, @Inject(VIEWSTATE_USERSETTINGS_STRATEGY) protected userSettings: IUserSettingStrategy, private userSettingService: UserSettingService, protected snackBar: MatSnackBar, private arrowUpdateService: ArrowUpdateService) {\n super(state, snackBar)\n }\n\n ngOnInit() {\n super.ngOnInit();\n\n this.settingsSubscription = this.userSettingService.changed.subscribe((settings: UserSettingsDto) => {\n if (this.userSettings.settings.user.modelFilter.advanced !== this.expandIndicators) {\n this.toggleIndicators();\n }\n\n this.setIsInActiveLayer();\n });\n\n if (this.userSettings.settings.user.modelFilter.advanced !== this.expandIndicators) {\n this.toggleIndicators();\n }\n }\n\n ngOnDestroy() {\n if (this.settingsSubscription) {\n this.settingsSubscription.unsubscribe();\n }\n }\n\n public toggleIndicators() {\n this.expandIndicators = !this.expandIndicators;\n this.arrowUpdateService.triggerUpdate();\n }\n\n protected onDataUpdate(data: IResultsState): void {\n this.factorScore = data.factorScores.factorScores.find(p => p.key == this.factor.publicKey);\n if (this.factorScore == null) { return; }\n\n this.delta = data.factorScores.delta;\n this.baseUrl = data.baseUrl;\n this.benchmark = data.factorScores.benchmark;\n this.dataAvailable = !this.factorScore.anonymized && this.factorScore.sampleSize > 0;\n this.notes = this.factorScore.notes;\n this.direction = this.factorScore.qualification.toLowerCase();\n this.setIsInActiveLayer();\n };\n\n private setIsInActiveLayer() {\n this.isInActiveLayer =\n (this.userSettings.settings.user.modelFilter.layers.length == 0) ||\n (this.userSettings.settings.user.modelFilter.layers.find(p => p.key == \"TeamMembers\" && p.selected) != null && this.factorScore.points.find(p => p.name == \"TeamMember\") != null) ||\n (this.userSettings.settings.user.modelFilter.layers.find(p => p.key == \"Stakeholders\" && p.selected) != null && this.factorScore.points.find(p => p.name == \"Stakeholder\") != null) ||\n (this.userSettings.settings.user.modelFilter.layers.find(p => p.key == \"Supporters\" && p.selected) != null && this.factorScore.points.find(p => p.name == \"Supporter\") != null);\n }\n}\n","<div [class]=\"'model-factor model-factor-' + direction\" [ngClass]=\"{'model-factor-fade' : !isInActiveLayer || !dataAvailable}\" [id]=\"'factor-' + factor.publicKey\">\n @if (allowExpand) {\n <div [class]=\"'model-factor-expand model-factor-expand-' + expandPosition\" [ngClass]=\"{'expanded': expandIndicators}\" (click)=\"toggleIndicators()\" [id]=\"'factor-' + factor.publicKey + '-expand'\">\n <span class=\"plus\">+</span>\n </div>\n }\n <div class=\"model-factor-inner\" #badgeOrigin=\"cdkOverlayOrigin\" cdkOverlayOrigin (click)=\"isPopoverOpen = true\">\n <div class=\"model-factor-content\" >\n <div class=\"model-factor-name\">\n {{factor.name}}\n </div>\n <progressbar [factorScore]=\"factorScore\"></progressbar>\n <div class=\"model-factor-details\">\n @if (userSettings.settings.user.modelFilter.advanced) {\n <age-indicator [lastMeasured]=\"factorScore.lastMeasured\"></age-indicator>\n }\n @if (dataAvailable) {\n <delta-arrow [factorScore]=\"factorScore\" [delta]=\"delta\"></delta-arrow>\n }\n </div>\n </div>\n\n @if (userSettings.settings.user.modelFilter.advanced) {\n <div class=\"model-factor-bottom\">\n <span class=\"meta-actions\" [title]=\"factorScore.interventionSummary.open + ' open improvement actions, versus ' + factorScore.interventionSummary.completed + ' completed improvement actions'\">\n <span [routerLink]=\"[baseUrl, 'actions']\" [queryParams]=\"{ state: InterventionStateEnum.open, expectedImpactOn: factor.publicKey }\">{{factorScore.interventionSummary.open}}</span>/\n <span [routerLink]=\"[baseUrl, 'actions']\" [queryParams]=\"{ state: InterventionStateEnum.completed, expectedImpactOn: factor.publicKey }\">{{factorScore.interventionSummary.completed}}</span>\n </span>\n @if (factorScore.interventionSummary.impeded > 0) {\n <span class=\"meta-impeded\" [title]=\"factorScore.interventionSummary.impeded + ' improvement actions are blocked, and teams are requesting support'\" [routerLink]=\"[baseUrl, 'actions']\" [queryParams]=\"{ state: InterventionStateEnum.impeded, expectedImpactOn: factor.publicKey }\">\n <img class=\"icon\" src=\"/assets/img/impeded.svg\" />{{factorScore.interventionSummary.impeded}}\n </span>\n }\n @if (notes.length > 0) {\n <span class=\"meta-warnings\" notesDialog [notes]=\"notes\">\n <span class=\"icon ph-warning-fill\"></span>\n </span>\n }\n </div>\n }\n\n @if (!userSettings.settings.user.modelFilter.advanced) {\n <div class=\"model-factor-bottom-empty\">\n </div>\n }\n </div>\n</div>\n\n<div [id]=\"'factor-' + factor.publicKey + '-indicators'\" class=\"indicators\">\n @for (indicator of factor.lower; track indicator) {\n <model-factor-indicator [indicator]=\"indicator\" [actionStatusPosition]=\"expandPosition\" [visible]=\"expandIndicators && allowExpand\"></model-factor-indicator>\n }\n</div>\n\n<ng-template cdkConnectedOverlay [cdkConnectedOverlayOrigin]=\"badgeOrigin\" [cdkConnectedOverlayPush]=\"true\" [cdkConnectedOverlayViewportMargin]=\"8\" [cdkConnectedOverlayOpen]=\"isPopoverOpen\" [cdkConnectedOverlayHasBackdrop]=\"true\" [cdkConnectedOverlayBackdropClass]=\"'cdk-overlay-transparent-backdrop'\" [cdkConnectedOverlayPositions]=\"overlayPositions\" (backdropClick)=\"isPopoverOpen = false\">\n <div class=\"popover\" [id]=\"'popover-' + factor.publicKey\">\n <div class=\"popover-container\">\n <span (click)=\"isPopoverOpen = false\" class=\"close ph-x\"></span>\n <h3 factorInformationDialog [factor]=\"factor\">\n {{factor.name}}\n <span class=\"icon ph-info-fill\"></span>\n </h3>\n <div class=\"description\">{{factor.description}}</div>\n\n <model-factor-benchmark [factor]=\"factorScore\" [benchmark]=\"benchmark\"></model-factor-benchmark>\n <model-factor-breakdown [factor]=\"factorScore\"></model-factor-breakdown>\n <quicktips [dimensionKey]=\"factor.publicKey\" [extraClass]=\"'quicktips-popover'\"></quicktips>\n\n @if (factorScore.recommendation.available) {\n <div class=\"link\">\n <a [routerLink]=\"[baseUrl, 'tips']\" [fragment]=\"factor.publicKey\">discover how to improve ></a>\n </div>\n }\n </div>\n <div class=\"arrow\"></div>\n </div>\n</ng-template>\n","import { Component, HostListener, Inject } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { FactorStructureDto, ModelDefinitionDto } from '../../../models/modelStructureDto';\nimport { ModelVisualizationLayer } from '../../../models/userSettingsDto';\nimport { DateRangeDto } from '../../../pipes/dateRange/ngx-dateRangeDto.model';\nimport { IResultsState } from '../../../results/interfaces/IResultsState';\nimport { DeltaPeriodEnum, PointTypeEnum, QualifiedByEnum } from '../../../results/models/factorScoreDto';\nimport { IUserSettingStrategy, UserSettingService, VIEWSTATE_USERSETTINGS_STRATEGY } from '../../../viewModel/userSettings.service';\nimport { VIEWSTATE_PROVIDER, ViewModelStateBase } from '../../../viewModel/viewModelState.service';\nimport { SelectListItem } from '../../select-list/select-list.component';\nimport { ClientIntegrationSummaryDto } from '../../../models/integrationDto';\n\n@Component({\n selector: 'model-canvas',\n templateUrl: './model-canvas.component.html',\n styleUrls: ['./model-canvas.component.less'],\n standalone: false\n})\nexport class ModelCanvasComponent extends ComponentWithViewStateBase<IResultsState> {\n public factors: FactorStructureDto[];\n public metrics: FactorStructureDto[];\n public integrations: ClientIntegrationSummaryDto[];\n public metricsAvailable: boolean;\n public showIndicatorArrows: boolean;\n public showModel: boolean;\n public dateRange: DateRangeDto;\n public deltaDateRange: DateRangeDto;\n public teamsDashboardUrl: string;\n public pointCount: number;\n public benchmark: string;\n public pointNames: string;\n public pointType: string;\n public deltaTeams: number;\n public showTeamsDashboardSetup: boolean;\n public deltaTeamNames: string;\n public deltaAvailable: boolean;\n public isLoggedIn: boolean;\n public canManageIntegrations: boolean;\n public modelDefinition: ModelDefinitionDto;\n public qualifiedBy: QualifiedByEnum;\n public deltaType: DeltaPeriodEnum;\n public isSubscriber: boolean;\n public QualifiedByEnum = QualifiedByEnum;\n public globalNotes: string[];\n\n constructor(@Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IResultsState>, @Inject(VIEWSTATE_USERSETTINGS_STRATEGY) protected userSettings: IUserSettingStrategy, private userSettingService: UserSettingService, protected snackBar: MatSnackBar) {\n super(state, snackBar);\n\n }\n\n ngOnInit() {\n this.determineScreenSize();\n super.ngOnInit();\n\n if (typeof this.userSettings.settings.user.modelFilter.advanced === 'undefined') {\n this.userSettings.settings.user.modelFilter.advanced = false;\n }\n\n if (!this.userSettings.settings.user.modelFilter.layers || this.userSettings.settings.user.modelFilter.layers.length == 0) {\n this.userSettings.settings.user.modelFilter.layers = [];\n this.userSettings.settings.user.modelFilter.layers.push(new SelectListItem(\"TeamMembers\", \"Team\", true));\n this.userSettings.settings.user.modelFilter.layers.push(new SelectListItem(\"Stakeholders\", \"Stakeholders\", true));\n this.userSettings.settings.user.modelFilter.layers.push(new SelectListItem(\"Supporters\", \"Supporters\", true));\n\n }\n }\n\n @HostListener('window:resize', ['$event'])\n public determineScreenSize(event?) {\n this.showIndicatorArrows = window.innerWidth > 1320;\n this.showModel = window.innerWidth > 600;\n }\n\n protected onDataUpdate(data: IResultsState): void {\n this.globalNotes = data.factorScores.processingData.notes;\n this.factors = data.factorScores.modelStructure.definition.factors.filter(p => p.parentKey == null && p.core);\n this.metrics = data.factorScores.modelStructure.definition.factors.filter(p => p.parentKey == null && p.metric);\n this.modelDefinition = data.factorScores.modelStructure.definition;\n this.dateRange = data.factorScores.dateRange;\n this.deltaDateRange = data.factorScores.delta.dateRange;\n this.pointCount = data.factorScores.composition.points.count;\n this.benchmark = data.factorScores.benchmark.name;\n this.pointNames = data.factorScores.composition.points.points.map(p => p.name).join(\", \");\n this.deltaTeams = data.factorScores.delta.teams.count;\n this.deltaTeamNames = data.factorScores.delta.teams.points.map(p => p.name).join(\", \");\n this.deltaAvailable = data.factorScores.delta.available;\n this.deltaType = data.factorScores.delta.type;\n this.isLoggedIn = data.userInfo.isAdmin || data.userInfo.isCoach;\n this.qualifiedBy = data.factorScores.processingData.qualifiedBy;\n this.isSubscriber = data.isSubscriber;\n this.canManageIntegrations = this.isLoggedIn && data.appContext == \"TeamsDashboard\";\n this.teamsDashboardUrl = data.userInfo.branding.teamsDashboardUrl;\n this.showTeamsDashboardSetup = data.appContext == \"CoachingCenter\";\n\n switch (data.factorScores.composition.points.type) {\n case PointTypeEnum.client:\n case PointTypeEnum.client:\n this.pointType = this.pointCount == 1 ? \"organization\" : \"organizations\";\n break;\n case PointTypeEnum.team:\n this.pointType = this.pointCount == 1 ? \"team\" : \"teams\";\n break;\n case PointTypeEnum.individual:\n this.pointType = this.pointCount == 1 ? \"member\" : \"members\";\n break;\n default:\n this.pointType = \"points\"\n break;\n }\n };\n\n public toggleView(advanced: boolean) {\n this.userSettings.settings.user.modelFilter.advanced = advanced;\n this.userSettingService.set(this.userSettings.settings);\n }\n\n public toggleLayer(selectedLayer: ModelVisualizationLayer) {\n var layer = this.userSettings.settings.user.modelFilter.layers.find(p => p.key == selectedLayer.key);\n if (!layer) { return; }\n\n layer.selected = !layer.selected;\n this.userSettingService.set(this.userSettings.settings);\n }\n}\n","@if (!showModel) {\n <div class=\"message message-warning\">\n <div><span class=\"icon ph-info-fill\"></span> We've hidden the model visualization because your resolution is too low. Please try a larger device, like a tablet, laptop or desktop.</div>\n </div>\n}\n\n@if (factors && showModel) {\n <div class=\"wirebox model\">\n <div class=\"top\">\n <div class=\"toolbar\">\n <div class=\"toolbar-settings\">\n <div class=\"toolbar-setting\">\n <div class=\"toolbar-setting-title\">Selected Benchmark</div>\n <div class=\"toolbar-setting-label\">{{benchmark}}</div>\n </div>\n <div class=\"toolbar-setting\">\n <div class=\"toolbar-setting-title\">compare results to</div>\n @if (qualifiedBy == QualifiedByEnum.none) {\n <div class=\"toolbar-setting-label\">No comparison</div>\n }\n @if (qualifiedBy == QualifiedByEnum.delta && deltaType == 'PreviousSnapshot') {\n <div class=\"toolbar-setting-label\">Previous snapshot from {{deltaDateRange | dateRange}}</div>\n }\n @if (qualifiedBy == QualifiedByEnum.delta && deltaType != 'PreviousSnapshot') {\n <div class=\"toolbar-setting-label\">Current period <span class=\"icon ph-info-fill\" [title]=\"'Current period ranges from ' + (dateRange | dateRange) + '. This includes weighed measurements from ' + pointCount + ' ' + pointType + ': ' + pointNames\"></span> with previous period <span class=\"icon ph-info-fill\" [title]=\"'Previous period ranges from ' + (deltaDateRange | dateRange) + '. This includes weighed measurements from ' + deltaTeams + ' ' + pointType + ': ' + deltaTeamNames\"></span></div>\n }\n @if (qualifiedBy == QualifiedByEnum.benchmark) {\n <div class=\"toolbar-setting-label\">Against benchmark</div>\n }\n </div>\n @if (qualifiedBy != QualifiedByEnum.none) {\n <div class=\"toolbar-setting\">\n <div class=\"toolbar-setting-title\">comparison legend</div>\n <div class=\"toolbar-setting-markers negative\">\n @if (qualifiedBy == 'Benchmark') {\n <div class=\"toolbar-setting-marker negative\">\n <span class=\"marker\"></span>\n <span class=\"label\">lower</span>\n </div>\n <div class=\"toolbar-setting-marker positive\">\n <span class=\"marker\"></span>\n <span class=\"label\">higher</span>\n </div>\n }\n @if (qualifiedBy == 'Delta') {\n <div class=\"toolbar-setting-marker negative\">\n <span class=\"marker\"></span>\n <span class=\"label\">decreased</span>\n </div>\n <div class=\"toolbar-setting-marker positive\">\n <span class=\"marker\"></span>\n <span class=\"label\">improved</span>\n </div>\n }\n </div>\n </div>\n }\n </div>\n <div class=\"buttons\">\n <div class=\"button\" id=\"change-settings\" settingsDialog><span class=\"ph-faders icon\"></span> Settings</div>\n @if (isLoggedIn) {\n <div class=\"button\" id=\"export-factorscores\" exportFactorScoresDialog><span class=\"ph-download-simple icon\"></span> Export</div>\n }\n </div>\n </div>\n </div>\n <div class=\"content\">\n <div class=\"model-visualization\">\n <div class=\"model-clarification\">\n <span class=\"icon ph-info-fill\"></span>\n <span class=\"message-text\">This model shows how factors are connected based on scientific research. Click <span class=\"icon ph-plus-circle-bold plus\"></span> to expand or close lower-order factors. Click factors for more detail.</span>\n </div>\n @if (!showModel || !showIndicatorArrows) {\n <div class=\"model-smallscreen\">\n <span class=\"icon ph-frame-corners-bold\"></span>\n <span class=\"message-text\">View on a larger device to see more details.</span>\n </div>\n }\n <div class=\"model-viewconfiguration\">\n <div class=\"model-viewmode\">\n <div class=\"model-viewmode-label\">View</div>\n <div class=\"model-viewmode-option\" (click)=\"toggleView(false)\" [ngClass]=\"{'selected': !userSettings.settings.user.modelFilter.advanced}\">\n @if (!userSettings.settings.user.modelFilter.advanced) {\n <span class=\"icon ph-check-fill\"></span>\n }Simple\n </div>\n <div class=\"model-viewmode-option selected\" (click)=\"toggleView(true)\" [ngClass]=\"{'selected': userSettings.settings.user.modelFilter.advanced}\">\n @if (userSettings.settings.user.modelFilter.advanced) {\n <span class=\"icon ph-check-fill\"></span>\n }Advanced\n </div>\n </div>\n <div class=\"model-viewmode model-layers\">\n <div class=\"model-viewmode-label\">Source</div>\n @for (layer of userSettings.settings.user.modelFilter.layers; track layer) {\n <div class=\"model-viewmode-option\" (click)=\"toggleLayer(layer)\" [ngClass]=\"{'selected': layer.selected}\">\n @if (layer.selected) {\n <span class=\"icon ph-check-fill\"></span>\n }{{layer.label}}\n </div>\n }\n </div>\n @if (globalNotes.length > 0) {\n <div class=\"model-warnings\" notesDialog [notes]=\"globalNotes\">\n <span class=\"ph-warning-fill icon\"></span>\n @if (globalNotes.length == 1) {\n <span>{{globalNotes.length}} warning</span>\n }\n @if (globalNotes.length > 1) {\n <span>{{globalNotes.length}} warnings</span>\n }\n </div>\n }\n </div>\n <div class=\"model-frame\" [class]=\"'model-visualization-' + modelDefinition.publicKey\">\n @for (factor of factors; track factor) {\n <model-factor-core [factor]=\"factor\" [expandPosition]=\"factor.indicatorPosition\" [allowExpand]=\"showIndicatorArrows\"></model-factor-core>\n }\n </div>\n @for (factor of factors; track factor) {\n @for (effect of factor.effects; track effect) {\n <arrow [from]=\"'#factor-' + factor.publicKey\" [to]=\"'#factor-' + effect.to\" [onlyVisible]=\"true\" [tail]=\"true\" [head]=\"false\" [width]=\"2\"></arrow>\n }\n @if (showIndicatorArrows) {\n @for (lowerFactor of factor.lower; track lowerFactor) {\n @for (lowerEffect of lowerFactor.effects; track lowerEffect) {\n <arrow [from]=\"'#factor-' + lowerFactor.publicKey + '-anchor'\" [to]=\"'#factor-' + lowerEffect.to + '-expand'\" [onlyVisible]=\"true\" [tail]=\"false\" [head]=\"false\" [width]=\"1\"></arrow>\n }\n }\n }\n }\n <div class=\"model-attribution\">\n <span class=\"icon ph-info-fill\"></span>\n <span>\n <span [innerHtml]=\"modelDefinition.attribution\"></span>\n <span>&nbsp;Read <a href=\"https://columinity.com/wiki\" target=\"_blank\">documentation</a> for details.</span>\n </span>\n </div>\n </div>\n </div>\n <div class=\"content model-processmetrics\">\n <h3>Process metrics <span class=\"badge badge-beta\" title=\"This feature is in beta. You may experience issues or a sub-optimal user experience as we learn from teams what is most valuable. Please share bugs or feedback with us.\">beta</span></h3>\n @if (metrics.length > 0) {\n <div class=\"model-factor-metrics\">\n @for (metric of metrics; track metric) {\n <model-factor-metric [metric]=\"metric\"></model-factor-metric>\n }\n </div>\n }\n <div class=\"model-processmetrics-definition\">\n @if (canManageIntegrations) {\n <a [routerLink]=\"['/integrations']\">Manage integrations</a>.\n }\n @if (showTeamsDashboardSetup) {\n Integrations can be managed from each Teams Dashboard.\n }\n Read <a href=\"https://columinity.com/wiki/integrate-with-other-platforms\" target=\"_blank\">documentation</a> to learn more.\n </div>\n </div>\n </div>\n }\n","import { HttpClient } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { ApiConfig } from '../../apiUrlToken';\nimport { ContentBrandingDto } from '../../models/brandingSettingsDto';\n\n@Injectable()\nexport class ResourceDownloadService\n{\n private baseUrl: string;\n\n constructor(private http: HttpClient, @Inject(ApiConfig) private config: ApiConfig) {\n this.baseUrl = config.get().apiUrl;\n }\n\n public get(publicKey: string, brandingSettings: ContentBrandingDto): Promise<ResourceDownloadRedirectUrlDto> {\n return this.http.post<ResourceDownloadRedirectUrlDto>(this.baseUrl + 'resourcedownload/' + publicKey, brandingSettings).toPromise();\n }\n}\n\nexport class ResourceDownloadRedirectUrlDto {\n cdnUrl: string;\n}\n","import { Component, Directive, HostListener, Inject, Input } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialog, MatDialogConfig, MatDialogRef } from '@angular/material/dialog';\nimport { MatSnackBar, MatSnackBarConfig } from '@angular/material/snack-bar';\nimport { BrandingProvider } from '../../branding/brandingProvider.service';\nimport { ContentBrandingDto } from '../../models/brandingSettingsDto';\nimport { ResourceDownloadService } from './resourceDownload.service';\n\n@Component({\n templateUrl: './dialog-resourcedownload.component.html',\n styleUrls: ['./dialog-resourcedownload.component.less'],\n standalone: false\n})\nexport class DialogResourceDownloadComponent\n{\n public publicKey: string;\n public cdnUrl: string;\n public error: boolean;\n private contentBranding: ContentBrandingDto;\n\n constructor(private brandingProvider: BrandingProvider, private snackBar: MatSnackBar, @Inject(MAT_DIALOG_DATA) data: string, private dialogRef: MatDialogRef<DialogResourceDownloadComponent>, private downloadService: ResourceDownloadService) {\n this.publicKey = data;\n this.contentBranding = this.brandingProvider.currentBranding.contentBranding;\n }\n\n public async ngOnInit() {\n try {\n var result = await this.downloadService.get(this.publicKey, this.contentBranding);\n this.cdnUrl = result.cdnUrl;\n }\n catch\n {\n this.cdnUrl = null;\n this.error = true;\n }\n }\n\n public async initiateDownload(): Promise<void> {\n let downloadLink = document.createElement('a');\n downloadLink.setAttribute('href', this.cdnUrl);\n document.body.appendChild(downloadLink);\n downloadLink.click();\n this.dialogRef.close();\n\n let config = new MatSnackBarConfig();\n config.panelClass = ['success', 'snackbar'];\n config.duration = 2000;\n this.snackBar.open(\"Download started. Check your 'downloads' in the browser.\", \"dismiss\", config);\n }\n}\n\n@Directive({\n selector: '[resourceDownloadDialog]',\n standalone: false\n})\nexport class OpenResourceDownloadDialogDirective {\n @Input() publicKey: string;\n\n constructor(private dialog: MatDialog) {\n }\n\n @HostListener('click')\n onClick(): void {\n const dialogConfig = new MatDialogConfig();\n dialogConfig.panelClass = ['dialog', 'resourcedownload'];\n dialogConfig.data = this.publicKey;\n dialogConfig.enterAnimationDuration = 0;\n dialogConfig.exitAnimationDuration = 0;\n this.dialog.open(DialogResourceDownloadComponent, dialogConfig);\n }\n}\n\n","<div class=\"dialog-header\">\n <h1 mat-dialog-title>Download</h1>\n <div class=\"close\" mat-dialog-close><i class=\"responsive icon ph-x-bold\"></i></div>\n</div>\n<mat-dialog-content>\n @if (!cdnUrl) {\n <div class=\"loading\">\n <div class=\"top\">\n <div class=\"pleasewait\">Please wait while we generate your facilitation guide.</div>\n <div class=\"loading-icon dark\"></div>\n </div>\n </div>\n }\n\n @if (cdnUrl && !error) {\n <p>Use our detailed facilitation guides to initiate change in and around your teams</p>\n }\n @if (cdnUrl && !error) {\n <div class=\"button primary cdnUrl\" (click)=\"initiateDownload()\" [attr.data-href]=\"cdnUrl\"><span class=\"ph-download-bold icon\"></span>Download guide</div>\n }\n @if (error) {\n <div class=\"error\">We're sorry, but an error occured while preparing your guide. You can try again or <a href=\"javascript:void(null);\" supportDialog>contact us</a> if the problem persists.</div>\n }\n</mat-dialog-content>\n","import { NgModule } from '@angular/core';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\nimport { BrandingModule } from '../../branding/branding.module';\nimport { DialogResourceDownloadComponent, OpenResourceDownloadDialogDirective } from './dialog-resourcedownload.component';\nimport { ResourceDownloadService } from './resourceDownload.service';\nimport { CommonModule } from '@angular/common';\n\n\n@NgModule({\n imports: [MatDialogModule, MatSnackBarModule, BrandingModule, CommonModule],\n declarations: [DialogResourceDownloadComponent, OpenResourceDownloadDialogDirective],\n exports: [DialogResourceDownloadComponent, OpenResourceDownloadDialogDirective],\n providers: [ResourceDownloadService]\n})\nexport class ResourceDownloadModule { }\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { DialogSubscribeComponent } from './dialog-subscribe.component';\nimport { OpenSubscribeDialogDirective } from './dialog-subscribe.directive';\n\n@NgModule({\n imports: [MatDialogModule, CommonModule],\n declarations: [DialogSubscribeComponent, OpenSubscribeDialogDirective],\n exports: [DialogSubscribeComponent, OpenSubscribeDialogDirective]\n})\nexport class DialogSubscribeModule { }\n","import { Component, Input } from '@angular/core';\nimport { GuideStepMediaDto } from '../../models/guideCollectionDto';\n\n@Component({\n selector: 'imageslider',\n templateUrl: './imageslider.component.html',\n styleUrls: ['./imageslider.component.less'],\n standalone: false\n})\nexport class ImageSliderComponent {\n private intervalId: any;\n public index: number = 0;\n public maxIndex: number = 0;\n public total: number = 0;\n @Input() public items: GuideStepMediaDto[];\n\n public ngOnInit() {\n this.total = this.items.length;\n this.intervalId = setInterval(() => {\n this.nextImage();\n }, 3000);\n }\n\n public ngAfterContentChecked() {\n if (this.maxIndex != this.items.length) {\n this.maxIndex = this.items.length;\n this.index = 0;\n }\n }\n\n private nextImage() {\n this.index++;\n this.maxIndex = this.items.length;\n\n if (this.index >= this.maxIndex ) {\n this.index = 0;\n }\n }\n\n public select(index: number) {\n if (this.intervalId) {\n clearInterval(this.intervalId);\n this.intervalId = setInterval(() => {\n this.nextImage();\n }, 3000);\n }\n\n this.index = index;\n }\n\n ngOnDestroy() {\n if (this.intervalId) {\n clearInterval(this.intervalId);\n }\n }\n}\n","<div class=\"imageslider\">\n\n <div class=\"imageslider-inner\" #imageslider>\n @for (item of items; track item; let i = $index) {\n <div class=\"imageslider-item\" [ngClass]=\"{'visible': index == i}\">\n @if (item.clickUrl) {\n <a [href]=\"item.clickUrl\"><img [src]=\"item.sourceUrl\" /></a>\n }\n @if (!item.clickUrl) {\n <img [src]=\"item.sourceUrl\" />\n }\n </div>\n }\n </div>\n\n <div class=\"imageslider-nav\">\n @for (item of items; track item; let i = $index) {\n <div class=\"imageslider-nav-bullet\" (mouseover)=\"select(i)\" [ngClass]=\"{'active' : index == i}\"></div>\n }\n </div>\n</div>\n","import { Inject, Injectable, InjectionToken, Optional } from '@angular/core';\n\nexport const GuidesConfigToken = new InjectionToken<GuideConfigDto>(\n 'guides-angular.config'\n);\n\n@Injectable({ providedIn: 'root' })\nexport class GuidesClientConfig {\n private config?: GuideConfigDto;\n\n constructor(@Optional() @Inject(GuidesConfigToken) config?: GuideConfigDto) {\n if (config) {\n this.set(config);\n }\n }\n\n set(config: GuideConfigDto): void {\n this.config = config;\n }\n\n get(): GuideConfigDto {\n return this.config as GuideConfigDto;\n }\n}\n\nexport class GuideConfigDto {\n autoOpen: boolean;\n}\n","import { ComponentType } from '@angular/cdk/portal';\nimport { Inject, Injectable, InjectionToken } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { BehaviorSubject } from 'rxjs';\nimport { ViewModelStateBase, VIEWSTATE_PROVIDER } from '../../viewModel/viewModelState.service';\nimport { IGuideState } from '../interfaces/IGuideState';\nimport { GuideCollectionDto, GuideDto, GuideStepDto } from '../models/guideCollectionDto';\nimport { GuidesClientConfig } from './guidesClientConfig';\nimport { IGuideStateService } from './interfaces';\nexport const GUIDESTATE_PROVIDER = new InjectionToken<IGuideStateService>('guidestate.provider');\n\n@Injectable({ providedIn: 'root' })\nexport class GuidePopupService {\n public showResumeGuideOption = new BehaviorSubject<boolean>(false);\n private activeGuide: GuideDto;\n private guides: GuideDto[];\n private alreadyOpened: boolean;\n\n constructor(@Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IGuideState>, private dialog: MatDialog, @Inject(GUIDESTATE_PROVIDER) private guideStateService: IGuideStateService, private config: GuidesClientConfig) {\n this.guideStateService.activeGuideUpdated.subscribe(success => {\n this.activeGuide = success;\n });\n\n this.state.data.subscribe(success => {\n this.guides = success.guides.guides;\n });\n }\n\n public async startGuide<T>(dialogComponent: ComponentType<T>, guide: GuideDto) {\n await this.guideStateService.startGuide(guide);\n this.open(dialogComponent);\n }\n\n public async startGuideByKey<T>(dialogComponent: ComponentType<T>, guideKey: string) {\n var guide = this.guides.find(p => p.key == guideKey);\n if (guide == null) {\n console.error(\"No guide found with key \" + guideKey);\n return;\n }\n\n await this.guideStateService.startGuide(guide);\n this.open(dialogComponent);\n }\n\n public async stepToggle(step: GuideStepDto): Promise<void> {\n await this.guideStateService.stepToggle(step.key);\n }\n\n public open<T>(dialogComponent: ComponentType<T>) {\n this.dialog.open(dialogComponent, {\n panelClass: ['dialog', 'guide'],\n enterAnimationDuration: 0,\n exitAnimationDuration: 0,\n autoFocus: false\n });\n\n this.showResumeGuideOption.next(false);\n }\n\n public resumeGuide<T>(dialogComponent: ComponentType<T>): void {\n if (this.activeGuide != null && this.config.get().autoOpen) {\n if (!this.alreadyOpened) {\n this.open(dialogComponent);\n this.alreadyOpened = true;\n }\n else {\n this.showResumeGuideOption.next(true);\n }\n }\n }\n\n public async closeWithResume(): Promise<void> {\n this.showResumeGuideOption.next(this.activeGuide != null);\n }\n\n public async dismiss(): Promise<void> {\n this.showResumeGuideOption.next(false);\n await this.guideStateService.dismiss();\n this.dialog.closeAll();\n }\n}\n","import { ComponentType } from '@angular/cdk/portal';\nimport { Component, Directive, HostListener, Inject, InjectionToken } from '@angular/core';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { Subscription } from 'rxjs';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { ViewModelStateBase, VIEWSTATE_PROVIDER } from '../../../viewModel/viewModelState.service';\nimport { IGuideState } from '../../interfaces/IGuideState';\nimport { GuideDto } from '../../models/guideCollectionDto';\nimport { GuidePopupService, GUIDESTATE_PROVIDER } from '../../services/guidePopup.service';\nimport { IGuideStateService } from '../../services/interfaces';\nimport { DIALOG_GUIDE_TOKEN } from '../dialog-guide/dialog-guide.component';\n\nexport const DIALOG_GUIDES_TOKEN: InjectionToken<ComponentType<any>> = new InjectionToken<ComponentType<any>>('DIALOG_GUIDES_TOKEN');\n\n@Component({\n templateUrl: './dialog-guides.component.html',\n styleUrls: ['./dialog-guides.component.less'],\n standalone: false\n})\nexport class DialogGuidesComponent extends ComponentWithViewStateBase<IGuideState> {\n public guides: GuideDto[];\n public activeGuideKey: string;\n private subscription: Subscription;\n\n constructor(@Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IGuideState>, public guidePopupService: GuidePopupService, @Inject(GUIDESTATE_PROVIDER) private guideStateService: IGuideStateService, @Inject(DIALOG_GUIDE_TOKEN) private guideDialog: ComponentType<any>, public dialog: MatDialog, protected snackBar: MatSnackBar) {\n super(state, snackBar);\n }\n\n ngOnInit() {\n super.ngOnInit();\n\n this.subscription = this.guideStateService.activeGuideUpdated.subscribe(guide => {\n if (guide != null) {\n this.activeGuideKey = guide.key;\n }\n });\n }\n\n public async setActiveGuide(guide: GuideDto) {\n this.dialog.closeAll();\n await this.guidePopupService.startGuide(this.guideDialog, guide);\n }\n\n protected onDataUpdate(data: IGuideState) {\n this.guides = data.guides.guides;\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n super.ngOnDestroy();\n }\n}\n\n@Directive({\n selector: '[guidesDialog]',\n standalone: false\n})\nexport class OpenGuidesDialogDirective {\n constructor(private dialog: MatDialog, @Inject(DIALOG_GUIDES_TOKEN) private guidesDialog: ComponentType<any>) {\n }\n\n @HostListener('click')\n onClick(): void {\n const dialogConfig = new MatDialogConfig();\n dialogConfig.panelClass = ['dialog', 'guides'];\n dialogConfig.autoFocus = false;\n dialogConfig.enterAnimationDuration = 0;\n dialogConfig.exitAnimationDuration = 0;\n this.dialog.open(this.guidesDialog, dialogConfig);\n }\n}\n","<div class=\"dialog-header\" id=\"dialog-gettingstartedguides\">\n <h1 mat-dialog-title>How To Guides</h1>\n <div class=\"close\" mat-dialog-close><i class=\"responsive icon ph-x-bold\"></i></div>\n</div>\n<mat-dialog-content>\n <p>We created a number of simple guides to familiarize you with the many features:</p>\n <div class=\"guidelist\">\n @for (guide of guides; track guide) {\n <div class=\"guide\">\n @if (activeGuideKey == guide.key) {\n <a [routerLink]=\"[]\" [id]=\"'guide-' + guide.key\" (click)=\"setActiveGuide(guide)\">{{guide.name}}<span class=\"badge dark\">resume</span></a>\n }\n @if (activeGuideKey != guide.key) {\n <a [routerLink]=\"[]\" [id]=\"'guide-' + guide.key\" (click)=\"setActiveGuide(guide)\">{{guide.name}}</a>\n }\n </div>\n }\n </div>\n</mat-dialog-content>\n","import { ComponentType } from '@angular/cdk/portal';\nimport { Component, Directive, HostListener, Inject, InjectionToken, ViewEncapsulation } from '@angular/core';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { ViewModelStateBase, VIEWSTATE_PROVIDER } from '../../../viewModel/viewModelState.service';\nimport { IGuideState } from '../../interfaces/IGuideState';\nimport { GuideDto, GuideStepDto } from '../../models/guideCollectionDto';\nimport { GuidePopupService, GUIDESTATE_PROVIDER } from '../../services/guidePopup.service';\nimport { IGuideStateService } from '../../services/interfaces';\nimport { DIALOG_GUIDES_TOKEN } from '../dialog-guides/dialog-guides.component';\n\nexport const DIALOG_GUIDE_TOKEN: InjectionToken<ComponentType<any>> = new InjectionToken<ComponentType<any>>('DIALOG_GUIDE_TOKEN');\n\n@Component({\n templateUrl: './dialog-guide.component.html',\n styleUrls: ['./dialog-guide.component.less'],\n encapsulation: ViewEncapsulation.None,\n standalone: false\n})\nexport class DialogGuideComponent extends ComponentWithViewStateBase<IGuideState> {\n public smallScreen: boolean;\n public activeStep: GuideStepDto = null;\n public guide: GuideDto;\n\n constructor(@Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IGuideState>, public guidePopupService: GuidePopupService, @Inject(GUIDESTATE_PROVIDER) private guideStateService: IGuideStateService, @Inject(DIALOG_GUIDES_TOKEN) private guidesDialog: ComponentType<any>, protected snackBar: MatSnackBar, private dialog: MatDialog) {\n super(state, snackBar);\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.smallScreen = window.innerWidth <= 640;\n\n this.guideStateService.activeGuideUpdated.subscribe(guide => {\n if (guide != null) {\n this.guide = guide;\n this.selectNextOpenItem();\n }\n });\n\n this.dialog.afterAllClosed.subscribe(() => {\n this.guidePopupService.closeWithResume()\n });\n }\n\n public async toGuides() {\n this.dialog.closeAll();\n const dialogConfig = new MatDialogConfig();\n dialogConfig.panelClass = ['dialog', 'guides'];\n this.dialog.open(this.guidesDialog, dialogConfig);\n }\n\n public async dismiss() {\n await this.guidePopupService.dismiss();\n this.dialog.closeAll();\n }\n\n public async handleCheckChange(item: GuideStepDto, checked: boolean) {\n item.completed = checked;\n await this.guidePopupService.stepToggle(item);\n this.next(item);\n }\n\n public async next(item: GuideStepDto) {\n if (this.guide == null) { return; }\n if (this.isLastStep(item)) {\n this.activeStep = this.guide.steps[0];;\n }\n else {\n var index = this.guide.steps.indexOf(item);\n this.activeStep = this.guide.steps[index + 1];\n }\n }\n\n public async complete(item: GuideStepDto) {\n await this.guidePopupService.stepToggle(item);\n await this.guidePopupService.dismiss();\n }\n\n public showSteps(): boolean {\n return !this.smallScreen;\n }\n\n public select(item: GuideStepDto) {\n this.activeStep = item;\n }\n\n public isLastStep(item: GuideStepDto) {\n var index = this.guide.steps.indexOf(item);\n return index >= this.guide.steps.length - 1;\n }\n\n private selectNextOpenItem() {\n if (this.guide == null) { return; }\n var remaining = this.guide.steps.filter(p => !p.completed);\n\n if (remaining.length == 0) {\n this.activeStep = this.guide.steps[0];\n return;\n }\n\n this.activeStep = remaining[0];\n }\n\n protected onDataUpdate(data: IGuideState) {\n }\n\n @HostListener('window:resize', ['$event'])\n onWindowResize(event?) {\n this.smallScreen = window.innerWidth <= 640;\n this.selectNextOpenItem();\n }\n}\n\n@Directive({\n selector: '[guideDialog]',\n standalone: false\n})\nexport class OpenGuideDialogDirective {\n constructor(private dialog: MatDialog, private guidePopupService: GuidePopupService, @Inject(DIALOG_GUIDE_TOKEN) private guideDialog: ComponentType<any>) {\n }\n\n @HostListener('click')\n onClick(): void {\n this.dialog.closeAll();\n this.guidePopupService.open(this.guideDialog);\n }\n}\n","@if (guide) {\n <mat-dialog-content id=\"dialog-gettingstarted\">\n <div class=\"close\" mat-dialog-close><span class=\"responsive icon ph-x-bold\"></span></div>\n @if (showSteps()) {\n <div class=\"guides-navigation leftcolumn\">\n <div class=\"steps\">\n <h3 class=\"title\">{{guide.name}}</h3>\n <div class=\"steplist\">\n @for (step of guide.steps; track step) {\n <div class=\"steplist-item\" [ngClass]=\"{'active': step == activeStep}\">\n <checkbox [label]=\"step.title\" (onCheckChange)=\"handleCheckChange(step, $event)\" [checked]=\"step.completed\" (click)=\"select(step)\"></checkbox>\n </div>\n }\n </div>\n </div>\n <div class=\"toolbar\">\n <div class=\"link dismiss\" [routerLink]=\"[]\" (click)=\"dismiss()\">dismiss guide</div>\n </div>\n </div>\n }\n @if (activeStep) {\n <div class=\"guides-item rightcolumn\">\n @if (activeStep.media) {\n <div class=\"mediaframe\">\n <imageslider [items]=\"activeStep.media\"></imageslider>\n </div>\n }\n <div class=\"description\">\n <h3 class=\"title\">{{activeStep.title}}</h3>\n <div class=\"innerHtml\" [innerHtml]=\"activeStep.body\"></div>\n <div class=\"link\">\n @if (activeStep.url) {\n <a [href]=\"activeStep.url\" target=\"_blank\">learn more ></a>\n }\n </div>\n </div>\n <div class=\"buttons\">\n @if (!activeStep.completed && showSteps()) {\n <a [routerLink]=\"[]\" class=\"button cta markcomplete\" (click)=\"handleCheckChange(activeStep, true)\">mark done</a>\n }\n @if (activeStep.completed && showSteps()) {\n <a [routerLink]=\"[]\" class=\"button cta markcomplete\" (click)=\"handleCheckChange(activeStep, false)\">mark undone</a>\n }\n @if (!isLastStep(activeStep)) {\n <a [routerLink]=\"[]\" class=\"button borderonly\" (click)=\"next(activeStep)\">next</a>\n }\n @if (isLastStep(activeStep)) {\n <a [routerLink]=\"[]\" class=\"button borderonly\" (click)=\"toGuides()\">more guides</a>\n }\n @if (isLastStep(activeStep) && !showSteps()) {\n <a [routerLink]=\"[]\" class=\"button cta markcomplete\" (click)=\"complete(activeStep)\">complete</a>\n }\n </div>\n </div>\n }\n </mat-dialog-content>\n}\n","import { ComponentType } from '@angular/cdk/portal';\nimport { Component, Inject } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { ViewModelStateBase, VIEWSTATE_PROVIDER } from '../../../viewModel/viewModelState.service';\nimport { DIALOG_GUIDE_TOKEN } from '../../dialogs/dialog-guide/dialog-guide.component';\nimport { IGuideState } from '../../interfaces/IGuideState';\nimport { GuidePopupService } from '../../services/guidePopup.service';\n\n@Component({\n selector: 'resumeguidehover',\n templateUrl: './resumeguidehover.component.html',\n styleUrls: ['./resumeguidehover.component.less'],\n standalone: false\n})\nexport class ResumeGuideHoverComponent extends ComponentWithViewStateBase<IGuideState> {\n public showResumeGuide: boolean;\n\n constructor(@Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IGuideState>, private guidePopupService: GuidePopupService, @Inject(DIALOG_GUIDE_TOKEN) private guideDialog: ComponentType<any>, protected snackBar: MatSnackBar, private dialog: MatDialog) {\n super(state, snackBar);\n this.guidePopupService.showResumeGuideOption.subscribe(show => {\n this.showResumeGuide = show;\n });\n }\n\n protected onDataUpdate() {\n this.guidePopupService.resumeGuide(this.guideDialog);\n }\n}\n","@if (showResumeGuide) {\n <div class=\"resumeguidehover\" guideDialog>\n <span class=\"icon ph-play-circle-fill\"></span>Resume Guide\n </div>\n}\n","export class GuideCollectionDto {\n guides: GuideDto[];\n active: GuideDto;\n}\n\nexport class GuideDto\n{\n key: string;\n name: string;\n steps: GuideStepDto[];\n}\n\nexport class GuideStepDto {\n key: string;\n title: string;\n body: string;\n url: string;\n completed: boolean;\n media: GuideStepMediaDto[];\n}\n\nexport class GuideStepMediaDto {\n type: GuideMediaTypeEnum;\n sourceUrl: string;\n clickUrl: string;\n}\n\nexport class GuideStateDto {\n constructor() {\n this.completedSteps = [];\n }\n\n activeGuideKey: string;\n completedSteps: string[];\n}\n\nexport enum GuideMediaTypeEnum {\n image = 'Image',\n video = 'Video'\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { LOCAL_STORAGE, StorageService } from 'ngx-webstorage-service';\nimport { BehaviorSubject } from 'rxjs';\nimport { ViewModelStateBase, VIEWSTATE_PROVIDER } from '../../viewModel/viewModelState.service';\nimport { IGuideState } from '../interfaces/IGuideState';\nimport { GuideDto, GuideStateDto } from '../models/guideCollectionDto';\nimport { IGuideStateService } from './interfaces';\n\n@Injectable()\nexport class GuideStateInBrowserService implements IGuideStateService {\n public activeGuideUpdated = new BehaviorSubject<GuideDto>(null);\n private guideState: GuideStateDto = new GuideStateDto();\n\n constructor(@Inject(LOCAL_STORAGE) private storage: StorageService, @Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IGuideState>) {\n this.state.data.subscribe(success => {\n if (success.loaded) {\n this.guideState = this.storage.get(\"guidestate\") || new GuideStateDto();\n\n if (this.guideState.activeGuideKey != null) {\n var activeGuide = success.guides.guides.find(p => p.key == this.guideState.activeGuideKey);\n activeGuide.steps.forEach(p => p.completed = this.guideState.completedSteps.indexOf(p.key) > -1);\n this.activeGuideUpdated.next(activeGuide);\n }\n }\n });\n }\n\n async dismiss(): Promise<void> {\n this.guideState.activeGuideKey = null;\n this.storage.set(\"guidestate\", this.guideState);\n this.activeGuideUpdated.next(null);\n }\n\n async startGuide(guide: GuideDto): Promise<void> {\n this.guideState.activeGuideKey = guide.key;\n this.storage.set(\"guidestate\", this.guideState);\n this.activeGuideUpdated.next(guide);\n }\n\n async stepToggle(stepKey: string): Promise<void> {\n if (this.guideState.completedSteps.indexOf(stepKey) == -1) {\n this.guideState.completedSteps.push(stepKey);\n }\n else {\n this.guideState.completedSteps = this.guideState.completedSteps.filter(p => p != stepKey);\n }\n\n this.storage.set(\"guidestate\", this.guideState);\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { ApiConfig } from '../../apiUrlToken';\nimport { ViewModelStateBase, VIEWSTATE_PROVIDER } from '../../viewModel/viewModelState.service';\nimport { IGuideState } from '../interfaces/IGuideState';\nimport { GuideDto, GuideStateDto } from '../models/guideCollectionDto';\nimport { IGuideStateService } from './interfaces';\n\n// we're not using this anywhere at the moment\n@Injectable()\nexport class GuideStateInBackEndService implements IGuideStateService {\n public activeGuideUpdated = new BehaviorSubject<GuideDto>(null);\n private guideState: GuideStateDto = new GuideStateDto();\n\n constructor(private http: HttpClient, @Inject(ApiConfig) private config: ApiConfig, @Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IGuideState>) {\n console.log(\"Config for guides client set, and viewmodel provided\", config);\n\n this.state.data.subscribe(success => {\n if (success.loaded) {\n var activeGuide = success.guides.active;\n\n if (activeGuide != null) {\n this.guideState.activeGuideKey = activeGuide.key;\n this.guideState.completedSteps = success.guides.guides.flatMap(p => p.steps.filter(p => p.completed).flatMap(p => p.key));\n this.activeGuideUpdated.next(activeGuide);\n }\n }\n });\n }\n\n public async dismiss(): Promise<void> {\n await this.http.delete(this.config.get().apiUrl + 'guides').toPromise();\n this.activeGuideUpdated.next(null);\n this.state.reload();\n }\n\n public async startGuide(guide: GuideDto): Promise<void> {\n await this.http.post(this.config.get().apiUrl + 'guides/start/' + guide.key, null).toPromise();\n this.activeGuideUpdated.next(guide);\n }\n\n public async stepToggle(stepKey: string): Promise<void> {\n await this.http.put(this.config.get().apiUrl + 'guides/done/' + this.guideState.activeGuideKey + '/' + stepKey, null).toPromise();\n }\n}\n","import { Directive, HostListener, Input } from '@angular/core';\nimport { DialogGuideComponent } from '../../dialogs/dialog-guide/dialog-guide.component';\nimport { GuidePopupService } from '../../services/guidePopup.service';\n\n@Directive({\n selector: '[startGuide]',\n standalone: false\n})\nexport class StartGuideDirective {\n @Input() guideKey: string;\n\n constructor(private guidePopupService: GuidePopupService) {\n }\n\n @HostListener('click')\n onClick(): void {\n console.log(\"start guide\", this.guideKey);\n this.guidePopupService.startGuideByKey(DialogGuideComponent, this.guideKey);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { RouterModule } from '@angular/router';\nimport { ImageSliderComponent } from './components/imageslider/imageslider.component';\nimport { ResumeGuideHoverComponent } from './components/resumeguidehover/resumeguidehover.component';\nimport { DialogGuideComponent, DIALOG_GUIDE_TOKEN, OpenGuideDialogDirective } from './dialogs/dialog-guide/dialog-guide.component';\nimport { DialogGuidesComponent, DIALOG_GUIDES_TOKEN, OpenGuidesDialogDirective } from './dialogs/dialog-guides/dialog-guides.component';\nimport { GuidePopupService } from './services/guidePopup.service';\nimport { GuideStateInBrowserService } from './services/guideStateInBrowser.service';\nimport { GuideStateInBackEndService } from './services/guideStateInBackEnd.service';\nimport { StorageServiceModule } from 'ngx-webstorage-service';\nimport { StartGuideDirective } from './directives/startguide/startguide.directive';\nimport { BrandingModule } from '../branding/branding.module';\nimport { CheckboxModule } from '../components/checkbox/checkbox.module';\n\n@NgModule({\n imports: [\n MatDialogModule,\n RouterModule,\n FormsModule,\n CommonModule,\n BrandingModule,\n CheckboxModule,\n StorageServiceModule],\n declarations: [\n StartGuideDirective,\n OpenGuideDialogDirective,\n OpenGuidesDialogDirective,\n DialogGuidesComponent,\n ResumeGuideHoverComponent,\n DialogGuideComponent,\n ImageSliderComponent\n ],\n exports: [\n StartGuideDirective,\n OpenGuideDialogDirective,\n OpenGuidesDialogDirective,\n DialogGuidesComponent,\n ResumeGuideHoverComponent,\n DialogGuideComponent,\n ImageSliderComponent\n ],\n providers: [\n GuideStateInBackEndService,\n GuideStateInBrowserService,\n GuidePopupService,\n { provide: DIALOG_GUIDE_TOKEN, useValue: DialogGuideComponent },\n { provide: DIALOG_GUIDES_TOKEN, useValue: DialogGuidesComponent }\n ]\n})\nexport class GuidesModule { }\n","import { ConnectedPosition } from '@angular/cdk/overlay';\nimport { Component, Input } from '@angular/core';\nimport { BadgeDto, BadgeTypeEnum } from '../../models/badgeDto';\n\n@Component({\n selector: 'badge-progression',\n templateUrl: './badge-progression.component.html',\n styleUrls: ['./badge-progression.component.less'],\n standalone: false\n})\nexport class BadgeProgressionComponent {\n @Input() public showName: boolean;\n @Input() public badge: BadgeDto;\n @Input() public radius: number;\n public isPopoverOpen = false;\n public overlayPositions: ConnectedPosition[] = [\n {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top',\n offsetY: 8\n }\n ];\n\n\n constructor() {\n }\n\n public badgeType(): BadgeTypeEnum {\n return this.badge.type;\n }\n}\n","<div class=\"team-badge progression\" [ngClass]=\"{'unearned': !badge.awarded}\" #badgeOrigin=\"cdkOverlayOrigin\" cdkOverlayOrigin (click)=\"isPopoverOpen = true\">\n <div [class]=\"'circle level-' + badge.level\" [ngStyle]=\"{'width': radius + 'px', 'height': radius + 'px', 'border-radius': radius + 'px'}\">\n <span [class]=\"'icon ' + badge.icon\"></span>\n <mat-progress-spinner [diameter]=\"radius\" strokeWidth=\"6\" mode=\"determinate\" [value]=\"badge.nextLevelProgress * 100\"></mat-progress-spinner>\n <div class=\"gloss\">\n <div class=\"gloss1\"></div>\n <div class=\"gloss2\"></div>\n </div>\n </div>\n @if (showName) {\n <div class=\"name\">{{badge.name}}</div>\n }\n</div>\n\n<ng-template cdkConnectedOverlay [cdkConnectedOverlayOrigin]=\"badgeOrigin\" [cdkConnectedOverlayPush]=\"true\" [cdkConnectedOverlayViewportMargin]=\"8\" [cdkConnectedOverlayOpen]=\"isPopoverOpen\" [cdkConnectedOverlayHasBackdrop]=\"true\" [cdkConnectedOverlayBackdropClass]=\"'cdk-overlay-transparent-backdrop'\" [cdkConnectedOverlayPositions]=\"overlayPositions\" (backdropClick)=\"isPopoverOpen = false\">\n <div [class]=\"'popover level-' + badge.level\" [id]=\"'popover'\">\n <div class=\"arrow\"></div>\n <div class=\"popover-container\">\n <span (click)=\"isPopoverOpen = false\" class=\"close ph-x\"></span>\n @if (badge.level == 0) {\n <h3>{{badge.name}}</h3>\n }\n @if (badge.level == 1) {\n <h3>{{badge.name}} <span>Bronze Level</span></h3>\n }\n @if (badge.level == 2) {\n <h3>{{badge.name}} <span>Silver Level</span></h3>\n }\n @if (badge.level == 3) {\n <h3>{{badge.name}} <span>Gold Level</span></h3>\n }\n @if (badge.level == 4) {\n <h3>{{badge.name}} <span>Platinum Level</span></h3>\n }\n @if (badge.level == 5) {\n <h3>{{badge.name}} <span>Diamond Level</span></h3>\n }\n <div class=\"description\">{{badge.description}}</div>\n\n <h3>How to reach the next level</h3>\n <div class=\"description\">{{badge.nextLevelRequirement}}</div>\n </div>\n </div>\n </ng-template>\n","import { ConnectedPosition } from '@angular/cdk/overlay';\nimport { Component, Input } from '@angular/core';\nimport { BadgeDto } from '../../models/badgeDto';\n\n@Component({\n selector: 'badge-streak',\n templateUrl: './badge-streak.component.html',\n styleUrls: ['./badge-streak.component.less'],\n standalone: false\n})\nexport class BadgeStreakComponent {\n @Input() public showName: boolean;\n @Input() public badge: BadgeDto;\n @Input() public radius: number;\n public isPopoverOpen = false;\n public overlayPositions: ConnectedPosition[] = [\n {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top',\n offsetY: 8\n }\n ];\n\n constructor() {\n }\n\n public getStreakBadgeType(): string {\n if (this.badge.name.toLowerCase().indexOf(\"high \") > -1) {\n return \"higherthanbenchmark\";\n }\n else {\n return \"improved\"\n }\n }\n}\n","<div [class]=\"'team-badge streak ' + getStreakBadgeType()\" [ngClass]=\"{'unearned': !badge.awarded }\" #badgeOrigin=\"cdkOverlayOrigin\" cdkOverlayOrigin (click)=\"isPopoverOpen = true\">\n <div class=\"circle\" [ngStyle]=\"{'width': radius + 'px', 'height': radius + 'px', 'border-radius': radius + 'px'}\">\n @if (badge.awarded && badge.level >= 3) {\n <div class=\"crown\"></div>\n }\n <span [class]=\"'icon ' + badge.icon\"></span>\n @if (badge.awarded) {\n <div class=\"level\">{{badge.level}}</div>\n }\n </div>\n @if (showName) {\n <div class=\"name\">{{badge.name}}</div>\n }\n</div>\n\n<ng-template cdkConnectedOverlay [cdkConnectedOverlayOrigin]=\"badgeOrigin\" [cdkConnectedOverlayPush]=\"true\" [cdkConnectedOverlayViewportMargin]=\"8\" [cdkConnectedOverlayOpen]=\"isPopoverOpen\" [cdkConnectedOverlayHasBackdrop]=\"true\" [cdkConnectedOverlayBackdropClass]=\"'cdk-overlay-transparent-backdrop'\" [cdkConnectedOverlayPositions]=\"overlayPositions\" (backdropClick)=\"isPopoverOpen = false\">\n <div class=\"popover\" [id]=\"'popover'\">\n <div class=\"arrow\"></div>\n <div class=\"popover-container\">\n <span (click)=\"isPopoverOpen = false\" class=\"close ph-x\"></span>\n @if (badge.level == 0) {\n <h3>{{badge.name}}</h3>\n }\n @if (badge.level > 0) {\n <h3>{{badge.name}} <span>Streak of {{badge.level}}</span></h3>\n }\n <div class=\"description\">{{badge.description}}</div>\n\n <h3>How to reach the next level</h3>\n <div class=\"description\">{{badge.nextLevelRequirement}}</div>\n </div>\n </div>\n</ng-template>\n","export class BadgeCollectionDto {\n badges: BadgeDto[];\n}\n\nexport class BadgeDto {\n description: string;\n icon: string;\n color: string;\n name: string;\n level: number;\n progress: number;\n nextLevel: number;\n nextLevelProgress: number;\n nextLevelRequirement: string;\n lost: boolean;\n gained: boolean;\n awarded: boolean;\n hash: string;\n type: BadgeTypeEnum;\n}\n\nexport enum BadgeTypeEnum {\n streak = \"Streak\",\n progression = \"Progression\"\n}\n","import { Component, Input, ViewEncapsulation } from '@angular/core';\nimport { BadgeDto, BadgeTypeEnum } from '../../models/badgeDto';\n\n@Component({\n selector: 'badge',\n templateUrl: './badge.component.html',\n styleUrls: ['./badge.component.less'],\n standalone: false\n})\nexport class BadgeComponent {\n @Input() public showName: boolean;\n @Input() public badge: BadgeDto;\n @Input() public radius: number;\n\n constructor() {\n }\n\n public isStreakBadge(): boolean {\n return this.badge.type == BadgeTypeEnum.streak;\n }\n\n public isProgressionBadge(): boolean {\n return this.badge.type == BadgeTypeEnum.progression;\n }\n}\n","@if (isStreakBadge()) {\n <badge-streak [badge]=\"badge\" [showName]=\"showName\" [radius]=\"radius\"></badge-streak>\n}\n@if (isProgressionBadge()) {\n <badge-progression [badge]=\"badge\" [showName]=\"showName\" [radius]=\"radius\"></badge-progression>\n}\n","import { Component, Inject, ViewEncapsulation } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { ViewModelStateBase, VIEWSTATE_PROVIDER } from '../../../viewModel/viewModelState.service';\nimport { IResultsState } from '../../interfaces/IResultsState';\nimport { BadgeDto, BadgeTypeEnum } from '../../models/badgeDto';\n\n@Component({\n selector: 'badges',\n templateUrl: './badges.component.html',\n styleUrls: ['./badges.component.less'],\n standalone: false\n})\nexport class BadgesComponent extends ComponentWithViewStateBase<IResultsState> {\n public loaded: boolean;\n public showNotearned: boolean = true;\n public earnedStreakBadges: BadgeDto[];\n public earnedProgressionBadges: BadgeDto[];\n public unearnedProgressionBadges: BadgeDto[];\n public unearnedStreakBadges: BadgeDto[];\n\n constructor(@Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IResultsState>, protected snackBar: MatSnackBar) {\n super(state, snackBar);\n }\n\n public calculateBadgeProgress(badge: BadgeDto): number {\n var value = Math.round(badge.nextLevelProgress * 100);\n return value;\n }\n\n protected onDataUpdate(data: IResultsState): void {\n this.earnedStreakBadges = data.badges.badges.filter(p => p.awarded && p.type == BadgeTypeEnum.streak);\n this.earnedProgressionBadges = data.badges.badges.filter(p => p.awarded && p.type == BadgeTypeEnum.progression);\n this.unearnedStreakBadges = data.badges.badges.filter(p => !p.awarded && p.type == BadgeTypeEnum.streak);\n this.unearnedProgressionBadges = data.badges.badges.filter(p => !p.awarded && p.type == BadgeTypeEnum.progression);\n this.loaded = data.loaded;\n };\n}\n","@if (loaded) {\n <div class=\"box\">\n @if (earnedStreakBadges.length > 0) {\n <h4>Team streaks</h4>\n <div class=\"earned team-badges\">\n @for (badge of earnedStreakBadges; track badge) {\n <badge-streak [badge]=\"badge\" [showName]=\"true\" [radius]=\"65\"></badge-streak>\n }\n </div>\n }\n @if (earnedProgressionBadges.length > 0) {\n <h4>Team badges</h4>\n <div class=\"earned team-badges\">\n @for (badge of earnedProgressionBadges; track badge) {\n <badge [badge]=\"badge\" [showName]=\"true\" [radius]=\"75\"></badge>\n }\n </div>\n }\n <h4>Not yet earned</h4>\n <div class=\"notearned team-badges\" [ngClass]=\"{'fadeout': showNotearned}\" (mouseover)=\"showNotearned = false\">\n @for (badge of unearnedProgressionBadges; track badge) {\n <badge [badge]=\"badge\" [showName]=\"true\" [radius]=\"65\"></badge>\n }\n @for (badge of unearnedStreakBadges; track badge) {\n <badge [badge]=\"badge\" [showName]=\"true\" [radius]=\"65\"></badge>\n }\n </div>\n </div>\n}\n","import { DatePipe } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { FactorScoreDto } from '../../models/factorScoreDto';\n\n@Component({\n selector: 'benchmark-indicator',\n templateUrl: './benchmark-indicator.component.html',\n styleUrls: ['./benchmark-indicator.component.less'],\n standalone: false\n})\nexport class BenchmarkIndicatorComponent {\n public delta: number;\n public benchmarkAvailable: boolean;\n @Input() public factorScore: FactorScoreDto;\n constructor() {\n }\n\n ngOnInit() {\n this.benchmarkAvailable = this.factorScore.benchmark != 0;\n this.delta = this.factorScore.score - this.factorScore.benchmark;\n }\n}\n","@if (delta > 0 && benchmarkAvailable) {\n <div class=\"delta up\" [title]=\"'Your team(s) score higher than the benchmark, by ' + delta + ' points'\"><i [class]=\"'icon ph-caret-up-fill'\"></i>{{delta}}</div>\n}\n@if (delta < 0 && benchmarkAvailable) {\n <div class=\"delta down\" [title]=\"'Your team(s) score lower than the benchmark, by -' + delta * -1 + ' points'\"><i [class]=\"'icon ph-caret-down-fill'\"></i>{{delta * -1}}</div>\n}\n@if (delta == 0 && benchmarkAvailable) {\n <div class=\"delta same\" [title]=\"'Your team(s) score similar to the benchmark'\"><i [class]=\"'icon ph-circle-fill'\"></i>{{delta}}</div>\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'doityourself',\n templateUrl: './doityourself.component.html',\n styleUrls: ['./doityourself.component.less'],\n standalone: false\n})\nexport class DoItYourselfComponent {\n constructor() {\n }\n\n ngOnInit() {\n }\n}\n","<div class=\"box doityourself\" brandbackground [palette]=\"'neutral'\">\n <img class=\"responsive\" src=\"assets/img/diy.png\" />\n <h3>Facilitation Guide</h3>\n <p>Download our facilitation guide on how to interpret the results and identify improvements collaboratively.</p>\n\n <div class=\"link\">\n <a href=\"javascript:void(null);\" resourceDownloadDialog [publicKey]=\"'e0dd08d4-d44c-47b0-995c-6aa362f40498'\">Download ></a>\n </div>\n</div>\n\n\n","import { Component, Inject, Input } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { IActionState } from '../../../actions/interfaces/IActionState';\nimport { InterventionOwnerEnum, InterventionStateEnum, InterventionTypeEnum } from '../../../actions/models/actionDto';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { ContentBrandingDto } from '../../../models/brandingSettingsDto';\nimport { VIEWSTATE_PROVIDER, ViewModelStateBase } from '../../../viewModel/viewModelState.service';\nimport { IResultsState } from '../../interfaces/IResultsState';\nimport { FactorScoreDto, FeedbackResourceDto } from '../../models/factorScoreDto';\n\n@Component({\n selector: 'doityourselfworkshops',\n templateUrl: './doityourselfworkshops.component.html',\n styleUrls: ['./doityourselfworkshops.component.less'],\n standalone: false\n})\nexport class DoItYourselfWorkshopsComponent extends ComponentWithViewStateBase<IActionState> {\n @Input() public factorScore: FactorScoreDto;\n @Input() public resources: FeedbackResourceDto[];\n public InterventionTypeEnum = InterventionTypeEnum;\n public InterventionStateEnum = InterventionStateEnum;\n public InterventionOwnerEnum = InterventionOwnerEnum;\n private baseUrl: string;\n\n constructor(protected snackBar: MatSnackBar, @Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IResultsState>, ) {\n super(state, snackBar)\n }\n\n protected onDataUpdate(data: IResultsState) {\n this.baseUrl = data.baseUrl;\n }\n\n public getResourceUrl(item: FeedbackResourceDto) {\n return window.location.origin + this.baseUrl + 'tips?downloadKey=' + item.publicKey;\n }\n}\n","@for (item of resources; track item) {\n <div class=\"resource\" [id]=\"'resource-' + item.publicKey\">\n @if (item.publicKey != 'demo') {\n <span class=\"type\" resourceDownloadDialog [publicKey]=\"item.publicKey\">\n <span class=\"badge free\">download</span>\n </span>\n }\n @if (item.publicKey == 'demo') {\n <span class=\"type\" subscribeDialog>\n <span class=\"badge free\">download</span>\n </span>\n }\n <div class=\"download\">{{item.title}}</div>\n <a class=\"link addasaction\" href=\"javascript:void(null);\" addActionDialog [prefill]=\"{description: 'Run \\'' + item.title+ '\\'', teamKey: null, expectedImpactOn: [factorScore.key], type: InterventionTypeEnum.workshop, owner: null, quickTipPublicKey: null, url: getResourceUrl(item), state: InterventionStateEnum.open }\"><span class=\"ph-plus icon\"></span>Add as action</a>\n </div>\n}\n","import { Component, Inject, Input } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { ViewModelStateBase, VIEWSTATE_PROVIDER } from '../../../viewModel/viewModelState.service';\nimport { IResultsState, ITeamReportResultsState } from '../../interfaces/IResultsState';\n\n@Component({\n selector: 'tip-badge',\n templateUrl: './tip-badge.component.html',\n styleUrls: ['./tip-badge.component.less'],\n standalone: false\n})\nexport class TipBadgeComponent extends ComponentWithViewStateBase<IResultsState> {\n @Input() dimension: string;\n public label: string;\n public key: string;\n public feedbackKey: string;\n public impact: number;\n public class: string;\n public subscribed: boolean;\n public baseUrl: string;\n\n constructor(@Inject(VIEWSTATE_PROVIDER) protected state: ViewModelStateBase<ITeamReportResultsState>, protected snackBar: MatSnackBar) {\n super(state, snackBar);\n }\n\n protected onDataUpdate(data: IResultsState): void {\n var currentFactor = data.factorScores.factorScores.find(p => p.key == this.dimension);\n this.subscribed = data.isSubscriber;\n this.baseUrl = data.baseUrl;\n\n if (currentFactor != null) {\n this.impact = currentFactor.impact;\n this.class = currentFactor.qualification.toLowerCase();\n switch (currentFactor.qualification.toLowerCase()) {\n case \"neutral\":\n this.label = \"average\";\n break;\n case \"positive\":\n this.label = \"good\";\n break;\n case \"negative\":\n if (this.impact > 50) {\n this.label = \"important\";\n }\n else {\n this.class = \"neutral\";\n this.label = \"improve\";\n }\n break;\n default:\n this.label = \"average\";\n break;\n }\n }\n };\n}\n","@if (label && impact > 0) {\n <div [routerLink]=\"[baseUrl, 'tips']\" [fragment]=\"dimension\" class=\"tipbadge\" [matTooltip]=\"'The impact of this recommendation is ' + impact + ' of 100'\">\n <div [class]=\"'badge ' + class\">{{ label }}</div>\n </div>\n}\n\n@if (label && impact == 0 && subscribed) {\n <div class=\"tipbadge\">\n <div [class]=\"'badge noimpact ' + class\" subscribeDialog>{{ label }}</div>\n </div>\n}\n\n@if (label && impact == 0 && !subscribed) {\n <div class=\"tipbadge\">\n <div [class]=\"'badge noimpact ' + class\">{{ label }}</div>\n </div>\n}\n","import { Component, Inject, Input } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { ViewModelStateBase, VIEWSTATE_PROVIDER } from '../../../viewModel/viewModelState.service';\nimport { IResultsState, ITeamReportResultsState } from '../../interfaces/IResultsState';\nimport { ContextTypes, FactorScoreCollectionDeltaDto, FactorScoreDto, PointDto, QualifiedByEnum } from '../../models/factorScoreDto';\nimport { FactorStructureDto } from '../../../models/modelStructureDto';\n\n@Component({\n selector: 'factor-axis',\n templateUrl: './factor-axis.component.html',\n styleUrls: ['./factor-axis.component.less'],\n standalone: false\n})\nexport class FactorAxisComponent extends ComponentWithViewStateBase<IResultsState> {\n @Input() dimensionSelector: FactorStructureDto;\n @Input() showIndividualScore: boolean = true;\n @Input() showTeamRange: boolean = false;\n public expandLowerDimensions: boolean = false;\n public participantKey: string;\n public snapshotKey: string;\n public showBenchmark: boolean;\n public loaded: boolean;\n public subscribed: boolean;\n public benchmarkScore: number;\n public benchmarkLowerQuartile: number;\n public benchmarkUpperQuartile: number;\n public snapshotScore: number;\n public participantScore: number;\n public type: ContextTypes;\n public segments: PointDto[];\n public feedbackAvailable: boolean;\n public dataAvailable: boolean;\n public anonymized: boolean;\n public notes: string[];\n public name: string;\n public baseUrl: string;\n public factorScore: FactorScoreDto;\n public delta: FactorScoreCollectionDeltaDto;\n\n constructor(@Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<ITeamReportResultsState>, private dialog: MatDialog, protected snackBar: MatSnackBar) {\n super(state, snackBar);\n }\n\n protected onDataUpdate(data: ITeamReportResultsState): void {\n this.loaded = data.loaded;\n this.factorScore = data.factorScores.factorScores.find(p => p.key == this.dimensionSelector.publicKey);\n this.baseUrl = data.baseUrl;\n this.delta = data.factorScores.delta;\n\n if (this.factorScore != null) {\n this.name = this.factorScore.name;\n this.benchmarkScore = this.factorScore.benchmark;\n this.benchmarkLowerQuartile = this.factorScore.benchmarkLowerQuartile;\n this.benchmarkUpperQuartile = this.factorScore.benchmarkUpperQuartile;\n this.snapshotScore = this.factorScore.score;\n this.segments = this.factorScore.points;\n this.feedbackAvailable = this.factorScore.recommendation.available;\n this.dataAvailable = this.factorScore.sampleSize > 0;\n this.anonymized = this.factorScore.anonymized;\n this.notes = this.factorScore.notes;\n }\n\n this.subscribed = data.isSubscriber;\n };\n}\n","@if (loaded) {\n <div class=\"factorwithscale\" [ngClass]=\"{'factor-notmeasured' : !dataAvailable}\">\n <div class=\"anchors\">\n <div factorInformationDialog [factor]=\"dimensionSelector\" class=\"anchor title\">{{name}}</div>\n @if (notes && notes.length > 0) {\n <a class=\"anonymized\" href=\"javascript:void(null);\" notesDialog [notes]=\"notes\"><span class=\"icon ph-warning-fill\"></span></a>\n }\n <delta-arrow [factorScore]=\"factorScore\" [delta]=\"delta\"></delta-arrow>\n </div>\n <div class=\"axiscontainer\">\n <div class=\"axis\">\n @for (segment of segments; track segment) {\n @if (segment.type == 'Segment') {\n <div matTooltipPosition=\"right\" [matTooltip]='segment.name + \" (\" + segment.occurances + \"x) : \" + segment.normalizedScore' [ngStyle]=\"{'left': segment.normalizedScore + '%' }\" [attr.normalizedScore]=\"segment.normalizedScore\" [class]='\"marker \" + segment.name | lowercase'>\n <div class=\"occurances\">{{segment.occurances}}x</div>\n <img [src]='\"/assets/img/marker-\" + segment.name.toLowerCase() + \".svg\"' />\n </div>\n }\n @if (segment.type == 'Individual' && showIndividualScore) {\n <div matTooltipPosition=\"right\" [matTooltip]='segment.name + \" (\" + segment.occurances + \"x) : \" + segment.normalizedScore' [ngStyle]=\"{'left': segment.normalizedScore + '%' }\" [attr.normalizedScore]=\"segment.normalizedScore\" [class]='\"marker \" + segment.name | lowercase'>\n <div class=\"occurances\"></div>\n <img [src]='\"/assets/img/marker-you.svg\"' />\n </div>\n }\n }\n @if (benchmarkScore != 0) {\n <div class=\"confidence\" [ngStyle]=\"{ 'left': benchmarkLowerQuartile + '%', 'width': (benchmarkUpperQuartile - benchmarkLowerQuartile) + '%' }\" matTooltipPosition=\"right\" [matTooltip]='\"Most of the teams in the selected benchmark have a score in this range \" + benchmarkLowerQuartile + \" (lowest 15% of teams) to \" + benchmarkUpperQuartile + \" (highest 15% of teams)]\"'></div>\n }\n @if (showTeamRange) {\n @for (segment of segments; track segment) {\n <div [class]='\"range \" + segment.name | lowercase' [ngStyle]=\"{ 'left': segment.lowerConfidence + '%', 'width': (segment.upperConfidence - segment.lowerConfidence) + '%' }\" [matTooltip]='segment.name + \" (\" + segment.occurances + \"x): scores range from \" + segment.lowerConfidence + \" (15% percentile) to \" + segment.upperConfidence + \" (85% percentile)\"'></div>\n }\n }\n </div>\n </div>\n <div class=\"details\">\n <div class=\"feedback\">\n @if (dataAvailable) {\n <span class=\"score\"><tip-badge [dimension]=\"dimensionSelector.publicKey\"></tip-badge></span>\n }\n @if (!dataAvailable) {\n <span class=\"score\"><span class=\"badge nofeedback\">not measured</span></span>\n }\n @if (feedbackAvailable) {\n <a class=\"feedback-link\" [routerLink]=\"[baseUrl, 'tips']\" [fragment]=\"dimensionSelector.publicKey\">how to improve ></a>\n }\n @if (!feedbackAvailable && !subscribed) {\n <a class=\"feedback-link\" [routerLink]=\"[]\" subscribeDialog>more feedback?</a>\n }\n </div>\n @if (!expandLowerDimensions && dimensionSelector.lower.length != 0 && dataAvailable) {\n <div class=\"expand\" (click)=\"expandLowerDimensions = true\">\n <span class=\"icon ph-plus-bold\"></span>\n </div>\n }\n @if (expandLowerDimensions && dimensionSelector.lower.length != 0 && dataAvailable) {\n <div class=\"expand\" (click)=\"expandLowerDimensions = false\">\n <span class=\"icon ph-minus-bold\"></span>\n </div>\n }\n </div>\n @if (dimensionSelector.lower.length != 0 && expandLowerDimensions) {\n <div class=\"lowerdimensions\">\n <p class=\"decomposition\">The score for {{dimensionSelector.name}} has the following lower-order factors:</p>\n @for (dimension of dimensionSelector.lower; track dimension) {\n <div class=\"dimension\">\n <factor-axis [showIndividualScore]=\"showIndividualScore\" [showTeamRange]=\"showTeamRange\" [dimensionSelector]=\"dimension\"></factor-axis>\n </div>\n }\n </div>\n }\n </div>\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'limitationsapply',\n templateUrl: './limitationsapply.component.html',\n styleUrls: ['./limitationsapply.component.less'],\n standalone: false\n})\nexport class LimitationsApplyComponent {\n @Input() notes: string[];\n \n constructor() {\n }\n\n ngOnInit() {\n }\n}\n","@if (notes.length > 0) {\n <div class=\"message message-warning\" notesDialog [notes]=\"notes\">\n <span class=\"ph-info-fill icon\"></span>\n @if (notes.length == 1) {\n <div>1 limitation applies due to incomplete data. <a [routerLink]=\"[]\">Click here</a> to discover how to get more out of your results.</div>\n }\n @if (notes.length > 1) {\n <div>{{notes.length}} limitations apply due to incomplete data. <a [routerLink]=\"[]\">Click here</a> to discover how to resolve this and get even more out of your results.</div>\n }\n </div>\n}\n","import { Component, Inject } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { VIEWSTATE_PROVIDER, ViewModelStateBase } from '../../../viewModel/viewModelState.service';\nimport { IResultsState } from '../../interfaces/IResultsState';\nimport { ContextTypes, FactorScoreCollectionCompositionSegmentDto } from '../../models/factorScoreDto';\nimport { FactorStructureDto } from '../../../models/modelStructureDto';\n\n@Component({\n selector: 'factors',\n templateUrl: './factors.component.html',\n styleUrls: ['./factors.component.less'],\n standalone: false\n})\nexport class FactorsComponent extends ComponentWithViewStateBase<IResultsState> {\n public populationSegments: FactorScoreCollectionCompositionSegmentDto[];\n public benchmarkName: string;\n public showIndividualScore: boolean = true;\n public showTeamRange: boolean = false;\n public factors: FactorStructureDto[];\n public loaded: boolean;\n public showParticipant: boolean;\n public subscribed: boolean;\n public type: ContextTypes;\n public moreparticipantsneeded: boolean;\n public globalNotes: string[];\n\n constructor(@Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IResultsState>, protected snackBar: MatSnackBar) {\n super(state, snackBar);\n }\n\n protected onDataUpdate(data: IResultsState): void {\n this.loaded = data.loaded;\n this.loaded = data.loaded;\n this.subscribed = data.isSubscriber;\n this.showParticipant = data.type == ContextTypes.Participant;\n this.populationSegments = data.factorScores.composition.segments;\n this.benchmarkName = data.factorScores.benchmark.name;\n this.globalNotes = data.factorScores.processingData.notes;\n this.factors = data.factorScores.modelStructure.definition.factors.filter(p => p.parentKey == null && p.core);\n };\n}\n","@if (loaded) {\n <div class=\"results\">\n <div class=\"resultstoolbar\">\n <h3>Detailed results</h3>\n <div class=\"legend\">\n @if (showParticipant) {\n <div class=\"column you\">\n <span class=\"marker\"></span>\n <span class=\"label\">you</span>\n </div>\n }\n @for (segment of populationSegments; track segment) {\n <div [class]=\"'column ' + segment.name | lowercase\">\n <span class=\"marker\"></span>\n <span class=\"label\">{{segment.name | lowercase}} {{segment.occurances || 1}}x</span>\n </div>\n }\n <div class=\"column confidence\">\n <span class=\"marker\"></span>\n <span class=\"label\">benchmark '{{benchmarkName}}' <a [routerLink]=\"[]\" id=\"change-benchmark\" settingsDialog><span class=\"icon ph-faders-bold\"></span></a></span>\n </div>\n </div>\n <div class=\"filters\">\n @if (showParticipant) {\n <mat-slide-toggle class=\"toggle showmyscores\" [(ngModel)]=\"showIndividualScore\">Show my scores</mat-slide-toggle>\n }\n @if (subscribed) {\n <mat-slide-toggle class=\"toggle showscoringrange\" [(ngModel)]=\"showTeamRange\">Show range of scores in my team</mat-slide-toggle>\n }\n @if (!subscribed) {\n <mat-slide-toggle class=\"toggle showscoringrange\" subscribeDialog>Show range of scores in my team</mat-slide-toggle>\n }\n </div>\n </div>\n <div class=\"dimensions\">\n <limitationsapply [notes]=\"globalNotes\"></limitationsapply>\n @for (factor of factors; track factor) {\n <div class=\"dimension\" [id]=\"'factor-' + factor.name | slugify\">\n <factor-axis [showIndividualScore]=\"showIndividualScore\" [showTeamRange]=\"showTeamRange\" [dimensionSelector]=\"factor\"></factor-axis>\n </div>\n }\n </div>\n </div>\n}\n","import { Component, Inject, Input } from '@angular/core';\nimport { IUserSettingStrategy, VIEWSTATE_USERSETTINGS_STRATEGY } from '../../../viewModel/userSettings.service';\n\n@Component({\n selector: 'filter-tags',\n templateUrl: './filter-tags.component.html',\n styleUrls: ['./filter-tags.component.less'],\n standalone: false\n})\nexport class FilterTagsComponent {\n @Input() public tags: string[];\n\n constructor(@Inject(VIEWSTATE_USERSETTINGS_STRATEGY) protected userSettings: IUserSettingStrategy) {\n }\n\n public async filterByTag(tag: string): Promise<void> {\n var alreadyExists = this.userSettings.settings.user.teamFilter.tags.find(p => p.toLocaleLowerCase() == tag.toLocaleLowerCase());\n\n if (!alreadyExists) {\n this.userSettings.settings.user.teamFilter.tags = [tag];\n }\n else {\n this.userSettings.settings.user.teamFilter.tags = this.userSettings.settings.user.teamFilter.tags.filter(p => p.toLocaleLowerCase() != tag.toLocaleLowerCase());\n }\n\n await this.userSettings.apply();\n }\n}\n","<div class=\"tags tags-clickable\">\n @for (tag of tags; track tag) {\n <div class=\"tag\" (click)=\"filterByTag(tag)\" title=\"Click to filter only by this tag\">{{tag}}</div>\n }\n</div>\n","import { DatePipe } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { FactorScoreDto } from '../../models/factorScoreDto';\n\n@Component({\n selector: 'impact-indicator',\n templateUrl: './impact-indicator.component.html',\n styleUrls: ['./impact-indicator.component.less'],\n standalone: false\n})\nexport class ImpactIndicatorComponent {\n @Input() public factorScore: FactorScoreDto;\n\n constructor(private datePipe: DatePipe) {\n }\n\n ngOnInit() {\n }\n}\n","<span [class]=\"'delta up'\" [matTooltip]=\"'The impact (0-100) is a rough estimate of how much improvements in this area are expected to improve your team(s).'\">{{factorScore.impact}}</span>\n","import { Component, Inject, Input } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { IActionState } from '../../../actions/interfaces/IActionState';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { ViewModelStateBase, VIEWSTATE_PROVIDER } from '../../../viewModel/viewModelState.service';\nimport { IResultsState } from '../../interfaces/IResultsState';\nimport { EffectTypeEnum, FactorScoreDto } from '../../models/factorScoreDto';\n\n@Component({\n selector: 'focusareas',\n templateUrl: './focusareas.component.html',\n styleUrls: ['./focusareas.component.less'],\n standalone: false\n})\nexport class FocusAreasComponent extends ComponentWithViewStateBase<IResultsState> {\n @Input() limit: number = 3;\n public focusAreas: FactorScoreDto[];\n public count: number;\n public baseUrl: string;\n\n constructor(@Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IResultsState>, protected snackBar: MatSnackBar) {\n super(state, snackBar);\n }\n\n protected onDataUpdate(data: IResultsState): void {\n var recommendations = data.factorScores.factorScores.filter(p => p.recommendation.available).sort((a, b) => a.impact > b.impact ? -1 : 1);\n this.count = recommendations.length;\n this.focusAreas = recommendations.slice(0, this.limit);\n this.baseUrl = data.baseUrl;\n }\n\n public getCoreFactor(item: FactorScoreDto) {\n var items = item.effects.filter(p => p.type == EffectTypeEnum.predicts);\n if (items == null) { return null; }\n return items.length > 0 ? \" to improve \" + item.effects.filter(p => p.type == EffectTypeEnum.predicts)[0].name : null;\n }\n}\n","<div class=\"wirebox contentwithborders focusareas\">\n <h3>Focus areas</h3>\n @if (count > 0) {\n <p>Based on the data, we recommend to focus on the following areas:</p>\n @for (item of focusAreas; track item; let index = $index) {\n <div class=\"focusarea\" [routerLink]=\"[baseUrl, 'tips']\" [ngClass]=\"{'first': index == 0}\">\n <div class=\"index\">{{index + 1}}</div>\n <div class=\"name\">Invest in <b>{{item.name}}</b>{{getCoreFactor(item)}}</div>\n <div class=\"impact\"><span class=\"badge nofeedback\">impact <impact-indicator [factorScore]=\"item\"></impact-indicator></span></div>\n <div [routerLink]=\"[baseUrl, 'tips']\" [fragment]=\"item.key\" class=\"more\">discover how ></div>\n </div>\n }\n <div class=\"link\">\n <a [routerLink]=\"[baseUrl, 'tips']\">more recommendations ></a>\n </div>\n }\n @if (count == 0) {\n <p>Once you have one or more snapshots for your team(s), you can find useful evidence-based feedback here.</p>\n }\n</div>\n","import { Component, Inject, ViewEncapsulation } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { BrandingSettingsDto } from '../../../models/brandingSettingsDto';\nimport { IViewState } from '../../../viewModel/interfaces';\nimport { VIEWSTATE_PROVIDER, ViewModelStateBase } from '../../../viewModel/viewModelState.service';\n\n@Component({\n selector: 'liberators-footer',\n templateUrl: './footer.component.html',\n styleUrls: ['./footer.component.less'],\n encapsulation: ViewEncapsulation.None,\n standalone: false\n})\nexport class FooterComponent extends ComponentWithViewStateBase<IViewState> {\n public branding: BrandingSettingsDto;\n\n constructor(@Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IViewState>, protected snackBar: MatSnackBar) {\n super(state, snackBar)\n }\n\n protected onDataUpdate(data: IViewState): void {\n this.branding = data.userInfo.branding;\n };\n}\n","@if (loaded) {\n <footer>\n <div class=\"item\">Provided by <a [href]=\"branding.channelCompanyUrl\">{{branding.channelName}}</a></div>\n <div class=\"item\"><a [href]=\"branding.channelTermsOfUseUrl\" target=\"_blank\">Terms of use</a></div>\n <div class=\"item\"><a [href]=\"branding.channelPrivacyPolicyUrl\" target=\"_blank\">Privacy</a></div>\n <div class=\"item\"><a href=\"https://columinity.com/wiki\" target=\"_blank\">Documentation</a></div>\n <div class=\"item\"><a [routerLink]=\"[]\" reportBugDialog>Report bug</a></div>\n </footer>\n}\n","import { Component, Directive, HostListener, Inject } from '@angular/core';\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\nimport { MatDialog, MatDialogConfig, MatDialogRef } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { IUserSettingStrategy, VIEWSTATE_USERSETTINGS_STRATEGY } from '../../../viewModel/userSettings.service';\nimport { ViewModelStateBase, VIEWSTATE_PROVIDER } from '../../../viewModel/viewModelState.service';\nimport { IResultsState } from '../../interfaces/IResultsState';\nimport { ModelSummaryDto } from '../../../models/modelStructureDto';\n\n@Component({\n templateUrl: './dialog-modelfilter.component.html',\n styleUrls: ['./dialog-modelfilter.component.less'],\n standalone: false\n})\nexport class DialogModelFilterComponent extends ComponentWithViewStateBase<IResultsState> {\n public form: UntypedFormGroup;\n public sending: boolean;\n public submitted: boolean;\n public models: ModelSummaryDto[];\n\n constructor(@Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IResultsState>, @Inject(VIEWSTATE_USERSETTINGS_STRATEGY) protected userSettings: IUserSettingStrategy, protected snackBar: MatSnackBar, private dialogRef: MatDialogRef<DialogModelFilterComponent>, private formBuilder: UntypedFormBuilder) {\n super(state, snackBar);\n }\n\n ngOnInit() {\n this.createForm();\n super.ngOnInit();\n }\n\n public async submit(): Promise<void> {\n this.submitted = true;\n if (!this.form.valid) { return; }\n\n this.userSettings.settings.user.modelKey = this.form.controls.activeModel.value.publicKey;\n await this.userSettings.apply();\n this.dialogRef.close();\n console.log(this.userSettings.settings.user.modelFilter);\n }\n\n private createForm(): void {\n this.form = this.formBuilder.group({\n activeModel: [{ value: null }]\n });\n };\n\n protected onDataUpdate(data: IResultsState) {\n this.models = data.factorScores.modelStructure.models;\n this.form.controls.activeModel.setValue(this.models.find(p => p.publicKey == data.userInfo.settings.user.modelKey) ?? this.models[0]);\n }\n}\n\n@Directive({\n selector: '[modelFilterDialog]',\n standalone: false\n})\nexport class OpenModelFilterDialog {\n constructor(private dialog: MatDialog) {\n }\n\n @HostListener('click')\n onClick(): void {\n const dialogConfig = new MatDialogConfig();\n dialogConfig.panelClass = ['dialog', 'modelfilter'];\n dialogConfig.autoFocus = false;\n dialogConfig.enterAnimationDuration = 0;\n dialogConfig.exitAnimationDuration = 0;\n this.dialog.open(DialogModelFilterComponent, dialogConfig);\n }\n}\n","<div class=\"dialog-header\" id=\"dialog-modelfilter\">\n <h1 mat-dialog-title>Switch evidence-based model</h1>\n <div class=\"close\" mat-dialog-close><i class=\"responsive icon ph-x-bold\"></i></div>\n</div>\n<mat-dialog-content>\n <form [formGroup]=\"form\" class=\"modelfilter\">\n <mat-form-field class=\"activeModel\" subscriptSizing=\"dynamic\">\n <mat-label>Select active model</mat-label>\n <mat-select class=\"activemodel-dropdown\" formControlName=\"activeModel\">\n @for (model of models; track model) {\n <mat-option class=\"select-option\" [value]=\"model\">{{model.name}} @if (model.isInBeta) {\n <span class=\"badge badge-beta\">beta</span>\n }</mat-option>\n }\n </mat-select>\n </mat-form-field>\n\n @if (form.controls.activeModel.value.description) {\n <p [innerHtml]=\"form.controls.activeModel.value.description\"></p>\n }\n\n <div class=\"toolbar\">\n <button class=\"button primary\" id=\"modelfilter-apply\" type=\"submit\" (click)=\"submit()\" [ngClass]=\"{'loading': sending }\">switch</button>\n <button class=\"button cancel\" id=\"modelfilter-cancel\" mat-dialog-close>cancel</button>\n </div>\n </form>\n</mat-dialog-content>\n","import { Component, Inject } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { ViewModelStateBase, VIEWSTATE_PROVIDER } from '../../../viewModel/viewModelState.service';\nimport { IResultsState } from '../../interfaces/IResultsState';\nimport { ModelDefinitionDto } from '../../../models/modelStructureDto';\n\n@Component({\n selector: 'model-switcher',\n templateUrl: './model-switcher.component.html',\n styleUrls: ['./model-switcher.component.less'],\n standalone: false\n})\nexport class ModelSwitcherComponent extends ComponentWithViewStateBase<IResultsState> {\n public modelDefinition: ModelDefinitionDto;\n public canSwitchModels: boolean;\n \n constructor(@Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IResultsState>, protected snackBar: MatSnackBar) {\n super(state, snackBar);\n }\n\n ngOnInit() {\n super.ngOnInit();\n }\n\n protected onDataUpdate(data: IResultsState): void {\n this.modelDefinition = data.factorScores.modelStructure.definition;\n this.canSwitchModels = data.factorScores.modelStructure.models.length > 1;\n };\n}\n","@if (canSwitchModels) {\n <div class=\"modelswitcher\" id=\"button-switchmodel\" modelFilterDialog>\n <div class=\"prefix\">model</div>\n <div class=\"activemodel\">{{modelDefinition.name}}<span class=\"icon ph-caret-down-bold\"></span></div>\n </div>\n}\n","import { Component, HostBinding, HostListener, Input, OnDestroy, OnInit } from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { BrandingProvider, PaletteItem } from '../../../branding/brandingProvider.service';\n\n@Component({\n selector: 'nav-button',\n templateUrl: './nav-button.component.html',\n styleUrls: ['./nav-button.component.less'],\n standalone: false\n})\nexport class NavButtonComponent implements OnInit, OnDestroy {\n public hover: boolean;\n public active: boolean;\n public accentColor: string;\n private paletteItems: PaletteItem[] = [];\n private subscription: Subscription;\n @Input() routerLink: string[];\n @Input() url: string;\n @Input() icon: string;\n @Input() name: string;\n @Input() alertCount: number;\n @HostBinding('style.background-color') backgroundColor: string;\n @HostBinding('style.color') color: string;\n @HostListener('mouseover') mouseover() {\n this.hover = true;\n }\n @HostListener('mouseleave') mouseleave() {\n this.hover = false;\n }\n\n constructor(private router: Router, private brandingProvider: BrandingProvider) {\n this.router.events.pipe(filter(e => e instanceof NavigationEnd))\n .subscribe((navEnd: NavigationEnd) => {\n this.isUrlSame(navEnd.urlAfterRedirects);\n });\n\n this.subscription = this.brandingProvider.changed.subscribe(success => {\n this.paletteItems = success;\n this.setColor();\n });\n }\n\n private isUrlSame(currentUrl: string): void {\n if (!currentUrl || !this.routerLink) { this.active = false; return; }\n var routeUrl = this.routerLink.join(\"/\").replace(\"//\", \"/\");\n this.active = this.router.isActive(routeUrl, true);\n }\n\n public ngOnInit() {\n this.isUrlSame(this.router.url);\n this.paletteItems = this.brandingProvider.palette;\n this.setColor();\n }\n\n private setColor() {\n if (this.paletteItems == null) { return; }\n var paletteItem = this.paletteItems.find(p => p.key == \"accent\");\n if (paletteItem == null) {\n console.log(\"Can't find color for Palette Key [Accent]\");\n }\n else {\n this.accentColor = paletteItem.hex;\n }\n }\n\n public ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n","@if (routerLink) {\n <div class=\"brandeditem\" [routerLink]=\"routerLink\" [style.background-color]=\"active ? accentColor : null\">\n @if (alertCount > 0) {\n <div class=\"counter\">{{alertCount}}</div>\n }\n <span class=\"icon\" [ngClass]=\"icon\" [style.color]=\"hover ? (active ? '#2f2f2f' : accentColor) : (active ? '#2f2f2f' : null) \"></span>\n <a [routerLink]=\"routerLink\" [style.color]=\"hover ? (active ? '#2f2f2f' : accentColor) : (active ? '#2f2f2f' : null)\">{{name}}</a>\n </div>\n}\n@if (url) {\n <a class=\"brandeditem\" [href]=\"url\" [style.background-color]=\"active ? accentColor : null\">\n <span class=\"icon\" [ngClass]=\"icon\" [style.color]=\"hover ? (active ? '#2f2f2f' : accentColor) : (active ? '#2f2f2f' : null) \"></span>\n <a [href]=\"url\" [style.color]=\"hover ? (active ? '#2f2f2f' : accentColor) : (active ? '#2f2f2f' : null)\">{{name}}</a>\n </a>\n}\n@if (!url && !routerLink) {\n <div class=\"brandeditem\" [style.background-color]=\"active ? accentColor : null\">\n <span class=\"icon\" [ngClass]=\"icon\" [style.color]=\"hover ? (active ? '#2f2f2f' : accentColor) : (active ? '#2f2f2f' : null) \"></span>\n <a [style.color]=\"hover ? (active ? '#2f2f2f' : accentColor) : (active ? '#2f2f2f' : null)\">{{name}}</a>\n </div>\n}\n","import { Clipboard } from '@angular/cdk/clipboard';\nimport { Component, Inject } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { ViewModelStateBase, VIEWSTATE_PROVIDER } from '../../../viewModel/viewModelState.service';\nimport { IResultsState, ITeamReportResultsState } from '../../interfaces/IResultsState';\nimport { FactorScoreCollectionCompositionSegmentDto } from '../../models/factorScoreDto';\n\n@Component({\n selector: 'participants',\n templateUrl: './participants.component.html',\n styleUrls: ['./participants.component.less'],\n standalone: false\n})\nexport class ParticipantsComponent extends ComponentWithViewStateBase<IResultsState> {\n public teamInviteUrl: string;\n public supporterInviteUrl: string;\n public stakeholderInviteUrl: string;\n public stakeholderUrlCopied: boolean;\n public teamUrlCopied: boolean;\n public supporterUrlCopied: boolean;\n public population: number;\n public participationRate: number;\n public invitationGoal: number;\n public closed: Date;\n public populationSegments: FactorScoreCollectionCompositionSegmentDto[];\n\n constructor(@Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<ITeamReportResultsState>, protected snackBar: MatSnackBar, private clipboard: Clipboard) {\n super(state, snackBar);\n }\n\n public copyTeamInviteLink(): void {\n this.clipboard.copy(this.teamInviteUrl);\n this.teamUrlCopied = true;\n this.snackBar.open('We copied the link to invite team members to your clipboard', null, { duration: 3000 });\n setTimeout(() => {\n this.teamUrlCopied = false;\n }, 2000);\n }\n\n public copyStakeholderInviteLink(): void {\n this.clipboard.copy(this.stakeholderInviteUrl);\n this.stakeholderUrlCopied = true;\n this.snackBar.open('We copied the link to invite stakeholders to your clipboard', null, { duration: 3000 });\n setTimeout(() => {\n this.stakeholderUrlCopied = false;\n }, 2000);\n }\n\n public copySupporterInviteLink(): void {\n this.clipboard.copy(this.supporterInviteUrl);\n this.supporterUrlCopied = true;\n this.snackBar.open('We copied the link to invite supporters to your clipboard', null, { duration: 3000 });\n setTimeout(() => {\n this.supporterUrlCopied = false;\n }, 2000);\n }\n\n public segmentName(type: string): string {\n switch (type.toLowerCase()) {\n case \"teammember\":\n return \"Team members\";\n case \"stakeholder\":\n return \"Stakeholders\";\n case \"supporter\":\n return \"Supporters\";\n }\n }\n\n protected onDataUpdate(data: ITeamReportResultsState): void {\n this.populationSegments = data.factorScores.composition.segments;\n this.population = data.factorScores.composition.population;\n this.closed = data.snapshotMetaData.closed;\n this.participationRate = data.factorScores.participationRate.percentage;\n this.invitationGoal = data.snapshotMetaData.invitationGoal;\n\n if (data.snapshotMetaData.inviteUrls.TeamMember) {\n this.teamInviteUrl = data.snapshotMetaData.inviteUrls.TeamMember;\n }\n if (data.snapshotMetaData.inviteUrls.Stakeholder) {\n this.stakeholderInviteUrl = data.snapshotMetaData.inviteUrls.Stakeholder;\n }\n if (data.snapshotMetaData.inviteUrls.Supporter) {\n this.supporterInviteUrl = data.snapshotMetaData.inviteUrls.Supporter;\n }\n };\n}\n","<div class=\"wirebox\">\n <div class=\"top\">\n <h3>{{population}} Participants</h3>\n </div>\n\n <div class=\"content\">\n <div class=\"segments\">\n @for (segment of populationSegments; track segment) {\n <div class=\"segment\">\n {{segmentName(segment.name)}} <span class=\"digit\">{{segment.occurances}}</span>\n </div>\n }\n @if (invitationGoal > 0) {\n <div class=\"segment\">\n Participation goal <span class=\"icon ph-info-fill\" [matTooltip]=\"'The percentage of people that participated from those expected/invited. To change the goal, update the \\'participation goal\\'-field when editting this snapshot in the Dashboard (Professional plan).'\"></span><span class=\"digit\">{{invitationGoal}} ({{participationRate}}%)</span>\n </div>\n }\n </div>\n\n @if (closed) {\n <div class=\"closed message\"><span class=\"icon ph-lock\"></span> The survey for this report was closed at {{closed | date :'mediumDate'}}. Still want to participate? Contact the person who invited the team to re-open it.</div>\n }\n\n @if (teamInviteUrl && !closed) {\n <div class=\"invitebox\">\n <h4>Invite team members <span class=\"icon ph-info-fill\" [matTooltip]=\"'Share this link with the members of the team. This typically includes roles such as Scrum Masters, Team Leads and Product Owners. Each member receives a personalized report that shows their personal scores (only visible to them) and team scores. Team scores are updated every time someone participates.'\"></span></h4>\n <div class=\"url\">\n <input type=\"text\" [value]=\"teamInviteUrl\" />\n <span [class]=\"'clipboard ' + (teamUrlCopied ? 'ph-clipboard-text' : 'ph-clipboard')\" (click)=\"copyTeamInviteLink()\"></span>\n </div>\n </div>\n }\n\n @if (stakeholderInviteUrl && !closed) {\n <div class=\"invitebox\">\n <h4>Invite stakeholders (customers, users) <span class=\"icon ph-info-fill\" [matTooltip]=\"'Share this link with the stakeholders of your team. These are the people who are best capable to evaluate the quality of what a team produces and have a clear stake in it, such as customers, end-users and investors. We ask them to evaluate the outcomes of what a team deliver to them. They do not receive any results, but a team can do so afterward.'\"></span></h4>\n <div class=\"url\">\n <input type=\"text\" [value]=\"stakeholderInviteUrl\" />\n <span [class]=\"'clipboard ' + (stakeholderUrlCopied ? 'ph-clipboard-text' : 'ph-clipboard')\" (click)=\"copyStakeholderInviteLink()\"></span>\n </div>\n </div>\n }\n\n @if (supporterInviteUrl && !closed) {\n <div class=\"invitebox\">\n <h4>Invite supporters (managers, coaches, leaders) <span class=\"icon ph-info-fill\" [matTooltip]=\"'Share this link with the people who support your team but do not work as part of it. This includes managers, coaches and people in a leadership position. We ask supporters to evaluate their support for your team. They dont receive any results, but a team can do so afterward.'\"></span></h4>\n <div class=\"url\">\n <input type=\"text\" [value]=\"supporterInviteUrl\" />\n <span [class]=\"'clipboard ' + (supporterUrlCopied ? 'ph-clipboard-text' : 'ph-clipboard')\" (click)=\"copySupporterInviteLink()\"></span>\n </div>\n </div>\n }\n </div>\n <div class=\"bottom\">\n </div>\n</div>\n\n","import { DatePipe } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { FactorScoreDto } from '../../models/factorScoreDto';\n\n@Component({\n selector: 'result-indicator',\n templateUrl: './result-indicator.component.html',\n styleUrls: ['./result-indicator.component.less'],\n standalone: false\n})\nexport class ResultIndicatorComponent {\n public qualification: string;\n public result: number;\n @Input() public factorScore: FactorScoreDto;\n\n constructor() {\n }\n\n ngOnInit() {\n this.result = this.factorScore.score;\n this.qualification = this.factorScore.qualification;\n }\n}\n","@if (qualification == 'Positive') {\n <span [class]=\"'delta up'\" [matTooltip]=\"'This is the score achieved on this factor'\">{{result}}</span>\n}\n@if (qualification == 'Negative') {\n <span [class]=\"'delta down'\" [matTooltip]=\"'This is the score achieved on this factor'\">{{result}}</span>\n}\n@if (qualification == 'Neutral') {\n <span [class]=\"'delta same'\" [matTooltip]=\"'This is the score achieved on this factor'\">{{result}}</span>\n}\n","import { Component, Inject, Input } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { Router } from '@angular/router';\nimport { IActionState } from '../../../actions/interfaces/IActionState';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { FactorStructureDto, ModelStructureDto } from '../../../models/modelStructureDto';\nimport { VIEWSTATE_PROVIDER, ViewModelStateBase } from '../../../viewModel/viewModelState.service';\nimport { IResultsState } from '../../interfaces/IResultsState';\nimport { BenchmarkTypeEnum, EffectTypeEnum, FactorEffectDto, FactorScoreCollectionDeltaDto, FactorScoreDto, FeedbackResourceDto, QualifiedByEnum } from '../../models/factorScoreDto';\n\n@Component({\n selector: 'recommendation',\n templateUrl: './recommendation.component.html',\n styleUrls: ['./recommendation.component.less'],\n standalone: false\n})\nexport class RecommendationComponent extends ComponentWithViewStateBase<IActionState> {\n @Input() item: FactorScoreDto;\n public howToImproveExpanded: boolean;\n public researchExpanded: boolean;\n public recommendations: FactorScoreDto[];\n public resources: FeedbackResourceDto[];\n public index: number;\n public definition: string;\n public influences: FactorEffectDto[];\n public predictors: FactorEffectDto[];\n public delta: FactorScoreCollectionDeltaDto;\n public qualifiedBy: QualifiedByEnum;\n public model: ModelStructureDto;\n public benchmarkAvailable: boolean;\n\n constructor(@Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IResultsState>, protected snackBar: MatSnackBar, private router: Router) {\n super(state, snackBar);\n }\n\n public ngOnInit() {\n super.ngOnInit();\n this.influences = this.item.effects.filter(p => p.type == EffectTypeEnum.predicts);\n this.predictors = this.item.effects.filter(p => p.type == EffectTypeEnum.isPredictedby || p.type == EffectTypeEnum.isPartOf);\n this.resources = this.item.recommendation.resources;\n this.index = this.recommendations.indexOf(this.item) + 1;\n }\n\n public getFactor(factorKey: string): FactorStructureDto {\n var factor = this.model.definition.factors.find(p => p.publicKey == factorKey);\n return factor;\n }\n\n protected onDataUpdate(data: IResultsState): void {\n this.recommendations = data.factorScores.factorScores.filter(p => p.recommendation.available).sort((a, b) => a.impact > b.impact ? -1 : 1);\n this.delta = data.factorScores.delta;\n this.qualifiedBy = data.factorScores.processingData.qualifiedBy;\n this.model = data.factorScores.modelStructure;\n this.benchmarkAvailable = data.factorScores.benchmark.type !== BenchmarkTypeEnum.NoBenchmark;\n };\n}\n","<div [ngClass]=\"['wirebox', 'tip', 'index' + index]\" [attr.id]=\"'tip-' + item.key\">\n <div class=\"top\">\n <div class=\"name\">\n <div class=\"index\">{{index}}</div><h3>Invest in \"{{item.name}}\"</h3>\n </div>\n <div class=\"summary\" [innerHtml]=\"item.recommendation.summary\"></div>\n <div class=\"deltas\">\n <div class=\"delta-item\">result <result-indicator [factorScore]=\"item\"></result-indicator></div>\n @if (benchmarkAvailable) {\n <div class=\"delta-item\">benchmark <benchmark-indicator [factorScore]=\"item\"></benchmark-indicator></div>\n }\n @if (delta.available) {\n <div class=\"delta-item\">previous period <delta-arrow [factorScore]=\"item\" [delta]=\"delta\"></delta-arrow></div>\n }\n <div class=\"delta-item\">impact <impact-indicator [factorScore]=\"item\"></impact-indicator></div>\n </div>\n </div>\n @if (item.recommendation.research) {\n <div class=\"bottom insightsfromresearch\">\n <div class=\"titleandaction\" (click)=\"researchExpanded = !researchExpanded\">\n <h3>Insights from research</h3>\n @if (researchExpanded) {\n <div class=\"unexpand action\">\n <span class=\"icon ph-minus-bold\"></span>\n </div>\n }\n @if (!researchExpanded) {\n <div class=\"expand action\">\n <span class=\"icon ph-plus-bold\"></span>\n </div>\n }\n </div>\n @if (researchExpanded) {\n <div class=\"research\">\n <div class=\"chunk summary\" [innerHtml]=\"item.recommendation.research\"></div>\n </div>\n }\n </div>\n }\n <div class=\"bottom howtoimprove\">\n <div class=\"titleandaction\" (click)=\"howToImproveExpanded = !howToImproveExpanded\">\n <h3>How to improve</h3>\n @if (howToImproveExpanded) {\n <div class=\"unexpand action\">\n <span class=\"icon ph-minus-bold\"></span>\n </div>\n }\n @if (!howToImproveExpanded) {\n <div class=\"expand action\" >\n <span class=\"icon ph-plus-bold\"></span>\n </div>\n }\n </div>\n @if (howToImproveExpanded) {\n <div class=\"howtoimprove\">\n <div class=\"chunk summary\" [innerHtml]=\"item.recommendation.improve\"></div>\n <div class=\"chunk quicktips\">\n <p>Or try one or more quick actions with your team(s) to start small and simple:</p>\n <quicktips [dimensionKey]=\"item.key\"></quicktips>\n </div>\n @if (resources.length > 0) {\n <div class=\"chunk resources\">\n <p>Or try one or more of these do-it-yourself workshops with your team(s) to start improving in this area:</p>\n <doityourselfworkshops [resources]=\"resources\" [factorScore]=\"item\"></doityourselfworkshops>\n </div>\n }\n @if (predictors.length > 0) {\n <div class=\"chunk predictors\">\n <p>Or you can improve in this area by investing in:</p>\n @for (effect of predictors; track effect) {\n <ul>\n @if (effect.type == 'IsPartOf') {\n <li><a [routerLink]=\"[]\" factorInformationDialog [factor]=\"getFactor(effect.key)\">{{effect.name}}<span class=\"icon ph-info-fill\"></span></a>, which is an important part of {{item.name}}.</li>\n }\n @if (effect.type == 'IsPredictedBy') {\n <li><a [routerLink]=\"[]\" factorInformationDialog [factor]=\"getFactor(effect.key)\">{{effect.name}}<span class=\"icon ph-info-fill\"></span></a>, which creates better conditions for {{item.name}}.</li>\n }\n </ul>\n }\n </div>\n }\n @if (influences.length > 0) {\n <div class=\"chunk summary effects\">\n <p>When you are successful, you're likely to see additional improvements in:</p>\n @for (effect of influences; track effect) {\n <ul>\n <li><a [routerLink]=\"[]\" factorInformationDialog [factor]=\"getFactor(effect.key)\">{{effect.name}}<span class=\"icon ph-info-fill\"></span></a></li>\n </ul>\n }\n </div>\n }\n </div>\n }\n </div>\n</div>\n","import { Component, Inject, Input } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { Router, Scroll } from '@angular/router';\nimport { IActionState } from '../../../actions/interfaces/IActionState';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { DateRangeDto } from '../../../pipes/dateRange/ngx-dateRangeDto.model';\nimport { ViewModelStateBase, VIEWSTATE_PROVIDER } from '../../../viewModel/viewModelState.service';\nimport { IResultsState } from '../../interfaces/IResultsState';\nimport { FactorScoreCollectionDto, FactorScoreDto } from '../../models/factorScoreDto';\nimport { ModelStructureDto } from '../../../models/modelStructureDto';\n\n@Component({\n selector: 'recommendations',\n templateUrl: './recommendations.component.html',\n styleUrls: ['./recommendations.component.less'],\n standalone: false\n})\nexport class RecommendationsComponent extends ComponentWithViewStateBase<IActionState> {\n @Input() public limit: number;\n @Input() public skip: number = 0;\n public recommendations: FactorScoreDto[];\n public expanded: number;\n public factors: ModelStructureDto;\n public factorsCollection: FactorScoreCollectionDto;\n public deltaDateRange: DateRangeDto;\n\n constructor(@Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IResultsState>, protected snackBar: MatSnackBar, private router: Router) {\n super(state, snackBar);\n\n this.router.events.subscribe((event: any) => {\n if (event instanceof Scroll && event.anchor) {\n setTimeout(() => {\n this.scroll('#tip-' + event.anchor);\n }, this.recommendations != null ? 200 : 2000);\n }\n });\n }\n\n protected onDataUpdate(data: IResultsState): void {\n this.recommendations = data.factorScores.factorScores.filter(p => p.recommendation.available).sort((a, b) => a.impact > b.impact ? -1 : 1);\n if (this.limit > 0 || this.skip > 0) { this.recommendations = this.recommendations.slice(this.skip, this.limit == 0 ? 50 : this.limit); }\n\n this.factors = data.factorScores.modelStructure;\n this.deltaDateRange = data.factorScores.delta.dateRange;\n this.factorsCollection = data.factorScores;\n };\n\n private scroll(query: string) {\n const targetElement = document.querySelector(query);\n if (targetElement == null) { return; }\n targetElement.scrollIntoView();\n }\n}\n","<div class=\"tips\">\n @for (item of recommendations; track item) {\n <recommendation [item]=\"item\"></recommendation>\n }\n</div>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'research',\n templateUrl: './research.component.html',\n styleUrls: ['./research.component.less'],\n standalone: false\n})\nexport class ResearchComponent {\n constructor() {\n }\n\n ngOnInit() {\n }\n}\n","<div class=\"box research\" brandbackground [palette]=\"'neutral'\">\n <h3>Grounded in research</h3>\n <p>We believe we can best help teams and organizations by relying on robust, scientific evidence. This is why our questionnaires, models and recommendations are grounded in scientific research. Our science team continuously refines our models and recommendations as they analyze our dataset and publish in peer-reviewed academic journals.</p>\n <div class=\"link\">\n <a href=\"https://columinity.com/research\">Explore ></a>\n </div>\n</div>\n","import { Component, Inject } from '@angular/core';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { IResultsState } from '../../interfaces/IResultsState';\nimport { VIEWSTATE_PROVIDER, ViewModelStateBase } from '../../../viewModel/viewModelState.service';\nimport { MatSnackBar } from '@angular/material/snack-bar';\n\n@Component({\n selector: 'roadmap',\n templateUrl: './roadmap.component.html',\n styleUrls: ['./roadmap.component.less'],\n standalone: false\n})\nexport class RoadmapComponent extends ComponentWithViewStateBase<IResultsState> {\n public show: boolean;\n public subscribeUrl: string;\n\n constructor(@Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IResultsState>, protected snackBar: MatSnackBar) {\n super(state, snackBar)\n }\n\n protected onDataUpdate(data: IResultsState): void {\n this.show = data.userInfo.branding.isDefault;\n };\n}\n","@if (show) {\n <div class=\"roadmap\" brandbackground [palette]=\"'accent'\">\n <h3>Our roadmap</h3>\n <div class=\"feature\">\n <span class=\"icon ph-check-circle-fill\"></span> More Enterprise Features (MFA, SSO, potentially custom domains) (Q1)\n </div>\n <div class=\"feature\">\n <span class=\"icon ph-check-circle-fill\"></span> Introduce Lightweight Partner Program (Q1-2)\n </div>\n <div class=\"feature\">\n <span class=\"icon ph-check-circle-fill\"></span> Add basic API for select Enterprise users (Q3)\n </div>\n <div class=\"feature\">\n <span class=\"icon ph-check-circle-fill\"></span> Introduce new models (in progress, Q1-2)\n </div>\n <div class=\"feature\">\n <span class=\"icon ph-check-circle-fill\"></span> Expand with process measures (Q4)\n </div>\n <div class=\"feature\">\n <span class=\"icon ph-circle\"></span> Simplify Team Report (Q1)\n </div>\n <div class=\"feature\">\n <span class=\"icon ph-circle\"></span> Transition Teamwork Model Out Of Beta (Q1)\n </div>\n </div>\n}\n","import { Component, Inject } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { VIEWSTATE_PROVIDER, ViewModelStateBase } from '../../../viewModel/viewModelState.service';\nimport { IResultsState, ITeamReportResultsState } from '../../interfaces/IResultsState';\nimport { BenchmarkTypeEnum } from '../../models/factorScoreDto';\n\n@Component({\n selector: 'teameffectiveness',\n templateUrl: './teameffectiveness.component.html',\n styleUrls: ['./teameffectiveness.component.less'],\n standalone: false\n})\nexport class TeamEffectivenessComponent extends ComponentWithViewStateBase<IResultsState> {\n public score: number;\n public benchmarkScore: number;\n public benchmarkUpperQuartile: number;\n public qualification: string;\n public showTeamScore: boolean;\n private teamEffectivenessKey: string = \"15fb94d2-992c-47db-a087-7443ce277e64\";\n\n constructor(@Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<ITeamReportResultsState>, protected snackBar: MatSnackBar) {\n super(state, snackBar)\n }\n\n protected onDataUpdate(data: ITeamReportResultsState): void {\n this.loaded = data.loaded;\n var currentFactor = data.factorScores.factorScores.find(p => p.key == this.teamEffectivenessKey);\n\n if (currentFactor != null) {\n this.score = currentFactor.score;\n this.benchmarkScore = currentFactor.benchmark;\n this.qualification = currentFactor.qualification;\n }\n else {\n this.score = 0;\n }\n };\n}\n","@if (score != 0) {\n <div class=\"box teameffectiveness\" brandbackground [palette]=\"'theme'\">\n <h3>Team Effectiveness Score</h3>\n <div [class]=\"'progressbar progressbar-inverted progressbar-yourteam progressbar-inverted-' + qualification | lowercase\" [matTooltip]=\"'Whether you call it experience or maturity, we believe that teams are effective when they deliver value to stakeholders and when morale is high. This is the score for your team.'\">\n <div class=\"progressbar-bar\" [style]=\"'width: ' + score + '%'\"></div>\n <div class=\"progressbar-label\">your team</div>\n <div class=\"progressbar-score\">{{score | number:'1.0-0'}}\n </div>\n </div>\n @if (benchmarkScore > 0) {\n <div [class]=\"'progressbar progressbar-inverted progressbar-benchmark'\">\n <div class=\"progressbar-bar\" [matTooltip]=\"'This is the upper range of what most teams in your benchmark score'\" [style]=\"'width: ' + benchmarkScore + '%'\"></div>\n <div class=\"progressbar-label\">teams in benchmark</div>\n <div class=\"progressbar-score\">{{benchmarkScore | number:'1.0-0' }}</div>\n </div>\n }\n </div>\n}\n\n\n","import { HttpClient } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ApiConfig } from '../../apiUrlToken';\n\n@Injectable()\nexport class TermsService {\n private baseUrl: string;\n\n constructor(private http: HttpClient, @Inject(ApiConfig) private config: ApiConfig) {\n this.baseUrl = config.get().apiUrl;\n }\n\n public accept(): Observable<any> {\n return this.http.post(this.baseUrl + 'terms', null);\n }\n}\n","import { Component, Inject } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { LegalDto } from '../../../models/clientInfoDto';\nimport { ViewModelStateBase, VIEWSTATE_PROVIDER } from '../../../viewModel/viewModelState.service';\nimport { IResultsState } from '../../interfaces/IResultsState';\nimport { TermsService } from '../../services/terms.service';\n\n@Component({\n selector: 'termsupdated',\n templateUrl: './termsupdated.component.html',\n styleUrls: ['./termsupdated.component.less'],\n standalone: false\n})\nexport class TermsUpdatedComponent extends ComponentWithViewStateBase<IResultsState> {\n public legal: LegalDto;\n public termsUpdated: boolean;\n public sending: boolean;\n\n constructor(private termsService: TermsService, @Inject(VIEWSTATE_PROVIDER) protected state: ViewModelStateBase<IResultsState>, protected snackBar: MatSnackBar) {\n super(state, snackBar)\n }\n\n public async accept() {\n this.sending = true;\n await this.termsService.accept().subscribe(success => {\n this.showSuccess(\"Terms of service accepted\");\n this.sending = false;\n })\n }\n\n protected onDataUpdate(data: IResultsState): void {\n this.legal = data.userInfo.client.legal;\n };\n}\n","<div class=\"termsupdated\">\n <h3>Updated terms of service</h3>\n <p> Before you can continue, we'd like you to review and accept our terms of service. They outline how we protect personal data in compliance with the European General Data Protection Directive (GDPR). They also outline our mutual responsibilities:</p>\n <ol>\n @for (document of legal.documents; track document) {\n <li><a [href]=\"document.url\" target=\"_blank\">{{document.name}} <span class=\"icon ph-arrow-square-out\"></span></a></li>\n }\n </ol>\n <div class=\"toolbar\">\n <button class=\"button primary acceptterms\" (click)=\"accept()\" [ngClass]=\"{'loading': sending}\"><span class=\"icon ph-check-circle\"></span> Accept and continue</button>\n </div>\n</div>\n","import { DateRangeDto } from \"../../pipes/dateRange/ngx-dateRangeDto.model\";\nimport { DeltaPeriodEnum, IncludeActionsModeEnum } from \"./factorScoreDto\";\n\nexport class TrendDataRequestDto {\n type: string;\n teamKey: string;\n clientKey: string;\n teamKeys: string[];\n clientKeys: string[];\n includeSpread: boolean;\n dateRange: DateRangeDto;\n factorKeys: string[];\n periodGrouping: DeltaPeriodEnum;\n includeActions: IncludeActionsModeEnum;\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { ApiConfig } from '../../apiUrlToken';\nimport { TrendDataSetDto } from '../models/dataSetDto';\nimport { TrendDataRequestDto } from '../models/trendDataRequestDto.model';\n\n@Injectable()\nexport class TrendService {\n private baseUrl: string;\n\n constructor(private http: HttpClient, @Inject(ApiConfig) private config: ApiConfig) {\n this.baseUrl = config.get().apiUrl;\n }\n\n team(request: TrendDataRequestDto) {\n return this.http.post<TrendDataSetDto>(this.baseUrl + 'trends', request);\n }\n}\n","import { Component, ElementRef, Inject, Input, ViewChild } from '@angular/core';\nimport { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ActivatedRoute } from '@angular/router';\nimport { LegendPosition } from '@swimlane/ngx-charts';\nimport * as moment from 'moment';\nimport { take } from 'rxjs/operators';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { SelectItem } from '../../../models/selectListItem';\nimport { DateRangeDto } from '../../../pipes/dateRange/ngx-dateRangeDto.model';\nimport { ViewModelStateBase, VIEWSTATE_PROVIDER } from '../../../viewModel/viewModelState.service';\nimport { IResultsState } from '../../interfaces/IResultsState';\nimport { DeltaPeriodEnum, IncludeActionsModeEnum } from '../../models/factorScoreDto';\nimport { TrendDataRequestDto } from '../../models/trendDataRequestDto.model';\nimport { FactorService } from '../../services/factorService';\nimport { TrendService } from '../../services/trend.service';\n\n@Component({\n selector: 'trends',\n templateUrl: './trends.component.html',\n styleUrls: ['./trends.component.less'],\n standalone: false\n})\nexport class TrendsComponent extends ComponentWithViewStateBase<IResultsState> {\n @Input() public units: SelectItem[];\n @Input() public unitType: string;\n @ViewChild(\"chartcontainer\") public chartContainer: ElementRef<HTMLDivElement>\n public factors: SelectItem[];\n public data: any[];\n public generatorNotes: string[] = [];\n public loading: boolean = false;\n public form: UntypedFormGroup;\n public view: [number, number];\n public legendPosition: LegendPosition = LegendPosition.Below;\n public customColors = [];\n\n public periodGroupings: SelectItem[] = [\n new SelectItem(DeltaPeriodEnum.previousMonth, \"1 month\"),\n new SelectItem(DeltaPeriodEnum.previousQuarter, \"3 months\"),\n new SelectItem(DeltaPeriodEnum.previousHalfYear, \"6 months\"),\n new SelectItem(DeltaPeriodEnum.previousYear, \"12 months\")\n ]\n public includeActionOptions: SelectItem[] = [\n new SelectItem(IncludeActionsModeEnum.includeAll, \"All actions\"),\n new SelectItem(IncludeActionsModeEnum.includeRelevant, \"Actions with expected impact\"),\n new SelectItem(IncludeActionsModeEnum.none, \"None\")\n ]\n\n constructor(private formBuilder: UntypedFormBuilder, protected snackBar: MatSnackBar, private factorService: FactorService, private trendService: TrendService, protected route: ActivatedRoute, @Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IResultsState>) {\n super(state, snackBar);\n this.createForm();\n }\n\n public ngOnInit() {\n super.ngOnInit();\n this.form.controls.unitKey.setValue([this.units[0]]);\n this.form.controls.includeActions.setValue(\"IncludeAll\");\n this.form.controls.periodGrouping.setValue(\"PreviousQuarter\");\n this.form.controls.start.setValue(moment.utc().subtract(1, 'years').toISOString());\n this.form.controls.end.setValue(moment.utc().toISOString());\n }\n\n public onFormSubmit() {\n if (!this.form.valid) { return; }\n this.loading = true;\n\n var dataRequest: TrendDataRequestDto = new TrendDataRequestDto();\n\n if (this.unitType == \"team\") {\n dataRequest.teamKeys = this.form.controls.unitKey.value.map(p => p.value);\n }\n else if (this.unitType = \"organization\") {\n dataRequest.clientKeys = this.form.controls.unitKey.value.map(p => p.value);\n }\n\n dataRequest.factorKeys = this.form.controls.factorKeys.value.map(p => p.value);\n dataRequest.periodGrouping = this.form.controls.periodGrouping.value;\n dataRequest.dateRange = new DateRangeDto();\n dataRequest.dateRange.from = this.form.controls.start.value;\n dataRequest.dateRange.to = this.form.controls.end.value;\n dataRequest.includeActions = this.form.controls.includeActions.value;\n dataRequest.includeSpread = true;\n\n this.trendService.team(dataRequest).pipe(take(1))\n .subscribe(\n success => {\n this.data = success.variables;\n this.customColors = success.variables.filter(p => p.color != null).map(p => { return { name: p.name, value: p.color } });\n\n for (let item of this.data) {\n for (let s of item.series) {\n s.name = new Date(s.name)\n }\n }\n\n this.generatorNotes = success.generatorNotes;\n this.loading = false;\n this.onResize();\n });\n }\n\n public onResize() {\n if (!this.chartContainer) { return; }\n this.view = [this.chartContainer.nativeElement.offsetWidth - 80, 450];\n }\n\n private createForm(): void {\n this.form = this.formBuilder.group({\n unitKey: [\"\", Validators.required],\n factorKeys: [\"\", Validators.required],\n includeActions: [\"\", Validators.required],\n periodGrouping: [{ value: \"\" }, Validators.required],\n start: [{ value: \"\" }, Validators.required],\n end: [{ value: \"\" }, Validators.required],\n });\n };\n\n public compareFactorOptions(o1: SelectItem, o2: SelectItem) {\n if (o1.value == o2.value)\n return true;\n else return false\n }\n\n protected onDataUpdate(data: IResultsState): void {\n this.factors = this.factorService.toSelectList(data.factorScores.modelStructure);\n var coreFactors = data.factorScores.modelStructure.definition.factors.filter(p => p.name == \"Team Effectiveness\").map(p => new SelectItem(p.publicKey, p.name));\n this.form.controls.factorKeys.setValue(coreFactors);\n };\n}\n","\n\n<div class=\"message message-information\">\n <span class=\"ph-info icon\"></span> This chart shows how factors change over time. The horizontal axis shows the time. The vertical axis shows the weighted average score on the factor. The light area around the lines represents the spread of scores (lower and upper 15% of scores). We summarize results for one or more teams and from one or more organizations to the periods you chose (1 month, quarter, etc). For each period, we take the most recent snapshot of each team in that period (when available). Hit \"Show Trends\" when you're ready.\n</div>\n\n<form [formGroup]=\"form\" class=\"dataselector\" (ngSubmit)=\"onFormSubmit()\">\n <div class=\"listtoolbar\" id=\"listtoolbar\">\n @if (units.length > 1) {\n <mat-form-field class=\"listtoolbar-item select\" appearance=\"fill\">\n <mat-label>Select {{unitType}}</mat-label>\n <mat-select formControlName=\"unitKey\" id=\"select-units\" class=\"unitKey\" multiple [disabled]=\"units.length == 1\">\n @for (unit of units; track unit) {\n <mat-option class=\"select-option\" [value]=\"unit\">{{unit.label}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n\n <mat-form-field class=\"listtoolbar-item select\" appearance=\"fill\">\n <mat-label>Select factors</mat-label>\n <mat-select formControlName=\"factorKeys\" id=\"select-factors\" class=\"factorKeys\" multiple [compareWith]=\"compareFactorOptions\">\n @for (factor of factors; track factor) {\n <mat-option class=\"select-option\" [ngClass]=\"{'lower' : factor.lower}\" [value]=\"factor\" selected=\"true\">{{factor.label}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"listtoolbar-item select\" appearance=\"fill\">\n <mat-label>Summarize to periods of</mat-label>\n <mat-select class=\"periodGrouping-dropdown\" id=\"select-periodGrouping\" formControlName=\"periodGrouping\">\n @for (item of periodGroupings; track item) {\n <mat-option class=\"select-option\" [value]=\"item.value\">{{item.label}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"listtoolbar-item select\" appearance=\"fill\">\n <mat-label>Action count</mat-label>\n <mat-select class=\"selectactions-dropdown\" id=\"select-includeActions\" formControlName=\"includeActions\">\n @for (item of includeActionOptions; track item) {\n <mat-option class=\"select-option\" [value]=\"item.value\" class=\"select-option\">{{item.label}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"listtoolbar-item select\" appearance=\"fill\">\n <mat-label>Select date range </mat-label>\n <mat-date-range-input [rangePicker]=\"picker\" id=\"select-daterange\">\n <input matStartDate formControlName=\"start\" placeholder=\"Start date\">\n <input matEndDate formControlName=\"end\" placeholder=\"End date\">\n </mat-date-range-input>\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-date-range-picker #picker></mat-date-range-picker>\n\n @if (form.controls.start.hasError('matStartDateInvalid')) {\n <mat-error>Invalid start date</mat-error>\n }\n @if (form.controls.end.hasError('matEndDateInvalid')) {\n <mat-error>Invalid end date</mat-error>\n }\n </mat-form-field>\n\n <div class=\"listtoolbar-item\">\n <button class=\"button primary\" id=\"button-showtrends\" [ngClass]=\"{'loading': loading}\"><span class=\"ph-funnel\"></span> Show trends</button>\n </div>\n </div>\n</form>\n\n@if (generatorNotes.length > 0) {\n <div class=\"message message-warning\">\n <div class=\"ph-warning icon\"></div> {{generatorNotes[0]}}\n </div>\n}\n\n@if (!data) {\n <div class=\"wirebox calltoaction nodata\">\n <div class=\"contentwithborders\">\n <div class=\"center\">\n <img src=\"assets/img/improve.png\" />\n <h2>Are you actually improving?</h2>\n <p>Learn if your improvements are actually working out. Take more measurements and plot the trends for your {{unitType}}(s). How is that for empiricism?</p>\n </div>\n </div>\n </div>\n}\n\n<div #chartcontainer class=\"linechart\">\n @if (data) {\n <div class=\"linechart-container\">\n <ngx-charts-line-chart [legend]=\"true\"\n (window:resize)=\"onResize()\"\n [view]=\"view\"\n [showXAxisLabel]=\"true\"\n [showYAxisLabel]=\"true\"\n [xAxis]=\"true\"\n [scheme]=\"'vivid'\"\n [yAxis]=\"true\"\n [legendPosition]=\"legendPosition\"\n [xAxisLabel]=\"'Date'\"\n [yAxisLabel]=\"'Score'\"\n [timeline]=\"true\"\n [yScaleMin]=\"0\"\n [yScaleMax]=\"100\"\n [rangeFillOpacity]=\"0.1\"\n [results]=\"data\"\n [customColors]=\"customColors\">\n </ngx-charts-line-chart>\n </div>\n }\n</div>\n","import { Component, Inject } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { VIEWSTATE_PROVIDER, ViewModelStateBase } from '../../../viewModel/viewModelState.service';\nimport { IResultsState, ITeamReportResultsState } from '../../interfaces/IResultsState';\n\n@Component({\n selector: 'trynow-professional',\n templateUrl: './trynow-professional.component.html',\n styleUrls: ['./trynow-professional.component.less'],\n standalone: false\n})\nexport class TryNowProfessionalComponent extends ComponentWithViewStateBase<IResultsState> {\n public show: boolean;\n public subscribeUrl: string;\n\n constructor(@Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<ITeamReportResultsState>, protected snackBar: MatSnackBar) {\n super(state, snackBar)\n }\n\n protected onDataUpdate(data: ITeamReportResultsState): void {\n this.show = !data.isSubscriber && data.userInfo.branding.isDefault;\n this.subscribeUrl = data.userInfo.branding.channelSubscribeUrl;\n };\n}\n","@if (show) {\n <div class=\"box trynowprofessional\" brandbackground [palette]=\"'accent'\">\n <h3>Upgrade to Professional</h3>\n <p>Discover the full power of Columinity with <b>Professional</b>:</p>\n <ul>\n <li>Unlimited science-based recommendations.</li>\n <li>Access to the Teams Dashboard.</li>\n <li>Benchmarks per ndustry/size/region.</li>\n <li>Pull metrics from JIRA, Azure DevOps, etc.</li>\n <li>Secure access with user accounts.</li>\n <li>Aggregate results from many teams.</li>\n <li>Set up repeat scans easily.</li>\n <li>Access to advanced results.</li>\n </ul>\n <div class=\"message message-black\"><span class=\"icon ph-smiley-fill\"></span><span>Use the coupon <b>TRYPRO</b> to pay &euro;1,- for the first team on your monthly Professional plan.</span></div>\n <div class=\"link\">\n <a [href]=\"subscribeUrl\" target=\"_blank\">Try now ></a>\n </div>\n </div>\n}\n\n\n","import { Component, Inject } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { Subscription } from 'rxjs';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { ViewModelStateBase, VIEWSTATE_PROVIDER } from '../../../viewModel/viewModelState.service';\nimport { IResultsState, ITeamReportResultsState } from '../../interfaces/IResultsState';\n\n@Component({\n selector: 'update-in-progress',\n templateUrl: './update-in-progress.component.html',\n styleUrls: ['./update-in-progress.component.less'],\n standalone: false\n})\nexport class UpdateInProgressComponent extends ComponentWithViewStateBase<IResultsState> {\n public delayedReloading: boolean;\n private subscription: Subscription;\n\n constructor(@Inject(VIEWSTATE_PROVIDER) protected state: ViewModelStateBase<ITeamReportResultsState>, protected snackBar: MatSnackBar) {\n super(state, snackBar);\n }\n\n public ngOnInit(): void {\n this.subscription = this.state.updating.subscribe(reloaded => {\n this.delayedReloading = reloaded;\n });\n };\n\n public ngOnDestroy(): void {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n };\n}\n","@if (delayedReloading) {\n <div class=\"update-in-progress\">\n <span class=\"icon ph-floppy-disk-bold\"></span>\n </div>\n}\n","export class ClientInfoDto {\n name: string;\n subscriptionKey: string;\n activationCode: string;\n publicKey: string;\n aboutToExpire: boolean;\n metered: boolean;\n expires: Date;\n legal: LegalDto;\n teamsUsed: number;\n teamLimit: number;\n usersUsed: number;\n userLimit: number;\n}\n\nexport class LegalDto {\n accepted: Date;\n documents: LegalDocumentDto[];\n}\n\nexport class LegalDocumentDto {\n name: string;\n url: string;\n}\n","export class FeaturesDto {\n allowMFA: boolean;\n allowSSO: boolean;\n allowAPI: boolean;\n allowCustomDomain: boolean;\n allowBrandedPdfs: boolean;\n allowScaleSelection: boolean;\n allowMetrics: boolean;\n}\n","import { BrandingSettingsDto } from \"./brandingSettingsDto\";\nimport { ClientInfoDto } from \"./clientInfoDto\";\nimport { FeaturesDto } from \"./featuresDto\";\nimport { UserSettingsDto } from \"./userSettingsDto\";\n\nexport class UserInfoDto {\n constructor() {\n this.profile = new UserProfileDto();\n this.client = new ClientInfoDto();\n this.branding = new BrandingSettingsDto();\n this.settings = new UserSettingsDto();\n this.features = new FeaturesDto();\n }\n\n publicKey: string;\n isAdmin: boolean;\n isSubscriptionAdmin: boolean;\n isCoach: boolean;\n multipleEnvironments: boolean;\n features: FeaturesDto;\n settings: UserSettingsDto;\n branding: BrandingSettingsDto;\n client: ClientInfoDto;\n profile: UserProfileDto;\n}\n\nexport class UserProfileDto {\n name: string;\n email: string;\n avatarUrl: string;\n usesSSO: boolean;\n}\n\n","import { HttpClient } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ApiConfig } from '../../apiUrlToken';\nimport { UserProfileDto } from '../../models/userInfoDto';\n\n@Injectable()\nexport class UserProfileService {\n private baseUrl: string;\n\n constructor(private http: HttpClient, @Inject(ApiConfig) private config: ApiConfig) {\n this.baseUrl = config.get().apiUrl;\n }\n\n update(userProfile: UserProfileDto): Observable<any> { \n return this.http.put(this.baseUrl + 'userprofiles/commands', userProfile);\n }\n\n setAvatar(file: File): Observable<any> {\n const formData = new FormData();\n formData.append('file', file);\n return this.http.post(this.baseUrl + 'userprofiles/commands/avatar', formData, { observe: 'events', reportProgress: true });\n }\n\n clearAvatar(): Observable<any> {\n return this.http.delete(this.baseUrl + 'userprofiles/commands/avatar');\n }\n\n sendMFAEnrollment(): Observable<any> {\n return this.http.post(this.baseUrl + 'userprofiles/commands/enrollmfa/', { });\n }\n\n resetMFAEnrollment(): Observable<any> {\n return this.http.post(this.baseUrl + 'userprofiles/commands/resetmfa/', { });\n }\n\n createAPITokens(): Observable<any> {\n return this.http.post(this.baseUrl + 'userprofiles/commands/apitokens/', {});\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ApiConfig } from '../../apiUrlToken';\n\n@Injectable()\nexport class AccountService {\n private baseUrl: string;\n\n constructor(private http: HttpClient, @Inject(ApiConfig) private config: ApiConfig) {\n this.baseUrl = config.get().apiUrl;\n }\n\n sendResetPassword(email: string): Observable<any> {\n return this.http.post(this.baseUrl + 'account/resetpassword/', { email: email});\n }\n}\n","import { HttpEventType, HttpResponse } from '@angular/common/http';\nimport { Component, Inject } from '@angular/core';\nimport { FormGroupDirective, UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ActivatedRoute } from '@angular/router';\nimport { AuthService } from '@auth0/auth0-angular';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { UserProfileDto } from '../../../models/userInfoDto';\nimport { ViewModelStateBase, VIEWSTATE_PROVIDER } from '../../../viewModel/viewModelState.service';\nimport { IResultsState } from '../../interfaces/IResultsState';\nimport { UserProfileService } from '../../services/userProfile.service';\nimport { AccountService } from '../../services/account.service';\n\n@Component({\n selector: 'userprofile',\n templateUrl: './userprofile.component.html',\n styleUrls: ['./userprofile.component.less'],\n standalone: false\n})\nexport class UserProfileComponent extends ComponentWithViewStateBase<IResultsState> {\n public form: UntypedFormGroup;\n public loading: boolean = false;\n public userProfile: UserProfileDto;\n public changeAvatar: boolean;\n public color: string;\n public email: string;\n public usesMFA: boolean;\n public allowMFA: boolean;\n public allowPasswordChange: boolean;\n public showEmailInput: boolean;\n allowAPI: any;\n\n constructor(@Inject(VIEWSTATE_PROVIDER) protected state: ViewModelStateBase<IResultsState>, private authService: AuthService, private userProfileService: UserProfileService, private accountService: AccountService, private formBuilder: UntypedFormBuilder, protected snackbar: MatSnackBar, protected route: ActivatedRoute) {\n super(state, snackbar);\n this.createForm();\n this.authService.user$.subscribe(\n (profile) => {\n this.usesMFA = profile.use_mfa;\n this.email = profile.email;\n });\n }\n\n public ngOnInit() {\n super.ngOnInit();\n }\n\n private createForm(): void {\n this.form = this.formBuilder.group({\n name: [\"\", [Validators.required, Validators.maxLength(50)]],\n newEmail: [\"\", [Validators.required, Validators.email]]\n });\n };\n\n public async onSubmit(formDirective: FormGroupDirective) {\n if (!this.form.valid) { return; }\n this.loading = true;\n\n await this.authService.loginWithPopup({ authorizationParams: { max_age: 1 } }).subscribe(success => {\n var updateRequest = new UserProfileDto();\n updateRequest.name = this.form.controls.name.value;\n updateRequest.email = this.form.controls.newEmail.value;\n\n try {\n this.userProfileService.update(updateRequest).subscribe(success => {\n this.showSuccess(\"Your profile was updated\");\n });\n this.state.reload();\n }\n catch (ex: any) {\n this.form.controls.newEmail.setErrors({ alreadyExists: true });\n }\n }, error => {\n });\n\n this.loading = false;\n }\n\n public setChangeEmail() {\n this.showEmailInput = true;\n this.form.controls.newEmail.enable();\n }\n\n public uploadAvatar($fileInput: any): void {\n this.loading = true;\n const file = ($fileInput.target.files[0]);\n\n const reader = new FileReader();\n reader.onload = (e: any) => {\n if (file.type != \"image/png\" && file.type != \"image/jpeg\") {\n alert(\"The file must be a png or jpg file. You uploaded a file of type \" + file.type);\n this.loading = false;\n }\n\n const image = new Image();\n image.src = e.target.result;\n image.onload = rs => {\n const img_height = rs.currentTarget['height'];\n const img_width = rs.currentTarget['width'];\n\n if (img_height > 500 && img_width > 500) {\n alert(\"The logo is too large. Please limit to a picture of 500x500 pixels.\");\n this.loading = false;\n } else {\n this.userProfileService.setAvatar(file)\n .subscribe(event => {\n if (event.type === HttpEventType.UploadProgress) {\n } else if (event instanceof HttpResponse) {\n }\n });\n }\n };\n };\n\n reader.readAsDataURL(file);\n };\n\n public clearAvatar(): void {\n this.loading = true;\n this.userProfileService.clearAvatar()\n .subscribe(event => {\n this.loading = false;\n this.userProfile.avatarUrl = null;\n this.changeAvatar = false;\n });\n }; \n\n public sendPasswordReset() {\n this.loading = true;\n this.accountService.sendResetPassword(this.email).subscribe(\n success => {\n this.loading = false;\n super.showSuccess('We sent an e-mail to ' + this.email + ' to change your password');\n });\n }\n\n public sendMFAEnrollment() {\n this.loading = true;\n this.userProfileService.sendMFAEnrollment().subscribe(\n success => {\n this.loading = false;\n super.showSuccess('We sent an e-mail to ' + this.email + ' to set up your second factor (2FA)');\n });\n }\n\n public resetMFAEnrollment() {\n this.loading = true;\n this.userProfileService.resetMFAEnrollment().subscribe(\n success => {\n this.loading = false;\n super.showSuccess('Your second factor is cleared. If 2FA is required for your account, you now have to set up again. Otherwise you can leave it disabled.');\n setTimeout(() => {\n window.location.reload();\n }, 4000);\n });\n }\n\n public createAPITokens() {\n this.loading = true;\n this.userProfileService.createAPITokens().subscribe(\n success => {\n this.loading = false;\n super.showSuccess('We sent an e-mail to ' + this.email + ' with your API tokens.');\n });\n }\n\n protected onDataUpdate(data: IResultsState): void {\n this.loading = false;\n this.changeAvatar = false;\n this.userProfile = data.userInfo.profile;\n this.allowMFA = data.userInfo.features.allowMFA;\n this.allowAPI = data.userInfo.features.allowAPI && data.userInfo.isAdmin;\n this.form.controls.name.setValue(data.userInfo.profile.name);\n \n if (data.userInfo.profile.email) {\n this.showEmailInput = false;\n this.form.controls.newEmail.disable();\n }\n };\n}\n","<div class=\"form-profile\">\n <h2>My Profile</h2>\n <form class=\"form\" [formGroup]=\"form\" (ngSubmit)=\"onSubmit(formDirective)\" #formDirective=\"ngForm\">\n <div class=\"form-label\">Avatar</div>\n\n <div class=\"currentuserprofileavatar\">\n @if (userProfile.avatarUrl) {\n <div class=\"userprofileavatar\">\n @if (loading) {\n <div class=\"loading-icon small\"></div>\n }\n @if (!loading) {\n <img class=\"responsive\" [src]=\"userProfile.avatarUrl\" />\n }\n </div>\n }\n <div class=\"reupload\">\n @if (!changeAvatar && userProfile.avatarUrl) {\n <div class=\"button\" (click)=\"changeAvatar = true\">Change avatar</div>\n }\n @if (!changeAvatar && !userProfile.avatarUrl) {\n <div class=\"button\" (click)=\"changeAvatar = true\">Set avatar</div>\n }\n @if (changeAvatar && userProfile.avatarUrl) {\n <div class=\"button\" (click)=\"clearAvatar()\"><span class=\"icon ph-trash-fill\"></span>Clear</div>\n }\n </div>\n </div>\n\n @if (changeAvatar) {\n <div class=\"reuploadform\">\n <div (click)=\"changeAvatar = false\" class=\"cancel icon ph-x-bold\"></div>\n <input class=\"mat-form-field\" accept=\"image/png,image/jpeg\" type=\"file\" id=\"coach-avatar\" (change)=\"uploadAvatar($event)\">\n <div class=\"message message-information\">\n <span class=\"icon ph-info-fill\"></span>Select new image (.png or .jpg). Use a 1:1 ratio for the best results (e.g. 500x500). Maximum size is 500x500px and 500kb.\n </div>\n </div>\n }\n\n <div class=\"form-label\">Name</div>\n <mat-form-field appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>What is your name?</mat-label>\n <input maxlength=\"50\" matInput id=\"name\" formControlName=\"name\" type=\"text\">\n @if (form.controls.name.errors) {\n <mat-error>\n @if (form.controls.name.errors.required) {\n <div>This field is required</div>\n }\n </mat-error>\n }\n </mat-form-field>\n\n <div class=\"form-label\">Email</div>\n @if (!showEmailInput) {\n <p>\n The e-mail address is set to <b>{{userProfile.email}}</b>.\n <a [routerLink]=\"[]\" id=\"toggle-email\" (click)=\"setChangeEmail()\">Set a different address.</a>\n </p>\n }\n\n @if (showEmailInput) {\n <mat-form-field appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>On what e-mail address can you be contacted?</mat-label>\n <input matInput id=\"newEmail\" formControlName=\"newEmail\" type=\"email\">\n @if (form.controls.newEmail.errors) {\n <mat-error>\n @if (form.controls.newEmail.errors.email) {\n <div>The email is invalid. Please specify email like john&#64;doe.nl or jane.doe&#64;someone.nl.</div>\n }\n @if (form.controls.newEmail.errors.alreadyExists) {\n <div>Another user already uses this e-mail address. Please use another email address.</div>\n }\n </mat-error>\n }\n </mat-form-field>\n }\n\n <div class=\"toolbar\">\n <input class=\"button submit primary\" type=\"submit\" id=\"submit\" [disabled]=\"loading\" [ngClass]=\"{'loading': loading}\" value=\"Save\" />\n </div>\n </form>\n</div>\n\n<div class=\"form-security\">\n <h2>Security</h2>\n\n <form class=\"form\">\n <div class=\"form-label\">Change password</div>\n @if (!userProfile.usesSSO) {\n <div class=\"button\" (click)=\"sendPasswordReset()\" id=\"account-passwordreset\">Send email to change password</div>\n }\n @if (userProfile.usesSSO) {\n <p>You are logging in through single-sign on (SSO). Use your company's identity provider to change your password.</p>\n }\n\n @if (allowMFA) {\n <div class=\"form-label\">Add additional login factor (MFA)</div>\n @if (!usesMFA) {\n <p>Add a code from Google Authenticator or similar to your account to make it more secure.</p>\n <div class=\"button\" (click)=\"sendMFAEnrollment()\" id=\"account-enrollmfa\">Send email to set up 2FA</div>\n }\n @if (usesMFA) {\n <p>An additional factor is <b>enabled</b> for this account.</p>\n <div class=\"button\" (click)=\"resetMFAEnrollment()\" id=\"account-resetmfa\">Reset 2FA</div>\n }\n }\n\n @if (allowAPI) {\n <div class=\"form-label\">API Access</div>\n <p>Access our <a target=\"_blank\" href=\"https://github.com/theliberators/scrumteamsurvey.docs/wiki/Getting-Started-with-the-API\">API</a> with your personal account.</p>\n <div class=\"button\" (click)=\"createAPITokens()\" id=\"account-apitokens\">Send email with new API tokens</div>\n }\n </form>\n</div>\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'explainervideo',\n templateUrl: './video.component.html',\n styleUrls: ['./video.component.less'],\n standalone: false\n})\nexport class VideoComponent {\n @Input() public videoUrl: string;\n @Input() public videoTitle: string;\n\n constructor() {\n }\n\n ngOnInit() {\n }\n\n openVideo() {\n window.open(this.videoUrl, \"_blank\");\n }\n}\n","<div class=\"box explainervideo\" brandbackground [palette]=\"'theme'\" (click)=\"openVideo()\">\n <span class=\"ph-monitor-play-bold icon video\"></span>\n <div class=\"name\">\n <h3>\n {{videoTitle}}\n </h3>\n <div class=\"tags\">\n <span class=\"tag external\"><span class=\"icon ph-arrow-square-out\"></span> youtube</span>\n </div>\n </div>\n</div>\n\n\n","import { Component, Input } from '@angular/core';\nimport { FactorScoreCollectionDeltaDto, FactorScoreCollectionDto, FactorScoreDto, PointDto, PointTypeEnum } from '../../models/factorScoreDto';\n\n@Component({\n selector: 'widget-factorscore',\n templateUrl: './widget-factorscore.component.html',\n styleUrls: ['./widget-factorscore.component.less'],\n standalone: false\n})\nexport class WidgetFactorScoreComponent {\n public direction: string;\n @Input() public factorScore: FactorScoreDto;\n @Input() public factorScores: FactorScoreCollectionDto;\n @Input() public delta: FactorScoreCollectionDeltaDto;\n public benchmarkName: string;\n public factorScoreWidth: number;\n public score: number;\n public benchmark: number;\n public confidenceAvailable: boolean;\n public factorScoreLeft: number;\n public points: PointDto[];\n public width: number;\n\n constructor() {\n }\n\n ngOnInit() {\n this.score = this.factorScore.score;\n this.benchmark = this.factorScore.benchmark;\n this.benchmarkName = this.factorScores.benchmark.name;\n\n if (this.factorScore.type !== \"Metric\") {\n this.width = this.factorScore.score;\n this.confidenceAvailable = this.factorScores.composition.points.count > 1;\n this.factorScoreWidth = (this.factorScore.upperConfidence - this.factorScore.lowerConfidence);\n if (this.factorScoreWidth <= 10) { this.factorScoreWidth = 10 };\n this.factorScoreLeft = this.factorScore.lowerConfidence - 4;\n if (this.factorScoreLeft >= 90) { this.factorScoreLeft = 90 };\n }\n else {\n this.confidenceAvailable = false;\n this.width = 100;\n }\n\n this.points = this.factorScore.points.filter(p => p.type == PointTypeEnum.team || p.type == PointTypeEnum.client);\n this.direction = this.factorScore.qualification.toLowerCase();\n }\n}\n","<div class=\"widget factorscore\">\n <div class=\"label\">\n {{factorScore.name}}\n <delta-arrow [factorScore]=\"factorScore\" [delta]=\"delta\"></delta-arrow>\n </div>\n <div [class]=\"'progressbar progressbar-inverted progressbar-' + direction + ' progressbar-spread'\">\n @if (confidenceAvailable && factorScore.score > 0) {\n <div class=\"progressbar-confidence\" [matTooltip]=\"'Most teams in your organization fall in this range (25-75% percentile)'\" [style]=\"'left: ' + factorScoreLeft + '%; width: ' + factorScoreWidth + '%'\"></div>\n }\n @if (confidenceAvailable && factorScore.score > 0) {\n <div class=\"progressbar-confidence\" [matTooltip]=\"'Most teams in your organization fall in this range (25-75% percentile)'\" [style]=\"'left: ' + factorScoreLeft + '%; width: ' + factorScoreWidth + '%'\"></div>\n }\n @if (!confidenceAvailable) {\n <div class=\"progressbar-bar\" [style]=\"'width: ' + width + '%'\"></div>\n }\n <div class=\"progressbar-score\">{{factorScore.score > 0 ? factorScore.score : \"waiting for data\"}}</div>\n @if (benchmark != 0) {\n <div class=\"benchmark\" [style]=\"'left: ' + benchmark + '%'\" [matTooltip]=\"'Teams in benchmark \\'' + benchmarkName + '\\' score an average of ' + benchmark + ' points'\"></div>\n }\n </div>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { FactorScoreCollectionDeltaDto, FactorScoreCollectionDto } from '../../models/factorScoreDto';\nimport { ParticipationRateDto } from '../../models/widgetDataDto';\n\n@Component({\n selector: 'widget-participationrate',\n templateUrl: './widget-participationrate.component.html',\n styleUrls: ['./widget-participationrate.component.less'],\n standalone: false\n})\nexport class WidgetParticipationRateComponent {\n public direction: string;\n @Input() public data: ParticipationRateDto;\n public factorScoreWidth: number;\n public percentage: number;\n public confidenceAvailable: boolean;\n public factorScoreLeft: number;\n\n constructor() {\n }\n\n ngOnInit() {\n this.confidenceAvailable = this.data.upperConfidence > 0 && this.data.lowerConfidence > 0;\n this.percentage = this.data.percentage;\n\n this.factorScoreWidth = (this.data.upperConfidence - this.data.lowerConfidence);\n if (this.factorScoreWidth <= 10) { this.factorScoreWidth = 10 };\n this.factorScoreLeft = this.data.lowerConfidence - 4;\n if (this.factorScoreLeft >= 90) { this.factorScoreLeft = 90 };\n\n this.direction = this.data.qualification.toLowerCase();\n }\n}\n","<div class=\"widget factorscore\">\n <div class=\"label\">\n Participation rate (%)\n </div>\n <div [class]=\"'progressbar progressbar-inverted progressbar-' + direction + ' progressbar-spread'\">\n @if (confidenceAvailable) {\n <div class=\"progressbar-confidence\" [matTooltip]=\"'Most teams in your organization fall in this range (25-75% percentile)'\" [style]=\"'left: ' + factorScoreLeft + '%; width: ' + factorScoreWidth + '%'\"></div>\n }\n @if (!confidenceAvailable) {\n <div class=\"progressbar-bar\" [style]=\"'width: ' + percentage + '%'\"></div>\n }\n <div class=\"progressbar-score\">{{data.percentage > 0 ? data.percentage : \"no recent data\"}}</div>\n </div>\n</div>\n","import { Component, Inject } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { IUserSettingStrategy, VIEWSTATE_USERSETTINGS_STRATEGY } from '../../../viewModel/userSettings.service';\nimport { VIEWSTATE_PROVIDER, ViewModelStateBase } from '../../../viewModel/viewModelState.service';\nimport { IResultsState } from '../../interfaces/IResultsState';\nimport { ExportTeamListRequestDto } from '../../models/exportRequestDto';\nimport { ExportService } from '../../services/exportService';\n\n@Component({\n templateUrl: './dialog-export-teamlist.component.html',\n styleUrls: ['./dialog-export-teamlist.component.less'],\n standalone: false\n})\nexport class DialogExportTeamListComponent extends ComponentWithViewStateBase<IResultsState> {\n public form: FormGroup;\n public sending: boolean;\n public modelKey: string;\n\n constructor(@Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IResultsState>, protected snackBar: MatSnackBar, @Inject(VIEWSTATE_USERSETTINGS_STRATEGY) protected userSettings: IUserSettingStrategy, private exportService: ExportService, private dialogRef: MatDialogRef<DialogExportTeamListComponent>, private formBuilder: FormBuilder) {\n super(state, snackBar);\n this.createForm();\n }\n\n ngOnInit() {\n super.ngOnInit();\n }\n\n public async exportTeamSummaries(): Promise<void> {\n if (!this.form.valid) { return; }\n\n var request = new ExportTeamListRequestDto(this.modelKey);\n\n this.sending = true;\n this.exportService.exportTeamList(request).subscribe(success => {\n let binaryData = [];\n binaryData.push(new Uint8Array([0xEF, 0xBB, 0xBF])); // UTF8 bom\n binaryData.push(success);\n let downloadLink = document.createElement('a');\n downloadLink.href = window.URL.createObjectURL(new Blob(binaryData, { type: \"text/plain;charset=utf-8\" }));\n downloadLink.setAttribute('download', 'export-teamlist-' + this.modelKey + '.csv');\n document.body.appendChild(downloadLink);\n downloadLink.click();\n this.dialogRef.close();\n this.sending = false;\n this.showSuccess(\"Download started. You may have to allow it in your browser.\");\n });\n }\n\n public async exportParticipationRate(): Promise<void> {\n if (!this.form.valid) { return; }\n\n var request = new ExportTeamListRequestDto(this.modelKey);\n\n this.sending = true;\n this.exportService.exportParticipationRate(request).subscribe(success => {\n let binaryData = [];\n binaryData.push(new Uint8Array([0xEF, 0xBB, 0xBF])); // UTF8 bom\n binaryData.push(success);\n let downloadLink = document.createElement('a');\n downloadLink.href = window.URL.createObjectURL(new Blob(binaryData, { type: \"text/plain;charset=utf-8\" }));\n downloadLink.setAttribute('download', 'export-participationrate-' + this.modelKey + '.csv');\n document.body.appendChild(downloadLink);\n downloadLink.click();\n this.dialogRef.close();\n this.sending = false;\n this.showSuccess(\"Download started. You may have to allow it in your browser.\");\n });\n }\n\n protected onDataUpdate(data: IResultsState): void {\n this.modelKey = data.factorScores.modelStructure.definition.publicKey;\n };\n\n private createForm(): void {\n this.form = this.formBuilder.group({\n periodGrouping: [{ value: \"\" }, Validators.required],\n start: [{ value: \"\" }, Validators.required],\n end: [{ value: \"\" }, Validators.required],\n });\n };\n}\n","<div class=\"dialog-header\">\n <h1 mat-dialog-title>Export team summaries</h1>\n <div class=\"close\" mat-dialog-close><i class=\"responsive icon ph-x-bold\"></i></div>\n</div>\n<mat-dialog-content>\n <p>Download most of what we show in this overview to .csv for your own analyses (max 250 teams). <a href=\"https://github.com/theliberators/scrumteamsurvey.docs/wiki/Export-File-Definitions\">Our Wiki</a> has a definition.</p>\n <form [formGroup]=\"form\" (ngSubmit)=\"exportTeamSummaries()\">\n\n <div class=\"toolbar\">\n <button class=\"button primary\" id=\"submit-export-teamlist\" type=\"submit\" [ngClass]=\"{'loading': sending }\" [disabled]=\"sending\">export</button>\n <button class=\"button\" mat-dialog-close>cancel</button>\n </div>\n </form>\n\n <h2>Export participation report</h2>\n <p>Download a list of teams, their snapshots and the number of completed participants for each segment to .csv (max 250 teams). <a href=\"https://github.com/theliberators/scrumteamsurvey.docs/wiki/Export-File-Definitions\">Our Wiki</a> has a definition.</p>\n <form [formGroup]=\"form\" (ngSubmit)=\"exportParticipationRate()\">\n\n <div class=\"toolbar\">\n <button class=\"button primary\" id=\"submit-export-participationrate\" type=\"submit\" [ngClass]=\"{'loading': sending }\" [disabled]=\"sending\">export</button>\n <button class=\"button\" mat-dialog-close>cancel</button>\n </div>\n </form>\n</mat-dialog-content>\n","import { Directive, HostListener } from '@angular/core';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\nimport { DialogExportTeamListComponent } from './dialog-export-teamlist.component';\n\n@Directive({\n selector: '[exportTeamListDialog]',\n standalone: false\n})\nexport class OpenExportTeamListDialogDirective {\n constructor(private dialog: MatDialog) {\n }\n\n @HostListener('click')\n onClick(): void {\n const dialogConfig = new MatDialogConfig();\n dialogConfig.panelClass = ['dialog', 'export'];\n dialogConfig.autoFocus = false;\n dialogConfig.enterAnimationDuration = 0;\n dialogConfig.exitAnimationDuration = 0;\n this.dialog.open(DialogExportTeamListComponent, dialogConfig);\n }\n}\n","import { Component, Inject, Input } from '@angular/core';\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { IUserSettingStrategy, VIEWSTATE_USERSETTINGS_STRATEGY } from '../../../viewModel/userSettings.service';\nimport { VIEWSTATE_PROVIDER, ViewModelStateBase } from '../../../viewModel/viewModelState.service';\nimport { IResultsState } from '../../interfaces/IResultsState';\n\n@Component({\n templateUrl: './dialog-teamfilters.component.html',\n styleUrls: ['./dialog-teamfilters.component.less'],\n standalone: false\n})\nexport class DialogTeamFilterComponent extends ComponentWithViewStateBase<IResultsState> {\n public form: UntypedFormGroup;\n public sending: boolean;\n public submitted: boolean;\n public filterSet: boolean;\n\n constructor(@Inject(MAT_DIALOG_DATA) public tags: string[], @Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IResultsState>, @Inject(VIEWSTATE_USERSETTINGS_STRATEGY) protected userSettings: IUserSettingStrategy, protected snackBar: MatSnackBar, private dialogRef: MatDialogRef<DialogTeamFilterComponent>, private formBuilder: UntypedFormBuilder) {\n super(state, snackBar);\n }\n\n ngOnInit() {\n this.createForm();\n super.ngOnInit();\n }\n\n public async submit(): Promise<void> {\n this.submitted = true;\n if (!this.form.valid) { return; }\n this.userSettings.settings.user.teamFilter.tags = this.form.controls.tags.value;\n await this.userSettings.apply();\n this.dialogRef.close();\n }\n\n public async clear(): Promise<void> {\n this.userSettings.settings.user.teamFilter.tags = [];\n await this.userSettings.apply();\n this.dialogRef.close();\n }\n\n private createForm(): void {\n this.form = this.formBuilder.group({\n tags: [{ value: \"\" }]\n });\n };\n\n protected onDataUpdate(data: IResultsState) {\n this.form.controls.tags.setValue(data.userInfo.settings.user.teamFilter.tags ?? []);\n if (this.tags == null || this.tags.length == 0) { this.form.controls.tags.disable(); };\n this.filterSet = data.userInfo.settings.user.teamFilter.tags.length > 0;\n }\n}\n","<div class=\"dialog-header\" id=\"dialog-teamfilter\">\n <h1 mat-dialog-title>Filter Teams & Results</h1>\n <div class=\"close\" mat-dialog-close><i class=\"responsive icon ph-x-bold\"></i></div>\n</div>\n<mat-dialog-content>\n <form [formGroup]=\"form\" class=\"teamfilter\">\n <p>Filter the results to teams with tags.</p>\n\n <mat-form-field class=\"tag\" subscriptSizing=\"dynamic\">\n <mat-label>Show only teams with tag(s)</mat-label>\n <mat-select class=\"tags-dropdown\" formControlName=\"tags\" multiple>\n @for (tag of tags; track tag) {\n <mat-option [value]=\"tag\" class=\"select-option\">{{tag}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n\n @if (tags && tags.length == 0) {\n <div>\n <h4>Organize teams into groups with tags</h4>\n <p>Assign 'tags' to your teams to group teams by value streams, departments, products and so on. You can assign tags with 'Edit team' in the Teams Dashboard.</p>\n </div>\n }\n\n @if (tags && tags.length > 0) {\n <div class=\"toolbar\">\n <button class=\"button primary\" id=\"teamfilters-apply\" type=\"submit\" (click)=\"submit()\" [ngClass]=\"{'loading': sending }\">apply</button>\n @if (filterSet) {\n <button class=\"button clear\" id=\"teamfilters-clear\" (click)=\"clear()\" [ngClass]=\"{'loading': sending }\">clear</button>\n }\n <button class=\"button cancel\" id=\"teamfilters-cancel\" mat-dialog-close>cancel</button>\n </div>\n }\n </form>\n</mat-dialog-content>\n","import { Directive, HostListener, Input } from '@angular/core';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\nimport { DialogTeamFilterComponent } from './dialog-teamfilters.component';\n\n@Directive({\n selector: '[teamFilterDialog]',\n standalone: false\n})\nexport class OpenTeamFilterDialogDirective {\n @Input() tags: string[];\n\n constructor(private dialog: MatDialog) {\n }\n\n @HostListener('click')\n onClick(): void {\n const dialogConfig = new MatDialogConfig();\n dialogConfig.panelClass = ['dialog', 'teamfilters'];\n dialogConfig.autoFocus = false;\n dialogConfig.data = this.tags;\n dialogConfig.enterAnimationDuration = 0;\n dialogConfig.exitAnimationDuration = 0;\n this.dialog.open(DialogTeamFilterComponent, dialogConfig);\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { LOCAL_STORAGE, StorageService } from 'ngx-webstorage-service';\n\n@Injectable()\nexport class DismissPopupService {\n private dismissedPopups: string[];\n\n constructor() {\n }\n\n public dismiss(key: string): void {\n this.dismissedPopups.push(key);\n }\n\n public isDismissed(key: string): boolean {\n return this.dismissedPopups.indexOf(key) > -1;\n }\n}\n","import { ClipboardModule } from '@angular/cdk/clipboard';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatNativeDateModule, MatOptionModule } from '@angular/material/core';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { RouterModule } from '@angular/router';\nimport { NgxChartsModule } from '@swimlane/ngx-charts';\nimport { ActionsModule } from '../actions/actions.module';\nimport { BrandingModule } from '../branding/branding.module';\nimport { LoadingModule } from '../components/loading/loading.module';\nimport { ResourceDownloadModule } from '../dialogs/dialog-resourcedownload/dialog-resourcedownload.module';\nimport { DialogSubscribeModule } from '../dialogs/dialog-subscribe/dialog-subscribe.module';\nimport { DialogSupportModule } from '../dialogs/dialog-support/dialog-support.module';\nimport { GuidesModule } from '../guides/guides.module';\nimport { DateRangePipeModule } from '../pipes/dateRange/ngx-dateRange.module';\nimport { SlugifyPipeModule } from '../pipes/slugify/ngx-slugify.module';\nimport { AgeIndicatorComponent } from './components/age-indicator/age-indicator.component';\nimport { ArrowComponent } from './components/arrow/arrow.component';\nimport { BadgeProgressionComponent } from './components/badge-progression/badge-progression.component';\nimport { BadgeStreakComponent } from './components/badge-streak/badge-streak.component';\nimport { BadgeComponent } from './components/badge/badge.component';\nimport { BadgesComponent } from './components/badges/badges.component';\nimport { BenchmarkIndicatorComponent } from './components/benchmark-indicator/benchmark-indicator.component';\nimport { DeltaArrowComponent } from './components/delta-arrow/delta-arrow.component';\nimport { DoItYourselfComponent } from './components/doityourself/doityourself.component';\nimport { DoItYourselfWorkshopsComponent } from './components/doityourselfworkshops/doityourselfworkshops.component';\nimport { FactorAxisComponent } from './components/factor-axis/factor-axis.component';\nimport { FactorsComponent } from './components/factors/factors.component';\nimport { FilterTagsComponent } from './components/filter-tags/filter-tags.component';\nimport { FocusAreasComponent } from './components/focusareas/focusareas.component';\nimport { FooterComponent } from './components/footer/footer.component';\nimport { ImpactIndicatorComponent } from './components/impact-indicator/impact-indicator.component';\nimport { LimitationsApplyComponent } from './components/limitationsapply/limitationsapply.component';\nimport { ModelSwitcherComponent } from './components/model-switcher/model-switcher.component';\nimport { NavButtonComponent } from './components/nav-button/nav-button.component';\nimport { ParticipantsComponent } from './components/participants/participants.component';\nimport { QuickTipsComponent } from './components/quicktips/quicktips.component';\nimport { RecommendationComponent } from './components/recommendation/recommendation.component';\nimport { RecommendationsComponent } from './components/recommendations/recommendations.component';\nimport { ResearchComponent } from './components/research/research.component';\nimport { RoadmapComponent } from './components/roadmap/roadmap.component';\nimport { TeamEffectivenessComponent } from './components/teameffectiveness/teameffectiveness.component';\nimport { TermsUpdatedComponent } from './components/termsupdated/termsupdated.component';\nimport { TipBadgeComponent } from './components/tip-badge/tip-badge.component';\nimport { TrendsComponent } from './components/trends/trends.component';\nimport { TryNowProfessionalComponent } from './components/trynow-professional/trynow-professional.component';\nimport { UpdateInProgressComponent } from './components/update-in-progress/update-in-progress.component';\nimport { UserProfileComponent } from './components/userprofile/userprofile.component';\nimport { VideoComponent } from './components/video/video.component';\nimport { WidgetFactorScoreComponent } from './components/widget-factorscore/widget-factorscore.component';\nimport { WidgetParticipationRateComponent } from './components/widget-participationrate/widget-participationrate.component';\nimport { DialogExportFactorScoresComponent } from './dialogs/dialog-export-factorscores/dialog-export-factorscores.component';\nimport { OpenExportFactorScoresDialogDirective } from './dialogs/dialog-export-factorscores/dialog-export-factorscores.directive';\nimport { DialogExportTeamListComponent } from './dialogs/dialog-export-teamlist/dialog-export-teamlist.component';\nimport { OpenExportTeamListDialogDirective } from './dialogs/dialog-export-teamlist/dialog-export-teamlist.directive';\nimport { DialogModelFilterComponent, OpenModelFilterDialog } from './dialogs/dialog-modelfilter/dialog-modelfilter.component';\nimport { DialogNotesComponent } from './dialogs/dialog-notes/dialog-notes.component';\nimport { DialogSettingsComponent, OpenSettingsDialogDirective } from './dialogs/dialog-settings/dialog-settings.component';\nimport { DialogTeamFilterComponent } from './dialogs/dialog-teamfilter/dialog-teamfilters.component';\nimport { OpenTeamFilterDialogDirective } from './dialogs/dialog-teamfilter/dialog-teamfilters.directive';\nimport { AccountService } from './services/account.service';\nimport { DismissPopupService } from './services/dimissPopupService';\nimport { ExportService } from './services/exportService';\nimport { FactorService } from './services/factorService';\nimport { TermsService } from './services/terms.service';\nimport { TrendService } from './services/trend.service';\nimport { UserProfileService } from './services/userProfile.service';\nimport { ResultIndicatorComponent } from './components/result-indicator/result-indicator.component';\nimport { FactorInformationDialogModule } from '../dialogs/dialog-factorinformation/dialog-factorinformation.module';\nimport { OpenNotesDialogDirective } from './dialogs/dialog-notes/dialog-notes.directive';\nimport { ArrowUpdateService } from './components/arrow/ArrowUpdateService';\nimport { OverlayModule } from '@angular/cdk/overlay';\n\n@NgModule({\n imports: [\n ClipboardModule,\n NgxChartsModule,\n SlugifyPipeModule,\n MatDialogModule,\n MatTooltipModule,\n MatNativeDateModule,\n RouterModule,\n FormsModule,\n ReactiveFormsModule,\n MatOptionModule,\n MatInputModule,\n OverlayModule, \n MatSlideToggleModule,\n BrandingModule,\n MatSelectModule,\n MatProgressSpinnerModule,\n MatDatepickerModule,\n DateRangePipeModule,\n ActionsModule,\n CommonModule,\n DialogSupportModule,\n DialogSubscribeModule,\n ResourceDownloadModule,\n LoadingModule,\n FactorInformationDialogModule,\n GuidesModule],\n declarations: [\n ArrowComponent,\n DeltaArrowComponent,\n BenchmarkIndicatorComponent,\n ResultIndicatorComponent,\n FocusAreasComponent,\n ImpactIndicatorComponent,\n AgeIndicatorComponent,\n RoadmapComponent,\n TryNowProfessionalComponent,\n QuickTipsComponent,\n RecommendationComponent,\n RecommendationsComponent,\n ModelSwitcherComponent,\n ResearchComponent,\n DoItYourselfWorkshopsComponent,\n DoItYourselfComponent,\n FooterComponent,\n DialogSettingsComponent,\n NavButtonComponent,\n TermsUpdatedComponent,\n OpenSettingsDialogDirective,\n WidgetFactorScoreComponent,\n WidgetParticipationRateComponent,\n TeamEffectivenessComponent,\n DialogExportFactorScoresComponent,\n OpenExportFactorScoresDialogDirective,\n DialogExportTeamListComponent,\n OpenExportTeamListDialogDirective,\n DialogTeamFilterComponent,\n OpenTeamFilterDialogDirective,\n FactorAxisComponent,\n TipBadgeComponent,\n DialogNotesComponent,\n FilterTagsComponent,\n LimitationsApplyComponent,\n OpenNotesDialogDirective,\n FactorsComponent,\n TrendsComponent,\n BadgeComponent,\n BadgesComponent,\n BadgeStreakComponent,\n UpdateInProgressComponent,\n DialogModelFilterComponent,\n OpenModelFilterDialog,\n BadgeProgressionComponent,\n ParticipantsComponent,\n VideoComponent,\n UserProfileComponent],\n exports: [\n ArrowComponent,\n DeltaArrowComponent,\n BenchmarkIndicatorComponent,\n TryNowProfessionalComponent,\n ResultIndicatorComponent,\n AgeIndicatorComponent,\n FocusAreasComponent,\n ImpactIndicatorComponent,\n VideoComponent,\n QuickTipsComponent,\n RoadmapComponent,\n TermsUpdatedComponent,\n FooterComponent,\n NavButtonComponent,\n RecommendationComponent,\n ModelSwitcherComponent,\n RecommendationsComponent,\n FilterTagsComponent,\n DoItYourselfWorkshopsComponent,\n ResearchComponent,\n LimitationsApplyComponent,\n DoItYourselfComponent,\n DialogSettingsComponent,\n OpenSettingsDialogDirective,\n TeamEffectivenessComponent,\n WidgetFactorScoreComponent,\n WidgetParticipationRateComponent,\n DialogExportFactorScoresComponent,\n UpdateInProgressComponent,\n OpenExportFactorScoresDialogDirective,\n DialogExportTeamListComponent,\n OpenNotesDialogDirective,\n OpenExportTeamListDialogDirective,\n OpenTeamFilterDialogDirective,\n DialogModelFilterComponent,\n OpenModelFilterDialog,\n TipBadgeComponent,\n FactorsComponent,\n BadgesComponent,\n DialogModelFilterComponent,\n OpenModelFilterDialog,\n TrendsComponent,\n BadgeComponent,\n BadgeProgressionComponent,\n BadgeStreakComponent,\n ParticipantsComponent,\n UserProfileComponent\n ],\n providers: [\n ExportService,\n UserProfileService,\n TermsService,\n DismissPopupService,\n FactorService,\n TrendService,\n AccountService,\n ArrowUpdateService\n ]\n})\nexport class ResultsModule { }\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { DateRangePipeModule } from '../../pipes/dateRange/ngx-dateRange.module';\nimport { ModelCanvasComponent } from './model-canvas/model-canvas.component';\nimport { ModelFactorBenchmarkComponent } from './model-factor-benchmark/model-factor-benchmark.component';\nimport { ModelFactorCoreComponent } from './model-factor-core/model-factor-core.component';\nimport { ModelFactorIndicatorComponent } from './model-factor-indicator/model-factor-indicator.component';\nimport { RouterModule } from '@angular/router';\nimport { ResultsModule } from '../../results/results.module';\nimport { FactorInformationDialogModule } from '../../dialogs/dialog-factorinformation/dialog-factorinformation.module';\nimport { ProgressbarModule } from '../progressbar/progressbar.module';\nimport { ModelFactorMetricComponent } from './model-factor-metric/model-factor-metric.component';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { DialogSubscribeModule } from '../../dialogs/dialog-subscribe/dialog-subscribe.module';\nimport { DialogIntegrationComponent, OpenIntegrationDialogDirective } from './dialog-integration/dialog-integration.component';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { ModelFactorBreakdownComponent } from './model-factor-breakdown/model-factor-breakdown.component';\nimport { SlugifyPipeModule } from '../../pipes/slugify/ngx-slugify.module';\nimport { OverlayModule } from '@angular/cdk/overlay';\n\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n RouterModule,\n ResultsModule,\n FactorInformationDialogModule,\n ProgressbarModule,\n MatTooltipModule,\n SlugifyPipeModule,\n DialogSubscribeModule,\n MatFormFieldModule,\n ReactiveFormsModule,\n DateRangePipeModule,\n OverlayModule, \n MatDialogModule],\n declarations: [\n ModelCanvasComponent,\n ModelFactorMetricComponent,\n ModelFactorIndicatorComponent,\n ModelFactorCoreComponent,\n ModelFactorBenchmarkComponent,\n ModelFactorBreakdownComponent,\n OpenIntegrationDialogDirective,\n DialogIntegrationComponent],\n exports: [\n ModelCanvasComponent,\n ModelFactorMetricComponent,\n ModelFactorIndicatorComponent,\n ModelFactorCoreComponent,\n ModelFactorBreakdownComponent,\n ModelFactorBenchmarkComponent,\n OpenIntegrationDialogDirective,\n DialogIntegrationComponent]\n})\nexport class ModelVisualizationModule { }\n\n","export class ResetPasswordRequestDto {\n email: string;\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ApiConfig } from '../../apiUrlToken';\nimport { ResetPasswordRequestDto } from './resetPasswordRequestDto.model';\n\n@Injectable()\nexport class AccountService {\n constructor(private http: HttpClient, @Inject(ApiConfig) private config: ApiConfig) { }\n\n sendResetPassword(email: string): Observable<any> {\n var request = new ResetPasswordRequestDto();\n request.email = email;\n return this.http.post(this.config.get().apiUrl + 'account/resetpassword/', request);\n }\n\n getManageUrl(): Observable<any> {\n return this.http.post(this.config.get().apiUrl + 'subscriptions/managesession/', null);\n }\n}\n","import { Component, Directive, HostListener, Inject } from '@angular/core';\nimport { MatDialog, MatDialogConfig, MatDialogRef } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { AuthService } from '@auth0/auth0-angular';\nimport { ComponentWithViewStateBase } from '../../componentWithViewStateBase';\nimport { IResultsState } from '../../results/interfaces/IResultsState';\nimport { ViewModelStateBase, VIEWSTATE_PROVIDER } from '../../viewModel/viewModelState.service';\nimport { AccountService } from './account.service';\n\n@Component({\n templateUrl: './dialog-account.component.html',\n styleUrls: ['./dialog-account.component.less'],\n standalone: false\n})\nexport class DialogAccountComponent extends ComponentWithViewStateBase<IResultsState> {\n public subscriptionKey: string;\n public userName: string;\n public loading: boolean;\n public isAdmin: boolean;\n public email: string;\n\n constructor(private authService: AuthService, protected snackBar: MatSnackBar, private accountService: AccountService, public dialogRef: MatDialogRef<DialogAccountComponent>, @Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IResultsState>) {\n super(state, snackBar);\n }\n\n ngOnInit() {\n this.authService.user$.subscribe(\n (profile) => {\n this.email = profile.email;\n });\n\n super.ngOnInit();\n }\n\n public async redirectToPortal() {\n await this.authService.loginWithPopup({ authorizationParams: { max_age: 1 } }).subscribe(success => {\n this.accountService.getManageUrl().subscribe(success => {\n window.location.href = success.url;\n }, error => {\n });\n });\n }\n\n public sendPasswordReset() {\n this.loading = true;\n this.accountService.sendResetPassword(this.email).subscribe(\n success => {\n this.loading = false;\n this.snackBar.open('Got it! We sent an e-mail to ' + this.email + ' to change your password', null, { duration: 3000 });\n setTimeout(() => {\n }, 2000);\n });\n }\n\n signout() {\n this.authService.logout();\n }\n\n protected onDataUpdate(data: IResultsState) {\n this.isAdmin = data.userInfo.isAdmin;\n this.subscriptionKey = data.userInfo.client.publicKey;\n this.userName = data.userInfo.profile.name;\n }\n}\n\n@Directive({\n selector: '[accountDialog]',\n standalone: false\n})\nexport class OpenAccountDialogDirective {\n constructor(private dialog: MatDialog) {\n }\n\n @HostListener('click')\n onClick(): void {\n const dialogConfig = new MatDialogConfig();\n dialogConfig.panelClass = ['dialog', 'account'];\n dialogConfig.autoFocus = false;\n dialogConfig.enterAnimationDuration = 0;\n dialogConfig.exitAnimationDuration = 0;\n this.dialog.open(DialogAccountComponent, dialogConfig);\n }\n}\n","<div class=\"dialog-header\">\n <h1 mat-dialog-title>{{userName}}<span class=\"email\">{{email}}</span></h1>\n <div class=\"close\" mat-dialog-close><i class=\"responsive icon ph-x-bold\"></i></div>\n</div>\n<mat-dialog-content>\n <hr />\n <ul>\n <li><a href=\"javascript:void(null);\" (click)=\"sendPasswordReset()\" mat-dialog-close id=\"account-passwordreset\">Send email to change password</a></li>\n <li>@if (isAdmin) {\n <a href=\"javascript:void(null);\" (click)=\"redirectToPortal()\" mat-dialog-close>Subscription & invoices (admins only) <span class=\"icon ph-arrow-square-out\"></span></a>\n }</li>\n <li><a href=\"javascript:void(null);\" (click)=\"signout();\">Sign out</a></li>\n </ul>\n</mat-dialog-content>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { AccountService } from './account.service';\nimport { DialogAccountComponent, OpenAccountDialogDirective } from './dialog-account.component';\n\n@NgModule({\n imports: [MatDialogModule, CommonModule],\n declarations: [DialogAccountComponent, OpenAccountDialogDirective],\n exports: [DialogAccountComponent, OpenAccountDialogDirective],\n providers: [AccountService]\n})\nexport class DialogAccountModule { }\n","import { Location } from '@angular/common'\nimport { Directive, HostListener } from '@angular/core'\nimport { Route, Router } from '@angular/router'\n\n@Directive({\n selector: '[backButton]',\n standalone: false\n})\nexport class BackButtonDirective {\n constructor(private location: Location, private router: Router) {\n }\n\n @HostListener('click')\n onClick(): void {\n var isErrorPage = this.location.path().indexOf(\"error\") > 0;\n\n if (window.history.length > 2 && isErrorPage) {\n this.location.historyGo(-2);\n }\n else if (window.history.length > 1 && !isErrorPage) {\n this.location.back();\n }\n else {\n this.router.navigate(['/']);\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { BackButtonDirective } from './backbutton.directive';\n\n@NgModule({\n providers: [Location, BackButtonDirective],\n declarations: [BackButtonDirective],\n exports: [BackButtonDirective]\n})\nexport class BackButtonDirectiveModule {}\n","import { Directive, HostListener, inject } from '@angular/core';\nimport { MatTooltip } from '@angular/material/tooltip';\n\n@Directive({\n selector: '[matTooltip]',\n standalone: true,\n})\nexport class ClickableTooltipDirective {\n\n private matTooltip = inject(MatTooltip);\n\n @HostListener('click')\n onClick() {\n this.matTooltip.toggle();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, Router, UrlTree } from '@angular/router';\nimport { Observable } from 'rxjs';\n\n@Injectable()\nexport class ValidChangeTokenGuard implements CanActivate {\n constructor(private router: Router) { }\n\n canActivate(route: ActivatedRouteSnapshot): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {\n if (!route.params.changeToken) { return; }\n var valid = route.params.changeToken.length >= 100 && route.params.changeToken.length <= 300;\n\n if (!valid) {\n console.log(\"Invalid changetoken provided. Should be at least 100 characters.\");\n return this.router.parseUrl('/');\n }\n else {\n return true;\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot, UrlTree } from '@angular/router';\nimport { Observable } from 'rxjs';\n\n@Injectable()\nexport class ValidKeyGuard implements CanActivate {\n constructor(private router: Router) { }\n\n canActivate(route: ActivatedRouteSnapshot): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {\n if (!route.params.key) { return; }\n var valid = route.params.key.length >= 18 && route.params.key.length <= 80;\n\n if (!valid) {\n return this.router.parseUrl('/');\n }\n else {\n return true;\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, Router, UrlTree } from '@angular/router';\nimport { Observable } from 'rxjs';\n\n@Injectable()\nexport class ValidKeySnapshotKeyGuard implements CanActivate {\n constructor(private router: Router) { }\n\n canActivate(route: ActivatedRouteSnapshot): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {\n if (!route.params.snapshotKey) { return; }\n var valid = route.params.snapshotKey.length >= 18 && route.params.snapshotKey.length <= 50;\n\n if (!valid) {\n console.log(\"Invalid snapshotKey provided. Should be at least 18 characters.\");\n return this.router.parseUrl('/');\n }\n else {\n return true;\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot, UrlTree } from '@angular/router';\nimport { Observable } from 'rxjs';\n\n@Injectable()\nexport class ValidKeyTeamKeyGuard implements CanActivate {\n constructor(private router: Router) { }\n\n canActivate(route: ActivatedRouteSnapshot): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {\n if (!route.params.teamKey) { return; }\n var valid = route.params.teamKey.length >= 18 && route.params.teamKey.length <= 50;\n\n if (!valid) {\n console.log(\"Invalid teamKey provided. Should be at least 18 characters.\");\n return this.router.parseUrl('/');\n }\n else {\n return true;\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { ValidChangeTokenGuard } from './validChangeTokenGuard';\nimport { ValidKeyGuard } from './validKeyGuard';\nimport { ValidKeySnapshotKeyGuard } from './validSnapshotKeyGuard';\nimport { ValidKeyTeamKeyGuard } from './validTeamKeyGuard';\n\n@NgModule({\n declarations: [],\n exports: [],\n providers: [\n ValidKeySnapshotKeyGuard,\n ValidKeyTeamKeyGuard,\n ValidChangeTokenGuard,\n ValidKeyGuard\n ]\n})\nexport class GuardsModule { }\n","export class ErrorDto {\n constructor() {\n this.details = [];\n }\n\n error: string;\n url: string;\n userAgent: string;\n stackTrace: string;\n serverStackTrace: string;\n details: ErrorDetailDto[];\n loggingSeverity: LoggingSeverityEnum;\n}\n\nexport class ApiErrorDto {\n code: number;\n type: string;\n message: string;\n stack: string;\n loggingSeverity: LoggingSeverityEnum;\n}\n\nexport class ErrorDetailDto {\n type: string;\n value: any;\n}\n\nexport enum LoggingSeverityEnum {\n information = 0,\n warning = 1,\n exception = 2\n}\n","import { Inject, Injectable, InjectionToken, Optional } from '@angular/core';\n\nexport class ErrorServiceConfigDto {\n errorSink: boolean;\n endpoint: string;\n enabled: boolean;\n}\n\nexport const ErrorConfigToken = new InjectionToken<ErrorServiceConfigDto>(\n 'errorsink-angular.config'\n);\n\n@Injectable({ providedIn: 'root' })\nexport class ErrorServiceConfig {\n private config?: ErrorServiceConfigDto;\n\n constructor(@Optional() @Inject(ErrorConfigToken) config?: ErrorServiceConfigDto) {\n if (config) {\n this.set(config);\n }\n }\n\n set(config: ErrorServiceConfigDto): void {\n this.config = config;\n }\n\n get(): ErrorServiceConfigDto {\n var config = this.config as ErrorServiceConfigDto;\n if (!config) { config = new ErrorServiceConfigDto(); }\n return config;\n }\n}\n","import { HttpClient, HttpErrorResponse } from \"@angular/common/http\";\nimport { ErrorHandler, Inject, Injectable, NgZone } from \"@angular/core\";\nimport { Router } from \"@angular/router\";\nimport { ApiErrorDto, ErrorDto, LoggingSeverityEnum } from \"./error.model\";\nimport { ErrorServiceConfig } from \"./errorServiceConfig\";\n\n@Injectable()\nexport class FrontAndBackendErrorHandler implements ErrorHandler { constructor(private router: Router, private zone: NgZone, private http: HttpClient, @Inject(ErrorServiceConfig) private config: ErrorServiceConfig) {\n }\n\n handleError(originError: any) {\n if (!this.config.get().enabled) {\n throw originError;\n }\n\n var dto = new ErrorDto();\n dto.url = window.location.href;\n dto.loggingSeverity = LoggingSeverityEnum.information;\n dto.userAgent = window.navigator.userAgent;\n if (originError instanceof HttpErrorResponse) {\n // handle HTTP errors\n switch (originError.status) {\n case 401:\n case 403:\n this.zone.run(() => this.router.navigate(['/unauthorized'], { queryParams: { error: dto.error } }));\n dto.error = originError.message;\n break;\n case 404:\n dto.error = originError.message;\n break;\n case 400:\n case 500:\n if (Object.keys(originError.error).includes(\"type\")) {\n // error returned by API\n var apiError = originError.error as ApiErrorDto;\n dto.error = apiError.message;\n dto.serverStackTrace = apiError.stack;\n dto.loggingSeverity = apiError.loggingSeverity;\n }\n else {\n // other kind of HTTP server error\n dto.error = originError.error ?? originError.message;\n dto.loggingSeverity = LoggingSeverityEnum.exception;\n }\n this.zone.run(() => this.router.navigate(['/error'], { queryParams: { error: dto.error } }));\n break;\n }\n }\n else if (originError instanceof Error) {\n // script error raised by Angular\n dto.loggingSeverity = LoggingSeverityEnum.exception;\n dto.stackTrace = originError.stack;\n dto.error = originError.message;\n this.zone.run(() => this.router.navigate(['/error'], { queryParams: { error: dto.error } }));\n }\n else {\n // some other error\n dto.loggingSeverity = LoggingSeverityEnum.exception;\n dto.error = JSON.stringify(originError);\n this.zone.run(() => this.router.navigate(['/error'], { queryParams: { error: dto.error } }));\n }\n\n switch (dto.loggingSeverity) {\n case LoggingSeverityEnum.exception:\n console.error(dto);\n break;\n case LoggingSeverityEnum.warning:\n console.warn(dto);\n break;\n default:\n console.info(dto);\n break;\n }\n\n if (this.config.get().errorSink) {\n this.http.post(this.config.get().endpoint, dto)\n .subscribe({\n next: () => { },\n error: () => {\n console.error(\"Failed to post error to ErrorSink at \" + this.config.get().endpoint + 'error', dto)\n }\n });\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\n\n@NgModule({\n imports: [\n RouterModule,\n CommonModule],\n declarations: [],\n exports: [],\n providers: [\n ]\n})\nexport class ErrorServiceModule { }\n","\nexport class ClientIntegrationSummaryDto {\n constructor() {\n this.metricKeys = [];\n }\n\n publicKey: string;\n name: string;\n description: string;\n documentationUrl: string;\n requireTeamMappings: boolean;\n requireUrl: boolean;\n requireSecret: boolean;\n hasCollectorUrl: boolean;\n metricKeys: string[];\n integrationKey: string;\n\n // clientintegration settings\n collectorUrl: string;\n isSetup: boolean;\n heartBeat: Date;\n isActive: boolean;\n}\n\nexport class ClientIntegrationListDto {\n constructor() {\n this.items = [];\n }\n\n items: ClientIntegrationSummaryDto[];\n}\n","export class ContextItemDto {\n constructor(key: string, value: string) {\n this.key = key;\n this.value = value;\n }\n\n key: string;\n value: string;\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'callback',\n pure: false,\n standalone: false\n})\nexport class CallbackPipe implements PipeTransform {\n transform<T>(items: any[], callback: (item: T) => boolean): T[] {\n if (!items || !callback) {\n return items;\n }\n return items.filter(item => callback(item));\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CallbackPipe } from './callback.pipe';\n\n@NgModule({\n providers: [CallbackPipe],\n declarations: [CallbackPipe],\n exports: [CallbackPipe]\n})\nexport class CallbackPipeModule {}\n","import { PipeTransform, Pipe } from '@angular/core';\nimport { SegmentEnum } from '../../models/modelStructureDto';\n\n@Pipe({\n name: 'segmentName',\n standalone: false\n})\nexport class SegmentNamePipe implements PipeTransform {\n constructor() {\n }\n\n transform(segment: SegmentEnum): string {\n if (segment == null) { return null }\n\n switch (segment) {\n case SegmentEnum.TeamMember:\n return \"team member\";\n case SegmentEnum.Stakeholder:\n return \"stakeholder\";\n case SegmentEnum.Management:\n return \"supporter\";\n default:\n return null;\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { SegmentNamePipe } from './segmentName.pipe';\n\n@NgModule({\n providers: [SegmentNamePipe],\n declarations: [SegmentNamePipe],\n exports: [SegmentNamePipe]\n})\nexport class SegmentNamePipeModule {}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'truncate',\n pure: false,\n standalone: false\n})\nexport class TruncatePipe implements PipeTransform {\n transform(value: string, limit: number = 200): string {\n if (!value || value.length <= limit) {\n return value;\n }\n\n const truncatedText = value.slice(0, limit + 50);\n const lastSpace = truncatedText.lastIndexOf(' ');\n\n return truncatedText.slice(0, lastSpace).replace(/[!,.?;:]$/, '') + '...';\n }\n}\n","import { NgModule } from '@angular/core';\nimport { TruncatePipe } from './truncate.pipe';\n\n@NgModule({\n providers: [TruncatePipe],\n declarations: [TruncatePipe],\n exports: [TruncatePipe]\n})\nexport class TruncatePipeModule {}\n","export class TrendDataSetDto {\n name: string;\n variables: VariableDto[];\n generatorNotes: string[];\n}\n\nexport class VariableDto {\n name: string;\n color: string;\n series: MeasurementDto[];\n}\n\nexport class MeasurementDto {\n name: string;\n value: number;\n min: number;\n max: number;\n}\n","export class DimensionResultDto {\n name: string;\n color: string;\n score: number;\n difference: number;\n}\n\n","export class LocalUserDto {\n avatarUrl: string;\n publicKey: string;\n email: string;\n name: string;\n isAdmin: boolean;\n requireSSO: boolean;\n requireMFA: boolean;\n noRemoteAccount: boolean;\n allowedTeamPublicKeys: string[];\n allowedTeamNames: string[];\n};\n","export class ParticipantDto {\n publicKey: string;\n obfuscatedEmail: string;\n started: Date;\n completed: Date;\n isInvitation: boolean;\n segment: string;\n confirmDelete: boolean;\n canDelete: boolean;\n progress: number;\n email: string;\n warnings: string[];\n};\n","import { SegmentEnum } from \"../../models/modelStructureDto\";\nimport { DimensionResultDto } from \"./dimensionResultDto\";\nimport { FactorScoreCollectionDto } from \"./factorScoreDto\";\nimport { ParticipantDto } from \"./participantDto.model\";\n\nexport class SnapshotDto {\n publicKey: string;\n closed: Date;\n started: Date;\n participants: number;\n reportUrl: string;\n inviteUrls: Record<SegmentEnum, string>;\n teamKey: string;\n limit: number;\n note: string;\n anonymized: boolean;\n progress: number;\n questionnaireType: string;\n scaleKeys: string[];\n participantList: ParticipantDto[];\n coreDimensions: DimensionResultDto[];\n factorScores: FactorScoreCollectionDto;\n notificationEmail: string;\n invitationGoal: number;\n};\n","export class SnapshotMetaDataDto {\n reportUrl: string;\n teamKey: string;\n publicKey: string;\n started: Date;\n closed: Date;\n inviteUrls: Record<string, string>;\n invitationGoal: number;\n}\n\nexport class InviteUrlDto {\n segment: string;\n value: string;\n}\n","import { KeyValueDto } from \"../../models/keyValueDto\";\nimport { BadgeDto } from \"./badgeDto\";\nimport { BenchmarkTypeEnum, InterventionSummaryDto } from \"./factorScoreDto\";\nimport { SnapshotDto } from \"./snapshotDto.model\";\n\nexport class TeamDto {\n publicKey: string;\n name: string;\n email: string;\n color: string;\n measurements: number;\n retakeUrl: string;\n managementUrl: string;\n snapshots: number;\n colorString: string;\n lowTrustMode: boolean;\n benchmark: BenchmarkTypeEnum;\n snapshotList: SnapshotDto[]\n badges: BadgeDto[];\n tags: string[];\n overlayTeamKeys: string[];\n interventionSummary: InterventionSummaryDto;\n improvementGoal: string;\n archived: boolean;\n metaData: KeyValueDto\n teamTraitKeys: string[];\n};\n","import { PaginatedResponse } from \"../../models/paginatedResponse\";\nimport { TeamDto } from \"./teamDto.model\";\n\nexport class TeamListResponseDto {\n teams: PaginatedResponse<TeamDto>;\n tags: string[];\n names: TeamNameAndKeyDto[];\n teamTraits: TeamTraitDto[];\n};\n\nexport class TeamNameAndKeyDto {\n name: string;\n publicKey: string;\n}\n\nexport class TeamTraitDto {\n key: string;\n name: string;\n}\n","\nexport class TeamMetaDataDto {\n name: string;\n notificationEmail: string;\n teamKey: string;\n isSubscribed: boolean;\n subscriptionTier: SubscriptionTierEnum;\n managementUrl: string;\n retakeUrl: string;\n lowTrustMode: boolean;\n pincode: string;\n improvementGoal: string;\n improvementGoals: SelectListItemApiDto[];\n teamTypes: SelectListItemApiDto[];\n reminderFrequencies: SelectListItemApiDto[];\n reminderDate: Date;\n notificationSettings: TeamNotificationSettingsDto;\n teamTraits: SelectListItemApiDto[];\n}\n\nexport enum SubscriptionTierEnum {\n Freemium = \"Freemium\",\n Professional = \"Professional\",\n Enterprise = \"Enterprise\"\n}\n\nexport abstract class SelectListItemApiDto {\n key: string;\n name: string;\n selected: boolean;\n}\n\nexport class TeamNotificationSettingsDto {\n newParticipant: boolean;\n repeat: boolean;\n actionDue: boolean;\n recommendations: boolean;\n}\n","import { PaginatedResponse } from \"../../models/paginatedResponse\";\nimport { LocalUserDto } from \"./localUserDto.model\";\n\nexport class UserListResponseDto {\n users: PaginatedResponse<LocalUserDto>;\n externalUsers: UserNameAndKeyDto[];\n};\n\nexport class UserNameAndKeyDto {\n name: string;\n publicKey: string;\n avatarUrl: string;\n}\n","import { PointDto, QualificationEnum } from \"./factorScoreDto\";\n\nexport class ParticipationRateDto {\n percentage: number;\n upperConfidence: number;\n lowerConfidence: number;\n points: PointDto[];\n qualification: QualificationEnum;\n}\n","import { Inject, Injectable, InjectionToken, Optional } from '@angular/core';\n\nexport class ResultsClientDto {\n}\n\nexport const ResultsConfigToken = new InjectionToken<ResultsClientDto>(\n 'results-angular.config'\n);\n\n@Injectable({ providedIn: 'root' })\nexport class ResultsClientConfig {\n private config?: ResultsClientDto;\n\n constructor(@Optional() @Inject(ResultsConfigToken) config?: ResultsClientDto) {\n if (config) {\n this.set(config);\n }\n }\n\n set(config: ResultsClientDto): void {\n this.config = config;\n }\n\n get(): ResultsClientDto {\n return this.config as ResultsClientDto;\n }\n}\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\nexport function domainValidator(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n var domain = control.value;\n if (!domain) { return null; }\n var regEx = new RegExp(\"^([A-Za-z0-9-]{1,100}\\\\.){0,1}[A-Za-z0-9-]{1,100}\\\\.[A-Za-z0-9-]{1,20}$\", \"gmi\");\n if (!regEx.test(domain)) {\n return { invaliddomain: true }\n }\n return null;\n }\n}\n\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\n\nexport function httpsHostValidator(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n const value = control.value;\n\n if (!value) {\n return null;\n }\n\n // Regex to match a valid HTTPS URL with a proper hostname (no IPs or paths required)\n const httpsUrlRegex = /^https:\\/\\/([a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,}(\\/.*)?$/;\n\n const isValid = httpsUrlRegex.test(value.trim());\n return isValid ? null : { invalidHttpsHost: true };\n };\n}\n","import { AbstractControl, FormGroup, ValidationErrors, ValidatorFn } from '@angular/forms';\nexport function compareInputValidator(compare1: string, compare2: string): ValidatorFn {\n return (formGroup: FormGroup): ValidationErrors | null => {\n const control1 = formGroup.get(compare1);\n const control2 = formGroup.get(compare2);\n\n if (control1 == null || control2 == null) { return null; }\n if (!control1.dirty) { return null; }\n\n var value1 = control1.value;\n var value2 = control2.value;\n if (value1 == \"\") { value1 = null; }\n if (value2 == \"\") { value2 = null; }\n\n if (value1 != value2) {\n return { nomatch: true };\n }\n\n return null;\n }\n}\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\nexport function maxSelectedValidator(maximum: number): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n if (control.value && control.value.length > maximum) {\n return { maxSelected: true }\n }\n return null;\n }\n}\n","import { BehaviorSubject, Observable } from 'rxjs';\nimport { ContextItemDto } from '../models/contextItemDto';\nimport { UserInfoDto } from '../models/userInfoDto';\nimport { ChannelDto } from '../models/channelDto';\n\nexport interface IAggregateRootSource {\n subscribe<T extends IViewState>(): Observable<T>;\n reloadable(): boolean;\n type(): LoadModes;\n unsubscribe(): void;\n}\n\nexport interface IReloadStrategy {\n subscribe(): void;\n isConnected(): boolean;\n unsubscribe(): void;\n reload: BehaviorSubject<boolean>;\n}\n\nexport enum LoadModes {\n Pull,\n Push\n}\n\nexport interface IViewState {\n loaded: boolean;\n context: ContextItemDto[];\n userInfo: UserInfoDto;\n channel: ChannelDto;\n}\n\nexport interface IAggregateRootStreamFactory {\n get(): IAggregateRootSource;\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { IReloadStrategy } from '../interfaces';\n\n@Injectable({ providedIn: 'root' })\nexport class NoReloadStrategy implements IReloadStrategy {\n public reload = new BehaviorSubject<boolean>(null);\n\n constructor() {\n }\n\n public subscribe() {\n }\n\n public isConnected() {\n return false;\n }\n\n public unsubscribe(): void {\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class SessionIdProvider {\n public sessionId: string;\n\n constructor() {\n this.sessionId = this.randomString(30);\n }\n\n private randomString(length) {\n var randomChars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n var result = '';\n\n for (var i = 0; i < length; i++) {\n result += randomChars.charAt(Math.floor(Math.random() * randomChars.length));\n }\n\n return result;\n }\n}\n","import { Inject, Injectable, NgZone } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { ApiConfig } from '../../apiUrlToken';\nimport { IReloadStrategy } from '../interfaces';\nimport { SessionIdProvider } from '../services/sessionIdProvider.service';\n\n@Injectable({ providedIn: 'root' })\nexport class ReloadOnPushStrategy implements IReloadStrategy {\n private baseUrl: string;\n private eventSource: EventSource;\n private sessionId: string;\n public reload = new BehaviorSubject<boolean>(null);\n\n constructor(private zone: NgZone, @Inject(ApiConfig) private config: ApiConfig, private sessionIdProvider: SessionIdProvider) {\n this.baseUrl = config.get().apiUrl;\n this.sessionId = this.sessionIdProvider.sessionId;\n }\n\n public subscribe() {\n var url = this.baseUrl + \"push/\" + this.sessionId;\n if (this.eventSource != null && this.eventSource.readyState != EventSource.CLOSED) { return; }\n\n this.eventSource = new EventSource(url);\n\n this.eventSource.onmessage = event => {\n this.zone.run(() => {\n var object = JSON.parse(event.data);\n this.reload.next(object);\n });\n };\n\n this.eventSource.onerror = error => {\n this.zone.run(() => {\n console.log(\"Error occured while streaming from event source for session \" + this.sessionId + \".\", error);\n });\n }\n }\n\n public isConnected() {\n return this.eventSource != null && this.eventSource.readyState == EventSource.OPEN;\n }\n\n public unsubscribe(): void {\n if (this.eventSource) {\n this.eventSource.close();\n }\n }\n}\n","import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ApiConfig } from '../../apiUrlToken';\nimport { SessionIdProvider } from './sessionIdProvider.service';\n\n// This interceptor adds a unique sessionId for a user. This sessionId is also passed along with async commands.\n@Injectable()\nexport class SessionIdInterceptor implements HttpInterceptor {\n private sessionId: string;\n\n constructor(@Inject(ApiConfig) private config: ApiConfig, private sessionIdProvider: SessionIdProvider) {\n this.sessionId = this.sessionIdProvider.sessionId;\n }\n\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n const isApiUrl = request.url.startsWith(this.config.get().apiUrl);\n if (isApiUrl) {\n request = request.clone({\n setHeaders: { \"SessionId\": this.sessionId }\n });\n }\n return next.handle(request);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { NoReloadStrategy } from './reloadStrategies/noReloadStrategy';\nimport { ReloadOnPushStrategy } from './reloadStrategies/reloadOnPushStrategy';\nimport { SessionIdInterceptor } from './services/sessionIdInterceptor.service';\nimport { SessionIdProvider } from './services/sessionIdProvider.service';\n\n@NgModule({\n imports: [],\n declarations: [\n ],\n exports: [\n ],\n providers: [\n SessionIdInterceptor,\n SessionIdProvider,\n ReloadOnPushStrategy,\n NoReloadStrategy\n ]\n})\nexport class ViewModelStateModule { }\n","import { Inject, Injectable, InjectionToken, Optional } from '@angular/core';\n\nexport class ViewModelStateConfigDto {\n}\n\nexport const ViewModelStateConfigToken = new InjectionToken<ViewModelStateConfigDto>(\n 'viewmodelstate-angular.config'\n);\n\n@Injectable({ providedIn: 'root' })\nexport class ViewModelStateConfig {\n private config?: ViewModelStateConfigDto;\n\n constructor(@Optional() @Inject(ViewModelStateConfigToken) config?: ViewModelStateConfigDto) {\n if (config) {\n this.set(config);\n }\n }\n\n set(config: ViewModelStateConfigDto): void {\n this.config = config;\n }\n\n get(): ViewModelStateConfigDto {\n return this.config as ViewModelStateConfigDto;\n }\n}\n","/*\n * Public API Surface of ngx-scrumteamsurvey-tools\n */\n\nexport * from './lib/actions/actions.module';\nexport * from './lib/actions/components/action-list/action-list.component';\nexport * from './lib/actions/components/action-manage/action-manage.component';\nexport * from './lib/actions/components/action-tile/action-tile.component';\nexport * from './lib/actions/dialogs/dialog-export-actions/dialog-export-actions.component';\nexport * from './lib/actions/dialogs/dialog-export-actions/dialog-export-actions.directive';\nexport * from './lib/actions/dialogs/dialog-filters/dialog-filters.component';\nexport * from './lib/actions/dialogs/dialog-manageaction/dialog-manageaction.component';\nexport * from './lib/actions/interfaces/IActionState';\nexport * from './lib/actions/models/actionDto';\nexport * from './lib/actions/models/actionOptionsDto';\nexport * from './lib/actions/models/actionPrefillDto';\nexport * from './lib/actions/models/actionResponseDto';\nexport * from './lib/actions/models/exportRequestDto';\nexport * from './lib/actions/pipes/interventionOwnerToString.pipe';\nexport * from './lib/actions/pipes/interventionStateToString.pipe';\nexport * from './lib/actions/pipes/interventionTypeToString.pipe';\nexport * from './lib/actions/services/actionClientConfig';\nexport * from './lib/actions/services/actionService';\nexport * from './lib/add-calendar/ng-add-to-calendar.module';\nexport * from './lib/alerts/alerts.module';\nexport * from './lib/alerts/components/alerts-list/alerts.component';\nexport * from './lib/alerts/components/dialog-alerts/dialog-alerts.component';\nexport * from './lib/alerts/components/dialog-alerts/dialog-alerts.directive';\nexport * from './lib/alerts/components/alert-announcement/alert-announcement.component';\nexport * from './lib/alerts/interfaces/IAlertState';\nexport * from './lib/alerts/services/dismissedAlerts.service';\nexport * from './lib/alerts/models/alertDto.model';\nexport * from './lib/alerts/models/alertFilterDto.model';\nexport * from './lib/alerts/models/alertResponseDto.model';\nexport * from './lib/alerts/models/dismissAlertRequestDto.model';\nexport * from './lib/alerts/services/alertClientConfig';\nexport * from './lib/alerts/services/alerts.service';\nexport * from './lib/apiUrlToken';\nexport * from './lib/branding/brandBackground.directive';\nexport * from './lib/branding/brandConditionalBackgroundColor.directive';\nexport * from './lib/branding/brandConditionalColor.directive';\nexport * from './lib/branding/brandHoverColor.directive';\nexport * from './lib/branding/branding.module';\nexport * from './lib/branding/brandingProvider.service';\nexport * from './lib/branding/components/site-default-footer/site-default-footer.component';\nexport * from './lib/branding/components/site-default-header/site-default-header.component';\nexport * from './lib/branding/components/site-micro-footer/site-micro-footer.component';\nexport * from './lib/componentBase';\nexport * from './lib/componentWithViewStateBase';\nexport * from './lib/components/checkbox/checkbox.component';\nexport * from './lib/components/checkbox/checkbox.module';\nexport * from './lib/components/expand/expand.component';\nexport * from './lib/components/expand/expand.module';\nexport * from './lib/components/loading/loading.component';\nexport * from './lib/components/loading/loading.module';\nexport * from './lib/components/mat-tags/mat-tags.component';\nexport * from './lib/components/mat-tags/mat-tags.module';\nexport * from './lib/components/metadata-input/metadata-input.component';\nexport * from './lib/components/metadata-input/metadata-input.module';\nexport * from './lib/components/multi-email-input/multi-email-input.component';\nexport * from './lib/components/multi-email-input/multi-email-input.module';\nexport * from './lib/components/paginator/paginator.component';\nexport * from './lib/components/paginator/paginator.module';\nexport * from './lib/components/quantity-selector/quantity-selector.component';\nexport * from './lib/components/quantity-selector/quantity-selector.module';\nexport * from './lib/components/select-list/select-list.component';\nexport * from './lib/components/select-list/select-list.module';\nexport * from './lib/components/snapshot-inviteurls/snapshot-inviteurls.component';\nexport * from './lib/components/snapshot-inviteurls/snapshot-inviteurls.module';\nexport * from './lib/components/tabnavigator/tabnavigator.component';\nexport * from './lib/components/tabnavigator/tabnavigator.module';\nexport * from './lib/components/topicselector/customCheckValidator';\nexport * from './lib/components/topicselector/minTopicsSelectedValidator';\nexport * from './lib/components/topicselector/topic-selector.component';\nexport * from './lib/components/topicselector/topic-selector.module';\nexport * from './lib/components/progressbar/progressbar.component';\nexport * from './lib/components/progressbar/progressbar.module';\nexport * from './lib/components/model-visualization/model-visualization.module';\nexport * from './lib/components/model-visualization/model-canvas/model-canvas.component';\nexport * from './lib/components/model-visualization/model-factor-metric/model-factor-metric.component';\nexport * from './lib/components/model-visualization/model-factor-benchmark/model-factor-benchmark.component';\nexport * from './lib/components/model-visualization/model-factor-core/model-factor-core.component';\nexport * from './lib/components/model-visualization/model-factor-indicator/model-factor-indicator.component';\nexport * from './lib/components/model-visualization/model-factor-breakdown/model-factor-breakdown.component';\nexport * from './lib/components/model-visualization/dialog-integration/dialog-integration.component';\nexport * from './lib/dialogs/dialog-account/account.service';\nexport * from './lib/dialogs/dialog-account/dialog-account.component';\nexport * from './lib/dialogs/dialog-account/dialog-account.module';\nexport * from './lib/dialogs/dialog-account/resetPasswordRequestDto.model';\nexport * from './lib/dialogs/dialog-factorinformation/dialog-factorinformation.component';\nexport * from './lib/dialogs/dialog-factorinformation/dialog-factorinformation.module';\nexport * from './lib/dialogs/dialog-resourcedownload/dialog-resourcedownload.component';\nexport * from './lib/dialogs/dialog-resourcedownload/dialog-resourcedownload.module';\nexport * from './lib/dialogs/dialog-resourcedownload/resourceDownload.service';\nexport * from './lib/dialogs/dialog-subscribe/dialog-subscribe.component';\nexport * from './lib/dialogs/dialog-subscribe/dialog-subscribe.directive';\nexport * from './lib/dialogs/dialog-subscribe/dialog-subscribe.module';\nexport * from './lib/dialogs/dialog-support/contactDto';\nexport * from './lib/dialogs/dialog-support/contactService.service';\nexport * from './lib/dialogs/dialog-support/contactTypeDto';\nexport * from './lib/dialogs/dialog-support/dialog-support.component';\nexport * from './lib/dialogs/dialog-support/dialog-support.directive';\nexport * from './lib/dialogs/dialog-support/dialog-support.module';\nexport * from './lib/directives/backbutton/backbutton.directive';\nexport * from './lib/directives/backbutton/backbutton.module';\nexport * from './lib/directives/clickableTooltip/clickableTooltip.directive';\nexport * from './lib/directives/guards/guards.module';\nexport * from './lib/directives/guards/validChangeTokenGuard';\nexport * from './lib/directives/guards/validKeyGuard';\nexport * from './lib/directives/guards/validSnapshotKeyGuard';\nexport * from './lib/directives/guards/validTeamKeyGuard';\nexport * from './lib/errorhandling/error.model';\nexport * from './lib/errorhandling/errorHandler';\nexport * from './lib/errorhandling/errorService.module';\nexport * from './lib/errorhandling/errorServiceConfig';\nexport * from './lib/guides/components/imageslider/imageslider.component';\nexport * from './lib/guides/components/resumeguidehover/resumeguidehover.component';\nexport * from './lib/guides/dialogs/dialog-guide/dialog-guide.component';\nexport * from './lib/guides/dialogs/dialog-guides/dialog-guides.component';\nexport * from './lib/guides/directives/startguide/startguide.directive';\nexport * from './lib/guides/guides.module';\nexport * from './lib/guides/models/guideCollectionDto';\nexport * from './lib/guides/services/guidePopup.service';\nexport * from './lib/guides/services/guideStateInBackEnd.service';\nexport * from './lib/guides/services/guideStateInBrowser.service';\nexport * from './lib/guides/services/guidesClientConfig';\nexport * from './lib/models/brandingSettingsDto';\nexport * from './lib/models/channelDto';\nexport * from './lib/models/clientInfoDto';\nexport * from './lib/models/integrationDto';\nexport * from './lib/models/contextItemDto';\nexport * from './lib/models/keyValueDto';\nexport * from './lib/models/modelStructureDto';\nexport * from './lib/models/paginatedResponse';\nexport * from './lib/models/pagingOptions';\nexport * from './lib/models/selectListItem';\nexport * from './lib/models/userInfoDto';\nexport * from './lib/models/userSettingsDto';\nexport * from './lib/pipes/callback/callback.module';\nexport * from './lib/pipes/callback/callback.pipe';\nexport * from './lib/pipes/dateRange/ngx-dateRange.module';\nexport * from './lib/pipes/dateRange/ngx-dateRange.pipe';\nexport * from './lib/pipes/dateRange/ngx-dateRangeDto.model';\nexport * from './lib/pipes/segmentName/segmentName.module';\nexport * from './lib/pipes/segmentName/segmentName.pipe';\nexport * from './lib/pipes/slugify/ngx-slugify.module';\nexport * from './lib/pipes/slugify/ngx-slugify.pipe';\nexport * from './lib/pipes/truncate/truncate.module';\nexport * from './lib/pipes/truncate/truncate.pipe';\nexport * from './lib/results/components/age-indicator/age-indicator.component';\nexport * from './lib/results/components/arrow/arrow.component';\nexport * from './lib/results/components/arrow/ArrowUpdateService';\nexport * from './lib/results/components/badge-progression/badge-progression.component';\nexport * from './lib/results/components/badge-streak/badge-streak.component';\nexport * from './lib/results/components/badge/badge.component';\nexport * from './lib/results/components/badges/badges.component';\nexport * from './lib/results/components/benchmark-indicator/benchmark-indicator.component';\nexport * from './lib/results/components/delta-arrow/delta-arrow.component';\nexport * from './lib/results/components/doityourself/doityourself.component';\nexport * from './lib/results/components/doityourselfworkshops/doityourselfworkshops.component';\nexport * from './lib/results/components/factor-axis/factor-axis.component';\nexport * from './lib/results/components/factors/factors.component';\nexport * from './lib/results/components/filter-tags/filter-tags.component';\nexport * from './lib/results/components/focusareas/focusareas.component';\nexport * from './lib/results/components/footer/footer.component';\nexport * from './lib/results/components/impact-indicator/impact-indicator.component';\nexport * from './lib/results/components/limitationsapply/limitationsapply.component';\nexport * from './lib/results/components/model-switcher/model-switcher.component';\nexport * from './lib/results/components/nav-button/nav-button.component';\nexport * from './lib/results/components/participants/participants.component';\nexport * from './lib/results/components/quicktips/quicktips.component';\nexport * from './lib/results/components/recommendation/recommendation.component';\nexport * from './lib/results/components/recommendations/recommendations.component';\nexport * from './lib/results/components/research/research.component';\nexport * from './lib/results/components/result-indicator/result-indicator.component';\nexport * from './lib/results/components/roadmap/roadmap.component';\nexport * from './lib/results/components/teameffectiveness/teameffectiveness.component';\nexport * from './lib/results/components/termsupdated/termsupdated.component';\nexport * from './lib/results/components/tip-badge/tip-badge.component';\nexport * from './lib/results/components/trends/trends.component';\nexport * from './lib/results/components/trynow-professional/trynow-professional.component';\nexport * from './lib/results/components/update-in-progress/update-in-progress.component';\nexport * from './lib/results/components/userprofile/userprofile.component';\nexport * from './lib/results/components/video/video.component';\nexport * from './lib/results/components/widget-factorscore/widget-factorscore.component';\nexport * from './lib/results/components/widget-participationrate/widget-participationrate.component';\nexport * from './lib/results/dialogs/dialog-export-factorscores/dialog-export-factorscores.component';\nexport * from './lib/results/dialogs/dialog-export-factorscores/dialog-export-factorscores.directive';\nexport * from './lib/results/dialogs/dialog-export-teamlist/dialog-export-teamlist.component';\nexport * from './lib/results/dialogs/dialog-export-teamlist/dialog-export-teamlist.directive';\nexport * from './lib/results/dialogs/dialog-modelfilter/dialog-modelfilter.component';\nexport * from './lib/results/dialogs/dialog-settings/dialog-settings.component';\nexport * from './lib/results/dialogs/dialog-teamfilter/dialog-teamfilters.component';\nexport * from './lib/results/dialogs/dialog-teamfilter/dialog-teamfilters.directive';\nexport * from './lib/results/dialogs/dialog-notes/dialog-notes.component';\nexport * from './lib/results/dialogs/dialog-notes/dialog-notes.directive';\nexport * from './lib/results/interfaces/IResultsState';\nexport * from './lib/results/models/badgeDto';\nexport * from './lib/results/models/dataSetDto';\nexport * from './lib/results/models/dimensionResultDto';\nexport * from './lib/results/models/exportRequestDto';\nexport * from './lib/results/models/factorScoreDto';\nexport * from './lib/results/models/localUserDto.model';\nexport * from './lib/results/models/participantDto.model';\nexport * from './lib/results/models/snapshotDto.model';\nexport * from './lib/results/models/snapshotMetaDataDto';\nexport * from './lib/results/models/teamDto.model';\nexport * from './lib/results/models/teamListResponseDto';\nexport * from './lib/results/models/teamMetaDataDto';\nexport * from './lib/results/models/trendDataRequestDto.model';\nexport * from './lib/results/models/userListResponseDto';\nexport * from './lib/results/models/widgetDataDto';\nexport * from './lib/results/results.module';\nexport * from './lib/results/services/dimissPopupService';\nexport * from './lib/results/services/factorService';\nexport * from './lib/results/services/resultsClientConfig';\nexport * from './lib/results/services/terms.service';\nexport * from './lib/results/services/trend.service';\nexport * from './lib/results/services/userProfile.service';\nexport * from './lib/validators/domainValidator';\nexport * from './lib/validators/httpsHostValidator';\nexport * from './lib/validators/matchInputValidator';\nexport * from './lib/validators/maxSelectedValidator';\nexport * from './lib/viewModel/interfaces';\nexport * from './lib/viewModel/reloadStrategies/noReloadStrategy';\nexport * from './lib/viewModel/reloadStrategies/reloadOnPushStrategy';\nexport * from './lib/viewModel/services/sessionIdInterceptor.service';\nexport * from './lib/viewModel/services/sessionIdProvider.service';\nexport * from './lib/viewModel/userSettings.service';\nexport * from './lib/viewModel/viewModelState.module';\nexport * from './lib/viewModel/viewModelState.service';\nexport * from './lib/viewModel/viewModelStateConfig';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i3","i1.ViewModelStateBase","i4","i6","i7","i8","i1","i2.ActionManageComponent","i5","i6.OpenEditActionDialogDirective","i7.InterventionTypeToStringPipe","i8.InterventionOwnerToStringPipe","i1.ActionService","i2.ActionService","i7.PaginatorComponent","i9","i10.ActionTileComponent","i11.OpenAddActionDialogDirective","i12.OpenActionFiltersDialogDirective","i13.OpenExportActionsDialogDirective","DATE_POCTUATION_REGEX","i3.AlertsComponent","i2.DismissedAlertsService","i1.BrandingProvider","i2.ContactService","i3.OpenReportBugDialogDirective","i3.OpenSupportDialogDirective","i2.BrandConditionalBackgroundColorDirective","i3.SlugifyPipe","i6.SlugifyPipe","i1.UserSettingService","i1.ArrowUpdateService","i2.ExportService","i4.OpenAddActionDialogDirective","i5.OpenSubscribeDialogDirective","i4.SlugifyPipe","i4.DeltaArrowComponent","i5.AgeIndicatorComponent","i6.QuickTipsComponent","i7.OpenFactorInformationDialogDirective","i8.OpenSubscribeDialogDirective","i10.ModelFactorBenchmarkComponent","i11.ModelFactorBreakdownComponent","i12.OpenIntegrationDialogDirective","i3.ArrowUpdateService","i6.DeltaArrowComponent","i7.AgeIndicatorComponent","i8.QuickTipsComponent","i9.OpenNotesDialogDirective","i10.OpenFactorInformationDialogDirective","i11.ProgressbarComponent","i13.ModelFactorBenchmarkComponent","i14.ModelFactorBreakdownComponent","i13.ModelFactorIndicatorComponent","i14.ModelFactorBenchmarkComponent","i15.ModelFactorBreakdownComponent","i5.ArrowComponent","i6.OpenSettingsDialogDirective","i7.OpenExportFactorScoresDialogDirective","i8.OpenNotesDialogDirective","i9.ModelFactorMetricComponent","i10.ModelFactorCoreComponent","i11.DateRangePipe","i4.ResourceDownloadService","i2.GuidesClientConfig","i1.GuidePopupService","i6.CheckboxComponent","i7.ImageSliderComponent","i4.OpenGuideDialogDirective","i1.BadgeStreakComponent","i2.BadgeProgressionComponent","i3.BadgeComponent","i4.BadgeStreakComponent","i1.BrandBackgroundDirective","i2.OpenResourceDownloadDialogDirective","i2.OpenAddActionDialogDirective","i3.OpenSubscribeDialogDirective","i4.OpenResourceDownloadDialogDirective","i4.OpenSubscribeDialogDirective","i6.OpenSubscribeDialogDirective","i8.DeltaArrowComponent","i9.TipBadgeComponent","i10.OpenNotesDialogDirective","i2.OpenNotesDialogDirective","i7.FactorAxisComponent","i8.LimitationsApplyComponent","i10.SlugifyPipe","i4.ImpactIndicatorComponent","i2.OpenModelFilterDialog","i2.BrandingProvider","i4.OpenFactorInformationDialogDirective","i5.DeltaArrowComponent","i6.BenchmarkIndicatorComponent","i7.ResultIndicatorComponent","i8.ImpactIndicatorComponent","i9.QuickTipsComponent","i10.DoItYourselfWorkshopsComponent","i3.RecommendationComponent","i2.BrandBackgroundDirective","i3.BrandBackgroundDirective","AccountService","i2.UserProfileService","i3.AccountService","i2.DeltaArrowComponent","i1.SessionIdProvider"],"mappings":"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"}
1
+ {"version":3,"file":"the-liberators-ngx-scrumteamsurvey-tools.mjs","sources":["../../../projects/ngx-scrumteamsurvey-tools/src/lib/componentBase.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/paginator/paginator.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/paginator/paginator.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/paginator/paginator.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/viewModel/viewModelState.service.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/componentWithViewStateBase.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/actions/models/actionDto.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/actions/models/actionOptionsDto.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/models/selectListItem.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/actions/models/actionPrefillDto.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/apiUrlToken.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/actions/pipes/interventionOwnerToString.pipe.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/actions/pipes/interventionStateToString.pipe.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/actions/pipes/interventionTypeToString.pipe.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/actions/services/actionService.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/actions/components/action-manage/action-manage.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/actions/components/action-manage/action-manage.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/models/factorScoreDto.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/models/pagingOptions.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/models/userSettingsDto.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/viewModel/userSettings.service.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/actions/dialogs/dialog-manageaction/dialog-manageaction.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/actions/dialogs/dialog-manageaction/dialog-manageaction.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/actions/components/action-tile/action-tile.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/actions/components/action-tile/action-tile.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/actions/dialogs/dialog-filters/dialog-filters.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/actions/dialogs/dialog-filters/dialog-filters.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/pipes/dateRange/ngx-dateRangeDto.model.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/actions/models/exportRequestDto.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/actions/dialogs/dialog-export-actions/dialog-export-actions.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/actions/dialogs/dialog-export-actions/dialog-export-actions.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/actions/dialogs/dialog-export-actions/dialog-export-actions.directive.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/actions/components/action-list/action-list.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/actions/components/action-list/action-list.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/actions/actions.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/models/paginatedResponse.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/actions/models/actionResponseDto.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/actions/services/actionClientConfig.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/add-calendar/generators/base-calendar.generator.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/add-calendar/generators/google-calendar.generator.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/add-calendar/generators/ics-calendar.generator.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/add-calendar/generators/outlook-calendar.generator.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/add-calendar/generators/yahoo-calendar.generator.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/add-calendar/model/calendar-type.enum.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/add-calendar/service/ng-add-to-calendar.service.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/add-calendar/ng-add-to-calendar.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/alerts/models/dismissAlertRequestDto.model.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/alerts/services/alerts.service.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/alerts/services/dismissedAlerts.service.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/alerts/components/alerts-list/alerts.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/alerts/components/alerts-list/alerts.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/alerts/components/dialog-alerts/dialog-alerts.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/alerts/components/dialog-alerts/dialog-alerts.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/alerts/components/dialog-alerts/dialog-alerts.directive.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/alerts/components/alert-announcement/alert-announcement.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/alerts/components/alert-announcement/alert-announcement.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/alerts/alerts.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/alerts/models/alertDto.model.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/alerts/models/alertFilterDto.model.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/alerts/models/alertResponseDto.model.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/alerts/services/alertClientConfig.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/branding/brandingProvider.service.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/branding/brandBackground.directive.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/branding/brandConditionalBackgroundColor.directive.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/branding/brandConditionalColor.directive.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/branding/brandHoverColor.directive.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/models/brandingSettingsDto.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/models/channelDto.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/dialogs/dialog-support/contactService.service.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/dialogs/dialog-support/dialog-support.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/dialogs/dialog-support/dialog-support.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/dialogs/dialog-support/dialog-support.directive.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/branding/components/site-default-footer/site-default-footer.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/branding/components/site-default-footer/site-default-footer.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/branding/components/site-default-header/site-default-header.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/branding/components/site-default-header/site-default-header.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/branding/components/site-micro-footer/site-micro-footer.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/branding/components/site-micro-footer/site-micro-footer.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/dialogs/dialog-support/dialog-support.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/branding/branding.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/checkbox/checkbox.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/checkbox/checkbox.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/checkbox/checkbox.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/expand/expand.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/expand/expand.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/expand/expand.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/loading/loading.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/loading/loading.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/loading/loading.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/mat-tags/mat-tags.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/mat-tags/mat-tags.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/mat-tags/mat-tags.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/models/keyValueDto.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/metadata-input/metadata-input.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/metadata-input/metadata-input.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/metadata-input/metadata-input.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/multi-email-input/multi-email-input.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/multi-email-input/multi-email-input.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/multi-email-input/multi-email-input.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/quantity-selector/quantity-selector.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/quantity-selector/quantity-selector.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/quantity-selector/quantity-selector.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/select-list/select-list.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/select-list/select-list.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/select-list/select-list.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/snapshot-inviteurls/snapshot-inviteurls.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/snapshot-inviteurls/snapshot-inviteurls.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/snapshot-inviteurls/snapshot-inviteurls.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/pipes/slugify/ngx-slugify.pipe.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/tabnavigator/tabnavigator.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/tabnavigator/tabnavigator.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/pipes/slugify/ngx-slugify.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/tabnavigator/tabnavigator.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/topicselector/customCheckValidator.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/topicselector/minTopicsSelectedValidator.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/models/modelStructureDto.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/dialogs/dialog-factorinformation/dialog-factorinformation.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/dialogs/dialog-factorinformation/dialog-factorinformation.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/topicselector/topic-selector.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/topicselector/topic-selector.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/dialogs/dialog-factorinformation/dialog-factorinformation.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/topicselector/topic-selector.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/progressbar/progressbar.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/progressbar/progressbar.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/progressbar/progressbar.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/pipes/dateRange/ngx-dateRange.pipe.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/pipes/dateRange/ngx-dateRange.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/arrow/ArrowUpdateService.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/arrow/arrow.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/arrow/arrow.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/services/factorService.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/dialogs/dialog-settings/dialog-settings.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/dialogs/dialog-settings/dialog-settings.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/models/exportRequestDto.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/services/exportService.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/dialogs/dialog-export-factorscores/dialog-export-factorscores.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/dialogs/dialog-export-factorscores/dialog-export-factorscores.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/dialogs/dialog-export-factorscores/dialog-export-factorscores.directive.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/dialogs/dialog-notes/dialog-notes.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/dialogs/dialog-notes/dialog-notes.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/dialogs/dialog-notes/dialog-notes.directive.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/delta-arrow/delta-arrow.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/delta-arrow/delta-arrow.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/age-indicator/age-indicator.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/age-indicator/age-indicator.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/dialogs/dialog-subscribe/dialog-subscribe.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/dialogs/dialog-subscribe/dialog-subscribe.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/dialogs/dialog-subscribe/dialog-subscribe.directive.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/quicktips/quicktips.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/quicktips/quicktips.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/model-visualization/model-factor-benchmark/model-factor-benchmark.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/model-visualization/model-factor-benchmark/model-factor-benchmark.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/model-visualization/model-factor-breakdown/model-factor-breakdown.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/model-visualization/model-factor-breakdown/model-factor-breakdown.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/model-visualization/dialog-integration/dialog-integration.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/model-visualization/dialog-integration/dialog-integration.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/model-visualization/model-factor-metric/model-factor-metric.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/model-visualization/model-factor-metric/model-factor-metric.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/model-visualization/model-factor-indicator/model-factor-indicator.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/model-visualization/model-factor-indicator/model-factor-indicator.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/model-visualization/model-factor-core/model-factor-core.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/model-visualization/model-factor-core/model-factor-core.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/model-visualization/model-canvas/model-canvas.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/model-visualization/model-canvas/model-canvas.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/dialogs/dialog-resourcedownload/resourceDownload.service.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/dialogs/dialog-resourcedownload/dialog-resourcedownload.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/dialogs/dialog-resourcedownload/dialog-resourcedownload.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/dialogs/dialog-resourcedownload/dialog-resourcedownload.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/dialogs/dialog-subscribe/dialog-subscribe.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/guides/components/imageslider/imageslider.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/guides/components/imageslider/imageslider.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/guides/services/guidesClientConfig.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/guides/services/guidePopup.service.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/guides/dialogs/dialog-guides/dialog-guides.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/guides/dialogs/dialog-guides/dialog-guides.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/guides/dialogs/dialog-guide/dialog-guide.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/guides/dialogs/dialog-guide/dialog-guide.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/guides/components/resumeguidehover/resumeguidehover.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/guides/components/resumeguidehover/resumeguidehover.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/guides/models/guideCollectionDto.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/guides/services/guideStateInBrowser.service.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/guides/services/guideStateInBackEnd.service.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/guides/directives/startguide/startguide.directive.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/guides/guides.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/badge-progression/badge-progression.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/badge-progression/badge-progression.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/badge-streak/badge-streak.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/badge-streak/badge-streak.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/models/badgeDto.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/badge/badge.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/badge/badge.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/badges/badges.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/badges/badges.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/benchmark-indicator/benchmark-indicator.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/benchmark-indicator/benchmark-indicator.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/doityourself/doityourself.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/doityourself/doityourself.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/doityourselfworkshops/doityourselfworkshops.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/doityourselfworkshops/doityourselfworkshops.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/tip-badge/tip-badge.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/tip-badge/tip-badge.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/factor-axis/factor-axis.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/factor-axis/factor-axis.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/limitationsapply/limitationsapply.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/limitationsapply/limitationsapply.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/factors/factors.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/factors/factors.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/filter-tags/filter-tags.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/filter-tags/filter-tags.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/impact-indicator/impact-indicator.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/impact-indicator/impact-indicator.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/focusareas/focusareas.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/focusareas/focusareas.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/footer/footer.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/footer/footer.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/dialogs/dialog-modelfilter/dialog-modelfilter.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/dialogs/dialog-modelfilter/dialog-modelfilter.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/model-switcher/model-switcher.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/model-switcher/model-switcher.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/nav-button/nav-button.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/nav-button/nav-button.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/participants/participants.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/participants/participants.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/result-indicator/result-indicator.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/result-indicator/result-indicator.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/recommendation/recommendation.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/recommendation/recommendation.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/recommendations/recommendations.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/recommendations/recommendations.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/research/research.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/research/research.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/roadmap/roadmap.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/roadmap/roadmap.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/teameffectiveness/teameffectiveness.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/teameffectiveness/teameffectiveness.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/services/terms.service.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/termsupdated/termsupdated.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/termsupdated/termsupdated.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/models/trendDataRequestDto.model.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/services/trend.service.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/trends/trends.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/trends/trends.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/trynow-professional/trynow-professional.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/trynow-professional/trynow-professional.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/update-in-progress/update-in-progress.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/update-in-progress/update-in-progress.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/models/clientInfoDto.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/models/featuresDto.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/models/userInfoDto.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/services/userProfile.service.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/services/account.service.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/userprofile/userprofile.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/userprofile/userprofile.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/video/video.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/video/video.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/widget-factorscore/widget-factorscore.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/widget-factorscore/widget-factorscore.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/widget-participationrate/widget-participationrate.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/widget-participationrate/widget-participationrate.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/dialogs/dialog-export-teamlist/dialog-export-teamlist.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/dialogs/dialog-export-teamlist/dialog-export-teamlist.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/dialogs/dialog-export-teamlist/dialog-export-teamlist.directive.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/dialogs/dialog-teamfilter/dialog-teamfilters.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/dialogs/dialog-teamfilter/dialog-teamfilters.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/dialogs/dialog-teamfilter/dialog-teamfilters.directive.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/services/dimissPopupService.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/results.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/model-visualization/model-visualization.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/dialogs/dialog-account/resetPasswordRequestDto.model.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/dialogs/dialog-account/account.service.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/dialogs/dialog-account/dialog-account.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/dialogs/dialog-account/dialog-account.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/dialogs/dialog-account/dialog-account.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/directives/backbutton/backbutton.directive.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/directives/backbutton/backbutton.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/directives/clickableTooltip/clickableTooltip.directive.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/directives/guards/validChangeTokenGuard.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/directives/guards/validKeyGuard.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/directives/guards/validSnapshotKeyGuard.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/directives/guards/validTeamKeyGuard.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/directives/guards/guards.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/errorhandling/error.model.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/errorhandling/errorServiceConfig.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/errorhandling/errorHandler.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/errorhandling/errorService.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/models/integrationDto.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/models/contextItemDto.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/pipes/callback/callback.pipe.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/pipes/callback/callback.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/pipes/segmentName/segmentName.pipe.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/pipes/segmentName/segmentName.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/pipes/truncate/truncate.pipe.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/pipes/truncate/truncate.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/models/dataSetDto.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/models/dimensionResultDto.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/models/localUserDto.model.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/models/participantDto.model.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/models/snapshotDto.model.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/models/snapshotMetaDataDto.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/models/teamDto.model.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/models/teamListResponseDto.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/models/teamMetaDataDto.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/models/userListResponseDto.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/models/widgetDataDto.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/services/resultsClientConfig.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/validators/domainValidator.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/validators/httpsHostValidator.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/validators/matchInputValidator.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/validators/maxSelectedValidator.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/viewModel/interfaces.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/viewModel/reloadStrategies/noReloadStrategy.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/viewModel/services/sessionIdProvider.service.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/viewModel/reloadStrategies/reloadOnPushStrategy.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/viewModel/services/sessionIdInterceptor.service.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/viewModel/viewModelState.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/viewModel/viewModelStateConfig.ts","../../../projects/ngx-scrumteamsurvey-tools/src/public-api.ts","../../../projects/ngx-scrumteamsurvey-tools/src/the-liberators-ngx-scrumteamsurvey-tools.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { MatSnackBar, MatSnackBarConfig } from '@angular/material/snack-bar';\n\n@Injectable()\nexport abstract class ComponentBase {\n constructor(protected snackBar: MatSnackBar) {\n }\n\n protected showSuccess(message: string) {\n let config = new MatSnackBarConfig();\n config.panelClass = ['success', 'snackbar'];\n config.duration = 5000;\n this.snackBar.open(message, \"dismiss\", config);\n }\n\n protected showMessage(message: string) {\n let config = new MatSnackBarConfig();\n config.panelClass = ['information', 'snackbar'];\n config.duration = 5000;\n this.snackBar.open(message, \"dismiss\", config);\n }\n\n protected showError(message: string) {\n let config = new MatSnackBarConfig();\n config.panelClass = ['error', 'snackbar'];\n config.duration = 5000;\n this.snackBar.open(message, \"dismiss\", config);\n }\n}\n","import { Component, EventEmitter, Inject, Input, Output } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ComponentBase } from '../../componentBase';\nimport { PaginatedResponse } from '../../models/paginatedResponse';\n\n@Component({\n selector: 'paginator',\n templateUrl: './paginator.component.html',\n styleUrls: ['./paginator.component.less'],\n standalone: false\n})\nexport class PaginatorComponent extends ComponentBase {\n @Input() public items: PaginatedResponse<any>;\n @Output() readonly page: EventEmitter<PaginatorPageEvent> = new EventEmitter<PaginatorPageEvent>();\n public pageIndex: number;\n public pageSize: number;\n public pageCount: number;\n\n constructor(protected snackBar: MatSnackBar) {\n super(snackBar)\n }\n\n public ngOnInit(): void {\n this.pageIndex = this.items.page;\n this.pageSize = this.items.itemsPerPage;\n this.pageCount = Math.ceil(this.items.totalItems / this.pageSize);\n }\n\n public next(): void {\n this.pageIndex++;\n this.emitPageEvent();\n }\n\n public back(): void {\n this.pageIndex--;\n this.emitPageEvent();\n }\n\n public changePageSize(): void {\n this.pageIndex = 0;\n this.emitPageEvent();\n }\n\n private emitPageEvent() {\n this.page.emit({\n pageIndex: this.pageIndex,\n pageSize: this.pageSize\n });\n }\n}\n\nexport declare class PaginatorPageEvent {\n pageIndex: number;\n pageSize: number;\n}\n","<div class=\"paginator\">\n <div class=\"paginator-tools\">\n @if (items.page > 0) {\n <div class=\"back button\" (click)=\"back()\">\n back\n </div>\n }\n @if (((items.page + 1) * items.itemsPerPage) < items.totalItems) {\n <div class=\"next button primary\" (click)=\"next()\">\n next\n </div>\n }\n <mat-form-field class=\"itemsperpage\" subscriptSizing=\"dynamic\">\n <mat-label>pagesize</mat-label>\n <mat-select [(ngModel)]=\"pageSize\" id=\"select-pagesize\" (ngModelChange)=\"changePageSize()\">\n <mat-option class=\"select-option\" [value]=\"6\">6</mat-option>\n <mat-option class=\"select-option\" [value]=\"12\">12</mat-option>\n <mat-option class=\"select-option\" [value]=\"24\">24</mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n <div class=\"paginator-metadata\">\n {{items.totalItems}} items | page {{pageIndex + 1}} of {{pageCount}}\n </div>\n</div>\n\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { RouterModule } from '@angular/router';\nimport { PaginatorComponent } from './paginator.component';\n\n@NgModule({\n imports: [\n MatSelectModule,\n RouterModule,\n CommonModule,\n FormsModule,\n MatInputModule],\n declarations: [\n PaginatorComponent],\n exports: [\n PaginatorComponent]\n})\nexport class PaginatorModule { }\n","import { Inject, InjectionToken } from '@angular/core';\nimport { BehaviorSubject, Subscription } from 'rxjs';\nimport { take } from 'rxjs/operators';\nimport { IAggregateRootSource, IReloadStrategy, IViewState } from './interfaces';\n\nexport const VIEWSTATE_LOAD_STRATEGY = new InjectionToken<IAggregateRootSource>('viewstate.load.strategy');\nexport const VIEWSTATE_RELOAD_STRATEGY = new InjectionToken<IAggregateRootSource>('viewstate.reload.strategy');\nexport const VIEWSTATE_PROVIDER = new InjectionToken<ViewModelStateBase<IViewState>>('viewstate.provider');\n\nexport abstract class ViewModelStateBase<T extends IViewState> {\n public data: BehaviorSubject<T>;\n public updating = new BehaviorSubject<boolean>(false);\n protected result: T = null;\n protected loadUrl: string;\n protected subscription: Subscription;\n\n constructor(@Inject(VIEWSTATE_LOAD_STRATEGY) protected strategy: IAggregateRootSource, @Inject(VIEWSTATE_RELOAD_STRATEGY) protected reloadStrategy: IReloadStrategy, protected startInstance: (new () => T)) {\n this.startInstance = startInstance;\n this.strategy = strategy;\n this.data = new BehaviorSubject(new this.startInstance());\n }\n\n public load() {\n if (this.result) { return; }\n this.result = new this.startInstance();\n this.updating.next(true);\n this.strategy.subscribe<T>().pipe(take(2)).subscribe(success => {\n if (success) {\n success.loaded = true;\n this.map(success);\n this.data.next(this.result);\n this.updating.next(false);\n }\n }, error => {\n this.result = null;\n });\n }\n\n public forcedReload() {\n if (!this.strategy.reloadable()) { return; }\n this.result = null;\n this.updating.next(true);\n this.load();\n }\n\n public reload() {\n if (!this.strategy.reloadable()) { return; }\n this.result = null;\n this.updating.next(true);\n\n if (!this.reloadStrategy.isConnected()) {\n console.error(\"Reload strategy is not connected. We are reloading manually in 3 seconds as a fall-back strategy.\");\n\n setTimeout(() => {\n this.forcedReload();\n }, 3000);\n }\n }\n\n public close() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n protected map(aggregate: T): void {\n throw \"Must implement. This method is called every time an update is received.\";\n };\n\n public initiate(): void {\n this.reloadStrategy.subscribe();\n this.reloadStrategy.reload.subscribe(reload => {\n if (reload) {\n console.log(\"Received push notification that command completed. Reloading data.\", reload);\n this.result = null;\n this.load();\n }\n });\n };\n}\n","import { Injectable, OnDestroy, OnInit } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { Subscription } from 'rxjs';\nimport { ComponentBase } from './componentBase';\nimport { IViewState } from './viewModel/interfaces';\nimport { ViewModelStateBase } from './viewModel/viewModelState.service';\n\n@Injectable()\nexport abstract class ComponentWithViewStateBase<T extends IViewState> extends ComponentBase implements OnInit, OnDestroy {\n public loaded: boolean = false;\n private stateStoreSubscription: Subscription;\n\n constructor(private stateStore: ViewModelStateBase<T>, protected snackBar: MatSnackBar) {\n super(snackBar);\n }\n\n public ngOnInit() {\n this.stateStoreSubscription = this.stateStore.data.subscribe((success: T) => {\n this.loaded = success.loaded;\n\n if (success && success.loaded) {\n this.onDataUpdate(success);\n }\n });\n\n this.stateStore.load();\n }\n\n protected onDataUpdate(data: T): void {\n throw \"Must implement onDataUpdate\";\n };\n\n public ngOnDestroy() {\n if (this.stateStoreSubscription) {\n this.stateStoreSubscription.unsubscribe();\n }\n\n this.stateStore.close();\n }\n}\n","export class ActionDto {\n constructor() {\n this.team = new ActionTeamDto();\n }\n\n publicKey: string;\n description: string;\n url: string;\n team: ActionTeamDto;\n created: Date;\n due: Date;\n isDue: boolean;\n state: InterventionStateEnum;\n type: InterventionTypeEnum;\n owner: InterventionOwnerEnum;\n expectedImpactOn: string[];\n expectedImpactOnLabels: string[];\n deleted: boolean;\n quickTipPublicKey: string;\n ageInDays: number;\n}\n\nexport class ActionTeamDto {\n publicKey: string;\n name: string;\n colorString: string;\n}\n\n\nexport enum InterventionStateEnum {\n open = \"Open\",\n completed = \"Completed\",\n impeded = \"Impeded\",\n obsolete = \"Obsolete\",\n due = \"Due\"\n}\n\nexport enum InterventionSortEnum {\n due = \"Due\",\n owner = \"Owner\",\n type = \"Type\",\n created = \"Created\",\n age = \"Age\"\n}\n\nexport enum InterventionTypeEnum {\n conversation = \"Conversation\",\n involveOthers = \"InvolveOthers\",\n runExperiment = \"RunExperiment\",\n research = \"Research\",\n workshop = \"Workshop\",\n other = \"Other\"\n}\n\nexport enum InterventionOwnerEnum {\n entireTeam = \"EntireTeam\",\n management = \"Management\",\n productPerson = \"ProductPerson\",\n teamCoach = \"TeamCoach\",\n teamMember = \"TeamMember\",\n stakeholder = \"Stakeholder\",\n other = \"Other\"\n}\n","export class ActionOptionsDto {\n teams: ActionOptionDto[];\n}\n\nexport class ActionOptionDto {\n constructor(key: string, label: string) {\n this.key = key;\n this.label = label;\n }\n\n key: string;\n label: string;\n}\n","export class SelectItem {\n constructor(value: string, label: string, lower: boolean = false) {\n this.value = value;\n this.label = label;\n this.lower = lower;\n }\n\n value: string;\n label: string;\n lower: boolean;\n}\n","import { InterventionOwnerEnum, InterventionStateEnum, InterventionTypeEnum } from \"./actionDto\";\n\nexport class ActionPrefillDto {\n teamKey: string;\n description: string;\n expectedImpactOn: string[];\n type: InterventionTypeEnum;\n owner: InterventionOwnerEnum;\n state: InterventionStateEnum;\n quickTipPublicKey: string;\n url: string;\n}\n","import { Inject, Injectable, InjectionToken, Optional } from '@angular/core';\n\nexport const ApiConfigToken = new InjectionToken<ApiConfigDto>(\n 'apiurl-angular.config'\n);\n\n@Injectable({ providedIn: 'root' })\nexport class ApiConfig {\n private config?: ApiConfigDto;\n\n constructor(@Optional() @Inject(ApiConfigToken) config?: ApiConfigDto) {\n if (config) {\n this.set(config);\n }\n }\n\n set(config: ApiConfigDto): void {\n this.config = config;\n }\n\n get(): ApiConfigDto {\n return this.config as ApiConfigDto;\n }\n}\n\nexport class ApiConfigDto {\n apiUrl: string;\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { InterventionOwnerEnum } from '../models/actionDto';\n\n@Pipe({\n name: 'interventionOwnerToString',\n standalone: false\n})\nexport class InterventionOwnerToStringPipe implements PipeTransform {\n transform(type: InterventionOwnerEnum): string {\n switch (type) {\n case InterventionOwnerEnum.entireTeam:\n return \"Entire team\";\n case InterventionOwnerEnum.management:\n return \"Management\";\n case InterventionOwnerEnum.productPerson:\n return \"Product manager/owner\";\n case InterventionOwnerEnum.teamCoach:\n return \"Team coach\";\n case InterventionOwnerEnum.teamMember:\n return \"Team member\";\n case InterventionOwnerEnum.stakeholder:\n return \"Stakeholder\";\n case InterventionOwnerEnum.other:\n return \"Other\";\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { InterventionStateEnum } from '../models/actionDto';\n\n@Pipe({\n name: 'interventionStateToStringPipe',\n standalone: false\n})\nexport class InterventionStateToStringPipe implements PipeTransform {\n transform(type: InterventionStateEnum): string {\n switch (type) {\n case InterventionStateEnum.completed:\n return \"Completed\";\n case InterventionStateEnum.impeded:\n return \"Impeded\";\n case InterventionStateEnum.obsolete:\n return \"Canceled (obsolete or no longer relevant)\";\n case InterventionStateEnum.open:\n return \"Open\";\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { InterventionTypeEnum } from '../models/actionDto';\n\n@Pipe({\n name: 'interventionTypeToString',\n standalone: false\n})\nexport class InterventionTypeToStringPipe implements PipeTransform {\n transform(type: InterventionTypeEnum): string {\n switch (type) {\n case InterventionTypeEnum.conversation:\n return \"Initiate a conversation\";\n case InterventionTypeEnum.involveOthers:\n return \"Request help outside team\";\n case InterventionTypeEnum.research:\n return \"Research options\";\n case InterventionTypeEnum.runExperiment:\n return \"Run an experiment\";\n case InterventionTypeEnum.workshop:\n return \"Facilitate a workshop\";\n case InterventionTypeEnum.other:\n return \"Other\";\n }\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ApiConfig } from '../../apiUrlToken';\nimport { UserSettingsDto } from '../../models/userSettingsDto';\nimport { ActionDto, InterventionOwnerEnum, InterventionStateEnum, InterventionTypeEnum } from '../models/actionDto';\nimport { ActionOptionDto } from '../models/actionOptionsDto';\nimport { ExportActionsRequestDto } from '../models/exportRequestDto';\nimport { InterventionOwnerToStringPipe } from '../pipes/interventionOwnerToString.pipe';\nimport { InterventionStateToStringPipe } from '../pipes/interventionStateToString.pipe';\nimport { InterventionTypeToStringPipe } from '../pipes/interventionTypeToString.pipe';\n\n@Injectable()\nexport class ActionService {\n private baseUrl: string;\n\n constructor(private http: HttpClient, @Inject(ApiConfig) private config: ApiConfig) {\n console.log(\"Config for action client set, and viewmodel provided\", config);\n this.baseUrl = config.get().apiUrl;\n }\n\n public create(teamKey: string, dto: ActionDto): Promise<Object> {\n return this.http.post(this.baseUrl + \"actions/\" + teamKey, dto).toPromise();\n }\n\n public update(teamKey: string, dto: ActionDto): Promise<Object> {\n return this.http.put(this.baseUrl + \"actions/\" + teamKey, dto).toPromise();\n }\n\n public delete(teamKey: string, publicKey: string): Promise<Object> {\n return this.http.delete(this.baseUrl + \"actions/\" + teamKey + \"/\" + publicKey).toPromise();\n }\n\n public changeState(teamKey: string, publicKey: string, state: InterventionStateEnum): Promise<Object> {\n return this.http.post(this.baseUrl + \"actions/\" + teamKey + \"/\" + publicKey + \"/\" + state, null).toPromise();\n }\n\n public getStateOptions() {\n var pipe = new InterventionStateToStringPipe();\n var list: ActionOptionDto[] = [];\n\n for (const value of Object.values(InterventionStateEnum)) {\n list.push(new ActionOptionDto(value, pipe.transform(value)));\n }\n\n return list;\n }\n\n public getOwnerOptions() {\n var pipe = new InterventionOwnerToStringPipe();\n var list: ActionOptionDto[] = [];\n\n for (const value of Object.values(InterventionOwnerEnum)) {\n list.push(new ActionOptionDto(value, pipe.transform(value)));\n }\n\n return list;\n }\n\n public getTypeOptions() {\n var pipe = new InterventionTypeToStringPipe();\n var list: ActionOptionDto[] = [];\n\n for (const value of Object.values(InterventionTypeEnum)) {\n list.push(new ActionOptionDto(value, pipe.transform(value)));\n }\n\n return list;\n }\n\n public exportActions(request: ExportActionsRequestDto): Observable<any> {\n return this.http.post(this.baseUrl + \"export/actions\", request, { responseType: 'blob' });\n }\n}\n","import { Component, Inject, Input } from '@angular/core';\nimport { FormBuilder, FormGroup, FormGroupDirective, Validators } from '@angular/forms';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { Subscription } from 'rxjs';\nimport { ComponentBase } from '../../../componentBase';\nimport { ModelStructureDto } from '../../../models/modelStructureDto';\nimport { SelectItem } from '../../../models/selectListItem';\nimport { VIEWSTATE_PROVIDER, ViewModelStateBase } from '../../../viewModel/viewModelState.service';\nimport { IActionState } from '../../interfaces/IActionState';\nimport { ActionDto, InterventionStateEnum } from '../../models/actionDto';\nimport { ActionOptionDto } from '../../models/actionOptionsDto';\nimport { ActionPrefillDto } from '../../models/actionPrefillDto';\nimport { ActionService } from '../../services/actionService';\n\n@Component({\n selector: 'action-manage',\n templateUrl: './action-manage.component.html',\n styleUrls: ['./action-manage.component.less'],\n standalone: false\n})\nexport class ActionManageComponent extends ComponentBase {\n @Input() public prefill: ActionPrefillDto;\n @Input() public action: ActionDto;\n public form: FormGroup;\n public interventionTypeList: ActionOptionDto[];\n public expectedEffectOnList: ActionOptionDto[];\n public stateList: ActionOptionDto[];\n public ownerList: ActionOptionDto[];\n public teams: ActionOptionDto[] = [];\n public multipleTeams: boolean;\n public viewStateSubscription: Subscription;\n public showTeamSelector: boolean = true;\n public factors: SelectItem[];\n\n constructor(private dialogRef: MatDialog, private formBuilder: FormBuilder, private actionService: ActionService, @Inject(VIEWSTATE_PROVIDER) private viewModelState: ViewModelStateBase<IActionState>, protected snackBar: MatSnackBar) {\n super(snackBar)\n }\n\n public ngOnInit() {\n this.createForm();\n this.ownerList = this.actionService.getOwnerOptions();\n this.interventionTypeList = this.actionService.getTypeOptions();\n this.stateList = this.actionService.getStateOptions();\n\n this.viewStateSubscription = this.viewModelState.data.subscribe(success => {\n if (success.loaded) {\n this.factors = this.getFactors(success.factorScores.modelStructure);\n this.expectedEffectOnList = success.factorScores.factorScores.map(p => new ActionOptionDto(p.key, p.name));\n\n if (success.teamList.names != null) { // teams dashboard\n this.teams = success.teamList.names.map(p => new ActionOptionDto(p.publicKey, p.name));\n }\n else if (success.teamMetaData != null) { // team report\n this.teams.push(new ActionOptionDto(success.teamMetaData.teamKey, success.teamMetaData.name));\n }\n\n if (this.teams.length == 1) { this.prefill.teamKey = this.teams[0].key; }\n this.showTeamSelector = (!this.prefill.teamKey || this.prefill.teamKey.length == 0);\n this.applyPrefill();\n }\n });\n\n if (this.action && this.action.publicKey) {\n this.form.controls.teamKey.setValue(this.action.team.publicKey);\n this.form.controls.publicKey.setValue(this.action.publicKey);\n this.form.controls.description.setValue(this.action.description);\n this.form.controls.url.setValue(this.action.url);\n this.form.controls.expectedImpactOn.setValue(this.action.expectedImpactOn);\n this.form.controls.type.setValue(this.action.type);\n this.form.controls.owner.setValue(this.action.owner);\n this.form.controls.state.setValue(this.action.state);\n this.form.controls.due.setValue(this.action.due);\n this.form.controls.quickTipPublicKey.setValue(this.action.quickTipPublicKey);\n this.showTeamSelector = false;\n }\n }\n\n public async onSubmit(formDirective: FormGroupDirective): Promise<void> {\n if (!this.form.valid) { return; }\n\n if (this.form.controls.publicKey.value) {\n await this.actionService.update(this.form.controls.teamKey.value, this.form.getRawValue());\n } else {\n await this.actionService.create(this.form.controls.teamKey.value, this.form.getRawValue());\n }\n\n this.dialogRef.closeAll();\n this.viewModelState.reload();\n }\n\n public async delete(): Promise<void> {\n if (window.confirm(\"Are you sure you want to delete this intervention?\")) {\n await this.actionService.delete(this.form.controls.teamKey.value, this.form.controls.publicKey.value);\n this.dialogRef.closeAll();\n this.viewModelState.reload();\n }\n }\n\n public cancel() {\n this.resetForm(null);\n this.dialogRef.closeAll();\n }\n\n private resetForm(formDirective: FormGroupDirective): void {\n this.showTeamSelector = (!this.prefill.teamKey || this.prefill.teamKey.length == 0);\n this.form.reset();\n this.action = null;\n\n if (formDirective) {\n formDirective.resetForm();\n }\n\n this.form.controls.state.setValue(InterventionStateEnum.open);\n this.applyPrefill();\n }\n\n private getFactors(model: ModelStructureDto): SelectItem[] {\n if (model == null || model.definition == null || model.definition.factors == null) { return null; }\n var result: SelectItem[] = [];\n\n for (var factor of model.definition.factors.filter(p => p.parentKey == null)) {\n result.push(new SelectItem(factor.publicKey, factor.name, false));\n\n for (var lowerDimension of factor.lower) {\n result.push(new SelectItem(lowerDimension.publicKey, lowerDimension.name, true));\n }\n }\n\n return result;\n }\n\n private createForm(): void {\n this.form = this.formBuilder.group({\n publicKey: [\"\"],\n teamKey: [\"\", [Validators.required]],\n quickTipPublicKey: [\"\"],\n description: [\"\", [Validators.required, Validators.maxLength(500)]],\n url: [\"\", [Validators.maxLength(500)]],\n owner: [\"\", Validators.required],\n state: [\"\", Validators.required],\n type: [\"\", Validators.required],\n due: [\"\"],\n expectedImpactOn: [\"\", Validators.required]\n });\n }\n\n private applyPrefill(): void {\n if (this.prefill) {\n this.form.controls.teamKey.setValue(this.prefill.teamKey);\n this.form.controls.description.setValue(this.prefill.description);\n this.form.controls.expectedImpactOn.setValue(this.prefill.expectedImpactOn);\n this.form.controls.type.setValue(this.prefill.type);\n this.form.controls.owner.setValue(this.prefill.owner);\n this.form.controls.state.setValue(this.prefill.state);\n this.form.controls.url.setValue(this.prefill.url);\n this.form.controls.quickTipPublicKey.setValue(this.prefill.quickTipPublicKey);\n }\n else {\n this.prefill = new ActionPrefillDto();\n this.prefill.expectedImpactOn = [];\n }\n }\n\n ngOnDestroy() {\n if (this.viewStateSubscription) {\n this.viewStateSubscription.unsubscribe();\n }\n }\n}\n","<form [formGroup]=\"form\" (ngSubmit)=\"onSubmit(formDirective)\" #formDirective=\"ngForm\" class=\"manage-action-form\">\n @if (showTeamSelector) {\n <mat-form-field appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>Which team owns this action?</mat-label>\n <mat-select formControlName=\"teamKey\" id=\"teamKey\">\n @for (team of teams; track team) {\n <mat-option class=\"select-option\" [value]=\"team.key\">{{team.label}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n <mat-form-field appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>Enter short description</mat-label>\n <textarea matInput formControlName=\"description\" id=\"description\" rows=\"2\" maxlength=\"500\"></textarea>\n </mat-form-field>\n @if (!prefill.expectedImpactOn || prefill.expectedImpactOn.length == 0) {\n <mat-form-field appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>Where do you expect improvement?</mat-label>\n <mat-select multiple formControlName=\"expectedImpactOn\" id=\"expectedImpactOn\">\n @for (factor of factors; track factor) {\n <mat-option class=\"select-option\" [ngClass]=\"{'lower' : factor.lower}\" [value]=\"factor.value\">{{factor.label}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n @if (!prefill.owner) {\n <mat-form-field appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>Who owns this action?</mat-label>\n <mat-select formControlName=\"owner\" id=\"owner\">\n @for (owner of ownerList; track owner) {\n <mat-option class=\"select-option\" [value]=\"owner.key\">{{owner.label}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n @if (!prefill.type) {\n <mat-form-field appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>What is the type of action?</mat-label>\n <mat-select formControlName=\"type\" id=\"type\">\n @for (interventionType of interventionTypeList; track interventionType) {\n <mat-option class=\"select-option\" [value]=\"interventionType.key\">{{interventionType.label}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n @if (!prefill.state || action) {\n <mat-form-field appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>What is the state of this action?</mat-label>\n <mat-select formControlName=\"state\" id=\"state\">\n @for (state of stateList; track state) {\n <mat-option class=\"select-option\" [value]=\"state.key\">{{state.label}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n @if (!prefill.url || prefill.url.length == 0) {\n <mat-form-field appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>Url for additional details (e.g. JIRA or Trello)</mat-label>\n <input matInput formControlName=\"url\" id=\"url\" rows=\"1\" maxlength=\"500\">\n </mat-form-field>\n }\n <mat-form-field appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>When should it be done?</mat-label>\n <input matInput [matDatepicker]=\"picker\" formControlName=\"due\" id=\"due\">\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-datepicker #picker></mat-datepicker>\n </mat-form-field>\n <div class=\"toolbar leftright\">\n <div>\n @if (action) {\n <a class=\"button borderless delete\" href=\"javascript:void(null);\" (click)=\"delete()\" id=\"delete\"><span class=\"icon ph-trash\"></span> delete</a>\n }\n @if (form.dirty || action) {\n <a class=\"button borderless cancel\" href=\"javascript:void(null);\" (click)=\"cancel()\" id=\"cancel\"><span class=\"icon ph-x-circle\"></span> cancel</a>\n }\n </div>\n <input class=\"button primary\" type=\"submit\" id=\"submit\" value=\"save\" />\n </div>\n</form>\n","import { DateRange } from \"@angular/material/datepicker\";\nimport { InterventionTypeEnum } from \"../../actions/models/actionDto\";\nimport { ModelStructureDto } from \"../../models/modelStructureDto\";\nimport { DateRangeDto } from \"../../pipes/dateRange/ngx-dateRangeDto.model\";\nimport { ParticipationRateDto } from \"./widgetDataDto\";\n\nexport class FactorScoreDto {\n name: string;\n key: string;\n score: number;\n upperConfidence: number;\n lowerConfidence: number;\n delta: number;\n deltaAvailable: boolean;\n impact: number;\n benchmark: number;\n benchmarkUpperQuartile: number;\n benchmarkLowerQuartile: number;\n points: PointDto[];\n sampleSize: number;\n qualification: QualificationEnum;\n interventionSummary: InterventionSummaryDto;\n recommendation: FactorRecommendationDto;\n effects: FactorEffectDto[];\n notes: string[];\n anonymized: boolean;\n lastMeasured: Date;\n type: string;\n}\n\nexport class FactorRecommendationDto {\n available: boolean;\n research: string;\n improve: string;\n summary: string;\n resources: FeedbackResourceDto[];\n quickTips: FeedbackQuickTipDto[];\n}\n\nexport class ProcessingDataDto {\n qualifiedBy: QualifiedByEnum;\n notes: string[];\n anonymized: boolean;\n cacheRenewsAt: Date;\n}\n\nexport class PointDto {\n publicKey: string;\n type: PointTypeEnum;\n name: string;\n normalizedScore: number;\n occurances: number;\n lowerConfidence: number;\n upperConfidence: number;\n}\n\nexport class FactorScoreCollectionDto {\n filters: FactorScoreCollectionFiltersDto;\n dateRange: DateRangeDto;\n factorScores: FactorScoreDto[];\n interventionSummary: InterventionSummaryDto;\n delta: FactorScoreCollectionDeltaDto;\n benchmark: FactorScoreCollectionBenchmarkDto;\n composition: FactorScoreCollectionCompositionDto;\n samplingWindows: FactorScoreCollectionSamplingWindowsDto;\n processingData: ProcessingDataDto;\n modelStructure: ModelStructureDto;\n participationRate: ParticipationRateDto;\n}\n\nexport class FactorScoreCollectionFiltersDto {\n tags: string[];\n}\n\nexport class FactorScoreCollectionDeltaDto {\n dateRange: DateRangeDto;\n available: boolean;\n teams: FactorScoreCompositionPointsDto;\n type: DeltaPeriodEnum;\n}\n\nexport class FactorScoreCollectionBenchmarkDto {\n type: BenchmarkTypeEnum;\n name: string;\n size: number;\n available: BenchmarkOptionDto[];\n}\n\nexport class BenchmarkOptionDto {\n key: string;\n name: string;\n}\n\nexport class FactorScoreCompositionPointsDto {\n count: number;\n points: FactorScoreCompositionPointDto[];\n type: PointTypeEnum;\n}\n\nexport class FactorScoreCompositionPointDto {\n name: string;\n publicKey: string;\n}\n\nexport class FactorScoreCollectionCompositionDto {\n population: number;\n segments: FactorScoreCollectionCompositionSegmentDto[];\n points: FactorScoreCompositionPointsDto;\n}\n\nexport class FactorScoreCollectionSamplingWindowsDto {\n surveys: DateRangeDto;\n metrics: DateRangeDto;\n overlays: DateRangeDto;\n}\n\nexport class FactorScoreCollectionCompositionSegmentDto {\n name: string;\n occurances: number;\n}\n\nexport class InterventionSummaryDto {\n open: number;\n completed: number;\n impeded: number;\n obsolete: number;\n total: number;\n due: number;\n}\n\nexport class FeedbackResourceDto {\n publicKey: string;\n title: string;\n}\n\nexport class FeedbackQuickTipDto {\n publicKey: string;\n description: string;\n type: InterventionTypeEnum;\n}\n\nexport class FactorEffectDto {\n key: string;\n name: string;\n effect: number;\n type: EffectTypeEnum;\n}\n\nexport enum BenchmarkTypeEnum {\n NoBenchmark = \"NoBenchmark\",\n MostRecentSamples = \"MostRecentSamples\",\n TopSamplesByExperience = \"TopSamplesByExperience\",\n TopSamplesByEffectiveness = \"TopSamplesByEffectiveness\",\n topSamplesByValue = \"TopSamplesByValue\",\n TopSamplesByResponsiveness = \"TopSamplesByResponsiveness\",\n TeamsFromSameClient = \"TeamsFromSameclient\",\n TeamsFromSameBroker = \"TeamsFromSameBroker\",\n TeamsInSectorFinance = \"TeamsInSectorFinance\",\n TeamsInSectorIT = \"TeamsInSectorIT\",\n TeamsFrameworkSAFe = \"TeamsFrameworkSAFe\",\n TeamsFrameworkScrum = \"TeamsFrameworkScrum\",\n}\n\nexport enum ContextTypes {\n Unset = \"Unset\",\n Participant = \"Participant\",\n Snapshot = \"Snapshot\"\n}\n\nexport enum QualifiedByEnum {\n benchmark = \"Benchmark\",\n delta = \"Delta\",\n none = \"None\"\n}\n\nexport enum EffectTypeEnum {\n predicts = \"Predicts\",\n isPartOf = \"IsPartOf\",\n isPredictedby = \"IsPredictedBy\"\n}\n\nexport enum PointTypeEnum {\n unspecified = \"Unspecified\",\n team = \"Team\",\n segment = \"Segment\",\n individual = \"Individual\",\n client = \"Client\"\n}\n\nexport enum QualificationEnum {\n positive = \"Positive\",\n neutral = \"Neutral\",\n negative = \"Negative\"\n}\n\nexport enum DeltaPeriodEnum {\n previousMonth = \"PreviousMonth\",\n previousQuarter = \"PreviousQuarter\",\n previousYear = \"PreviousYear\",\n previousSnapshot = \"PreviousSnapshot\",\n previousHalfYear = \"PreviousHalfYear\",\n none = \"None\"\n}\n\nexport enum IncludeActionsModeEnum {\n none = \"None\",\n includeAll = \"IncludeAll\",\n includeRelevant = \"IncludeRelevant\"\n}\n","export class PagingOptions {\n page: number;\n pageSize: number;\n}\n","import { InterventionOwnerEnum, InterventionSortEnum, InterventionStateEnum, InterventionTypeEnum } from \"../actions/models/actionDto\";\nimport { BenchmarkTypeEnum, DeltaPeriodEnum, QualifiedByEnum } from \"../results/models/factorScoreDto\";\nimport { PagingOptions } from \"./pagingOptions\";\n\nexport class UserSettingsDto {\n constructor() {\n this.global = new UserGlobalSettingsDto();\n this.user = new UserSpecificSettingsDto();\n }\n\n global: UserGlobalSettingsDto;\n user: UserSpecificSettingsDto;\n}\n\nexport class UserGlobalSettingsDto {\n constructor() {\n this.deltaPeriod = DeltaPeriodEnum.previousQuarter;\n this.benchmark = BenchmarkTypeEnum.MostRecentSamples;\n this.overviewFactors = [];\n }\n\n benchmark: BenchmarkTypeEnum;\n deltaPeriod: DeltaPeriodEnum;\n qualifyBy: QualifiedByEnum;\n overviewFactors: string[];\n stacking: boolean;\n}\n\nexport class UserSpecificSettingsDto {\n constructor() {\n this.teamFilter = new TeamListFilter();\n this.userFilter = new UserListFilter();\n this.modelFilter = new ModelFilter();\n this.interventionFilter = new ActionListFilter();\n this.guideSettings = new GuideSettingsDto();\n }\n\n modelKey: string;\n teamFilter: TeamListFilter;\n userFilter: UserListFilter;\n modelFilter: ModelFilter;\n interventionFilter: ActionListFilter;\n guideSettings: GuideSettingsDto;\n teamPassword: string;\n}\n\n\nexport class GuideSettingsDto {\n constructor() {\n this.completedSteps = [];\n }\n\n activeGuideKey: string;\n completedSteps: string[];\n}\n\nexport class ModelFilter {\n constructor() {\n this.layers = [];\n this.interventionFilter = InterventionFilterType.All;\n }\n \n public interventionFilter: InterventionFilterType;\n public advanced: boolean;\n public layers: ModelVisualizationLayer[];\n}\n\nexport class ModelVisualizationLayer {\n constructor(key: string, label: string, selected: boolean = false) {\n this.key = key;\n this.label = label;\n this.selected = selected;\n }\n\n key: string;\n label: string;\n selected: boolean;\n}\n\nexport class TeamListFilter extends PagingOptions {\n constructor() {\n super();\n this.tags = [];\n }\n\n tags: string[];\n keyword: string;\n sort?: TeamSortEnum;\n status: TeamStatusEnum;\n}\n\nexport class UserListFilter extends PagingOptions {\n constructor() {\n super();\n }\n \n keyword: string;\n}\n\nexport class ActionListFilter extends PagingOptions {\n keyword: string;\n sort?: InterventionSortEnum;\n state?: InterventionStateEnum;\n owner?: InterventionOwnerEnum;\n type?: InterventionTypeEnum;\n teamKey: string;\n expectedImpactOn: string;\n}\n\nexport enum InterventionFilterType {\n All = \"All\",\n OnlyOpen = \"OnlyOpen\",\n OnlyCompleted = \"OnlyCompleted\",\n None = \"None\"\n}\n\nexport enum TeamSortEnum {\n name = \"Name\",\n created = \"Created\",\n}\n\nexport enum TeamStatusEnum {\n active = \"Active\",\n archived = \"Archived\",\n}\n","import { Inject, Injectable, InjectionToken } from '@angular/core';\nimport { LOCAL_STORAGE, StorageService } from 'ngx-webstorage-service';\nimport { Subject } from 'rxjs';\nimport { UserSettingsDto } from '../models/userSettingsDto';\n\nexport const VIEWSTATE_USERSETTINGS_STRATEGY = new InjectionToken<IUserSettingStrategy>('viewstate.usersettings.strategy');\n@Injectable({ providedIn: 'root' })\nexport class UserSettingService {\n private settings: UserSettingsDto = new UserSettingsDto();\n public changed: Subject<UserSettingsDto> = new Subject<UserSettingsDto>();\n\n constructor(@Inject(LOCAL_STORAGE) private storage: StorageService) {\n this.settings = this.storage.get(\"usersettings\") || new UserSettingsDto();\n }\n\n public set(filters: UserSettingsDto) {\n this.settings = filters;\n this.storage.set(\"usersettings\", this.settings);\n this.changed.next(this.settings);\n }\n\n public get(): UserSettingsDto {\n return this.settings;\n }\n}\n\nexport interface IUserSettingStrategy {\n apply(): Promise<void>;\n settings: UserSettingsDto\n}\n","import { Component, Directive, HostListener, Inject, Input } from '@angular/core';\nimport { MatDialog, MatDialogConfig, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { ActionDto } from '../../models/actionDto';\nimport { ActionPrefillDto } from '../../models/actionPrefillDto';\n\n@Component({\n templateUrl: './dialog-manageaction.component.html',\n styleUrls: ['./dialog-manageaction.component.less'],\n standalone: false\n})\nexport class DialogActionManageComponent {\n constructor(private dialogRef: MatDialog, @Inject(MAT_DIALOG_DATA) public data: { prefill: ActionPrefillDto, action: ActionDto }) {\n }\n\n ngOnInit() {\n }\n}\n\n@Directive({\n selector: '[addActionDialog]',\n standalone: false\n})\nexport class OpenAddActionDialogDirective {\n @Input() public prefill: ActionPrefillDto;\n\n constructor(private dialog: MatDialog) {\n }\n\n @HostListener('click')\n onClick(): void {\n const dialogConfig = new MatDialogConfig();\n dialogConfig.panelClass = 'dialog';\n dialogConfig.data = { prefill: this.prefill }\n dialogConfig.enterAnimationDuration = 0;\n dialogConfig.exitAnimationDuration = 0;\n this.dialog.open(DialogActionManageComponent, dialogConfig);\n }\n}\n\n@Directive({\n selector: '[editActionDialog]',\n standalone: false\n})\nexport class OpenEditActionDialogDirective {\n @Input() public action: ActionDto;\n\n constructor(private dialog: MatDialog) {\n }\n\n @HostListener('click')\n onClick(): void {\n const dialogConfig = new MatDialogConfig();\n dialogConfig.panelClass = 'dialog';\n dialogConfig.data = { prefill: new ActionPrefillDto(), action: this.action }\n dialogConfig.autoFocus = false;\n dialogConfig.exitAnimationDuration = 0;\n dialogConfig.enterAnimationDuration = 0;\n this.dialog.open(DialogActionManageComponent, dialogConfig);\n }\n}\n\n\n","<div class=\"dialog-header\">\n @if (!data.action) {\n <h1 mat-dialog-title>Add Action</h1>\n }\n @if (data.action) {\n <h1 mat-dialog-title>Edit Action</h1>\n }\n <div class=\"close\" mat-dialog-close><i class=\"responsive icon ph-x-bold\"></i></div>\n</div>\n<mat-dialog-content>\n <action-manage [prefill]=\"data.prefill\" [action]=\"data.action\" id=\"dialog-manageaction\"></action-manage>\n</mat-dialog-content>\n","import { Component, Inject, Input } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ActivatedRoute } from '@angular/router';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { ViewModelStateBase, VIEWSTATE_PROVIDER } from '../../../viewModel/viewModelState.service';\nimport { IActionState } from '../../interfaces/IActionState';\nimport { ActionDto, InterventionStateEnum } from '../../models/actionDto';\nimport { ActionService } from '../../services/actionService';\nimport { ActionManageComponent } from '../action-manage/action-manage.component';\n\n@Component({\n selector: 'action-tile',\n templateUrl: './action-tile.component.html',\n styleUrls: ['./action-tile.component.less'],\n standalone: false\n})\nexport class ActionTileComponent extends ComponentWithViewStateBase<IActionState> {\n @Input() public action: ActionDto;\n @Input() public multipleTeams: boolean;\n @Input() public actionManageComponent: ActionManageComponent;\n\n constructor(protected snackBar: MatSnackBar, protected actionService: ActionService, @Inject(VIEWSTATE_PROVIDER) private viewModelState: ViewModelStateBase<IActionState>, protected route: ActivatedRoute) {\n super(viewModelState, snackBar)\n }\n\n ngOnInit(): void {\n super.ngOnInit();\n }\n\n public async obsolete(event: MouseEvent, action: ActionDto): Promise<void> {\n event.stopPropagation();\n await this.changeState(action, InterventionStateEnum.obsolete);\n action.state = InterventionStateEnum.obsolete;\n }\n\n public async complete(event: MouseEvent, action: ActionDto): Promise<void> {\n event.stopPropagation();\n await this.changeState(action, InterventionStateEnum.completed);\n action.state = InterventionStateEnum.completed;\n }\n\n public async open(event: MouseEvent, action: ActionDto): Promise<void> {\n event.stopPropagation();\n await this.changeState(action, InterventionStateEnum.open);\n action.state = InterventionStateEnum.open;\n }\n\n public async impede(event: MouseEvent, action: ActionDto): Promise<void> {\n event.stopPropagation();\n await this.actionService.changeState(action.team.publicKey, action.publicKey, InterventionStateEnum.impeded);\n action.state = InterventionStateEnum.impeded;\n }\n\n public async unimpede(event: MouseEvent, action: ActionDto): Promise<void> {\n event.stopPropagation();\n await this.changeState(action, InterventionStateEnum.open);\n action.state = InterventionStateEnum.open;\n }\n\n private async changeState(action: ActionDto, state: InterventionStateEnum): Promise<void> {\n await this.actionService.changeState(action.team.publicKey, action.publicKey, state);\n this.viewModelState.reload();\n }\n\n protected onDataUpdate(data: IActionState): void {\n };\n}\n","@if (!action.deleted) {\n <div [id]=\"'action-' + action.publicKey\" class=\"wirebox action contentwithborders\" [ngClass]=\"[multipleTeams ? action.team.colorString : '', action.isDue ? 'due' : '']\" editActionDialog [action]=\"action\">\n <div class=\"summary property-description\" [innerHTML]=\"action.description\">\n </div>\n <div class=\"expectedeffect\">\n <h4>Should improve</h4>\n @for (area of action.expectedImpactOnLabels; track area) {\n <span class=\"badge positive\">{{ area }}</span>\n }\n </div>\n <div class=\"details\">\n <div class=\"properties\">\n <div class=\"property property-age\"><i class=\"ph-clock-bold icon\"></i> {{action.ageInDays}} days old</div>\n @if (multipleTeams) {\n <div class=\"property property-team\"><i class=\"ph-users-three-bold icon\"></i> {{action.team.name}}</div>\n }\n <div class=\"property property-owner\"><i class=\"ph-user-bold icon\"></i> {{action.owner | interventionOwnerToString}}</div>\n <div class=\"property property-type\"><i class=\"ph-tag-bold icon\"></i> {{action.type | interventionTypeToString}}</div>\n @if (action.url) {\n <div class=\"property property-url\"><i class=\"ph-arrow-square-in-bold icon\"></i> <a [href]=\"action.url\" target=\"_blank\" (click)=\"$event.stopPropagation()\">open detail url</a></div>\n }\n @if (action.due) {\n <div class=\"property property-due\">@if (!action.isDue) {\n <i class=\"ph-calendar-bold icon\"></i>\n }@if (action.isDue) {\n <i class=\"ph-bell-simple-ringing-bold\"></i>\n } Due on {{action.due | date}}</div>\n }\n </div>\n @if (action.state == 'Open') {\n <span class=\"status unimpeded ph-fire-simple\" matTooltip=\"Mark this item as impeded. This means that help from outside the team (e.g. management, coaches) is urgently needed to complete on this action. Impeded actions are highlighted in the Teams Dashboard.'\" (click)=\"impede($event, action)\"></span>\n }\n @if (action.state == 'Impeded') {\n <span class=\"status impeded\" matTooltip=\"This action is impeded. The team needs urgent help from outside team to complete this action.\" (click)=\"unimpede($event, action)\">\n <img src=\"/assets/img/impeded.svg\" class=\"icon\">\n </span>\n }\n <div>\n @if (action.state == 'Obsolete') {\n <span class=\"status obsolete ph-eye-slash-bold\" matTooltip=\"This action was marked obsolete. Click to re-open this action\" (click)=\"open($event, action)\"></span>\n }\n @if (action.state == 'Completed') {\n <span class=\"status checked ph-check-circle-fill\" matTooltip=\"Mark this action as uncompleted\" (click)=\"open($event, action)\"></span>\n }\n @if (action.state == 'Open' || action.state == 'Impeded') {\n <span class=\"status unchecked ph-circle\" matTooltip=\"Mark this action as completed\" (click)=\"complete($event, action)\"></span>\n }\n </div>\n </div>\n </div>\n}\n","import { Component, Directive, HostListener, Inject } from '@angular/core';\nimport { MatDialog, MatDialogConfig, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { UserSettingsDto } from '../../../models/userSettingsDto';\nimport { IUserSettingStrategy, VIEWSTATE_USERSETTINGS_STRATEGY } from '../../../viewModel/userSettings.service';\nimport { ViewModelStateBase, VIEWSTATE_PROVIDER } from '../../../viewModel/viewModelState.service';\nimport { IActionState } from '../../interfaces/IActionState';\nimport { InterventionOwnerEnum, InterventionStateEnum, InterventionTypeEnum } from '../../models/actionDto';\nimport { ActionOptionDto } from '../../models/actionOptionsDto';\nimport { ActionService } from '../../services/actionService';\n\n@Component({\n templateUrl: './dialog-filters.component.html',\n styleUrls: ['./dialog-filters.component.less'],\n standalone: false\n})\nexport class DialogActionFiltersComponent extends ComponentWithViewStateBase<IActionState> {\n public stateFilterList: ActionOptionDto[];\n public ownerFilterList: ActionOptionDto[];\n public typeFilterList: ActionOptionDto[];\n public expectedEffectOnList: ActionOptionDto[];\n public teams: ActionOptionDto[];\n public multipleTeams: boolean;\n\n constructor(@Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IActionState>, private actionService: ActionService, protected snackBar: MatSnackBar, private dialogRef: MatDialogRef<DialogActionFiltersComponent>, @Inject(VIEWSTATE_USERSETTINGS_STRATEGY) protected userSettings: IUserSettingStrategy, @Inject(MAT_DIALOG_DATA) public data: {}) {\n super(state, snackBar)\n }\n\n async ngOnInit(): Promise<void> {\n super.ngOnInit();\n\n this.stateFilterList = [];\n this.stateFilterList.push(new ActionOptionDto(null, \"Show all\"));\n this.stateFilterList.push(...this.actionService.getStateOptions());\n\n this.ownerFilterList = [];\n this.ownerFilterList.push(new ActionOptionDto(null, \"Show all\"));\n this.ownerFilterList.push(...this.actionService.getOwnerOptions());\n\n this.typeFilterList = [];\n this.typeFilterList.push(new ActionOptionDto(null, \"Show all\"));\n this.typeFilterList.push(...this.actionService.getTypeOptions());\n }\n\n protected onDataUpdate(data: IActionState): void {\n this.expectedEffectOnList = data.factorScores.factorScores.map(p => new ActionOptionDto(p.key, p.name));\n this.expectedEffectOnList.unshift(new ActionOptionDto(null, \"All\"));\n this.teams = data.teamList.names != null ? data.teamList.names.map(p => new ActionOptionDto(p.publicKey, p.name)) : [];\n this.multipleTeams = this.teams.length > 0;\n };\n\n public async applyFilters() {\n await this.userSettings.apply();\n this.dialogRef.close();\n }\n\n public async clearFilters() {\n this.userSettings.settings.user.interventionFilter.expectedImpactOn = null;\n this.userSettings.settings.user.interventionFilter.type = null;\n this.userSettings.settings.user.interventionFilter.owner = null;\n this.userSettings.settings.user.interventionFilter.state = null;\n this.userSettings.settings.user.interventionFilter.teamKey = null;\n this.userSettings.settings.user.interventionFilter.keyword = null;\n\n await this.userSettings.apply();\n this.dialogRef.close();\n }\n}\n\n@Directive({\n selector: '[actionFiltersDialog]',\n standalone: false\n})\nexport class OpenActionFiltersDialogDirective {\n constructor(private dialog: MatDialog) {\n }\n\n @HostListener('click')\n onClick(): void {\n const dialogConfig = new MatDialogConfig();\n dialogConfig.panelClass = 'dialog';\n dialogConfig.enterAnimationDuration = 0;\n dialogConfig.exitAnimationDuration = 0;\n this.dialog.open(DialogActionFiltersComponent, dialogConfig);\n }\n}\n\n","<div class=\"dialog-header\" id=\"dialog-actionfilters\">\n <h1 mat-dialog-title>Action filters</h1>\n <div class=\"close\" mat-dialog-close><i class=\"responsive icon ph-x-bold\"></i></div>\n</div>\n<mat-dialog-content>\n @if (userSettings.settings && userSettings.settings.user) {\n <div class=\"filters\">\n <mat-form-field class=\"status\" appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>Status</mat-label>\n <mat-select id=\"actions-filter-state\" [(ngModel)]=\"userSettings.settings.user.interventionFilter.state\">\n @for (state of stateFilterList; track state) {\n <mat-option class=\"select-option\" [value]=\"state.key\">{{state.label}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <mat-form-field class=\"owner\" appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>Owner</mat-label>\n <mat-select id=\"actions-filter-owner\" [(ngModel)]=\"userSettings.settings.user.interventionFilter.owner\">\n @for (state of ownerFilterList; track state) {\n <mat-option class=\"select-option\" [value]=\"state.key\">{{state.label}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n @if (multipleTeams) {\n <mat-form-field class=\"team\" appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>Team</mat-label>\n <mat-select id=\"actions-filter-team\" [(ngModel)]=\"userSettings.settings.user.interventionFilter.teamKey\">\n <mat-option class=\"select-option\" [value]=\"null\">All teams</mat-option>\n @for (team of teams; track team) {\n <mat-option class=\"select-option\" [value]=\"team.key\">{{team.label}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n <mat-form-field class=\"type\" appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>Type</mat-label>\n <mat-select id=\"actions-filter-type\" [(ngModel)]=\"userSettings.settings.user.interventionFilter.type\">\n @for (state of typeFilterList; track state) {\n <mat-option class=\"select-option\" [value]=\"state.key\">{{state.label}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <mat-form-field class=\"expectedImpactOn\" appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>Expected impact on</mat-label>\n <mat-select id=\"actions-filter-expectedImpactOn\" [(ngModel)]=\"userSettings.settings.user.interventionFilter.expectedImpactOn\">\n @for (state of expectedEffectOnList; track state) {\n <mat-option class=\"select-option\" [value]=\"state.key\">{{state.label}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <div class=\"toolbar\">\n <div class=\"button primary\" id=\"actions-filters-apply\" (click)=\"applyFilters()\">apply filters</div>\n <div class=\"button\" id=\"actions-filters-clear\" (click)=\"clearFilters()\"><span class=\"icon ph-trash\"></span>clear filters</div>\n </div>\n </div>\n }\n</mat-dialog-content>\n","export class DateRangeDto {\n from: Date;\n to: Date;\n}\n","import { DateRangeDto } from \"../../pipes/dateRange/ngx-dateRangeDto.model\";\n\nexport class ExportActionsRequestDto {\n dateRange: DateRangeDto;\n}\n","import { Component, Inject } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport * as moment from 'moment';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { DateRangeDto } from '../../../pipes/dateRange/ngx-dateRangeDto.model';\nimport { IViewState } from '../../../viewModel/interfaces';\nimport { ViewModelStateBase, VIEWSTATE_PROVIDER } from '../../../viewModel/viewModelState.service';\nimport { ExportActionsRequestDto } from '../../models/exportRequestDto';\nimport { ActionService } from '../../services/actionService';\n\n@Component({\n templateUrl: './dialog-export-actions.component.html',\n styleUrls: ['./dialog-export-actions.component.less'],\n standalone: false\n})\nexport class DialogExportActionsComponent extends ComponentWithViewStateBase<IViewState> {\n public form: FormGroup;\n public sending: boolean;\n public submitted: boolean;\n\n constructor(@Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IViewState>, protected snackBar: MatSnackBar, private actionService: ActionService, private dialogRef: MatDialogRef<DialogExportActionsComponent>, private formBuilder: FormBuilder) {\n super(state, snackBar);\n }\n\n ngOnInit() {\n this.createForm();\n this.form.controls.start.setValue(moment.utc().subtract(6, 'months').toISOString());\n this.form.controls.end.setValue(moment.utc().toISOString());\n }\n\n public async submit(): Promise<void> {\n this.submitted = true;\n if (!this.form.valid) { return; }\n\n var request = new ExportActionsRequestDto();\n request.dateRange = new DateRangeDto();\n request.dateRange.from = this.form.controls.start.value;\n request.dateRange.to = this.form.controls.end.value;\n\n this.sending = true;\n this.actionService.exportActions(request).subscribe(success => {\n let binaryData = [];\n binaryData.push(new Uint8Array([0xEF, 0xBB, 0xBF])); // UTF8 bom\n binaryData.push(success);\n let downloadLink = document.createElement('a');\n downloadLink.href = window.URL.createObjectURL(new Blob(binaryData, { type: success.type }));\n downloadLink.setAttribute('download', 'export-actions.csv');\n document.body.appendChild(downloadLink);\n downloadLink.click();\n this.dialogRef.close();\n this.sending = false;\n this.showSuccess(\"Download started. You may have to allow it in your browser.\");\n });\n }\n\n protected onDataUpdate(data: IViewState): void {\n };\n\n private createForm(): void {\n this.form = this.formBuilder.group({\n start: [{ value: \"\" }, Validators.required],\n end: [{ value: \"\" }, Validators.required],\n });\n };\n}\n","<div class=\"dialog-header\">\n <h1 mat-dialog-title>Export actions</h1>\n <div class=\"close\" mat-dialog-close><i class=\"responsive icon ph-x-bold\"></i></div>\n</div>\n<mat-dialog-content>\n <p>Export actions to .csv for your own analyses. <a href=\"https://github.com/theliberators/scrumteamsurvey.docs/wiki/Export-File-Definitions\">Our Wiki</a> has a definition.</p>\n <form [formGroup]=\"form\" (ngSubmit)=\"submit()\">\n <mat-form-field>\n <mat-label>Select date range (creation date)</mat-label>\n <mat-date-range-input [rangePicker]=\"picker\">\n <input matStartDate formControlName=\"start\" placeholder=\"Start date\">\n <input matEndDate formControlName=\"end\" placeholder=\"End date\">\n </mat-date-range-input>\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-date-range-picker #picker></mat-date-range-picker>\n @if (form.controls.start.hasError('matStartDateInvalid')) {\n <mat-error>Invalid start date</mat-error>\n }\n @if (form.controls.end.hasError('matEndDateInvalid')) {\n <mat-error>Invalid end date</mat-error>\n }\n </mat-form-field>\n\n <div class=\"toolbar\">\n <button class=\"button primary\" type=\"submit\" [ngClass]=\"{'loading': sending }\" [disabled]=\"sending\">export</button>\n <button class=\"button\" mat-dialog-close>cancel</button>\n </div>\n </form>\n</mat-dialog-content>\n","import { Directive, HostListener } from '@angular/core';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\nimport { DialogExportActionsComponent } from './dialog-export-actions.component';\n\n@Directive({\n selector: '[exportActionsDialog]',\n standalone: false\n})\nexport class OpenExportActionsDialogDirective {\n constructor(private dialog: MatDialog) {\n }\n\n @HostListener('click')\n onClick(): void {\n const dialogConfig = new MatDialogConfig();\n dialogConfig.panelClass = ['dialog', 'export'];\n dialogConfig.autoFocus = false;\n dialogConfig.enterAnimationDuration = 0;\n dialogConfig.exitAnimationDuration = 0;\n this.dialog.open(DialogExportActionsComponent, dialogConfig);\n }\n}\n","import { Component, Inject, Input, ViewChild } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ActivatedRoute } from '@angular/router';\nimport { Subscription, timer } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\nimport { PaginatorPageEvent } from '../../../components/paginator/paginator.component';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { PaginatedResponse } from '../../../models/paginatedResponse';\nimport { ActionListFilter, UserSettingsDto } from '../../../models/userSettingsDto';\nimport { IUserSettingStrategy, UserSettingService, VIEWSTATE_USERSETTINGS_STRATEGY } from '../../../viewModel/userSettings.service';\nimport { ViewModelStateBase, VIEWSTATE_PROVIDER } from '../../../viewModel/viewModelState.service';\nimport { IActionState } from '../../interfaces/IActionState';\nimport { ActionDto, InterventionSortEnum } from '../../models/actionDto';\nimport { ActionOptionDto } from '../../models/actionOptionsDto';\nimport { ActionPrefillDto } from '../../models/actionPrefillDto';\nimport { ActionService } from '../../services/actionService';\nimport { ActionManageComponent } from '../action-manage/action-manage.component';\n\n@Component({\n selector: 'action-list',\n templateUrl: './action-list.component.html',\n styleUrls: ['./action-list.component.less'],\n standalone: false\n})\nexport class ActionListComponent extends ComponentWithViewStateBase<IActionState> {\n @Input() public prefill: ActionPrefillDto;\n @Input() public overrideFilter: ActionListFilter;\n @ViewChild(ActionManageComponent) actionManageComponent: ActionManageComponent;\n public actions: PaginatedResponse<ActionDto>;\n public multipleTeams: boolean;\n public sortOptionsList: ActionOptionDto[];\n public filterCount: number;\n public keywordControl: FormControl;\n public isLoggedIn: boolean;\n public userSettings: UserSettingsDto;\n public subscription: Subscription;\n\n constructor(protected snackBar: MatSnackBar, protected userSettingsService: UserSettingService, protected actionService: ActionService, @Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IActionState>, protected route: ActivatedRoute) {\n super(state, snackBar)\n }\n\n async ngOnInit(): Promise<void> {\n super.ngOnInit();\n this.multipleTeams = this.prefill.teamKey == null || this.prefill.teamKey.length == 0;\n this.userSettings = this.userSettingsService.get();\n\n this.subscription = this.userSettingsService.changed.subscribe((settings: UserSettingsDto) => {\n this.userSettings = settings;\n });\n\n this.sortOptionsList = [];\n this.sortOptionsList.push(new ActionOptionDto(InterventionSortEnum.age, \"Age (oldest first)\"));\n this.sortOptionsList.push(new ActionOptionDto(InterventionSortEnum.due, \"Due (upcoming first)\"));\n this.sortOptionsList.push(new ActionOptionDto(InterventionSortEnum.created, \"Created (newest first)\"));\n this.sortOptionsList.push(new ActionOptionDto(InterventionSortEnum.owner, \"Owner\"));\n this.sortOptionsList.push(new ActionOptionDto(InterventionSortEnum.type, \"Action type\"));\n\n this.keywordControl = new FormControl();\n this.keywordControl.valueChanges.pipe(debounceTime(1000)).subscribe(data => {\n this.userSettings.user.interventionFilter.keyword = this.keywordControl.value;\n this.userSettings.user.interventionFilter.page = 0;\n this.loadActions();\n });\n\n if (this.overrideFilter) {\n this.userSettings.user.interventionFilter = this.overrideFilter;\n\n // this is a bit of hack to avoid Angular from throwing errors because the viewstate has been checked\n timer(0).subscribe(() => {\n this.loadActions();\n });\n }\n }\n\n public async setPaging(event: PaginatorPageEvent) {\n this.userSettings.user.interventionFilter.pageSize = event.pageSize;\n this.userSettings.user.interventionFilter.page = event.pageIndex;\n await this.loadActions();\n }\n\n public async setSort(sort: string) {\n this.userSettings.user.interventionFilter.sort = sort as InterventionSortEnum;\n await this.loadActions();\n }\n\n protected onDataUpdate(data: IActionState): void {\n this.actions = data.actions.items;\n this.isLoggedIn = data.userInfo.isAdmin || data.userInfo.isCoach;\n this.userSettings = data.userInfo.settings;\n\n this.filterCount = 0;\n if (this.userSettings.user.interventionFilter.owner != null) {\n this.filterCount++;\n }\n\n if (this.userSettings.user.interventionFilter.type != null) {\n this.filterCount++;\n }\n\n if (this.userSettings.user.interventionFilter.state != null) {\n this.filterCount++;\n }\n\n if (this.userSettings.user.interventionFilter.expectedImpactOn != null) {\n this.filterCount++;\n }\n\n if (this.userSettings.user.interventionFilter.teamKey != null) {\n this.filterCount++;\n }\n };\n\n public async loadActions() {\n this.actions.items = null;\n await this.userSettingsService.set(this.userSettings);\n this.state.forcedReload();\n document.getElementById(\"actionstoolbar\").scrollIntoView({\n behavior: \"smooth\",\n block: \"start\",\n inline: \"nearest\"\n });\n }\n}\n","<div class=\"primarycolumn\">\n <h2>Actions</h2>\n <div class=\"listtoolbar\" id=\"actionstoolbar\">\n <div class=\"listtoolbar-item settings\">\n <div class=\"button borderless filters\" id=\"actions-filters\" actionFiltersDialog><span class=\"ph-faders-horizontal-bold icon\"></span> Filters @if (filterCount > 0) {\n <span class=\"filtercount\">{{filterCount}}</span>\n }</div>\n <div class=\"button borderless sort\" id=\"actions-sort\" [matMenuTriggerFor]=\"matSortingMenu\"><span class=\"ph-funnel-simple-bold icon\"></span> {{userSettings.user.interventionFilter.sort || \"Sort\"}}</div>\n <mat-menu #matSortingMenu=\"matMenu\">\n @for (sortOption of sortOptionsList; track sortOption) {\n <button mat-menu-item (click)=\"setSort(sortOption.key)\">\n {{sortOption.label}}\n </button>\n }\n </mat-menu>\n @if (isLoggedIn) {\n <div class=\"button borderless\" id=\"export-actions\" exportActionsDialog><span class=\"ph-download-simple icon\"></span> Export</div>\n }\n </div>\n\n <mat-form-field class=\"listtoolbar-item findbykeyword\" appearance=\"fill\">\n <mat-label>search</mat-label>\n <input matInput name=\"keyword\" id=\"actions-filter-keyword\" type=\"text\" maxlength=\"50\" [formControl]=\"keywordControl\" />\n </mat-form-field>\n\n <div class=\"listtoolbar-item quickactions\">\n <!--<div class=\"viewmodes\">\n <div class=\"viewmode active\"><span class=\"ph-grid-four icon\"></span></div>\n <div class=\"viewmode\"><span class=\"ph-list icon\"></span></div>\n </div>-->\n <a class=\"button primary newaction\" id=\"action-addnew\" addActionDialog [prefill]=\"prefill\"><span class=\"icon ph-plus\"></span> New action</a>\n</div>\n</div>\n\n@if (!actions.items) {\n <div class=\"loading\">\n <div class=\"loading-icon dark\"></div>\n </div>\n}\n\n@if (actions.items && actions.items.length == 0) {\n <div class=\"wirebox calltoaction\">\n <div class=\"contentwithborders\">\n <div class=\"center\">\n <img src=\"assets/img/improve.png\" />\n <h2>How will you improve?</h2>\n <p>Identifying the areas where you want to improve is only the first step. How do you and your team(s) aim to improve? Add the actions you intend to take and where you expect improvements when successful.</p>\n </div>\n </div>\n </div>\n}\n\n@if (actions && actions.items) {\n <div class=\"actions\">\n @for (action of actions.items; track action) {\n <action-tile [action]=\"action\" [multipleTeams]=\"multipleTeams\" [actionManageComponent]=\"actionManageComponent\"></action-tile>\n }\n </div>\n}\n\n@if (actions && actions.items && actions.totalItems > 0) {\n <paginator [items]=\"actions\" (page)=\"setPaging($event)\"></paginator>\n}\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatNativeDateModule } from '@angular/material/core';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatPaginatorModule } from '@angular/material/paginator';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { RouterModule } from '@angular/router';\nimport { PaginatorModule } from '../components/paginator/paginator.module';\nimport { ActionListComponent } from './components/action-list/action-list.component';\nimport { ActionManageComponent } from './components/action-manage/action-manage.component';\nimport { ActionTileComponent } from './components/action-tile/action-tile.component';\nimport { DialogExportActionsComponent } from './dialogs/dialog-export-actions/dialog-export-actions.component';\nimport { OpenExportActionsDialogDirective } from './dialogs/dialog-export-actions/dialog-export-actions.directive';\nimport { DialogActionFiltersComponent, OpenActionFiltersDialogDirective } from './dialogs/dialog-filters/dialog-filters.component';\nimport { DialogActionManageComponent, OpenAddActionDialogDirective, OpenEditActionDialogDirective } from './dialogs/dialog-manageaction/dialog-manageaction.component';\nimport { InterventionOwnerToStringPipe } from './pipes/interventionOwnerToString.pipe';\nimport { InterventionStateToStringPipe } from './pipes/interventionStateToString.pipe';\nimport { InterventionTypeToStringPipe } from './pipes/interventionTypeToString.pipe';\n\n@NgModule({\n imports: [\n MatDialogModule,\n MatTooltipModule,\n MatNativeDateModule,\n MatMenuModule,\n MatPaginatorModule,\n MatSelectModule,\n RouterModule,\n PaginatorModule,\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n MatInputModule,\n MatDatepickerModule],\n declarations: [\n ActionListComponent,\n ActionManageComponent,\n ActionTileComponent,\n DialogActionManageComponent,\n DialogActionFiltersComponent,\n DialogExportActionsComponent,\n InterventionTypeToStringPipe,\n InterventionStateToStringPipe,\n InterventionOwnerToStringPipe,\n OpenAddActionDialogDirective,\n OpenEditActionDialogDirective,\n OpenActionFiltersDialogDirective,\n OpenExportActionsDialogDirective],\n exports: [\n ActionListComponent,\n ActionManageComponent,\n ActionTileComponent,\n DialogActionManageComponent,\n DialogActionFiltersComponent,\n DialogExportActionsComponent,\n InterventionTypeToStringPipe,\n InterventionOwnerToStringPipe,\n InterventionStateToStringPipe,\n OpenAddActionDialogDirective,\n OpenEditActionDialogDirective,\n OpenActionFiltersDialogDirective,\n OpenExportActionsDialogDirective]\n})\nexport class ActionsModule { }\n","export class PaginatedResponse<Dto> {\n constructor() {\n this.items = [];\n }\n\n items: Dto[];\n totalItems: number;\n page: number;\n itemsPerPage: number;\n}\n","import { PaginatedResponse } from \"../../models/paginatedResponse\";\nimport { ActionDto } from \"./actionDto\";\n\nexport class ActionCollectionDto {\n constructor() {\n this.items = new PaginatedResponse<ActionDto>;\n }\n\n items: PaginatedResponse<ActionDto>;\n}\n","import { Inject, Injectable, InjectionToken, Optional } from '@angular/core';\n\nexport class ActionConfigDto {\n}\n\nexport const ActionConfigToken = new InjectionToken<ActionConfigDto>(\n 'actions-angular.config'\n);\n\n@Injectable({ providedIn: 'root' })\nexport class ActionClientConfig {\n private config?: ActionConfigDto;\n\n constructor(@Optional() @Inject(ActionConfigToken) config?: ActionConfigDto) {\n if (config) {\n this.set(config);\n }\n }\n\n set(config: ActionConfigDto): void {\n this.config = config;\n }\n\n get(): ActionConfigDto {\n return this.config as ActionConfigDto;\n }\n}\n","import { ICalendarEvent } from './../model/calendar-event.model';\n\nexport const MS_IN_MINUTES = 60 * 1000;\nexport const DATE_POCTUATION_REGEX = /-|:|\\.\\d+/g;\n\nexport abstract class BaseCalendarGenerator {\n protected startTime: string;\n protected endTime: string;\n protected description: string;\n\n public abstract get href(): string;\n\n constructor(protected event: ICalendarEvent) {\n this.startTime = this.formatTime(event.start);\n this.endTime = this.calculateEndTime(event);\n this.description = this.formatDescription(event.description || '');\n }\n\n protected get uid(): string {\n return (this.s4()\n + this.s4()\n + '-' + this.s4()\n + '-4' + this.s4().substr(0, 3)\n + '-' + this.s4()\n + '-' + this.s4()\n + this.s4()\n + this.s4()).toLowerCase();\n }\n\n protected formatDescription(description: string): string {\n return description.replace(/'/g, '\\'');\n }\n\n protected formatDescriptionForOnlineCalendar(description: string): string | null {\n if (description.length) {\n return description.replace(/\\\\r/g, '\\n').replace(/\\\\n/g, '\\n');\n }\n\n return null;\n }\n\n protected formatTime(date: Date): string {\n return date.toISOString().replace(DATE_POCTUATION_REGEX, '');\n }\n\n protected calculateEndTime(event: any): string {\n if (event.end) {\n return this.formatTime(event.end);\n }\n\n if (!event.duration) {\n throw new Error('You have to provide either the duration or end');\n }\n\n return this.formatTime(new Date(event.start.getTime() + (event.duration * MS_IN_MINUTES)));\n }\n\n private s4(): string {\n // tslint:disable-next-line\n return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);\n }\n}\n","import { ICalendarEvent } from '../model/calendar-event.model';\nimport { BaseCalendarGenerator } from './base-calendar.generator';\n\nexport const GOOGLE_URL = 'https://www.google.com/calendar/render?action=TEMPLATE';\nexport const DATE_POCTUATION_REGEX = /-|:|\\.\\d+/g;\n\nexport class GoogleCalendarGenerator extends BaseCalendarGenerator {\n\n constructor(protected event: ICalendarEvent) {\n super(event);\n }\n\n public get href(): string {\n const chunk = encodeURI(\n `${GOOGLE_URL}&dates=${(this.startTime || '')}/${(this.endTime || '')}&location=${(this.event.address || '')}&sprop=${(this.event.url || '')}`,\n );\n\n return chunk\n + `&text=${encodeURIComponent(this.event.title || '')}`\n + `&details=${encodeURIComponent(this.formatDescriptionForOnlineCalendar(this.event.description || '') || '')}`;\n }\n}\n","import { ICalendarEvent } from '../model/calendar-event.model';\nimport { BaseCalendarGenerator } from './base-calendar.generator';\n\nexport class IcsCalendarGenerator extends BaseCalendarGenerator {\n\n constructor(protected event: ICalendarEvent) {\n super(event);\n }\n\n public get href(): string {\n return encodeURI(\n 'data:text/calendar;charset=utf8,' + [\n 'BEGIN:VCALENDAR',\n 'PRODID:-//Destination Search//ical4j 1.0//EN',\n 'VERSION:2.0',\n 'CALSCALE:GREGORIAN',\n 'X-MS-OLK-FORCEINSPECTOROPEN:true',\n 'METHOD:PUBLISH',\n 'BEGIN:VEVENT',\n `URL:${this.event.url || ''}`,\n `DTSTART:${(this.startTime || '')}`,\n `DTEND:${(this.endTime || '')}`,\n `SUMMARY:${(this.event.title || '')}`,\n `DESCRIPTION:${(this.event.description || '')}`,\n `LOCATION:${(this.event.address || '')}`,\n 'SEQUENCE:0',\n `DTSTAMP:${this.dtStamp}`,\n `UID:${this.uid}`,\n 'END:VEVENT',\n 'END:VCALENDAR'].join('\\n'));\n }\n\n private get dtStamp() {\n return this.formatTime(new Date());\n }\n}\n","import { ICalendarEvent } from '../model/calendar-event.model';\nimport { BaseCalendarGenerator } from './base-calendar.generator';\n\n// tslint:disable-next-line\nexport const OUTLOOK_BASE_URL = 'https://outlook.live.com/owa/?rru=addevent&path=%2fcalendar%2fview%2fMonth&authRedirect=true&realm=live.com&whr=live.com&CBCXT=out&fl=wld';\nexport const DATE_POCTUATION_REGEX = /-|:|\\.\\d+/g;\n\nexport class OutlookCalendarGenerator extends BaseCalendarGenerator {\n\n constructor(protected event: ICalendarEvent) {\n super(event);\n }\n\n public get href(): string {\n const chunk = encodeURI(\n `${OUTLOOK_BASE_URL}&startdt=${(this.startTime || '')}&enddt=${(this.endTime || '')}&uid=${this.uid}&location=${this.event.address}`);\n\n return chunk\n + `&subject=${encodeURIComponent(this.event.title || '')}`\n + `&body=${encodeURIComponent(this.formatDescriptionForOnlineCalendar(this.event.description || '') || '')}`;\n }\n}\n","import { ICalendarEvent } from '../model/calendar-event.model';\nimport { BaseCalendarGenerator, MS_IN_MINUTES } from './base-calendar.generator';\n\nexport const YAHOO_URL = 'http://calendar.yahoo.com/?v=60&view=d&type=20';\n\nexport class YahooCalendarGenerator extends BaseCalendarGenerator {\n\n constructor(protected event: ICalendarEvent) {\n super(event);\n }\n\n private getYahooEventDuration() {\n const eventDuration = this.event.end ?\n ((this.event.end.getTime() - this.event.start.getTime()) / MS_IN_MINUTES) :\n this.event.duration;\n\n // Yahoo dates are crazy, we need to convert the duration from minutes to hh:mm\n const yahooHourDuration = eventDuration < 600 ?\n `0${Math.floor((eventDuration / 60))}` :\n `${Math.floor((eventDuration / 60))}`;\n\n const yahooMinuteDuration = eventDuration % 60 < 10 ?\n `0${eventDuration % 60}` :\n `${eventDuration % 60}`;\n\n return yahooHourDuration + yahooMinuteDuration;\n }\n\n public get href(): string {\n const chunk = encodeURI(\n `${YAHOO_URL}&st=${this.startTime || ''}&dur=${(this.getYahooEventDuration() || '')}&in_loc=${(this.event.address || '')}&url=${(this.event.url || '')}`,\n );\n return chunk\n + `&title=${encodeURIComponent(this.event.title || '')}`\n + `&desc=${encodeURIComponent(this.formatDescriptionForOnlineCalendar(this.event.description || '') || '')}`;\n }\n}\n","export enum CalendarTypeEnum {\n google = 0,\n yahoo = 1,\n iCalendar = 2,\n outlook = 3,\n outlookLive = 4,\n}\n","import { Injectable } from '@angular/core';\nimport { BaseCalendarGenerator } from './../generators/base-calendar.generator';\nimport { GoogleCalendarGenerator } from './../generators/google-calendar.generator';\nimport { IcsCalendarGenerator } from './../generators/ics-calendar.generator';\nimport { OutlookCalendarGenerator } from './../generators/outlook-calendar.generator';\nimport { YahooCalendarGenerator } from './../generators/yahoo-calendar.generator';\nimport { CalendarTypeEnum } from './../model/calendar-type.enum';\nimport { ICalendarEvent } from './../model/calendar-event.model';\n\n@Injectable()\nexport class NgAddToCalendarService {\n\n public calendarType: typeof CalendarTypeEnum = CalendarTypeEnum;\n\n public getHrefFor(type: CalendarTypeEnum, event: ICalendarEvent): string {\n const generatorType = this.getGeneratorFor(type) as any;\n\n return (new generatorType(event) as BaseCalendarGenerator).href;\n }\n\n // tslint:disable-next-line:member-ordering\n private _factory: typeof BaseCalendarGenerator[] = [\n GoogleCalendarGenerator,\n YahooCalendarGenerator,\n IcsCalendarGenerator,\n IcsCalendarGenerator,\n OutlookCalendarGenerator\n ];\n\n private getGeneratorFor(type: CalendarTypeEnum): typeof BaseCalendarGenerator {\n return this._factory[type];\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { NgAddToCalendarService } from './service/ng-add-to-calendar.service';\n\n// REFERENCE: Codebase from https://github.com/TradeMe/ngAddToCalendar/tree/master/src. We moved it to the project to benefit from ES6 compilation\n@NgModule({\n declarations: [],\n providers: [NgAddToCalendarService],\n exports: []\n})\n\nexport class NgAddToCalendarModule { }\n","export class DismissAlertRequestDto {\n keys: string[];\n\n // set only the narrowest one of these three, and no more than one\n snapshotKey: string;\n participantKey: string;\n teamKey: string;\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ApiConfig } from '../../apiUrlToken';\nimport { VIEWSTATE_PROVIDER, ViewModelStateBase } from '../../viewModel/viewModelState.service';\nimport { IAlertState } from '../interfaces/IAlertState';\nimport { DismissAlertRequestDto } from '../models/dismissAlertRequestDto.model';\n\n@Injectable()\nexport class AlertService {\n constructor(@Inject(VIEWSTATE_PROVIDER) protected state: ViewModelStateBase<IAlertState>, private http: HttpClient, @Inject(ApiConfig) private config: ApiConfig) {\n console.log(\"Config for alert client set\", config);\n }\n\n public dismiss(request: DismissAlertRequestDto): Observable<void> {\n this.state.reload();\n return this.http.post<void>(this.config.get().apiUrl + \"alerts/dismiss/\", request);\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { LOCAL_STORAGE, StorageService } from 'ngx-webstorage-service';\nimport { AlertDto } from '../models/alertDto.model';\n\n@Injectable({ providedIn: 'root' })\nexport class DismissedAlertsService {\n public dismissedAlerts: string[];\n\n constructor(@Inject(LOCAL_STORAGE) private storage: StorageService) {\n this.dismissedAlerts = this.storage.get(\"dismissed-alerts\") || [];\n }\n\n public dismiss(alert: AlertDto): void {\n if (!alert) { return; }\n if (this.isDismissed(alert)) { return; }\n this.dismissedAlerts.push(alert.key);\n this.storage.set(\"dismissed-alerts\", this.dismissedAlerts);\n }\n\n public isDismissed(alert: AlertDto): boolean {\n return this.dismissedAlerts.find(p => p == alert.key) != null;\n }\n\n public clear(): void {\n this.storage.remove(\"dismissed-alerts\");\n this.dismissedAlerts = [];\n }\n}\n","import { Component, Inject, Input } from '@angular/core';\nimport { PageEvent } from '@angular/material/paginator';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { LOCAL_STORAGE, StorageService } from 'ngx-webstorage-service';\nimport { Subscription } from 'rxjs';\nimport { ComponentBase } from '../../../componentBase';\nimport { PaginatedResponse } from '../../../models/paginatedResponse';\nimport { ViewModelStateBase, VIEWSTATE_PROVIDER } from '../../../viewModel/viewModelState.service';\nimport { IAlertState } from '../../interfaces/IAlertState';\nimport { AlertDto } from '../../models/alertDto.model';\nimport { AlertFilterDto } from '../../models/alertFilterDto.model';\nimport { DismissAlertRequestDto } from '../../models/dismissAlertRequestDto.model';\nimport { AlertService } from '../../services/alerts.service';\nimport { DismissedAlertsService } from '../../services/dismissedAlerts.service';\n\n@Component({\n selector: 'alerts',\n templateUrl: './alerts.component.html',\n styleUrls: ['./alerts.component.less'],\n standalone: false\n})\nexport class AlertsComponent extends ComponentBase {\n @Input() public pageSize: number = 10;\n @Input() public onlyUnread: boolean = false;\n private allAlerts: PaginatedResponse<AlertDto>;\n private unreadAlerts: PaginatedResponse<AlertDto>;\n public filteredAlerts: AlertDto[];\n public filter: AlertFilterDto = { itemsPerPage: this.pageSize, page: 0, totalItems: 0 };\n public viewStateSubscription: Subscription;\n\n constructor(private alertService: AlertService, private dismissedAlertService: DismissedAlertsService, protected snackBar: MatSnackBar, @Inject(VIEWSTATE_PROVIDER) private viewModelState: ViewModelStateBase<IAlertState>) {\n super(snackBar);\n }\n\n ngOnInit(): void {\n this.viewStateSubscription = this.viewModelState.data.subscribe(success => {\n if (success && success.loaded) {\n this.allAlerts = success.alerts.alerts;\n this.unreadAlerts = success.unreadAlerts;\n this.selectAlerts();\n }\n });\n\n this.selectAlerts();\n }\n\n public isDismissed(alert: AlertDto) {\n if (alert.isDismissed) { return true; }\n return this.dismissedAlertService.isDismissed(alert);\n }\n\n public setPaging(event: PageEvent) {\n this.filter.itemsPerPage = event.pageSize;\n this.filter.page = event.pageIndex;\n this.selectAlerts();\n }\n\n private selectAlerts() {\n if (!this.allAlerts) { return; }\n\n if (this.onlyUnread) {\n this.filteredAlerts = this.unreadAlerts.items;\n }\n else {\n this.filteredAlerts = this.allAlerts.items;\n }\n\n this.filter.itemsPerPage = this.pageSize;\n this.filter.totalItems = this.filteredAlerts.length;\n\n var startIndex = this.filter.page * this.filter.itemsPerPage;\n if (startIndex >= this.allAlerts.items.length) { startIndex = 0 };\n\n this.filteredAlerts = this.filteredAlerts\n .slice(startIndex, startIndex + this.filter.itemsPerPage);\n }\n\n public dismiss(alert: AlertDto) {\n if (alert.canBeDismissed) {\n var request = new DismissAlertRequestDto();\n request.keys = [alert.key];\n this.alertService.dismiss(request).subscribe(success => {\n alert.isDismissed = true;\n });\n }\n else {\n this.dismissedAlertService.dismiss(alert);\n this.unreadAlerts.items = this.unreadAlerts.items.filter(p => p.key != alert.key);\n }\n\n this.showSuccess(\"Alert dismissed. You can still find it in your archive.\");\n this.selectAlerts();\n }\n\n ngOnDestroy() {\n if (this.viewStateSubscription) {\n this.viewStateSubscription.unsubscribe();\n }\n }\n}\n","@if (filteredAlerts && filteredAlerts.length > 0) {\n <div class=\"alerts\">\n @for (alert of filteredAlerts; track alert) {\n <div class=\"alert-item\">\n <div class=\"description\" [innerHtml]=\"alert.body\"></div>\n <div class=\"bar\">\n @if (alert.urgency == 'warning') {\n <span class=\"icon ph-warning-fill\"></span>\n }\n @if (alert.urgency == 'information') {\n <span class=\"icon ph-info\"></span>\n }\n @if (alert.urgency == 'critical') {\n <span class=\"icon ph-circle-wavy-warning-fill\"></span>\n }\n <div class=\"date\">\n {{alert.posted | date : 'short'}}\n </div>\n @if (alert.url) {\n <div class=\"action\"><a target=\"_blank\" [href]=\"alert.url\">Explore ></a></div>\n }\n @if (!isDismissed(alert)) {\n <div class=\"dismiss\"><a href=\"javascript:void(null);\" (click)=\"dismiss(alert)\">Dismiss</a></div>\n }\n </div>\n </div>\n }\n </div>\n}\n\n@if (!filteredAlerts || filteredAlerts.length == 0) {\n <div class=\"wirebox calltoaction\">\n <div class=\"contentwithborders\">\n <div class=\"center\">\n <p>There are no alert. Or you've dismissed all.</p>\n </div>\n </div>\n </div>\n}\n\n@if (filteredAlerts && filteredAlerts.length > filter.itemsPerPage) {\n <mat-paginator [length]=\"filter.totalItems\" hidePageSize=\"true\" [pageSize]=\"filter.itemsPerPage\" (page)=\"setPaging($event)\"></mat-paginator>\n}\n","import { Component, Inject } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\n\n@Component({\n templateUrl: './dialog-alerts.component.html',\n styleUrls: ['./dialog-alerts.component.less'],\n standalone: false\n})\nexport class DialogAlertsComponent {\n public key: string;\n public archiveUrl: any[];\n\n constructor(public dialogRef: MatDialogRef<DialogAlertsComponent>, @Inject(MAT_DIALOG_DATA) public data: { archiveUrl: any[] }) {\n this.archiveUrl = data.archiveUrl;\n }\n\n ngOnInit() {\n }\n}\n","<div class=\"dialog-header\">\n <h1 mat-dialog-title>Alerts</h1>\n <div class=\"close\" mat-dialog-close><i class=\"responsive icon ph-x-bold\"></i></div>\n</div>\n<mat-dialog-content>\n <alerts [pageSize]=\"4\" [onlyUnread]=\"true\"></alerts>\n <div class=\"link\">\n <a href=\"javascript:void(null);\" [routerLink]=\"archiveUrl\" mat-dialog-close>archive ></a>\n </div>\n</mat-dialog-content>\n","import { Directive, HostListener, Input } from '@angular/core';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\nimport { DialogAlertsComponent } from './dialog-alerts.component';\n\n@Directive({\n selector: '[alertsDialog]',\n standalone: false\n})\nexport class OpenAlertsDialogDirective {\n @Input('archiveUrl') archiveUrl: any[] = ['/alerts'];\n\n constructor(private dialog: MatDialog) {\n }\n\n @HostListener('click')\n onClick(): void {\n const dialogConfig = new MatDialogConfig();\n dialogConfig.panelClass = ['dialog', 'alerts'];\n dialogConfig.autoFocus = false;\n dialogConfig.enterAnimationDuration = 0;\n dialogConfig.exitAnimationDuration = 0;\n dialogConfig.data = { archiveUrl: this.archiveUrl }\n this.dialog.open(DialogAlertsComponent, dialogConfig);\n }\n}\n\n","import { Component, Inject } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { VIEWSTATE_PROVIDER, ViewModelStateBase } from '../../../viewModel/viewModelState.service';\nimport { IAlertState } from '../../interfaces/IAlertState';\nimport { AlertDto } from '../../models/alertDto.model';\nimport { DismissedAlertsService } from '../../services/dismissedAlerts.service';\n\n@Component({\n selector: 'alert-announcement',\n templateUrl: './alert-announcement.component.html',\n styleUrls: ['./alert-announcement.component.less'],\n standalone: false\n})\nexport class AlertAnnouncementComponent extends ComponentWithViewStateBase<IAlertState> {\n public announcement: AlertDto;\n\n constructor(@Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IAlertState>, protected snackBar: MatSnackBar, private dismissedAlertService: DismissedAlertsService) {\n super(state, snackBar)\n }\n\n public dismiss() {\n this.dismissedAlertService.dismiss(this.announcement);\n this.announcement = null;\n }\n\n protected onDataUpdate(data: IAlertState): void {\n if (!data.alerts.announcement) { return; }\n if (this.dismissedAlertService.isDismissed(data.alerts.announcement)) { return; }\n this.announcement = data.alerts.announcement;\n };\n}\n","@if (announcement) {\n <div class=\"announcement\">\n <span class=\"icon ph-info-fill\"></span>\n {{announcement.title}}@if (announcement.url) {\n <a class=\"action\" [href]=\"announcement.url\" target=\"_blank\"><span class=\"icon ph-arrow-square-out\"></span>visit</a>\n }\n <span class=\"icon ph-x-circle dismiss\" (click)=\"dismiss()\"></span>\n</div>\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatPaginatorModule } from '@angular/material/paginator';\nimport { RouterModule } from '@angular/router';\nimport { StorageServiceModule } from 'ngx-webstorage-service';\nimport { AlertsComponent } from './components/alerts-list/alerts.component';\nimport { DialogAlertsComponent } from './components/dialog-alerts/dialog-alerts.component';\nimport { OpenAlertsDialogDirective } from './components/dialog-alerts/dialog-alerts.directive';\nimport { DismissedAlertsService } from './services/dismissedAlerts.service';\nimport { AlertAnnouncementComponent } from './components/alert-announcement/alert-announcement.component';\n\n@NgModule({\n imports: [MatDialogModule, MatPaginatorModule, RouterModule, CommonModule, StorageServiceModule],\n declarations: [AlertsComponent, OpenAlertsDialogDirective, DialogAlertsComponent, AlertAnnouncementComponent],\n exports: [AlertsComponent, OpenAlertsDialogDirective, DialogAlertsComponent, AlertAnnouncementComponent],\n providers: [DismissedAlertsService]\n})\nexport class AlertsModule { }\n","export class AlertDto {\n key: string;\n title: string;\n body: string;\n posted: Date;\n isDismissed: boolean;\n canBeDismissed: boolean;\n urgency: string;\n url: string;\n}\n","export class AlertFilterDto {\n itemsPerPage: number;\n totalItems: number;\n page: number;\n}\n","import { PaginatedResponse } from \"../../models/paginatedResponse\";\nimport { AlertDto } from \"./alertDto.model\";\n\nexport class AlertResponseDto {\n constructor() {\n this.alerts = new PaginatedResponse<AlertDto>();\n }\n\n alerts: PaginatedResponse<AlertDto>;\n announcement: AlertDto;\n}\n","import { Inject, Injectable, InjectionToken, Optional } from '@angular/core';\nexport class AlertConfigDto {\n}\n\nexport const AlertConfigToken = new InjectionToken<AlertConfigDto>(\n 'alert-angular.config'\n);\n\n@Injectable({ providedIn: 'root' })\nexport class AlertClientConfig {\n private config?: AlertConfigDto;\n\n constructor(@Optional() @Inject(AlertConfigToken) config?: AlertConfigDto) {\n if (config) {\n this.set(config);\n }\n }\n\n set(config: AlertConfigDto): void {\n this.config = config;\n }\n\n get(): AlertConfigDto {\n return this.config as AlertConfigDto;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { BrandingSettingsDto } from '../models/brandingSettingsDto';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class BrandingProvider {\n public palette: PaletteItem[];\n public changed = new Subject<PaletteItem[]>();\n public branding = new Subject<BrandingSettingsDto>();\n public currentBranding: BrandingSettingsDto;\n\n constructor() {\n }\n\n public set(branding: BrandingSettingsDto) {\n this.palette = [];\n this.palette.push(new PaletteItem(\"accent\", branding.accentColor));\n this.palette.push(new PaletteItem(\"theme\", branding.themeColor));\n this.palette.push(new PaletteItem(\"neutral\", branding.neutralColor));\n\n this.currentBranding = branding;\n this.branding.next(branding);\n this.changed.next(this.palette);\n }\n}\n\nexport class PaletteItem {\n constructor(key: string, hex: string) {\n this.key = key;\n this.hex = hex;\n }\n\n key: string;\n hex: string;\n}\n","import { Directive, HostBinding, Input } from '@angular/core';\nimport { take } from 'rxjs/operators';\nimport { BrandingProvider, PaletteItem } from './brandingProvider.service';\n\n@Directive({\n selector: '[brandbackground]',\n standalone: false\n})\nexport class BrandBackgroundDirective {\n @Input(\"palette\") palette: string = null;\n @HostBinding('style.background-color') backgroundColor: string;\n private paletteItems: PaletteItem[] = [];\n\n constructor(private brandingProvider: BrandingProvider) {\n this.brandingProvider.changed.pipe(take(1)).subscribe(success => {\n this.paletteItems = success;\n this.setColor();\n });\n }\n\n public ngOnInit() {\n this.paletteItems = this.brandingProvider.palette;\n this.setColor();\n }\n\n private setColor() {\n if (this.paletteItems == null) { return; }\n var paletteItem = this.paletteItems.find(p => p.key == this.palette);\n if (paletteItem == null) {\n console.log(\"Can't find color for Palette Key [\" + this.palette + \"]\");\n }\n else {\n this.backgroundColor = paletteItem.hex;\n }\n }\n}\n","import { Directive, HostBinding, HostListener, Input } from '@angular/core';\nimport { take } from 'rxjs/operators';\nimport { BrandingProvider, PaletteItem } from './brandingProvider.service';\n\n@Directive({\n selector: '[brandConditionalBackgroundColor]',\n standalone: false\n})\nexport class BrandConditionalBackgroundColorDirective {\n @Input(\"palette\") defaultColor: string = null;\n @Input(\"activePalette\") activeColor: string = null;\n @Input(\"active\") active: boolean = false;\n @HostBinding('style.background-color') backgroundColor: string;\n private loadedDefaultColor: PaletteItem;\n private loadedActiveColor: PaletteItem;\n\n constructor(private brandingProvider: BrandingProvider) {\n this.brandingProvider.changed.pipe(take(1)).subscribe(success => {\n this.setColors();\n });\n }\n\n public ngOnInit() {\n }\n\n public ngOnChanges() {\n this.setColors();\n\n }\n private setColors() {\n this.loadedDefaultColor = this.getColor(this.defaultColor);\n this.loadedActiveColor = this.getColor(this.activeColor);\n this.backgroundColor = this.active ? this.loadedActiveColor.hex : this.loadedDefaultColor.hex;\n }\n\n private getColor(paletteKey: string): PaletteItem {\n if (this.brandingProvider.palette == null) { return; }\n var paletteItem = this.brandingProvider.palette.find(p => p.key == paletteKey);\n if (paletteItem != null) { return paletteItem; }\n\n paletteItem = new PaletteItem(paletteKey, paletteKey);\n return paletteItem;\n }\n}\n","import { Directive, HostBinding, HostListener, Input } from '@angular/core';\nimport { take } from 'rxjs/operators';\nimport { BrandingProvider, PaletteItem } from './brandingProvider.service';\n\n@Directive({\n selector: '[brandConditionalColor]',\n standalone: false\n})\nexport class BrandConditionalColorDirective {\n @Input(\"palette\") defaultColor: string = null;\n @Input(\"activePalette\") activeColor: string = null;\n @Input(\"active\") active: boolean = false;\n @HostBinding('style.background-color') backgroundColor: string;\n @HostBinding('style.color') textColor: string;\n private loadedDefaultColor: PaletteItem;\n private loadedActiveColor: PaletteItem;\n\n constructor(private brandingProvider: BrandingProvider) {\n this.brandingProvider.changed.pipe(take(1)).subscribe(success => {\n this.setColors();\n });\n }\n\n public ngOnInit() {\n this.setColors();\n }\n\n public ngOnChanges() {\n this.setColors();\n\n }\n private setColors() {\n this.loadedDefaultColor = this.getColor(this.defaultColor);\n this.loadedActiveColor = this.getColor(this.activeColor);\n this.backgroundColor = this.active ? this.loadedActiveColor.hex : this.loadedDefaultColor.hex;\n this.textColor = this.active ? this.loadedDefaultColor.hex : this.loadedActiveColor.hex;\n }\n\n private getColor(paletteKey: string): PaletteItem {\n if (this.brandingProvider.palette == null) { return; }\n var paletteItem = this.brandingProvider.palette.find(p => p.key == paletteKey);\n if (paletteItem != null) { return paletteItem; }\n\n paletteItem = new PaletteItem(paletteKey, paletteKey);\n return paletteItem;\n }\n}\n","import { Directive, HostBinding, HostListener, Input } from '@angular/core';\nimport { take } from 'rxjs/operators';\nimport { BrandingProvider, PaletteItem } from './brandingProvider.service';\n\n@Directive({\n selector: '[brandHoverColor]',\n standalone: false\n})\nexport class BrandHoverColorDirective {\n @Input(\"palette\") defaultColor: string = null;\n @Input(\"hoverPalette\") hoverColor: string = null;\n @HostBinding('style.background-color') backgroundColor: string;\n @HostBinding('style.color') textColor: string;\n private loadedDefaultColor: PaletteItem;\n private loadedHoverColor: PaletteItem;\n\n constructor(private brandingProvider: BrandingProvider) {\n this.brandingProvider.changed.pipe(take(1)).subscribe(success => {\n this.setColors();\n });\n }\n\n private getColor(paletteKey: string): PaletteItem {\n if (this.brandingProvider.palette == null) { return; }\n var paletteItem = this.brandingProvider.palette.find(p => p.key == paletteKey);\n if (paletteItem != null) { return paletteItem; }\n\n paletteItem = new PaletteItem(paletteKey, paletteKey);\n return paletteItem;\n }\n\n public ngOnInit() {\n this.setColors();\n }\n\n private setColors() {\n this.loadedDefaultColor = this.getColor(this.defaultColor);\n this.loadedHoverColor = this.getColor(this.hoverColor);\n this.backgroundColor = this.loadedDefaultColor.hex;\n this.textColor = this.loadedHoverColor.hex;\n }\n\n @HostListener('mouseover') mouseOver() {\n if (!this.hoverColor) { return; }\n\n if (this.loadedHoverColor) {\n this.backgroundColor = this.loadedHoverColor.hex;\n }\n\n if (this.loadedDefaultColor) {\n this.textColor = this.loadedDefaultColor.hex;\n }\n }\n\n @HostListener('mouseleave') mouseLeave() {\n if (!this.hoverColor) { return; }\n\n if (this.loadedDefaultColor) {\n this.backgroundColor = this.loadedDefaultColor.hex;\n }\n\n if (this.loadedHoverColor) {\n this.textColor = this.loadedHoverColor.hex;\n }\n }\n}\n","export class BrandingSettingsDto {\n accentColor: string;\n themeColor: string;\n backgroundColor: string;\n neutralColor: string;\n logoUrl: string;\n publicKey: string;\n platformName: string;\n platformLearnMoreUrl: string;\n name: string;\n companyUrl: string;\n isDefault: boolean;\n hasBroker: boolean;\n channelKey: string;\n channelName: string;\n channelSubscribeUrl: string;\n channelCompanyUrl: string;\n channelPrivacyPolicyUrl: string;\n channelTermsOfUseUrl: string;\n channelAccentColor: string;\n channelThemeColor: string;\n channelPlatformName: string;\n contentBranding: ContentBrandingDto;\n brokerUrl: string;\n teamReportUrl: string;\n teamsDashboardUrl: string;\n}\n\nexport class ContentBrandingDto {\n settings: Record<string, string>[];\n signature: string;\n}\n","import { BrandingSettingsDto } from \"./brandingSettingsDto\";\n\nexport class ChannelDto {\n publicKey: string;\n name: string;\n branding: ChannelDefaultBrandingDto;\n siteUrl: string;\n poweredBy: string;\n pitch: string;\n navigationUrls: NavigationUrlDto[];\n};\n\nexport class ChannelDefaultBrandingDto extends BrandingSettingsDto {\n logoLargeUrl: string;\n}\n\nexport class NavigationUrlDto {\n name: string;\n url: string;\n category: NavigationUrlTypeEnum;\n icon: string;\n children: NavigationUrlDto[];\n}\n\nexport enum NavigationUrlTypeEnum {\n MainMenuCTA = \"MainMenuCTA\",\n MainMenu = \"MainMenu\",\n Resources = \"Resources\",\n Support = \"Support\",\n SocialMedia = \"SocialMedia\",\n Legal = \"Legal\"\n}\n","import { HttpBackend, HttpClient } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ApiConfig } from '../../apiUrlToken';\nimport { ContactDto } from './contactDto';\n\n@Injectable()\nexport class ContactService {\n // this uses HttpBackend because we want to circumvent the authinjector that we normally apply to httpclient, and require a login\n constructor(private handler: HttpBackend, @Inject(ApiConfig) private config: ApiConfig) {\n }\n\n public send(contact: ContactDto): Observable<any> {\n return new HttpClient(this.handler).post<ContactDto>(this.config.get().apiUrl + 'contact/', contact);\n }\n}\n","import { Component, Inject } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { Subscription } from 'rxjs';\nimport { ContextItemDto } from '../../models/contextItemDto';\nimport { IViewState } from '../../viewModel/interfaces';\nimport { VIEWSTATE_PROVIDER, ViewModelStateBase } from '../../viewModel/viewModelState.service';\nimport { ContactDto } from './contactDto';\nimport { ContactService } from './contactService.service';\nimport { ContactTypeDto } from './contactTypeDto';\n\n@Component({\n templateUrl: './dialog-support.component.html',\n styleUrls: ['./dialog-support.component.less'],\n standalone: false\n})\nexport class DialogSupportComponent { // don't inherit from baseclass that requires a viewstate, otherwise we can't use this component in errorpages\n public form: FormGroup;\n public title: string;\n public textAreaLabel: string;\n public sending: boolean;\n public success: boolean;\n public error: string;\n public submitted: boolean;\n public typePrefilled: boolean;\n private context: ContextItemDto[];\n private stateStoreSubscription: Subscription;\n\n public contactTypes: ContactTypeDto[] = [\n { id: 0, label: \"I'd like to share my feedback\" },\n { id: 1, label: \"I'm running into problems\" },\n { id: 2, label: \"I'm looking for help for my team\" },\n { id: 3, label: \"I have a question\" },\n { id: 4, label: \"Contact sales\" }\n ]\n\n constructor(@Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IViewState>, public dialogRef: MatDialogRef<DialogSupportComponent>, @Inject(MAT_DIALOG_DATA) public data: { type: number }, private contactService: ContactService, protected snackBar: MatSnackBar, private formBuilder: FormBuilder) {\n this.stateStoreSubscription = this.state.data.subscribe((success: IViewState) => {\n this.context = success.context;\n });\n }\n\n ngOnInit() {\n this.createForm();\n\n if (this.data != null) {\n this.form.controls.type.setValue(this.data.type);\n this.typePrefilled = true;\n }\n }\n\n public submitContactForm(): void {\n this.submitted = true;\n this.error = null;\n if (!this.form.valid) { return; }\n this.sending = true;\n this.success = false;\n\n var request: ContactDto = {\n type: this.form.get(\"type\").value,\n fromEmail: this.form.get(\"email\").value,\n body: this.form.get(\"body\").value,\n requests: [],\n context: this.context\n }\n\n this.contactService.send(request).subscribe(success => {\n this.sending = false;\n this.success = true;\n\n setTimeout(() => {\n this.success = false;\n this.dialogRef.close();\n }, 3000);\n }, error => {\n this.sending = false;\n this.error = error.message != null ? error.message : \"An unknown error occured. Please e-mail info@theliberatorsimproveyourteam.org instead.\";\n })\n }\n\n private createForm(): void {\n this.form = this.formBuilder.group({\n type: [\"\", Validators.required],\n email: [\"\", Validators.email],\n body: [\"\", Validators.required]\n });\n };\n}\n","<div class=\"dialog-header\">\n @if (form.controls.type.value == 0) {\n <h1 mat-dialog-title>Share feedback</h1>\n }\n @if (form.controls.type.value == 1) {\n <h1 mat-dialog-title>Report bug</h1>\n }\n @if (form.controls.type.value == 2) {\n <h1 mat-dialog-title>Ask for help</h1>\n }\n @if (form.controls.type.value == 3) {\n <h1 mat-dialog-title>Ask a question</h1>\n }\n @if (form.controls.type.value == 4) {\n <h1 mat-dialog-title>Contact sales</h1>\n }\n <div class=\"close\" mat-dialog-close><i class=\"responsive icon ph-x-bold\"></i></div>\n</div>\n<mat-dialog-content>\n @if (!success) {\n <form [formGroup]=\"form\">\n @if (form.controls.type.value == 0) {\n <p>We'd love to hear your feedback, and will do our best to improve!</p>\n }\n @if (form.controls.type.value == 1) {\n <p>We're sorry you ran into a bug. Tell us what happend and we'll fix it.</p>\n }\n @if (form.controls.type.value == 2) {\n <p>Looking for help? Let us know how we can assist you best.</p>\n }\n @if (form.controls.type.value == 3) {\n <p>Got a question for us? Let us know and we'll get back quickly.</p>\n }\n @if (form.controls.type.value == 4) {\n <p>Lets us know how we can help you.</p>\n }\n @if (error) {\n <div class=\"errors\">\n {{error}}\n </div>\n }\n @if (!typePrefilled) {\n <mat-form-field class=\"type\" appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>Type of request</mat-label>\n <mat-select formControlName=\"type\" id=\"question-type\">\n @for (item of contactTypes; track item) {\n <mat-option class=\"select-option\" [value]=\"item.id\">{{item.label}}</mat-option>\n }\n </mat-select>\n @if (form.controls.type.errors && submitted) {\n <mat-error>\n @if (form.controls.type.errors.required) {\n <div>Please select the type of request</div>\n }\n </mat-error>\n }\n </mat-form-field>\n }\n <mat-form-field appearance=\"fill\" subscriptSizing=\"dynamic\">\n @if (form.controls.type.value == 0) {\n <mat-label>What would you like us to improve?</mat-label>\n }\n @if (form.controls.type.value == 1) {\n <mat-label>Please describe the problem</mat-label>\n }\n @if (form.controls.type.value == 2) {\n <mat-label>How can we help you?</mat-label>\n }\n @if (form.controls.type.value == 3) {\n <mat-label>Please describe your question</mat-label>\n }\n @if (form.controls.type.value == 4) {\n <mat-label>What are you looking for?</mat-label>\n }\n <textarea formControlName=\"body\" id=\"question-description\" matInput></textarea>\n @if (form.controls.body.errors && submitted) {\n <mat-error>\n @if (form.controls.body.errors.required) {\n <div>Please enter this field</div>\n }\n </mat-error>\n }\n </mat-form-field>\n <mat-form-field appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>Your e-mail address (optional)</mat-label>\n <input matInput formControlName=\"email\" id=\"question-email\" type=\"email\">\n @if (form.controls.email.errors && submitted) {\n <mat-error>\n @if (form.controls.email.errors.email) {\n <div>Please provide a valid e-mail</div>\n }\n </mat-error>\n }\n </mat-form-field>\n <button class=\"button primary\" type=\"submit\" [ngClass]=\"{'loading': sending }\" (click)=\"submitContactForm()\">submit</button>\n </form>\n }\n @if (success) {\n <div class=\"confirmation\">\n <p>Thank you for contacting us. We will contact you shorthly to resolve your question, feedback or issue. This window will close automatically in a few seconds.</p>\n </div>\n }\n</mat-dialog-content>\n","import { Directive, HostListener } from '@angular/core';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\nimport { DialogSupportComponent } from './dialog-support.component';\n\n@Directive({\n selector: '[supportDialog]',\n standalone: false\n})\nexport class OpenSupportDialogDirective {\n constructor(private dialog: MatDialog) {\n }\n\n @HostListener('click')\n onClick(): void {\n const dialogConfig = new MatDialogConfig();\n dialogConfig.panelClass = ['dialog', 'support'];\n dialogConfig.data = { type: 2 };\n dialogConfig.autoFocus = false;\n dialogConfig.enterAnimationDuration = 0;\n dialogConfig.exitAnimationDuration = 0;\n this.dialog.open(DialogSupportComponent, dialogConfig);\n }\n}\n\n@Directive({\n selector: '[feedbackDialog]',\n standalone: false\n})\nexport class OpenFeedbackDialogDirective {\n constructor(private dialog: MatDialog) {\n }\n\n @HostListener('click')\n onClick(): void {\n const dialogConfig = new MatDialogConfig();\n dialogConfig.panelClass = ['dialog','support'];\n dialogConfig.data = { type: 0 };\n dialogConfig.autoFocus = false;\n dialogConfig.enterAnimationDuration = 0;\n dialogConfig.exitAnimationDuration = 0;\n this.dialog.open(DialogSupportComponent, dialogConfig);\n }\n}\n\n@Directive({\n selector: '[lookingForHelpDialog]',\n standalone: false\n})\nexport class OpenLookingForHelpDialog {\n constructor(private dialog: MatDialog) {\n }\n\n @HostListener('click')\n onClick(): void {\n const dialogConfig = new MatDialogConfig();\n dialogConfig.panelClass = ['dialog', 'support'];\n dialogConfig.data = { type: 2 };\n dialogConfig.autoFocus = false;\n dialogConfig.enterAnimationDuration = 0;\n dialogConfig.exitAnimationDuration = 0;\n this.dialog.open(DialogSupportComponent, dialogConfig);\n }\n}\n\n@Directive({\n selector: '[reportBugDialog]',\n standalone: false\n})\nexport class OpenReportBugDialogDirective {\n constructor(private dialog: MatDialog) {\n }\n\n @HostListener('click')\n onClick(): void {\n const dialogConfig = new MatDialogConfig();\n dialogConfig.panelClass = ['dialog', 'support'];\n dialogConfig.data = { type: 1 };\n dialogConfig.autoFocus = false;\n dialogConfig.enterAnimationDuration = 0;\n dialogConfig.exitAnimationDuration = 0;\n this.dialog.open(DialogSupportComponent, dialogConfig);\n }\n}\n\n@Directive({\n selector: '[contactSalesDialog]',\n standalone: false\n})\nexport class OpenContactSalesDialog {\n constructor(private dialog: MatDialog) {\n }\n\n @HostListener('click')\n onClick(): void {\n const dialogConfig = new MatDialogConfig();\n dialogConfig.panelClass = ['dialog', 'support'];\n dialogConfig.data = { type: 4 };\n dialogConfig.autoFocus = false;\n dialogConfig.enterAnimationDuration = 0;\n dialogConfig.exitAnimationDuration = 0;\n this.dialog.open(DialogSupportComponent, dialogConfig);\n }\n}\n","import { Component, Inject } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { IViewState } from '../../../viewModel/interfaces';\nimport { VIEWSTATE_PROVIDER, ViewModelStateBase } from '../../../viewModel/viewModelState.service';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { ChannelDto, NavigationUrlDto, NavigationUrlTypeEnum } from '../../../models/channelDto';\n@Component({\n selector: 'site-default-footer',\n templateUrl: './site-default-footer.component.html',\n styleUrls: ['./site-default-footer.component.less'],\n standalone: false\n})\nexport class SiteDefaultFooterComponent extends ComponentWithViewStateBase<IViewState> {\n public error: string\n public channel: ChannelDto;\n public mainMenu: NavigationUrlDto[];\n public socialMediaMenu: NavigationUrlDto[];\n public resourcesMenu: NavigationUrlDto[];\n public supportMenu: NavigationUrlDto[];\n\n constructor(@Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IViewState>, snackBar: MatSnackBar) {\n super(state, snackBar)\n }\n\n async ngOnInit(): Promise<void> {\n super.ngOnInit();\n }\n\n protected onDataUpdate(data: IViewState): void {\n this.channel = data.channel;\n this.mainMenu = data.channel.navigationUrls.filter(p => p.category.toString() == NavigationUrlTypeEnum.MainMenu.toString());\n this.socialMediaMenu = data.channel.navigationUrls.filter(p => p.category == NavigationUrlTypeEnum.SocialMedia);\n this.resourcesMenu = data.channel.navigationUrls.filter(p => p.category == NavigationUrlTypeEnum.Resources);\n this.supportMenu = data.channel.navigationUrls.filter(p => p.category == NavigationUrlTypeEnum.Support);\n };\n}\n","@if (loaded) {\n <footer>\n <div class=\"section-content\">\n <div class=\"footer-columns\">\n <div class=\"footer-column footer-about\">\n <h4>About</h4>\n <div [innerHtml]=\"channel.pitch\"></div>\n </div>\n <div class=\"footer-column footer-links\">\n <h4>Pages</h4>\n <ul>\n @for (item of mainMenu; track item) {\n <li><a [href]=\"item.url\">{{item.name}}</a></li>\n }\n </ul>\n </div>\n <div class=\"footer-column footer-links\">\n <h4>Resources</h4>\n <ul>\n @for (item of resourcesMenu; track item) {\n <li><a [href]=\"item.url\" target=\"_blank\">{{item.name}}</a></li>\n }\n </ul>\n </div>\n <div class=\"footer-column footer-links\">\n <h4>Support</h4>\n <ul>\n @for (item of supportMenu; track item) {\n <li><a [href]=\"item.url\" target=\"_blank\">{{item.name}}</a></li>\n }\n <li><a [routerLink]=\"[]\" supportDialog id=\"footer-support\">Contact us</a></li>\n <li><a [routerLink]=\"[]\" reportBugDialog id=\"footer-reportbug\">Report a bug</a></li>\n </ul>\n </div>\n </div>\n </div>\n <div class=\"section-content\">\n <div class=\"footer-bottom\">\n <a class=\"footer-logo\" [href]=\"channel.siteUrl\">\n @if (channel.branding.logoLargeUrl) {\n <img class=\"responsive\" [src]=\"channel.branding.logoLargeUrl\" [title]=\"channel.name\" />\n }\n </a>\n <div class=\"footer-socialmedia\">\n @for (item of socialMediaMenu; track item) {\n <a class=\"footer-socialmedia-icon\" [href]=\"item.url\" target=\"_blank\"><span [class]=\"'ph ' + item.icon\"></span></a>\n }\n </div>\n </div>\n <div class=\"footer-companyinformation\">\n {{channel.poweredBy}}\n </div>\n </div>\n </footer>\n}\n","import { animate, state, style, transition, trigger } from '@angular/animations';\nimport { Component, Inject } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { IViewState } from '../../../viewModel/interfaces';\nimport { VIEWSTATE_PROVIDER, ViewModelStateBase } from '../../../viewModel/viewModelState.service';\nimport { ChannelDto, NavigationUrlDto, NavigationUrlTypeEnum } from '../../../models/channelDto';\n\n@Component({\n selector: 'site-default-header',\n templateUrl: './site-default-header.component.html',\n styleUrls: ['./site-default-header.component.less'],\n animations: [\n trigger('openClose', [\n state('true', style({\n height: 'auto',\n width: '300px',\n opacity: 1.0\n })),\n state('false', style({\n height: '0',\n width: '0',\n opacity: 0,\n display: 'none'\n })),\n transition('false <=> true', animate(200))\n ])\n ],\n host: {\n \"(window:click)\": \"onClick()\"\n },\n standalone: false\n})\nexport class SiteDefaultHeaderComponent extends ComponentWithViewStateBase<IViewState > {\n public visible: boolean = false;\n public channel: ChannelDto;\n public mainMenu: NavigationUrlDto[];\n public cta: NavigationUrlDto;\n\n constructor(@Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IViewState>, snackBar: MatSnackBar) {\n super(state, snackBar)\n }\n\n async ngOnInit(): Promise<void> {\n super.ngOnInit();\n }\n\n public toggleMenu($event) {\n $event.stopPropagation();\n this.visible = !this.visible;\n }\n\n public onClick() {\n this.visible = false;\n }\n\n protected onDataUpdate(data: IViewState): void {\n this.channel = data.channel;\n this.mainMenu = data.channel.navigationUrls.filter(p => p.category.toString() == NavigationUrlTypeEnum.MainMenu.toString());\n this.cta = data.channel.navigationUrls.find(p => p.category.toString() == NavigationUrlTypeEnum.MainMenuCTA.toString());\n };\n}\n","@if (channel) {\n <header>\n <a class=\"header header-logo\" [href]=\"channel.siteUrl\">\n @if (channel.branding.logoLargeUrl) {\n <img class=\"responsive\" [src]=\"channel.branding.logoLargeUrl\" [title]=\"channel.name\"/>\n }\n </a>\n <div class=\"header header-nav\">\n <div class=\"nav nav-main\" (click)=\"toggleMenu($event)\">\n <div class=\"menu\" role=\"navigation\" [@openClose]=\"visible ? true : false\">\n <div class=\"menu-close\">close</div>\n <ul>\n @for (item of mainMenu; track item) {\n <li>\n @if (item.url) {\n <a [href]=\"item.url\">{{item.name}}</a>\n }\n @if (!item.url) {\n <span>{{item.name}}</span>\n }\n </li>\n @if (item.children) {\n <li>\n <ul>\n @for (child of item.children; track child) {\n <li><a [href]=\"item.url\">{{child.name}}</a></li>\n }\n </ul>\n </li>\n }\n }\n </ul>\n </div>\n <div class=\"label\">\n Menu\n </div>\n </div>\n @if (cta) {\n <a class=\"nav nav-try responsive-hidesmall\" [href]=\"cta.url\">\n {{cta.name}}\n </a>\n }\n </div>\n </header>\n}\n","import { Component, Inject } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ChannelDto, NavigationUrlDto, NavigationUrlTypeEnum } from '../../../models/channelDto';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { VIEWSTATE_PROVIDER, ViewModelStateBase } from '../../../viewModel/viewModelState.service';\nimport { IViewState } from '../../../viewModel/interfaces';\n\n@Component({\n selector: 'footer[site-micro-footer]',\n templateUrl: './site-micro-footer.component.html',\n styleUrls: ['./site-micro-footer.component.less'],\n standalone: false\n})\nexport class SiteMicroFooterComponent extends ComponentWithViewStateBase<IViewState> {\n public channel: ChannelDto;\n public legalMenu: NavigationUrlDto[];\n\n constructor(@Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IViewState>, snackBar: MatSnackBar) {\n super(state, snackBar)\n }\n\n async ngOnInit(): Promise<void> {\n super.ngOnInit();\n }\n\n protected onDataUpdate(data: IViewState): void {\n this.channel = data.channel;\n this.legalMenu = data.channel.navigationUrls.filter(p => p.category.toString() == NavigationUrlTypeEnum.Legal.toString());\n };\n}\n","@if (loaded) {\n @for (item of legalMenu; track item) {\n <div class=\"item\"><a [href]=\"item.url\">{{item.name}}</a></div>\n }\n <div class=\"item\" id=\"footer-reportbug\"><a [routerLink]=\"[]\" reportBugDialog>Report a bug</a></div>\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatOptionModule } from '@angular/material/core';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\nimport { ContactService } from './contactService.service';\nimport { DialogSupportComponent } from './dialog-support.component';\nimport { OpenContactSalesDialog, OpenFeedbackDialogDirective, OpenLookingForHelpDialog, OpenReportBugDialogDirective, OpenSupportDialogDirective } from './dialog-support.directive';\n\n@NgModule({\n imports: [FormsModule, MatSelectModule, MatSnackBarModule, MatInputModule, CommonModule, ReactiveFormsModule, MatOptionModule, MatDialogModule],\n declarations: [DialogSupportComponent, OpenFeedbackDialogDirective, OpenReportBugDialogDirective, OpenLookingForHelpDialog, OpenSupportDialogDirective, OpenContactSalesDialog],\n exports: [DialogSupportComponent, OpenFeedbackDialogDirective, OpenReportBugDialogDirective, OpenLookingForHelpDialog, OpenSupportDialogDirective, OpenContactSalesDialog],\n providers: [ContactService]\n})\nexport class DialogSupportModule { }\n","import { NgModule } from '@angular/core';\nimport { BrandBackgroundDirective } from './brandBackground.directive';\nimport { BrandConditionalColorDirective } from './brandConditionalColor.directive';\nimport { BrandHoverColorDirective } from './brandHoverColor.directive';\nimport { BrandingProvider } from './brandingProvider.service';\nimport { SiteDefaultFooterComponent } from './components/site-default-footer/site-default-footer.component';\nimport { SiteDefaultHeaderComponent } from './components/site-default-header/site-default-header.component';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\nimport { SiteMicroFooterComponent } from './components/site-micro-footer/site-micro-footer.component';\nimport { DialogSupportModule } from '../dialogs/dialog-support/dialog-support.module';\nimport { BrandConditionalBackgroundColorDirective } from './brandConditionalBackgroundColor.directive';\n\n@NgModule({\n imports: [\n CommonModule,\n RouterModule,\n DialogSupportModule\n ],\n declarations: [\n BrandBackgroundDirective,\n BrandHoverColorDirective,\n BrandConditionalBackgroundColorDirective,\n BrandConditionalColorDirective,\n SiteDefaultFooterComponent,\n SiteDefaultHeaderComponent,\n SiteMicroFooterComponent\n ],\n exports: [\n BrandBackgroundDirective,\n BrandHoverColorDirective,\n BrandConditionalColorDirective,\n BrandConditionalBackgroundColorDirective,\n SiteDefaultFooterComponent,\n SiteDefaultHeaderComponent,\n SiteMicroFooterComponent\n ],\n providers: [\n BrandingProvider\n ]\n})\nexport class BrandingModule { }\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\n\n@Component({\n selector: 'checkbox',\n templateUrl: './checkbox.component.html',\n styleUrls: ['./checkbox.component.less'],\n standalone: false\n})\nexport class CheckboxComponent implements ControlValueAccessor {\n @Input() label: string;\n @Input() disabled = false;\n @Output() onCheckChange = new EventEmitter<boolean>();\n @Input() checked: boolean = false;\n\n constructor() {\n }\n\n ngOnInit() {\n }\n\n public toggle() {\n if (!this.disabled) {\n this.checked = !this.checked;\n this.writeValue(this.checked);\n this.onCheckChange.emit(this.checked);\n }\n }\n\n onChange = (rating: boolean) => { };\n\n onTouched = () => { };\n\n writeValue(checked: boolean): void {\n this.checked = checked;\n this.onChange(this.checked);\n }\n\n get value(): boolean {\n return this.checked;\n }\n\n registerOnChange(fn: (rating: boolean) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n}\n","<div class=\"checkbox\" [ngClass]=\"{'checked': checked, 'unchecked': !checked}\">\n @if (checked) {\n <div class=\"checkbox-check checked ph-check-circle-fill\" (click)=\"toggle()\"></div>\n }\n @if (!checked) {\n <div class=\"checkbox-check unchecked ph-circle\" (click)=\"toggle()\"></div>\n }\n <div class=\"label\" [innerHtml]=\"label\"></div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { CheckboxComponent } from './checkbox.component';\n\n@NgModule({\n imports: [\n CommonModule],\n declarations: [\n CheckboxComponent],\n exports: [\n CheckboxComponent]\n})\nexport class CheckboxModule { }\n\n","import { Component, Input } from '@angular/core';\n@Component({\n selector: 'expand',\n templateUrl: './expand.component.html',\n styleUrls: ['./expand.component.less'],\n standalone: false\n})\nexport class ExpandComponent {\n @Input() items: ExpandItemDto[];\n @Input() theme: string;\n @Input() numbering: boolean = true;\n public categories: string[];\n public selected: number;\n\n constructor() {\n }\n\n ngOnInit() {\n var categories = this.items.map(p => p.category);\n this.categories = categories.filter((value, index) => categories.indexOf(value) === index);\n }\n\n public expand(index: number) {\n if (index == this.selected) {\n this.selected = null;\n }\n else {\n this.selected = index;\n }\n }\n}\n\nexport class ExpandItemDto {\n constructor(index: number, category: string, label: string, body: string) {\n this.category = category;\n this.index = index;\n this.label = label;\n this.body = body;\n }\n\n index: number;\n category: string;\n label: string;\n body: string;\n}\n","<div class=\"expand\" [ngClass]=\"theme\">\n @for (category of categories; track category) {\n <div class=\"expand-category\">\n @if (categories.length > 0) {\n <div class=\"expand-item-category-title\">{{category}}</div>\n }\n @for (item of items; track item) {\n @if (item.category == category) {\n <div class=\"expand-item\">\n <div class=\"expand-header\" (click)=\"expand(item.index)\">\n @if (numbering) {\n <div class=\"expand-header-number\">{{item.index}}</div>\n }\n <div class=\"expand-header-label\">{{item.label}}</div>\n @if (selected == item.index) {\n <div class=\"expand-header-expand ph-minus-bold\"></div>\n }\n @if (selected != item.index) {\n <div class=\"expand-header-expand ph-plus-bold\"></div>\n }\n </div>\n @if (selected == item.index) {\n <div class=\"body\" [innerHtml]=\"item.body\">\n </div>\n }\n </div>\n }\n }\n </div>\n }\n\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ExpandComponent } from './expand.component';\n\n@NgModule({\n imports: [\n CommonModule],\n declarations: [\n ExpandComponent],\n exports: [\n ExpandComponent]\n})\nexport class ExpandModule { }\n\n","import { Component, Inject, Input } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ComponentWithViewStateBase } from '../../componentWithViewStateBase';\nimport { ViewModelStateBase, VIEWSTATE_PROVIDER } from '../../viewModel/viewModelState.service';\nimport { IViewState } from '../../viewModel/interfaces';\n\n@Component({\n selector: 'loading',\n templateUrl: './loading.component.html',\n styleUrls: ['./loading.component.less'],\n standalone: false\n})\nexport class LoadingComponent extends ComponentWithViewStateBase<IViewState> { \n @Input() public showLoading: boolean = false;\n @Input() public message: string = \"We're loading your data ...\";\n public ready: boolean = true;\n\n constructor(@Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IViewState>, protected snackBar: MatSnackBar) {\n super(state, snackBar);\n }\n\n protected onDataUpdate(data: IViewState): void {\n }\n}\n","@if (!loaded || showLoading) {\n <div class=\"loading\">\n <div class=\"top\">\n <div class=\"pleasewait\">{{message}}</div>\n <div class=\"loading-icon dark\"></div>\n </div>\n </div>\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { LoadingComponent } from './loading.component';\n\n@NgModule({\n imports: [\n CommonModule],\n declarations: [\n LoadingComponent],\n exports: [\n LoadingComponent]\n})\nexport class LoadingModule { }\n\n","import { COMMA, ENTER } from '@angular/cdk/keycodes';\nimport { Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';\nimport { UntypedFormBuilder, UntypedFormControl, UntypedFormGroup } from '@angular/forms';\nimport { MatAutocompleteSelectedEvent } from '@angular/material/autocomplete';\nimport { MatChipInputEvent } from '@angular/material/chips';\nimport { Observable } from 'rxjs';\nimport { map, startWith } from 'rxjs/operators';\n\n@Component({\n selector: 'mat-tags',\n templateUrl: './mat-tags.component.html',\n styleUrls: ['./mat-tags.component.less'],\n standalone: false\n})\nexport class MatTagsComponent {\n public form: UntypedFormGroup;\n public newTagControl: UntypedFormControl = new UntypedFormControl();\n public filteredTags: Observable<string[]>;\n @Input() public allTags: string[] = [];\n public tags: string[] = [];\n @Output() tagsChangedEvent = new EventEmitter<string[]>();\n @ViewChild('tagInput') tagInput: ElementRef<HTMLInputElement>;\n public separatorKeysCodes: number[] = [ENTER, COMMA];\n\n constructor(private formBuilder: UntypedFormBuilder) {\n this.createForm();\n this.filteredTags = this.form.controls.tags.valueChanges.pipe(startWith(null), map((tag: string | null) => (tag ? this.filter([tag]) : this.allTags.slice())));\n }\n\n public ngOnInit() {\n }\n\n private createForm(): void {\n this.form = this.formBuilder.group({\n tags: [\"\"]\n });\n };\n\n public add(event: MatChipInputEvent): void {\n const value = (event.value || '').trim();\n if (value == '') { return; }\n\n if (value && this.tags.indexOf(value) == -1) {\n this.tags.push(value);\n this.tagsChangedEvent.emit(this.tags);\n }\n\n event.chipInput!.clear();\n this.form.controls.tags.setValue(null);\n }\n\n public remove(tag: string): void {\n const index = this.tags.indexOf(tag);\n\n if (index >= 0) {\n this.tags.splice(index, 1);\n this.tagsChangedEvent.emit(this.tags);\n }\n }\n\n private filter(value: string[]): string[] {\n if (value == null) { return; }\n if (value[0] == null) { return; }\n const filterValue = value[0].toLowerCase();\n return this.allTags.filter(tag => tag != null && tag.toLowerCase().includes(filterValue));\n }\n\n public selected(event: MatAutocompleteSelectedEvent): void {\n if (this.tags.indexOf(event.option.viewValue) == -1) {\n this.tags.push(event.option.viewValue);\n this.tagsChangedEvent.emit(this.tags);\n }\n\n this.tagInput.nativeElement.value = '';\n this.form.controls.tags.setValue(null);\n }\n}\n","<div class=\"mat-form-field\">\n <div class=\"form-label\">Add tags to organize and filter clients</div>\n <mat-form-field appearance=\"fill\">\n <mat-chip-grid #tagList aria-label=\"Tags\" id=\"tags-selecttag\">\n @for (tag of tags; track tag) {\n <mat-chip-row (removed)=\"remove(tag)\">\n {{tag}}\n <span class=\"icon ph-trash-fill\" matChipRemove></span>\n </mat-chip-row>\n }\n <input placeholder=\"New tag ...\" id=\"tags-newtag\" #tagInput [formControl]=\"newTagControl\" [matAutocomplete]=\"auto\" [matChipInputFor]=\"tagList\" [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\" (matChipInputTokenEnd)=\"add($event)\">\n </mat-chip-grid>\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"selected($event)\">\n @for (tag of filteredTags | async; track tag) {\n <mat-option class=\"select-option\" [value]=\"tag\">{{tag}}</mat-option>\n }\n </mat-autocomplete>\n </mat-form-field>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatTagsComponent } from './mat-tags.component';\n\n@NgModule({\n imports: [\n MatAutocompleteModule,\n FormsModule,\n MatFormFieldModule,\n ReactiveFormsModule,\n CommonModule,\n MatChipsModule,\n MatInputModule],\n declarations: [\n MatTagsComponent],\n exports: [\n MatTagsComponent]\n})\nexport class MatTagsModule { }\n","\nexport class KeyValueDto {\n constructor(key: string, value: string) {\n this.key = key;\n this.value = value;\n }\n\n key: string;\n value: string;\n}\n","import { Component, EventEmitter, HostListener, Input, Output, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, FormArray, FormBuilder, FormGroup, NG_VALUE_ACCESSOR, Validators } from '@angular/forms';\nimport { KeyValueDto } from '../../models/keyValueDto';\n\n@Component({\n selector: 'metadata-input',\n templateUrl: './metadata-input.component.html',\n styleUrls: ['./metadata-input.component.less'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MetaDataInputComponent),\n multi: true\n }\n ],\n standalone: false\n})\nexport class MetaDataInputComponent implements ControlValueAccessor {\n public form: FormGroup;\n @Input() maximum: number;\n @Input() addLabel: string;\n @Input() emptyLabel: string;\n @Output() changed = new EventEmitter<KeyValueDto[]>();\n\n constructor(private formBuilder: FormBuilder) {\n this.form = this.formBuilder.group({\n fields: this.formBuilder.array([])\n });\n }\n\n ngOnInit() {\n this.form.valueChanges.subscribe(() => {\n this.onChange(this.getValue());\n });\n }\n\n onChange: any = () => { };\n onTouch: any = () => { };\n\n writeValue(fields: KeyValueDto[]): void {\n if (fields && fields.length) {\n var fieldControls = fields.map(field => this.createField(field));\n this.form.setControl('fields', this.formBuilder.array(fieldControls));\n }\n }\n\n public getValue(): KeyValueDto[] {\n return this.fields().controls\n .filter(control => control.valid && control.value.key && control.value.value)\n .map(control => new KeyValueDto(control.value.key, control.value.value));\n }\n\n public registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n public registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n\n public setDisabledState?(isDisabled: boolean): void {\n isDisabled ? this.form.disable() : this.form.enable();\n }\n\n public addField() {\n var group = this.fields();\n\n if (group.controls.length > 0) {\n var lastField = group.controls[group.controls.length - 1];\n if (!lastField.value || !lastField.value.value) { return; }\n }\n\n var value = this.getValue();\n group.push(this.createField(null));\n this.onChange(value);\n this.changed.emit(value);\n }\n\n public removeField(index: number) {\n this.fields().removeAt(index);\n var value = this.getValue();\n this.onChange(value);\n this.changed.emit(value);\n }\n\n public fields(): FormArray {\n return this.form.get(\"fields\") as FormArray;\n }\n\n private createField(field: KeyValueDto) {\n return this.formBuilder.group({\n key: [field != null ? field.key : null, [Validators.required, Validators.maxLength(50)]],\n value: [field != null ? field.value : null, [Validators.required, Validators.maxLength(50)]]\n })\n }\n}\n","<form [formGroup]=\"form\" class=\"metadatafields\" id=\"component-metadata\">\n @if (fields().controls.length == 0 && emptyLabel) {\n <div>{{emptyLabel}}</div>\n }\n <ng-container formArrayName=\"fields\">\n @for (item of fields().controls; track item; let i = $index) {\n <div class=\"question metadatafield\" [formGroupName]=\"i\">\n <div class=\"question-body text\">\n <mat-form-field appearance=\"fill\" class=\"metadatafield-key\" subscriptSizing=\"dynamic\">\n <mat-label>Key</mat-label>\n <input matInput formControlName=\"key\" required maxlength=\"50\" name=\"metadatafield-key\">\n </mat-form-field>\n <mat-form-field appearance=\"fill\" class=\"metadatafield-key\" subscriptSizing=\"dynamic\">\n <mat-label>Value</mat-label>\n <input matInput formControlName=\"value\" required maxlength=\"50\" name=\"metadatafield-value\">\n </mat-form-field>\n <div class=\"delete\" [id]=\"'action-removemetadatafield-' + i\" (click)=\"removeField(i)\"><span class=\"icon ph-trash-bold\"></span></div>\n </div>\n </div>\n }\n </ng-container>\n @if (maximum == 0 || fields().controls.length < maximum) {\n <button id=\"action-addmetadatafield\" (click)=\"addField()\" class=\"subactionbutton\"><span class=\"icon ph-plus-bold\"></span>{{addLabel ?? \"Add\"}}</button>\n }\n</form>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MetaDataInputComponent } from './metadata-input.component';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n MatFormFieldModule,\n ReactiveFormsModule,\n MatInputModule],\n declarations: [\n MetaDataInputComponent],\n exports: [\n MetaDataInputComponent]\n})\nexport class MetadataInputModule { }\n\n","import { Component, EventEmitter, HostListener, Input, Output, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, FormArray, FormBuilder, FormControl, FormGroup, NG_VALUE_ACCESSOR, Validators } from '@angular/forms';\n\n@Component({\n selector: 'multi-email-input',\n templateUrl: './multi-email-input.component.html',\n styleUrls: ['./multi-email-input.component.less'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MultiEmailInputComponent),\n multi: true\n }\n ],\n standalone: false\n})\nexport class MultiEmailInputComponent implements ControlValueAccessor {\n public form: FormGroup;\n @Input() maximum: number;\n @Input() addLabel: string;\n @Input() emptyLabel: string;\n @Output() changed = new EventEmitter<string[]>();\n\n constructor(private formBuilder: FormBuilder) {\n this.form = this.formBuilder.group({\n emails: this.formBuilder.array([])\n });\n }\n\n ngOnInit() {\n this.form.valueChanges.subscribe(() => {\n this.onChange(this.getValue());\n });\n }\n\n onChange: any = () => { };\n onTouch: any = () => { };\n\n writeValue(emails: string[]): void {\n if (emails && emails.length) {\n var emailControls = emails.map(email => this.createField(email));\n this.form.setControl('emails', this.formBuilder.array(emailControls));\n }\n }\n\n public getValue(): string[] {\n return this.fields().controls\n .filter(control => control.valid && control.value.email)\n .map(control => control.value.email);\n }\n\n public registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n public registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n\n public setDisabledState?(isDisabled: boolean): void {\n isDisabled ? this.form.disable() : this.form.enable();\n }\n\n public addField() {\n var group = this.fields();\n\n if (group.controls.length > 0) {\n var lastField = group.controls[group.controls.length - 1];\n if (!lastField.value || !lastField.value.email || !this.isValidEmail(lastField.value.email)) { return; }\n }\n\n var value = this.getValue();\n group.push(this.createField());\n this.onChange(value);\n this.changed.emit(value);\n }\n\n public removeField(index: number) {\n this.fields().removeAt(index);\n var value = this.getValue();\n this.onChange(value);\n this.changed.emit(value);\n }\n \n public fields(): FormArray {\n return this.form.get(\"emails\") as FormArray;\n }\n\n @HostListener('keydown', ['$event'])\n public onKeyDown(event: KeyboardEvent): void {\n if (event.key === 'Tab' && event.target instanceof HTMLInputElement) {\n const input = event.target;\n if (input.value && this.isValidEmail(input.value)) {\n event.preventDefault();\n this.addField();\n }\n }\n }\n \n private createField(email: string = null) {\n return this.formBuilder.group({\n email: [email, [Validators.required, Validators.email]]\n })\n }\n\n private isValidEmail(email: string): boolean {\n return Validators.email(new FormControl(email)) === null;\n }\n}\n","<form [formGroup]=\"form\">\n @if (fields().controls.length == 0 && emptyLabel) {\n <div>{{emptyLabel}}</div>\n }\n <ng-container formArrayName=\"emails\">\n @for (item of fields().controls; track item; let i = $index) {\n <div class=\"question email\" [formGroupName]=\"i\">\n <div class=\"question-body text\">\n <mat-form-field appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>E-mail address</mat-label>\n <input matInput formControlName=\"email\" type=\"email\" required>\n </mat-form-field>\n <div class=\"delete\" [id]=\"'action-removeemail-' + i\" (click)=\"removeField(i)\"><span class=\"icon ph-trash-bold\"></span></div>\n </div>\n </div>\n }\n </ng-container>\n @if (maximum == 0 || fields().controls.length < maximum) {\n <button id=\"action-addemail\" (click)=\"addField()\" class=\"subactionbutton\"><span class=\"icon ph-plus-bold\"></span>{{addLabel ?? \"Add\"}}</button>\n }\n</form>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MultiEmailInputComponent } from './multi-email-input.component';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n MatFormFieldModule,\n ReactiveFormsModule,\n MatInputModule],\n declarations: [\n MultiEmailInputComponent],\n exports: [\n MultiEmailInputComponent]\n})\nexport class MultiEmailInputModule { }\n\n","import { Component, Input, ViewEncapsulation, forwardRef, signal } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'quantity-selector',\n templateUrl: './quantity-selector.component.html',\n styleUrls: ['./quantity-selector.component.less'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => QuantitySelectorComponent),\n multi: true\n }\n ],\n standalone: false\n})\nexport class QuantitySelectorComponent implements ControlValueAccessor {\n public quantity: number;\n @Input() disabled = false;\n @Input() maximum: number = 999;\n @Input() minimum: number = 0;\n onChange: any = () => { };\n onTouched: any = () => { };\n\n public increaseQuantity() {\n if (this.quantity >= this.maximum) { this.quantity = this.maximum } else { this.quantity = this.quantity + 1 }\n this.onChange(this.quantity);\n }\n\n public setQuantity() {\n if (this.quantity < this.minimum) { this.quantity = this.minimum; }\n if (this.quantity > this.maximum) { this.quantity = this.maximum; }\n this.onChange(this.quantity);\n }\n\n public decreaseQuantity() {\n if (this.quantity <= this.minimum) { this.quantity = this.minimum } else { this.quantity = this.quantity - 1 }\n this.onChange(this.quantity);\n }\n\n public onInput(event: Event): void {\n const input = event.target as HTMLInputElement;\n const value = input.value.trim();\n\n if (/^-?\\d*\\.?\\d*$/.test(value) && value !== \"\" && !Number.isNaN(value)) {\n this.quantity = parseFloat(input.value);\n }\n else {\n this.quantity = this.minimum;\n input.value = this.quantity.toString();\n }\n \n this.onChange(this.quantity);\n }\n\n public writeValue(quantity: number): void {\n this.quantity = quantity;\n }\n\n public registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n public registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n public setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n}\n","<div class=\"quantity-selector\">\n @if (quantity <= minimum) {\n <div class=\"quantity-selector-change quantity-selector-change-minus disabled\" id=\"quantity-decrease\"><span class=\"ph ph-minus-bold\"></span></div>\n }\n @if (quantity > minimum) {\n <div class=\"quantity-selector-change quantity-selector-change-minus\" id=\"quantity-decrease\" (click)=\"decreaseQuantity()\" (keyup.arrowleft)=\"decreaseQuantity()\"><span class=\"ph ph-minus-bold\"></span></div>\n }\n <input class=\"quantity-selector-change quantity-selector-change-quantity\" id=\"quantity-input\" (blur)=\"setQuantity()\" [value]=\"quantity\" (input)=\"onInput($event)\" />\n @if (quantity < maximum) {\n <div class=\"quantity-selector-change quantity-selector-change-plus\" id=\"quantity-increase\" (click)=\"increaseQuantity()\" (keyup.arrowright)=\"increaseQuantity()\"><span class=\"ph ph-plus-bold\"></span></div>\n }\n @if (quantity >= maximum) {\n <div class=\"quantity-selector-change quantity-selector-change-plus disabled\" id=\"quantity-increase\"><span class=\"ph ph-plus-bold\"></span></div>\n }\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { RouterModule } from '@angular/router';\nimport { QuantitySelectorComponent } from './quantity-selector.component';\n\n@NgModule({\n imports: [\n CommonModule,\n RouterModule,\n FormsModule,\n MatFormFieldModule,\n ReactiveFormsModule,\n MatInputModule\n ],\n declarations: [\n QuantitySelectorComponent],\n exports: [\n QuantitySelectorComponent]\n})\nexport class QuantitySelectorModule { }\n","import { Component, Input, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'select-list',\n templateUrl: './select-list.component.html',\n styleUrls: ['./select-list.component.less'],\n providers: [\n { provide: NG_VALUE_ACCESSOR, multi: true, useExisting: forwardRef(() => SelectListComponent), }\n ],\n standalone: false\n})\nexport class SelectListComponent implements ControlValueAccessor {\n @Input() options: SelectListItem[] = [];\n @Input() multiple: boolean;\n @Input() noAnswerOption: SelectListItem;\n @Input() disabled = false;\n\n constructor() {\n }\n \n public select(option: SelectListItem) {\n if (!this.multiple || (this.noAnswerOption && this.noAnswerOption.key == option.key)) {\n this.options.forEach(p => p.selected = false);\n }\n else if (this.noAnswerOption && this.noAnswerOption.key !== option.key) {\n var noAnswer = this.options.find(p => p.key == this.noAnswerOption.key);\n if (noAnswer) { noAnswer.selected = false; }\n }\n \n option.selected = !option.selected;\n this.onChange(this.options.filter(p => p.selected));\n }\n\n public writeValue(selected: SelectListItem[]): void {\n if (!selected || selected.length == 0) { return; }\n\n for (var selectedOption of selected) {\n var option = this.options.find(p => p.key == selectedOption.key);\n if (option != null) { option.selected = true; }\n };\n }\n \n public registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n public registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n public setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n onChange = (options: SelectListItem[]) => { };\n onTouched = () => { };\n}\n\nexport class SelectListItem {\n constructor(key: string, label: string, selected: boolean = false) {\n this.key = key;\n this.label = label;\n this.selected = selected;\n }\n\n key: string;\n label: string;\n selected: boolean;\n}\n","<div class=\"columinity-select-list\" [ngClass]=\"{'columinity-select-list-multiple': multiple}\">\n @for (option of options; track option) {\n <div tabindex=\"0\" class=\"columinity-select-list-option select-option\" [ngClass]=\"{'selected': option.selected}\" brandConditionalBackgroundColor [palette]=\"'neutral'\" [activePalette]=\"'accent'\" [active]=\"option.selected\" (click)=\"select(option)\" (keydown.Space)=\"select(option)\">\n <div class=\"button-letter\">@if (option.selected && !multiple) {\n <span class=\"ph ph-circle-fill\"></span>\n }@if (option.selected && multiple) {\n <span class=\"ph ph-check-bold\"></span>\n }</div>\n {{option.label}}\n </div>\n }\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatTooltip } from '@angular/material/tooltip';\nimport { SelectListComponent } from './select-list.component';\nimport { BrandingModule } from '../../branding/branding.module';\n\n@NgModule({\n imports: [\n FormsModule,\n MatFormFieldModule,\n ReactiveFormsModule,\n CommonModule,\n MatSelectModule,\n MatTooltip,\n BrandingModule\n ],\n declarations: [\n SelectListComponent],\n exports: [\n SelectListComponent]\n})\nexport class SelectListModule { }\n","import { Clipboard } from '@angular/cdk/clipboard';\nimport { Component, Input, ViewEncapsulation } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { SnapshotMetaDataDto } from '../../results/models/snapshotMetaDataDto';\n\n@Component({\n selector: 'snapshot-inviteurls',\n templateUrl: './snapshot-inviteurls.component.html',\n styleUrls: ['./snapshot-inviteurls.component.less'],\n encapsulation: ViewEncapsulation.None,\n standalone: false\n})\nexport class SnapshotInviteUrlsComponent {\n @Input() public snapshot: SnapshotMetaDataDto;\n\n constructor(private snackBar: MatSnackBar, private clipboard: Clipboard) {\n }\n\n public unsorted(a: any, b: any): number {\n // avoid keyvalue from sorting alphabetically\n return 0;\n }\n\n public copyInvitationUrl(url: string): void {\n this.clipboard.copy(url);\n this.snackBar.open('We copied the link to your clipboard', null, { duration: 3000 });\n setTimeout(() => {\n }, 2000);\n }\n}\n","@if (snapshot) {\n <div class=\"inviteurls\">\n @for (url of snapshot.inviteUrls | keyvalue: unsorted; track url) {\n <div class=\"inviteurl\">\n @if (url.key == 'TeamMember') {\n <div class=\"label inviteurl-teammember\">Invite team (e.g. members, leads, team roles)</div>\n }\n @if (url.key == 'Stakeholder') {\n <div class=\"label inviteurl-stakeholder\">Invite stakeholders (e.g. customers, users)</div>\n }\n @if (url.key == 'Supporter') {\n <div class=\"label inviteurl-supporter\">Invite supporters (e.g. management, external coaches)</div>\n }\n <div class=\"joinsnapshot\">\n <div class=\"url\">\n <input type=\"text\" [value]=\"url.value\" href=\"javascript:void(null);\" (click)=\"copyInvitationUrl(url.value)\" />\n <span class=\"ph-clipboard copy\" (click)=\"copyInvitationUrl(url.value)\"></span>\n </div>\n </div>\n </div>\n }\n </div>\n}\n\n","import { ClipboardModule } from '@angular/cdk/clipboard';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { SnapshotInviteUrlsComponent } from './snapshot-inviteurls.component';\n\n@NgModule({\n imports: [\n MatFormFieldModule,\n ReactiveFormsModule,\n CommonModule,\n ClipboardModule\n ],\n declarations: [\n SnapshotInviteUrlsComponent],\n exports: [\n SnapshotInviteUrlsComponent]\n})\nexport class SnapshotInviteUrlsModule { }\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'slugify',\n standalone: false\n})\nexport class SlugifyPipe implements PipeTransform {\n transform(str: string): string {\n return this.isString(str)\n ? str.toLowerCase().trim()\n .replace(/[^\\w\\-]+/g, ' ')\n .replace(/\\s+/g, '-')\n .replace(/^\\-+|\\-+$/g, '')\n : str;\n }\n\n isString(value: any) {\n return typeof value === 'string';\n }\n}\n","import { Component, Input, ViewEncapsulation, signal } from '@angular/core';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'tabnavigator',\n templateUrl: './tabnavigator.component.html',\n styleUrls: ['./tabnavigator.component.less'],\n standalone: false\n})\nexport class TabNavigatorComponent{\n public itemSet = signal<TabItemDto[]>([]);\n @Input() set items(value: TabItemDto[]) {\n this.itemSet.set(value);\n this.updateActiveItem();\n }\n\n constructor(private router: Router) {\n }\n\n updateActiveItem() {\n var matchingItem = this.itemSet().find(p => p.url == this.router.url);\n if (matchingItem != null) {\n matchingItem.active = true;\n }\n }\n}\n\nexport class TabItemDto {\n constructor(label: string, url: string) {\n this.label = label;\n this.url = url;\n }\n\n label: string;\n url: string;\n active: boolean;\n}\n","<div class=\"tabnavigation\">\n @for (item of itemSet(); track item) {\n <a class=\"tabnavigation-tab\" [ngClass]=\"{'active': item.active}\" [routerLink]=\"item.url\" [id]=\"'tabnavigation-tab-' + item.label | slugify\">\n @if (!item.active) {\n <span class=\"icon ph-caret-right\"></span>\n }\n @if (item.active) {\n <span class=\"icon ph-caret-down\"></span>\n }\n {{item.label}}\n </a>\n }\n <div class=\"filler\"></div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { SlugifyPipe } from './ngx-slugify.pipe';\n\n@NgModule({\n providers: [SlugifyPipe],\n declarations: [SlugifyPipe],\n exports: [SlugifyPipe]\n})\nexport class SlugifyPipeModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { TabNavigatorComponent } from './tabnavigator.component';\nimport { SlugifyPipeModule } from '../../pipes/slugify/ngx-slugify.module';\n\n@NgModule({\n imports: [\n CommonModule,\n RouterModule,\n SlugifyPipeModule\n ],\n declarations: [\n TabNavigatorComponent],\n exports: [\n TabNavigatorComponent]\n})\nexport class TabNavigatorModule { }\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\nimport { TopicSelectorDto } from './topic-selector.component';\nexport function presetCheckValidator(presetKey: string): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n var value = control.value as TopicSelectorDto;\n if (!value) { return null; }\n if (value.presetKey == presetKey) {\n return {\n presetCheck: true\n }\n }\n return null;\n }\n}\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\nimport { TopicSelectorDto } from './topic-selector.component';\nexport function minTopicsSelectedValidator(minimum: number): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n var value = control.value as TopicSelectorDto;\n if (!value) { return null; }\n if (value.topicKeys == null || (value.topicKeys.length + 1) <= minimum) {\n return {\n minTopics: true\n }\n }\n return null;\n }\n}\n","export class ModelStructureDto {\n definition: ModelDefinitionDto;\n models: ModelSummaryDto[];\n}\n\nexport class ModelDefinitionDto {\n constructor() {\n this.questionnaireTypes = [];\n this.demoUrls = [];\n this.factors = [];\n }\n\n name: string;\n publicKey: string;\n description: string;\n demoUrls: ModelDemoUrlDto[];\n attribution: string;\n questionnaireTypes: QuestionnaireTypeDto[];\n factors: FactorStructureDto[];\n explainerVideoUrl: string;\n}\n\nexport class ModelDemoUrlDto {\n type: string;\n url: string;\n}\n\nexport class DefinitionDto {\n term: string;\n definition: string;\n}\n\nexport class EffectDto {\n to: string;\n standardizedBeta: number;\n standardError: number;\n}\n\nexport class FactorStructureDto {\n constructor() {\n this.lower = [];\n this.segments = [];\n this.effects = [];\n this.constraints = new FactorStructureConstraintDto();\n }\n\n publicKey: string;\n parentKey: string;\n name: string;\n color: string;\n core: boolean;\n metric: boolean;\n unit: string;\n indicatorPosition: string;\n description: string;\n questionCount: number;\n ownQuestionCount: number;\n explainerVideoUrl: string;\n effects: EffectDto[];\n segments: FactorStructureSegmentDto[];\n constraints: FactorStructureConstraintDto;\n lower: FactorStructureDto[];\n attribution: string;\n antecedents: FactorStructureDto[];\n recommended: boolean;\n}\n\nexport class FactorStructureSegmentDto {\n questionCount: number;\n ownQuestionCount: number;\n segment: SegmentEnum;\n durationInSeconds: number;\n questions: string[];\n}\n\nexport class ModelSummaryDto {\n publicKey: string;\n name: string;\n description: string;\n isInBeta: boolean;\n}\n\nexport class FactorStructureConstraintDto {\n constructor() {\n this.forSegments = [];\n this.teamTraitKeys = [];\n }\n\n forSegments: string[];\n teamTraitKeys: string[];\n}\n\nexport class QuestionnaireTypeDto {\n constructor(publicKey, name) {\n this.publicKey = publicKey;\n this.name = name;\n }\n\n publicKey: string;\n name: string;\n description: string;\n scaleKeys: string[];\n}\n\nexport class TeamFlagMatchDto {\n isSoftwareTeam: boolean | null;\n isAgileTeam: boolean | null;\n isIterationTeam: boolean | null;\n}\n\nexport enum SegmentEnum {\n TeamMember = 'TeamMember',\n Stakeholder = 'Stakeholder',\n Management = 'Supporter'\n}\n","import { Component, Directive, HostListener, Inject, Input } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialog, MatDialogConfig } from '@angular/material/dialog';\nimport { FactorStructureDto } from '../../models/modelStructureDto';\n\n@Component({\n templateUrl: './dialog-factorinformation.component.html',\n styleUrls: ['./dialog-factorinformation.component.less'],\n standalone: false\n})\nexport class DialogFactorInformationComponent {\n public factor: FactorStructureDto;\n\n constructor(@Inject(MAT_DIALOG_DATA) factor: FactorStructureDto) {\n this.factor = factor;\n }\n}\n\n@Directive({\n selector: '[factorInformationDialog]',\n standalone: false\n})\nexport class OpenFactorInformationDialogDirective {\n @Input() factor: FactorStructureDto;\n\n constructor(private dialog: MatDialog) {\n }\n\n @HostListener('click', ['$event'])\n onClick($event: any): void {\n $event.stopPropagation();\n const dialogConfig = new MatDialogConfig();\n dialogConfig.panelClass = ['dialog', 'factor'];\n dialogConfig.data = this.factor;\n dialogConfig.autoFocus = false;\n dialogConfig.enterAnimationDuration = 0;\n dialogConfig.exitAnimationDuration = 0;\n this.dialog.open(DialogFactorInformationComponent, dialogConfig);\n }\n}\n\n","@if (factor) {\n <div class=\"dialog-header\">\n <h1 mat-dialog-title>{{factor.name}}</h1>\n <div class=\"close\" mat-dialog-close><i class=\"responsive icon ph-x-bold\"></i></div>\n </div>\n}\n<mat-dialog-content>\n {{factor.description}}\n\n @if (factor.attribution) {\n <div class=\"attribution\">\n <h4>Attribution for measurement method</h4>\n <p>{{factor.attribution}}</p>\n </div>\n }\n\n @if (!factor.metric) {\n <div class=\"questions\">\n <h4>Question pool</h4>\n <div>Below are the questions we use for this factor. They may be narrowed down further based on segment. See <a href=\"https://github.com/theliberators/columinity.docs/wiki/How-the-questionnaire-links-to-factors\" target=\"_blank\">wiki</a> for details.</div>\n @for (segment of factor.segments; track segment) {\n <div class=\"questions-segment\">\n @if (segment.questions.length > 0) {\n <div>\n <h5>For {{segment.segment.toLowerCase()}}s</h5>\n <ul>\n @for (question of segment.questions; track question) {\n <li>{{question}}</li>\n }\n </ul>\n </div>\n }\n </div>\n }\n </div>\n }\n</mat-dialog-content>\n","import { Component, Input, SimpleChanges, forwardRef } from '@angular/core';\nimport { AbstractControl, ControlValueAccessor, FormArray, FormBuilder, FormControl, FormGroup, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\nimport { FactorStructureDto, QuestionnaireTypeDto, SegmentEnum } from '../../models/modelStructureDto';\nimport { DialogFactorInformationComponent } from '../../dialogs/dialog-factorinformation/dialog-factorinformation.component';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'topic-selector',\n templateUrl: './topic-selector.component.html',\n styleUrls: ['./topic-selector.component.less'],\n providers: [\n { provide: NG_VALUE_ACCESSOR, multi: true, useExisting: forwardRef(() => TopicSelectorComponent), }\n ],\n standalone: false\n})\nexport class TopicSelectorComponent implements ControlValueAccessor {\n public form: FormGroup;\n public warnings: string[] = []\n private topicSelectionDto: TopicSelectorDto;\n private selectedTopics: string[] = [];\n public questionnaireAccuracy: number = 0;\n public questionsTeamMembers: number = 0;\n public questionsStakeholders: number = 0;\n public questionsSupporters: number = 0;\n public durationTeamMembers: number = 0;\n public durationStakeholders: number = 0;\n public durationSupporters: number = 0;\n public questionsTotal: number = 0;\n @Input() topics: FactorStructureDto[];\n @Input() presets: QuestionnaireTypeDto[] = [];\n @Input() disabled = false;\n @Input() topicKeys: string[] = [];\n public SegmentEnum = SegmentEnum;\n private formSubscription: Subscription;\n\n constructor(private formBuilder: FormBuilder, private dialog: MatDialog) {\n }\n\n ngOnInit() {\n }\n\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['topics'] || changes['presets']) {\n this.createForm();\n this.wireUpTopicSelection();\n this.formSubscription = this.form.valueChanges.subscribe(() => {\n const output = this.getValue();\n this.onChange(output);\n this.updateMetaData(output);\n });\n }\n }\n\n ngOnDestroy() {\n if (this.formSubscription) {\n this.formSubscription.unsubscribe();\n }\n }\n\n public toggleTopic() {\n this.form.controls.preset.setValue(\"custom\");\n }\n\n public registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n public registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n\n onChange: any = () => { };\n onTouch: any = () => { };\n\n writeValue(dto: TopicSelectorDto): void {\n this.topicSelectionDto = dto;\n this.wireUpTopicSelection();\n this.onChange(this.topicSelectionDto);\n }\n\n setDisabledState?(isDisabled: boolean): void {\n if (isDisabled) {\n this.form.disable();\n } else {\n this.form.enable();\n }\n }\n\n public selectPreset() {\n var questionnaire = this.presets.find(p => p.publicKey == this.form.controls.preset.value);\n if (!questionnaire) { return; }\n\n var topicKeys = questionnaire.scaleKeys;\n if (topicKeys.length == 0) { topicKeys = this.presets[0].scaleKeys; }\n\n this.selectedTopics = topicKeys ?? [];\n var topics = this.form.controls.topics as FormGroup;\n Object.keys(topics.controls)\n .forEach(p => topics.get(p).setValue(this.selectedTopics.includes(p)));\n\n if (questionnaire.publicKey == 'custom') { this.form.controls.showTopics.setValue(true, { emitEvent: false }); }\n var dto = new TopicSelectorDto(questionnaire.publicKey, topicKeys);\n this.updateMetaData(dto);\n this.onChange(dto);\n }\n\n public getValue(): TopicSelectorDto {\n var topics = this.form.controls.topics as FormGroup;\n var selected = Object.keys(topics.controls)\n .filter(p => topics.get(p).value == true)\n .map(p => p);\n\n var presetKey = this.form.controls.preset.value;\n return new TopicSelectorDto(presetKey, selected);\n }\n\n public openFactorInformation(topicKey: string, $event: Event) {\n var topic = this.topics.find(p => p.publicKey == topicKey);\n if (!topic) { return; }\n\n $event.preventDefault()\n const dialogConfig = new MatDialogConfig();\n dialogConfig.panelClass = ['dialog', 'factor'];\n dialogConfig.data = topic;\n dialogConfig.enterAnimationDuration = 0;\n dialogConfig.exitAnimationDuration = 0;\n this.dialog.open(DialogFactorInformationComponent, dialogConfig);\n }\n\n public hasSegmentQuestions(factor: FactorStructureDto, segment: SegmentEnum, useOwnQuestionCount: boolean): boolean {\n if (useOwnQuestionCount) {\n return factor.segments.find(p => p.segment == segment.toString()).ownQuestionCount > 0;\n }\n else {\n return factor.segments.find(p => p.segment == segment.toString()).questionCount > 0;\n }\n }\n\n public getCoreFactors() {\n return this.topics.filter(p => p.parentKey == null);\n }\n\n public getSubFactors(parentKey: string) {\n return this.topics.filter(p => p.parentKey == parentKey).sort((a, b) => a.name.localeCompare(b.name));\n }\n\n public selectAll(topic: FactorStructureDto, $event: Event) {\n $event.preventDefault();\n var topics = this.form.controls.topics as FormGroup;\n this.topics\n .filter(p => p.parentKey == topic.publicKey || (p.publicKey == topic.publicKey && p.ownQuestionCount > 0))\n .forEach(p => topics.get(p.publicKey).setValue(true))\n }\n\n public selectNone(topic: FactorStructureDto, $event: Event) {\n $event.preventDefault()\n var topics = this.form.controls.topics as FormGroup;\n this.topics\n .filter(p => p.parentKey == topic.publicKey || (p.publicKey == topic.publicKey && p.ownQuestionCount > 0))\n .forEach(p => topics.get(p.publicKey).setValue(false))\n }\n\n private wireUpTopicSelection() {\n if (!this.topicSelectionDto) { return; }\n var questionnaire = this.presets.find(p => p.publicKey == this.topicSelectionDto.presetKey);\n\n if (!questionnaire) {\n questionnaire = this.presets[0];\n this.topicSelectionDto.topicKeys = questionnaire.scaleKeys;\n this.topicSelectionDto.presetKey = questionnaire.publicKey;\n }\n\n this.selectedTopics = this.topicSelectionDto.topicKeys ?? [];\n this.form.controls.preset.setValue(this.topicSelectionDto.presetKey);\n\n if (questionnaire.publicKey == 'custom') { this.form.controls.showTopics.setValue(true, { emitEvent: false }); }\n var topics = this.form.controls.topics as FormGroup;\n Object.keys(topics.controls).forEach(p => topics.get(p).setValue(this.selectedTopics.includes(p), { emitEvent: false }));\n\n this.updateMetaData(this.topicSelectionDto);\n }\n\n private createForm() {\n this.form = this.formBuilder.group({\n preset: [null],\n topicKeys: [[]],\n topics: this.formBuilder.group([]),\n showTopics: [false]\n });\n\n this.topics.filter(p => p.parentKey != null || (p.parentKey == null && p.ownQuestionCount > 0))\n .forEach(p => (this.form.controls.topics as FormGroup).addControl(p.publicKey, new FormControl(false), { emitEvent: false }))\n }\n\n private updateMetaData(output: TopicSelectorDto) {\n this.warnings = [];\n\n // only work with lower-level factors, as higher-level contain aggregated higher-level question counts\n var scalesToInclude = this.topics.filter(p => p.parentKey != null && output.topicKeys.includes(p.publicKey));\n var totalQuestions = this.topics.filter(p => p.parentKey != null).reduce((sum, current) => sum += current.questionCount, 0);\n\n this.questionsTotal = scalesToInclude.reduce((sum, current) => sum += current.questionCount, 0);\n this.questionsTeamMembers = scalesToInclude.flatMap(p => p.segments).filter(p => p.segment == SegmentEnum.TeamMember).reduce((sum, current) => sum += current.questionCount, 0);\n this.questionsStakeholders = scalesToInclude.flatMap(p => p.segments).filter(p => p.segment == SegmentEnum.Stakeholder).reduce((sum, current) => sum += current.questionCount, 0);\n this.questionsSupporters = scalesToInclude.flatMap(p => p.segments).filter(p => p.segment == SegmentEnum.Management).reduce((sum, current) => sum += current.questionCount, 0);\n\n this.durationTeamMembers = scalesToInclude.flatMap(p => p.segments).filter(p => p.segment == SegmentEnum.TeamMember).reduce((sum, current) => sum += current.durationInSeconds, 0) / 60;\n this.durationStakeholders = scalesToInclude.flatMap(p => p.segments).filter(p => p.segment == SegmentEnum.Stakeholder).reduce((sum, current) => sum += current.durationInSeconds, 0) / 60;\n this.durationSupporters = scalesToInclude.flatMap(p => p.segments).filter(p => p.segment == SegmentEnum.Management).reduce((sum, current) => sum += current.durationInSeconds, 0) / 60;\n\n if (this.durationTeamMembers < 1) { this.durationTeamMembers = 1; }\n if (this.durationStakeholders < 1) { this.durationStakeholders = 1; }\n if (this.durationSupporters < 1) { this.durationSupporters = 1; }\n\n if (this.questionsStakeholders == 0) {\n this.warnings.push(\"The selection does not include topics for stakeholders.\");\n }\n if (this.questionsSupporters == 0) {\n this.warnings.push(\"The selection does not include topics for supporters / management.\");\n }\n if (this.questionsTeamMembers == 0) {\n this.warnings.push(\"The selection does not include topics for team members.\");\n }\n if (this.questionnaireAccuracy < 0.25) {\n this.warnings.push(\"The selection measures few topics, so its overall accuracy is low.\");\n }\n\n this.questionnaireAccuracy = this.questionsTotal / totalQuestions;\n }\n}\n\nexport class TopicSelectorDto {\n constructor(presetKey: string, topicKeys: string[]) {\n this.presetKey = presetKey;\n this.topicKeys = topicKeys ?? [];\n }\n\n presetKey: string;\n topicKeys: string[];\n}\n","<form [formGroup]=\"form\">\n <div class=\"topicselector-container\">\n <div class=\"topicselector-metadata\">\n <div class=\"questionnaire-preset\">\n <mat-form-field class=\"questionnaire-preset-select\" appearance=\"fill\">\n <mat-label>Select predefined questionnaire</mat-label>\n <mat-select id=\"question-preset\" formControlName=\"preset\" (selectionChange)=\"selectPreset()\">\n @for (type of presets; track type) {\n <mat-option [value]=\"type.publicKey\" class=\"select-option\">{{type.name}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n <div class=\"questionnaire-accuracy\">\n <div class=\"questionnaire-breakdown-label\">Accuracy</div>\n <div class=\"questionnaire-breakdown-bar-holder\">\n <div class=\"questionnaire-accuracy-bar\" [ngClass]=\"{'low': questionnaireAccuracy < 0.25, 'moderate' : questionnaireAccuracy < 0.5 && questionnaireAccuracy >= 0.25}\" [ngStyle]=\"{'width': (questionnaireAccuracy * 100) + '%' }\">{{questionnaireAccuracy * 100 | number:'1.0-0'}}%</div>\n </div>\n </div>\n <div class=\"questionnaire-segments\">\n <div class=\"questionnaire-segments-label\">Time investment</div>\n <div class=\"questionnaire-breakdowns\">\n <div class=\"questionnaire-breakdown\">\n <div class=\"questionnaire-breakdown-label\">Team members</div>\n <div class=\"progressbar progressbar-positive progressbar-teammember\">\n @if (questionsTeamMembers > 0) {\n <div class=\"progressbar-bar\" [style.width]=\"((questionsTeamMembers / questionsTotal) * 100) + '%'\"></div>\n }\n <div class=\"progressbar-score\">{{durationTeamMembers | number:'1.0-0'}} min</div>\n </div>\n </div>\n <div class=\"questionnaire-breakdown\">\n <div class=\"questionnaire-breakdown-label\">Stakeholders</div>\n <div class=\"progressbar progressbar-positive progressbar-stakeholder\">\n @if (questionsStakeholders > 0) {\n <div class=\"progressbar-bar\" [style.width]=\"((questionsStakeholders / questionsTotal) * 100) + '%'\"></div>\n }\n <div class=\"progressbar-score\">{{durationStakeholders | number:'1.0-0'}} min</div>\n </div>\n </div>\n <div class=\"questionnaire-breakdown\">\n <div class=\"questionnaire-breakdown-label\">Supporters</div>\n <div class=\"progressbar progressbar-positive progressbar-supporter\">\n @if (questionsSupporters > 0) {\n <div class=\"progressbar-bar\" [style.width]=\"((questionsSupporters / questionsTotal) * 100) + '%'\"></div>\n }\n <div class=\"progressbar-score\">{{durationSupporters | number:'1.0-0'}} min</div>\n </div>\n </div>\n </div>\n </div>\n @if (warnings.length > 0) {\n <div class=\"topicselector-warnings\">\n @for (warning of warnings; track warning) {\n <div class=\"topicselector-warnings-warning\">\n <span class=\"icon ph-info-fill\"></span>{{warning}}\n </div>\n }\n </div>\n }\n @if (!form.controls.showTopics.value) {\n <a href=\"javascript:void(null)\" id=\"action-advancedviewtoggle\" class=\"topic-selector-advancedviewtoggle\" (click)=\"form.controls.showTopics.setValue(true)\"><span class=\"icon ph-caret-down-bold\"></span>Customize topics</a>\n }\n @if (form.controls.showTopics.value) {\n <a href=\"javascript:void(null)\" id=\"action-advancedviewtoggle\" class=\"topic-selector-advancedviewtoggle\" (click)=\"form.controls.showTopics.setValue(false)\"><span class=\"icon ph-caret-up-bold\"></span>Hide topics</a>\n }\n </div>\n @if (form.controls.showTopics.value) {\n <div class=\"topicselector-topics\">\n @for (topic of getCoreFactors(); track topic) {\n <div class=\"topic-parent\" formArrayName=\"topics\">\n <div class=\"name\">\n <h4>{{topic.name}}</h4>\n <div class=\"helpers\">(<a href=\"#\" (click)=\"selectAll(topic, $event)\">all</a> | <a href=\"#\" (click)=\"selectNone(topic, $event)\">none</a>)</div>\n <div class=\"topic-child-moreinformation\">\n <span class=\"icon ph-info-bold\" (click)=\"openFactorInformation(topic.publicKey, $event)\"></span>\n </div>\n </div>\n @if (topic.ownQuestionCount > 0) {\n <div class=\"topic-child\">\n <mat-checkbox class=\"topic-child-check\" [formControlName]=\"topic.publicKey\" (click)=\"toggleTopic()\" [id]=\"'topic-' + topic.name | slugify\"></mat-checkbox>\n <div class=\"topic-child-description\">\n {{topic.name}} ({{topic.ownQuestionCount}} questions)\n <div class=\"tags\">\n @if (topic.recommended) {\n <div class=\"tags-tag recommended\">Recommended</div>\n }\n @if (hasSegmentQuestions(topic, SegmentEnum.TeamMember, true)) {\n <div class=\"tags-tag teammember\">For team members</div>\n }\n @if (hasSegmentQuestions(topic, SegmentEnum.Stakeholder, true)) {\n <div class=\"tags-tag stakeholder\">For stakeholders</div>\n }\n @if (hasSegmentQuestions(topic, SegmentEnum.Management, true)) {\n <div class=\"tags-tag supporter\">For supporters</div>\n }\n </div>\n </div>\n <div class=\"topic-child-moreinformation\">\n <span class=\"icon ph-info-bold\" (click)=\"openFactorInformation(topic.publicKey, $event)\"></span>\n </div>\n </div>\n }\n @for (subTopic of getSubFactors(topic.publicKey); track subTopic) {\n <div class=\"topic-child\">\n <mat-checkbox class=\"topic-child-check\" [formControlName]=\"subTopic.publicKey\" (click)=\"toggleTopic()\" [id]=\"'topic-' + subTopic.name | slugify\"></mat-checkbox>\n <div class=\"topic-child-description\">\n {{subTopic.name}} ({{subTopic.questionCount}} questions)\n <div class=\"tags\">\n @if (subTopic.recommended) {\n <div class=\"tags-tag recommended\">Recommended</div>\n }\n @if (hasSegmentQuestions(subTopic, SegmentEnum.TeamMember, false)) {\n <div class=\"tags-tag teammember\">For team members</div>\n }\n @if (hasSegmentQuestions(subTopic, SegmentEnum.Stakeholder, false)) {\n <div class=\"tags-tag stakeholder\">For stakeholders</div>\n }\n @if (hasSegmentQuestions(subTopic, SegmentEnum.Management, false)) {\n <div class=\"tags-tag supporter\">For supporters</div>\n }\n </div>\n </div>\n <div class=\"topic-child-moreinformation\">\n <span class=\"icon ph-info-bold\" (click)=\"openFactorInformation(subTopic.publicKey, $event)\"></span>\n </div>\n </div>\n }\n </div>\n }\n </div>\n }\n </div>\n</form>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\nimport { DialogFactorInformationComponent, OpenFactorInformationDialogDirective } from './dialog-factorinformation.component';\n\n\n@NgModule({\n imports: [MatDialogModule, MatSnackBarModule, CommonModule],\n declarations: [DialogFactorInformationComponent, OpenFactorInformationDialogDirective],\n exports: [DialogFactorInformationComponent, OpenFactorInformationDialogDirective],\n providers: []\n})\nexport class FactorInformationDialogModule { }\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatSelectModule } from '@angular/material/select';\nimport { FactorInformationDialogModule } from '../../dialogs/dialog-factorinformation/dialog-factorinformation.module';\nimport { SlugifyPipeModule } from '../../pipes/slugify/ngx-slugify.module';\nimport { TopicSelectorComponent } from './topic-selector.component';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n MatFormFieldModule,\n ReactiveFormsModule,\n MatInputModule,\n MatSelectModule,\n MatCheckboxModule,\n SlugifyPipeModule,\n FactorInformationDialogModule\n ],\n declarations: [\n TopicSelectorComponent],\n exports: [\n TopicSelectorComponent]\n})\nexport class TopicSelectorModule { }\n","import { Component, Input } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { FactorScoreDto } from '../../results/models/factorScoreDto';\nimport { UserSettingsDto } from '../../models/userSettingsDto';\nimport { UserSettingService } from '../../viewModel/userSettings.service';\n\n@Component({\n selector: 'progressbar',\n templateUrl: './progressbar.component.html',\n styleUrls: ['./progressbar.component.less'],\n standalone: false\n})\nexport class ProgressbarComponent {\n @Input() factorScore: FactorScoreDto;\n public confidenceAvailable: boolean;\n public direction: string;\n public segmentTeamMembers: boolean;\n public segmentSupporters: boolean;\n public segmentStakeholders: boolean;\n public score: number;\n public factorScoreWidth: number;\n public factorScoreLeft: number;\n public settings: UserSettingsDto;\n public settingsSubscription: Subscription;\n\n constructor(private userSettingsService: UserSettingService) {\n this.settings = this.userSettingsService.get();\n }\n\n ngOnInit() {\n this.settingsSubscription = this.userSettingsService.changed.subscribe((settings: UserSettingsDto) => {\n this.settings = settings;\n });\n\n this.direction = this.factorScore.qualification.toLowerCase();\n this.confidenceAvailable = this.factorScore.sampleSize > 0 && !this.factorScore.anonymized;\n this.segmentTeamMembers = this.factorScore.points.find(p => p.name == \"TeamMember\") != null;\n this.segmentStakeholders = this.factorScore.points.find(p => p.name == \"Stakeholder\") != null;\n this.segmentSupporters = this.factorScore.points.find(p => p.name == \"Supporter\") != null;\n this.factorScoreWidth = (this.factorScore.upperConfidence - this.factorScore.lowerConfidence);\n if (this.factorScoreWidth <= 10) { this.factorScoreWidth = 10 };\n this.factorScoreLeft = this.factorScore.lowerConfidence;\n if (this.factorScoreLeft >= 90) { this.factorScoreLeft = 90 };\n }\n\n ngOnDestroy() {\n if (this.settingsSubscription) {\n this.settingsSubscription.unsubscribe();\n }\n }\n\n}\n","<div [class]=\"'progressbar progressbar-' + direction\">\n <div class=\"progressbar-segments\">\n @if (segmentTeamMembers) {\n <span class=\"progressbar-segment progressbar-segment-teammembers icon ph-user-fill\" title=\"This factor was measured through responses from team members\"></span>\n }\n @if (segmentStakeholders) {\n <span class=\"progressbar-segment progressbar-segment-stakeholders icon ph-user-fill\" title=\"This factor was measured through responses from stakeholders\"></span>\n }\n @if (segmentSupporters) {\n <span class=\"progressbar-segment progressbar-segment-supporters icon ph-user-fill\" title=\"This factor was measured through responses from supporters\"></span>\n }\n </div>\n <div class=\"progressbar-score\">{{factorScore.score | number:'1.0-0'}}</div>\n @if (confidenceAvailable && settings.user.modelFilter.advanced) {\n <div class=\"progressbar-confidence\" [title]=\"'Most responses fall in the range of ' + factorScore.lowerConfidence + ' (15% percentile) and ' + factorScore.upperConfidence + ' (85% percentile).'\" [style]=\"'left: ' + factorScoreLeft + '%; width: ' + factorScoreWidth + '%'\"></div>\n }\n @if (!confidenceAvailable || !settings.user.modelFilter.advanced) {\n <div class=\"progressbar-bar\" [style]=\"'width: ' + factorScore.score + '%'\"></div>\n }\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatInputModule } from '@angular/material/input';\nimport { RouterModule } from '@angular/router';\nimport { ProgressbarComponent } from './progressbar.component';\n\n@NgModule({\n imports: [\n RouterModule,\n CommonModule,\n MatInputModule],\n declarations: [\n ProgressbarComponent],\n exports: [\n ProgressbarComponent]\n})\nexport class ProgressbarModule { }\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DatePipe } from '@angular/common';\nimport { DateRangeDto } from './ngx-dateRangeDto.model';\n\n@Pipe({\n name: 'dateRange',\n standalone: false\n})\nexport class DateRangePipe implements PipeTransform {\n constructor(private datePipe: DatePipe) {\n }\n\n transform(dateRange: DateRangeDto): string {\n if (dateRange == null) { return null }\n\n var fromDate = new Date(dateRange.from);\n var toDate = new Date(dateRange.to);\n var isSameDay = (fromDate.getDate() === toDate.getDate() && fromDate.getMonth() === toDate.getMonth() && fromDate.getFullYear() === toDate.getFullYear())\n\n var pattern = fromDate.getFullYear() == toDate.getFullYear() ? 'MMMM d' : 'MMM d, YYYY';\n if (dateRange.from != null && dateRange.to == null) { return this.datePipe.transform(dateRange.from, pattern); }\n if (dateRange.from == null && dateRange.to != null) { return this.datePipe.transform(dateRange.to, pattern); }\n\n if (isSameDay) { return this.datePipe.transform(dateRange.from, pattern) }\n return this.datePipe.transform(dateRange.from, pattern) + ' to ' + this.datePipe.transform(dateRange.to, pattern);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DateRangePipe } from './ngx-dateRange.pipe';\n\n@NgModule({\n providers: [DateRangePipe],\n declarations: [DateRangePipe],\n exports: [DateRangePipe]\n})\nexport class DateRangePipeModule {}\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class ArrowUpdateService {\n private updateArrows: Subject<boolean> = new Subject<boolean>();\n updateArrows$ = this.updateArrows.asObservable();\n\n constructor() {\n }\n\n triggerUpdate() {\n this.updateArrows.next(true);\n }\n}\n","import { Component, DoCheck, ElementRef, Input, OnInit } from '@angular/core';\nimport { ArrowUpdateService } from './ArrowUpdateService';\nimport { Subscription, timer } from 'rxjs';\n\n// Source byu Samuel Berthe - https://github.com/samber/ngx-domarrow\n@Component({\n selector: 'arrow',\n templateUrl: './arrow.component.html',\n styleUrls: ['./arrow.component.less'],\n standalone: false\n})\nexport class ArrowComponent implements OnInit, DoCheck {\n @Input() public from: string = null;\n @Input() public to: string = null;\n @Input() public head: boolean = false;\n @Input() public tail: boolean = false;\n @Input() public text: string = null;\n @Input() public toolTip: string = null;\n @Input() public color: string = null;\n @Input() public width: number = null;\n @Input() public onlyVisible: boolean = false;\n @Input() public fromX: number = null;\n @Input() public fromY: number = null;\n @Input() public toX: number = null;\n @Input() public toY: number = null;\n\n private subscription: Subscription;\n public arrowIndices: number[] = [];\n public styleLine: object[] = [];\n public styleArrowFw: object[] = [];\n public styleArrowBw: object[] = [];\n public needSwap: boolean[] = [];\n private elementPositionBackup: string = '';\n constructor(\n private elem: ElementRef,\n private arrowUpdateService: ArrowUpdateService\n ) { }\n\n private getNumberOrDef(val, def) {\n return typeof val === 'number' && !isNaN(val) ? val : def;\n }\n\n private isVisible(element) {\n return element && element.style.visibility !== 'hidden';\n }\n\n private inside(minX, minY, maxX, maxY, x1, y1) {\n return minX <= x1 && x1 <= maxX && minY <= y1 && y1 <= maxY;\n }\n\n private intersectionPoint(x1, y1, x2, y2, minX, minY, maxX, maxY) {\n const min = Math.min;\n const max = Math.max;\n const good = this.inside.bind(null, min(x1, x2), min(y1, y2), max(x1, x2), max(y1, y2));\n\n if ((x1 <= minX && x2 <= minX)\n || (y1 <= minY && y2 <= minY)\n || (x1 >= maxX && x2 >= maxX)\n || (y1 >= maxY && y2 >= maxY)\n || (this.inside(minX, minY, maxX, maxY, x1, y1) && this.inside(minX, minY, maxX, maxY, x2, y2)))\n return null;\n\n const m = (y2 - y1) / (x2 - x1);\n let y = m * (minX - x1) + y1;\n if (minY < y && y < maxY && good(minX, y))\n return {\n x: minX,\n y: y\n };\n\n y = m * (maxX - x1) + y1;\n if (minY < y && y < maxY && good(maxX, y))\n return {\n x: maxX,\n y: y\n };\n\n let x = (minY - y1) / m + x1;\n if (minX < x && x < maxX && good(x, minY))\n return {\n x: x,\n y: minY\n };\n\n x = (maxY - y1) / m + x1;\n if (minX < x && x < maxX && good(x, maxY))\n return {\n x: x,\n y: maxY\n };\n\n return null;\n }\n\n private adjustLine(nth: number, from: HTMLElement, to: HTMLElement) {\n if (to == null || from == null)\n return;\n\n const color = this.color || '808080';\n const W = this.width || 1;\n\n const fromB = parseFloat(from.style.top) ? null : from.getBoundingClientRect();\n const toB = parseFloat(to.style.top) ? null : to.getBoundingClientRect();\n const fromBStartY = (fromB ? window.scrollY + fromB.top : parseFloat(from.style.top));\n const fromBStartX = (fromB ? window.scrollX + fromB.left : parseFloat(from.style.left));\n const toBStartY = (toB ? window.scrollY + toB.top : parseFloat(to.style.top));\n const toBStartX = (toB ? window.scrollX + toB.left : parseFloat(to.style.left));\n const fromBWidth = (fromB ? fromB.width : parseFloat(from.style.width) || from.offsetWidth);\n const fromBHeight = (fromB ? fromB.height : parseFloat(from.style.height) || from.offsetHeight);\n const toBWidth = (toB ? toB.width : parseFloat(to.style.width) || to.offsetWidth);\n const toBHeight = (toB ? toB.height : parseFloat(to.style.height) || to.offsetHeight);\n\n let fT = fromBStartY + fromBHeight * this.getNumberOrDef(this.fromY, 0.5);\n let tT = toBStartY + toBHeight * this.getNumberOrDef(this.toY, 0.5);\n let fL = fromBStartX + fromBWidth * this.getNumberOrDef(this.fromX, 0.5);\n let tL = toBStartX + toBWidth * this.getNumberOrDef(this.toX, 0.5);\n\n let CA = Math.abs(tT - fT);\n let CO = Math.abs(tL - fL);\n let H = Math.sqrt(CA * CA + CO * CO);\n let ANG = 180 / Math.PI * Math.acos(CO / H);\n\n if ((fT >= tT || fL >= tL) && (tT >= fT || tL >= fL))\n ANG *= -1;\n\n if (this.onlyVisible) {\n const arrangeFrom = this.intersectionPoint(fL, fT, tL, tT, fromBStartX, fromBStartY, fromBStartX + fromBWidth, fromBStartY + fromBHeight);\n const arrangeTo = this.intersectionPoint(fL, fT, tL, tT, toBStartX, toBStartY, toBStartX + toBWidth, toBStartY + toBHeight);\n\n if (arrangeFrom) {\n fL = arrangeFrom.x;\n fT = arrangeFrom.y;\n }\n if (arrangeTo) {\n tL = arrangeTo.x;\n tT = arrangeTo.y;\n }\n CA = Math.abs(tT - fT);\n CO = Math.abs(tL - fL);\n H = Math.sqrt(CA * CA + CO * CO);\n }\n\n const top = (tT + fT) / 2 - W / 2;\n const left = (tL + fL) / 2 - H / 2;\n\n const arrows = this.elem.nativeElement.querySelectorAll('.line-' + nth + ' .arrow');\n\n this.needSwap[nth] = (fL > tL || (fL === tL && fT < tT));\n const arrowFw = this.needSwap[nth] && this.isVisible(arrows[0]) && arrows[0] || !this.needSwap[nth] && this.isVisible(arrows[1]) && arrows[1];\n const arrowBw = !this.needSwap[nth] && this.isVisible(arrows[0]) && arrows[0] || this.needSwap[nth] && this.isVisible(arrows[1]) && arrows[1];\n\n this.styleArrowFw[nth] = {};\n this.styleArrowBw[nth] = {};\n this.styleLine[nth] = {};\n\n this.styleArrowFw[nth]['top'] = W / 2 - 6 + 'px';\n this.styleArrowBw[nth]['top'] = W / 2 - 6 + 'px';\n\n this.styleLine[nth]['display'] = 'none';\n this.styleLine[nth]['-webkit-transform'] = 'rotate(' + ANG + 'deg)';\n this.styleLine[nth]['-moz-transform'] = 'rotate(' + ANG + 'deg)';\n this.styleLine[nth]['-ms-transform'] = 'rotate(' + ANG + 'deg)';\n this.styleLine[nth]['-o-transform'] = 'rotate(' + ANG + 'deg)';\n this.styleLine[nth]['-transform'] = 'rotate(' + ANG + 'deg)';\n this.styleLine[nth]['top'] = top + 'px';\n this.styleLine[nth]['left'] = left + 'px';\n this.styleLine[nth]['width'] = H + 'px';\n this.styleLine[nth]['height'] = W + 'px';\n this.styleLine[nth]['background'] = 'linear-gradient(to right, ' +\n (arrowFw ? 'transparent' : color) + ' 11px, ' +\n color + ' 11px ' + (H - 11) + 'px, ' +\n (arrowBw ? 'transparent' : color) + ' ' + (H - 11) + 'px 100%)';\n this.styleLine[nth]['display'] = 'initial';\n }\n\n private adjustLines() {\n const pairs = this.getFromToPairs();\n\n // init values\n this.needSwap = Array(pairs.length).fill(false);\n this.styleLine = Array(pairs.length).fill([]);\n this.styleArrowBw = Array(pairs.length).fill({});\n this.styleArrowFw = Array(pairs.length).fill({});\n\n this.arrowIndices = Array(pairs.length)\n .fill(null).map((_, i) => i);\n\n pairs.map((pair: HTMLElement[], i: number) => {\n this.adjustLine(i, pair[0], pair[1]);\n });\n }\n\n private getFromToPairs() {\n const froms = Array.from(document.querySelectorAll(this.from) as NodeListOf<HTMLElement>);\n const tos = Array.from(document.querySelectorAll(this.to) as NodeListOf<HTMLElement>);\n\n return froms.reduce((acc1, cur1) => {\n return tos.reduce((acc2, cur2) => {\n acc2.push([cur1, cur2]);\n return acc2;\n }, acc1);\n }, []).filter((pair: HTMLElement[]) => !!pair[0] && !!pair[1]);\n }\n\n private trackPositionChange() {\n const pairs = this.getFromToPairs();\n\n const currentPos = pairs.map((pair: HTMLElement[]) => {\n return JSON.stringify(pair[0].getBoundingClientRect()) + JSON.stringify(pair[1].getBoundingClientRect());;\n }).join(',');\n\n if (currentPos !== this.elementPositionBackup) {\n this.elementPositionBackup = currentPos;\n this.adjustLines();\n }\n }\n\n ngOnInit() {\n this.subscription = this.arrowUpdateService.updateArrows$.subscribe(() => {\n timer(10).subscribe(() => this.adjustLines());\n });\n\n this.adjustLines();\n window.addEventListener(\"scroll\", () => {\n if (new Date().getTime() % 5 == 0) {\n // don't 🔥 the CPU\n // @TODO: better hack with setTimeout overriden at each event ?\n this.trackPositionChange();\n }\n });\n }\n\n ngDoCheck() {\n this.trackPositionChange();\n }\n\n ngOnDestroy() {\n this.subscription.unsubscribe();\n }\n\n}\n","@for (index of arrowIndices; track index) {\n<div class=\"line line-{{ index }}\" [ngStyle]=\"styleLine[index]\" [matTooltip]=\"toolTip\">\n @if (head == true) {\n <div class=\"arrow head {{ needSwap[index] ? 'arrow-bw' : 'arrow-fw' }}\"\n [ngStyle]=\"needSwap[index] ? styleArrowBw[index] : styleArrowFw[index]\"></div>\n }\n @if (tail == true) {\n <div class=\"arrow tail {{ needSwap[index] ? 'arrow-fw' : 'arrow-bw' }}\"\n [ngStyle]=\"needSwap[index] ? styleArrowFw[index] : styleArrowBw[index]\"></div>\n }\n @if (!!text && text.length > 0) {\n <div class=\"text\">{{ text }}</div>\n }\n</div>\n}\n","import { Injectable } from '@angular/core';\nimport { SelectItem } from '../../models/selectListItem';\nimport { ModelStructureDto } from '../../models/modelStructureDto';\n\n@Injectable()\nexport class FactorService {\n public toSelectList(model: ModelStructureDto): SelectItem[] {\n if (model == null || model.definition == null || model.definition.factors == null) { return null; }\n var result: SelectItem[] = [];\n\n for (var factor of model.definition.factors.filter(p => p.parentKey == null)) {\n result.push(new SelectItem(factor.publicKey, factor.name, false));\n\n for (var lowerDimension of factor.lower) {\n result.push(new SelectItem(lowerDimension.publicKey, lowerDimension.name, true));\n }\n }\n\n return result;\n }\n}\n","import { Component, Directive, HostListener, Inject, Input } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { MatDialog, MatDialogConfig, MatDialogRef } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { SelectItem } from '../../../models/selectListItem';\nimport { ModelFilter, UserSettingsDto } from '../../../models/userSettingsDto';\nimport { UserSettingService } from '../../../viewModel/userSettings.service';\nimport { VIEWSTATE_PROVIDER, ViewModelStateBase } from '../../../viewModel/viewModelState.service';\nimport { IResultsState } from '../../interfaces/IResultsState';\nimport { QualifiedByEnum } from '../../models/factorScoreDto';\nimport { FactorService } from '../../services/factorService';\n\n@Component({\n templateUrl: './dialog-settings.component.html',\n styleUrls: ['./dialog-settings.component.less'],\n standalone: false\n})\nexport class DialogSettingsComponent extends ComponentWithViewStateBase<IResultsState> {\n public form: FormGroup;\n public sending: boolean;\n private settings: UserSettingsDto;\n public factors: SelectItem[];\n public isSingleTeam: boolean;\n public isSubscriber: boolean;\n public modelFilterSettings: ModelFilter;\n public customFactorsSelected: boolean;\n public benchmarkTypes: SelectItem[] = []\n public deltaPeriods: SelectItem[] = [\n new SelectItem(\"None\", \"Don't compare (shows results from past 12 months)\"),\n new SelectItem(\"PreviousMonth\", \"Compare current month with previous month\"),\n new SelectItem(\"PreviousQuarter\", \"Compare recent 3 months with previous 3 months\"),\n new SelectItem(\"PreviousHalfYear\", \"Compare recent 6 months with previous 6 months\"),\n new SelectItem(\"PreviousYear\", \"Compare recent 12 months with previous 12 months\")\n ]\n\n public qualifyByTypes: SelectItem[] = [\n new SelectItem(QualifiedByEnum.benchmark.toString(), \"Against benchmark\"),\n new SelectItem(QualifiedByEnum.delta.toString(), \"Against previous period or snapshot\"),\n new SelectItem(QualifiedByEnum.none.toString(), \"No comparison\"),\n ]\n\n constructor(public dialogRef: MatDialogRef<DialogSettingsComponent>, private factorService: FactorService, private userSettingsService: UserSettingService, protected snackBar: MatSnackBar, private formBuilder: FormBuilder, @Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IResultsState>) {\n super(state, snackBar)\n }\n\n ngOnInit() {\n this.createForm();\n super.ngOnInit();\n }\n\n public submit(): void {\n if (!this.form.valid) { return; }\n\n this.sending = true;\n this.settings.global.benchmark = this.form.controls.benchmarkType.value;\n this.settings.global.deltaPeriod = this.form.controls.deltaPeriod.value;\n this.settings.global.overviewFactors = this.form.controls.overviewFactors.value;\n var otherModelFactors = this.form.controls.otherModelOverviewFactors.value;\n\n if (otherModelFactors.length > 0) {\n this.settings.global.overviewFactors = this.settings.global.overviewFactors.concat(otherModelFactors.filter((item) => this.settings.global.overviewFactors.indexOf(item) < 0));\n }\n\n this.settings.global.qualifyBy = this.form.controls.qualifyBy.value;\n this.settings.global.stacking = this.form.controls.stacking.value == \"true\" ? true : false;\n this.userSettingsService.set(this.settings);\n this.state.forcedReload();\n this.dialogRef.close();\n this.showSuccess(\"We updated your settings. We are now reloading the results.\");\n this.sending = false;\n }\n\n public resetOverviewFactors(): void {\n this.form.controls.overviewFactors.setValue(this.factors.filter(p => !p.lower).map(p => p.value));\n this.customFactorsSelected = false;\n }\n\n public verifyOverviewFactors(): void {\n var coreFactors = this.factors.filter(p => !p.lower).map(p => p.value);\n var selectedFactors = this.form.controls.overviewFactors.value;\n this.customFactorsSelected = !this.arraysHaveSameElements(coreFactors, selectedFactors);\n }\n\n private createForm(): void {\n this.form = this.formBuilder.group({\n deltaPeriod: [{ value: \"\" }, Validators.required],\n benchmarkType: [{ value: \"\" }, Validators.required],\n qualifyBy: [{ value: \"\" }, Validators.required],\n overviewFactors: [{ value: null }, Validators.required],\n otherModelOverviewFactors: [{ value: null }],\n stacking: [{ value: \"false\" }, Validators.required]\n });\n };\n\n\n protected onDataUpdate(data: IResultsState): void {\n this.settings = this.userSettingsService.get();\n this.isSubscriber = data.isSubscriber;\n this.isSingleTeam = data.teamMetaData != null;\n\n if (this.isSubscriber) {\n this.form.controls.benchmarkType.enable();\n }\n else {\n this.form.controls.benchmarkType.disable();\n }\n\n this.benchmarkTypes = data.factorScores.benchmark.available.map(p => new SelectItem(p.key, p.name));\n this.form.controls.deltaPeriod.setValue(this.settings.global.deltaPeriod);\n this.form.controls.benchmarkType.setValue(this.settings.global.benchmark);\n this.form.controls.stacking.setValue(this.settings.global.stacking ? \"true\" : \"false\");\n this.form.controls.qualifyBy.setValue(this.settings.global.qualifyBy ?? data.factorScores.processingData.qualifiedBy);\n this.factors = this.factorService.toSelectList(data.factorScores.modelStructure);\n\n if (this.settings.global.overviewFactors.length == 0) {\n this.form.controls.overviewFactors.setValue(data.factorScores.modelStructure.definition.factors.filter(p => p.parentKey == null && !p.metric).map(p => p.publicKey));\n }\n else {\n this.form.controls.overviewFactors.setValue(this.settings.global.overviewFactors);\n this.form.controls.otherModelOverviewFactors.setValue(this.settings.global.overviewFactors.filter(p => this.factors.find(x => x.value == p) == null));\n }\n\n this.deltaPeriods = [\n new SelectItem(\"None\", \"Don't compare (shows results from past 12 months)\"),\n new SelectItem(\"PreviousMonth\", \"Compare current month with previous month\"),\n new SelectItem(\"PreviousQuarter\", \"Compare recent 3 months with previous 3 months\"),\n new SelectItem(\"PreviousHalfYear\", \"Compare recent 6 months with previous 6 months\"),\n new SelectItem(\"PreviousYear\", \"Compare recent 12 months with previous 12 months\")\n ]\n\n this.qualifyByTypes = [\n new SelectItem(QualifiedByEnum.benchmark.toString(), \"Against benchmark\"),\n new SelectItem(QualifiedByEnum.delta.toString(), this.isSingleTeam ? \"Against previous snapshot\" : \"Against previous period\"),\n new SelectItem(QualifiedByEnum.none.toString(), \"No comparison\"),\n ]\n };\n\n private arraysHaveSameElements(arr1: any[], arr2: any[]): boolean {\n if (arr1.length !== arr2.length) return false;\n const set1 = new Set(arr1);\n return arr2.every(item => set1.has(item));\n }\n}\n\n@Directive({\n selector: '[settingsDialog]',\n standalone: false\n})\nexport class OpenSettingsDialogDirective {\n @Input() showSettingStacking: boolean;\n\n constructor(private dialog: MatDialog) {\n }\n\n @HostListener('click')\n onClick(): void {\n const dialogConfig = new MatDialogConfig();\n dialogConfig.panelClass = ['dialog', 'settings'];\n dialogConfig.autoFocus = false;\n dialogConfig.enterAnimationDuration = 0;\n dialogConfig.exitAnimationDuration = 0;\n dialogConfig.data = {};\n this.dialog.open(DialogSettingsComponent, dialogConfig);\n }\n}\n","<div class=\"dialog-header\">\n <h1 mat-dialog-title>Statistical Settings</h1>\n <div class=\"close\" mat-dialog-close><i class=\"responsive icon ph-x-bold\" ></i></div>\n</div>\n<mat-dialog-content>\n <form [formGroup]=\"form\" (ngSubmit)=\"submit()\">\n <div class=\"message message-information\"><span class=\"icon ph-info-fill\"></span><div><a target=\"_blank\" href=\"https://columinity.com/wiki/How-Statistical-Settings-impact-the-results\">Learn</a> how these settings affect insights.</div></div>\n <mat-form-field class=\"qualifyBy\" subscriptSizing=\"dynamic\">\n <mat-label>What baseline should we compare with?</mat-label>\n <mat-select class=\"qualifyBy-dropdown\" formControlName=\"qualifyBy\">\n @for (item of qualifyByTypes; track item) {\n <mat-option class=\"select-option\" [value]=\"item.value\">{{item.label}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n\n @if (isSingleTeam) {\n <mat-form-field class=\"stacking\" subscriptSizing=\"dynamic\">\n <mat-label>Combine snapshots?</mat-label>\n <mat-select class=\"stacking-dropdown\" formControlName=\"stacking\">\n <mat-option class=\"select-option\" [value]=\"'false'\">No, only show most recent snapshot</mat-option>\n <mat-option class=\"select-option\" [value]=\"'true'\">Yes, and use most recent measure (max 12 months back)</mat-option>\n </mat-select>\n </mat-form-field>\n }\n\n <mat-form-field class=\"benchmark\" subscriptSizing=\"dynamic\">\n <mat-label>Which benchmark should we use?</mat-label>\n <mat-select class=\"benchmark-dropdown\" formControlName=\"benchmarkType\">\n @for (item of benchmarkTypes; track item) {\n <mat-option class=\"select-option\" [value]=\"item.value\">{{item.label}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n\n @if (!isSubscriber) {\n <div class=\"message message-information\">\n <span class=\"ph-info-fill icon\"></span>\n Eager to see how your team compares to other benchmarks? Subscribe to unlock dozens of benchmarks, including the 'Top 100 most effective teams', benchmarks for world regions, sectors, scaling frameworks and your organization.\n </div>\n }\n\n @if (!isSingleTeam) {\n <mat-form-field class=\"deltaPeriod\" subscriptSizing=\"dynamic\">\n <mat-label>Which periods should we compare?</mat-label>\n <mat-select class=\"deltaPeriod-dropdown\" formControlName=\"deltaPeriod\">\n @for (item of deltaPeriods; track item) {\n <mat-option class=\"select-option\" [value]=\"item.value\">{{item.label}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <mat-form-field class=\"overviewFactors\" subscriptSizing=\"dynamic\">\n <mat-label>Which factors should we show in the overview?</mat-label>\n <mat-select class=\"overviewFactors-dropdown\" formControlName=\"overviewFactors\" multiple (selectionChange)=\"verifyOverviewFactors()\">\n @if (customFactorsSelected) {\n <mat-option class=\"select-option\" (click)=\"resetOverviewFactors();\">Reset to default factors</mat-option>\n }\n @for (factor of factors; track factor) {\n <mat-option class=\"select-option\" [ngClass]=\"{'lower' : factor.lower}\" [value]=\"factor.value\">{{factor.label}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n\n <div class=\"toolbar\">\n <button class=\"button primary\" type=\"submit\" [ngClass]=\"{'loading': sending }\">submit</button>\n <button class=\"button\" mat-dialog-close>cancel</button>\n </div>\n </form>\n</mat-dialog-content>\n","import { DateRangeDto } from \"../../pipes/dateRange/ngx-dateRangeDto.model\";\nimport { BenchmarkTypeEnum } from \"./factorScoreDto\";\n\nexport class ExportFactorScoresRequestDto {\n constructor(modelKey: string) {\n this.modelKey = modelKey;\n }\n\n modelKey: string;\n periodGrouping: string;\n dateRange: DateRangeDto;\n benchmark: BenchmarkTypeEnum;\n}\n\nexport class ExportTeamListRequestDto {\n constructor(modelKey: string) {\n this.modelKey = modelKey;\n }\n\n modelKey: string;\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ApiConfig } from '../../apiUrlToken';\nimport { ExportFactorScoresRequestDto, ExportTeamListRequestDto } from '../models/exportRequestDto';\n\n@Injectable()\nexport class ExportService {\n private baseUrl: string;\n\n constructor(private http: HttpClient, @Inject(ApiConfig) private config: ApiConfig) {\n this.baseUrl = config.get().apiUrl;\n }\n\n public exportFactorScores(request: ExportFactorScoresRequestDto): Observable<any> {\n return this.http.post(this.baseUrl + \"export/factorscores\", request, { responseType: 'blob' });\n }\n\n public exportTeamList(request: ExportTeamListRequestDto): Observable<any> {\n return this.http.post(this.baseUrl + \"export/teamlist\", request, { responseType: 'blob' });\n }\n\n public exportParticipationRate(request: ExportTeamListRequestDto): Observable<any> {\n return this.http.post(this.baseUrl + \"export/participationrate\", request, { responseType: 'blob' });\n }\n}\n","import { Component, Inject } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport * as moment from 'moment';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { SelectItem } from '../../../models/selectListItem';\nimport { DateRangeDto } from '../../../pipes/dateRange/ngx-dateRangeDto.model';\nimport { IViewState } from '../../../viewModel/interfaces';\nimport { ViewModelStateBase, VIEWSTATE_PROVIDER } from '../../../viewModel/viewModelState.service';\nimport { IResultsState } from '../../interfaces/IResultsState';\nimport { ExportFactorScoresRequestDto } from '../../models/exportRequestDto';\nimport { ExportService } from '../../services/exportService';\n\n@Component({\n templateUrl: './dialog-export-factorscores.component.html',\n styleUrls: ['./dialog-export-factorscores.component.less'],\n standalone: false\n})\nexport class DialogExportFactorScoresComponent extends ComponentWithViewStateBase<IViewState> {\n public form: FormGroup;\n public sending: boolean;\n public submitted: boolean;\n public modelKey: string;\n public periodGroupings: SelectItem[] = [\n new SelectItem(\"PreviousMonth\", \"1 month\"),\n new SelectItem(\"PreviousQuarter\", \"3 months\"),\n new SelectItem(\"PreviousHalfYear\", \"6 months\"),\n new SelectItem(\"PreviousYear\", \"12 months\")\n ]\n public benchmarkTypes: SelectItem[] = []\n\n constructor(@Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IViewState>, protected snackBar: MatSnackBar, private exportService: ExportService, private dialogRef: MatDialogRef<DialogExportFactorScoresComponent>, private formBuilder: FormBuilder) {\n super(state, snackBar);\n this.createForm();\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.form.controls.periodGrouping.setValue(\"PreviousQuarter\");\n this.form.controls.benchmarkType.setValue(\"MostRecentSamples\");\n this.form.controls.start.setValue(moment.utc().subtract(3, 'months').toISOString());\n this.form.controls.end.setValue(moment.utc().toISOString());\n }\n\n public async submit(): Promise<void> {\n this.submitted = true;\n if (!this.form.valid) { return; }\n\n var request = new ExportFactorScoresRequestDto(this.modelKey);\n request.periodGrouping = this.form.controls.periodGrouping.value;\n request.dateRange = new DateRangeDto();\n request.dateRange.from = this.form.controls.start.value;\n request.dateRange.to = this.form.controls.end.value;\n request.benchmark = this.form.controls.benchmarkType.value;\n\n this.sending = true;\n this.exportService.exportFactorScores(request).subscribe(success => {\n let binaryData = [];\n binaryData.push(new Uint8Array([0xEF, 0xBB, 0xBF])); // UTF8 bom\n binaryData.push(success);\n let downloadLink = document.createElement('a');\n downloadLink.href = window.URL.createObjectURL(new Blob(binaryData, { type: success.type }));\n downloadLink.setAttribute('download', 'export-factorscores-' + this.modelKey + '.csv');\n document.body.appendChild(downloadLink);\n downloadLink.click();\n this.dialogRef.close();\n this.sending = false;\n this.showSuccess(\"Download started. You may have to allow it in your browser.\");\n });\n }\n\n protected onDataUpdate(data: IResultsState): void {\n this.benchmarkTypes = data.factorScores.benchmark.available.map(p => new SelectItem(p.key, p.name));\n this.modelKey = data.factorScores.modelStructure.definition.publicKey;\n };\n\n private createForm(): void {\n this.form = this.formBuilder.group({\n periodGrouping: [{ value: \"\" }, Validators.required],\n start: [{ value: \"\" }, Validators.required],\n end: [{ value: \"\" }, Validators.required],\n benchmarkType: [{ value: \"\" }, Validators.required],\n });\n };\n}\n","<div class=\"dialog-header\">\n <h1 mat-dialog-title>Export summary results</h1>\n <div class=\"close\" mat-dialog-close><i class=\"responsive icon ph-x-bold\"></i></div>\n</div>\n<mat-dialog-content>\n <p>Export team-level results to .csv for your own analyses. <a href=\"https://github.com/theliberators/scrumteamsurvey.docs/wiki/Export-File-Definitions\">Our Wiki</a> has a definition.</p>\n <form [formGroup]=\"form\" (ngSubmit)=\"submit()\">\n <mat-form-field class=\"periodGrouping\" subscriptSizing=\"dynamic\">\n <mat-label>Summarize to periods of</mat-label>\n <mat-select class=\"periodGrouping-dropdown\" formControlName=\"periodGrouping\">\n @for (item of periodGroupings; track item) {\n <mat-option class=\"select-option\" [value]=\"item.value\">{{item.label}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n\n <mat-form-field subscriptSizing=\"dynamic\">\n <mat-label>Select date range</mat-label>\n <mat-date-range-input [rangePicker]=\"picker\">\n <input matStartDate formControlName=\"start\" placeholder=\"Start date\">\n <input matEndDate formControlName=\"end\" placeholder=\"End date\">\n </mat-date-range-input>\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-date-range-picker #picker></mat-date-range-picker>\n\n @if (form.controls.start.hasError('matStartDateInvalid')) {\n <mat-error>Invalid start date</mat-error>\n }\n @if (form.controls.end.hasError('matEndDateInvalid')) {\n <mat-error>Invalid end date</mat-error>\n }\n </mat-form-field>\n\n <mat-form-field class=\"benchmark\" subscriptSizing=\"dynamic\">\n <mat-label>Which benchmark should be exported along?</mat-label>\n <mat-select class=\"benchmark-dropdown\" formControlName=\"benchmarkType\">\n @for (item of benchmarkTypes; track item) {\n <mat-option class=\"select-option\" [value]=\"item.value\">{{item.label}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n\n <div class=\"toolbar\">\n <button class=\"button primary\" type=\"submit\" [ngClass]=\"{'loading': sending }\" [disabled]=\"sending\">export</button>\n <button class=\"button\" mat-dialog-close>cancel</button>\n </div>\n </form>\n</mat-dialog-content>\n","import { Directive, HostListener } from '@angular/core';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\nimport { DialogExportFactorScoresComponent } from './dialog-export-factorscores.component';\n\n@Directive({\n selector: '[exportFactorScoresDialog]',\n standalone: false\n})\nexport class OpenExportFactorScoresDialogDirective {\n constructor(private dialog: MatDialog) {\n }\n\n @HostListener('click')\n onClick(): void {\n const dialogConfig = new MatDialogConfig();\n dialogConfig.panelClass = ['dialog', 'export'];\n dialogConfig.autoFocus = false;\n dialogConfig.enterAnimationDuration = 0;\n dialogConfig.exitAnimationDuration = 0;\n this.dialog.open(DialogExportFactorScoresComponent, dialogConfig);\n }\n}\n","import { Component, Inject } from '@angular/core';\nimport { MAT_DIALOG_DATA } from '@angular/material/dialog';\n\n@Component({\n templateUrl: './dialog-notes.component.html',\n styleUrls: ['./dialog-notes.component.less'],\n standalone: false\n})\nexport class DialogNotesComponent {\n constructor(@Inject(MAT_DIALOG_DATA) public notes: string[]) {\n }\n}\n","<div class=\"dialog-header\">\n <h1 mat-dialog-title>Data warnings</h1>\n <div class=\"close\" mat-dialog-close><i class=\"responsive icon ph-x-bold\"></i></div>\n</div>\n<mat-dialog-content>\n <p>Please take the following limitations into account when interpreting the data:</p>\n @for (item of notes; track item) {\n <ul>\n <li>{{item}}</li>\n </ul>\n }\n</mat-dialog-content>\n","import { Component, Directive, HostListener, Inject, Input } from '@angular/core';\nimport { MatDialog, MatDialogConfig, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { DialogNotesComponent } from './dialog-notes.component';\n\n@Directive({\n selector: '[notesDialog]',\n standalone: false\n})\nexport class OpenNotesDialogDirective {\n @Input() notes: string[];\n\n constructor(private dialog: MatDialog) {\n }\n\n @HostListener('click')\n onClick(): void {\n const dialogConfig = new MatDialogConfig();\n dialogConfig.panelClass = ['dialog', 'notes'];\n dialogConfig.data = this.notes;\n dialogConfig.enterAnimationDuration = 0;\n dialogConfig.exitAnimationDuration = 0;\n this.dialog.open(DialogNotesComponent, dialogConfig);\n }\n}\n","import { DatePipe } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { DeltaPeriodEnum, FactorScoreCollectionDeltaDto, FactorScoreDto, QualificationEnum } from '../../models/factorScoreDto';\n\n@Component({\n selector: 'delta-arrow',\n templateUrl: './delta-arrow.component.html',\n styleUrls: ['./delta-arrow.component.less'],\n standalone: false\n})\nexport class DeltaArrowComponent {\n public deltaDateRangeFrom: string;\n public deltaDateRangeTo: string;\n public available: boolean;\n public comparedTo: string;\n public direction: string;\n @Input() public factorScore: FactorScoreDto;\n @Input() public delta: FactorScoreCollectionDeltaDto;\n @Input() public noDataIndicator: boolean;\n\n constructor(private datePipe: DatePipe) {\n }\n\n ngOnInit() {\n this.available = this.factorScore && this.delta.available && this.factorScore.deltaAvailable;\n\n if (this.available) {\n if (this.delta.type == DeltaPeriodEnum.previousSnapshot) {\n var deltaDateRangeFrom = this.datePipe.transform(this.delta.dateRange.from, 'longDate');\n this.comparedTo = \"the previous snapshot for this team from \" + deltaDateRangeFrom;\n }\n else {\n var deltaDateRangeFrom = this.datePipe.transform(this.delta.dateRange.from, 'longDate');\n var deltaDateRangeTo = this.datePipe.transform(this.delta.dateRange.to, 'longDate');\n this.comparedTo = \"the previous period (\" + deltaDateRangeFrom + \" to \" + deltaDateRangeTo + \")\";\n }\n\n if (this.factorScore.qualification == QualificationEnum.positive) {\n this.direction = \"up\";\n }\n else if (this.factorScore.qualification == QualificationEnum.negative) {\n this.direction = \"down\";\n }\n else {\n this.direction = \"same\";\n }\n }\n }\n}\n","@if (available && factorScore.delta > 0) {\n <div [class]=\"'delta ' + direction\" [title]=\"'The score on this factor increased by ' + factorScore.delta + ' points since ' + comparedTo\"><i class=\"icon ph-caret-up-fill\"></i>{{factorScore.delta}}</div>\n}\n@if (available && factorScore.delta < 0) {\n <div [class]=\"'delta ' + direction\" [title]=\"'The score on this factor decreased by ' + factorScore.delta * -1 + ' points since ' + comparedTo\"><i class=\"icon ph-caret-down-fill\"></i>{{factorScore.delta * -1}}</div>\n}\n@if (available && factorScore.delta == 0) {\n <div [class]=\"'delta ' + direction\" [title]=\"'The score on this factor did not change since ' + comparedTo\"><i class=\"icon ph-circle-fill\"></i>{{factorScore.delta}}</div>\n}\n@if (!available) {\n <div [class]=\"'delta ' + direction\" title=\"No historical data available to show changes since previous measure. Perform scans periodically to see improvements.\"><i class=\"icon ph-circle-fill\"></i> ?</div>\n}\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'age-indicator',\n templateUrl: './age-indicator.component.html',\n styleUrls: ['./age-indicator.component.less'],\n standalone: false\n})\nexport class AgeIndicatorComponent implements OnInit {\n @Input() lastMeasured: Date;\n public lastMeasuredMonths: number;\n public lastMeasuredDays: number;\n public lastMeasuredYears: number;\n\n constructor() {\n }\n\n public ngOnInit() {\n if (this.lastMeasured) {\n var measureDate = new Date(this.lastMeasured);\n this.lastMeasuredMonths = this.montsBetweenUTC(new Date(), measureDate);\n this.lastMeasuredYears = Math.floor(this.lastMeasuredMonths / 12);\n this.lastMeasuredDays = this.daysBetweenUTC(new Date(), measureDate);\n }\n }\n\n private montsBetweenUTC(date1: Date, date2: Date): number {\n return Math.max(0, (date1.getFullYear() - date2.getFullYear()) * 12 - date2.getMonth() + date1.getMonth());\n }\n\n private daysBetweenUTC(date1: Date, date2: Date): number {\n const d1 = Date.UTC(date1.getFullYear(), date1.getMonth(), date1.getDate());\n const d2 = Date.UTC(date2.getFullYear(), date2.getMonth(), date2.getDate());\n const oneDayMs = 1000 * 60 * 60 * 24;\n return Math.floor((d1 - d2) / oneDayMs);\n }\n}\n","@if (lastMeasured && lastMeasuredMonths < 1) {\n <div class=\"age-indicator\" [title]=\"'Last measured ' + lastMeasuredDays + ' days ago.'\">\n {{lastMeasuredDays}}do\n </div>\n}\n@if (lastMeasured && lastMeasuredMonths >= 1 && lastMeasuredMonths <= 12) {\n <div class=\"age-indicator\" [title]=\"'Last measured ' + lastMeasuredMonths + ' months ago.'\">\n {{lastMeasuredMonths}}mo\n </div>\n}\n@if (lastMeasured && lastMeasuredMonths > 12) {\n <div class=\"age-indicator\" [title]=\"'Last measured ' + lastMeasuredMonths + ' months ago.'\">\n {{lastMeasuredYears}}yo\n </div>\n}\n","import { Component, Inject } from '@angular/core';\nimport { take } from 'rxjs/operators';\nimport { IViewState } from '../../viewModel/interfaces';\nimport { VIEWSTATE_PROVIDER, ViewModelStateBase } from '../../viewModel/viewModelState.service';\n\n@Component({\n templateUrl: './dialog-subscribe.component.html',\n styleUrls: ['./dialog-subscribe.component.less'],\n standalone: false\n})\nexport class DialogSubscribeComponent {\n public subscribeUrl: string;\n public companyUrl: string;\n public title: string;\n public button: string;\n public discount: boolean;\n\n constructor(@Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IViewState>) {\n this.state.data.pipe(take(1)).subscribe(success => {\n if (success.userInfo.branding.isDefault) {\n this.title = \"Try 1 month for &euro;1,-\";\n this.button = \"Try now\";\n this.discount = true;\n }\n else {\n this.title = \"Upgrade to Professional\";\n this.button = \"Learn more\";\n }\n\n this.subscribeUrl = success.userInfo.branding.channelSubscribeUrl;\n this.companyUrl = success.userInfo.branding.channelCompanyUrl;\n });\n }\n\n}\n","<div class=\"dialog-header\">\n <h1 mat-dialog-title [innerHtml]=\"title\"></h1>\n <div class=\"close\" mat-dialog-close><i class=\"responsive icon ph-x-bold\"></i></div>\n</div>\n<mat-dialog-content>\n <p>Discover the full power of Columinity with our <b>Professional plan</b>:</p>\n <ul>\n <li>Unlimited science-based recommendations.</li>\n <li>Access to the Teams Dashboard.</li>\n <li>Benchmarks per industry/size/region.</li>\n <li>Pull metrics from JIRA, Azure DevOps, etc.</li>\n <li>Receive star ratings from users, customers and other stakeholders.</li>\n <li>Secure access with user accounts.</li>\n <li>Aggregate results from many teams.</li>\n <li>Set up repeat scans easily.</li>\n <li>Access to advanced results.</li>\n </ul>\n\n @if (discount) {\n <div class=\"message message-black\"><span class=\"icon ph-smiley-fill\"></span><span>Use the coupon <b>TRYPRO</b> to pay &euro;1,- for the first team on your monthly Professional plan.</span></div>\n }\n <a class=\"button primary\" [href]=\"subscribeUrl\">{{button}}</a>\n</mat-dialog-content>\n","import { Component, Directive, HostListener } from '@angular/core';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\nimport { DialogSubscribeComponent } from './dialog-subscribe.component';\n\n@Directive({\n selector: '[subscribeDialog]',\n standalone: false\n})\nexport class OpenSubscribeDialogDirective {\n constructor(private dialog: MatDialog) {\n }\n\n @HostListener('click', ['$event'])\n onClick($event: any): void {\n $event.stopPropagation();\n const dialogConfig = new MatDialogConfig();\n dialogConfig.panelClass = ['dialog', 'subscribe', 'primary'];\n dialogConfig.autoFocus = false;\n dialogConfig.enterAnimationDuration = 0;\n dialogConfig.exitAnimationDuration = 0;\n this.dialog.open(DialogSubscribeComponent, dialogConfig);\n }\n}\n","import { Component, Inject, Input } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { Subscription } from 'rxjs';\nimport { IActionState } from '../../../actions/interfaces/IActionState';\nimport { InterventionOwnerEnum, InterventionStateEnum, InterventionTypeEnum } from '../../../actions/models/actionDto';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { ViewModelStateBase, VIEWSTATE_PROVIDER } from '../../../viewModel/viewModelState.service';\nimport { IResultsState } from '../../interfaces/IResultsState';\nimport { FeedbackQuickTipDto } from '../../models/factorScoreDto';\n\n@Component({\n selector: 'quicktips',\n templateUrl: './quicktips.component.html',\n styleUrls: ['./quicktips.component.less'],\n standalone: false\n})\nexport class QuickTipsComponent extends ComponentWithViewStateBase<IActionState> {\n public quickTip: FeedbackQuickTipDto;\n @Input() public dimensionKey: string;\n @Input() public extraClass: string;\n public InterventionTypeEnum = InterventionTypeEnum;\n public InterventionStateEnum = InterventionStateEnum;\n public InterventionOwnerEnum = InterventionOwnerEnum;\n public quickTips: FeedbackQuickTipDto[];\n public tipIndex: number;\n public tipCount: number;\n public stateSubscription: Subscription;\n\n constructor(@Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IResultsState>, protected snackBar: MatSnackBar) {\n super(state, snackBar)\n }\n\n public nextTip() {\n if (this.tipIndex + 1 >= this.quickTips.length) { return; }\n this.tipIndex++;\n this.quickTip = this.quickTips[this.tipIndex];\n }\n\n public previousTip() {\n if (this.tipIndex == 0) { return; }\n this.tipIndex--;\n this.quickTip = this.quickTips[this.tipIndex];\n }\n\n protected onDataUpdate(data: IResultsState): void {\n if (data.factorScores.factorScores.length == 0) { return; }\n var factor = data.factorScores.factorScores.find(p => p.key == this.dimensionKey);\n if (factor == null) { return; }\n var feedback = factor.recommendation;\n\n var quickTipsAdded: string[] = [];\n\n if (data.factorScores.composition.points.count == 1) {\n // only remove already-added actions when viewing a single team; otherwise the same action can be useful for another team\n quickTipsAdded = data.actions.items.items.filter(p => p.quickTipPublicKey && p.state !== \"Completed\").map(p => p.quickTipPublicKey);\n }\n\n this.quickTips = feedback != null ? feedback.quickTips.filter(p => quickTipsAdded.indexOf(p.publicKey) == -1) : [];\n\n if (this.quickTips.length == 0 && !data.isSubscriber) {\n var subscribeQuickTip = new FeedbackQuickTipDto();\n subscribeQuickTip.description = \"Subscribe to get more actionable quick tips, free do-it-yourself workshops and detailed feedback for more than 5 categories.\";\n subscribeQuickTip.type = InterventionTypeEnum.other;\n subscribeQuickTip.publicKey = \"subscribe\";\n this.quickTips.push(subscribeQuickTip);\n }\n\n this.quickTip = this.quickTips.find(p => quickTipsAdded.indexOf(p.publicKey) == -1);\n this.tipIndex = 0;\n this.tipCount = this.quickTips.length;\n };\n}\n","@if (quickTip) {\n <div class=\"quicktips\" [class]=\"extraClass\">\n <div class=\"quicktips-container\">\n @if (tipCount > 1) {\n <div class=\"link back\">\n @if (tipIndex > 0) {\n <a class=\"ph-caret-left icon\" (click)=\"previousTip()\"></a>\n }\n </div>\n }\n <div class=\"quicktip\" [id]=\"'quicktip-' + quickTip.publicKey\" [ngClass]=\"{'subscribe' : quickTip.publicKey == 'subscribe' }\">\n <div class=\"quicktip-description\">{{quickTip.description}}</div>\n @if (quickTip.publicKey != 'subscribe') {\n <div class=\"link\">\n <span class=\"ph-plus icon\"></span> <a [routerLink]=\"[]\" class=\"addasaction\" addActionDialog [prefill]=\"{description: quickTip.description, teamKey: null, expectedImpactOn: [dimensionKey], type: quickTip.type, owner: null, quickTipPublicKey: quickTip.publicKey, url: null, state: InterventionStateEnum.open }\">Add as action</a>\n </div>\n }\n @if (quickTip.publicKey == 'subscribe') {\n <div class=\"link\">\n <span class=\"ph-plus icon\"></span> <a [routerLink]=\"[]\" class=\"addasaction\" subscribeDialog>Subscribe</a>\n </div>\n }\n </div>\n @if (tipCount > 1) {\n <div class=\"link forward\">\n @if (tipIndex + 1 < tipCount) {\n <a class=\"ph-caret-right icon\" (click)=\"nextTip()\"></a>\n }\n </div>\n }\n </div>\n </div>\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { FactorScoreCollectionBenchmarkDto, FactorScoreDto } from '../../../results/models/factorScoreDto';\n\n@Component({\n selector: 'model-factor-benchmark',\n templateUrl: './model-factor-benchmark.component.html',\n styleUrls: ['./model-factor-benchmark.component.less'],\n standalone: false\n})\nexport class ModelFactorBenchmarkComponent implements OnInit {\n @Input() factor: FactorScoreDto;\n @Input() benchmark: FactorScoreCollectionBenchmarkDto;\n\n public async ngOnInit() {\n }\n}\n","<div class=\"breakdown\">\n @if (factor.benchmark != 0) {\n <div [title]=\"'This is the average score of teams in the benchmark [' + benchmark.name + ']. Change the benchmark under \\'Settings\\'.'\" [attr.normalizedScore]=\"factor.benchmark\" [class]=\"'progressbar progressbar-inverted progressbar-benchmark'\">\n <div class=\"progressbar-bar\" [style]=\"'width: ' + (factor.type == 'Metric' ? 100 : factor.benchmark) + '%'\"></div>\n <div class=\"progressbar-label\">benchmark</div>\n <div class=\"progressbar-score\">{{factor.benchmark}}</div>W\n </div>\n }\n <div class=\"details\">\n </div>\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { PointDto } from '../../../results/models/factorScoreDto';\n\n@Component({\n selector: 'model-factor-breakdown',\n templateUrl: './model-factor-breakdown.component.html',\n styleUrls: ['./model-factor-breakdown.component.less'],\n standalone: false\n})\nexport class ModelFactorBreakdownComponent implements OnInit {\n @Input() factor: { points: any[], name?: string, type?: string };\n @Input() pageSize: number = 8;\n public currentPage: number = 0;\n public pageCount: number = 0;\n public pagedPoints: any[] = [];\n public points: PointDto[];\n \n public async ngOnInit() {\n if (!this.pageSize || this.pageSize < 1) {\n this.pageSize = 8;\n }\n this.updatePaging();\n }\n\n public updatePaging() {\n const totalPoints = this.factor?.points?.length || 0;\n this.pageCount = totalPoints > this.pageSize ? Math.ceil(totalPoints / this.pageSize) : 1;\n\n this.showPage(this.currentPage);\n }\n\n public showPage(page: number) {\n const totalPoints = this.factor?.points?.length || 0;\n if (totalPoints <= this.pageSize) {\n this.pagedPoints = this.factor.points;\n this.currentPage = 0;\n } else {\n const start = page * this.pageSize;\n const end = start + this.pageSize;\n this.pagedPoints = this.factor.points.slice(start, end);\n this.currentPage = page;\n }\n }\n\n public nextPage() {\n if (this.hasNext()) {\n this.showPage(this.currentPage + 1);\n }\n }\n\n public prevPage() {\n if (this.hasPrev()) {\n this.showPage(this.currentPage - 1);\n }\n }\n\n public hasNext(): boolean {\n return (this.currentPage + 1) < this.pageCount;\n }\n\n public hasPrev(): boolean {\n return this.currentPage > 0;\n }\n}\n","@for (point of pagedPoints; track point) {\n <div class=\"breakdown\">\n <div [attr.normalizedScore]=\"point.normalizedScore\" class=\"progressbar progressbar-inverted progressbar-{{point.type | slugify}} progressbar-{{point.name | slugify}}\">\n <div class=\"progressbar-bar\" [style]=\"'width: ' + (factor.type == 'Metric' ? 100 : point.normalizedScore) + '%'\"></div>\n <div class=\"progressbar-label\">{{point.name | lowercase}} @if (point.type == 'Segment') {\n <span>{{point.occurances}}x</span>\n }</div>\n <div class=\"progressbar-score\">{{point.normalizedScore}}</div>\n </div>\n <div class=\"details\">\n @if (point.type == 'Team') {\n <a [matTooltip]=\"'Open detailed report in new window'\" [routerLink]=\"['/', 'snapshot', point.publicKey]\"><i class=\"ph-faders-horizontal icon\"></i> </a>\n }\n @if (point.type == 'Client') {\n <a target=\"_blank\" [matTooltip]=\"'Jump to Teams Dashboard for this organization'\" [href]=\"'https://coachingcenter.columinity.com/select/' + point.publicKey\"><i class=\"ph-faders-horizontal icon\"></i> </a>\n }\n </div>\n </div>\n}\n\n@if (factor.points.length > pageSize) {\n <div class=\"breakdown-paginator\">\n @if (hasPrev()) {\n <div class=\"breakdown-paginator-previous\" (click)=\"prevPage()\"><span class=\"icon ph-caret-left\"></span></div>\n }\n @if (!hasPrev()) {\n <div class=\"breakdown-paginator-previous\"></div>\n }\n @if (hasNext()) {\n <div class=\"breakdown-paginator-next\" (click)=\"nextPage()\"><span class=\"icon ph-caret-right\"></span></div>\n }\n </div>\n}\n","import { Clipboard } from '@angular/cdk/clipboard';\nimport { Component, Directive, HostListener, Inject, Input } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialog, MatDialogConfig } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { FactorStructureDto } from '../../../models/modelStructureDto';\nimport { ClientIntegrationSummaryDto } from '../../../models/integrationDto';\n\n@Component({\n templateUrl: './dialog-integration.component.html',\n styleUrls: ['./dialog-integration.component.less'],\n standalone: false\n})\nexport class DialogIntegrationComponent {\n public metric: FactorStructureDto;\n public integration: ClientIntegrationSummaryDto;\n public inviteUrlCopied: boolean;\n\n constructor(@Inject(MAT_DIALOG_DATA) data: { metric: FactorStructureDto, integration: ClientIntegrationSummaryDto }, protected snackBar: MatSnackBar, private clipboard: Clipboard) {\n this.metric = data.metric;\n this.integration = data.integration;\n }\n\n public copyInviteLink(): void {\n this.clipboard.copy(this.integration.collectorUrl);\n this.inviteUrlCopied = true;\n this.snackBar.open('We copied the link to invite link to your clipboard', null, { duration: 3000 });\n setTimeout(() => {\n this.inviteUrlCopied = false;\n }, 2000);\n }\n}\n\n\n@Directive({\n selector: '[integrationDialog]',\n standalone: false\n})\nexport class OpenIntegrationDialogDirective {\n @Input() metric: FactorStructureDto;\n @Input() integration: ClientIntegrationSummaryDto;\n\n constructor(private dialog: MatDialog) {\n }\n\n @HostListener('click', ['$event'])\n onClick($event: any): void {\n $event.stopPropagation();\n const dialogConfig = new MatDialogConfig();\n dialogConfig.panelClass = ['dialog', 'integration'];\n dialogConfig.data = { metric: this.metric, integration: this.integration };\n dialogConfig.autoFocus = false;\n dialogConfig.enterAnimationDuration = 0;\n dialogConfig.exitAnimationDuration = 0;\n this.dialog.open(DialogIntegrationComponent, dialogConfig);\n }\n}\n\n","@if (metric) {\n <div class=\"dialog-header\">\n <h1 mat-dialog-title>{{metric.name}}</h1>\n <div class=\"close\" mat-dialog-close><i class=\"responsive icon ph-x-bold\"></i></div>\n </div>\n}\n<mat-dialog-content>\n <p>{{metric.description}}</p>\n\n @if (integration.collectorUrl) {\n <div class=\"howtocollect\">\n <h4>How to collect</h4>\n <p>Share this permanent link with the relevant audience, such as e-mail footers, team pages, in follow-up emails or in bulk emails.</p>\n <div class=\"invitebox\">\n <div class=\"url\">\n <input type=\"text\" [value]=\"integration.collectorUrl\" />\n <span [class]=\"'clipboard ' + (inviteUrlCopied ? 'ph-clipboard-text' : 'ph-clipboard')\" (click)=\"copyInviteLink()\"></span>\n </div>\n </div>\n </div>\n }\n\n @if (!integration.collectorUrl) {\n <div class=\"howtocollect\">\n <h4>How to collect</h4>\n <p>Open this dialogue from a Team Report to see how that team can collect data for this metric.</p>\n </div>\n }\n</mat-dialog-content>\n","import { Component, Inject, Input } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { ClientIntegrationSummaryDto } from '../../../models/integrationDto';\nimport { FactorStructureDto } from '../../../models/modelStructureDto';\nimport { IResultsState } from '../../../results/interfaces/IResultsState';\nimport { FactorScoreCollectionBenchmarkDto, FactorScoreCollectionDeltaDto, FactorScoreDto } from '../../../results/models/factorScoreDto';\nimport { IUserSettingStrategy, VIEWSTATE_USERSETTINGS_STRATEGY } from '../../../viewModel/userSettings.service';\nimport { VIEWSTATE_PROVIDER, ViewModelStateBase } from '../../../viewModel/viewModelState.service';\nimport { ConnectedPosition } from '@angular/cdk/overlay';\n\n@Component({\n selector: 'model-factor-metric',\n templateUrl: './model-factor-metric.component.html',\n styleUrls: ['./model-factor-metric.component.less'],\n standalone: false\n})\nexport class ModelFactorMetricComponent extends ComponentWithViewStateBase<IResultsState> {\n @Input() metric: FactorStructureDto;\n private teamsDashboardUrl: string;\n public integration: ClientIntegrationSummaryDto;\n public factorScore: FactorScoreDto;\n public showSetupTeaser: boolean;\n public showSetup: boolean;\n public delta: FactorScoreCollectionDeltaDto;\n public benchmark: FactorScoreCollectionBenchmarkDto;\n public baseUrl: string;\n public showMetricResult: boolean;\n public isPopoverOpen = false;\n public overlayPositions: ConnectedPosition[] = [\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'center',\n offsetY: 0\n }\n ];\n\n constructor(@Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IResultsState>, public snackBar: MatSnackBar, @Inject(VIEWSTATE_USERSETTINGS_STRATEGY) protected userSettings: IUserSettingStrategy) {\n super(state, snackBar)\n }\n\n ngOnInit() {\n super.ngOnInit();\n }\n\n public toManage($event: any) {\n $event.stopPropagation();\n window.location.href = this.teamsDashboardUrl + '/integrations';\n }\n\n protected onDataUpdate(data: IResultsState): void {\n this.delta = data.factorScores.delta;\n this.baseUrl = data.baseUrl;\n this.benchmark = data.factorScores.benchmark;\n this.teamsDashboardUrl = data.userInfo.branding.teamsDashboardUrl;\n this.factorScore = data.factorScores.factorScores.find(p => p.key == this.metric.publicKey);\n\n this.integration = data.integrations.items.find(p => p.metricKeys.includes(this.metric.publicKey));\n this.showMetricResult = (this.integration && this.integration.isSetup) || data.appContext == \"CoachingCenter\";\n\n this.showSetupTeaser = !data.isSubscriber && (!this.integration || !this.integration.isSetup) && data.appContext !== \"CoachingCenter\";\n this.showSetup = data.isSubscriber && (!this.integration || !this.integration.isSetup) && data.appContext !== \"CoachingCenter\";\n }\n}\n\n","<div class=\"model-factor-metric\" #badgeOrigin=\"cdkOverlayOrigin\" cdkOverlayOrigin (click)=\"isPopoverOpen = true\" [id]=\"'metric-' + metric.publicKey\">\n <div class=\"model-factor-metric-title\">\n {{metric.name}}\n <span class=\"ph-info-fill icon\"></span>\n </div>\n @if (showMetricResult && factorScore) {\n <div class=\"model-factor-metric-result\">\n @if (factorScore) {\n <div class=\"digit\">{{factorScore.score}}</div>\n }\n <div class=\"unit\">{{metric.unit}}</div>\n @if (factorScore && userSettings.settings.user.modelFilter.advanced) {\n <div class=\"confidence\" title=\"The confidence interval\">CI: {{factorScore.lowerConfidence}} - {{factorScore.upperConfidence}}</div>\n }\n <div class=\"model-factor-metric-result-details\">\n @if (userSettings.settings.user.modelFilter.advanced) {\n <age-indicator [lastMeasured]=\"factorScore.lastMeasured\"></age-indicator>\n }\n <delta-arrow [factorScore]=\"factorScore\" [delta]=\"delta\"></delta-arrow>\n </div>\n </div>\n }\n @if (!showMetricResult || !factorScore) {\n <div class=\"model-factor-metric-result\">\n <div class=\"digit\">?</div>\n <div class=\"unit\">{{metric.unit}}</div>\n </div>\n }\n <div class=\"model-factor-metric-setup\">\n @if (integration && integration.hasCollectorUrl && integration.isSetup) {\n <div class=\"howtocollect collectordialog\" integrationDialog [metric]=\"metric\" [integration]=\"integration\"><span class=\"icon ph-funnel-fill\"></span> How to collect</div>\n }\n @if (showSetup) {\n <a class=\"howtocollect setup\" (click)=\"toManage($event)\"><span class=\"icon ph-gear-fill\"></span> Set up</a>\n }\n @if (showSetupTeaser) {\n <a class=\"howtocollect teaser\" subscribeDialog><span class=\"icon ph-gear-fill\"></span> Set up</a>\n }\n </div>\n</div>\n\n<ng-template cdkConnectedOverlay [cdkConnectedOverlayOrigin]=\"badgeOrigin\" [cdkConnectedOverlayPush]=\"true\" [cdkConnectedOverlayViewportMargin]=\"8\" [cdkConnectedOverlayOpen]=\"isPopoverOpen\" [cdkConnectedOverlayHasBackdrop]=\"true\" [cdkConnectedOverlayBackdropClass]=\"'cdk-overlay-transparent-backdrop'\" [cdkConnectedOverlayPositions]=\"overlayPositions\" (backdropClick)=\"isPopoverOpen = false\">\n <div class=\"popover\" [id]=\"'popover-' + metric.publicKey\">\n <div class=\"popover-container\">\n <span (click)=\"isPopoverOpen = false\" class=\"close ph-x\"></span>\n <h3 factorInformationDialog [factor]=\"metric\">\n {{metric.name}}\n <span class=\"icon ph-info-fill\"></span>\n </h3>\n <div class=\"description\">{{metric.description}}</div>\n <ng-container *ngIf=\"factorScore\">\n <model-factor-benchmark [factor]=\"factorScore\" [benchmark]=\"benchmark\"></model-factor-benchmark>\n <model-factor-breakdown [factor]=\"factorScore\"></model-factor-breakdown>\n <quicktips [dimensionKey]=\"metric.publicKey\" [extraClass]=\"'quicktips-popover'\"></quicktips>\n @if (factorScore.recommendation.available) {\n <div class=\"link\">\n <a [routerLink]=\"[baseUrl, 'tips']\" [fragment]=\"metric.publicKey\">discover how to improve ></a>\n </div>\n }\n </ng-container>\n </div>\n <div class=\"arrow\"></div>\n </div>\n</ng-template>\n","import { Component, Inject, Input } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { Subscription } from 'rxjs';\nimport { InterventionStateEnum } from '../../../actions/models/actionDto';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { FactorStructureDto } from '../../../models/modelStructureDto';\nimport { UserSettingsDto } from '../../../models/userSettingsDto';\nimport { ArrowUpdateService } from '../../../results/components/arrow/ArrowUpdateService';\nimport { IResultsState } from '../../../results/interfaces/IResultsState';\nimport { FactorScoreCollectionBenchmarkDto, FactorScoreCollectionDeltaDto, FactorScoreDto } from '../../../results/models/factorScoreDto';\nimport { IUserSettingStrategy, UserSettingService, VIEWSTATE_USERSETTINGS_STRATEGY } from '../../../viewModel/userSettings.service';\nimport { VIEWSTATE_PROVIDER, ViewModelStateBase } from '../../../viewModel/viewModelState.service';\nimport { ConnectedPosition } from '@angular/cdk/overlay';\n\n@Component({\n selector: 'model-factor-indicator',\n templateUrl: './model-factor-indicator.component.html',\n styleUrls: ['./model-factor-indicator.component.less'],\n standalone: false\n})\nexport class ModelFactorIndicatorComponent extends ComponentWithViewStateBase<IResultsState> {\n @Input() public indicator: FactorStructureDto;\n @Input() public actionStatusPosition: string;\n @Input() public visible: boolean;\n public isInActiveLayer: boolean;\n public direction: string;\n public factorScore: FactorScoreDto;\n public indicators: FactorStructureDto[];\n public benchmark: FactorScoreCollectionBenchmarkDto;\n public notes: string[];\n public dataAvailable: boolean;\n public delta: FactorScoreCollectionDeltaDto;\n public baseUrl: string;\n public expandIndicators: boolean = true;\n public InterventionStateEnum = InterventionStateEnum;\n public settingsSubscription: Subscription;\n public isPopoverOpen = false;\n public overlayPositions: ConnectedPosition[] = [\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'center'\n }\n ];\n constructor(@Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IResultsState>, @Inject(VIEWSTATE_USERSETTINGS_STRATEGY) protected userSettings: IUserSettingStrategy, private userSettingService: UserSettingService, protected snackBar: MatSnackBar, private arrowUpdateService: ArrowUpdateService) {\n super(state, snackBar)\n }\n\n ngOnInit() {\n super.ngOnInit();\n\n this.settingsSubscription = this.userSettingService.changed.subscribe((settings: UserSettingsDto) => {\n if (this.userSettings.settings.user.modelFilter.advanced !== this.expandIndicators) {\n this.toggleIndicators();\n }\n \n this.setIsInActiveLayer();\n });\n }\n\n ngOnDestroy() {\n if (this.settingsSubscription) {\n this.settingsSubscription.unsubscribe();\n }\n }\n\n public toggleIndicators() {\n this.expandIndicators = !this.expandIndicators;\n this.arrowUpdateService.triggerUpdate();\n }\n\n protected onDataUpdate(data: IResultsState): void {\n this.factorScore = data.factorScores.factorScores.find(p => p.key == this.indicator.publicKey);\n if (this.factorScore == null) { return; }\n\n this.delta = data.factorScores.delta;\n this.baseUrl = data.baseUrl;\n this.benchmark = data.factorScores.benchmark;\n this.dataAvailable = !this.factorScore.anonymized && this.factorScore.sampleSize > 0;\n this.notes = this.factorScore.notes;\n this.direction = this.factorScore.qualification.toLowerCase();\n this.setIsInActiveLayer();\n };\n\n private setIsInActiveLayer() {\n if (this.userSettings.settings.user.modelFilter.layers.length == 0) { this.isInActiveLayer = true; return; }\n this.isInActiveLayer =\n (this.userSettings.settings.user.modelFilter.layers.find(p => p.key == \"TeamMembers\" && p.selected) != null && this.factorScore.points.find(p => p.name == \"TeamMember\") != null) ||\n (this.userSettings.settings.user.modelFilter.layers.find(p => p.key == \"Stakeholders\" && p.selected) != null && this.factorScore.points.find(p => p.name == \"Stakeholder\") != null) ||\n (this.userSettings.settings.user.modelFilter.layers.find(p => p.key == \"Supporters\" && p.selected) != null && this.factorScore.points.find(p => p.name == \"Supporter\") != null);\n }\n}\n","@if (visible) {\n<div [class]=\"'factor-indicator factor-indicator-actions-' + actionStatusPosition + ' factor-indicator-' + direction\" [ngClass]=\"{'factor-fade' : !isInActiveLayer || !dataAvailable}\" [id]=\"'factor-' + indicator.publicKey\" #badgeOrigin=\"cdkOverlayOrigin\" cdkOverlayOrigin (click)=\"isPopoverOpen = true\">\n @if ((notes.length > 0 || factorScore.interventionSummary.impeded > 0 || factorScore.interventionSummary.open > 0) && userSettings.settings.user.modelFilter.advanced) {\n <div class=\"factor-actions\">\n @if (factorScore.interventionSummary.open > 0) {\n <div class=\"factor-actions-status\">\n <span [routerLink]=\"[baseUrl, 'actions']\" [queryParams]=\"{ state: InterventionStateEnum.open, expectedImpactOn: indicator.publicKey }\">{{factorScore.interventionSummary.open}}</span>/\n <span [routerLink]=\"[baseUrl, 'actions']\" [queryParams]=\"{ state: InterventionStateEnum.completed, expectedImpactOn: indicator.publicKey }\">{{factorScore.interventionSummary.completed}}</span>\n </div>\n }\n @if (factorScore.interventionSummary.impeded > 0) {\n <div class=\"factor-actions-impeded\" [routerLink]=\"[baseUrl, 'actions']\" [queryParams]=\"{ state: InterventionStateEnum.impeded, expectedImpactOn: indicator.publicKey }\">\n <img class=\"icon\" src=\"/assets/img/impeded.svg\" /> {{factorScore.interventionSummary.impeded}}\n </div>\n }\n @if (notes.length > 0) {\n <div class=\"factor-warnings\" notesDialog [notes]=\"notes\">\n <span class=\"icon ph-warning-fill\" title=\"There are some issues in the data that might influence your interpretations\"></span>\n </div>\n }\n </div>\n }\n <div class=\"factor-content\" (click)=\"isPopoverOpen = true\">\n <div class=\"factor-name\">\n {{indicator.name}}\n </div>\n <progressbar [factorScore]=\"factorScore\"></progressbar>\n <div class=\"factor-details\">\n @if (userSettings.settings.user.modelFilter.advanced) {\n <age-indicator [lastMeasured]=\"factorScore.lastMeasured\"></age-indicator>\n }\n @if (dataAvailable) {\n <delta-arrow [factorScore]=\"factorScore\" [delta]=\"delta\" [noDataIndicator]=\"false\"></delta-arrow>\n }\n </div>\n </div>\n <div class=\"factor-anchor\" [id]=\"'factor-' + indicator.publicKey + '-anchor'\">\n </div>\n</div>\n<ng-template cdkConnectedOverlay [cdkConnectedOverlayOrigin]=\"badgeOrigin\" [cdkConnectedOverlayPush]=\"true\" [cdkConnectedOverlayViewportMargin]=\"8\" [cdkConnectedOverlayOpen]=\"isPopoverOpen\" [cdkConnectedOverlayHasBackdrop]=\"true\" [cdkConnectedOverlayBackdropClass]=\"'cdk-overlay-transparent-backdrop'\" [cdkConnectedOverlayPositions]=\"overlayPositions\" (backdropClick)=\"isPopoverOpen = false\">\n <div class=\"popover\" [id]=\"'popover-' + indicator.publicKey\">\n <div class=\"popover-container\">\n <span (click)=\"isPopoverOpen = false\" class=\"close ph-x\"></span>\n <h3 factorInformationDialog [factor]=\"indicator\">\n {{indicator.name}}\n <span class=\"icon ph-info-fill\"></span>\n </h3>\n <div class=\"description\">{{indicator.description}}</div>\n <model-factor-benchmark [factor]=\"factorScore\" [benchmark]=\"benchmark\"></model-factor-benchmark>\n <model-factor-breakdown [factor]=\"factorScore\"></model-factor-breakdown>\n <quicktips [dimensionKey]=\"indicator.publicKey\" [extraClass]=\"'quicktips-popover'\"></quicktips>\n @if (factorScore.recommendation.available) {\n <div class=\"link\">\n <a [routerLink]=\"[baseUrl, 'tips']\" [fragment]=\"indicator.publicKey\">discover how to improve ></a>\n </div>\n }\n </div>\n <div class=\"arrow\"></div>\n </div>\n</ng-template>\n}\n","import { Component, Inject, Input } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { Subscription } from 'rxjs';\nimport { InterventionStateEnum } from '../../../actions/models/actionDto';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { FactorStructureDto } from '../../../models/modelStructureDto';\nimport { UserSettingsDto } from '../../../models/userSettingsDto';\nimport { ArrowUpdateService } from '../../../results/components/arrow/ArrowUpdateService';\nimport { IResultsState } from '../../../results/interfaces/IResultsState';\nimport { FactorScoreCollectionBenchmarkDto, FactorScoreCollectionDeltaDto, FactorScoreDto } from '../../../results/models/factorScoreDto';\nimport { IUserSettingStrategy, UserSettingService, VIEWSTATE_USERSETTINGS_STRATEGY } from '../../../viewModel/userSettings.service';\nimport { VIEWSTATE_PROVIDER, ViewModelStateBase } from '../../../viewModel/viewModelState.service';\nimport { ConnectedPosition } from '@angular/cdk/overlay';\n\n@Component({\n selector: 'model-factor-core',\n templateUrl: './model-factor-core.component.html',\n styleUrls: ['./model-factor-core.component.less'],\n standalone: false\n})\nexport class ModelFactorCoreComponent extends ComponentWithViewStateBase<IResultsState> {\n @Input() public factor: FactorStructureDto;\n @Input() public allowExpand: boolean;\n @Input() public expandPosition: string;\n public isInActiveLayer: boolean;\n public direction: string;\n public factorScore: FactorScoreDto;\n public indicators: FactorStructureDto[];\n public benchmark: FactorScoreCollectionBenchmarkDto;\n public notes: string[];\n public dataAvailable: boolean;\n public delta: FactorScoreCollectionDeltaDto;\n public baseUrl: string;\n public expandIndicators: boolean = false;\n public InterventionStateEnum = InterventionStateEnum;\n private settingsSubscription: Subscription;\n public isPopoverOpen = false;\n public overlayPositions: ConnectedPosition[] = [\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'center',\n offsetY: 0\n }\n ];\n\n constructor(@Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IResultsState>, @Inject(VIEWSTATE_USERSETTINGS_STRATEGY) protected userSettings: IUserSettingStrategy, private userSettingService: UserSettingService, protected snackBar: MatSnackBar, private arrowUpdateService: ArrowUpdateService) {\n super(state, snackBar)\n }\n\n ngOnInit() {\n super.ngOnInit();\n\n this.settingsSubscription = this.userSettingService.changed.subscribe((settings: UserSettingsDto) => {\n if (this.userSettings.settings.user.modelFilter.advanced !== this.expandIndicators) {\n this.toggleIndicators();\n }\n\n this.setIsInActiveLayer();\n });\n\n if (this.userSettings.settings.user.modelFilter.advanced !== this.expandIndicators) {\n this.toggleIndicators();\n }\n }\n\n ngOnDestroy() {\n if (this.settingsSubscription) {\n this.settingsSubscription.unsubscribe();\n }\n }\n\n public toggleIndicators() {\n this.expandIndicators = !this.expandIndicators;\n this.arrowUpdateService.triggerUpdate();\n }\n\n protected onDataUpdate(data: IResultsState): void {\n this.factorScore = data.factorScores.factorScores.find(p => p.key == this.factor.publicKey);\n if (this.factorScore == null) { return; }\n\n this.delta = data.factorScores.delta;\n this.baseUrl = data.baseUrl;\n this.benchmark = data.factorScores.benchmark;\n this.dataAvailable = !this.factorScore.anonymized && this.factorScore.sampleSize > 0;\n this.notes = this.factorScore.notes;\n this.direction = this.factorScore.qualification.toLowerCase();\n this.setIsInActiveLayer();\n };\n\n private setIsInActiveLayer() {\n this.isInActiveLayer =\n (this.userSettings.settings.user.modelFilter.layers.length == 0) ||\n (this.userSettings.settings.user.modelFilter.layers.find(p => p.key == \"TeamMembers\" && p.selected) != null && this.factorScore.points.find(p => p.name == \"TeamMember\") != null) ||\n (this.userSettings.settings.user.modelFilter.layers.find(p => p.key == \"Stakeholders\" && p.selected) != null && this.factorScore.points.find(p => p.name == \"Stakeholder\") != null) ||\n (this.userSettings.settings.user.modelFilter.layers.find(p => p.key == \"Supporters\" && p.selected) != null && this.factorScore.points.find(p => p.name == \"Supporter\") != null);\n }\n}\n","<div [class]=\"'model-factor model-factor-' + direction\" [ngClass]=\"{'model-factor-fade' : !isInActiveLayer || !dataAvailable}\" [id]=\"'factor-' + factor.publicKey\">\n @if (allowExpand) {\n <div [class]=\"'model-factor-expand model-factor-expand-' + expandPosition\" [ngClass]=\"{'expanded': expandIndicators}\" (click)=\"toggleIndicators()\" [id]=\"'factor-' + factor.publicKey + '-expand'\">\n <span class=\"plus\">+</span>\n </div>\n }\n <div class=\"model-factor-inner\" #badgeOrigin=\"cdkOverlayOrigin\" cdkOverlayOrigin (click)=\"isPopoverOpen = true\">\n <div class=\"model-factor-content\" >\n <div class=\"model-factor-name\">\n {{factor.name}}\n </div>\n <progressbar [factorScore]=\"factorScore\"></progressbar>\n <div class=\"model-factor-details\">\n @if (userSettings.settings.user.modelFilter.advanced) {\n <age-indicator [lastMeasured]=\"factorScore.lastMeasured\"></age-indicator>\n }\n @if (dataAvailable) {\n <delta-arrow [factorScore]=\"factorScore\" [delta]=\"delta\"></delta-arrow>\n }\n </div>\n </div>\n\n @if (userSettings.settings.user.modelFilter.advanced) {\n <div class=\"model-factor-bottom\">\n <span class=\"meta-actions\" [title]=\"factorScore.interventionSummary.open + ' open improvement actions, versus ' + factorScore.interventionSummary.completed + ' completed improvement actions'\">\n <span [routerLink]=\"[baseUrl, 'actions']\" [queryParams]=\"{ state: InterventionStateEnum.open, expectedImpactOn: factor.publicKey }\">{{factorScore.interventionSummary.open}}</span>/\n <span [routerLink]=\"[baseUrl, 'actions']\" [queryParams]=\"{ state: InterventionStateEnum.completed, expectedImpactOn: factor.publicKey }\">{{factorScore.interventionSummary.completed}}</span>\n </span>\n @if (factorScore.interventionSummary.impeded > 0) {\n <span class=\"meta-impeded\" [title]=\"factorScore.interventionSummary.impeded + ' improvement actions are blocked, and teams are requesting support'\" [routerLink]=\"[baseUrl, 'actions']\" [queryParams]=\"{ state: InterventionStateEnum.impeded, expectedImpactOn: factor.publicKey }\">\n <img class=\"icon\" src=\"/assets/img/impeded.svg\" />{{factorScore.interventionSummary.impeded}}\n </span>\n }\n @if (notes.length > 0) {\n <span class=\"meta-warnings\" notesDialog [notes]=\"notes\">\n <span class=\"icon ph-warning-fill\"></span>\n </span>\n }\n </div>\n }\n\n @if (!userSettings.settings.user.modelFilter.advanced) {\n <div class=\"model-factor-bottom-empty\">\n </div>\n }\n </div>\n</div>\n\n<div [id]=\"'factor-' + factor.publicKey + '-indicators'\" class=\"indicators\">\n @for (indicator of factor.lower; track indicator) {\n <model-factor-indicator [indicator]=\"indicator\" [actionStatusPosition]=\"expandPosition\" [visible]=\"expandIndicators && allowExpand\"></model-factor-indicator>\n }\n</div>\n\n<ng-template cdkConnectedOverlay [cdkConnectedOverlayOrigin]=\"badgeOrigin\" [cdkConnectedOverlayPush]=\"true\" [cdkConnectedOverlayViewportMargin]=\"8\" [cdkConnectedOverlayOpen]=\"isPopoverOpen\" [cdkConnectedOverlayHasBackdrop]=\"true\" [cdkConnectedOverlayBackdropClass]=\"'cdk-overlay-transparent-backdrop'\" [cdkConnectedOverlayPositions]=\"overlayPositions\" (backdropClick)=\"isPopoverOpen = false\">\n <div class=\"popover\" [id]=\"'popover-' + factor.publicKey\">\n <div class=\"popover-container\">\n <span (click)=\"isPopoverOpen = false\" class=\"close ph-x\"></span>\n <h3 factorInformationDialog [factor]=\"factor\">\n {{factor.name}}\n <span class=\"icon ph-info-fill\"></span>\n </h3>\n <div class=\"description\">{{factor.description}}</div>\n\n <model-factor-benchmark [factor]=\"factorScore\" [benchmark]=\"benchmark\"></model-factor-benchmark>\n <model-factor-breakdown [factor]=\"factorScore\"></model-factor-breakdown>\n <quicktips [dimensionKey]=\"factor.publicKey\" [extraClass]=\"'quicktips-popover'\"></quicktips>\n\n @if (factorScore.recommendation.available) {\n <div class=\"link\">\n <a [routerLink]=\"[baseUrl, 'tips']\" [fragment]=\"factor.publicKey\">discover how to improve ></a>\n </div>\n }\n </div>\n <div class=\"arrow\"></div>\n </div>\n</ng-template>\n","import { Component, HostListener, Inject } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { FactorStructureDto, ModelDefinitionDto } from '../../../models/modelStructureDto';\nimport { ModelVisualizationLayer } from '../../../models/userSettingsDto';\nimport { DateRangeDto } from '../../../pipes/dateRange/ngx-dateRangeDto.model';\nimport { IResultsState } from '../../../results/interfaces/IResultsState';\nimport { DeltaPeriodEnum, PointTypeEnum, QualifiedByEnum } from '../../../results/models/factorScoreDto';\nimport { IUserSettingStrategy, UserSettingService, VIEWSTATE_USERSETTINGS_STRATEGY } from '../../../viewModel/userSettings.service';\nimport { VIEWSTATE_PROVIDER, ViewModelStateBase } from '../../../viewModel/viewModelState.service';\nimport { SelectListItem } from '../../select-list/select-list.component';\nimport { ClientIntegrationSummaryDto } from '../../../models/integrationDto';\n\n@Component({\n selector: 'model-canvas',\n templateUrl: './model-canvas.component.html',\n styleUrls: ['./model-canvas.component.less'],\n standalone: false\n})\nexport class ModelCanvasComponent extends ComponentWithViewStateBase<IResultsState> {\n public factors: FactorStructureDto[];\n public metrics: FactorStructureDto[];\n public integrations: ClientIntegrationSummaryDto[];\n public metricsAvailable: boolean;\n public metricSamplingWindow: DateRangeDto;\n public showIndicatorArrows: boolean;\n public showModel: boolean;\n public dateRange: DateRangeDto;\n public deltaDateRange: DateRangeDto;\n public teamsDashboardUrl: string;\n public pointCount: number;\n public benchmark: string;\n public pointNames: string;\n public pointType: string;\n public deltaTeams: number;\n public showTeamsDashboardSetup: boolean;\n public deltaTeamNames: string;\n public deltaAvailable: boolean;\n public isLoggedIn: boolean;\n public canManageIntegrations: boolean;\n public modelDefinition: ModelDefinitionDto;\n public qualifiedBy: QualifiedByEnum;\n public deltaType: DeltaPeriodEnum;\n public isSubscriber: boolean;\n public QualifiedByEnum = QualifiedByEnum;\n public globalNotes: string[];\n\n constructor(@Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IResultsState>, @Inject(VIEWSTATE_USERSETTINGS_STRATEGY) protected userSettings: IUserSettingStrategy, private userSettingService: UserSettingService, protected snackBar: MatSnackBar) {\n super(state, snackBar);\n\n }\n\n ngOnInit() {\n this.determineScreenSize();\n super.ngOnInit();\n\n if (typeof this.userSettings.settings.user.modelFilter.advanced === 'undefined') {\n this.userSettings.settings.user.modelFilter.advanced = false;\n }\n\n if (!this.userSettings.settings.user.modelFilter.layers || this.userSettings.settings.user.modelFilter.layers.length == 0) {\n this.userSettings.settings.user.modelFilter.layers = [];\n this.userSettings.settings.user.modelFilter.layers.push(new SelectListItem(\"TeamMembers\", \"Team\", true));\n this.userSettings.settings.user.modelFilter.layers.push(new SelectListItem(\"Stakeholders\", \"Stakeholders\", true));\n this.userSettings.settings.user.modelFilter.layers.push(new SelectListItem(\"Supporters\", \"Supporters\", true));\n\n }\n }\n\n @HostListener('window:resize', ['$event'])\n public determineScreenSize(event?) {\n this.showIndicatorArrows = window.innerWidth > 1320;\n this.showModel = window.innerWidth > 600;\n }\n\n protected onDataUpdate(data: IResultsState): void {\n this.globalNotes = data.factorScores.processingData.notes;\n this.factors = data.factorScores.modelStructure.definition.factors.filter(p => p.parentKey == null && p.core);\n this.metrics = data.factorScores.modelStructure.definition.factors.filter(p => p.parentKey == null && p.metric);\n this.modelDefinition = data.factorScores.modelStructure.definition;\n this.dateRange = data.factorScores.dateRange;\n this.deltaDateRange = data.factorScores.delta.dateRange;\n this.pointCount = data.factorScores.composition.points.count;\n this.benchmark = data.factorScores.benchmark.name;\n this.pointNames = data.factorScores.composition.points.points.map(p => p.name).join(\", \");\n this.deltaTeams = data.factorScores.delta.teams.count;\n this.deltaTeamNames = data.factorScores.delta.teams.points.map(p => p.name).join(\", \");\n this.deltaAvailable = data.factorScores.delta.available;\n this.deltaType = data.factorScores.delta.type;\n this.isLoggedIn = data.userInfo.isAdmin || data.userInfo.isCoach;\n this.qualifiedBy = data.factorScores.processingData.qualifiedBy;\n this.isSubscriber = data.isSubscriber;\n this.canManageIntegrations = this.isLoggedIn && data.appContext == \"TeamsDashboard\";\n this.teamsDashboardUrl = data.userInfo.branding.teamsDashboardUrl;\n this.showTeamsDashboardSetup = data.appContext == \"CoachingCenter\";\n this.metricSamplingWindow = data.factorScores.samplingWindows.metrics;\n\n switch (data.factorScores.composition.points.type) {\n case PointTypeEnum.client:\n case PointTypeEnum.client:\n this.pointType = this.pointCount == 1 ? \"organization\" : \"organizations\";\n break;\n case PointTypeEnum.team:\n this.pointType = this.pointCount == 1 ? \"team\" : \"teams\";\n break;\n case PointTypeEnum.individual:\n this.pointType = this.pointCount == 1 ? \"member\" : \"members\";\n break;\n default:\n this.pointType = \"points\"\n break;\n }\n };\n\n public toggleView(advanced: boolean) {\n this.userSettings.settings.user.modelFilter.advanced = advanced;\n this.userSettingService.set(this.userSettings.settings);\n }\n\n public toggleLayer(selectedLayer: ModelVisualizationLayer) {\n var layer = this.userSettings.settings.user.modelFilter.layers.find(p => p.key == selectedLayer.key);\n if (!layer) { return; }\n\n layer.selected = !layer.selected;\n this.userSettingService.set(this.userSettings.settings);\n }\n}\n","@if (!showModel) {\n<div class=\"message message-warning\">\n <div><span class=\"icon ph-info-fill\"></span> We've hidden the model visualization because your resolution is too low. Please try a larger device, like a tablet, laptop or desktop.</div>\n</div>\n}\n\n@if (factors && showModel) {\n<div class=\"wirebox model\">\n <div class=\"top\">\n <div class=\"toolbar\">\n <div class=\"toolbar-settings\">\n <div class=\"toolbar-setting\">\n <div class=\"toolbar-setting-title\">Selected Benchmark</div>\n <div class=\"toolbar-setting-label\">{{benchmark}}</div>\n </div>\n <div class=\"toolbar-setting\">\n <div class=\"toolbar-setting-title\">compare results to</div>\n @if (qualifiedBy == QualifiedByEnum.none) {\n <div class=\"toolbar-setting-label\">No comparison</div>\n }\n @if (qualifiedBy == QualifiedByEnum.delta && deltaType == 'PreviousSnapshot') {\n <div class=\"toolbar-setting-label\">Previous snapshot from {{deltaDateRange | dateRange}}</div>\n }\n @if (qualifiedBy == QualifiedByEnum.delta && deltaType != 'PreviousSnapshot') {\n <div class=\"toolbar-setting-label\">Current period <span class=\"icon ph-info-fill\" [title]=\"'Current period ranges from ' + (dateRange | dateRange) + '. This includes weighed measurements from ' + pointCount + ' ' + pointType + ': ' + pointNames\"></span> with previous period <span class=\"icon ph-info-fill\" [title]=\"'Previous period ranges from ' + (deltaDateRange | dateRange) + '. This includes weighed measurements from ' + deltaTeams + ' ' + pointType + ': ' + deltaTeamNames\"></span></div>\n }\n @if (qualifiedBy == QualifiedByEnum.benchmark) {\n <div class=\"toolbar-setting-label\">Against benchmark</div>\n }\n </div>\n @if (qualifiedBy != QualifiedByEnum.none) {\n <div class=\"toolbar-setting\">\n <div class=\"toolbar-setting-title\">comparison legend</div>\n <div class=\"toolbar-setting-markers negative\">\n @if (qualifiedBy == 'Benchmark') {\n <div class=\"toolbar-setting-marker negative\">\n <span class=\"marker\"></span>\n <span class=\"label\">lower</span>\n </div>\n <div class=\"toolbar-setting-marker positive\">\n <span class=\"marker\"></span>\n <span class=\"label\">higher</span>\n </div>\n }\n @if (qualifiedBy == 'Delta') {\n <div class=\"toolbar-setting-marker negative\">\n <span class=\"marker\"></span>\n <span class=\"label\">decreased</span>\n </div>\n <div class=\"toolbar-setting-marker positive\">\n <span class=\"marker\"></span>\n <span class=\"label\">improved</span>\n </div>\n }\n </div>\n </div>\n }\n </div>\n <div class=\"buttons\">\n <div class=\"button\" id=\"change-settings\" settingsDialog><span class=\"ph-faders icon\"></span> Settings</div>\n @if (isLoggedIn) {\n <div class=\"button\" id=\"export-factorscores\" exportFactorScoresDialog><span class=\"ph-download-simple icon\"></span> Export</div>\n }\n </div>\n </div>\n </div>\n <div class=\"content\">\n <div class=\"model-visualization\">\n <div class=\"model-clarification\">\n <span class=\"icon ph-info-fill\"></span>\n <span class=\"message-text\">This model shows how factors are connected based on scientific research. Click <span class=\"icon ph-plus-circle-bold plus\"></span> to expand or close lower-order factors. Click factors for more detail.</span>\n </div>\n @if (!showModel || !showIndicatorArrows) {\n <div class=\"model-smallscreen\">\n <span class=\"icon ph-frame-corners-bold\"></span>\n <span class=\"message-text\">View on a larger device to see more details.</span>\n </div>\n }\n <div class=\"model-viewconfiguration\">\n <div class=\"model-viewmode\">\n <div class=\"model-viewmode-label\">View</div>\n <div class=\"model-viewmode-option\" (click)=\"toggleView(false)\" [ngClass]=\"{'selected': !userSettings.settings.user.modelFilter.advanced}\">\n @if (!userSettings.settings.user.modelFilter.advanced) {\n <span class=\"icon ph-check-fill\"></span>\n }Simple\n </div>\n <div class=\"model-viewmode-option selected\" (click)=\"toggleView(true)\" [ngClass]=\"{'selected': userSettings.settings.user.modelFilter.advanced}\">\n @if (userSettings.settings.user.modelFilter.advanced) {\n <span class=\"icon ph-check-fill\"></span>\n }Advanced\n </div>\n </div>\n <div class=\"model-viewmode model-layers\">\n <div class=\"model-viewmode-label\">Source</div>\n @for (layer of userSettings.settings.user.modelFilter.layers; track layer) {\n <div class=\"model-viewmode-option\" (click)=\"toggleLayer(layer)\" [ngClass]=\"{'selected': layer.selected}\">\n @if (layer.selected) {\n <span class=\"icon ph-check-fill\"></span>\n }{{layer.label}}\n </div>\n }\n </div>\n @if (globalNotes.length > 0) {\n <div class=\"model-warnings\" notesDialog [notes]=\"globalNotes\">\n <span class=\"ph-warning-fill icon\"></span>\n @if (globalNotes.length == 1) {\n <span>{{globalNotes.length}} warning</span>\n }\n @if (globalNotes.length > 1) {\n <span>{{globalNotes.length}} warnings</span>\n }\n </div>\n }\n </div>\n <div class=\"model-frame\" [class]=\"'model-visualization-' + modelDefinition.publicKey\">\n @for (factor of factors; track factor) {\n <model-factor-core [factor]=\"factor\" [expandPosition]=\"factor.indicatorPosition\" [allowExpand]=\"showIndicatorArrows\"></model-factor-core>\n }\n </div>\n @for (factor of factors; track factor) {\n @for (effect of factor.effects; track effect) {\n <arrow [from]=\"'#factor-' + factor.publicKey\" [to]=\"'#factor-' + effect.to\" [onlyVisible]=\"true\" [tail]=\"true\" [head]=\"false\" [width]=\"2\"></arrow>\n }\n @if (showIndicatorArrows) {\n @for (lowerFactor of factor.lower; track lowerFactor) {\n @for (lowerEffect of lowerFactor.effects; track lowerEffect) {\n <arrow [from]=\"'#factor-' + lowerFactor.publicKey + '-anchor'\" [to]=\"'#factor-' + lowerEffect.to + '-expand'\" [onlyVisible]=\"true\" [tail]=\"false\" [head]=\"false\" [width]=\"1\"></arrow>\n }\n }\n }\n }\n <div class=\"model-attribution\">\n <span class=\"icon ph-info-fill\"></span>\n <span>\n <span [innerHtml]=\"modelDefinition.attribution\"></span>\n <span>&nbsp;Visit <a href=\"https://columinity.com/wiki/How-to-choose-between-models\" target=\"_blank\">documentation</a>.</span>\n </span>\n </div>\n </div>\n </div>\n <div class=\"content model-processmetrics\">\n <h3>Process metrics <span class=\"badge badge-beta\" title=\"This feature is in beta. You may experience issues or a sub-optimal user experience as we learn from teams what is most valuable. Please share bugs or feedback with us.\">beta</span></h3>\n @if (metrics.length > 0) {\n <div class=\"model-factor-metrics\">\n @for (metric of metrics; track metric) {\n <model-factor-metric [metric]=\"metric\"></model-factor-metric>\n }\n </div>\n }\n <div class=\"model-processmetrics-definition\">\n <span class=\"icon ph-info-fill\"></span> Sampled from {{metricSamplingWindow.from | date:'MMM d'}} to {{metricSamplingWindow.to | date:'MMM d'}}.\n @if (canManageIntegrations) {\n <a [routerLink]=\"['/integrations']\">Manage integrations</a>.\n }\n @if (showTeamsDashboardSetup) {\n Integrations can be managed from a Teams Dashboard.\n }\n Visit <a href=\"https://columinity.com/wiki/integrate-with-other-platforms\" target=\"_blank\">documentation</a>.\n </div>\n </div>\n</div>\n }\n","import { HttpClient } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { ApiConfig } from '../../apiUrlToken';\nimport { ContentBrandingDto } from '../../models/brandingSettingsDto';\n\n@Injectable()\nexport class ResourceDownloadService\n{\n private baseUrl: string;\n\n constructor(private http: HttpClient, @Inject(ApiConfig) private config: ApiConfig) {\n this.baseUrl = config.get().apiUrl;\n }\n\n public get(publicKey: string, brandingSettings: ContentBrandingDto): Promise<ResourceDownloadRedirectUrlDto> {\n return this.http.post<ResourceDownloadRedirectUrlDto>(this.baseUrl + 'resourcedownload/' + publicKey, brandingSettings).toPromise();\n }\n}\n\nexport class ResourceDownloadRedirectUrlDto {\n cdnUrl: string;\n}\n","import { Component, Directive, HostListener, Inject, Input } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialog, MatDialogConfig, MatDialogRef } from '@angular/material/dialog';\nimport { MatSnackBar, MatSnackBarConfig } from '@angular/material/snack-bar';\nimport { BrandingProvider } from '../../branding/brandingProvider.service';\nimport { ContentBrandingDto } from '../../models/brandingSettingsDto';\nimport { ResourceDownloadService } from './resourceDownload.service';\n\n@Component({\n templateUrl: './dialog-resourcedownload.component.html',\n styleUrls: ['./dialog-resourcedownload.component.less'],\n standalone: false\n})\nexport class DialogResourceDownloadComponent\n{\n public publicKey: string;\n public cdnUrl: string;\n public error: boolean;\n private contentBranding: ContentBrandingDto;\n\n constructor(private brandingProvider: BrandingProvider, private snackBar: MatSnackBar, @Inject(MAT_DIALOG_DATA) data: string, private dialogRef: MatDialogRef<DialogResourceDownloadComponent>, private downloadService: ResourceDownloadService) {\n this.publicKey = data;\n this.contentBranding = this.brandingProvider.currentBranding.contentBranding;\n }\n\n public async ngOnInit() {\n try {\n var result = await this.downloadService.get(this.publicKey, this.contentBranding);\n this.cdnUrl = result.cdnUrl;\n }\n catch\n {\n this.cdnUrl = null;\n this.error = true;\n }\n }\n\n public async initiateDownload(): Promise<void> {\n let downloadLink = document.createElement('a');\n downloadLink.setAttribute('href', this.cdnUrl);\n document.body.appendChild(downloadLink);\n downloadLink.click();\n this.dialogRef.close();\n\n let config = new MatSnackBarConfig();\n config.panelClass = ['success', 'snackbar'];\n config.duration = 2000;\n this.snackBar.open(\"Download started. Check your 'downloads' in the browser.\", \"dismiss\", config);\n }\n}\n\n@Directive({\n selector: '[resourceDownloadDialog]',\n standalone: false\n})\nexport class OpenResourceDownloadDialogDirective {\n @Input() publicKey: string;\n\n constructor(private dialog: MatDialog) {\n }\n\n @HostListener('click')\n onClick(): void {\n const dialogConfig = new MatDialogConfig();\n dialogConfig.panelClass = ['dialog', 'resourcedownload'];\n dialogConfig.data = this.publicKey;\n dialogConfig.enterAnimationDuration = 0;\n dialogConfig.exitAnimationDuration = 0;\n this.dialog.open(DialogResourceDownloadComponent, dialogConfig);\n }\n}\n\n","<div class=\"dialog-header\">\n <h1 mat-dialog-title>Download</h1>\n <div class=\"close\" mat-dialog-close><i class=\"responsive icon ph-x-bold\"></i></div>\n</div>\n<mat-dialog-content>\n @if (!cdnUrl) {\n <div class=\"loading\">\n <div class=\"top\">\n <div class=\"pleasewait\">Please wait while we generate your facilitation guide.</div>\n <div class=\"loading-icon dark\"></div>\n </div>\n </div>\n }\n\n @if (cdnUrl && !error) {\n <p>Use our detailed facilitation guides to initiate change in and around your teams</p>\n }\n @if (cdnUrl && !error) {\n <div class=\"button primary cdnUrl\" (click)=\"initiateDownload()\" [attr.data-href]=\"cdnUrl\"><span class=\"ph-download-bold icon\"></span>Download guide</div>\n }\n @if (error) {\n <div class=\"error\">We're sorry, but an error occured while preparing your guide. You can try again or <a href=\"javascript:void(null);\" supportDialog>contact us</a> if the problem persists.</div>\n }\n</mat-dialog-content>\n","import { NgModule } from '@angular/core';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\nimport { BrandingModule } from '../../branding/branding.module';\nimport { DialogResourceDownloadComponent, OpenResourceDownloadDialogDirective } from './dialog-resourcedownload.component';\nimport { ResourceDownloadService } from './resourceDownload.service';\nimport { CommonModule } from '@angular/common';\n\n\n@NgModule({\n imports: [MatDialogModule, MatSnackBarModule, BrandingModule, CommonModule],\n declarations: [DialogResourceDownloadComponent, OpenResourceDownloadDialogDirective],\n exports: [DialogResourceDownloadComponent, OpenResourceDownloadDialogDirective],\n providers: [ResourceDownloadService]\n})\nexport class ResourceDownloadModule { }\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { DialogSubscribeComponent } from './dialog-subscribe.component';\nimport { OpenSubscribeDialogDirective } from './dialog-subscribe.directive';\n\n@NgModule({\n imports: [MatDialogModule, CommonModule],\n declarations: [DialogSubscribeComponent, OpenSubscribeDialogDirective],\n exports: [DialogSubscribeComponent, OpenSubscribeDialogDirective]\n})\nexport class DialogSubscribeModule { }\n","import { Component, Input } from '@angular/core';\nimport { GuideStepMediaDto } from '../../models/guideCollectionDto';\n\n@Component({\n selector: 'imageslider',\n templateUrl: './imageslider.component.html',\n styleUrls: ['./imageslider.component.less'],\n standalone: false\n})\nexport class ImageSliderComponent {\n private intervalId: any;\n public index: number = 0;\n public maxIndex: number = 0;\n public total: number = 0;\n @Input() public items: GuideStepMediaDto[];\n\n public ngOnInit() {\n this.total = this.items.length;\n this.intervalId = setInterval(() => {\n this.nextImage();\n }, 3000);\n }\n\n public ngAfterContentChecked() {\n if (this.maxIndex != this.items.length) {\n this.maxIndex = this.items.length;\n this.index = 0;\n }\n }\n\n private nextImage() {\n this.index++;\n this.maxIndex = this.items.length;\n\n if (this.index >= this.maxIndex ) {\n this.index = 0;\n }\n }\n\n public select(index: number) {\n if (this.intervalId) {\n clearInterval(this.intervalId);\n this.intervalId = setInterval(() => {\n this.nextImage();\n }, 3000);\n }\n\n this.index = index;\n }\n\n ngOnDestroy() {\n if (this.intervalId) {\n clearInterval(this.intervalId);\n }\n }\n}\n","<div class=\"imageslider\">\n\n <div class=\"imageslider-inner\" #imageslider>\n @for (item of items; track item; let i = $index) {\n <div class=\"imageslider-item\" [ngClass]=\"{'visible': index == i}\">\n @if (item.clickUrl) {\n <a [href]=\"item.clickUrl\"><img [src]=\"item.sourceUrl\" /></a>\n }\n @if (!item.clickUrl) {\n <img [src]=\"item.sourceUrl\" />\n }\n </div>\n }\n </div>\n\n <div class=\"imageslider-nav\">\n @for (item of items; track item; let i = $index) {\n <div class=\"imageslider-nav-bullet\" (mouseover)=\"select(i)\" [ngClass]=\"{'active' : index == i}\"></div>\n }\n </div>\n</div>\n","import { Inject, Injectable, InjectionToken, Optional } from '@angular/core';\n\nexport const GuidesConfigToken = new InjectionToken<GuideConfigDto>(\n 'guides-angular.config'\n);\n\n@Injectable({ providedIn: 'root' })\nexport class GuidesClientConfig {\n private config?: GuideConfigDto;\n\n constructor(@Optional() @Inject(GuidesConfigToken) config?: GuideConfigDto) {\n if (config) {\n this.set(config);\n }\n }\n\n set(config: GuideConfigDto): void {\n this.config = config;\n }\n\n get(): GuideConfigDto {\n return this.config as GuideConfigDto;\n }\n}\n\nexport class GuideConfigDto {\n autoOpen: boolean;\n}\n","import { ComponentType } from '@angular/cdk/portal';\nimport { Inject, Injectable, InjectionToken } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { BehaviorSubject } from 'rxjs';\nimport { ViewModelStateBase, VIEWSTATE_PROVIDER } from '../../viewModel/viewModelState.service';\nimport { IGuideState } from '../interfaces/IGuideState';\nimport { GuideCollectionDto, GuideDto, GuideStepDto } from '../models/guideCollectionDto';\nimport { GuidesClientConfig } from './guidesClientConfig';\nimport { IGuideStateService } from './interfaces';\nexport const GUIDESTATE_PROVIDER = new InjectionToken<IGuideStateService>('guidestate.provider');\n\n@Injectable({ providedIn: 'root' })\nexport class GuidePopupService {\n public showResumeGuideOption = new BehaviorSubject<boolean>(false);\n private activeGuide: GuideDto;\n private guides: GuideDto[];\n private alreadyOpened: boolean;\n\n constructor(@Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IGuideState>, private dialog: MatDialog, @Inject(GUIDESTATE_PROVIDER) private guideStateService: IGuideStateService, private config: GuidesClientConfig) {\n this.guideStateService.activeGuideUpdated.subscribe(success => {\n this.activeGuide = success;\n });\n\n this.state.data.subscribe(success => {\n this.guides = success.guides.guides;\n });\n }\n\n public async startGuide<T>(dialogComponent: ComponentType<T>, guide: GuideDto) {\n await this.guideStateService.startGuide(guide);\n this.open(dialogComponent);\n }\n\n public async startGuideByKey<T>(dialogComponent: ComponentType<T>, guideKey: string) {\n var guide = this.guides.find(p => p.key == guideKey);\n if (guide == null) {\n console.error(\"No guide found with key \" + guideKey);\n return;\n }\n\n await this.guideStateService.startGuide(guide);\n this.open(dialogComponent);\n }\n\n public async stepToggle(step: GuideStepDto): Promise<void> {\n await this.guideStateService.stepToggle(step.key);\n }\n\n public open<T>(dialogComponent: ComponentType<T>) {\n this.dialog.open(dialogComponent, {\n panelClass: ['dialog', 'guide'],\n enterAnimationDuration: 0,\n exitAnimationDuration: 0,\n autoFocus: false\n });\n\n this.showResumeGuideOption.next(false);\n }\n\n public resumeGuide<T>(dialogComponent: ComponentType<T>): void {\n if (this.activeGuide != null && this.config.get().autoOpen) {\n if (!this.alreadyOpened) {\n this.open(dialogComponent);\n this.alreadyOpened = true;\n }\n else {\n this.showResumeGuideOption.next(true);\n }\n }\n }\n\n public async closeWithResume(): Promise<void> {\n this.showResumeGuideOption.next(this.activeGuide != null);\n }\n\n public async dismiss(): Promise<void> {\n this.showResumeGuideOption.next(false);\n await this.guideStateService.dismiss();\n this.dialog.closeAll();\n }\n}\n","import { ComponentType } from '@angular/cdk/portal';\nimport { Component, Directive, HostListener, Inject, InjectionToken } from '@angular/core';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { Subscription } from 'rxjs';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { ViewModelStateBase, VIEWSTATE_PROVIDER } from '../../../viewModel/viewModelState.service';\nimport { IGuideState } from '../../interfaces/IGuideState';\nimport { GuideDto } from '../../models/guideCollectionDto';\nimport { GuidePopupService, GUIDESTATE_PROVIDER } from '../../services/guidePopup.service';\nimport { IGuideStateService } from '../../services/interfaces';\nimport { DIALOG_GUIDE_TOKEN } from '../dialog-guide/dialog-guide.component';\n\nexport const DIALOG_GUIDES_TOKEN: InjectionToken<ComponentType<any>> = new InjectionToken<ComponentType<any>>('DIALOG_GUIDES_TOKEN');\n\n@Component({\n templateUrl: './dialog-guides.component.html',\n styleUrls: ['./dialog-guides.component.less'],\n standalone: false\n})\nexport class DialogGuidesComponent extends ComponentWithViewStateBase<IGuideState> {\n public guides: GuideDto[];\n public activeGuideKey: string;\n private subscription: Subscription;\n\n constructor(@Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IGuideState>, public guidePopupService: GuidePopupService, @Inject(GUIDESTATE_PROVIDER) private guideStateService: IGuideStateService, @Inject(DIALOG_GUIDE_TOKEN) private guideDialog: ComponentType<any>, public dialog: MatDialog, protected snackBar: MatSnackBar) {\n super(state, snackBar);\n }\n\n ngOnInit() {\n super.ngOnInit();\n\n this.subscription = this.guideStateService.activeGuideUpdated.subscribe(guide => {\n if (guide != null) {\n this.activeGuideKey = guide.key;\n }\n });\n }\n\n public async setActiveGuide(guide: GuideDto) {\n this.dialog.closeAll();\n await this.guidePopupService.startGuide(this.guideDialog, guide);\n }\n\n protected onDataUpdate(data: IGuideState) {\n this.guides = data.guides.guides;\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n super.ngOnDestroy();\n }\n}\n\n@Directive({\n selector: '[guidesDialog]',\n standalone: false\n})\nexport class OpenGuidesDialogDirective {\n constructor(private dialog: MatDialog, @Inject(DIALOG_GUIDES_TOKEN) private guidesDialog: ComponentType<any>) {\n }\n\n @HostListener('click')\n onClick(): void {\n const dialogConfig = new MatDialogConfig();\n dialogConfig.panelClass = ['dialog', 'guides'];\n dialogConfig.autoFocus = false;\n dialogConfig.enterAnimationDuration = 0;\n dialogConfig.exitAnimationDuration = 0;\n this.dialog.open(this.guidesDialog, dialogConfig);\n }\n}\n","<div class=\"dialog-header\" id=\"dialog-gettingstartedguides\">\n <h1 mat-dialog-title>How To Guides</h1>\n <div class=\"close\" mat-dialog-close><i class=\"responsive icon ph-x-bold\"></i></div>\n</div>\n<mat-dialog-content>\n <p>We created a number of simple guides to familiarize you with the many features:</p>\n <div class=\"guidelist\">\n @for (guide of guides; track guide) {\n <div class=\"guide\">\n @if (activeGuideKey == guide.key) {\n <a [routerLink]=\"[]\" [id]=\"'guide-' + guide.key\" (click)=\"setActiveGuide(guide)\">{{guide.name}}<span class=\"badge dark\">resume</span></a>\n }\n @if (activeGuideKey != guide.key) {\n <a [routerLink]=\"[]\" [id]=\"'guide-' + guide.key\" (click)=\"setActiveGuide(guide)\">{{guide.name}}</a>\n }\n </div>\n }\n </div>\n</mat-dialog-content>\n","import { ComponentType } from '@angular/cdk/portal';\nimport { Component, Directive, HostListener, Inject, InjectionToken, ViewEncapsulation } from '@angular/core';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { ViewModelStateBase, VIEWSTATE_PROVIDER } from '../../../viewModel/viewModelState.service';\nimport { IGuideState } from '../../interfaces/IGuideState';\nimport { GuideDto, GuideStepDto } from '../../models/guideCollectionDto';\nimport { GuidePopupService, GUIDESTATE_PROVIDER } from '../../services/guidePopup.service';\nimport { IGuideStateService } from '../../services/interfaces';\nimport { DIALOG_GUIDES_TOKEN } from '../dialog-guides/dialog-guides.component';\n\nexport const DIALOG_GUIDE_TOKEN: InjectionToken<ComponentType<any>> = new InjectionToken<ComponentType<any>>('DIALOG_GUIDE_TOKEN');\n\n@Component({\n templateUrl: './dialog-guide.component.html',\n styleUrls: ['./dialog-guide.component.less'],\n encapsulation: ViewEncapsulation.None,\n standalone: false\n})\nexport class DialogGuideComponent extends ComponentWithViewStateBase<IGuideState> {\n public smallScreen: boolean;\n public activeStep: GuideStepDto = null;\n public guide: GuideDto;\n\n constructor(@Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IGuideState>, public guidePopupService: GuidePopupService, @Inject(GUIDESTATE_PROVIDER) private guideStateService: IGuideStateService, @Inject(DIALOG_GUIDES_TOKEN) private guidesDialog: ComponentType<any>, protected snackBar: MatSnackBar, private dialog: MatDialog) {\n super(state, snackBar);\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.smallScreen = window.innerWidth <= 640;\n\n this.guideStateService.activeGuideUpdated.subscribe(guide => {\n if (guide != null) {\n this.guide = guide;\n this.selectNextOpenItem();\n }\n });\n\n this.dialog.afterAllClosed.subscribe(() => {\n this.guidePopupService.closeWithResume()\n });\n }\n\n public async toGuides() {\n this.dialog.closeAll();\n const dialogConfig = new MatDialogConfig();\n dialogConfig.panelClass = ['dialog', 'guides'];\n this.dialog.open(this.guidesDialog, dialogConfig);\n }\n\n public async dismiss() {\n await this.guidePopupService.dismiss();\n this.dialog.closeAll();\n }\n\n public async handleCheckChange(item: GuideStepDto, checked: boolean) {\n item.completed = checked;\n await this.guidePopupService.stepToggle(item);\n this.next(item);\n }\n\n public async next(item: GuideStepDto) {\n if (this.guide == null) { return; }\n if (this.isLastStep(item)) {\n this.activeStep = this.guide.steps[0];;\n }\n else {\n var index = this.guide.steps.indexOf(item);\n this.activeStep = this.guide.steps[index + 1];\n }\n }\n\n public async complete(item: GuideStepDto) {\n await this.guidePopupService.stepToggle(item);\n await this.guidePopupService.dismiss();\n }\n\n public showSteps(): boolean {\n return !this.smallScreen;\n }\n\n public select(item: GuideStepDto) {\n this.activeStep = item;\n }\n\n public isLastStep(item: GuideStepDto) {\n var index = this.guide.steps.indexOf(item);\n return index >= this.guide.steps.length - 1;\n }\n\n private selectNextOpenItem() {\n if (this.guide == null) { return; }\n var remaining = this.guide.steps.filter(p => !p.completed);\n\n if (remaining.length == 0) {\n this.activeStep = this.guide.steps[0];\n return;\n }\n\n this.activeStep = remaining[0];\n }\n\n protected onDataUpdate(data: IGuideState) {\n }\n\n @HostListener('window:resize', ['$event'])\n onWindowResize(event?) {\n this.smallScreen = window.innerWidth <= 640;\n this.selectNextOpenItem();\n }\n}\n\n@Directive({\n selector: '[guideDialog]',\n standalone: false\n})\nexport class OpenGuideDialogDirective {\n constructor(private dialog: MatDialog, private guidePopupService: GuidePopupService, @Inject(DIALOG_GUIDE_TOKEN) private guideDialog: ComponentType<any>) {\n }\n\n @HostListener('click')\n onClick(): void {\n this.dialog.closeAll();\n this.guidePopupService.open(this.guideDialog);\n }\n}\n","@if (guide) {\n <mat-dialog-content id=\"dialog-gettingstarted\">\n <div class=\"close\" mat-dialog-close><span class=\"responsive icon ph-x-bold\"></span></div>\n @if (showSteps()) {\n <div class=\"guides-navigation leftcolumn\">\n <div class=\"steps\">\n <h3 class=\"title\">{{guide.name}}</h3>\n <div class=\"steplist\">\n @for (step of guide.steps; track step) {\n <div class=\"steplist-item\" [ngClass]=\"{'active': step == activeStep}\">\n <checkbox [label]=\"step.title\" (onCheckChange)=\"handleCheckChange(step, $event)\" [checked]=\"step.completed\" (click)=\"select(step)\"></checkbox>\n </div>\n }\n </div>\n </div>\n <div class=\"toolbar\">\n <div class=\"link dismiss\" [routerLink]=\"[]\" (click)=\"dismiss()\">dismiss guide</div>\n </div>\n </div>\n }\n @if (activeStep) {\n <div class=\"guides-item rightcolumn\">\n @if (activeStep.media) {\n <div class=\"mediaframe\">\n <imageslider [items]=\"activeStep.media\"></imageslider>\n </div>\n }\n <div class=\"description\">\n <h3 class=\"title\">{{activeStep.title}}</h3>\n <div class=\"innerHtml\" [innerHtml]=\"activeStep.body\"></div>\n <div class=\"link\">\n @if (activeStep.url) {\n <a [href]=\"activeStep.url\" target=\"_blank\">learn more ></a>\n }\n </div>\n </div>\n <div class=\"buttons\">\n @if (!activeStep.completed && showSteps()) {\n <a [routerLink]=\"[]\" class=\"button cta markcomplete\" (click)=\"handleCheckChange(activeStep, true)\">mark done</a>\n }\n @if (activeStep.completed && showSteps()) {\n <a [routerLink]=\"[]\" class=\"button cta markcomplete\" (click)=\"handleCheckChange(activeStep, false)\">mark undone</a>\n }\n @if (!isLastStep(activeStep)) {\n <a [routerLink]=\"[]\" class=\"button borderonly\" (click)=\"next(activeStep)\">next</a>\n }\n @if (isLastStep(activeStep)) {\n <a [routerLink]=\"[]\" class=\"button borderonly\" (click)=\"toGuides()\">more guides</a>\n }\n @if (isLastStep(activeStep) && !showSteps()) {\n <a [routerLink]=\"[]\" class=\"button cta markcomplete\" (click)=\"complete(activeStep)\">complete</a>\n }\n </div>\n </div>\n }\n </mat-dialog-content>\n}\n","import { ComponentType } from '@angular/cdk/portal';\nimport { Component, Inject } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { ViewModelStateBase, VIEWSTATE_PROVIDER } from '../../../viewModel/viewModelState.service';\nimport { DIALOG_GUIDE_TOKEN } from '../../dialogs/dialog-guide/dialog-guide.component';\nimport { IGuideState } from '../../interfaces/IGuideState';\nimport { GuidePopupService } from '../../services/guidePopup.service';\n\n@Component({\n selector: 'resumeguidehover',\n templateUrl: './resumeguidehover.component.html',\n styleUrls: ['./resumeguidehover.component.less'],\n standalone: false\n})\nexport class ResumeGuideHoverComponent extends ComponentWithViewStateBase<IGuideState> {\n public showResumeGuide: boolean;\n\n constructor(@Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IGuideState>, private guidePopupService: GuidePopupService, @Inject(DIALOG_GUIDE_TOKEN) private guideDialog: ComponentType<any>, protected snackBar: MatSnackBar, private dialog: MatDialog) {\n super(state, snackBar);\n this.guidePopupService.showResumeGuideOption.subscribe(show => {\n this.showResumeGuide = show;\n });\n }\n\n protected onDataUpdate() {\n this.guidePopupService.resumeGuide(this.guideDialog);\n }\n}\n","@if (showResumeGuide) {\n <div class=\"resumeguidehover\" guideDialog>\n <span class=\"icon ph-play-circle-fill\"></span>Resume Guide\n </div>\n}\n","export class GuideCollectionDto {\n guides: GuideDto[];\n active: GuideDto;\n}\n\nexport class GuideDto\n{\n key: string;\n name: string;\n steps: GuideStepDto[];\n}\n\nexport class GuideStepDto {\n key: string;\n title: string;\n body: string;\n url: string;\n completed: boolean;\n media: GuideStepMediaDto[];\n}\n\nexport class GuideStepMediaDto {\n type: GuideMediaTypeEnum;\n sourceUrl: string;\n clickUrl: string;\n}\n\nexport class GuideStateDto {\n constructor() {\n this.completedSteps = [];\n }\n\n activeGuideKey: string;\n completedSteps: string[];\n}\n\nexport enum GuideMediaTypeEnum {\n image = 'Image',\n video = 'Video'\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { LOCAL_STORAGE, StorageService } from 'ngx-webstorage-service';\nimport { BehaviorSubject } from 'rxjs';\nimport { ViewModelStateBase, VIEWSTATE_PROVIDER } from '../../viewModel/viewModelState.service';\nimport { IGuideState } from '../interfaces/IGuideState';\nimport { GuideDto, GuideStateDto } from '../models/guideCollectionDto';\nimport { IGuideStateService } from './interfaces';\n\n@Injectable()\nexport class GuideStateInBrowserService implements IGuideStateService {\n public activeGuideUpdated = new BehaviorSubject<GuideDto>(null);\n private guideState: GuideStateDto = new GuideStateDto();\n\n constructor(@Inject(LOCAL_STORAGE) private storage: StorageService, @Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IGuideState>) {\n this.state.data.subscribe(success => {\n if (success.loaded) {\n this.guideState = this.storage.get(\"guidestate\") || new GuideStateDto();\n\n if (this.guideState.activeGuideKey != null) {\n var activeGuide = success.guides.guides.find(p => p.key == this.guideState.activeGuideKey);\n activeGuide.steps.forEach(p => p.completed = this.guideState.completedSteps.indexOf(p.key) > -1);\n this.activeGuideUpdated.next(activeGuide);\n }\n }\n });\n }\n\n async dismiss(): Promise<void> {\n this.guideState.activeGuideKey = null;\n this.storage.set(\"guidestate\", this.guideState);\n this.activeGuideUpdated.next(null);\n }\n\n async startGuide(guide: GuideDto): Promise<void> {\n this.guideState.activeGuideKey = guide.key;\n this.storage.set(\"guidestate\", this.guideState);\n this.activeGuideUpdated.next(guide);\n }\n\n async stepToggle(stepKey: string): Promise<void> {\n if (this.guideState.completedSteps.indexOf(stepKey) == -1) {\n this.guideState.completedSteps.push(stepKey);\n }\n else {\n this.guideState.completedSteps = this.guideState.completedSteps.filter(p => p != stepKey);\n }\n\n this.storage.set(\"guidestate\", this.guideState);\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { ApiConfig } from '../../apiUrlToken';\nimport { ViewModelStateBase, VIEWSTATE_PROVIDER } from '../../viewModel/viewModelState.service';\nimport { IGuideState } from '../interfaces/IGuideState';\nimport { GuideDto, GuideStateDto } from '../models/guideCollectionDto';\nimport { IGuideStateService } from './interfaces';\n\n// we're not using this anywhere at the moment\n@Injectable()\nexport class GuideStateInBackEndService implements IGuideStateService {\n public activeGuideUpdated = new BehaviorSubject<GuideDto>(null);\n private guideState: GuideStateDto = new GuideStateDto();\n\n constructor(private http: HttpClient, @Inject(ApiConfig) private config: ApiConfig, @Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IGuideState>) {\n console.log(\"Config for guides client set, and viewmodel provided\", config);\n\n this.state.data.subscribe(success => {\n if (success.loaded) {\n var activeGuide = success.guides.active;\n\n if (activeGuide != null) {\n this.guideState.activeGuideKey = activeGuide.key;\n this.guideState.completedSteps = success.guides.guides.flatMap(p => p.steps.filter(p => p.completed).flatMap(p => p.key));\n this.activeGuideUpdated.next(activeGuide);\n }\n }\n });\n }\n\n public async dismiss(): Promise<void> {\n await this.http.delete(this.config.get().apiUrl + 'guides').toPromise();\n this.activeGuideUpdated.next(null);\n this.state.reload();\n }\n\n public async startGuide(guide: GuideDto): Promise<void> {\n await this.http.post(this.config.get().apiUrl + 'guides/start/' + guide.key, null).toPromise();\n this.activeGuideUpdated.next(guide);\n }\n\n public async stepToggle(stepKey: string): Promise<void> {\n await this.http.put(this.config.get().apiUrl + 'guides/done/' + this.guideState.activeGuideKey + '/' + stepKey, null).toPromise();\n }\n}\n","import { Directive, HostListener, Input } from '@angular/core';\nimport { DialogGuideComponent } from '../../dialogs/dialog-guide/dialog-guide.component';\nimport { GuidePopupService } from '../../services/guidePopup.service';\n\n@Directive({\n selector: '[startGuide]',\n standalone: false\n})\nexport class StartGuideDirective {\n @Input() guideKey: string;\n\n constructor(private guidePopupService: GuidePopupService) {\n }\n\n @HostListener('click')\n onClick(): void {\n console.log(\"start guide\", this.guideKey);\n this.guidePopupService.startGuideByKey(DialogGuideComponent, this.guideKey);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { RouterModule } from '@angular/router';\nimport { ImageSliderComponent } from './components/imageslider/imageslider.component';\nimport { ResumeGuideHoverComponent } from './components/resumeguidehover/resumeguidehover.component';\nimport { DialogGuideComponent, DIALOG_GUIDE_TOKEN, OpenGuideDialogDirective } from './dialogs/dialog-guide/dialog-guide.component';\nimport { DialogGuidesComponent, DIALOG_GUIDES_TOKEN, OpenGuidesDialogDirective } from './dialogs/dialog-guides/dialog-guides.component';\nimport { GuidePopupService } from './services/guidePopup.service';\nimport { GuideStateInBrowserService } from './services/guideStateInBrowser.service';\nimport { GuideStateInBackEndService } from './services/guideStateInBackEnd.service';\nimport { StorageServiceModule } from 'ngx-webstorage-service';\nimport { StartGuideDirective } from './directives/startguide/startguide.directive';\nimport { BrandingModule } from '../branding/branding.module';\nimport { CheckboxModule } from '../components/checkbox/checkbox.module';\n\n@NgModule({\n imports: [\n MatDialogModule,\n RouterModule,\n FormsModule,\n CommonModule,\n BrandingModule,\n CheckboxModule,\n StorageServiceModule],\n declarations: [\n StartGuideDirective,\n OpenGuideDialogDirective,\n OpenGuidesDialogDirective,\n DialogGuidesComponent,\n ResumeGuideHoverComponent,\n DialogGuideComponent,\n ImageSliderComponent\n ],\n exports: [\n StartGuideDirective,\n OpenGuideDialogDirective,\n OpenGuidesDialogDirective,\n DialogGuidesComponent,\n ResumeGuideHoverComponent,\n DialogGuideComponent,\n ImageSliderComponent\n ],\n providers: [\n GuideStateInBackEndService,\n GuideStateInBrowserService,\n GuidePopupService,\n { provide: DIALOG_GUIDE_TOKEN, useValue: DialogGuideComponent },\n { provide: DIALOG_GUIDES_TOKEN, useValue: DialogGuidesComponent }\n ]\n})\nexport class GuidesModule { }\n","import { ConnectedPosition } from '@angular/cdk/overlay';\nimport { Component, Input } from '@angular/core';\nimport { BadgeDto, BadgeTypeEnum } from '../../models/badgeDto';\n\n@Component({\n selector: 'badge-progression',\n templateUrl: './badge-progression.component.html',\n styleUrls: ['./badge-progression.component.less'],\n standalone: false\n})\nexport class BadgeProgressionComponent {\n @Input() public showName: boolean;\n @Input() public badge: BadgeDto;\n @Input() public radius: number;\n public isPopoverOpen = false;\n public overlayPositions: ConnectedPosition[] = [\n {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top',\n offsetY: 8\n }\n ];\n\n\n constructor() {\n }\n\n public badgeType(): BadgeTypeEnum {\n return this.badge.type;\n }\n}\n","<div class=\"team-badge progression\" [ngClass]=\"{'unearned': !badge.awarded}\" #badgeOrigin=\"cdkOverlayOrigin\" cdkOverlayOrigin (click)=\"isPopoverOpen = true\">\n <div [class]=\"'circle level-' + badge.level\" [ngStyle]=\"{'width': radius + 'px', 'height': radius + 'px', 'border-radius': radius + 'px'}\">\n <span [class]=\"'icon ' + badge.icon\"></span>\n <mat-progress-spinner [diameter]=\"radius\" strokeWidth=\"6\" mode=\"determinate\" [value]=\"badge.nextLevelProgress * 100\"></mat-progress-spinner>\n <div class=\"gloss\">\n <div class=\"gloss1\"></div>\n <div class=\"gloss2\"></div>\n </div>\n </div>\n @if (showName) {\n <div class=\"name\">{{badge.name}}</div>\n }\n</div>\n\n<ng-template cdkConnectedOverlay [cdkConnectedOverlayOrigin]=\"badgeOrigin\" [cdkConnectedOverlayPush]=\"true\" [cdkConnectedOverlayViewportMargin]=\"8\" [cdkConnectedOverlayOpen]=\"isPopoverOpen\" [cdkConnectedOverlayHasBackdrop]=\"true\" [cdkConnectedOverlayBackdropClass]=\"'cdk-overlay-transparent-backdrop'\" [cdkConnectedOverlayPositions]=\"overlayPositions\" (backdropClick)=\"isPopoverOpen = false\">\n <div [class]=\"'popover level-' + badge.level\" [id]=\"'popover'\">\n <div class=\"arrow\"></div>\n <div class=\"popover-container\">\n <span (click)=\"isPopoverOpen = false\" class=\"close ph-x\"></span>\n @if (badge.level == 0) {\n <h3>{{badge.name}}</h3>\n }\n @if (badge.level == 1) {\n <h3>{{badge.name}} <span>Bronze Level</span></h3>\n }\n @if (badge.level == 2) {\n <h3>{{badge.name}} <span>Silver Level</span></h3>\n }\n @if (badge.level == 3) {\n <h3>{{badge.name}} <span>Gold Level</span></h3>\n }\n @if (badge.level == 4) {\n <h3>{{badge.name}} <span>Platinum Level</span></h3>\n }\n @if (badge.level == 5) {\n <h3>{{badge.name}} <span>Diamond Level</span></h3>\n }\n <div class=\"description\">{{badge.description}}</div>\n\n <h3>How to reach the next level</h3>\n <div class=\"description\">{{badge.nextLevelRequirement}}</div>\n </div>\n </div>\n </ng-template>\n","import { ConnectedPosition } from '@angular/cdk/overlay';\nimport { Component, Input } from '@angular/core';\nimport { BadgeDto } from '../../models/badgeDto';\n\n@Component({\n selector: 'badge-streak',\n templateUrl: './badge-streak.component.html',\n styleUrls: ['./badge-streak.component.less'],\n standalone: false\n})\nexport class BadgeStreakComponent {\n @Input() public showName: boolean;\n @Input() public badge: BadgeDto;\n @Input() public radius: number;\n public isPopoverOpen = false;\n public overlayPositions: ConnectedPosition[] = [\n {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top',\n offsetY: 8\n }\n ];\n\n constructor() {\n }\n\n public getStreakBadgeType(): string {\n if (this.badge.name.toLowerCase().indexOf(\"high \") > -1) {\n return \"higherthanbenchmark\";\n }\n else {\n return \"improved\"\n }\n }\n}\n","<div [class]=\"'team-badge streak ' + getStreakBadgeType()\" [ngClass]=\"{'unearned': !badge.awarded }\" #badgeOrigin=\"cdkOverlayOrigin\" cdkOverlayOrigin (click)=\"isPopoverOpen = true\">\n <div class=\"circle\" [ngStyle]=\"{'width': radius + 'px', 'height': radius + 'px', 'border-radius': radius + 'px'}\">\n @if (badge.awarded && badge.level >= 3) {\n <div class=\"crown\"></div>\n }\n <span [class]=\"'icon ' + badge.icon\"></span>\n @if (badge.awarded) {\n <div class=\"level\">{{badge.level}}</div>\n }\n </div>\n @if (showName) {\n <div class=\"name\">{{badge.name}}</div>\n }\n</div>\n\n<ng-template cdkConnectedOverlay [cdkConnectedOverlayOrigin]=\"badgeOrigin\" [cdkConnectedOverlayPush]=\"true\" [cdkConnectedOverlayViewportMargin]=\"8\" [cdkConnectedOverlayOpen]=\"isPopoverOpen\" [cdkConnectedOverlayHasBackdrop]=\"true\" [cdkConnectedOverlayBackdropClass]=\"'cdk-overlay-transparent-backdrop'\" [cdkConnectedOverlayPositions]=\"overlayPositions\" (backdropClick)=\"isPopoverOpen = false\">\n <div class=\"popover\" [id]=\"'popover'\">\n <div class=\"arrow\"></div>\n <div class=\"popover-container\">\n <span (click)=\"isPopoverOpen = false\" class=\"close ph-x\"></span>\n @if (badge.level == 0) {\n <h3>{{badge.name}}</h3>\n }\n @if (badge.level > 0) {\n <h3>{{badge.name}} <span>Streak of {{badge.level}}</span></h3>\n }\n <div class=\"description\">{{badge.description}}</div>\n\n <h3>How to reach the next level</h3>\n <div class=\"description\">{{badge.nextLevelRequirement}}</div>\n </div>\n </div>\n</ng-template>\n","export class BadgeCollectionDto {\n badges: BadgeDto[];\n}\n\nexport class BadgeDto {\n description: string;\n icon: string;\n color: string;\n name: string;\n level: number;\n progress: number;\n nextLevel: number;\n nextLevelProgress: number;\n nextLevelRequirement: string;\n lost: boolean;\n gained: boolean;\n awarded: boolean;\n hash: string;\n type: BadgeTypeEnum;\n}\n\nexport enum BadgeTypeEnum {\n streak = \"Streak\",\n progression = \"Progression\"\n}\n","import { Component, Input, ViewEncapsulation } from '@angular/core';\nimport { BadgeDto, BadgeTypeEnum } from '../../models/badgeDto';\n\n@Component({\n selector: 'badge',\n templateUrl: './badge.component.html',\n styleUrls: ['./badge.component.less'],\n standalone: false\n})\nexport class BadgeComponent {\n @Input() public showName: boolean;\n @Input() public badge: BadgeDto;\n @Input() public radius: number;\n\n constructor() {\n }\n\n public isStreakBadge(): boolean {\n return this.badge.type == BadgeTypeEnum.streak;\n }\n\n public isProgressionBadge(): boolean {\n return this.badge.type == BadgeTypeEnum.progression;\n }\n}\n","@if (isStreakBadge()) {\n <badge-streak [badge]=\"badge\" [showName]=\"showName\" [radius]=\"radius\"></badge-streak>\n}\n@if (isProgressionBadge()) {\n <badge-progression [badge]=\"badge\" [showName]=\"showName\" [radius]=\"radius\"></badge-progression>\n}\n","import { Component, Inject, ViewEncapsulation } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { ViewModelStateBase, VIEWSTATE_PROVIDER } from '../../../viewModel/viewModelState.service';\nimport { IResultsState } from '../../interfaces/IResultsState';\nimport { BadgeDto, BadgeTypeEnum } from '../../models/badgeDto';\n\n@Component({\n selector: 'badges',\n templateUrl: './badges.component.html',\n styleUrls: ['./badges.component.less'],\n standalone: false\n})\nexport class BadgesComponent extends ComponentWithViewStateBase<IResultsState> {\n public loaded: boolean;\n public showNotearned: boolean = true;\n public earnedStreakBadges: BadgeDto[];\n public earnedProgressionBadges: BadgeDto[];\n public unearnedProgressionBadges: BadgeDto[];\n public unearnedStreakBadges: BadgeDto[];\n\n constructor(@Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IResultsState>, protected snackBar: MatSnackBar) {\n super(state, snackBar);\n }\n\n public calculateBadgeProgress(badge: BadgeDto): number {\n var value = Math.round(badge.nextLevelProgress * 100);\n return value;\n }\n\n protected onDataUpdate(data: IResultsState): void {\n this.earnedStreakBadges = data.badges.badges.filter(p => p.awarded && p.type == BadgeTypeEnum.streak);\n this.earnedProgressionBadges = data.badges.badges.filter(p => p.awarded && p.type == BadgeTypeEnum.progression);\n this.unearnedStreakBadges = data.badges.badges.filter(p => !p.awarded && p.type == BadgeTypeEnum.streak);\n this.unearnedProgressionBadges = data.badges.badges.filter(p => !p.awarded && p.type == BadgeTypeEnum.progression);\n this.loaded = data.loaded;\n };\n}\n","@if (loaded) {\n <div class=\"box\">\n @if (earnedStreakBadges.length > 0) {\n <h4>Team streaks</h4>\n <div class=\"earned team-badges\">\n @for (badge of earnedStreakBadges; track badge) {\n <badge-streak [badge]=\"badge\" [showName]=\"true\" [radius]=\"65\"></badge-streak>\n }\n </div>\n }\n @if (earnedProgressionBadges.length > 0) {\n <h4>Team badges</h4>\n <div class=\"earned team-badges\">\n @for (badge of earnedProgressionBadges; track badge) {\n <badge [badge]=\"badge\" [showName]=\"true\" [radius]=\"75\"></badge>\n }\n </div>\n }\n <h4>Not yet earned</h4>\n <div class=\"notearned team-badges\" [ngClass]=\"{'fadeout': showNotearned}\" (mouseover)=\"showNotearned = false\">\n @for (badge of unearnedProgressionBadges; track badge) {\n <badge [badge]=\"badge\" [showName]=\"true\" [radius]=\"65\"></badge>\n }\n @for (badge of unearnedStreakBadges; track badge) {\n <badge [badge]=\"badge\" [showName]=\"true\" [radius]=\"65\"></badge>\n }\n </div>\n </div>\n}\n","import { DatePipe } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { FactorScoreDto } from '../../models/factorScoreDto';\n\n@Component({\n selector: 'benchmark-indicator',\n templateUrl: './benchmark-indicator.component.html',\n styleUrls: ['./benchmark-indicator.component.less'],\n standalone: false\n})\nexport class BenchmarkIndicatorComponent {\n public delta: number;\n public benchmarkAvailable: boolean;\n @Input() public factorScore: FactorScoreDto;\n constructor() {\n }\n\n ngOnInit() {\n this.benchmarkAvailable = this.factorScore.benchmark != 0;\n this.delta = this.factorScore.score - this.factorScore.benchmark;\n }\n}\n","@if (delta > 0 && benchmarkAvailable) {\n <div class=\"delta up\" [title]=\"'Your team(s) score higher than the benchmark, by ' + delta + ' points'\"><i [class]=\"'icon ph-caret-up-fill'\"></i>{{delta}}</div>\n}\n@if (delta < 0 && benchmarkAvailable) {\n <div class=\"delta down\" [title]=\"'Your team(s) score lower than the benchmark, by -' + delta * -1 + ' points'\"><i [class]=\"'icon ph-caret-down-fill'\"></i>{{delta * -1}}</div>\n}\n@if (delta == 0 && benchmarkAvailable) {\n <div class=\"delta same\" [title]=\"'Your team(s) score similar to the benchmark'\"><i [class]=\"'icon ph-circle-fill'\"></i>{{delta}}</div>\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'doityourself',\n templateUrl: './doityourself.component.html',\n styleUrls: ['./doityourself.component.less'],\n standalone: false\n})\nexport class DoItYourselfComponent {\n constructor() {\n }\n\n ngOnInit() {\n }\n}\n","<div class=\"box doityourself\" brandbackground [palette]=\"'neutral'\">\n <img class=\"responsive\" src=\"assets/img/diy.png\" />\n <h3>Facilitation Guide</h3>\n <p>Download our facilitation guide on how to interpret the results and identify improvements collaboratively.</p>\n\n <div class=\"link\">\n <a href=\"javascript:void(null);\" resourceDownloadDialog [publicKey]=\"'e0dd08d4-d44c-47b0-995c-6aa362f40498'\">Download ></a>\n </div>\n</div>\n\n\n","import { Component, Inject, Input } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { IActionState } from '../../../actions/interfaces/IActionState';\nimport { InterventionOwnerEnum, InterventionStateEnum, InterventionTypeEnum } from '../../../actions/models/actionDto';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { ContentBrandingDto } from '../../../models/brandingSettingsDto';\nimport { VIEWSTATE_PROVIDER, ViewModelStateBase } from '../../../viewModel/viewModelState.service';\nimport { IResultsState } from '../../interfaces/IResultsState';\nimport { FactorScoreDto, FeedbackResourceDto } from '../../models/factorScoreDto';\n\n@Component({\n selector: 'doityourselfworkshops',\n templateUrl: './doityourselfworkshops.component.html',\n styleUrls: ['./doityourselfworkshops.component.less'],\n standalone: false\n})\nexport class DoItYourselfWorkshopsComponent extends ComponentWithViewStateBase<IActionState> {\n @Input() public factorScore: FactorScoreDto;\n @Input() public resources: FeedbackResourceDto[];\n public InterventionTypeEnum = InterventionTypeEnum;\n public InterventionStateEnum = InterventionStateEnum;\n public InterventionOwnerEnum = InterventionOwnerEnum;\n private baseUrl: string;\n\n constructor(protected snackBar: MatSnackBar, @Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IResultsState>, ) {\n super(state, snackBar)\n }\n\n protected onDataUpdate(data: IResultsState) {\n this.baseUrl = data.baseUrl;\n }\n\n public getResourceUrl(item: FeedbackResourceDto) {\n return window.location.origin + this.baseUrl + 'tips?downloadKey=' + item.publicKey;\n }\n}\n","@for (item of resources; track item) {\n <div class=\"resource\" [id]=\"'resource-' + item.publicKey\">\n @if (item.publicKey != 'demo') {\n <span class=\"type\" resourceDownloadDialog [publicKey]=\"item.publicKey\">\n <span class=\"badge free\">download</span>\n </span>\n }\n @if (item.publicKey == 'demo') {\n <span class=\"type\" subscribeDialog>\n <span class=\"badge free\">download</span>\n </span>\n }\n <div class=\"download\">{{item.title}}</div>\n <a class=\"link addasaction\" href=\"javascript:void(null);\" addActionDialog [prefill]=\"{description: 'Run \\'' + item.title+ '\\'', teamKey: null, expectedImpactOn: [factorScore.key], type: InterventionTypeEnum.workshop, owner: null, quickTipPublicKey: null, url: getResourceUrl(item), state: InterventionStateEnum.open }\"><span class=\"ph-plus icon\"></span>Add as action</a>\n </div>\n}\n","import { Component, Inject, Input } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { ViewModelStateBase, VIEWSTATE_PROVIDER } from '../../../viewModel/viewModelState.service';\nimport { IResultsState, ITeamReportResultsState } from '../../interfaces/IResultsState';\n\n@Component({\n selector: 'tip-badge',\n templateUrl: './tip-badge.component.html',\n styleUrls: ['./tip-badge.component.less'],\n standalone: false\n})\nexport class TipBadgeComponent extends ComponentWithViewStateBase<IResultsState> {\n @Input() dimension: string;\n public label: string;\n public key: string;\n public feedbackKey: string;\n public impact: number;\n public class: string;\n public subscribed: boolean;\n public baseUrl: string;\n\n constructor(@Inject(VIEWSTATE_PROVIDER) protected state: ViewModelStateBase<ITeamReportResultsState>, protected snackBar: MatSnackBar) {\n super(state, snackBar);\n }\n\n protected onDataUpdate(data: IResultsState): void {\n var currentFactor = data.factorScores.factorScores.find(p => p.key == this.dimension);\n this.subscribed = data.isSubscriber;\n this.baseUrl = data.baseUrl;\n\n if (currentFactor != null) {\n this.impact = currentFactor.impact;\n this.class = currentFactor.qualification.toLowerCase();\n switch (currentFactor.qualification.toLowerCase()) {\n case \"neutral\":\n this.label = \"average\";\n break;\n case \"positive\":\n this.label = \"good\";\n break;\n case \"negative\":\n if (this.impact > 50) {\n this.label = \"important\";\n }\n else {\n this.class = \"neutral\";\n this.label = \"improve\";\n }\n break;\n default:\n this.label = \"average\";\n break;\n }\n }\n };\n}\n","@if (label && impact > 0) {\n <div [routerLink]=\"[baseUrl, 'tips']\" [fragment]=\"dimension\" class=\"tipbadge\" [matTooltip]=\"'The impact of this recommendation is ' + impact + ' of 100'\">\n <div [class]=\"'badge ' + class\">{{ label }}</div>\n </div>\n}\n\n@if (label && impact == 0 && subscribed) {\n <div class=\"tipbadge\">\n <div [class]=\"'badge noimpact ' + class\" subscribeDialog>{{ label }}</div>\n </div>\n}\n\n@if (label && impact == 0 && !subscribed) {\n <div class=\"tipbadge\">\n <div [class]=\"'badge noimpact ' + class\">{{ label }}</div>\n </div>\n}\n","import { Component, Inject, Input } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { ViewModelStateBase, VIEWSTATE_PROVIDER } from '../../../viewModel/viewModelState.service';\nimport { IResultsState, ITeamReportResultsState } from '../../interfaces/IResultsState';\nimport { ContextTypes, FactorScoreCollectionDeltaDto, FactorScoreDto, PointDto, QualifiedByEnum } from '../../models/factorScoreDto';\nimport { FactorStructureDto } from '../../../models/modelStructureDto';\n\n@Component({\n selector: 'factor-axis',\n templateUrl: './factor-axis.component.html',\n styleUrls: ['./factor-axis.component.less'],\n standalone: false\n})\nexport class FactorAxisComponent extends ComponentWithViewStateBase<IResultsState> {\n @Input() dimensionSelector: FactorStructureDto;\n @Input() showIndividualScore: boolean = true;\n @Input() showTeamRange: boolean = false;\n public expandLowerDimensions: boolean = false;\n public participantKey: string;\n public snapshotKey: string;\n public showBenchmark: boolean;\n public loaded: boolean;\n public subscribed: boolean;\n public benchmarkScore: number;\n public benchmarkLowerQuartile: number;\n public benchmarkUpperQuartile: number;\n public snapshotScore: number;\n public participantScore: number;\n public type: ContextTypes;\n public segments: PointDto[];\n public feedbackAvailable: boolean;\n public dataAvailable: boolean;\n public anonymized: boolean;\n public notes: string[];\n public name: string;\n public baseUrl: string;\n public factorScore: FactorScoreDto;\n public delta: FactorScoreCollectionDeltaDto;\n\n constructor(@Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<ITeamReportResultsState>, private dialog: MatDialog, protected snackBar: MatSnackBar) {\n super(state, snackBar);\n }\n\n protected onDataUpdate(data: ITeamReportResultsState): void {\n this.loaded = data.loaded;\n this.factorScore = data.factorScores.factorScores.find(p => p.key == this.dimensionSelector.publicKey);\n this.baseUrl = data.baseUrl;\n this.delta = data.factorScores.delta;\n\n if (this.factorScore != null) {\n this.name = this.factorScore.name;\n this.benchmarkScore = this.factorScore.benchmark;\n this.benchmarkLowerQuartile = this.factorScore.benchmarkLowerQuartile;\n this.benchmarkUpperQuartile = this.factorScore.benchmarkUpperQuartile;\n this.snapshotScore = this.factorScore.score;\n this.segments = this.factorScore.points;\n this.feedbackAvailable = this.factorScore.recommendation.available;\n this.dataAvailable = this.factorScore.sampleSize > 0;\n this.anonymized = this.factorScore.anonymized;\n this.notes = this.factorScore.notes;\n }\n\n this.subscribed = data.isSubscriber;\n };\n}\n","@if (loaded) {\n <div class=\"factorwithscale\" [ngClass]=\"{'factor-notmeasured' : !dataAvailable}\">\n <div class=\"anchors\">\n <div factorInformationDialog [factor]=\"dimensionSelector\" class=\"anchor title\">{{name}}</div>\n @if (notes && notes.length > 0) {\n <a class=\"anonymized\" href=\"javascript:void(null);\" notesDialog [notes]=\"notes\"><span class=\"icon ph-warning-fill\"></span></a>\n }\n <delta-arrow [factorScore]=\"factorScore\" [delta]=\"delta\"></delta-arrow>\n </div>\n <div class=\"axiscontainer\">\n <div class=\"axis\">\n @for (segment of segments; track segment) {\n @if (segment.type == 'Segment') {\n <div matTooltipPosition=\"right\" [matTooltip]='segment.name + \" (\" + segment.occurances + \"x) : \" + segment.normalizedScore' [ngStyle]=\"{'left': segment.normalizedScore + '%' }\" [attr.normalizedScore]=\"segment.normalizedScore\" [class]='\"marker \" + segment.name | lowercase'>\n <div class=\"occurances\">{{segment.occurances}}x</div>\n <img [src]='\"/assets/img/marker-\" + segment.name.toLowerCase() + \".svg\"' />\n </div>\n }\n @if (segment.type == 'Individual' && showIndividualScore) {\n <div matTooltipPosition=\"right\" [matTooltip]='segment.name + \" (\" + segment.occurances + \"x) : \" + segment.normalizedScore' [ngStyle]=\"{'left': segment.normalizedScore + '%' }\" [attr.normalizedScore]=\"segment.normalizedScore\" [class]='\"marker \" + segment.name | lowercase'>\n <div class=\"occurances\"></div>\n <img [src]='\"/assets/img/marker-you.svg\"' />\n </div>\n }\n }\n @if (benchmarkScore != 0) {\n <div class=\"confidence\" [ngStyle]=\"{ 'left': benchmarkLowerQuartile + '%', 'width': (benchmarkUpperQuartile - benchmarkLowerQuartile) + '%' }\" matTooltipPosition=\"right\" [matTooltip]='\"Most of the teams in the selected benchmark have a score in this range \" + benchmarkLowerQuartile + \" (lowest 15% of teams) to \" + benchmarkUpperQuartile + \" (highest 15% of teams)]\"'></div>\n }\n @if (showTeamRange) {\n @for (segment of segments; track segment) {\n <div [class]='\"range \" + segment.name | lowercase' [ngStyle]=\"{ 'left': segment.lowerConfidence + '%', 'width': (segment.upperConfidence - segment.lowerConfidence) + '%' }\" [matTooltip]='segment.name + \" (\" + segment.occurances + \"x): scores range from \" + segment.lowerConfidence + \" (15% percentile) to \" + segment.upperConfidence + \" (85% percentile)\"'></div>\n }\n }\n </div>\n </div>\n <div class=\"details\">\n <div class=\"feedback\">\n @if (dataAvailable) {\n <span class=\"score\"><tip-badge [dimension]=\"dimensionSelector.publicKey\"></tip-badge></span>\n }\n @if (!dataAvailable) {\n <span class=\"score\"><span class=\"badge nofeedback\">not measured</span></span>\n }\n @if (feedbackAvailable) {\n <a class=\"feedback-link\" [routerLink]=\"[baseUrl, 'tips']\" [fragment]=\"dimensionSelector.publicKey\">how to improve ></a>\n }\n @if (!feedbackAvailable && !subscribed) {\n <a class=\"feedback-link\" [routerLink]=\"[]\" subscribeDialog>more feedback?</a>\n }\n </div>\n @if (!expandLowerDimensions && dimensionSelector.lower.length != 0 && dataAvailable) {\n <div class=\"expand\" (click)=\"expandLowerDimensions = true\">\n <span class=\"icon ph-plus-bold\"></span>\n </div>\n }\n @if (expandLowerDimensions && dimensionSelector.lower.length != 0 && dataAvailable) {\n <div class=\"expand\" (click)=\"expandLowerDimensions = false\">\n <span class=\"icon ph-minus-bold\"></span>\n </div>\n }\n </div>\n @if (dimensionSelector.lower.length != 0 && expandLowerDimensions) {\n <div class=\"lowerdimensions\">\n <p class=\"decomposition\">The score for {{dimensionSelector.name}} has the following lower-order factors:</p>\n @for (dimension of dimensionSelector.lower; track dimension) {\n <div class=\"dimension\">\n <factor-axis [showIndividualScore]=\"showIndividualScore\" [showTeamRange]=\"showTeamRange\" [dimensionSelector]=\"dimension\"></factor-axis>\n </div>\n }\n </div>\n }\n </div>\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'limitationsapply',\n templateUrl: './limitationsapply.component.html',\n styleUrls: ['./limitationsapply.component.less'],\n standalone: false\n})\nexport class LimitationsApplyComponent {\n @Input() notes: string[];\n \n constructor() {\n }\n\n ngOnInit() {\n }\n}\n","@if (notes.length > 0) {\n <div class=\"message message-warning\" notesDialog [notes]=\"notes\">\n <span class=\"ph-info-fill icon\"></span>\n @if (notes.length == 1) {\n <div>1 limitation applies due to incomplete data. <a [routerLink]=\"[]\">Click here</a> to discover how to get more out of your results.</div>\n }\n @if (notes.length > 1) {\n <div>{{notes.length}} limitations apply due to incomplete data. <a [routerLink]=\"[]\">Click here</a> to discover how to resolve this and get even more out of your results.</div>\n }\n </div>\n}\n","import { Component, Inject } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { VIEWSTATE_PROVIDER, ViewModelStateBase } from '../../../viewModel/viewModelState.service';\nimport { IResultsState } from '../../interfaces/IResultsState';\nimport { ContextTypes, FactorScoreCollectionCompositionSegmentDto } from '../../models/factorScoreDto';\nimport { FactorStructureDto } from '../../../models/modelStructureDto';\n\n@Component({\n selector: 'factors',\n templateUrl: './factors.component.html',\n styleUrls: ['./factors.component.less'],\n standalone: false\n})\nexport class FactorsComponent extends ComponentWithViewStateBase<IResultsState> {\n public populationSegments: FactorScoreCollectionCompositionSegmentDto[];\n public benchmarkName: string;\n public showIndividualScore: boolean = true;\n public showTeamRange: boolean = false;\n public factors: FactorStructureDto[];\n public loaded: boolean;\n public showParticipant: boolean;\n public subscribed: boolean;\n public type: ContextTypes;\n public moreparticipantsneeded: boolean;\n public globalNotes: string[];\n\n constructor(@Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IResultsState>, protected snackBar: MatSnackBar) {\n super(state, snackBar);\n }\n\n protected onDataUpdate(data: IResultsState): void {\n this.loaded = data.loaded;\n this.loaded = data.loaded;\n this.subscribed = data.isSubscriber;\n this.showParticipant = data.type == ContextTypes.Participant;\n this.populationSegments = data.factorScores.composition.segments;\n this.benchmarkName = data.factorScores.benchmark.name;\n this.globalNotes = data.factorScores.processingData.notes;\n this.factors = data.factorScores.modelStructure.definition.factors.filter(p => p.parentKey == null && p.core);\n };\n}\n","@if (loaded) {\n <div class=\"results\">\n <div class=\"resultstoolbar\">\n <h3>Detailed results</h3>\n <div class=\"legend\">\n @if (showParticipant) {\n <div class=\"column you\">\n <span class=\"marker\"></span>\n <span class=\"label\">you</span>\n </div>\n }\n @for (segment of populationSegments; track segment) {\n <div [class]=\"'column ' + segment.name | lowercase\">\n <span class=\"marker\"></span>\n <span class=\"label\">{{segment.name | lowercase}} {{segment.occurances || 1}}x</span>\n </div>\n }\n <div class=\"column confidence\">\n <span class=\"marker\"></span>\n <span class=\"label\">benchmark '{{benchmarkName}}' <a [routerLink]=\"[]\" id=\"change-benchmark\" settingsDialog><span class=\"icon ph-faders-bold\"></span></a></span>\n </div>\n </div>\n <div class=\"filters\">\n @if (showParticipant) {\n <mat-slide-toggle class=\"toggle showmyscores\" [(ngModel)]=\"showIndividualScore\">Show my scores</mat-slide-toggle>\n }\n @if (subscribed) {\n <mat-slide-toggle class=\"toggle showscoringrange\" [(ngModel)]=\"showTeamRange\">Show range of scores in my team</mat-slide-toggle>\n }\n @if (!subscribed) {\n <mat-slide-toggle class=\"toggle showscoringrange\" subscribeDialog>Show range of scores in my team</mat-slide-toggle>\n }\n </div>\n </div>\n <div class=\"dimensions\">\n <limitationsapply [notes]=\"globalNotes\"></limitationsapply>\n @for (factor of factors; track factor) {\n <div class=\"dimension\" [id]=\"'factor-' + factor.name | slugify\">\n <factor-axis [showIndividualScore]=\"showIndividualScore\" [showTeamRange]=\"showTeamRange\" [dimensionSelector]=\"factor\"></factor-axis>\n </div>\n }\n </div>\n </div>\n}\n","import { Component, Inject, Input } from '@angular/core';\nimport { IUserSettingStrategy, VIEWSTATE_USERSETTINGS_STRATEGY } from '../../../viewModel/userSettings.service';\n\n@Component({\n selector: 'filter-tags',\n templateUrl: './filter-tags.component.html',\n styleUrls: ['./filter-tags.component.less'],\n standalone: false\n})\nexport class FilterTagsComponent {\n @Input() public tags: string[];\n\n constructor(@Inject(VIEWSTATE_USERSETTINGS_STRATEGY) protected userSettings: IUserSettingStrategy) {\n }\n\n public async filterByTag(tag: string): Promise<void> {\n var alreadyExists = this.userSettings.settings.user.teamFilter.tags.find(p => p.toLocaleLowerCase() == tag.toLocaleLowerCase());\n\n if (!alreadyExists) {\n this.userSettings.settings.user.teamFilter.tags = [tag];\n }\n else {\n this.userSettings.settings.user.teamFilter.tags = this.userSettings.settings.user.teamFilter.tags.filter(p => p.toLocaleLowerCase() != tag.toLocaleLowerCase());\n }\n\n await this.userSettings.apply();\n }\n}\n","<div class=\"tags tags-clickable\">\n @for (tag of tags; track tag) {\n <div class=\"tag\" (click)=\"filterByTag(tag)\" title=\"Click to filter only by this tag\">{{tag}}</div>\n }\n</div>\n","import { DatePipe } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { FactorScoreDto } from '../../models/factorScoreDto';\n\n@Component({\n selector: 'impact-indicator',\n templateUrl: './impact-indicator.component.html',\n styleUrls: ['./impact-indicator.component.less'],\n standalone: false\n})\nexport class ImpactIndicatorComponent {\n @Input() public factorScore: FactorScoreDto;\n\n constructor(private datePipe: DatePipe) {\n }\n\n ngOnInit() {\n }\n}\n","<span [class]=\"'delta up'\" [matTooltip]=\"'The impact (0-100) is a rough estimate of how much improvements in this area are expected to improve your team(s).'\">{{factorScore.impact}}</span>\n","import { Component, Inject, Input } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { IActionState } from '../../../actions/interfaces/IActionState';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { ViewModelStateBase, VIEWSTATE_PROVIDER } from '../../../viewModel/viewModelState.service';\nimport { IResultsState } from '../../interfaces/IResultsState';\nimport { EffectTypeEnum, FactorScoreDto } from '../../models/factorScoreDto';\n\n@Component({\n selector: 'focusareas',\n templateUrl: './focusareas.component.html',\n styleUrls: ['./focusareas.component.less'],\n standalone: false\n})\nexport class FocusAreasComponent extends ComponentWithViewStateBase<IResultsState> {\n @Input() limit: number = 3;\n public focusAreas: FactorScoreDto[];\n public count: number;\n public baseUrl: string;\n\n constructor(@Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IResultsState>, protected snackBar: MatSnackBar) {\n super(state, snackBar);\n }\n\n protected onDataUpdate(data: IResultsState): void {\n var recommendations = data.factorScores.factorScores.filter(p => p.recommendation.available).sort((a, b) => a.impact > b.impact ? -1 : 1);\n this.count = recommendations.length;\n this.focusAreas = recommendations.slice(0, this.limit);\n this.baseUrl = data.baseUrl;\n }\n\n public getCoreFactor(item: FactorScoreDto) {\n var items = item.effects.filter(p => p.type == EffectTypeEnum.predicts);\n if (items == null) { return null; }\n return items.length > 0 ? \" to improve \" + item.effects.filter(p => p.type == EffectTypeEnum.predicts)[0].name : null;\n }\n}\n","<div class=\"wirebox contentwithborders focusareas\">\n <h3>Focus areas</h3>\n @if (count > 0) {\n <p>Based on the data, we recommend to focus on the following areas:</p>\n @for (item of focusAreas; track item; let index = $index) {\n <div class=\"focusarea\" [routerLink]=\"[baseUrl, 'tips']\" [ngClass]=\"{'first': index == 0}\">\n <div class=\"index\">{{index + 1}}</div>\n <div class=\"name\">Invest in <b>{{item.name}}</b>{{getCoreFactor(item)}}</div>\n <div class=\"impact\"><span class=\"badge nofeedback\">impact <impact-indicator [factorScore]=\"item\"></impact-indicator></span></div>\n <div [routerLink]=\"[baseUrl, 'tips']\" [fragment]=\"item.key\" class=\"more\">discover how ></div>\n </div>\n }\n <div class=\"link\">\n <a [routerLink]=\"[baseUrl, 'tips']\">more recommendations ></a>\n </div>\n }\n @if (count == 0) {\n <p>Once you have one or more snapshots for your team(s), you can find useful evidence-based feedback here.</p>\n }\n</div>\n","import { Component, Inject, ViewEncapsulation } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { BrandingSettingsDto } from '../../../models/brandingSettingsDto';\nimport { IViewState } from '../../../viewModel/interfaces';\nimport { VIEWSTATE_PROVIDER, ViewModelStateBase } from '../../../viewModel/viewModelState.service';\n\n@Component({\n selector: 'liberators-footer',\n templateUrl: './footer.component.html',\n styleUrls: ['./footer.component.less'],\n encapsulation: ViewEncapsulation.None,\n standalone: false\n})\nexport class FooterComponent extends ComponentWithViewStateBase<IViewState> {\n public branding: BrandingSettingsDto;\n\n constructor(@Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IViewState>, protected snackBar: MatSnackBar) {\n super(state, snackBar)\n }\n\n protected onDataUpdate(data: IViewState): void {\n this.branding = data.userInfo.branding;\n };\n}\n","@if (loaded) {\n <footer>\n <div class=\"item\">Provided by <a [href]=\"branding.channelCompanyUrl\">{{branding.channelName}}</a></div>\n <div class=\"item\"><a [href]=\"branding.channelTermsOfUseUrl\" target=\"_blank\">Terms of use</a></div>\n <div class=\"item\"><a [href]=\"branding.channelPrivacyPolicyUrl\" target=\"_blank\">Privacy</a></div>\n <div class=\"item\"><a href=\"https://columinity.com/wiki\" target=\"_blank\">Documentation</a></div>\n <div class=\"item\"><a [routerLink]=\"[]\" reportBugDialog>Report bug</a></div>\n </footer>\n}\n","import { Component, Directive, HostListener, Inject } from '@angular/core';\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\nimport { MatDialog, MatDialogConfig, MatDialogRef } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { IUserSettingStrategy, VIEWSTATE_USERSETTINGS_STRATEGY } from '../../../viewModel/userSettings.service';\nimport { ViewModelStateBase, VIEWSTATE_PROVIDER } from '../../../viewModel/viewModelState.service';\nimport { IResultsState } from '../../interfaces/IResultsState';\nimport { ModelSummaryDto } from '../../../models/modelStructureDto';\n\n@Component({\n templateUrl: './dialog-modelfilter.component.html',\n styleUrls: ['./dialog-modelfilter.component.less'],\n standalone: false\n})\nexport class DialogModelFilterComponent extends ComponentWithViewStateBase<IResultsState> {\n public form: UntypedFormGroup;\n public sending: boolean;\n public submitted: boolean;\n public models: ModelSummaryDto[];\n\n constructor(@Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IResultsState>, @Inject(VIEWSTATE_USERSETTINGS_STRATEGY) protected userSettings: IUserSettingStrategy, protected snackBar: MatSnackBar, private dialogRef: MatDialogRef<DialogModelFilterComponent>, private formBuilder: UntypedFormBuilder) {\n super(state, snackBar);\n }\n\n ngOnInit() {\n this.createForm();\n super.ngOnInit();\n }\n\n public async submit(): Promise<void> {\n this.submitted = true;\n if (!this.form.valid) { return; }\n\n this.userSettings.settings.user.modelKey = this.form.controls.activeModel.value.publicKey;\n await this.userSettings.apply();\n this.dialogRef.close();\n console.log(this.userSettings.settings.user.modelFilter);\n }\n\n private createForm(): void {\n this.form = this.formBuilder.group({\n activeModel: [{ value: null }]\n });\n };\n\n protected onDataUpdate(data: IResultsState) {\n this.models = data.factorScores.modelStructure.models;\n this.form.controls.activeModel.setValue(this.models.find(p => p.publicKey == data.userInfo.settings.user.modelKey) ?? this.models[0]);\n }\n}\n\n@Directive({\n selector: '[modelFilterDialog]',\n standalone: false\n})\nexport class OpenModelFilterDialog {\n constructor(private dialog: MatDialog) {\n }\n\n @HostListener('click')\n onClick(): void {\n const dialogConfig = new MatDialogConfig();\n dialogConfig.panelClass = ['dialog', 'modelfilter'];\n dialogConfig.autoFocus = false;\n dialogConfig.enterAnimationDuration = 0;\n dialogConfig.exitAnimationDuration = 0;\n this.dialog.open(DialogModelFilterComponent, dialogConfig);\n }\n}\n","<div class=\"dialog-header\" id=\"dialog-modelfilter\">\n <h1 mat-dialog-title>Switch evidence-based model</h1>\n <div class=\"close\" mat-dialog-close><i class=\"responsive icon ph-x-bold\"></i></div>\n</div>\n<mat-dialog-content>\n <form [formGroup]=\"form\" class=\"modelfilter\">\n <mat-form-field class=\"activeModel\" subscriptSizing=\"dynamic\">\n <mat-label>Select active model</mat-label>\n <mat-select class=\"activemodel-dropdown\" formControlName=\"activeModel\">\n @for (model of models; track model) {\n <mat-option class=\"select-option\" [value]=\"model\">{{model.name}} @if (model.isInBeta) {\n <span class=\"badge badge-beta\">beta</span>\n }</mat-option>\n }\n </mat-select>\n </mat-form-field>\n\n @if (form.controls.activeModel.value.description) {\n <p [innerHtml]=\"form.controls.activeModel.value.description\"></p>\n }\n\n <div class=\"toolbar\">\n <button class=\"button primary\" id=\"modelfilter-apply\" type=\"submit\" (click)=\"submit()\" [ngClass]=\"{'loading': sending }\">switch</button>\n <button class=\"button cancel\" id=\"modelfilter-cancel\" mat-dialog-close>cancel</button>\n </div>\n </form>\n</mat-dialog-content>\n","import { Component, Inject } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { ViewModelStateBase, VIEWSTATE_PROVIDER } from '../../../viewModel/viewModelState.service';\nimport { IResultsState } from '../../interfaces/IResultsState';\nimport { ModelDefinitionDto } from '../../../models/modelStructureDto';\n\n@Component({\n selector: 'model-switcher',\n templateUrl: './model-switcher.component.html',\n styleUrls: ['./model-switcher.component.less'],\n standalone: false\n})\nexport class ModelSwitcherComponent extends ComponentWithViewStateBase<IResultsState> {\n public modelDefinition: ModelDefinitionDto;\n public canSwitchModels: boolean;\n \n constructor(@Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IResultsState>, protected snackBar: MatSnackBar) {\n super(state, snackBar);\n }\n\n ngOnInit() {\n super.ngOnInit();\n }\n\n protected onDataUpdate(data: IResultsState): void {\n this.modelDefinition = data.factorScores.modelStructure.definition;\n this.canSwitchModels = data.factorScores.modelStructure.models.length > 1;\n };\n}\n","@if (canSwitchModels) {\n <div class=\"modelswitcher\" id=\"button-switchmodel\" modelFilterDialog>\n <div class=\"prefix\">model</div>\n <div class=\"activemodel\">{{modelDefinition.name}}<span class=\"icon ph-caret-down-bold\"></span></div>\n </div>\n}\n","import { Component, HostBinding, HostListener, Input, OnDestroy, OnInit } from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { BrandingProvider, PaletteItem } from '../../../branding/brandingProvider.service';\n\n@Component({\n selector: 'nav-button',\n templateUrl: './nav-button.component.html',\n styleUrls: ['./nav-button.component.less'],\n standalone: false\n})\nexport class NavButtonComponent implements OnInit, OnDestroy {\n public hover: boolean;\n public active: boolean;\n public accentColor: string;\n private paletteItems: PaletteItem[] = [];\n private subscription: Subscription;\n @Input() routerLink: string[];\n @Input() url: string;\n @Input() icon: string;\n @Input() name: string;\n @Input() alertCount: number;\n @HostBinding('style.background-color') backgroundColor: string;\n @HostBinding('style.color') color: string;\n @HostListener('mouseover') mouseover() {\n this.hover = true;\n }\n @HostListener('mouseleave') mouseleave() {\n this.hover = false;\n }\n\n constructor(private router: Router, private brandingProvider: BrandingProvider) {\n this.router.events.pipe(filter(e => e instanceof NavigationEnd))\n .subscribe((navEnd: NavigationEnd) => {\n this.isUrlSame(navEnd.urlAfterRedirects);\n });\n\n this.subscription = this.brandingProvider.changed.subscribe(success => {\n this.paletteItems = success;\n this.setColor();\n });\n }\n\n private isUrlSame(currentUrl: string): void {\n if (!currentUrl || !this.routerLink) { this.active = false; return; }\n var routeUrl = this.routerLink.join(\"/\").replace(\"//\", \"/\");\n this.active = this.router.isActive(routeUrl, true);\n }\n\n public ngOnInit() {\n this.isUrlSame(this.router.url);\n this.paletteItems = this.brandingProvider.palette;\n this.setColor();\n }\n\n private setColor() {\n if (this.paletteItems == null) { return; }\n var paletteItem = this.paletteItems.find(p => p.key == \"accent\");\n if (paletteItem == null) {\n console.log(\"Can't find color for Palette Key [Accent]\");\n }\n else {\n this.accentColor = paletteItem.hex;\n }\n }\n\n public ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n","@if (routerLink) {\n <div class=\"brandeditem\" [routerLink]=\"routerLink\" [style.background-color]=\"active ? accentColor : null\">\n @if (alertCount > 0) {\n <div class=\"counter\">{{alertCount}}</div>\n }\n <span class=\"icon\" [ngClass]=\"icon\" [style.color]=\"hover ? (active ? '#2f2f2f' : accentColor) : (active ? '#2f2f2f' : null) \"></span>\n <a [routerLink]=\"routerLink\" [style.color]=\"hover ? (active ? '#2f2f2f' : accentColor) : (active ? '#2f2f2f' : null)\">{{name}}</a>\n </div>\n}\n@if (url) {\n <a class=\"brandeditem\" [href]=\"url\" [style.background-color]=\"active ? accentColor : null\">\n <span class=\"icon\" [ngClass]=\"icon\" [style.color]=\"hover ? (active ? '#2f2f2f' : accentColor) : (active ? '#2f2f2f' : null) \"></span>\n <a [href]=\"url\" [style.color]=\"hover ? (active ? '#2f2f2f' : accentColor) : (active ? '#2f2f2f' : null)\">{{name}}</a>\n </a>\n}\n@if (!url && !routerLink) {\n <div class=\"brandeditem\" [style.background-color]=\"active ? accentColor : null\">\n <span class=\"icon\" [ngClass]=\"icon\" [style.color]=\"hover ? (active ? '#2f2f2f' : accentColor) : (active ? '#2f2f2f' : null) \"></span>\n <a [style.color]=\"hover ? (active ? '#2f2f2f' : accentColor) : (active ? '#2f2f2f' : null)\">{{name}}</a>\n </div>\n}\n","import { Clipboard } from '@angular/cdk/clipboard';\nimport { Component, Inject } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { ViewModelStateBase, VIEWSTATE_PROVIDER } from '../../../viewModel/viewModelState.service';\nimport { IResultsState, ITeamReportResultsState } from '../../interfaces/IResultsState';\nimport { FactorScoreCollectionCompositionSegmentDto } from '../../models/factorScoreDto';\n\n@Component({\n selector: 'participants',\n templateUrl: './participants.component.html',\n styleUrls: ['./participants.component.less'],\n standalone: false\n})\nexport class ParticipantsComponent extends ComponentWithViewStateBase<IResultsState> {\n public teamInviteUrl: string;\n public supporterInviteUrl: string;\n public stakeholderInviteUrl: string;\n public stakeholderUrlCopied: boolean;\n public teamUrlCopied: boolean;\n public supporterUrlCopied: boolean;\n public population: number;\n public participationRate: number;\n public invitationGoal: number;\n public closed: Date;\n public populationSegments: FactorScoreCollectionCompositionSegmentDto[];\n\n constructor(@Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<ITeamReportResultsState>, protected snackBar: MatSnackBar, private clipboard: Clipboard) {\n super(state, snackBar);\n }\n\n public copyTeamInviteLink(): void {\n this.clipboard.copy(this.teamInviteUrl);\n this.teamUrlCopied = true;\n this.snackBar.open('We copied the link to invite team members to your clipboard', null, { duration: 3000 });\n setTimeout(() => {\n this.teamUrlCopied = false;\n }, 2000);\n }\n\n public copyStakeholderInviteLink(): void {\n this.clipboard.copy(this.stakeholderInviteUrl);\n this.stakeholderUrlCopied = true;\n this.snackBar.open('We copied the link to invite stakeholders to your clipboard', null, { duration: 3000 });\n setTimeout(() => {\n this.stakeholderUrlCopied = false;\n }, 2000);\n }\n\n public copySupporterInviteLink(): void {\n this.clipboard.copy(this.supporterInviteUrl);\n this.supporterUrlCopied = true;\n this.snackBar.open('We copied the link to invite supporters to your clipboard', null, { duration: 3000 });\n setTimeout(() => {\n this.supporterUrlCopied = false;\n }, 2000);\n }\n\n public segmentName(type: string): string {\n switch (type.toLowerCase()) {\n case \"teammember\":\n return \"Team members\";\n case \"stakeholder\":\n return \"Stakeholders\";\n case \"supporter\":\n return \"Supporters\";\n }\n }\n\n protected onDataUpdate(data: ITeamReportResultsState): void {\n this.populationSegments = data.factorScores.composition.segments;\n this.population = data.factorScores.composition.population;\n this.closed = data.snapshotMetaData.closed;\n this.participationRate = data.factorScores.participationRate.percentage;\n this.invitationGoal = data.snapshotMetaData.invitationGoal;\n\n if (data.snapshotMetaData.inviteUrls.TeamMember) {\n this.teamInviteUrl = data.snapshotMetaData.inviteUrls.TeamMember;\n }\n if (data.snapshotMetaData.inviteUrls.Stakeholder) {\n this.stakeholderInviteUrl = data.snapshotMetaData.inviteUrls.Stakeholder;\n }\n if (data.snapshotMetaData.inviteUrls.Supporter) {\n this.supporterInviteUrl = data.snapshotMetaData.inviteUrls.Supporter;\n }\n };\n}\n","<div class=\"wirebox\">\n <div class=\"top\">\n <h3>{{population}} Participants</h3>\n </div>\n\n <div class=\"content\">\n <div class=\"segments\">\n @for (segment of populationSegments; track segment) {\n <div class=\"segment\">\n {{segmentName(segment.name)}} <span class=\"digit\">{{segment.occurances}}</span>\n </div>\n }\n @if (invitationGoal > 0) {\n <div class=\"segment\">\n Participation goal <span class=\"icon ph-info-fill\" [matTooltip]=\"'The percentage of people that participated from those expected/invited. To change the goal, update the \\'participation goal\\'-field when editting this snapshot in the Dashboard (Professional plan).'\"></span><span class=\"digit\">{{invitationGoal}} ({{participationRate}}%)</span>\n </div>\n }\n </div>\n\n @if (closed) {\n <div class=\"closed message\"><span class=\"icon ph-lock\"></span> The survey for this report was closed at {{closed | date :'mediumDate'}}. Still want to participate? Contact the person who invited the team to re-open it.</div>\n }\n\n @if (teamInviteUrl && !closed) {\n <div class=\"invitebox\">\n <h4>Invite team members <span class=\"icon ph-info-fill\" [matTooltip]=\"'Share this link with the members of the team. This typically includes roles such as Scrum Masters, Team Leads and Product Owners. Each member receives a personalized report that shows their personal scores (only visible to them) and team scores. Team scores are updated every time someone participates.'\"></span></h4>\n <div class=\"url\">\n <input type=\"text\" [value]=\"teamInviteUrl\" />\n <span [class]=\"'clipboard ' + (teamUrlCopied ? 'ph-clipboard-text' : 'ph-clipboard')\" (click)=\"copyTeamInviteLink()\"></span>\n </div>\n </div>\n }\n\n @if (stakeholderInviteUrl && !closed) {\n <div class=\"invitebox\">\n <h4>Invite stakeholders (customers, users) <span class=\"icon ph-info-fill\" [matTooltip]=\"'Share this link with the stakeholders of your team. These are the people who are best capable to evaluate the quality of what a team produces and have a clear stake in it, such as customers, end-users and investors. We ask them to evaluate the outcomes of what a team deliver to them. They do not receive any results, but a team can do so afterward.'\"></span></h4>\n <div class=\"url\">\n <input type=\"text\" [value]=\"stakeholderInviteUrl\" />\n <span [class]=\"'clipboard ' + (stakeholderUrlCopied ? 'ph-clipboard-text' : 'ph-clipboard')\" (click)=\"copyStakeholderInviteLink()\"></span>\n </div>\n </div>\n }\n\n @if (supporterInviteUrl && !closed) {\n <div class=\"invitebox\">\n <h4>Invite supporters (managers, coaches, leaders) <span class=\"icon ph-info-fill\" [matTooltip]=\"'Share this link with the people who support your team but do not work as part of it. This includes managers, coaches and people in a leadership position. We ask supporters to evaluate their support for your team. They dont receive any results, but a team can do so afterward.'\"></span></h4>\n <div class=\"url\">\n <input type=\"text\" [value]=\"supporterInviteUrl\" />\n <span [class]=\"'clipboard ' + (supporterUrlCopied ? 'ph-clipboard-text' : 'ph-clipboard')\" (click)=\"copySupporterInviteLink()\"></span>\n </div>\n </div>\n }\n </div>\n <div class=\"bottom\">\n </div>\n</div>\n\n","import { DatePipe } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { FactorScoreDto } from '../../models/factorScoreDto';\n\n@Component({\n selector: 'result-indicator',\n templateUrl: './result-indicator.component.html',\n styleUrls: ['./result-indicator.component.less'],\n standalone: false\n})\nexport class ResultIndicatorComponent {\n public qualification: string;\n public result: number;\n @Input() public factorScore: FactorScoreDto;\n\n constructor() {\n }\n\n ngOnInit() {\n this.result = this.factorScore.score;\n this.qualification = this.factorScore.qualification;\n }\n}\n","@if (qualification == 'Positive') {\n <span [class]=\"'delta up'\" [matTooltip]=\"'This is the score achieved on this factor'\">{{result}}</span>\n}\n@if (qualification == 'Negative') {\n <span [class]=\"'delta down'\" [matTooltip]=\"'This is the score achieved on this factor'\">{{result}}</span>\n}\n@if (qualification == 'Neutral') {\n <span [class]=\"'delta same'\" [matTooltip]=\"'This is the score achieved on this factor'\">{{result}}</span>\n}\n","import { Component, Inject, Input } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { Router } from '@angular/router';\nimport { IActionState } from '../../../actions/interfaces/IActionState';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { FactorStructureDto, ModelStructureDto } from '../../../models/modelStructureDto';\nimport { VIEWSTATE_PROVIDER, ViewModelStateBase } from '../../../viewModel/viewModelState.service';\nimport { IResultsState } from '../../interfaces/IResultsState';\nimport { BenchmarkTypeEnum, EffectTypeEnum, FactorEffectDto, FactorScoreCollectionDeltaDto, FactorScoreDto, FeedbackResourceDto, QualifiedByEnum } from '../../models/factorScoreDto';\n\n@Component({\n selector: 'recommendation',\n templateUrl: './recommendation.component.html',\n styleUrls: ['./recommendation.component.less'],\n standalone: false\n})\nexport class RecommendationComponent extends ComponentWithViewStateBase<IActionState> {\n @Input() item: FactorScoreDto;\n public howToImproveExpanded: boolean;\n public researchExpanded: boolean;\n public recommendations: FactorScoreDto[];\n public resources: FeedbackResourceDto[];\n public index: number;\n public definition: string;\n public influences: FactorEffectDto[];\n public predictors: FactorEffectDto[];\n public delta: FactorScoreCollectionDeltaDto;\n public qualifiedBy: QualifiedByEnum;\n public model: ModelStructureDto;\n public benchmarkAvailable: boolean;\n\n constructor(@Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IResultsState>, protected snackBar: MatSnackBar, private router: Router) {\n super(state, snackBar);\n }\n\n public ngOnInit() {\n super.ngOnInit();\n this.influences = this.item.effects.filter(p => p.type == EffectTypeEnum.predicts);\n this.predictors = this.item.effects.filter(p => p.type == EffectTypeEnum.isPredictedby || p.type == EffectTypeEnum.isPartOf);\n this.resources = this.item.recommendation.resources;\n this.index = this.recommendations.indexOf(this.item) + 1;\n }\n\n public getFactor(factorKey: string): FactorStructureDto {\n var factor = this.model.definition.factors.find(p => p.publicKey == factorKey);\n return factor;\n }\n\n protected onDataUpdate(data: IResultsState): void {\n this.recommendations = data.factorScores.factorScores.filter(p => p.recommendation.available).sort((a, b) => a.impact > b.impact ? -1 : 1);\n this.delta = data.factorScores.delta;\n this.qualifiedBy = data.factorScores.processingData.qualifiedBy;\n this.model = data.factorScores.modelStructure;\n this.benchmarkAvailable = data.factorScores.benchmark.type !== BenchmarkTypeEnum.NoBenchmark;\n };\n}\n","<div [ngClass]=\"['wirebox', 'tip', 'index' + index]\" [attr.id]=\"'tip-' + item.key\">\n <div class=\"top\">\n <div class=\"name\">\n <div class=\"index\">{{index}}</div><h3>Invest in \"{{item.name}}\"</h3>\n </div>\n <div class=\"summary\" [innerHtml]=\"item.recommendation.summary\"></div>\n <div class=\"deltas\">\n <div class=\"delta-item\">result <result-indicator [factorScore]=\"item\"></result-indicator></div>\n @if (benchmarkAvailable) {\n <div class=\"delta-item\">benchmark <benchmark-indicator [factorScore]=\"item\"></benchmark-indicator></div>\n }\n @if (delta.available) {\n <div class=\"delta-item\">previous period <delta-arrow [factorScore]=\"item\" [delta]=\"delta\"></delta-arrow></div>\n }\n <div class=\"delta-item\">impact <impact-indicator [factorScore]=\"item\"></impact-indicator></div>\n </div>\n </div>\n @if (item.recommendation.research) {\n <div class=\"bottom insightsfromresearch\">\n <div class=\"titleandaction\" (click)=\"researchExpanded = !researchExpanded\">\n <h3>Insights from research</h3>\n @if (researchExpanded) {\n <div class=\"unexpand action\">\n <span class=\"icon ph-minus-bold\"></span>\n </div>\n }\n @if (!researchExpanded) {\n <div class=\"expand action\">\n <span class=\"icon ph-plus-bold\"></span>\n </div>\n }\n </div>\n @if (researchExpanded) {\n <div class=\"research\">\n <div class=\"chunk summary\" [innerHtml]=\"item.recommendation.research\"></div>\n </div>\n }\n </div>\n }\n <div class=\"bottom howtoimprove\">\n <div class=\"titleandaction\" (click)=\"howToImproveExpanded = !howToImproveExpanded\">\n <h3>How to improve</h3>\n @if (howToImproveExpanded) {\n <div class=\"unexpand action\">\n <span class=\"icon ph-minus-bold\"></span>\n </div>\n }\n @if (!howToImproveExpanded) {\n <div class=\"expand action\" >\n <span class=\"icon ph-plus-bold\"></span>\n </div>\n }\n </div>\n @if (howToImproveExpanded) {\n <div class=\"howtoimprove\">\n <div class=\"chunk summary\" [innerHtml]=\"item.recommendation.improve\"></div>\n <div class=\"chunk quicktips\">\n <p>Or try one or more quick actions with your team(s) to start small and simple:</p>\n <quicktips [dimensionKey]=\"item.key\"></quicktips>\n </div>\n @if (resources.length > 0) {\n <div class=\"chunk resources\">\n <p>Or try one or more of these do-it-yourself workshops with your team(s) to start improving in this area:</p>\n <doityourselfworkshops [resources]=\"resources\" [factorScore]=\"item\"></doityourselfworkshops>\n </div>\n }\n @if (predictors.length > 0) {\n <div class=\"chunk predictors\">\n <p>Or you can improve in this area by investing in:</p>\n @for (effect of predictors; track effect) {\n <ul>\n @if (effect.type == 'IsPartOf') {\n <li><a [routerLink]=\"[]\" factorInformationDialog [factor]=\"getFactor(effect.key)\">{{effect.name}}<span class=\"icon ph-info-fill\"></span></a>, which is an important part of {{item.name}}.</li>\n }\n @if (effect.type == 'IsPredictedBy') {\n <li><a [routerLink]=\"[]\" factorInformationDialog [factor]=\"getFactor(effect.key)\">{{effect.name}}<span class=\"icon ph-info-fill\"></span></a>, which creates better conditions for {{item.name}}.</li>\n }\n </ul>\n }\n </div>\n }\n @if (influences.length > 0) {\n <div class=\"chunk summary effects\">\n <p>When you are successful, you're likely to see additional improvements in:</p>\n @for (effect of influences; track effect) {\n <ul>\n <li><a [routerLink]=\"[]\" factorInformationDialog [factor]=\"getFactor(effect.key)\">{{effect.name}}<span class=\"icon ph-info-fill\"></span></a></li>\n </ul>\n }\n </div>\n }\n </div>\n }\n </div>\n</div>\n","import { Component, Inject, Input } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { Router, Scroll } from '@angular/router';\nimport { IActionState } from '../../../actions/interfaces/IActionState';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { DateRangeDto } from '../../../pipes/dateRange/ngx-dateRangeDto.model';\nimport { ViewModelStateBase, VIEWSTATE_PROVIDER } from '../../../viewModel/viewModelState.service';\nimport { IResultsState } from '../../interfaces/IResultsState';\nimport { FactorScoreCollectionDto, FactorScoreDto } from '../../models/factorScoreDto';\nimport { ModelStructureDto } from '../../../models/modelStructureDto';\n\n@Component({\n selector: 'recommendations',\n templateUrl: './recommendations.component.html',\n styleUrls: ['./recommendations.component.less'],\n standalone: false\n})\nexport class RecommendationsComponent extends ComponentWithViewStateBase<IActionState> {\n @Input() public limit: number;\n @Input() public skip: number = 0;\n public recommendations: FactorScoreDto[];\n public expanded: number;\n public factors: ModelStructureDto;\n public factorsCollection: FactorScoreCollectionDto;\n public deltaDateRange: DateRangeDto;\n\n constructor(@Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IResultsState>, protected snackBar: MatSnackBar, private router: Router) {\n super(state, snackBar);\n\n this.router.events.subscribe((event: any) => {\n if (event instanceof Scroll && event.anchor) {\n setTimeout(() => {\n this.scroll('#tip-' + event.anchor);\n }, this.recommendations != null ? 200 : 2000);\n }\n });\n }\n\n protected onDataUpdate(data: IResultsState): void {\n this.recommendations = data.factorScores.factorScores.filter(p => p.recommendation.available).sort((a, b) => a.impact > b.impact ? -1 : 1);\n if (this.limit > 0 || this.skip > 0) { this.recommendations = this.recommendations.slice(this.skip, this.limit == 0 ? 50 : this.limit); }\n\n this.factors = data.factorScores.modelStructure;\n this.deltaDateRange = data.factorScores.delta.dateRange;\n this.factorsCollection = data.factorScores;\n };\n\n private scroll(query: string) {\n const targetElement = document.querySelector(query);\n if (targetElement == null) { return; }\n targetElement.scrollIntoView();\n }\n}\n","<div class=\"tips\">\n @for (item of recommendations; track item) {\n <recommendation [item]=\"item\"></recommendation>\n }\n</div>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'research',\n templateUrl: './research.component.html',\n styleUrls: ['./research.component.less'],\n standalone: false\n})\nexport class ResearchComponent {\n constructor() {\n }\n\n ngOnInit() {\n }\n}\n","<div class=\"box research\" brandbackground [palette]=\"'neutral'\">\n <h3>Grounded in research</h3>\n <p>We believe we can best help teams and organizations by relying on robust, scientific evidence. This is why our questionnaires, models and recommendations are grounded in scientific research. Our science team continuously refines our models and recommendations as they analyze our dataset and publish in peer-reviewed academic journals.</p>\n <div class=\"link\">\n <a href=\"https://columinity.com/research\">Explore ></a>\n </div>\n</div>\n","import { Component, Inject } from '@angular/core';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { IResultsState } from '../../interfaces/IResultsState';\nimport { VIEWSTATE_PROVIDER, ViewModelStateBase } from '../../../viewModel/viewModelState.service';\nimport { MatSnackBar } from '@angular/material/snack-bar';\n\n@Component({\n selector: 'roadmap',\n templateUrl: './roadmap.component.html',\n styleUrls: ['./roadmap.component.less'],\n standalone: false\n})\nexport class RoadmapComponent extends ComponentWithViewStateBase<IResultsState> {\n public show: boolean;\n public subscribeUrl: string;\n\n constructor(@Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IResultsState>, protected snackBar: MatSnackBar) {\n super(state, snackBar)\n }\n\n protected onDataUpdate(data: IResultsState): void {\n this.show = data.userInfo.branding.isDefault;\n };\n}\n","@if (show) {\n <div class=\"roadmap\" brandbackground [palette]=\"'accent'\">\n <h3>Our roadmap</h3>\n <div class=\"feature\">\n <span class=\"icon ph-check-circle-fill\"></span> More Enterprise Features (MFA, SSO, potentially custom domains) (Q1)\n </div>\n <div class=\"feature\">\n <span class=\"icon ph-check-circle-fill\"></span> Introduce Lightweight Partner Program (Q1-2)\n </div>\n <div class=\"feature\">\n <span class=\"icon ph-check-circle-fill\"></span> Add basic API for select Enterprise users (Q3)\n </div>\n <div class=\"feature\">\n <span class=\"icon ph-check-circle-fill\"></span> Introduce new models (in progress, Q1-2)\n </div>\n <div class=\"feature\">\n <span class=\"icon ph-check-circle-fill\"></span> Expand with process measures (Q4)\n </div>\n <div class=\"feature\">\n <span class=\"icon ph-circle\"></span> Simplify Team Report (Q1)\n </div>\n <div class=\"feature\">\n <span class=\"icon ph-circle\"></span> Transition Teamwork Model Out Of Beta (Q1)\n </div>\n </div>\n}\n","import { Component, Inject } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { VIEWSTATE_PROVIDER, ViewModelStateBase } from '../../../viewModel/viewModelState.service';\nimport { IResultsState, ITeamReportResultsState } from '../../interfaces/IResultsState';\nimport { BenchmarkTypeEnum } from '../../models/factorScoreDto';\n\n@Component({\n selector: 'teameffectiveness',\n templateUrl: './teameffectiveness.component.html',\n styleUrls: ['./teameffectiveness.component.less'],\n standalone: false\n})\nexport class TeamEffectivenessComponent extends ComponentWithViewStateBase<IResultsState> {\n public score: number;\n public benchmarkScore: number;\n public benchmarkUpperQuartile: number;\n public qualification: string;\n public showTeamScore: boolean;\n private teamEffectivenessKey: string = \"15fb94d2-992c-47db-a087-7443ce277e64\";\n\n constructor(@Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<ITeamReportResultsState>, protected snackBar: MatSnackBar) {\n super(state, snackBar)\n }\n\n protected onDataUpdate(data: ITeamReportResultsState): void {\n this.loaded = data.loaded;\n var currentFactor = data.factorScores.factorScores.find(p => p.key == this.teamEffectivenessKey);\n\n if (currentFactor != null) {\n this.score = currentFactor.score;\n this.benchmarkScore = currentFactor.benchmark;\n this.qualification = currentFactor.qualification;\n }\n else {\n this.score = 0;\n }\n };\n}\n","@if (score != 0) {\n <div class=\"box teameffectiveness\" brandbackground [palette]=\"'theme'\">\n <h3>Team Effectiveness Score</h3>\n <div [class]=\"'progressbar progressbar-inverted progressbar-yourteam progressbar-inverted-' + qualification | lowercase\" [matTooltip]=\"'Whether you call it experience or maturity, we believe that teams are effective when they deliver value to stakeholders and when morale is high. This is the score for your team.'\">\n <div class=\"progressbar-bar\" [style]=\"'width: ' + score + '%'\"></div>\n <div class=\"progressbar-label\">your team</div>\n <div class=\"progressbar-score\">{{score | number:'1.0-0'}}\n </div>\n </div>\n @if (benchmarkScore > 0) {\n <div [class]=\"'progressbar progressbar-inverted progressbar-benchmark'\">\n <div class=\"progressbar-bar\" [matTooltip]=\"'This is the upper range of what most teams in your benchmark score'\" [style]=\"'width: ' + benchmarkScore + '%'\"></div>\n <div class=\"progressbar-label\">teams in benchmark</div>\n <div class=\"progressbar-score\">{{benchmarkScore | number:'1.0-0' }}</div>\n </div>\n }\n </div>\n}\n\n\n","import { HttpClient } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ApiConfig } from '../../apiUrlToken';\n\n@Injectable()\nexport class TermsService {\n private baseUrl: string;\n\n constructor(private http: HttpClient, @Inject(ApiConfig) private config: ApiConfig) {\n this.baseUrl = config.get().apiUrl;\n }\n\n public accept(): Observable<any> {\n return this.http.post(this.baseUrl + 'terms', null);\n }\n}\n","import { Component, Inject } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { LegalDto } from '../../../models/clientInfoDto';\nimport { ViewModelStateBase, VIEWSTATE_PROVIDER } from '../../../viewModel/viewModelState.service';\nimport { IResultsState } from '../../interfaces/IResultsState';\nimport { TermsService } from '../../services/terms.service';\n\n@Component({\n selector: 'termsupdated',\n templateUrl: './termsupdated.component.html',\n styleUrls: ['./termsupdated.component.less'],\n standalone: false\n})\nexport class TermsUpdatedComponent extends ComponentWithViewStateBase<IResultsState> {\n public legal: LegalDto;\n public termsUpdated: boolean;\n public sending: boolean;\n\n constructor(private termsService: TermsService, @Inject(VIEWSTATE_PROVIDER) protected state: ViewModelStateBase<IResultsState>, protected snackBar: MatSnackBar) {\n super(state, snackBar)\n }\n\n public async accept() {\n this.sending = true;\n await this.termsService.accept().subscribe(success => {\n this.showSuccess(\"Terms of service accepted\");\n this.sending = false;\n })\n }\n\n protected onDataUpdate(data: IResultsState): void {\n this.legal = data.userInfo.client.legal;\n };\n}\n","<div class=\"termsupdated\">\n <h3>Updated terms of service</h3>\n <p> Before you can continue, we'd like you to review and accept our terms of service. They outline how we protect personal data in compliance with the European General Data Protection Directive (GDPR). They also outline our mutual responsibilities:</p>\n <ol>\n @for (document of legal.documents; track document) {\n <li><a [href]=\"document.url\" target=\"_blank\">{{document.name}} <span class=\"icon ph-arrow-square-out\"></span></a></li>\n }\n </ol>\n <div class=\"toolbar\">\n <button class=\"button primary acceptterms\" (click)=\"accept()\" [ngClass]=\"{'loading': sending}\"><span class=\"icon ph-check-circle\"></span> Accept and continue</button>\n </div>\n</div>\n","import { DateRangeDto } from \"../../pipes/dateRange/ngx-dateRangeDto.model\";\nimport { DeltaPeriodEnum, IncludeActionsModeEnum } from \"./factorScoreDto\";\n\nexport class TrendDataRequestDto {\n type: string;\n teamKey: string;\n clientKey: string;\n teamKeys: string[];\n clientKeys: string[];\n includeSpread: boolean;\n dateRange: DateRangeDto;\n factorKeys: string[];\n periodGrouping: DeltaPeriodEnum;\n includeActions: IncludeActionsModeEnum;\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { ApiConfig } from '../../apiUrlToken';\nimport { TrendDataSetDto } from '../models/dataSetDto';\nimport { TrendDataRequestDto } from '../models/trendDataRequestDto.model';\n\n@Injectable()\nexport class TrendService {\n private baseUrl: string;\n\n constructor(private http: HttpClient, @Inject(ApiConfig) private config: ApiConfig) {\n this.baseUrl = config.get().apiUrl;\n }\n\n team(request: TrendDataRequestDto) {\n return this.http.post<TrendDataSetDto>(this.baseUrl + 'trends', request);\n }\n}\n","import { Component, ElementRef, Inject, Input, ViewChild } from '@angular/core';\nimport { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ActivatedRoute } from '@angular/router';\nimport { LegendPosition } from '@swimlane/ngx-charts';\nimport * as moment from 'moment';\nimport { take } from 'rxjs/operators';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { SelectItem } from '../../../models/selectListItem';\nimport { DateRangeDto } from '../../../pipes/dateRange/ngx-dateRangeDto.model';\nimport { ViewModelStateBase, VIEWSTATE_PROVIDER } from '../../../viewModel/viewModelState.service';\nimport { IResultsState } from '../../interfaces/IResultsState';\nimport { DeltaPeriodEnum, IncludeActionsModeEnum } from '../../models/factorScoreDto';\nimport { TrendDataRequestDto } from '../../models/trendDataRequestDto.model';\nimport { FactorService } from '../../services/factorService';\nimport { TrendService } from '../../services/trend.service';\n\n@Component({\n selector: 'trends',\n templateUrl: './trends.component.html',\n styleUrls: ['./trends.component.less'],\n standalone: false\n})\nexport class TrendsComponent extends ComponentWithViewStateBase<IResultsState> {\n @Input() public units: SelectItem[];\n @Input() public unitType: string;\n @ViewChild(\"chartcontainer\") public chartContainer: ElementRef<HTMLDivElement>\n public factors: SelectItem[];\n public data: any[];\n public generatorNotes: string[] = [];\n public loading: boolean = false;\n public form: UntypedFormGroup;\n public view: [number, number];\n public legendPosition: LegendPosition = LegendPosition.Below;\n public customColors = [];\n\n public periodGroupings: SelectItem[] = [\n new SelectItem(DeltaPeriodEnum.previousMonth, \"1 month\"),\n new SelectItem(DeltaPeriodEnum.previousQuarter, \"3 months\"),\n new SelectItem(DeltaPeriodEnum.previousHalfYear, \"6 months\"),\n new SelectItem(DeltaPeriodEnum.previousYear, \"12 months\")\n ]\n public includeActionOptions: SelectItem[] = [\n new SelectItem(IncludeActionsModeEnum.includeAll, \"All actions\"),\n new SelectItem(IncludeActionsModeEnum.includeRelevant, \"Actions with expected impact\"),\n new SelectItem(IncludeActionsModeEnum.none, \"None\")\n ]\n\n constructor(private formBuilder: UntypedFormBuilder, protected snackBar: MatSnackBar, private factorService: FactorService, private trendService: TrendService, protected route: ActivatedRoute, @Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IResultsState>) {\n super(state, snackBar);\n this.createForm();\n }\n\n public ngOnInit() {\n super.ngOnInit();\n this.form.controls.unitKey.setValue([this.units[0]]);\n this.form.controls.includeActions.setValue(\"IncludeAll\");\n this.form.controls.periodGrouping.setValue(\"PreviousQuarter\");\n this.form.controls.start.setValue(moment.utc().subtract(1, 'years').toISOString());\n this.form.controls.end.setValue(moment.utc().toISOString());\n }\n\n public onFormSubmit() {\n if (!this.form.valid) { return; }\n this.loading = true;\n\n var dataRequest: TrendDataRequestDto = new TrendDataRequestDto();\n\n if (this.unitType == \"team\") {\n dataRequest.teamKeys = this.form.controls.unitKey.value.map(p => p.value);\n }\n else if (this.unitType = \"organization\") {\n dataRequest.clientKeys = this.form.controls.unitKey.value.map(p => p.value);\n }\n\n dataRequest.factorKeys = this.form.controls.factorKeys.value.map(p => p.value);\n dataRequest.periodGrouping = this.form.controls.periodGrouping.value;\n dataRequest.dateRange = new DateRangeDto();\n dataRequest.dateRange.from = this.form.controls.start.value;\n dataRequest.dateRange.to = this.form.controls.end.value;\n dataRequest.includeActions = this.form.controls.includeActions.value;\n dataRequest.includeSpread = true;\n\n this.trendService.team(dataRequest).pipe(take(1))\n .subscribe(\n success => {\n this.data = success.variables;\n this.customColors = success.variables.filter(p => p.color != null).map(p => { return { name: p.name, value: p.color } });\n\n for (let item of this.data) {\n for (let s of item.series) {\n s.name = new Date(s.name)\n }\n }\n\n this.generatorNotes = success.generatorNotes;\n this.loading = false;\n this.onResize();\n });\n }\n\n public onResize() {\n if (!this.chartContainer) { return; }\n this.view = [this.chartContainer.nativeElement.offsetWidth - 80, 450];\n }\n\n private createForm(): void {\n this.form = this.formBuilder.group({\n unitKey: [\"\", Validators.required],\n factorKeys: [\"\", Validators.required],\n includeActions: [\"\", Validators.required],\n periodGrouping: [{ value: \"\" }, Validators.required],\n start: [{ value: \"\" }, Validators.required],\n end: [{ value: \"\" }, Validators.required],\n });\n };\n\n public compareFactorOptions(o1: SelectItem, o2: SelectItem) {\n if (o1.value == o2.value)\n return true;\n else return false\n }\n\n protected onDataUpdate(data: IResultsState): void {\n this.factors = this.factorService.toSelectList(data.factorScores.modelStructure);\n var coreFactors = data.factorScores.modelStructure.definition.factors.filter(p => p.name == \"Team Effectiveness\").map(p => new SelectItem(p.publicKey, p.name));\n this.form.controls.factorKeys.setValue(coreFactors);\n };\n}\n","\n\n<div class=\"message message-information\">\n <span class=\"ph-info icon\"></span> This chart shows how factors change over time. The horizontal axis shows the time. The vertical axis shows the weighted average score on the factor. The light area around the lines represents the spread of scores (lower and upper 15% of scores). We summarize results for one or more teams and from one or more organizations to the periods you chose (1 month, quarter, etc). For each period, we take the most recent snapshot of each team in that period (when available). Hit \"Show Trends\" when you're ready.\n</div>\n\n<form [formGroup]=\"form\" class=\"dataselector\" (ngSubmit)=\"onFormSubmit()\">\n <div class=\"listtoolbar\" id=\"listtoolbar\">\n @if (units.length > 1) {\n <mat-form-field class=\"listtoolbar-item select\" appearance=\"fill\">\n <mat-label>Select {{unitType}}</mat-label>\n <mat-select formControlName=\"unitKey\" id=\"select-units\" class=\"unitKey\" multiple [disabled]=\"units.length == 1\">\n @for (unit of units; track unit) {\n <mat-option class=\"select-option\" [value]=\"unit\">{{unit.label}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n\n <mat-form-field class=\"listtoolbar-item select\" appearance=\"fill\">\n <mat-label>Select factors</mat-label>\n <mat-select formControlName=\"factorKeys\" id=\"select-factors\" class=\"factorKeys\" multiple [compareWith]=\"compareFactorOptions\">\n @for (factor of factors; track factor) {\n <mat-option class=\"select-option\" [ngClass]=\"{'lower' : factor.lower}\" [value]=\"factor\" selected=\"true\">{{factor.label}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"listtoolbar-item select\" appearance=\"fill\">\n <mat-label>Summarize to periods of</mat-label>\n <mat-select class=\"periodGrouping-dropdown\" id=\"select-periodGrouping\" formControlName=\"periodGrouping\">\n @for (item of periodGroupings; track item) {\n <mat-option class=\"select-option\" [value]=\"item.value\">{{item.label}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"listtoolbar-item select\" appearance=\"fill\">\n <mat-label>Action count</mat-label>\n <mat-select class=\"selectactions-dropdown\" id=\"select-includeActions\" formControlName=\"includeActions\">\n @for (item of includeActionOptions; track item) {\n <mat-option class=\"select-option\" [value]=\"item.value\" class=\"select-option\">{{item.label}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"listtoolbar-item select\" appearance=\"fill\">\n <mat-label>Select date range </mat-label>\n <mat-date-range-input [rangePicker]=\"picker\" id=\"select-daterange\">\n <input matStartDate formControlName=\"start\" placeholder=\"Start date\">\n <input matEndDate formControlName=\"end\" placeholder=\"End date\">\n </mat-date-range-input>\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-date-range-picker #picker></mat-date-range-picker>\n\n @if (form.controls.start.hasError('matStartDateInvalid')) {\n <mat-error>Invalid start date</mat-error>\n }\n @if (form.controls.end.hasError('matEndDateInvalid')) {\n <mat-error>Invalid end date</mat-error>\n }\n </mat-form-field>\n\n <div class=\"listtoolbar-item\">\n <button class=\"button primary\" id=\"button-showtrends\" [ngClass]=\"{'loading': loading}\"><span class=\"ph-funnel\"></span> Show trends</button>\n </div>\n </div>\n</form>\n\n@if (generatorNotes.length > 0) {\n <div class=\"message message-warning\">\n <div class=\"ph-warning icon\"></div> {{generatorNotes[0]}}\n </div>\n}\n\n@if (!data) {\n <div class=\"wirebox calltoaction nodata\">\n <div class=\"contentwithborders\">\n <div class=\"center\">\n <img src=\"assets/img/improve.png\" />\n <h2>Are you actually improving?</h2>\n <p>Learn if your improvements are actually working out. Take more measurements and plot the trends for your {{unitType}}(s). How is that for empiricism?</p>\n </div>\n </div>\n </div>\n}\n\n<div #chartcontainer class=\"linechart\">\n @if (data) {\n <div class=\"linechart-container\">\n <ngx-charts-line-chart [legend]=\"true\"\n (window:resize)=\"onResize()\"\n [view]=\"view\"\n [showXAxisLabel]=\"true\"\n [showYAxisLabel]=\"true\"\n [xAxis]=\"true\"\n [scheme]=\"'vivid'\"\n [yAxis]=\"true\"\n [legendPosition]=\"legendPosition\"\n [xAxisLabel]=\"'Date'\"\n [yAxisLabel]=\"'Score'\"\n [timeline]=\"true\"\n [yScaleMin]=\"0\"\n [yScaleMax]=\"100\"\n [rangeFillOpacity]=\"0.1\"\n [results]=\"data\"\n [customColors]=\"customColors\">\n </ngx-charts-line-chart>\n </div>\n }\n</div>\n","import { Component, Inject } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { VIEWSTATE_PROVIDER, ViewModelStateBase } from '../../../viewModel/viewModelState.service';\nimport { IResultsState, ITeamReportResultsState } from '../../interfaces/IResultsState';\n\n@Component({\n selector: 'trynow-professional',\n templateUrl: './trynow-professional.component.html',\n styleUrls: ['./trynow-professional.component.less'],\n standalone: false\n})\nexport class TryNowProfessionalComponent extends ComponentWithViewStateBase<IResultsState> {\n public show: boolean;\n public subscribeUrl: string;\n\n constructor(@Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<ITeamReportResultsState>, protected snackBar: MatSnackBar) {\n super(state, snackBar)\n }\n\n protected onDataUpdate(data: ITeamReportResultsState): void {\n this.show = !data.isSubscriber && data.userInfo.branding.isDefault;\n this.subscribeUrl = data.userInfo.branding.channelSubscribeUrl;\n };\n}\n","@if (show) {\n <div class=\"box trynowprofessional\" brandbackground [palette]=\"'accent'\">\n <h3>Upgrade to Professional</h3>\n <p>Discover the full power of Columinity with <b>Professional</b>:</p>\n <ul>\n <li>Unlimited science-based recommendations.</li>\n <li>Access to the Teams Dashboard.</li>\n <li>Benchmarks per ndustry/size/region.</li>\n <li>Pull metrics from JIRA, Azure DevOps, etc.</li>\n <li>Secure access with user accounts.</li>\n <li>Aggregate results from many teams.</li>\n <li>Set up repeat scans easily.</li>\n <li>Access to advanced results.</li>\n </ul>\n <div class=\"message message-black\"><span class=\"icon ph-smiley-fill\"></span><span>Use the coupon <b>TRYPRO</b> to pay &euro;1,- for the first team on your monthly Professional plan.</span></div>\n <div class=\"link\">\n <a [href]=\"subscribeUrl\" target=\"_blank\">Try now ></a>\n </div>\n </div>\n}\n\n\n","import { Component, Inject } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { Subscription } from 'rxjs';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { ViewModelStateBase, VIEWSTATE_PROVIDER } from '../../../viewModel/viewModelState.service';\nimport { IResultsState, ITeamReportResultsState } from '../../interfaces/IResultsState';\n\n@Component({\n selector: 'update-in-progress',\n templateUrl: './update-in-progress.component.html',\n styleUrls: ['./update-in-progress.component.less'],\n standalone: false\n})\nexport class UpdateInProgressComponent extends ComponentWithViewStateBase<IResultsState> {\n public delayedReloading: boolean;\n private subscription: Subscription;\n\n constructor(@Inject(VIEWSTATE_PROVIDER) protected state: ViewModelStateBase<ITeamReportResultsState>, protected snackBar: MatSnackBar) {\n super(state, snackBar);\n }\n\n public ngOnInit(): void {\n this.subscription = this.state.updating.subscribe(reloaded => {\n this.delayedReloading = reloaded;\n });\n };\n\n public ngOnDestroy(): void {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n };\n}\n","@if (delayedReloading) {\n <div class=\"update-in-progress\">\n <span class=\"icon ph-floppy-disk-bold\"></span>\n </div>\n}\n","export class ClientInfoDto {\n name: string;\n subscriptionKey: string;\n activationCode: string;\n publicKey: string;\n aboutToExpire: boolean;\n metered: boolean;\n expires: Date;\n legal: LegalDto;\n teamsUsed: number;\n teamLimit: number;\n usersUsed: number;\n userLimit: number;\n}\n\nexport class LegalDto {\n accepted: Date;\n documents: LegalDocumentDto[];\n}\n\nexport class LegalDocumentDto {\n name: string;\n url: string;\n}\n","export class FeaturesDto {\n allowMFA: boolean;\n allowSSO: boolean;\n allowAPI: boolean;\n allowCustomDomain: boolean;\n allowBrandedPdfs: boolean;\n allowScaleSelection: boolean;\n allowMetrics: boolean;\n}\n","import { BrandingSettingsDto } from \"./brandingSettingsDto\";\nimport { ClientInfoDto } from \"./clientInfoDto\";\nimport { FeaturesDto } from \"./featuresDto\";\nimport { UserSettingsDto } from \"./userSettingsDto\";\n\nexport class UserInfoDto {\n constructor() {\n this.profile = new UserProfileDto();\n this.client = new ClientInfoDto();\n this.branding = new BrandingSettingsDto();\n this.settings = new UserSettingsDto();\n this.features = new FeaturesDto();\n }\n\n publicKey: string;\n isAdmin: boolean;\n isSubscriptionAdmin: boolean;\n isCoach: boolean;\n multipleEnvironments: boolean;\n features: FeaturesDto;\n settings: UserSettingsDto;\n branding: BrandingSettingsDto;\n client: ClientInfoDto;\n profile: UserProfileDto;\n}\n\nexport class UserProfileDto {\n name: string;\n email: string;\n avatarUrl: string;\n usesSSO: boolean;\n}\n\n","import { HttpClient } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ApiConfig } from '../../apiUrlToken';\nimport { UserProfileDto } from '../../models/userInfoDto';\n\n@Injectable()\nexport class UserProfileService {\n private baseUrl: string;\n\n constructor(private http: HttpClient, @Inject(ApiConfig) private config: ApiConfig) {\n this.baseUrl = config.get().apiUrl;\n }\n\n update(userProfile: UserProfileDto): Observable<any> { \n return this.http.put(this.baseUrl + 'userprofiles/commands', userProfile);\n }\n\n setAvatar(file: File): Observable<any> {\n const formData = new FormData();\n formData.append('file', file);\n return this.http.post(this.baseUrl + 'userprofiles/commands/avatar', formData, { observe: 'events', reportProgress: true });\n }\n\n clearAvatar(): Observable<any> {\n return this.http.delete(this.baseUrl + 'userprofiles/commands/avatar');\n }\n\n sendMFAEnrollment(): Observable<any> {\n return this.http.post(this.baseUrl + 'userprofiles/commands/enrollmfa/', { });\n }\n\n resetMFAEnrollment(): Observable<any> {\n return this.http.post(this.baseUrl + 'userprofiles/commands/resetmfa/', { });\n }\n\n createAPITokens(): Observable<any> {\n return this.http.post(this.baseUrl + 'userprofiles/commands/apitokens/', {});\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ApiConfig } from '../../apiUrlToken';\n\n@Injectable()\nexport class AccountService {\n private baseUrl: string;\n\n constructor(private http: HttpClient, @Inject(ApiConfig) private config: ApiConfig) {\n this.baseUrl = config.get().apiUrl;\n }\n\n sendResetPassword(email: string): Observable<any> {\n return this.http.post(this.baseUrl + 'account/resetpassword/', { email: email});\n }\n}\n","import { HttpEventType, HttpResponse } from '@angular/common/http';\nimport { Component, Inject } from '@angular/core';\nimport { FormGroupDirective, UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ActivatedRoute } from '@angular/router';\nimport { AuthService } from '@auth0/auth0-angular';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { UserProfileDto } from '../../../models/userInfoDto';\nimport { ViewModelStateBase, VIEWSTATE_PROVIDER } from '../../../viewModel/viewModelState.service';\nimport { IResultsState } from '../../interfaces/IResultsState';\nimport { UserProfileService } from '../../services/userProfile.service';\nimport { AccountService } from '../../services/account.service';\n\n@Component({\n selector: 'userprofile',\n templateUrl: './userprofile.component.html',\n styleUrls: ['./userprofile.component.less'],\n standalone: false\n})\nexport class UserProfileComponent extends ComponentWithViewStateBase<IResultsState> {\n public form: UntypedFormGroup;\n public loading: boolean = false;\n public userProfile: UserProfileDto;\n public changeAvatar: boolean;\n public color: string;\n public email: string;\n public usesMFA: boolean;\n public allowMFA: boolean;\n public allowPasswordChange: boolean;\n public showEmailInput: boolean;\n allowAPI: any;\n\n constructor(@Inject(VIEWSTATE_PROVIDER) protected state: ViewModelStateBase<IResultsState>, private authService: AuthService, private userProfileService: UserProfileService, private accountService: AccountService, private formBuilder: UntypedFormBuilder, protected snackbar: MatSnackBar, protected route: ActivatedRoute) {\n super(state, snackbar);\n this.createForm();\n this.authService.user$.subscribe(\n (profile) => {\n this.usesMFA = profile.use_mfa;\n this.email = profile.email;\n });\n }\n\n public ngOnInit() {\n super.ngOnInit();\n }\n\n private createForm(): void {\n this.form = this.formBuilder.group({\n name: [\"\", [Validators.required, Validators.maxLength(50)]],\n newEmail: [\"\", [Validators.required, Validators.email]]\n });\n };\n\n public async onSubmit(formDirective: FormGroupDirective) {\n if (!this.form.valid) { return; }\n this.loading = true;\n\n await this.authService.loginWithPopup({ authorizationParams: { max_age: 1 } }).subscribe(success => {\n var updateRequest = new UserProfileDto();\n updateRequest.name = this.form.controls.name.value;\n updateRequest.email = this.form.controls.newEmail.value;\n\n try {\n this.userProfileService.update(updateRequest).subscribe(success => {\n this.showSuccess(\"Your profile was updated\");\n });\n this.state.reload();\n }\n catch (ex: any) {\n this.form.controls.newEmail.setErrors({ alreadyExists: true });\n }\n }, error => {\n });\n\n this.loading = false;\n }\n\n public setChangeEmail() {\n this.showEmailInput = true;\n this.form.controls.newEmail.enable();\n }\n\n public uploadAvatar($fileInput: any): void {\n this.loading = true;\n const file = ($fileInput.target.files[0]);\n\n const reader = new FileReader();\n reader.onload = (e: any) => {\n if (file.type != \"image/png\" && file.type != \"image/jpeg\") {\n alert(\"The file must be a png or jpg file. You uploaded a file of type \" + file.type);\n this.loading = false;\n }\n\n const image = new Image();\n image.src = e.target.result;\n image.onload = rs => {\n const img_height = rs.currentTarget['height'];\n const img_width = rs.currentTarget['width'];\n\n if (img_height > 500 && img_width > 500) {\n alert(\"The logo is too large. Please limit to a picture of 500x500 pixels.\");\n this.loading = false;\n } else {\n this.userProfileService.setAvatar(file)\n .subscribe(event => {\n if (event.type === HttpEventType.UploadProgress) {\n } else if (event instanceof HttpResponse) {\n }\n });\n }\n };\n };\n\n reader.readAsDataURL(file);\n };\n\n public clearAvatar(): void {\n this.loading = true;\n this.userProfileService.clearAvatar()\n .subscribe(event => {\n this.loading = false;\n this.userProfile.avatarUrl = null;\n this.changeAvatar = false;\n });\n }; \n\n public sendPasswordReset() {\n this.loading = true;\n this.accountService.sendResetPassword(this.email).subscribe(\n success => {\n this.loading = false;\n super.showSuccess('We sent an e-mail to ' + this.email + ' to change your password');\n });\n }\n\n public sendMFAEnrollment() {\n this.loading = true;\n this.userProfileService.sendMFAEnrollment().subscribe(\n success => {\n this.loading = false;\n super.showSuccess('We sent an e-mail to ' + this.email + ' to set up your second factor (2FA)');\n });\n }\n\n public resetMFAEnrollment() {\n this.loading = true;\n this.userProfileService.resetMFAEnrollment().subscribe(\n success => {\n this.loading = false;\n super.showSuccess('Your second factor is cleared. If 2FA is required for your account, you now have to set up again. Otherwise you can leave it disabled.');\n setTimeout(() => {\n window.location.reload();\n }, 4000);\n });\n }\n\n public createAPITokens() {\n this.loading = true;\n this.userProfileService.createAPITokens().subscribe(\n success => {\n this.loading = false;\n super.showSuccess('We sent an e-mail to ' + this.email + ' with your API tokens.');\n });\n }\n\n protected onDataUpdate(data: IResultsState): void {\n this.loading = false;\n this.changeAvatar = false;\n this.userProfile = data.userInfo.profile;\n this.allowMFA = data.userInfo.features.allowMFA;\n this.allowAPI = data.userInfo.features.allowAPI && data.userInfo.isAdmin;\n this.form.controls.name.setValue(data.userInfo.profile.name);\n \n if (data.userInfo.profile.email) {\n this.showEmailInput = false;\n this.form.controls.newEmail.disable();\n }\n };\n}\n","<div class=\"form-profile\">\n <h2>My Profile</h2>\n <form class=\"form\" [formGroup]=\"form\" (ngSubmit)=\"onSubmit(formDirective)\" #formDirective=\"ngForm\">\n <div class=\"form-label\">Avatar</div>\n\n <div class=\"currentuserprofileavatar\">\n @if (userProfile.avatarUrl) {\n <div class=\"userprofileavatar\">\n @if (loading) {\n <div class=\"loading-icon small\"></div>\n }\n @if (!loading) {\n <img class=\"responsive\" [src]=\"userProfile.avatarUrl\" />\n }\n </div>\n }\n <div class=\"reupload\">\n @if (!changeAvatar && userProfile.avatarUrl) {\n <div class=\"button\" (click)=\"changeAvatar = true\">Change avatar</div>\n }\n @if (!changeAvatar && !userProfile.avatarUrl) {\n <div class=\"button\" (click)=\"changeAvatar = true\">Set avatar</div>\n }\n @if (changeAvatar && userProfile.avatarUrl) {\n <div class=\"button\" (click)=\"clearAvatar()\"><span class=\"icon ph-trash-fill\"></span>Clear</div>\n }\n </div>\n </div>\n\n @if (changeAvatar) {\n <div class=\"reuploadform\">\n <div (click)=\"changeAvatar = false\" class=\"cancel icon ph-x-bold\"></div>\n <input class=\"mat-form-field\" accept=\"image/png,image/jpeg\" type=\"file\" id=\"coach-avatar\" (change)=\"uploadAvatar($event)\">\n <div class=\"message message-information\">\n <span class=\"icon ph-info-fill\"></span>Select new image (.png or .jpg). Use a 1:1 ratio for the best results (e.g. 500x500). Maximum size is 500x500px and 500kb.\n </div>\n </div>\n }\n\n <div class=\"form-label\">Name</div>\n <mat-form-field appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>What is your name?</mat-label>\n <input maxlength=\"50\" matInput id=\"name\" formControlName=\"name\" type=\"text\">\n @if (form.controls.name.errors) {\n <mat-error>\n @if (form.controls.name.errors.required) {\n <div>This field is required</div>\n }\n </mat-error>\n }\n </mat-form-field>\n\n <div class=\"form-label\">Email</div>\n @if (!showEmailInput) {\n <p>\n The e-mail address is set to <b>{{userProfile.email}}</b>.\n <a [routerLink]=\"[]\" id=\"toggle-email\" (click)=\"setChangeEmail()\">Set a different address.</a>\n </p>\n }\n\n @if (showEmailInput) {\n <mat-form-field appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>On what e-mail address can you be contacted?</mat-label>\n <input matInput id=\"newEmail\" formControlName=\"newEmail\" type=\"email\">\n @if (form.controls.newEmail.errors) {\n <mat-error>\n @if (form.controls.newEmail.errors.email) {\n <div>The email is invalid. Please specify email like john&#64;doe.nl or jane.doe&#64;someone.nl.</div>\n }\n @if (form.controls.newEmail.errors.alreadyExists) {\n <div>Another user already uses this e-mail address. Please use another email address.</div>\n }\n </mat-error>\n }\n </mat-form-field>\n }\n\n <div class=\"toolbar\">\n <input class=\"button submit primary\" type=\"submit\" id=\"submit\" [disabled]=\"loading\" [ngClass]=\"{'loading': loading}\" value=\"Save\" />\n </div>\n </form>\n</div>\n\n<div class=\"form-security\">\n <h2>Security</h2>\n\n <form class=\"form\">\n <div class=\"form-label\">Change password</div>\n @if (!userProfile.usesSSO) {\n <div class=\"button\" (click)=\"sendPasswordReset()\" id=\"account-passwordreset\">Send email to change password</div>\n }\n @if (userProfile.usesSSO) {\n <p>You are logging in through single-sign on (SSO). Use your company's identity provider to change your password.</p>\n }\n\n @if (allowMFA) {\n <div class=\"form-label\">Add additional login factor (MFA)</div>\n @if (!usesMFA) {\n <p>Add a code from Google Authenticator or similar to your account to make it more secure.</p>\n <div class=\"button\" (click)=\"sendMFAEnrollment()\" id=\"account-enrollmfa\">Send email to set up 2FA</div>\n }\n @if (usesMFA) {\n <p>An additional factor is <b>enabled</b> for this account.</p>\n <div class=\"button\" (click)=\"resetMFAEnrollment()\" id=\"account-resetmfa\">Reset 2FA</div>\n }\n }\n\n @if (allowAPI) {\n <div class=\"form-label\">API Access</div>\n <p>Access our <a target=\"_blank\" href=\"https://github.com/theliberators/scrumteamsurvey.docs/wiki/Getting-Started-with-the-API\">API</a> with your personal account.</p>\n <div class=\"button\" (click)=\"createAPITokens()\" id=\"account-apitokens\">Send email with new API tokens</div>\n }\n </form>\n</div>\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'explainervideo',\n templateUrl: './video.component.html',\n styleUrls: ['./video.component.less'],\n standalone: false\n})\nexport class VideoComponent {\n @Input() public videoUrl: string;\n @Input() public videoTitle: string;\n\n constructor() {\n }\n\n ngOnInit() {\n }\n\n openVideo() {\n window.open(this.videoUrl, \"_blank\");\n }\n}\n","<div class=\"box explainervideo\" brandbackground [palette]=\"'theme'\" (click)=\"openVideo()\">\n <span class=\"ph-monitor-play-bold icon video\"></span>\n <div class=\"name\">\n <h3>\n {{videoTitle}}\n </h3>\n <div class=\"tags\">\n <span class=\"tag external\"><span class=\"icon ph-arrow-square-out\"></span> youtube</span>\n </div>\n </div>\n</div>\n\n\n","import { Component, Input } from '@angular/core';\nimport { FactorScoreCollectionDeltaDto, FactorScoreCollectionDto, FactorScoreDto, PointDto, PointTypeEnum } from '../../models/factorScoreDto';\n\n@Component({\n selector: 'widget-factorscore',\n templateUrl: './widget-factorscore.component.html',\n styleUrls: ['./widget-factorscore.component.less'],\n standalone: false\n})\nexport class WidgetFactorScoreComponent {\n public direction: string;\n @Input() public factorScore: FactorScoreDto;\n @Input() public factorScores: FactorScoreCollectionDto;\n @Input() public delta: FactorScoreCollectionDeltaDto;\n public benchmarkName: string;\n public factorScoreWidth: number;\n public score: number;\n public benchmark: number;\n public confidenceAvailable: boolean;\n public factorScoreLeft: number;\n public points: PointDto[];\n public width: number;\n\n constructor() {\n }\n\n ngOnInit() {\n this.score = this.factorScore.score;\n this.benchmark = this.factorScore.benchmark;\n this.benchmarkName = this.factorScores.benchmark.name;\n\n if (this.factorScore.type !== \"Metric\") {\n this.width = this.factorScore.score;\n this.confidenceAvailable = this.factorScores.composition.points.count > 1;\n this.factorScoreWidth = (this.factorScore.upperConfidence - this.factorScore.lowerConfidence);\n if (this.factorScoreWidth <= 10) { this.factorScoreWidth = 10 };\n this.factorScoreLeft = this.factorScore.lowerConfidence - 4;\n if (this.factorScoreLeft >= 90) { this.factorScoreLeft = 90 };\n }\n else {\n this.confidenceAvailable = false;\n this.width = 100;\n }\n\n this.points = this.factorScore.points.filter(p => p.type == PointTypeEnum.team || p.type == PointTypeEnum.client);\n this.direction = this.factorScore.qualification.toLowerCase();\n }\n}\n","<div class=\"widget factorscore\">\n <div class=\"label\">\n {{factorScore.name}}\n <delta-arrow [factorScore]=\"factorScore\" [delta]=\"delta\"></delta-arrow>\n </div>\n <div [class]=\"'progressbar progressbar-inverted progressbar-' + direction + ' progressbar-spread'\">\n @if (confidenceAvailable && factorScore.score > 0) {\n <div class=\"progressbar-confidence\" [matTooltip]=\"'Most teams in your organization fall in this range (25-75% percentile)'\" [style]=\"'left: ' + factorScoreLeft + '%; width: ' + factorScoreWidth + '%'\"></div>\n }\n @if (confidenceAvailable && factorScore.score > 0) {\n <div class=\"progressbar-confidence\" [matTooltip]=\"'Most teams in your organization fall in this range (25-75% percentile)'\" [style]=\"'left: ' + factorScoreLeft + '%; width: ' + factorScoreWidth + '%'\"></div>\n }\n @if (!confidenceAvailable) {\n <div class=\"progressbar-bar\" [style]=\"'width: ' + width + '%'\"></div>\n }\n <div class=\"progressbar-score\">{{factorScore.score > 0 ? factorScore.score : \"waiting for data\"}}</div>\n @if (benchmark != 0) {\n <div class=\"benchmark\" [style]=\"'left: ' + benchmark + '%'\" [matTooltip]=\"'Teams in benchmark \\'' + benchmarkName + '\\' score an average of ' + benchmark + ' points'\"></div>\n }\n </div>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { FactorScoreCollectionDeltaDto, FactorScoreCollectionDto } from '../../models/factorScoreDto';\nimport { ParticipationRateDto } from '../../models/widgetDataDto';\n\n@Component({\n selector: 'widget-participationrate',\n templateUrl: './widget-participationrate.component.html',\n styleUrls: ['./widget-participationrate.component.less'],\n standalone: false\n})\nexport class WidgetParticipationRateComponent {\n public direction: string;\n @Input() public data: ParticipationRateDto;\n public factorScoreWidth: number;\n public percentage: number;\n public confidenceAvailable: boolean;\n public factorScoreLeft: number;\n\n constructor() {\n }\n\n ngOnInit() {\n this.confidenceAvailable = this.data.upperConfidence > 0 && this.data.lowerConfidence > 0;\n this.percentage = this.data.percentage;\n\n this.factorScoreWidth = (this.data.upperConfidence - this.data.lowerConfidence);\n if (this.factorScoreWidth <= 10) { this.factorScoreWidth = 10 };\n this.factorScoreLeft = this.data.lowerConfidence - 4;\n if (this.factorScoreLeft >= 90) { this.factorScoreLeft = 90 };\n\n this.direction = this.data.qualification.toLowerCase();\n }\n}\n","<div class=\"widget factorscore\">\n <div class=\"label\">\n Participation rate (%)\n </div>\n <div [class]=\"'progressbar progressbar-inverted progressbar-' + direction + ' progressbar-spread'\">\n @if (confidenceAvailable) {\n <div class=\"progressbar-confidence\" [matTooltip]=\"'Most teams in your organization fall in this range (25-75% percentile)'\" [style]=\"'left: ' + factorScoreLeft + '%; width: ' + factorScoreWidth + '%'\"></div>\n }\n @if (!confidenceAvailable) {\n <div class=\"progressbar-bar\" [style]=\"'width: ' + percentage + '%'\"></div>\n }\n <div class=\"progressbar-score\">{{data.percentage > 0 ? data.percentage : \"no recent data\"}}</div>\n </div>\n</div>\n","import { Component, Inject } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { IUserSettingStrategy, VIEWSTATE_USERSETTINGS_STRATEGY } from '../../../viewModel/userSettings.service';\nimport { VIEWSTATE_PROVIDER, ViewModelStateBase } from '../../../viewModel/viewModelState.service';\nimport { IResultsState } from '../../interfaces/IResultsState';\nimport { ExportTeamListRequestDto } from '../../models/exportRequestDto';\nimport { ExportService } from '../../services/exportService';\n\n@Component({\n templateUrl: './dialog-export-teamlist.component.html',\n styleUrls: ['./dialog-export-teamlist.component.less'],\n standalone: false\n})\nexport class DialogExportTeamListComponent extends ComponentWithViewStateBase<IResultsState> {\n public form: FormGroup;\n public sending: boolean;\n public modelKey: string;\n\n constructor(@Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IResultsState>, protected snackBar: MatSnackBar, @Inject(VIEWSTATE_USERSETTINGS_STRATEGY) protected userSettings: IUserSettingStrategy, private exportService: ExportService, private dialogRef: MatDialogRef<DialogExportTeamListComponent>, private formBuilder: FormBuilder) {\n super(state, snackBar);\n this.createForm();\n }\n\n ngOnInit() {\n super.ngOnInit();\n }\n\n public async exportTeamSummaries(): Promise<void> {\n if (!this.form.valid) { return; }\n\n var request = new ExportTeamListRequestDto(this.modelKey);\n\n this.sending = true;\n this.exportService.exportTeamList(request).subscribe(success => {\n let binaryData = [];\n binaryData.push(new Uint8Array([0xEF, 0xBB, 0xBF])); // UTF8 bom\n binaryData.push(success);\n let downloadLink = document.createElement('a');\n downloadLink.href = window.URL.createObjectURL(new Blob(binaryData, { type: \"text/plain;charset=utf-8\" }));\n downloadLink.setAttribute('download', 'export-teamlist-' + this.modelKey + '.csv');\n document.body.appendChild(downloadLink);\n downloadLink.click();\n this.dialogRef.close();\n this.sending = false;\n this.showSuccess(\"Download started. You may have to allow it in your browser.\");\n });\n }\n\n public async exportParticipationRate(): Promise<void> {\n if (!this.form.valid) { return; }\n\n var request = new ExportTeamListRequestDto(this.modelKey);\n\n this.sending = true;\n this.exportService.exportParticipationRate(request).subscribe(success => {\n let binaryData = [];\n binaryData.push(new Uint8Array([0xEF, 0xBB, 0xBF])); // UTF8 bom\n binaryData.push(success);\n let downloadLink = document.createElement('a');\n downloadLink.href = window.URL.createObjectURL(new Blob(binaryData, { type: \"text/plain;charset=utf-8\" }));\n downloadLink.setAttribute('download', 'export-participationrate-' + this.modelKey + '.csv');\n document.body.appendChild(downloadLink);\n downloadLink.click();\n this.dialogRef.close();\n this.sending = false;\n this.showSuccess(\"Download started. You may have to allow it in your browser.\");\n });\n }\n\n protected onDataUpdate(data: IResultsState): void {\n this.modelKey = data.factorScores.modelStructure.definition.publicKey;\n };\n\n private createForm(): void {\n this.form = this.formBuilder.group({\n periodGrouping: [{ value: \"\" }, Validators.required],\n start: [{ value: \"\" }, Validators.required],\n end: [{ value: \"\" }, Validators.required],\n });\n };\n}\n","<div class=\"dialog-header\">\n <h1 mat-dialog-title>Export team summaries</h1>\n <div class=\"close\" mat-dialog-close><i class=\"responsive icon ph-x-bold\"></i></div>\n</div>\n<mat-dialog-content>\n <p>Download most of what we show in this overview to .csv for your own analyses (max 250 teams). <a href=\"https://github.com/theliberators/scrumteamsurvey.docs/wiki/Export-File-Definitions\">Our Wiki</a> has a definition.</p>\n <form [formGroup]=\"form\" (ngSubmit)=\"exportTeamSummaries()\">\n\n <div class=\"toolbar\">\n <button class=\"button primary\" id=\"submit-export-teamlist\" type=\"submit\" [ngClass]=\"{'loading': sending }\" [disabled]=\"sending\">export</button>\n <button class=\"button\" mat-dialog-close>cancel</button>\n </div>\n </form>\n\n <h2>Export participation report</h2>\n <p>Download a list of teams, their snapshots and the number of completed participants for each segment to .csv (max 250 teams). <a href=\"https://github.com/theliberators/scrumteamsurvey.docs/wiki/Export-File-Definitions\">Our Wiki</a> has a definition.</p>\n <form [formGroup]=\"form\" (ngSubmit)=\"exportParticipationRate()\">\n\n <div class=\"toolbar\">\n <button class=\"button primary\" id=\"submit-export-participationrate\" type=\"submit\" [ngClass]=\"{'loading': sending }\" [disabled]=\"sending\">export</button>\n <button class=\"button\" mat-dialog-close>cancel</button>\n </div>\n </form>\n</mat-dialog-content>\n","import { Directive, HostListener } from '@angular/core';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\nimport { DialogExportTeamListComponent } from './dialog-export-teamlist.component';\n\n@Directive({\n selector: '[exportTeamListDialog]',\n standalone: false\n})\nexport class OpenExportTeamListDialogDirective {\n constructor(private dialog: MatDialog) {\n }\n\n @HostListener('click')\n onClick(): void {\n const dialogConfig = new MatDialogConfig();\n dialogConfig.panelClass = ['dialog', 'export'];\n dialogConfig.autoFocus = false;\n dialogConfig.enterAnimationDuration = 0;\n dialogConfig.exitAnimationDuration = 0;\n this.dialog.open(DialogExportTeamListComponent, dialogConfig);\n }\n}\n","import { Component, Inject, Input } from '@angular/core';\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { IUserSettingStrategy, VIEWSTATE_USERSETTINGS_STRATEGY } from '../../../viewModel/userSettings.service';\nimport { VIEWSTATE_PROVIDER, ViewModelStateBase } from '../../../viewModel/viewModelState.service';\nimport { IResultsState } from '../../interfaces/IResultsState';\n\n@Component({\n templateUrl: './dialog-teamfilters.component.html',\n styleUrls: ['./dialog-teamfilters.component.less'],\n standalone: false\n})\nexport class DialogTeamFilterComponent extends ComponentWithViewStateBase<IResultsState> {\n public form: UntypedFormGroup;\n public sending: boolean;\n public submitted: boolean;\n public filterSet: boolean;\n\n constructor(@Inject(MAT_DIALOG_DATA) public tags: string[], @Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IResultsState>, @Inject(VIEWSTATE_USERSETTINGS_STRATEGY) protected userSettings: IUserSettingStrategy, protected snackBar: MatSnackBar, private dialogRef: MatDialogRef<DialogTeamFilterComponent>, private formBuilder: UntypedFormBuilder) {\n super(state, snackBar);\n }\n\n ngOnInit() {\n this.createForm();\n super.ngOnInit();\n }\n\n public async submit(): Promise<void> {\n this.submitted = true;\n if (!this.form.valid) { return; }\n this.userSettings.settings.user.teamFilter.tags = this.form.controls.tags.value;\n await this.userSettings.apply();\n this.dialogRef.close();\n }\n\n public async clear(): Promise<void> {\n this.userSettings.settings.user.teamFilter.tags = [];\n await this.userSettings.apply();\n this.dialogRef.close();\n }\n\n private createForm(): void {\n this.form = this.formBuilder.group({\n tags: [{ value: \"\" }]\n });\n };\n\n protected onDataUpdate(data: IResultsState) {\n this.form.controls.tags.setValue(data.userInfo.settings.user.teamFilter.tags ?? []);\n if (this.tags == null || this.tags.length == 0) { this.form.controls.tags.disable(); };\n this.filterSet = data.userInfo.settings.user.teamFilter.tags.length > 0;\n }\n}\n","<div class=\"dialog-header\" id=\"dialog-teamfilter\">\n <h1 mat-dialog-title>Filter Teams & Results</h1>\n <div class=\"close\" mat-dialog-close><i class=\"responsive icon ph-x-bold\"></i></div>\n</div>\n<mat-dialog-content>\n <form [formGroup]=\"form\" class=\"teamfilter\">\n <p>Filter the results to teams with tags.</p>\n\n <mat-form-field class=\"tag\" subscriptSizing=\"dynamic\">\n <mat-label>Show only teams with tag(s)</mat-label>\n <mat-select class=\"tags-dropdown\" formControlName=\"tags\" multiple>\n @for (tag of tags; track tag) {\n <mat-option [value]=\"tag\" class=\"select-option\">{{tag}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n\n @if (tags && tags.length == 0) {\n <div>\n <h4>Organize teams into groups with tags</h4>\n <p>Assign 'tags' to your teams to group teams by value streams, departments, products and so on. You can assign tags with 'Edit team' in the Teams Dashboard.</p>\n </div>\n }\n\n @if (tags && tags.length > 0) {\n <div class=\"toolbar\">\n <button class=\"button primary\" id=\"teamfilters-apply\" type=\"submit\" (click)=\"submit()\" [ngClass]=\"{'loading': sending }\">apply</button>\n @if (filterSet) {\n <button class=\"button clear\" id=\"teamfilters-clear\" (click)=\"clear()\" [ngClass]=\"{'loading': sending }\">clear</button>\n }\n <button class=\"button cancel\" id=\"teamfilters-cancel\" mat-dialog-close>cancel</button>\n </div>\n }\n </form>\n</mat-dialog-content>\n","import { Directive, HostListener, Input } from '@angular/core';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\nimport { DialogTeamFilterComponent } from './dialog-teamfilters.component';\n\n@Directive({\n selector: '[teamFilterDialog]',\n standalone: false\n})\nexport class OpenTeamFilterDialogDirective {\n @Input() tags: string[];\n\n constructor(private dialog: MatDialog) {\n }\n\n @HostListener('click')\n onClick(): void {\n const dialogConfig = new MatDialogConfig();\n dialogConfig.panelClass = ['dialog', 'teamfilters'];\n dialogConfig.autoFocus = false;\n dialogConfig.data = this.tags;\n dialogConfig.enterAnimationDuration = 0;\n dialogConfig.exitAnimationDuration = 0;\n this.dialog.open(DialogTeamFilterComponent, dialogConfig);\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { LOCAL_STORAGE, StorageService } from 'ngx-webstorage-service';\n\n@Injectable()\nexport class DismissPopupService {\n private dismissedPopups: string[];\n\n constructor() {\n }\n\n public dismiss(key: string): void {\n this.dismissedPopups.push(key);\n }\n\n public isDismissed(key: string): boolean {\n return this.dismissedPopups.indexOf(key) > -1;\n }\n}\n","import { ClipboardModule } from '@angular/cdk/clipboard';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatNativeDateModule, MatOptionModule } from '@angular/material/core';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { RouterModule } from '@angular/router';\nimport { NgxChartsModule } from '@swimlane/ngx-charts';\nimport { ActionsModule } from '../actions/actions.module';\nimport { BrandingModule } from '../branding/branding.module';\nimport { LoadingModule } from '../components/loading/loading.module';\nimport { ResourceDownloadModule } from '../dialogs/dialog-resourcedownload/dialog-resourcedownload.module';\nimport { DialogSubscribeModule } from '../dialogs/dialog-subscribe/dialog-subscribe.module';\nimport { DialogSupportModule } from '../dialogs/dialog-support/dialog-support.module';\nimport { GuidesModule } from '../guides/guides.module';\nimport { DateRangePipeModule } from '../pipes/dateRange/ngx-dateRange.module';\nimport { SlugifyPipeModule } from '../pipes/slugify/ngx-slugify.module';\nimport { AgeIndicatorComponent } from './components/age-indicator/age-indicator.component';\nimport { ArrowComponent } from './components/arrow/arrow.component';\nimport { BadgeProgressionComponent } from './components/badge-progression/badge-progression.component';\nimport { BadgeStreakComponent } from './components/badge-streak/badge-streak.component';\nimport { BadgeComponent } from './components/badge/badge.component';\nimport { BadgesComponent } from './components/badges/badges.component';\nimport { BenchmarkIndicatorComponent } from './components/benchmark-indicator/benchmark-indicator.component';\nimport { DeltaArrowComponent } from './components/delta-arrow/delta-arrow.component';\nimport { DoItYourselfComponent } from './components/doityourself/doityourself.component';\nimport { DoItYourselfWorkshopsComponent } from './components/doityourselfworkshops/doityourselfworkshops.component';\nimport { FactorAxisComponent } from './components/factor-axis/factor-axis.component';\nimport { FactorsComponent } from './components/factors/factors.component';\nimport { FilterTagsComponent } from './components/filter-tags/filter-tags.component';\nimport { FocusAreasComponent } from './components/focusareas/focusareas.component';\nimport { FooterComponent } from './components/footer/footer.component';\nimport { ImpactIndicatorComponent } from './components/impact-indicator/impact-indicator.component';\nimport { LimitationsApplyComponent } from './components/limitationsapply/limitationsapply.component';\nimport { ModelSwitcherComponent } from './components/model-switcher/model-switcher.component';\nimport { NavButtonComponent } from './components/nav-button/nav-button.component';\nimport { ParticipantsComponent } from './components/participants/participants.component';\nimport { QuickTipsComponent } from './components/quicktips/quicktips.component';\nimport { RecommendationComponent } from './components/recommendation/recommendation.component';\nimport { RecommendationsComponent } from './components/recommendations/recommendations.component';\nimport { ResearchComponent } from './components/research/research.component';\nimport { RoadmapComponent } from './components/roadmap/roadmap.component';\nimport { TeamEffectivenessComponent } from './components/teameffectiveness/teameffectiveness.component';\nimport { TermsUpdatedComponent } from './components/termsupdated/termsupdated.component';\nimport { TipBadgeComponent } from './components/tip-badge/tip-badge.component';\nimport { TrendsComponent } from './components/trends/trends.component';\nimport { TryNowProfessionalComponent } from './components/trynow-professional/trynow-professional.component';\nimport { UpdateInProgressComponent } from './components/update-in-progress/update-in-progress.component';\nimport { UserProfileComponent } from './components/userprofile/userprofile.component';\nimport { VideoComponent } from './components/video/video.component';\nimport { WidgetFactorScoreComponent } from './components/widget-factorscore/widget-factorscore.component';\nimport { WidgetParticipationRateComponent } from './components/widget-participationrate/widget-participationrate.component';\nimport { DialogExportFactorScoresComponent } from './dialogs/dialog-export-factorscores/dialog-export-factorscores.component';\nimport { OpenExportFactorScoresDialogDirective } from './dialogs/dialog-export-factorscores/dialog-export-factorscores.directive';\nimport { DialogExportTeamListComponent } from './dialogs/dialog-export-teamlist/dialog-export-teamlist.component';\nimport { OpenExportTeamListDialogDirective } from './dialogs/dialog-export-teamlist/dialog-export-teamlist.directive';\nimport { DialogModelFilterComponent, OpenModelFilterDialog } from './dialogs/dialog-modelfilter/dialog-modelfilter.component';\nimport { DialogNotesComponent } from './dialogs/dialog-notes/dialog-notes.component';\nimport { DialogSettingsComponent, OpenSettingsDialogDirective } from './dialogs/dialog-settings/dialog-settings.component';\nimport { DialogTeamFilterComponent } from './dialogs/dialog-teamfilter/dialog-teamfilters.component';\nimport { OpenTeamFilterDialogDirective } from './dialogs/dialog-teamfilter/dialog-teamfilters.directive';\nimport { AccountService } from './services/account.service';\nimport { DismissPopupService } from './services/dimissPopupService';\nimport { ExportService } from './services/exportService';\nimport { FactorService } from './services/factorService';\nimport { TermsService } from './services/terms.service';\nimport { TrendService } from './services/trend.service';\nimport { UserProfileService } from './services/userProfile.service';\nimport { ResultIndicatorComponent } from './components/result-indicator/result-indicator.component';\nimport { FactorInformationDialogModule } from '../dialogs/dialog-factorinformation/dialog-factorinformation.module';\nimport { OpenNotesDialogDirective } from './dialogs/dialog-notes/dialog-notes.directive';\nimport { ArrowUpdateService } from './components/arrow/ArrowUpdateService';\nimport { OverlayModule } from '@angular/cdk/overlay';\n\n@NgModule({\n imports: [\n ClipboardModule,\n NgxChartsModule,\n SlugifyPipeModule,\n MatDialogModule,\n MatTooltipModule,\n MatNativeDateModule,\n RouterModule,\n FormsModule,\n ReactiveFormsModule,\n MatOptionModule,\n MatInputModule,\n OverlayModule, \n MatSlideToggleModule,\n BrandingModule,\n MatSelectModule,\n MatProgressSpinnerModule,\n MatDatepickerModule,\n DateRangePipeModule,\n ActionsModule,\n CommonModule,\n DialogSupportModule,\n DialogSubscribeModule,\n ResourceDownloadModule,\n LoadingModule,\n FactorInformationDialogModule,\n GuidesModule],\n declarations: [\n ArrowComponent,\n DeltaArrowComponent,\n BenchmarkIndicatorComponent,\n ResultIndicatorComponent,\n FocusAreasComponent,\n ImpactIndicatorComponent,\n AgeIndicatorComponent,\n RoadmapComponent,\n TryNowProfessionalComponent,\n QuickTipsComponent,\n RecommendationComponent,\n RecommendationsComponent,\n ModelSwitcherComponent,\n ResearchComponent,\n DoItYourselfWorkshopsComponent,\n DoItYourselfComponent,\n FooterComponent,\n DialogSettingsComponent,\n NavButtonComponent,\n TermsUpdatedComponent,\n OpenSettingsDialogDirective,\n WidgetFactorScoreComponent,\n WidgetParticipationRateComponent,\n TeamEffectivenessComponent,\n DialogExportFactorScoresComponent,\n OpenExportFactorScoresDialogDirective,\n DialogExportTeamListComponent,\n OpenExportTeamListDialogDirective,\n DialogTeamFilterComponent,\n OpenTeamFilterDialogDirective,\n FactorAxisComponent,\n TipBadgeComponent,\n DialogNotesComponent,\n FilterTagsComponent,\n LimitationsApplyComponent,\n OpenNotesDialogDirective,\n FactorsComponent,\n TrendsComponent,\n BadgeComponent,\n BadgesComponent,\n BadgeStreakComponent,\n UpdateInProgressComponent,\n DialogModelFilterComponent,\n OpenModelFilterDialog,\n BadgeProgressionComponent,\n ParticipantsComponent,\n VideoComponent,\n UserProfileComponent],\n exports: [\n ArrowComponent,\n DeltaArrowComponent,\n BenchmarkIndicatorComponent,\n TryNowProfessionalComponent,\n ResultIndicatorComponent,\n AgeIndicatorComponent,\n FocusAreasComponent,\n ImpactIndicatorComponent,\n VideoComponent,\n QuickTipsComponent,\n RoadmapComponent,\n TermsUpdatedComponent,\n FooterComponent,\n NavButtonComponent,\n RecommendationComponent,\n ModelSwitcherComponent,\n RecommendationsComponent,\n FilterTagsComponent,\n DoItYourselfWorkshopsComponent,\n ResearchComponent,\n LimitationsApplyComponent,\n DoItYourselfComponent,\n DialogSettingsComponent,\n OpenSettingsDialogDirective,\n TeamEffectivenessComponent,\n WidgetFactorScoreComponent,\n WidgetParticipationRateComponent,\n DialogExportFactorScoresComponent,\n UpdateInProgressComponent,\n OpenExportFactorScoresDialogDirective,\n DialogExportTeamListComponent,\n OpenNotesDialogDirective,\n OpenExportTeamListDialogDirective,\n OpenTeamFilterDialogDirective,\n DialogModelFilterComponent,\n OpenModelFilterDialog,\n TipBadgeComponent,\n FactorsComponent,\n BadgesComponent,\n DialogModelFilterComponent,\n OpenModelFilterDialog,\n TrendsComponent,\n BadgeComponent,\n BadgeProgressionComponent,\n BadgeStreakComponent,\n ParticipantsComponent,\n UserProfileComponent\n ],\n providers: [\n ExportService,\n UserProfileService,\n TermsService,\n DismissPopupService,\n FactorService,\n TrendService,\n AccountService,\n ArrowUpdateService\n ]\n})\nexport class ResultsModule { }\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { DateRangePipeModule } from '../../pipes/dateRange/ngx-dateRange.module';\nimport { ModelCanvasComponent } from './model-canvas/model-canvas.component';\nimport { ModelFactorBenchmarkComponent } from './model-factor-benchmark/model-factor-benchmark.component';\nimport { ModelFactorCoreComponent } from './model-factor-core/model-factor-core.component';\nimport { ModelFactorIndicatorComponent } from './model-factor-indicator/model-factor-indicator.component';\nimport { RouterModule } from '@angular/router';\nimport { ResultsModule } from '../../results/results.module';\nimport { FactorInformationDialogModule } from '../../dialogs/dialog-factorinformation/dialog-factorinformation.module';\nimport { ProgressbarModule } from '../progressbar/progressbar.module';\nimport { ModelFactorMetricComponent } from './model-factor-metric/model-factor-metric.component';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { DialogSubscribeModule } from '../../dialogs/dialog-subscribe/dialog-subscribe.module';\nimport { DialogIntegrationComponent, OpenIntegrationDialogDirective } from './dialog-integration/dialog-integration.component';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { ModelFactorBreakdownComponent } from './model-factor-breakdown/model-factor-breakdown.component';\nimport { SlugifyPipeModule } from '../../pipes/slugify/ngx-slugify.module';\nimport { OverlayModule } from '@angular/cdk/overlay';\n\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n RouterModule,\n ResultsModule,\n FactorInformationDialogModule,\n ProgressbarModule,\n MatTooltipModule,\n SlugifyPipeModule,\n DialogSubscribeModule,\n MatFormFieldModule,\n ReactiveFormsModule,\n DateRangePipeModule,\n OverlayModule, \n MatDialogModule],\n declarations: [\n ModelCanvasComponent,\n ModelFactorMetricComponent,\n ModelFactorIndicatorComponent,\n ModelFactorCoreComponent,\n ModelFactorBenchmarkComponent,\n ModelFactorBreakdownComponent,\n OpenIntegrationDialogDirective,\n DialogIntegrationComponent],\n exports: [\n ModelCanvasComponent,\n ModelFactorMetricComponent,\n ModelFactorIndicatorComponent,\n ModelFactorCoreComponent,\n ModelFactorBreakdownComponent,\n ModelFactorBenchmarkComponent,\n OpenIntegrationDialogDirective,\n DialogIntegrationComponent]\n})\nexport class ModelVisualizationModule { }\n\n","export class ResetPasswordRequestDto {\n email: string;\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ApiConfig } from '../../apiUrlToken';\nimport { ResetPasswordRequestDto } from './resetPasswordRequestDto.model';\n\n@Injectable()\nexport class AccountService {\n constructor(private http: HttpClient, @Inject(ApiConfig) private config: ApiConfig) { }\n\n sendResetPassword(email: string): Observable<any> {\n var request = new ResetPasswordRequestDto();\n request.email = email;\n return this.http.post(this.config.get().apiUrl + 'account/resetpassword/', request);\n }\n\n getManageUrl(): Observable<any> {\n return this.http.post(this.config.get().apiUrl + 'subscriptions/managesession/', null);\n }\n}\n","import { Component, Directive, HostListener, Inject } from '@angular/core';\nimport { MatDialog, MatDialogConfig, MatDialogRef } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { AuthService } from '@auth0/auth0-angular';\nimport { ComponentWithViewStateBase } from '../../componentWithViewStateBase';\nimport { IResultsState } from '../../results/interfaces/IResultsState';\nimport { ViewModelStateBase, VIEWSTATE_PROVIDER } from '../../viewModel/viewModelState.service';\nimport { AccountService } from './account.service';\n\n@Component({\n templateUrl: './dialog-account.component.html',\n styleUrls: ['./dialog-account.component.less'],\n standalone: false\n})\nexport class DialogAccountComponent extends ComponentWithViewStateBase<IResultsState> {\n public subscriptionKey: string;\n public userName: string;\n public loading: boolean;\n public isAdmin: boolean;\n public email: string;\n\n constructor(private authService: AuthService, protected snackBar: MatSnackBar, private accountService: AccountService, public dialogRef: MatDialogRef<DialogAccountComponent>, @Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IResultsState>) {\n super(state, snackBar);\n }\n\n ngOnInit() {\n this.authService.user$.subscribe(\n (profile) => {\n this.email = profile.email;\n });\n\n super.ngOnInit();\n }\n\n public async redirectToPortal() {\n await this.authService.loginWithPopup({ authorizationParams: { max_age: 1 } }).subscribe(success => {\n this.accountService.getManageUrl().subscribe(success => {\n window.location.href = success.url;\n }, error => {\n });\n });\n }\n\n public sendPasswordReset() {\n this.loading = true;\n this.accountService.sendResetPassword(this.email).subscribe(\n success => {\n this.loading = false;\n this.snackBar.open('Got it! We sent an e-mail to ' + this.email + ' to change your password', null, { duration: 3000 });\n setTimeout(() => {\n }, 2000);\n });\n }\n\n signout() {\n this.authService.logout();\n }\n\n protected onDataUpdate(data: IResultsState) {\n this.isAdmin = data.userInfo.isAdmin;\n this.subscriptionKey = data.userInfo.client.publicKey;\n this.userName = data.userInfo.profile.name;\n }\n}\n\n@Directive({\n selector: '[accountDialog]',\n standalone: false\n})\nexport class OpenAccountDialogDirective {\n constructor(private dialog: MatDialog) {\n }\n\n @HostListener('click')\n onClick(): void {\n const dialogConfig = new MatDialogConfig();\n dialogConfig.panelClass = ['dialog', 'account'];\n dialogConfig.autoFocus = false;\n dialogConfig.enterAnimationDuration = 0;\n dialogConfig.exitAnimationDuration = 0;\n this.dialog.open(DialogAccountComponent, dialogConfig);\n }\n}\n","<div class=\"dialog-header\">\n <h1 mat-dialog-title>{{userName}}<span class=\"email\">{{email}}</span></h1>\n <div class=\"close\" mat-dialog-close><i class=\"responsive icon ph-x-bold\"></i></div>\n</div>\n<mat-dialog-content>\n <hr />\n <ul>\n <li><a href=\"javascript:void(null);\" (click)=\"sendPasswordReset()\" mat-dialog-close id=\"account-passwordreset\">Send email to change password</a></li>\n <li>@if (isAdmin) {\n <a href=\"javascript:void(null);\" (click)=\"redirectToPortal()\" mat-dialog-close>Subscription & invoices (admins only) <span class=\"icon ph-arrow-square-out\"></span></a>\n }</li>\n <li><a href=\"javascript:void(null);\" (click)=\"signout();\">Sign out</a></li>\n </ul>\n</mat-dialog-content>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { AccountService } from './account.service';\nimport { DialogAccountComponent, OpenAccountDialogDirective } from './dialog-account.component';\n\n@NgModule({\n imports: [MatDialogModule, CommonModule],\n declarations: [DialogAccountComponent, OpenAccountDialogDirective],\n exports: [DialogAccountComponent, OpenAccountDialogDirective],\n providers: [AccountService]\n})\nexport class DialogAccountModule { }\n","import { Location } from '@angular/common'\nimport { Directive, HostListener } from '@angular/core'\nimport { Route, Router } from '@angular/router'\n\n@Directive({\n selector: '[backButton]',\n standalone: false\n})\nexport class BackButtonDirective {\n constructor(private location: Location, private router: Router) {\n }\n\n @HostListener('click')\n onClick(): void {\n var isErrorPage = this.location.path().indexOf(\"error\") > 0;\n\n if (window.history.length > 2 && isErrorPage) {\n this.location.historyGo(-2);\n }\n else if (window.history.length > 1 && !isErrorPage) {\n this.location.back();\n }\n else {\n this.router.navigate(['/']);\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { BackButtonDirective } from './backbutton.directive';\n\n@NgModule({\n providers: [Location, BackButtonDirective],\n declarations: [BackButtonDirective],\n exports: [BackButtonDirective]\n})\nexport class BackButtonDirectiveModule {}\n","import { Directive, HostListener, inject } from '@angular/core';\nimport { MatTooltip } from '@angular/material/tooltip';\n\n@Directive({\n selector: '[matTooltip]',\n standalone: true,\n})\nexport class ClickableTooltipDirective {\n\n private matTooltip = inject(MatTooltip);\n\n @HostListener('click')\n onClick() {\n this.matTooltip.toggle();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, Router, UrlTree } from '@angular/router';\nimport { Observable } from 'rxjs';\n\n@Injectable()\nexport class ValidChangeTokenGuard implements CanActivate {\n constructor(private router: Router) { }\n\n canActivate(route: ActivatedRouteSnapshot): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {\n if (!route.params.changeToken) { return; }\n var valid = route.params.changeToken.length >= 100 && route.params.changeToken.length <= 300;\n\n if (!valid) {\n console.log(\"Invalid changetoken provided. Should be at least 100 characters.\");\n return this.router.parseUrl('/');\n }\n else {\n return true;\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot, UrlTree } from '@angular/router';\nimport { Observable } from 'rxjs';\n\n@Injectable()\nexport class ValidKeyGuard implements CanActivate {\n constructor(private router: Router) { }\n\n canActivate(route: ActivatedRouteSnapshot): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {\n if (!route.params.key) { return; }\n var valid = route.params.key.length >= 18 && route.params.key.length <= 80;\n\n if (!valid) {\n return this.router.parseUrl('/');\n }\n else {\n return true;\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, Router, UrlTree } from '@angular/router';\nimport { Observable } from 'rxjs';\n\n@Injectable()\nexport class ValidKeySnapshotKeyGuard implements CanActivate {\n constructor(private router: Router) { }\n\n canActivate(route: ActivatedRouteSnapshot): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {\n if (!route.params.snapshotKey) { return; }\n var valid = route.params.snapshotKey.length >= 18 && route.params.snapshotKey.length <= 50;\n\n if (!valid) {\n console.log(\"Invalid snapshotKey provided. Should be at least 18 characters.\");\n return this.router.parseUrl('/');\n }\n else {\n return true;\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot, UrlTree } from '@angular/router';\nimport { Observable } from 'rxjs';\n\n@Injectable()\nexport class ValidKeyTeamKeyGuard implements CanActivate {\n constructor(private router: Router) { }\n\n canActivate(route: ActivatedRouteSnapshot): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {\n if (!route.params.teamKey) { return; }\n var valid = route.params.teamKey.length >= 18 && route.params.teamKey.length <= 50;\n\n if (!valid) {\n console.log(\"Invalid teamKey provided. Should be at least 18 characters.\");\n return this.router.parseUrl('/');\n }\n else {\n return true;\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { ValidChangeTokenGuard } from './validChangeTokenGuard';\nimport { ValidKeyGuard } from './validKeyGuard';\nimport { ValidKeySnapshotKeyGuard } from './validSnapshotKeyGuard';\nimport { ValidKeyTeamKeyGuard } from './validTeamKeyGuard';\n\n@NgModule({\n declarations: [],\n exports: [],\n providers: [\n ValidKeySnapshotKeyGuard,\n ValidKeyTeamKeyGuard,\n ValidChangeTokenGuard,\n ValidKeyGuard\n ]\n})\nexport class GuardsModule { }\n","export class ErrorDto {\n constructor() {\n this.details = [];\n }\n\n error: string;\n url: string;\n userAgent: string;\n stackTrace: string;\n serverStackTrace: string;\n details: ErrorDetailDto[];\n loggingSeverity: LoggingSeverityEnum;\n}\n\nexport class ApiErrorDto {\n code: number;\n type: string;\n message: string;\n stack: string;\n loggingSeverity: LoggingSeverityEnum;\n}\n\nexport class ErrorDetailDto {\n type: string;\n value: any;\n}\n\nexport enum LoggingSeverityEnum {\n information = 0,\n warning = 1,\n exception = 2\n}\n","import { Inject, Injectable, InjectionToken, Optional } from '@angular/core';\n\nexport class ErrorServiceConfigDto {\n errorSink: boolean;\n endpoint: string;\n enabled: boolean;\n}\n\nexport const ErrorConfigToken = new InjectionToken<ErrorServiceConfigDto>(\n 'errorsink-angular.config'\n);\n\n@Injectable({ providedIn: 'root' })\nexport class ErrorServiceConfig {\n private config?: ErrorServiceConfigDto;\n\n constructor(@Optional() @Inject(ErrorConfigToken) config?: ErrorServiceConfigDto) {\n if (config) {\n this.set(config);\n }\n }\n\n set(config: ErrorServiceConfigDto): void {\n this.config = config;\n }\n\n get(): ErrorServiceConfigDto {\n var config = this.config as ErrorServiceConfigDto;\n if (!config) { config = new ErrorServiceConfigDto(); }\n return config;\n }\n}\n","import { HttpClient, HttpErrorResponse } from \"@angular/common/http\";\nimport { ErrorHandler, Inject, Injectable, NgZone } from \"@angular/core\";\nimport { Router } from \"@angular/router\";\nimport { ApiErrorDto, ErrorDto, LoggingSeverityEnum } from \"./error.model\";\nimport { ErrorServiceConfig } from \"./errorServiceConfig\";\n\n@Injectable()\nexport class FrontAndBackendErrorHandler implements ErrorHandler { constructor(private router: Router, private zone: NgZone, private http: HttpClient, @Inject(ErrorServiceConfig) private config: ErrorServiceConfig) {\n }\n\n handleError(originError: any) {\n if (!this.config.get().enabled) {\n throw originError;\n }\n\n var dto = new ErrorDto();\n dto.url = window.location.href;\n dto.loggingSeverity = LoggingSeverityEnum.information;\n dto.userAgent = window.navigator.userAgent;\n if (originError instanceof HttpErrorResponse) {\n // handle HTTP errors\n switch (originError.status) {\n case 401:\n case 403:\n this.zone.run(() => this.router.navigate(['/unauthorized'], { queryParams: { error: dto.error } }));\n dto.error = originError.message;\n break;\n case 404:\n dto.error = originError.message;\n break;\n case 400:\n case 500:\n if (Object.keys(originError.error).includes(\"type\")) {\n // error returned by API\n var apiError = originError.error as ApiErrorDto;\n dto.error = apiError.message;\n dto.serverStackTrace = apiError.stack;\n dto.loggingSeverity = apiError.loggingSeverity;\n }\n else {\n // other kind of HTTP server error\n dto.error = originError.error ?? originError.message;\n dto.loggingSeverity = LoggingSeverityEnum.exception;\n }\n this.zone.run(() => this.router.navigate(['/error'], { queryParams: { error: dto.error } }));\n break;\n }\n }\n else if (originError instanceof Error) {\n // script error raised by Angular\n dto.loggingSeverity = LoggingSeverityEnum.exception;\n dto.stackTrace = originError.stack;\n dto.error = originError.message;\n this.zone.run(() => this.router.navigate(['/error'], { queryParams: { error: dto.error } }));\n }\n else {\n // some other error\n dto.loggingSeverity = LoggingSeverityEnum.exception;\n dto.error = JSON.stringify(originError);\n this.zone.run(() => this.router.navigate(['/error'], { queryParams: { error: dto.error } }));\n }\n\n switch (dto.loggingSeverity) {\n case LoggingSeverityEnum.exception:\n console.error(dto);\n break;\n case LoggingSeverityEnum.warning:\n console.warn(dto);\n break;\n default:\n console.info(dto);\n break;\n }\n\n if (this.config.get().errorSink) {\n this.http.post(this.config.get().endpoint, dto)\n .subscribe({\n next: () => { },\n error: () => {\n console.error(\"Failed to post error to ErrorSink at \" + this.config.get().endpoint + 'error', dto)\n }\n });\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\n\n@NgModule({\n imports: [\n RouterModule,\n CommonModule],\n declarations: [],\n exports: [],\n providers: [\n ]\n})\nexport class ErrorServiceModule { }\n","\nexport class ClientIntegrationSummaryDto {\n constructor() {\n this.metricKeys = [];\n }\n\n publicKey: string;\n name: string;\n description: string;\n documentationUrl: string;\n requireTeamMappings: boolean;\n requireUrl: boolean;\n requireSecret: boolean;\n hasCollectorUrl: boolean;\n metricKeys: string[];\n integrationKey: string;\n\n // clientintegration settings\n collectorUrl: string;\n isSetup: boolean;\n heartBeat: Date;\n isActive: boolean;\n}\n\nexport class ClientIntegrationListDto {\n constructor() {\n this.items = [];\n }\n\n items: ClientIntegrationSummaryDto[];\n}\n","export class ContextItemDto {\n constructor(key: string, value: string) {\n this.key = key;\n this.value = value;\n }\n\n key: string;\n value: string;\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'callback',\n pure: false,\n standalone: false\n})\nexport class CallbackPipe implements PipeTransform {\n transform<T>(items: any[], callback: (item: T) => boolean): T[] {\n if (!items || !callback) {\n return items;\n }\n return items.filter(item => callback(item));\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CallbackPipe } from './callback.pipe';\n\n@NgModule({\n providers: [CallbackPipe],\n declarations: [CallbackPipe],\n exports: [CallbackPipe]\n})\nexport class CallbackPipeModule {}\n","import { PipeTransform, Pipe } from '@angular/core';\nimport { SegmentEnum } from '../../models/modelStructureDto';\n\n@Pipe({\n name: 'segmentName',\n standalone: false\n})\nexport class SegmentNamePipe implements PipeTransform {\n constructor() {\n }\n\n transform(segment: SegmentEnum): string {\n if (segment == null) { return null }\n\n switch (segment) {\n case SegmentEnum.TeamMember:\n return \"team member\";\n case SegmentEnum.Stakeholder:\n return \"stakeholder\";\n case SegmentEnum.Management:\n return \"supporter\";\n default:\n return null;\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { SegmentNamePipe } from './segmentName.pipe';\n\n@NgModule({\n providers: [SegmentNamePipe],\n declarations: [SegmentNamePipe],\n exports: [SegmentNamePipe]\n})\nexport class SegmentNamePipeModule {}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'truncate',\n pure: false,\n standalone: false\n})\nexport class TruncatePipe implements PipeTransform {\n transform(value: string, limit: number = 200): string {\n if (!value || value.length <= limit) {\n return value;\n }\n\n const truncatedText = value.slice(0, limit + 50);\n const lastSpace = truncatedText.lastIndexOf(' ');\n\n return truncatedText.slice(0, lastSpace).replace(/[!,.?;:]$/, '') + '...';\n }\n}\n","import { NgModule } from '@angular/core';\nimport { TruncatePipe } from './truncate.pipe';\n\n@NgModule({\n providers: [TruncatePipe],\n declarations: [TruncatePipe],\n exports: [TruncatePipe]\n})\nexport class TruncatePipeModule {}\n","export class TrendDataSetDto {\n name: string;\n variables: VariableDto[];\n generatorNotes: string[];\n}\n\nexport class VariableDto {\n name: string;\n color: string;\n series: MeasurementDto[];\n}\n\nexport class MeasurementDto {\n name: string;\n value: number;\n min: number;\n max: number;\n}\n","export class DimensionResultDto {\n name: string;\n color: string;\n score: number;\n difference: number;\n}\n\n","export class LocalUserDto {\n avatarUrl: string;\n publicKey: string;\n email: string;\n name: string;\n isAdmin: boolean;\n requireSSO: boolean;\n requireMFA: boolean;\n noRemoteAccount: boolean;\n allowedTeamPublicKeys: string[];\n allowedTeamNames: string[];\n};\n","export class ParticipantDto {\n publicKey: string;\n obfuscatedEmail: string;\n started: Date;\n completed: Date;\n isInvitation: boolean;\n segment: string;\n confirmDelete: boolean;\n canDelete: boolean;\n progress: number;\n email: string;\n warnings: string[];\n};\n","import { SegmentEnum } from \"../../models/modelStructureDto\";\nimport { DimensionResultDto } from \"./dimensionResultDto\";\nimport { FactorScoreCollectionDto } from \"./factorScoreDto\";\nimport { ParticipantDto } from \"./participantDto.model\";\n\nexport class SnapshotDto {\n publicKey: string;\n closed: Date;\n started: Date;\n participants: number;\n reportUrl: string;\n inviteUrls: Record<SegmentEnum, string>;\n teamKey: string;\n limit: number;\n note: string;\n anonymized: boolean;\n progress: number;\n questionnaireType: string;\n scaleKeys: string[];\n participantList: ParticipantDto[];\n coreDimensions: DimensionResultDto[];\n factorScores: FactorScoreCollectionDto;\n notificationEmail: string;\n invitationGoal: number;\n};\n","export class SnapshotMetaDataDto {\n reportUrl: string;\n teamKey: string;\n publicKey: string;\n started: Date;\n closed: Date;\n inviteUrls: Record<string, string>;\n invitationGoal: number;\n}\n\nexport class InviteUrlDto {\n segment: string;\n value: string;\n}\n","import { KeyValueDto } from \"../../models/keyValueDto\";\nimport { BadgeDto } from \"./badgeDto\";\nimport { BenchmarkTypeEnum, InterventionSummaryDto } from \"./factorScoreDto\";\nimport { SnapshotDto } from \"./snapshotDto.model\";\n\nexport class TeamDto {\n publicKey: string;\n name: string;\n email: string;\n color: string;\n measurements: number;\n retakeUrl: string;\n managementUrl: string;\n snapshots: number;\n colorString: string;\n lowTrustMode: boolean;\n benchmark: BenchmarkTypeEnum;\n snapshotList: SnapshotDto[]\n badges: BadgeDto[];\n tags: string[];\n overlayTeamKeys: string[];\n interventionSummary: InterventionSummaryDto;\n improvementGoal: string;\n archived: boolean;\n metaData: KeyValueDto\n teamTraitKeys: string[];\n};\n","import { PaginatedResponse } from \"../../models/paginatedResponse\";\nimport { TeamDto } from \"./teamDto.model\";\n\nexport class TeamListResponseDto {\n teams: PaginatedResponse<TeamDto>;\n tags: string[];\n names: TeamNameAndKeyDto[];\n teamTraits: TeamTraitDto[];\n};\n\nexport class TeamNameAndKeyDto {\n name: string;\n publicKey: string;\n}\n\nexport class TeamTraitDto {\n key: string;\n name: string;\n}\n","\nexport class TeamMetaDataDto {\n name: string;\n notificationEmail: string;\n teamKey: string;\n isSubscribed: boolean;\n subscriptionTier: SubscriptionTierEnum;\n managementUrl: string;\n retakeUrl: string;\n lowTrustMode: boolean;\n pincode: string;\n improvementGoal: string;\n improvementGoals: SelectListItemApiDto[];\n teamTypes: SelectListItemApiDto[];\n reminderFrequencies: SelectListItemApiDto[];\n reminderDate: Date;\n notificationSettings: TeamNotificationSettingsDto;\n teamTraits: SelectListItemApiDto[];\n}\n\nexport enum SubscriptionTierEnum {\n Freemium = \"Freemium\",\n Professional = \"Professional\",\n Enterprise = \"Enterprise\"\n}\n\nexport abstract class SelectListItemApiDto {\n key: string;\n name: string;\n selected: boolean;\n}\n\nexport class TeamNotificationSettingsDto {\n newParticipant: boolean;\n repeat: boolean;\n actionDue: boolean;\n recommendations: boolean;\n}\n","import { PaginatedResponse } from \"../../models/paginatedResponse\";\nimport { LocalUserDto } from \"./localUserDto.model\";\n\nexport class UserListResponseDto {\n users: PaginatedResponse<LocalUserDto>;\n externalUsers: UserNameAndKeyDto[];\n};\n\nexport class UserNameAndKeyDto {\n name: string;\n publicKey: string;\n avatarUrl: string;\n}\n","import { PointDto, QualificationEnum } from \"./factorScoreDto\";\n\nexport class ParticipationRateDto {\n percentage: number;\n upperConfidence: number;\n lowerConfidence: number;\n points: PointDto[];\n qualification: QualificationEnum;\n}\n","import { Inject, Injectable, InjectionToken, Optional } from '@angular/core';\n\nexport class ResultsClientDto {\n}\n\nexport const ResultsConfigToken = new InjectionToken<ResultsClientDto>(\n 'results-angular.config'\n);\n\n@Injectable({ providedIn: 'root' })\nexport class ResultsClientConfig {\n private config?: ResultsClientDto;\n\n constructor(@Optional() @Inject(ResultsConfigToken) config?: ResultsClientDto) {\n if (config) {\n this.set(config);\n }\n }\n\n set(config: ResultsClientDto): void {\n this.config = config;\n }\n\n get(): ResultsClientDto {\n return this.config as ResultsClientDto;\n }\n}\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\nexport function domainValidator(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n var domain = control.value;\n if (!domain) { return null; }\n var regEx = new RegExp(\"^([A-Za-z0-9-]{1,100}\\\\.){0,1}[A-Za-z0-9-]{1,100}\\\\.[A-Za-z0-9-]{1,20}$\", \"gmi\");\n if (!regEx.test(domain)) {\n return { invaliddomain: true }\n }\n return null;\n }\n}\n\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\n\nexport function httpsHostValidator(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n const value = control.value;\n\n if (!value) {\n return null;\n }\n\n // Regex to match a valid HTTPS URL with a proper hostname (no IPs or paths required)\n const httpsUrlRegex = /^https:\\/\\/([a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,}(\\/.*)?$/;\n\n const isValid = httpsUrlRegex.test(value.trim());\n return isValid ? null : { invalidHttpsHost: true };\n };\n}\n","import { AbstractControl, FormGroup, ValidationErrors, ValidatorFn } from '@angular/forms';\nexport function compareInputValidator(compare1: string, compare2: string): ValidatorFn {\n return (formGroup: FormGroup): ValidationErrors | null => {\n const control1 = formGroup.get(compare1);\n const control2 = formGroup.get(compare2);\n\n if (control1 == null || control2 == null) { return null; }\n if (!control1.dirty) { return null; }\n\n var value1 = control1.value;\n var value2 = control2.value;\n if (value1 == \"\") { value1 = null; }\n if (value2 == \"\") { value2 = null; }\n\n if (value1 != value2) {\n return { nomatch: true };\n }\n\n return null;\n }\n}\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\nexport function maxSelectedValidator(maximum: number): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n if (control.value && control.value.length > maximum) {\n return { maxSelected: true }\n }\n return null;\n }\n}\n","import { BehaviorSubject, Observable } from 'rxjs';\nimport { ContextItemDto } from '../models/contextItemDto';\nimport { UserInfoDto } from '../models/userInfoDto';\nimport { ChannelDto } from '../models/channelDto';\n\nexport interface IAggregateRootSource {\n subscribe<T extends IViewState>(): Observable<T>;\n reloadable(): boolean;\n type(): LoadModes;\n unsubscribe(): void;\n}\n\nexport interface IReloadStrategy {\n subscribe(): void;\n isConnected(): boolean;\n unsubscribe(): void;\n reload: BehaviorSubject<boolean>;\n}\n\nexport enum LoadModes {\n Pull,\n Push\n}\n\nexport interface IViewState {\n loaded: boolean;\n context: ContextItemDto[];\n userInfo: UserInfoDto;\n channel: ChannelDto;\n}\n\nexport interface IAggregateRootStreamFactory {\n get(): IAggregateRootSource;\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { IReloadStrategy } from '../interfaces';\n\n@Injectable({ providedIn: 'root' })\nexport class NoReloadStrategy implements IReloadStrategy {\n public reload = new BehaviorSubject<boolean>(null);\n\n constructor() {\n }\n\n public subscribe() {\n }\n\n public isConnected() {\n return false;\n }\n\n public unsubscribe(): void {\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class SessionIdProvider {\n public sessionId: string;\n\n constructor() {\n this.sessionId = this.randomString(30);\n }\n\n private randomString(length) {\n var randomChars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n var result = '';\n\n for (var i = 0; i < length; i++) {\n result += randomChars.charAt(Math.floor(Math.random() * randomChars.length));\n }\n\n return result;\n }\n}\n","import { Inject, Injectable, NgZone } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { ApiConfig } from '../../apiUrlToken';\nimport { IReloadStrategy } from '../interfaces';\nimport { SessionIdProvider } from '../services/sessionIdProvider.service';\n\n@Injectable({ providedIn: 'root' })\nexport class ReloadOnPushStrategy implements IReloadStrategy {\n private baseUrl: string;\n private eventSource: EventSource;\n private sessionId: string;\n public reload = new BehaviorSubject<boolean>(null);\n\n constructor(private zone: NgZone, @Inject(ApiConfig) private config: ApiConfig, private sessionIdProvider: SessionIdProvider) {\n this.baseUrl = config.get().apiUrl;\n this.sessionId = this.sessionIdProvider.sessionId;\n }\n\n public subscribe() {\n var url = this.baseUrl + \"push/\" + this.sessionId;\n if (this.eventSource != null && this.eventSource.readyState != EventSource.CLOSED) { return; }\n\n this.eventSource = new EventSource(url);\n\n this.eventSource.onmessage = event => {\n this.zone.run(() => {\n var object = JSON.parse(event.data);\n this.reload.next(object);\n });\n };\n\n this.eventSource.onerror = error => {\n this.zone.run(() => {\n console.log(\"Error occured while streaming from event source for session \" + this.sessionId + \".\", error);\n });\n }\n }\n\n public isConnected() {\n return this.eventSource != null && this.eventSource.readyState == EventSource.OPEN;\n }\n\n public unsubscribe(): void {\n if (this.eventSource) {\n this.eventSource.close();\n }\n }\n}\n","import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ApiConfig } from '../../apiUrlToken';\nimport { SessionIdProvider } from './sessionIdProvider.service';\n\n// This interceptor adds a unique sessionId for a user. This sessionId is also passed along with async commands.\n@Injectable()\nexport class SessionIdInterceptor implements HttpInterceptor {\n private sessionId: string;\n\n constructor(@Inject(ApiConfig) private config: ApiConfig, private sessionIdProvider: SessionIdProvider) {\n this.sessionId = this.sessionIdProvider.sessionId;\n }\n\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n const isApiUrl = request.url.startsWith(this.config.get().apiUrl);\n if (isApiUrl) {\n request = request.clone({\n setHeaders: { \"SessionId\": this.sessionId }\n });\n }\n return next.handle(request);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { NoReloadStrategy } from './reloadStrategies/noReloadStrategy';\nimport { ReloadOnPushStrategy } from './reloadStrategies/reloadOnPushStrategy';\nimport { SessionIdInterceptor } from './services/sessionIdInterceptor.service';\nimport { SessionIdProvider } from './services/sessionIdProvider.service';\n\n@NgModule({\n imports: [],\n declarations: [\n ],\n exports: [\n ],\n providers: [\n SessionIdInterceptor,\n SessionIdProvider,\n ReloadOnPushStrategy,\n NoReloadStrategy\n ]\n})\nexport class ViewModelStateModule { }\n","import { Inject, Injectable, InjectionToken, Optional } from '@angular/core';\n\nexport class ViewModelStateConfigDto {\n}\n\nexport const ViewModelStateConfigToken = new InjectionToken<ViewModelStateConfigDto>(\n 'viewmodelstate-angular.config'\n);\n\n@Injectable({ providedIn: 'root' })\nexport class ViewModelStateConfig {\n private config?: ViewModelStateConfigDto;\n\n constructor(@Optional() @Inject(ViewModelStateConfigToken) config?: ViewModelStateConfigDto) {\n if (config) {\n this.set(config);\n }\n }\n\n set(config: ViewModelStateConfigDto): void {\n this.config = config;\n }\n\n get(): ViewModelStateConfigDto {\n return this.config as ViewModelStateConfigDto;\n }\n}\n","/*\n * Public API Surface of ngx-scrumteamsurvey-tools\n */\n\nexport * from './lib/actions/actions.module';\nexport * from './lib/actions/components/action-list/action-list.component';\nexport * from './lib/actions/components/action-manage/action-manage.component';\nexport * from './lib/actions/components/action-tile/action-tile.component';\nexport * from './lib/actions/dialogs/dialog-export-actions/dialog-export-actions.component';\nexport * from './lib/actions/dialogs/dialog-export-actions/dialog-export-actions.directive';\nexport * from './lib/actions/dialogs/dialog-filters/dialog-filters.component';\nexport * from './lib/actions/dialogs/dialog-manageaction/dialog-manageaction.component';\nexport * from './lib/actions/interfaces/IActionState';\nexport * from './lib/actions/models/actionDto';\nexport * from './lib/actions/models/actionOptionsDto';\nexport * from './lib/actions/models/actionPrefillDto';\nexport * from './lib/actions/models/actionResponseDto';\nexport * from './lib/actions/models/exportRequestDto';\nexport * from './lib/actions/pipes/interventionOwnerToString.pipe';\nexport * from './lib/actions/pipes/interventionStateToString.pipe';\nexport * from './lib/actions/pipes/interventionTypeToString.pipe';\nexport * from './lib/actions/services/actionClientConfig';\nexport * from './lib/actions/services/actionService';\nexport * from './lib/add-calendar/ng-add-to-calendar.module';\nexport * from './lib/alerts/alerts.module';\nexport * from './lib/alerts/components/alerts-list/alerts.component';\nexport * from './lib/alerts/components/dialog-alerts/dialog-alerts.component';\nexport * from './lib/alerts/components/dialog-alerts/dialog-alerts.directive';\nexport * from './lib/alerts/components/alert-announcement/alert-announcement.component';\nexport * from './lib/alerts/interfaces/IAlertState';\nexport * from './lib/alerts/services/dismissedAlerts.service';\nexport * from './lib/alerts/models/alertDto.model';\nexport * from './lib/alerts/models/alertFilterDto.model';\nexport * from './lib/alerts/models/alertResponseDto.model';\nexport * from './lib/alerts/models/dismissAlertRequestDto.model';\nexport * from './lib/alerts/services/alertClientConfig';\nexport * from './lib/alerts/services/alerts.service';\nexport * from './lib/apiUrlToken';\nexport * from './lib/branding/brandBackground.directive';\nexport * from './lib/branding/brandConditionalBackgroundColor.directive';\nexport * from './lib/branding/brandConditionalColor.directive';\nexport * from './lib/branding/brandHoverColor.directive';\nexport * from './lib/branding/branding.module';\nexport * from './lib/branding/brandingProvider.service';\nexport * from './lib/branding/components/site-default-footer/site-default-footer.component';\nexport * from './lib/branding/components/site-default-header/site-default-header.component';\nexport * from './lib/branding/components/site-micro-footer/site-micro-footer.component';\nexport * from './lib/componentBase';\nexport * from './lib/componentWithViewStateBase';\nexport * from './lib/components/checkbox/checkbox.component';\nexport * from './lib/components/checkbox/checkbox.module';\nexport * from './lib/components/expand/expand.component';\nexport * from './lib/components/expand/expand.module';\nexport * from './lib/components/loading/loading.component';\nexport * from './lib/components/loading/loading.module';\nexport * from './lib/components/mat-tags/mat-tags.component';\nexport * from './lib/components/mat-tags/mat-tags.module';\nexport * from './lib/components/metadata-input/metadata-input.component';\nexport * from './lib/components/metadata-input/metadata-input.module';\nexport * from './lib/components/multi-email-input/multi-email-input.component';\nexport * from './lib/components/multi-email-input/multi-email-input.module';\nexport * from './lib/components/paginator/paginator.component';\nexport * from './lib/components/paginator/paginator.module';\nexport * from './lib/components/quantity-selector/quantity-selector.component';\nexport * from './lib/components/quantity-selector/quantity-selector.module';\nexport * from './lib/components/select-list/select-list.component';\nexport * from './lib/components/select-list/select-list.module';\nexport * from './lib/components/snapshot-inviteurls/snapshot-inviteurls.component';\nexport * from './lib/components/snapshot-inviteurls/snapshot-inviteurls.module';\nexport * from './lib/components/tabnavigator/tabnavigator.component';\nexport * from './lib/components/tabnavigator/tabnavigator.module';\nexport * from './lib/components/topicselector/customCheckValidator';\nexport * from './lib/components/topicselector/minTopicsSelectedValidator';\nexport * from './lib/components/topicselector/topic-selector.component';\nexport * from './lib/components/topicselector/topic-selector.module';\nexport * from './lib/components/progressbar/progressbar.component';\nexport * from './lib/components/progressbar/progressbar.module';\nexport * from './lib/components/model-visualization/model-visualization.module';\nexport * from './lib/components/model-visualization/model-canvas/model-canvas.component';\nexport * from './lib/components/model-visualization/model-factor-metric/model-factor-metric.component';\nexport * from './lib/components/model-visualization/model-factor-benchmark/model-factor-benchmark.component';\nexport * from './lib/components/model-visualization/model-factor-core/model-factor-core.component';\nexport * from './lib/components/model-visualization/model-factor-indicator/model-factor-indicator.component';\nexport * from './lib/components/model-visualization/model-factor-breakdown/model-factor-breakdown.component';\nexport * from './lib/components/model-visualization/dialog-integration/dialog-integration.component';\nexport * from './lib/dialogs/dialog-account/account.service';\nexport * from './lib/dialogs/dialog-account/dialog-account.component';\nexport * from './lib/dialogs/dialog-account/dialog-account.module';\nexport * from './lib/dialogs/dialog-account/resetPasswordRequestDto.model';\nexport * from './lib/dialogs/dialog-factorinformation/dialog-factorinformation.component';\nexport * from './lib/dialogs/dialog-factorinformation/dialog-factorinformation.module';\nexport * from './lib/dialogs/dialog-resourcedownload/dialog-resourcedownload.component';\nexport * from './lib/dialogs/dialog-resourcedownload/dialog-resourcedownload.module';\nexport * from './lib/dialogs/dialog-resourcedownload/resourceDownload.service';\nexport * from './lib/dialogs/dialog-subscribe/dialog-subscribe.component';\nexport * from './lib/dialogs/dialog-subscribe/dialog-subscribe.directive';\nexport * from './lib/dialogs/dialog-subscribe/dialog-subscribe.module';\nexport * from './lib/dialogs/dialog-support/contactDto';\nexport * from './lib/dialogs/dialog-support/contactService.service';\nexport * from './lib/dialogs/dialog-support/contactTypeDto';\nexport * from './lib/dialogs/dialog-support/dialog-support.component';\nexport * from './lib/dialogs/dialog-support/dialog-support.directive';\nexport * from './lib/dialogs/dialog-support/dialog-support.module';\nexport * from './lib/directives/backbutton/backbutton.directive';\nexport * from './lib/directives/backbutton/backbutton.module';\nexport * from './lib/directives/clickableTooltip/clickableTooltip.directive';\nexport * from './lib/directives/guards/guards.module';\nexport * from './lib/directives/guards/validChangeTokenGuard';\nexport * from './lib/directives/guards/validKeyGuard';\nexport * from './lib/directives/guards/validSnapshotKeyGuard';\nexport * from './lib/directives/guards/validTeamKeyGuard';\nexport * from './lib/errorhandling/error.model';\nexport * from './lib/errorhandling/errorHandler';\nexport * from './lib/errorhandling/errorService.module';\nexport * from './lib/errorhandling/errorServiceConfig';\nexport * from './lib/guides/components/imageslider/imageslider.component';\nexport * from './lib/guides/components/resumeguidehover/resumeguidehover.component';\nexport * from './lib/guides/dialogs/dialog-guide/dialog-guide.component';\nexport * from './lib/guides/dialogs/dialog-guides/dialog-guides.component';\nexport * from './lib/guides/directives/startguide/startguide.directive';\nexport * from './lib/guides/guides.module';\nexport * from './lib/guides/models/guideCollectionDto';\nexport * from './lib/guides/services/guidePopup.service';\nexport * from './lib/guides/services/guideStateInBackEnd.service';\nexport * from './lib/guides/services/guideStateInBrowser.service';\nexport * from './lib/guides/services/guidesClientConfig';\nexport * from './lib/models/brandingSettingsDto';\nexport * from './lib/models/channelDto';\nexport * from './lib/models/clientInfoDto';\nexport * from './lib/models/integrationDto';\nexport * from './lib/models/contextItemDto';\nexport * from './lib/models/keyValueDto';\nexport * from './lib/models/modelStructureDto';\nexport * from './lib/models/paginatedResponse';\nexport * from './lib/models/pagingOptions';\nexport * from './lib/models/selectListItem';\nexport * from './lib/models/userInfoDto';\nexport * from './lib/models/userSettingsDto';\nexport * from './lib/pipes/callback/callback.module';\nexport * from './lib/pipes/callback/callback.pipe';\nexport * from './lib/pipes/dateRange/ngx-dateRange.module';\nexport * from './lib/pipes/dateRange/ngx-dateRange.pipe';\nexport * from './lib/pipes/dateRange/ngx-dateRangeDto.model';\nexport * from './lib/pipes/segmentName/segmentName.module';\nexport * from './lib/pipes/segmentName/segmentName.pipe';\nexport * from './lib/pipes/slugify/ngx-slugify.module';\nexport * from './lib/pipes/slugify/ngx-slugify.pipe';\nexport * from './lib/pipes/truncate/truncate.module';\nexport * from './lib/pipes/truncate/truncate.pipe';\nexport * from './lib/results/components/age-indicator/age-indicator.component';\nexport * from './lib/results/components/arrow/arrow.component';\nexport * from './lib/results/components/arrow/ArrowUpdateService';\nexport * from './lib/results/components/badge-progression/badge-progression.component';\nexport * from './lib/results/components/badge-streak/badge-streak.component';\nexport * from './lib/results/components/badge/badge.component';\nexport * from './lib/results/components/badges/badges.component';\nexport * from './lib/results/components/benchmark-indicator/benchmark-indicator.component';\nexport * from './lib/results/components/delta-arrow/delta-arrow.component';\nexport * from './lib/results/components/doityourself/doityourself.component';\nexport * from './lib/results/components/doityourselfworkshops/doityourselfworkshops.component';\nexport * from './lib/results/components/factor-axis/factor-axis.component';\nexport * from './lib/results/components/factors/factors.component';\nexport * from './lib/results/components/filter-tags/filter-tags.component';\nexport * from './lib/results/components/focusareas/focusareas.component';\nexport * from './lib/results/components/footer/footer.component';\nexport * from './lib/results/components/impact-indicator/impact-indicator.component';\nexport * from './lib/results/components/limitationsapply/limitationsapply.component';\nexport * from './lib/results/components/model-switcher/model-switcher.component';\nexport * from './lib/results/components/nav-button/nav-button.component';\nexport * from './lib/results/components/participants/participants.component';\nexport * from './lib/results/components/quicktips/quicktips.component';\nexport * from './lib/results/components/recommendation/recommendation.component';\nexport * from './lib/results/components/recommendations/recommendations.component';\nexport * from './lib/results/components/research/research.component';\nexport * from './lib/results/components/result-indicator/result-indicator.component';\nexport * from './lib/results/components/roadmap/roadmap.component';\nexport * from './lib/results/components/teameffectiveness/teameffectiveness.component';\nexport * from './lib/results/components/termsupdated/termsupdated.component';\nexport * from './lib/results/components/tip-badge/tip-badge.component';\nexport * from './lib/results/components/trends/trends.component';\nexport * from './lib/results/components/trynow-professional/trynow-professional.component';\nexport * from './lib/results/components/update-in-progress/update-in-progress.component';\nexport * from './lib/results/components/userprofile/userprofile.component';\nexport * from './lib/results/components/video/video.component';\nexport * from './lib/results/components/widget-factorscore/widget-factorscore.component';\nexport * from './lib/results/components/widget-participationrate/widget-participationrate.component';\nexport * from './lib/results/dialogs/dialog-export-factorscores/dialog-export-factorscores.component';\nexport * from './lib/results/dialogs/dialog-export-factorscores/dialog-export-factorscores.directive';\nexport * from './lib/results/dialogs/dialog-export-teamlist/dialog-export-teamlist.component';\nexport * from './lib/results/dialogs/dialog-export-teamlist/dialog-export-teamlist.directive';\nexport * from './lib/results/dialogs/dialog-modelfilter/dialog-modelfilter.component';\nexport * from './lib/results/dialogs/dialog-settings/dialog-settings.component';\nexport * from './lib/results/dialogs/dialog-teamfilter/dialog-teamfilters.component';\nexport * from './lib/results/dialogs/dialog-teamfilter/dialog-teamfilters.directive';\nexport * from './lib/results/dialogs/dialog-notes/dialog-notes.component';\nexport * from './lib/results/dialogs/dialog-notes/dialog-notes.directive';\nexport * from './lib/results/interfaces/IResultsState';\nexport * from './lib/results/models/badgeDto';\nexport * from './lib/results/models/dataSetDto';\nexport * from './lib/results/models/dimensionResultDto';\nexport * from './lib/results/models/exportRequestDto';\nexport * from './lib/results/models/factorScoreDto';\nexport * from './lib/results/models/localUserDto.model';\nexport * from './lib/results/models/participantDto.model';\nexport * from './lib/results/models/snapshotDto.model';\nexport * from './lib/results/models/snapshotMetaDataDto';\nexport * from './lib/results/models/teamDto.model';\nexport * from './lib/results/models/teamListResponseDto';\nexport * from './lib/results/models/teamMetaDataDto';\nexport * from './lib/results/models/trendDataRequestDto.model';\nexport * from './lib/results/models/userListResponseDto';\nexport * from './lib/results/models/widgetDataDto';\nexport * from './lib/results/results.module';\nexport * from './lib/results/services/dimissPopupService';\nexport * from './lib/results/services/factorService';\nexport * from './lib/results/services/resultsClientConfig';\nexport * from './lib/results/services/terms.service';\nexport * from './lib/results/services/trend.service';\nexport * from './lib/results/services/userProfile.service';\nexport * from './lib/validators/domainValidator';\nexport * from './lib/validators/httpsHostValidator';\nexport * from './lib/validators/matchInputValidator';\nexport * from './lib/validators/maxSelectedValidator';\nexport * from './lib/viewModel/interfaces';\nexport * from './lib/viewModel/reloadStrategies/noReloadStrategy';\nexport * from './lib/viewModel/reloadStrategies/reloadOnPushStrategy';\nexport * from './lib/viewModel/services/sessionIdInterceptor.service';\nexport * from './lib/viewModel/services/sessionIdProvider.service';\nexport * from './lib/viewModel/userSettings.service';\nexport * from './lib/viewModel/viewModelState.module';\nexport * from './lib/viewModel/viewModelState.service';\nexport * from './lib/viewModel/viewModelStateConfig';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i3","i1.ViewModelStateBase","i4","i6","i7","i8","i1","i2.ActionManageComponent","i5","i6.OpenEditActionDialogDirective","i7.InterventionTypeToStringPipe","i8.InterventionOwnerToStringPipe","i1.ActionService","i2.ActionService","i7.PaginatorComponent","i9","i10.ActionTileComponent","i11.OpenAddActionDialogDirective","i12.OpenActionFiltersDialogDirective","i13.OpenExportActionsDialogDirective","DATE_POCTUATION_REGEX","i3.AlertsComponent","i2.DismissedAlertsService","i1.BrandingProvider","i2.ContactService","i3.OpenReportBugDialogDirective","i3.OpenSupportDialogDirective","i2.BrandConditionalBackgroundColorDirective","i3.SlugifyPipe","i6.SlugifyPipe","i1.UserSettingService","i1.ArrowUpdateService","i2.ExportService","i4.OpenAddActionDialogDirective","i5.OpenSubscribeDialogDirective","i4.SlugifyPipe","i4.DeltaArrowComponent","i5.AgeIndicatorComponent","i6.QuickTipsComponent","i7.OpenFactorInformationDialogDirective","i8.OpenSubscribeDialogDirective","i10.ModelFactorBenchmarkComponent","i11.ModelFactorBreakdownComponent","i12.OpenIntegrationDialogDirective","i3.ArrowUpdateService","i6.DeltaArrowComponent","i7.AgeIndicatorComponent","i8.QuickTipsComponent","i9.OpenNotesDialogDirective","i10.OpenFactorInformationDialogDirective","i11.ProgressbarComponent","i13.ModelFactorBenchmarkComponent","i14.ModelFactorBreakdownComponent","i13.ModelFactorIndicatorComponent","i14.ModelFactorBenchmarkComponent","i15.ModelFactorBreakdownComponent","i5.ArrowComponent","i6.OpenSettingsDialogDirective","i7.OpenExportFactorScoresDialogDirective","i8.OpenNotesDialogDirective","i9.ModelFactorMetricComponent","i10.ModelFactorCoreComponent","i11.DateRangePipe","i4.ResourceDownloadService","i2.GuidesClientConfig","i1.GuidePopupService","i6.CheckboxComponent","i7.ImageSliderComponent","i4.OpenGuideDialogDirective","i1.BadgeStreakComponent","i2.BadgeProgressionComponent","i3.BadgeComponent","i4.BadgeStreakComponent","i1.BrandBackgroundDirective","i2.OpenResourceDownloadDialogDirective","i2.OpenAddActionDialogDirective","i3.OpenSubscribeDialogDirective","i4.OpenResourceDownloadDialogDirective","i4.OpenSubscribeDialogDirective","i6.OpenSubscribeDialogDirective","i8.DeltaArrowComponent","i9.TipBadgeComponent","i10.OpenNotesDialogDirective","i2.OpenNotesDialogDirective","i7.FactorAxisComponent","i8.LimitationsApplyComponent","i10.SlugifyPipe","i4.ImpactIndicatorComponent","i2.OpenModelFilterDialog","i2.BrandingProvider","i4.OpenFactorInformationDialogDirective","i5.DeltaArrowComponent","i6.BenchmarkIndicatorComponent","i7.ResultIndicatorComponent","i8.ImpactIndicatorComponent","i9.QuickTipsComponent","i10.DoItYourselfWorkshopsComponent","i3.RecommendationComponent","i2.BrandBackgroundDirective","i3.BrandBackgroundDirective","AccountService","i2.UserProfileService","i3.AccountService","i2.DeltaArrowComponent","i1.SessionIdProvider"],"mappings":"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"}