@the-liberators/ngx-scrumteamsurvey-tools 2.2.90 → 2.2.92

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 (86) hide show
  1. package/esm2022/lib/actions/components/action-list/action-list.component.mjs +2 -2
  2. package/esm2022/lib/actions/components/action-manage/action-manage.component.mjs +2 -2
  3. package/esm2022/lib/actions/components/action-tile/action-tile.component.mjs +2 -2
  4. package/esm2022/lib/actions/dialogs/dialog-export-actions/dialog-export-actions.component.mjs +2 -2
  5. package/esm2022/lib/actions/dialogs/dialog-filters/dialog-filters.component.mjs +2 -2
  6. package/esm2022/lib/actions/dialogs/dialog-manageaction/dialog-manageaction.component.mjs +2 -2
  7. package/esm2022/lib/alerts/components/alerts-list/alerts.component.mjs +2 -2
  8. package/esm2022/lib/branding/components/site-default-footer/site-default-footer.component.mjs +2 -2
  9. package/esm2022/lib/branding/components/site-default-header/site-default-header.component.mjs +3 -3
  10. package/esm2022/lib/branding/components/site-micro-footer/site-micro-footer.component.mjs +2 -2
  11. package/esm2022/lib/community/components/gethelp-form/gethelp-form.component.mjs +2 -2
  12. package/esm2022/lib/community/components/meetups/meetups.component.mjs +2 -2
  13. package/esm2022/lib/community/components/recentcontent/recentcontent.component.mjs +2 -2
  14. package/esm2022/lib/components/checkbox/checkbox.component.mjs +2 -2
  15. package/esm2022/lib/components/expand/expand.component.mjs +2 -2
  16. package/esm2022/lib/components/loading/loading.component.mjs +2 -2
  17. package/esm2022/lib/components/mat-tags/mat-tags.component.mjs +2 -2
  18. package/esm2022/lib/components/paginator/paginator.component.mjs +2 -2
  19. package/esm2022/lib/components/scale-selector/scale-selector.component.mjs +2 -2
  20. package/esm2022/lib/components/select-list/select-list.component.mjs +65 -0
  21. package/esm2022/lib/components/select-list/select-list.module.mjs +46 -0
  22. package/esm2022/lib/dialogs/dialog-account/dialog-account.component.mjs +2 -2
  23. package/esm2022/lib/dialogs/dialog-factorinformation/dialog-factorinformation.component.mjs +2 -2
  24. package/esm2022/lib/dialogs/dialog-resourcedownload/dialog-resourcedownload.component.mjs +2 -2
  25. package/esm2022/lib/errorhandling/errorHandler.mjs +4 -1
  26. package/esm2022/lib/errorhandling/errorServiceConfig.mjs +1 -1
  27. package/esm2022/lib/guides/components/imageslider/imageslider.component.mjs +2 -2
  28. package/esm2022/lib/guides/components/resumeguidehover/resumeguidehover.component.mjs +2 -2
  29. package/esm2022/lib/guides/dialogs/dialog-guide/dialog-guide.component.mjs +2 -2
  30. package/esm2022/lib/guides/dialogs/dialog-guides/dialog-guides.component.mjs +2 -2
  31. package/esm2022/lib/results/components/age-indicator/age-indicator.component.mjs +2 -2
  32. package/esm2022/lib/results/components/arrow/arrow.component.mjs +2 -2
  33. package/esm2022/lib/results/components/badge/badge.component.mjs +2 -2
  34. package/esm2022/lib/results/components/badge-progression/badge-progression.component.mjs +2 -2
  35. package/esm2022/lib/results/components/badge-streak/badge-streak.component.mjs +2 -2
  36. package/esm2022/lib/results/components/badges/badges.component.mjs +2 -2
  37. package/esm2022/lib/results/components/benchmark-indicator/benchmark-indicator.component.mjs +2 -2
  38. package/esm2022/lib/results/components/coachingcenter-teaser/coachingcenter-teaser.component.mjs +2 -2
  39. package/esm2022/lib/results/components/delta-arrow/delta-arrow.component.mjs +2 -2
  40. package/esm2022/lib/results/components/doityourself/doityourself.component.mjs +2 -2
  41. package/esm2022/lib/results/components/doityourselfworkshops/doityourselfworkshops.component.mjs +2 -2
  42. package/esm2022/lib/results/components/factor-axis/factor-axis.component.mjs +3 -3
  43. package/esm2022/lib/results/components/factors/factors.component.mjs +2 -2
  44. package/esm2022/lib/results/components/filter-tags/filter-tags.component.mjs +2 -2
  45. package/esm2022/lib/results/components/focusareas/focusareas.component.mjs +2 -2
  46. package/esm2022/lib/results/components/footer/footer.component.mjs +2 -2
  47. package/esm2022/lib/results/components/impact-indicator/impact-indicator.component.mjs +2 -2
  48. package/esm2022/lib/results/components/liberatorkits/liberatorkits.component.mjs +2 -2
  49. package/esm2022/lib/results/components/limitationsapply/limitationsapply.component.mjs +2 -2
  50. package/esm2022/lib/results/components/model/model.component.mjs +2 -2
  51. package/esm2022/lib/results/components/model-factor/model-factor.component.mjs +3 -3
  52. package/esm2022/lib/results/components/model-factor-breakdown/model-factor-breakdown.component.mjs +2 -2
  53. package/esm2022/lib/results/components/model-switcher/model-switcher.component.mjs +2 -2
  54. package/esm2022/lib/results/components/nav-button/nav-button.component.mjs +2 -2
  55. package/esm2022/lib/results/components/participants/participants.component.mjs +2 -2
  56. package/esm2022/lib/results/components/quicktips/quicktips.component.mjs +2 -2
  57. package/esm2022/lib/results/components/recommendation/recommendation.component.mjs +2 -2
  58. package/esm2022/lib/results/components/recommendations/recommendations.component.mjs +2 -2
  59. package/esm2022/lib/results/components/research/research.component.mjs +2 -2
  60. package/esm2022/lib/results/components/roadmap/roadmap.component.mjs +2 -2
  61. package/esm2022/lib/results/components/teamdashboard-teaser/teamdashboard-teaser.component.mjs +2 -2
  62. package/esm2022/lib/results/components/teameffectiveness/teameffectiveness.component.mjs +2 -2
  63. package/esm2022/lib/results/components/termsupdated/termsupdated.component.mjs +2 -2
  64. package/esm2022/lib/results/components/tip-badge/tip-badge.component.mjs +2 -2
  65. package/esm2022/lib/results/components/trends/trends.component.mjs +2 -2
  66. package/esm2022/lib/results/components/update-in-progress/update-in-progress.component.mjs +2 -2
  67. package/esm2022/lib/results/components/userprofile/userprofile.component.mjs +2 -2
  68. package/esm2022/lib/results/components/video/video.component.mjs +2 -2
  69. package/esm2022/lib/results/components/widget-factorscore/widget-factorscore.component.mjs +2 -2
  70. package/esm2022/lib/results/components/widget-participationrate/widget-participationrate.component.mjs +2 -2
  71. package/esm2022/lib/results/dialogs/dialog-export-factorscores/dialog-export-factorscores.component.mjs +2 -2
  72. package/esm2022/lib/results/dialogs/dialog-export-teamlist/dialog-export-teamlist.component.mjs +2 -2
  73. package/esm2022/lib/results/dialogs/dialog-modelfilter/dialog-modelfilter.component.mjs +2 -2
  74. package/esm2022/lib/results/dialogs/dialog-notes/dialog-notes.component.mjs +2 -2
  75. package/esm2022/lib/results/dialogs/dialog-settings/dialog-settings.component.mjs +2 -2
  76. package/esm2022/public-api.mjs +3 -1
  77. package/fesm2022/the-liberators-ngx-scrumteamsurvey-tools.mjs +248 -156
  78. package/fesm2022/the-liberators-ngx-scrumteamsurvey-tools.mjs.map +1 -1
  79. package/lib/actions/components/action-manage/action-manage.component.d.ts +1 -1
  80. package/lib/components/select-list/select-list.component.d.ts +23 -0
  81. package/lib/components/select-list/select-list.module.d.ts +13 -0
  82. package/lib/errorhandling/errorServiceConfig.d.ts +1 -0
  83. package/package.json +1 -1
  84. package/public-api.d.ts +2 -0
  85. package/esm2022/lib/actions/models/selectListItem.mjs +0 -8
  86. package/lib/actions/models/selectListItem.d.ts +0 -6
@@ -96,11 +96,11 @@ export class ActionListComponent extends ComponentWithViewStateBase {
96
96
  });
97
97
  }
98
98
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: ActionListComponent, deps: [{ token: i1.MatSnackBar }, { token: VIEWSTATE_USERSETTINGS_STRATEGY }, { token: i2.ActionService }, { token: VIEWSTATE_PROVIDER }, { token: i3.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
99
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.6", type: ActionListComponent, selector: "action-list", inputs: { prefill: "prefill", overrideFilter: "overrideFilter" }, viewQueries: [{ propertyName: "actionManageComponent", first: true, predicate: ActionManageComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"primarycolumn\">\n <h2>Actions</h2>\n <div class=\"listtoolbar\" id=\"actionstoolbar\">\n <div class=\"listtoolbar-item settings\">\n <div class=\"button borderless filters\" id=\"actions-filters\" actionFiltersDialog><span class=\"ph-faders-horizontal-bold icon\"></span> Filters <span class=\"filtercount\" *ngIf=\"filterCount > 0\">{{filterCount}}</span></div>\n <div class=\"button borderless sort\" id=\"actions-sort\" [matMenuTriggerFor]=\"matSortingMenu\"><span class=\"ph-funnel-simple-bold icon\"></span> {{userSettings.settings.user.interventionFilter.sort || \"Sort\"}}</div>\n <mat-menu #matSortingMenu=\"matMenu\">\n <button mat-menu-item *ngFor=\"let sortOption of sortOptionsList\" (click)=\"setSort(sortOption.key)\">\n {{sortOption.label}}\n </button>\n </mat-menu>\n <div class=\"button borderless\" id=\"export-actions\" exportActionsDialog *ngIf=\"isLoggedIn\"><span class=\"ph-download-simple icon\"></span> Export</div>\n </div>\n\n <mat-form-field class=\"listtoolbar-item findbykeyword\" appearance=\"fill\">\n <mat-label>search</mat-label>\n <input matInput name=\"keyword\" id=\"actions-filter-keyword\" type=\"text\" maxlength=\"50\" [formControl]=\"keywordControl\" />\n </mat-form-field>\n \n <div class=\"listtoolbar-item quickactions\">\n <!--<div class=\"viewmodes\">\n <div class=\"viewmode active\"><span class=\"ph-grid-four icon\"></span></div>\n <div class=\"viewmode\"><span class=\"ph-list icon\"></span></div>\n </div>-->\n <a class=\"button primary newaction\" id=\"action-addnew\" addActionDialog [prefill]=\"prefill\"><span class=\"icon ph-plus\"></span> New action</a>\n </div>\n </div>\n\n <div class=\"loading\" *ngIf=\"!actions.items\">\n <div class=\"loading-icon dark\"></div>\n </div>\n\n <div class=\"wirebox calltoaction\" *ngIf=\"actions.items && actions.items.length == 0\">\n <div class=\"contentwithborders\">\n <div class=\"center\">\n <img src=\"assets/img/improve.png\" />\n <h2>How will you improve?</h2>\n <p>Identifying the areas where you want to improve is only the first step. How do you and your team(s) aim to improve? Add the actions you intend to take and where you expect improvements when successful.</p>\n </div>\n </div>\n </div>\n\n <div class=\"actions\" *ngIf=\"actions && actions.items\">\n <action-tile *ngFor=\"let action of actions.items\" [action]=\"action\" [multipleTeams]=\"multipleTeams\" [actionManageComponent]=\"actionManageComponent\"></action-tile>\n </div>\n\n <paginator [items]=\"actions\" (page)=\"setPaging($event)\" *ngIf=\"actions && actions.items && actions.totalItems > 0\"></paginator>\n</div>\n", 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%}.primarycolumn .introduction{font-size:19px;line-height:140%;margin-bottom:30px}.primarycolumn .actions{margin-top:30px;display:grid;grid-template-columns:repeat(3,1fr);grid-gap:50px;grid-auto-rows:1fr}@media only screen and (max-width: 1536px){.primarycolumn .actions{grid-template-columns:repeat(2,1fr)}}@media only screen and (max-width: 992px){.primarycolumn .actions{grid-template-columns:repeat(1,1fr)}}.primarycolumn .calltoaction{margin-top:30px}.addintervention h3,.filter h3{margin-top:30px;margin-bottom:30px}\n"], dependencies: [{ kind: "component", type: i4.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i4.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i4.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatLabel, selector: "mat-label" }, { kind: "component", type: i6.PaginatorComponent, selector: "paginator", inputs: ["items"], outputs: ["page"] }, { kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i8.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: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i8.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i9.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.ActionTileComponent, selector: "action-tile", inputs: ["action", "multipleTeams", "actionManageComponent"] }, { kind: "directive", type: i11.OpenAddActionDialogDirective, selector: "[addActionDialog]", inputs: ["prefill"] }, { kind: "directive", type: i12.OpenActionFiltersDialogDirective, selector: "[actionFiltersDialog]" }, { kind: "directive", type: i13.OpenExportActionsDialogDirective, selector: "[exportActionsDialog]" }] }); }
99
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.6", type: ActionListComponent, selector: "action-list", inputs: { prefill: "prefill", overrideFilter: "overrideFilter" }, viewQueries: [{ propertyName: "actionManageComponent", first: true, predicate: ActionManageComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"primarycolumn\">\n <h2>Actions</h2>\n <div class=\"listtoolbar\" id=\"actionstoolbar\">\n <div class=\"listtoolbar-item settings\">\n <div class=\"button borderless filters\" id=\"actions-filters\" actionFiltersDialog><span class=\"ph-faders-horizontal-bold icon\"></span> Filters <span class=\"filtercount\" *ngIf=\"filterCount > 0\">{{filterCount}}</span></div>\n <div class=\"button borderless sort\" id=\"actions-sort\" [matMenuTriggerFor]=\"matSortingMenu\"><span class=\"ph-funnel-simple-bold icon\"></span> {{userSettings.settings.user.interventionFilter.sort || \"Sort\"}}</div>\n <mat-menu #matSortingMenu=\"matMenu\">\n <button mat-menu-item *ngFor=\"let sortOption of sortOptionsList\" (click)=\"setSort(sortOption.key)\">\n {{sortOption.label}}\n </button>\n </mat-menu>\n <div class=\"button borderless\" id=\"export-actions\" exportActionsDialog *ngIf=\"isLoggedIn\"><span class=\"ph-download-simple icon\"></span> Export</div>\n </div>\n\n <mat-form-field class=\"listtoolbar-item findbykeyword\" appearance=\"fill\">\n <mat-label>search</mat-label>\n <input matInput name=\"keyword\" id=\"actions-filter-keyword\" type=\"text\" maxlength=\"50\" [formControl]=\"keywordControl\" />\n </mat-form-field>\n \n <div class=\"listtoolbar-item quickactions\">\n <!--<div class=\"viewmodes\">\n <div class=\"viewmode active\"><span class=\"ph-grid-four icon\"></span></div>\n <div class=\"viewmode\"><span class=\"ph-list icon\"></span></div>\n </div>-->\n <a class=\"button primary newaction\" id=\"action-addnew\" addActionDialog [prefill]=\"prefill\"><span class=\"icon ph-plus\"></span> New action</a>\n </div>\n </div>\n\n <div class=\"loading\" *ngIf=\"!actions.items\">\n <div class=\"loading-icon dark\"></div>\n </div>\n\n <div class=\"wirebox calltoaction\" *ngIf=\"actions.items && actions.items.length == 0\">\n <div class=\"contentwithborders\">\n <div class=\"center\">\n <img src=\"assets/img/improve.png\" />\n <h2>How will you improve?</h2>\n <p>Identifying the areas where you want to improve is only the first step. How do you and your team(s) aim to improve? Add the actions you intend to take and where you expect improvements when successful.</p>\n </div>\n </div>\n </div>\n\n <div class=\"actions\" *ngIf=\"actions && actions.items\">\n <action-tile *ngFor=\"let action of actions.items\" [action]=\"action\" [multipleTeams]=\"multipleTeams\" [actionManageComponent]=\"actionManageComponent\"></action-tile>\n </div>\n\n <paginator [items]=\"actions\" (page)=\"setPaging($event)\" *ngIf=\"actions && actions.items && actions.totalItems > 0\"></paginator>\n</div>\n", 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%}.bigletteredbutton{-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;text-decoration:none;background:#ffffff1a;margin-bottom:10px;display:flex;align-content:center;border-radius:20px;padding:15px;font-size:24px;border:2px solid #1F3F8F;border-bottom:6px solid #1F3F8F;color:#fff;align-items:center;cursor:pointer}.bigletteredbutton .free{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;background:#fff73f;color:#2f2f2f;padding:3px 5px;margin-left:20px;border-radius:10px}.bigletteredbutton .plan{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;background:#fff;color:#2f2f2f;padding:3px 5px;margin-left:20px;border-radius:10px}.bigletteredbutton:hover,.bigletteredbutton.selected{border:2px solid #fff73f;border-bottom:6px solid #fff73f}.bigletteredbutton .button-letter{-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;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;background:#fff73f;color:#1f3f8f;margin-right:20px}.bigletteredbutton .button-letter .ph{color:#1f3f8f}.bigletteredbutton .button-letter:hover{background:#1f3f8f;color:#fff73f}.bigletteredbutton .button-letter:hover .ph{color:#fff73f}.roundicon-yellow{-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;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;background:#fff73f;color:#1f3f8f}.roundicon-yellow .ph{color:#1f3f8f}.roundicon-yellow:hover{background:#1f3f8f;color:#fff73f}.roundicon-yellow:hover .ph{color:#fff73f}.roundicon{-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;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center}.roundicon-large{-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;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;border-radius:60px;height:120px;width:120px}.primarycolumn .introduction{font-size:19px;line-height:140%;margin-bottom:30px}.primarycolumn .actions{margin-top:30px;display:grid;grid-template-columns:repeat(3,1fr);grid-gap:50px;grid-auto-rows:1fr}@media only screen and (max-width: 1536px){.primarycolumn .actions{grid-template-columns:repeat(2,1fr)}}@media only screen and (max-width: 992px){.primarycolumn .actions{grid-template-columns:repeat(1,1fr)}}.primarycolumn .calltoaction{margin-top:30px}.addintervention h3,.filter h3{margin-top:30px;margin-bottom:30px}\n"], dependencies: [{ kind: "component", type: i4.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i4.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i4.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatLabel, selector: "mat-label" }, { kind: "component", type: i6.PaginatorComponent, selector: "paginator", inputs: ["items"], outputs: ["page"] }, { kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i8.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: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i8.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i9.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.ActionTileComponent, selector: "action-tile", inputs: ["action", "multipleTeams", "actionManageComponent"] }, { kind: "directive", type: i11.OpenAddActionDialogDirective, selector: "[addActionDialog]", inputs: ["prefill"] }, { kind: "directive", type: i12.OpenActionFiltersDialogDirective, selector: "[actionFiltersDialog]" }, { kind: "directive", type: i13.OpenExportActionsDialogDirective, selector: "[exportActionsDialog]" }] }); }
100
100
  }
