@the-liberators/ngx-scrumteamsurvey-tools 2.2.84 → 2.2.86

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.
Files changed (159) hide show
  1. package/esm2022/lib/actions/actions.module.mjs +4 -4
  2. package/esm2022/lib/actions/components/action-list/action-list.component.mjs +3 -3
  3. package/esm2022/lib/actions/components/action-manage/action-manage.component.mjs +3 -3
  4. package/esm2022/lib/actions/components/action-tile/action-tile.component.mjs +3 -3
  5. package/esm2022/lib/actions/dialogs/dialog-export-actions/dialog-export-actions.component.mjs +3 -3
  6. package/esm2022/lib/actions/dialogs/dialog-export-actions/dialog-export-actions.directive.mjs +3 -3
  7. package/esm2022/lib/actions/dialogs/dialog-filters/dialog-filters.component.mjs +6 -6
  8. package/esm2022/lib/actions/dialogs/dialog-manageaction/dialog-manageaction.component.mjs +9 -9
  9. package/esm2022/lib/actions/pipes/interventionOwnerToString.pipe.mjs +3 -3
  10. package/esm2022/lib/actions/pipes/interventionStateToString.pipe.mjs +3 -3
  11. package/esm2022/lib/actions/pipes/interventionTypeToString.pipe.mjs +3 -3
  12. package/esm2022/lib/actions/services/actionClientConfig.mjs +3 -3
  13. package/esm2022/lib/actions/services/actionService.mjs +3 -3
  14. package/esm2022/lib/add-calendar/ng-add-to-calendar.module.mjs +4 -4
  15. package/esm2022/lib/add-calendar/service/ng-add-to-calendar.service.mjs +3 -3
  16. package/esm2022/lib/alerts/alerts.module.mjs +4 -4
  17. package/esm2022/lib/alerts/components/alerts-list/alerts.component.mjs +3 -3
  18. package/esm2022/lib/alerts/components/dialog-alerts/dialog-alerts.component.mjs +3 -3
  19. package/esm2022/lib/alerts/components/dialog-alerts/dialog-alerts.directive.mjs +3 -3
  20. package/esm2022/lib/alerts/services/alertClientConfig.mjs +3 -3
  21. package/esm2022/lib/alerts/services/alerts.service.mjs +3 -3
  22. package/esm2022/lib/apiUrlToken.mjs +3 -3
  23. package/esm2022/lib/branding/brandBackground.directive.mjs +3 -3
  24. package/esm2022/lib/branding/brandConditionalBackgroundColor.directive.mjs +3 -3
  25. package/esm2022/lib/branding/brandConditionalColor.directive.mjs +3 -3
  26. package/esm2022/lib/branding/brandHoverColor.directive.mjs +3 -3
  27. package/esm2022/lib/branding/branding.module.mjs +4 -4
  28. package/esm2022/lib/branding/brandingProvider.service.mjs +3 -3
  29. package/esm2022/lib/branding/components/site-default-footer/site-default-footer.component.mjs +3 -3
  30. package/esm2022/lib/branding/components/site-default-header/site-default-header.component.mjs +3 -3
  31. package/esm2022/lib/branding/components/site-micro-footer/site-micro-footer.component.mjs +3 -3
  32. package/esm2022/lib/community/community.module.mjs +4 -4
  33. package/esm2022/lib/community/components/gethelp-form/gethelp-form.component.mjs +3 -3
  34. package/esm2022/lib/community/components/meetups/meetups.component.mjs +3 -3
  35. package/esm2022/lib/community/components/recentcontent/recentcontent.component.mjs +3 -3
  36. package/esm2022/lib/community/services/communityClientConfig.mjs +3 -3
  37. package/esm2022/lib/componentBase.mjs +3 -3
  38. package/esm2022/lib/componentWithViewStateBase.mjs +3 -3
  39. package/esm2022/lib/components/checkbox/checkbox.component.mjs +3 -3
  40. package/esm2022/lib/components/checkbox/checkbox.module.mjs +4 -4
  41. package/esm2022/lib/components/expand/expand.component.mjs +3 -3
  42. package/esm2022/lib/components/expand/expand.module.mjs +4 -4
  43. package/esm2022/lib/components/loading/loading.component.mjs +3 -3
  44. package/esm2022/lib/components/loading/loading.module.mjs +4 -4
  45. package/esm2022/lib/components/mat-tags/mat-tags.component.mjs +3 -3
  46. package/esm2022/lib/components/mat-tags/mat-tags.module.mjs +4 -4
  47. package/esm2022/lib/components/paginator/paginator.component.mjs +3 -3
  48. package/esm2022/lib/components/paginator/paginator.module.mjs +4 -4
  49. package/esm2022/lib/components/scale-selector/scale-selector.component.mjs +3 -3
  50. package/esm2022/lib/components/scale-selector/scale-selector.module.mjs +4 -4
  51. package/esm2022/lib/dialogs/dialog-account/account.service.mjs +3 -3
  52. package/esm2022/lib/dialogs/dialog-account/dialog-account.component.mjs +6 -6
  53. package/esm2022/lib/dialogs/dialog-account/dialog-account.module.mjs +4 -4
  54. package/esm2022/lib/dialogs/dialog-factorinformation/dialog-factorinformation.component.mjs +6 -6
  55. package/esm2022/lib/dialogs/dialog-factorinformation/dialog-factorinformation.module.mjs +4 -4
  56. package/esm2022/lib/dialogs/dialog-resourcedownload/dialog-resourcedownload.component.mjs +6 -6
  57. package/esm2022/lib/dialogs/dialog-resourcedownload/dialog-resourcedownload.module.mjs +4 -4
  58. package/esm2022/lib/dialogs/dialog-resourcedownload/resourceDownload.service.mjs +3 -3
  59. package/esm2022/lib/dialogs/dialog-subscribe/dialog-subscribe.component.mjs +3 -3
  60. package/esm2022/lib/dialogs/dialog-subscribe/dialog-subscribe.directive.mjs +3 -3
  61. package/esm2022/lib/dialogs/dialog-subscribe/dialog-subscribe.module.mjs +4 -4
  62. package/esm2022/lib/dialogs/dialog-support/contactService.service.mjs +3 -3
  63. package/esm2022/lib/dialogs/dialog-support/dialog-support.component.mjs +3 -3
  64. package/esm2022/lib/dialogs/dialog-support/dialog-support.directive.mjs +15 -15
  65. package/esm2022/lib/dialogs/dialog-support/dialog-support.module.mjs +4 -4
  66. package/esm2022/lib/directives/backbutton/backbutton.directive.mjs +3 -3
  67. package/esm2022/lib/directives/backbutton/backbutton.module.mjs +4 -4
  68. package/esm2022/lib/directives/guards/guards.module.mjs +4 -4
  69. package/esm2022/lib/directives/guards/validChangeTokenGuard.mjs +3 -3
  70. package/esm2022/lib/directives/guards/validKeyGuard.mjs +3 -3
  71. package/esm2022/lib/directives/guards/validSnapshotKeyGuard.mjs +3 -3
  72. package/esm2022/lib/directives/guards/validTeamKeyGuard.mjs +3 -3
  73. package/esm2022/lib/errorhandling/errorHandler.mjs +3 -3
  74. package/esm2022/lib/errorhandling/errorService.module.mjs +4 -4
  75. package/esm2022/lib/errorhandling/errorServiceConfig.mjs +3 -3
  76. package/esm2022/lib/guides/components/imageslider/imageslider.component.mjs +3 -3
  77. package/esm2022/lib/guides/components/resumeguidehover/resumeguidehover.component.mjs +3 -3
  78. package/esm2022/lib/guides/dialogs/dialog-guide/dialog-guide.component.mjs +6 -6
  79. package/esm2022/lib/guides/dialogs/dialog-guides/dialog-guides.component.mjs +6 -6
  80. package/esm2022/lib/guides/directives/startguide/startguide.directive.mjs +3 -3
  81. package/esm2022/lib/guides/guides.module.mjs +4 -4
  82. package/esm2022/lib/guides/services/guidePopup.service.mjs +3 -3
  83. package/esm2022/lib/guides/services/guideStateInBackEnd.service.mjs +3 -3
  84. package/esm2022/lib/guides/services/guideStateInBrowser.service.mjs +3 -3
  85. package/esm2022/lib/guides/services/guidesClientConfig.mjs +3 -3
  86. package/esm2022/lib/pipes/callback/callback.module.mjs +4 -4
  87. package/esm2022/lib/pipes/callback/callback.pipe.mjs +3 -3
  88. package/esm2022/lib/pipes/dateRange/ngx-dateRange.module.mjs +4 -4
  89. package/esm2022/lib/pipes/dateRange/ngx-dateRange.pipe.mjs +3 -3
  90. package/esm2022/lib/pipes/segmentName/segmentName.module.mjs +4 -4
  91. package/esm2022/lib/pipes/segmentName/segmentName.pipe.mjs +3 -3
  92. package/esm2022/lib/pipes/slugify/ngx-slugify.module.mjs +4 -4
  93. package/esm2022/lib/pipes/slugify/ngx-slugify.pipe.mjs +3 -3
  94. package/esm2022/lib/results/components/age-indicator/age-indicator.component.mjs +3 -3
  95. package/esm2022/lib/results/components/arrow/arrow.component.mjs +3 -3
  96. package/esm2022/lib/results/components/badge/badge.component.mjs +3 -3
  97. package/esm2022/lib/results/components/badge-progression/badge-progression.component.mjs +3 -3
  98. package/esm2022/lib/results/components/badge-streak/badge-streak.component.mjs +3 -3
  99. package/esm2022/lib/results/components/badges/badges.component.mjs +3 -3
  100. package/esm2022/lib/results/components/benchmark-indicator/benchmark-indicator.component.mjs +3 -3
  101. package/esm2022/lib/results/components/coachingcenter-teaser/coachingcenter-teaser.component.mjs +3 -3
  102. package/esm2022/lib/results/components/delta-arrow/delta-arrow.component.mjs +3 -3
  103. package/esm2022/lib/results/components/doityourself/doityourself.component.mjs +3 -3
  104. package/esm2022/lib/results/components/doityourselfworkshops/doityourselfworkshops.component.mjs +3 -3
  105. package/esm2022/lib/results/components/factor-axis/factor-axis.component.mjs +3 -3
  106. package/esm2022/lib/results/components/factors/factors.component.mjs +3 -3
  107. package/esm2022/lib/results/components/filter-tags/filter-tags.component.mjs +3 -3
  108. package/esm2022/lib/results/components/focusareas/focusareas.component.mjs +3 -3
  109. package/esm2022/lib/results/components/footer/footer.component.mjs +3 -3
  110. package/esm2022/lib/results/components/impact-indicator/impact-indicator.component.mjs +3 -3
  111. package/esm2022/lib/results/components/liberatorkits/liberatorkits.component.mjs +3 -3
  112. package/esm2022/lib/results/components/limitationsapply/limitationsapply.component.mjs +3 -3
  113. package/esm2022/lib/results/components/model/model.component.mjs +3 -3
  114. package/esm2022/lib/results/components/model-factor/model-factor.component.mjs +3 -3
  115. package/esm2022/lib/results/components/model-factor-breakdown/model-factor-breakdown.component.mjs +3 -3
  116. package/esm2022/lib/results/components/model-switcher/model-switcher.component.mjs +3 -3
  117. package/esm2022/lib/results/components/nav-button/nav-button.component.mjs +3 -3
  118. package/esm2022/lib/results/components/participants/participants.component.mjs +3 -3
  119. package/esm2022/lib/results/components/quicktips/quicktips.component.mjs +3 -3
  120. package/esm2022/lib/results/components/recommendation/recommendation.component.mjs +3 -3
  121. package/esm2022/lib/results/components/recommendations/recommendations.component.mjs +3 -3
  122. package/esm2022/lib/results/components/research/research.component.mjs +3 -3
  123. package/esm2022/lib/results/components/roadmap/roadmap.component.mjs +3 -3
  124. package/esm2022/lib/results/components/teamdashboard-teaser/teamdashboard-teaser.component.mjs +3 -3
  125. package/esm2022/lib/results/components/teameffectiveness/teameffectiveness.component.mjs +3 -3
  126. package/esm2022/lib/results/components/termsupdated/termsupdated.component.mjs +3 -3
  127. package/esm2022/lib/results/components/tip-badge/tip-badge.component.mjs +3 -3
  128. package/esm2022/lib/results/components/trends/trends.component.mjs +3 -3
  129. package/esm2022/lib/results/components/update-in-progress/update-in-progress.component.mjs +3 -3
  130. package/esm2022/lib/results/components/userprofile/userprofile.component.mjs +3 -3
  131. package/esm2022/lib/results/components/video/video.component.mjs +3 -3
  132. package/esm2022/lib/results/components/widget-factorscore/widget-factorscore.component.mjs +3 -3
  133. package/esm2022/lib/results/components/widget-participationrate/widget-participationrate.component.mjs +3 -3
  134. package/esm2022/lib/results/dialogs/dialog-export-factorscores/dialog-export-factorscores.component.mjs +3 -3
  135. package/esm2022/lib/results/dialogs/dialog-export-factorscores/dialog-export-factorscores.directive.mjs +3 -3
  136. package/esm2022/lib/results/dialogs/dialog-export-teamlist/dialog-export-teamlist.component.mjs +3 -3
  137. package/esm2022/lib/results/dialogs/dialog-export-teamlist/dialog-export-teamlist.directive.mjs +3 -3
  138. package/esm2022/lib/results/dialogs/dialog-modelfilter/dialog-modelfilter.component.mjs +6 -6
  139. package/esm2022/lib/results/dialogs/dialog-notes/dialog-notes.component.mjs +6 -6
  140. package/esm2022/lib/results/dialogs/dialog-settings/dialog-settings.component.mjs +13 -14
  141. package/esm2022/lib/results/results.module.mjs +4 -4
  142. package/esm2022/lib/results/services/account.service.mjs +3 -3
  143. package/esm2022/lib/results/services/dimissPopupService.mjs +3 -3
  144. package/esm2022/lib/results/services/exportService.mjs +3 -3
  145. package/esm2022/lib/results/services/factorService.mjs +3 -3
  146. package/esm2022/lib/results/services/resultsClientConfig.mjs +3 -3
  147. package/esm2022/lib/results/services/terms.service.mjs +3 -3
  148. package/esm2022/lib/results/services/trend.service.mjs +3 -3
  149. package/esm2022/lib/results/services/userProfile.service.mjs +3 -3
  150. package/esm2022/lib/viewModel/reloadStrategies/noReloadStrategy.mjs +3 -3
  151. package/esm2022/lib/viewModel/reloadStrategies/reloadOnPushStrategy.mjs +3 -3
  152. package/esm2022/lib/viewModel/services/sessionIdInterceptor.service.mjs +3 -3
  153. package/esm2022/lib/viewModel/services/sessionIdProvider.service.mjs +3 -3
  154. package/esm2022/lib/viewModel/userSettings.service.mjs +3 -3
  155. package/esm2022/lib/viewModel/viewModelState.module.mjs +4 -4
  156. package/esm2022/lib/viewModel/viewModelStateConfig.mjs +3 -3
  157. package/fesm2022/the-liberators-ngx-scrumteamsurvey-tools.mjs +540 -540
  158. package/fesm2022/the-liberators-ngx-scrumteamsurvey-tools.mjs.map +1 -1
  159. package/package.json +7 -7
