@the-liberators/ngx-scrumteamsurvey-tools 2.3.124 → 2.3.126
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.
|
@@ -1109,11 +1109,11 @@ class DialogExportActionsComponent extends ComponentWithViewStateBase {
|
|
|
1109
1109
|
}
|
|
1110
1110
|
;
|
|
1111
1111
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: DialogExportActionsComponent, deps: [{ token: VIEWSTATE_PROVIDER }, { token: i1.MatSnackBar }, { token: ActionService }, { token: i1$3.MatDialogRef }, { token: i1$1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1112
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: DialogExportActionsComponent, isStandalone: false, 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. <a href=\"https://
|
|
1112
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: DialogExportActionsComponent, isStandalone: false, 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. <a href=\"https://columinity.com/wiki/Export-File-Definitions\">Our Wiki</a> has a definition.</p>\n <form [formGroup]=\"form\" (ngSubmit)=\"submit()\">\n <mat-form-field>\n <mat-label>Select date range (creation date)</mat-label>\n <mat-date-range-input [rangePicker]=\"picker\">\n <input matStartDate formControlName=\"start\" placeholder=\"Start date\">\n <input matEndDate formControlName=\"end\" placeholder=\"End date\">\n </mat-date-range-input>\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-date-range-picker #picker></mat-date-range-picker>\n @if (form.controls.start.hasError('matStartDateInvalid')) {\n <mat-error>Invalid start date</mat-error>\n }\n @if (form.controls.end.hasError('matEndDateInvalid')) {\n <mat-error>Invalid end date</mat-error>\n }\n </mat-form-field>\n\n <div class=\"toolbar\">\n <button class=\"button primary\" type=\"submit\" [ngClass]=\"{'loading': sending }\" [disabled]=\"sending\">export</button>\n <button class=\"button\" mat-dialog-close>cancel</button>\n </div>\n </form>\n</mat-dialog-content>\n", 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: i1$3.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1$3.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1$3.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: i1$4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.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"] }] }); }
|
|
1113
1113
|
}
|
|
1114
1114
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: DialogExportActionsComponent, decorators: [{
|
|
1115
1115
|
type: Component,
|
|
1116
|
-
args: [{ standalone: false, 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. <a href=\"https://
|
|
1116
|
+
args: [{ standalone: false, 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. <a href=\"https://columinity.com/wiki/Export-File-Definitions\">Our Wiki</a> has a definition.</p>\n <form [formGroup]=\"form\" (ngSubmit)=\"submit()\">\n <mat-form-field>\n <mat-label>Select date range (creation date)</mat-label>\n <mat-date-range-input [rangePicker]=\"picker\">\n <input matStartDate formControlName=\"start\" placeholder=\"Start date\">\n <input matEndDate formControlName=\"end\" placeholder=\"End date\">\n </mat-date-range-input>\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-date-range-picker #picker></mat-date-range-picker>\n @if (form.controls.start.hasError('matStartDateInvalid')) {\n <mat-error>Invalid start date</mat-error>\n }\n @if (form.controls.end.hasError('matEndDateInvalid')) {\n <mat-error>Invalid end date</mat-error>\n }\n </mat-form-field>\n\n <div class=\"toolbar\">\n <button class=\"button primary\" type=\"submit\" [ngClass]=\"{'loading': sending }\" [disabled]=\"sending\">export</button>\n <button class=\"button\" mat-dialog-close>cancel</button>\n </div>\n </form>\n</mat-dialog-content>\n", 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"] }]
|
|
1117
1117
|
}], ctorParameters: () => [{ type: ViewModelStateBase, decorators: [{
|
|
1118
1118
|
type: Inject,
|
|
1119
1119
|
args: [VIEWSTATE_PROVIDER]
|
|
@@ -4356,11 +4356,11 @@ class DialogSettingsComponent extends ComponentWithViewStateBase {
|
|
|
4356
4356
|
return arr2.every(item => set1.has(item));
|
|
4357
4357
|
}
|
|
4358
4358
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: DialogSettingsComponent, deps: [{ token: i1$3.MatDialogRef }, { token: FactorService }, { token: UserSettingService }, { token: i1.MatSnackBar }, { token: i1$1.FormBuilder }, { token: VIEWSTATE_PROVIDER }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4359
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: DialogSettingsComponent, isStandalone: false, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div class=\"dialog-header\">\n <h1 mat-dialog-title>Statistical Settings</h1>\n <div class=\"close\" mat-dialog-close><i class=\"responsive icon ph-x-bold\" ></i></div>\n</div>\n<mat-dialog-content>\n <form [formGroup]=\"form\" (ngSubmit)=\"submit()\">\n <div class=\"message message-information\"><span class=\"icon ph-info-fill\"></span><div><a target=\"_blank\" href=\"https://columinity.com/wiki/How-Statistical-Settings-impact-the-results\">Learn</a> how these settings affect insights.</div></div>\n <mat-form-field class=\"qualifyBy\" subscriptSizing=\"dynamic\">\n <mat-label>What baseline should we compare with?</mat-label>\n <mat-select class=\"qualifyBy-dropdown\" formControlName=\"qualifyBy\">\n @for (item of qualifyByTypes; track item) {\n <mat-option class=\"select-option\" [value]=\"item.value\">{{item.label}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n\n @if (isSingleTeam) {\n <mat-form-field class=\"stacking\" subscriptSizing=\"dynamic\">\n <mat-label>
|
|
4359
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: DialogSettingsComponent, isStandalone: false, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div class=\"dialog-header\">\n <h1 mat-dialog-title>Statistical Settings</h1>\n <div class=\"close\" mat-dialog-close><i class=\"responsive icon ph-x-bold\" ></i></div>\n</div>\n<mat-dialog-content>\n <form [formGroup]=\"form\" (ngSubmit)=\"submit()\">\n <div class=\"message message-information\"><span class=\"icon ph-info-fill\"></span><div><a target=\"_blank\" href=\"https://columinity.com/wiki/How-Statistical-Settings-impact-the-results\">Learn</a> how these settings affect insights.</div></div>\n <mat-form-field class=\"qualifyBy\" subscriptSizing=\"dynamic\">\n <mat-label>What baseline should we compare with?</mat-label>\n <mat-select class=\"qualifyBy-dropdown\" formControlName=\"qualifyBy\">\n @for (item of qualifyByTypes; track item) {\n <mat-option class=\"select-option\" [value]=\"item.value\">{{item.label}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n\n @if (isSingleTeam) {\n <mat-form-field class=\"stacking\" subscriptSizing=\"dynamic\">\n <mat-label>Merge multiple scans?</mat-label>\n <mat-select class=\"stacking-dropdown\" formControlName=\"stacking\">\n <mat-option class=\"select-option\" [value]=\"'false'\">No, only show most recent scans</mat-option>\n <mat-option class=\"select-option\" [value]=\"'true'\">Yes, and use most recent measure (max 12 months back)</mat-option>\n </mat-select>\n </mat-form-field>\n }\n\n <mat-form-field class=\"benchmark\" subscriptSizing=\"dynamic\">\n <mat-label>Which benchmark should we use?</mat-label>\n <mat-select class=\"benchmark-dropdown\" formControlName=\"benchmarkType\">\n @for (item of benchmarkTypes; track item) {\n <mat-option class=\"select-option\" [value]=\"item.value\">{{item.label}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n\n @if (!isSingleTeam) {\n <mat-form-field class=\"deltaPeriod\" subscriptSizing=\"dynamic\">\n <mat-label>Which periods should we compare?</mat-label>\n <mat-select class=\"deltaPeriod-dropdown\" formControlName=\"deltaPeriod\">\n @for (item of deltaPeriods; track item) {\n <mat-option class=\"select-option\" [value]=\"item.value\">{{item.label}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <mat-form-field class=\"overviewFactors\" subscriptSizing=\"dynamic\">\n <mat-label>Which factors should we show in the overview?</mat-label>\n <mat-select class=\"overviewFactors-dropdown\" formControlName=\"overviewFactors\" multiple (selectionChange)=\"verifyOverviewFactors()\">\n @if (customFactorsSelected) {\n <mat-option class=\"select-option\" (click)=\"resetOverviewFactors();\">Reset to default factors</mat-option>\n }\n @for (factor of factors; track factor) {\n <mat-option class=\"select-option\" [ngClass]=\"{'lower' : factor.lower}\" [value]=\"factor.value\">{{factor.label}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n\n <div class=\"toolbar\">\n <button class=\"button primary\" type=\"submit\" [ngClass]=\"{'loading': sending }\">submit</button>\n <button class=\"button\" mat-dialog-close>cancel</button>\n </div>\n </form>\n</mat-dialog-content>\n", 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}h2{font-size:30px;font-weight:600;margin-bottom:0}.mat-mdc-option.lower{margin-left:20px}.mat-dialog-content .mat-form-field{margin-bottom:30px!important}\n"], dependencies: [{ kind: "directive", type: i1$4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$3.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1$3.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1$3.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { 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: i5.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", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }] }); }
|
|
4360
4360
|
}
|
|
4361
4361
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: DialogSettingsComponent, decorators: [{
|
|
4362
4362
|
type: Component,
|
|
4363
|
-
args: [{ standalone: false, template: "<div class=\"dialog-header\">\n <h1 mat-dialog-title>Statistical Settings</h1>\n <div class=\"close\" mat-dialog-close><i class=\"responsive icon ph-x-bold\" ></i></div>\n</div>\n<mat-dialog-content>\n <form [formGroup]=\"form\" (ngSubmit)=\"submit()\">\n <div class=\"message message-information\"><span class=\"icon ph-info-fill\"></span><div><a target=\"_blank\" href=\"https://columinity.com/wiki/How-Statistical-Settings-impact-the-results\">Learn</a> how these settings affect insights.</div></div>\n <mat-form-field class=\"qualifyBy\" subscriptSizing=\"dynamic\">\n <mat-label>What baseline should we compare with?</mat-label>\n <mat-select class=\"qualifyBy-dropdown\" formControlName=\"qualifyBy\">\n @for (item of qualifyByTypes; track item) {\n <mat-option class=\"select-option\" [value]=\"item.value\">{{item.label}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n\n @if (isSingleTeam) {\n <mat-form-field class=\"stacking\" subscriptSizing=\"dynamic\">\n <mat-label>
|
|
4363
|
+
args: [{ standalone: false, template: "<div class=\"dialog-header\">\n <h1 mat-dialog-title>Statistical Settings</h1>\n <div class=\"close\" mat-dialog-close><i class=\"responsive icon ph-x-bold\" ></i></div>\n</div>\n<mat-dialog-content>\n <form [formGroup]=\"form\" (ngSubmit)=\"submit()\">\n <div class=\"message message-information\"><span class=\"icon ph-info-fill\"></span><div><a target=\"_blank\" href=\"https://columinity.com/wiki/How-Statistical-Settings-impact-the-results\">Learn</a> how these settings affect insights.</div></div>\n <mat-form-field class=\"qualifyBy\" subscriptSizing=\"dynamic\">\n <mat-label>What baseline should we compare with?</mat-label>\n <mat-select class=\"qualifyBy-dropdown\" formControlName=\"qualifyBy\">\n @for (item of qualifyByTypes; track item) {\n <mat-option class=\"select-option\" [value]=\"item.value\">{{item.label}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n\n @if (isSingleTeam) {\n <mat-form-field class=\"stacking\" subscriptSizing=\"dynamic\">\n <mat-label>Merge multiple scans?</mat-label>\n <mat-select class=\"stacking-dropdown\" formControlName=\"stacking\">\n <mat-option class=\"select-option\" [value]=\"'false'\">No, only show most recent scans</mat-option>\n <mat-option class=\"select-option\" [value]=\"'true'\">Yes, and use most recent measure (max 12 months back)</mat-option>\n </mat-select>\n </mat-form-field>\n }\n\n <mat-form-field class=\"benchmark\" subscriptSizing=\"dynamic\">\n <mat-label>Which benchmark should we use?</mat-label>\n <mat-select class=\"benchmark-dropdown\" formControlName=\"benchmarkType\">\n @for (item of benchmarkTypes; track item) {\n <mat-option class=\"select-option\" [value]=\"item.value\">{{item.label}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n\n @if (!isSingleTeam) {\n <mat-form-field class=\"deltaPeriod\" subscriptSizing=\"dynamic\">\n <mat-label>Which periods should we compare?</mat-label>\n <mat-select class=\"deltaPeriod-dropdown\" formControlName=\"deltaPeriod\">\n @for (item of deltaPeriods; track item) {\n <mat-option class=\"select-option\" [value]=\"item.value\">{{item.label}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <mat-form-field class=\"overviewFactors\" subscriptSizing=\"dynamic\">\n <mat-label>Which factors should we show in the overview?</mat-label>\n <mat-select class=\"overviewFactors-dropdown\" formControlName=\"overviewFactors\" multiple (selectionChange)=\"verifyOverviewFactors()\">\n @if (customFactorsSelected) {\n <mat-option class=\"select-option\" (click)=\"resetOverviewFactors();\">Reset to default factors</mat-option>\n }\n @for (factor of factors; track factor) {\n <mat-option class=\"select-option\" [ngClass]=\"{'lower' : factor.lower}\" [value]=\"factor.value\">{{factor.label}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n\n <div class=\"toolbar\">\n <button class=\"button primary\" type=\"submit\" [ngClass]=\"{'loading': sending }\">submit</button>\n <button class=\"button\" mat-dialog-close>cancel</button>\n </div>\n </form>\n</mat-dialog-content>\n", 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}h2{font-size:30px;font-weight:600;margin-bottom:0}.mat-mdc-option.lower{margin-left:20px}.mat-dialog-content .mat-form-field{margin-bottom:30px!important}\n"] }]
|
|
4364
4364
|
}], ctorParameters: () => [{ type: i1$3.MatDialogRef }, { type: FactorService }, { type: UserSettingService }, { type: i1.MatSnackBar }, { type: i1$1.FormBuilder }, { type: ViewModelStateBase, decorators: [{
|
|
4365
4365
|
type: Inject,
|
|
4366
4366
|
args: [VIEWSTATE_PROVIDER]
|
|
@@ -6316,11 +6316,11 @@ class FocusAreasComponent extends ComponentWithViewStateBase {
|
|
|
6316
6316
|
return items.length > 0 ? " to improve " + item.effects.filter(p => p.type == EffectTypeEnum.predicts)[0].name : null;
|
|
6317
6317
|
}
|
|
6318
6318
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: FocusAreasComponent, deps: [{ token: VIEWSTATE_PROVIDER }, { token: i1.MatSnackBar }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6319
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: FocusAreasComponent, isStandalone: false, selector: "focusareas", inputs: { limit: "limit" }, usesInheritance: true, ngImport: i0, template: "<div class=\"wirebox contentwithborders focusareas\">\n <h3>Focus areas</h3>\n @if (count > 0) {\n <p>Based on the data, we recommend to focus on the following areas:</p>\n @for (item of focusAreas; track item; let index = $index) {\n <div class=\"focusarea\" [routerLink]=\"[baseUrl, 'tips']\" [ngClass]=\"{'first': index == 0}\">\n <div class=\"index\">{{index + 1}}</div>\n <div class=\"name\">Invest in <b>{{item.name}}</b>{{getCoreFactor(item)}}</div>\n <div class=\"impact\"><span class=\"badge nofeedback\">impact <impact-indicator [factorScore]=\"item\"></impact-indicator></span></div>\n <div [routerLink]=\"[baseUrl, 'tips']\" [fragment]=\"item.key\" class=\"more\">discover how ></div>\n </div>\n }\n <div class=\"link\">\n <a [routerLink]=\"[baseUrl, 'tips']\">more recommendations ></a>\n </div>\n }\n @if (count == 0) {\n <p>Once you have one or more
|
|
6319
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: FocusAreasComponent, isStandalone: false, selector: "focusareas", inputs: { limit: "limit" }, usesInheritance: true, ngImport: i0, template: "<div class=\"wirebox contentwithborders focusareas\">\n <h3>Focus areas</h3>\n @if (count > 0) {\n <p>Based on the data, we recommend to focus on the following areas:</p>\n @for (item of focusAreas; track item; let index = $index) {\n <div class=\"focusarea\" [routerLink]=\"[baseUrl, 'tips']\" [ngClass]=\"{'first': index == 0}\">\n <div class=\"index\">{{index + 1}}</div>\n <div class=\"name\">Invest in <b>{{item.name}}</b>{{getCoreFactor(item)}}</div>\n <div class=\"impact\"><span class=\"badge nofeedback\">impact <impact-indicator [factorScore]=\"item\"></impact-indicator></span></div>\n <div [routerLink]=\"[baseUrl, 'tips']\" [fragment]=\"item.key\" class=\"more\">discover how ></div>\n </div>\n }\n <div class=\"link\">\n <a [routerLink]=\"[baseUrl, 'tips']\">more recommendations ></a>\n </div>\n }\n @if (count == 0) {\n <p>Once you have one or more team scans, you can find useful evidence-based feedback here.</p>\n }\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}.focusareas .focusarea{cursor:pointer;display:flex;align-items:center;padding:15px 10px;border-top:3px solid #f0f0f0}.focusareas .focusarea:hover{background:#f0f0f0}.focusareas .focusarea.first{border-top:none}.focusareas .focusarea .index{width:50px;height:50px;min-width:50px;min-height:50px;display:flex;justify-content:center;align-items:center;border-radius:25px;background:#1f3f8f;margin-right:15px;color:#fff;font-weight:600}.focusareas .focusarea .impact{margin-left:15px;white-space:pre}@media only screen and (max-width:992px){.focusareas .focusarea .impact{display:none}}.focusareas .focusarea .more{margin-left:15px;font-weight:600;font-size:15px;font-family:StevieSans,sans-serif;white-space:nowrap}@media only screen and (max-width:992px){.focusareas .focusarea .more{display:none}}.focusareas .focusarea .more .icon{vertical-align:middle}.focusareas .link{margin-top:30px;text-align:right;white-space:nowrap}\n"], dependencies: [{ kind: "directive", type: i1$4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$5.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: ImpactIndicatorComponent, selector: "impact-indicator", inputs: ["factorScore"] }] }); }
|
|
6320
6320
|
}
|
|
6321
6321
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: FocusAreasComponent, decorators: [{
|
|
6322
6322
|
type: Component,
|
|
6323
|
-
args: [{ selector: 'focusareas', standalone: false, template: "<div class=\"wirebox contentwithborders focusareas\">\n <h3>Focus areas</h3>\n @if (count > 0) {\n <p>Based on the data, we recommend to focus on the following areas:</p>\n @for (item of focusAreas; track item; let index = $index) {\n <div class=\"focusarea\" [routerLink]=\"[baseUrl, 'tips']\" [ngClass]=\"{'first': index == 0}\">\n <div class=\"index\">{{index + 1}}</div>\n <div class=\"name\">Invest in <b>{{item.name}}</b>{{getCoreFactor(item)}}</div>\n <div class=\"impact\"><span class=\"badge nofeedback\">impact <impact-indicator [factorScore]=\"item\"></impact-indicator></span></div>\n <div [routerLink]=\"[baseUrl, 'tips']\" [fragment]=\"item.key\" class=\"more\">discover how ></div>\n </div>\n }\n <div class=\"link\">\n <a [routerLink]=\"[baseUrl, 'tips']\">more recommendations ></a>\n </div>\n }\n @if (count == 0) {\n <p>Once you have one or more
|
|
6323
|
+
args: [{ selector: 'focusareas', standalone: false, template: "<div class=\"wirebox contentwithborders focusareas\">\n <h3>Focus areas</h3>\n @if (count > 0) {\n <p>Based on the data, we recommend to focus on the following areas:</p>\n @for (item of focusAreas; track item; let index = $index) {\n <div class=\"focusarea\" [routerLink]=\"[baseUrl, 'tips']\" [ngClass]=\"{'first': index == 0}\">\n <div class=\"index\">{{index + 1}}</div>\n <div class=\"name\">Invest in <b>{{item.name}}</b>{{getCoreFactor(item)}}</div>\n <div class=\"impact\"><span class=\"badge nofeedback\">impact <impact-indicator [factorScore]=\"item\"></impact-indicator></span></div>\n <div [routerLink]=\"[baseUrl, 'tips']\" [fragment]=\"item.key\" class=\"more\">discover how ></div>\n </div>\n }\n <div class=\"link\">\n <a [routerLink]=\"[baseUrl, 'tips']\">more recommendations ></a>\n </div>\n }\n @if (count == 0) {\n <p>Once you have one or more team scans, you can find useful evidence-based feedback here.</p>\n }\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}.focusareas .focusarea{cursor:pointer;display:flex;align-items:center;padding:15px 10px;border-top:3px solid #f0f0f0}.focusareas .focusarea:hover{background:#f0f0f0}.focusareas .focusarea.first{border-top:none}.focusareas .focusarea .index{width:50px;height:50px;min-width:50px;min-height:50px;display:flex;justify-content:center;align-items:center;border-radius:25px;background:#1f3f8f;margin-right:15px;color:#fff;font-weight:600}.focusareas .focusarea .impact{margin-left:15px;white-space:pre}@media only screen and (max-width:992px){.focusareas .focusarea .impact{display:none}}.focusareas .focusarea .more{margin-left:15px;font-weight:600;font-size:15px;font-family:StevieSans,sans-serif;white-space:nowrap}@media only screen and (max-width:992px){.focusareas .focusarea .more{display:none}}.focusareas .focusarea .more .icon{vertical-align:middle}.focusareas .link{margin-top:30px;text-align:right;white-space:nowrap}\n"] }]
|
|
6324
6324
|
}], ctorParameters: () => [{ type: ViewModelStateBase, decorators: [{
|
|
6325
6325
|
type: Inject,
|
|
6326
6326
|
args: [VIEWSTATE_PROVIDER]
|
|
@@ -6585,11 +6585,11 @@ class ParticipantsComponent extends ComponentWithViewStateBase {
|
|
|
6585
6585
|
}
|
|
6586
6586
|
;
|
|
6587
6587
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: ParticipantsComponent, deps: [{ token: VIEWSTATE_PROVIDER }, { token: i1.MatSnackBar }, { token: i2$2.Clipboard }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6588
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: ParticipantsComponent, isStandalone: false, selector: "participants", usesInheritance: true, ngImport: i0, template: "<div class=\"wirebox\">\n <div class=\"top\">\n <h3>{{population}} Participants</h3>\n </div>\n\n <div class=\"content\">\n <div class=\"segments\">\n @for (segment of populationSegments; track segment) {\n <div class=\"segment\">\n {{segmentName(segment.name)}} <span class=\"digit\">{{segment.occurances}}</span>\n </div>\n }\n @if (invitationGoal > 0) {\n <div class=\"segment\">\n Participation goal <span class=\"icon ph-info-fill\" [matTooltip]=\"'The percentage of people that participated from those expected/invited. To change the goal, update the \\'participation goal\\'-field when editting this
|
|
6588
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: ParticipantsComponent, isStandalone: false, selector: "participants", usesInheritance: true, ngImport: i0, template: "<div class=\"wirebox\">\n <div class=\"top\">\n <h3>{{population}} Participants</h3>\n </div>\n\n <div class=\"content\">\n <div class=\"segments\">\n @for (segment of populationSegments; track segment) {\n <div class=\"segment\">\n {{segmentName(segment.name)}} <span class=\"digit\">{{segment.occurances}}</span>\n </div>\n }\n @if (invitationGoal > 0) {\n <div class=\"segment\">\n Participation goal <span class=\"icon ph-info-fill\" [matTooltip]=\"'The percentage of people that participated from those expected/invited. To change the goal, update the \\'participation goal\\'-field when editting this scan in the Dashboard (Professional plan).'\"></span><span class=\"digit\">{{invitationGoal}} ({{participationRate}}%)</span>\n </div>\n }\n </div>\n\n @if (closed) {\n <div class=\"closed message\"><span class=\"icon ph-lock\"></span> The scan for this report was closed at {{closed | date :'mediumDate'}}. Still want to participate? Contact the person who invited the team to re-open it.</div>\n }\n\n @if (teamInviteUrl && !closed) {\n <div class=\"invitebox\">\n <h4>Invite team members <span class=\"icon ph-info-fill\" [matTooltip]=\"'Share this link with the members of the team. This typically includes roles such as Scrum Masters, Team Leads and Product Owners. Each member receives a personalized report that shows their personal scores (only visible to them) and team scores. Team scores are updated every time someone participates.'\"></span></h4>\n <div class=\"url\">\n <input type=\"text\" [value]=\"teamInviteUrl\" />\n <span [class]=\"'clipboard ' + (teamUrlCopied ? 'ph-clipboard-text' : 'ph-clipboard')\" (click)=\"copyTeamInviteLink()\"></span>\n </div>\n </div>\n }\n\n @if (stakeholderInviteUrl && !closed) {\n <div class=\"invitebox\">\n <h4>Invite stakeholders (customers, users) <span class=\"icon ph-info-fill\" [matTooltip]=\"'Share this link with the stakeholders of your team. These are the people who are best capable to evaluate the quality of what a team produces and have a clear stake in it, such as customers, end-users and investors. We ask them to evaluate the outcomes of what a team deliver to them. They do not receive any results, but a team can do so afterward.'\"></span></h4>\n <div class=\"url\">\n <input type=\"text\" [value]=\"stakeholderInviteUrl\" />\n <span [class]=\"'clipboard ' + (stakeholderUrlCopied ? 'ph-clipboard-text' : 'ph-clipboard')\" (click)=\"copyStakeholderInviteLink()\"></span>\n </div>\n </div>\n }\n\n @if (supporterInviteUrl && !closed) {\n <div class=\"invitebox\">\n <h4>Invite supporters (managers, coaches, leaders) <span class=\"icon ph-info-fill\" [matTooltip]=\"'Share this link with the people who support your team but do not work as part of it. This includes managers, coaches and people in a leadership position. We ask supporters to evaluate their support for your team. They dont receive any results, but a team can do so afterward.'\"></span></h4>\n <div class=\"url\">\n <input type=\"text\" [value]=\"supporterInviteUrl\" />\n <span [class]=\"'clipboard ' + (supporterUrlCopied ? 'ph-clipboard-text' : 'ph-clipboard')\" (click)=\"copySupporterInviteLink()\"></span>\n </div>\n </div>\n }\n </div>\n <div class=\"bottom\">\n </div>\n</div>\n\n", 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}.wirebox .content .closed{margin-top:15px;background:#f0f0f0;padding:10px;margin-bottom:0}.wirebox .content .segment{margin-bottom:5px}.wirebox .content .segment .icon{vertical-align:middle}.wirebox .content .segment .digit{float:right}.wirebox .bottom{padding-bottom:0}\n"], dependencies: [{ kind: "directive", type: i2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "pipe", type: i1$4.DatePipe, name: "date" }] }); }
|
|
6589
6589
|
}
|
|
6590
6590
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: ParticipantsComponent, decorators: [{
|
|
6591
6591
|
type: Component,
|
|
6592
|
-
args: [{ selector: 'participants', standalone: false, template: "<div class=\"wirebox\">\n <div class=\"top\">\n <h3>{{population}} Participants</h3>\n </div>\n\n <div class=\"content\">\n <div class=\"segments\">\n @for (segment of populationSegments; track segment) {\n <div class=\"segment\">\n {{segmentName(segment.name)}} <span class=\"digit\">{{segment.occurances}}</span>\n </div>\n }\n @if (invitationGoal > 0) {\n <div class=\"segment\">\n Participation goal <span class=\"icon ph-info-fill\" [matTooltip]=\"'The percentage of people that participated from those expected/invited. To change the goal, update the \\'participation goal\\'-field when editting this
|
|
6592
|
+
args: [{ selector: 'participants', standalone: false, template: "<div class=\"wirebox\">\n <div class=\"top\">\n <h3>{{population}} Participants</h3>\n </div>\n\n <div class=\"content\">\n <div class=\"segments\">\n @for (segment of populationSegments; track segment) {\n <div class=\"segment\">\n {{segmentName(segment.name)}} <span class=\"digit\">{{segment.occurances}}</span>\n </div>\n }\n @if (invitationGoal > 0) {\n <div class=\"segment\">\n Participation goal <span class=\"icon ph-info-fill\" [matTooltip]=\"'The percentage of people that participated from those expected/invited. To change the goal, update the \\'participation goal\\'-field when editting this scan in the Dashboard (Professional plan).'\"></span><span class=\"digit\">{{invitationGoal}} ({{participationRate}}%)</span>\n </div>\n }\n </div>\n\n @if (closed) {\n <div class=\"closed message\"><span class=\"icon ph-lock\"></span> The scan for this report was closed at {{closed | date :'mediumDate'}}. Still want to participate? Contact the person who invited the team to re-open it.</div>\n }\n\n @if (teamInviteUrl && !closed) {\n <div class=\"invitebox\">\n <h4>Invite team members <span class=\"icon ph-info-fill\" [matTooltip]=\"'Share this link with the members of the team. This typically includes roles such as Scrum Masters, Team Leads and Product Owners. Each member receives a personalized report that shows their personal scores (only visible to them) and team scores. Team scores are updated every time someone participates.'\"></span></h4>\n <div class=\"url\">\n <input type=\"text\" [value]=\"teamInviteUrl\" />\n <span [class]=\"'clipboard ' + (teamUrlCopied ? 'ph-clipboard-text' : 'ph-clipboard')\" (click)=\"copyTeamInviteLink()\"></span>\n </div>\n </div>\n }\n\n @if (stakeholderInviteUrl && !closed) {\n <div class=\"invitebox\">\n <h4>Invite stakeholders (customers, users) <span class=\"icon ph-info-fill\" [matTooltip]=\"'Share this link with the stakeholders of your team. These are the people who are best capable to evaluate the quality of what a team produces and have a clear stake in it, such as customers, end-users and investors. We ask them to evaluate the outcomes of what a team deliver to them. They do not receive any results, but a team can do so afterward.'\"></span></h4>\n <div class=\"url\">\n <input type=\"text\" [value]=\"stakeholderInviteUrl\" />\n <span [class]=\"'clipboard ' + (stakeholderUrlCopied ? 'ph-clipboard-text' : 'ph-clipboard')\" (click)=\"copyStakeholderInviteLink()\"></span>\n </div>\n </div>\n }\n\n @if (supporterInviteUrl && !closed) {\n <div class=\"invitebox\">\n <h4>Invite supporters (managers, coaches, leaders) <span class=\"icon ph-info-fill\" [matTooltip]=\"'Share this link with the people who support your team but do not work as part of it. This includes managers, coaches and people in a leadership position. We ask supporters to evaluate their support for your team. They dont receive any results, but a team can do so afterward.'\"></span></h4>\n <div class=\"url\">\n <input type=\"text\" [value]=\"supporterInviteUrl\" />\n <span [class]=\"'clipboard ' + (supporterUrlCopied ? 'ph-clipboard-text' : 'ph-clipboard')\" (click)=\"copySupporterInviteLink()\"></span>\n </div>\n </div>\n }\n </div>\n <div class=\"bottom\">\n </div>\n</div>\n\n", 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}.wirebox .content .closed{margin-top:15px;background:#f0f0f0;padding:10px;margin-bottom:0}.wirebox .content .segment{margin-bottom:5px}.wirebox .content .segment .icon{vertical-align:middle}.wirebox .content .segment .digit{float:right}.wirebox .bottom{padding-bottom:0}\n"] }]
|
|
6593
6593
|
}], ctorParameters: () => [{ type: ViewModelStateBase, decorators: [{
|
|
6594
6594
|
type: Inject,
|
|
6595
6595
|
args: [VIEWSTATE_PROVIDER]
|
|
@@ -6930,11 +6930,11 @@ class TrendsComponent extends ComponentWithViewStateBase {
|
|
|
6930
6930
|
}
|
|
6931
6931
|
;
|
|
6932
6932
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: TrendsComponent, deps: [{ token: i1$1.UntypedFormBuilder }, { token: i1.MatSnackBar }, { token: FactorService }, { token: TrendService }, { token: i1$5.ActivatedRoute }, { token: VIEWSTATE_PROVIDER }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6933
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: TrendsComponent, isStandalone: false, selector: "trends", inputs: { units: "units", unitType: "unitType" }, viewQueries: [{ propertyName: "chartContainer", first: true, predicate: ["chartcontainer"], descendants: true }], usesInheritance: true, ngImport: i0, template: "\n\n<div class=\"message message-information\">\n <span class=\"ph-info icon\"></span> This chart shows how factors change over time. The horizontal axis shows the time. The vertical axis shows the weighted average score on the factor. The light area around the lines represents the spread of scores (lower and upper 15% of scores). We summarize results for one or more teams and from one or more organizations to the periods you chose (1 month, quarter, etc). For each period, we take the most recent snapshot of each team in that period (when available). Hit \"Show Trends\" when you're ready.\n</div>\n\n<form [formGroup]=\"form\" class=\"dataselector\" (ngSubmit)=\"onFormSubmit()\">\n <div class=\"listtoolbar\" id=\"listtoolbar\">\n @if (units.length > 1) {\n <mat-form-field class=\"listtoolbar-item select\" appearance=\"fill\">\n <mat-label>Select {{unitType}}</mat-label>\n <mat-select formControlName=\"unitKey\" id=\"select-units\" class=\"unitKey\" multiple [disabled]=\"units.length == 1\">\n @for (unit of units; track unit) {\n <mat-option class=\"select-option\" [value]=\"unit\">{{unit.label}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n\n <mat-form-field class=\"listtoolbar-item select\" appearance=\"fill\">\n <mat-label>Select factors</mat-label>\n <mat-select formControlName=\"factorKeys\" id=\"select-factors\" class=\"factorKeys\" multiple [compareWith]=\"compareFactorOptions\">\n @for (factor of factors; track factor) {\n <mat-option class=\"select-option\" [ngClass]=\"{'lower' : factor.lower}\" [value]=\"factor\" selected=\"true\">{{factor.label}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"listtoolbar-item select\" appearance=\"fill\">\n <mat-label>Summarize to periods of</mat-label>\n <mat-select class=\"periodGrouping-dropdown\" id=\"select-periodGrouping\" formControlName=\"periodGrouping\">\n @for (item of periodGroupings; track item) {\n <mat-option class=\"select-option\" [value]=\"item.value\">{{item.label}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"listtoolbar-item select\" appearance=\"fill\">\n <mat-label>Action count</mat-label>\n <mat-select class=\"selectactions-dropdown\" id=\"select-includeActions\" formControlName=\"includeActions\">\n @for (item of includeActionOptions; track item) {\n <mat-option class=\"select-option\" [value]=\"item.value\" class=\"select-option\">{{item.label}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"listtoolbar-item select\" appearance=\"fill\">\n <mat-label>Select date range </mat-label>\n <mat-date-range-input [rangePicker]=\"picker\" id=\"select-daterange\">\n <input matStartDate formControlName=\"start\" placeholder=\"Start date\">\n <input matEndDate formControlName=\"end\" placeholder=\"End date\">\n </mat-date-range-input>\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-date-range-picker #picker></mat-date-range-picker>\n\n @if (form.controls.start.hasError('matStartDateInvalid')) {\n <mat-error>Invalid start date</mat-error>\n }\n @if (form.controls.end.hasError('matEndDateInvalid')) {\n <mat-error>Invalid end date</mat-error>\n }\n </mat-form-field>\n\n <div class=\"listtoolbar-item\">\n <button class=\"button primary\" id=\"button-showtrends\" [ngClass]=\"{'loading': loading}\"><span class=\"ph-funnel\"></span> Show trends</button>\n </div>\n </div>\n</form>\n\n@if (generatorNotes.length > 0) {\n <div class=\"message message-warning\">\n <div class=\"ph-warning icon\"></div> {{generatorNotes[0]}}\n </div>\n}\n\n@if (!data) {\n <div class=\"wirebox calltoaction nodata\">\n <div class=\"contentwithborders\">\n <div class=\"center\">\n <img src=\"assets/img/improve.png\" />\n <h2>Are you actually improving?</h2>\n <p>Learn if your improvements are actually working out. Take more measurements and plot the trends for your {{unitType}}(s). How is that for empiricism?</p>\n </div>\n </div>\n </div>\n}\n\n<div #chartcontainer class=\"linechart\">\n @if (data) {\n <div class=\"linechart-container\">\n <ngx-charts-line-chart [legend]=\"true\"\n (window:resize)=\"onResize()\"\n [view]=\"view\"\n [showXAxisLabel]=\"true\"\n [showYAxisLabel]=\"true\"\n [xAxis]=\"true\"\n [scheme]=\"'vivid'\"\n [yAxis]=\"true\"\n [legendPosition]=\"legendPosition\"\n [xAxisLabel]=\"'Date'\"\n [yAxisLabel]=\"'Score'\"\n [timeline]=\"true\"\n [yScaleMin]=\"0\"\n [yScaleMax]=\"100\"\n [rangeFillOpacity]=\"0.1\"\n [results]=\"data\"\n [customColors]=\"customColors\">\n </ngx-charts-line-chart>\n </div>\n }\n</div>\n", 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}.listtoolbar{display:flex;flex-wrap:wrap;column-gap:30px;row-gap:10px}.listtoolbar .select{flex:auto}.nodata{margin-top:30px;margin-bottom:30px}.nodata img{max-width:700px}.linechart-container{border:3px solid #f0f0f0;margin-top:30px;margin-bottom:30px;padding:30px}.toolbar{margin-top:30px}.mat-mdc-option.lower{margin-left:20px}\n"], dependencies: [{ kind: "directive", type: i1$4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i7$1.LineChartComponent, selector: "ngx-charts-line-chart", inputs: ["legend", "legendTitle", "legendPosition", "xAxis", "yAxis", "showXAxisLabel", "showYAxisLabel", "xAxisLabel", "yAxisLabel", "autoScale", "timeline", "gradient", "showGridLines", "curve", "activeEntries", "schemeType", "rangeFillOpacity", "trimXAxisTicks", "trimYAxisTicks", "rotateXAxisTicks", "maxXAxisTickLength", "maxYAxisTickLength", "xAxisTickFormatting", "yAxisTickFormatting", "xAxisTicks", "yAxisTicks", "roundDomains", "tooltipDisabled", "showRefLines", "referenceLines", "showRefLabels", "xScaleMin", "xScaleMax", "yScaleMin", "yScaleMax", "wrapTicks"], outputs: ["activate", "deactivate"] }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { 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: "component", type: i5.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", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { 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"] }] }); }
|
|
6933
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: TrendsComponent, isStandalone: false, selector: "trends", inputs: { units: "units", unitType: "unitType" }, viewQueries: [{ propertyName: "chartContainer", first: true, predicate: ["chartcontainer"], descendants: true }], usesInheritance: true, ngImport: i0, template: "\n\n<div class=\"message message-information\">\n <span class=\"ph-info icon\"></span> This chart shows how factors change over time. The horizontal axis shows the time. The vertical axis shows the weighted average score on the factor. The light area around the lines represents the spread of scores (lower and upper 15% of scores). We summarize results for one or more teams and from one or more organizations to the periods you chose (1 month, quarter, etc). For each period, we take the most recent scan of each team in that period (when available). Hit \"Show Trends\" when you're ready.\n</div>\n\n<form [formGroup]=\"form\" class=\"dataselector\" (ngSubmit)=\"onFormSubmit()\">\n <div class=\"listtoolbar\" id=\"listtoolbar\">\n @if (units.length > 1) {\n <mat-form-field class=\"listtoolbar-item select\" appearance=\"fill\">\n <mat-label>Select {{unitType}}</mat-label>\n <mat-select formControlName=\"unitKey\" id=\"select-units\" class=\"unitKey\" multiple [disabled]=\"units.length == 1\">\n @for (unit of units; track unit) {\n <mat-option class=\"select-option\" [value]=\"unit\">{{unit.label}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n\n <mat-form-field class=\"listtoolbar-item select\" appearance=\"fill\">\n <mat-label>Select factors</mat-label>\n <mat-select formControlName=\"factorKeys\" id=\"select-factors\" class=\"factorKeys\" multiple [compareWith]=\"compareFactorOptions\">\n @for (factor of factors; track factor) {\n <mat-option class=\"select-option\" [ngClass]=\"{'lower' : factor.lower}\" [value]=\"factor\" selected=\"true\">{{factor.label}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"listtoolbar-item select\" appearance=\"fill\">\n <mat-label>Summarize to periods of</mat-label>\n <mat-select class=\"periodGrouping-dropdown\" id=\"select-periodGrouping\" formControlName=\"periodGrouping\">\n @for (item of periodGroupings; track item) {\n <mat-option class=\"select-option\" [value]=\"item.value\">{{item.label}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"listtoolbar-item select\" appearance=\"fill\">\n <mat-label>Action count</mat-label>\n <mat-select class=\"selectactions-dropdown\" id=\"select-includeActions\" formControlName=\"includeActions\">\n @for (item of includeActionOptions; track item) {\n <mat-option class=\"select-option\" [value]=\"item.value\" class=\"select-option\">{{item.label}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"listtoolbar-item select\" appearance=\"fill\">\n <mat-label>Select date range </mat-label>\n <mat-date-range-input [rangePicker]=\"picker\" id=\"select-daterange\">\n <input matStartDate formControlName=\"start\" placeholder=\"Start date\">\n <input matEndDate formControlName=\"end\" placeholder=\"End date\">\n </mat-date-range-input>\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-date-range-picker #picker></mat-date-range-picker>\n\n @if (form.controls.start.hasError('matStartDateInvalid')) {\n <mat-error>Invalid start date</mat-error>\n }\n @if (form.controls.end.hasError('matEndDateInvalid')) {\n <mat-error>Invalid end date</mat-error>\n }\n </mat-form-field>\n\n <div class=\"listtoolbar-item\">\n <button class=\"button primary\" id=\"button-showtrends\" [ngClass]=\"{'loading': loading}\"><span class=\"ph-funnel\"></span> Show trends</button>\n </div>\n </div>\n</form>\n\n@if (generatorNotes.length > 0) {\n <div class=\"message message-warning\">\n <div class=\"ph-warning icon\"></div> {{generatorNotes[0]}}\n </div>\n}\n\n@if (!data) {\n <div class=\"wirebox calltoaction nodata\">\n <div class=\"contentwithborders\">\n <div class=\"center\">\n <img src=\"assets/img/improve.png\" />\n <h2>Are you actually improving?</h2>\n <p>Learn if your improvements are actually working out. Take more measurements and plot the trends for your {{unitType}}(s). How is that for empiricism?</p>\n </div>\n </div>\n </div>\n}\n\n<div #chartcontainer class=\"linechart\">\n @if (data) {\n <div class=\"linechart-container\">\n <ngx-charts-line-chart [legend]=\"true\"\n (window:resize)=\"onResize()\"\n [view]=\"view\"\n [showXAxisLabel]=\"true\"\n [showYAxisLabel]=\"true\"\n [xAxis]=\"true\"\n [scheme]=\"'vivid'\"\n [yAxis]=\"true\"\n [legendPosition]=\"legendPosition\"\n [xAxisLabel]=\"'Date'\"\n [yAxisLabel]=\"'Score'\"\n [timeline]=\"true\"\n [yScaleMin]=\"0\"\n [yScaleMax]=\"100\"\n [rangeFillOpacity]=\"0.1\"\n [results]=\"data\"\n [customColors]=\"customColors\">\n </ngx-charts-line-chart>\n </div>\n }\n</div>\n", 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}.listtoolbar{display:flex;flex-wrap:wrap;column-gap:30px;row-gap:10px}.listtoolbar .select{flex:auto}.nodata{margin-top:30px;margin-bottom:30px}.nodata img{max-width:700px}.linechart-container{border:3px solid #f0f0f0;margin-top:30px;margin-bottom:30px;padding:30px}.toolbar{margin-top:30px}.mat-mdc-option.lower{margin-left:20px}\n"], dependencies: [{ kind: "directive", type: i1$4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i7$1.LineChartComponent, selector: "ngx-charts-line-chart", inputs: ["legend", "legendTitle", "legendPosition", "xAxis", "yAxis", "showXAxisLabel", "showYAxisLabel", "xAxisLabel", "yAxisLabel", "autoScale", "timeline", "gradient", "showGridLines", "curve", "activeEntries", "schemeType", "rangeFillOpacity", "trimXAxisTicks", "trimYAxisTicks", "rotateXAxisTicks", "maxXAxisTickLength", "maxYAxisTickLength", "xAxisTickFormatting", "yAxisTickFormatting", "xAxisTicks", "yAxisTicks", "roundDomains", "tooltipDisabled", "showRefLines", "referenceLines", "showRefLabels", "xScaleMin", "xScaleMax", "yScaleMin", "yScaleMax", "wrapTicks"], outputs: ["activate", "deactivate"] }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { 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: "component", type: i5.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", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { 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"] }] }); }
|
|
6934
6934
|
}
|
|
6935
6935
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: TrendsComponent, decorators: [{
|
|
6936
6936
|
type: Component,
|
|
6937
|
-
args: [{ selector: 'trends', standalone: false, template: "\n\n<div class=\"message message-information\">\n <span class=\"ph-info icon\"></span> This chart shows how factors change over time. The horizontal axis shows the time. The vertical axis shows the weighted average score on the factor. The light area around the lines represents the spread of scores (lower and upper 15% of scores). We summarize results for one or more teams and from one or more organizations to the periods you chose (1 month, quarter, etc). For each period, we take the most recent
|
|
6937
|
+
args: [{ selector: 'trends', standalone: false, template: "\n\n<div class=\"message message-information\">\n <span class=\"ph-info icon\"></span> This chart shows how factors change over time. The horizontal axis shows the time. The vertical axis shows the weighted average score on the factor. The light area around the lines represents the spread of scores (lower and upper 15% of scores). We summarize results for one or more teams and from one or more organizations to the periods you chose (1 month, quarter, etc). For each period, we take the most recent scan of each team in that period (when available). Hit \"Show Trends\" when you're ready.\n</div>\n\n<form [formGroup]=\"form\" class=\"dataselector\" (ngSubmit)=\"onFormSubmit()\">\n <div class=\"listtoolbar\" id=\"listtoolbar\">\n @if (units.length > 1) {\n <mat-form-field class=\"listtoolbar-item select\" appearance=\"fill\">\n <mat-label>Select {{unitType}}</mat-label>\n <mat-select formControlName=\"unitKey\" id=\"select-units\" class=\"unitKey\" multiple [disabled]=\"units.length == 1\">\n @for (unit of units; track unit) {\n <mat-option class=\"select-option\" [value]=\"unit\">{{unit.label}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n\n <mat-form-field class=\"listtoolbar-item select\" appearance=\"fill\">\n <mat-label>Select factors</mat-label>\n <mat-select formControlName=\"factorKeys\" id=\"select-factors\" class=\"factorKeys\" multiple [compareWith]=\"compareFactorOptions\">\n @for (factor of factors; track factor) {\n <mat-option class=\"select-option\" [ngClass]=\"{'lower' : factor.lower}\" [value]=\"factor\" selected=\"true\">{{factor.label}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"listtoolbar-item select\" appearance=\"fill\">\n <mat-label>Summarize to periods of</mat-label>\n <mat-select class=\"periodGrouping-dropdown\" id=\"select-periodGrouping\" formControlName=\"periodGrouping\">\n @for (item of periodGroupings; track item) {\n <mat-option class=\"select-option\" [value]=\"item.value\">{{item.label}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"listtoolbar-item select\" appearance=\"fill\">\n <mat-label>Action count</mat-label>\n <mat-select class=\"selectactions-dropdown\" id=\"select-includeActions\" formControlName=\"includeActions\">\n @for (item of includeActionOptions; track item) {\n <mat-option class=\"select-option\" [value]=\"item.value\" class=\"select-option\">{{item.label}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"listtoolbar-item select\" appearance=\"fill\">\n <mat-label>Select date range </mat-label>\n <mat-date-range-input [rangePicker]=\"picker\" id=\"select-daterange\">\n <input matStartDate formControlName=\"start\" placeholder=\"Start date\">\n <input matEndDate formControlName=\"end\" placeholder=\"End date\">\n </mat-date-range-input>\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-date-range-picker #picker></mat-date-range-picker>\n\n @if (form.controls.start.hasError('matStartDateInvalid')) {\n <mat-error>Invalid start date</mat-error>\n }\n @if (form.controls.end.hasError('matEndDateInvalid')) {\n <mat-error>Invalid end date</mat-error>\n }\n </mat-form-field>\n\n <div class=\"listtoolbar-item\">\n <button class=\"button primary\" id=\"button-showtrends\" [ngClass]=\"{'loading': loading}\"><span class=\"ph-funnel\"></span> Show trends</button>\n </div>\n </div>\n</form>\n\n@if (generatorNotes.length > 0) {\n <div class=\"message message-warning\">\n <div class=\"ph-warning icon\"></div> {{generatorNotes[0]}}\n </div>\n}\n\n@if (!data) {\n <div class=\"wirebox calltoaction nodata\">\n <div class=\"contentwithborders\">\n <div class=\"center\">\n <img src=\"assets/img/improve.png\" />\n <h2>Are you actually improving?</h2>\n <p>Learn if your improvements are actually working out. Take more measurements and plot the trends for your {{unitType}}(s). How is that for empiricism?</p>\n </div>\n </div>\n </div>\n}\n\n<div #chartcontainer class=\"linechart\">\n @if (data) {\n <div class=\"linechart-container\">\n <ngx-charts-line-chart [legend]=\"true\"\n (window:resize)=\"onResize()\"\n [view]=\"view\"\n [showXAxisLabel]=\"true\"\n [showYAxisLabel]=\"true\"\n [xAxis]=\"true\"\n [scheme]=\"'vivid'\"\n [yAxis]=\"true\"\n [legendPosition]=\"legendPosition\"\n [xAxisLabel]=\"'Date'\"\n [yAxisLabel]=\"'Score'\"\n [timeline]=\"true\"\n [yScaleMin]=\"0\"\n [yScaleMax]=\"100\"\n [rangeFillOpacity]=\"0.1\"\n [results]=\"data\"\n [customColors]=\"customColors\">\n </ngx-charts-line-chart>\n </div>\n }\n</div>\n", 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}.listtoolbar{display:flex;flex-wrap:wrap;column-gap:30px;row-gap:10px}.listtoolbar .select{flex:auto}.nodata{margin-top:30px;margin-bottom:30px}.nodata img{max-width:700px}.linechart-container{border:3px solid #f0f0f0;margin-top:30px;margin-bottom:30px;padding:30px}.toolbar{margin-top:30px}.mat-mdc-option.lower{margin-left:20px}\n"] }]
|
|
6938
6938
|
}], ctorParameters: () => [{ type: i1$1.UntypedFormBuilder }, { type: i1.MatSnackBar }, { type: FactorService }, { type: TrendService }, { type: i1$5.ActivatedRoute }, { type: ViewModelStateBase, decorators: [{
|
|
6939
6939
|
type: Inject,
|
|
6940
6940
|
args: [VIEWSTATE_PROVIDER]
|
|
@@ -7215,11 +7215,11 @@ class UserProfileComponent extends ComponentWithViewStateBase {
|
|
|
7215
7215
|
}
|
|
7216
7216
|
;
|
|
7217
7217
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: UserProfileComponent, deps: [{ token: VIEWSTATE_PROVIDER }, { token: i1$6.AuthService }, { token: UserProfileService }, { token: AccountService$1 }, { token: i1$1.UntypedFormBuilder }, { token: i1.MatSnackBar }, { token: i1$5.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
7218
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: UserProfileComponent, isStandalone: false, selector: "userprofile", usesInheritance: true, ngImport: i0, template: "<div class=\"form-profile\">\n <h2>My Profile</h2>\n <form class=\"form\" [formGroup]=\"form\" (ngSubmit)=\"onSubmit(formDirective)\" #formDirective=\"ngForm\">\n <div class=\"form-label\">Avatar</div>\n\n <div class=\"currentuserprofileavatar\">\n @if (userProfile.avatarUrl) {\n <div class=\"userprofileavatar\">\n @if (loading) {\n <div class=\"loading-icon small\"></div>\n }\n @if (!loading) {\n <img class=\"responsive\" [src]=\"userProfile.avatarUrl\" />\n }\n </div>\n }\n <div class=\"reupload\">\n @if (!changeAvatar && userProfile.avatarUrl) {\n <div class=\"button\" (click)=\"changeAvatar = true\">Change avatar</div>\n }\n @if (!changeAvatar && !userProfile.avatarUrl) {\n <div class=\"button\" (click)=\"changeAvatar = true\">Set avatar</div>\n }\n @if (changeAvatar && userProfile.avatarUrl) {\n <div class=\"button\" (click)=\"clearAvatar()\"><span class=\"icon ph-trash-fill\"></span>Clear</div>\n }\n </div>\n </div>\n\n @if (changeAvatar) {\n <div class=\"reuploadform\">\n <div (click)=\"changeAvatar = false\" class=\"cancel icon ph-x-bold\"></div>\n <input class=\"mat-form-field\" accept=\"image/png,image/jpeg\" type=\"file\" id=\"coach-avatar\" (change)=\"uploadAvatar($event)\">\n <div class=\"message message-information\">\n <span class=\"icon ph-info-fill\"></span>Select new image (.png or .jpg). Use a 1:1 ratio for the best results (e.g. 500x500). Maximum size is 500x500px and 500kb.\n </div>\n </div>\n }\n\n <div class=\"form-label\">Name</div>\n <mat-form-field appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>What is your name?</mat-label>\n <input maxlength=\"50\" matInput id=\"name\" formControlName=\"name\" type=\"text\">\n @if (form.controls.name.errors) {\n <mat-error>\n @if (form.controls.name.errors.required) {\n <div>This field is required</div>\n }\n </mat-error>\n }\n </mat-form-field>\n\n <div class=\"form-label\">Email</div>\n @if (!showEmailInput) {\n <p>\n The e-mail address is set to <b>{{userProfile.email}}</b>.\n <a [routerLink]=\"[]\" id=\"toggle-email\" (click)=\"setChangeEmail()\">Set a different address.</a>\n </p>\n }\n\n @if (showEmailInput) {\n <mat-form-field appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>On what e-mail address can you be contacted?</mat-label>\n <input matInput id=\"newEmail\" formControlName=\"newEmail\" type=\"email\">\n @if (form.controls.newEmail.errors) {\n <mat-error>\n @if (form.controls.newEmail.errors.email) {\n <div>The email is invalid. Please specify email like john@doe.nl or jane.doe@someone.nl.</div>\n }\n @if (form.controls.newEmail.errors.alreadyExists) {\n <div>Another user already uses this e-mail address. Please use another email address.</div>\n }\n </mat-error>\n }\n </mat-form-field>\n }\n\n <div class=\"toolbar\">\n <input class=\"button submit primary\" type=\"submit\" id=\"submit\" [disabled]=\"loading\" [ngClass]=\"{'loading': loading}\" value=\"Save\" />\n </div>\n </form>\n</div>\n\n<div class=\"form-security\">\n <h2>Security</h2>\n\n <form class=\"form\">\n <div class=\"form-label\">Change password</div>\n @if (!userProfile.usesSSO) {\n <div class=\"button\" (click)=\"sendPasswordReset()\" id=\"account-passwordreset\">Send email to change password</div>\n }\n @if (userProfile.usesSSO) {\n <p>You are logging in through single-sign on (SSO). Use your company's identity provider to change your password.</p>\n }\n\n @if (allowMFA) {\n <div class=\"form-label\">Add additional login factor (MFA)</div>\n @if (!usesMFA) {\n <p>Add a code from Google Authenticator or similar to your account to make it more secure.</p>\n <div class=\"button\" (click)=\"sendMFAEnrollment()\" id=\"account-enrollmfa\">Send email to set up 2FA</div>\n }\n @if (usesMFA) {\n <p>An additional factor is <b>enabled</b> for this account.</p>\n <div class=\"button\" (click)=\"resetMFAEnrollment()\" id=\"account-resetmfa\">Reset 2FA</div>\n }\n }\n\n @if (allowAPI) {\n <div class=\"form-label\">API Access</div>\n <p>Access our <a target=\"_blank\" href=\"https://github.com/theliberators/scrumteamsurvey.docs/wiki/Getting-Started-with-the-API\">API</a> with your personal account.</p>\n <div class=\"button\" (click)=\"createAPITokens()\" id=\"account-apitokens\">Send email with new API tokens</div>\n }\n </form>\n</div>\n", 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}.form-label{margin-top:30px}.currentuserprofileavatar{display:flex}.currentuserprofileavatar .userprofileavatar{margin-bottom:30px;display:flex;background:#2f2f2f;margin-right:15px;width:100px;height:100px;padding:10px}.reuploadform{background:#f0f0f0;position:relative}.reuploadform input{padding:15px 15px 0}.reuploadform .cancel{cursor:pointer;font-size:20pt;position:absolute;right:10px;top:10px}.form-security{margin-top:90px}\n"], dependencies: [{ kind: "directive", type: i1$4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$5.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1$1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]):not([formArray]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { 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"] }] }); }
|
|
7218
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: UserProfileComponent, isStandalone: false, selector: "userprofile", usesInheritance: true, ngImport: i0, template: "<div class=\"form-profile\">\n <h2>My Profile</h2>\n <form class=\"form\" [formGroup]=\"form\" (ngSubmit)=\"onSubmit(formDirective)\" #formDirective=\"ngForm\">\n <div class=\"form-label\">Avatar</div>\n\n <div class=\"currentuserprofileavatar\">\n @if (userProfile.avatarUrl) {\n <div class=\"userprofileavatar\">\n @if (loading) {\n <div class=\"loading-icon small\"></div>\n }\n @if (!loading) {\n <img class=\"responsive\" [src]=\"userProfile.avatarUrl\" />\n }\n </div>\n }\n <div class=\"reupload\">\n @if (!changeAvatar && userProfile.avatarUrl) {\n <div class=\"button\" (click)=\"changeAvatar = true\">Change avatar</div>\n }\n @if (!changeAvatar && !userProfile.avatarUrl) {\n <div class=\"button\" (click)=\"changeAvatar = true\">Set avatar</div>\n }\n @if (changeAvatar && userProfile.avatarUrl) {\n <div class=\"button\" (click)=\"clearAvatar()\"><span class=\"icon ph-trash-fill\"></span>Clear</div>\n }\n </div>\n </div>\n\n @if (changeAvatar) {\n <div class=\"reuploadform\">\n <div (click)=\"changeAvatar = false\" class=\"cancel icon ph-x-bold\"></div>\n <input class=\"mat-form-field\" accept=\"image/png,image/jpeg\" type=\"file\" id=\"coach-avatar\" (change)=\"uploadAvatar($event)\">\n <div class=\"message message-information\">\n <span class=\"icon ph-info-fill\"></span>Select new image (.png or .jpg). Use a 1:1 ratio for the best results (e.g. 500x500). Maximum size is 500x500px and 500kb.\n </div>\n </div>\n }\n\n <div class=\"form-label\">Name</div>\n <mat-form-field appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>What is your name?</mat-label>\n <input maxlength=\"50\" matInput id=\"name\" formControlName=\"name\" type=\"text\">\n @if (form.controls.name.errors) {\n <mat-error>\n @if (form.controls.name.errors.required) {\n <div>This field is required</div>\n }\n </mat-error>\n }\n </mat-form-field>\n\n <div class=\"form-label\">Email</div>\n @if (!showEmailInput) {\n <p>\n The e-mail address is set to <b>{{userProfile.email}}</b>.\n <a [routerLink]=\"[]\" id=\"toggle-email\" (click)=\"setChangeEmail()\">Set a different address.</a>\n </p>\n }\n\n @if (showEmailInput) {\n <mat-form-field appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>On what e-mail address can you be contacted?</mat-label>\n <input matInput id=\"newEmail\" formControlName=\"newEmail\" type=\"email\">\n @if (form.controls.newEmail.errors) {\n <mat-error>\n @if (form.controls.newEmail.errors.email) {\n <div>The email is invalid. Please specify email like john@doe.nl or jane.doe@someone.nl.</div>\n }\n @if (form.controls.newEmail.errors.alreadyExists) {\n <div>Another user already uses this e-mail address. Please use another email address.</div>\n }\n </mat-error>\n }\n </mat-form-field>\n }\n\n <div class=\"toolbar\">\n <input class=\"button submit primary\" type=\"submit\" id=\"submit\" [disabled]=\"loading\" [ngClass]=\"{'loading': loading}\" value=\"Save\" />\n </div>\n </form>\n</div>\n\n<div class=\"form-security\">\n <h2>Security</h2>\n\n <form class=\"form\">\n <div class=\"form-label\">Change password</div>\n @if (!userProfile.usesSSO) {\n <div class=\"button\" (click)=\"sendPasswordReset()\" id=\"account-passwordreset\">Send email to change password</div>\n }\n @if (userProfile.usesSSO) {\n <p>You are logging in through single-sign on (SSO). Use your company's identity provider to change your password.</p>\n }\n\n @if (allowMFA) {\n <div class=\"form-label\">Add additional login factor (MFA)</div>\n @if (!usesMFA) {\n <p>Add a code from Google Authenticator or similar to your account to make it more secure.</p>\n <div class=\"button\" (click)=\"sendMFAEnrollment()\" id=\"account-enrollmfa\">Send email to set up 2FA</div>\n }\n @if (usesMFA) {\n <p>An additional factor is <b>enabled</b> for this account.</p>\n <div class=\"button\" (click)=\"resetMFAEnrollment()\" id=\"account-resetmfa\">Reset 2FA</div>\n }\n }\n\n @if (allowAPI) {\n <div class=\"form-label\">API Access</div>\n <p>Access our <a target=\"_blank\" href=\"https://columinity.com/wiki/Getting-Started-with-the-API\">API</a> with your personal account.</p>\n <div class=\"button\" (click)=\"createAPITokens()\" id=\"account-apitokens\">Send email with new API tokens</div>\n }\n </form>\n</div>\n", 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}.form-label{margin-top:30px}.currentuserprofileavatar{display:flex}.currentuserprofileavatar .userprofileavatar{margin-bottom:30px;display:flex;background:#2f2f2f;margin-right:15px;width:100px;height:100px;padding:10px}.reuploadform{background:#f0f0f0;position:relative}.reuploadform input{padding:15px 15px 0}.reuploadform .cancel{cursor:pointer;font-size:20pt;position:absolute;right:10px;top:10px}.form-security{margin-top:90px}\n"], dependencies: [{ kind: "directive", type: i1$4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$5.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1$1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]):not([formArray]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { 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"] }] }); }
|
|
7219
7219
|
}
|
|
7220
7220
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: UserProfileComponent, decorators: [{
|
|
7221
7221
|
type: Component,
|
|
7222
|
-
args: [{ selector: 'userprofile', standalone: false, template: "<div class=\"form-profile\">\n <h2>My Profile</h2>\n <form class=\"form\" [formGroup]=\"form\" (ngSubmit)=\"onSubmit(formDirective)\" #formDirective=\"ngForm\">\n <div class=\"form-label\">Avatar</div>\n\n <div class=\"currentuserprofileavatar\">\n @if (userProfile.avatarUrl) {\n <div class=\"userprofileavatar\">\n @if (loading) {\n <div class=\"loading-icon small\"></div>\n }\n @if (!loading) {\n <img class=\"responsive\" [src]=\"userProfile.avatarUrl\" />\n }\n </div>\n }\n <div class=\"reupload\">\n @if (!changeAvatar && userProfile.avatarUrl) {\n <div class=\"button\" (click)=\"changeAvatar = true\">Change avatar</div>\n }\n @if (!changeAvatar && !userProfile.avatarUrl) {\n <div class=\"button\" (click)=\"changeAvatar = true\">Set avatar</div>\n }\n @if (changeAvatar && userProfile.avatarUrl) {\n <div class=\"button\" (click)=\"clearAvatar()\"><span class=\"icon ph-trash-fill\"></span>Clear</div>\n }\n </div>\n </div>\n\n @if (changeAvatar) {\n <div class=\"reuploadform\">\n <div (click)=\"changeAvatar = false\" class=\"cancel icon ph-x-bold\"></div>\n <input class=\"mat-form-field\" accept=\"image/png,image/jpeg\" type=\"file\" id=\"coach-avatar\" (change)=\"uploadAvatar($event)\">\n <div class=\"message message-information\">\n <span class=\"icon ph-info-fill\"></span>Select new image (.png or .jpg). Use a 1:1 ratio for the best results (e.g. 500x500). Maximum size is 500x500px and 500kb.\n </div>\n </div>\n }\n\n <div class=\"form-label\">Name</div>\n <mat-form-field appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>What is your name?</mat-label>\n <input maxlength=\"50\" matInput id=\"name\" formControlName=\"name\" type=\"text\">\n @if (form.controls.name.errors) {\n <mat-error>\n @if (form.controls.name.errors.required) {\n <div>This field is required</div>\n }\n </mat-error>\n }\n </mat-form-field>\n\n <div class=\"form-label\">Email</div>\n @if (!showEmailInput) {\n <p>\n The e-mail address is set to <b>{{userProfile.email}}</b>.\n <a [routerLink]=\"[]\" id=\"toggle-email\" (click)=\"setChangeEmail()\">Set a different address.</a>\n </p>\n }\n\n @if (showEmailInput) {\n <mat-form-field appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>On what e-mail address can you be contacted?</mat-label>\n <input matInput id=\"newEmail\" formControlName=\"newEmail\" type=\"email\">\n @if (form.controls.newEmail.errors) {\n <mat-error>\n @if (form.controls.newEmail.errors.email) {\n <div>The email is invalid. Please specify email like john@doe.nl or jane.doe@someone.nl.</div>\n }\n @if (form.controls.newEmail.errors.alreadyExists) {\n <div>Another user already uses this e-mail address. Please use another email address.</div>\n }\n </mat-error>\n }\n </mat-form-field>\n }\n\n <div class=\"toolbar\">\n <input class=\"button submit primary\" type=\"submit\" id=\"submit\" [disabled]=\"loading\" [ngClass]=\"{'loading': loading}\" value=\"Save\" />\n </div>\n </form>\n</div>\n\n<div class=\"form-security\">\n <h2>Security</h2>\n\n <form class=\"form\">\n <div class=\"form-label\">Change password</div>\n @if (!userProfile.usesSSO) {\n <div class=\"button\" (click)=\"sendPasswordReset()\" id=\"account-passwordreset\">Send email to change password</div>\n }\n @if (userProfile.usesSSO) {\n <p>You are logging in through single-sign on (SSO). Use your company's identity provider to change your password.</p>\n }\n\n @if (allowMFA) {\n <div class=\"form-label\">Add additional login factor (MFA)</div>\n @if (!usesMFA) {\n <p>Add a code from Google Authenticator or similar to your account to make it more secure.</p>\n <div class=\"button\" (click)=\"sendMFAEnrollment()\" id=\"account-enrollmfa\">Send email to set up 2FA</div>\n }\n @if (usesMFA) {\n <p>An additional factor is <b>enabled</b> for this account.</p>\n <div class=\"button\" (click)=\"resetMFAEnrollment()\" id=\"account-resetmfa\">Reset 2FA</div>\n }\n }\n\n @if (allowAPI) {\n <div class=\"form-label\">API Access</div>\n <p>Access our <a target=\"_blank\" href=\"https://
|
|
7222
|
+
args: [{ selector: 'userprofile', standalone: false, template: "<div class=\"form-profile\">\n <h2>My Profile</h2>\n <form class=\"form\" [formGroup]=\"form\" (ngSubmit)=\"onSubmit(formDirective)\" #formDirective=\"ngForm\">\n <div class=\"form-label\">Avatar</div>\n\n <div class=\"currentuserprofileavatar\">\n @if (userProfile.avatarUrl) {\n <div class=\"userprofileavatar\">\n @if (loading) {\n <div class=\"loading-icon small\"></div>\n }\n @if (!loading) {\n <img class=\"responsive\" [src]=\"userProfile.avatarUrl\" />\n }\n </div>\n }\n <div class=\"reupload\">\n @if (!changeAvatar && userProfile.avatarUrl) {\n <div class=\"button\" (click)=\"changeAvatar = true\">Change avatar</div>\n }\n @if (!changeAvatar && !userProfile.avatarUrl) {\n <div class=\"button\" (click)=\"changeAvatar = true\">Set avatar</div>\n }\n @if (changeAvatar && userProfile.avatarUrl) {\n <div class=\"button\" (click)=\"clearAvatar()\"><span class=\"icon ph-trash-fill\"></span>Clear</div>\n }\n </div>\n </div>\n\n @if (changeAvatar) {\n <div class=\"reuploadform\">\n <div (click)=\"changeAvatar = false\" class=\"cancel icon ph-x-bold\"></div>\n <input class=\"mat-form-field\" accept=\"image/png,image/jpeg\" type=\"file\" id=\"coach-avatar\" (change)=\"uploadAvatar($event)\">\n <div class=\"message message-information\">\n <span class=\"icon ph-info-fill\"></span>Select new image (.png or .jpg). Use a 1:1 ratio for the best results (e.g. 500x500). Maximum size is 500x500px and 500kb.\n </div>\n </div>\n }\n\n <div class=\"form-label\">Name</div>\n <mat-form-field appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>What is your name?</mat-label>\n <input maxlength=\"50\" matInput id=\"name\" formControlName=\"name\" type=\"text\">\n @if (form.controls.name.errors) {\n <mat-error>\n @if (form.controls.name.errors.required) {\n <div>This field is required</div>\n }\n </mat-error>\n }\n </mat-form-field>\n\n <div class=\"form-label\">Email</div>\n @if (!showEmailInput) {\n <p>\n The e-mail address is set to <b>{{userProfile.email}}</b>.\n <a [routerLink]=\"[]\" id=\"toggle-email\" (click)=\"setChangeEmail()\">Set a different address.</a>\n </p>\n }\n\n @if (showEmailInput) {\n <mat-form-field appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>On what e-mail address can you be contacted?</mat-label>\n <input matInput id=\"newEmail\" formControlName=\"newEmail\" type=\"email\">\n @if (form.controls.newEmail.errors) {\n <mat-error>\n @if (form.controls.newEmail.errors.email) {\n <div>The email is invalid. Please specify email like john@doe.nl or jane.doe@someone.nl.</div>\n }\n @if (form.controls.newEmail.errors.alreadyExists) {\n <div>Another user already uses this e-mail address. Please use another email address.</div>\n }\n </mat-error>\n }\n </mat-form-field>\n }\n\n <div class=\"toolbar\">\n <input class=\"button submit primary\" type=\"submit\" id=\"submit\" [disabled]=\"loading\" [ngClass]=\"{'loading': loading}\" value=\"Save\" />\n </div>\n </form>\n</div>\n\n<div class=\"form-security\">\n <h2>Security</h2>\n\n <form class=\"form\">\n <div class=\"form-label\">Change password</div>\n @if (!userProfile.usesSSO) {\n <div class=\"button\" (click)=\"sendPasswordReset()\" id=\"account-passwordreset\">Send email to change password</div>\n }\n @if (userProfile.usesSSO) {\n <p>You are logging in through single-sign on (SSO). Use your company's identity provider to change your password.</p>\n }\n\n @if (allowMFA) {\n <div class=\"form-label\">Add additional login factor (MFA)</div>\n @if (!usesMFA) {\n <p>Add a code from Google Authenticator or similar to your account to make it more secure.</p>\n <div class=\"button\" (click)=\"sendMFAEnrollment()\" id=\"account-enrollmfa\">Send email to set up 2FA</div>\n }\n @if (usesMFA) {\n <p>An additional factor is <b>enabled</b> for this account.</p>\n <div class=\"button\" (click)=\"resetMFAEnrollment()\" id=\"account-resetmfa\">Reset 2FA</div>\n }\n }\n\n @if (allowAPI) {\n <div class=\"form-label\">API Access</div>\n <p>Access our <a target=\"_blank\" href=\"https://columinity.com/wiki/Getting-Started-with-the-API\">API</a> with your personal account.</p>\n <div class=\"button\" (click)=\"createAPITokens()\" id=\"account-apitokens\">Send email with new API tokens</div>\n }\n </form>\n</div>\n", 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}.form-label{margin-top:30px}.currentuserprofileavatar{display:flex}.currentuserprofileavatar .userprofileavatar{margin-bottom:30px;display:flex;background:#2f2f2f;margin-right:15px;width:100px;height:100px;padding:10px}.reuploadform{background:#f0f0f0;position:relative}.reuploadform input{padding:15px 15px 0}.reuploadform .cancel{cursor:pointer;font-size:20pt;position:absolute;right:10px;top:10px}.form-security{margin-top:90px}\n"] }]
|
|
7223
7223
|
}], ctorParameters: () => [{ type: ViewModelStateBase, decorators: [{
|
|
7224
7224
|
type: Inject,
|
|
7225
7225
|
args: [VIEWSTATE_PROVIDER]
|
|
@@ -7382,11 +7382,11 @@ class DialogExportTeamListComponent extends ComponentWithViewStateBase {
|
|
|
7382
7382
|
}
|
|
7383
7383
|
;
|
|
7384
7384
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: DialogExportTeamListComponent, deps: [{ token: VIEWSTATE_PROVIDER }, { token: i1.MatSnackBar }, { token: VIEWSTATE_USERSETTINGS_STRATEGY }, { token: ExportService }, { token: i1$3.MatDialogRef }, { token: i1$1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
7385
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.8", type: DialogExportTeamListComponent, isStandalone: false, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div class=\"dialog-header\">\n <h1 mat-dialog-title>Export team summaries</h1>\n <div class=\"close\" mat-dialog-close><i class=\"responsive icon ph-x-bold\"></i></div>\n</div>\n<mat-dialog-content>\n <p>Download most of what we show in this overview to .csv for your own analyses (max 250 teams). <a href=\"https://
|
|
7385
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.8", type: DialogExportTeamListComponent, isStandalone: false, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div class=\"dialog-header\">\n <h1 mat-dialog-title>Export team summaries</h1>\n <div class=\"close\" mat-dialog-close><i class=\"responsive icon ph-x-bold\"></i></div>\n</div>\n<mat-dialog-content>\n <p>Download most of what we show in this overview to .csv for your own analyses (max 250 teams). <a href=\"https://columinity.com/wiki/Export-File-Definitions\">Our Wiki</a> has a definition.</p>\n <form [formGroup]=\"form\" (ngSubmit)=\"exportTeamSummaries()\">\n\n <div class=\"toolbar\">\n <button class=\"button primary\" id=\"submit-export-teamlist\" type=\"submit\" [ngClass]=\"{'loading': sending }\" [disabled]=\"sending\">export</button>\n <button class=\"button\" mat-dialog-close>cancel</button>\n </div>\n </form>\n\n <h2>Export participation report</h2>\n <p>Download a list of teams, their scans and the number of completed participants for each segment to .csv (max 250 teams). <a href=\"https://columinity.com/wiki/Export-File-Definitions\">Our Wiki</a> has a definition.</p>\n <form [formGroup]=\"form\" (ngSubmit)=\"exportParticipationRate()\">\n\n <div class=\"toolbar\">\n <button class=\"button primary\" id=\"submit-export-participationrate\" type=\"submit\" [ngClass]=\"{'loading': sending }\" [disabled]=\"sending\">export</button>\n <button class=\"button\" mat-dialog-close>cancel</button>\n </div>\n </form>\n</mat-dialog-content>\n", 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: i1$4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$3.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1$3.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1$3.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }] }); }
|
|
7386
7386
|
}
|
|
7387
7387
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: DialogExportTeamListComponent, decorators: [{
|
|
7388
7388
|
type: Component,
|
|
7389
|
-
args: [{ standalone: false, template: "<div class=\"dialog-header\">\n <h1 mat-dialog-title>Export team summaries</h1>\n <div class=\"close\" mat-dialog-close><i class=\"responsive icon ph-x-bold\"></i></div>\n</div>\n<mat-dialog-content>\n <p>Download most of what we show in this overview to .csv for your own analyses (max 250 teams). <a href=\"https://
|
|
7389
|
+
args: [{ standalone: false, template: "<div class=\"dialog-header\">\n <h1 mat-dialog-title>Export team summaries</h1>\n <div class=\"close\" mat-dialog-close><i class=\"responsive icon ph-x-bold\"></i></div>\n</div>\n<mat-dialog-content>\n <p>Download most of what we show in this overview to .csv for your own analyses (max 250 teams). <a href=\"https://columinity.com/wiki/Export-File-Definitions\">Our Wiki</a> has a definition.</p>\n <form [formGroup]=\"form\" (ngSubmit)=\"exportTeamSummaries()\">\n\n <div class=\"toolbar\">\n <button class=\"button primary\" id=\"submit-export-teamlist\" type=\"submit\" [ngClass]=\"{'loading': sending }\" [disabled]=\"sending\">export</button>\n <button class=\"button\" mat-dialog-close>cancel</button>\n </div>\n </form>\n\n <h2>Export participation report</h2>\n <p>Download a list of teams, their scans and the number of completed participants for each segment to .csv (max 250 teams). <a href=\"https://columinity.com/wiki/Export-File-Definitions\">Our Wiki</a> has a definition.</p>\n <form [formGroup]=\"form\" (ngSubmit)=\"exportParticipationRate()\">\n\n <div class=\"toolbar\">\n <button class=\"button primary\" id=\"submit-export-participationrate\" type=\"submit\" [ngClass]=\"{'loading': sending }\" [disabled]=\"sending\">export</button>\n <button class=\"button\" mat-dialog-close>cancel</button>\n </div>\n </form>\n</mat-dialog-content>\n", 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"] }]
|
|
7390
7390
|
}], ctorParameters: () => [{ type: ViewModelStateBase, decorators: [{
|
|
7391
7391
|
type: Inject,
|
|
7392
7392
|
args: [VIEWSTATE_PROVIDER]
|