101
101
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: ActionListComponent, decorators: [{
102
102
  type: Component,
103
- args: [{ selector: 'action-list', template: "<div class=\"primarycolumn\">\n <h2>Actions</h2>\n <div class=\"listtoolbar\" id=\"actionstoolbar\">\n <div class=\"listtoolbar-item settings\">\n <div class=\"button borderless filters\" id=\"actions-filters\" actionFiltersDialog><span class=\"ph-faders-horizontal-bold icon\"></span> Filters <span class=\"filtercount\" *ngIf=\"filterCount > 0\">{{filterCount}}</span></div>\n <div class=\"button borderless sort\" id=\"actions-sort\" [matMenuTriggerFor]=\"matSortingMenu\"><span class=\"ph-funnel-simple-bold icon\"></span> {{userSettings.settings.user.interventionFilter.sort || \"Sort\"}}</div>\n <mat-menu #matSortingMenu=\"matMenu\">\n <button mat-menu-item *ngFor=\"let sortOption of sortOptionsList\" (click)=\"setSort(sortOption.key)\">\n {{sortOption.label}}\n </button>\n </mat-menu>\n <div class=\"button borderless\" id=\"export-actions\" exportActionsDialog *ngIf=\"isLoggedIn\"><span class=\"ph-download-simple icon\"></span> Export</div>\n </div>\n\n <mat-form-field class=\"listtoolbar-item findbykeyword\" appearance=\"fill\">\n <mat-label>search</mat-label>\n <input matInput name=\"keyword\" id=\"actions-filter-keyword\" type=\"text\" maxlength=\"50\" [formControl]=\"keywordControl\" />\n </mat-form-field>\n \n <div class=\"listtoolbar-item quickactions\">\n <!--<div class=\"viewmodes\">\n <div class=\"viewmode active\"><span class=\"ph-grid-four icon\"></span></div>\n <div class=\"viewmode\"><span class=\"ph-list icon\"></span></div>\n </div>-->\n <a class=\"button primary newaction\" id=\"action-addnew\" addActionDialog [prefill]=\"prefill\"><span class=\"icon ph-plus\"></span> New action</a>\n </div>\n </div>\n\n <div class=\"loading\" *ngIf=\"!actions.items\">\n <div class=\"loading-icon dark\"></div>\n </div>\n\n <div class=\"wirebox calltoaction\" *ngIf=\"actions.items && actions.items.length == 0\">\n <div class=\"contentwithborders\">\n <div class=\"center\">\n <img src=\"assets/img/improve.png\" />\n <h2>How will you improve?</h2>\n <p>Identifying the areas where you want to improve is only the first step. How do you and your team(s) aim to improve? Add the actions you intend to take and where you expect improvements when successful.</p>\n </div>\n </div>\n </div>\n\n <div class=\"actions\" *ngIf=\"actions && actions.items\">\n <action-tile *ngFor=\"let action of actions.items\" [action]=\"action\" [multipleTeams]=\"multipleTeams\" [actionManageComponent]=\"actionManageComponent\"></action-tile>\n </div>\n\n <paginator [items]=\"actions\" (page)=\"setPaging($event)\" *ngIf=\"actions && actions.items && actions.totalItems > 0\"></paginator>\n</div>\n", 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%}.primarycolumn .introduction{font-size:19px;line-height:140%;margin-bottom:30px}.primarycolumn .actions{margin-top:30px;display:grid;grid-template-columns:repeat(3,1fr);grid-gap:50px;grid-auto-rows:1fr}@media only screen and (max-width: 1536px){.primarycolumn .actions{grid-template-columns:repeat(2,1fr)}}@media only screen and (max-width: 992px){.primarycolumn .actions{grid-template-columns:repeat(1,1fr)}}.primarycolumn .calltoaction{margin-top:30px}.addintervention h3,.filter h3{margin-top:30px;margin-bottom:30px}\n"] }]
103
+ args: [{ selector: 'action-list', template: "<div class=\"primarycolumn\">\n <h2>Actions</h2>\n <div class=\"listtoolbar\" id=\"actionstoolbar\">\n <div class=\"listtoolbar-item settings\">\n <div class=\"button borderless filters\" id=\"actions-filters\" actionFiltersDialog><span class=\"ph-faders-horizontal-bold icon\"></span> Filters <span class=\"filtercount\" *ngIf=\"filterCount > 0\">{{filterCount}}</span></div>\n <div class=\"button borderless sort\" id=\"actions-sort\" [matMenuTriggerFor]=\"matSortingMenu\"><span class=\"ph-funnel-simple-bold icon\"></span> {{userSettings.settings.user.interventionFilter.sort || \"Sort\"}}</div>\n <mat-menu #matSortingMenu=\"matMenu\">\n <button mat-menu-item *ngFor=\"let sortOption of sortOptionsList\" (click)=\"setSort(sortOption.key)\">\n {{sortOption.label}}\n </button>\n </mat-menu>\n <div class=\"button borderless\" id=\"export-actions\" exportActionsDialog *ngIf=\"isLoggedIn\"><span class=\"ph-download-simple icon\"></span> Export</div>\n </div>\n\n <mat-form-field class=\"listtoolbar-item findbykeyword\" appearance=\"fill\">\n <mat-label>search</mat-label>\n <input matInput name=\"keyword\" id=\"actions-filter-keyword\" type=\"text\" maxlength=\"50\" [formControl]=\"keywordControl\" />\n </mat-form-field>\n \n <div class=\"listtoolbar-item quickactions\">\n <!--<div class=\"viewmodes\">\n <div class=\"viewmode active\"><span class=\"ph-grid-four icon\"></span></div>\n <div class=\"viewmode\"><span class=\"ph-list icon\"></span></div>\n </div>-->\n <a class=\"button primary newaction\" id=\"action-addnew\" addActionDialog [prefill]=\"prefill\"><span class=\"icon ph-plus\"></span> New action</a>\n </div>\n </div>\n\n <div class=\"loading\" *ngIf=\"!actions.items\">\n <div class=\"loading-icon dark\"></div>\n </div>\n\n <div class=\"wirebox calltoaction\" *ngIf=\"actions.items && actions.items.length == 0\">\n <div class=\"contentwithborders\">\n <div class=\"center\">\n <img src=\"assets/img/improve.png\" />\n <h2>How will you improve?</h2>\n <p>Identifying the areas where you want to improve is only the first step. How do you and your team(s) aim to improve? Add the actions you intend to take and where you expect improvements when successful.</p>\n </div>\n </div>\n </div>\n\n <div class=\"actions\" *ngIf=\"actions && actions.items\">\n <action-tile *ngFor=\"let action of actions.items\" [action]=\"action\" [multipleTeams]=\"multipleTeams\" [actionManageComponent]=\"actionManageComponent\"></action-tile>\n </div>\n\n <paginator [items]=\"actions\" (page)=\"setPaging($event)\" *ngIf=\"actions && actions.items && actions.totalItems > 0\"></paginator>\n</div>\n", 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%}.bigletteredbutton{-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;text-decoration:none;background:#ffffff1a;margin-bottom:10px;display:flex;align-content:center;border-radius:20px;padding:15px;font-size:24px;border:2px solid #1F3F8F;border-bottom:6px solid #1F3F8F;color:#fff;align-items:center;cursor:pointer}.bigletteredbutton .free{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;background:#fff73f;color:#2f2f2f;padding:3px 5px;margin-left:20px;border-radius:10px}.bigletteredbutton .plan{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;background:#fff;color:#2f2f2f;padding:3px 5px;margin-left:20px;border-radius:10px}.bigletteredbutton:hover,.bigletteredbutton.selected{border:2px solid #fff73f;border-bottom:6px solid #fff73f}.bigletteredbutton .button-letter{-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;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;background:#fff73f;color:#1f3f8f;margin-right:20px}.bigletteredbutton .button-letter .ph{color:#1f3f8f}.bigletteredbutton .button-letter:hover{background:#1f3f8f;color:#fff73f}.bigletteredbutton .button-letter:hover .ph{color:#fff73f}.roundicon-yellow{-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;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;background:#fff73f;color:#1f3f8f}.roundicon-yellow .ph{color:#1f3f8f}.roundicon-yellow:hover{background:#1f3f8f;color:#fff73f}.roundicon-yellow:hover .ph{color:#fff73f}.roundicon{-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;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center}.roundicon-large{-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;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;border-radius:60px;height:120px;width:120px}.primarycolumn .introduction{font-size:19px;line-height:140%;margin-bottom:30px}.primarycolumn .actions{margin-top:30px;display:grid;grid-template-columns:repeat(3,1fr);grid-gap:50px;grid-auto-rows:1fr}@media only screen and (max-width: 1536px){.primarycolumn .actions{grid-template-columns:repeat(2,1fr)}}@media only screen and (max-width: 992px){.primarycolumn .actions{grid-template-columns:repeat(1,1fr)}}.primarycolumn .calltoaction{margin-top:30px}.addintervention h3,.filter h3{margin-top:30px;margin-bottom:30px}\n"] }]
104
104
  }], ctorParameters: () => [{ type: i1.MatSnackBar }, { type: undefined, decorators: [{
105
105
  type: Inject,
106
106
  args: [VIEWSTATE_USERSETTINGS_STRATEGY]
@@ -1,11 +1,11 @@
1
1
  import { Component, Inject, Input } from '@angular/core';
2
2
  import { Validators } from '@angular/forms';
3
3
  import { ComponentBase } from '../../../componentBase';
4
+ import { SelectItem } from '../../../models/selectListItem';
4
5
  import { VIEWSTATE_PROVIDER } from '../../../viewModel/viewModelState.service';
5
6
  import { InterventionStateEnum } from '../../models/actionDto';
6
7
  import { ActionOptionDto } from '../../models/actionOptionsDto';
7
8
  import { ActionPrefillDto } from '../../models/actionPrefillDto';
8
- import { SelectItem } from '../../models/selectListItem';
9
9
  import * as i0 from "@angular/core";
10
10
  import * as i1 from "@angular/material/dialog";
11
11
  import * as i2 from "@angular/forms";
@@ -161,4 +161,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImpor
161
161
  }], action: [{
162
162
  type: Input
163
163
  }] } });
164
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLW1hbmFnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2NydW10ZWFtc3VydmV5LXRvb2xzL3NyYy9saWIvYWN0aW9ucy9jb21wb25lbnRzL2FjdGlvbi1tYW5hZ2UvYWN0aW9uLW1hbmFnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2NydW10ZWFtc3VydmV5LXRvb2xzL3NyYy9saWIvYWN0aW9ucy9jb21wb25lbnRzL2FjdGlvbi1tYW5hZ2UvYWN0aW9uLW1hbmFnZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUE4QyxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUl4RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGtCQUFrQixFQUFzQixNQUFNLDJDQUEyQyxDQUFDO0FBRW5HLE9BQU8sRUFBYSxxQkFBcUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFTekQsTUFBTSxPQUFPLHFCQUFzQixTQUFRLGFBQWE7SUFjckQsWUFBb0IsU0FBb0IsRUFBVSxXQUF3QixFQUFVLGFBQTRCLEVBQXNDLGNBQWdELEVBQVksUUFBcUI7UUFDcE8sS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBREUsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUFVLGdCQUFXLEdB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OzBCQWtCMEYsTUFBTTsyQkFBQyxrQkFBa0I7bUVBYjVILE9BQU87c0JBQXRCLEtBQUs7Z0JBQ1UsTUFBTTtzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgRm9ybUdyb3VwRGlyZWN0aXZlLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE1hdFNuYWNrQmFyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29tcG9uZW50QmFzZSB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudEJhc2UnO1xuaW1wb3J0IHsgVklFV1NUQVRFX1BST1ZJREVSLCBWaWV3TW9kZWxTdGF0ZUJhc2UgfSBmcm9tICcuLi8uLi8uLi92aWV3TW9kZWwvdmlld01vZGVsU3RhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBJQWN0aW9uU3RhdGUgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL0lBY3Rpb25TdGF0ZSc7XG5pbXBvcnQgeyBBY3Rpb25EdG8sIEludGVydmVudGlvblN0YXRlRW51bSB9IGZyb20gJy4uLy4uL21vZGVscy9hY3Rpb25EdG8nO1xuaW1wb3J0IHsgQWN0aW9uT3B0aW9uRHRvIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2FjdGlvbk9wdGlvbnNEdG8nO1xuaW1wb3J0IHsgQWN0aW9uUHJlZmlsbER0byB9IGZyb20gJy4uLy4uL21vZGVscy9hY3Rpb25QcmVmaWxsRHRvJztcbmltcG9ydCB7IFNlbGVjdEl0ZW0gfSBmcm9tICcuLi8uLi9tb2RlbHMvc2VsZWN0TGlzdEl0ZW0nO1xuaW1wb3J0IHsgQWN0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FjdGlvblNlcnZpY2UnO1xuaW1wb3J0IHsgTW9kZWxTdHJ1Y3R1cmVEdG8gfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvbW9kZWxTdHJ1Y3R1cmVEdG8nO1xuXG5AQ29tcG9uZW50KHtcbiAgIHNlbGVjdG9yOiAnYWN0aW9uLW1hbmFnZScsXG4gICB0ZW1wbGF0ZVVybDogJy4vYWN0aW9uLW1hbmFnZS5jb21wb25lbnQuaHRtbCcsXG4gICBzdHlsZVVybHM6IFsnLi9hY3Rpb24tbWFuYWdlLmNvbXBvbmVudC5sZXNzJ11cbn0pXG5leHBvcnQgY2xhc3MgQWN0aW9uTWFuYWdlQ29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50QmFzZSB7XG4gICBASW5wdXQoKSBwdWJsaWMgcHJlZmlsbDogQWN0aW9uUHJlZmlsbER0bztcbiAgIEBJbnB1dCgpIHB1YmxpYyBhY3Rpb246IEFjdGlvbkR0bztcbiAgIHB1YmxpYyBmb3JtOiBGb3JtR3JvdXA7XG4gICBwdWJsaWMgaW50ZXJ2ZW50aW9uVHlwZUxpc3Q6IEFjdGlvbk9wdGlvbkR0b1tdO1xuICAgcHVibGljIGV4cGVjdGVkRWZmZWN0T25MaXN0OiBBY3Rpb25PcHRpb25EdG9bXTtcbiAgIHB1YmxpYyBzdGF0ZUxpc3Q6IEFjdGlvbk9wdGlvbkR0b1tdO1xuICAgcHVibGljIG93bmVyTGlzdDogQWN0aW9uT3B0aW9uRHRvW107XG4gICBwdWJsaWMgdGVhbXM6IEFjdGlvbk9wdGlvbkR0b1tdID0gW107XG4gICBwdWJsaWMgbXVsdGlwbGVUZWFtczogYm9vbGVhbjtcbiAgIHB1YmxpYyB2aWV3U3RhdGVTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgIHB1YmxpYyBzaG93VGVhbVNlbGVjdG9yOiBib29sZWFuID0gdHJ1ZTtcbiAgIHB1YmxpYyBmYWN0b3JzOiBTZWxlY3RJdGVtW107XG5cbiAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZGlhbG9nUmVmOiBNYXREaWFsb2csIHByaXZhdGUgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLCBwcml2YXRlIGFjdGlvblNlcnZpY2U6IEFjdGlvblNlcnZpY2UsIEBJbmplY3QoVklFV1NUQVRFX1BST1ZJREVSKSBwcml2YXRlIHZpZXdNb2RlbFN0YXRlOiBWaWV3TW9kZWxTdGF0ZUJhc2U8SUFjdGlvblN0YXRlPiwgcHJvdGVjdGVkIHNuYWNrQmFyOiBNYXRTbmFja0Jhcikge1xuICAgICAgc3VwZXIoc25hY2tCYXIpXG4gICB9XG5cbiAgIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICAgIHRoaXMuY3JlYXRlRm9ybSgpO1xuICAgICAgdGhpcy5vd25lckxpc3QgPSB0aGlzLmFjdGlvblNlcnZpY2UuZ2V0T3duZXJPcHRpb25zKCk7XG4gICAgICB0aGlzLmludGVydmVudGlvblR5cGVMaXN0ID0gdGhpcy5hY3Rpb25TZXJ2aWNlLmdldFR5cGVPcHRpb25zKCk7XG4gICAgICB0aGlzLnN0YXRlTGlzdCA9IHRoaXMuYWN0aW9uU2VydmljZS5nZXRTdGF0ZU9wdGlvbnMoKTtcblxuICAgICAgdGhpcy52aWV3U3RhdGVTdWJzY3JpcHRpb24gPSB0aGlzLnZpZXdNb2RlbFN0YXRlLmRhdGEuc3Vic2NyaWJlKHN1Y2Nlc3MgPT4ge1xuICAgICAgICAgaWYgKHN1Y2Nlc3MubG9hZGVkKSB7XG4gICAgICAgICAgICB0aGlzLmZhY3RvcnMgPSB0aGlzLmdldEZhY3RvcnMoc3VjY2Vzcy5mYWN0b3JTY29yZXMubW9kZWxTdHJ1Y3R1cmUpO1xuICAgICAgICAgICAgdGhpcy5leHBlY3RlZEVmZmVjdE9uTGlzdCA9IHN1Y2Nlc3MuZmFjdG9yU2NvcmVzLmZhY3RvclNjb3Jlcy5tYXAocCA9PiBuZXcgQWN0aW9uT3B0aW9uRHRvKHAua2V5LCBwLm5hbWUpKTtcblxuICAgICAgICAgICAgaWYgKHN1Y2Nlc3MudGVhbU1ldGFEYXRhICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgIHRoaXMudGVhbXMucHVzaChuZXcgQWN0aW9uT3B0aW9uRHRvKHN1Y2Nlc3MudGVhbU1ldGFEYXRhLnRlYW1LZXksIHN1Y2Nlc3MudGVhbU1ldGFEYXRhLm5hbWUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgdGhpcy50ZWFtcyA9IHN1Y2Nlc3MuZmFjdG9yU2NvcmVzLmNvbXBvc2l0aW9uLnBvaW50cy5wb2ludHMubWFwKHAgPT4gbmV3IEFjdGlvbk9wdGlvbkR0byhwLnB1YmxpY0tleSwgcC5uYW1lKSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0aGlzLnRlYW1zLmxlbmd0aCA9PSAxKSB7IHRoaXMucHJlZmlsbC50ZWFtS2V5ID0gdGhpcy50ZWFtc1swXS5rZXk7IH1cbiAgICAgICAgICAgIHRoaXMuc2hvd1RlYW1TZWxlY3RvciA9ICghdGhpcy5wcmVmaWxsLnRlYW1LZXkgfHwgdGhpcy5wcmVmaWxsLnRlYW1LZXkubGVuZ3RoID09IDApO1xuICAgICAgICAgICAgdGhpcy5hcHBseVByZWZpbGwoKTtcbiAgICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICBpZiAodGhpcy5hY3Rpb24gJiYgdGhpcy5hY3Rpb24ucHVibGljS2V5KSB7XG4gICAgICAgICB0aGlzLmZvcm0uY29udHJvbHMudGVhbUtleS5zZXRWYWx1ZSh0aGlzLmFjdGlvbi50ZWFtLnB1YmxpY0tleSk7XG4gICAgICAgICB0aGlzLmZvcm0uY29udHJvbHMucHVibGljS2V5LnNldFZhbHVlKHRoaXMuYWN0aW9uLnB1YmxpY0tleSk7XG4gICAgICAgICB0aGlzLmZvcm0uY29udHJvbHMuZGVzY3JpcHRpb24uc2V0VmFsdWUodGhpcy5hY3Rpb24uZGVzY3JpcHRpb24pO1xuICAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzLnVybC5zZXRWYWx1ZSh0aGlzLmFjdGlvbi51cmwpO1xuICAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzLmV4cGVjdGVkSW1wYWN0T24uc2V0VmFsdWUodGhpcy5hY3Rpb24uZXhwZWN0ZWRJbXBhY3RPbik7XG4gICAgICAgICB0aGlzLmZvcm0uY29udHJvbHMudHlwZS5zZXRWYWx1ZSh0aGlzLmFjdGlvbi50eXBlKTtcbiAgICAgICAgIHRoaXMuZm9ybS5jb250cm9scy5vd25lci5zZXRWYWx1ZSh0aGlzLmFjdGlvbi5vd25lcik7XG4gICAgICAgICB0aGlzLmZvcm0uY29udHJvbHMuc3RhdGUuc2V0VmFsdWUodGhpcy5hY3Rpb24uc3RhdGUpO1xuICAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzLmR1ZS5zZXRWYWx1ZSh0aGlzLmFjdGlvbi5kdWUpO1xuICAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzLnF1aWNrVGlwUHVibGljS2V5LnNldFZhbHVlKHRoaXMuYWN0aW9uLnF1aWNrVGlwUHVibGljS2V5KTtcbiAgICAgICAgIHRoaXMuc2hvd1RlYW1TZWxlY3RvciA9IGZhbHNlO1xuICAgICAgfVxuICAgfVxuXG4gICBwdWJsaWMgYXN5bmMgb25TdWJtaXQoZm9ybURpcmVjdGl2ZTogRm9ybUdyb3VwRGlyZWN0aXZlKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICBpZiAoIXRoaXMuZm9ybS52YWxpZCkgeyByZXR1cm47IH1cblxuICAgICAgaWYgKHRoaXMuZm9ybS5jb250cm9scy5wdWJsaWNLZXkudmFsdWUpIHtcbiAgICAgICAgIGF3YWl0IHRoaXMuYWN0aW9uU2VydmljZS51cGRhdGUodGhpcy5mb3JtLmNvbnRyb2xzLnRlYW1LZXkudmFsdWUsIHRoaXMuZm9ybS5nZXRSYXdWYWx1ZSgpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgICBhd2FpdCB0aGlzLmFjdGlvblNlcnZpY2UuY3JlYXRlKHRoaXMuZm9ybS5jb250cm9scy50ZWFtS2V5LnZhbHVlLCB0aGlzLmZvcm0uZ2V0UmF3VmFsdWUoKSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlQWxsKCk7XG4gICAgICB0aGlzLnZpZXdNb2RlbFN0YXRlLnVwZGF0aW5nLm5leHQodHJ1ZSk7XG4gICB9XG5cbiAgIHB1YmxpYyBhc3luYyBkZWxldGUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICBpZiAod2luZG93LmNvbmZpcm0oXCJBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoaXMgaW50ZXJ2ZW50aW9uP1wiKSkge1xuICAgICAgICAgYXdhaXQgdGhpcy5hY3Rpb25TZXJ2aWNlLmRlbGV0ZSh0aGlzLmZvcm0uY29udHJvbHMudGVhbUtleS52YWx1ZSwgdGhpcy5mb3JtLmNvbnRyb2xzLnB1YmxpY0tleS52YWx1ZSk7XG4gICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZUFsbCgpO1xuICAgICAgICAgdGhpcy52aWV3TW9kZWxTdGF0ZS51cGRhdGluZy5uZXh0KHRydWUpO1xuICAgICAgfVxuICAgfVxuXG4gICBwdWJsaWMgY2FuY2VsKCkge1xuICAgICAgdGhpcy5yZXNldEZvcm0obnVsbCk7XG4gICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZUFsbCgpO1xuICAgfVxuXG4gICBwcml2YXRlIHJlc2V0Rm9ybShmb3JtRGlyZWN0aXZlOiBGb3JtR3JvdXBEaXJlY3RpdmUpOiB2b2lkIHtcbiAgICAgIHRoaXMuc2hvd1RlYW1TZWxlY3RvciA9ICghdGhpcy5wcmVmaWxsLnRlYW1LZXkgfHwgdGhpcy5wcmVmaWxsLnRlYW1LZXkubGVuZ3RoID09IDApO1xuICAgICAgdGhpcy5mb3JtLnJlc2V0KCk7XG4gICAgICB0aGlzLmFjdGlvbiA9IG51bGw7XG5cbiAgICAgIGlmIChmb3JtRGlyZWN0aXZlKSB7XG4gICAgICAgICBmb3JtRGlyZWN0aXZlLnJlc2V0Rm9ybSgpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmZvcm0uY29udHJvbHMuc3RhdGUuc2V0VmFsdWUoSW50ZXJ2ZW50aW9uU3RhdGVFbnVtLm9wZW4pO1xuICAgICAgdGhpcy5hcHBseVByZWZpbGwoKTtcbiAgIH1cblxuICAgcHJpdmF0ZSBnZXRGYWN0b3JzKG1vZGVsOiBNb2RlbFN0cnVjdHVyZUR0byk6IFNlbGVjdEl0ZW1bXSB7XG4gICAgICBpZiAobW9kZWwgPT0gbnVsbCB8fCBtb2RlbC5kZWZpbml0aW9uID09IG51bGwgfHwgbW9kZWwuZGVmaW5pdGlvbi5mYWN0b3JzID09IG51bGwpIHsgcmV0dXJuIG51bGw7IH1cbiAgICAgIHZhciByZXN1bHQ6IFNlbGVjdEl0ZW1bXSA9IFtdO1xuXG4gICAgICBmb3IgKHZhciBmYWN0b3Igb2YgbW9kZWwuZGVmaW5pdGlvbi5mYWN0b3JzLmZpbHRlcihwID0+IHAucGFyZW50S2V5ID09IG51bGwpKSB7XG4gICAgICAgICByZXN1bHQucHVzaChuZXcgU2VsZWN0SXRlbShmYWN0b3IucHVibGljS2V5LCBmYWN0b3IubmFtZSwgZmFsc2UpKTtcblxuICAgICAgICAgZm9yICh2YXIgbG93ZXJEaW1lbnNpb24gb2YgZmFjdG9yLmxvd2VyKSB7XG4gICAgICAgICAgICByZXN1bHQucHVzaChuZXcgU2VsZWN0SXRlbShsb3dlckRpbWVuc2lvbi5wdWJsaWNLZXksIGxvd2VyRGltZW5zaW9uLm5hbWUsIHRydWUpKTtcbiAgICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgIH1cblxuICAgcHJpdmF0ZSBjcmVhdGVGb3JtKCk6IHZvaWQge1xuICAgICAgdGhpcy5mb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICAgICBwdWJsaWNLZXk6IFtcIlwiXSxcbiAgICAgICAgIHRlYW1LZXk6IFtcIlwiLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgICAgcXVpY2tUaXBQdWJsaWNLZXk6IFtcIlwiXSxcbiAgICAgICAgIGRlc2NyaXB0aW9uOiBbXCJcIiwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDUwMCldXSxcbiAgICAgICAgIHVybDogW1wiXCIsIFtWYWxpZGF0b3JzLm1heExlbmd0aCg1MDApXV0sXG4gICAgICAgICBvd25lcjogW1wiXCIsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgICAgc3RhdGU6IFtcIlwiLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgICAgIHR5cGU6IFtcIlwiLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgICAgIGR1ZTogW1wiXCJdLFxuICAgICAgICAgZXhwZWN0ZWRJbXBhY3RPbjogW1wiXCIsIFZhbGlkYXRvcnMucmVxdWlyZWRdXG4gICAgICB9KTtcbiAgIH1cblxuICAgcHJpdmF0ZSBhcHBseVByZWZpbGwoKTogdm9pZCB7XG4gICAgICBpZiAodGhpcy5wcmVmaWxsKSB7XG4gICAgICAgICB0aGlzLmZvcm0uY29udHJvbHMudGVhbUtleS5zZXRWYWx1ZSh0aGlzLnByZWZpbGwudGVhbUtleSk7XG4gICAgICAgICB0aGlzLmZvcm0uY29udHJvbHMuZGVzY3JpcHRpb24uc2V0VmFsdWUodGhpcy5wcmVmaWxsLmRlc2NyaXB0aW9uKTtcbiAgICAgICAgIHRoaXMuZm9ybS5jb250cm9scy5leHBlY3RlZEltcGFjdE9uLnNldFZhbHVlKHRoaXMucHJlZmlsbC5leHBlY3RlZEltcGFjdE9uKTtcbiAgICAgICAgIHRoaXMuZm9ybS5jb250cm9scy50eXBlLnNldFZhbHVlKHRoaXMucHJlZmlsbC50eXBlKTtcbiAgICAgICAgIHRoaXMuZm9ybS5jb250cm9scy5vd25lci5zZXRWYWx1ZSh0aGlzLnByZWZpbGwub3duZXIpO1xuICAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzLnN0YXRlLnNldFZhbHVlKHRoaXMucHJlZmlsbC5zdGF0ZSk7XG4gICAgICAgICB0aGlzLmZvcm0uY29udHJvbHMudXJsLnNldFZhbHVlKHRoaXMucHJlZmlsbC51cmwpO1xuICAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzLnF1aWNrVGlwUHVibGljS2V5LnNldFZhbHVlKHRoaXMucHJlZmlsbC5xdWlja1RpcFB1YmxpY0tleSk7XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgIHRoaXMucHJlZmlsbCA9IG5ldyBBY3Rpb25QcmVmaWxsRHRvKCk7XG4gICAgICAgICB0aGlzLnByZWZpbGwuZXhwZWN0ZWRJbXBhY3RPbiA9IFtdO1xuICAgICAgfVxuICAgfVxuXG4gICBuZ09uRGVzdHJveSgpIHtcbiAgICAgIGlmICh0aGlzLnZpZXdTdGF0ZVN1YnNjcmlwdGlvbikge1xuICAgICAgICAgdGhpcy52aWV3U3RhdGVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgIH1cbiAgIH1cbn1cbiIsIjxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiIChuZ1N1Ym1pdCk9XCJvblN1Ym1pdChmb3JtRGlyZWN0aXZlKVwiICNmb3JtRGlyZWN0aXZlPVwibmdGb3JtXCIgY2xhc3M9XCJtYW5hZ2UtYWN0aW9uLWZvcm1cIj5cbiAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiICpuZ0lmPVwic2hvd1RlYW1TZWxlY3RvclwiPlxuICAgICAgPG1hdC1sYWJlbD5XaGljaCB0ZWFtIG93bnMgdGhpcyBhY3Rpb24/PC9tYXQtbGFiZWw+XG4gICAgICA8bWF0LXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJ0ZWFtS2V5XCIgaWQ9XCJ0ZWFtS2V5XCI+XG4gICAgICAgICA8bWF0LW9wdGlvbiBjbGFzcz1cInNlbGVjdC1vcHRpb25cIiAqbmdGb3I9XCJsZXQgdGVhbSBvZiB0ZWFtc1wiIFt2YWx1ZV09XCJ0ZWFtLmtleVwiPnt7dGVhbS5sYWJlbH19PC9tYXQtb3B0aW9uPlxuICAgICAgPC9tYXQtc2VsZWN0PlxuICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCIgc3Vic2NyaXB0U2l6aW5nPVwiZHluYW1pY1wiPlxuICAgICAgPG1hdC1sYWJlbD5FbnRlciBzaG9ydCBkZXNjcmlwdGlvbjwvbWF0LWxhYmVsPlxuICAgICAgPHRleHRhcmVhIG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cImRlc2NyaXB0aW9uXCIgaWQ9XCJkZXNjcmlwdGlvblwiIHJvd3M9XCIzXCIgbWF4bGVuZ3RoPVwiNTAwXCI+PC90ZXh0YXJlYT5cbiAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIiAqbmdJZj1cIiFwcmVmaWxsLmV4cGVjdGVkSW1wYWN0T24gfHwgcHJlZmlsbC5leHBlY3RlZEltcGFjdE9uLmxlbmd0aCA9PSAwXCIgc3Vic2NyaXB0U2l6aW5nPVwiZHluYW1pY1wiPlxuICAgICAgPG1hdC1sYWJlbD5XaGVyZSBkbyB5b3UgZXhwZWN0IGltcHJvdmVtZW50PzwvbWF0LWxhYmVsPlxuICAgICAgPG1hdC1zZWxlY3QgbXVsdGlwbGUgZm9ybUNvbnRyb2xOYW1lPVwiZXhwZWN0ZWRJbXBhY3RPblwiIGlkPVwiZXhwZWN0ZWRJbXBhY3RPblwiPlxuICAgICAgICAgPG1hdC1vcHRpb24gY2xhc3M9XCJzZWxlY3Qtb3B0aW9uXCIgW25nQ2xhc3NdPVwieydsb3dlcicgOiBmYWN0b3IubG93ZXJ9XCIgKm5nRm9yPVwibGV0IGZhY3RvciBvZiBmYWN0b3JzXCIgW3ZhbHVlXT1cImZhY3Rvci52YWx1ZVwiPnt7ZmFjdG9yLmxhYmVsfX08L21hdC1vcHRpb24+XG4gICAgICA8L21hdC1zZWxlY3Q+XG4gICA8L21hdC1mb3JtLWZpZWxkPlxuICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCIgKm5nSWY9XCIhcHJlZmlsbC5vd25lclwiIHN1YnNjcmlwdFNpemluZz1cImR5bmFtaWNcIj5cbiAgICAgIDxtYXQtbGFiZWw+V2hvIG93bnMgdGhpcyBhY3Rpb24/PC9tYXQtbGFiZWw+XG4gICAgICA8bWF0LXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJvd25lclwiIGlkPVwib3duZXJcIj5cbiAgICAgICAgIDxtYXQtb3B0aW9uIGNsYXNzPVwic2VsZWN0LW9wdGlvblwiICpuZ0Zvcj1cImxldCBvd25lciBvZiBvd25lckxpc3RcIiBbdmFsdWVdPVwib3duZXIua2V5XCI+e3tvd25lci5sYWJlbH19PC9tYXQtb3B0aW9uPlxuICAgICAgPC9tYXQtc2VsZWN0PlxuICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiICpuZ0lmPVwiIXByZWZpbGwudHlwZVwiIHN1YnNjcmlwdFNpemluZz1cImR5bmFtaWNcIj5cbiAgICAgIDxtYXQtbGFiZWw+V2hhdCBpcyB0aGUgdHlwZSBvZiBhY3Rpb24/PC9tYXQtbGFiZWw+XG4gICAgICA8bWF0LXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJ0eXBlXCIgaWQ9XCJ0eXBlXCI+XG4gICAgICAgICA8bWF0LW9wdGlvbiBjbGFzcz1cInNlbGVjdC1vcHRpb25cIiAqbmdGb3I9XCJsZXQgaW50ZXJ2ZW50aW9uVHlwZSBvZiBpbnRlcnZlbnRpb25UeXBlTGlzdFwiIFt2YWx1ZV09XCJpbnRlcnZlbnRpb25UeXBlLmtleVwiPnt7aW50ZXJ2ZW50aW9uVHlwZS5sYWJlbH19PC9tYXQtb3B0aW9uPlxuICAgICAgPC9tYXQtc2VsZWN0PlxuICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiICpuZ0lmPVwiIXByZWZpbGwuc3RhdGUgfHwgYWN0aW9uXCIgc3Vic2NyaXB0U2l6aW5nPVwiZHluYW1pY1wiPlxuICAgICAgPG1hdC1sYWJlbD5XaGF0IGlzIHRoZSBzdGF0ZSBvZiB0aGlzIGFjdGlvbj88L21hdC1sYWJlbD5cbiAgICAgIDxtYXQtc2VsZWN0IGZvcm1Db250cm9sTmFtZT1cInN0YXRlXCIgaWQ9XCJzdGF0ZVwiPlxuICAgICAgICAgPG1hdC1vcHRpb24gY2xhc3M9XCJzZWxlY3Qtb3B0aW9uXCIgKm5nRm9yPVwibGV0IHN0YXRlIG9mIHN0YXRlTGlzdFwiIFt2YWx1ZV09XCJzdGF0ZS5rZXlcIj57e3N0YXRlLmxhYmVsfX08L21hdC1vcHRpb24+XG4gICAgICA8L21hdC1zZWxlY3Q+XG4gICA8L21hdC1mb3JtLWZpZWxkPlxuICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCIgKm5nSWY9XCIhcHJlZmlsbC51cmwgfHwgcHJlZmlsbC51cmwubGVuZ3RoID09IDBcIiBzdWJzY3JpcHRTaXppbmc9XCJkeW5hbWljXCI+XG4gICAgICA8bWF0LWxhYmVsPlVybCBmb3IgYWRkaXRpb25hbCBkZXRhaWxzIChlLmcuIEpJUkEgb3IgVHJlbGxvKTwvbWF0LWxhYmVsPlxuICAgICAgPGlucHV0IG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cInVybFwiIGlkPVwidXJsXCIgcm93cz1cIjFcIiBtYXhsZW5ndGg9XCI1MDBcIj5cbiAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIiBzdWJzY3JpcHRTaXppbmc9XCJkeW5hbWljXCI+XG4gICAgICA8bWF0LWxhYmVsPldoZW4gc2hvdWxkIGl0IGJlIGRvbmU/PC9tYXQtbGFiZWw+XG4gICAgICA8aW5wdXQgbWF0SW5wdXQgW21hdERhdGVwaWNrZXJdPVwicGlja2VyXCIgZm9ybUNvbnRyb2xOYW1lPVwiZHVlXCIgaWQ9XCJkdWVcIj5cbiAgICAgIDxtYXQtZGF0ZXBpY2tlci10b2dnbGUgbWF0U3VmZml4IFtmb3JdPVwicGlja2VyXCI+PC9tYXQtZGF0ZXBpY2tlci10b2dnbGU+XG4gICAgICA8bWF0LWRhdGVwaWNrZXIgI3BpY2tlcj48L21hdC1kYXRlcGlja2VyPlxuICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgIDxkaXYgY2xhc3M9XCJ0b29sYmFyIGxlZnRyaWdodFwiPlxuICAgICAgPGRpdj5cbiAgICAgICAgIDxhIGNsYXNzPVwiYnV0dG9uIGJvcmRlcmxlc3MgZGVsZXRlXCIgaHJlZj1cImphdmFzY3JpcHQ6dm9pZChudWxsKTtcIiAoY2xpY2spPVwiZGVsZXRlKClcIiBpZD1cImRlbGV0ZVwiICpuZ0lmPVwiYWN0aW9uXCI+PHNwYW4gY2xhc3M9XCJpY29uIHBoLXRyYXNoXCI+PC9zcGFuPiBkZWxldGU8L2E+XG4gICAgICAgICA8YSBjbGFzcz1cImJ1dHRvbiBib3JkZXJsZXNzIGNhbmNlbFwiIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQobnVsbCk7XCIgKGNsaWNrKT1cImNhbmNlbCgpXCIgaWQ9XCJjYW5jZWxcIiAqbmdJZj1cImZvcm0uZGlydHkgfHwgYWN0aW9uXCI+PHNwYW4gY2xhc3M9XCJpY29uIHBoLXgtY2lyY2xlXCI+PC9zcGFuPiBjYW5jZWw8L2E+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxpbnB1dCBjbGFzcz1cImJ1dHRvbiBwcmltYXJ5XCIgdHlwZT1cInN1Ym1pdFwiIGlkPVwic3VibWl0XCIgdmFsdWU9XCJzYXZlXCIgLz5cbiAgIDwvZGl2PlxuPC9mb3JtPlxuIl19
164
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLW1hbmFnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2NydW10ZWFtc3VydmV5LXRvb2xzL3NyYy9saWIvYWN0aW9ucy9jb21wb25lbnRzL2FjdGlvbi1tYW5hZ2UvYWN0aW9uLW1hbmFnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2NydW10ZWFtc3VydmV5LXRvb2xzL3NyYy9saWIvYWN0aW9ucy9jb21wb25lbnRzL2FjdGlvbi1tYW5hZ2UvYWN0aW9uLW1hbmFnZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUE4QyxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUl4RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzVELE9BQU8sRUFBRSxrQkFBa0IsRUFBc0IsTUFBTSwyQ0FBMkMsQ0FBQztBQUVuRyxPQUFPLEVBQWEscUJBQXFCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFRakUsTUFBTSxPQUFPLHFCQUFzQixTQUFRLGFBQWE7SUFjckQsWUFBb0IsU0FBb0IsRUFBVSxXQUF3QixFQUFVLGFBQTRCLEVBQXNDLGNBQWdELEVBQVksUUFBcUI7UUFDcE8sS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBREUsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUFVLGdCQUFXLEdB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OzBCQWtCMEYsTUFBTTsyQkFBQyxrQkFBa0I7bUVBYjVILE9BQU87c0JBQXRCLEtBQUs7Z0JBQ1UsTUFBTTtzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgRm9ybUdyb3VwRGlyZWN0aXZlLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE1hdFNuYWNrQmFyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29tcG9uZW50QmFzZSB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudEJhc2UnO1xuaW1wb3J0IHsgTW9kZWxTdHJ1Y3R1cmVEdG8gfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvbW9kZWxTdHJ1Y3R1cmVEdG8nO1xuaW1wb3J0IHsgU2VsZWN0SXRlbSB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9zZWxlY3RMaXN0SXRlbSc7XG5pbXBvcnQgeyBWSUVXU1RBVEVfUFJPVklERVIsIFZpZXdNb2RlbFN0YXRlQmFzZSB9IGZyb20gJy4uLy4uLy4uL3ZpZXdNb2RlbC92aWV3TW9kZWxTdGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IElBY3Rpb25TdGF0ZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSUFjdGlvblN0YXRlJztcbmltcG9ydCB7IEFjdGlvbkR0bywgSW50ZXJ2ZW50aW9uU3RhdGVFbnVtIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2FjdGlvbkR0byc7XG5pbXBvcnQgeyBBY3Rpb25PcHRpb25EdG8gfSBmcm9tICcuLi8uLi9tb2RlbHMvYWN0aW9uT3B0aW9uc0R0byc7XG5pbXBvcnQgeyBBY3Rpb25QcmVmaWxsRHRvIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2FjdGlvblByZWZpbGxEdG8nO1xuaW1wb3J0IHsgQWN0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FjdGlvblNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgIHNlbGVjdG9yOiAnYWN0aW9uLW1hbmFnZScsXG4gICB0ZW1wbGF0ZVVybDogJy4vYWN0aW9uLW1hbmFnZS5jb21wb25lbnQuaHRtbCcsXG4gICBzdHlsZVVybHM6IFsnLi9hY3Rpb24tbWFuYWdlLmNvbXBvbmVudC5sZXNzJ11cbn0pXG5leHBvcnQgY2xhc3MgQWN0aW9uTWFuYWdlQ29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50QmFzZSB7XG4gICBASW5wdXQoKSBwdWJsaWMgcHJlZmlsbDogQWN0aW9uUHJlZmlsbER0bztcbiAgIEBJbnB1dCgpIHB1YmxpYyBhY3Rpb246IEFjdGlvbkR0bztcbiAgIHB1YmxpYyBmb3JtOiBGb3JtR3JvdXA7XG4gICBwdWJsaWMgaW50ZXJ2ZW50aW9uVHlwZUxpc3Q6IEFjdGlvbk9wdGlvbkR0b1tdO1xuICAgcHVibGljIGV4cGVjdGVkRWZmZWN0T25MaXN0OiBBY3Rpb25PcHRpb25EdG9bXTtcbiAgIHB1YmxpYyBzdGF0ZUxpc3Q6IEFjdGlvbk9wdGlvbkR0b1tdO1xuICAgcHVibGljIG93bmVyTGlzdDogQWN0aW9uT3B0aW9uRHRvW107XG4gICBwdWJsaWMgdGVhbXM6IEFjdGlvbk9wdGlvbkR0b1tdID0gW107XG4gICBwdWJsaWMgbXVsdGlwbGVUZWFtczogYm9vbGVhbjtcbiAgIHB1YmxpYyB2aWV3U3RhdGVTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgIHB1YmxpYyBzaG93VGVhbVNlbGVjdG9yOiBib29sZWFuID0gdHJ1ZTtcbiAgIHB1YmxpYyBmYWN0b3JzOiBTZWxlY3RJdGVtW107XG5cbiAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZGlhbG9nUmVmOiBNYXREaWFsb2csIHByaXZhdGUgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLCBwcml2YXRlIGFjdGlvblNlcnZpY2U6IEFjdGlvblNlcnZpY2UsIEBJbmplY3QoVklFV1NUQVRFX1BST1ZJREVSKSBwcml2YXRlIHZpZXdNb2RlbFN0YXRlOiBWaWV3TW9kZWxTdGF0ZUJhc2U8SUFjdGlvblN0YXRlPiwgcHJvdGVjdGVkIHNuYWNrQmFyOiBNYXRTbmFja0Jhcikge1xuICAgICAgc3VwZXIoc25hY2tCYXIpXG4gICB9XG5cbiAgIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICAgIHRoaXMuY3JlYXRlRm9ybSgpO1xuICAgICAgdGhpcy5vd25lckxpc3QgPSB0aGlzLmFjdGlvblNlcnZpY2UuZ2V0T3duZXJPcHRpb25zKCk7XG4gICAgICB0aGlzLmludGVydmVudGlvblR5cGVMaXN0ID0gdGhpcy5hY3Rpb25TZXJ2aWNlLmdldFR5cGVPcHRpb25zKCk7XG4gICAgICB0aGlzLnN0YXRlTGlzdCA9IHRoaXMuYWN0aW9uU2VydmljZS5nZXRTdGF0ZU9wdGlvbnMoKTtcblxuICAgICAgdGhpcy52aWV3U3RhdGVTdWJzY3JpcHRpb24gPSB0aGlzLnZpZXdNb2RlbFN0YXRlLmRhdGEuc3Vic2NyaWJlKHN1Y2Nlc3MgPT4ge1xuICAgICAgICAgaWYgKHN1Y2Nlc3MubG9hZGVkKSB7XG4gICAgICAgICAgICB0aGlzLmZhY3RvcnMgPSB0aGlzLmdldEZhY3RvcnMoc3VjY2Vzcy5mYWN0b3JTY29yZXMubW9kZWxTdHJ1Y3R1cmUpO1xuICAgICAgICAgICAgdGhpcy5leHBlY3RlZEVmZmVjdE9uTGlzdCA9IHN1Y2Nlc3MuZmFjdG9yU2NvcmVzLmZhY3RvclNjb3Jlcy5tYXAocCA9PiBuZXcgQWN0aW9uT3B0aW9uRHRvKHAua2V5LCBwLm5hbWUpKTtcblxuICAgICAgICAgICAgaWYgKHN1Y2Nlc3MudGVhbU1ldGFEYXRhICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgIHRoaXMudGVhbXMucHVzaChuZXcgQWN0aW9uT3B0aW9uRHRvKHN1Y2Nlc3MudGVhbU1ldGFEYXRhLnRlYW1LZXksIHN1Y2Nlc3MudGVhbU1ldGFEYXRhLm5hbWUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgdGhpcy50ZWFtcyA9IHN1Y2Nlc3MuZmFjdG9yU2NvcmVzLmNvbXBvc2l0aW9uLnBvaW50cy5wb2ludHMubWFwKHAgPT4gbmV3IEFjdGlvbk9wdGlvbkR0byhwLnB1YmxpY0tleSwgcC5uYW1lKSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0aGlzLnRlYW1zLmxlbmd0aCA9PSAxKSB7IHRoaXMucHJlZmlsbC50ZWFtS2V5ID0gdGhpcy50ZWFtc1swXS5rZXk7IH1cbiAgICAgICAgICAgIHRoaXMuc2hvd1RlYW1TZWxlY3RvciA9ICghdGhpcy5wcmVmaWxsLnRlYW1LZXkgfHwgdGhpcy5wcmVmaWxsLnRlYW1LZXkubGVuZ3RoID09IDApO1xuICAgICAgICAgICAgdGhpcy5hcHBseVByZWZpbGwoKTtcbiAgICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICBpZiAodGhpcy5hY3Rpb24gJiYgdGhpcy5hY3Rpb24ucHVibGljS2V5KSB7XG4gICAgICAgICB0aGlzLmZvcm0uY29udHJvbHMudGVhbUtleS5zZXRWYWx1ZSh0aGlzLmFjdGlvbi50ZWFtLnB1YmxpY0tleSk7XG4gICAgICAgICB0aGlzLmZvcm0uY29udHJvbHMucHVibGljS2V5LnNldFZhbHVlKHRoaXMuYWN0aW9uLnB1YmxpY0tleSk7XG4gICAgICAgICB0aGlzLmZvcm0uY29udHJvbHMuZGVzY3JpcHRpb24uc2V0VmFsdWUodGhpcy5hY3Rpb24uZGVzY3JpcHRpb24pO1xuICAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzLnVybC5zZXRWYWx1ZSh0aGlzLmFjdGlvbi51cmwpO1xuICAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzLmV4cGVjdGVkSW1wYWN0T24uc2V0VmFsdWUodGhpcy5hY3Rpb24uZXhwZWN0ZWRJbXBhY3RPbik7XG4gICAgICAgICB0aGlzLmZvcm0uY29udHJvbHMudHlwZS5zZXRWYWx1ZSh0aGlzLmFjdGlvbi50eXBlKTtcbiAgICAgICAgIHRoaXMuZm9ybS5jb250cm9scy5vd25lci5zZXRWYWx1ZSh0aGlzLmFjdGlvbi5vd25lcik7XG4gICAgICAgICB0aGlzLmZvcm0uY29udHJvbHMuc3RhdGUuc2V0VmFsdWUodGhpcy5hY3Rpb24uc3RhdGUpO1xuICAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzLmR1ZS5zZXRWYWx1ZSh0aGlzLmFjdGlvbi5kdWUpO1xuICAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzLnF1aWNrVGlwUHVibGljS2V5LnNldFZhbHVlKHRoaXMuYWN0aW9uLnF1aWNrVGlwUHVibGljS2V5KTtcbiAgICAgICAgIHRoaXMuc2hvd1RlYW1TZWxlY3RvciA9IGZhbHNlO1xuICAgICAgfVxuICAgfVxuXG4gICBwdWJsaWMgYXN5bmMgb25TdWJtaXQoZm9ybURpcmVjdGl2ZTogRm9ybUdyb3VwRGlyZWN0aXZlKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICBpZiAoIXRoaXMuZm9ybS52YWxpZCkgeyByZXR1cm47IH1cblxuICAgICAgaWYgKHRoaXMuZm9ybS5jb250cm9scy5wdWJsaWNLZXkudmFsdWUpIHtcbiAgICAgICAgIGF3YWl0IHRoaXMuYWN0aW9uU2VydmljZS51cGRhdGUodGhpcy5mb3JtLmNvbnRyb2xzLnRlYW1LZXkudmFsdWUsIHRoaXMuZm9ybS5nZXRSYXdWYWx1ZSgpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgICBhd2FpdCB0aGlzLmFjdGlvblNlcnZpY2UuY3JlYXRlKHRoaXMuZm9ybS5jb250cm9scy50ZWFtS2V5LnZhbHVlLCB0aGlzLmZvcm0uZ2V0UmF3VmFsdWUoKSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlQWxsKCk7XG4gICAgICB0aGlzLnZpZXdNb2RlbFN0YXRlLnVwZGF0aW5nLm5leHQodHJ1ZSk7XG4gICB9XG5cbiAgIHB1YmxpYyBhc3luYyBkZWxldGUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICBpZiAod2luZG93LmNvbmZpcm0oXCJBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoaXMgaW50ZXJ2ZW50aW9uP1wiKSkge1xuICAgICAgICAgYXdhaXQgdGhpcy5hY3Rpb25TZXJ2aWNlLmRlbGV0ZSh0aGlzLmZvcm0uY29udHJvbHMudGVhbUtleS52YWx1ZSwgdGhpcy5mb3JtLmNvbnRyb2xzLnB1YmxpY0tleS52YWx1ZSk7XG4gICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZUFsbCgpO1xuICAgICAgICAgdGhpcy52aWV3TW9kZWxTdGF0ZS51cGRhdGluZy5uZXh0KHRydWUpO1xuICAgICAgfVxuICAgfVxuXG4gICBwdWJsaWMgY2FuY2VsKCkge1xuICAgICAgdGhpcy5yZXNldEZvcm0obnVsbCk7XG4gICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZUFsbCgpO1xuICAgfVxuXG4gICBwcml2YXRlIHJlc2V0Rm9ybShmb3JtRGlyZWN0aXZlOiBGb3JtR3JvdXBEaXJlY3RpdmUpOiB2b2lkIHtcbiAgICAgIHRoaXMuc2hvd1RlYW1TZWxlY3RvciA9ICghdGhpcy5wcmVmaWxsLnRlYW1LZXkgfHwgdGhpcy5wcmVmaWxsLnRlYW1LZXkubGVuZ3RoID09IDApO1xuICAgICAgdGhpcy5mb3JtLnJlc2V0KCk7XG4gICAgICB0aGlzLmFjdGlvbiA9IG51bGw7XG5cbiAgICAgIGlmIChmb3JtRGlyZWN0aXZlKSB7XG4gICAgICAgICBmb3JtRGlyZWN0aXZlLnJlc2V0Rm9ybSgpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmZvcm0uY29udHJvbHMuc3RhdGUuc2V0VmFsdWUoSW50ZXJ2ZW50aW9uU3RhdGVFbnVtLm9wZW4pO1xuICAgICAgdGhpcy5hcHBseVByZWZpbGwoKTtcbiAgIH1cblxuICAgcHJpdmF0ZSBnZXRGYWN0b3JzKG1vZGVsOiBNb2RlbFN0cnVjdHVyZUR0byk6IFNlbGVjdEl0ZW1bXSB7XG4gICAgICBpZiAobW9kZWwgPT0gbnVsbCB8fCBtb2RlbC5kZWZpbml0aW9uID09IG51bGwgfHwgbW9kZWwuZGVmaW5pdGlvbi5mYWN0b3JzID09IG51bGwpIHsgcmV0dXJuIG51bGw7IH1cbiAgICAgIHZhciByZXN1bHQ6IFNlbGVjdEl0ZW1bXSA9IFtdO1xuXG4gICAgICBmb3IgKHZhciBmYWN0b3Igb2YgbW9kZWwuZGVmaW5pdGlvbi5mYWN0b3JzLmZpbHRlcihwID0+IHAucGFyZW50S2V5ID09IG51bGwpKSB7XG4gICAgICAgICByZXN1bHQucHVzaChuZXcgU2VsZWN0SXRlbShmYWN0b3IucHVibGljS2V5LCBmYWN0b3IubmFtZSwgZmFsc2UpKTtcblxuICAgICAgICAgZm9yICh2YXIgbG93ZXJEaW1lbnNpb24gb2YgZmFjdG9yLmxvd2VyKSB7XG4gICAgICAgICAgICByZXN1bHQucHVzaChuZXcgU2VsZWN0SXRlbShsb3dlckRpbWVuc2lvbi5wdWJsaWNLZXksIGxvd2VyRGltZW5zaW9uLm5hbWUsIHRydWUpKTtcbiAgICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgIH1cblxuICAgcHJpdmF0ZSBjcmVhdGVGb3JtKCk6IHZvaWQge1xuICAgICAgdGhpcy5mb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICAgICBwdWJsaWNLZXk6IFtcIlwiXSxcbiAgICAgICAgIHRlYW1LZXk6IFtcIlwiLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgICAgcXVpY2tUaXBQdWJsaWNLZXk6IFtcIlwiXSxcbiAgICAgICAgIGRlc2NyaXB0aW9uOiBbXCJcIiwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDUwMCldXSxcbiAgICAgICAgIHVybDogW1wiXCIsIFtWYWxpZGF0b3JzLm1heExlbmd0aCg1MDApXV0sXG4gICAgICAgICBvd25lcjogW1wiXCIsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgICAgc3RhdGU6IFtcIlwiLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgICAgIHR5cGU6IFtcIlwiLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgICAgIGR1ZTogW1wiXCJdLFxuICAgICAgICAgZXhwZWN0ZWRJbXBhY3RPbjogW1wiXCIsIFZhbGlkYXRvcnMucmVxdWlyZWRdXG4gICAgICB9KTtcbiAgIH1cblxuICAgcHJpdmF0ZSBhcHBseVByZWZpbGwoKTogdm9pZCB7XG4gICAgICBpZiAodGhpcy5wcmVmaWxsKSB7XG4gICAgICAgICB0aGlzLmZvcm0uY29udHJvbHMudGVhbUtleS5zZXRWYWx1ZSh0aGlzLnByZWZpbGwudGVhbUtleSk7XG4gICAgICAgICB0aGlzLmZvcm0uY29udHJvbHMuZGVzY3JpcHRpb24uc2V0VmFsdWUodGhpcy5wcmVmaWxsLmRlc2NyaXB0aW9uKTtcbiAgICAgICAgIHRoaXMuZm9ybS5jb250cm9scy5leHBlY3RlZEltcGFjdE9uLnNldFZhbHVlKHRoaXMucHJlZmlsbC5leHBlY3RlZEltcGFjdE9uKTtcbiAgICAgICAgIHRoaXMuZm9ybS5jb250cm9scy50eXBlLnNldFZhbHVlKHRoaXMucHJlZmlsbC50eXBlKTtcbiAgICAgICAgIHRoaXMuZm9ybS5jb250cm9scy5vd25lci5zZXRWYWx1ZSh0aGlzLnByZWZpbGwub3duZXIpO1xuICAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzLnN0YXRlLnNldFZhbHVlKHRoaXMucHJlZmlsbC5zdGF0ZSk7XG4gICAgICAgICB0aGlzLmZvcm0uY29udHJvbHMudXJsLnNldFZhbHVlKHRoaXMucHJlZmlsbC51cmwpO1xuICAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzLnF1aWNrVGlwUHVibGljS2V5LnNldFZhbHVlKHRoaXMucHJlZmlsbC5xdWlja1RpcFB1YmxpY0tleSk7XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgIHRoaXMucHJlZmlsbCA9IG5ldyBBY3Rpb25QcmVmaWxsRHRvKCk7XG4gICAgICAgICB0aGlzLnByZWZpbGwuZXhwZWN0ZWRJbXBhY3RPbiA9IFtdO1xuICAgICAgfVxuICAgfVxuXG4gICBuZ09uRGVzdHJveSgpIHtcbiAgICAgIGlmICh0aGlzLnZpZXdTdGF0ZVN1YnNjcmlwdGlvbikge1xuICAgICAgICAgdGhpcy52aWV3U3RhdGVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgIH1cbiAgIH1cbn1cbiIsIjxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiIChuZ1N1Ym1pdCk9XCJvblN1Ym1pdChmb3JtRGlyZWN0aXZlKVwiICNmb3JtRGlyZWN0aXZlPVwibmdGb3JtXCIgY2xhc3M9XCJtYW5hZ2UtYWN0aW9uLWZvcm1cIj5cbiAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiICpuZ0lmPVwic2hvd1RlYW1TZWxlY3RvclwiPlxuICAgICAgPG1hdC1sYWJlbD5XaGljaCB0ZWFtIG93bnMgdGhpcyBhY3Rpb24/PC9tYXQtbGFiZWw+XG4gICAgICA8bWF0LXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJ0ZWFtS2V5XCIgaWQ9XCJ0ZWFtS2V5XCI+XG4gICAgICAgICA8bWF0LW9wdGlvbiBjbGFzcz1cInNlbGVjdC1vcHRpb25cIiAqbmdGb3I9XCJsZXQgdGVhbSBvZiB0ZWFtc1wiIFt2YWx1ZV09XCJ0ZWFtLmtleVwiPnt7dGVhbS5sYWJlbH19PC9tYXQtb3B0aW9uPlxuICAgICAgPC9tYXQtc2VsZWN0PlxuICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCIgc3Vic2NyaXB0U2l6aW5nPVwiZHluYW1pY1wiPlxuICAgICAgPG1hdC1sYWJlbD5FbnRlciBzaG9ydCBkZXNjcmlwdGlvbjwvbWF0LWxhYmVsPlxuICAgICAgPHRleHRhcmVhIG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cImRlc2NyaXB0aW9uXCIgaWQ9XCJkZXNjcmlwdGlvblwiIHJvd3M9XCIzXCIgbWF4bGVuZ3RoPVwiNTAwXCI+PC90ZXh0YXJlYT5cbiAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIiAqbmdJZj1cIiFwcmVmaWxsLmV4cGVjdGVkSW1wYWN0T24gfHwgcHJlZmlsbC5leHBlY3RlZEltcGFjdE9uLmxlbmd0aCA9PSAwXCIgc3Vic2NyaXB0U2l6aW5nPVwiZHluYW1pY1wiPlxuICAgICAgPG1hdC1sYWJlbD5XaGVyZSBkbyB5b3UgZXhwZWN0IGltcHJvdmVtZW50PzwvbWF0LWxhYmVsPlxuICAgICAgPG1hdC1zZWxlY3QgbXVsdGlwbGUgZm9ybUNvbnRyb2xOYW1lPVwiZXhwZWN0ZWRJbXBhY3RPblwiIGlkPVwiZXhwZWN0ZWRJbXBhY3RPblwiPlxuICAgICAgICAgPG1hdC1vcHRpb24gY2xhc3M9XCJzZWxlY3Qtb3B0aW9uXCIgW25nQ2xhc3NdPVwieydsb3dlcicgOiBmYWN0b3IubG93ZXJ9XCIgKm5nRm9yPVwibGV0IGZhY3RvciBvZiBmYWN0b3JzXCIgW3ZhbHVlXT1cImZhY3Rvci52YWx1ZVwiPnt7ZmFjdG9yLmxhYmVsfX08L21hdC1vcHRpb24+XG4gICAgICA8L21hdC1zZWxlY3Q+XG4gICA8L21hdC1mb3JtLWZpZWxkPlxuICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCIgKm5nSWY9XCIhcHJlZmlsbC5vd25lclwiIHN1YnNjcmlwdFNpemluZz1cImR5bmFtaWNcIj5cbiAgICAgIDxtYXQtbGFiZWw+V2hvIG93bnMgdGhpcyBhY3Rpb24/PC9tYXQtbGFiZWw+XG4gICAgICA8bWF0LXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJvd25lclwiIGlkPVwib3duZXJcIj5cbiAgICAgICAgIDxtYXQtb3B0aW9uIGNsYXNzPVwic2VsZWN0LW9wdGlvblwiICpuZ0Zvcj1cImxldCBvd25lciBvZiBvd25lckxpc3RcIiBbdmFsdWVdPVwib3duZXIua2V5XCI+e3tvd25lci5sYWJlbH19PC9tYXQtb3B0aW9uPlxuICAgICAgPC9tYXQtc2VsZWN0PlxuICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiICpuZ0lmPVwiIXByZWZpbGwudHlwZVwiIHN1YnNjcmlwdFNpemluZz1cImR5bmFtaWNcIj5cbiAgICAgIDxtYXQtbGFiZWw+V2hhdCBpcyB0aGUgdHlwZSBvZiBhY3Rpb24/PC9tYXQtbGFiZWw+XG4gICAgICA8bWF0LXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJ0eXBlXCIgaWQ9XCJ0eXBlXCI+XG4gICAgICAgICA8bWF0LW9wdGlvbiBjbGFzcz1cInNlbGVjdC1vcHRpb25cIiAqbmdGb3I9XCJsZXQgaW50ZXJ2ZW50aW9uVHlwZSBvZiBpbnRlcnZlbnRpb25UeXBlTGlzdFwiIFt2YWx1ZV09XCJpbnRlcnZlbnRpb25UeXBlLmtleVwiPnt7aW50ZXJ2ZW50aW9uVHlwZS5sYWJlbH19PC9tYXQtb3B0aW9uPlxuICAgICAgPC9tYXQtc2VsZWN0PlxuICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiICpuZ0lmPVwiIXByZWZpbGwuc3RhdGUgfHwgYWN0aW9uXCIgc3Vic2NyaXB0U2l6aW5nPVwiZHluYW1pY1wiPlxuICAgICAgPG1hdC1sYWJlbD5XaGF0IGlzIHRoZSBzdGF0ZSBvZiB0aGlzIGFjdGlvbj88L21hdC1sYWJlbD5cbiAgICAgIDxtYXQtc2VsZWN0IGZvcm1Db250cm9sTmFtZT1cInN0YXRlXCIgaWQ9XCJzdGF0ZVwiPlxuICAgICAgICAgPG1hdC1vcHRpb24gY2xhc3M9XCJzZWxlY3Qtb3B0aW9uXCIgKm5nRm9yPVwibGV0IHN0YXRlIG9mIHN0YXRlTGlzdFwiIFt2YWx1ZV09XCJzdGF0ZS5rZXlcIj57e3N0YXRlLmxhYmVsfX08L21hdC1vcHRpb24+XG4gICAgICA8L21hdC1zZWxlY3Q+XG4gICA8L21hdC1mb3JtLWZpZWxkPlxuICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCIgKm5nSWY9XCIhcHJlZmlsbC51cmwgfHwgcHJlZmlsbC51cmwubGVuZ3RoID09IDBcIiBzdWJzY3JpcHRTaXppbmc9XCJkeW5hbWljXCI+XG4gICAgICA8bWF0LWxhYmVsPlVybCBmb3IgYWRkaXRpb25hbCBkZXRhaWxzIChlLmcuIEpJUkEgb3IgVHJlbGxvKTwvbWF0LWxhYmVsPlxuICAgICAgPGlucHV0IG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cInVybFwiIGlkPVwidXJsXCIgcm93cz1cIjFcIiBtYXhsZW5ndGg9XCI1MDBcIj5cbiAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIiBzdWJzY3JpcHRTaXppbmc9XCJkeW5hbWljXCI+XG4gICAgICA8bWF0LWxhYmVsPldoZW4gc2hvdWxkIGl0IGJlIGRvbmU/PC9tYXQtbGFiZWw+XG4gICAgICA8aW5wdXQgbWF0SW5wdXQgW21hdERhdGVwaWNrZXJdPVwicGlja2VyXCIgZm9ybUNvbnRyb2xOYW1lPVwiZHVlXCIgaWQ9XCJkdWVcIj5cbiAgICAgIDxtYXQtZGF0ZXBpY2tlci10b2dnbGUgbWF0U3VmZml4IFtmb3JdPVwicGlja2VyXCI+PC9tYXQtZGF0ZXBpY2tlci10b2dnbGU+XG4gICAgICA8bWF0LWRhdGVwaWNrZXIgI3BpY2tlcj48L21hdC1kYXRlcGlja2VyPlxuICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgIDxkaXYgY2xhc3M9XCJ0b29sYmFyIGxlZnRyaWdodFwiPlxuICAgICAgPGRpdj5cbiAgICAgICAgIDxhIGNsYXNzPVwiYnV0dG9uIGJvcmRlcmxlc3MgZGVsZXRlXCIgaHJlZj1cImphdmFzY3JpcHQ6dm9pZChudWxsKTtcIiAoY2xpY2spPVwiZGVsZXRlKClcIiBpZD1cImRlbGV0ZVwiICpuZ0lmPVwiYWN0aW9uXCI+PHNwYW4gY2xhc3M9XCJpY29uIHBoLXRyYXNoXCI+PC9zcGFuPiBkZWxldGU8L2E+XG4gICAgICAgICA8YSBjbGFzcz1cImJ1dHRvbiBib3JkZXJsZXNzIGNhbmNlbFwiIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQobnVsbCk7XCIgKGNsaWNrKT1cImNhbmNlbCgpXCIgaWQ9XCJjYW5jZWxcIiAqbmdJZj1cImZvcm0uZGlydHkgfHwgYWN0aW9uXCI+PHNwYW4gY2xhc3M9XCJpY29uIHBoLXgtY2lyY2xlXCI+PC9zcGFuPiBjYW5jZWw8L2E+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxpbnB1dCBjbGFzcz1cImJ1dHRvbiBwcmltYXJ5XCIgdHlwZT1cInN1Ym1pdFwiIGlkPVwic3VibWl0XCIgdmFsdWU9XCJzYXZlXCIgLz5cbiAgIDwvZGl2PlxuPC9mb3JtPlxuIl19
@@ -61,11 +61,11 @@ export class ActionTileComponent extends ComponentWithViewStateBase {
61
61
  }
62
62
  ;
63
63
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: ActionTileComponent, deps: [{ token: i1.MatSnackBar }, { token: i2.ActionService }, { token: VIEWSTATE_PROVIDER }, { token: i3.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
64
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.6", type: ActionTileComponent, selector: "action-tile", inputs: { action: "action", multipleTeams: "multipleTeams", actionManageComponent: "actionManageComponent" }, usesInheritance: true, ngImport: i0, template: "<div [id]=\"'action-' + action.publicKey\" class=\"wirebox action contentwithborders\" [ngClass]=\"[multipleTeams ? action.team.colorString : '', action.isDue ? 'due' : '']\" *ngIf=\"!action.deleted\" editActionDialog [action]=\"action\">\n <div class=\"summary property-description\" [innerHTML]=\"action.description\">\n </div>\n <div class=\"expectedeffect\">\n <h4>Should improve</h4>\n <span class=\"badge positive\" *ngFor=\"let area of action.expectedImpactOnLabels\">{{ area }}</span>\n </div>\n <div class=\"details\">\n <div class=\"properties\">\n <div class=\"property property-age\"><i class=\"ph-clock-bold icon\"></i> {{action.ageInDays}} days old</div>\n <div class=\"property property-team\" *ngIf=\"multipleTeams\"><i class=\"ph-users-three-bold icon\"></i> {{action.team.name}}</div>\n <div class=\"property property-owner\"><i class=\"ph-user-bold icon\"></i> {{action.owner | interventionOwnerToString}}</div>\n <div class=\"property property-type\"><i class=\"ph-tag-bold icon\"></i> {{action.type | interventionTypeToString}}</div>\n <div class=\"property property-url\" *ngIf=\"action.url\"><i class=\"ph-arrow-square-in-bold icon\"></i> <a [href]=\"action.url\" target=\"_blank\">open detail url</a></div>\n <div class=\"property property-due\" *ngIf=\"action.due\"><i class=\"ph-calendar-bold icon\" *ngIf=\"!action.isDue\"></i><i class=\"ph-bell-simple-ringing-bold\" *ngIf=\"action.isDue\"></i> Due on {{action.due | date}}</div>\n </div>\n <span class=\"status unimpeded ph-fire-simple\" matTooltip=\"Mark this item as impeded. This means that help from outside the team (e.g. management, coaches) is urgently needed to complete on this action. Impeded actions are highlighted in the Teams Dashboard.'\" *ngIf=\"action.state == 'Open'\" (click)=\"impede($event, action)\"></span>\n <span class=\"status impeded\" matTooltip=\"This action is impeded. The team needs urgent help from outside team to complete this action.\" *ngIf=\"action.state == 'Impeded'\" (click)=\"unimpede($event, action)\">\n <img src=\"/assets/img/impeded.svg\" class=\"icon\">\n </span>\n <div>\n <span class=\"status obsolete ph-eye-slash-bold\" matTooltip=\"This action was marked obsolete. Click to re-open this action\" *ngIf=\"action.state == 'Obsolete'\" (click)=\"open($event, action)\"></span>\n <span class=\"status checked ph-check-circle-fill\" matTooltip=\"Mark this action as uncompleted\" *ngIf=\"action.state == 'Completed'\" (click)=\"open($event, action)\"></span>\n <span class=\"status unchecked ph-circle\" matTooltip=\"Mark this action as completed\" *ngIf=\"action.state == 'Open' || action.state == 'Impeded'\" (click)=\"complete($event, action)\"></span>\n </div>\n </div>\n</div>\n", 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%}.action{display:flex;flex-direction:column;margin-bottom:0;cursor:pointer;box-sizing:border-box;height:100%}.action.due{border-color:red}.action.due .property-due{font-family:StevieSans,sans-serif;font-weight:600!important;color:red!important}.action.green{border-left:#00af77 15px solid}.action.yellow{border-left:#fff73f 15px solid}.action.red{border-left:#ef6f00 15px solid}.action.pink{border-left:#ef4f9f 15px solid}.action.blue{border-left:#1F3F8F 15px solid}.action.gray{border-left:#2f2f2f 15px solid}.action.deleted{background:#00f}.action h4{margin:0 0 15px;text-transform:uppercase;font-style:normal;font-weight:600;font-size:15px;line-height:100%}.action .summary{flex:1 0 auto;margin-bottom:30px;word-break:break-word;white-space:pre-wrap}.action .expectedeffect .badge{margin-right:10px;display:inline-block}.action .details{margin-top:60px;position:relative}.action .details .properties .property{margin-bottom:15px;display:grid;grid-gap:15px;grid-template-columns:15px auto;text-transform:uppercase;font-style:normal;font-weight:600;font-size:15px;line-height:100%;color:#000;align-items:center}.action .details .properties .property a{text-decoration:none}.action .details .properties .property img{width:20px}.action .details .properties .property img line,.action .details .properties .property img circle,.action .details .properties .property img polyline,.action .details .properties .property img path,.action .details .properties .property img rect{stroke-width:16}.action .details .status{position:absolute;right:15px;bottom:15px;cursor:pointer;width:35px;font-size:35px}.action .details .status.impeded,.action .details .status.unimpeded{bottom:55px}.action .details .status.unimpeded{-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;opacity:.3}.action .details .status.unimpeded:hover{opacity:1}\n"], dependencies: [{ kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.OpenEditActionDialogDirective, selector: "[editActionDialog]", inputs: ["action"] }, { kind: "pipe", type: i5.DatePipe, name: "date" }, { kind: "pipe", type: i7.InterventionTypeToStringPipe, name: "interventionTypeToString" }, { kind: "pipe", type: i8.InterventionOwnerToStringPipe, name: "interventionOwnerToString" }] }); }
64
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.6", type: ActionTileComponent, selector: "action-tile", inputs: { action: "action", multipleTeams: "multipleTeams", actionManageComponent: "actionManageComponent" }, usesInheritance: true, ngImport: i0, template: "<div [id]=\"'action-' + action.publicKey\" class=\"wirebox action contentwithborders\" [ngClass]=\"[multipleTeams ? action.team.colorString : '', action.isDue ? 'due' : '']\" *ngIf=\"!action.deleted\" editActionDialog [action]=\"action\">\n <div class=\"summary property-description\" [innerHTML]=\"action.description\">\n </div>\n <div class=\"expectedeffect\">\n <h4>Should improve</h4>\n <span class=\"badge positive\" *ngFor=\"let area of action.expectedImpactOnLabels\">{{ area }}</span>\n </div>\n <div class=\"details\">\n <div class=\"properties\">\n <div class=\"property property-age\"><i class=\"ph-clock-bold icon\"></i> {{action.ageInDays}} days old</div>\n <div class=\"property property-team\" *ngIf=\"multipleTeams\"><i class=\"ph-users-three-bold icon\"></i> {{action.team.name}}</div>\n <div class=\"property property-owner\"><i class=\"ph-user-bold icon\"></i> {{action.owner | interventionOwnerToString}}</div>\n <div class=\"property property-type\"><i class=\"ph-tag-bold icon\"></i> {{action.type | interventionTypeToString}}</div>\n <div class=\"property property-url\" *ngIf=\"action.url\"><i class=\"ph-arrow-square-in-bold icon\"></i> <a [href]=\"action.url\" target=\"_blank\">open detail url</a></div>\n <div class=\"property property-due\" *ngIf=\"action.due\"><i class=\"ph-calendar-bold icon\" *ngIf=\"!action.isDue\"></i><i class=\"ph-bell-simple-ringing-bold\" *ngIf=\"action.isDue\"></i> Due on {{action.due | date}}</div>\n </div>\n <span class=\"status unimpeded ph-fire-simple\" matTooltip=\"Mark this item as impeded. This means that help from outside the team (e.g. management, coaches) is urgently needed to complete on this action. Impeded actions are highlighted in the Teams Dashboard.'\" *ngIf=\"action.state == 'Open'\" (click)=\"impede($event, action)\"></span>\n <span class=\"status impeded\" matTooltip=\"This action is impeded. The team needs urgent help from outside team to complete this action.\" *ngIf=\"action.state == 'Impeded'\" (click)=\"unimpede($event, action)\">\n <img src=\"/assets/img/impeded.svg\" class=\"icon\">\n </span>\n <div>\n <span class=\"status obsolete ph-eye-slash-bold\" matTooltip=\"This action was marked obsolete. Click to re-open this action\" *ngIf=\"action.state == 'Obsolete'\" (click)=\"open($event, action)\"></span>\n <span class=\"status checked ph-check-circle-fill\" matTooltip=\"Mark this action as uncompleted\" *ngIf=\"action.state == 'Completed'\" (click)=\"open($event, action)\"></span>\n <span class=\"status unchecked ph-circle\" matTooltip=\"Mark this action as completed\" *ngIf=\"action.state == 'Open' || action.state == 'Impeded'\" (click)=\"complete($event, action)\"></span>\n </div>\n </div>\n</div>\n", 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%}.bigletteredbutton{-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;text-decoration:none;background:#ffffff1a;margin-bottom:10px;display:flex;align-content:center;border-radius:20px;padding:15px;font-size:24px;border:2px solid #1F3F8F;border-bottom:6px solid #1F3F8F;color:#fff;align-items:center;cursor:pointer}.bigletteredbutton .free{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;background:#fff73f;color:#2f2f2f;padding:3px 5px;margin-left:20px;border-radius:10px}.bigletteredbutton .plan{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;background:#fff;color:#2f2f2f;padding:3px 5px;margin-left:20px;border-radius:10px}.bigletteredbutton:hover,.bigletteredbutton.selected{border:2px solid #fff73f;border-bottom:6px solid #fff73f}.bigletteredbutton .button-letter{-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;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;background:#fff73f;color:#1f3f8f;margin-right:20px}.bigletteredbutton .button-letter .ph{color:#1f3f8f}.bigletteredbutton .button-letter:hover{background:#1f3f8f;color:#fff73f}.bigletteredbutton .button-letter:hover .ph{color:#fff73f}.roundicon-yellow{-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;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;background:#fff73f;color:#1f3f8f}.roundicon-yellow .ph{color:#1f3f8f}.roundicon-yellow:hover{background:#1f3f8f;color:#fff73f}.roundicon-yellow:hover .ph{color:#fff73f}.roundicon{-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;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center}.roundicon-large{-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;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;border-radius:60px;height:120px;width:120px}.action{display:flex;flex-direction:column;margin-bottom:0;cursor:pointer;box-sizing:border-box;height:100%}.action.due{border-color:red}.action.due .property-due{font-family:StevieSans,sans-serif;font-weight:600!important;color:red!important}.action.green{border-left:#00af77 15px solid}.action.yellow{border-left:#fff73f 15px solid}.action.red{border-left:#ef6f00 15px solid}.action.pink{border-left:#ef4f9f 15px solid}.action.blue{border-left:#1F3F8F 15px solid}.action.gray{border-left:#2f2f2f 15px solid}.action.deleted{background:#00f}.action h4{margin:0 0 15px;text-transform:uppercase;font-style:normal;font-weight:600;font-size:15px;line-height:100%}.action .summary{flex:1 0 auto;margin-bottom:30px;word-break:break-word;white-space:pre-wrap}.action .expectedeffect .badge{margin-right:10px;display:inline-block}.action .details{margin-top:60px;position:relative}.action .details .properties .property{margin-bottom:15px;display:grid;grid-gap:15px;grid-template-columns:15px auto;text-transform:uppercase;font-style:normal;font-weight:600;font-size:15px;line-height:100%;color:#000;align-items:center}.action .details .properties .property a{text-decoration:none}.action .details .properties .property img{width:20px}.action .details .properties .property img line,.action .details .properties .property img circle,.action .details .properties .property img polyline,.action .details .properties .property img path,.action .details .properties .property img rect{stroke-width:16}.action .details .status{position:absolute;right:15px;bottom:15px;cursor:pointer;width:35px;font-size:35px}.action .details .status.impeded,.action .details .status.unimpeded{bottom:55px}.action .details .status.unimpeded{-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;opacity:.3}.action .details .status.unimpeded:hover{opacity:1}\n"], dependencies: [{ kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.OpenEditActionDialogDirective, selector: "[editActionDialog]", inputs: ["action"] }, { kind: "pipe", type: i5.DatePipe, name: "date" }, { kind: "pipe", type: i7.InterventionTypeToStringPipe, name: "interventionTypeToString" }, { kind: "pipe", type: i8.InterventionOwnerToStringPipe, name: "interventionOwnerToString" }] }); }
65
65
  }
66
66
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: ActionTileComponent, decorators: [{
67
67
  type: Component,
68
- args: [{ selector: 'action-tile', template: "<div [id]=\"'action-' + action.publicKey\" class=\"wirebox action contentwithborders\" [ngClass]=\"[multipleTeams ? action.team.colorString : '', action.isDue ? 'due' : '']\" *ngIf=\"!action.deleted\" editActionDialog [action]=\"action\">\n <div class=\"summary property-description\" [innerHTML]=\"action.description\">\n </div>\n <div class=\"expectedeffect\">\n <h4>Should improve</h4>\n <span class=\"badge positive\" *ngFor=\"let area of action.expectedImpactOnLabels\">{{ area }}</span>\n </div>\n <div class=\"details\">\n <div class=\"properties\">\n <div class=\"property property-age\"><i class=\"ph-clock-bold icon\"></i> {{action.ageInDays}} days old</div>\n <div class=\"property property-team\" *ngIf=\"multipleTeams\"><i class=\"ph-users-three-bold icon\"></i> {{action.team.name}}</div>\n <div class=\"property property-owner\"><i class=\"ph-user-bold icon\"></i> {{action.owner | interventionOwnerToString}}</div>\n <div class=\"property property-type\"><i class=\"ph-tag-bold icon\"></i> {{action.type | interventionTypeToString}}</div>\n <div class=\"property property-url\" *ngIf=\"action.url\"><i class=\"ph-arrow-square-in-bold icon\"></i> <a [href]=\"action.url\" target=\"_blank\">open detail url</a></div>\n <div class=\"property property-due\" *ngIf=\"action.due\"><i class=\"ph-calendar-bold icon\" *ngIf=\"!action.isDue\"></i><i class=\"ph-bell-simple-ringing-bold\" *ngIf=\"action.isDue\"></i> Due on {{action.due | date}}</div>\n </div>\n <span class=\"status unimpeded ph-fire-simple\" matTooltip=\"Mark this item as impeded. This means that help from outside the team (e.g. management, coaches) is urgently needed to complete on this action. Impeded actions are highlighted in the Teams Dashboard.'\" *ngIf=\"action.state == 'Open'\" (click)=\"impede($event, action)\"></span>\n <span class=\"status impeded\" matTooltip=\"This action is impeded. The team needs urgent help from outside team to complete this action.\" *ngIf=\"action.state == 'Impeded'\" (click)=\"unimpede($event, action)\">\n <img src=\"/assets/img/impeded.svg\" class=\"icon\">\n </span>\n <div>\n <span class=\"status obsolete ph-eye-slash-bold\" matTooltip=\"This action was marked obsolete. Click to re-open this action\" *ngIf=\"action.state == 'Obsolete'\" (click)=\"open($event, action)\"></span>\n <span class=\"status checked ph-check-circle-fill\" matTooltip=\"Mark this action as uncompleted\" *ngIf=\"action.state == 'Completed'\" (click)=\"open($event, action)\"></span>\n <span class=\"status unchecked ph-circle\" matTooltip=\"Mark this action as completed\" *ngIf=\"action.state == 'Open' || action.state == 'Impeded'\" (click)=\"complete($event, action)\"></span>\n </div>\n </div>\n</div>\n", 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%}.action{display:flex;flex-direction:column;margin-bottom:0;cursor:pointer;box-sizing:border-box;height:100%}.action.due{border-color:red}.action.due .property-due{font-family:StevieSans,sans-serif;font-weight:600!important;color:red!important}.action.green{border-left:#00af77 15px solid}.action.yellow{border-left:#fff73f 15px solid}.action.red{border-left:#ef6f00 15px solid}.action.pink{border-left:#ef4f9f 15px solid}.action.blue{border-left:#1F3F8F 15px solid}.action.gray{border-left:#2f2f2f 15px solid}.action.deleted{background:#00f}.action h4{margin:0 0 15px;text-transform:uppercase;font-style:normal;font-weight:600;font-size:15px;line-height:100%}.action .summary{flex:1 0 auto;margin-bottom:30px;word-break:break-word;white-space:pre-wrap}.action .expectedeffect .badge{margin-right:10px;display:inline-block}.action .details{margin-top:60px;position:relative}.action .details .properties .property{margin-bottom:15px;display:grid;grid-gap:15px;grid-template-columns:15px auto;text-transform:uppercase;font-style:normal;font-weight:600;font-size:15px;line-height:100%;color:#000;align-items:center}.action .details .properties .property a{text-decoration:none}.action .details .properties .property img{width:20px}.action .details .properties .property img line,.action .details .properties .property img circle,.action .details .properties .property img polyline,.action .details .properties .property img path,.action .details .properties .property img rect{stroke-width:16}.action .details .status{position:absolute;right:15px;bottom:15px;cursor:pointer;width:35px;font-size:35px}.action .details .status.impeded,.action .details .status.unimpeded{bottom:55px}.action .details .status.unimpeded{-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;opacity:.3}.action .details .status.unimpeded:hover{opacity:1}\n"] }]
68
+ args: [{ selector: 'action-tile', template: "<div [id]=\"'action-' + action.publicKey\" class=\"wirebox action contentwithborders\" [ngClass]=\"[multipleTeams ? action.team.colorString : '', action.isDue ? 'due' : '']\" *ngIf=\"!action.deleted\" editActionDialog [action]=\"action\">\n <div class=\"summary property-description\" [innerHTML]=\"action.description\">\n </div>\n <div class=\"expectedeffect\">\n <h4>Should improve</h4>\n <span class=\"badge positive\" *ngFor=\"let area of action.expectedImpactOnLabels\">{{ area }}</span>\n </div>\n <div class=\"details\">\n <div class=\"properties\">\n <div class=\"property property-age\"><i class=\"ph-clock-bold icon\"></i> {{action.ageInDays}} days old</div>\n <div class=\"property property-team\" *ngIf=\"multipleTeams\"><i class=\"ph-users-three-bold icon\"></i> {{action.team.name}}</div>\n <div class=\"property property-owner\"><i class=\"ph-user-bold icon\"></i> {{action.owner | interventionOwnerToString}}</div>\n <div class=\"property property-type\"><i class=\"ph-tag-bold icon\"></i> {{action.type | interventionTypeToString}}</div>\n <div class=\"property property-url\" *ngIf=\"action.url\"><i class=\"ph-arrow-square-in-bold icon\"></i> <a [href]=\"action.url\" target=\"_blank\">open detail url</a></div>\n <div class=\"property property-due\" *ngIf=\"action.due\"><i class=\"ph-calendar-bold icon\" *ngIf=\"!action.isDue\"></i><i class=\"ph-bell-simple-ringing-bold\" *ngIf=\"action.isDue\"></i> Due on {{action.due | date}}</div>\n </div>\n <span class=\"status unimpeded ph-fire-simple\" matTooltip=\"Mark this item as impeded. This means that help from outside the team (e.g. management, coaches) is urgently needed to complete on this action. Impeded actions are highlighted in the Teams Dashboard.'\" *ngIf=\"action.state == 'Open'\" (click)=\"impede($event, action)\"></span>\n <span class=\"status impeded\" matTooltip=\"This action is impeded. The team needs urgent help from outside team to complete this action.\" *ngIf=\"action.state == 'Impeded'\" (click)=\"unimpede($event, action)\">\n <img src=\"/assets/img/impeded.svg\" class=\"icon\">\n </span>\n <div>\n <span class=\"status obsolete ph-eye-slash-bold\" matTooltip=\"This action was marked obsolete. Click to re-open this action\" *ngIf=\"action.state == 'Obsolete'\" (click)=\"open($event, action)\"></span>\n <span class=\"status checked ph-check-circle-fill\" matTooltip=\"Mark this action as uncompleted\" *ngIf=\"action.state == 'Completed'\" (click)=\"open($event, action)\"></span>\n <span class=\"status unchecked ph-circle\" matTooltip=\"Mark this action as completed\" *ngIf=\"action.state == 'Open' || action.state == 'Impeded'\" (click)=\"complete($event, action)\"></span>\n </div>\n </div>\n</div>\n", 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%}.bigletteredbutton{-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;text-decoration:none;background:#ffffff1a;margin-bottom:10px;display:flex;align-content:center;border-radius:20px;padding:15px;font-size:24px;border:2px solid #1F3F8F;border-bottom:6px solid #1F3F8F;color:#fff;align-items:center;cursor:pointer}.bigletteredbutton .free{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;background:#fff73f;color:#2f2f2f;padding:3px 5px;margin-left:20px;border-radius:10px}.bigletteredbutton .plan{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;background:#fff;color:#2f2f2f;padding:3px 5px;margin-left:20px;border-radius:10px}.bigletteredbutton:hover,.bigletteredbutton.selected{border:2px solid #fff73f;border-bottom:6px solid #fff73f}.bigletteredbutton .button-letter{-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;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;background:#fff73f;color:#1f3f8f;margin-right:20px}.bigletteredbutton .button-letter .ph{color:#1f3f8f}.bigletteredbutton .button-letter:hover{background:#1f3f8f;color:#fff73f}.bigletteredbutton .button-letter:hover .ph{color:#fff73f}.roundicon-yellow{-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;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;background:#fff73f;color:#1f3f8f}.roundicon-yellow .ph{color:#1f3f8f}.roundicon-yellow:hover{background:#1f3f8f;color:#fff73f}.roundicon-yellow:hover .ph{color:#fff73f}.roundicon{-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;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center}.roundicon-large{-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;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;border-radius:60px;height:120px;width:120px}.action{display:flex;flex-direction:column;margin-bottom:0;cursor:pointer;box-sizing:border-box;height:100%}.action.due{border-color:red}.action.due .property-due{font-family:StevieSans,sans-serif;font-weight:600!important;color:red!important}.action.green{border-left:#00af77 15px solid}.action.yellow{border-left:#fff73f 15px solid}.action.red{border-left:#ef6f00 15px solid}.action.pink{border-left:#ef4f9f 15px solid}.action.blue{border-left:#1F3F8F 15px solid}.action.gray{border-left:#2f2f2f 15px solid}.action.deleted{background:#00f}.action h4{margin:0 0 15px;text-transform:uppercase;font-style:normal;font-weight:600;font-size:15px;line-height:100%}.action .summary{flex:1 0 auto;margin-bottom:30px;word-break:break-word;white-space:pre-wrap}.action .expectedeffect .badge{margin-right:10px;display:inline-block}.action .details{margin-top:60px;position:relative}.action .details .properties .property{margin-bottom:15px;display:grid;grid-gap:15px;grid-template-columns:15px auto;text-transform:uppercase;font-style:normal;font-weight:600;font-size:15px;line-height:100%;color:#000;align-items:center}.action .details .properties .property a{text-decoration:none}.action .details .properties .property img{width:20px}.action .details .properties .property img line,.action .details .properties .property img circle,.action .details .properties .property img polyline,.action .details .properties .property img path,.action .details .properties .property img rect{stroke-width:16}.action .details .status{position:absolute;right:15px;bottom:15px;cursor:pointer;width:35px;font-size:35px}.action .details .status.impeded,.action .details .status.unimpeded{bottom:55px}.action .details .status.unimpeded{-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;opacity:.3}.action .details .status.unimpeded:hover{opacity:1}\n"] }]
69
69
  }], ctorParameters: () => [{ type: i1.MatSnackBar }, { type: i2.ActionService }, { type: i9.ViewModelStateBase, decorators: [{
70
70
  type: Inject,
71
71
  args: [VIEWSTATE_PROVIDER]
@@ -63,11 +63,11 @@ export class DialogExportActionsComponent extends ComponentWithViewStateBase {
63
63
  }
64
64
  ;
65
65
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: DialogExportActionsComponent, deps: [{ token: VIEWSTATE_PROVIDER }, { token: i1.MatSnackBar }, { token: i2.ActionService }, { token: i3.MatDialogRef }, { token: i4.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
66
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.6", type: DialogExportActionsComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div class=\"dialog-header\">\n <h1 mat-dialog-title>Export actions</h1>\n <div class=\"close\" mat-dialog-close><i class=\"responsive icon ph-x-bold\"></i></div>\n</div>\n<mat-dialog-content>\n <p>Export actions to .csv for your own analyses.</p>\n <form [formGroup]=\"form\" (ngSubmit)=\"submit()\">\n <mat-form-field>\n <mat-label>Select date range (creation date)</mat-label>\n <mat-date-range-input [rangePicker]=\"picker\">\n <input matStartDate formControlName=\"start\" placeholder=\"Start date\">\n <input matEndDate formControlName=\"end\" placeholder=\"End date\">\n </mat-date-range-input>\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-date-range-picker #picker></mat-date-range-picker>\n <mat-error *ngIf=\"form.controls.start.hasError('matStartDateInvalid')\">Invalid start date</mat-error>\n <mat-error *ngIf=\"form.controls.end.hasError('matEndDateInvalid')\">Invalid end date</mat-error>\n </mat-form-field>\n\n <div class=\"toolbar\">\n <button class=\"button primary\" type=\"submit\" [ngClass]=\"{'loading': sending }\" [disabled]=\"sending\">export</button>\n <button class=\"button\" mat-dialog-close>cancel</button>\n </div>\n </form>\n</mat-dialog-content>\n", 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%}.errors{margin-bottom:15px}.confirmation h4{margin:0 0 5px}.confirmation p{margin:0}\n"], dependencies: [{ kind: "directive", type: i3.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i3.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i3.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatLabel, selector: "mat-label" }, { kind: "directive", type: i5.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i5.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.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: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i7.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "component", type: i7.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { kind: "directive", type: i7.MatStartDate, selector: "input[matStartDate]", outputs: ["dateChange", "dateInput"] }, { kind: "directive", type: i7.MatEndDate, selector: "input[matEndDate]", outputs: ["dateChange", "dateInput"] }, { kind: "component", type: i7.MatDateRangePicker, selector: "mat-date-range-picker", exportAs: ["matDateRangePicker"] }] }); }
66
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.6", type: DialogExportActionsComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div class=\"dialog-header\">\n <h1 mat-dialog-title>Export actions</h1>\n <div class=\"close\" mat-dialog-close><i class=\"responsive icon ph-x-bold\"></i></div>\n</div>\n<mat-dialog-content>\n <p>Export actions to .csv for your own analyses.</p>\n <form [formGroup]=\"form\" (ngSubmit)=\"submit()\">\n <mat-form-field>\n <mat-label>Select date range (creation date)</mat-label>\n <mat-date-range-input [rangePicker]=\"picker\">\n <input matStartDate formControlName=\"start\" placeholder=\"Start date\">\n <input matEndDate formControlName=\"end\" placeholder=\"End date\">\n </mat-date-range-input>\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-date-range-picker #picker></mat-date-range-picker>\n <mat-error *ngIf=\"form.controls.start.hasError('matStartDateInvalid')\">Invalid start date</mat-error>\n <mat-error *ngIf=\"form.controls.end.hasError('matEndDateInvalid')\">Invalid end date</mat-error>\n </mat-form-field>\n\n <div class=\"toolbar\">\n <button class=\"button primary\" type=\"submit\" [ngClass]=\"{'loading': sending }\" [disabled]=\"sending\">export</button>\n <button class=\"button\" mat-dialog-close>cancel</button>\n </div>\n </form>\n</mat-dialog-content>\n", 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%}.bigletteredbutton{-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;text-decoration:none;background:#ffffff1a;margin-bottom:10px;display:flex;align-content:center;border-radius:20px;padding:15px;font-size:24px;border:2px solid #1F3F8F;border-bottom:6px solid #1F3F8F;color:#fff;align-items:center;cursor:pointer}.bigletteredbutton .free{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;background:#fff73f;color:#2f2f2f;padding:3px 5px;margin-left:20px;border-radius:10px}.bigletteredbutton .plan{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;background:#fff;color:#2f2f2f;padding:3px 5px;margin-left:20px;border-radius:10px}.bigletteredbutton:hover,.bigletteredbutton.selected{border:2px solid #fff73f;border-bottom:6px solid #fff73f}.bigletteredbutton .button-letter{-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;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;background:#fff73f;color:#1f3f8f;margin-right:20px}.bigletteredbutton .button-letter .ph{color:#1f3f8f}.bigletteredbutton .button-letter:hover{background:#1f3f8f;color:#fff73f}.bigletteredbutton .button-letter:hover .ph{color:#fff73f}.roundicon-yellow{-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;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;background:#fff73f;color:#1f3f8f}.roundicon-yellow .ph{color:#1f3f8f}.roundicon-yellow:hover{background:#1f3f8f;color:#fff73f}.roundicon-yellow:hover .ph{color:#fff73f}.roundicon{-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;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center}.roundicon-large{-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;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;border-radius:60px;height:120px;width:120px}.errors{margin-bottom:15px}.confirmation h4{margin:0 0 5px}.confirmation p{margin:0}\n"], dependencies: [{ kind: "directive", type: i3.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i3.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i3.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatLabel, selector: "mat-label" }, { kind: "directive", type: i5.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i5.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.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: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i7.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "component", type: i7.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { kind: "directive", type: i7.MatStartDate, selector: "input[matStartDate]", outputs: ["dateChange", "dateInput"] }, { kind: "directive", type: i7.MatEndDate, selector: "input[matEndDate]", outputs: ["dateChange", "dateInput"] }, { kind: "component", type: i7.MatDateRangePicker, selector: "mat-date-range-picker", exportAs: ["matDateRangePicker"] }] }); }
67
67
  }
68
68
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: DialogExportActionsComponent, decorators: [{
69
69
  type: Component,
70
- args: [{ template: "<div class=\"dialog-header\">\n <h1 mat-dialog-title>Export actions</h1>\n <div class=\"close\" mat-dialog-close><i class=\"responsive icon ph-x-bold\"></i></div>\n</div>\n<mat-dialog-content>\n <p>Export actions to .csv for your own analyses.</p>\n <form [formGroup]=\"form\" (ngSubmit)=\"submit()\">\n <mat-form-field>\n <mat-label>Select date range (creation date)</mat-label>\n <mat-date-range-input [rangePicker]=\"picker\">\n <input matStartDate formControlName=\"start\" placeholder=\"Start date\">\n <input matEndDate formControlName=\"end\" placeholder=\"End date\">\n </mat-date-range-input>\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-date-range-picker #picker></mat-date-range-picker>\n <mat-error *ngIf=\"form.controls.start.hasError('matStartDateInvalid')\">Invalid start date</mat-error>\n <mat-error *ngIf=\"form.controls.end.hasError('matEndDateInvalid')\">Invalid end date</mat-error>\n </mat-form-field>\n\n <div class=\"toolbar\">\n <button class=\"button primary\" type=\"submit\" [ngClass]=\"{'loading': sending }\" [disabled]=\"sending\">export</button>\n <button class=\"button\" mat-dialog-close>cancel</button>\n </div>\n </form>\n</mat-dialog-content>\n", 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%}.errors{margin-bottom:15px}.confirmation h4{margin:0 0 5px}.confirmation p{margin:0}\n"] }]
70
+ args: [{ template: "<div class=\"dialog-header\">\n <h1 mat-dialog-title>Export actions</h1>\n <div class=\"close\" mat-dialog-close><i class=\"responsive icon ph-x-bold\"></i></div>\n</div>\n<mat-dialog-content>\n <p>Export actions to .csv for your own analyses.</p>\n <form [formGroup]=\"form\" (ngSubmit)=\"submit()\">\n <mat-form-field>\n <mat-label>Select date range (creation date)</mat-label>\n <mat-date-range-input [rangePicker]=\"picker\">\n <input matStartDate formControlName=\"start\" placeholder=\"Start date\">\n <input matEndDate formControlName=\"end\" placeholder=\"End date\">\n </mat-date-range-input>\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-date-range-picker #picker></mat-date-range-picker>\n <mat-error *ngIf=\"form.controls.start.hasError('matStartDateInvalid')\">Invalid start date</mat-error>\n <mat-error *ngIf=\"form.controls.end.hasError('matEndDateInvalid')\">Invalid end date</mat-error>\n </mat-form-field>\n\n <div class=\"toolbar\">\n <button class=\"button primary\" type=\"submit\" [ngClass]=\"{'loading': sending }\" [disabled]=\"sending\">export</button>\n <button class=\"button\" mat-dialog-close>cancel</button>\n </div>\n </form>\n</mat-dialog-content>\n", 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%}.bigletteredbutton{-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;text-decoration:none;background:#ffffff1a;margin-bottom:10px;display:flex;align-content:center;border-radius:20px;padding:15px;font-size:24px;border:2px solid #1F3F8F;border-bottom:6px solid #1F3F8F;color:#fff;align-items:center;cursor:pointer}.bigletteredbutton .free{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;background:#fff73f;color:#2f2f2f;padding:3px 5px;margin-left:20px;border-radius:10px}.bigletteredbutton .plan{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;background:#fff;color:#2f2f2f;padding:3px 5px;margin-left:20px;border-radius:10px}.bigletteredbutton:hover,.bigletteredbutton.selected{border:2px solid #fff73f;border-bottom:6px solid #fff73f}.bigletteredbutton .button-letter{-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;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;background:#fff73f;color:#1f3f8f;margin-right:20px}.bigletteredbutton .button-letter .ph{color:#1f3f8f}.bigletteredbutton .button-letter:hover{background:#1f3f8f;color:#fff73f}.bigletteredbutton .button-letter:hover .ph{color:#fff73f}.roundicon-yellow{-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;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;background:#fff73f;color:#1f3f8f}.roundicon-yellow .ph{color:#1f3f8f}.roundicon-yellow:hover{background:#1f3f8f;color:#fff73f}.roundicon-yellow:hover .ph{color:#fff73f}.roundicon{-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;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center}.roundicon-large{-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;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;border-radius:60px;height:120px;width:120px}.errors{margin-bottom:15px}.confirmation h4{margin:0 0 5px}.confirmation p{margin:0}\n"] }]
71
71
  }], ctorParameters: () => [{ type: i8.ViewModelStateBase, decorators: [{
72
72
  type: Inject,
73
73
  args: [VIEWSTATE_PROVIDER]
@@ -72,11 +72,11 @@ export class DialogActionFiltersComponent extends ComponentWithViewStateBase {
72
72
  this.dialogRef.close();
73
73
  }
74
74
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: DialogActionFiltersComponent, deps: [{ token: VIEWSTATE_PROVIDER }, { token: i1.MatSnackBar }, { token: i2.MatDialogRef }, { token: VIEWSTATE_USERSETTINGS_STRATEGY }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
75
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.6", type: DialogActionFiltersComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div class=\"dialog-header\" id=\"dialog-actionfilters\">\n <h1 mat-dialog-title>Action filters</h1>\n <div class=\"close\" mat-dialog-close><i class=\"responsive icon ph-x-bold\"></i></div>\n</div>\n<mat-dialog-content>\n <div class=\"filters\" *ngIf=\"userSettings.settings && userSettings.settings.user\">\n <mat-form-field class=\"status\" appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>Status</mat-label>\n <mat-select id=\"actions-filter-state\" [(ngModel)]=\"userSettings.settings.user.interventionFilter.state\">\n <mat-option class=\"select-option\" *ngFor=\"let state of stateFilterList\" [value]=\"state.key\">{{state.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field class=\"owner\" appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>Owner</mat-label>\n <mat-select id=\"actions-filter-owner\" [(ngModel)]=\"userSettings.settings.user.interventionFilter.owner\">\n <mat-option class=\"select-option\" *ngFor=\"let state of ownerFilterList\" [value]=\"state.key\">{{state.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field class=\"team\" *ngIf=\"multipleTeams\" appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>Team</mat-label>\n <mat-select id=\"actions-filter-team\" [(ngModel)]=\"userSettings.settings.user.interventionFilter.teamKey\">\n <mat-option class=\"select-option\" [value]=\"null\">All teams</mat-option>\n <mat-option class=\"select-option\" *ngFor=\"let team of teams\" [value]=\"team.key\">{{team.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field class=\"type\" appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>Type</mat-label>\n <mat-select id=\"actions-filter-type\" [(ngModel)]=\"userSettings.settings.user.interventionFilter.type\">\n <mat-option class=\"select-option\" *ngFor=\"let state of typeFilterList\" [value]=\"state.key\">{{state.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field class=\"expectedImpactOn\" appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>Expected impact on</mat-label>\n <mat-select id=\"actions-filter-expectedImpactOn\" [(ngModel)]=\"userSettings.settings.user.interventionFilter.expectedImpactOn\">\n <mat-option class=\"select-option\" *ngFor=\"let state of expectedEffectOnList\" [value]=\"state.key\">{{state.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n\n <div class=\"toolbar\">\n <div class=\"button primary\" id=\"actions-filters-apply\" (click)=\"applyFilters()\">apply filters</div>\n <div class=\"button\" id=\"actions-filters-clear\" (click)=\"clearFilters()\"><span class=\"icon ph-trash\"></span>clear filters</div>\n </div>\n </div>\n</mat-dialog-content>\n", 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%}.toolbar{margin-top:30px}\n"], dependencies: [{ kind: "directive", type: i2.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "component", type: i4.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: i5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
75
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.6", type: DialogActionFiltersComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div class=\"dialog-header\" id=\"dialog-actionfilters\">\n <h1 mat-dialog-title>Action filters</h1>\n <div class=\"close\" mat-dialog-close><i class=\"responsive icon ph-x-bold\"></i></div>\n</div>\n<mat-dialog-content>\n <div class=\"filters\" *ngIf=\"userSettings.settings && userSettings.settings.user\">\n <mat-form-field class=\"status\" appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>Status</mat-label>\n <mat-select id=\"actions-filter-state\" [(ngModel)]=\"userSettings.settings.user.interventionFilter.state\">\n <mat-option class=\"select-option\" *ngFor=\"let state of stateFilterList\" [value]=\"state.key\">{{state.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field class=\"owner\" appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>Owner</mat-label>\n <mat-select id=\"actions-filter-owner\" [(ngModel)]=\"userSettings.settings.user.interventionFilter.owner\">\n <mat-option class=\"select-option\" *ngFor=\"let state of ownerFilterList\" [value]=\"state.key\">{{state.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field class=\"team\" *ngIf=\"multipleTeams\" appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>Team</mat-label>\n <mat-select id=\"actions-filter-team\" [(ngModel)]=\"userSettings.settings.user.interventionFilter.teamKey\">\n <mat-option class=\"select-option\" [value]=\"null\">All teams</mat-option>\n <mat-option class=\"select-option\" *ngFor=\"let team of teams\" [value]=\"team.key\">{{team.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field class=\"type\" appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>Type</mat-label>\n <mat-select id=\"actions-filter-type\" [(ngModel)]=\"userSettings.settings.user.interventionFilter.type\">\n <mat-option class=\"select-option\" *ngFor=\"let state of typeFilterList\" [value]=\"state.key\">{{state.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field class=\"expectedImpactOn\" appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>Expected impact on</mat-label>\n <mat-select id=\"actions-filter-expectedImpactOn\" [(ngModel)]=\"userSettings.settings.user.interventionFilter.expectedImpactOn\">\n <mat-option class=\"select-option\" *ngFor=\"let state of expectedEffectOnList\" [value]=\"state.key\">{{state.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n\n <div class=\"toolbar\">\n <div class=\"button primary\" id=\"actions-filters-apply\" (click)=\"applyFilters()\">apply filters</div>\n <div class=\"button\" id=\"actions-filters-clear\" (click)=\"clearFilters()\"><span class=\"icon ph-trash\"></span>clear filters</div>\n </div>\n </div>\n</mat-dialog-content>\n", 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%}.bigletteredbutton{-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;text-decoration:none;background:#ffffff1a;margin-bottom:10px;display:flex;align-content:center;border-radius:20px;padding:15px;font-size:24px;border:2px solid #1F3F8F;border-bottom:6px solid #1F3F8F;color:#fff;align-items:center;cursor:pointer}.bigletteredbutton .free{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;background:#fff73f;color:#2f2f2f;padding:3px 5px;margin-left:20px;border-radius:10px}.bigletteredbutton .plan{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;background:#fff;color:#2f2f2f;padding:3px 5px;margin-left:20px;border-radius:10px}.bigletteredbutton:hover,.bigletteredbutton.selected{border:2px solid #fff73f;border-bottom:6px solid #fff73f}.bigletteredbutton .button-letter{-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;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;background:#fff73f;color:#1f3f8f;margin-right:20px}.bigletteredbutton .button-letter .ph{color:#1f3f8f}.bigletteredbutton .button-letter:hover{background:#1f3f8f;color:#fff73f}.bigletteredbutton .button-letter:hover .ph{color:#fff73f}.roundicon-yellow{-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;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;background:#fff73f;color:#1f3f8f}.roundicon-yellow .ph{color:#1f3f8f}.roundicon-yellow:hover{background:#1f3f8f;color:#fff73f}.roundicon-yellow:hover .ph{color:#fff73f}.roundicon{-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;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center}.roundicon-large{-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;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;border-radius:60px;height:120px;width:120px}.toolbar{margin-top:30px}\n"], dependencies: [{ kind: "directive", type: i2.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "component", type: i4.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: i5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
76
76
  }
77
77
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: DialogActionFiltersComponent, decorators: [{
78
78
  type: Component,
79
- args: [{ template: "<div class=\"dialog-header\" id=\"dialog-actionfilters\">\n <h1 mat-dialog-title>Action filters</h1>\n <div class=\"close\" mat-dialog-close><i class=\"responsive icon ph-x-bold\"></i></div>\n</div>\n<mat-dialog-content>\n <div class=\"filters\" *ngIf=\"userSettings.settings && userSettings.settings.user\">\n <mat-form-field class=\"status\" appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>Status</mat-label>\n <mat-select id=\"actions-filter-state\" [(ngModel)]=\"userSettings.settings.user.interventionFilter.state\">\n <mat-option class=\"select-option\" *ngFor=\"let state of stateFilterList\" [value]=\"state.key\">{{state.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field class=\"owner\" appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>Owner</mat-label>\n <mat-select id=\"actions-filter-owner\" [(ngModel)]=\"userSettings.settings.user.interventionFilter.owner\">\n <mat-option class=\"select-option\" *ngFor=\"let state of ownerFilterList\" [value]=\"state.key\">{{state.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field class=\"team\" *ngIf=\"multipleTeams\" appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>Team</mat-label>\n <mat-select id=\"actions-filter-team\" [(ngModel)]=\"userSettings.settings.user.interventionFilter.teamKey\">\n <mat-option class=\"select-option\" [value]=\"null\">All teams</mat-option>\n <mat-option class=\"select-option\" *ngFor=\"let team of teams\" [value]=\"team.key\">{{team.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field class=\"type\" appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>Type</mat-label>\n <mat-select id=\"actions-filter-type\" [(ngModel)]=\"userSettings.settings.user.interventionFilter.type\">\n <mat-option class=\"select-option\" *ngFor=\"let state of typeFilterList\" [value]=\"state.key\">{{state.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field class=\"expectedImpactOn\" appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>Expected impact on</mat-label>\n <mat-select id=\"actions-filter-expectedImpactOn\" [(ngModel)]=\"userSettings.settings.user.interventionFilter.expectedImpactOn\">\n <mat-option class=\"select-option\" *ngFor=\"let state of expectedEffectOnList\" [value]=\"state.key\">{{state.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n\n <div class=\"toolbar\">\n <div class=\"button primary\" id=\"actions-filters-apply\" (click)=\"applyFilters()\">apply filters</div>\n <div class=\"button\" id=\"actions-filters-clear\" (click)=\"clearFilters()\"><span class=\"icon ph-trash\"></span>clear filters</div>\n </div>\n </div>\n</mat-dialog-content>\n", 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%}.toolbar{margin-top:30px}\n"] }]
79
+ args: [{ template: "<div class=\"dialog-header\" id=\"dialog-actionfilters\">\n <h1 mat-dialog-title>Action filters</h1>\n <div class=\"close\" mat-dialog-close><i class=\"responsive icon ph-x-bold\"></i></div>\n</div>\n<mat-dialog-content>\n <div class=\"filters\" *ngIf=\"userSettings.settings && userSettings.settings.user\">\n <mat-form-field class=\"status\" appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>Status</mat-label>\n <mat-select id=\"actions-filter-state\" [(ngModel)]=\"userSettings.settings.user.interventionFilter.state\">\n <mat-option class=\"select-option\" *ngFor=\"let state of stateFilterList\" [value]=\"state.key\">{{state.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field class=\"owner\" appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>Owner</mat-label>\n <mat-select id=\"actions-filter-owner\" [(ngModel)]=\"userSettings.settings.user.interventionFilter.owner\">\n <mat-option class=\"select-option\" *ngFor=\"let state of ownerFilterList\" [value]=\"state.key\">{{state.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field class=\"team\" *ngIf=\"multipleTeams\" appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>Team</mat-label>\n <mat-select id=\"actions-filter-team\" [(ngModel)]=\"userSettings.settings.user.interventionFilter.teamKey\">\n <mat-option class=\"select-option\" [value]=\"null\">All teams</mat-option>\n <mat-option class=\"select-option\" *ngFor=\"let team of teams\" [value]=\"team.key\">{{team.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field class=\"type\" appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>Type</mat-label>\n <mat-select id=\"actions-filter-type\" [(ngModel)]=\"userSettings.settings.user.interventionFilter.type\">\n <mat-option class=\"select-option\" *ngFor=\"let state of typeFilterList\" [value]=\"state.key\">{{state.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field class=\"expectedImpactOn\" appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>Expected impact on</mat-label>\n <mat-select id=\"actions-filter-expectedImpactOn\" [(ngModel)]=\"userSettings.settings.user.interventionFilter.expectedImpactOn\">\n <mat-option class=\"select-option\" *ngFor=\"let state of expectedEffectOnList\" [value]=\"state.key\">{{state.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n\n <div class=\"toolbar\">\n <div class=\"button primary\" id=\"actions-filters-apply\" (click)=\"applyFilters()\">apply filters</div>\n <div class=\"button\" id=\"actions-filters-clear\" (click)=\"clearFilters()\"><span class=\"icon ph-trash\"></span>clear filters</div>\n </div>\n </div>\n</mat-dialog-content>\n", 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%}.bigletteredbutton{-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;text-decoration:none;background:#ffffff1a;margin-bottom:10px;display:flex;align-content:center;border-radius:20px;padding:15px;font-size:24px;border:2px solid #1F3F8F;border-bottom:6px solid #1F3F8F;color:#fff;align-items:center;cursor:pointer}.bigletteredbutton .free{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;background:#fff73f;color:#2f2f2f;padding:3px 5px;margin-left:20px;border-radius:10px}.bigletteredbutton .plan{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;background:#fff;color:#2f2f2f;padding:3px 5px;margin-left:20px;border-radius:10px}.bigletteredbutton:hover,.bigletteredbutton.selected{border:2px solid #fff73f;border-bottom:6px solid #fff73f}.bigletteredbutton .button-letter{-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;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;background:#fff73f;color:#1f3f8f;margin-right:20px}.bigletteredbutton .button-letter .ph{color:#1f3f8f}.bigletteredbutton .button-letter:hover{background:#1f3f8f;color:#fff73f}.bigletteredbutton .button-letter:hover .ph{color:#fff73f}.roundicon-yellow{-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;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;background:#fff73f;color:#1f3f8f}.roundicon-yellow .ph{color:#1f3f8f}.roundicon-yellow:hover{background:#1f3f8f;color:#fff73f}.roundicon-yellow:hover .ph{color:#fff73f}.roundicon{-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;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center}.roundicon-large{-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;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;border-radius:60px;height:120px;width:120px}.toolbar{margin-top:30px}\n"] }]
80
80
  }], ctorParameters: () => [{ type: i8.ViewModelStateBase, decorators: [{
81
81
  type: Inject,
82
82
  args: [VIEWSTATE_PROVIDER]
@@ -13,11 +13,11 @@ export class DialogActionManageComponent {
13
13
  ngOnInit() {
14
14
  }
15
15
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: DialogActionManageComponent, deps: [{ token: i1.MatDialog }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
16
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.6", type: DialogActionManageComponent, selector: "ng-component", ngImport: i0, template: "<div class=\"dialog-header\">\n <h1 mat-dialog-title *ngIf=\"!data.action\">Add Action</h1>\n <h1 mat-dialog-title *ngIf=\"data.action\">Edit Action</h1>\n <div class=\"close\" mat-dialog-close><i class=\"responsive icon ph-x-bold\"></i></div>\n</div>\n<mat-dialog-content>\n <action-manage [prefill]=\"data.prefill\" [action]=\"data.action\" id=\"dialog-manageaction\"></action-manage>\n</mat-dialog-content>\n", 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%}\n"], dependencies: [{ kind: "directive", type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.ActionManageComponent, selector: "action-manage", inputs: ["prefill", "action"] }] }); }
16
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.6", type: DialogActionManageComponent, selector: "ng-component", ngImport: i0, template: "<div class=\"dialog-header\">\n <h1 mat-dialog-title *ngIf=\"!data.action\">Add Action</h1>\n <h1 mat-dialog-title *ngIf=\"data.action\">Edit Action</h1>\n <div class=\"close\" mat-dialog-close><i class=\"responsive icon ph-x-bold\"></i></div>\n</div>\n<mat-dialog-content>\n <action-manage [prefill]=\"data.prefill\" [action]=\"data.action\" id=\"dialog-manageaction\"></action-manage>\n</mat-dialog-content>\n", 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%}.bigletteredbutton{-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;text-decoration:none;background:#ffffff1a;margin-bottom:10px;display:flex;align-content:center;border-radius:20px;padding:15px;font-size:24px;border:2px solid #1F3F8F;border-bottom:6px solid #1F3F8F;color:#fff;align-items:center;cursor:pointer}.bigletteredbutton .free{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;background:#fff73f;color:#2f2f2f;padding:3px 5px;margin-left:20px;border-radius:10px}.bigletteredbutton .plan{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;background:#fff;color:#2f2f2f;padding:3px 5px;margin-left:20px;border-radius:10px}.bigletteredbutton:hover,.bigletteredbutton.selected{border:2px solid #fff73f;border-bottom:6px solid #fff73f}.bigletteredbutton .button-letter{-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;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;background:#fff73f;color:#1f3f8f;margin-right:20px}.bigletteredbutton .button-letter .ph{color:#1f3f8f}.bigletteredbutton .button-letter:hover{background:#1f3f8f;color:#fff73f}.bigletteredbutton .button-letter:hover .ph{color:#fff73f}.roundicon-yellow{-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;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;background:#fff73f;color:#1f3f8f}.roundicon-yellow .ph{color:#1f3f8f}.roundicon-yellow:hover{background:#1f3f8f;color:#fff73f}.roundicon-yellow:hover .ph{color:#fff73f}.roundicon{-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;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center}.roundicon-large{-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;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;border-radius:60px;height:120px;width:120px}\n"], dependencies: [{ kind: "directive", type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.ActionManageComponent, selector: "action-manage", inputs: ["prefill", "action"] }] }); }
17
17
  }
18
18
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: DialogActionManageComponent, decorators: [{
19
19
  type: Component,
20
- args: [{ template: "<div class=\"dialog-header\">\n <h1 mat-dialog-title *ngIf=\"!data.action\">Add Action</h1>\n <h1 mat-dialog-title *ngIf=\"data.action\">Edit Action</h1>\n <div class=\"close\" mat-dialog-close><i class=\"responsive icon ph-x-bold\"></i></div>\n</div>\n<mat-dialog-content>\n <action-manage [prefill]=\"data.prefill\" [action]=\"data.action\" id=\"dialog-manageaction\"></action-manage>\n</mat-dialog-content>\n", 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%}\n"] }]
20
+ args: [{ template: "<div class=\"dialog-header\">\n <h1 mat-dialog-title *ngIf=\"!data.action\">Add Action</h1>\n <h1 mat-dialog-title *ngIf=\"data.action\">Edit Action</h1>\n <div class=\"close\" mat-dialog-close><i class=\"responsive icon ph-x-bold\"></i></div>\n</div>\n<mat-dialog-content>\n <action-manage [prefill]=\"data.prefill\" [action]=\"data.action\" id=\"dialog-manageaction\"></action-manage>\n</mat-dialog-content>\n", 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%}.bigletteredbutton{-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;text-decoration:none;background:#ffffff1a;margin-bottom:10px;display:flex;align-content:center;border-radius:20px;padding:15px;font-size:24px;border:2px solid #1F3F8F;border-bottom:6px solid #1F3F8F;color:#fff;align-items:center;cursor:pointer}.bigletteredbutton .free{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;background:#fff73f;color:#2f2f2f;padding:3px 5px;margin-left:20px;border-radius:10px}.bigletteredbutton .plan{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;background:#fff;color:#2f2f2f;padding:3px 5px;margin-left:20px;border-radius:10px}.bigletteredbutton:hover,.bigletteredbutton.selected{border:2px solid #fff73f;border-bottom:6px solid #fff73f}.bigletteredbutton .button-letter{-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;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;background:#fff73f;color:#1f3f8f;margin-right:20px}.bigletteredbutton .button-letter .ph{color:#1f3f8f}.bigletteredbutton .button-letter:hover{background:#1f3f8f;color:#fff73f}.bigletteredbutton .button-letter:hover .ph{color:#fff73f}.roundicon-yellow{-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;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;background:#fff73f;color:#1f3f8f}.roundicon-yellow .ph{color:#1f3f8f}.roundicon-yellow:hover{background:#1f3f8f;color:#fff73f}.roundicon-yellow:hover .ph{color:#fff73f}.roundicon{-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;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center}.roundicon-large{-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;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;border-radius:60px;height:120px;width:120px}\n"] }]
21
21
  }], ctorParameters: () => [{ type: i1.MatDialog }, { type: undefined, decorators: [{
22
22
  type: Inject,
23
23
  args: [MAT_DIALOG_DATA]
@@ -86,11 +86,11 @@ export class AlertsComponent extends ComponentBase {
86
86
  }
87
87
  }
88
88
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: AlertsComponent, deps: [{ token: i1.AlertService }, { token: i2.MatSnackBar }, { token: LOCAL_STORAGE }, { token: VIEWSTATE_PROVIDER }], target: i0.ɵɵFactoryTarget.Component }); }
89
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.6", type: AlertsComponent, selector: "alerts", inputs: { pageSize: "pageSize", onlyUnread: "onlyUnread" }, usesInheritance: true, ngImport: i0, template: "<div class=\"alerts\" *ngIf=\"filteredAlerts && filteredAlerts.length > 0\">\n <div class=\"alert-item\" *ngFor=\"let alert of filteredAlerts\">\n <div class=\"description\" [innerHtml]=\"alert.body\"></div>\n <div class=\"bar\">\n <span class=\"icon ph-warning-fill\" *ngIf=\"alert.urgency == 'warning'\"></span>\n <span class=\"icon ph-info\" *ngIf=\"alert.urgency == 'information'\"></span>\n <span class=\"icon ph-circle-wavy-warning-fill\" *ngIf=\"alert.urgency == 'critical'\"></span>\n <div class=\"date\">\n {{alert.posted | date : 'short'}}\n </div>\n <div class=\"action\" *ngIf=\"alert.url\"><a target=\"_blank\" [href]=\"alert.url\">Explore ></a></div>\n <div class=\"dismiss\" *ngIf=\"!isDismissed(alert)\"><a href=\"javascript:void(null);\" (click)=\"dismiss(alert)\">Dismiss</a></div>\n </div>\n </div>\n</div>\n\n<div class=\"wirebox calltoaction\" *ngIf=\"!filteredAlerts || filteredAlerts.length == 0\">\n <div class=\"contentwithborders\">\n <div class=\"center\">\n <p>There are no alert. Or you've dismissed all.</p>\n </div>\n </div>\n</div>\n\n<mat-paginator *ngIf=\"filteredAlerts && filteredAlerts.length > filter.itemsPerPage\" [length]=\"filter.totalItems\" hidePageSize=\"true\" [pageSize]=\"filter.itemsPerPage\" (page)=\"setPaging($event)\"></mat-paginator>\n", 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%}.alerts{margin-bottom:30px}.alerts .alert-item{padding:15px 0;border-top:3px solid #f0f0f0}.alerts .alert-item:first-of-type{border-top:3px solid #f0f0f0}.alerts .alert-item .description{margin-bottom:15px}.alerts .alert-item .bar{display:flex;justify-content:space-between}.alerts .alert-item .bar .date{flex:30%}.alerts .alert-item .bar .icon{margin-right:10px}.alerts .alert-item .bar .dismiss{margin-left:30px}.alerts .alert-item .bar .date,.alerts .alert-item .bar .dismiss,.alerts .alert-item .bar .action{font-style:normal;font-weight:600;font-size:15px;line-height:140%}.alerts .alert-item .bar .date a,.alerts .alert-item .bar .dismiss a,.alerts .alert-item .bar .action a{text-decoration:none}\n"], dependencies: [{ kind: "component", type: i3.MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.DatePipe, name: "date" }] }); }
89
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.6", type: AlertsComponent, selector: "alerts", inputs: { pageSize: "pageSize", onlyUnread: "onlyUnread" }, usesInheritance: true, ngImport: i0, template: "<div class=\"alerts\" *ngIf=\"filteredAlerts && filteredAlerts.length > 0\">\n <div class=\"alert-item\" *ngFor=\"let alert of filteredAlerts\">\n <div class=\"description\" [innerHtml]=\"alert.body\"></div>\n <div class=\"bar\">\n <span class=\"icon ph-warning-fill\" *ngIf=\"alert.urgency == 'warning'\"></span>\n <span class=\"icon ph-info\" *ngIf=\"alert.urgency == 'information'\"></span>\n <span class=\"icon ph-circle-wavy-warning-fill\" *ngIf=\"alert.urgency == 'critical'\"></span>\n <div class=\"date\">\n {{alert.posted | date : 'short'}}\n </div>\n <div class=\"action\" *ngIf=\"alert.url\"><a target=\"_blank\" [href]=\"alert.url\">Explore ></a></div>\n <div class=\"dismiss\" *ngIf=\"!isDismissed(alert)\"><a href=\"javascript:void(null);\" (click)=\"dismiss(alert)\">Dismiss</a></div>\n </div>\n </div>\n</div>\n\n<div class=\"wirebox calltoaction\" *ngIf=\"!filteredAlerts || filteredAlerts.length == 0\">\n <div class=\"contentwithborders\">\n <div class=\"center\">\n <p>There are no alert. Or you've dismissed all.</p>\n </div>\n </div>\n</div>\n\n<mat-paginator *ngIf=\"filteredAlerts && filteredAlerts.length > filter.itemsPerPage\" [length]=\"filter.totalItems\" hidePageSize=\"true\" [pageSize]=\"filter.itemsPerPage\" (page)=\"setPaging($event)\"></mat-paginator>\n", 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%}.bigletteredbutton{-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;text-decoration:none;background:#ffffff1a;margin-bottom:10px;display:flex;align-content:center;border-radius:20px;padding:15px;font-size:24px;border:2px solid #1F3F8F;border-bottom:6px solid #1F3F8F;color:#fff;align-items:center;cursor:pointer}.bigletteredbutton .free{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;background:#fff73f;color:#2f2f2f;padding:3px 5px;margin-left:20px;border-radius:10px}.bigletteredbutton .plan{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;background:#fff;color:#2f2f2f;padding:3px 5px;margin-left:20px;border-radius:10px}.bigletteredbutton:hover,.bigletteredbutton.selected{border:2px solid #fff73f;border-bottom:6px solid #fff73f}.bigletteredbutton .button-letter{-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;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;background:#fff73f;color:#1f3f8f;margin-right:20px}.bigletteredbutton .button-letter .ph{color:#1f3f8f}.bigletteredbutton .button-letter:hover{background:#1f3f8f;color:#fff73f}.bigletteredbutton .button-letter:hover .ph{color:#fff73f}.roundicon-yellow{-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;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;background:#fff73f;color:#1f3f8f}.roundicon-yellow .ph{color:#1f3f8f}.roundicon-yellow:hover{background:#1f3f8f;color:#fff73f}.roundicon-yellow:hover .ph{color:#fff73f}.roundicon{-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;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center}.roundicon-large{-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;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;border-radius:60px;height:120px;width:120px}.alerts{margin-bottom:30px}.alerts .alert-item{padding:15px 0;border-top:3px solid #f0f0f0}.alerts .alert-item:first-of-type{border-top:3px solid #f0f0f0}.alerts .alert-item .description{margin-bottom:15px}.alerts .alert-item .bar{display:flex;justify-content:space-between}.alerts .alert-item .bar .date{flex:30%}.alerts .alert-item .bar .icon{margin-right:10px}.alerts .alert-item .bar .dismiss{margin-left:30px}.alerts .alert-item .bar .date,.alerts .alert-item .bar .dismiss,.alerts .alert-item .bar .action{font-style:normal;font-weight:600;font-size:15px;line-height:140%}.alerts .alert-item .bar .date a,.alerts .alert-item .bar .dismiss a,.alerts .alert-item .bar .action a{text-decoration:none}\n"], dependencies: [{ kind: "component", type: i3.MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.DatePipe, name: "date" }] }); }
90
90
  }
91
91
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: AlertsComponent, decorators: [{
92
92
  type: Component,
93
- args: [{ selector: 'alerts', template: "<div class=\"alerts\" *ngIf=\"filteredAlerts && filteredAlerts.length > 0\">\n <div class=\"alert-item\" *ngFor=\"let alert of filteredAlerts\">\n <div class=\"description\" [innerHtml]=\"alert.body\"></div>\n <div class=\"bar\">\n <span class=\"icon ph-warning-fill\" *ngIf=\"alert.urgency == 'warning'\"></span>\n <span class=\"icon ph-info\" *ngIf=\"alert.urgency == 'information'\"></span>\n <span class=\"icon ph-circle-wavy-warning-fill\" *ngIf=\"alert.urgency == 'critical'\"></span>\n <div class=\"date\">\n {{alert.posted | date : 'short'}}\n </div>\n <div class=\"action\" *ngIf=\"alert.url\"><a target=\"_blank\" [href]=\"alert.url\">Explore ></a></div>\n <div class=\"dismiss\" *ngIf=\"!isDismissed(alert)\"><a href=\"javascript:void(null);\" (click)=\"dismiss(alert)\">Dismiss</a></div>\n </div>\n </div>\n</div>\n\n<div class=\"wirebox calltoaction\" *ngIf=\"!filteredAlerts || filteredAlerts.length == 0\">\n <div class=\"contentwithborders\">\n <div class=\"center\">\n <p>There are no alert. Or you've dismissed all.</p>\n </div>\n </div>\n</div>\n\n<mat-paginator *ngIf=\"filteredAlerts && filteredAlerts.length > filter.itemsPerPage\" [length]=\"filter.totalItems\" hidePageSize=\"true\" [pageSize]=\"filter.itemsPerPage\" (page)=\"setPaging($event)\"></mat-paginator>\n", 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%}.alerts{margin-bottom:30px}.alerts .alert-item{padding:15px 0;border-top:3px solid #f0f0f0}.alerts .alert-item:first-of-type{border-top:3px solid #f0f0f0}.alerts .alert-item .description{margin-bottom:15px}.alerts .alert-item .bar{display:flex;justify-content:space-between}.alerts .alert-item .bar .date{flex:30%}.alerts .alert-item .bar .icon{margin-right:10px}.alerts .alert-item .bar .dismiss{margin-left:30px}.alerts .alert-item .bar .date,.alerts .alert-item .bar .dismiss,.alerts .alert-item .bar .action{font-style:normal;font-weight:600;font-size:15px;line-height:140%}.alerts .alert-item .bar .date a,.alerts .alert-item .bar .dismiss a,.alerts .alert-item .bar .action a{text-decoration:none}\n"] }]
93
+ args: [{ selector: 'alerts', template: "<div class=\"alerts\" *ngIf=\"filteredAlerts && filteredAlerts.length > 0\">\n <div class=\"alert-item\" *ngFor=\"let alert of filteredAlerts\">\n <div class=\"description\" [innerHtml]=\"alert.body\"></div>\n <div class=\"bar\">\n <span class=\"icon ph-warning-fill\" *ngIf=\"alert.urgency == 'warning'\"></span>\n <span class=\"icon ph-info\" *ngIf=\"alert.urgency == 'information'\"></span>\n <span class=\"icon ph-circle-wavy-warning-fill\" *ngIf=\"alert.urgency == 'critical'\"></span>\n <div class=\"date\">\n {{alert.posted | date : 'short'}}\n </div>\n <div class=\"action\" *ngIf=\"alert.url\"><a target=\"_blank\" [href]=\"alert.url\">Explore ></a></div>\n <div class=\"dismiss\" *ngIf=\"!isDismissed(alert)\"><a href=\"javascript:void(null);\" (click)=\"dismiss(alert)\">Dismiss</a></div>\n </div>\n </div>\n</div>\n\n<div class=\"wirebox calltoaction\" *ngIf=\"!filteredAlerts || filteredAlerts.length == 0\">\n <div class=\"contentwithborders\">\n <div class=\"center\">\n <p>There are no alert. Or you've dismissed all.</p>\n </div>\n </div>\n</div>\n\n<mat-paginator *ngIf=\"filteredAlerts && filteredAlerts.length > filter.itemsPerPage\" [length]=\"filter.totalItems\" hidePageSize=\"true\" [pageSize]=\"filter.itemsPerPage\" (page)=\"setPaging($event)\"></mat-paginator>\n", 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%}.bigletteredbutton{-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;text-decoration:none;background:#ffffff1a;margin-bottom:10px;display:flex;align-content:center;border-radius:20px;padding:15px;font-size:24px;border:2px solid #1F3F8F;border-bottom:6px solid #1F3F8F;color:#fff;align-items:center;cursor:pointer}.bigletteredbutton .free{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;background:#fff73f;color:#2f2f2f;padding:3px 5px;margin-left:20px;border-radius:10px}.bigletteredbutton .plan{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;background:#fff;color:#2f2f2f;padding:3px 5px;margin-left:20px;border-radius:10px}.bigletteredbutton:hover,.bigletteredbutton.selected{border:2px solid #fff73f;border-bottom:6px solid #fff73f}.bigletteredbutton .button-letter{-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;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;background:#fff73f;color:#1f3f8f;margin-right:20px}.bigletteredbutton .button-letter .ph{color:#1f3f8f}.bigletteredbutton .button-letter:hover{background:#1f3f8f;color:#fff73f}.bigletteredbutton .button-letter:hover .ph{color:#fff73f}.roundicon-yellow{-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;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;background:#fff73f;color:#1f3f8f}.roundicon-yellow .ph{color:#1f3f8f}.roundicon-yellow:hover{background:#1f3f8f;color:#fff73f}.roundicon-yellow:hover .ph{color:#fff73f}.roundicon{-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;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center}.roundicon-large{-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;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;border-radius:60px;height:120px;width:120px}.alerts{margin-bottom:30px}.alerts .alert-item{padding:15px 0;border-top:3px solid #f0f0f0}.alerts .alert-item:first-of-type{border-top:3px solid #f0f0f0}.alerts .alert-item .description{margin-bottom:15px}.alerts .alert-item .bar{display:flex;justify-content:space-between}.alerts .alert-item .bar .date{flex:30%}.alerts .alert-item .bar .icon{margin-right:10px}.alerts .alert-item .bar .dismiss{margin-left:30px}.alerts .alert-item .bar .date,.alerts .alert-item .bar .dismiss,.alerts .alert-item .bar .action{font-style:normal;font-weight:600;font-size:15px;line-height:140%}.alerts .alert-item .bar .date a,.alerts .alert-item .bar .dismiss a,.alerts .alert-item .bar .action a{text-decoration:none}\n"] }]
94
94
  }], ctorParameters: () => [{ type: i1.AlertService }, { type: i2.MatSnackBar }, { type: undefined, decorators: [{
95
95
  type: Inject,
96
96
  args: [LOCAL_STORAGE]