@@ -20,10 +20,10 @@ export class ModelSwitcherComponent extends ComponentWithViewStateBase {
20
20
  this.canSwitchModels = data.factorScores.modelStructure.models.length > 1;
21
21
  }
22
22
  ;
23
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ModelSwitcherComponent, deps: [{ token: VIEWSTATE_PROVIDER }, { token: i1.MatSnackBar }], target: i0.ɵɵFactoryTarget.Component }); }
24
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: ModelSwitcherComponent, selector: "model-switcher", usesInheritance: true, ngImport: i0, template: "<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", styles: [".smallTextUppercase{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%}.modelswitcher{margin-bottom:15px;display:flex;cursor:pointer}.modelswitcher .icon{margin-right:5px;vertical-align:middle}.modelswitcher div{vertical-align:middle;letter-spacing:.04rem;white-space:pre;text-transform:uppercase;font-size:15px;padding:2px 5px;line-height:120%;display:inline-block;font-weight:600}.modelswitcher .prefix{background:#fff73f;padding-right:10px}.modelswitcher .activemodel{padding-left:10px;background:#2f2f2f;color:#fff}.modelswitcher .activemodel .icon{margin-left:5px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.OpenModelFilterDialog, selector: "[modelFilterDialog]" }] }); }
23
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: ModelSwitcherComponent, deps: [{ token: VIEWSTATE_PROVIDER }, { token: i1.MatSnackBar }], target: i0.ɵɵFactoryTarget.Component }); }
24
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.4", type: ModelSwitcherComponent, selector: "model-switcher", usesInheritance: true, ngImport: i0, template: "<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", styles: [".smallTextUppercase{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%}.modelswitcher{margin-bottom:15px;display:flex;cursor:pointer}.modelswitcher .icon{margin-right:5px;vertical-align:middle}.modelswitcher div{vertical-align:middle;letter-spacing:.04rem;white-space:pre;text-transform:uppercase;font-size:15px;padding:2px 5px;line-height:120%;display:inline-block;font-weight:600}.modelswitcher .prefix{background:#fff73f;padding-right:10px}.modelswitcher .activemodel{padding-left:10px;background:#2f2f2f;color:#fff}.modelswitcher .activemodel .icon{margin-left:5px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.OpenModelFilterDialog, selector: "[modelFilterDialog]" }] }); }
25
25
  }
