@the-liberators/ngx-scrumteamsurvey-tools 2.3.1 → 2.3.2
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.
- package/esm2022/lib/components/tabnavigator/tabnavigator.component.mjs +35 -0
- package/esm2022/lib/components/tabnavigator/tabnavigator.module.mjs +28 -0
- package/esm2022/lib/results/components/nav-button/nav-button.component.mjs +2 -2
- package/esm2022/lib/results/models/teamMetaDataDto.mjs +5 -1
- package/esm2022/lib/validators/matchInputValidator.mjs +1 -1
- package/esm2022/public-api.mjs +5 -1
- package/fesm2022/the-liberators-ngx-scrumteamsurvey-tools.mjs +62 -4
- package/fesm2022/the-liberators-ngx-scrumteamsurvey-tools.mjs.map +1 -1
- package/lib/components/tabnavigator/tabnavigator.component.d.ts +17 -0
- package/lib/components/tabnavigator/tabnavigator.module.d.ts +9 -0
- package/lib/results/models/teamMetaDataDto.d.ts +14 -0
- package/package.json +1 -1
- package/public-api.d.ts +4 -0
|
@@ -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/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/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/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/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/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/brandConditionalColor.directive.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/branding/brandConditionalBackgroundColor.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/add-calendar/index.ts","../../../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/dialogs/dialog-subscribe/dialog-subscribe.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/community/components/gethelp-form/gethelp-form.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/community/components/gethelp-form/gethelp-form.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/community/components/meetups/meetups.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/community/components/meetups/meetups.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/community/components/recentcontent/recentcontent.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/community/components/recentcontent/recentcontent.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/community/community.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/community/models/meetupDto.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/community/models/resourceDto.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/community/services/communityClientConfig.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/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/pipes/segmentName/segmentName.pipe.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/pipes/callback/callback.pipe.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/scale-selector/scale-selector.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/scale-selector/scale-selector.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/dialogs/dialog-factorinformation/dialog-factorinformation.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/pipes/callback/callback.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/pipes/segmentName/segmentName.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/scale-selector/scale-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/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/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/directives/backbutton/backbutton.directive.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/directives/backbutton/backbutton.module.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/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/directives/startguide/startguide.directive.ts","../../../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/guides.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/models/clientInfoDto.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/models/contextItemDto.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/pipes/slugify/ngx-slugify.pipe.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/pipes/slugify/ngx-slugify.module.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/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/coachingcenter-teaser/coachingcenter-teaser.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/coachingcenter-teaser/coachingcenter-teaser.component.html","../../../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/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/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/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/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/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/components/liberatorkits/liberatorkits.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/liberatorkits/liberatorkits.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/model-factor-breakdown/model-factor-breakdown.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/model-factor-breakdown/model-factor-breakdown.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/results/components/quicktips/quicktips.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/quicktips/quicktips.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/model-factor/model-factor.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/model-factor/model-factor.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/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/components/model/model.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/model/model.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/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/models/teamMetaDataDto.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/teamdashboard-teaser/teamdashboard-teaser.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/teamdashboard-teaser/teamdashboard-teaser.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/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/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/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/userListResponseDto.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/models/widgetDataDto.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/results/services/resultsClientConfig.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/validators/domainValidator.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/validators/maxSelectedValidator.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/validators/matchInputValidator.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})\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 <div class=\"back button\" *ngIf=\"items.page > 0\" (click)=\"back()\">\n back\n </div>\n <div class=\"next button primary\" *ngIf=\"((items.page + 1) * items.itemsPerPage) < items.totalItems\" (click)=\"next()\">\n next\n </div>\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(1)).subscribe(aggregate => {\n if (aggregate) {\n aggregate.loaded = true;\n this.map(aggregate);\n this.data.next(this.result);\n this.updating.next(false);\n }\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.log(\"No reload strategy connected. We are reloading manually in 3 seconds.\");\n this.forcedReload();\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","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: string;\n interventionSummary: InterventionSummaryDto;\n recommendation: FactorRecommendationDto;\n effects: FactorEffectDto[];\n notes: string[];\n anonymized: boolean;\n lastMeasured: Date;\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 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(InterventionFilterType.All);\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\nexport class GuideSettingsDto {\n constructor() {\n this.completedSteps = [];\n }\n\n activeGuideKey: string;\n completedSteps: string[];\n}\n\nexport class ModelFilter {\n constructor(interventionFilterType: InterventionFilterType) {\n this.interventionFilter = interventionFilterType;\n }\n\n interventionFilter: InterventionFilterType;\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","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 productOwner = \"ProductOwner\",\n scrumMaster = \"ScrumMaster\",\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})\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.productOwner:\n return \"Product Owner\";\n case InterventionOwnerEnum.scrumMaster:\n return \"Scrum Master\";\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})\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})\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})\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.teamMetaData != null) {\n this.teams.push(new ActionOptionDto(success.teamMetaData.teamKey, success.teamMetaData.name));\n }\n else {\n this.teams = success.factorScores.composition.points.points.map(p => new ActionOptionDto(p.publicKey, p.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.updating.next(true);\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.updating.next(true);\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 <mat-form-field appearance=\"fill\" *ngIf=\"showTeamSelector\">\n <mat-label>Which team owns this action?</mat-label>\n <mat-select formControlName=\"teamKey\" id=\"teamKey\">\n <mat-option class=\"select-option\" *ngFor=\"let team of teams\" [value]=\"team.key\">{{team.label}}</mat-option>\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=\"3\" maxlength=\"500\"></textarea>\n </mat-form-field>\n <mat-form-field appearance=\"fill\" *ngIf=\"!prefill.expectedImpactOn || prefill.expectedImpactOn.length == 0\" subscriptSizing=\"dynamic\">\n <mat-label>Where do you expect improvement?</mat-label>\n <mat-select multiple formControlName=\"expectedImpactOn\" id=\"expectedImpactOn\">\n <mat-option class=\"select-option\" [ngClass]=\"{'lower' : factor.lower}\" *ngFor=\"let factor of factors\" [value]=\"factor.value\">{{factor.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field appearance=\"fill\" *ngIf=\"!prefill.owner\" subscriptSizing=\"dynamic\">\n <mat-label>Who owns this action?</mat-label>\n <mat-select formControlName=\"owner\" id=\"owner\">\n <mat-option class=\"select-option\" *ngFor=\"let owner of ownerList\" [value]=\"owner.key\">{{owner.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field appearance=\"fill\" *ngIf=\"!prefill.type\" subscriptSizing=\"dynamic\">\n <mat-label>What is the type of action?</mat-label>\n <mat-select formControlName=\"type\" id=\"type\">\n <mat-option class=\"select-option\" *ngFor=\"let interventionType of interventionTypeList\" [value]=\"interventionType.key\">{{interventionType.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field appearance=\"fill\" *ngIf=\"!prefill.state || action\" subscriptSizing=\"dynamic\">\n <mat-label>What is the state of this action?</mat-label>\n <mat-select formControlName=\"state\" id=\"state\">\n <mat-option class=\"select-option\" *ngFor=\"let state of stateList\" [value]=\"state.key\">{{state.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field appearance=\"fill\" *ngIf=\"!prefill.url || prefill.url.length == 0\" 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 <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 <a class=\"button borderless delete\" href=\"javascript:void(null);\" (click)=\"delete()\" id=\"delete\" *ngIf=\"action\"><span class=\"icon ph-trash\"></span> delete</a>\n <a class=\"button borderless cancel\" href=\"javascript:void(null);\" (click)=\"cancel()\" id=\"cancel\" *ngIf=\"form.dirty || action\"><span class=\"icon ph-x-circle\"></span> cancel</a>\n </div>\n <input class=\"button primary\" type=\"submit\" id=\"submit\" value=\"save\" />\n </div>\n</form>\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})\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})\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})\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 <h1 mat-dialog-title *ngIf=\"!data.action\">Add Action</h1>\n <h1 mat-dialog-title *ngIf=\"data.action\">Edit Action</h1>\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})\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 this.viewModelState.updating.next(true);\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 this.viewModelState.updating.next(true);\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 this.viewModelState.updating.next(true);\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 this.viewModelState.updating.next(true);\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 this.viewModelState.updating.next(true);\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.updating.next(true);\n }\n\n protected onDataUpdate(data: IActionState): void {\n };\n}\n","<div [id]=\"'action-' + action.publicKey\" class=\"wirebox action contentwithborders\" [ngClass]=\"[multipleTeams ? action.team.colorString : '', action.isDue ? 'due' : '']\" *ngIf=\"!action.deleted\" editActionDialog [action]=\"action\">\n <div class=\"summary property-description\" [innerHTML]=\"action.description\">\n </div>\n <div class=\"expectedeffect\">\n <h4>Should improve</h4>\n <span class=\"badge positive\" *ngFor=\"let area of action.expectedImpactOnLabels\">{{ area }}</span>\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 <div class=\"property property-team\" *ngIf=\"multipleTeams\"><i class=\"ph-users-three-bold icon\"></i> {{action.team.name}}</div>\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 <div class=\"property property-url\" *ngIf=\"action.url\"><i class=\"ph-arrow-square-in-bold icon\"></i> <a [href]=\"action.url\" target=\"_blank\">open detail url</a></div>\n <div class=\"property property-due\" *ngIf=\"action.due\"><i class=\"ph-calendar-bold icon\" *ngIf=\"!action.isDue\"></i><i class=\"ph-bell-simple-ringing-bold\" *ngIf=\"action.isDue\"></i> Due on {{action.due | date}}</div>\n </div>\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.'\" *ngIf=\"action.state == 'Open'\" (click)=\"impede($event, action)\"></span>\n <span class=\"status impeded\" matTooltip=\"This action is impeded. The team needs urgent help from outside team to complete this action.\" *ngIf=\"action.state == 'Impeded'\" (click)=\"unimpede($event, action)\">\n <img src=\"/assets/img/impeded.svg\" class=\"icon\">\n </span>\n <div>\n <span class=\"status obsolete ph-eye-slash-bold\" matTooltip=\"This action was marked obsolete. Click to re-open this action\" *ngIf=\"action.state == 'Obsolete'\" (click)=\"open($event, action)\"></span>\n <span class=\"status checked ph-check-circle-fill\" matTooltip=\"Mark this action as uncompleted\" *ngIf=\"action.state == 'Completed'\" (click)=\"open($event, action)\"></span>\n <span class=\"status unchecked ph-circle\" matTooltip=\"Mark this action as completed\" *ngIf=\"action.state == 'Open' || action.state == 'Impeded'\" (click)=\"complete($event, action)\"></span>\n </div>\n </div>\n</div>\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';\n\n@Component({\n templateUrl: './dialog-filters.component.html',\n styleUrls: ['./dialog-filters.component.less']\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>, 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 this.stateFilterList = [];\n this.stateFilterList.push(new ActionOptionDto(null, \"Show all\"));\n this.stateFilterList.push(new ActionOptionDto(InterventionStateEnum.open, \"Only open\"));\n this.stateFilterList.push(new ActionOptionDto(InterventionStateEnum.due, \"Only due\"));\n this.stateFilterList.push(new ActionOptionDto(InterventionStateEnum.completed, \"Only completed\"));\n this.stateFilterList.push(new ActionOptionDto(InterventionStateEnum.impeded, \"Only impeded\"));\n this.stateFilterList.push(new ActionOptionDto(InterventionStateEnum.obsolete, \"Only canceled\"));\n\n this.ownerFilterList = [];\n this.ownerFilterList.push(new ActionOptionDto(null, \"Show all\"));\n this.ownerFilterList.push(new ActionOptionDto(InterventionOwnerEnum.entireTeam, \"Entire team\"));\n this.ownerFilterList.push(new ActionOptionDto(InterventionOwnerEnum.teamMember, \"Team member\"));\n this.ownerFilterList.push(new ActionOptionDto(InterventionOwnerEnum.scrumMaster, \"Scrum Master\"));\n this.ownerFilterList.push(new ActionOptionDto(InterventionOwnerEnum.productOwner, \"Product Owner\"));\n this.ownerFilterList.push(new ActionOptionDto(InterventionOwnerEnum.management, \"Management\"));\n this.ownerFilterList.push(new ActionOptionDto(InterventionOwnerEnum.stakeholder, \"Stakeholder\"));\n this.ownerFilterList.push(new ActionOptionDto(InterventionOwnerEnum.other, \"Other\"));\n\n this.typeFilterList = [];\n this.typeFilterList.push(new ActionOptionDto(null, \"Show all\"));\n this.typeFilterList.push(new ActionOptionDto(InterventionTypeEnum.conversation, \"Conversation\"));\n this.typeFilterList.push(new ActionOptionDto(InterventionTypeEnum.research, \"Research\"));\n this.typeFilterList.push(new ActionOptionDto(InterventionTypeEnum.involveOthers, \"Involve others\"));\n this.typeFilterList.push(new ActionOptionDto(InterventionTypeEnum.runExperiment, \"Run experiment\"));\n this.typeFilterList.push(new ActionOptionDto(InterventionTypeEnum.workshop, \"Workshop\"));\n this.typeFilterList.push(new ActionOptionDto(InterventionTypeEnum.other, \"Other\"));\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})\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 <div class=\"filters\" *ngIf=\"userSettings.settings && userSettings.settings.user\">\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 <mat-option class=\"select-option\" *ngFor=\"let state of stateFilterList\" [value]=\"state.key\">{{state.label}}</mat-option>\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 <mat-option class=\"select-option\" *ngFor=\"let state of ownerFilterList\" [value]=\"state.key\">{{state.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field class=\"team\" *ngIf=\"multipleTeams\" 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 <mat-option class=\"select-option\" *ngFor=\"let team of teams\" [value]=\"team.key\">{{team.label}}</mat-option>\n </mat-select>\n </mat-form-field>\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 <mat-option class=\"select-option\" *ngFor=\"let state of typeFilterList\" [value]=\"state.key\">{{state.label}}</mat-option>\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 <mat-option class=\"select-option\" *ngFor=\"let state of expectedEffectOnList\" [value]=\"state.key\">{{state.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n\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</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})\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.</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 <mat-error *ngIf=\"form.controls.start.hasError('matStartDateInvalid')\">Invalid start date</mat-error>\n <mat-error *ngIf=\"form.controls.end.hasError('matEndDateInvalid')\">Invalid end date</mat-error>\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})\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 { 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, 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})\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\n constructor(protected snackBar: MatSnackBar, @Inject(VIEWSTATE_USERSETTINGS_STRATEGY) protected userSettings: IUserSettingStrategy, 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\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.settings.user.interventionFilter.keyword = this.keywordControl.value;\n this.userSettings.settings.user.interventionFilter.page = 0;\n this.loadActions();\n });\n\n if (this.overrideFilter) {\n this.userSettings.settings.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.settings.user.interventionFilter.pageSize = event.pageSize;\n this.userSettings.settings.user.interventionFilter.page = event.pageIndex;\n await this.loadActions();\n }\n\n public async setSort(sort: string) {\n this.userSettings.settings.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.settings = data.userInfo.settings;\n\n this.filterCount = 0;\n if (this.userSettings.settings.user.interventionFilter.owner != null) {\n this.filterCount++;\n }\n\n if (this.userSettings.settings.user.interventionFilter.type != null) {\n this.filterCount++;\n }\n\n if (this.userSettings.settings.user.interventionFilter.state != null) {\n this.filterCount++;\n }\n\n if (this.userSettings.settings.user.interventionFilter.expectedImpactOn != null) {\n this.filterCount++;\n }\n\n if (this.userSettings.settings.user.interventionFilter.teamKey != null) {\n this.filterCount++;\n }\n };\n\n public async loadActions() {\n this.actions.items = null;\n await this.userSettings.apply();\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 <span class=\"filtercount\" *ngIf=\"filterCount > 0\">{{filterCount}}</span></div>\n <div class=\"button borderless sort\" id=\"actions-sort\" [matMenuTriggerFor]=\"matSortingMenu\"><span class=\"ph-funnel-simple-bold icon\"></span> {{userSettings.settings.user.interventionFilter.sort || \"Sort\"}}</div>\n <mat-menu #matSortingMenu=\"matMenu\">\n <button mat-menu-item *ngFor=\"let sortOption of sortOptionsList\" (click)=\"setSort(sortOption.key)\">\n {{sortOption.label}}\n </button>\n </mat-menu>\n <div class=\"button borderless\" id=\"export-actions\" exportActionsDialog *ngIf=\"isLoggedIn\"><span class=\"ph-download-simple icon\"></span> Export</div>\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 <div class=\"loading\" *ngIf=\"!actions.items\">\n <div class=\"loading-icon dark\"></div>\n </div>\n\n <div class=\"wirebox calltoaction\" *ngIf=\"actions.items && actions.items.length == 0\">\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 <div class=\"actions\" *ngIf=\"actions && actions.items\">\n <action-tile *ngFor=\"let action of actions.items\" [action]=\"action\" [multipleTeams]=\"multipleTeams\" [actionManageComponent]=\"actionManageComponent\"></action-tile>\n </div>\n\n <paginator [items]=\"actions\" (page)=\"setPaging($event)\" *ngIf=\"actions && actions.items && actions.totalItems > 0\"></paginator>\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\n@Injectable({ providedIn: 'root' })\nexport class ActionClientConfig {\n private config?: ActionConfigDto;\n\n constructor(@Optional() @Inject(AactionConfigToken) 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\nexport class ActionConfigDto {\n}\n\nexport const AactionConfigToken = new InjectionToken<ActionConfigDto>(\n 'actions-angular.config'\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 { ViewModelStateBase, VIEWSTATE_PROVIDER } 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 { 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';\n\n@Component({\n selector: 'alerts',\n templateUrl: './alerts.component.html',\n styleUrls: ['./alerts.component.less']\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 private dismissedAlerts: string[];\n public filter: AlertFilterDto = { itemsPerPage: this.pageSize, page: 0, totalItems: 0 };\n public viewStateSubscription: Subscription;\n\n constructor(private alertService: AlertService, protected snackBar: MatSnackBar, @Inject(LOCAL_STORAGE) private storage: StorageService, @Inject(VIEWSTATE_PROVIDER) private viewModelState: ViewModelStateBase<IAlertState>) {\n super(snackBar);\n }\n\n ngOnInit(): void {\n this.dismissedAlerts = this.storage.get(\"dismissed-alerts\") || [];\n\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.canBeDismissed) {\n return alert.isDismissed;\n }\n else {\n return this.dismissedAlerts.indexOf(alert.key) != -1;\n }\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.dismissedAlerts.push(alert.key);\n this.unreadAlerts.items = this.unreadAlerts.items.filter(p => p.key != alert.key);\n this.storage.set(\"dismissed-alerts\", this.dismissedAlerts);\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","<div class=\"alerts\" *ngIf=\"filteredAlerts && filteredAlerts.length > 0\">\n <div class=\"alert-item\" *ngFor=\"let alert of filteredAlerts\">\n <div class=\"description\" [innerHtml]=\"alert.body\"></div>\n <div class=\"bar\">\n <span class=\"icon ph-warning-fill\" *ngIf=\"alert.urgency == 'warning'\"></span>\n <span class=\"icon ph-info\" *ngIf=\"alert.urgency == 'information'\"></span>\n <span class=\"icon ph-circle-wavy-warning-fill\" *ngIf=\"alert.urgency == 'critical'\"></span>\n <div class=\"date\">\n {{alert.posted | date : 'short'}}\n </div>\n <div class=\"action\" *ngIf=\"alert.url\"><a target=\"_blank\" [href]=\"alert.url\">Explore ></a></div>\n <div class=\"dismiss\" *ngIf=\"!isDismissed(alert)\"><a href=\"javascript:void(null);\" (click)=\"dismiss(alert)\">Dismiss</a></div>\n </div>\n </div>\n</div>\n\n<div class=\"wirebox calltoaction\" *ngIf=\"!filteredAlerts || filteredAlerts.length == 0\">\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<mat-paginator *ngIf=\"filteredAlerts && filteredAlerts.length > filter.itemsPerPage\" [length]=\"filter.totalItems\" hidePageSize=\"true\" [pageSize]=\"filter.itemsPerPage\" (page)=\"setPaging($event)\"></mat-paginator>\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})\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})\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 { 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';\n\n@NgModule({\n imports: [MatDialogModule, MatPaginatorModule, RouterModule, CommonModule, StorageServiceModule],\n declarations: [AlertsComponent, OpenAlertsDialogDirective, DialogAlertsComponent],\n exports: [AlertsComponent, OpenAlertsDialogDirective, DialogAlertsComponent]\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';\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\nexport class AlertConfigDto {\n}\n\nexport const AlertConfigToken = new InjectionToken<AlertConfigDto>(\n 'alert-angular.config'\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})\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: '[brandConditionalColor]',\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: '[brandConditionalBackgroundColor]',\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: '[brandHoverColor]',\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 brokerUrl: string;\n accentColor: string;\n themeColor: string;\n backgroundColor: string;\n neutralColor: string;\n logoUrl: string;\n publicKey: string;\n platformName: string;\n name: string;\n companyUrl: string;\n isDefault: boolean;\n hasBroker: boolean;\n showLiberatorMerchandise: 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}\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})\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 <h1 mat-dialog-title *ngIf=\"form.controls.type.value == 0\">Share feedback</h1>\n <h1 mat-dialog-title *ngIf=\"form.controls.type.value == 1\">Report bug</h1>\n <h1 mat-dialog-title *ngIf=\"form.controls.type.value == 2\">Ask for help</h1>\n <h1 mat-dialog-title *ngIf=\"form.controls.type.value == 3\">Ask a question</h1>\n <h1 mat-dialog-title *ngIf=\"form.controls.type.value == 4\">Contact sales</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\" *ngIf=\"!success\">\n <p *ngIf=\"form.controls.type.value == 0\">We'd love to hear your feedback, and will do our best to improve!</p>\n <p *ngIf=\"form.controls.type.value == 1\">We're sorry you ran into a bug. Tell us what happend and we'll fix it.</p>\n <p *ngIf=\"form.controls.type.value == 2\">Looking for help? Let us know how we can assist you best.</p>\n <p *ngIf=\"form.controls.type.value == 3\">Got a question for us? Let us know and we'll get back quickly.</p>\n <p *ngIf=\"form.controls.type.value == 4\">Lets us know how we can help you.</p>\n\n <div class=\"errors\" *ngIf=\"error\">\n {{error}}\n </div>\n\n <mat-form-field class=\"type\" appearance=\"fill\" *ngIf=\"!typePrefilled\" subscriptSizing=\"dynamic\">\n <mat-label>Type of request</mat-label>\n <mat-select formControlName=\"type\" id=\"question-type\">\n <mat-option class=\"select-option\" *ngFor=\"let item of contactTypes\" [value]=\"item.id\">{{item.label}}</mat-option>\n </mat-select>\n <mat-error *ngIf=\"form.controls.type.errors && submitted\">\n <div *ngIf=\"form.controls.type.errors.required\">Please select the type of request</div>\n </mat-error>\n </mat-form-field>\n <mat-form-field appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label *ngIf=\"form.controls.type.value == 0\">What would you like us to improve?</mat-label>\n <mat-label *ngIf=\"form.controls.type.value == 1\">Please describe the problem</mat-label>\n <mat-label *ngIf=\"form.controls.type.value == 2\">How can we help you?</mat-label>\n <mat-label *ngIf=\"form.controls.type.value == 3\">Please describe your question</mat-label>\n <mat-label *ngIf=\"form.controls.type.value == 4\">What are you looking for?</mat-label>\n <textarea formControlName=\"body\" id=\"question-description\" matInput></textarea>\n <mat-error *ngIf=\"form.controls.body.errors && submitted\">\n <div *ngIf=\"form.controls.body.errors.required\">Please enter this field</div>\n </mat-error>\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 <mat-error *ngIf=\"form.controls.email.errors && submitted\">\n <div *ngIf=\"form.controls.email.errors.email\">Please provide a valid e-mail</div>\n </mat-error>\n </mat-form-field>\n <button class=\"button primary\" type=\"submit\" [ngClass]=\"{'loading': sending }\" (click)=\"submitContactForm()\">submit</button>\n </form>\n <div class=\"confirmation\" *ngIf=\"success\">\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</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})\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})\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})\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})\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})\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})\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","<footer *ngIf=\"loaded\">\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 <li *ngFor=\"let item of mainMenu\"><a [href]=\"item.url\">{{item.name}}</a></li>\n </ul>\n </div>\n <div class=\"footer-column footer-links\">\n <h4>Resources</h4>\n <ul>\n <li *ngFor=\"let item of resourcesMenu\"><a [href]=\"item.url\" target=\"_blank\">{{item.name}}</a></li>\n </ul>\n </div>\n <div class=\"footer-column footer-links\">\n <h4>Support</h4>\n <ul>\n <li *ngFor=\"let item of supportMenu\"><a [href]=\"item.url\" target=\"_blank\">{{item.name}}</a></li>\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\n <div class=\"section-content\">\n <div class=\"footer-bottom\">\n <a class=\"footer-logo\" [href]=\"channel.siteUrl\">\n <img class=\"responsive\" *ngIf=\"channel.branding.logoLargeUrl\" [src]=\"channel.branding.logoLargeUrl\" [title]=\"channel.name\" />\n </a>\n <div class=\"footer-socialmedia\">\n <a *ngFor=\"let item of socialMediaMenu\" class=\"footer-socialmedia-icon\" [href]=\"item.url\" target=\"_blank\"><span [class]=\"'ph ' + item.icon\"></span></a>\n </div>\n </div>\n <div class=\"footer-companyinformation\">\n {{channel.poweredBy}}\n </div>\n </div>\n</footer>\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})\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","<header *ngIf=\"channel\">\n <a class=\"header header-logo\" [href]=\"channel.siteUrl\">\n <img class=\"responsive\" *ngIf=\"channel.branding.logoLargeUrl\" [src]=\"channel.branding.logoLargeUrl\" [title]=\"channel.name\"/>\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 <ng-container *ngFor=\"let item of mainMenu\">\n <li>\n <a *ngIf=\"item.url\" [href]=\"item.url\">{{item.name}}</a>\n <span *ngIf=\"!item.url\">{{item.name}}</span>\n </li>\n <li *ngIf=\"item.children\">\n <ul>\n <li *ngFor=\"let child of item.children\"><a [href]=\"item.url\">{{child.name}}</a></li>\n </ul>\n </li>\n </ng-container>\n </ul>\n </div>\n <div class=\"label\">\n Menu\n </div>\n </div>\n <a class=\"nav nav-try responsive-hidesmall\" [href]=\"cta.url\" *ngIf=\"cta\">\n {{cta.name}}\n </a>\n </div>\n</header>\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})\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","<ng-container *ngIf=\"loaded\">\n <div class=\"item\" *ngFor=\"let item of legalMenu\"><a [href]=\"item.url\">{{item.name}}</a></div>\n <div class=\"item\" id=\"footer-reportbug\"><a [routerLink]=\"[]\" reportBugDialog>Report a bug</a></div>\n</ng-container>\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","// Public classes.\nexport { NgAddToCalendarService } from './service/ng-add-to-calendar.service';\nexport { NgAddToCalendarModule } from './ng-add-to-calendar.module';\nexport { ICalendarEvent } from './model/calendar-event.model';\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})\nexport class DialogSubscribeComponent {\n public subscribeUrl: string;\n public companyUrl: string;\n\n constructor(@Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IViewState>) {\n this.state.data.pipe(take(1)).subscribe(success => {\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>Improve more effectively</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>Empower Agile teams in your organization to take charge over their improvements.</p>\n <ul>\n <li>All feedback is visible (not just the top 3)</li>\n <li>Improve with multiple teams from our Teams Dashboard.</li>\n <li>Analyze team trends over time</li>\n <li>See scoring ranges for your team</li>\n <li>Compare against different benchmarks</li>\n <li>Over 50+ do-it-yourself workshops targeted at specific themes in the survey.</li>\n <li>Pay per team; start small and scale as you go</li>\n <li>Unlimited data retention</li>\n <li>Multi-factor authentication</li>\n </ul>\n <p></p>\n <a class=\"button primary\" [href]=\"subscribeUrl\">subscribe now</a>\n <div class=\"link\">\n <a [href]=\"companyUrl\">learn more ></a>\n </div>\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})\nexport class OpenSubscribeDialogDirective {\n constructor(private dialog: MatDialog) {\n }\n\n @HostListener('click')\n onClick(): void {\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 { 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],\n declarations: [DialogSubscribeComponent, OpenSubscribeDialogDirective],\n exports: [DialogSubscribeComponent, OpenSubscribeDialogDirective]\n})\nexport class DialogSubscribeModule { }\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})\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 { Component, Inject } from '@angular/core';\nimport { FormGroupDirective, Validators, FormBuilder, FormGroup } from '@angular/forms';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { ContactDto } from '../../../dialogs/dialog-support/contactDto';\nimport { ContactService } from '../../../dialogs/dialog-support/contactService.service';\nimport { ContextItemDto } from '../../../models/contextItemDto';\nimport { ViewModelStateBase, VIEWSTATE_PROVIDER } from '../../../viewModel/viewModelState.service';\nimport { ICommunityState } from '../../interfaces/ICommunityState';\n\n@Component({\n selector: 'gethelp-form',\n templateUrl: './gethelp-form.component.html',\n styleUrls: ['./gethelp-form.component.less']\n})\nexport class GetHelpFormComponent extends ComponentWithViewStateBase<ICommunityState> {\n public requestList: string[] = [];\n public form: FormGroup;\n private context: ContextItemDto[];\n public submitted: boolean;\n\n constructor(private contactService: ContactService, private formBuilder: FormBuilder, @Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<ICommunityState>, protected snackBar: MatSnackBar) {\n super(state, snackBar)\n }\n\n public ngOnInit() {\n super.ngOnInit();\n this.createForm();\n this.requestList.push(\"I don't understand something in our results\");\n this.requestList.push(\"My team doesn't know where or how to start improving\");\n this.requestList.push(\"We're stuck and we don't know how to move forward\");\n this.requestList.push(\"Help my organization get more out of this tool\");\n this.requestList.push(\"I'm looking for personal coaching or mentoring\");\n this.requestList.push(\"Something else\");\n }\n\n public onSubmit(formDirective: FormGroupDirective) {\n if (!this.form.valid) { return; }\n this.submitted = true;\n\n var request: ContactDto = {\n type: 2,\n requests: this.form.get(\"requests\").value,\n fromEmail: this.form.get(\"email\").value,\n body: this.form.get(\"body\").value,\n context: this.context\n }\n\n this.contactService.send(request).subscribe(success => {\n this.submitted = false;\n this.form.reset();\n formDirective.resetForm();\n this.showSuccess(\"Awesome! We will get back to you shortly.\");\n }, error => {\n this.showError(\"Yikes! We ran into an issue while sending your request. Please try again or, or contact info@columinity.com directly.\")\n });\n }\n\n public cancel() {\n this.form.reset();\n }\n\n private createForm(): void {\n this.form = this.formBuilder.group({\n body: [\"\", [Validators.required, Validators.maxLength(500)]],\n requests: [\"\", Validators.required],\n email: [\"\", [Validators.required, Validators.email]]\n });\n }\n\n protected onDataUpdate(data: ICommunityState): void {\n this.context = data.context;\n };\n}\n","<form [formGroup]=\"form\" (ngSubmit)=\"onSubmit(formDirective)\" #formDirective=\"ngForm\" class=\"gethelp-form form\">\n <mat-form-field appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>What would you like help with?</mat-label>\n <mat-select multiple formControlName=\"requests\" id=\"requests\">\n <mat-option class=\"select-option\" *ngFor=\"let request of requestList\" [value]=\"request\">{{request}}</mat-option>\n </mat-select>\n <mat-error *ngIf=\"form.controls.requests.errors\">\n <div *ngIf=\"form.controls.requests.errors.required\">Please select where you need help</div>\n </mat-error>\n </mat-form-field>\n <mat-form-field appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>Enter a short description of the kind of help you need</mat-label>\n <textarea matInput formControlName=\"body\" id=\"body\" rows=\"3\" maxlength=\"500\"></textarea>\n <mat-error *ngIf=\"form.controls.body.errors\">\n <div *ngIf=\"form.controls.body.errors.required\">Please describe how we can help you</div>\n <div *ngIf=\"form.controls.body.errors.maxlength\">Please limit to 500 characters</div>\n </mat-error>\n </mat-form-field>\n <mat-form-field appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>Your email address</mat-label>\n <input matInput formControlName=\"email\" id=\"email\" />\n <mat-error *ngIf=\"form.controls.email.errors\">\n <div *ngIf=\"form.controls.email.errors.required\">Please enter a description</div>\n <div *ngIf=\"form.controls.email.errors.email\">Please enter a valid e-mail address</div>\n </mat-error>\n </mat-form-field>\n <div class=\"toolbar leftright\">\n <div>\n <a class=\"button borderless cancel\" href=\"javascript:void(null);\" (click)=\"cancel()\" id=\"cancel\" *ngIf=\"form.dirty\"><span class=\"icon ph-x-circle\"></span> cancel</a>\n </div>\n <input class=\"button primary\" type=\"submit\" id=\"submit\" value=\"Get help!\" [ngClass]=\"{'loading': submitted}\" [disabled]=\"submitted\" />\n </div>\n</form>\n","import { Component, Inject } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\nimport * as moment from 'moment';\nimport { ICalendarEvent, NgAddToCalendarService } from '../../../add-calendar';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { ViewModelStateBase, VIEWSTATE_PROVIDER } from '../../../viewModel/viewModelState.service';\nimport { ICommunityState } from '../../interfaces/ICommunityState';\nimport { MeetupDto } from '../../models/meetupDto';\n\n@Component({\n selector: 'meetups',\n templateUrl: './meetups.component.html',\n styleUrls: ['./meetups.component.less']\n})\nexport class MeetupsComponent extends ComponentWithViewStateBase<ICommunityState> {\n public googleCalendarEventUrl: SafeUrl;\n public outlookCalendarEventUrl: SafeUrl;\n public icalCalenderEventUrl: SafeUrl;\n public meetups: MeetupDto[] = [];\n public subscribed: boolean;\n\n constructor(private addToCalendarService: NgAddToCalendarService, @Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<ICommunityState>, private sanitizer: DomSanitizer, protected snackBar: MatSnackBar) {\n super(state, snackBar)\n }\n\n public allowedToJoin(meetup: MeetupDto) {\n if (!meetup.subscriberOnly) { return true; }\n if (meetup.subscriberOnly && this.subscribed) { return true; }\n return false;\n }\n\n public googleUrl(meetup: MeetupDto) {\n return this.sanitizer.bypassSecurityTrustUrl(this.addToCalendarService.getHrefFor(this.addToCalendarService.calendarType.google, this.createEvent(meetup)));\n }\n\n public outlookUrl(meetup: MeetupDto) {\n return this.sanitizer.bypassSecurityTrustUrl(this.addToCalendarService.getHrefFor(this.addToCalendarService.calendarType.outlook, this.createEvent(meetup)));\n }\n\n public iCalendarUrl(meetup: MeetupDto) {\n return this.sanitizer.bypassSecurityTrustUrl(this.addToCalendarService.getHrefFor(this.addToCalendarService.calendarType.iCalendar, this.createEvent(meetup)));\n }\n\n private createEvent(meetup: MeetupDto): ICalendarEvent {\n var fromDate = moment.utc(meetup.from).local().toDate();\n var toDate = moment.utc(meetup.to).local().toDate();\n\n var event: ICalendarEvent = {\n title: \"Meetup: \" + meetup.title,\n start: fromDate,\n end: toDate,\n duration: meetup.to.valueOf() - meetup.from.valueOf(),\n address: meetup.url,\n description: meetup.description + '\\\\n\\\\nIMPORTANT: Please check the time and date in the days preceeding the meetup. We sometimes reschedule meetups, and such changes are not automatically reflected in your calendar.'\n };\n\n return event;\n }\n\n protected onDataUpdate(data: ICommunityState): void {\n this.subscribed = data.isSubscriber;\n this.meetups = data.meetups.items;\n };\n}\n","<div class=\"meetups\">\n <div class=\"meetup wirebox\" *ngFor=\"let meetup of meetups\">\n <div class=\"top titleandaction\">\n <h3>{{meetup.title}}</h3>\n <div class=\"details\">\n <div class=\"detail\"><span class=\"icon ph-calendar-blank\"></span> {{meetup.from | date: 'MMM d, h:mm a' }} to {{meetup.to | date: 'shortTime' }} CEST<br /></div>\n <div class=\"detail\"><span class=\"icon ph-map-pin\"></span> {{meetup.location}}</div>\n </div>\n </div>\n <div class=\"content\">\n <p>{{meetup.description}}</p>\n </div>\n <div class=\"bottom\">\n <div class=\"toolbar leftright\">\n <div *ngIf=\"allowedToJoin(meetup) && meetup.url\">\n <b>Zoom link:</b><br /><a [href]=\"meetup.url\">{{meetup.url}}</a>\n </div>\n\n <div *ngIf=\"!meetup.url || !allowedToJoin(meetup)\"></div>\n\n <div class=\"button subscribersonly\" *ngIf=\"!allowedToJoin(meetup)\" subscribeDialog>only for subscribers</div>\n <button mat-button [matMenuTriggerFor]=\"menu\" *ngIf=\"allowedToJoin(meetup)\" class=\"button\">Add to calendar</button>\n <mat-menu #menu=\"matMenu\" [overlapTrigger]=\"false\">\n <a mat-menu-item target=\"_blank\" [href]=\"googleUrl(meetup)\"><span class=\"icon ph-google-logo\"></span> Google</a>\n <a mat-menu-item [href]=\"outlookUrl(meetup)\"><span class=\"icon ph-windows-logo\"></span> Outlook</a>\n <a mat-menu-item [href]=\"iCalendarUrl(meetup)\"><span class=\"icon ph-calendar\"></span> iCalendar (.ical)</a>\n </mat-menu>\n </div>\n </div>\n </div>\n <div class=\"meetup wirebox\">\n <div class=\"top titleandaction\">\n <h3>In-house Workshop: Diagnose Your Scrum Team</h3>\n <div class=\"details\">\n <div class=\"detail\"><span class=\"icon ph-calendar-blank\"></span> On a date that suits your team<br /></div>\n <div class=\"detail\"><span class=\"icon ph-map-pin\"></span> Online or in-person</div>\n </div>\n </div>\n <div class=\"content\">\n <p>\n Diagnose and inspect one or more Scrum teams in your organization, and work together to identify actionable improvements to work more effectively. We design this workshop to suit your needs, and facilitate it for your teams. Workshops can take between 2 hours and 2 days, depending on your needs.\n </p>\n </div>\n <div class=\"bottom\">\n <div class=\"toolbar leftright\">\n <div></div>\n <div class=\"button requestquote\" lookingForHelpDialog>contact us</div>\n </div>\n </div>\n </div>\n</div>\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 { ICommunityState } from '../../interfaces/ICommunityState';\nimport { ResourceDto } from '../../models/resourceDto';\n\n@Component({\n selector: 'recentcontent',\n templateUrl: './recentcontent.component.html',\n styleUrls: ['./recentcontent.component.less']\n})\nexport class RecentContentComponent extends ComponentWithViewStateBase<ICommunityState> {\n public resources: ResourceDto[] = [];\n\n constructor(@Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<ICommunityState>, protected snackBar: MatSnackBar) {\n super(state, snackBar);\n }\n\n protected onDataUpdate(data: ICommunityState): void {\n this.resources = data.resources.items;\n };\n}\n","<div class=\"box recentcontent\">\n <h3>Recent content</h3>\n <div class=\"recentcontent-item\" *ngFor=\"let resource of resources\">\n <div class=\"type\"><span class=\"badge\" [ngClass]=\"resource.type\"><i class=\"icon ph-microphone\" *ngIf=\"resource.type == 'podcast'\"></i><i class=\"icon ph-note\" *ngIf=\"resource.type == 'blogpost'\"></i></span></div>\n <div class=\"title\"><a [href]=\"resource.url\" target=\"_blank\">{{resource.title}}</a></div>\n </div>\n <div class=\"link\">\n <a href=\"https://public.theliberators.com/content\" target=\"_blank\">Check out more content ></a>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatNativeDateModule, MatOptionModule } from '@angular/material/core';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { RouterModule } from '@angular/router';\nimport { NgAddToCalendarModule } from '../add-calendar';\nimport { DialogSubscribeModule } from '../dialogs/dialog-subscribe/dialog-subscribe.module';\nimport { DialogSupportModule } from '../dialogs/dialog-support/dialog-support.module';\nimport { DateRangePipeModule } from '../pipes/dateRange/ngx-dateRange.module';\nimport { GetHelpFormComponent } from './components/gethelp-form/gethelp-form.component';\nimport { MeetupsComponent } from './components/meetups/meetups.component';\nimport { RecentContentComponent } from './components/recentcontent/recentcontent.component';\n\n@NgModule({\n imports: [MatMenuModule, MatTooltipModule, MatNativeDateModule, RouterModule, CommonModule, FormsModule, ReactiveFormsModule, MatOptionModule, MatInputModule, MatSelectModule, DialogSupportModule, DateRangePipeModule, DialogSubscribeModule, NgAddToCalendarModule],\n declarations: [RecentContentComponent, MeetupsComponent, GetHelpFormComponent],\n exports: [RecentContentComponent, MeetupsComponent, GetHelpFormComponent]\n})\nexport class CommunityModule { }\n","import { PaginatedResponse } from \"../../models/paginatedResponse\";\n\nexport class MeetupResponseDto extends PaginatedResponse<MeetupDto> {\n}\n\nexport class MeetupDto {\n title: string;\n from: Date;\n to: Date;\n location: string;\n url: string;\n description: string;\n subscriberOnly: boolean;\n}\n","import { PaginatedResponse } from \"../../models/paginatedResponse\";\n\nexport class ResourceResponseDto extends PaginatedResponse<ResourceDto> {\n}\n\nexport class ResourceDto {\n title: string;\n type: string;\n url: string;\n}\n","import { Inject, Injectable, InjectionToken, Optional } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class CommunityClientConfig {\n private config?: CommunityClientConfigDto;\n\n constructor(@Optional() @Inject(CommunityConfigToken) config?: CommunityClientConfigDto) {\n if (config) {\n this.set(config);\n }\n }\n\n set(config: CommunityClientConfigDto): void {\n this.config = config;\n }\n\n get(): CommunityClientConfigDto {\n return this.config as CommunityClientConfigDto;\n }\n}\n\nexport class CommunityClientConfigDto {\n}\n\nexport const CommunityConfigToken = new InjectionToken<CommunityClientConfigDto>(\n 'community-angular.config'\n);\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})\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 <div class=\"checkbox-check checked ph-check-circle-fill\" *ngIf=\"checked\" (click)=\"toggle()\"></div>\n <div class=\"checkbox-check unchecked ph-circle\" *ngIf=\"!checked\" (click)=\"toggle()\"></div>\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})\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 <div class=\"expand-category\" *ngFor=\"let category of categories\">\n <div class=\"expand-item-category-title\" *ngIf=\"categories.length > 0\">{{category}}</div>\n\n <ng-container *ngFor=\"let item of items\">\n <div class=\"expand-item\" *ngIf=\"item.category == category\">\n <div class=\"expand-header\" (click)=\"expand(item.index)\">\n <div class=\"expand-header-number\" *ngIf=\"numbering\">{{item.index}}</div>\n <div class=\"expand-header-label\">{{item.label}}</div>\n <div class=\"expand-header-expand ph-minus-bold\" *ngIf=\"selected == item.index\"></div>\n <div class=\"expand-header-expand ph-plus-bold\" *ngIf=\"selected != item.index\"></div>\n </div>\n <div class=\"body\" [innerHtml]=\"item.body\" *ngIf=\"selected == item.index\">\n </div>\n </div>\n </ng-container>\n </div>\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})\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","<div class=\"loading\" *ngIf=\"!loaded || showLoading\">\n <div class=\"top\">\n <div class=\"pleasewait\">{{message}}</div>\n <div class=\"loading-icon dark\"></div>\n </div>\n</div>\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})\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 <mat-chip-row *ngFor=\"let tag of tags\" (removed)=\"remove(tag)\">\n {{tag}}\n <span class=\"icon ph-trash-fill\" matChipRemove></span>\n </mat-chip-row>\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 <mat-option class=\"select-option\" *ngFor=\"let tag of filteredTags | async\" [value]=\"tag\">{{tag}}</mat-option>\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","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 description: string;\n questionCount: number;\n explainerVideoUrl: string;\n effects: EffectDto[];\n segments: FactorStructureSegmentDto[];\n constraints: FactorStructureConstraintDto;\n lower: FactorStructureDto[];\n attribution: string;\n antecedents: FactorStructureDto[];\n}\n\nexport class FactorStructureSegmentDto {\n questionCount: number;\n segment: SegmentEnum;\n durationInSeconds: number;\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.forTeamTypes = [];\n this.forSegments = [];\n }\n\n forTeamTypes: string[];\n forSegments: 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 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})\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})\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.enterAnimationDuration = 0;\n dialogConfig.exitAnimationDuration = 0;\n this.dialog.open(DialogFactorInformationComponent, dialogConfig);\n }\n}\n\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<mat-dialog-content>\n {{factor.description}}\n\n <div class=\"attribution\" *ngIf=\"factor.attribution\">\n <h4>Attribution for measurement method</h4>\n <p>{{factor.attribution}}</p>\n </div>\n</mat-dialog-content>\n","import { PipeTransform, Pipe } from '@angular/core';\nimport { SegmentEnum } from '../../models/modelStructureDto';\n\n@Pipe({\n name: 'segmentName'\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 { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'callback',\n pure: 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 { Component, EventEmitter, Input, Output, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { FactorStructureDto, FactorStructureSegmentDto, ModelDefinitionDto, SegmentEnum } from '../../models/modelStructureDto';\nimport { ScaleSelectorFilterDto } from './scaleSelectorFilterDto';\nimport { L } from '@angular/cdk/keycodes';\n\n@Component({\n selector: 'scale-selector',\n templateUrl: './scale-selector.component.html',\n styleUrls: ['./scale-selector.component.less'],\n providers: [\n { provide: NG_VALUE_ACCESSOR, multi: true, useExisting: forwardRef(() => ScaleSelectorComponent), }\n ]\n})\nexport class ScaleSelectorComponent implements ControlValueAccessor {\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 public SegmentEnum = SegmentEnum;\n public warnings: string[] = []\n\n @Input() scales: FactorStructureDto[];\n @Input() filter: ScaleSelectorFilterDto;\n @Input() disabled = false;\n @Output() onCheckChange = new EventEmitter<boolean>();\n @Input() scaleKeys: string[] = [];\n public topScales: FactorStructureDto[] = [];\n\n constructor() {\n }\n\n ngOnInit() {\n this.topScales = this.getChildFactors(null);\n }\n\n writeValue(scaleKeys: string[]): void {\n this.scaleKeys = scaleKeys ?? [];\n this.updateMetaData();\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n onChange = (scaleKeys: string[]) => { };\n\n onTouched = () => { };\n\n public filterSegmentWithQuestions(segment: FactorStructureSegmentDto) {\n return segment.questionCount > 0;\n }\n\n public getChildFactors(parentKey: string): FactorStructureDto[] {\n var factors = this.scales\n .filter(p => p.parentKey == parentKey);\n\n if (this.filter != null) {\n if (this.filter.teamType != null) {\n factors = factors.filter(p => p.constraints.forTeamTypes.includes(this.filter.teamType));\n }\n }\n\n return factors;\n }\n\n private updateMetaData() {\n this.warnings = [];\n // only work with lower-level factors, as higher-level contain aggregated higher-level question counts\n var scalesToInclude = this.scales.filter(p => p.parentKey != null && this.scaleKeys.includes(p.publicKey));\n var totalQuestions = this.scales.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'.\");\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 factors, so its accuracy is low.\");\n }\n\n this.questionnaireAccuracy = this.questionsTotal / totalQuestions;\n }\n\n private emitScaleKeys() {\n this.onChange(this.scaleKeys);\n this.updateMetaData();\n }\n\n public toggleChildren(scale: FactorStructureDto) {\n var checked = this.scaleKeys.find(p => p == scale.publicKey) != null;\n var children = this.getChildFactors(scale.publicKey);\n\n if (checked) {\n var scalesToAdd = children.filter(p => !this.scaleKeys.includes(p.publicKey)).map(p => p.publicKey);\n this.scaleKeys = this.scaleKeys.concat(scalesToAdd);\n }\n else {\n var scalesToRemove = children.map(p => p.publicKey);\n this.scaleKeys = this.scaleKeys.filter(p => !scalesToRemove.includes(p));\n }\n\n this.emitScaleKeys();\n }\n\n public toggleParent(scale: FactorStructureDto) {\n var checked = this.scaleKeys.find(p => p == scale.publicKey) != null;\n var parent = this.scales.find(p => p.publicKey == scale.parentKey);\n var siblings = this.getChildFactors(parent.publicKey);\n\n if (checked) {\n var allLowerChecked = siblings.filter(p => !this.scaleKeys.includes(p.publicKey)).length == 0;\n\n if (allLowerChecked) {\n this.scaleKeys = this.scaleKeys.concat(parent.publicKey);\n }\n }\n else {\n this.scaleKeys = this.scaleKeys.filter(p => p != parent.publicKey);\n }\n\n this.emitScaleKeys();\n }\n}\n","<div class=\"scaleselector-container\">\n <div class=\"scaleselector-dropdown\">\n <mat-form-field appearance=\"fill\">\n <mat-label>Select topics</mat-label>\n <mat-select id=\"question-scaleKeys\" [(ngModel)]=\"scaleKeys\" required multiple disableRipple [disabled]=\"disabled\">\n <mat-select-trigger>\n You selected {{scaleKeys.length}} topic(s)\n </mat-select-trigger>\n\n @for (factor of topScales; track factor) {\n <mat-option class=\"select-option lower-0\" [value]=\"factor.publicKey\" (click)=\"toggleChildren(factor)\">\n {{factor.name}}\n <span *ngFor=\"let segment of factor.segments | callback: filterSegmentWithQuestions\" class=\"segment\" [ngClass]=\"{'segment-teammember': segment.segment == SegmentEnum.TeamMember, 'segment-stakeholder': segment.segment == SegmentEnum.Stakeholder, 'segment-supporter': segment.segment == SegmentEnum.Management}\">{{segment.segment | segmentName}}</span>\n <span class=\"icon ph-info-fill\" factorInformationDialog [factor]=\"factor\"></span>\n </mat-option>\n\n @for (lowerFactor of getChildFactors(factor.publicKey); track lowerFactor) {\n <mat-option class=\"select-option lower-1\" [value]=\"lowerFactor.publicKey\" (click)=\"toggleParent(lowerFactor)\">\n {{lowerFactor.name}}\n <span *ngFor=\"let segment of lowerFactor.segments | callback: filterSegmentWithQuestions\" class=\"segment\" [ngClass]=\"{'segment-teammember': segment.segment == SegmentEnum.TeamMember, 'segment-stakeholder': segment.segment == SegmentEnum.Stakeholder, 'segment-supporter': segment.segment == SegmentEnum.Management}\">{{segment.segment | segmentName}}</span>\n <span class=\"icon ph-info-fill\" factorInformationDialog [factor]=\"lowerFactor\"></span>\n </mat-option>\n }\n }\n </mat-select>\n </mat-form-field>\n </div>\n <div class=\"scaleselector-metadata\">\n <div class=\"questionnaire-breakdown\" *ngIf=\"questionsTotal > 0\">\n <div class=\"questionnaire-breakdown-label\">Expected duration (in minutes)</div>\n <div class=\"questionnaire-breakdown-items\">\n <div class=\"questionnaire-breakdown-item teammembers\" *ngIf=\"questionsTeamMembers > 0\" [matTooltip]=\"'At least ' + questionsTeamMembers + ' questions for team members. Additional questions may be added, and are typically answered once per team.'\" [ngStyle]=\"{'width': ((questionsTeamMembers / questionsTotal) * 100) + '%' }\">\n {{durationTeamMembers | number:'1.0-0'}}m\n </div>\n <div class=\"questionnaire-breakdown-item stakeholders\" *ngIf=\"questionsStakeholders > 0\" [matTooltip]=\"'At least ' + questionsStakeholders + ' questions for stakeholders. Additional questions may be added, and are typically answered once per team.'\" [ngStyle]=\"{'width': ((questionsStakeholders / questionsTotal) * 100) + '%' }\">\n {{durationStakeholders | number:'1.0-0'}}m\n </div>\n <div class=\"questionnaire-breakdown-item supporters\" *ngIf=\"questionsSupporters > 0\" [matTooltip]=\"'At least ' + questionsSupporters + ' questions for supporters. Additional questions may be added, and are typically answered once per team.'\" [ngStyle]=\"{'width': ((questionsSupporters / questionsTotal) * 100) + '%' }\">\n {{durationSupporters | number:'1.0-0'}}m\n </div>\n </div>\n </div>\n <div class=\"questionnaire-accuracy\" *ngIf=\"questionsTotal > 0\">\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}\" [ngStyle]=\"{'width': (questionnaireAccuracy * 100) + '%' }\">{{questionnaireAccuracy * 100 | number:'1.0-0'}}%</div>\n </div>\n </div>\n </div>\n\n <div class=\"scaleselector-warnings\" *ngIf=\"warnings.length > 0 && scaleKeys.length > 0\">\n <div class=\"scaleselector-warnings-warning\" *ngFor=\"let warning of warnings\">\n <span class=\"icon ph-info-fill\"></span>{{warning}}\n </div>\n </div>\n\n</div>\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 { 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 { 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 { 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 { FactorInformationDialogModule } from '../../dialogs/dialog-factorinformation/dialog-factorinformation.module';\nimport { CallbackPipeModule } from '../../pipes/callback/callback.module';\nimport { SegmentNamePipeModule } from '../../pipes/segmentName/segmentName.module';\nimport { ScaleSelectorComponent } from './scale-selector.component';\n\n@NgModule({\n imports: [\n FormsModule,\n MatFormFieldModule,\n ReactiveFormsModule,\n CommonModule,\n MatSelectModule,\n SegmentNamePipeModule,\n CallbackPipeModule,\n MatTooltip,\n FactorInformationDialogModule\n ],\n declarations: [\n ScaleSelectorComponent],\n exports: [\n ScaleSelectorComponent]\n})\nexport class ScaleSelectorModule { }\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})\nexport class SelectListComponent implements ControlValueAccessor {\n @Input() options: SelectListItem[] = [];\n @Input() multiple: boolean;\n @Input() disabled = false;\n\n constructor() {\n }\n \n public select(option: SelectListItem) {\n if (!this.multiple) {\n this.options.forEach(p => p.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 <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)\" *ngFor=\"let option of options\">\n <div class=\"button-letter\"><span class=\"ph ph-circle-fill\" *ngIf=\"option.selected && !multiple\"></span><span class=\"ph ph-check-bold\" *ngIf=\"option.selected && multiple\"></span></div>\n {{option.label}}\n </div>\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})\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","<div class=\"inviteurls\" *ngIf=\"snapshot\">\n <div class=\"inviteurl\" *ngFor=\"let url of snapshot.inviteUrls | keyvalue: unsorted\">\n <div class=\"label inviteurl-teammember\" *ngIf=\"url.key == 'TeamMember'\">Invite team (e.g. members, leads, team roles)</div>\n <div class=\"label inviteurl-stakeholder\" *ngIf=\"url.key == 'Stakeholder'\">Invite stakeholders (e.g. customers, users)</div>\n <div class=\"label inviteurl-supporter\" *ngIf=\"url.key == 'Supporter'\">Invite supporters (e.g. management, external coaches)</div>\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</div>\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","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})\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})\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><a href=\"javascript:void(null);\" (click)=\"redirectToPortal()\" mat-dialog-close *ngIf=\"isAdmin\">Subscription & invoices (admins only) <span class=\"icon ph-arrow-square-out\"></span></a></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 { 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})\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})\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 <div class=\"loading\" *ngIf=\"!cdnUrl\">\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 <p *ngIf=\"cdnUrl && !error\">Use our detailed facilitation guides to initiate change in and around your teams</p>\n <div *ngIf=\"cdnUrl && !error\" class=\"button primary cdnUrl\" (click)=\"initiateDownload()\" [attr.data-href]=\"cdnUrl\"><span class=\"ph-download-bold icon\"></span>Download guide</div>\n <div class=\"error\" *ngIf=\"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</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 { Location } from '@angular/common'\nimport { Directive, HostListener } from '@angular/core'\nimport { Route, Router } from '@angular/router'\n\n@Directive({\n selector: '[backButton]',\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 { 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 <= 50;\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\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\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","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","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})\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 <div class=\"imageslider-item\" *ngFor=\"let item of items; let i=index\" [ngClass]=\"{'visible': index == i}\">\n <a [href]=\"item.clickUrl\" *ngIf=\"item.clickUrl\"><img [src]=\"item.sourceUrl\" /></a>\n <img [src]=\"item.sourceUrl\" *ngIf=\"!item.clickUrl\" />\n </div>\n </div>\n\n <div class=\"imageslider-nav\">\n <div class=\"imageslider-nav-bullet\" *ngFor=\"let item of items; let i=index\" (mouseover)=\"select(i)\" [ngClass]=\"{'active' : index == i}\"></div>\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\n@Component({\n templateUrl: './dialog-guides.component.html',\n styleUrls: ['./dialog-guides.component.less']\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})\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\nexport const DIALOG_GUIDES_TOKEN: InjectionToken<ComponentType<any>> = new InjectionToken<ComponentType<any>>('DIALOG_GUIDES_TOKEN');\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 <div class=\"guide\" *ngFor=\"let guide of guides\">\n <ng-container *ngIf=\"activeGuideKey == guide.key\">\n <a [routerLink]=\"[]\" [id]=\"'guide-' + guide.key\" (click)=\"setActiveGuide(guide)\">{{guide.name}}<span class=\"badge dark\">resume</span></a>\n </ng-container>\n <ng-container *ngIf=\"activeGuideKey != guide.key\">\n <a [routerLink]=\"[]\" [id]=\"'guide-' + guide.key\" (click)=\"setActiveGuide(guide)\">{{guide.name}}</a>\n </ng-container>\n </div>\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\n@Component({\n templateUrl: './dialog-guide.component.html',\n styleUrls: ['./dialog-guide.component.less'],\n encapsulation: ViewEncapsulation.None\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() {\n this.smallScreen = window.innerWidth <= 640;\n this.selectNextOpenItem();\n }\n}\n\n@Directive({\n selector: '[guideDialog]',\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\nexport const DIALOG_GUIDE_TOKEN: InjectionToken<ComponentType<any>> = new InjectionToken<ComponentType<any>>('DIALOG_GUIDE_TOKEN');\n","<mat-dialog-content id=\"dialog-gettingstarted\" *ngIf=\"guide\">\n <div class=\"close\" mat-dialog-close><span class=\"responsive icon ph-x-bold\"></span></div>\n <div class=\"guides-navigation leftcolumn\" *ngIf=\"showSteps()\">\n <div class=\"steps\">\n <h3 class=\"title\">{{guide.name}}</h3>\n <div class=\"steplist\">\n <div class=\"steplist-item\" *ngFor=\"let step of guide.steps\" [ngClass]=\"{'active': step == activeStep}\">\n <checkbox [label]=\"step.title\" (onCheckChange)=\"handleCheckChange(step, $event)\" [checked]=\"step.completed\" (click)=\"select(step)\"></checkbox>\n </div>\n </div>\n </div>\n <div class=\"toolbar\">\n <div class=\"link dismiss\" [routerLink]=\"[]\" (click)=\"dismiss()\">dismiss guide</div>\n </div>\n </div>\n <div class=\"guides-item rightcolumn\" *ngIf=\"activeStep\">\n <div class=\"mediaframe\" *ngIf=\"activeStep.media\">\n <imageslider [items]=\"activeStep.media\"></imageslider>\n </div>\n <div class=\"description\">\n <h3 class=\"title\">{{activeStep.title}}</h3>\n <div class=\"innerHtml\" [innerHtml]=\"activeStep.body\"></div>\n <div class=\"link\">\n <a [href]=\"activeStep.url\" target=\"_blank\" *ngIf=\"activeStep.url\">learn more ></a>\n </div>\n </div>\n <div class=\"buttons\">\n <a [routerLink]=\"[]\" class=\"button cta markcomplete\" (click)=\"handleCheckChange(activeStep, true)\" *ngIf=\"!activeStep.completed && showSteps()\">mark done</a>\n <a [routerLink]=\"[]\" class=\"button cta markcomplete\" (click)=\"handleCheckChange(activeStep, false)\" *ngIf=\"activeStep.completed && showSteps()\">mark undone</a>\n <a [routerLink]=\"[]\" class=\"button borderonly\" (click)=\"next(activeStep)\" *ngIf=\"!isLastStep(activeStep)\">next</a>\n <a [routerLink]=\"[]\" class=\"button borderonly\" (click)=\"toGuides()\" *ngIf=\"isLastStep(activeStep)\">more guides</a>\n <a [routerLink]=\"[]\" class=\"button cta markcomplete\" (click)=\"complete(activeStep)\" *ngIf=\"isLastStep(activeStep) && !showSteps()\">complete</a>\n </div>\n </div>\n</mat-dialog-content>\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})\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","<div class=\"resumeguidehover\" guideDialog *ngIf=\"showResumeGuide\">\n <span class=\"icon ph-play-circle-fill\"></span>Resume Guide\n</div>\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})\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","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 { 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","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 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","export class FeaturesDto {\n allowMFA: boolean;\n allowSSO: boolean;\n allowCustomDomain: boolean;\n allowBrandedPdfs: boolean;\n allowScaleSelection: 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 { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'slugify'\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 { 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 { Component, DoCheck, ElementRef, Input, OnInit } from '@angular/core';\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})\nexport class ArrowComponent implements OnInit, DoCheck {\n @Input() public from: string = null;\n @Input() public to: string = null;\n\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\n @Input() public color: string = null;\n @Input() public width: number = null;\n @Input() public onlyVisible: boolean = false;\n\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 public arrowIndices: number[] = [];\n\n public styleLine: object[] = [];\n public styleArrowFw: object[] = [];\n public styleArrowBw: object[] = [];\n public needSwap: boolean[] = [];\n\n private elementPositionBackup: string = '';\n\n constructor(\n private elem: ElementRef,\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.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 }\n\n}\n","<ng-container *ngFor=\"let index of arrowIndices\">\n\n <div class=\"line line-{{ index }}\" [ngStyle]=\"styleLine[index]\" [matTooltip]=\"toolTip\">\n\n <div *ngIf=\"head == true\" class=\"arrow head {{ needSwap[index] ? 'arrow-bw' : 'arrow-fw' }}\"\n [ngStyle]=\"needSwap[index] ? styleArrowBw[index] : styleArrowFw[index]\"></div>\n <div *ngIf=\"tail == true\" class=\"arrow tail {{ needSwap[index] ? 'arrow-fw' : 'arrow-bw' }}\"\n [ngStyle]=\"needSwap[index] ? styleArrowFw[index] : styleArrowBw[index]\"></div>\n <div *ngIf=\"!!text && text.length > 0\" class=\"text\" >{{ text }}</div>\n\n </div>\n\n</ng-container>\n","import { Component, Input, ViewEncapsulation } 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})\nexport class BadgeProgressionComponent {\n @Input() public showName: boolean;\n @Input() public badge: BadgeDto;\n @Input() public radius: number;\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}\" #badgeContainer (click)=\"popover.open()\">\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 <div class=\"name\" *ngIf=\"showName\">{{badge.name}}</div>\n</div>\n\n<sat-popover #popover horizontalAlign=\"center\" [anchor]=\"badgeContainer\" verticalAlign=\"below\" [hasBackdrop]=\"true\" [autoFocus]=\"false\">\n <div [class]=\"'popover level-' + badge.level\" [id]=\"'popover'\">\n <div class=\"arrow\"></div>\n <div class=\"popover-container\">\n <span (click)=\"popover.close()\" class=\"close ph-x\"></span>\n <h3 *ngIf=\"badge.level == 0\">{{badge.name}}</h3>\n <h3 *ngIf=\"badge.level == 1\">{{badge.name}} <span>Bronze Level</span></h3>\n <h3 *ngIf=\"badge.level == 2\">{{badge.name}} <span>Silver Level</span></h3>\n <h3 *ngIf=\"badge.level == 3\">{{badge.name}} <span>Gold Level</span></h3>\n <h3 *ngIf=\"badge.level == 4\">{{badge.name}} <span>Platinum Level</span></h3>\n <h3 *ngIf=\"badge.level == 5\">{{badge.name}} <span>Diamond Level</span></h3>\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</sat-popover>\n","import { Component, Input, ViewEncapsulation } from '@angular/core';\nimport { BadgeDto, BadgeTypeEnum } from '../../models/badgeDto';\n\n@Component({\n selector: 'badge-streak',\n templateUrl: './badge-streak.component.html',\n styleUrls: ['./badge-streak.component.less']\n})\nexport class BadgeStreakComponent {\n @Input() public showName: boolean;\n @Input() public badge: BadgeDto;\n @Input() public radius: number;\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 }\" #badgeContainer (click)=\"popover.open()\">\n <div class=\"circle\" [ngStyle]=\"{'width': radius + 'px', 'height': radius + 'px', 'border-radius': radius + 'px'}\">\n <div class=\"crown\" *ngIf=\"badge.awarded && badge.level >= 3\"></div>\n <span [class]=\"'icon ' + badge.icon\"></span>\n <div class=\"level\" *ngIf=\"badge.awarded\">{{badge.level}}</div>\n </div>\n <div class=\"name\" *ngIf=\"showName\">{{badge.name}}</div>\n</div>\n\n<sat-popover #popover horizontalAlign=\"center\" [anchor]=\"badgeContainer\" verticalAlign=\"below\" [hasBackdrop]=\"true\" [autoFocus]=\"false\">\n <div class=\"popover\" [id]=\"'popover'\">\n <div class=\"arrow\"></div>\n <div class=\"popover-container\">\n <span (click)=\"popover.close()\" class=\"close ph-x\"></span>\n <h3 *ngIf=\"badge.level == 0\">{{badge.name}}</h3>\n <h3 *ngIf=\"badge.level > 0\">{{badge.name}} <span>Streak of {{badge.level}}</span></h3>\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</sat-popover>\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})\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","<ng-container *ngIf=\"isStreakBadge()\">\n <badge-streak [badge]=\"badge\" [showName]=\"showName\" [radius]=\"radius\"></badge-streak>\n</ng-container>\n<ng-container *ngIf=\"isProgressionBadge()\">\n <badge-progression [badge]=\"badge\" [showName]=\"showName\" [radius]=\"radius\"></badge-progression>\n</ng-container>\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})\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","<div class=\"box\" *ngIf=\"loaded\">\n <ng-container *ngIf=\"earnedStreakBadges.length > 0\">\n <h4>Team streaks</h4>\n <div class=\"earned team-badges\">\n <badge-streak *ngFor=\"let badge of earnedStreakBadges\" [badge]=\"badge\" [showName]=\"true\" [radius]=\"65\"></badge-streak>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"earnedProgressionBadges.length > 0\">\n <h4>Team badges</h4>\n <div class=\"earned team-badges\">\n <badge *ngFor=\"let badge of earnedProgressionBadges\" [badge]=\"badge\" [showName]=\"true\" [radius]=\"75\"></badge>\n </div>\n </ng-container>\n\n <h4>Not yet earned</h4>\n <div class=\"notearned team-badges\" [ngClass]=\"{'fadeout': showNotearned}\" (mouseover)=\"showNotearned = false\">\n <badge *ngFor=\"let badge of unearnedProgressionBadges\" [badge]=\"badge\" [showName]=\"true\" [radius]=\"65\"></badge>\n <badge *ngFor=\"let badge of unearnedStreakBadges\" [badge]=\"badge\" [showName]=\"true\" [radius]=\"65\"></badge>\n </div>\n</div>\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})\nexport class BenchmarkIndicatorComponent {\n public delta: number;\n @Input() public factorScore: FactorScoreDto;\n\n constructor(private datePipe: DatePipe) {\n }\n\n ngOnInit() {\n this.delta = this.factorScore.score - this.factorScore.benchmark;\n }\n}\n","<span [class]=\"'delta up'\" *ngIf=\"delta > 0\" [matTooltip]=\"'Your team(s) score higher than the benchmark, by ' + delta + ' points'\"><i [class]=\"'icon ph-arrow-up-fill'\"></i>{{delta}}</span>\n<span [class]=\"'delta down'\" *ngIf=\"delta < 0\" [matTooltip]=\"'Your team(s) score lower than the benchmark, by -' + delta * -1 + ' points'\"><i [class]=\"'icon ph-arrow-down-fill'\"></i>{{delta * -1}}</span>\n<span [class]=\"'delta same'\" *ngIf=\"delta == 0\" [matTooltip]=\"'Your team(s) score similar to the benchmark'\"><i [class]=\"'icon ph-equals-fill'\"></i>{{delta}}</span>\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, ITeamReportResultsState } from '../../interfaces/IResultsState';\nimport { SubscriptionTierEnum } from '../../models/teamMetaDataDto';\n\n@Component({\n selector: 'coachingcenter-teaser',\n templateUrl: './coachingcenter-teaser.component.html',\n styleUrls: ['./coachingcenter-teaser.component.less']\n})\nexport class CoachingCenterTeaserComponent 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.userInfo ? data.userInfo.branding.isDefault : true;\n };\n}\n","<div class=\"box doityourself\" brandbackground [palette]=\"'neutral'\">\n <img class=\"responsive\" src=\"assets/img/coachingcenter-teaser.jpg\" />\n <h3>Coaching Center</h3>\n <p>Use Columinity at scale with our Coaching Center. Manage organizational units and their teams in your enterprise. Analyze and identify patterns and trends across units. Apply company branding and add additional security features.</p>\n\n <div class=\"link\">\n <a href=\"https://columinity.com/for-my-teams-at-scale\" target=\"_blank\">Discover our 'Enterprise'-plan ></a>\n </div>\n</div>\n\n\n","import { DatePipe } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { DeltaPeriodEnum, FactorScoreCollectionDeltaDto, FactorScoreDto } from '../../models/factorScoreDto';\n\n@Component({\n selector: 'delta-arrow',\n templateUrl: './delta-arrow.component.html',\n styleUrls: ['./delta-arrow.component.less']\n})\nexport class DeltaArrowComponent {\n public deltaDateRangeFrom: string;\n public deltaDateRangeTo: string;\n public available: boolean;\n public comparedTo: 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.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 }\n}\n","<span [class]=\"'delta up'\" *ngIf=\"available && factorScore.delta > 0\" [matTooltip]=\"'The score on this factor improved by ' + factorScore.delta + ' points since ' + comparedTo\"><i [class]=\"'icon ph-trend-up-bold'\"></i>{{factorScore.delta}}</span>\n<span [class]=\"'delta down'\" *ngIf=\"available && factorScore.delta < 0\" [matTooltip]=\"'The score on this factor decreased by ' + factorScore.delta * -1 + ' points since ' + comparedTo\"><i [class]=\"'icon ph-trend-down-bold'\"></i>{{factorScore.delta * -1}}</span>\n<span [class]=\"'delta same'\" *ngIf=\"available && factorScore.delta == 0\" [matTooltip]=\"'The score on this factor did not change since ' + comparedTo\"><i [class]=\"'icon ph-arrow-right-bold'\"></i>{{factorScore.delta}}</span>\n<span [class]=\"'delta same'\" *ngIf=\"!available && noDataIndicator\" [matTooltip]=\"'This factor wasn\\'t measured as part of this snapshot, or we don\\'t have enough data for this factor yet to show a delta with the previous period.'\"><i [class]=\"'icon ph-arrow-right-bold'\"></i> ?</span>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'doityourself',\n templateUrl: './doityourself.component.html',\n styleUrls: ['./doityourself.component.less']\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>Interpret the results together</h3>\n <p>We designed a 60-minute Retrospective to explore the results and identify improvements with your team.</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})\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","<div class=\"resource\" *ngFor=\"let item of resources\" [id]=\"'resource-' + item.publicKey\">\n <span *ngIf=\"item.publicKey != 'demo'\" class=\"type\" resourceDownloadDialog [publicKey]=\"item.publicKey\">\n <span class=\"badge free\">download</span>\n </span>\n <span class=\"type\" *ngIf=\"item.publicKey == 'demo'\" subscribeDialog>\n <span class=\"badge free\">download</span>\n </span>\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","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})\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 this.label = \"urgent\";\n break;\n default:\n this.label = \"average\";\n break;\n }\n }\n };\n}\n","<div [routerLink]=\"[baseUrl, 'tips']\" [fragment]=\"dimension\" class=\"tipbadge\" *ngIf=\"label && impact > 0\" [matTooltip]=\"'The impact of this recommendation is ' + impact + ' of 100'\">\n <div [class]=\"'badge ' + class\">{{ label }}</div>\n</div>\n\n<div class=\"tipbadge\" *ngIf=\"label && impact == 0 && subscribed\">\n <div [class]=\"'badge noimpact ' + class\" subscribeDialog>{{ label }}</div>\n</div>\n\n<div class=\"tipbadge\" *ngIf=\"label && impact == 0 && !subscribed\">\n <div [class]=\"'badge noimpact ' + class\">{{ label }}</div>\n</div>\n","import { Component, Directive, HostListener, Inject, Input } from '@angular/core';\nimport { MatDialog, MatDialogConfig, MAT_DIALOG_DATA } from '@angular/material/dialog';\n\n@Component({\n templateUrl: './dialog-notes.component.html',\n styleUrls: ['./dialog-notes.component.less']\n})\nexport class DialogNotesComponent {\n constructor(@Inject(MAT_DIALOG_DATA) public notes: string[]) {\n }\n}\n\n@Directive({\n selector: '[notesDialog]',\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","<div class=\"dialog-header\">\n <h1 mat-dialog-title>Limititations to your 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 <ul *ngFor=\"let item of notes\">\n <li>{{item}}</li>\n </ul>\n</mat-dialog-content>\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})\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","<div class=\"factorwithscale\" *ngIf=\"loaded\" [ngClass]=\"{'factor-notmeasured' : !dataAvailable}\">\n <div class=\"anchors\">\n <div factorInformationDialog [factor]=\"dimensionSelector\" class=\"anchor title\">{{name}}</div>\n <a class=\"anonymized\" *ngIf=\"notes && notes.length > 0\" href=\"javascript:void(null);\" notesDialog [notes]=\"notes\"><span class=\"icon ph-warning-fill\"></span></a>\n <delta-arrow [factorScore]=\"factorScore\" [delta]=\"delta\"></delta-arrow>\n <span [class]=\"'delta up'\" *ngIf=\"!delta.available\" [matTooltip]=\"'Re-take the questionnaire at a later moment to learn how your team improves over time. Set a Reminder from this report. Or subscribe to gain access to the teams dashboard, which makes it easier to create new snapshots.'\"><i [class]=\"'icon ph-trend-up-bold'\"></i>?</span>\n </div>\n <div class=\"axiscontainer\">\n <div class=\"axis\">\n <ng-container *ngFor=\"let segment of segments\">\n <div *ngIf=\"segment.type == 'Segment'\" 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 <div *ngIf=\"segment.type == 'Individual' && showIndividualScore\" 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 </ng-container>\n <ng-container *ngIf=\"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 </ng-container>\n <ng-container *ngIf=\"showTeamRange\">\n <div *ngFor=\"let segment of segments\" [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 </ng-container>\n </div>\n </div>\n <div class=\"details\">\n <div class=\"feedback\">\n <span class=\"score\" *ngIf=\"dataAvailable\"><tip-badge [dimension]=\"dimensionSelector.publicKey\"></tip-badge></span>\n <span class=\"score\" *ngIf=\"!dataAvailable\"><span class=\"badge nofeedback\">not measured</span></span>\n <a *ngIf=\"feedbackAvailable\" class=\"feedback-link\" [routerLink]=\"[baseUrl, 'tips']\" [fragment]=\"dimensionSelector.publicKey\">how to improve ></a>\n <a *ngIf=\"!feedbackAvailable && !subscribed\" class=\"feedback-link\" [routerLink]=\"[]\" subscribeDialog>more feedback?</a>\n </div>\n <div class=\"expand\" *ngIf=\"!expandLowerDimensions && dimensionSelector.lower.length != 0 && dataAvailable\" (click)=\"expandLowerDimensions = true\">\n <span class=\"icon ph-plus-bold\"></span>\n </div>\n <div class=\"expand\" *ngIf=\"expandLowerDimensions && dimensionSelector.lower.length != 0 && dataAvailable\" (click)=\"expandLowerDimensions = false\">\n <span class=\"icon ph-minus-bold\"></span>\n </div>\n </div>\n\n <div class=\"lowerdimensions\" *ngIf=\"dimensionSelector.lower.length != 0 && expandLowerDimensions\">\n <p class=\"decomposition\">The score for {{dimensionSelector.name}} has the following lower-order factors:</p>\n <div class=\"dimension\" *ngFor=\"let dimension of dimensionSelector.lower\">\n <factor-axis [showIndividualScore]=\"showIndividualScore\" [showTeamRange]=\"showTeamRange\" [dimensionSelector]=\"dimension\"></factor-axis>\n </div>\n </div>\n</div>\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 { InterventionFilterType, ModelFilter, UserSettingsDto } from '../../../models/userSettingsDto';\nimport { UserSettingService } from '../../../viewModel/userSettings.service';\nimport { ViewModelStateBase, VIEWSTATE_PROVIDER } from '../../../viewModel/viewModelState.service';\nimport { IResultsState, ITeamReportResultsState } 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})\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 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 interventionFilterTypes: SelectItem[] = [\n new SelectItem(InterventionFilterType.All.toString(), \"Show both open vs completed actions\"),\n new SelectItem(InterventionFilterType.OnlyOpen.toString(), \"Show only open actions\"),\n new SelectItem(InterventionFilterType.OnlyCompleted.toString(), \"Show only completed actions\"),\n new SelectItem(InterventionFilterType.None.toString(), \"Hide actions\")\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.settings.user.modelFilter.interventionFilter = this.form.controls.interventionFilterType.value;\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 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 interventionFilterType: [{ value: null }, Validators.required],\n stacking: [{ value: \"false\" }, Validators.required]\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.interventionFilterType.setValue(this.settings.user.modelFilter.interventionFilter);\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).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.interventionFilterTypes = [\n new SelectItem(InterventionFilterType.All.toString(), \"Show both open vs completed actions\"),\n new SelectItem(InterventionFilterType.OnlyOpen.toString(), \"Show only open actions\"),\n new SelectItem(InterventionFilterType.OnlyCompleted.toString(), \"Show only completed actions\"),\n new SelectItem(InterventionFilterType.None.toString(), \"Hide actions\")\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\n@Directive({\n selector: '[settingsDialog]',\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://github.com/theliberators/scrumteamsurvey.docs/wiki/How-%22Statistical-Settings%22-impact-the-results\">Learn</a> how these settings affect insights.</div></div>\n <mat-form-field class=\"interventionFilterType\" subscriptSizing=\"dynamic\">\n <mat-label>Which action totals do you want to see under 'Insights'?</mat-label>\n <mat-select class=\"interventionfilter-dropdown\" formControlName=\"interventionFilterType\">\n <mat-option class=\"select-option\" *ngFor=\"let item of interventionFilterTypes\" [value]=\"item.value\">{{item.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"qualifyBy\" subscriptSizing=\"dynamic\">\n <mat-label>What should we compare with (determines colors)?</mat-label>\n <mat-select class=\"qualifyBy-dropdown\" formControlName=\"qualifyBy\">\n <mat-option class=\"select-option\" *ngFor=\"let item of qualifyByTypes\" [value]=\"item.value\">{{item.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"stacking\" subscriptSizing=\"dynamic\" *ngIf=\"isSingleTeam\">\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 <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 <mat-option class=\"select-option\" *ngFor=\"let item of benchmarkTypes\" [value]=\"item.value\">{{item.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n\n <div *ngIf=\"!isSubscriber\" 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 <ng-container *ngIf=\"!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 <mat-option class=\"select-option\" *ngFor=\"let item of deltaPeriods\" [value]=\"item.value\">{{item.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n\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>\n <mat-option class=\"select-option\" [ngClass]=\"{'lower' : factor.lower}\" *ngFor=\"let factor of factors\" [value]=\"factor.value\">{{factor.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n </ng-container>\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 { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'limitationsapply',\n templateUrl: './limitationsapply.component.html',\n styleUrls: ['./limitationsapply.component.less']\n})\nexport class LimitationsApplyComponent {\n @Input() notes: string[];\n \n constructor() {\n }\n\n ngOnInit() {\n }\n}\n","<div class=\"message message-warning\" *ngIf=\"notes.length > 0\" notesDialog [notes]=\"notes\">\n <span class=\"ph-info-fill icon\"></span>\n <div *ngIf=\"notes.length == 1\">1 limitation applies due to incomplete data. <a [routerLink]=\"[]\">Click here</a> to discover how to get more out of your results.</div>\n <div *ngIf=\"notes.length > 1\">{{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</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 } 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})\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);\n };\n}\n","<div class=\"results\" *ngIf=\"loaded\">\n <limitationsapply [notes]=\"globalNotes\"></limitationsapply>\n\n <div class=\"resultstoolbar\">\n <h3>Detailed results</h3>\n <div class=\"legend\">\n <div class=\"column you\" *ngIf=\"showParticipant\">\n <span class=\"marker\"></span>\n <span class=\"label\">you</span>\n </div>\n\n <div [class]=\"'column ' + segment.name | lowercase\" *ngFor=\"let segment of populationSegments\">\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 <mat-slide-toggle *ngIf=\"showParticipant\" class=\"toggle showmyscores\" [(ngModel)]=\"showIndividualScore\">Show my scores</mat-slide-toggle>\n <mat-slide-toggle class=\"toggle showscoringrange\" [(ngModel)]=\"showTeamRange\" *ngIf=\"subscribed\">Show range of scores in my team</mat-slide-toggle>\n <mat-slide-toggle class=\"toggle showscoringrange\" *ngIf=\"!subscribed\" subscribeDialog>Show range of scores in my team</mat-slide-toggle>\n </div>\n </div>\n\n <div class=\"dimensions\">\n <div class=\"dimension\" *ngFor=\"let factor of factors\" [id]=\"'factor-' + factor.name | slugify\">\n <factor-axis [showIndividualScore]=\"showIndividualScore\" [showTeamRange]=\"showTeamRange\" [dimensionSelector]=\"factor\"></factor-axis>\n </div>\n </div>\n</div>\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})\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 <div *ngFor=\"let tag of tags\" class=\"tag\" (click)=\"filterByTag(tag)\" title=\"Click to filter only by this tag\">{{tag}}</div>\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})\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})\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 <ng-container *ngIf=\"count > 0\">\n <p>Based on the data, we recommend that you focus on the following areas. They are most likely to improve the effectiveness of your teams:</p>\n <div class=\"focusarea\" [routerLink]=\"[baseUrl, 'tips']\" *ngFor=\"let item of focusAreas; let index = index\" [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 <div class=\"link\">\n <a [routerLink]=\"[baseUrl, 'tips']\">discover tips for all areas ></a>\n </div>\n </ng-container>\n <ng-container *ngIf=\"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 </ng-container>\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})\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","<footer *ngIf=\"loaded\">\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://github.com/theliberators/scrumteamsurvey.docs/wiki\" target=\"_blank\">Wiki</a></div>\n <div class=\"item\"><a [routerLink]=\"[]\" reportBugDialog>Report bug</a></div>\n</footer>\n","import { Component, Inject } from '@angular/core';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { IViewState } from '../../../viewModel/interfaces';\nimport { VIEWSTATE_PROVIDER, ViewModelStateBase } from '../../../viewModel/viewModelState.service';\n\n@Component({\n selector: 'liberatorkits',\n templateUrl: './liberatorkits.component.html',\n styleUrls: ['./liberatorkits.component.less']\n})\nexport class LiberatorKitsComponent extends ComponentWithViewStateBase<IViewState> {\n public show: boolean;\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.show = data.userInfo.branding.showLiberatorMerchandise;\n };\n}\n","<div class=\"box doityourself\" brandbackground [palette]=\"'accent'\" *ngIf=\"show\">\n <img class=\"responsive\" src=\"assets/img/liberatorkits.png\" />\n <h3>Try the physical kit</h3>\n <p>Make your Retrospective more engaging with our facilitation kit. It contains the exercises 'Panarcy', 'What I Need From You', '15% Solutions', stickers, two posters with our scientific research and a huge deck of 102 Quick Tips.</p>\n\n <div class=\"link\">\n <a href=\"https://shop.theliberators.com/collections/kits/products/scrum-teams-superpower-kit-also-for-virtual-teams\" target=\"_blank\">Get the kit ></a>\n </div>\n</div>\n\n\n","import { Component, Input } from '@angular/core';\nimport { FactorScoreDto, PointDto } from '../../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})\nexport class ModelFactorBreakdownComponent {\n @Input() factor: FactorScoreDto;\n @Input() pageSize: number;\n public page = 0;\n public pageCount = 0;\n public pagesLeft: number;\n public points: PointDto[];\n \n public async ngOnInit() {\n if (this.pageSize == null) { this.pageSize = 8; }\n this.pageCount = Math.floor(this.factor.points.length / this.pageSize);\n this.loadPoints();\n }\n\n public async next() {\n this.page = this.page + 1;\n this.loadPoints();\n }\n\n public async previous() {\n if (this.page <= 0) { return; }\n this.page = this.page - 1;\n this.loadPoints();\n }\n\n private async loadPoints() {\n this.points = this.factor.points.slice(this.page * this.pageSize, this.page * this.pageSize + this.pageSize);\n }\n}\n","<div class=\"breakdown\" *ngFor=\"let point of points\">\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: ' + point.normalizedScore + '%'\"></div>\n <div class=\"progressbar-label\">{{point.name | lowercase}} <span *ngIf=\"point.type == 'Segment'\">{{point.occurances}}x</span></div>\n <div class=\"progressbar-score\">{{point.normalizedScore | number:'1.0-0' }}</div>\n </div>\n <div class=\"details\">\n <a *ngIf=\"point.type == 'Team'\" [matTooltip]=\"'Open detailed report in new window'\" [routerLink]=\"['/', 'snapshot', point.publicKey]\"><i class=\"ph-faders-horizontal icon\"></i> </a>\n <a target=\"_blank\" *ngIf=\"point.type == 'Client'\" [matTooltip]=\"'Jump to Teams Dashboard for this organization'\" [href]=\"'https://coachingcenter.theliberatorsimproveyourteam.com/select/' + point.publicKey\"><i class=\"ph-faders-horizontal icon\"></i> </a>\n </div>\n</div>\n\n<div class=\"breakdown-paginator\">\n <div class=\"breakdown-paginator-previous\" (click)=\"previous()\" *ngIf=\"page > 0\"><span class=\"icon ph-caret-left\"></span></div>\n <div class=\"breakdown-paginator-previous\" *ngIf=\"page == 0\"></div>\n <div class=\"breakdown-paginator-next\" (click)=\"next()\" *ngIf=\"page < pageCount\"><span class=\"icon ph-caret-right\"></span></div>\n</div>\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})\nexport class AgeIndicatorComponent implements OnInit {\n @Input() lastMeasured: Date;\n public lastMeasuredMonths: number;\n public lastMeasuredOpacity: number;\n public lastMeasuredTooltip: string;\n\n constructor() {\n }\n \n public ngOnInit() {\n var measureDate = new Date(this.lastMeasured);\n this.lastMeasuredMonths = Math.max(0, (new Date().getFullYear() - measureDate.getFullYear()) * 12 - measureDate.getMonth() + new Date().getMonth());\n if (this.lastMeasuredMonths > 12) { this.lastMeasuredMonths = 12; }\n if (this.lastMeasuredMonths < 1) { this.lastMeasuredMonths = 1; }\n this.lastMeasuredOpacity = 1 - ( this.lastMeasuredMonths / 14);\n\n if (this.lastMeasuredMonths <= 1) {\n this.lastMeasuredTooltip = 'This factor was last measured 1 month or less ago. It is fresh data.';\n }\n else if (this.lastMeasuredMonths >= 12) {\n this.lastMeasuredTooltip = 'This factor was last measured 12 month or more ago. We recommend to measure this again to keep data fresh.';\n }\n else {\n this.lastMeasuredTooltip = 'This factor was last measured ' + this.lastMeasuredMonths + ' month or more ago. The fresher your data, the more reliable it is.';\n }\n }\n \n}\n","<div class=\"age-indicator\" [style.opacity]=\"lastMeasuredOpacity\" [matTooltip]=\"lastMeasuredTooltip\" *ngIf=\"lastMeasuredMonths > 0\">\n <div class=\"age-indicator-dot\" *ngFor=\"let e of [].constructor(lastMeasuredMonths); let i = index\"></div>\n</div>\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})\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","<div class=\"quicktips\" [class]=\"extraClass\" *ngIf=\"quickTip\">\n <div class=\"quicktips-container\">\n <div class=\"link back\" *ngIf=\"tipCount > 1\">\n <a class=\"ph-caret-left icon\" (click)=\"previousTip()\" *ngIf=\"tipIndex > 0\"></a>\n </div>\n <div class=\"quicktip\" [id]=\"'quicktip-' + quickTip.publicKey\" [ngClass]=\"{'subscribe' : quickTip.publicKey == 'subscribe' }\">\n <div class=\"quicktip-description\">{{quickTip.description}}</div>\n <div class=\"link\" *ngIf=\"quickTip.publicKey != 'subscribe'\">\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 <div class=\"link\" *ngIf=\"quickTip.publicKey == 'subscribe'\">\n <span class=\"ph-plus icon\"></span> <a [routerLink]=\"[]\" class=\"addasaction\" subscribeDialog>Subscribe</a>\n </div>\n </div>\n <div class=\"link forward\" *ngIf=\"tipCount > 1\">\n <a class=\"ph-caret-right icon\" (click)=\"nextTip()\" *ngIf=\"tipIndex + 1 < tipCount\"></a>\n </div>\n </div>\n</div>\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 { ModelFilter } from '../../../models/userSettingsDto';\nimport { DateRangeDto } from '../../../pipes/dateRange/ngx-dateRangeDto.model';\nimport { UserSettingService } from '../../../viewModel/userSettings.service';\nimport { ViewModelStateBase, VIEWSTATE_PROVIDER } from '../../../viewModel/viewModelState.service';\nimport { IResultsState } from '../../interfaces/IResultsState';\nimport { BenchmarkTypeEnum, FactorScoreCollectionDeltaDto, FactorScoreDto, PointDto, QualifiedByEnum } from '../../models/factorScoreDto';\nimport { EffectDto, FactorStructureDto } from '../../../models/modelStructureDto';\n\n@Component({\n selector: 'model-factor',\n templateUrl: './model-factor.component.html',\n styleUrls: ['./model-factor.component.less']\n})\nexport class ModelFactorComponent extends ComponentWithViewStateBase<IResultsState> {\n @Input() dimension: FactorStructureDto;\n @Input() factorExtraClass: string;\n public currentFactor: FactorScoreDto;\n public filter: ModelFilter;\n public direction: string;\n public factorScore: FactorScoreDto;\n public benchmarkScore: number;\n public dimensionKey: string;\n public subDimensions: FactorStructureDto[];\n public benchmark: string;\n public showBenchmark: boolean;\n public description: string;\n public notes: string[];\n public confidenceAvailable: boolean;\n public teamKey: string;\n public effects: EffectDto[];\n public points: PointDto[];\n public openInterventions: number;\n public completedInterventions: number;\n public dataAvailable: boolean;\n public score: number;\n public factorScoreWidth: number;\n public factorScoreLeft: number;\n public feedbackAvailable: boolean;\n public delta: FactorScoreCollectionDeltaDto;\n public dateRange: DateRangeDto;\n public impededInterventions: number;\n public name: string;\n public baseUrl: string;\n private subscription: Subscription;\n public InterventionStateEnum = InterventionStateEnum;\n public breakdownPage = 0;\n public lastMeasuredDots: Array<number>;\n public lastMeasuredOpacity: number;\n public lastMeasuredTooltip: string;\n\n constructor(@Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IResultsState>, private userSettingsService: UserSettingService, protected snackBar: MatSnackBar) {\n super(state, snackBar)\n }\n\n ngOnInit() {\n this.filter = this.userSettingsService.get().user.modelFilter;\n super.ngOnInit();\n\n this.subscription = this.userSettingsService.changed.subscribe(success => {\n this.filter = this.userSettingsService.get().user.modelFilter;\n });\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n \n protected onDataUpdate(data: IResultsState): void {\n this.currentFactor = data.factorScores.factorScores.find(p => p.key == this.dimension.publicKey);\n this.delta = data.factorScores.delta;\n this.dateRange = data.factorScores.dateRange;\n this.baseUrl = data.baseUrl;\n this.name = this.dimension.name;\n this.description = this.dimension.description;\n this.subDimensions = this.dimension.lower;\n this.dimensionKey = this.dimension.publicKey;\n this.effects = this.dimension.effects;\n this.benchmark = data.factorScores.benchmark.name;\n\n if (this.currentFactor != null) {\n this.dataAvailable = !this.currentFactor.anonymized && this.currentFactor.sampleSize > 0;\n this.confidenceAvailable = data.factorScores.composition.points.count > 0 && this.dataAvailable;\n this.feedbackAvailable = this.currentFactor.recommendation.available;\n this.benchmarkScore = this.currentFactor.benchmark;\n this.factorScore = this.currentFactor;\n this.score = this.currentFactor.score;\n this.points = this.currentFactor.points.slice(this.breakdownPage * 10, this.breakdownPage * 10 + 10);\n\n this.filter.interventionFilter;\n this.openInterventions = this.currentFactor.interventionSummary.open;\n this.completedInterventions = this.currentFactor.interventionSummary.completed;\n this.impededInterventions = this.currentFactor.interventionSummary.impeded;\n this.notes = this.currentFactor.notes;\n\n this.factorScoreWidth = (this.currentFactor.upperConfidence - this.currentFactor.lowerConfidence);\n if (this.factorScoreWidth <= 10) { this.factorScoreWidth = 10 };\n this.factorScoreLeft = this.currentFactor.lowerConfidence;\n if (this.factorScoreLeft >= 90) { this.factorScoreLeft = 90 };\n\n this.direction = this.factorScore.qualification.toLowerCase();\n }\n else {\n this.score = 0;\n }\n };\n}\n","<div [class]=\"'factor ' + factorExtraClass + ' ' + direction\" [ngClass]=\"{'factor-notmeasured' : !dataAvailable}\" [id]=\"'factor-' + dimensionKey\" #factor (click)=\"popover.open()\">\n <div class=\"factor-content\">\n <h2>\n {{name}}\n </h2>\n <div [class]=\"'progressbar progressbar-' + direction\">\n <div class=\"progressbar-score\">{{score | number:'1.0-0'}}</div>\n <div class=\"progressbar-confidence\" *ngIf=\"confidenceAvailable\" [matTooltip]=\"'Most responses fall in the range of ' + factorScore.lowerConfidence + ' (15% percentile) and ' + factorScore.upperConfidence + ' (85% percentile)'\" [style]=\"'left: ' + factorScoreLeft + '%; width: ' + factorScoreWidth + '%'\"></div>\n <div class=\"progressbar-bar\" *ngIf=\"!confidenceAvailable\" [style]=\"'width: ' + score + '%'\"></div>\n </div>\n <age-indicator [lastMeasured]=\"factorScore.lastMeasured\"></age-indicator>\n <delta-arrow *ngIf=\"dataAvailable\" [factorScore]=\"factorScore\" [delta]=\"delta\" [noDataIndicator]=\"false\"></delta-arrow>\n </div>\n <div class=\"emphasize emphasize-interventions\" *ngIf=\"filter.interventionFilter == 'All' && (openInterventions > 0 || completedInterventions > 0)\" [routerLink]=\"[baseUrl, 'actions']\" [queryParams]=\"{ expectedImpactOn: dimensionKey }\" [matTooltip]=\"'There are ' + openInterventions + ' open, and ' + completedInterventions + ' completed action(s). Each action is identified and created by the teams themselves.'\">\n {{openInterventions}}<small>/{{completedInterventions}}</small>\n </div>\n <a class=\"emphasize emphasize-interventions\" *ngIf=\"filter.interventionFilter == 'OnlyOpen' && openInterventions > 0\" [routerLink]=\"[baseUrl, 'actions']\" [queryParams]=\"{ state: InterventionStateEnum.open, expectedImpactOn: dimensionKey }\" [matTooltip]=\"'There are ' + openInterventions + ' open improvement actions. Each action is identified and created by the teams themselves.'\">\n <i class=\"ph-flask icon\"></i> {{openInterventions}}\n </a>\n <div class=\"emphasize emphasize-interventions\" *ngIf=\"filter.interventionFilter == 'OnlyCompleted' && completedInterventions > 0\" [routerLink]=\"[baseUrl, 'actions']\" [queryParams]=\"{ state: InterventionStateEnum.completed, expectedImpactOn: dimensionKey }\" [matTooltip]=\"'There are ' + openInterventions + ' completed improvement actions. Each action is identified and created by the teams themselves.'\">\n <i class=\"ph-check-bold icon\"></i> {{completedInterventions}}\n </div>\n <div class=\"emphasize emphasize-impediments\" *ngIf=\"impededInterventions > 0\" [routerLink]=\"[baseUrl, 'actions']\" [queryParams]=\"{ state: InterventionStateEnum.impeded, expectedImpactOn: dimensionKey }\" [matTooltip]=\"'There are ' + impededInterventions + ' actions where teams are requesting from help from outside the team.'\">\n <img class=\"icon\" src=\"/assets/img/impeded.svg\" /> {{impededInterventions}}\n </div>\n</div>\n\n<div [id]=\"'factor-' + dimensionKey + '-subfactors'\" class=\"subfactors\">\n <model-factor [dimension]=\"subDimension\" [factorExtraClass]=\"'factor-sub'\" *ngFor=\"let subDimension of subDimensions\"></model-factor>\n</div>\n\n<sat-popover #popover horizontalAlign=\"after\" [anchor]=\"factor\" verticalAlign=\"center\" [hasBackdrop]=\"true\" [autoFocus]=\"false\">\n <div class=\"popover\" [id]=\"'popover-' + dimensionKey\">\n <div class=\"popover-container\">\n <span (click)=\"popover.close()\" class=\"close ph-x\"></span>\n <h3 factorInformationDialog [factor]=\"dimension\">\n {{name}}\n <span class=\"icon ph-info-fill\"></span>\n </h3>\n <div class=\"description\">{{description}}</div>\n\n <div class=\"message message-warning limitations\" *ngIf=\"notes && notes.length > 0\">\n <span class=\"icon ph-warning-circle\"></span>\n <span *ngIf=\"notes.length == 1\">\n {{notes.length}} limitation applies to these results. <a [routerLink]=\"[]\" notesDialog [notes]=\"notes\">Click to explore</a>.\n </span>\n <span *ngIf=\"notes.length > 1\">\n {{notes.length}} limitations apply to these results. <a [routerLink]=\"[]\" notesDialog [notes]=\"notes\">Click to explore</a>.\n </span>\n </div>\n\n <div class=\"breakdown\">\n <div [matTooltip]=\"'This is the average score of teams in the benchmark [' + benchmark + ']. Change the benchmark under \\'Settings\\'.'\" [attr.normalizedScore]=\"benchmarkScore\" [class]=\"'progressbar progressbar-inverted progressbar-benchmark'\" *ngIf=\"benchmarkScore != 0\">\n <div class=\"progressbar-bar\" [style]=\"'width: ' + benchmarkScore + '%'\"></div>\n <div class=\"progressbar-label\">benchmark</div>\n <div class=\"progressbar-score\">{{benchmarkScore | number:'1.0-0' }}</div>W\n </div>\n <div class=\"details\">\n </div>\n </div>\n\n <model-factor-breakdown [factor]=\"currentFactor\"></model-factor-breakdown>\n\n <quicktips [dimensionKey]=\"dimensionKey\" [extraClass]=\"'quicktips-popover'\"></quicktips>\n\n <div class=\"link\" *ngIf=\"feedbackAvailable\">\n <a [routerLink]=\"[baseUrl, 'tips']\" [fragment]=\"dimensionKey\">discover how to improve ></a>\n </div>\n </div>\n <div class=\"arrow\"></div>\n </div>\n</sat-popover>\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})\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 }\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})\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 <mat-option class=\"select-option\" *ngFor=\"let model of models\" [value]=\"model\">{{model.name}} <span class=\"badge badge-beta\" *ngIf=\"model.isInBeta\">beta</span></mat-option>\n </mat-select>\n </mat-form-field>\n\n <p [innerHtml]=\"form.controls.activeModel.value.description\" *ngIf=\"form.controls.activeModel.value.description\"></p>\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})\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","<div class=\"modelswitcher\" id=\"button-switchmodel\" modelFilterDialog *ngIf=\"canSwitchModels\">\n <div class=\"prefix\">model</div>\n <div class=\"activemodel\">{{modelDefinition.name}}<span class=\"icon ph-caret-down-bold\"></span></div>\n</div>\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})\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.</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 <mat-option class=\"select-option\" *ngFor=\"let item of periodGroupings\" [value]=\"item.value\">{{item.label}}</mat-option>\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 <mat-error *ngIf=\"form.controls.start.hasError('matStartDateInvalid')\">Invalid start date</mat-error>\n <mat-error *ngIf=\"form.controls.end.hasError('matEndDateInvalid')\">Invalid end date</mat-error>\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 <mat-option class=\"select-option\" *ngFor=\"let item of benchmarkTypes\" [value]=\"item.value\">{{item.label}}</mat-option>\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})\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, HostListener, Inject } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\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 { DeltaPeriodEnum, PointTypeEnum, QualifiedByEnum } from '../../models/factorScoreDto';\nimport { EffectDto, FactorStructureDto, ModelDefinitionDto } from '../../../models/modelStructureDto';\n\n@Component({\n selector: 'model',\n templateUrl: './model.component.html',\n styleUrls: ['./model.component.less']\n})\nexport class ModelComponent extends ComponentWithViewStateBase<IResultsState> {\n public factors: FactorStructureDto[];\n public showSubFactorArrows: boolean;\n public showModel: boolean;\n public dateRange: DateRangeDto;\n public deltaDateRange: DateRangeDto;\n public coreEffects: EffectDto[];\n public pointCount: number;\n public benchmark: string;\n public pointNames: string;\n public pointType: string;\n public deltaTeams: number;\n public deltaTeamNames: string;\n public deltaAvailable: boolean;\n public isLoggedIn: boolean;\n public canSwitchModels: 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>, private dialog: MatDialog, protected snackBar: MatSnackBar) {\n super(state, snackBar);\n }\n\n ngOnInit() {\n this.determineScreenSize();\n super.ngOnInit();\n }\n\n @HostListener('window:resize', ['$event'])\n private determineScreenSize(event?) {\n this.showSubFactorArrows = 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);\n this.modelDefinition = data.factorScores.modelStructure.definition;\n this.canSwitchModels = data.factorScores.modelStructure.models.length > 1;\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\n switch (data.factorScores.composition.points.type) {\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","\n<div *ngIf=\"!showModel\" 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<limitationsapply [notes]=\"globalNotes\"></limitationsapply>\n\n<div class=\"wirebox model\" *ngIf=\"factors && showModel\">\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 <div class=\"toolbar-setting-label\" *ngIf=\"qualifiedBy == QualifiedByEnum.none\">No comparison</div>\n <div class=\"toolbar-setting-label\" *ngIf=\"qualifiedBy == QualifiedByEnum.delta && deltaType == 'PreviousSnapshot'\">Previous snapshot from {{deltaDateRange | dateRange}}</div>\n <div class=\"toolbar-setting-label\" *ngIf=\"qualifiedBy == QualifiedByEnum.delta && deltaType != 'PreviousSnapshot'\">Current period <span class=\"icon ph-info-fill\" [matTooltip]=\"'Current period ranges from ' + (dateRange | dateRange) + '. This includes weighed measurements from ' + pointCount + ' ' + pointType + ': ' + pointNames\"></span> with previous period <span class=\"icon ph-info-fill\" [matTooltip]=\"'Previous period ranges from ' + (deltaDateRange | dateRange) + '. This includes weighed measurements from ' + deltaTeams + ' ' + pointType + ': ' + deltaTeamNames\"></span></div>\n <div class=\"toolbar-setting-label\" *ngIf=\"qualifiedBy == QualifiedByEnum.benchmark\">Against benchmark</div>\n </div>\n <div class=\"toolbar-setting\" *ngIf=\"qualifiedBy != QualifiedByEnum.none\">\n <div class=\"toolbar-setting-title\">comparison legend</div>\n <div class=\"toolbar-setting-markers negative\">\n <ng-container *ngIf=\"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 neutral\">\n <span class=\"marker\"></span>\n <span class=\"label\">similar</span>\n </div>\n <div class=\"toolbar-setting-marker positive\">\n <span class=\"marker\"></span>\n <span class=\"label\">higher</span>\n </div>\n </ng-container>\n <ng-container *ngIf=\"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 neutral\">\n <span class=\"marker\"></span>\n <span class=\"label\">similar</span>\n </div>\n <div class=\"toolbar-setting-marker positive\">\n <span class=\"marker\"></span>\n <span class=\"label\">improved</span>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n <div class=\"buttons\">\n <div class=\"button\" id=\"change-settings\" settingsDialog><span class=\"ph-faders icon\"></span> Settings</div>\n <div class=\"button\" id=\"export-factorscores\" exportFactorScoresDialog *ngIf=\"isLoggedIn\"><span class=\"ph-download-simple icon\"></span> Export</div>\n </div>\n </div>\n </div>\n <div class=\"content\">\n <div class=\"model\">\n <div *ngIf=\"!showModel || !showSubFactorArrows\" class=\"message message-warning\">\n <div><span class=\"icon ph-info-fill\"></span> View on a larger device to see more details (like lower-order factors).</div>\n </div>\n\n <div class=\"model-frame\" [class]=\"'model-' + modelDefinition.publicKey\">\n <ng-container *ngFor=\"let factor of factors\">\n <model-factor [dimension]=\"factor\" [factorExtraClass]=\"'factor-primary'\"></model-factor>\n </ng-container>\n </div>\n\n <ng-container *ngFor=\"let factor of factors\">\n <arrow [from]=\"'#factor-' + factor.publicKey\" [to]=\"'#factor-' + effect.to\" [onlyVisible]=\"true\" [tail]=\"true\" [head]=\"false\" [width]=\"effect.standardizedBeta * 10\" [text]=\"'+'\" *ngFor=\"let effect of factor.effects\"></arrow>\n <ng-container *ngIf=\"showSubFactorArrows\">\n <ng-container *ngFor=\"let lowerFactor of factor.lower\">\n <arrow [from]=\"'#factor-' + lowerFactor.publicKey\" [to]=\"'#factor-' + lowerEffect.to\" [onlyVisible]=\"true\" [tail]=\"false\" [head]=\"false\" [width]=\"1\" *ngFor=\"let lowerEffect of lowerFactor.effects\"></arrow>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </div>\n\n <div class=\"bottom\">\n <div class=\"message message-information\">\n <div>\n <span class=\"icon ph-info-fill\"></span>\n <span>\n <span [innerHtml]=\"modelDefinition.attribution\"></span>\n <span> Explore our <a href=\"https://github.com/theliberators/scrumteamsurvey.docs/wiki\" target=\"_blank\">wiki</a> for details on calculations and common questions.</span>\n </span>\n </div>\n </div>\n </div>\n</div>\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})\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() 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(eventData: Event) {\n this.hover = true;\n }\n @HostListener('mouseleave') mouseleave(eventData: Event) {\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","<div class=\"brandeditem\" [routerLink]=\"routerLink\" [style.background-color]=\"active ? accentColor : null\">\n <div class=\"counter\" *ngIf=\"alertCount > 0\">{{alertCount}}</div>\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","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})\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 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\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 <div class=\"segment\" *ngFor=\"let segment of populationSegments\">\n {{segmentName(segment.name)}} <span class=\"digit\">{{segment.occurances}}</span>\n </div>\n </div>\n\n <div class=\"closed message\" *ngIf=\"closed\"><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 <div class=\"invitebox\" *ngIf=\"teamInviteUrl && !closed\">\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 <div class=\"invitebox\" *ngIf=\"stakeholderInviteUrl && !closed\">\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 <div class=\"invitebox\" *ngIf=\"supporterInviteUrl && !closed\">\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 </div>\n <div class=\"bottom\">\n </div>\n</div>\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 { 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})\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\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 };\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\">benchmark <benchmark-indicator [factorScore]=\"item\"></benchmark-indicator></div>\n <div class=\"delta-item\" *ngIf=\"delta.available\">previous period <delta-arrow [factorScore]=\"item\" [delta]=\"delta\"></delta-arrow></div>\n <div class=\"delta-item\">impact <impact-indicator [factorScore]=\"item\"></impact-indicator></div>\n </div>\n </div>\n <div class=\"bottom insightsfromresearch\" *ngIf=\"item.recommendation.research\">\n <div class=\"titleandaction\" (click)=\"researchExpanded = !researchExpanded\">\n <h3>Insights from research</h3>\n <div class=\"unexpand action\" *ngIf=\"researchExpanded\">\n <span class=\"icon ph-minus-bold\"></span>\n </div>\n <div class=\"expand action\" *ngIf=\"!researchExpanded\">\n <span class=\"icon ph-plus-bold\"></span>\n </div>\n </div>\n <div class=\"research\" *ngIf=\"researchExpanded\">\n <div class=\"chunk summary\" [innerHtml]=\"item.recommendation.research\"></div>\n </div>\n </div>\n <div class=\"bottom howtoimprove\">\n <div class=\"titleandaction\" (click)=\"howToImproveExpanded = !howToImproveExpanded\">\n <h3>How to improve</h3>\n <div class=\"unexpand action\" *ngIf=\"howToImproveExpanded\">\n <span class=\"icon ph-minus-bold\"></span>\n </div>\n <div class=\"expand action\" *ngIf=\"!howToImproveExpanded\" >\n <span class=\"icon ph-plus-bold\"></span>\n </div>\n </div>\n <div class=\"howtoimprove\" *ngIf=\"howToImproveExpanded\">\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 <div class=\"chunk resources\" *ngIf=\"resources.length > 0\">\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 <div class=\"chunk predictors\" *ngIf=\"predictors.length > 0\">\n <p>Or you can improve in this area by investing in:</p>\n <ul *ngFor=\"let effect of predictors\">\n <li *ngIf=\"effect.type == 'IsPartOf'\"><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 <li *ngIf=\"effect.type == 'IsPredictedBy'\"><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 </ul>\n </div>\n <div class=\"chunk summary effects\" *ngIf=\"influences.length > 0\">\n <p>When you are successful, you're likely to see additional improvements in:</p>\n <ul *ngFor=\"let effect of influences\">\n <li><a [routerLink]=\"[]\" factorInformationDialog [factor]=\"getFactor(effect.key)\">{{effect.name}}<span class=\"icon ph-info-fill\"></span></a></li>\n </ul>\n </div>\n </div>\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})\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 <recommendation *ngFor=\"let item of recommendations\" [item]=\"item\"></recommendation>\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})\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 in a scientific approach to change. This tool is built on a scientifc investigation of data from 1.978 Scrum/Agile teams to identify which factors contribute to their effectiveness (<a href=\"https://dl.acm.org/doi/pdf/10.1145/3571849\" download>Verwijs & Russo, 2022</a>). We report these factors and offer evidence-based feedback for them.</p>\n\n <div class=\"link\">\n <a href=\"https://columinity.com/research\">Explore research ></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})\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","<div class=\"roadmap\" brandbackground [palette]=\"'accent'\" *ngIf=\"show\">\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-circle\"></span> Add basic API for select Enterprise users (Q3)\n </div>\n <div class=\"feature\">\n <span class=\"icon ph-circle\"></span> Evolve Feedback To Support Action Learning (in progress, Q2-4)\n </div>\n <div class=\"feature\">\n <span class=\"icon ph-circle\"></span> Transition Teamwork Model Out Of Beta (Q4)\n </div>\n <div class=\"feature\">\n <span class=\"icon ph-circle\"></span> Expand with non-survey measures (Q1-2, 2025)\n </div>\n</div>\n","import { BrandingSettingsDto } from \"../../models/brandingSettingsDto\";\n\nexport class TeamMetaDataDto {\n name: string;\n teamKey: string;\n isSubscribed: boolean;\n subscriptionTier: SubscriptionTierEnum;\n managementUrl: string;\n retakeUrl: string;\n lowTrustMode: boolean;\n pincode: string;\n}\n\nexport enum SubscriptionTierEnum {\n Freemium = \"Freemium\",\n Professional = \"Professional\",\n Enterprise = \"Enterprise\"\n}\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, ITeamReportResultsState } from '../../interfaces/IResultsState';\nimport { SubscriptionTierEnum } from '../../models/teamMetaDataDto';\n\n@Component({\n selector: 'teamdashboard-teaser',\n templateUrl: './teamdashboard-teaser.component.html',\n styleUrls: ['./teamdashboard-teaser.component.less']\n})\nexport class TeamDashboardTeaserComponent extends ComponentWithViewStateBase<IResultsState> {\n public show: boolean;\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.teamMetaData.subscriptionTier == SubscriptionTierEnum.Freemium;\n };\n}\n","<div class=\"box doityourself\" brandbackground [palette]=\"'neutral'\" *ngIf=\"show\">\n <img class=\"responsive\" src=\"assets/img/teamdashboard-teaser.jpg\" />\n <h3>Teams Dashboard</h3>\n <p>Our Teams Dashboard allows you to manage many teams in the same organization. Aggregate and analyze results from our diagnostics to identify patterns and trends.</p>\n\n <div class=\"link\">\n <a href=\"https://columinity.com/for-my-organization\" target=\"_blank\">Discover our 'Professional'-plan ></a>\n </div>\n</div>\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 { 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})\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","<div class=\"box teameffectiveness\" *ngIf=\"score != 0\" brandbackground [palette]=\"'theme'\">\n <h3>Team Effectiveness Score</h3>\n \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\n <div [class]=\"'progressbar progressbar-inverted progressbar-benchmark'\" *ngIf=\"benchmarkScore > 0\">\n <div class=\"progressbar-bar\" [matTooltip]=\"'This is the upper range of what most Scrum 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</div>\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})\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 <li *ngFor=\"let document of legal.documents\"><a [href]=\"document.url\" target=\"_blank\">{{document.name}} <span class=\"icon ph-arrow-square-out\"></span></a></li>\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})\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","<form [formGroup]=\"form\" class=\"dataselector\" (ngSubmit)=\"onFormSubmit()\">\n <div class=\"listtoolbar\" id=\"listtoolbar\">\n <mat-form-field class=\"listtoolbar-item select\" appearance=\"fill\" *ngIf=\"units.length > 1\">\n <mat-label>Select {{unitType}}</mat-label>\n <mat-select formControlName=\"unitKey\" id=\"select-units\" class=\"unitKey\" multiple [disabled]=\"units.length == 1\">\n <mat-option class=\"select-option\" *ngFor=\"let unit of units\" [value]=\"unit\">{{unit.label}}</mat-option>\n </mat-select>\n </mat-form-field>\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 <mat-option class=\"select-option\" *ngFor=\"let factor of factors\" [ngClass]=\"{'lower' : factor.lower}\" [value]=\"factor\" selected=\"true\">{{factor.label}}</mat-option>\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 <mat-option class=\"select-option\" *ngFor=\"let item of periodGroupings\" [value]=\"item.value\">{{item.label}}</mat-option>\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 <mat-option class=\"select-option\" *ngFor=\"let item of includeActionOptions\" [value]=\"item.value\" class=\"select-option\">{{item.label}}</mat-option>\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 <mat-error *ngIf=\"form.controls.start.hasError('matStartDateInvalid')\">Invalid start date</mat-error>\n <mat-error *ngIf=\"form.controls.end.hasError('matEndDateInvalid')\">Invalid end date</mat-error>\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<div class=\"message message-warning\" *ngIf=\"generatorNotes.length > 0\">\n <div class=\"ph-warning icon\"></div> {{generatorNotes[0]}}\n</div>\n\n<div class=\"wirebox calltoaction nodata\" *ngIf=\"!data\">\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<div #chartcontainer class=\"linechart\">\n <div class=\"linechart-container\" *ngIf=\"data\">\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</div>\n\n<div class=\"message message-information\" *ngIf=\"data\">\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 25% of scores). We aggregate 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","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})\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","<div class=\"update-in-progress\" *ngIf=\"delayedReloading\">\n <span class=\"icon ph-floppy-disk-bold\"></span>\n</div>\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","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})\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\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 }\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\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 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.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 <div class=\"userprofileavatar\" *ngIf=\"userProfile.avatarUrl\">\n <div *ngIf=\"loading\" class=\"loading-icon small\"></div>\n <img *ngIf=\"!loading\" class=\"responsive\" [src]=\"userProfile.avatarUrl\" />\n </div>\n <div class=\"reupload\">\n <div class=\"button\" (click)=\"changeAvatar = true\" *ngIf=\"!changeAvatar && userProfile.avatarUrl\">Change avatar</div>\n <div class=\"button\" (click)=\"changeAvatar = true\" *ngIf=\"!changeAvatar && !userProfile.avatarUrl\">Set avatar</div>\n <div class=\"button\" (click)=\"clearAvatar()\" *ngIf=\"changeAvatar && userProfile.avatarUrl\"><span class=\"icon ph-trash-fill\"></span>Clear</div>\n </div>\n </div>\n\n <div class=\"reuploadform\" *ngIf=\"changeAvatar\">\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 <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 <mat-error *ngIf=\"form.controls.name.errors\">\n <div *ngIf=\"form.controls.name.errors.required\">This field is required</div>\n </mat-error>\n </mat-form-field>\n\n <div class=\"form-label\">Email</div>\n <p *ngIf=\"!showEmailInput\">\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 <mat-form-field appearance=\"fill\" *ngIf=\"showEmailInput\" 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 <mat-error *ngIf=\"form.controls.newEmail.errors\">\n <div *ngIf=\"form.controls.newEmail.errors.email\">The email is invalid. Please specify email like john@doe.nl or jane.doe@someone.nl.</div>\n <div *ngIf=\"form.controls.newEmail.errors.alreadyExists\">Another user already uses this e-mail address. Please use another email address.</div>\n </mat-error>\n </mat-form-field>\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 <div class=\"button\" (click)=\"sendPasswordReset()\" id=\"account-passwordreset\" *ngIf=\"!userProfile.usesSSO\">Send email to change password</div>\n <p *ngIf=\"userProfile.usesSSO\">You are logging in through single-sign on (SSO). Use your company's identity provider to change your password.</p>\n\n <ng-container *ngIf=\"allowMfa\">\n <div class=\"form-label\">Add additional login factor (MFA)</div>\n <ng-container *ngIf=\"!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 </ng-container>\n <ng-container *ngIf=\"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 </ng-container>\n </ng-container>\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})\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})\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\n constructor() {\n }\n\n ngOnInit() {\n this.confidenceAvailable = this.factorScores.composition.points.count > 1;\n this.score = this.factorScore.score;\n this.benchmark = this.factorScore.benchmark;\n this.benchmarkName = this.factorScores.benchmark.name;\n\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 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 <div class=\"progressbar-confidence\" *ngIf=\"confidenceAvailable && factorScore.score > 0\" [matTooltip]=\"'Most teams in your organization fall in this range (25-75% percentile)'\" [style]=\"'left: ' + factorScoreLeft + '%; width: ' + factorScoreWidth + '%'\"></div>\n <div class=\"progressbar-confidence\" *ngIf=\"confidenceAvailable && factorScore.score > 0\" [matTooltip]=\"'Most teams in your organization fall in this range (25-75% percentile)'\" [style]=\"'left: ' + factorScoreLeft + '%; width: ' + factorScoreWidth + '%'\"></div>\n <div class=\"progressbar-bar\" *ngIf=\"!confidenceAvailable\" [style]=\"'width: ' + score + '%'\"></div>\n <div class=\"benchmark\" [style]=\"'left: ' + benchmark + '%'\" [matTooltip]=\"'Teams in benchmark \\'' + benchmarkName + '\\' score an average of ' + benchmark + ' points'\" *ngIf=\"benchmark != 0\"></div>\n <div class=\"progressbar-score\">{{factorScore.score > 0 ? factorScore.score : \"waiting for data\"}}</div>\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})\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 <div class=\"progressbar-confidence\" *ngIf=\"confidenceAvailable\" [matTooltip]=\"'Most teams in your organization fall in this range (25-75% percentile)'\" [style]=\"'left: ' + factorScoreLeft + '%; width: ' + factorScoreWidth + '%'\"></div>\n <div class=\"progressbar-bar\" *ngIf=\"!confidenceAvailable\" [style]=\"'width: ' + percentage + '%'\"></div>\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})\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).</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).</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})\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","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 allowedTeamPublicKeys: string[];\n allowedTeamNames: string[];\n};\n","export class ParticipantDto {\n identifier: 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};\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}\n\nexport class InviteUrlDto {\n segment: string;\n value: string;\n}\n","import { 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 archived: boolean;\n teamType: 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};\n\nexport class TeamNameAndKeyDto {\n name: string;\n publicKey: string;\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; 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 } 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 { SatPopoverModule } from '@ncstate/sat-popover';\nimport { NgxChartsModule } from '@swimlane/ngx-charts';\nimport { FactorInformationDialogModule } from '../../public-api';\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 { 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 { CoachingCenterTeaserComponent } from './components/coachingcenter-teaser/coachingcenter-teaser.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 { LiberatorKitsComponent } from './components/liberatorkits/liberatorkits.component';\nimport { LimitationsApplyComponent } from './components/limitationsapply/limitationsapply.component';\nimport { ModelFactorBreakdownComponent } from './components/model-factor-breakdown/model-factor-breakdown.component';\nimport { ModelFactorComponent } from './components/model-factor/model-factor.component';\nimport { ModelSwitcherComponent } from './components/model-switcher/model-switcher.component';\nimport { ModelComponent } from './components/model/model.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 { TeamDashboardTeaserComponent } from './components/teamdashboard-teaser/teamdashboard-teaser.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 { 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, OpenNotesDialogDirective } from './dialogs/dialog-notes/dialog-notes.component';\nimport { DialogSettingsComponent, OpenSettingsDialogDirective } from './dialogs/dialog-settings/dialog-settings.component';\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 { AgeIndicatorComponent } from './components/age-indicator/age-indicator.component';\n\n@NgModule({\n imports: [\n ClipboardModule,\n NgxChartsModule,\n SlugifyPipeModule,\n MatDialogModule,\n MatTooltipModule,\n MatNativeDateModule,\n RouterModule,\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n MatOptionModule,\n MatInputModule,\n MatSlideToggleModule,\n BrandingModule,\n MatSelectModule,\n MatProgressSpinnerModule,\n MatDatepickerModule,\n DateRangePipeModule,\n SatPopoverModule,\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 FocusAreasComponent,\n ImpactIndicatorComponent,\n AgeIndicatorComponent,\n RoadmapComponent,\n CoachingCenterTeaserComponent,\n ModelComponent,\n QuickTipsComponent,\n TeamDashboardTeaserComponent,\n ModelFactorComponent,\n RecommendationComponent,\n RecommendationsComponent,\n ModelSwitcherComponent,\n ResearchComponent,\n DoItYourselfWorkshopsComponent,\n DoItYourselfComponent,\n ModelFactorBreakdownComponent,\n FooterComponent,\n DialogSettingsComponent,\n NavButtonComponent,\n TermsUpdatedComponent,\n OpenSettingsDialogDirective,\n WidgetFactorScoreComponent,\n WidgetParticipationRateComponent,\n TeamEffectivenessComponent,\n LiberatorKitsComponent,\n DialogExportFactorScoresComponent,\n OpenExportFactorScoresDialogDirective,\n DialogExportTeamListComponent,\n OpenExportTeamListDialogDirective,\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 CoachingCenterTeaserComponent,\n AgeIndicatorComponent,\n FocusAreasComponent,\n ImpactIndicatorComponent,\n VideoComponent,\n ModelComponent,\n QuickTipsComponent,\n ModelFactorComponent,\n RoadmapComponent,\n TeamDashboardTeaserComponent,\n LiberatorKitsComponent,\n TermsUpdatedComponent,\n FooterComponent,\n NavButtonComponent,\n RecommendationComponent,\n ModelSwitcherComponent,\n RecommendationsComponent,\n FilterTagsComponent,\n DoItYourselfWorkshopsComponent,\n ModelFactorBreakdownComponent,\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 OpenExportTeamListDialogDirective,\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 ]\n})\nexport class ResultsModule { }\n","import { Inject, Injectable, InjectionToken, Optional } from '@angular/core';\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\nexport class ResultsClientDto {\n}\n\nexport const ResultsConfigToken = new InjectionToken<ResultsClientDto>(\n 'results-angular.config'\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","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 { 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 { 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\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\nexport class ViewModelStateConfigDto {\n}\n\nexport const ViewModelStateConfigToken = new InjectionToken<ViewModelStateConfigDto>(\n 'viewmodelstate-angular.config'\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/interfaces/IAlertState';\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/brandConditionalColor.directive';\nexport * from './lib/branding/brandConditionalBackgroundColor.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/community/community.module';\nexport * from './lib/community/components/gethelp-form/gethelp-form.component';\nexport * from './lib/community/components/meetups/meetups.component';\nexport * from './lib/community/components/recentcontent/recentcontent.component';\nexport * from './lib/community/interfaces/ICommunityState';\nexport * from './lib/community/models/meetupDto';\nexport * from './lib/community/models/resourceDto';\nexport * from './lib/community/services/communityClientConfig';\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/paginator/paginator.component';\nexport * from './lib/components/paginator/paginator.module';\nexport * from './lib/components/scale-selector/scale-selector.component';\nexport * from './lib/components/scale-selector/scale-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/snapshot-inviteurls/snapshot-inviteurls.component';\nexport * from './lib/components/snapshot-inviteurls/snapshot-inviteurls.module';\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/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/contextItemDto';\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/results/components/arrow/arrow.component';\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/coachingcenter-teaser/coachingcenter-teaser.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/liberatorkits/liberatorkits.component';\nexport * from './lib/results/components/limitationsapply/limitationsapply.component';\nexport * from './lib/results/components/model-factor-breakdown/model-factor-breakdown.component';\nexport * from './lib/results/components/model-factor/model-factor.component';\nexport * from './lib/results/components/model-switcher/model-switcher.component';\nexport * from './lib/results/components/model/model.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/roadmap/roadmap.component';\nexport * from './lib/results/components/teamdashboard-teaser/teamdashboard-teaser.component';\nexport * from './lib/results/components/teameffectiveness/teameffectiveness.component';\nexport * from './lib/results/components/termsupdated/termsupdated.component';\nexport * from './lib/results/components/age-indicator/age-indicator.component';\nexport * from './lib/results/components/tip-badge/tip-badge.component';\nexport * from './lib/results/components/trends/trends.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/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/maxSelectedValidator';\nexport * from './lib/validators/matchInputValidator';\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","i4","i5","i6","i1.ViewModelStateBase","i7","i8","i10","i1","i3.ActionManageComponent","i6.OpenEditActionDialogDirective","i7.InterventionTypeToStringPipe","i8.InterventionOwnerToStringPipe","i2.ActionService","i6.PaginatorComponent","i10.ActionTileComponent","i11.OpenAddActionDialogDirective","i12.OpenActionFiltersDialogDirective","i13.OpenExportActionsDialogDirective","DATE_POCTUATION_REGEX","i1.AlertService","i3.AlertsComponent","i1.BrandingProvider","i2.ContactService","i9","i4.OpenReportBugDialogDirective","i4.OpenSupportDialogDirective","i6.OpenLookingForHelpDialog","i7.OpenSubscribeDialogDirective","i7.OpenFactorInformationDialogDirective","i8.SegmentNamePipe","i9.CallbackPipe","i2.BrandConditionalBackgroundColorDirective","AccountService","i4.ResourceDownloadService","i2.GuidesClientConfig","i1.GuidePopupService","i6.CheckboxComponent","i7.ImageSliderComponent","i5.OpenGuideDialogDirective","i2.BadgeStreakComponent","i3.BadgeProgressionComponent","i3.BadgeComponent","i4.BadgeStreakComponent","i2.BrandBackgroundDirective","i1.BrandBackgroundDirective","i2.OpenResourceDownloadDialogDirective","i3.OpenAddActionDialogDirective","i4.OpenSubscribeDialogDirective","i5.OpenResourceDownloadDialogDirective","i5.OpenSubscribeDialogDirective","i6.OpenSubscribeDialogDirective","i8.DeltaArrowComponent","i9.TipBadgeComponent","i10.OpenNotesDialogDirective","i3.OpenNotesDialogDirective","i7.OpenSettingsDialogDirective","i8.FactorAxisComponent","i9.LimitationsApplyComponent","i10.SlugifyPipe","i4.ImpactIndicatorComponent","i3.BrandBackgroundDirective","i4.SlugifyPipe","i4.OpenAddActionDialogDirective","i1.UserSettingService","i9.AgeIndicatorComponent","i10.QuickTipsComponent","i11.ModelFactorBreakdownComponent","i12.OpenNotesDialogDirective","i3.OpenModelFilterDialog","i2.ExportService","i5.ArrowComponent","i6.ModelFactorComponent","i8.OpenExportFactorScoresDialogDirective","i10.DateRangePipe","i2.BrandingProvider","i4.OpenFactorInformationDialogDirective","i5.DeltaArrowComponent","i6.BenchmarkIndicatorComponent","i7.ImpactIndicatorComponent","i8.QuickTipsComponent","i9.DoItYourselfWorkshopsComponent","i4.RecommendationComponent","i4.BrandBackgroundDirective","i11","i2.UserProfileService","i3.AccountService","i3.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/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/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/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/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/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/brandConditionalColor.directive.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/branding/brandConditionalBackgroundColor.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/add-calendar/index.ts","../../../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/dialogs/dialog-subscribe/dialog-subscribe.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/community/components/gethelp-form/gethelp-form.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/community/components/gethelp-form/gethelp-form.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/community/components/meetups/meetups.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/community/components/meetups/meetups.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/community/components/recentcontent/recentcontent.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/community/components/recentcontent/recentcontent.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/community/community.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/community/models/meetupDto.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/community/models/resourceDto.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/community/services/communityClientConfig.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/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/pipes/segmentName/segmentName.pipe.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/pipes/callback/callback.pipe.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/scale-selector/scale-selector.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/scale-selector/scale-selector.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/dialogs/dialog-factorinformation/dialog-factorinformation.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/pipes/callback/callback.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/pipes/segmentName/segmentName.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/scale-selector/scale-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/components/tabnavigator/tabnavigator.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/tabnavigator/tabnavigator.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/components/tabnavigator/tabnavigator.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/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/directives/backbutton/backbutton.directive.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/directives/backbutton/backbutton.module.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/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/directives/startguide/startguide.directive.ts","../../../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/guides.module.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/models/clientInfoDto.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/models/contextItemDto.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/pipes/slugify/ngx-slugify.pipe.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/pipes/slugify/ngx-slugify.module.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/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/coachingcenter-teaser/coachingcenter-teaser.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/coachingcenter-teaser/coachingcenter-teaser.component.html","../../../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/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/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/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/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/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/components/liberatorkits/liberatorkits.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/liberatorkits/liberatorkits.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/model-factor-breakdown/model-factor-breakdown.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/model-factor-breakdown/model-factor-breakdown.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/results/components/quicktips/quicktips.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/quicktips/quicktips.component.html","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/model-factor/model-factor.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/model-factor/model-factor.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/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/components/model/model.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/model/model.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/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/models/teamMetaDataDto.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/teamdashboard-teaser/teamdashboard-teaser.component.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/components/teamdashboard-teaser/teamdashboard-teaser.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/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/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/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/userListResponseDto.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/results/models/widgetDataDto.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/results/services/resultsClientConfig.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/validators/domainValidator.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/validators/maxSelectedValidator.ts","../../../projects/ngx-scrumteamsurvey-tools/src/lib/validators/matchInputValidator.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})\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 <div class=\"back button\" *ngIf=\"items.page > 0\" (click)=\"back()\">\n back\n </div>\n <div class=\"next button primary\" *ngIf=\"((items.page + 1) * items.itemsPerPage) < items.totalItems\" (click)=\"next()\">\n next\n </div>\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(1)).subscribe(aggregate => {\n if (aggregate) {\n aggregate.loaded = true;\n this.map(aggregate);\n this.data.next(this.result);\n this.updating.next(false);\n }\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.log(\"No reload strategy connected. We are reloading manually in 3 seconds.\");\n this.forcedReload();\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","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: string;\n interventionSummary: InterventionSummaryDto;\n recommendation: FactorRecommendationDto;\n effects: FactorEffectDto[];\n notes: string[];\n anonymized: boolean;\n lastMeasured: Date;\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 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(InterventionFilterType.All);\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\nexport class GuideSettingsDto {\n constructor() {\n this.completedSteps = [];\n }\n\n activeGuideKey: string;\n completedSteps: string[];\n}\n\nexport class ModelFilter {\n constructor(interventionFilterType: InterventionFilterType) {\n this.interventionFilter = interventionFilterType;\n }\n\n interventionFilter: InterventionFilterType;\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","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 productOwner = \"ProductOwner\",\n scrumMaster = \"ScrumMaster\",\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})\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.productOwner:\n return \"Product Owner\";\n case InterventionOwnerEnum.scrumMaster:\n return \"Scrum Master\";\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})\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})\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})\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.teamMetaData != null) {\n this.teams.push(new ActionOptionDto(success.teamMetaData.teamKey, success.teamMetaData.name));\n }\n else {\n this.teams = success.factorScores.composition.points.points.map(p => new ActionOptionDto(p.publicKey, p.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.updating.next(true);\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.updating.next(true);\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 <mat-form-field appearance=\"fill\" *ngIf=\"showTeamSelector\">\n <mat-label>Which team owns this action?</mat-label>\n <mat-select formControlName=\"teamKey\" id=\"teamKey\">\n <mat-option class=\"select-option\" *ngFor=\"let team of teams\" [value]=\"team.key\">{{team.label}}</mat-option>\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=\"3\" maxlength=\"500\"></textarea>\n </mat-form-field>\n <mat-form-field appearance=\"fill\" *ngIf=\"!prefill.expectedImpactOn || prefill.expectedImpactOn.length == 0\" subscriptSizing=\"dynamic\">\n <mat-label>Where do you expect improvement?</mat-label>\n <mat-select multiple formControlName=\"expectedImpactOn\" id=\"expectedImpactOn\">\n <mat-option class=\"select-option\" [ngClass]=\"{'lower' : factor.lower}\" *ngFor=\"let factor of factors\" [value]=\"factor.value\">{{factor.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field appearance=\"fill\" *ngIf=\"!prefill.owner\" subscriptSizing=\"dynamic\">\n <mat-label>Who owns this action?</mat-label>\n <mat-select formControlName=\"owner\" id=\"owner\">\n <mat-option class=\"select-option\" *ngFor=\"let owner of ownerList\" [value]=\"owner.key\">{{owner.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field appearance=\"fill\" *ngIf=\"!prefill.type\" subscriptSizing=\"dynamic\">\n <mat-label>What is the type of action?</mat-label>\n <mat-select formControlName=\"type\" id=\"type\">\n <mat-option class=\"select-option\" *ngFor=\"let interventionType of interventionTypeList\" [value]=\"interventionType.key\">{{interventionType.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field appearance=\"fill\" *ngIf=\"!prefill.state || action\" subscriptSizing=\"dynamic\">\n <mat-label>What is the state of this action?</mat-label>\n <mat-select formControlName=\"state\" id=\"state\">\n <mat-option class=\"select-option\" *ngFor=\"let state of stateList\" [value]=\"state.key\">{{state.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field appearance=\"fill\" *ngIf=\"!prefill.url || prefill.url.length == 0\" 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 <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 <a class=\"button borderless delete\" href=\"javascript:void(null);\" (click)=\"delete()\" id=\"delete\" *ngIf=\"action\"><span class=\"icon ph-trash\"></span> delete</a>\n <a class=\"button borderless cancel\" href=\"javascript:void(null);\" (click)=\"cancel()\" id=\"cancel\" *ngIf=\"form.dirty || action\"><span class=\"icon ph-x-circle\"></span> cancel</a>\n </div>\n <input class=\"button primary\" type=\"submit\" id=\"submit\" value=\"save\" />\n </div>\n</form>\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})\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})\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})\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 <h1 mat-dialog-title *ngIf=\"!data.action\">Add Action</h1>\n <h1 mat-dialog-title *ngIf=\"data.action\">Edit Action</h1>\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})\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 this.viewModelState.updating.next(true);\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 this.viewModelState.updating.next(true);\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 this.viewModelState.updating.next(true);\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 this.viewModelState.updating.next(true);\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 this.viewModelState.updating.next(true);\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.updating.next(true);\n }\n\n protected onDataUpdate(data: IActionState): void {\n };\n}\n","<div [id]=\"'action-' + action.publicKey\" class=\"wirebox action contentwithborders\" [ngClass]=\"[multipleTeams ? action.team.colorString : '', action.isDue ? 'due' : '']\" *ngIf=\"!action.deleted\" editActionDialog [action]=\"action\">\n <div class=\"summary property-description\" [innerHTML]=\"action.description\">\n </div>\n <div class=\"expectedeffect\">\n <h4>Should improve</h4>\n <span class=\"badge positive\" *ngFor=\"let area of action.expectedImpactOnLabels\">{{ area }}</span>\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 <div class=\"property property-team\" *ngIf=\"multipleTeams\"><i class=\"ph-users-three-bold icon\"></i> {{action.team.name}}</div>\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 <div class=\"property property-url\" *ngIf=\"action.url\"><i class=\"ph-arrow-square-in-bold icon\"></i> <a [href]=\"action.url\" target=\"_blank\">open detail url</a></div>\n <div class=\"property property-due\" *ngIf=\"action.due\"><i class=\"ph-calendar-bold icon\" *ngIf=\"!action.isDue\"></i><i class=\"ph-bell-simple-ringing-bold\" *ngIf=\"action.isDue\"></i> Due on {{action.due | date}}</div>\n </div>\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.'\" *ngIf=\"action.state == 'Open'\" (click)=\"impede($event, action)\"></span>\n <span class=\"status impeded\" matTooltip=\"This action is impeded. The team needs urgent help from outside team to complete this action.\" *ngIf=\"action.state == 'Impeded'\" (click)=\"unimpede($event, action)\">\n <img src=\"/assets/img/impeded.svg\" class=\"icon\">\n </span>\n <div>\n <span class=\"status obsolete ph-eye-slash-bold\" matTooltip=\"This action was marked obsolete. Click to re-open this action\" *ngIf=\"action.state == 'Obsolete'\" (click)=\"open($event, action)\"></span>\n <span class=\"status checked ph-check-circle-fill\" matTooltip=\"Mark this action as uncompleted\" *ngIf=\"action.state == 'Completed'\" (click)=\"open($event, action)\"></span>\n <span class=\"status unchecked ph-circle\" matTooltip=\"Mark this action as completed\" *ngIf=\"action.state == 'Open' || action.state == 'Impeded'\" (click)=\"complete($event, action)\"></span>\n </div>\n </div>\n</div>\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';\n\n@Component({\n templateUrl: './dialog-filters.component.html',\n styleUrls: ['./dialog-filters.component.less']\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>, 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 this.stateFilterList = [];\n this.stateFilterList.push(new ActionOptionDto(null, \"Show all\"));\n this.stateFilterList.push(new ActionOptionDto(InterventionStateEnum.open, \"Only open\"));\n this.stateFilterList.push(new ActionOptionDto(InterventionStateEnum.due, \"Only due\"));\n this.stateFilterList.push(new ActionOptionDto(InterventionStateEnum.completed, \"Only completed\"));\n this.stateFilterList.push(new ActionOptionDto(InterventionStateEnum.impeded, \"Only impeded\"));\n this.stateFilterList.push(new ActionOptionDto(InterventionStateEnum.obsolete, \"Only canceled\"));\n\n this.ownerFilterList = [];\n this.ownerFilterList.push(new ActionOptionDto(null, \"Show all\"));\n this.ownerFilterList.push(new ActionOptionDto(InterventionOwnerEnum.entireTeam, \"Entire team\"));\n this.ownerFilterList.push(new ActionOptionDto(InterventionOwnerEnum.teamMember, \"Team member\"));\n this.ownerFilterList.push(new ActionOptionDto(InterventionOwnerEnum.scrumMaster, \"Scrum Master\"));\n this.ownerFilterList.push(new ActionOptionDto(InterventionOwnerEnum.productOwner, \"Product Owner\"));\n this.ownerFilterList.push(new ActionOptionDto(InterventionOwnerEnum.management, \"Management\"));\n this.ownerFilterList.push(new ActionOptionDto(InterventionOwnerEnum.stakeholder, \"Stakeholder\"));\n this.ownerFilterList.push(new ActionOptionDto(InterventionOwnerEnum.other, \"Other\"));\n\n this.typeFilterList = [];\n this.typeFilterList.push(new ActionOptionDto(null, \"Show all\"));\n this.typeFilterList.push(new ActionOptionDto(InterventionTypeEnum.conversation, \"Conversation\"));\n this.typeFilterList.push(new ActionOptionDto(InterventionTypeEnum.research, \"Research\"));\n this.typeFilterList.push(new ActionOptionDto(InterventionTypeEnum.involveOthers, \"Involve others\"));\n this.typeFilterList.push(new ActionOptionDto(InterventionTypeEnum.runExperiment, \"Run experiment\"));\n this.typeFilterList.push(new ActionOptionDto(InterventionTypeEnum.workshop, \"Workshop\"));\n this.typeFilterList.push(new ActionOptionDto(InterventionTypeEnum.other, \"Other\"));\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})\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 <div class=\"filters\" *ngIf=\"userSettings.settings && userSettings.settings.user\">\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 <mat-option class=\"select-option\" *ngFor=\"let state of stateFilterList\" [value]=\"state.key\">{{state.label}}</mat-option>\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 <mat-option class=\"select-option\" *ngFor=\"let state of ownerFilterList\" [value]=\"state.key\">{{state.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field class=\"team\" *ngIf=\"multipleTeams\" 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 <mat-option class=\"select-option\" *ngFor=\"let team of teams\" [value]=\"team.key\">{{team.label}}</mat-option>\n </mat-select>\n </mat-form-field>\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 <mat-option class=\"select-option\" *ngFor=\"let state of typeFilterList\" [value]=\"state.key\">{{state.label}}</mat-option>\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 <mat-option class=\"select-option\" *ngFor=\"let state of expectedEffectOnList\" [value]=\"state.key\">{{state.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n\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</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})\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.</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 <mat-error *ngIf=\"form.controls.start.hasError('matStartDateInvalid')\">Invalid start date</mat-error>\n <mat-error *ngIf=\"form.controls.end.hasError('matEndDateInvalid')\">Invalid end date</mat-error>\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})\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 { 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, 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})\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\n constructor(protected snackBar: MatSnackBar, @Inject(VIEWSTATE_USERSETTINGS_STRATEGY) protected userSettings: IUserSettingStrategy, 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\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.settings.user.interventionFilter.keyword = this.keywordControl.value;\n this.userSettings.settings.user.interventionFilter.page = 0;\n this.loadActions();\n });\n\n if (this.overrideFilter) {\n this.userSettings.settings.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.settings.user.interventionFilter.pageSize = event.pageSize;\n this.userSettings.settings.user.interventionFilter.page = event.pageIndex;\n await this.loadActions();\n }\n\n public async setSort(sort: string) {\n this.userSettings.settings.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.settings = data.userInfo.settings;\n\n this.filterCount = 0;\n if (this.userSettings.settings.user.interventionFilter.owner != null) {\n this.filterCount++;\n }\n\n if (this.userSettings.settings.user.interventionFilter.type != null) {\n this.filterCount++;\n }\n\n if (this.userSettings.settings.user.interventionFilter.state != null) {\n this.filterCount++;\n }\n\n if (this.userSettings.settings.user.interventionFilter.expectedImpactOn != null) {\n this.filterCount++;\n }\n\n if (this.userSettings.settings.user.interventionFilter.teamKey != null) {\n this.filterCount++;\n }\n };\n\n public async loadActions() {\n this.actions.items = null;\n await this.userSettings.apply();\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 <span class=\"filtercount\" *ngIf=\"filterCount > 0\">{{filterCount}}</span></div>\n <div class=\"button borderless sort\" id=\"actions-sort\" [matMenuTriggerFor]=\"matSortingMenu\"><span class=\"ph-funnel-simple-bold icon\"></span> {{userSettings.settings.user.interventionFilter.sort || \"Sort\"}}</div>\n <mat-menu #matSortingMenu=\"matMenu\">\n <button mat-menu-item *ngFor=\"let sortOption of sortOptionsList\" (click)=\"setSort(sortOption.key)\">\n {{sortOption.label}}\n </button>\n </mat-menu>\n <div class=\"button borderless\" id=\"export-actions\" exportActionsDialog *ngIf=\"isLoggedIn\"><span class=\"ph-download-simple icon\"></span> Export</div>\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 <div class=\"loading\" *ngIf=\"!actions.items\">\n <div class=\"loading-icon dark\"></div>\n </div>\n\n <div class=\"wirebox calltoaction\" *ngIf=\"actions.items && actions.items.length == 0\">\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 <div class=\"actions\" *ngIf=\"actions && actions.items\">\n <action-tile *ngFor=\"let action of actions.items\" [action]=\"action\" [multipleTeams]=\"multipleTeams\" [actionManageComponent]=\"actionManageComponent\"></action-tile>\n </div>\n\n <paginator [items]=\"actions\" (page)=\"setPaging($event)\" *ngIf=\"actions && actions.items && actions.totalItems > 0\"></paginator>\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\n@Injectable({ providedIn: 'root' })\nexport class ActionClientConfig {\n private config?: ActionConfigDto;\n\n constructor(@Optional() @Inject(AactionConfigToken) 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\nexport class ActionConfigDto {\n}\n\nexport const AactionConfigToken = new InjectionToken<ActionConfigDto>(\n 'actions-angular.config'\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 { ViewModelStateBase, VIEWSTATE_PROVIDER } 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 { 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';\n\n@Component({\n selector: 'alerts',\n templateUrl: './alerts.component.html',\n styleUrls: ['./alerts.component.less']\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 private dismissedAlerts: string[];\n public filter: AlertFilterDto = { itemsPerPage: this.pageSize, page: 0, totalItems: 0 };\n public viewStateSubscription: Subscription;\n\n constructor(private alertService: AlertService, protected snackBar: MatSnackBar, @Inject(LOCAL_STORAGE) private storage: StorageService, @Inject(VIEWSTATE_PROVIDER) private viewModelState: ViewModelStateBase<IAlertState>) {\n super(snackBar);\n }\n\n ngOnInit(): void {\n this.dismissedAlerts = this.storage.get(\"dismissed-alerts\") || [];\n\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.canBeDismissed) {\n return alert.isDismissed;\n }\n else {\n return this.dismissedAlerts.indexOf(alert.key) != -1;\n }\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.dismissedAlerts.push(alert.key);\n this.unreadAlerts.items = this.unreadAlerts.items.filter(p => p.key != alert.key);\n this.storage.set(\"dismissed-alerts\", this.dismissedAlerts);\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","<div class=\"alerts\" *ngIf=\"filteredAlerts && filteredAlerts.length > 0\">\n <div class=\"alert-item\" *ngFor=\"let alert of filteredAlerts\">\n <div class=\"description\" [innerHtml]=\"alert.body\"></div>\n <div class=\"bar\">\n <span class=\"icon ph-warning-fill\" *ngIf=\"alert.urgency == 'warning'\"></span>\n <span class=\"icon ph-info\" *ngIf=\"alert.urgency == 'information'\"></span>\n <span class=\"icon ph-circle-wavy-warning-fill\" *ngIf=\"alert.urgency == 'critical'\"></span>\n <div class=\"date\">\n {{alert.posted | date : 'short'}}\n </div>\n <div class=\"action\" *ngIf=\"alert.url\"><a target=\"_blank\" [href]=\"alert.url\">Explore ></a></div>\n <div class=\"dismiss\" *ngIf=\"!isDismissed(alert)\"><a href=\"javascript:void(null);\" (click)=\"dismiss(alert)\">Dismiss</a></div>\n </div>\n </div>\n</div>\n\n<div class=\"wirebox calltoaction\" *ngIf=\"!filteredAlerts || filteredAlerts.length == 0\">\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<mat-paginator *ngIf=\"filteredAlerts && filteredAlerts.length > filter.itemsPerPage\" [length]=\"filter.totalItems\" hidePageSize=\"true\" [pageSize]=\"filter.itemsPerPage\" (page)=\"setPaging($event)\"></mat-paginator>\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})\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})\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 { 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';\n\n@NgModule({\n imports: [MatDialogModule, MatPaginatorModule, RouterModule, CommonModule, StorageServiceModule],\n declarations: [AlertsComponent, OpenAlertsDialogDirective, DialogAlertsComponent],\n exports: [AlertsComponent, OpenAlertsDialogDirective, DialogAlertsComponent]\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';\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\nexport class AlertConfigDto {\n}\n\nexport const AlertConfigToken = new InjectionToken<AlertConfigDto>(\n 'alert-angular.config'\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})\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: '[brandConditionalColor]',\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: '[brandConditionalBackgroundColor]',\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: '[brandHoverColor]',\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 brokerUrl: string;\n accentColor: string;\n themeColor: string;\n backgroundColor: string;\n neutralColor: string;\n logoUrl: string;\n publicKey: string;\n platformName: string;\n name: string;\n companyUrl: string;\n isDefault: boolean;\n hasBroker: boolean;\n showLiberatorMerchandise: 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}\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})\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 <h1 mat-dialog-title *ngIf=\"form.controls.type.value == 0\">Share feedback</h1>\n <h1 mat-dialog-title *ngIf=\"form.controls.type.value == 1\">Report bug</h1>\n <h1 mat-dialog-title *ngIf=\"form.controls.type.value == 2\">Ask for help</h1>\n <h1 mat-dialog-title *ngIf=\"form.controls.type.value == 3\">Ask a question</h1>\n <h1 mat-dialog-title *ngIf=\"form.controls.type.value == 4\">Contact sales</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\" *ngIf=\"!success\">\n <p *ngIf=\"form.controls.type.value == 0\">We'd love to hear your feedback, and will do our best to improve!</p>\n <p *ngIf=\"form.controls.type.value == 1\">We're sorry you ran into a bug. Tell us what happend and we'll fix it.</p>\n <p *ngIf=\"form.controls.type.value == 2\">Looking for help? Let us know how we can assist you best.</p>\n <p *ngIf=\"form.controls.type.value == 3\">Got a question for us? Let us know and we'll get back quickly.</p>\n <p *ngIf=\"form.controls.type.value == 4\">Lets us know how we can help you.</p>\n\n <div class=\"errors\" *ngIf=\"error\">\n {{error}}\n </div>\n\n <mat-form-field class=\"type\" appearance=\"fill\" *ngIf=\"!typePrefilled\" subscriptSizing=\"dynamic\">\n <mat-label>Type of request</mat-label>\n <mat-select formControlName=\"type\" id=\"question-type\">\n <mat-option class=\"select-option\" *ngFor=\"let item of contactTypes\" [value]=\"item.id\">{{item.label}}</mat-option>\n </mat-select>\n <mat-error *ngIf=\"form.controls.type.errors && submitted\">\n <div *ngIf=\"form.controls.type.errors.required\">Please select the type of request</div>\n </mat-error>\n </mat-form-field>\n <mat-form-field appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label *ngIf=\"form.controls.type.value == 0\">What would you like us to improve?</mat-label>\n <mat-label *ngIf=\"form.controls.type.value == 1\">Please describe the problem</mat-label>\n <mat-label *ngIf=\"form.controls.type.value == 2\">How can we help you?</mat-label>\n <mat-label *ngIf=\"form.controls.type.value == 3\">Please describe your question</mat-label>\n <mat-label *ngIf=\"form.controls.type.value == 4\">What are you looking for?</mat-label>\n <textarea formControlName=\"body\" id=\"question-description\" matInput></textarea>\n <mat-error *ngIf=\"form.controls.body.errors && submitted\">\n <div *ngIf=\"form.controls.body.errors.required\">Please enter this field</div>\n </mat-error>\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 <mat-error *ngIf=\"form.controls.email.errors && submitted\">\n <div *ngIf=\"form.controls.email.errors.email\">Please provide a valid e-mail</div>\n </mat-error>\n </mat-form-field>\n <button class=\"button primary\" type=\"submit\" [ngClass]=\"{'loading': sending }\" (click)=\"submitContactForm()\">submit</button>\n </form>\n <div class=\"confirmation\" *ngIf=\"success\">\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</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})\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})\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})\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})\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})\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})\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","<footer *ngIf=\"loaded\">\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 <li *ngFor=\"let item of mainMenu\"><a [href]=\"item.url\">{{item.name}}</a></li>\n </ul>\n </div>\n <div class=\"footer-column footer-links\">\n <h4>Resources</h4>\n <ul>\n <li *ngFor=\"let item of resourcesMenu\"><a [href]=\"item.url\" target=\"_blank\">{{item.name}}</a></li>\n </ul>\n </div>\n <div class=\"footer-column footer-links\">\n <h4>Support</h4>\n <ul>\n <li *ngFor=\"let item of supportMenu\"><a [href]=\"item.url\" target=\"_blank\">{{item.name}}</a></li>\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\n <div class=\"section-content\">\n <div class=\"footer-bottom\">\n <a class=\"footer-logo\" [href]=\"channel.siteUrl\">\n <img class=\"responsive\" *ngIf=\"channel.branding.logoLargeUrl\" [src]=\"channel.branding.logoLargeUrl\" [title]=\"channel.name\" />\n </a>\n <div class=\"footer-socialmedia\">\n <a *ngFor=\"let item of socialMediaMenu\" class=\"footer-socialmedia-icon\" [href]=\"item.url\" target=\"_blank\"><span [class]=\"'ph ' + item.icon\"></span></a>\n </div>\n </div>\n <div class=\"footer-companyinformation\">\n {{channel.poweredBy}}\n </div>\n </div>\n</footer>\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})\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","<header *ngIf=\"channel\">\n <a class=\"header header-logo\" [href]=\"channel.siteUrl\">\n <img class=\"responsive\" *ngIf=\"channel.branding.logoLargeUrl\" [src]=\"channel.branding.logoLargeUrl\" [title]=\"channel.name\"/>\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 <ng-container *ngFor=\"let item of mainMenu\">\n <li>\n <a *ngIf=\"item.url\" [href]=\"item.url\">{{item.name}}</a>\n <span *ngIf=\"!item.url\">{{item.name}}</span>\n </li>\n <li *ngIf=\"item.children\">\n <ul>\n <li *ngFor=\"let child of item.children\"><a [href]=\"item.url\">{{child.name}}</a></li>\n </ul>\n </li>\n </ng-container>\n </ul>\n </div>\n <div class=\"label\">\n Menu\n </div>\n </div>\n <a class=\"nav nav-try responsive-hidesmall\" [href]=\"cta.url\" *ngIf=\"cta\">\n {{cta.name}}\n </a>\n </div>\n</header>\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})\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","<ng-container *ngIf=\"loaded\">\n <div class=\"item\" *ngFor=\"let item of legalMenu\"><a [href]=\"item.url\">{{item.name}}</a></div>\n <div class=\"item\" id=\"footer-reportbug\"><a [routerLink]=\"[]\" reportBugDialog>Report a bug</a></div>\n</ng-container>\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","// Public classes.\nexport { NgAddToCalendarService } from './service/ng-add-to-calendar.service';\nexport { NgAddToCalendarModule } from './ng-add-to-calendar.module';\nexport { ICalendarEvent } from './model/calendar-event.model';\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})\nexport class DialogSubscribeComponent {\n public subscribeUrl: string;\n public companyUrl: string;\n\n constructor(@Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IViewState>) {\n this.state.data.pipe(take(1)).subscribe(success => {\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>Improve more effectively</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>Empower Agile teams in your organization to take charge over their improvements.</p>\n <ul>\n <li>All feedback is visible (not just the top 3)</li>\n <li>Improve with multiple teams from our Teams Dashboard.</li>\n <li>Analyze team trends over time</li>\n <li>See scoring ranges for your team</li>\n <li>Compare against different benchmarks</li>\n <li>Over 50+ do-it-yourself workshops targeted at specific themes in the survey.</li>\n <li>Pay per team; start small and scale as you go</li>\n <li>Unlimited data retention</li>\n <li>Multi-factor authentication</li>\n </ul>\n <p></p>\n <a class=\"button primary\" [href]=\"subscribeUrl\">subscribe now</a>\n <div class=\"link\">\n <a [href]=\"companyUrl\">learn more ></a>\n </div>\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})\nexport class OpenSubscribeDialogDirective {\n constructor(private dialog: MatDialog) {\n }\n\n @HostListener('click')\n onClick(): void {\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 { 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],\n declarations: [DialogSubscribeComponent, OpenSubscribeDialogDirective],\n exports: [DialogSubscribeComponent, OpenSubscribeDialogDirective]\n})\nexport class DialogSubscribeModule { }\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})\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 { Component, Inject } from '@angular/core';\nimport { FormGroupDirective, Validators, FormBuilder, FormGroup } from '@angular/forms';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { ContactDto } from '../../../dialogs/dialog-support/contactDto';\nimport { ContactService } from '../../../dialogs/dialog-support/contactService.service';\nimport { ContextItemDto } from '../../../models/contextItemDto';\nimport { ViewModelStateBase, VIEWSTATE_PROVIDER } from '../../../viewModel/viewModelState.service';\nimport { ICommunityState } from '../../interfaces/ICommunityState';\n\n@Component({\n selector: 'gethelp-form',\n templateUrl: './gethelp-form.component.html',\n styleUrls: ['./gethelp-form.component.less']\n})\nexport class GetHelpFormComponent extends ComponentWithViewStateBase<ICommunityState> {\n public requestList: string[] = [];\n public form: FormGroup;\n private context: ContextItemDto[];\n public submitted: boolean;\n\n constructor(private contactService: ContactService, private formBuilder: FormBuilder, @Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<ICommunityState>, protected snackBar: MatSnackBar) {\n super(state, snackBar)\n }\n\n public ngOnInit() {\n super.ngOnInit();\n this.createForm();\n this.requestList.push(\"I don't understand something in our results\");\n this.requestList.push(\"My team doesn't know where or how to start improving\");\n this.requestList.push(\"We're stuck and we don't know how to move forward\");\n this.requestList.push(\"Help my organization get more out of this tool\");\n this.requestList.push(\"I'm looking for personal coaching or mentoring\");\n this.requestList.push(\"Something else\");\n }\n\n public onSubmit(formDirective: FormGroupDirective) {\n if (!this.form.valid) { return; }\n this.submitted = true;\n\n var request: ContactDto = {\n type: 2,\n requests: this.form.get(\"requests\").value,\n fromEmail: this.form.get(\"email\").value,\n body: this.form.get(\"body\").value,\n context: this.context\n }\n\n this.contactService.send(request).subscribe(success => {\n this.submitted = false;\n this.form.reset();\n formDirective.resetForm();\n this.showSuccess(\"Awesome! We will get back to you shortly.\");\n }, error => {\n this.showError(\"Yikes! We ran into an issue while sending your request. Please try again or, or contact info@columinity.com directly.\")\n });\n }\n\n public cancel() {\n this.form.reset();\n }\n\n private createForm(): void {\n this.form = this.formBuilder.group({\n body: [\"\", [Validators.required, Validators.maxLength(500)]],\n requests: [\"\", Validators.required],\n email: [\"\", [Validators.required, Validators.email]]\n });\n }\n\n protected onDataUpdate(data: ICommunityState): void {\n this.context = data.context;\n };\n}\n","<form [formGroup]=\"form\" (ngSubmit)=\"onSubmit(formDirective)\" #formDirective=\"ngForm\" class=\"gethelp-form form\">\n <mat-form-field appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>What would you like help with?</mat-label>\n <mat-select multiple formControlName=\"requests\" id=\"requests\">\n <mat-option class=\"select-option\" *ngFor=\"let request of requestList\" [value]=\"request\">{{request}}</mat-option>\n </mat-select>\n <mat-error *ngIf=\"form.controls.requests.errors\">\n <div *ngIf=\"form.controls.requests.errors.required\">Please select where you need help</div>\n </mat-error>\n </mat-form-field>\n <mat-form-field appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>Enter a short description of the kind of help you need</mat-label>\n <textarea matInput formControlName=\"body\" id=\"body\" rows=\"3\" maxlength=\"500\"></textarea>\n <mat-error *ngIf=\"form.controls.body.errors\">\n <div *ngIf=\"form.controls.body.errors.required\">Please describe how we can help you</div>\n <div *ngIf=\"form.controls.body.errors.maxlength\">Please limit to 500 characters</div>\n </mat-error>\n </mat-form-field>\n <mat-form-field appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>Your email address</mat-label>\n <input matInput formControlName=\"email\" id=\"email\" />\n <mat-error *ngIf=\"form.controls.email.errors\">\n <div *ngIf=\"form.controls.email.errors.required\">Please enter a description</div>\n <div *ngIf=\"form.controls.email.errors.email\">Please enter a valid e-mail address</div>\n </mat-error>\n </mat-form-field>\n <div class=\"toolbar leftright\">\n <div>\n <a class=\"button borderless cancel\" href=\"javascript:void(null);\" (click)=\"cancel()\" id=\"cancel\" *ngIf=\"form.dirty\"><span class=\"icon ph-x-circle\"></span> cancel</a>\n </div>\n <input class=\"button primary\" type=\"submit\" id=\"submit\" value=\"Get help!\" [ngClass]=\"{'loading': submitted}\" [disabled]=\"submitted\" />\n </div>\n</form>\n","import { Component, Inject } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\nimport * as moment from 'moment';\nimport { ICalendarEvent, NgAddToCalendarService } from '../../../add-calendar';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { ViewModelStateBase, VIEWSTATE_PROVIDER } from '../../../viewModel/viewModelState.service';\nimport { ICommunityState } from '../../interfaces/ICommunityState';\nimport { MeetupDto } from '../../models/meetupDto';\n\n@Component({\n selector: 'meetups',\n templateUrl: './meetups.component.html',\n styleUrls: ['./meetups.component.less']\n})\nexport class MeetupsComponent extends ComponentWithViewStateBase<ICommunityState> {\n public googleCalendarEventUrl: SafeUrl;\n public outlookCalendarEventUrl: SafeUrl;\n public icalCalenderEventUrl: SafeUrl;\n public meetups: MeetupDto[] = [];\n public subscribed: boolean;\n\n constructor(private addToCalendarService: NgAddToCalendarService, @Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<ICommunityState>, private sanitizer: DomSanitizer, protected snackBar: MatSnackBar) {\n super(state, snackBar)\n }\n\n public allowedToJoin(meetup: MeetupDto) {\n if (!meetup.subscriberOnly) { return true; }\n if (meetup.subscriberOnly && this.subscribed) { return true; }\n return false;\n }\n\n public googleUrl(meetup: MeetupDto) {\n return this.sanitizer.bypassSecurityTrustUrl(this.addToCalendarService.getHrefFor(this.addToCalendarService.calendarType.google, this.createEvent(meetup)));\n }\n\n public outlookUrl(meetup: MeetupDto) {\n return this.sanitizer.bypassSecurityTrustUrl(this.addToCalendarService.getHrefFor(this.addToCalendarService.calendarType.outlook, this.createEvent(meetup)));\n }\n\n public iCalendarUrl(meetup: MeetupDto) {\n return this.sanitizer.bypassSecurityTrustUrl(this.addToCalendarService.getHrefFor(this.addToCalendarService.calendarType.iCalendar, this.createEvent(meetup)));\n }\n\n private createEvent(meetup: MeetupDto): ICalendarEvent {\n var fromDate = moment.utc(meetup.from).local().toDate();\n var toDate = moment.utc(meetup.to).local().toDate();\n\n var event: ICalendarEvent = {\n title: \"Meetup: \" + meetup.title,\n start: fromDate,\n end: toDate,\n duration: meetup.to.valueOf() - meetup.from.valueOf(),\n address: meetup.url,\n description: meetup.description + '\\\\n\\\\nIMPORTANT: Please check the time and date in the days preceeding the meetup. We sometimes reschedule meetups, and such changes are not automatically reflected in your calendar.'\n };\n\n return event;\n }\n\n protected onDataUpdate(data: ICommunityState): void {\n this.subscribed = data.isSubscriber;\n this.meetups = data.meetups.items;\n };\n}\n","<div class=\"meetups\">\n <div class=\"meetup wirebox\" *ngFor=\"let meetup of meetups\">\n <div class=\"top titleandaction\">\n <h3>{{meetup.title}}</h3>\n <div class=\"details\">\n <div class=\"detail\"><span class=\"icon ph-calendar-blank\"></span> {{meetup.from | date: 'MMM d, h:mm a' }} to {{meetup.to | date: 'shortTime' }} CEST<br /></div>\n <div class=\"detail\"><span class=\"icon ph-map-pin\"></span> {{meetup.location}}</div>\n </div>\n </div>\n <div class=\"content\">\n <p>{{meetup.description}}</p>\n </div>\n <div class=\"bottom\">\n <div class=\"toolbar leftright\">\n <div *ngIf=\"allowedToJoin(meetup) && meetup.url\">\n <b>Zoom link:</b><br /><a [href]=\"meetup.url\">{{meetup.url}}</a>\n </div>\n\n <div *ngIf=\"!meetup.url || !allowedToJoin(meetup)\"></div>\n\n <div class=\"button subscribersonly\" *ngIf=\"!allowedToJoin(meetup)\" subscribeDialog>only for subscribers</div>\n <button mat-button [matMenuTriggerFor]=\"menu\" *ngIf=\"allowedToJoin(meetup)\" class=\"button\">Add to calendar</button>\n <mat-menu #menu=\"matMenu\" [overlapTrigger]=\"false\">\n <a mat-menu-item target=\"_blank\" [href]=\"googleUrl(meetup)\"><span class=\"icon ph-google-logo\"></span> Google</a>\n <a mat-menu-item [href]=\"outlookUrl(meetup)\"><span class=\"icon ph-windows-logo\"></span> Outlook</a>\n <a mat-menu-item [href]=\"iCalendarUrl(meetup)\"><span class=\"icon ph-calendar\"></span> iCalendar (.ical)</a>\n </mat-menu>\n </div>\n </div>\n </div>\n <div class=\"meetup wirebox\">\n <div class=\"top titleandaction\">\n <h3>In-house Workshop: Diagnose Your Scrum Team</h3>\n <div class=\"details\">\n <div class=\"detail\"><span class=\"icon ph-calendar-blank\"></span> On a date that suits your team<br /></div>\n <div class=\"detail\"><span class=\"icon ph-map-pin\"></span> Online or in-person</div>\n </div>\n </div>\n <div class=\"content\">\n <p>\n Diagnose and inspect one or more Scrum teams in your organization, and work together to identify actionable improvements to work more effectively. We design this workshop to suit your needs, and facilitate it for your teams. Workshops can take between 2 hours and 2 days, depending on your needs.\n </p>\n </div>\n <div class=\"bottom\">\n <div class=\"toolbar leftright\">\n <div></div>\n <div class=\"button requestquote\" lookingForHelpDialog>contact us</div>\n </div>\n </div>\n </div>\n</div>\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 { ICommunityState } from '../../interfaces/ICommunityState';\nimport { ResourceDto } from '../../models/resourceDto';\n\n@Component({\n selector: 'recentcontent',\n templateUrl: './recentcontent.component.html',\n styleUrls: ['./recentcontent.component.less']\n})\nexport class RecentContentComponent extends ComponentWithViewStateBase<ICommunityState> {\n public resources: ResourceDto[] = [];\n\n constructor(@Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<ICommunityState>, protected snackBar: MatSnackBar) {\n super(state, snackBar);\n }\n\n protected onDataUpdate(data: ICommunityState): void {\n this.resources = data.resources.items;\n };\n}\n","<div class=\"box recentcontent\">\n <h3>Recent content</h3>\n <div class=\"recentcontent-item\" *ngFor=\"let resource of resources\">\n <div class=\"type\"><span class=\"badge\" [ngClass]=\"resource.type\"><i class=\"icon ph-microphone\" *ngIf=\"resource.type == 'podcast'\"></i><i class=\"icon ph-note\" *ngIf=\"resource.type == 'blogpost'\"></i></span></div>\n <div class=\"title\"><a [href]=\"resource.url\" target=\"_blank\">{{resource.title}}</a></div>\n </div>\n <div class=\"link\">\n <a href=\"https://public.theliberators.com/content\" target=\"_blank\">Check out more content ></a>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatNativeDateModule, MatOptionModule } from '@angular/material/core';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { RouterModule } from '@angular/router';\nimport { NgAddToCalendarModule } from '../add-calendar';\nimport { DialogSubscribeModule } from '../dialogs/dialog-subscribe/dialog-subscribe.module';\nimport { DialogSupportModule } from '../dialogs/dialog-support/dialog-support.module';\nimport { DateRangePipeModule } from '../pipes/dateRange/ngx-dateRange.module';\nimport { GetHelpFormComponent } from './components/gethelp-form/gethelp-form.component';\nimport { MeetupsComponent } from './components/meetups/meetups.component';\nimport { RecentContentComponent } from './components/recentcontent/recentcontent.component';\n\n@NgModule({\n imports: [MatMenuModule, MatTooltipModule, MatNativeDateModule, RouterModule, CommonModule, FormsModule, ReactiveFormsModule, MatOptionModule, MatInputModule, MatSelectModule, DialogSupportModule, DateRangePipeModule, DialogSubscribeModule, NgAddToCalendarModule],\n declarations: [RecentContentComponent, MeetupsComponent, GetHelpFormComponent],\n exports: [RecentContentComponent, MeetupsComponent, GetHelpFormComponent]\n})\nexport class CommunityModule { }\n","import { PaginatedResponse } from \"../../models/paginatedResponse\";\n\nexport class MeetupResponseDto extends PaginatedResponse<MeetupDto> {\n}\n\nexport class MeetupDto {\n title: string;\n from: Date;\n to: Date;\n location: string;\n url: string;\n description: string;\n subscriberOnly: boolean;\n}\n","import { PaginatedResponse } from \"../../models/paginatedResponse\";\n\nexport class ResourceResponseDto extends PaginatedResponse<ResourceDto> {\n}\n\nexport class ResourceDto {\n title: string;\n type: string;\n url: string;\n}\n","import { Inject, Injectable, InjectionToken, Optional } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class CommunityClientConfig {\n private config?: CommunityClientConfigDto;\n\n constructor(@Optional() @Inject(CommunityConfigToken) config?: CommunityClientConfigDto) {\n if (config) {\n this.set(config);\n }\n }\n\n set(config: CommunityClientConfigDto): void {\n this.config = config;\n }\n\n get(): CommunityClientConfigDto {\n return this.config as CommunityClientConfigDto;\n }\n}\n\nexport class CommunityClientConfigDto {\n}\n\nexport const CommunityConfigToken = new InjectionToken<CommunityClientConfigDto>(\n 'community-angular.config'\n);\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})\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 <div class=\"checkbox-check checked ph-check-circle-fill\" *ngIf=\"checked\" (click)=\"toggle()\"></div>\n <div class=\"checkbox-check unchecked ph-circle\" *ngIf=\"!checked\" (click)=\"toggle()\"></div>\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})\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 <div class=\"expand-category\" *ngFor=\"let category of categories\">\n <div class=\"expand-item-category-title\" *ngIf=\"categories.length > 0\">{{category}}</div>\n\n <ng-container *ngFor=\"let item of items\">\n <div class=\"expand-item\" *ngIf=\"item.category == category\">\n <div class=\"expand-header\" (click)=\"expand(item.index)\">\n <div class=\"expand-header-number\" *ngIf=\"numbering\">{{item.index}}</div>\n <div class=\"expand-header-label\">{{item.label}}</div>\n <div class=\"expand-header-expand ph-minus-bold\" *ngIf=\"selected == item.index\"></div>\n <div class=\"expand-header-expand ph-plus-bold\" *ngIf=\"selected != item.index\"></div>\n </div>\n <div class=\"body\" [innerHtml]=\"item.body\" *ngIf=\"selected == item.index\">\n </div>\n </div>\n </ng-container>\n </div>\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})\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","<div class=\"loading\" *ngIf=\"!loaded || showLoading\">\n <div class=\"top\">\n <div class=\"pleasewait\">{{message}}</div>\n <div class=\"loading-icon dark\"></div>\n </div>\n</div>\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})\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 <mat-chip-row *ngFor=\"let tag of tags\" (removed)=\"remove(tag)\">\n {{tag}}\n <span class=\"icon ph-trash-fill\" matChipRemove></span>\n </mat-chip-row>\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 <mat-option class=\"select-option\" *ngFor=\"let tag of filteredTags | async\" [value]=\"tag\">{{tag}}</mat-option>\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","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 description: string;\n questionCount: number;\n explainerVideoUrl: string;\n effects: EffectDto[];\n segments: FactorStructureSegmentDto[];\n constraints: FactorStructureConstraintDto;\n lower: FactorStructureDto[];\n attribution: string;\n antecedents: FactorStructureDto[];\n}\n\nexport class FactorStructureSegmentDto {\n questionCount: number;\n segment: SegmentEnum;\n durationInSeconds: number;\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.forTeamTypes = [];\n this.forSegments = [];\n }\n\n forTeamTypes: string[];\n forSegments: 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 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})\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})\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.enterAnimationDuration = 0;\n dialogConfig.exitAnimationDuration = 0;\n this.dialog.open(DialogFactorInformationComponent, dialogConfig);\n }\n}\n\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<mat-dialog-content>\n {{factor.description}}\n\n <div class=\"attribution\" *ngIf=\"factor.attribution\">\n <h4>Attribution for measurement method</h4>\n <p>{{factor.attribution}}</p>\n </div>\n</mat-dialog-content>\n","import { PipeTransform, Pipe } from '@angular/core';\nimport { SegmentEnum } from '../../models/modelStructureDto';\n\n@Pipe({\n name: 'segmentName'\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 { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'callback',\n pure: 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 { Component, EventEmitter, Input, Output, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { FactorStructureDto, FactorStructureSegmentDto, ModelDefinitionDto, SegmentEnum } from '../../models/modelStructureDto';\nimport { ScaleSelectorFilterDto } from './scaleSelectorFilterDto';\nimport { L } from '@angular/cdk/keycodes';\n\n@Component({\n selector: 'scale-selector',\n templateUrl: './scale-selector.component.html',\n styleUrls: ['./scale-selector.component.less'],\n providers: [\n { provide: NG_VALUE_ACCESSOR, multi: true, useExisting: forwardRef(() => ScaleSelectorComponent), }\n ]\n})\nexport class ScaleSelectorComponent implements ControlValueAccessor {\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 public SegmentEnum = SegmentEnum;\n public warnings: string[] = []\n\n @Input() scales: FactorStructureDto[];\n @Input() filter: ScaleSelectorFilterDto;\n @Input() disabled = false;\n @Output() onCheckChange = new EventEmitter<boolean>();\n @Input() scaleKeys: string[] = [];\n public topScales: FactorStructureDto[] = [];\n\n constructor() {\n }\n\n ngOnInit() {\n this.topScales = this.getChildFactors(null);\n }\n\n writeValue(scaleKeys: string[]): void {\n this.scaleKeys = scaleKeys ?? [];\n this.updateMetaData();\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n onChange = (scaleKeys: string[]) => { };\n\n onTouched = () => { };\n\n public filterSegmentWithQuestions(segment: FactorStructureSegmentDto) {\n return segment.questionCount > 0;\n }\n\n public getChildFactors(parentKey: string): FactorStructureDto[] {\n var factors = this.scales\n .filter(p => p.parentKey == parentKey);\n\n if (this.filter != null) {\n if (this.filter.teamType != null) {\n factors = factors.filter(p => p.constraints.forTeamTypes.includes(this.filter.teamType));\n }\n }\n\n return factors;\n }\n\n private updateMetaData() {\n this.warnings = [];\n // only work with lower-level factors, as higher-level contain aggregated higher-level question counts\n var scalesToInclude = this.scales.filter(p => p.parentKey != null && this.scaleKeys.includes(p.publicKey));\n var totalQuestions = this.scales.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'.\");\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 factors, so its accuracy is low.\");\n }\n\n this.questionnaireAccuracy = this.questionsTotal / totalQuestions;\n }\n\n private emitScaleKeys() {\n this.onChange(this.scaleKeys);\n this.updateMetaData();\n }\n\n public toggleChildren(scale: FactorStructureDto) {\n var checked = this.scaleKeys.find(p => p == scale.publicKey) != null;\n var children = this.getChildFactors(scale.publicKey);\n\n if (checked) {\n var scalesToAdd = children.filter(p => !this.scaleKeys.includes(p.publicKey)).map(p => p.publicKey);\n this.scaleKeys = this.scaleKeys.concat(scalesToAdd);\n }\n else {\n var scalesToRemove = children.map(p => p.publicKey);\n this.scaleKeys = this.scaleKeys.filter(p => !scalesToRemove.includes(p));\n }\n\n this.emitScaleKeys();\n }\n\n public toggleParent(scale: FactorStructureDto) {\n var checked = this.scaleKeys.find(p => p == scale.publicKey) != null;\n var parent = this.scales.find(p => p.publicKey == scale.parentKey);\n var siblings = this.getChildFactors(parent.publicKey);\n\n if (checked) {\n var allLowerChecked = siblings.filter(p => !this.scaleKeys.includes(p.publicKey)).length == 0;\n\n if (allLowerChecked) {\n this.scaleKeys = this.scaleKeys.concat(parent.publicKey);\n }\n }\n else {\n this.scaleKeys = this.scaleKeys.filter(p => p != parent.publicKey);\n }\n\n this.emitScaleKeys();\n }\n}\n","<div class=\"scaleselector-container\">\n <div class=\"scaleselector-dropdown\">\n <mat-form-field appearance=\"fill\">\n <mat-label>Select topics</mat-label>\n <mat-select id=\"question-scaleKeys\" [(ngModel)]=\"scaleKeys\" required multiple disableRipple [disabled]=\"disabled\">\n <mat-select-trigger>\n You selected {{scaleKeys.length}} topic(s)\n </mat-select-trigger>\n\n @for (factor of topScales; track factor) {\n <mat-option class=\"select-option lower-0\" [value]=\"factor.publicKey\" (click)=\"toggleChildren(factor)\">\n {{factor.name}}\n <span *ngFor=\"let segment of factor.segments | callback: filterSegmentWithQuestions\" class=\"segment\" [ngClass]=\"{'segment-teammember': segment.segment == SegmentEnum.TeamMember, 'segment-stakeholder': segment.segment == SegmentEnum.Stakeholder, 'segment-supporter': segment.segment == SegmentEnum.Management}\">{{segment.segment | segmentName}}</span>\n <span class=\"icon ph-info-fill\" factorInformationDialog [factor]=\"factor\"></span>\n </mat-option>\n\n @for (lowerFactor of getChildFactors(factor.publicKey); track lowerFactor) {\n <mat-option class=\"select-option lower-1\" [value]=\"lowerFactor.publicKey\" (click)=\"toggleParent(lowerFactor)\">\n {{lowerFactor.name}}\n <span *ngFor=\"let segment of lowerFactor.segments | callback: filterSegmentWithQuestions\" class=\"segment\" [ngClass]=\"{'segment-teammember': segment.segment == SegmentEnum.TeamMember, 'segment-stakeholder': segment.segment == SegmentEnum.Stakeholder, 'segment-supporter': segment.segment == SegmentEnum.Management}\">{{segment.segment | segmentName}}</span>\n <span class=\"icon ph-info-fill\" factorInformationDialog [factor]=\"lowerFactor\"></span>\n </mat-option>\n }\n }\n </mat-select>\n </mat-form-field>\n </div>\n <div class=\"scaleselector-metadata\">\n <div class=\"questionnaire-breakdown\" *ngIf=\"questionsTotal > 0\">\n <div class=\"questionnaire-breakdown-label\">Expected duration (in minutes)</div>\n <div class=\"questionnaire-breakdown-items\">\n <div class=\"questionnaire-breakdown-item teammembers\" *ngIf=\"questionsTeamMembers > 0\" [matTooltip]=\"'At least ' + questionsTeamMembers + ' questions for team members. Additional questions may be added, and are typically answered once per team.'\" [ngStyle]=\"{'width': ((questionsTeamMembers / questionsTotal) * 100) + '%' }\">\n {{durationTeamMembers | number:'1.0-0'}}m\n </div>\n <div class=\"questionnaire-breakdown-item stakeholders\" *ngIf=\"questionsStakeholders > 0\" [matTooltip]=\"'At least ' + questionsStakeholders + ' questions for stakeholders. Additional questions may be added, and are typically answered once per team.'\" [ngStyle]=\"{'width': ((questionsStakeholders / questionsTotal) * 100) + '%' }\">\n {{durationStakeholders | number:'1.0-0'}}m\n </div>\n <div class=\"questionnaire-breakdown-item supporters\" *ngIf=\"questionsSupporters > 0\" [matTooltip]=\"'At least ' + questionsSupporters + ' questions for supporters. Additional questions may be added, and are typically answered once per team.'\" [ngStyle]=\"{'width': ((questionsSupporters / questionsTotal) * 100) + '%' }\">\n {{durationSupporters | number:'1.0-0'}}m\n </div>\n </div>\n </div>\n <div class=\"questionnaire-accuracy\" *ngIf=\"questionsTotal > 0\">\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}\" [ngStyle]=\"{'width': (questionnaireAccuracy * 100) + '%' }\">{{questionnaireAccuracy * 100 | number:'1.0-0'}}%</div>\n </div>\n </div>\n </div>\n\n <div class=\"scaleselector-warnings\" *ngIf=\"warnings.length > 0 && scaleKeys.length > 0\">\n <div class=\"scaleselector-warnings-warning\" *ngFor=\"let warning of warnings\">\n <span class=\"icon ph-info-fill\"></span>{{warning}}\n </div>\n </div>\n\n</div>\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 { 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 { 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 { 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 { FactorInformationDialogModule } from '../../dialogs/dialog-factorinformation/dialog-factorinformation.module';\nimport { CallbackPipeModule } from '../../pipes/callback/callback.module';\nimport { SegmentNamePipeModule } from '../../pipes/segmentName/segmentName.module';\nimport { ScaleSelectorComponent } from './scale-selector.component';\n\n@NgModule({\n imports: [\n FormsModule,\n MatFormFieldModule,\n ReactiveFormsModule,\n CommonModule,\n MatSelectModule,\n SegmentNamePipeModule,\n CallbackPipeModule,\n MatTooltip,\n FactorInformationDialogModule\n ],\n declarations: [\n ScaleSelectorComponent],\n exports: [\n ScaleSelectorComponent]\n})\nexport class ScaleSelectorModule { }\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})\nexport class SelectListComponent implements ControlValueAccessor {\n @Input() options: SelectListItem[] = [];\n @Input() multiple: boolean;\n @Input() disabled = false;\n\n constructor() {\n }\n \n public select(option: SelectListItem) {\n if (!this.multiple) {\n this.options.forEach(p => p.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 <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)\" *ngFor=\"let option of options\">\n <div class=\"button-letter\"><span class=\"ph ph-circle-fill\" *ngIf=\"option.selected && !multiple\"></span><span class=\"ph ph-check-bold\" *ngIf=\"option.selected && multiple\"></span></div>\n {{option.label}}\n </div>\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})\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","<div class=\"inviteurls\" *ngIf=\"snapshot\">\n <div class=\"inviteurl\" *ngFor=\"let url of snapshot.inviteUrls | keyvalue: unsorted\">\n <div class=\"label inviteurl-teammember\" *ngIf=\"url.key == 'TeamMember'\">Invite team (e.g. members, leads, team roles)</div>\n <div class=\"label inviteurl-stakeholder\" *ngIf=\"url.key == 'Stakeholder'\">Invite stakeholders (e.g. customers, users)</div>\n <div class=\"label inviteurl-supporter\" *ngIf=\"url.key == 'Supporter'\">Invite supporters (e.g. management, external coaches)</div>\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</div>\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 { 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})\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 <a class=\"tabnavigation-tab\" *ngFor=\"let item of itemSet()\" [ngClass]=\"{'active': item.active}\" [routerLink]=\"item.url\">\n <span class=\"icon ph-caret-right\" *ngIf=\"!item.active\"></span>\n <span class=\"icon ph-caret-down\" *ngIf=\"item.active\"></span>\n {{item.label}}\n </a>\n <div class=\"filler\"></div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { TabNavigatorComponent } from './tabnavigator.component';\n\n@NgModule({\n imports: [\n CommonModule,\n RouterModule\n ],\n declarations: [\n TabNavigatorComponent],\n exports: [\n TabNavigatorComponent]\n})\nexport class TabNavigatorModule { }\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})\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})\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><a href=\"javascript:void(null);\" (click)=\"redirectToPortal()\" mat-dialog-close *ngIf=\"isAdmin\">Subscription & invoices (admins only) <span class=\"icon ph-arrow-square-out\"></span></a></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 { 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})\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})\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 <div class=\"loading\" *ngIf=\"!cdnUrl\">\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 <p *ngIf=\"cdnUrl && !error\">Use our detailed facilitation guides to initiate change in and around your teams</p>\n <div *ngIf=\"cdnUrl && !error\" class=\"button primary cdnUrl\" (click)=\"initiateDownload()\" [attr.data-href]=\"cdnUrl\"><span class=\"ph-download-bold icon\"></span>Download guide</div>\n <div class=\"error\" *ngIf=\"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</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 { Location } from '@angular/common'\nimport { Directive, HostListener } from '@angular/core'\nimport { Route, Router } from '@angular/router'\n\n@Directive({\n selector: '[backButton]',\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 { 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 <= 50;\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\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\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","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","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})\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 <div class=\"imageslider-item\" *ngFor=\"let item of items; let i=index\" [ngClass]=\"{'visible': index == i}\">\n <a [href]=\"item.clickUrl\" *ngIf=\"item.clickUrl\"><img [src]=\"item.sourceUrl\" /></a>\n <img [src]=\"item.sourceUrl\" *ngIf=\"!item.clickUrl\" />\n </div>\n </div>\n\n <div class=\"imageslider-nav\">\n <div class=\"imageslider-nav-bullet\" *ngFor=\"let item of items; let i=index\" (mouseover)=\"select(i)\" [ngClass]=\"{'active' : index == i}\"></div>\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\n@Component({\n templateUrl: './dialog-guides.component.html',\n styleUrls: ['./dialog-guides.component.less']\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})\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\nexport const DIALOG_GUIDES_TOKEN: InjectionToken<ComponentType<any>> = new InjectionToken<ComponentType<any>>('DIALOG_GUIDES_TOKEN');\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 <div class=\"guide\" *ngFor=\"let guide of guides\">\n <ng-container *ngIf=\"activeGuideKey == guide.key\">\n <a [routerLink]=\"[]\" [id]=\"'guide-' + guide.key\" (click)=\"setActiveGuide(guide)\">{{guide.name}}<span class=\"badge dark\">resume</span></a>\n </ng-container>\n <ng-container *ngIf=\"activeGuideKey != guide.key\">\n <a [routerLink]=\"[]\" [id]=\"'guide-' + guide.key\" (click)=\"setActiveGuide(guide)\">{{guide.name}}</a>\n </ng-container>\n </div>\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\n@Component({\n templateUrl: './dialog-guide.component.html',\n styleUrls: ['./dialog-guide.component.less'],\n encapsulation: ViewEncapsulation.None\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() {\n this.smallScreen = window.innerWidth <= 640;\n this.selectNextOpenItem();\n }\n}\n\n@Directive({\n selector: '[guideDialog]',\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\nexport const DIALOG_GUIDE_TOKEN: InjectionToken<ComponentType<any>> = new InjectionToken<ComponentType<any>>('DIALOG_GUIDE_TOKEN');\n","<mat-dialog-content id=\"dialog-gettingstarted\" *ngIf=\"guide\">\n <div class=\"close\" mat-dialog-close><span class=\"responsive icon ph-x-bold\"></span></div>\n <div class=\"guides-navigation leftcolumn\" *ngIf=\"showSteps()\">\n <div class=\"steps\">\n <h3 class=\"title\">{{guide.name}}</h3>\n <div class=\"steplist\">\n <div class=\"steplist-item\" *ngFor=\"let step of guide.steps\" [ngClass]=\"{'active': step == activeStep}\">\n <checkbox [label]=\"step.title\" (onCheckChange)=\"handleCheckChange(step, $event)\" [checked]=\"step.completed\" (click)=\"select(step)\"></checkbox>\n </div>\n </div>\n </div>\n <div class=\"toolbar\">\n <div class=\"link dismiss\" [routerLink]=\"[]\" (click)=\"dismiss()\">dismiss guide</div>\n </div>\n </div>\n <div class=\"guides-item rightcolumn\" *ngIf=\"activeStep\">\n <div class=\"mediaframe\" *ngIf=\"activeStep.media\">\n <imageslider [items]=\"activeStep.media\"></imageslider>\n </div>\n <div class=\"description\">\n <h3 class=\"title\">{{activeStep.title}}</h3>\n <div class=\"innerHtml\" [innerHtml]=\"activeStep.body\"></div>\n <div class=\"link\">\n <a [href]=\"activeStep.url\" target=\"_blank\" *ngIf=\"activeStep.url\">learn more ></a>\n </div>\n </div>\n <div class=\"buttons\">\n <a [routerLink]=\"[]\" class=\"button cta markcomplete\" (click)=\"handleCheckChange(activeStep, true)\" *ngIf=\"!activeStep.completed && showSteps()\">mark done</a>\n <a [routerLink]=\"[]\" class=\"button cta markcomplete\" (click)=\"handleCheckChange(activeStep, false)\" *ngIf=\"activeStep.completed && showSteps()\">mark undone</a>\n <a [routerLink]=\"[]\" class=\"button borderonly\" (click)=\"next(activeStep)\" *ngIf=\"!isLastStep(activeStep)\">next</a>\n <a [routerLink]=\"[]\" class=\"button borderonly\" (click)=\"toGuides()\" *ngIf=\"isLastStep(activeStep)\">more guides</a>\n <a [routerLink]=\"[]\" class=\"button cta markcomplete\" (click)=\"complete(activeStep)\" *ngIf=\"isLastStep(activeStep) && !showSteps()\">complete</a>\n </div>\n </div>\n</mat-dialog-content>\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})\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","<div class=\"resumeguidehover\" guideDialog *ngIf=\"showResumeGuide\">\n <span class=\"icon ph-play-circle-fill\"></span>Resume Guide\n</div>\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})\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","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 { 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","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 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","export class FeaturesDto {\n allowMFA: boolean;\n allowSSO: boolean;\n allowCustomDomain: boolean;\n allowBrandedPdfs: boolean;\n allowScaleSelection: 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 { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'slugify'\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 { 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 { Component, DoCheck, ElementRef, Input, OnInit } from '@angular/core';\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})\nexport class ArrowComponent implements OnInit, DoCheck {\n @Input() public from: string = null;\n @Input() public to: string = null;\n\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\n @Input() public color: string = null;\n @Input() public width: number = null;\n @Input() public onlyVisible: boolean = false;\n\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 public arrowIndices: number[] = [];\n\n public styleLine: object[] = [];\n public styleArrowFw: object[] = [];\n public styleArrowBw: object[] = [];\n public needSwap: boolean[] = [];\n\n private elementPositionBackup: string = '';\n\n constructor(\n private elem: ElementRef,\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.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 }\n\n}\n","<ng-container *ngFor=\"let index of arrowIndices\">\n\n <div class=\"line line-{{ index }}\" [ngStyle]=\"styleLine[index]\" [matTooltip]=\"toolTip\">\n\n <div *ngIf=\"head == true\" class=\"arrow head {{ needSwap[index] ? 'arrow-bw' : 'arrow-fw' }}\"\n [ngStyle]=\"needSwap[index] ? styleArrowBw[index] : styleArrowFw[index]\"></div>\n <div *ngIf=\"tail == true\" class=\"arrow tail {{ needSwap[index] ? 'arrow-fw' : 'arrow-bw' }}\"\n [ngStyle]=\"needSwap[index] ? styleArrowFw[index] : styleArrowBw[index]\"></div>\n <div *ngIf=\"!!text && text.length > 0\" class=\"text\" >{{ text }}</div>\n\n </div>\n\n</ng-container>\n","import { Component, Input, ViewEncapsulation } 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})\nexport class BadgeProgressionComponent {\n @Input() public showName: boolean;\n @Input() public badge: BadgeDto;\n @Input() public radius: number;\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}\" #badgeContainer (click)=\"popover.open()\">\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 <div class=\"name\" *ngIf=\"showName\">{{badge.name}}</div>\n</div>\n\n<sat-popover #popover horizontalAlign=\"center\" [anchor]=\"badgeContainer\" verticalAlign=\"below\" [hasBackdrop]=\"true\" [autoFocus]=\"false\">\n <div [class]=\"'popover level-' + badge.level\" [id]=\"'popover'\">\n <div class=\"arrow\"></div>\n <div class=\"popover-container\">\n <span (click)=\"popover.close()\" class=\"close ph-x\"></span>\n <h3 *ngIf=\"badge.level == 0\">{{badge.name}}</h3>\n <h3 *ngIf=\"badge.level == 1\">{{badge.name}} <span>Bronze Level</span></h3>\n <h3 *ngIf=\"badge.level == 2\">{{badge.name}} <span>Silver Level</span></h3>\n <h3 *ngIf=\"badge.level == 3\">{{badge.name}} <span>Gold Level</span></h3>\n <h3 *ngIf=\"badge.level == 4\">{{badge.name}} <span>Platinum Level</span></h3>\n <h3 *ngIf=\"badge.level == 5\">{{badge.name}} <span>Diamond Level</span></h3>\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</sat-popover>\n","import { Component, Input, ViewEncapsulation } from '@angular/core';\nimport { BadgeDto, BadgeTypeEnum } from '../../models/badgeDto';\n\n@Component({\n selector: 'badge-streak',\n templateUrl: './badge-streak.component.html',\n styleUrls: ['./badge-streak.component.less']\n})\nexport class BadgeStreakComponent {\n @Input() public showName: boolean;\n @Input() public badge: BadgeDto;\n @Input() public radius: number;\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 }\" #badgeContainer (click)=\"popover.open()\">\n <div class=\"circle\" [ngStyle]=\"{'width': radius + 'px', 'height': radius + 'px', 'border-radius': radius + 'px'}\">\n <div class=\"crown\" *ngIf=\"badge.awarded && badge.level >= 3\"></div>\n <span [class]=\"'icon ' + badge.icon\"></span>\n <div class=\"level\" *ngIf=\"badge.awarded\">{{badge.level}}</div>\n </div>\n <div class=\"name\" *ngIf=\"showName\">{{badge.name}}</div>\n</div>\n\n<sat-popover #popover horizontalAlign=\"center\" [anchor]=\"badgeContainer\" verticalAlign=\"below\" [hasBackdrop]=\"true\" [autoFocus]=\"false\">\n <div class=\"popover\" [id]=\"'popover'\">\n <div class=\"arrow\"></div>\n <div class=\"popover-container\">\n <span (click)=\"popover.close()\" class=\"close ph-x\"></span>\n <h3 *ngIf=\"badge.level == 0\">{{badge.name}}</h3>\n <h3 *ngIf=\"badge.level > 0\">{{badge.name}} <span>Streak of {{badge.level}}</span></h3>\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</sat-popover>\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})\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","<ng-container *ngIf=\"isStreakBadge()\">\n <badge-streak [badge]=\"badge\" [showName]=\"showName\" [radius]=\"radius\"></badge-streak>\n</ng-container>\n<ng-container *ngIf=\"isProgressionBadge()\">\n <badge-progression [badge]=\"badge\" [showName]=\"showName\" [radius]=\"radius\"></badge-progression>\n</ng-container>\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})\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","<div class=\"box\" *ngIf=\"loaded\">\n <ng-container *ngIf=\"earnedStreakBadges.length > 0\">\n <h4>Team streaks</h4>\n <div class=\"earned team-badges\">\n <badge-streak *ngFor=\"let badge of earnedStreakBadges\" [badge]=\"badge\" [showName]=\"true\" [radius]=\"65\"></badge-streak>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"earnedProgressionBadges.length > 0\">\n <h4>Team badges</h4>\n <div class=\"earned team-badges\">\n <badge *ngFor=\"let badge of earnedProgressionBadges\" [badge]=\"badge\" [showName]=\"true\" [radius]=\"75\"></badge>\n </div>\n </ng-container>\n\n <h4>Not yet earned</h4>\n <div class=\"notearned team-badges\" [ngClass]=\"{'fadeout': showNotearned}\" (mouseover)=\"showNotearned = false\">\n <badge *ngFor=\"let badge of unearnedProgressionBadges\" [badge]=\"badge\" [showName]=\"true\" [radius]=\"65\"></badge>\n <badge *ngFor=\"let badge of unearnedStreakBadges\" [badge]=\"badge\" [showName]=\"true\" [radius]=\"65\"></badge>\n </div>\n</div>\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})\nexport class BenchmarkIndicatorComponent {\n public delta: number;\n @Input() public factorScore: FactorScoreDto;\n\n constructor(private datePipe: DatePipe) {\n }\n\n ngOnInit() {\n this.delta = this.factorScore.score - this.factorScore.benchmark;\n }\n}\n","<span [class]=\"'delta up'\" *ngIf=\"delta > 0\" [matTooltip]=\"'Your team(s) score higher than the benchmark, by ' + delta + ' points'\"><i [class]=\"'icon ph-arrow-up-fill'\"></i>{{delta}}</span>\n<span [class]=\"'delta down'\" *ngIf=\"delta < 0\" [matTooltip]=\"'Your team(s) score lower than the benchmark, by -' + delta * -1 + ' points'\"><i [class]=\"'icon ph-arrow-down-fill'\"></i>{{delta * -1}}</span>\n<span [class]=\"'delta same'\" *ngIf=\"delta == 0\" [matTooltip]=\"'Your team(s) score similar to the benchmark'\"><i [class]=\"'icon ph-equals-fill'\"></i>{{delta}}</span>\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, ITeamReportResultsState } from '../../interfaces/IResultsState';\nimport { SubscriptionTierEnum } from '../../models/teamMetaDataDto';\n\n@Component({\n selector: 'coachingcenter-teaser',\n templateUrl: './coachingcenter-teaser.component.html',\n styleUrls: ['./coachingcenter-teaser.component.less']\n})\nexport class CoachingCenterTeaserComponent 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.userInfo ? data.userInfo.branding.isDefault : true;\n };\n}\n","<div class=\"box doityourself\" brandbackground [palette]=\"'neutral'\">\n <img class=\"responsive\" src=\"assets/img/coachingcenter-teaser.jpg\" />\n <h3>Coaching Center</h3>\n <p>Use Columinity at scale with our Coaching Center. Manage organizational units and their teams in your enterprise. Analyze and identify patterns and trends across units. Apply company branding and add additional security features.</p>\n\n <div class=\"link\">\n <a href=\"https://columinity.com/for-my-teams-at-scale\" target=\"_blank\">Discover our 'Enterprise'-plan ></a>\n </div>\n</div>\n\n\n","import { DatePipe } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { DeltaPeriodEnum, FactorScoreCollectionDeltaDto, FactorScoreDto } from '../../models/factorScoreDto';\n\n@Component({\n selector: 'delta-arrow',\n templateUrl: './delta-arrow.component.html',\n styleUrls: ['./delta-arrow.component.less']\n})\nexport class DeltaArrowComponent {\n public deltaDateRangeFrom: string;\n public deltaDateRangeTo: string;\n public available: boolean;\n public comparedTo: 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.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 }\n}\n","<span [class]=\"'delta up'\" *ngIf=\"available && factorScore.delta > 0\" [matTooltip]=\"'The score on this factor improved by ' + factorScore.delta + ' points since ' + comparedTo\"><i [class]=\"'icon ph-trend-up-bold'\"></i>{{factorScore.delta}}</span>\n<span [class]=\"'delta down'\" *ngIf=\"available && factorScore.delta < 0\" [matTooltip]=\"'The score on this factor decreased by ' + factorScore.delta * -1 + ' points since ' + comparedTo\"><i [class]=\"'icon ph-trend-down-bold'\"></i>{{factorScore.delta * -1}}</span>\n<span [class]=\"'delta same'\" *ngIf=\"available && factorScore.delta == 0\" [matTooltip]=\"'The score on this factor did not change since ' + comparedTo\"><i [class]=\"'icon ph-arrow-right-bold'\"></i>{{factorScore.delta}}</span>\n<span [class]=\"'delta same'\" *ngIf=\"!available && noDataIndicator\" [matTooltip]=\"'This factor wasn\\'t measured as part of this snapshot, or we don\\'t have enough data for this factor yet to show a delta with the previous period.'\"><i [class]=\"'icon ph-arrow-right-bold'\"></i> ?</span>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'doityourself',\n templateUrl: './doityourself.component.html',\n styleUrls: ['./doityourself.component.less']\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>Interpret the results together</h3>\n <p>We designed a 60-minute Retrospective to explore the results and identify improvements with your team.</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})\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","<div class=\"resource\" *ngFor=\"let item of resources\" [id]=\"'resource-' + item.publicKey\">\n <span *ngIf=\"item.publicKey != 'demo'\" class=\"type\" resourceDownloadDialog [publicKey]=\"item.publicKey\">\n <span class=\"badge free\">download</span>\n </span>\n <span class=\"type\" *ngIf=\"item.publicKey == 'demo'\" subscribeDialog>\n <span class=\"badge free\">download</span>\n </span>\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","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})\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 this.label = \"urgent\";\n break;\n default:\n this.label = \"average\";\n break;\n }\n }\n };\n}\n","<div [routerLink]=\"[baseUrl, 'tips']\" [fragment]=\"dimension\" class=\"tipbadge\" *ngIf=\"label && impact > 0\" [matTooltip]=\"'The impact of this recommendation is ' + impact + ' of 100'\">\n <div [class]=\"'badge ' + class\">{{ label }}</div>\n</div>\n\n<div class=\"tipbadge\" *ngIf=\"label && impact == 0 && subscribed\">\n <div [class]=\"'badge noimpact ' + class\" subscribeDialog>{{ label }}</div>\n</div>\n\n<div class=\"tipbadge\" *ngIf=\"label && impact == 0 && !subscribed\">\n <div [class]=\"'badge noimpact ' + class\">{{ label }}</div>\n</div>\n","import { Component, Directive, HostListener, Inject, Input } from '@angular/core';\nimport { MatDialog, MatDialogConfig, MAT_DIALOG_DATA } from '@angular/material/dialog';\n\n@Component({\n templateUrl: './dialog-notes.component.html',\n styleUrls: ['./dialog-notes.component.less']\n})\nexport class DialogNotesComponent {\n constructor(@Inject(MAT_DIALOG_DATA) public notes: string[]) {\n }\n}\n\n@Directive({\n selector: '[notesDialog]',\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","<div class=\"dialog-header\">\n <h1 mat-dialog-title>Limititations to your 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 <ul *ngFor=\"let item of notes\">\n <li>{{item}}</li>\n </ul>\n</mat-dialog-content>\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})\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","<div class=\"factorwithscale\" *ngIf=\"loaded\" [ngClass]=\"{'factor-notmeasured' : !dataAvailable}\">\n <div class=\"anchors\">\n <div factorInformationDialog [factor]=\"dimensionSelector\" class=\"anchor title\">{{name}}</div>\n <a class=\"anonymized\" *ngIf=\"notes && notes.length > 0\" href=\"javascript:void(null);\" notesDialog [notes]=\"notes\"><span class=\"icon ph-warning-fill\"></span></a>\n <delta-arrow [factorScore]=\"factorScore\" [delta]=\"delta\"></delta-arrow>\n <span [class]=\"'delta up'\" *ngIf=\"!delta.available\" [matTooltip]=\"'Re-take the questionnaire at a later moment to learn how your team improves over time. Set a Reminder from this report. Or subscribe to gain access to the teams dashboard, which makes it easier to create new snapshots.'\"><i [class]=\"'icon ph-trend-up-bold'\"></i>?</span>\n </div>\n <div class=\"axiscontainer\">\n <div class=\"axis\">\n <ng-container *ngFor=\"let segment of segments\">\n <div *ngIf=\"segment.type == 'Segment'\" 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 <div *ngIf=\"segment.type == 'Individual' && showIndividualScore\" 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 </ng-container>\n <ng-container *ngIf=\"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 </ng-container>\n <ng-container *ngIf=\"showTeamRange\">\n <div *ngFor=\"let segment of segments\" [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 </ng-container>\n </div>\n </div>\n <div class=\"details\">\n <div class=\"feedback\">\n <span class=\"score\" *ngIf=\"dataAvailable\"><tip-badge [dimension]=\"dimensionSelector.publicKey\"></tip-badge></span>\n <span class=\"score\" *ngIf=\"!dataAvailable\"><span class=\"badge nofeedback\">not measured</span></span>\n <a *ngIf=\"feedbackAvailable\" class=\"feedback-link\" [routerLink]=\"[baseUrl, 'tips']\" [fragment]=\"dimensionSelector.publicKey\">how to improve ></a>\n <a *ngIf=\"!feedbackAvailable && !subscribed\" class=\"feedback-link\" [routerLink]=\"[]\" subscribeDialog>more feedback?</a>\n </div>\n <div class=\"expand\" *ngIf=\"!expandLowerDimensions && dimensionSelector.lower.length != 0 && dataAvailable\" (click)=\"expandLowerDimensions = true\">\n <span class=\"icon ph-plus-bold\"></span>\n </div>\n <div class=\"expand\" *ngIf=\"expandLowerDimensions && dimensionSelector.lower.length != 0 && dataAvailable\" (click)=\"expandLowerDimensions = false\">\n <span class=\"icon ph-minus-bold\"></span>\n </div>\n </div>\n\n <div class=\"lowerdimensions\" *ngIf=\"dimensionSelector.lower.length != 0 && expandLowerDimensions\">\n <p class=\"decomposition\">The score for {{dimensionSelector.name}} has the following lower-order factors:</p>\n <div class=\"dimension\" *ngFor=\"let dimension of dimensionSelector.lower\">\n <factor-axis [showIndividualScore]=\"showIndividualScore\" [showTeamRange]=\"showTeamRange\" [dimensionSelector]=\"dimension\"></factor-axis>\n </div>\n </div>\n</div>\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 { InterventionFilterType, ModelFilter, UserSettingsDto } from '../../../models/userSettingsDto';\nimport { UserSettingService } from '../../../viewModel/userSettings.service';\nimport { ViewModelStateBase, VIEWSTATE_PROVIDER } from '../../../viewModel/viewModelState.service';\nimport { IResultsState, ITeamReportResultsState } 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})\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 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 interventionFilterTypes: SelectItem[] = [\n new SelectItem(InterventionFilterType.All.toString(), \"Show both open vs completed actions\"),\n new SelectItem(InterventionFilterType.OnlyOpen.toString(), \"Show only open actions\"),\n new SelectItem(InterventionFilterType.OnlyCompleted.toString(), \"Show only completed actions\"),\n new SelectItem(InterventionFilterType.None.toString(), \"Hide actions\")\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.settings.user.modelFilter.interventionFilter = this.form.controls.interventionFilterType.value;\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 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 interventionFilterType: [{ value: null }, Validators.required],\n stacking: [{ value: \"false\" }, Validators.required]\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.interventionFilterType.setValue(this.settings.user.modelFilter.interventionFilter);\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).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.interventionFilterTypes = [\n new SelectItem(InterventionFilterType.All.toString(), \"Show both open vs completed actions\"),\n new SelectItem(InterventionFilterType.OnlyOpen.toString(), \"Show only open actions\"),\n new SelectItem(InterventionFilterType.OnlyCompleted.toString(), \"Show only completed actions\"),\n new SelectItem(InterventionFilterType.None.toString(), \"Hide actions\")\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\n@Directive({\n selector: '[settingsDialog]',\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://github.com/theliberators/scrumteamsurvey.docs/wiki/How-%22Statistical-Settings%22-impact-the-results\">Learn</a> how these settings affect insights.</div></div>\n <mat-form-field class=\"interventionFilterType\" subscriptSizing=\"dynamic\">\n <mat-label>Which action totals do you want to see under 'Insights'?</mat-label>\n <mat-select class=\"interventionfilter-dropdown\" formControlName=\"interventionFilterType\">\n <mat-option class=\"select-option\" *ngFor=\"let item of interventionFilterTypes\" [value]=\"item.value\">{{item.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"qualifyBy\" subscriptSizing=\"dynamic\">\n <mat-label>What should we compare with (determines colors)?</mat-label>\n <mat-select class=\"qualifyBy-dropdown\" formControlName=\"qualifyBy\">\n <mat-option class=\"select-option\" *ngFor=\"let item of qualifyByTypes\" [value]=\"item.value\">{{item.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"stacking\" subscriptSizing=\"dynamic\" *ngIf=\"isSingleTeam\">\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 <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 <mat-option class=\"select-option\" *ngFor=\"let item of benchmarkTypes\" [value]=\"item.value\">{{item.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n\n <div *ngIf=\"!isSubscriber\" 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 <ng-container *ngIf=\"!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 <mat-option class=\"select-option\" *ngFor=\"let item of deltaPeriods\" [value]=\"item.value\">{{item.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n\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>\n <mat-option class=\"select-option\" [ngClass]=\"{'lower' : factor.lower}\" *ngFor=\"let factor of factors\" [value]=\"factor.value\">{{factor.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n </ng-container>\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 { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'limitationsapply',\n templateUrl: './limitationsapply.component.html',\n styleUrls: ['./limitationsapply.component.less']\n})\nexport class LimitationsApplyComponent {\n @Input() notes: string[];\n \n constructor() {\n }\n\n ngOnInit() {\n }\n}\n","<div class=\"message message-warning\" *ngIf=\"notes.length > 0\" notesDialog [notes]=\"notes\">\n <span class=\"ph-info-fill icon\"></span>\n <div *ngIf=\"notes.length == 1\">1 limitation applies due to incomplete data. <a [routerLink]=\"[]\">Click here</a> to discover how to get more out of your results.</div>\n <div *ngIf=\"notes.length > 1\">{{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</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 } 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})\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);\n };\n}\n","<div class=\"results\" *ngIf=\"loaded\">\n <limitationsapply [notes]=\"globalNotes\"></limitationsapply>\n\n <div class=\"resultstoolbar\">\n <h3>Detailed results</h3>\n <div class=\"legend\">\n <div class=\"column you\" *ngIf=\"showParticipant\">\n <span class=\"marker\"></span>\n <span class=\"label\">you</span>\n </div>\n\n <div [class]=\"'column ' + segment.name | lowercase\" *ngFor=\"let segment of populationSegments\">\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 <mat-slide-toggle *ngIf=\"showParticipant\" class=\"toggle showmyscores\" [(ngModel)]=\"showIndividualScore\">Show my scores</mat-slide-toggle>\n <mat-slide-toggle class=\"toggle showscoringrange\" [(ngModel)]=\"showTeamRange\" *ngIf=\"subscribed\">Show range of scores in my team</mat-slide-toggle>\n <mat-slide-toggle class=\"toggle showscoringrange\" *ngIf=\"!subscribed\" subscribeDialog>Show range of scores in my team</mat-slide-toggle>\n </div>\n </div>\n\n <div class=\"dimensions\">\n <div class=\"dimension\" *ngFor=\"let factor of factors\" [id]=\"'factor-' + factor.name | slugify\">\n <factor-axis [showIndividualScore]=\"showIndividualScore\" [showTeamRange]=\"showTeamRange\" [dimensionSelector]=\"factor\"></factor-axis>\n </div>\n </div>\n</div>\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})\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 <div *ngFor=\"let tag of tags\" class=\"tag\" (click)=\"filterByTag(tag)\" title=\"Click to filter only by this tag\">{{tag}}</div>\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})\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})\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 <ng-container *ngIf=\"count > 0\">\n <p>Based on the data, we recommend that you focus on the following areas. They are most likely to improve the effectiveness of your teams:</p>\n <div class=\"focusarea\" [routerLink]=\"[baseUrl, 'tips']\" *ngFor=\"let item of focusAreas; let index = index\" [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 <div class=\"link\">\n <a [routerLink]=\"[baseUrl, 'tips']\">discover tips for all areas ></a>\n </div>\n </ng-container>\n <ng-container *ngIf=\"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 </ng-container>\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})\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","<footer *ngIf=\"loaded\">\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://github.com/theliberators/scrumteamsurvey.docs/wiki\" target=\"_blank\">Wiki</a></div>\n <div class=\"item\"><a [routerLink]=\"[]\" reportBugDialog>Report bug</a></div>\n</footer>\n","import { Component, Inject } from '@angular/core';\nimport { ComponentWithViewStateBase } from '../../../componentWithViewStateBase';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { IViewState } from '../../../viewModel/interfaces';\nimport { VIEWSTATE_PROVIDER, ViewModelStateBase } from '../../../viewModel/viewModelState.service';\n\n@Component({\n selector: 'liberatorkits',\n templateUrl: './liberatorkits.component.html',\n styleUrls: ['./liberatorkits.component.less']\n})\nexport class LiberatorKitsComponent extends ComponentWithViewStateBase<IViewState> {\n public show: boolean;\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.show = data.userInfo.branding.showLiberatorMerchandise;\n };\n}\n","<div class=\"box doityourself\" brandbackground [palette]=\"'accent'\" *ngIf=\"show\">\n <img class=\"responsive\" src=\"assets/img/liberatorkits.png\" />\n <h3>Try the physical kit</h3>\n <p>Make your Retrospective more engaging with our facilitation kit. It contains the exercises 'Panarcy', 'What I Need From You', '15% Solutions', stickers, two posters with our scientific research and a huge deck of 102 Quick Tips.</p>\n\n <div class=\"link\">\n <a href=\"https://shop.theliberators.com/collections/kits/products/scrum-teams-superpower-kit-also-for-virtual-teams\" target=\"_blank\">Get the kit ></a>\n </div>\n</div>\n\n\n","import { Component, Input } from '@angular/core';\nimport { FactorScoreDto, PointDto } from '../../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})\nexport class ModelFactorBreakdownComponent {\n @Input() factor: FactorScoreDto;\n @Input() pageSize: number;\n public page = 0;\n public pageCount = 0;\n public pagesLeft: number;\n public points: PointDto[];\n \n public async ngOnInit() {\n if (this.pageSize == null) { this.pageSize = 8; }\n this.pageCount = Math.floor(this.factor.points.length / this.pageSize);\n this.loadPoints();\n }\n\n public async next() {\n this.page = this.page + 1;\n this.loadPoints();\n }\n\n public async previous() {\n if (this.page <= 0) { return; }\n this.page = this.page - 1;\n this.loadPoints();\n }\n\n private async loadPoints() {\n this.points = this.factor.points.slice(this.page * this.pageSize, this.page * this.pageSize + this.pageSize);\n }\n}\n","<div class=\"breakdown\" *ngFor=\"let point of points\">\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: ' + point.normalizedScore + '%'\"></div>\n <div class=\"progressbar-label\">{{point.name | lowercase}} <span *ngIf=\"point.type == 'Segment'\">{{point.occurances}}x</span></div>\n <div class=\"progressbar-score\">{{point.normalizedScore | number:'1.0-0' }}</div>\n </div>\n <div class=\"details\">\n <a *ngIf=\"point.type == 'Team'\" [matTooltip]=\"'Open detailed report in new window'\" [routerLink]=\"['/', 'snapshot', point.publicKey]\"><i class=\"ph-faders-horizontal icon\"></i> </a>\n <a target=\"_blank\" *ngIf=\"point.type == 'Client'\" [matTooltip]=\"'Jump to Teams Dashboard for this organization'\" [href]=\"'https://coachingcenter.theliberatorsimproveyourteam.com/select/' + point.publicKey\"><i class=\"ph-faders-horizontal icon\"></i> </a>\n </div>\n</div>\n\n<div class=\"breakdown-paginator\">\n <div class=\"breakdown-paginator-previous\" (click)=\"previous()\" *ngIf=\"page > 0\"><span class=\"icon ph-caret-left\"></span></div>\n <div class=\"breakdown-paginator-previous\" *ngIf=\"page == 0\"></div>\n <div class=\"breakdown-paginator-next\" (click)=\"next()\" *ngIf=\"page < pageCount\"><span class=\"icon ph-caret-right\"></span></div>\n</div>\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})\nexport class AgeIndicatorComponent implements OnInit {\n @Input() lastMeasured: Date;\n public lastMeasuredMonths: number;\n public lastMeasuredOpacity: number;\n public lastMeasuredTooltip: string;\n\n constructor() {\n }\n \n public ngOnInit() {\n var measureDate = new Date(this.lastMeasured);\n this.lastMeasuredMonths = Math.max(0, (new Date().getFullYear() - measureDate.getFullYear()) * 12 - measureDate.getMonth() + new Date().getMonth());\n if (this.lastMeasuredMonths > 12) { this.lastMeasuredMonths = 12; }\n if (this.lastMeasuredMonths < 1) { this.lastMeasuredMonths = 1; }\n this.lastMeasuredOpacity = 1 - ( this.lastMeasuredMonths / 14);\n\n if (this.lastMeasuredMonths <= 1) {\n this.lastMeasuredTooltip = 'This factor was last measured 1 month or less ago. It is fresh data.';\n }\n else if (this.lastMeasuredMonths >= 12) {\n this.lastMeasuredTooltip = 'This factor was last measured 12 month or more ago. We recommend to measure this again to keep data fresh.';\n }\n else {\n this.lastMeasuredTooltip = 'This factor was last measured ' + this.lastMeasuredMonths + ' month or more ago. The fresher your data, the more reliable it is.';\n }\n }\n \n}\n","<div class=\"age-indicator\" [style.opacity]=\"lastMeasuredOpacity\" [matTooltip]=\"lastMeasuredTooltip\" *ngIf=\"lastMeasuredMonths > 0\">\n <div class=\"age-indicator-dot\" *ngFor=\"let e of [].constructor(lastMeasuredMonths); let i = index\"></div>\n</div>\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})\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","<div class=\"quicktips\" [class]=\"extraClass\" *ngIf=\"quickTip\">\n <div class=\"quicktips-container\">\n <div class=\"link back\" *ngIf=\"tipCount > 1\">\n <a class=\"ph-caret-left icon\" (click)=\"previousTip()\" *ngIf=\"tipIndex > 0\"></a>\n </div>\n <div class=\"quicktip\" [id]=\"'quicktip-' + quickTip.publicKey\" [ngClass]=\"{'subscribe' : quickTip.publicKey == 'subscribe' }\">\n <div class=\"quicktip-description\">{{quickTip.description}}</div>\n <div class=\"link\" *ngIf=\"quickTip.publicKey != 'subscribe'\">\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 <div class=\"link\" *ngIf=\"quickTip.publicKey == 'subscribe'\">\n <span class=\"ph-plus icon\"></span> <a [routerLink]=\"[]\" class=\"addasaction\" subscribeDialog>Subscribe</a>\n </div>\n </div>\n <div class=\"link forward\" *ngIf=\"tipCount > 1\">\n <a class=\"ph-caret-right icon\" (click)=\"nextTip()\" *ngIf=\"tipIndex + 1 < tipCount\"></a>\n </div>\n </div>\n</div>\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 { ModelFilter } from '../../../models/userSettingsDto';\nimport { DateRangeDto } from '../../../pipes/dateRange/ngx-dateRangeDto.model';\nimport { UserSettingService } from '../../../viewModel/userSettings.service';\nimport { ViewModelStateBase, VIEWSTATE_PROVIDER } from '../../../viewModel/viewModelState.service';\nimport { IResultsState } from '../../interfaces/IResultsState';\nimport { BenchmarkTypeEnum, FactorScoreCollectionDeltaDto, FactorScoreDto, PointDto, QualifiedByEnum } from '../../models/factorScoreDto';\nimport { EffectDto, FactorStructureDto } from '../../../models/modelStructureDto';\n\n@Component({\n selector: 'model-factor',\n templateUrl: './model-factor.component.html',\n styleUrls: ['./model-factor.component.less']\n})\nexport class ModelFactorComponent extends ComponentWithViewStateBase<IResultsState> {\n @Input() dimension: FactorStructureDto;\n @Input() factorExtraClass: string;\n public currentFactor: FactorScoreDto;\n public filter: ModelFilter;\n public direction: string;\n public factorScore: FactorScoreDto;\n public benchmarkScore: number;\n public dimensionKey: string;\n public subDimensions: FactorStructureDto[];\n public benchmark: string;\n public showBenchmark: boolean;\n public description: string;\n public notes: string[];\n public confidenceAvailable: boolean;\n public teamKey: string;\n public effects: EffectDto[];\n public points: PointDto[];\n public openInterventions: number;\n public completedInterventions: number;\n public dataAvailable: boolean;\n public score: number;\n public factorScoreWidth: number;\n public factorScoreLeft: number;\n public feedbackAvailable: boolean;\n public delta: FactorScoreCollectionDeltaDto;\n public dateRange: DateRangeDto;\n public impededInterventions: number;\n public name: string;\n public baseUrl: string;\n private subscription: Subscription;\n public InterventionStateEnum = InterventionStateEnum;\n public breakdownPage = 0;\n public lastMeasuredDots: Array<number>;\n public lastMeasuredOpacity: number;\n public lastMeasuredTooltip: string;\n\n constructor(@Inject(VIEWSTATE_PROVIDER) private state: ViewModelStateBase<IResultsState>, private userSettingsService: UserSettingService, protected snackBar: MatSnackBar) {\n super(state, snackBar)\n }\n\n ngOnInit() {\n this.filter = this.userSettingsService.get().user.modelFilter;\n super.ngOnInit();\n\n this.subscription = this.userSettingsService.changed.subscribe(success => {\n this.filter = this.userSettingsService.get().user.modelFilter;\n });\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n \n protected onDataUpdate(data: IResultsState): void {\n this.currentFactor = data.factorScores.factorScores.find(p => p.key == this.dimension.publicKey);\n this.delta = data.factorScores.delta;\n this.dateRange = data.factorScores.dateRange;\n this.baseUrl = data.baseUrl;\n this.name = this.dimension.name;\n this.description = this.dimension.description;\n this.subDimensions = this.dimension.lower;\n this.dimensionKey = this.dimension.publicKey;\n this.effects = this.dimension.effects;\n this.benchmark = data.factorScores.benchmark.name;\n\n if (this.currentFactor != null) {\n this.dataAvailable = !this.currentFactor.anonymized && this.currentFactor.sampleSize > 0;\n this.confidenceAvailable = data.factorScores.composition.points.count > 0 && this.dataAvailable;\n this.feedbackAvailable = this.currentFactor.recommendation.available;\n this.benchmarkScore = this.currentFactor.benchmark;\n this.factorScore = this.currentFactor;\n this.score = this.currentFactor.score;\n this.points = this.currentFactor.points.slice(this.breakdownPage * 10, this.breakdownPage * 10 + 10);\n\n this.filter.interventionFilter;\n this.openInterventions = this.currentFactor.interventionSummary.open;\n this.completedInterventions = this.currentFactor.interventionSummary.completed;\n this.impededInterventions = this.currentFactor.interventionSummary.impeded;\n this.notes = this.currentFactor.notes;\n\n this.factorScoreWidth = (this.currentFactor.upperConfidence - this.currentFactor.lowerConfidence);\n if (this.factorScoreWidth <= 10) { this.factorScoreWidth = 10 };\n this.factorScoreLeft = this.currentFactor.lowerConfidence;\n if (this.factorScoreLeft >= 90) { this.factorScoreLeft = 90 };\n\n this.direction = this.factorScore.qualification.toLowerCase();\n }\n else {\n this.score = 0;\n }\n };\n}\n","<div [class]=\"'factor ' + factorExtraClass + ' ' + direction\" [ngClass]=\"{'factor-notmeasured' : !dataAvailable}\" [id]=\"'factor-' + dimensionKey\" #factor (click)=\"popover.open()\">\n <div class=\"factor-content\">\n <h2>\n {{name}}\n </h2>\n <div [class]=\"'progressbar progressbar-' + direction\">\n <div class=\"progressbar-score\">{{score | number:'1.0-0'}}</div>\n <div class=\"progressbar-confidence\" *ngIf=\"confidenceAvailable\" [matTooltip]=\"'Most responses fall in the range of ' + factorScore.lowerConfidence + ' (15% percentile) and ' + factorScore.upperConfidence + ' (85% percentile)'\" [style]=\"'left: ' + factorScoreLeft + '%; width: ' + factorScoreWidth + '%'\"></div>\n <div class=\"progressbar-bar\" *ngIf=\"!confidenceAvailable\" [style]=\"'width: ' + score + '%'\"></div>\n </div>\n <age-indicator [lastMeasured]=\"factorScore.lastMeasured\"></age-indicator>\n <delta-arrow *ngIf=\"dataAvailable\" [factorScore]=\"factorScore\" [delta]=\"delta\" [noDataIndicator]=\"false\"></delta-arrow>\n </div>\n <div class=\"emphasize emphasize-interventions\" *ngIf=\"filter.interventionFilter == 'All' && (openInterventions > 0 || completedInterventions > 0)\" [routerLink]=\"[baseUrl, 'actions']\" [queryParams]=\"{ expectedImpactOn: dimensionKey }\" [matTooltip]=\"'There are ' + openInterventions + ' open, and ' + completedInterventions + ' completed action(s). Each action is identified and created by the teams themselves.'\">\n {{openInterventions}}<small>/{{completedInterventions}}</small>\n </div>\n <a class=\"emphasize emphasize-interventions\" *ngIf=\"filter.interventionFilter == 'OnlyOpen' && openInterventions > 0\" [routerLink]=\"[baseUrl, 'actions']\" [queryParams]=\"{ state: InterventionStateEnum.open, expectedImpactOn: dimensionKey }\" [matTooltip]=\"'There are ' + openInterventions + ' open improvement actions. Each action is identified and created by the teams themselves.'\">\n <i class=\"ph-flask icon\"></i> {{openInterventions}}\n </a>\n <div class=\"emphasize emphasize-interventions\" *ngIf=\"filter.interventionFilter == 'OnlyCompleted' && completedInterventions > 0\" [routerLink]=\"[baseUrl, 'actions']\" [queryParams]=\"{ state: InterventionStateEnum.completed, expectedImpactOn: dimensionKey }\" [matTooltip]=\"'There are ' + openInterventions + ' completed improvement actions. Each action is identified and created by the teams themselves.'\">\n <i class=\"ph-check-bold icon\"></i> {{completedInterventions}}\n </div>\n <div class=\"emphasize emphasize-impediments\" *ngIf=\"impededInterventions > 0\" [routerLink]=\"[baseUrl, 'actions']\" [queryParams]=\"{ state: InterventionStateEnum.impeded, expectedImpactOn: dimensionKey }\" [matTooltip]=\"'There are ' + impededInterventions + ' actions where teams are requesting from help from outside the team.'\">\n <img class=\"icon\" src=\"/assets/img/impeded.svg\" /> {{impededInterventions}}\n </div>\n</div>\n\n<div [id]=\"'factor-' + dimensionKey + '-subfactors'\" class=\"subfactors\">\n <model-factor [dimension]=\"subDimension\" [factorExtraClass]=\"'factor-sub'\" *ngFor=\"let subDimension of subDimensions\"></model-factor>\n</div>\n\n<sat-popover #popover horizontalAlign=\"after\" [anchor]=\"factor\" verticalAlign=\"center\" [hasBackdrop]=\"true\" [autoFocus]=\"false\">\n <div class=\"popover\" [id]=\"'popover-' + dimensionKey\">\n <div class=\"popover-container\">\n <span (click)=\"popover.close()\" class=\"close ph-x\"></span>\n <h3 factorInformationDialog [factor]=\"dimension\">\n {{name}}\n <span class=\"icon ph-info-fill\"></span>\n </h3>\n <div class=\"description\">{{description}}</div>\n\n <div class=\"message message-warning limitations\" *ngIf=\"notes && notes.length > 0\">\n <span class=\"icon ph-warning-circle\"></span>\n <span *ngIf=\"notes.length == 1\">\n {{notes.length}} limitation applies to these results. <a [routerLink]=\"[]\" notesDialog [notes]=\"notes\">Click to explore</a>.\n </span>\n <span *ngIf=\"notes.length > 1\">\n {{notes.length}} limitations apply to these results. <a [routerLink]=\"[]\" notesDialog [notes]=\"notes\">Click to explore</a>.\n </span>\n </div>\n\n <div class=\"breakdown\">\n <div [matTooltip]=\"'This is the average score of teams in the benchmark [' + benchmark + ']. Change the benchmark under \\'Settings\\'.'\" [attr.normalizedScore]=\"benchmarkScore\" [class]=\"'progressbar progressbar-inverted progressbar-benchmark'\" *ngIf=\"benchmarkScore != 0\">\n <div class=\"progressbar-bar\" [style]=\"'width: ' + benchmarkScore + '%'\"></div>\n <div class=\"progressbar-label\">benchmark</div>\n <div class=\"progressbar-score\">{{benchmarkScore | number:'1.0-0' }}</div>W\n </div>\n <div class=\"details\">\n </div>\n </div>\n\n <model-factor-breakdown [factor]=\"currentFactor\"></model-factor-breakdown>\n\n <quicktips [dimensionKey]=\"dimensionKey\" [extraClass]=\"'quicktips-popover'\"></quicktips>\n\n <div class=\"link\" *ngIf=\"feedbackAvailable\">\n <a [routerLink]=\"[baseUrl, 'tips']\" [fragment]=\"dimensionKey\">discover how to improve ></a>\n </div>\n </div>\n <div class=\"arrow\"></div>\n </div>\n</sat-popover>\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})\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 }\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})\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 <mat-option class=\"select-option\" *ngFor=\"let model of models\" [value]=\"model\">{{model.name}} <span class=\"badge badge-beta\" *ngIf=\"model.isInBeta\">beta</span></mat-option>\n </mat-select>\n </mat-form-field>\n\n <p [innerHtml]=\"form.controls.activeModel.value.description\" *ngIf=\"form.controls.activeModel.value.description\"></p>\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})\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","<div class=\"modelswitcher\" id=\"button-switchmodel\" modelFilterDialog *ngIf=\"canSwitchModels\">\n <div class=\"prefix\">model</div>\n <div class=\"activemodel\">{{modelDefinition.name}}<span class=\"icon ph-caret-down-bold\"></span></div>\n</div>\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})\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.</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 <mat-option class=\"select-option\" *ngFor=\"let item of periodGroupings\" [value]=\"item.value\">{{item.label}}</mat-option>\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 <mat-error *ngIf=\"form.controls.start.hasError('matStartDateInvalid')\">Invalid start date</mat-error>\n <mat-error *ngIf=\"form.controls.end.hasError('matEndDateInvalid')\">Invalid end date</mat-error>\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 <mat-option class=\"select-option\" *ngFor=\"let item of benchmarkTypes\" [value]=\"item.value\">{{item.label}}</mat-option>\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})\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, HostListener, Inject } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\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 { DeltaPeriodEnum, PointTypeEnum, QualifiedByEnum } from '../../models/factorScoreDto';\nimport { EffectDto, FactorStructureDto, ModelDefinitionDto } from '../../../models/modelStructureDto';\n\n@Component({\n selector: 'model',\n templateUrl: './model.component.html',\n styleUrls: ['./model.component.less']\n})\nexport class ModelComponent extends ComponentWithViewStateBase<IResultsState> {\n public factors: FactorStructureDto[];\n public showSubFactorArrows: boolean;\n public showModel: boolean;\n public dateRange: DateRangeDto;\n public deltaDateRange: DateRangeDto;\n public coreEffects: EffectDto[];\n public pointCount: number;\n public benchmark: string;\n public pointNames: string;\n public pointType: string;\n public deltaTeams: number;\n public deltaTeamNames: string;\n public deltaAvailable: boolean;\n public isLoggedIn: boolean;\n public canSwitchModels: 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>, private dialog: MatDialog, protected snackBar: MatSnackBar) {\n super(state, snackBar);\n }\n\n ngOnInit() {\n this.determineScreenSize();\n super.ngOnInit();\n }\n\n @HostListener('window:resize', ['$event'])\n private determineScreenSize(event?) {\n this.showSubFactorArrows = 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);\n this.modelDefinition = data.factorScores.modelStructure.definition;\n this.canSwitchModels = data.factorScores.modelStructure.models.length > 1;\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\n switch (data.factorScores.composition.points.type) {\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","\n<div *ngIf=\"!showModel\" 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<limitationsapply [notes]=\"globalNotes\"></limitationsapply>\n\n<div class=\"wirebox model\" *ngIf=\"factors && showModel\">\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 <div class=\"toolbar-setting-label\" *ngIf=\"qualifiedBy == QualifiedByEnum.none\">No comparison</div>\n <div class=\"toolbar-setting-label\" *ngIf=\"qualifiedBy == QualifiedByEnum.delta && deltaType == 'PreviousSnapshot'\">Previous snapshot from {{deltaDateRange | dateRange}}</div>\n <div class=\"toolbar-setting-label\" *ngIf=\"qualifiedBy == QualifiedByEnum.delta && deltaType != 'PreviousSnapshot'\">Current period <span class=\"icon ph-info-fill\" [matTooltip]=\"'Current period ranges from ' + (dateRange | dateRange) + '. This includes weighed measurements from ' + pointCount + ' ' + pointType + ': ' + pointNames\"></span> with previous period <span class=\"icon ph-info-fill\" [matTooltip]=\"'Previous period ranges from ' + (deltaDateRange | dateRange) + '. This includes weighed measurements from ' + deltaTeams + ' ' + pointType + ': ' + deltaTeamNames\"></span></div>\n <div class=\"toolbar-setting-label\" *ngIf=\"qualifiedBy == QualifiedByEnum.benchmark\">Against benchmark</div>\n </div>\n <div class=\"toolbar-setting\" *ngIf=\"qualifiedBy != QualifiedByEnum.none\">\n <div class=\"toolbar-setting-title\">comparison legend</div>\n <div class=\"toolbar-setting-markers negative\">\n <ng-container *ngIf=\"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 neutral\">\n <span class=\"marker\"></span>\n <span class=\"label\">similar</span>\n </div>\n <div class=\"toolbar-setting-marker positive\">\n <span class=\"marker\"></span>\n <span class=\"label\">higher</span>\n </div>\n </ng-container>\n <ng-container *ngIf=\"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 neutral\">\n <span class=\"marker\"></span>\n <span class=\"label\">similar</span>\n </div>\n <div class=\"toolbar-setting-marker positive\">\n <span class=\"marker\"></span>\n <span class=\"label\">improved</span>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n <div class=\"buttons\">\n <div class=\"button\" id=\"change-settings\" settingsDialog><span class=\"ph-faders icon\"></span> Settings</div>\n <div class=\"button\" id=\"export-factorscores\" exportFactorScoresDialog *ngIf=\"isLoggedIn\"><span class=\"ph-download-simple icon\"></span> Export</div>\n </div>\n </div>\n </div>\n <div class=\"content\">\n <div class=\"model\">\n <div *ngIf=\"!showModel || !showSubFactorArrows\" class=\"message message-warning\">\n <div><span class=\"icon ph-info-fill\"></span> View on a larger device to see more details (like lower-order factors).</div>\n </div>\n\n <div class=\"model-frame\" [class]=\"'model-' + modelDefinition.publicKey\">\n <ng-container *ngFor=\"let factor of factors\">\n <model-factor [dimension]=\"factor\" [factorExtraClass]=\"'factor-primary'\"></model-factor>\n </ng-container>\n </div>\n\n <ng-container *ngFor=\"let factor of factors\">\n <arrow [from]=\"'#factor-' + factor.publicKey\" [to]=\"'#factor-' + effect.to\" [onlyVisible]=\"true\" [tail]=\"true\" [head]=\"false\" [width]=\"effect.standardizedBeta * 10\" [text]=\"'+'\" *ngFor=\"let effect of factor.effects\"></arrow>\n <ng-container *ngIf=\"showSubFactorArrows\">\n <ng-container *ngFor=\"let lowerFactor of factor.lower\">\n <arrow [from]=\"'#factor-' + lowerFactor.publicKey\" [to]=\"'#factor-' + lowerEffect.to\" [onlyVisible]=\"true\" [tail]=\"false\" [head]=\"false\" [width]=\"1\" *ngFor=\"let lowerEffect of lowerFactor.effects\"></arrow>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </div>\n\n <div class=\"bottom\">\n <div class=\"message message-information\">\n <div>\n <span class=\"icon ph-info-fill\"></span>\n <span>\n <span [innerHtml]=\"modelDefinition.attribution\"></span>\n <span> Explore our <a href=\"https://github.com/theliberators/scrumteamsurvey.docs/wiki\" target=\"_blank\">wiki</a> for details on calculations and common questions.</span>\n </span>\n </div>\n </div>\n </div>\n</div>\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})\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() 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(eventData: Event) {\n this.hover = true;\n }\n @HostListener('mouseleave') mouseleave(eventData: Event) {\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","<div class=\"brandeditem\" [routerLink]=\"routerLink\" [style.background-color]=\"active ? accentColor : null\">\n <div class=\"counter\" *ngIf=\"alertCount > 0\">{{alertCount}}</div>\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","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})\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 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\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 <div class=\"segment\" *ngFor=\"let segment of populationSegments\">\n {{segmentName(segment.name)}} <span class=\"digit\">{{segment.occurances}}</span>\n </div>\n </div>\n\n <div class=\"closed message\" *ngIf=\"closed\"><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 <div class=\"invitebox\" *ngIf=\"teamInviteUrl && !closed\">\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 <div class=\"invitebox\" *ngIf=\"stakeholderInviteUrl && !closed\">\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 <div class=\"invitebox\" *ngIf=\"supporterInviteUrl && !closed\">\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 </div>\n <div class=\"bottom\">\n </div>\n</div>\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 { 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})\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\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 };\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\">benchmark <benchmark-indicator [factorScore]=\"item\"></benchmark-indicator></div>\n <div class=\"delta-item\" *ngIf=\"delta.available\">previous period <delta-arrow [factorScore]=\"item\" [delta]=\"delta\"></delta-arrow></div>\n <div class=\"delta-item\">impact <impact-indicator [factorScore]=\"item\"></impact-indicator></div>\n </div>\n </div>\n <div class=\"bottom insightsfromresearch\" *ngIf=\"item.recommendation.research\">\n <div class=\"titleandaction\" (click)=\"researchExpanded = !researchExpanded\">\n <h3>Insights from research</h3>\n <div class=\"unexpand action\" *ngIf=\"researchExpanded\">\n <span class=\"icon ph-minus-bold\"></span>\n </div>\n <div class=\"expand action\" *ngIf=\"!researchExpanded\">\n <span class=\"icon ph-plus-bold\"></span>\n </div>\n </div>\n <div class=\"research\" *ngIf=\"researchExpanded\">\n <div class=\"chunk summary\" [innerHtml]=\"item.recommendation.research\"></div>\n </div>\n </div>\n <div class=\"bottom howtoimprove\">\n <div class=\"titleandaction\" (click)=\"howToImproveExpanded = !howToImproveExpanded\">\n <h3>How to improve</h3>\n <div class=\"unexpand action\" *ngIf=\"howToImproveExpanded\">\n <span class=\"icon ph-minus-bold\"></span>\n </div>\n <div class=\"expand action\" *ngIf=\"!howToImproveExpanded\" >\n <span class=\"icon ph-plus-bold\"></span>\n </div>\n </div>\n <div class=\"howtoimprove\" *ngIf=\"howToImproveExpanded\">\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 <div class=\"chunk resources\" *ngIf=\"resources.length > 0\">\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 <div class=\"chunk predictors\" *ngIf=\"predictors.length > 0\">\n <p>Or you can improve in this area by investing in:</p>\n <ul *ngFor=\"let effect of predictors\">\n <li *ngIf=\"effect.type == 'IsPartOf'\"><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 <li *ngIf=\"effect.type == 'IsPredictedBy'\"><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 </ul>\n </div>\n <div class=\"chunk summary effects\" *ngIf=\"influences.length > 0\">\n <p>When you are successful, you're likely to see additional improvements in:</p>\n <ul *ngFor=\"let effect of influences\">\n <li><a [routerLink]=\"[]\" factorInformationDialog [factor]=\"getFactor(effect.key)\">{{effect.name}}<span class=\"icon ph-info-fill\"></span></a></li>\n </ul>\n </div>\n </div>\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})\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 <recommendation *ngFor=\"let item of recommendations\" [item]=\"item\"></recommendation>\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})\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 in a scientific approach to change. This tool is built on a scientifc investigation of data from 1.978 Scrum/Agile teams to identify which factors contribute to their effectiveness (<a href=\"https://dl.acm.org/doi/pdf/10.1145/3571849\" download>Verwijs & Russo, 2022</a>). We report these factors and offer evidence-based feedback for them.</p>\n\n <div class=\"link\">\n <a href=\"https://columinity.com/research\">Explore research ></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})\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","<div class=\"roadmap\" brandbackground [palette]=\"'accent'\" *ngIf=\"show\">\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-circle\"></span> Add basic API for select Enterprise users (Q3)\n </div>\n <div class=\"feature\">\n <span class=\"icon ph-circle\"></span> Evolve Feedback To Support Action Learning (in progress, Q2-4)\n </div>\n <div class=\"feature\">\n <span class=\"icon ph-circle\"></span> Transition Teamwork Model Out Of Beta (Q4)\n </div>\n <div class=\"feature\">\n <span class=\"icon ph-circle\"></span> Expand with non-survey measures (Q1-2, 2025)\n </div>\n</div>\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: TeamMetaDataImprovementGoalDto[];\n teamTypes: TeamMetaDataTeamTypeDto[];\n}\n\nexport enum SubscriptionTierEnum {\n Freemium = \"Freemium\",\n Professional = \"Professional\",\n Enterprise = \"Enterprise\"\n}\n\nexport class TeamMetaDataImprovementGoalDto {\n key: string;\n name: string;\n selected: boolean;\n}\n\nexport class TeamMetaDataTeamTypeDto {\n key: string;\n name: string;\n selected: boolean;\n}\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, ITeamReportResultsState } from '../../interfaces/IResultsState';\nimport { SubscriptionTierEnum } from '../../models/teamMetaDataDto';\n\n@Component({\n selector: 'teamdashboard-teaser',\n templateUrl: './teamdashboard-teaser.component.html',\n styleUrls: ['./teamdashboard-teaser.component.less']\n})\nexport class TeamDashboardTeaserComponent extends ComponentWithViewStateBase<IResultsState> {\n public show: boolean;\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.teamMetaData.subscriptionTier == SubscriptionTierEnum.Freemium;\n };\n}\n","<div class=\"box doityourself\" brandbackground [palette]=\"'neutral'\" *ngIf=\"show\">\n <img class=\"responsive\" src=\"assets/img/teamdashboard-teaser.jpg\" />\n <h3>Teams Dashboard</h3>\n <p>Our Teams Dashboard allows you to manage many teams in the same organization. Aggregate and analyze results from our diagnostics to identify patterns and trends.</p>\n\n <div class=\"link\">\n <a href=\"https://columinity.com/for-my-organization\" target=\"_blank\">Discover our 'Professional'-plan ></a>\n </div>\n</div>\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 { 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})\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","<div class=\"box teameffectiveness\" *ngIf=\"score != 0\" brandbackground [palette]=\"'theme'\">\n <h3>Team Effectiveness Score</h3>\n \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\n <div [class]=\"'progressbar progressbar-inverted progressbar-benchmark'\" *ngIf=\"benchmarkScore > 0\">\n <div class=\"progressbar-bar\" [matTooltip]=\"'This is the upper range of what most Scrum 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</div>\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})\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 <li *ngFor=\"let document of legal.documents\"><a [href]=\"document.url\" target=\"_blank\">{{document.name}} <span class=\"icon ph-arrow-square-out\"></span></a></li>\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})\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","<form [formGroup]=\"form\" class=\"dataselector\" (ngSubmit)=\"onFormSubmit()\">\n <div class=\"listtoolbar\" id=\"listtoolbar\">\n <mat-form-field class=\"listtoolbar-item select\" appearance=\"fill\" *ngIf=\"units.length > 1\">\n <mat-label>Select {{unitType}}</mat-label>\n <mat-select formControlName=\"unitKey\" id=\"select-units\" class=\"unitKey\" multiple [disabled]=\"units.length == 1\">\n <mat-option class=\"select-option\" *ngFor=\"let unit of units\" [value]=\"unit\">{{unit.label}}</mat-option>\n </mat-select>\n </mat-form-field>\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 <mat-option class=\"select-option\" *ngFor=\"let factor of factors\" [ngClass]=\"{'lower' : factor.lower}\" [value]=\"factor\" selected=\"true\">{{factor.label}}</mat-option>\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 <mat-option class=\"select-option\" *ngFor=\"let item of periodGroupings\" [value]=\"item.value\">{{item.label}}</mat-option>\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 <mat-option class=\"select-option\" *ngFor=\"let item of includeActionOptions\" [value]=\"item.value\" class=\"select-option\">{{item.label}}</mat-option>\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 <mat-error *ngIf=\"form.controls.start.hasError('matStartDateInvalid')\">Invalid start date</mat-error>\n <mat-error *ngIf=\"form.controls.end.hasError('matEndDateInvalid')\">Invalid end date</mat-error>\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<div class=\"message message-warning\" *ngIf=\"generatorNotes.length > 0\">\n <div class=\"ph-warning icon\"></div> {{generatorNotes[0]}}\n</div>\n\n<div class=\"wirebox calltoaction nodata\" *ngIf=\"!data\">\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<div #chartcontainer class=\"linechart\">\n <div class=\"linechart-container\" *ngIf=\"data\">\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</div>\n\n<div class=\"message message-information\" *ngIf=\"data\">\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 25% of scores). We aggregate 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","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})\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","<div class=\"update-in-progress\" *ngIf=\"delayedReloading\">\n <span class=\"icon ph-floppy-disk-bold\"></span>\n</div>\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","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})\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\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 }\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\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 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.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 <div class=\"userprofileavatar\" *ngIf=\"userProfile.avatarUrl\">\n <div *ngIf=\"loading\" class=\"loading-icon small\"></div>\n <img *ngIf=\"!loading\" class=\"responsive\" [src]=\"userProfile.avatarUrl\" />\n </div>\n <div class=\"reupload\">\n <div class=\"button\" (click)=\"changeAvatar = true\" *ngIf=\"!changeAvatar && userProfile.avatarUrl\">Change avatar</div>\n <div class=\"button\" (click)=\"changeAvatar = true\" *ngIf=\"!changeAvatar && !userProfile.avatarUrl\">Set avatar</div>\n <div class=\"button\" (click)=\"clearAvatar()\" *ngIf=\"changeAvatar && userProfile.avatarUrl\"><span class=\"icon ph-trash-fill\"></span>Clear</div>\n </div>\n </div>\n\n <div class=\"reuploadform\" *ngIf=\"changeAvatar\">\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 <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 <mat-error *ngIf=\"form.controls.name.errors\">\n <div *ngIf=\"form.controls.name.errors.required\">This field is required</div>\n </mat-error>\n </mat-form-field>\n\n <div class=\"form-label\">Email</div>\n <p *ngIf=\"!showEmailInput\">\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 <mat-form-field appearance=\"fill\" *ngIf=\"showEmailInput\" 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 <mat-error *ngIf=\"form.controls.newEmail.errors\">\n <div *ngIf=\"form.controls.newEmail.errors.email\">The email is invalid. Please specify email like john@doe.nl or jane.doe@someone.nl.</div>\n <div *ngIf=\"form.controls.newEmail.errors.alreadyExists\">Another user already uses this e-mail address. Please use another email address.</div>\n </mat-error>\n </mat-form-field>\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 <div class=\"button\" (click)=\"sendPasswordReset()\" id=\"account-passwordreset\" *ngIf=\"!userProfile.usesSSO\">Send email to change password</div>\n <p *ngIf=\"userProfile.usesSSO\">You are logging in through single-sign on (SSO). Use your company's identity provider to change your password.</p>\n\n <ng-container *ngIf=\"allowMfa\">\n <div class=\"form-label\">Add additional login factor (MFA)</div>\n <ng-container *ngIf=\"!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 </ng-container>\n <ng-container *ngIf=\"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 </ng-container>\n </ng-container>\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})\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})\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\n constructor() {\n }\n\n ngOnInit() {\n this.confidenceAvailable = this.factorScores.composition.points.count > 1;\n this.score = this.factorScore.score;\n this.benchmark = this.factorScore.benchmark;\n this.benchmarkName = this.factorScores.benchmark.name;\n\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 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 <div class=\"progressbar-confidence\" *ngIf=\"confidenceAvailable && factorScore.score > 0\" [matTooltip]=\"'Most teams in your organization fall in this range (25-75% percentile)'\" [style]=\"'left: ' + factorScoreLeft + '%; width: ' + factorScoreWidth + '%'\"></div>\n <div class=\"progressbar-confidence\" *ngIf=\"confidenceAvailable && factorScore.score > 0\" [matTooltip]=\"'Most teams in your organization fall in this range (25-75% percentile)'\" [style]=\"'left: ' + factorScoreLeft + '%; width: ' + factorScoreWidth + '%'\"></div>\n <div class=\"progressbar-bar\" *ngIf=\"!confidenceAvailable\" [style]=\"'width: ' + score + '%'\"></div>\n <div class=\"benchmark\" [style]=\"'left: ' + benchmark + '%'\" [matTooltip]=\"'Teams in benchmark \\'' + benchmarkName + '\\' score an average of ' + benchmark + ' points'\" *ngIf=\"benchmark != 0\"></div>\n <div class=\"progressbar-score\">{{factorScore.score > 0 ? factorScore.score : \"waiting for data\"}}</div>\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})\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 <div class=\"progressbar-confidence\" *ngIf=\"confidenceAvailable\" [matTooltip]=\"'Most teams in your organization fall in this range (25-75% percentile)'\" [style]=\"'left: ' + factorScoreLeft + '%; width: ' + factorScoreWidth + '%'\"></div>\n <div class=\"progressbar-bar\" *ngIf=\"!confidenceAvailable\" [style]=\"'width: ' + percentage + '%'\"></div>\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})\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).</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).</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})\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","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 allowedTeamPublicKeys: string[];\n allowedTeamNames: string[];\n};\n","export class ParticipantDto {\n identifier: 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};\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}\n\nexport class InviteUrlDto {\n segment: string;\n value: string;\n}\n","import { 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 archived: boolean;\n teamType: 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};\n\nexport class TeamNameAndKeyDto {\n name: string;\n publicKey: string;\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; 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 } 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 { SatPopoverModule } from '@ncstate/sat-popover';\nimport { NgxChartsModule } from '@swimlane/ngx-charts';\nimport { FactorInformationDialogModule } from '../../public-api';\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 { 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 { CoachingCenterTeaserComponent } from './components/coachingcenter-teaser/coachingcenter-teaser.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 { LiberatorKitsComponent } from './components/liberatorkits/liberatorkits.component';\nimport { LimitationsApplyComponent } from './components/limitationsapply/limitationsapply.component';\nimport { ModelFactorBreakdownComponent } from './components/model-factor-breakdown/model-factor-breakdown.component';\nimport { ModelFactorComponent } from './components/model-factor/model-factor.component';\nimport { ModelSwitcherComponent } from './components/model-switcher/model-switcher.component';\nimport { ModelComponent } from './components/model/model.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 { TeamDashboardTeaserComponent } from './components/teamdashboard-teaser/teamdashboard-teaser.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 { 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, OpenNotesDialogDirective } from './dialogs/dialog-notes/dialog-notes.component';\nimport { DialogSettingsComponent, OpenSettingsDialogDirective } from './dialogs/dialog-settings/dialog-settings.component';\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 { AgeIndicatorComponent } from './components/age-indicator/age-indicator.component';\n\n@NgModule({\n imports: [\n ClipboardModule,\n NgxChartsModule,\n SlugifyPipeModule,\n MatDialogModule,\n MatTooltipModule,\n MatNativeDateModule,\n RouterModule,\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n MatOptionModule,\n MatInputModule,\n MatSlideToggleModule,\n BrandingModule,\n MatSelectModule,\n MatProgressSpinnerModule,\n MatDatepickerModule,\n DateRangePipeModule,\n SatPopoverModule,\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 FocusAreasComponent,\n ImpactIndicatorComponent,\n AgeIndicatorComponent,\n RoadmapComponent,\n CoachingCenterTeaserComponent,\n ModelComponent,\n QuickTipsComponent,\n TeamDashboardTeaserComponent,\n ModelFactorComponent,\n RecommendationComponent,\n RecommendationsComponent,\n ModelSwitcherComponent,\n ResearchComponent,\n DoItYourselfWorkshopsComponent,\n DoItYourselfComponent,\n ModelFactorBreakdownComponent,\n FooterComponent,\n DialogSettingsComponent,\n NavButtonComponent,\n TermsUpdatedComponent,\n OpenSettingsDialogDirective,\n WidgetFactorScoreComponent,\n WidgetParticipationRateComponent,\n TeamEffectivenessComponent,\n LiberatorKitsComponent,\n DialogExportFactorScoresComponent,\n OpenExportFactorScoresDialogDirective,\n DialogExportTeamListComponent,\n OpenExportTeamListDialogDirective,\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 CoachingCenterTeaserComponent,\n AgeIndicatorComponent,\n FocusAreasComponent,\n ImpactIndicatorComponent,\n VideoComponent,\n ModelComponent,\n QuickTipsComponent,\n ModelFactorComponent,\n RoadmapComponent,\n TeamDashboardTeaserComponent,\n LiberatorKitsComponent,\n TermsUpdatedComponent,\n FooterComponent,\n NavButtonComponent,\n RecommendationComponent,\n ModelSwitcherComponent,\n RecommendationsComponent,\n FilterTagsComponent,\n DoItYourselfWorkshopsComponent,\n ModelFactorBreakdownComponent,\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 OpenExportTeamListDialogDirective,\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 ]\n})\nexport class ResultsModule { }\n","import { Inject, Injectable, InjectionToken, Optional } from '@angular/core';\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\nexport class ResultsClientDto {\n}\n\nexport const ResultsConfigToken = new InjectionToken<ResultsClientDto>(\n 'results-angular.config'\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","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 { 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 { 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\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\nexport class ViewModelStateConfigDto {\n}\n\nexport const ViewModelStateConfigToken = new InjectionToken<ViewModelStateConfigDto>(\n 'viewmodelstate-angular.config'\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/interfaces/IAlertState';\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/brandConditionalColor.directive';\nexport * from './lib/branding/brandConditionalBackgroundColor.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/community/community.module';\nexport * from './lib/community/components/gethelp-form/gethelp-form.component';\nexport * from './lib/community/components/meetups/meetups.component';\nexport * from './lib/community/components/recentcontent/recentcontent.component';\nexport * from './lib/community/interfaces/ICommunityState';\nexport * from './lib/community/models/meetupDto';\nexport * from './lib/community/models/resourceDto';\nexport * from './lib/community/services/communityClientConfig';\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/paginator/paginator.component';\nexport * from './lib/components/paginator/paginator.module';\nexport * from './lib/components/scale-selector/scale-selector.component';\nexport * from './lib/components/scale-selector/scale-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/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/tabnavigator/tabnavigator.component';\nexport * from './lib/components/tabnavigator/tabnavigator.module';\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/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/contextItemDto';\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/results/components/arrow/arrow.component';\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/coachingcenter-teaser/coachingcenter-teaser.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/liberatorkits/liberatorkits.component';\nexport * from './lib/results/components/limitationsapply/limitationsapply.component';\nexport * from './lib/results/components/model-factor-breakdown/model-factor-breakdown.component';\nexport * from './lib/results/components/model-factor/model-factor.component';\nexport * from './lib/results/components/model-switcher/model-switcher.component';\nexport * from './lib/results/components/model/model.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/roadmap/roadmap.component';\nexport * from './lib/results/components/teamdashboard-teaser/teamdashboard-teaser.component';\nexport * from './lib/results/components/teameffectiveness/teameffectiveness.component';\nexport * from './lib/results/components/termsupdated/termsupdated.component';\nexport * from './lib/results/components/age-indicator/age-indicator.component';\nexport * from './lib/results/components/tip-badge/tip-badge.component';\nexport * from './lib/results/components/trends/trends.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/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/maxSelectedValidator';\nexport * from './lib/validators/matchInputValidator';\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","i4","i5","i6","i1.ViewModelStateBase","i7","i8","i10","i1","i3.ActionManageComponent","i6.OpenEditActionDialogDirective","i7.InterventionTypeToStringPipe","i8.InterventionOwnerToStringPipe","i2.ActionService","i6.PaginatorComponent","i10.ActionTileComponent","i11.OpenAddActionDialogDirective","i12.OpenActionFiltersDialogDirective","i13.OpenExportActionsDialogDirective","DATE_POCTUATION_REGEX","i1.AlertService","i3.AlertsComponent","i1.BrandingProvider","i2.ContactService","i9","i4.OpenReportBugDialogDirective","i4.OpenSupportDialogDirective","i6.OpenLookingForHelpDialog","i7.OpenSubscribeDialogDirective","i7.OpenFactorInformationDialogDirective","i8.SegmentNamePipe","i9.CallbackPipe","i2.BrandConditionalBackgroundColorDirective","AccountService","i4.ResourceDownloadService","i2.GuidesClientConfig","i1.GuidePopupService","i6.CheckboxComponent","i7.ImageSliderComponent","i5.OpenGuideDialogDirective","i2.BadgeStreakComponent","i3.BadgeProgressionComponent","i3.BadgeComponent","i4.BadgeStreakComponent","i2.BrandBackgroundDirective","i1.BrandBackgroundDirective","i2.OpenResourceDownloadDialogDirective","i3.OpenAddActionDialogDirective","i4.OpenSubscribeDialogDirective","i5.OpenResourceDownloadDialogDirective","i5.OpenSubscribeDialogDirective","i6.OpenSubscribeDialogDirective","i8.DeltaArrowComponent","i9.TipBadgeComponent","i10.OpenNotesDialogDirective","i3.OpenNotesDialogDirective","i7.OpenSettingsDialogDirective","i8.FactorAxisComponent","i9.LimitationsApplyComponent","i10.SlugifyPipe","i4.ImpactIndicatorComponent","i3.BrandBackgroundDirective","i4.SlugifyPipe","i4.OpenAddActionDialogDirective","i1.UserSettingService","i9.AgeIndicatorComponent","i10.QuickTipsComponent","i11.ModelFactorBreakdownComponent","i12.OpenNotesDialogDirective","i3.OpenModelFilterDialog","i2.ExportService","i5.ArrowComponent","i6.ModelFactorComponent","i8.OpenExportFactorScoresDialogDirective","i10.DateRangePipe","i2.BrandingProvider","i4.OpenFactorInformationDialogDirective","i5.DeltaArrowComponent","i6.BenchmarkIndicatorComponent","i7.ImpactIndicatorComponent","i8.QuickTipsComponent","i9.DoItYourselfWorkshopsComponent","i4.RecommendationComponent","i4.BrandBackgroundDirective","i11","i2.UserProfileService","i3.AccountService","i3.DeltaArrowComponent","i1.SessionIdProvider"],"mappings":"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"}
|