26
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ModelSwitcherComponent, decorators: [{
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: ModelSwitcherComponent, decorators: [{
27
27
  type: Component,
28
28
  args: [{ selector: 'model-switcher', template: "<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", styles: [".smallTextUppercase{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%}.modelswitcher{margin-bottom:15px;display:flex;cursor:pointer}.modelswitcher .icon{margin-right:5px;vertical-align:middle}.modelswitcher div{vertical-align:middle;letter-spacing:.04rem;white-space:pre;text-transform:uppercase;font-size:15px;padding:2px 5px;line-height:120%;display:inline-block;font-weight:600}.modelswitcher .prefix{background:#fff73f;padding-right:10px}.modelswitcher .activemodel{padding-left:10px;background:#2f2f2f;color:#fff}.modelswitcher .activemodel .icon{margin-left:5px}\n"] }]
29
29
  }], ctorParameters: () => [{ type: i4.ViewModelStateBase, decorators: [{
@@ -55,10 +55,10 @@ export class NavButtonComponent {
55
55
  this.subscription.unsubscribe();
56
56
  }
57
57
  }
58
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: NavButtonComponent, deps: [{ token: i1.Router }, { token: i2.BrandingProvider }], target: i0.ɵɵFactoryTarget.Component }); }
59
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: NavButtonComponent, selector: "nav-button", inputs: { routerLink: "routerLink", icon: "icon", name: "name", alertCount: "alertCount" }, host: { listeners: { "mouseover": "mouseover()", "mouseleave": "mouseleave()" }, properties: { "style.background-color": "this.backgroundColor", "style.color": "this.color" } }, ngImport: i0, template: "<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", styles: [".smallTextUppercase{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%}.brandeditem{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;font-family:StevieSans,sans-serif;font-weight:600;font-size:12px;line-height:100%;text-align:center;letter-spacing:.05em;text-transform:uppercase;width:78px;height:78px;margin:auto auto 10px;cursor:pointer;display:flex;flex-wrap:wrap;align-content:center;justify-content:center;position:relative;flex-direction:column}@media only screen and (max-width: 1320px){.brandeditem{margin-bottom:0;width:70px;height:60px;font-size:11px}}@media only screen and (max-height: 900px){.brandeditem{margin-bottom:0;width:70px;height:60px;font-size:11px}}.brandeditem .count{border-radius:15px;position:absolute;right:15px;top:0;background:#ef6f00;color:#fff;font-weight:600;font-family:TabletGothicCompressed-Regular,sans-serif;font-size:16px;width:20px}.brandeditem a{color:#979797;text-decoration:none}.brandeditem .icon{width:100%;display:block;font-size:42px;margin-bottom:5px;color:#979797;-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out}@media only screen and (max-width: 1320px){.brandeditem .icon{font-size:30px}}@media only screen and (max-height: 900px){.brandeditem .icon{font-size:30px}}.brandeditem .new,.brandeditem .counter{text-transform:uppercase;font-family:StevieSans,sans-serif;font-size:10pt;background:#ef6f00;position:absolute;top:0;right:0;color:#fff;padding:0 5px}.brandeditem svg{padding-top:5px;margin:auto auto 8px;display:block;width:40px}.brandeditem svg line,.brandeditem svg circle,.brandeditem svg polyline,.brandeditem svg path,.brandeditem svg rect,.brandeditem svg g{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;stroke:#979797;stroke-width:16}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] }); }
58
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NavButtonComponent, deps: [{ token: i1.Router }, { token: i2.BrandingProvider }], target: i0.ɵɵFactoryTarget.Component }); }
59
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.4", type: NavButtonComponent, selector: "nav-button", inputs: { routerLink: "routerLink", icon: "icon", name: "name", alertCount: "alertCount" }, host: { listeners: { "mouseover": "mouseover()", "mouseleave": "mouseleave()" }, properties: { "style.background-color": "this.backgroundColor", "style.color": "this.color" } }, ngImport: i0, template: "<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", styles: [".smallTextUppercase{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%}.brandeditem{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;font-family:StevieSans,sans-serif;font-weight:600;font-size:12px;line-height:100%;text-align:center;letter-spacing:.05em;text-transform:uppercase;width:78px;height:78px;margin:auto auto 10px;cursor:pointer;display:flex;flex-wrap:wrap;align-content:center;justify-content:center;position:relative;flex-direction:column}@media only screen and (max-width: 1320px){.brandeditem{margin-bottom:0;width:70px;height:60px;font-size:11px}}@media only screen and (max-height: 900px){.brandeditem{margin-bottom:0;width:70px;height:60px;font-size:11px}}.brandeditem .count{border-radius:15px;position:absolute;right:15px;top:0;background:#ef6f00;color:#fff;font-weight:600;font-family:TabletGothicCompressed-Regular,sans-serif;font-size:16px;width:20px}.brandeditem a{color:#979797;text-decoration:none}.brandeditem .icon{width:100%;display:block;font-size:42px;margin-bottom:5px;color:#979797;-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out}@media only screen and (max-width: 1320px){.brandeditem .icon{font-size:30px}}@media only screen and (max-height: 900px){.brandeditem .icon{font-size:30px}}.brandeditem .new,.brandeditem .counter{text-transform:uppercase;font-family:StevieSans,sans-serif;font-size:10pt;background:#ef6f00;position:absolute;top:0;right:0;color:#fff;padding:0 5px}.brandeditem svg{padding-top:5px;margin:auto auto 8px;display:block;width:40px}.brandeditem svg line,.brandeditem svg circle,.brandeditem svg polyline,.brandeditem svg path,.brandeditem svg rect,.brandeditem svg g{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;stroke:#979797;stroke-width:16}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] }); }
60
60
  }
61
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: NavButtonComponent, decorators: [{
61
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NavButtonComponent, decorators: [{
62
62
  type: Component,
63
63
  args: [{ selector: 'nav-button', template: "<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", styles: [".smallTextUppercase{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%}.brandeditem{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;font-family:StevieSans,sans-serif;font-weight:600;font-size:12px;line-height:100%;text-align:center;letter-spacing:.05em;text-transform:uppercase;width:78px;height:78px;margin:auto auto 10px;cursor:pointer;display:flex;flex-wrap:wrap;align-content:center;justify-content:center;position:relative;flex-direction:column}@media only screen and (max-width: 1320px){.brandeditem{margin-bottom:0;width:70px;height:60px;font-size:11px}}@media only screen and (max-height: 900px){.brandeditem{margin-bottom:0;width:70px;height:60px;font-size:11px}}.brandeditem .count{border-radius:15px;position:absolute;right:15px;top:0;background:#ef6f00;color:#fff;font-weight:600;font-family:TabletGothicCompressed-Regular,sans-serif;font-size:16px;width:20px}.brandeditem a{color:#979797;text-decoration:none}.brandeditem .icon{width:100%;display:block;font-size:42px;margin-bottom:5px;color:#979797;-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out}@media only screen and (max-width: 1320px){.brandeditem .icon{font-size:30px}}@media only screen and (max-height: 900px){.brandeditem .icon{font-size:30px}}.brandeditem .new,.brandeditem .counter{text-transform:uppercase;font-family:StevieSans,sans-serif;font-size:10pt;background:#ef6f00;position:absolute;top:0;right:0;color:#fff;padding:0 5px}.brandeditem svg{padding-top:5px;margin:auto auto 8px;display:block;width:40px}.brandeditem svg line,.brandeditem svg circle,.brandeditem svg polyline,.brandeditem svg path,.brandeditem svg rect,.brandeditem svg g{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;stroke:#979797;stroke-width:16}\n"] }]
64
64
  }], ctorParameters: () => [{ type: i1.Router }, { type: i2.BrandingProvider }], propDecorators: { routerLink: [{
@@ -63,10 +63,10 @@ export class ParticipantsComponent extends ComponentWithViewStateBase {
63
63
  }
64
64
  }
65
65
  ;
66
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ParticipantsComponent, deps: [{ token: VIEWSTATE_PROVIDER }, { token: i1.MatSnackBar }, { token: i2.Clipboard }], target: i0.ɵɵFactoryTarget.Component }); }
67
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: ParticipantsComponent, selector: "participants", usesInheritance: true, ngImport: i0, template: "<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 have 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", styles: [".smallTextUppercase{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%}.wirebox .content .closed{margin-top:15px;background:#f0f0f0;padding:10px;margin-bottom:0}.wirebox .content .segment{margin-bottom:5px}.wirebox .content .segment .digit{float:right}.wirebox .bottom{padding-bottom:0}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "pipe", type: i3.DatePipe, name: "date" }] }); }
66
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: ParticipantsComponent, deps: [{ token: VIEWSTATE_PROVIDER }, { token: i1.MatSnackBar }, { token: i2.Clipboard }], target: i0.ɵɵFactoryTarget.Component }); }
67
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.4", type: ParticipantsComponent, selector: "participants", usesInheritance: true, ngImport: i0, template: "<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 have 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", styles: [".smallTextUppercase{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%}.wirebox .content .closed{margin-top:15px;background:#f0f0f0;padding:10px;margin-bottom:0}.wirebox .content .segment{margin-bottom:5px}.wirebox .content .segment .digit{float:right}.wirebox .bottom{padding-bottom:0}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "pipe", type: i3.DatePipe, name: "date" }] }); }
68
68
  }
69
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ParticipantsComponent, decorators: [{
69
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: ParticipantsComponent, decorators: [{
70
70
  type: Component,
71
71
  args: [{ selector: 'participants', template: "<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 have 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", styles: [".smallTextUppercase{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%}.wirebox .content .closed{margin-top:15px;background:#f0f0f0;padding:10px;margin-bottom:0}.wirebox .content .segment{margin-bottom:5px}.wirebox .content .segment .digit{float:right}.wirebox .bottom{padding-bottom:0}\n"] }]
72
72
  }], ctorParameters: () => [{ type: i5.ViewModelStateBase, decorators: [{
@@ -60,10 +60,10 @@ export class QuickTipsComponent extends ComponentWithViewStateBase {
60
60
  this.tipCount = this.quickTips.length;
61
61
  }
62
62
  ;
63
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: QuickTipsComponent, deps: [{ token: VIEWSTATE_PROVIDER }, { token: i1.MatSnackBar }], target: i0.ɵɵFactoryTarget.Component }); }
64
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: QuickTipsComponent, selector: "quicktips", inputs: { dimensionKey: "dimensionKey", extraClass: "extraClass" }, usesInheritance: true, ngImport: i0, template: "<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", styles: [".smallTextUppercase{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%}.quicktips{margin-top:15px}.quicktips .quicktips-container{display:flex;background:#f0f0f0;padding:20px;justify-content:space-between}.quicktips .quicktips-container .back,.quicktips .quicktips-container .forward{flex:auto;cursor:pointer;align-self:baseline}.quicktips .quicktips-container .back .back,.quicktips .quicktips-container .forward .back{text-align:left;margin-right:15px}.quicktips .quicktips-container .back .forward,.quicktips .quicktips-container .forward .forward{text-align:right;margin-left:15px}.quicktips .quicktips-container .back a,.quicktips .quicktips-container .forward a{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out}.quicktips .quicktips-container .back a:hover,.quicktips .quicktips-container .forward a:hover{text-decoration:none}.quicktips .quicktips-container .quicktip{flex:100%;margin-bottom:0}.quicktips .quicktips-container .quicktip .quicktip-description{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%}.quicktips .quicktips-container .quicktip .link{margin-top:5px;margin-bottom:0;font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%}.quicktips .quicktips-container .quicktip .link .icon{font-weight:700;margin:0 10px 0 0;font-size:20px}.quicktips .quicktips-container .quicktip .link a{font-weight:700}.quicktips.quicktips-popover .quicktips-container{background:none;padding:0}.quicktips.quicktips-popover .quicktips-container .quicktip.subscribe{padding:15px;background:#fff73f;color:#2f2f2f}.quicktips.quicktips-popover .quicktips-container .quicktip.subscribe .link{color:#2f2f2f!important}.quicktips.quicktips-popover .quicktips-container .quicktip.subscribe .link a,.quicktips.quicktips-popover .quicktips-container .quicktip.subscribe .link icon{color:#2f2f2f!important;font-weight:600}.quicktips.quicktips-popover .quicktips-container .quicktip .link{color:#fff73f}.quicktips.quicktips-popover .quicktips-container .quicktip .link .icon{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%}.quicktips.quicktips-popover .quicktips-container .quicktip .link a{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;color:#fff73f}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i4.OpenAddActionDialogDirective, selector: "[addActionDialog]", inputs: ["prefill"] }, { kind: "directive", type: i5.OpenSubscribeDialogDirective, selector: "[subscribeDialog]" }] }); }
63
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: QuickTipsComponent, deps: [{ token: VIEWSTATE_PROVIDER }, { token: i1.MatSnackBar }], target: i0.ɵɵFactoryTarget.Component }); }
64
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.4", type: QuickTipsComponent, selector: "quicktips", inputs: { dimensionKey: "dimensionKey", extraClass: "extraClass" }, usesInheritance: true, ngImport: i0, template: "<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", styles: [".smallTextUppercase{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%}.quicktips{margin-top:15px}.quicktips .quicktips-container{display:flex;background:#f0f0f0;padding:20px;justify-content:space-between}.quicktips .quicktips-container .back,.quicktips .quicktips-container .forward{flex:auto;cursor:pointer;align-self:baseline}.quicktips .quicktips-container .back .back,.quicktips .quicktips-container .forward .back{text-align:left;margin-right:15px}.quicktips .quicktips-container .back .forward,.quicktips .quicktips-container .forward .forward{text-align:right;margin-left:15px}.quicktips .quicktips-container .back a,.quicktips .quicktips-container .forward a{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out}.quicktips .quicktips-container .back a:hover,.quicktips .quicktips-container .forward a:hover{text-decoration:none}.quicktips .quicktips-container .quicktip{flex:100%;margin-bottom:0}.quicktips .quicktips-container .quicktip .quicktip-description{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%}.quicktips .quicktips-container .quicktip .link{margin-top:5px;margin-bottom:0;font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%}.quicktips .quicktips-container .quicktip .link .icon{font-weight:700;margin:0 10px 0 0;font-size:20px}.quicktips .quicktips-container .quicktip .link a{font-weight:700}.quicktips.quicktips-popover .quicktips-container{background:none;padding:0}.quicktips.quicktips-popover .quicktips-container .quicktip.subscribe{padding:15px;background:#fff73f;color:#2f2f2f}.quicktips.quicktips-popover .quicktips-container .quicktip.subscribe .link{color:#2f2f2f!important}.quicktips.quicktips-popover .quicktips-container .quicktip.subscribe .link a,.quicktips.quicktips-popover .quicktips-container .quicktip.subscribe .link icon{color:#2f2f2f!important;font-weight:600}.quicktips.quicktips-popover .quicktips-container .quicktip .link{color:#fff73f}.quicktips.quicktips-popover .quicktips-container .quicktip .link .icon{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%}.quicktips.quicktips-popover .quicktips-container .quicktip .link a{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;color:#fff73f}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i4.OpenAddActionDialogDirective, selector: "[addActionDialog]", inputs: ["prefill"] }, { kind: "directive", type: i5.OpenSubscribeDialogDirective, selector: "[subscribeDialog]" }] }); }
65
65
  }
66
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: QuickTipsComponent, decorators: [{
66
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: QuickTipsComponent, decorators: [{
67
67
  type: Component,
68
68
  args: [{ selector: 'quicktips', template: "<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", styles: [".smallTextUppercase{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%}.quicktips{margin-top:15px}.quicktips .quicktips-container{display:flex;background:#f0f0f0;padding:20px;justify-content:space-between}.quicktips .quicktips-container .back,.quicktips .quicktips-container .forward{flex:auto;cursor:pointer;align-self:baseline}.quicktips .quicktips-container .back .back,.quicktips .quicktips-container .forward .back{text-align:left;margin-right:15px}.quicktips .quicktips-container .back .forward,.quicktips .quicktips-container .forward .forward{text-align:right;margin-left:15px}.quicktips .quicktips-container .back a,.quicktips .quicktips-container .forward a{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out}.quicktips .quicktips-container .back a:hover,.quicktips .quicktips-container .forward a:hover{text-decoration:none}.quicktips .quicktips-container .quicktip{flex:100%;margin-bottom:0}.quicktips .quicktips-container .quicktip .quicktip-description{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%}.quicktips .quicktips-container .quicktip .link{margin-top:5px;margin-bottom:0;font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%}.quicktips .quicktips-container .quicktip .link .icon{font-weight:700;margin:0 10px 0 0;font-size:20px}.quicktips .quicktips-container .quicktip .link a{font-weight:700}.quicktips.quicktips-popover .quicktips-container{background:none;padding:0}.quicktips.quicktips-popover .quicktips-container .quicktip.subscribe{padding:15px;background:#fff73f;color:#2f2f2f}.quicktips.quicktips-popover .quicktips-container .quicktip.subscribe .link{color:#2f2f2f!important}.quicktips.quicktips-popover .quicktips-container .quicktip.subscribe .link a,.quicktips.quicktips-popover .quicktips-container .quicktip.subscribe .link icon{color:#2f2f2f!important;font-weight:600}.quicktips.quicktips-popover .quicktips-container .quicktip .link{color:#fff73f}.quicktips.quicktips-popover .quicktips-container .quicktip .link .icon{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%}.quicktips.quicktips-popover .quicktips-container .quicktip .link a{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;color:#fff73f}\n"] }]
69
69
  }], ctorParameters: () => [{ type: i6.ViewModelStateBase, decorators: [{
@@ -38,10 +38,10 @@ export class RecommendationComponent extends ComponentWithViewStateBase {
38
38
  this.model = data.factorScores.modelStructure;
39
39
  }
40
40
  ;
41
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: RecommendationComponent, deps: [{ token: VIEWSTATE_PROVIDER }, { token: i1.MatSnackBar }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Component }); }
42
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: RecommendationComponent, selector: "recommendation", inputs: { item: "item" }, usesInheritance: true, ngImport: i0, template: "<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", styles: [".smallTextUppercase{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%}.tip{display:flex;flex-direction:column}.tip.index1 .top .name .index,.tip.index2 .top .name .index,.tip.index3 .top .name .index{background:#ef4f9f;color:#fff}.tip .top{padding-bottom:0!important}.tip .top .name{display:flex;align-items:center}.tip .top .name h3{flex:auto;font-style:normal;font-weight:600;font-size:30px;line-height:30px}.tip .top .name .index{width:50px;min-width:50px;height:50px;min-height:50px;display:flex;justify-content:center;align-items:center;border-radius:25px;background:#f0f0f0;margin-right:15px;font-weight:600;font-family:StevieSans,sans-serif}.tip .top .deltas{margin-bottom:15px}.tip .bottom .titleandaction{cursor:pointer}.tip .summary{margin-top:15px;margin-bottom:15px}.tip .chunk{margin-bottom:30px}.tip .chunk:last-of-type{margin-bottom:0}.tip .chunk p{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;line-height:140%}.tip .chunk ul{line-height:130%}.tip .chunk ul li a{text-decoration:none;font-weight:600}.tip .chunk ul li .icon{margin-left:4px;vertical-align:middle}.tip .expand .icon,.tip .unexpand .icon{font-size:28px;vertical-align:middle}.tip .resources h3{margin-top:15px;margin-bottom:15px}.tip .quicktips{margin-top:30px}.tip .quicktips h3{font-weight:700!important;font-size:15px!important}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i4.OpenFactorInformationDialogDirective, selector: "[factorInformationDialog]", inputs: ["factor"] }, { kind: "component", type: i5.DeltaArrowComponent, selector: "delta-arrow", inputs: ["factorScore", "delta", "noDataIndicator"] }, { kind: "component", type: i6.BenchmarkIndicatorComponent, selector: "benchmark-indicator", inputs: ["factorScore"] }, { kind: "component", type: i7.ImpactIndicatorComponent, selector: "impact-indicator", inputs: ["factorScore"] }, { kind: "component", type: i8.QuickTipsComponent, selector: "quicktips", inputs: ["dimensionKey", "extraClass"] }, { kind: "component", type: i9.DoItYourselfWorkshopsComponent, selector: "doityourselfworkshops", inputs: ["factorScore", "resources"] }] }); }
41
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: RecommendationComponent, deps: [{ token: VIEWSTATE_PROVIDER }, { token: i1.MatSnackBar }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Component }); }
42
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.4", type: RecommendationComponent, selector: "recommendation", inputs: { item: "item" }, usesInheritance: true, ngImport: i0, template: "<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", styles: [".smallTextUppercase{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%}.tip{display:flex;flex-direction:column}.tip.index1 .top .name .index,.tip.index2 .top .name .index,.tip.index3 .top .name .index{background:#ef4f9f;color:#fff}.tip .top{padding-bottom:0!important}.tip .top .name{display:flex;align-items:center}.tip .top .name h3{flex:auto;font-style:normal;font-weight:600;font-size:30px;line-height:30px}.tip .top .name .index{width:50px;min-width:50px;height:50px;min-height:50px;display:flex;justify-content:center;align-items:center;border-radius:25px;background:#f0f0f0;margin-right:15px;font-weight:600;font-family:StevieSans,sans-serif}.tip .top .deltas{margin-bottom:15px}.tip .bottom .titleandaction{cursor:pointer}.tip .summary{margin-top:15px;margin-bottom:15px}.tip .chunk{margin-bottom:30px}.tip .chunk:last-of-type{margin-bottom:0}.tip .chunk p{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;line-height:140%}.tip .chunk ul{line-height:130%}.tip .chunk ul li a{text-decoration:none;font-weight:600}.tip .chunk ul li .icon{margin-left:4px;vertical-align:middle}.tip .expand .icon,.tip .unexpand .icon{font-size:28px;vertical-align:middle}.tip .resources h3{margin-top:15px;margin-bottom:15px}.tip .quicktips{margin-top:30px}.tip .quicktips h3{font-weight:700!important;font-size:15px!important}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i4.OpenFactorInformationDialogDirective, selector: "[factorInformationDialog]", inputs: ["factor"] }, { kind: "component", type: i5.DeltaArrowComponent, selector: "delta-arrow", inputs: ["factorScore", "delta", "noDataIndicator"] }, { kind: "component", type: i6.BenchmarkIndicatorComponent, selector: "benchmark-indicator", inputs: ["factorScore"] }, { kind: "component", type: i7.ImpactIndicatorComponent, selector: "impact-indicator", inputs: ["factorScore"] }, { kind: "component", type: i8.QuickTipsComponent, selector: "quicktips", inputs: ["dimensionKey", "extraClass"] }, { kind: "component", type: i9.DoItYourselfWorkshopsComponent, selector: "doityourselfworkshops", inputs: ["factorScore", "resources"] }] }); }
43
43
  }
44
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: RecommendationComponent, decorators: [{
44
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: RecommendationComponent, decorators: [{
45
45
  type: Component,
46
46
  args: [{ selector: 'recommendation', template: "<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", styles: [".smallTextUppercase{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%}.tip{display:flex;flex-direction:column}.tip.index1 .top .name .index,.tip.index2 .top .name .index,.tip.index3 .top .name .index{background:#ef4f9f;color:#fff}.tip .top{padding-bottom:0!important}.tip .top .name{display:flex;align-items:center}.tip .top .name h3{flex:auto;font-style:normal;font-weight:600;font-size:30px;line-height:30px}.tip .top .name .index{width:50px;min-width:50px;height:50px;min-height:50px;display:flex;justify-content:center;align-items:center;border-radius:25px;background:#f0f0f0;margin-right:15px;font-weight:600;font-family:StevieSans,sans-serif}.tip .top .deltas{margin-bottom:15px}.tip .bottom .titleandaction{cursor:pointer}.tip .summary{margin-top:15px;margin-bottom:15px}.tip .chunk{margin-bottom:30px}.tip .chunk:last-of-type{margin-bottom:0}.tip .chunk p{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;line-height:140%}.tip .chunk ul{line-height:130%}.tip .chunk ul li a{text-decoration:none;font-weight:600}.tip .chunk ul li .icon{margin-left:4px;vertical-align:middle}.tip .expand .icon,.tip .unexpand .icon{font-size:28px;vertical-align:middle}.tip .resources h3{margin-top:15px;margin-bottom:15px}.tip .quicktips{margin-top:30px}.tip .quicktips h3{font-weight:700!important;font-size:15px!important}\n"] }]
47
47
  }], ctorParameters: () => [{ type: i10.ViewModelStateBase, decorators: [{
@@ -40,10 +40,10 @@ export class RecommendationsComponent extends ComponentWithViewStateBase {
40
40
  }
41
41
  targetElement.scrollIntoView();
42
42
  }
43
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: RecommendationsComponent, deps: [{ token: VIEWSTATE_PROVIDER }, { token: i1.MatSnackBar }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Component }); }
44
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: RecommendationsComponent, selector: "recommendations", inputs: { limit: "limit", skip: "skip" }, usesInheritance: true, ngImport: i0, template: "<div class=\"tips\">\n <recommendation *ngFor=\"let item of recommendations\" [item]=\"item\"></recommendation>\n</div>\n", styles: [".smallTextUppercase{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%}.tips{grid-template-columns:repeat(3,1fr);grid-gap:30px}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i4.RecommendationComponent, selector: "recommendation", inputs: ["item"] }] }); }
43
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: RecommendationsComponent, deps: [{ token: VIEWSTATE_PROVIDER }, { token: i1.MatSnackBar }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Component }); }
44
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.4", type: RecommendationsComponent, selector: "recommendations", inputs: { limit: "limit", skip: "skip" }, usesInheritance: true, ngImport: i0, template: "<div class=\"tips\">\n <recommendation *ngFor=\"let item of recommendations\" [item]=\"item\"></recommendation>\n</div>\n", styles: [".smallTextUppercase{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%}.tips{grid-template-columns:repeat(3,1fr);grid-gap:30px}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i4.RecommendationComponent, selector: "recommendation", inputs: ["item"] }] }); }
45
45
  }
46
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: RecommendationsComponent, decorators: [{
46
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: RecommendationsComponent, decorators: [{
47
47
  type: Component,
48
48
  args: [{ selector: 'recommendations', template: "<div class=\"tips\">\n <recommendation *ngFor=\"let item of recommendations\" [item]=\"item\"></recommendation>\n</div>\n", styles: [".smallTextUppercase{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%}.tips{grid-template-columns:repeat(3,1fr);grid-gap:30px}\n"] }]
49
49
  }], ctorParameters: () => [{ type: i5.ViewModelStateBase, decorators: [{
@@ -6,10 +6,10 @@ export class ResearchComponent {
6
6
  }
7
7
  ngOnInit() {
8
8
  }
9
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ResearchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: ResearchComponent, selector: "research", ngImport: i0, template: "<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", styles: [".smallTextUppercase{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%}.box{background:#00af77}.box h3{margin-bottom:10px}.box a{color:#2f2f2f}\n"], dependencies: [{ kind: "directive", type: i1.BrandBackgroundDirective, selector: "[brandbackground]", inputs: ["palette"] }] }); }
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: ResearchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.4", type: ResearchComponent, selector: "research", ngImport: i0, template: "<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", styles: [".smallTextUppercase{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%}.box{background:#00af77}.box h3{margin-bottom:10px}.box a{color:#2f2f2f}\n"], dependencies: [{ kind: "directive", type: i1.BrandBackgroundDirective, selector: "[brandbackground]", inputs: ["palette"] }] }); }
11
11
  }
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ResearchComponent, decorators: [{
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: ResearchComponent, decorators: [{
13
13
  type: Component,
14
14
  args: [{ selector: 'research', template: "<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", styles: [".smallTextUppercase{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%}.box{background:#00af77}.box h3{margin-bottom:10px}.box a{color:#2f2f2f}\n"] }]
15
15
  }], ctorParameters: () => [] });
@@ -16,10 +16,10 @@ export class RoadmapComponent extends ComponentWithViewStateBase {
16
16
  this.show = data.userInfo.branding.isDefault;
17
17
  }
18
18
  ;
19
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: RoadmapComponent, deps: [{ token: VIEWSTATE_PROVIDER }, { token: i1.MatSnackBar }], target: i0.ɵɵFactoryTarget.Component }); }
20
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: RoadmapComponent, selector: "roadmap", usesInheritance: true, ngImport: i0, template: "<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\u00A0Program (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\u00A0Learning (in progress, Q2-4)\n </div>\n <div class=\"feature\">\n <span class=\"icon ph-circle\"></span> Transition Teamwork Model Out Of\u00A0Beta (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", styles: [".smallTextUppercase{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%}.roadmap{padding:20px;position:relative}.roadmap .close{position:absolute;top:15px;right:15px;font-size:30px;cursor:pointer}.roadmap .feature{display:flex;align-items:center;align-content:center}.roadmap .feature .icon{margin-right:15px}.roadmap .toolbar{margin-top:30px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.BrandBackgroundDirective, selector: "[brandbackground]", inputs: ["palette"] }] }); }
19
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: RoadmapComponent, deps: [{ token: VIEWSTATE_PROVIDER }, { token: i1.MatSnackBar }], target: i0.ɵɵFactoryTarget.Component }); }
20
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.4", type: RoadmapComponent, selector: "roadmap", usesInheritance: true, ngImport: i0, template: "<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\u00A0Program (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\u00A0Learning (in progress, Q2-4)\n </div>\n <div class=\"feature\">\n <span class=\"icon ph-circle\"></span> Transition Teamwork Model Out Of\u00A0Beta (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", styles: [".smallTextUppercase{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%}.roadmap{padding:20px;position:relative}.roadmap .close{position:absolute;top:15px;right:15px;font-size:30px;cursor:pointer}.roadmap .feature{display:flex;align-items:center;align-content:center}.roadmap .feature .icon{margin-right:15px}.roadmap .toolbar{margin-top:30px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.BrandBackgroundDirective, selector: "[brandbackground]", inputs: ["palette"] }] }); }
21
21
  }
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: RoadmapComponent, decorators: [{
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: RoadmapComponent, decorators: [{
23
23
  type: Component,
24
24
  args: [{ selector: 'roadmap', template: "<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\u00A0Program (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\u00A0Learning (in progress, Q2-4)\n </div>\n <div class=\"feature\">\n <span class=\"icon ph-circle\"></span> Transition Teamwork Model Out Of\u00A0Beta (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", styles: [".smallTextUppercase{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%}.roadmap{padding:20px;position:relative}.roadmap .close{position:absolute;top:15px;right:15px;font-size:30px;cursor:pointer}.roadmap .feature{display:flex;align-items:center;align-content:center}.roadmap .feature .icon{margin-right:15px}.roadmap .toolbar{margin-top:30px}\n"] }]
25
25
  }], ctorParameters: () => [{ type: i4.ViewModelStateBase, decorators: [{
@@ -18,10 +18,10 @@ export class TeamDashboardTeaserComponent extends ComponentWithViewStateBase {
18
18
  this.show = data.teamMetaData.subscriptionTier == SubscriptionTierEnum.Freemium;
19
19
  }
20
20
  ;
21
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: TeamDashboardTeaserComponent, deps: [{ token: VIEWSTATE_PROVIDER }, { token: i1.MatSnackBar }], target: i0.ɵɵFactoryTarget.Component }); }
22
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: TeamDashboardTeaserComponent, selector: "teamdashboard-teaser", usesInheritance: true, ngImport: i0, template: "<div class=\"box doityourself\" brandbackground [palette]=\"'neutral'\" *ngIf=\"show\">\n <img class=\"responsive\" src=\"assets/img/teamdashboard-teaser.jpg\" />\n <h3>Simply drive change with other teams</h3>\n <p>Improving is more fun together. Use our Teams Dashboard to learn from other teams, identify shared challenges and work together to overcome them It also simplifies inviting teams.</p>\n\n <div class=\"link\">\n <a [href]=\"subscribeUrl\" target=\"_blank\">Discover our 'Professional'-plan ></a>\n </div>\n</div>\n\n\n", styles: [".smallTextUppercase{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%}.box{background:#fff73f}.box h3{margin-bottom:15px}.box img{border:3px solid #2f2f2f}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.BrandBackgroundDirective, selector: "[brandbackground]", inputs: ["palette"] }] }); }
21
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: TeamDashboardTeaserComponent, deps: [{ token: VIEWSTATE_PROVIDER }, { token: i1.MatSnackBar }], target: i0.ɵɵFactoryTarget.Component }); }
22
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.4", type: TeamDashboardTeaserComponent, selector: "teamdashboard-teaser", usesInheritance: true, ngImport: i0, template: "<div class=\"box doityourself\" brandbackground [palette]=\"'neutral'\" *ngIf=\"show\">\n <img class=\"responsive\" src=\"assets/img/teamdashboard-teaser.jpg\" />\n <h3>Simply drive change with other teams</h3>\n <p>Improving is more fun together. Use our Teams Dashboard to learn from other teams, identify shared challenges and work together to overcome them It also simplifies inviting teams.</p>\n\n <div class=\"link\">\n <a [href]=\"subscribeUrl\" target=\"_blank\">Discover our 'Professional'-plan ></a>\n </div>\n</div>\n\n\n", styles: [".smallTextUppercase{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%}.box{background:#fff73f}.box h3{margin-bottom:15px}.box img{border:3px solid #2f2f2f}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.BrandBackgroundDirective, selector: "[brandbackground]", inputs: ["palette"] }] }); }
23
23
  }
24
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: TeamDashboardTeaserComponent, decorators: [{
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: TeamDashboardTeaserComponent, decorators: [{
25
25
  type: Component,
26
26
  args: [{ selector: 'teamdashboard-teaser', template: "<div class=\"box doityourself\" brandbackground [palette]=\"'neutral'\" *ngIf=\"show\">\n <img class=\"responsive\" src=\"assets/img/teamdashboard-teaser.jpg\" />\n <h3>Simply drive change with other teams</h3>\n <p>Improving is more fun together. Use our Teams Dashboard to learn from other teams, identify shared challenges and work together to overcome them It also simplifies inviting teams.</p>\n\n <div class=\"link\">\n <a [href]=\"subscribeUrl\" target=\"_blank\">Discover our 'Professional'-plan ></a>\n </div>\n</div>\n\n\n", styles: [".smallTextUppercase{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%}.box{background:#fff73f}.box h3{margin-bottom:15px}.box img{border:3px solid #2f2f2f}\n"] }]
27
27
  }], ctorParameters: () => [{ type: i4.ViewModelStateBase, decorators: [{
@@ -27,10 +27,10 @@ export class TeamEffectivenessComponent extends ComponentWithViewStateBase {
27
27
  }
28
28
  }
29
29
  ;
30
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: TeamEffectivenessComponent, deps: [{ token: VIEWSTATE_PROVIDER }, { token: i1.MatSnackBar }], target: i0.ɵɵFactoryTarget.Component }); }
31
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: TeamEffectivenessComponent, selector: "teameffectiveness", usesInheritance: true, ngImport: i0, template: "<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", styles: [".smallTextUppercase{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%}.box{background:#1f3f8f}.box h3{margin-bottom:10px;color:#fff}.box p{color:#fff}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i4.BrandBackgroundDirective, selector: "[brandbackground]", inputs: ["palette"] }, { kind: "pipe", type: i2.LowerCasePipe, name: "lowercase" }, { kind: "pipe", type: i2.DecimalPipe, name: "number" }] }); }
30
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: TeamEffectivenessComponent, deps: [{ token: VIEWSTATE_PROVIDER }, { token: i1.MatSnackBar }], target: i0.ɵɵFactoryTarget.Component }); }
31
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.4", type: TeamEffectivenessComponent, selector: "teameffectiveness", usesInheritance: true, ngImport: i0, template: "<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", styles: [".smallTextUppercase{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%}.box{background:#1f3f8f}.box h3{margin-bottom:10px;color:#fff}.box p{color:#fff}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i4.BrandBackgroundDirective, selector: "[brandbackground]", inputs: ["palette"] }, { kind: "pipe", type: i2.LowerCasePipe, name: "lowercase" }, { kind: "pipe", type: i2.DecimalPipe, name: "number" }] }); }
32
32
  }
33
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: TeamEffectivenessComponent, decorators: [{
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: TeamEffectivenessComponent, decorators: [{
34
34
  type: Component,
35
35
  args: [{ selector: 'teameffectiveness', template: "<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", styles: [".smallTextUppercase{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%}.box{background:#1f3f8f}.box h3{margin-bottom:10px;color:#fff}.box p{color:#fff}\n"] }]
36
36
  }], ctorParameters: () => [{ type: i5.ViewModelStateBase, decorators: [{
@@ -24,10 +24,10 @@ export class TermsUpdatedComponent extends ComponentWithViewStateBase {
24
24
  this.legal = data.userInfo.client.legal;
25
25
  }
26
26
  ;
27
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: TermsUpdatedComponent, deps: [{ token: i1.TermsService }, { token: VIEWSTATE_PROVIDER }, { token: i2.MatSnackBar }], target: i0.ɵɵFactoryTarget.Component }); }
28
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: TermsUpdatedComponent, selector: "termsupdated", usesInheritance: true, ngImport: i0, template: "<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", styles: [".smallTextUppercase{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%}.termsupdated{margin-top:30px;margin-left:30px;margin-right:30px;padding:20px;border:3px solid #f0f0f0}.termsupdated h3{margin-bottom:5px}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] }); }
27
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: TermsUpdatedComponent, deps: [{ token: i1.TermsService }, { token: VIEWSTATE_PROVIDER }, { token: i2.MatSnackBar }], target: i0.ɵɵFactoryTarget.Component }); }
28
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.4", type: TermsUpdatedComponent, selector: "termsupdated", usesInheritance: true, ngImport: i0, template: "<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", styles: [".smallTextUppercase{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%}.termsupdated{margin-top:30px;margin-left:30px;margin-right:30px;padding:20px;border:3px solid #f0f0f0}.termsupdated h3{margin-bottom:5px}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] }); }
29
29
  }
30
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: TermsUpdatedComponent, decorators: [{
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: TermsUpdatedComponent, decorators: [{
31
31
  type: Component,
32
32
  args: [{ selector: 'termsupdated', template: "<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", styles: [".smallTextUppercase{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%}.termsupdated{margin-top:30px;margin-left:30px;margin-right:30px;padding:20px;border:3px solid #f0f0f0}.termsupdated h3{margin-bottom:5px}\n"] }]
33
33
  }], ctorParameters: () => [{ type: i1.TermsService }, { type: i4.ViewModelStateBase, decorators: [{
@@ -38,10 +38,10 @@ export class TipBadgeComponent extends ComponentWithViewStateBase {
38
38
  }
39
39
  }
40
40
  ;
41
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: TipBadgeComponent, deps: [{ token: VIEWSTATE_PROVIDER }, { token: i1.MatSnackBar }], target: i0.ɵɵFactoryTarget.Component }); }
42
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: TipBadgeComponent, selector: "tip-badge", inputs: { dimension: "dimension" }, usesInheritance: true, ngImport: i0, template: "<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", styles: [".smallTextUppercase{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%}.tipbadge{display:inline;cursor:pointer}.tipbadge .badge{display:inline}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i4.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i5.OpenSubscribeDialogDirective, selector: "[subscribeDialog]" }] }); }
41
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: TipBadgeComponent, deps: [{ token: VIEWSTATE_PROVIDER }, { token: i1.MatSnackBar }], target: i0.ɵɵFactoryTarget.Component }); }
42
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.4", type: TipBadgeComponent, selector: "tip-badge", inputs: { dimension: "dimension" }, usesInheritance: true, ngImport: i0, template: "<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", styles: [".smallTextUppercase{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%}.tipbadge{display:inline;cursor:pointer}.tipbadge .badge{display:inline}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i4.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i5.OpenSubscribeDialogDirective, selector: "[subscribeDialog]" }] }); }
43
43
  }
44
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: TipBadgeComponent, decorators: [{
44
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: TipBadgeComponent, decorators: [{
45
45
  type: Component,
46
46
  args: [{ selector: 'tip-badge', template: "<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", styles: [".smallTextUppercase{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%}.tipbadge{display:inline;cursor:pointer}.tipbadge .badge{display:inline}\n"] }]
47
47
  }], ctorParameters: () => [{ type: i6.ViewModelStateBase, decorators: [{
@@ -118,10 +118,10 @@ export class TrendsComponent extends ComponentWithViewStateBase {
118
118
  this.form.controls.factorKeys.setValue(coreFactors);
119
119
  }
120
120
  ;
121
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: TrendsComponent, deps: [{ token: i1.UntypedFormBuilder }, { token: i2.MatSnackBar }, { token: i3.FactorService }, { token: i4.TrendService }, { token: i5.ActivatedRoute }, { token: VIEWSTATE_PROVIDER }], target: i0.ɵɵFactoryTarget.Component }); }
122
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: TrendsComponent, selector: "trends", inputs: { units: "units", unitType: "unitType" }, viewQueries: [{ propertyName: "chartContainer", first: true, predicate: ["chartcontainer"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<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", styles: [".smallTextUppercase{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%}.listtoolbar{display:flex;flex-wrap:wrap;column-gap:30px;row-gap:10px}.listtoolbar .select{flex:auto}.nodata{margin-top:30px;margin-bottom:30px}.nodata img{max-width:700px}.linechart-container{border:3px solid #f0f0f0;margin-top:30px;margin-bottom:30px;padding:30px}.toolbar{margin-top:30px}.mat-mdc-option.lower{margin-left:20px}\n"], dependencies: [{ kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.LineChartComponent, selector: "ngx-charts-line-chart", inputs: ["legend", "legendTitle", "legendPosition", "xAxis", "yAxis", "showXAxisLabel", "showYAxisLabel", "xAxisLabel", "yAxisLabel", "autoScale", "timeline", "gradient", "showGridLines", "curve", "activeEntries", "schemeType", "rangeFillOpacity", "trimXAxisTicks", "trimYAxisTicks", "rotateXAxisTicks", "maxXAxisTickLength", "maxYAxisTickLength", "xAxisTickFormatting", "yAxisTickFormatting", "xAxisTicks", "yAxisTicks", "roundDomains", "tooltipDisabled", "showRefLines", "referenceLines", "showRefLabels", "xScaleMin", "xScaleMax", "yScaleMin", "yScaleMax", "wrapTicks"], outputs: ["activate", "deactivate"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i8.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i9.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i9.MatLabel, selector: "mat-label" }, { kind: "directive", type: i9.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i9.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i10.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i11.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "component", type: i11.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { kind: "directive", type: i11.MatStartDate, selector: "input[matStartDate]", outputs: ["dateChange", "dateInput"] }, { kind: "directive", type: i11.MatEndDate, selector: "input[matEndDate]", outputs: ["dateChange", "dateInput"] }, { kind: "component", type: i11.MatDateRangePicker, selector: "mat-date-range-picker", exportAs: ["matDateRangePicker"] }] }); }
121
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: TrendsComponent, deps: [{ token: i1.UntypedFormBuilder }, { token: i2.MatSnackBar }, { token: i3.FactorService }, { token: i4.TrendService }, { token: i5.ActivatedRoute }, { token: VIEWSTATE_PROVIDER }], target: i0.ɵɵFactoryTarget.Component }); }
122
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.4", type: TrendsComponent, selector: "trends", inputs: { units: "units", unitType: "unitType" }, viewQueries: [{ propertyName: "chartContainer", first: true, predicate: ["chartcontainer"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<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", styles: [".smallTextUppercase{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%}.listtoolbar{display:flex;flex-wrap:wrap;column-gap:30px;row-gap:10px}.listtoolbar .select{flex:auto}.nodata{margin-top:30px;margin-bottom:30px}.nodata img{max-width:700px}.linechart-container{border:3px solid #f0f0f0;margin-top:30px;margin-bottom:30px;padding:30px}.toolbar{margin-top:30px}.mat-mdc-option.lower{margin-left:20px}\n"], dependencies: [{ kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.LineChartComponent, selector: "ngx-charts-line-chart", inputs: ["legend", "legendTitle", "legendPosition", "xAxis", "yAxis", "showXAxisLabel", "showYAxisLabel", "xAxisLabel", "yAxisLabel", "autoScale", "timeline", "gradient", "showGridLines", "curve", "activeEntries", "schemeType", "rangeFillOpacity", "trimXAxisTicks", "trimYAxisTicks", "rotateXAxisTicks", "maxXAxisTickLength", "maxYAxisTickLength", "xAxisTickFormatting", "yAxisTickFormatting", "xAxisTicks", "yAxisTicks", "roundDomains", "tooltipDisabled", "showRefLines", "referenceLines", "showRefLabels", "xScaleMin", "xScaleMax", "yScaleMin", "yScaleMax", "wrapTicks"], outputs: ["activate", "deactivate"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i8.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i9.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i9.MatLabel, selector: "mat-label" }, { kind: "directive", type: i9.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i9.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i10.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i11.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "component", type: i11.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { kind: "directive", type: i11.MatStartDate, selector: "input[matStartDate]", outputs: ["dateChange", "dateInput"] }, { kind: "directive", type: i11.MatEndDate, selector: "input[matEndDate]", outputs: ["dateChange", "dateInput"] }, { kind: "component", type: i11.MatDateRangePicker, selector: "mat-date-range-picker", exportAs: ["matDateRangePicker"] }] }); }
123
123
  }
124
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: TrendsComponent, decorators: [{
124
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: TrendsComponent, decorators: [{
125
125
  type: Component,
126
126
  args: [{ selector: 'trends', template: "<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", styles: [".smallTextUppercase{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%}.listtoolbar{display:flex;flex-wrap:wrap;column-gap:30px;row-gap:10px}.listtoolbar .select{flex:auto}.nodata{margin-top:30px;margin-bottom:30px}.nodata img{max-width:700px}.linechart-container{border:3px solid #f0f0f0;margin-top:30px;margin-bottom:30px;padding:30px}.toolbar{margin-top:30px}.mat-mdc-option.lower{margin-left:20px}\n"] }]
127
127
  }], ctorParameters: () => [{ type: i1.UntypedFormBuilder }, { type: i2.MatSnackBar }, { type: i3.FactorService }, { type: i4.TrendService }, { type: i5.ActivatedRoute }, { type: i12.ViewModelStateBase, decorators: [{
@@ -23,10 +23,10 @@ export class UpdateInProgressComponent extends ComponentWithViewStateBase {
23
23
  }
24
24
  }
25
25
  ;
26
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: UpdateInProgressComponent, deps: [{ token: VIEWSTATE_PROVIDER }, { token: i1.MatSnackBar }], target: i0.ɵɵFactoryTarget.Component }); }
27
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: UpdateInProgressComponent, selector: "update-in-progress", usesInheritance: true, ngImport: i0, template: "<div class=\"update-in-progress\" *ngIf=\"delayedReloading\">\n <span class=\"icon ph-floppy-disk-bold\"></span>\n</div>\n", styles: [".smallTextUppercase{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%}.update-in-progress{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%;-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;background:#2f2f2f;position:fixed;right:0;width:20px;height:20px;bottom:0;padding:5px;display:flex;justify-content:center;align-items:center}.update-in-progress .icon{color:#f0f0f0;font-size:18px;animation:beating;animation-duration:1s;animation-iteration-count:infinite}@keyframes beating{0%{transform:scale(1)}50%{transform:scale(1.2)}to{transform:scale(1)}}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
26
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: UpdateInProgressComponent, deps: [{ token: VIEWSTATE_PROVIDER }, { token: i1.MatSnackBar }], target: i0.ɵɵFactoryTarget.Component }); }
27
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.4", type: UpdateInProgressComponent, selector: "update-in-progress", usesInheritance: true, ngImport: i0, template: "<div class=\"update-in-progress\" *ngIf=\"delayedReloading\">\n <span class=\"icon ph-floppy-disk-bold\"></span>\n</div>\n", styles: [".smallTextUppercase{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%}.update-in-progress{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%;-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;background:#2f2f2f;position:fixed;right:0;width:20px;height:20px;bottom:0;padding:5px;display:flex;justify-content:center;align-items:center}.update-in-progress .icon{color:#f0f0f0;font-size:18px;animation:beating;animation-duration:1s;animation-iteration-count:infinite}@keyframes beating{0%{transform:scale(1)}50%{transform:scale(1.2)}to{transform:scale(1)}}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
28
28
  }
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: UpdateInProgressComponent, decorators: [{
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: UpdateInProgressComponent, decorators: [{
30
30
  type: Component,
31
31
  args: [{ selector: 'update-in-progress', template: "<div class=\"update-in-progress\" *ngIf=\"delayedReloading\">\n <span class=\"icon ph-floppy-disk-bold\"></span>\n</div>\n", styles: [".smallTextUppercase{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%}.update-in-progress{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%;-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;background:#2f2f2f;position:fixed;right:0;width:20px;height:20px;bottom:0;padding:5px;display:flex;justify-content:center;align-items:center}.update-in-progress .icon{color:#f0f0f0;font-size:18px;animation:beating;animation-duration:1s;animation-iteration-count:infinite}@keyframes beating{0%{transform:scale(1)}50%{transform:scale(1.2)}to{transform:scale(1)}}\n"] }]
32
32
  }], ctorParameters: () => [{ type: i3.ViewModelStateBase, decorators: [{