@the-liberators/ngx-scrumteamsurvey-tools 2.2.78 → 2.2.80
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/scale-selector/scale-selector.component.mjs +3 -3
- package/esm2022/lib/results/components/roadmap/roadmap.component.mjs +3 -3
- package/fesm2022/the-liberators-ngx-scrumteamsurvey-tools.mjs +4 -4
- package/fesm2022/the-liberators-ngx-scrumteamsurvey-tools.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -129,13 +129,13 @@ export class ScaleSelectorComponent {
|
|
|
129
129
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ScaleSelectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
130
130
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.1", type: ScaleSelectorComponent, selector: "scale-selector", inputs: { scales: "scales", filter: "filter", disabled: "disabled", scaleKeys: "scaleKeys" }, outputs: { onCheckChange: "onCheckChange" }, providers: [
|
|
131
131
|
{ provide: NG_VALUE_ACCESSOR, multi: true, useExisting: forwardRef(() => ScaleSelectorComponent), }
|
|
132
|
-
], ngImport: i0, template: "<div class=\"scaleselector-container\">\n <div class=\"scaleselector-dropdown\">\n <mat-form-field appearance=\"fill\">\n <mat-label>Select topics</mat-label>\n <mat-select id=\"question-scaleKeys\" [(ngModel)]=\"scaleKeys\" required multiple disableRipple [disabled]=\"disabled\">\n <mat-select-trigger>\n You selected {{scaleKeys.length}} topic(s)\n </mat-select-trigger>\n\n @for (factor of topScales; track factor) {\n <mat-option class=\"select-option lower-0\" [value]=\"factor.publicKey\" (click)=\"toggleChildren(factor)\">\n {{factor.name}} ({{factor.questionCount}} questions)\n <span *ngFor=\"let segment of factor.segments | callback: filterSegmentWithQuestions\" class=\"segment\" [ngClass]=\"{'segment-teammember': segment.segment == SegmentEnum.TeamMember, 'segment-stakeholder': segment.segment == SegmentEnum.Stakeholder, 'segment-supporter': segment.segment == SegmentEnum.Management}\">{{segment.segment | segmentName}}</span>\n <span class=\"icon ph-info-fill\" factorInformationDialog [factor]=\"factor\"></span>\n </mat-option>\n\n @for (lowerFactor of getChildFactors(factor.publicKey); track lowerFactor) {\n <mat-option class=\"select-option lower-1\" [value]=\"lowerFactor.publicKey\" (click)=\"toggleParent(lowerFactor)\">\n {{lowerFactor.name}} ({{lowerFactor.questionCount}} questions)\n <span *ngFor=\"let segment of lowerFactor.segments | callback: filterSegmentWithQuestions\" class=\"segment\" [ngClass]=\"{'segment-teammember': segment.segment == SegmentEnum.TeamMember, 'segment-stakeholder': segment.segment == SegmentEnum.Stakeholder, 'segment-supporter': segment.segment == SegmentEnum.Management}\">{{segment.segment | segmentName}}</span>\n <span class=\"icon ph-info-fill\" factorInformationDialog [factor]=\"lowerFactor\"></span>\n </mat-option>\n }\n }\n </mat-select>\n </mat-form-field>\n </div>\n <div class=\"scaleselector-metadata\">\n <div class=\"questionnaire-breakdown\" *ngIf=\"questionsTotal > 0\">\n <div class=\"questionnaire-breakdown-label\">Expected duration (in minutes)</div>\n <div class=\"questionnaire-breakdown-items\">\n <div class=\"questionnaire-breakdown-item teammembers\" *ngIf=\"questionsTeamMembers > 0\" [matTooltip]=\"'At least ' + questionsTeamMembers + ' questions for team members. Additional questions may be added, and are typically answered once per team.'\" [ngStyle]=\"{'width': ((questionsTeamMembers / questionsTotal) * 100) + '%' }\">\n {{durationTeamMembers | number:'1.0-0'}}m\n </div>\n <div class=\"questionnaire-breakdown-item stakeholders\" *ngIf=\"questionsStakeholders > 0\" [matTooltip]=\"'At least ' + questionsStakeholders + ' questions for team members. Additional questions may be added, and are typically answered once per team.'\" [ngStyle]=\"{'width': ((questionsStakeholders / questionsTotal) * 100) + '%' }\">\n {{durationStakeholders | number:'1.0-0'}}m\n </div>\n <div class=\"questionnaire-breakdown-item supporters\" *ngIf=\"questionsSupporters > 0\" [matTooltip]=\"'At least ' + questionsSupporters + ' questions for team members. Additional questions may be added, and are typically answered once per team.'\" [ngStyle]=\"{'width': ((questionsSupporters / questionsTotal) * 100) + '%' }\">\n {{durationSupporters | number:'1.0-0'}}m\n </div>\n </div>\n </div>\n <div class=\"questionnaire-accuracy\" *ngIf=\"questionsTotal > 0\">\n <div class=\"questionnaire-breakdown-label\">Accuracy</div>\n <div class=\"questionnaire-breakdown-bar-holder\">\n <div class=\"questionnaire-accuracy-bar\" [ngClass]=\"{'low': questionnaireAccuracy < 0.25}\" [ngStyle]=\"{'width': (questionnaireAccuracy * 100) + '%' }\">{{questionnaireAccuracy * 100 | number:'1.0-0'}}%</div>\n </div>\n </div>\n </div>\n\n <div class=\"scaleselector-warnings\" *ngIf=\"warnings.length > 0 && scaleKeys.length > 0\">\n <div class=\"scaleselector-warnings-warning\" *ngFor=\"let warning of warnings\">\n <span class=\"icon ph-info-fill\"></span>{{warning}}\n </div>\n </div>\n\n</div>\n", 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%}.scaleselector-container .scaleselector-dropdown{flex:auto}.scaleselector-container .scaleselector-dropdown .mat-mdc-form-field{width:100%}.scaleselector-container .scaleselector-metadata{display:flex;column-gap:30px}@media only screen and (max-width: 992px){.scaleselector-container .scaleselector-metadata{display:block}}.scaleselector-container .scaleselector-metadata .questionnaire-breakdown{flex:50%}.scaleselector-container .scaleselector-metadata .questionnaire-breakdown .questionnaire-breakdown-label{font-size:12px;font-weight:900;text-transform:uppercase;font-family:StevieSans,sans-serif}.scaleselector-container .scaleselector-metadata .questionnaire-breakdown .questionnaire-breakdown-label .icon{color:#ef6f00;font-size:18px;vertical-align:middle;cursor:pointer}.scaleselector-container .scaleselector-metadata .questionnaire-breakdown .questionnaire-breakdown-items{display:flex;width:100%;height:20px;border-radius:15px;overflow:hidden;margin-bottom:15px}.scaleselector-container .scaleselector-metadata .questionnaire-breakdown .questionnaire-breakdown-item{flex:auto;min-width:50px;font-size:12px;font-weight:900;font-family:StevieSans,sans-serif;align-content:center;text-align:center}.scaleselector-container .scaleselector-metadata .questionnaire-breakdown .questionnaire-breakdown-item.teammembers{color:#fff;background:#1f3f8f}.scaleselector-container .scaleselector-metadata .questionnaire-breakdown .questionnaire-breakdown-item.stakeholders{background:#fff73f}.scaleselector-container .scaleselector-metadata .questionnaire-breakdown .questionnaire-breakdown-item.supporters{background:#ffbf00}.scaleselector-container .scaleselector-metadata .questionnaire-accuracy{flex:50%}.scaleselector-container .scaleselector-metadata .questionnaire-accuracy .questionnaire-breakdown-label{font-size:12px;font-weight:900;text-transform:uppercase;font-family:StevieSans,sans-serif}.scaleselector-container .scaleselector-metadata .questionnaire-accuracy .questionnaire-breakdown-bar-holder{margin-bottom:15px;background:#2f2f2f;height:20px;border-radius:15px;overflow:hidden}.scaleselector-container .scaleselector-metadata .questionnaire-accuracy .questionnaire-breakdown-bar-holder .questionnaire-accuracy-bar{flex:auto;min-width:50px;font-size:12px;font-weight:900;text-transform:uppercase;font-family:StevieSans,sans-serif;background:#00af77;height:100%;align-content:center;text-align:center}.scaleselector-container .scaleselector-metadata .questionnaire-accuracy .questionnaire-breakdown-bar-holder .questionnaire-accuracy-bar.low{background:#ffbf00}.scaleselector-container .scaleselector-warnings{margin-bottom:15px}.scaleselector-container .scaleselector-warnings .scaleselector-warnings-warning{display:flex;align-items:center;font-size:12pt}.scaleselector-container .scaleselector-warnings .scaleselector-warnings-warning .icon{color:#1f3f8f;font-size:16px;cursor:pointer;margin-right:10px}.mat-mdc-option.lower-1{margin-left:20px}.mat-mdc-option .segment{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%;padding:2px 4px;border-radius:4px;font-weight:600;font-size:10pt;margin-right:10px}.mat-mdc-option .segment.segment-stakeholder{background:#fff73f}.mat-mdc-option .segment.segment-teammember{background:#1f3f8f;color:#fff}.mat-mdc-option .segment.segment-supporter,.mat-mdc-option .segment.segment-management{background:#ffbf00}.mat-mdc-option .icon{vertical-align:middle;font-size:22px;color:#2f2f2f!important}\n"], dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i4.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "directive", type: i4.MatSelectTrigger, selector: "mat-select-trigger" }, { kind: "component", type: i5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i6.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i7.OpenFactorInformationDialogDirective, selector: "[factorInformationDialog]", inputs: ["factor"] }, { kind: "pipe", type: i3.DecimalPipe, name: "number" }, { kind: "pipe", type: i8.SegmentNamePipe, name: "segmentName" }, { kind: "pipe", type: i9.CallbackPipe, name: "callback" }] }); }
|
|
132
|
+
], ngImport: i0, template: "<div class=\"scaleselector-container\">\n <div class=\"scaleselector-dropdown\">\n <mat-form-field appearance=\"fill\">\n <mat-label>Select topics</mat-label>\n <mat-select id=\"question-scaleKeys\" [(ngModel)]=\"scaleKeys\" required multiple disableRipple [disabled]=\"disabled\">\n <mat-select-trigger>\n You selected {{scaleKeys.length}} topic(s)\n </mat-select-trigger>\n\n @for (factor of topScales; track factor) {\n <mat-option class=\"select-option lower-0\" [value]=\"factor.publicKey\" (click)=\"toggleChildren(factor)\">\n {{factor.name}} ({{factor.questionCount}} questions)\n <span *ngFor=\"let segment of factor.segments | callback: filterSegmentWithQuestions\" class=\"segment\" [ngClass]=\"{'segment-teammember': segment.segment == SegmentEnum.TeamMember, 'segment-stakeholder': segment.segment == SegmentEnum.Stakeholder, 'segment-supporter': segment.segment == SegmentEnum.Management}\">{{segment.segment | segmentName}}</span>\n <span class=\"icon ph-info-fill\" factorInformationDialog [factor]=\"factor\"></span>\n </mat-option>\n\n @for (lowerFactor of getChildFactors(factor.publicKey); track lowerFactor) {\n <mat-option class=\"select-option lower-1\" [value]=\"lowerFactor.publicKey\" (click)=\"toggleParent(lowerFactor)\">\n {{lowerFactor.name}} ({{lowerFactor.questionCount}} questions)\n <span *ngFor=\"let segment of lowerFactor.segments | callback: filterSegmentWithQuestions\" class=\"segment\" [ngClass]=\"{'segment-teammember': segment.segment == SegmentEnum.TeamMember, 'segment-stakeholder': segment.segment == SegmentEnum.Stakeholder, 'segment-supporter': segment.segment == SegmentEnum.Management}\">{{segment.segment | segmentName}}</span>\n <span class=\"icon ph-info-fill\" factorInformationDialog [factor]=\"lowerFactor\"></span>\n </mat-option>\n }\n }\n </mat-select>\n </mat-form-field>\n </div>\n <div class=\"scaleselector-metadata\">\n <div class=\"questionnaire-breakdown\" *ngIf=\"questionsTotal > 0\">\n <div class=\"questionnaire-breakdown-label\">Expected duration (in minutes)</div>\n <div class=\"questionnaire-breakdown-items\">\n <div class=\"questionnaire-breakdown-item teammembers\" *ngIf=\"questionsTeamMembers > 0\" [matTooltip]=\"'At least ' + questionsTeamMembers + ' questions for team members. Additional questions may be added, and are typically answered once per team.'\" [ngStyle]=\"{'width': ((questionsTeamMembers / questionsTotal) * 100) + '%' }\">\n {{durationTeamMembers | number:'1.0-0'}}m\n </div>\n <div class=\"questionnaire-breakdown-item stakeholders\" *ngIf=\"questionsStakeholders > 0\" [matTooltip]=\"'At least ' + questionsStakeholders + ' questions for stakeholders. Additional questions may be added, and are typically answered once per team.'\" [ngStyle]=\"{'width': ((questionsStakeholders / questionsTotal) * 100) + '%' }\">\n {{durationStakeholders | number:'1.0-0'}}m\n </div>\n <div class=\"questionnaire-breakdown-item supporters\" *ngIf=\"questionsSupporters > 0\" [matTooltip]=\"'At least ' + questionsSupporters + ' questions for supporters. Additional questions may be added, and are typically answered once per team.'\" [ngStyle]=\"{'width': ((questionsSupporters / questionsTotal) * 100) + '%' }\">\n {{durationSupporters | number:'1.0-0'}}m\n </div>\n </div>\n </div>\n <div class=\"questionnaire-accuracy\" *ngIf=\"questionsTotal > 0\">\n <div class=\"questionnaire-breakdown-label\">Accuracy</div>\n <div class=\"questionnaire-breakdown-bar-holder\">\n <div class=\"questionnaire-accuracy-bar\" [ngClass]=\"{'low': questionnaireAccuracy < 0.25}\" [ngStyle]=\"{'width': (questionnaireAccuracy * 100) + '%' }\">{{questionnaireAccuracy * 100 | number:'1.0-0'}}%</div>\n </div>\n </div>\n </div>\n\n <div class=\"scaleselector-warnings\" *ngIf=\"warnings.length > 0 && scaleKeys.length > 0\">\n <div class=\"scaleselector-warnings-warning\" *ngFor=\"let warning of warnings\">\n <span class=\"icon ph-info-fill\"></span>{{warning}}\n </div>\n </div>\n\n</div>\n", 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%}.scaleselector-container .scaleselector-dropdown{flex:auto}.scaleselector-container .scaleselector-dropdown .mat-mdc-form-field{width:100%}.scaleselector-container .scaleselector-metadata{display:flex;column-gap:30px}@media only screen and (max-width: 992px){.scaleselector-container .scaleselector-metadata{display:block}}.scaleselector-container .scaleselector-metadata .questionnaire-breakdown{flex:50%}.scaleselector-container .scaleselector-metadata .questionnaire-breakdown .questionnaire-breakdown-label{font-size:12px;font-weight:900;text-transform:uppercase;font-family:StevieSans,sans-serif}.scaleselector-container .scaleselector-metadata .questionnaire-breakdown .questionnaire-breakdown-label .icon{color:#ef6f00;font-size:18px;vertical-align:middle;cursor:pointer}.scaleselector-container .scaleselector-metadata .questionnaire-breakdown .questionnaire-breakdown-items{display:flex;width:100%;height:20px;border-radius:15px;overflow:hidden;margin-bottom:15px}.scaleselector-container .scaleselector-metadata .questionnaire-breakdown .questionnaire-breakdown-item{flex:auto;min-width:50px;font-size:12px;font-weight:900;font-family:StevieSans,sans-serif;align-content:center;text-align:center}.scaleselector-container .scaleselector-metadata .questionnaire-breakdown .questionnaire-breakdown-item.teammembers{color:#fff;background:#1f3f8f}.scaleselector-container .scaleselector-metadata .questionnaire-breakdown .questionnaire-breakdown-item.stakeholders{background:#fff73f}.scaleselector-container .scaleselector-metadata .questionnaire-breakdown .questionnaire-breakdown-item.supporters{background:#ffbf00}.scaleselector-container .scaleselector-metadata .questionnaire-accuracy{flex:50%}.scaleselector-container .scaleselector-metadata .questionnaire-accuracy .questionnaire-breakdown-label{font-size:12px;font-weight:900;text-transform:uppercase;font-family:StevieSans,sans-serif}.scaleselector-container .scaleselector-metadata .questionnaire-accuracy .questionnaire-breakdown-bar-holder{margin-bottom:15px;background:#2f2f2f;height:20px;border-radius:15px;overflow:hidden}.scaleselector-container .scaleselector-metadata .questionnaire-accuracy .questionnaire-breakdown-bar-holder .questionnaire-accuracy-bar{flex:auto;min-width:50px;font-size:12px;font-weight:900;text-transform:uppercase;font-family:StevieSans,sans-serif;background:#00af77;height:100%;align-content:center;text-align:center}.scaleselector-container .scaleselector-metadata .questionnaire-accuracy .questionnaire-breakdown-bar-holder .questionnaire-accuracy-bar.low{background:#ffbf00}.scaleselector-container .scaleselector-warnings{margin-bottom:15px}.scaleselector-container .scaleselector-warnings .scaleselector-warnings-warning{display:flex;align-items:center;font-size:12pt}.scaleselector-container .scaleselector-warnings .scaleselector-warnings-warning .icon{color:#1f3f8f;font-size:16px;cursor:pointer;margin-right:10px}.mat-mdc-option.lower-1{margin-left:20px}.mat-mdc-option .segment{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%;padding:2px 4px;border-radius:4px;font-weight:600;font-size:10pt;margin-right:10px}.mat-mdc-option .segment.segment-stakeholder{background:#fff73f}.mat-mdc-option .segment.segment-teammember{background:#1f3f8f;color:#fff}.mat-mdc-option .segment.segment-supporter,.mat-mdc-option .segment.segment-management{background:#ffbf00}.mat-mdc-option .icon{vertical-align:middle;font-size:22px;color:#2f2f2f!important}\n"], dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i4.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "directive", type: i4.MatSelectTrigger, selector: "mat-select-trigger" }, { kind: "component", type: i5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i6.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i7.OpenFactorInformationDialogDirective, selector: "[factorInformationDialog]", inputs: ["factor"] }, { kind: "pipe", type: i3.DecimalPipe, name: "number" }, { kind: "pipe", type: i8.SegmentNamePipe, name: "segmentName" }, { kind: "pipe", type: i9.CallbackPipe, name: "callback" }] }); }
|
|
133
133
|
}
|
|
134
134
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ScaleSelectorComponent, decorators: [{
|
|
135
135
|
type: Component,
|
|
136
136
|
args: [{ selector: 'scale-selector', providers: [
|
|
137
137
|
{ provide: NG_VALUE_ACCESSOR, multi: true, useExisting: forwardRef(() => ScaleSelectorComponent), }
|
|
138
|
-
], template: "<div class=\"scaleselector-container\">\n <div class=\"scaleselector-dropdown\">\n <mat-form-field appearance=\"fill\">\n <mat-label>Select topics</mat-label>\n <mat-select id=\"question-scaleKeys\" [(ngModel)]=\"scaleKeys\" required multiple disableRipple [disabled]=\"disabled\">\n <mat-select-trigger>\n You selected {{scaleKeys.length}} topic(s)\n </mat-select-trigger>\n\n @for (factor of topScales; track factor) {\n <mat-option class=\"select-option lower-0\" [value]=\"factor.publicKey\" (click)=\"toggleChildren(factor)\">\n {{factor.name}} ({{factor.questionCount}} questions)\n <span *ngFor=\"let segment of factor.segments | callback: filterSegmentWithQuestions\" class=\"segment\" [ngClass]=\"{'segment-teammember': segment.segment == SegmentEnum.TeamMember, 'segment-stakeholder': segment.segment == SegmentEnum.Stakeholder, 'segment-supporter': segment.segment == SegmentEnum.Management}\">{{segment.segment | segmentName}}</span>\n <span class=\"icon ph-info-fill\" factorInformationDialog [factor]=\"factor\"></span>\n </mat-option>\n\n @for (lowerFactor of getChildFactors(factor.publicKey); track lowerFactor) {\n <mat-option class=\"select-option lower-1\" [value]=\"lowerFactor.publicKey\" (click)=\"toggleParent(lowerFactor)\">\n {{lowerFactor.name}} ({{lowerFactor.questionCount}} questions)\n <span *ngFor=\"let segment of lowerFactor.segments | callback: filterSegmentWithQuestions\" class=\"segment\" [ngClass]=\"{'segment-teammember': segment.segment == SegmentEnum.TeamMember, 'segment-stakeholder': segment.segment == SegmentEnum.Stakeholder, 'segment-supporter': segment.segment == SegmentEnum.Management}\">{{segment.segment | segmentName}}</span>\n <span class=\"icon ph-info-fill\" factorInformationDialog [factor]=\"lowerFactor\"></span>\n </mat-option>\n }\n }\n </mat-select>\n </mat-form-field>\n </div>\n <div class=\"scaleselector-metadata\">\n <div class=\"questionnaire-breakdown\" *ngIf=\"questionsTotal > 0\">\n <div class=\"questionnaire-breakdown-label\">Expected duration (in minutes)</div>\n <div class=\"questionnaire-breakdown-items\">\n <div class=\"questionnaire-breakdown-item teammembers\" *ngIf=\"questionsTeamMembers > 0\" [matTooltip]=\"'At least ' + questionsTeamMembers + ' questions for team members. Additional questions may be added, and are typically answered once per team.'\" [ngStyle]=\"{'width': ((questionsTeamMembers / questionsTotal) * 100) + '%' }\">\n {{durationTeamMembers | number:'1.0-0'}}m\n </div>\n <div class=\"questionnaire-breakdown-item stakeholders\" *ngIf=\"questionsStakeholders > 0\" [matTooltip]=\"'At least ' + questionsStakeholders + ' questions for
|
|
138
|
+
], template: "<div class=\"scaleselector-container\">\n <div class=\"scaleselector-dropdown\">\n <mat-form-field appearance=\"fill\">\n <mat-label>Select topics</mat-label>\n <mat-select id=\"question-scaleKeys\" [(ngModel)]=\"scaleKeys\" required multiple disableRipple [disabled]=\"disabled\">\n <mat-select-trigger>\n You selected {{scaleKeys.length}} topic(s)\n </mat-select-trigger>\n\n @for (factor of topScales; track factor) {\n <mat-option class=\"select-option lower-0\" [value]=\"factor.publicKey\" (click)=\"toggleChildren(factor)\">\n {{factor.name}} ({{factor.questionCount}} questions)\n <span *ngFor=\"let segment of factor.segments | callback: filterSegmentWithQuestions\" class=\"segment\" [ngClass]=\"{'segment-teammember': segment.segment == SegmentEnum.TeamMember, 'segment-stakeholder': segment.segment == SegmentEnum.Stakeholder, 'segment-supporter': segment.segment == SegmentEnum.Management}\">{{segment.segment | segmentName}}</span>\n <span class=\"icon ph-info-fill\" factorInformationDialog [factor]=\"factor\"></span>\n </mat-option>\n\n @for (lowerFactor of getChildFactors(factor.publicKey); track lowerFactor) {\n <mat-option class=\"select-option lower-1\" [value]=\"lowerFactor.publicKey\" (click)=\"toggleParent(lowerFactor)\">\n {{lowerFactor.name}} ({{lowerFactor.questionCount}} questions)\n <span *ngFor=\"let segment of lowerFactor.segments | callback: filterSegmentWithQuestions\" class=\"segment\" [ngClass]=\"{'segment-teammember': segment.segment == SegmentEnum.TeamMember, 'segment-stakeholder': segment.segment == SegmentEnum.Stakeholder, 'segment-supporter': segment.segment == SegmentEnum.Management}\">{{segment.segment | segmentName}}</span>\n <span class=\"icon ph-info-fill\" factorInformationDialog [factor]=\"lowerFactor\"></span>\n </mat-option>\n }\n }\n </mat-select>\n </mat-form-field>\n </div>\n <div class=\"scaleselector-metadata\">\n <div class=\"questionnaire-breakdown\" *ngIf=\"questionsTotal > 0\">\n <div class=\"questionnaire-breakdown-label\">Expected duration (in minutes)</div>\n <div class=\"questionnaire-breakdown-items\">\n <div class=\"questionnaire-breakdown-item teammembers\" *ngIf=\"questionsTeamMembers > 0\" [matTooltip]=\"'At least ' + questionsTeamMembers + ' questions for team members. Additional questions may be added, and are typically answered once per team.'\" [ngStyle]=\"{'width': ((questionsTeamMembers / questionsTotal) * 100) + '%' }\">\n {{durationTeamMembers | number:'1.0-0'}}m\n </div>\n <div class=\"questionnaire-breakdown-item stakeholders\" *ngIf=\"questionsStakeholders > 0\" [matTooltip]=\"'At least ' + questionsStakeholders + ' questions for stakeholders. Additional questions may be added, and are typically answered once per team.'\" [ngStyle]=\"{'width': ((questionsStakeholders / questionsTotal) * 100) + '%' }\">\n {{durationStakeholders | number:'1.0-0'}}m\n </div>\n <div class=\"questionnaire-breakdown-item supporters\" *ngIf=\"questionsSupporters > 0\" [matTooltip]=\"'At least ' + questionsSupporters + ' questions for supporters. Additional questions may be added, and are typically answered once per team.'\" [ngStyle]=\"{'width': ((questionsSupporters / questionsTotal) * 100) + '%' }\">\n {{durationSupporters | number:'1.0-0'}}m\n </div>\n </div>\n </div>\n <div class=\"questionnaire-accuracy\" *ngIf=\"questionsTotal > 0\">\n <div class=\"questionnaire-breakdown-label\">Accuracy</div>\n <div class=\"questionnaire-breakdown-bar-holder\">\n <div class=\"questionnaire-accuracy-bar\" [ngClass]=\"{'low': questionnaireAccuracy < 0.25}\" [ngStyle]=\"{'width': (questionnaireAccuracy * 100) + '%' }\">{{questionnaireAccuracy * 100 | number:'1.0-0'}}%</div>\n </div>\n </div>\n </div>\n\n <div class=\"scaleselector-warnings\" *ngIf=\"warnings.length > 0 && scaleKeys.length > 0\">\n <div class=\"scaleselector-warnings-warning\" *ngFor=\"let warning of warnings\">\n <span class=\"icon ph-info-fill\"></span>{{warning}}\n </div>\n </div>\n\n</div>\n", 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%}.scaleselector-container .scaleselector-dropdown{flex:auto}.scaleselector-container .scaleselector-dropdown .mat-mdc-form-field{width:100%}.scaleselector-container .scaleselector-metadata{display:flex;column-gap:30px}@media only screen and (max-width: 992px){.scaleselector-container .scaleselector-metadata{display:block}}.scaleselector-container .scaleselector-metadata .questionnaire-breakdown{flex:50%}.scaleselector-container .scaleselector-metadata .questionnaire-breakdown .questionnaire-breakdown-label{font-size:12px;font-weight:900;text-transform:uppercase;font-family:StevieSans,sans-serif}.scaleselector-container .scaleselector-metadata .questionnaire-breakdown .questionnaire-breakdown-label .icon{color:#ef6f00;font-size:18px;vertical-align:middle;cursor:pointer}.scaleselector-container .scaleselector-metadata .questionnaire-breakdown .questionnaire-breakdown-items{display:flex;width:100%;height:20px;border-radius:15px;overflow:hidden;margin-bottom:15px}.scaleselector-container .scaleselector-metadata .questionnaire-breakdown .questionnaire-breakdown-item{flex:auto;min-width:50px;font-size:12px;font-weight:900;font-family:StevieSans,sans-serif;align-content:center;text-align:center}.scaleselector-container .scaleselector-metadata .questionnaire-breakdown .questionnaire-breakdown-item.teammembers{color:#fff;background:#1f3f8f}.scaleselector-container .scaleselector-metadata .questionnaire-breakdown .questionnaire-breakdown-item.stakeholders{background:#fff73f}.scaleselector-container .scaleselector-metadata .questionnaire-breakdown .questionnaire-breakdown-item.supporters{background:#ffbf00}.scaleselector-container .scaleselector-metadata .questionnaire-accuracy{flex:50%}.scaleselector-container .scaleselector-metadata .questionnaire-accuracy .questionnaire-breakdown-label{font-size:12px;font-weight:900;text-transform:uppercase;font-family:StevieSans,sans-serif}.scaleselector-container .scaleselector-metadata .questionnaire-accuracy .questionnaire-breakdown-bar-holder{margin-bottom:15px;background:#2f2f2f;height:20px;border-radius:15px;overflow:hidden}.scaleselector-container .scaleselector-metadata .questionnaire-accuracy .questionnaire-breakdown-bar-holder .questionnaire-accuracy-bar{flex:auto;min-width:50px;font-size:12px;font-weight:900;text-transform:uppercase;font-family:StevieSans,sans-serif;background:#00af77;height:100%;align-content:center;text-align:center}.scaleselector-container .scaleselector-metadata .questionnaire-accuracy .questionnaire-breakdown-bar-holder .questionnaire-accuracy-bar.low{background:#ffbf00}.scaleselector-container .scaleselector-warnings{margin-bottom:15px}.scaleselector-container .scaleselector-warnings .scaleselector-warnings-warning{display:flex;align-items:center;font-size:12pt}.scaleselector-container .scaleselector-warnings .scaleselector-warnings-warning .icon{color:#1f3f8f;font-size:16px;cursor:pointer;margin-right:10px}.mat-mdc-option.lower-1{margin-left:20px}.mat-mdc-option .segment{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%;padding:2px 4px;border-radius:4px;font-weight:600;font-size:10pt;margin-right:10px}.mat-mdc-option .segment.segment-stakeholder{background:#fff73f}.mat-mdc-option .segment.segment-teammember{background:#1f3f8f;color:#fff}.mat-mdc-option .segment.segment-supporter,.mat-mdc-option .segment.segment-management{background:#ffbf00}.mat-mdc-option .icon{vertical-align:middle;font-size:22px;color:#2f2f2f!important}\n"] }]
|
|
139
139
|
}], ctorParameters: () => [], propDecorators: { scales: [{
|
|
140
140
|
type: Input
|
|
141
141
|
}], filter: [{
|
|
@@ -147,4 +147,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImpor
|
|
|
147
147
|
}], scaleKeys: [{
|
|
148
148
|
type: Input
|
|
149
149
|
}] } });
|
|
150
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NhbGUtc2VsZWN0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNjcnVtdGVhbXN1cnZleS10b29scy9zcmMvbGliL2NvbXBvbmVudHMvc2NhbGUtc2VsZWN0b3Ivc2NhbGUtc2VsZWN0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNjcnVtdGVhbXN1cnZleS10b29scy9zcmMvbGliL2NvbXBvbmVudHMvc2NhbGUtc2VsZWN0b3Ivc2NhbGUtc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkYsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBcUUsV0FBVyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7Ozs7Ozs7O0FBWWhJLE1BQU0sT0FBTyxzQkFBc0I7SUFtQmhDO1FBbEJPLDBCQUFxQixHQUFXLENBQUMsQ0FBQztRQUNsQyx5QkFBb0IsR0FBVyxDQUFDLENBQUM7UUFDakMsMEJBQXFCLEdBQVcsQ0FBQyxDQUFDO1FBQ2xDLHdCQUFtQixHQUFXLENBQUMsQ0FBQztRQUNoQyx3QkFBbUIsR0FBVyxDQUFDLENBQUM7UUFDaEMseUJBQW9CLEdBQVcsQ0FBQyxDQUFDO1FBQ2pDLHVCQUFrQixHQUFXLENBQUMsQ0FBQztRQUMvQixtQkFBYyxHQUFXLENBQUMsQ0FBQztRQUMzQixnQkFBVyxHQUFHLFdBQVcsQ0FBQztRQUMxQixhQUFRLEdBQWEsRUFBRSxDQUFBO1FBSXJCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDaEIsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBQzdDLGNBQVMsR0FB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SSxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2hMLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2xMLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRS9LLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxPQUFPLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3hMLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFD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LENBQUMsU0FBUyxDQUFDLENBQUM7WUFDNUQsQ0FBQztRQUNKLENBQUM7YUFDSSxDQUFDO1lBQ0gsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdEUsQ0FBQztRQUVELElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN4QixDQUFDOzhHQXpJUyxzQkFBc0I7a0dBQXRCLHNCQUFzQixvTEFKckI7WUFDUixFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsc0JBQXNCLENBQUMsR0FBRztTQUNyRywwQkNaSixzMElBeURBOzsyRkQzQ2Esc0JBQXNCO2tCQVJsQyxTQUFTOytCQUNHLGdCQUFnQixhQUdmO3dCQUNSLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsdUJBQXVCLENBQUMsR0FBRztxQkFDckc7d0RBY1EsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNJLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0UsU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBmb3J3YXJkUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGYWN0b3JTdHJ1Y3R1cmVEdG8sIEZhY3RvclN0cnVjdHVyZVNlZ21lbnREdG8sIE1vZGVsRGVmaW5pdGlvbkR0bywgU2VnbWVudEVudW0gfSBmcm9tICcuLi8uLi9tb2RlbHMvbW9kZWxTdHJ1Y3R1cmVEdG8nO1xuaW1wb3J0IHsgU2NhbGVTZWxlY3RvckZpbHRlckR0byB9IGZyb20gJy4vc2NhbGVTZWxlY3RvckZpbHRlckR0byc7XG5pbXBvcnQgeyBMIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcblxuQENvbXBvbmVudCh7XG4gICBzZWxlY3RvcjogJ3NjYWxlLXNlbGVjdG9yJyxcbiAgIHRlbXBsYXRlVXJsOiAnLi9zY2FsZS1zZWxlY3Rvci5jb21wb25lbnQuaHRtbCcsXG4gICBzdHlsZVVybHM6IFsnLi9zY2FsZS1zZWxlY3Rvci5jb21wb25lbnQubGVzcyddLFxuICAgcHJvdmlkZXJzOiBbXG4gICAgICB7IHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLCBtdWx0aTogdHJ1ZSwgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2NhbGVTZWxlY3RvckNvbXBvbmVudCksIH1cbiAgIF1cbn0pXG5leHBvcnQgY2xhc3MgU2NhbGVTZWxlY3RvckNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgIHB1YmxpYyBxdWVzdGlvbm5haXJlQWNjdXJhY3k6IG51bWJlciA9IDA7XG4gICBwdWJsaWMgcXVlc3Rpb25zVGVhbU1lbWJlcnM6IG51bWJlciA9IDA7XG4gICBwdWJsaWMgcXVlc3Rpb25zU3Rha2Vob2xkZXJzOiBudW1iZXIgPSAwO1xuICAgcHVibGljIHF1ZXN0aW9uc1N1cHBvcnRlcnM6IG51bWJlciA9IDA7XG4gICBwdWJsaWMgZHVyYXRpb25UZWFtTWVtYmVyczogbnVtYmVyID0gMDtcbiAgIHB1YmxpYyBkdXJhdGlvblN0YWtlaG9sZGVyczogbnVtYmVyID0gMDtcbiAgIHB1YmxpYyBkdXJhdGlvblN1cHBvcnRlcnM6IG51bWJlciA9IDA7XG4gICBwdWJsaWMgcXVlc3Rpb25zVG90YWw6IG51bWJlciA9IDA7XG4gICBwdWJsaWMgU2VnbWVudEVudW0gPSBTZWdtZW50RW51bTtcbiAgIHB1YmxpYyB3YXJuaW5nczogc3RyaW5nW10gPSBbXVxuXG4gICBASW5wdXQoKSBzY2FsZXM6IEZhY3RvclN0cnVjdHVyZUR0b1tdO1xuICAgQElucHV0KCkgZmlsdGVyOiBTY2FsZVNlbGVjdG9yRmlsdGVyRHRvO1xuICAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcbiAgIEBPdXRwdXQoKSBvbkNoZWNrQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICAgQElucHV0KCkgc2NhbGVLZXlzOiBzdHJpbmdbXSA9IFtdO1xuICAgcHVibGljIHRvcFNjYWxlczogRmFjdG9yU3RydWN0dXJlRHRvW10gPSBbXTtcblxuICAgY29uc3RydWN0b3IoKSB7XG4gICB9XG5cbiAgIG5nT25Jbml0KCkge1xuICAgICAgdGhpcy50b3BTY2FsZXMgPSB0aGlzLmdldENoaWxkRmFjdG9ycyhudWxsKTtcbiAgIH1cblxuICAgd3JpdGVWYWx1ZShzY2FsZUtleXM6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgICB0aGlzLnNjYWxlS2V5cyA9IHNjYWxlS2V5cyA/PyBbXTtcbiAgICAgIHRoaXMudXBkYXRlTWV0YURhdGEoKTtcbiAgIH1cblxuICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gICB9XG5cbiAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gICB9XG5cbiAgIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgfVxuXG4gICBvbkNoYW5nZSA9IChzY2FsZUtleXM6IHN0cmluZ1tdKSA9PiB7IH07XG5cbiAgIG9uVG91Y2hlZCA9ICgpID0+IHsgfTtcblxuICAgcHVibGljIGZpbHRlclNlZ21lbnRXaXRoUXVlc3Rpb25zKHNlZ21lbnQ6IEZhY3RvclN0cnVjdHVyZVNlZ21lbnREdG8pIHtcbiAgICAgIHJldHVybiBzZWdtZW50LnF1ZXN0aW9uQ291bnQgPiAwO1xuICAgfVxuXG4gICBwdWJsaWMgZ2V0Q2hpbGRGYWN0b3JzKHBhcmVudEtleTogc3RyaW5nKTogRmFjdG9yU3RydWN0dXJlRHRvW10ge1xuICAgICAgdmFyIGZhY3RvcnMgPSB0aGlzLnNjYWxlc1xuICAgICAgICAgLmZpbHRlcihwID0+IHAucGFyZW50S2V5ID09IHBhcmVudEtleSk7XG5cbiAgICAgIGlmICh0aGlzLmZpbHRlciAhPSBudWxsKSB7XG4gICAgICAgICBpZiAodGhpcy5maWx0ZXIudGVhbVR5cGUgIT0gbnVsbCkge1xuICAgICAgICAgICAgZmFjdG9ycyA9IGZhY3RvcnMuZmlsdGVyKHAgPT4gcC5jb25zdHJhaW50cy5mb3JUZWFtVHlwZXMuaW5jbHVkZXModGhpcy5maWx0ZXIudGVhbVR5cGUpKTtcbiAgICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZhY3RvcnM7XG4gICB9XG5cbiAgIHByaXZhdGUgdXBkYXRlTWV0YURhdGEoKSB7XG4gICAgICB0aGlzLndhcm5pbmdzID0gW107XG4gICAgICAvLyBvbmx5IHdvcmsgd2l0aCBsb3dlci1sZXZlbCBmYWN0b3JzLCBhcyBoaWdoZXItbGV2ZWwgY29udGFpbiBhZ2dyZWdhdGVkIGhpZ2hlci1sZXZlbCBxdWVzdGlvbiBjb3VudHNcbiAgICAgIHZhciBzY2FsZXNUb0luY2x1ZGUgPSB0aGlzLnNjYWxlcy5maWx0ZXIocCA9PiBwLnBhcmVudEtleSAhPSBudWxsICYmIHRoaXMuc2NhbGVLZXlzLmluY2x1ZGVzKHAucHVibGljS2V5KSk7XG4gICAgICB2YXIgdG90YWxRdWVzdGlvbnMgPSB0aGlzLnNjYWxlcy5maWx0ZXIocCA9PiBwLnBhcmVudEtleSAhPSBudWxsKS5yZWR1Y2UoKHN1bSwgY3VycmVudCkgPT4gc3VtICs9IGN1cnJlbnQucXVlc3Rpb25Db3VudCwgMCk7XG5cbiAgICAgIHRoaXMucXVlc3Rpb25zVG90YWwgPSBzY2FsZXNUb0luY2x1ZGUucmVkdWNlKChzdW0sIGN1cnJlbnQpID0+IHN1bSArPSBjdXJyZW50LnF1ZXN0aW9uQ291bnQsIDApO1xuICAgICAgdGhpcy5xdWVzdGlvbnNUZWFtTWVtYmVycyA9IHNjYWxlc1RvSW5jbHVkZS5mbGF0TWFwKHAgPT4gcC5zZWdtZW50cykuZmlsdGVyKHAgPT4gcC5zZWdtZW50ID09IFNlZ21lbnRFbnVtLlRlYW1NZW1iZXIpLnJlZHVjZSgoc3VtLCBjdXJyZW50KSA9PiBzdW0gKz0gY3VycmVudC5xdWVzdGlvbkNvdW50LCAwKTtcbiAgICAgIHRoaXMucXVlc3Rpb25zU3Rha2Vob2xkZXJzID0gc2NhbGVzVG9JbmNsdWRlLmZsYXRNYXAocCA9PiBwLnNlZ21lbnRzKS5maWx0ZXIocCA9PiBwLnNlZ21lbnQgPT0gU2VnbWVudEVudW0uU3Rha2Vob2xkZXIpLnJlZHVjZSgoc3VtLCBjdXJyZW50KSA9PiBzdW0gKz0gY3VycmVudC5xdWVzdGlvbkNvdW50LCAwKTtcbiAgICAgIHRoaXMucXVlc3Rpb25zU3VwcG9ydGVycyA9IHNjYWxlc1RvSW5jbHVkZS5mbGF0TWFwKHAgPT4gcC5zZWdtZW50cykuZmlsdGVyKHAgPT4gcC5zZWdtZW50ID09IFNlZ21lbnRFbnVtLk1hbmFnZW1lbnQpLnJlZHVjZSgoc3VtLCBjdXJyZW50KSA9PiBzdW0gKz0gY3VycmVudC5xdWVzdGlvbkNvdW50LCAwKTtcblxuICAgICAgdGhpcy5kdXJhdGlvblRlYW1NZW1iZXJzID0gc2NhbGVzVG9JbmNsdWRlLmZsYXRNYXAocCA9PiBwLnNlZ21lbnRzKS5maWx0ZXIocCA9PiBwLnNlZ21lbnQgPT0gU2VnbWVudEVudW0uVGVhbU1lbWJlcikucmVkdWNlKChzdW0sIGN1cnJlbnQpID0+IHN1bSArPSBjdXJyZW50LmR1cmF0aW9uSW5TZWNvbmRzLCAwKSAvIDYwO1xuICAgICAgdGhpcy5kdXJhdGlvblN0YWtlaG9sZGVycyA9IHNjYWxlc1RvSW5jbHVkZS5mbGF0TWFwKHAgPT4gcC5zZWdtZW50cykuZmlsdGVyKHAgPT4gcC5zZWdtZW50ID09IFNlZ21lbnRFbnVtLlN0YWtlaG9sZGVyKS5yZWR1Y2UoKHN1bSwgY3VycmVudCkgPT4gc3VtICs9IGN1cnJlbnQuZHVyYXRpb25JblNlY29uZHMsIDApIC8gNjA7XG4gICAgICB0aGlzLmR1cmF0aW9uU3VwcG9ydGVycyA9IHNjYWxlc1RvSW5jbHVkZS5mbGF0TWFwKHAgPT4gcC5zZWdtZW50cykuZmlsdGVyKHAgPT4gcC5zZWdtZW50ID09IFNlZ21lbnRFbnVtLk1hbmFnZW1lbnQpLnJlZHVjZSgoc3VtLCBjdXJyZW50KSA9PiBzdW0gKz0gY3VycmVudC5kdXJhdGlvbkluU2Vjb25kcywgMCkgLyA2MDtcblxuICAgICAgaWYgKHRoaXMuZHVyYXRpb25UZWFtTWVtYmVycyA8IDEpIHsgdGhpcy5kdXJhdGlvblRlYW1NZW1iZXJzID0gMTsgfVxuICAgICAgaWYgKHRoaXMuZHVyYXRpb25TdGFrZWhvbGRlcnMgPCAxKSB7IHRoaXMuZHVyYXRpb25TdGFrZWhvbGRlcnMgPSAxOyB9XG4gICAgICBpZiAodGhpcy5kdXJhdGlvblN1cHBvcnRlcnMgPCAxKSB7IHRoaXMuZHVyYXRpb25TdXBwb3J0ZXJzID0gMTsgfVxuXG4gICAgICBpZiAodGhpcy5xdWVzdGlvbnNTdGFrZWhvbGRlcnMgPT0gMCkge1xuICAgICAgICAgdGhpcy53YXJuaW5ncy5wdXNoKFwiVGhlIHNlbGVjdGlvbiBkb2VzIG5vdCBpbmNsdWRlIHRvcGljcyBmb3IgJ1N0YWtlaG9sZGVycycuXCIpO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMucXVlc3Rpb25zU3VwcG9ydGVycyA9PSAwKSB7XG4gICAgICAgICB0aGlzLndhcm5pbmdzLnB1c2goXCJUaGUgc2VsZWN0aW9uIGRvZXMgbm90IGluY2x1ZGUgdG9waWNzIGZvciAnU3VwcG9ydGVycycuXCIpO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMucXVlc3Rpb25zVGVhbU1lbWJlcnMgPT0gMCkge1xuICAgICAgICAgdGhpcy53YXJuaW5ncy5wdXNoKFwiVGhlIHNlbGVjdGlvbiBkb2VzIG5vdCBpbmNsdWRlIHRvcGljcyBmb3IgJ1RlYW0gTWVtYmVycycuXCIpO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMucXVlc3Rpb25uYWlyZUFjY3VyYWN5IDwgMC4yNSkge1xuICAgICAgICAgdGhpcy53YXJuaW5ncy5wdXNoKFwiVGhlIHNlbGVjdGlvbiBtZWFzdXJlcyBmZXcgZmFjdG9ycywgc28gaXRzIGFjY3VyYWN5IGlzIGxvdy5cIik7XG4gICAgICB9XG5cbiAgICAgIHRoaXMucXVlc3Rpb25uYWlyZUFjY3VyYWN5ID0gdGhpcy5xdWVzdGlvbnNUb3RhbCAvIHRvdGFsUXVlc3Rpb25zO1xuICAgfVxuXG4gICBwcml2YXRlIGVtaXRTY2FsZUtleXMoKSB7XG4gICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuc2NhbGVLZXlzKTtcbiAgICAgIHRoaXMudXBkYXRlTWV0YURhdGEoKTtcbiAgIH1cblxuICAgcHVibGljIHRvZ2dsZUNoaWxkcmVuKHNjYWxlOiBGYWN0b3JTdHJ1Y3R1cmVEdG8pIHtcbiAgICAgIHZhciBjaGVja2VkID0gdGhpcy5zY2FsZUtleXMuZmluZChwID0+IHAgPT0gc2NhbGUucHVibGljS2V5KSAhPSBudWxsO1xuICAgICAgdmFyIGNoaWxkcmVuID0gdGhpcy5nZXRDaGlsZEZhY3RvcnMoc2NhbGUucHVibGljS2V5KTtcblxuICAgICAgaWYgKGNoZWNrZWQpIHtcbiAgICAgICAgIHZhciBzY2FsZXNUb0FkZCA9IGNoaWxkcmVuLmZpbHRlcihwID0+ICF0aGlzLnNjYWxlS2V5cy5pbmNsdWRlcyhwLnB1YmxpY0tleSkpLm1hcChwID0+IHAucHVibGljS2V5KTtcbiAgICAgICAgIHRoaXMuc2NhbGVLZXlzID0gdGhpcy5zY2FsZUtleXMuY29uY2F0KHNjYWxlc1RvQWRkKTtcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICAgdmFyIHNjYWxlc1RvUmVtb3ZlID0gY2hpbGRyZW4ubWFwKHAgPT4gcC5wdWJsaWNLZXkpO1xuICAgICAgICAgdGhpcy5zY2FsZUtleXMgPSB0aGlzLnNjYWxlS2V5cy5maWx0ZXIocCA9PiAhc2NhbGVzVG9SZW1vdmUuaW5jbHVkZXMocCkpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmVtaXRTY2FsZUtleXMoKTtcbiAgIH1cblxuICAgcHVibGljIHRvZ2dsZVBhcmVudChzY2FsZTogRmFjdG9yU3RydWN0dXJlRHRvKSB7XG4gICAgICB2YXIgY2hlY2tlZCA9IHRoaXMuc2NhbGVLZXlzLmZpbmQocCA9PiBwID09IHNjYWxlLnB1YmxpY0tleSkgIT0gbnVsbDtcbiAgICAgIHZhciBwYXJlbnQgPSB0aGlzLnNjYWxlcy5maW5kKHAgPT4gcC5wdWJsaWNLZXkgPT0gc2NhbGUucGFyZW50S2V5KTtcbiAgICAgIHZhciBzaWJsaW5ncyA9IHRoaXMuZ2V0Q2hpbGRGYWN0b3JzKHBhcmVudC5wdWJsaWNLZXkpO1xuXG4gICAgICBpZiAoY2hlY2tlZCkge1xuICAgICAgICAgdmFyIGFsbExvd2VyQ2hlY2tlZCA9IHNpYmxpbmdzLmZpbHRlcihwID0+ICF0aGlzLnNjYWxlS2V5cy5pbmNsdWRlcyhwLnB1YmxpY0tleSkpLmxlbmd0aCA9PSAwO1xuXG4gICAgICAgICBpZiAoYWxsTG93ZXJDaGVja2VkKSB7XG4gICAgICAgICAgICB0aGlzLnNjYWxlS2V5cyA9IHRoaXMuc2NhbGVLZXlzLmNvbmNhdChwYXJlbnQucHVibGljS2V5KTtcbiAgICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICAgdGhpcy5zY2FsZUtleXMgPSB0aGlzLnNjYWxlS2V5cy5maWx0ZXIocCA9PiBwICE9IHBhcmVudC5wdWJsaWNLZXkpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmVtaXRTY2FsZUtleXMoKTtcbiAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJzY2FsZXNlbGVjdG9yLWNvbnRhaW5lclwiPlxuICAgPGRpdiBjbGFzcz1cInNjYWxlc2VsZWN0b3ItZHJvcGRvd25cIj5cbiAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiPlxuICAgICAgICAgPG1hdC1sYWJlbD5TZWxlY3QgdG9waWNzPC9tYXQtbGFiZWw+XG4gICAgICAgICA8bWF0LXNlbGVjdCBpZD1cInF1ZXN0aW9uLXNjYWxlS2V5c1wiIFsobmdNb2RlbCldPVwic2NhbGVLZXlzXCIgcmVxdWlyZWQgbXVsdGlwbGUgZGlzYWJsZVJpcHBsZSBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIj5cbiAgICAgICAgICAgIDxtYXQtc2VsZWN0LXRyaWdnZXI+XG4gICAgICAgICAgICAgICBZb3Ugc2VsZWN0ZWQge3tzY2FsZUtleXMubGVuZ3RofX0gdG9waWMocylcbiAgICAgICAgICAgIDwvbWF0LXNlbGVjdC10cmlnZ2VyPlxuXG4gICAgICAgICAgICBAZm9yIChmYWN0b3Igb2YgdG9wU2NhbGVzOyB0cmFjayBmYWN0b3IpIHtcbiAgICAgICAgICAgIDxtYXQtb3B0aW9uIGNsYXNzPVwic2VsZWN0LW9wdGlvbiBsb3dlci0wXCIgW3ZhbHVlXT1cImZhY3Rvci5wdWJsaWNLZXlcIiAoY2xpY2spPVwidG9nZ2xlQ2hpbGRyZW4oZmFjdG9yKVwiPlxuICAgICAgICAgICAgICAge3tmYWN0b3IubmFtZX19ICh7e2ZhY3Rvci5xdWVzdGlvbkNvdW50fX0gcXVlc3Rpb25zKVxuICAgICAgICAgICAgICAgPHNwYW4gKm5nRm9yPVwibGV0IHNlZ21lbnQgb2YgZmFjdG9yLnNlZ21lbnRzIHwgY2FsbGJhY2s6IGZpbHRlclNlZ21lbnRXaXRoUXVlc3Rpb25zXCIgY2xhc3M9XCJzZWdtZW50XCIgW25nQ2xhc3NdPVwieydzZWdtZW50LXRlYW1tZW1iZXInOiBzZWdtZW50LnNlZ21lbnQgPT0gU2VnbWVudEVudW0uVGVhbU1lbWJlciwgJ3NlZ21lbnQtc3Rha2Vob2xkZXInOiBzZWdtZW50LnNlZ21lbnQgPT0gU2VnbWVudEVudW0uU3Rha2Vob2xkZXIsICdzZWdtZW50LXN1cHBvcnRlcic6IHNlZ21lbnQuc2VnbWVudCA9PSBTZWdtZW50RW51bS5NYW5hZ2VtZW50fVwiPnt7c2VnbWVudC5zZWdtZW50IHwgc2VnbWVudE5hbWV9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaWNvbiBwaC1pbmZvLWZpbGxcIiBmYWN0b3JJbmZvcm1hdGlvbkRpYWxvZyBbZmFjdG9yXT1cImZhY3RvclwiPjwvc3Bhbj5cbiAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cblxuICAgICAgICAgICAgQGZvciAobG93ZXJGYWN0b3Igb2YgZ2V0Q2hpbGRGYWN0b3JzKGZhY3Rvci5wdWJsaWNLZXkpOyB0cmFjayBsb3dlckZhY3Rvcikge1xuICAgICAgICAgICAgPG1hdC1vcHRpb24gY2xhc3M9XCJzZWxlY3Qtb3B0aW9uIGxvd2VyLTFcIiBbdmFsdWVdPVwibG93ZXJGYWN0b3IucHVibGljS2V5XCIgKGNsaWNrKT1cInRvZ2dsZVBhcmVudChsb3dlckZhY3RvcilcIj5cbiAgICAgICAgICAgICAgIHt7bG93ZXJGYWN0b3IubmFtZX19ICh7e2xvd2VyRmFjdG9yLnF1ZXN0aW9uQ291bnR9fSBxdWVzdGlvbnMpXG4gICAgICAgICAgICAgICA8c3BhbiAqbmdGb3I9XCJsZXQgc2VnbWVudCBvZiBsb3dlckZhY3Rvci5zZWdtZW50cyB8IGNhbGxiYWNrOiBmaWx0ZXJTZWdtZW50V2l0aFF1ZXN0aW9uc1wiIGNsYXNzPVwic2VnbWVudFwiIFtuZ0NsYXNzXT1cInsnc2VnbWVudC10ZWFtbWVtYmVyJzogc2VnbWVudC5zZWdtZW50ID09IFNlZ21lbnRFbnVtLlRlYW1NZW1iZXIsICdzZWdtZW50LXN0YWtlaG9sZGVyJzogc2VnbWVudC5zZWdtZW50ID09IFNlZ21lbnRFbnVtLlN0YWtlaG9sZGVyLCAnc2VnbWVudC1zdXBwb3J0ZXInOiBzZWdtZW50LnNlZ21lbnQgPT0gU2VnbWVudEVudW0uTWFuYWdlbWVudH1cIj57e3NlZ21lbnQuc2VnbWVudCB8IHNlZ21lbnROYW1lfX08L3NwYW4+XG4gICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImljb24gcGgtaW5mby1maWxsXCIgZmFjdG9ySW5mb3JtYXRpb25EaWFsb2cgW2ZhY3Rvcl09XCJsb3dlckZhY3RvclwiPjwvc3Bhbj5cbiAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICA8L2Rpdj5cbiAgIDxkaXYgY2xhc3M9XCJzY2FsZXNlbGVjdG9yLW1ldGFkYXRhXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwicXVlc3Rpb25uYWlyZS1icmVha2Rvd25cIiAqbmdJZj1cInF1ZXN0aW9uc1RvdGFsID4gMFwiPlxuICAgICAgICAgPGRpdiBjbGFzcz1cInF1ZXN0aW9ubmFpcmUtYnJlYWtkb3duLWxhYmVsXCI+RXhwZWN0ZWQgZHVyYXRpb24gKGluIG1pbnV0ZXMpPC9kaXY+XG4gICAgICAgICA8ZGl2IGNsYXNzPVwicXVlc3Rpb25uYWlyZS1icmVha2Rvd24taXRlbXNcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJxdWVzdGlvbm5haXJlLWJyZWFrZG93bi1pdGVtIHRlYW1tZW1iZXJzXCIgKm5nSWY9XCJxdWVzdGlvbnNUZWFtTWVtYmVycyA+IDBcIiBbbWF0VG9vbHRpcF09XCInQXQgbGVhc3QgJyArIHF1ZXN0aW9uc1RlYW1NZW1iZXJzICsgJyBxdWVzdGlvbnMgZm9yIHRlYW0gbWVtYmVycy4gQWRkaXRpb25hbCBxdWVzdGlvbnMgbWF5IGJlIGFkZGVkLCBhbmQgYXJlIHR5cGljYWxseSBhbnN3ZXJlZCBvbmNlIHBlciB0ZWFtLidcIiBbbmdTdHlsZV09XCJ7J3dpZHRoJzogKChxdWVzdGlvbnNUZWFtTWVtYmVycyAvIHF1ZXN0aW9uc1RvdGFsKSAqIDEwMCkgKyAnJScgfVwiPlxuICAgICAgICAgICAgICAge3tkdXJhdGlvblRlYW1NZW1iZXJzIHwgbnVtYmVyOicxLjAtMCd9fW1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInF1ZXN0aW9ubmFpcmUtYnJlYWtkb3duLWl0ZW0gc3Rha2Vob2xkZXJzXCIgKm5nSWY9XCJxdWVzdGlvbnNTdGFrZWhvbGRlcnMgPiAwXCIgW21hdFRvb2x0aXBdPVwiJ0F0IGxlYXN0ICcgKyBxdWVzdGlvbnNTdGFrZWhvbGRlcnMgKyAnIHF1ZXN0aW9ucyBmb3IgdGVhbSBtZW1iZXJzLiBBZGRpdGlvbmFsIHF1ZXN0aW9ucyBtYXkgYmUgYWRkZWQsIGFuZCBhcmUgdHlwaWNhbGx5IGFuc3dlcmVkIG9uY2UgcGVyIHRlYW0uJ1wiIFtuZ1N0eWxlXT1cInsnd2lkdGgnOiAoKHF1ZXN0aW9uc1N0YWtlaG9sZGVycyAvIHF1ZXN0aW9uc1RvdGFsKSAqIDEwMCkgKyAnJScgfVwiPlxuICAgICAgICAgICAgICAge3tkdXJhdGlvblN0YWtlaG9sZGVycyB8IG51bWJlcjonMS4wLTAnfX1tXG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJxdWVzdGlvbm5haXJlLWJyZWFrZG93bi1pdGVtIHN1cHBvcnRlcnNcIiAqbmdJZj1cInF1ZXN0aW9uc1N1cHBvcnRlcnMgPiAwXCIgW21hdFRvb2x0aXBdPVwiJ0F0IGxlYXN0ICcgKyBxdWVzdGlvbnNTdXBwb3J0ZXJzICsgJyBxdWVzdGlvbnMgZm9yIHRlYW0gbWVtYmVycy4gQWRkaXRpb25hbCBxdWVzdGlvbnMgbWF5IGJlIGFkZGVkLCBhbmQgYXJlIHR5cGljYWxseSBhbnN3ZXJlZCBvbmNlIHBlciB0ZWFtLidcIiBbbmdTdHlsZV09XCJ7J3dpZHRoJzogKChxdWVzdGlvbnNTdXBwb3J0ZXJzIC8gcXVlc3Rpb25zVG90YWwpICogMTAwKSArICclJyB9XCI+XG4gICAgICAgICAgICAgICB7e2R1cmF0aW9uU3VwcG9ydGVycyB8IG51bWJlcjonMS4wLTAnfX1tXG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwicXVlc3Rpb25uYWlyZS1hY2N1cmFjeVwiICpuZ0lmPVwicXVlc3Rpb25zVG90YWwgPiAwXCI+XG4gICAgICAgICA8ZGl2IGNsYXNzPVwicXVlc3Rpb25uYWlyZS1icmVha2Rvd24tbGFiZWxcIj5BY2N1cmFjeTwvZGl2PlxuICAgICAgICAgPGRpdiBjbGFzcz1cInF1ZXN0aW9ubmFpcmUtYnJlYWtkb3duLWJhci1ob2xkZXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJxdWVzdGlvbm5haXJlLWFjY3VyYWN5LWJhclwiIFtuZ0NsYXNzXT1cInsnbG93JzogcXVlc3Rpb25uYWlyZUFjY3VyYWN5IDwgMC4yNX1cIiBbbmdTdHlsZV09XCJ7J3dpZHRoJzogKHF1ZXN0aW9ubmFpcmVBY2N1cmFjeSAqIDEwMCkgKyAnJScgfVwiPnt7cXVlc3Rpb25uYWlyZUFjY3VyYWN5ICogMTAwIHwgbnVtYmVyOicxLjAtMCd9fSU8L2Rpdj5cbiAgICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICA8L2Rpdj5cblxuICAgPGRpdiBjbGFzcz1cInNjYWxlc2VsZWN0b3Itd2FybmluZ3NcIiAqbmdJZj1cIndhcm5pbmdzLmxlbmd0aCA+IDAgJiYgc2NhbGVLZXlzLmxlbmd0aCA+IDBcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzY2FsZXNlbGVjdG9yLXdhcm5pbmdzLXdhcm5pbmdcIiAqbmdGb3I9XCJsZXQgd2FybmluZyBvZiB3YXJuaW5nc1wiPlxuICAgICAgICAgPHNwYW4gY2xhc3M9XCJpY29uIHBoLWluZm8tZmlsbFwiPjwvc3Bhbj57e3dhcm5pbmd9fVxuICAgICAgPC9kaXY+XG4gICA8L2Rpdj5cblxuPC9kaXY+XG4iXX0=
|
|
150
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NhbGUtc2VsZWN0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNjcnVtdGVhbXN1cnZleS10b29scy9zcmMvbGliL2NvbXBvbmVudHMvc2NhbGUtc2VsZWN0b3Ivc2NhbGUtc2VsZWN0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNjcnVtdGVhbXN1cnZleS10b29scy9zcmMvbGliL2NvbXBvbmVudHMvc2NhbGUtc2VsZWN0b3Ivc2NhbGUtc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkYsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBcUUsV0FBVyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7Ozs7Ozs7O0FBWWhJLE1BQU0sT0FBTyxzQkFBc0I7SUFtQmhDO1FBbEJPLDBCQUFxQixHQUFXLENBQUMsQ0FBQztRQUNsQyx5QkFBb0IsR0FBVyxDQUFDLENBQUM7UUFDakMsMEJBQXFCLEdBQVcsQ0FBQyxDQUFDO1FBQ2xDLHdCQUFtQixHQUFXLENBQUMsQ0FBQztRQUNoQyx3QkFBbUIsR0FBVyxDQUFDLENBQUM7UUFDaEMseUJBQW9CLEdBQVcsQ0FBQyxDQUFDO1FBQ2pDLHVCQUFrQixHQUFXLENBQUMsQ0FBQztRQUMvQixtQkFBYyxHQUFXLENBQUMsQ0FBQztRQUMzQixnQkFBVyxHQUFHLFdBQVcsQ0FBQztRQUMxQixhQUFRLEdBQWEsRUFBRSxDQUFBO1FBSXJCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDaEIsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBQzdDLGNBQVMsR0FBYSxFQUFFLENBQUM7UUFDM0IsY0FBUyxHQUF5QixFQUFFLENBQUM7UUEwQjVDLGFBQVEsR0FBRyxDQUFDLFNBQW1CLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUV4QyxjQUFTLEdBQUcsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBekJ0QixDQUFDO0lBRUQsUUFBUTtRQUNMLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsVUFBVSxDQUFDLFNBQW1CO1FBQzNCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxJQUFJLEVBQUUsQ0FBQztRQUNqQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQU87UUFDckIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQU87UUFDdEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELGdCQUFnQixDQUFFLFVBQW1CO1FBQ2xDLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO0lBQzlCLENBQUM7SUFNTSwwQkFBMEIsQ0FBQyxPQUFrQztRQUNqRSxPQUFPLE9BQU8sQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFTSxlQUFlLENBQUMsU0FBaUI7UUFDckMsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU07YUFDckIsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsSUFBSSxTQUFTLENBQUMsQ0FBQztRQUUxQyxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxFQUFFLENBQUM7WUFDdkIsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDaEMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQzVGLENBQUM7UUFDSixDQUFDO1FBRUQsT0FBTyxPQUFPLENBQUM7SUFDbEIsQ0FBQztJQUVPLGNBQWM7UUFDbkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDbkIsc0dBQXNHO1FBQ3RHLElBQUksZUFBZSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDM0csSUFBSSxjQUFjLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRTVILElBQUksQ0FBQyxjQUFjLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2hHLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2hMLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2xMLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRS9LLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxPQUFPLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3hMLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFD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LENBQUMsU0FBUyxDQUFDLENBQUM7WUFDNUQsQ0FBQztRQUNKLENBQUM7YUFDSSxDQUFDO1lBQ0gsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdEUsQ0FBQztRQUVELElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN4QixDQUFDOzhHQXpJUyxzQkFBc0I7a0dBQXRCLHNCQUFzQixvTEFKckI7WUFDUixFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsc0JBQXNCLENBQUMsR0FBRztTQUNyRywwQkNaSixvMElBeURBOzsyRkQzQ2Esc0JBQXNCO2tCQVJsQyxTQUFTOytCQUNHLGdCQUFnQixhQUdmO3dCQUNSLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsdUJBQXVCLENBQUMsR0FBRztxQkFDckc7d0RBY1EsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNJLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0UsU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBmb3J3YXJkUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGYWN0b3JTdHJ1Y3R1cmVEdG8sIEZhY3RvclN0cnVjdHVyZVNlZ21lbnREdG8sIE1vZGVsRGVmaW5pdGlvbkR0bywgU2VnbWVudEVudW0gfSBmcm9tICcuLi8uLi9tb2RlbHMvbW9kZWxTdHJ1Y3R1cmVEdG8nO1xuaW1wb3J0IHsgU2NhbGVTZWxlY3RvckZpbHRlckR0byB9IGZyb20gJy4vc2NhbGVTZWxlY3RvckZpbHRlckR0byc7XG5pbXBvcnQgeyBMIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcblxuQENvbXBvbmVudCh7XG4gICBzZWxlY3RvcjogJ3NjYWxlLXNlbGVjdG9yJyxcbiAgIHRlbXBsYXRlVXJsOiAnLi9zY2FsZS1zZWxlY3Rvci5jb21wb25lbnQuaHRtbCcsXG4gICBzdHlsZVVybHM6IFsnLi9zY2FsZS1zZWxlY3Rvci5jb21wb25lbnQubGVzcyddLFxuICAgcHJvdmlkZXJzOiBbXG4gICAgICB7IHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLCBtdWx0aTogdHJ1ZSwgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2NhbGVTZWxlY3RvckNvbXBvbmVudCksIH1cbiAgIF1cbn0pXG5leHBvcnQgY2xhc3MgU2NhbGVTZWxlY3RvckNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgIHB1YmxpYyBxdWVzdGlvbm5haXJlQWNjdXJhY3k6IG51bWJlciA9IDA7XG4gICBwdWJsaWMgcXVlc3Rpb25zVGVhbU1lbWJlcnM6IG51bWJlciA9IDA7XG4gICBwdWJsaWMgcXVlc3Rpb25zU3Rha2Vob2xkZXJzOiBudW1iZXIgPSAwO1xuICAgcHVibGljIHF1ZXN0aW9uc1N1cHBvcnRlcnM6IG51bWJlciA9IDA7XG4gICBwdWJsaWMgZHVyYXRpb25UZWFtTWVtYmVyczogbnVtYmVyID0gMDtcbiAgIHB1YmxpYyBkdXJhdGlvblN0YWtlaG9sZGVyczogbnVtYmVyID0gMDtcbiAgIHB1YmxpYyBkdXJhdGlvblN1cHBvcnRlcnM6IG51bWJlciA9IDA7XG4gICBwdWJsaWMgcXVlc3Rpb25zVG90YWw6IG51bWJlciA9IDA7XG4gICBwdWJsaWMgU2VnbWVudEVudW0gPSBTZWdtZW50RW51bTtcbiAgIHB1YmxpYyB3YXJuaW5nczogc3RyaW5nW10gPSBbXVxuXG4gICBASW5wdXQoKSBzY2FsZXM6IEZhY3RvclN0cnVjdHVyZUR0b1tdO1xuICAgQElucHV0KCkgZmlsdGVyOiBTY2FsZVNlbGVjdG9yRmlsdGVyRHRvO1xuICAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcbiAgIEBPdXRwdXQoKSBvbkNoZWNrQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICAgQElucHV0KCkgc2NhbGVLZXlzOiBzdHJpbmdbXSA9IFtdO1xuICAgcHVibGljIHRvcFNjYWxlczogRmFjdG9yU3RydWN0dXJlRHRvW10gPSBbXTtcblxuICAgY29uc3RydWN0b3IoKSB7XG4gICB9XG5cbiAgIG5nT25Jbml0KCkge1xuICAgICAgdGhpcy50b3BTY2FsZXMgPSB0aGlzLmdldENoaWxkRmFjdG9ycyhudWxsKTtcbiAgIH1cblxuICAgd3JpdGVWYWx1ZShzY2FsZUtleXM6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgICB0aGlzLnNjYWxlS2V5cyA9IHNjYWxlS2V5cyA/PyBbXTtcbiAgICAgIHRoaXMudXBkYXRlTWV0YURhdGEoKTtcbiAgIH1cblxuICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gICB9XG5cbiAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gICB9XG5cbiAgIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgfVxuXG4gICBvbkNoYW5nZSA9IChzY2FsZUtleXM6IHN0cmluZ1tdKSA9PiB7IH07XG5cbiAgIG9uVG91Y2hlZCA9ICgpID0+IHsgfTtcblxuICAgcHVibGljIGZpbHRlclNlZ21lbnRXaXRoUXVlc3Rpb25zKHNlZ21lbnQ6IEZhY3RvclN0cnVjdHVyZVNlZ21lbnREdG8pIHtcbiAgICAgIHJldHVybiBzZWdtZW50LnF1ZXN0aW9uQ291bnQgPiAwO1xuICAgfVxuXG4gICBwdWJsaWMgZ2V0Q2hpbGRGYWN0b3JzKHBhcmVudEtleTogc3RyaW5nKTogRmFjdG9yU3RydWN0dXJlRHRvW10ge1xuICAgICAgdmFyIGZhY3RvcnMgPSB0aGlzLnNjYWxlc1xuICAgICAgICAgLmZpbHRlcihwID0+IHAucGFyZW50S2V5ID09IHBhcmVudEtleSk7XG5cbiAgICAgIGlmICh0aGlzLmZpbHRlciAhPSBudWxsKSB7XG4gICAgICAgICBpZiAodGhpcy5maWx0ZXIudGVhbVR5cGUgIT0gbnVsbCkge1xuICAgICAgICAgICAgZmFjdG9ycyA9IGZhY3RvcnMuZmlsdGVyKHAgPT4gcC5jb25zdHJhaW50cy5mb3JUZWFtVHlwZXMuaW5jbHVkZXModGhpcy5maWx0ZXIudGVhbVR5cGUpKTtcbiAgICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZhY3RvcnM7XG4gICB9XG5cbiAgIHByaXZhdGUgdXBkYXRlTWV0YURhdGEoKSB7XG4gICAgICB0aGlzLndhcm5pbmdzID0gW107XG4gICAgICAvLyBvbmx5IHdvcmsgd2l0aCBsb3dlci1sZXZlbCBmYWN0b3JzLCBhcyBoaWdoZXItbGV2ZWwgY29udGFpbiBhZ2dyZWdhdGVkIGhpZ2hlci1sZXZlbCBxdWVzdGlvbiBjb3VudHNcbiAgICAgIHZhciBzY2FsZXNUb0luY2x1ZGUgPSB0aGlzLnNjYWxlcy5maWx0ZXIocCA9PiBwLnBhcmVudEtleSAhPSBudWxsICYmIHRoaXMuc2NhbGVLZXlzLmluY2x1ZGVzKHAucHVibGljS2V5KSk7XG4gICAgICB2YXIgdG90YWxRdWVzdGlvbnMgPSB0aGlzLnNjYWxlcy5maWx0ZXIocCA9PiBwLnBhcmVudEtleSAhPSBudWxsKS5yZWR1Y2UoKHN1bSwgY3VycmVudCkgPT4gc3VtICs9IGN1cnJlbnQucXVlc3Rpb25Db3VudCwgMCk7XG5cbiAgICAgIHRoaXMucXVlc3Rpb25zVG90YWwgPSBzY2FsZXNUb0luY2x1ZGUucmVkdWNlKChzdW0sIGN1cnJlbnQpID0+IHN1bSArPSBjdXJyZW50LnF1ZXN0aW9uQ291bnQsIDApO1xuICAgICAgdGhpcy5xdWVzdGlvbnNUZWFtTWVtYmVycyA9IHNjYWxlc1RvSW5jbHVkZS5mbGF0TWFwKHAgPT4gcC5zZWdtZW50cykuZmlsdGVyKHAgPT4gcC5zZWdtZW50ID09IFNlZ21lbnRFbnVtLlRlYW1NZW1iZXIpLnJlZHVjZSgoc3VtLCBjdXJyZW50KSA9PiBzdW0gKz0gY3VycmVudC5xdWVzdGlvbkNvdW50LCAwKTtcbiAgICAgIHRoaXMucXVlc3Rpb25zU3Rha2Vob2xkZXJzID0gc2NhbGVzVG9JbmNsdWRlLmZsYXRNYXAocCA9PiBwLnNlZ21lbnRzKS5maWx0ZXIocCA9PiBwLnNlZ21lbnQgPT0gU2VnbWVudEVudW0uU3Rha2Vob2xkZXIpLnJlZHVjZSgoc3VtLCBjdXJyZW50KSA9PiBzdW0gKz0gY3VycmVudC5xdWVzdGlvbkNvdW50LCAwKTtcbiAgICAgIHRoaXMucXVlc3Rpb25zU3VwcG9ydGVycyA9IHNjYWxlc1RvSW5jbHVkZS5mbGF0TWFwKHAgPT4gcC5zZWdtZW50cykuZmlsdGVyKHAgPT4gcC5zZWdtZW50ID09IFNlZ21lbnRFbnVtLk1hbmFnZW1lbnQpLnJlZHVjZSgoc3VtLCBjdXJyZW50KSA9PiBzdW0gKz0gY3VycmVudC5xdWVzdGlvbkNvdW50LCAwKTtcblxuICAgICAgdGhpcy5kdXJhdGlvblRlYW1NZW1iZXJzID0gc2NhbGVzVG9JbmNsdWRlLmZsYXRNYXAocCA9PiBwLnNlZ21lbnRzKS5maWx0ZXIocCA9PiBwLnNlZ21lbnQgPT0gU2VnbWVudEVudW0uVGVhbU1lbWJlcikucmVkdWNlKChzdW0sIGN1cnJlbnQpID0+IHN1bSArPSBjdXJyZW50LmR1cmF0aW9uSW5TZWNvbmRzLCAwKSAvIDYwO1xuICAgICAgdGhpcy5kdXJhdGlvblN0YWtlaG9sZGVycyA9IHNjYWxlc1RvSW5jbHVkZS5mbGF0TWFwKHAgPT4gcC5zZWdtZW50cykuZmlsdGVyKHAgPT4gcC5zZWdtZW50ID09IFNlZ21lbnRFbnVtLlN0YWtlaG9sZGVyKS5yZWR1Y2UoKHN1bSwgY3VycmVudCkgPT4gc3VtICs9IGN1cnJlbnQuZHVyYXRpb25JblNlY29uZHMsIDApIC8gNjA7XG4gICAgICB0aGlzLmR1cmF0aW9uU3VwcG9ydGVycyA9IHNjYWxlc1RvSW5jbHVkZS5mbGF0TWFwKHAgPT4gcC5zZWdtZW50cykuZmlsdGVyKHAgPT4gcC5zZWdtZW50ID09IFNlZ21lbnRFbnVtLk1hbmFnZW1lbnQpLnJlZHVjZSgoc3VtLCBjdXJyZW50KSA9PiBzdW0gKz0gY3VycmVudC5kdXJhdGlvbkluU2Vjb25kcywgMCkgLyA2MDtcblxuICAgICAgaWYgKHRoaXMuZHVyYXRpb25UZWFtTWVtYmVycyA8IDEpIHsgdGhpcy5kdXJhdGlvblRlYW1NZW1iZXJzID0gMTsgfVxuICAgICAgaWYgKHRoaXMuZHVyYXRpb25TdGFrZWhvbGRlcnMgPCAxKSB7IHRoaXMuZHVyYXRpb25TdGFrZWhvbGRlcnMgPSAxOyB9XG4gICAgICBpZiAodGhpcy5kdXJhdGlvblN1cHBvcnRlcnMgPCAxKSB7IHRoaXMuZHVyYXRpb25TdXBwb3J0ZXJzID0gMTsgfVxuXG4gICAgICBpZiAodGhpcy5xdWVzdGlvbnNTdGFrZWhvbGRlcnMgPT0gMCkge1xuICAgICAgICAgdGhpcy53YXJuaW5ncy5wdXNoKFwiVGhlIHNlbGVjdGlvbiBkb2VzIG5vdCBpbmNsdWRlIHRvcGljcyBmb3IgJ1N0YWtlaG9sZGVycycuXCIpO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMucXVlc3Rpb25zU3VwcG9ydGVycyA9PSAwKSB7XG4gICAgICAgICB0aGlzLndhcm5pbmdzLnB1c2goXCJUaGUgc2VsZWN0aW9uIGRvZXMgbm90IGluY2x1ZGUgdG9waWNzIGZvciAnU3VwcG9ydGVycycuXCIpO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMucXVlc3Rpb25zVGVhbU1lbWJlcnMgPT0gMCkge1xuICAgICAgICAgdGhpcy53YXJuaW5ncy5wdXNoKFwiVGhlIHNlbGVjdGlvbiBkb2VzIG5vdCBpbmNsdWRlIHRvcGljcyBmb3IgJ1RlYW0gTWVtYmVycycuXCIpO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMucXVlc3Rpb25uYWlyZUFjY3VyYWN5IDwgMC4yNSkge1xuICAgICAgICAgdGhpcy53YXJuaW5ncy5wdXNoKFwiVGhlIHNlbGVjdGlvbiBtZWFzdXJlcyBmZXcgZmFjdG9ycywgc28gaXRzIGFjY3VyYWN5IGlzIGxvdy5cIik7XG4gICAgICB9XG5cbiAgICAgIHRoaXMucXVlc3Rpb25uYWlyZUFjY3VyYWN5ID0gdGhpcy5xdWVzdGlvbnNUb3RhbCAvIHRvdGFsUXVlc3Rpb25zO1xuICAgfVxuXG4gICBwcml2YXRlIGVtaXRTY2FsZUtleXMoKSB7XG4gICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuc2NhbGVLZXlzKTtcbiAgICAgIHRoaXMudXBkYXRlTWV0YURhdGEoKTtcbiAgIH1cblxuICAgcHVibGljIHRvZ2dsZUNoaWxkcmVuKHNjYWxlOiBGYWN0b3JTdHJ1Y3R1cmVEdG8pIHtcbiAgICAgIHZhciBjaGVja2VkID0gdGhpcy5zY2FsZUtleXMuZmluZChwID0+IHAgPT0gc2NhbGUucHVibGljS2V5KSAhPSBudWxsO1xuICAgICAgdmFyIGNoaWxkcmVuID0gdGhpcy5nZXRDaGlsZEZhY3RvcnMoc2NhbGUucHVibGljS2V5KTtcblxuICAgICAgaWYgKGNoZWNrZWQpIHtcbiAgICAgICAgIHZhciBzY2FsZXNUb0FkZCA9IGNoaWxkcmVuLmZpbHRlcihwID0+ICF0aGlzLnNjYWxlS2V5cy5pbmNsdWRlcyhwLnB1YmxpY0tleSkpLm1hcChwID0+IHAucHVibGljS2V5KTtcbiAgICAgICAgIHRoaXMuc2NhbGVLZXlzID0gdGhpcy5zY2FsZUtleXMuY29uY2F0KHNjYWxlc1RvQWRkKTtcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICAgdmFyIHNjYWxlc1RvUmVtb3ZlID0gY2hpbGRyZW4ubWFwKHAgPT4gcC5wdWJsaWNLZXkpO1xuICAgICAgICAgdGhpcy5zY2FsZUtleXMgPSB0aGlzLnNjYWxlS2V5cy5maWx0ZXIocCA9PiAhc2NhbGVzVG9SZW1vdmUuaW5jbHVkZXMocCkpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmVtaXRTY2FsZUtleXMoKTtcbiAgIH1cblxuICAgcHVibGljIHRvZ2dsZVBhcmVudChzY2FsZTogRmFjdG9yU3RydWN0dXJlRHRvKSB7XG4gICAgICB2YXIgY2hlY2tlZCA9IHRoaXMuc2NhbGVLZXlzLmZpbmQocCA9PiBwID09IHNjYWxlLnB1YmxpY0tleSkgIT0gbnVsbDtcbiAgICAgIHZhciBwYXJlbnQgPSB0aGlzLnNjYWxlcy5maW5kKHAgPT4gcC5wdWJsaWNLZXkgPT0gc2NhbGUucGFyZW50S2V5KTtcbiAgICAgIHZhciBzaWJsaW5ncyA9IHRoaXMuZ2V0Q2hpbGRGYWN0b3JzKHBhcmVudC5wdWJsaWNLZXkpO1xuXG4gICAgICBpZiAoY2hlY2tlZCkge1xuICAgICAgICAgdmFyIGFsbExvd2VyQ2hlY2tlZCA9IHNpYmxpbmdzLmZpbHRlcihwID0+ICF0aGlzLnNjYWxlS2V5cy5pbmNsdWRlcyhwLnB1YmxpY0tleSkpLmxlbmd0aCA9PSAwO1xuXG4gICAgICAgICBpZiAoYWxsTG93ZXJDaGVja2VkKSB7XG4gICAgICAgICAgICB0aGlzLnNjYWxlS2V5cyA9IHRoaXMuc2NhbGVLZXlzLmNvbmNhdChwYXJlbnQucHVibGljS2V5KTtcbiAgICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICAgdGhpcy5zY2FsZUtleXMgPSB0aGlzLnNjYWxlS2V5cy5maWx0ZXIocCA9PiBwICE9IHBhcmVudC5wdWJsaWNLZXkpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmVtaXRTY2FsZUtleXMoKTtcbiAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJzY2FsZXNlbGVjdG9yLWNvbnRhaW5lclwiPlxuICAgPGRpdiBjbGFzcz1cInNjYWxlc2VsZWN0b3ItZHJvcGRvd25cIj5cbiAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiPlxuICAgICAgICAgPG1hdC1sYWJlbD5TZWxlY3QgdG9waWNzPC9tYXQtbGFiZWw+XG4gICAgICAgICA8bWF0LXNlbGVjdCBpZD1cInF1ZXN0aW9uLXNjYWxlS2V5c1wiIFsobmdNb2RlbCldPVwic2NhbGVLZXlzXCIgcmVxdWlyZWQgbXVsdGlwbGUgZGlzYWJsZVJpcHBsZSBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIj5cbiAgICAgICAgICAgIDxtYXQtc2VsZWN0LXRyaWdnZXI+XG4gICAgICAgICAgICAgICBZb3Ugc2VsZWN0ZWQge3tzY2FsZUtleXMubGVuZ3RofX0gdG9waWMocylcbiAgICAgICAgICAgIDwvbWF0LXNlbGVjdC10cmlnZ2VyPlxuXG4gICAgICAgICAgICBAZm9yIChmYWN0b3Igb2YgdG9wU2NhbGVzOyB0cmFjayBmYWN0b3IpIHtcbiAgICAgICAgICAgIDxtYXQtb3B0aW9uIGNsYXNzPVwic2VsZWN0LW9wdGlvbiBsb3dlci0wXCIgW3ZhbHVlXT1cImZhY3Rvci5wdWJsaWNLZXlcIiAoY2xpY2spPVwidG9nZ2xlQ2hpbGRyZW4oZmFjdG9yKVwiPlxuICAgICAgICAgICAgICAge3tmYWN0b3IubmFtZX19ICh7e2ZhY3Rvci5xdWVzdGlvbkNvdW50fX0gcXVlc3Rpb25zKVxuICAgICAgICAgICAgICAgPHNwYW4gKm5nRm9yPVwibGV0IHNlZ21lbnQgb2YgZmFjdG9yLnNlZ21lbnRzIHwgY2FsbGJhY2s6IGZpbHRlclNlZ21lbnRXaXRoUXVlc3Rpb25zXCIgY2xhc3M9XCJzZWdtZW50XCIgW25nQ2xhc3NdPVwieydzZWdtZW50LXRlYW1tZW1iZXInOiBzZWdtZW50LnNlZ21lbnQgPT0gU2VnbWVudEVudW0uVGVhbU1lbWJlciwgJ3NlZ21lbnQtc3Rha2Vob2xkZXInOiBzZWdtZW50LnNlZ21lbnQgPT0gU2VnbWVudEVudW0uU3Rha2Vob2xkZXIsICdzZWdtZW50LXN1cHBvcnRlcic6IHNlZ21lbnQuc2VnbWVudCA9PSBTZWdtZW50RW51bS5NYW5hZ2VtZW50fVwiPnt7c2VnbWVudC5zZWdtZW50IHwgc2VnbWVudE5hbWV9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaWNvbiBwaC1pbmZvLWZpbGxcIiBmYWN0b3JJbmZvcm1hdGlvbkRpYWxvZyBbZmFjdG9yXT1cImZhY3RvclwiPjwvc3Bhbj5cbiAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cblxuICAgICAgICAgICAgQGZvciAobG93ZXJGYWN0b3Igb2YgZ2V0Q2hpbGRGYWN0b3JzKGZhY3Rvci5wdWJsaWNLZXkpOyB0cmFjayBsb3dlckZhY3Rvcikge1xuICAgICAgICAgICAgPG1hdC1vcHRpb24gY2xhc3M9XCJzZWxlY3Qtb3B0aW9uIGxvd2VyLTFcIiBbdmFsdWVdPVwibG93ZXJGYWN0b3IucHVibGljS2V5XCIgKGNsaWNrKT1cInRvZ2dsZVBhcmVudChsb3dlckZhY3RvcilcIj5cbiAgICAgICAgICAgICAgIHt7bG93ZXJGYWN0b3IubmFtZX19ICh7e2xvd2VyRmFjdG9yLnF1ZXN0aW9uQ291bnR9fSBxdWVzdGlvbnMpXG4gICAgICAgICAgICAgICA8c3BhbiAqbmdGb3I9XCJsZXQgc2VnbWVudCBvZiBsb3dlckZhY3Rvci5zZWdtZW50cyB8IGNhbGxiYWNrOiBmaWx0ZXJTZWdtZW50V2l0aFF1ZXN0aW9uc1wiIGNsYXNzPVwic2VnbWVudFwiIFtuZ0NsYXNzXT1cInsnc2VnbWVudC10ZWFtbWVtYmVyJzogc2VnbWVudC5zZWdtZW50ID09IFNlZ21lbnRFbnVtLlRlYW1NZW1iZXIsICdzZWdtZW50LXN0YWtlaG9sZGVyJzogc2VnbWVudC5zZWdtZW50ID09IFNlZ21lbnRFbnVtLlN0YWtlaG9sZGVyLCAnc2VnbWVudC1zdXBwb3J0ZXInOiBzZWdtZW50LnNlZ21lbnQgPT0gU2VnbWVudEVudW0uTWFuYWdlbWVudH1cIj57e3NlZ21lbnQuc2VnbWVudCB8IHNlZ21lbnROYW1lfX08L3NwYW4+XG4gICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImljb24gcGgtaW5mby1maWxsXCIgZmFjdG9ySW5mb3JtYXRpb25EaWFsb2cgW2ZhY3Rvcl09XCJsb3dlckZhY3RvclwiPjwvc3Bhbj5cbiAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICA8L2Rpdj5cbiAgIDxkaXYgY2xhc3M9XCJzY2FsZXNlbGVjdG9yLW1ldGFkYXRhXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwicXVlc3Rpb25uYWlyZS1icmVha2Rvd25cIiAqbmdJZj1cInF1ZXN0aW9uc1RvdGFsID4gMFwiPlxuICAgICAgICAgPGRpdiBjbGFzcz1cInF1ZXN0aW9ubmFpcmUtYnJlYWtkb3duLWxhYmVsXCI+RXhwZWN0ZWQgZHVyYXRpb24gKGluIG1pbnV0ZXMpPC9kaXY+XG4gICAgICAgICA8ZGl2IGNsYXNzPVwicXVlc3Rpb25uYWlyZS1icmVha2Rvd24taXRlbXNcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJxdWVzdGlvbm5haXJlLWJyZWFrZG93bi1pdGVtIHRlYW1tZW1iZXJzXCIgKm5nSWY9XCJxdWVzdGlvbnNUZWFtTWVtYmVycyA+IDBcIiBbbWF0VG9vbHRpcF09XCInQXQgbGVhc3QgJyArIHF1ZXN0aW9uc1RlYW1NZW1iZXJzICsgJyBxdWVzdGlvbnMgZm9yIHRlYW0gbWVtYmVycy4gQWRkaXRpb25hbCBxdWVzdGlvbnMgbWF5IGJlIGFkZGVkLCBhbmQgYXJlIHR5cGljYWxseSBhbnN3ZXJlZCBvbmNlIHBlciB0ZWFtLidcIiBbbmdTdHlsZV09XCJ7J3dpZHRoJzogKChxdWVzdGlvbnNUZWFtTWVtYmVycyAvIHF1ZXN0aW9uc1RvdGFsKSAqIDEwMCkgKyAnJScgfVwiPlxuICAgICAgICAgICAgICAge3tkdXJhdGlvblRlYW1NZW1iZXJzIHwgbnVtYmVyOicxLjAtMCd9fW1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInF1ZXN0aW9ubmFpcmUtYnJlYWtkb3duLWl0ZW0gc3Rha2Vob2xkZXJzXCIgKm5nSWY9XCJxdWVzdGlvbnNTdGFrZWhvbGRlcnMgPiAwXCIgW21hdFRvb2x0aXBdPVwiJ0F0IGxlYXN0ICcgKyBxdWVzdGlvbnNTdGFrZWhvbGRlcnMgKyAnIHF1ZXN0aW9ucyBmb3Igc3Rha2Vob2xkZXJzLiBBZGRpdGlvbmFsIHF1ZXN0aW9ucyBtYXkgYmUgYWRkZWQsIGFuZCBhcmUgdHlwaWNhbGx5IGFuc3dlcmVkIG9uY2UgcGVyIHRlYW0uJ1wiIFtuZ1N0eWxlXT1cInsnd2lkdGgnOiAoKHF1ZXN0aW9uc1N0YWtlaG9sZGVycyAvIHF1ZXN0aW9uc1RvdGFsKSAqIDEwMCkgKyAnJScgfVwiPlxuICAgICAgICAgICAgICAge3tkdXJhdGlvblN0YWtlaG9sZGVycyB8IG51bWJlcjonMS4wLTAnfX1tXG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJxdWVzdGlvbm5haXJlLWJyZWFrZG93bi1pdGVtIHN1cHBvcnRlcnNcIiAqbmdJZj1cInF1ZXN0aW9uc1N1cHBvcnRlcnMgPiAwXCIgW21hdFRvb2x0aXBdPVwiJ0F0IGxlYXN0ICcgKyBxdWVzdGlvbnNTdXBwb3J0ZXJzICsgJyBxdWVzdGlvbnMgZm9yIHN1cHBvcnRlcnMuIEFkZGl0aW9uYWwgcXVlc3Rpb25zIG1heSBiZSBhZGRlZCwgYW5kIGFyZSB0eXBpY2FsbHkgYW5zd2VyZWQgb25jZSBwZXIgdGVhbS4nXCIgW25nU3R5bGVdPVwieyd3aWR0aCc6ICgocXVlc3Rpb25zU3VwcG9ydGVycyAvIHF1ZXN0aW9uc1RvdGFsKSAqIDEwMCkgKyAnJScgfVwiPlxuICAgICAgICAgICAgICAge3tkdXJhdGlvblN1cHBvcnRlcnMgfCBudW1iZXI6JzEuMC0wJ319bVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInF1ZXN0aW9ubmFpcmUtYWNjdXJhY3lcIiAqbmdJZj1cInF1ZXN0aW9uc1RvdGFsID4gMFwiPlxuICAgICAgICAgPGRpdiBjbGFzcz1cInF1ZXN0aW9ubmFpcmUtYnJlYWtkb3duLWxhYmVsXCI+QWNjdXJhY3k8L2Rpdj5cbiAgICAgICAgIDxkaXYgY2xhc3M9XCJxdWVzdGlvbm5haXJlLWJyZWFrZG93bi1iYXItaG9sZGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicXVlc3Rpb25uYWlyZS1hY2N1cmFjeS1iYXJcIiBbbmdDbGFzc109XCJ7J2xvdyc6IHF1ZXN0aW9ubmFpcmVBY2N1cmFjeSA8IDAuMjV9XCIgW25nU3R5bGVdPVwieyd3aWR0aCc6IChxdWVzdGlvbm5haXJlQWNjdXJhY3kgKiAxMDApICsgJyUnIH1cIj57e3F1ZXN0aW9ubmFpcmVBY2N1cmFjeSAqIDEwMCB8IG51bWJlcjonMS4wLTAnfX0lPC9kaXY+XG4gICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgPC9kaXY+XG5cbiAgIDxkaXYgY2xhc3M9XCJzY2FsZXNlbGVjdG9yLXdhcm5pbmdzXCIgKm5nSWY9XCJ3YXJuaW5ncy5sZW5ndGggPiAwICYmIHNjYWxlS2V5cy5sZW5ndGggPiAwXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwic2NhbGVzZWxlY3Rvci13YXJuaW5ncy13YXJuaW5nXCIgKm5nRm9yPVwibGV0IHdhcm5pbmcgb2Ygd2FybmluZ3NcIj5cbiAgICAgICAgIDxzcGFuIGNsYXNzPVwiaWNvbiBwaC1pbmZvLWZpbGxcIj48L3NwYW4+e3t3YXJuaW5nfX1cbiAgICAgIDwvZGl2PlxuICAgPC9kaXY+XG5cbjwvZGl2PlxuIl19
|
|
@@ -17,13 +17,13 @@ export class RoadmapComponent extends ComponentWithViewStateBase {
|
|
|
17
17
|
}
|
|
18
18
|
;
|
|
19
19
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: RoadmapComponent, deps: [{ token: VIEWSTATE_PROVIDER }, { token: i1.MatSnackBar }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
20
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: RoadmapComponent, selector: "roadmap", usesInheritance: true, ngImport: i0, template: "<div class=\"roadmap\" brandbackground [palette]=\"'accent'\" *ngIf=\"show\">\n <h3>Our roadmap</h3>\n <div class=\"feature\">\n <span class=\"icon ph-check-circle-fill\"></span>
|
|
20
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: RoadmapComponent, selector: "roadmap", usesInheritance: true, ngImport: i0, template: "<div class=\"roadmap\" brandbackground [palette]=\"'accent'\" *ngIf=\"show\">\n <h3>Our roadmap</h3>\n <div class=\"feature\">\n <span class=\"icon ph-check-circle-fill\"></span> More Enterprise Features (MFA, SSO, potentially custom domains) (Q1)\n </div>\n <div class=\"feature\">\n <span class=\"icon ph-check-circle-fill\"></span> Introduce Lightweight Partner\u00A0Program (Q1-2)\n </div>\n <div class=\"feature\">\n <span class=\"icon ph-circle\"></span> Add basic API for select Enterprise users (Q3)\n </div>\n <div class=\"feature\">\n <span class=\"icon ph-circle\"></span> Evolve Feedback To Support Action\u00A0Learning (in progress, Q2-4)\n </div>\n <div class=\"feature\">\n <span class=\"icon ph-circle\"></span> Transition Teamwork Model Out Of\u00A0Beta (Q4)\n </div>\n <div class=\"feature\">\n <span class=\"icon ph-circle\"></span> Expand with non-survey measures (Q1-2, 2025)\n </div>\n</div>\n", styles: [".smallTextUppercase{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%}.roadmap{padding:20px;position:relative}.roadmap .close{position:absolute;top:15px;right:15px;font-size:30px;cursor:pointer}.roadmap .feature{display:flex;align-items:center;align-content:center}.roadmap .feature .icon{margin-right:15px}.roadmap .toolbar{margin-top:30px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.BrandBackgroundDirective, selector: "[brandbackground]", inputs: ["palette"] }] }); }
|
|
21
21
|
}
|
|
22
22
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: RoadmapComponent, decorators: [{
|
|
23
23
|
type: Component,
|
|
24
|
-
args: [{ selector: 'roadmap', template: "<div class=\"roadmap\" brandbackground [palette]=\"'accent'\" *ngIf=\"show\">\n <h3>Our roadmap</h3>\n <div class=\"feature\">\n <span class=\"icon ph-check-circle-fill\"></span>
|
|
24
|
+
args: [{ selector: 'roadmap', template: "<div class=\"roadmap\" brandbackground [palette]=\"'accent'\" *ngIf=\"show\">\n <h3>Our roadmap</h3>\n <div class=\"feature\">\n <span class=\"icon ph-check-circle-fill\"></span> More Enterprise Features (MFA, SSO, potentially custom domains) (Q1)\n </div>\n <div class=\"feature\">\n <span class=\"icon ph-check-circle-fill\"></span> Introduce Lightweight Partner\u00A0Program (Q1-2)\n </div>\n <div class=\"feature\">\n <span class=\"icon ph-circle\"></span> Add basic API for select Enterprise users (Q3)\n </div>\n <div class=\"feature\">\n <span class=\"icon ph-circle\"></span> Evolve Feedback To Support Action\u00A0Learning (in progress, Q2-4)\n </div>\n <div class=\"feature\">\n <span class=\"icon ph-circle\"></span> Transition Teamwork Model Out Of\u00A0Beta (Q4)\n </div>\n <div class=\"feature\">\n <span class=\"icon ph-circle\"></span> Expand with non-survey measures (Q1-2, 2025)\n </div>\n</div>\n", styles: [".smallTextUppercase{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%}.roadmap{padding:20px;position:relative}.roadmap .close{position:absolute;top:15px;right:15px;font-size:30px;cursor:pointer}.roadmap .feature{display:flex;align-items:center;align-content:center}.roadmap .feature .icon{margin-right:15px}.roadmap .toolbar{margin-top:30px}\n"] }]
|
|
25
25
|
}], ctorParameters: () => [{ type: i4.ViewModelStateBase, decorators: [{
|
|
26
26
|
type: Inject,
|
|
27
27
|
args: [VIEWSTATE_PROVIDER]
|
|
28
28
|
}] }, { type: i1.MatSnackBar }] });
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9hZG1hcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2NydW10ZWFtc3VydmV5LXRvb2xzL3NyYy9saWIvcmVzdWx0cy9jb21wb25lbnRzL3JvYWRtYXAvcm9hZG1hcC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2NydW10ZWFtc3VydmV5LXRvb2xzL3NyYy9saWIvcmVzdWx0cy9jb21wb25lbnRzL3JvYWRtYXAvcm9hZG1hcC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUVqRixPQUFPLEVBQUUsa0JBQWtCLEVBQXNCLE1BQU0sMkNBQTJDLENBQUM7Ozs7OztBQVFuRyxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsMEJBQXlDO0lBSTVFLFlBQWdELEtBQXdDLEVBQVksUUFBcUI7UUFDdEgsS0FBSyxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQTtRQUR1QixVQUFLLEdBQUwsS0FBSyxDQUFtQztRQUFZLGFBQVEsR0FBUixRQUFRLENBQWE7SUFFekgsQ0FBQztJQUVTLFlBQVksQ0FBQyxJQUFtQjtRQUN2QyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQztJQUNoRCxDQUFDO0lBQUEsQ0FBQzs4R0FWUSxnQkFBZ0Isa0JBSU4sa0JBQWtCO2tHQUo1QixnQkFBZ0Isc0VDWDdCLDY4QkFxQkE7OzJGRFZhLGdCQUFnQjtrQkFMNUIsU0FBUzsrQkFDRyxTQUFTOzswQkFRTixNQUFNOzJCQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21wb25lbnRXaXRoVmlld1N0YXRlQmFzZSB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudFdpdGhWaWV3U3RhdGVCYXNlJztcbmltcG9ydCB7IElSZXN1bHRzU3RhdGUgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL0lSZXN1bHRzU3RhdGUnO1xuaW1wb3J0IHsgVklFV1NUQVRFX1BST1ZJREVSLCBWaWV3TW9kZWxTdGF0ZUJhc2UgfSBmcm9tICcuLi8uLi8uLi92aWV3TW9kZWwvdmlld01vZGVsU3RhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBNYXRTbmFja0JhciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhcic7XG5cbkBDb21wb25lbnQoe1xuICAgc2VsZWN0b3I6ICdyb2FkbWFwJyxcbiAgIHRlbXBsYXRlVXJsOiAnLi9yb2FkbWFwLmNvbXBvbmVudC5odG1sJyxcbiAgIHN0eWxlVXJsczogWycuL3JvYWRtYXAuY29tcG9uZW50Lmxlc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBSb2FkbWFwQ29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50V2l0aFZpZXdTdGF0ZUJhc2U8SVJlc3VsdHNTdGF0ZT4ge1xuICAgcHVibGljIHNob3c6IGJvb2xlYW47XG4gICBwdWJsaWMgc3Vic2NyaWJlVXJsOiBzdHJpbmc7XG5cbiAgIGNvbnN0cnVjdG9yKEBJbmplY3QoVklFV1NUQVRFX1BST1ZJREVSKSBwcml2YXRlIHN0YXRlOiBWaWV3TW9kZWxTdGF0ZUJhc2U8SVJlc3VsdHNTdGF0ZT4sIHByb3RlY3RlZCBzbmFja0JhcjogTWF0U25hY2tCYXIpIHtcbiAgICAgIHN1cGVyKHN0YXRlLCBzbmFja0JhcilcbiAgIH1cblxuICAgcHJvdGVjdGVkIG9uRGF0YVVwZGF0ZShkYXRhOiBJUmVzdWx0c1N0YXRlKTogdm9pZCB7XG4gICAgICB0aGlzLnNob3cgPSBkYXRhLnVzZXJJbmZvLmJyYW5kaW5nLmlzRGVmYXVsdDtcbiAgIH07XG59XG4iLCI8ZGl2IGNsYXNzPVwicm9hZG1hcFwiIGJyYW5kYmFja2dyb3VuZCBbcGFsZXR0ZV09XCInYWNjZW50J1wiICpuZ0lmPVwic2hvd1wiPlxuICAgPGgzPk91ciByb2FkbWFwPC9oMz5cbiAgIDxkaXYgY2xhc3M9XCJmZWF0dXJlXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cImljb24gcGgtY2hlY2stY2lyY2xlLWZpbGxcIj48L3NwYW4+IE1vcmUgRW50ZXJwcmlzZSBGZWF0dXJlcyAoTUZBLCBTU08sIHBvdGVudGlhbGx5IGN1c3RvbSBkb21haW5zKSAoUTEpXG4gICA8L2Rpdj5cbiAgIDxkaXYgY2xhc3M9XCJmZWF0dXJlXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cImljb24gcGgtY2hlY2stY2lyY2xlLWZpbGxcIj48L3NwYW4+IEludHJvZHVjZSBMaWdodHdlaWdodCBQYXJ0bmVywqBQcm9ncmFtIChRMS0yKVxuICAgPC9kaXY+XG4gICA8ZGl2IGNsYXNzPVwiZmVhdHVyZVwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJpY29uIHBoLWNpcmNsZVwiPjwvc3Bhbj4gQWRkIGJhc2ljIEFQSSBmb3Igc2VsZWN0IEVudGVycHJpc2UgdXNlcnMgKFEzKVxuICAgPC9kaXY+XG4gICA8ZGl2IGNsYXNzPVwiZmVhdHVyZVwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJpY29uIHBoLWNpcmNsZVwiPjwvc3Bhbj4gRXZvbHZlIEZlZWRiYWNrIFRvIFN1cHBvcnQgQWN0aW9uwqBMZWFybmluZyAoaW4gcHJvZ3Jlc3MsIFEyLTQpXG4gICA8L2Rpdj5cbiAgIDxkaXYgY2xhc3M9XCJmZWF0dXJlXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cImljb24gcGgtY2lyY2xlXCI+PC9zcGFuPiBUcmFuc2l0aW9uIFRlYW13b3JrIE1vZGVsIE91dCBPZsKgQmV0YSAoUTQpXG4gICA8L2Rpdj5cbiAgIDxkaXYgY2xhc3M9XCJmZWF0dXJlXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cImljb24gcGgtY2lyY2xlXCI+PC9zcGFuPiBFeHBhbmQgd2l0aCBub24tc3VydmV5IG1lYXN1cmVzIChRMS0yLCAyMDI1KVxuICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -3311,13 +3311,13 @@ class ScaleSelectorComponent {
|
|
|
3311
3311
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ScaleSelectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3312
3312
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.1", type: ScaleSelectorComponent, selector: "scale-selector", inputs: { scales: "scales", filter: "filter", disabled: "disabled", scaleKeys: "scaleKeys" }, outputs: { onCheckChange: "onCheckChange" }, providers: [
|
|
3313
3313
|
{ provide: NG_VALUE_ACCESSOR, multi: true, useExisting: forwardRef(() => ScaleSelectorComponent), }
|
|
3314
|
-
], ngImport: i0, template: "<div class=\"scaleselector-container\">\n <div class=\"scaleselector-dropdown\">\n <mat-form-field appearance=\"fill\">\n <mat-label>Select topics</mat-label>\n <mat-select id=\"question-scaleKeys\" [(ngModel)]=\"scaleKeys\" required multiple disableRipple [disabled]=\"disabled\">\n <mat-select-trigger>\n You selected {{scaleKeys.length}} topic(s)\n </mat-select-trigger>\n\n @for (factor of topScales; track factor) {\n <mat-option class=\"select-option lower-0\" [value]=\"factor.publicKey\" (click)=\"toggleChildren(factor)\">\n {{factor.name}} ({{factor.questionCount}} questions)\n <span *ngFor=\"let segment of factor.segments | callback: filterSegmentWithQuestions\" class=\"segment\" [ngClass]=\"{'segment-teammember': segment.segment == SegmentEnum.TeamMember, 'segment-stakeholder': segment.segment == SegmentEnum.Stakeholder, 'segment-supporter': segment.segment == SegmentEnum.Management}\">{{segment.segment | segmentName}}</span>\n <span class=\"icon ph-info-fill\" factorInformationDialog [factor]=\"factor\"></span>\n </mat-option>\n\n @for (lowerFactor of getChildFactors(factor.publicKey); track lowerFactor) {\n <mat-option class=\"select-option lower-1\" [value]=\"lowerFactor.publicKey\" (click)=\"toggleParent(lowerFactor)\">\n {{lowerFactor.name}} ({{lowerFactor.questionCount}} questions)\n <span *ngFor=\"let segment of lowerFactor.segments | callback: filterSegmentWithQuestions\" class=\"segment\" [ngClass]=\"{'segment-teammember': segment.segment == SegmentEnum.TeamMember, 'segment-stakeholder': segment.segment == SegmentEnum.Stakeholder, 'segment-supporter': segment.segment == SegmentEnum.Management}\">{{segment.segment | segmentName}}</span>\n <span class=\"icon ph-info-fill\" factorInformationDialog [factor]=\"lowerFactor\"></span>\n </mat-option>\n }\n }\n </mat-select>\n </mat-form-field>\n </div>\n <div class=\"scaleselector-metadata\">\n <div class=\"questionnaire-breakdown\" *ngIf=\"questionsTotal > 0\">\n <div class=\"questionnaire-breakdown-label\">Expected duration (in minutes)</div>\n <div class=\"questionnaire-breakdown-items\">\n <div class=\"questionnaire-breakdown-item teammembers\" *ngIf=\"questionsTeamMembers > 0\" [matTooltip]=\"'At least ' + questionsTeamMembers + ' questions for team members. Additional questions may be added, and are typically answered once per team.'\" [ngStyle]=\"{'width': ((questionsTeamMembers / questionsTotal) * 100) + '%' }\">\n {{durationTeamMembers | number:'1.0-0'}}m\n </div>\n <div class=\"questionnaire-breakdown-item stakeholders\" *ngIf=\"questionsStakeholders > 0\" [matTooltip]=\"'At least ' + questionsStakeholders + ' questions for team members. Additional questions may be added, and are typically answered once per team.'\" [ngStyle]=\"{'width': ((questionsStakeholders / questionsTotal) * 100) + '%' }\">\n {{durationStakeholders | number:'1.0-0'}}m\n </div>\n <div class=\"questionnaire-breakdown-item supporters\" *ngIf=\"questionsSupporters > 0\" [matTooltip]=\"'At least ' + questionsSupporters + ' questions for team members. Additional questions may be added, and are typically answered once per team.'\" [ngStyle]=\"{'width': ((questionsSupporters / questionsTotal) * 100) + '%' }\">\n {{durationSupporters | number:'1.0-0'}}m\n </div>\n </div>\n </div>\n <div class=\"questionnaire-accuracy\" *ngIf=\"questionsTotal > 0\">\n <div class=\"questionnaire-breakdown-label\">Accuracy</div>\n <div class=\"questionnaire-breakdown-bar-holder\">\n <div class=\"questionnaire-accuracy-bar\" [ngClass]=\"{'low': questionnaireAccuracy < 0.25}\" [ngStyle]=\"{'width': (questionnaireAccuracy * 100) + '%' }\">{{questionnaireAccuracy * 100 | number:'1.0-0'}}%</div>\n </div>\n </div>\n </div>\n\n <div class=\"scaleselector-warnings\" *ngIf=\"warnings.length > 0 && scaleKeys.length > 0\">\n <div class=\"scaleselector-warnings-warning\" *ngFor=\"let warning of warnings\">\n <span class=\"icon ph-info-fill\"></span>{{warning}}\n </div>\n </div>\n\n</div>\n", 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%}.scaleselector-container .scaleselector-dropdown{flex:auto}.scaleselector-container .scaleselector-dropdown .mat-mdc-form-field{width:100%}.scaleselector-container .scaleselector-metadata{display:flex;column-gap:30px}@media only screen and (max-width: 992px){.scaleselector-container .scaleselector-metadata{display:block}}.scaleselector-container .scaleselector-metadata .questionnaire-breakdown{flex:50%}.scaleselector-container .scaleselector-metadata .questionnaire-breakdown .questionnaire-breakdown-label{font-size:12px;font-weight:900;text-transform:uppercase;font-family:StevieSans,sans-serif}.scaleselector-container .scaleselector-metadata .questionnaire-breakdown .questionnaire-breakdown-label .icon{color:#ef6f00;font-size:18px;vertical-align:middle;cursor:pointer}.scaleselector-container .scaleselector-metadata .questionnaire-breakdown .questionnaire-breakdown-items{display:flex;width:100%;height:20px;border-radius:15px;overflow:hidden;margin-bottom:15px}.scaleselector-container .scaleselector-metadata .questionnaire-breakdown .questionnaire-breakdown-item{flex:auto;min-width:50px;font-size:12px;font-weight:900;font-family:StevieSans,sans-serif;align-content:center;text-align:center}.scaleselector-container .scaleselector-metadata .questionnaire-breakdown .questionnaire-breakdown-item.teammembers{color:#fff;background:#1f3f8f}.scaleselector-container .scaleselector-metadata .questionnaire-breakdown .questionnaire-breakdown-item.stakeholders{background:#fff73f}.scaleselector-container .scaleselector-metadata .questionnaire-breakdown .questionnaire-breakdown-item.supporters{background:#ffbf00}.scaleselector-container .scaleselector-metadata .questionnaire-accuracy{flex:50%}.scaleselector-container .scaleselector-metadata .questionnaire-accuracy .questionnaire-breakdown-label{font-size:12px;font-weight:900;text-transform:uppercase;font-family:StevieSans,sans-serif}.scaleselector-container .scaleselector-metadata .questionnaire-accuracy .questionnaire-breakdown-bar-holder{margin-bottom:15px;background:#2f2f2f;height:20px;border-radius:15px;overflow:hidden}.scaleselector-container .scaleselector-metadata .questionnaire-accuracy .questionnaire-breakdown-bar-holder .questionnaire-accuracy-bar{flex:auto;min-width:50px;font-size:12px;font-weight:900;text-transform:uppercase;font-family:StevieSans,sans-serif;background:#00af77;height:100%;align-content:center;text-align:center}.scaleselector-container .scaleselector-metadata .questionnaire-accuracy .questionnaire-breakdown-bar-holder .questionnaire-accuracy-bar.low{background:#ffbf00}.scaleselector-container .scaleselector-warnings{margin-bottom:15px}.scaleselector-container .scaleselector-warnings .scaleselector-warnings-warning{display:flex;align-items:center;font-size:12pt}.scaleselector-container .scaleselector-warnings .scaleselector-warnings-warning .icon{color:#1f3f8f;font-size:16px;cursor:pointer;margin-right:10px}.mat-mdc-option.lower-1{margin-left:20px}.mat-mdc-option .segment{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%;padding:2px 4px;border-radius:4px;font-weight:600;font-size:10pt;margin-right:10px}.mat-mdc-option .segment.segment-stakeholder{background:#fff73f}.mat-mdc-option .segment.segment-teammember{background:#1f3f8f;color:#fff}.mat-mdc-option .segment.segment-supporter,.mat-mdc-option .segment.segment-management{background:#ffbf00}.mat-mdc-option .icon{vertical-align:middle;font-size:22px;color:#2f2f2f!important}\n"], dependencies: [{ kind: "directive", type: i4$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { 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: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i4.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "directive", type: i4.MatSelectTrigger, selector: "mat-select-trigger" }, { kind: "component", type: i5$1.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: OpenFactorInformationDialogDirective, selector: "[factorInformationDialog]", inputs: ["factor"] }, { kind: "pipe", type: i1$1.DecimalPipe, name: "number" }, { kind: "pipe", type: SegmentNamePipe, name: "segmentName" }, { kind: "pipe", type: CallbackPipe, name: "callback" }] }); }
|
|
3314
|
+
], ngImport: i0, template: "<div class=\"scaleselector-container\">\n <div class=\"scaleselector-dropdown\">\n <mat-form-field appearance=\"fill\">\n <mat-label>Select topics</mat-label>\n <mat-select id=\"question-scaleKeys\" [(ngModel)]=\"scaleKeys\" required multiple disableRipple [disabled]=\"disabled\">\n <mat-select-trigger>\n You selected {{scaleKeys.length}} topic(s)\n </mat-select-trigger>\n\n @for (factor of topScales; track factor) {\n <mat-option class=\"select-option lower-0\" [value]=\"factor.publicKey\" (click)=\"toggleChildren(factor)\">\n {{factor.name}} ({{factor.questionCount}} questions)\n <span *ngFor=\"let segment of factor.segments | callback: filterSegmentWithQuestions\" class=\"segment\" [ngClass]=\"{'segment-teammember': segment.segment == SegmentEnum.TeamMember, 'segment-stakeholder': segment.segment == SegmentEnum.Stakeholder, 'segment-supporter': segment.segment == SegmentEnum.Management}\">{{segment.segment | segmentName}}</span>\n <span class=\"icon ph-info-fill\" factorInformationDialog [factor]=\"factor\"></span>\n </mat-option>\n\n @for (lowerFactor of getChildFactors(factor.publicKey); track lowerFactor) {\n <mat-option class=\"select-option lower-1\" [value]=\"lowerFactor.publicKey\" (click)=\"toggleParent(lowerFactor)\">\n {{lowerFactor.name}} ({{lowerFactor.questionCount}} questions)\n <span *ngFor=\"let segment of lowerFactor.segments | callback: filterSegmentWithQuestions\" class=\"segment\" [ngClass]=\"{'segment-teammember': segment.segment == SegmentEnum.TeamMember, 'segment-stakeholder': segment.segment == SegmentEnum.Stakeholder, 'segment-supporter': segment.segment == SegmentEnum.Management}\">{{segment.segment | segmentName}}</span>\n <span class=\"icon ph-info-fill\" factorInformationDialog [factor]=\"lowerFactor\"></span>\n </mat-option>\n }\n }\n </mat-select>\n </mat-form-field>\n </div>\n <div class=\"scaleselector-metadata\">\n <div class=\"questionnaire-breakdown\" *ngIf=\"questionsTotal > 0\">\n <div class=\"questionnaire-breakdown-label\">Expected duration (in minutes)</div>\n <div class=\"questionnaire-breakdown-items\">\n <div class=\"questionnaire-breakdown-item teammembers\" *ngIf=\"questionsTeamMembers > 0\" [matTooltip]=\"'At least ' + questionsTeamMembers + ' questions for team members. Additional questions may be added, and are typically answered once per team.'\" [ngStyle]=\"{'width': ((questionsTeamMembers / questionsTotal) * 100) + '%' }\">\n {{durationTeamMembers | number:'1.0-0'}}m\n </div>\n <div class=\"questionnaire-breakdown-item stakeholders\" *ngIf=\"questionsStakeholders > 0\" [matTooltip]=\"'At least ' + questionsStakeholders + ' questions for stakeholders. Additional questions may be added, and are typically answered once per team.'\" [ngStyle]=\"{'width': ((questionsStakeholders / questionsTotal) * 100) + '%' }\">\n {{durationStakeholders | number:'1.0-0'}}m\n </div>\n <div class=\"questionnaire-breakdown-item supporters\" *ngIf=\"questionsSupporters > 0\" [matTooltip]=\"'At least ' + questionsSupporters + ' questions for supporters. Additional questions may be added, and are typically answered once per team.'\" [ngStyle]=\"{'width': ((questionsSupporters / questionsTotal) * 100) + '%' }\">\n {{durationSupporters | number:'1.0-0'}}m\n </div>\n </div>\n </div>\n <div class=\"questionnaire-accuracy\" *ngIf=\"questionsTotal > 0\">\n <div class=\"questionnaire-breakdown-label\">Accuracy</div>\n <div class=\"questionnaire-breakdown-bar-holder\">\n <div class=\"questionnaire-accuracy-bar\" [ngClass]=\"{'low': questionnaireAccuracy < 0.25}\" [ngStyle]=\"{'width': (questionnaireAccuracy * 100) + '%' }\">{{questionnaireAccuracy * 100 | number:'1.0-0'}}%</div>\n </div>\n </div>\n </div>\n\n <div class=\"scaleselector-warnings\" *ngIf=\"warnings.length > 0 && scaleKeys.length > 0\">\n <div class=\"scaleselector-warnings-warning\" *ngFor=\"let warning of warnings\">\n <span class=\"icon ph-info-fill\"></span>{{warning}}\n </div>\n </div>\n\n</div>\n", 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%}.scaleselector-container .scaleselector-dropdown{flex:auto}.scaleselector-container .scaleselector-dropdown .mat-mdc-form-field{width:100%}.scaleselector-container .scaleselector-metadata{display:flex;column-gap:30px}@media only screen and (max-width: 992px){.scaleselector-container .scaleselector-metadata{display:block}}.scaleselector-container .scaleselector-metadata .questionnaire-breakdown{flex:50%}.scaleselector-container .scaleselector-metadata .questionnaire-breakdown .questionnaire-breakdown-label{font-size:12px;font-weight:900;text-transform:uppercase;font-family:StevieSans,sans-serif}.scaleselector-container .scaleselector-metadata .questionnaire-breakdown .questionnaire-breakdown-label .icon{color:#ef6f00;font-size:18px;vertical-align:middle;cursor:pointer}.scaleselector-container .scaleselector-metadata .questionnaire-breakdown .questionnaire-breakdown-items{display:flex;width:100%;height:20px;border-radius:15px;overflow:hidden;margin-bottom:15px}.scaleselector-container .scaleselector-metadata .questionnaire-breakdown .questionnaire-breakdown-item{flex:auto;min-width:50px;font-size:12px;font-weight:900;font-family:StevieSans,sans-serif;align-content:center;text-align:center}.scaleselector-container .scaleselector-metadata .questionnaire-breakdown .questionnaire-breakdown-item.teammembers{color:#fff;background:#1f3f8f}.scaleselector-container .scaleselector-metadata .questionnaire-breakdown .questionnaire-breakdown-item.stakeholders{background:#fff73f}.scaleselector-container .scaleselector-metadata .questionnaire-breakdown .questionnaire-breakdown-item.supporters{background:#ffbf00}.scaleselector-container .scaleselector-metadata .questionnaire-accuracy{flex:50%}.scaleselector-container .scaleselector-metadata .questionnaire-accuracy .questionnaire-breakdown-label{font-size:12px;font-weight:900;text-transform:uppercase;font-family:StevieSans,sans-serif}.scaleselector-container .scaleselector-metadata .questionnaire-accuracy .questionnaire-breakdown-bar-holder{margin-bottom:15px;background:#2f2f2f;height:20px;border-radius:15px;overflow:hidden}.scaleselector-container .scaleselector-metadata .questionnaire-accuracy .questionnaire-breakdown-bar-holder .questionnaire-accuracy-bar{flex:auto;min-width:50px;font-size:12px;font-weight:900;text-transform:uppercase;font-family:StevieSans,sans-serif;background:#00af77;height:100%;align-content:center;text-align:center}.scaleselector-container .scaleselector-metadata .questionnaire-accuracy .questionnaire-breakdown-bar-holder .questionnaire-accuracy-bar.low{background:#ffbf00}.scaleselector-container .scaleselector-warnings{margin-bottom:15px}.scaleselector-container .scaleselector-warnings .scaleselector-warnings-warning{display:flex;align-items:center;font-size:12pt}.scaleselector-container .scaleselector-warnings .scaleselector-warnings-warning .icon{color:#1f3f8f;font-size:16px;cursor:pointer;margin-right:10px}.mat-mdc-option.lower-1{margin-left:20px}.mat-mdc-option .segment{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%;padding:2px 4px;border-radius:4px;font-weight:600;font-size:10pt;margin-right:10px}.mat-mdc-option .segment.segment-stakeholder{background:#fff73f}.mat-mdc-option .segment.segment-teammember{background:#1f3f8f;color:#fff}.mat-mdc-option .segment.segment-supporter,.mat-mdc-option .segment.segment-management{background:#ffbf00}.mat-mdc-option .icon{vertical-align:middle;font-size:22px;color:#2f2f2f!important}\n"], dependencies: [{ kind: "directive", type: i4$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { 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: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i4.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "directive", type: i4.MatSelectTrigger, selector: "mat-select-trigger" }, { kind: "component", type: i5$1.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: OpenFactorInformationDialogDirective, selector: "[factorInformationDialog]", inputs: ["factor"] }, { kind: "pipe", type: i1$1.DecimalPipe, name: "number" }, { kind: "pipe", type: SegmentNamePipe, name: "segmentName" }, { kind: "pipe", type: CallbackPipe, name: "callback" }] }); }
|
|
3315
3315
|
}
|
|
3316
3316
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ScaleSelectorComponent, decorators: [{
|
|
3317
3317
|
type: Component,
|
|
3318
3318
|
args: [{ selector: 'scale-selector', providers: [
|
|
3319
3319
|
{ provide: NG_VALUE_ACCESSOR, multi: true, useExisting: forwardRef(() => ScaleSelectorComponent), }
|
|
3320
|
-
], template: "<div class=\"scaleselector-container\">\n <div class=\"scaleselector-dropdown\">\n <mat-form-field appearance=\"fill\">\n <mat-label>Select topics</mat-label>\n <mat-select id=\"question-scaleKeys\" [(ngModel)]=\"scaleKeys\" required multiple disableRipple [disabled]=\"disabled\">\n <mat-select-trigger>\n You selected {{scaleKeys.length}} topic(s)\n </mat-select-trigger>\n\n @for (factor of topScales; track factor) {\n <mat-option class=\"select-option lower-0\" [value]=\"factor.publicKey\" (click)=\"toggleChildren(factor)\">\n {{factor.name}} ({{factor.questionCount}} questions)\n <span *ngFor=\"let segment of factor.segments | callback: filterSegmentWithQuestions\" class=\"segment\" [ngClass]=\"{'segment-teammember': segment.segment == SegmentEnum.TeamMember, 'segment-stakeholder': segment.segment == SegmentEnum.Stakeholder, 'segment-supporter': segment.segment == SegmentEnum.Management}\">{{segment.segment | segmentName}}</span>\n <span class=\"icon ph-info-fill\" factorInformationDialog [factor]=\"factor\"></span>\n </mat-option>\n\n @for (lowerFactor of getChildFactors(factor.publicKey); track lowerFactor) {\n <mat-option class=\"select-option lower-1\" [value]=\"lowerFactor.publicKey\" (click)=\"toggleParent(lowerFactor)\">\n {{lowerFactor.name}} ({{lowerFactor.questionCount}} questions)\n <span *ngFor=\"let segment of lowerFactor.segments | callback: filterSegmentWithQuestions\" class=\"segment\" [ngClass]=\"{'segment-teammember': segment.segment == SegmentEnum.TeamMember, 'segment-stakeholder': segment.segment == SegmentEnum.Stakeholder, 'segment-supporter': segment.segment == SegmentEnum.Management}\">{{segment.segment | segmentName}}</span>\n <span class=\"icon ph-info-fill\" factorInformationDialog [factor]=\"lowerFactor\"></span>\n </mat-option>\n }\n }\n </mat-select>\n </mat-form-field>\n </div>\n <div class=\"scaleselector-metadata\">\n <div class=\"questionnaire-breakdown\" *ngIf=\"questionsTotal > 0\">\n <div class=\"questionnaire-breakdown-label\">Expected duration (in minutes)</div>\n <div class=\"questionnaire-breakdown-items\">\n <div class=\"questionnaire-breakdown-item teammembers\" *ngIf=\"questionsTeamMembers > 0\" [matTooltip]=\"'At least ' + questionsTeamMembers + ' questions for team members. Additional questions may be added, and are typically answered once per team.'\" [ngStyle]=\"{'width': ((questionsTeamMembers / questionsTotal) * 100) + '%' }\">\n {{durationTeamMembers | number:'1.0-0'}}m\n </div>\n <div class=\"questionnaire-breakdown-item stakeholders\" *ngIf=\"questionsStakeholders > 0\" [matTooltip]=\"'At least ' + questionsStakeholders + ' questions for
|
|
3320
|
+
], template: "<div class=\"scaleselector-container\">\n <div class=\"scaleselector-dropdown\">\n <mat-form-field appearance=\"fill\">\n <mat-label>Select topics</mat-label>\n <mat-select id=\"question-scaleKeys\" [(ngModel)]=\"scaleKeys\" required multiple disableRipple [disabled]=\"disabled\">\n <mat-select-trigger>\n You selected {{scaleKeys.length}} topic(s)\n </mat-select-trigger>\n\n @for (factor of topScales; track factor) {\n <mat-option class=\"select-option lower-0\" [value]=\"factor.publicKey\" (click)=\"toggleChildren(factor)\">\n {{factor.name}} ({{factor.questionCount}} questions)\n <span *ngFor=\"let segment of factor.segments | callback: filterSegmentWithQuestions\" class=\"segment\" [ngClass]=\"{'segment-teammember': segment.segment == SegmentEnum.TeamMember, 'segment-stakeholder': segment.segment == SegmentEnum.Stakeholder, 'segment-supporter': segment.segment == SegmentEnum.Management}\">{{segment.segment | segmentName}}</span>\n <span class=\"icon ph-info-fill\" factorInformationDialog [factor]=\"factor\"></span>\n </mat-option>\n\n @for (lowerFactor of getChildFactors(factor.publicKey); track lowerFactor) {\n <mat-option class=\"select-option lower-1\" [value]=\"lowerFactor.publicKey\" (click)=\"toggleParent(lowerFactor)\">\n {{lowerFactor.name}} ({{lowerFactor.questionCount}} questions)\n <span *ngFor=\"let segment of lowerFactor.segments | callback: filterSegmentWithQuestions\" class=\"segment\" [ngClass]=\"{'segment-teammember': segment.segment == SegmentEnum.TeamMember, 'segment-stakeholder': segment.segment == SegmentEnum.Stakeholder, 'segment-supporter': segment.segment == SegmentEnum.Management}\">{{segment.segment | segmentName}}</span>\n <span class=\"icon ph-info-fill\" factorInformationDialog [factor]=\"lowerFactor\"></span>\n </mat-option>\n }\n }\n </mat-select>\n </mat-form-field>\n </div>\n <div class=\"scaleselector-metadata\">\n <div class=\"questionnaire-breakdown\" *ngIf=\"questionsTotal > 0\">\n <div class=\"questionnaire-breakdown-label\">Expected duration (in minutes)</div>\n <div class=\"questionnaire-breakdown-items\">\n <div class=\"questionnaire-breakdown-item teammembers\" *ngIf=\"questionsTeamMembers > 0\" [matTooltip]=\"'At least ' + questionsTeamMembers + ' questions for team members. Additional questions may be added, and are typically answered once per team.'\" [ngStyle]=\"{'width': ((questionsTeamMembers / questionsTotal) * 100) + '%' }\">\n {{durationTeamMembers | number:'1.0-0'}}m\n </div>\n <div class=\"questionnaire-breakdown-item stakeholders\" *ngIf=\"questionsStakeholders > 0\" [matTooltip]=\"'At least ' + questionsStakeholders + ' questions for stakeholders. Additional questions may be added, and are typically answered once per team.'\" [ngStyle]=\"{'width': ((questionsStakeholders / questionsTotal) * 100) + '%' }\">\n {{durationStakeholders | number:'1.0-0'}}m\n </div>\n <div class=\"questionnaire-breakdown-item supporters\" *ngIf=\"questionsSupporters > 0\" [matTooltip]=\"'At least ' + questionsSupporters + ' questions for supporters. Additional questions may be added, and are typically answered once per team.'\" [ngStyle]=\"{'width': ((questionsSupporters / questionsTotal) * 100) + '%' }\">\n {{durationSupporters | number:'1.0-0'}}m\n </div>\n </div>\n </div>\n <div class=\"questionnaire-accuracy\" *ngIf=\"questionsTotal > 0\">\n <div class=\"questionnaire-breakdown-label\">Accuracy</div>\n <div class=\"questionnaire-breakdown-bar-holder\">\n <div class=\"questionnaire-accuracy-bar\" [ngClass]=\"{'low': questionnaireAccuracy < 0.25}\" [ngStyle]=\"{'width': (questionnaireAccuracy * 100) + '%' }\">{{questionnaireAccuracy * 100 | number:'1.0-0'}}%</div>\n </div>\n </div>\n </div>\n\n <div class=\"scaleselector-warnings\" *ngIf=\"warnings.length > 0 && scaleKeys.length > 0\">\n <div class=\"scaleselector-warnings-warning\" *ngFor=\"let warning of warnings\">\n <span class=\"icon ph-info-fill\"></span>{{warning}}\n </div>\n </div>\n\n</div>\n", 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%}.scaleselector-container .scaleselector-dropdown{flex:auto}.scaleselector-container .scaleselector-dropdown .mat-mdc-form-field{width:100%}.scaleselector-container .scaleselector-metadata{display:flex;column-gap:30px}@media only screen and (max-width: 992px){.scaleselector-container .scaleselector-metadata{display:block}}.scaleselector-container .scaleselector-metadata .questionnaire-breakdown{flex:50%}.scaleselector-container .scaleselector-metadata .questionnaire-breakdown .questionnaire-breakdown-label{font-size:12px;font-weight:900;text-transform:uppercase;font-family:StevieSans,sans-serif}.scaleselector-container .scaleselector-metadata .questionnaire-breakdown .questionnaire-breakdown-label .icon{color:#ef6f00;font-size:18px;vertical-align:middle;cursor:pointer}.scaleselector-container .scaleselector-metadata .questionnaire-breakdown .questionnaire-breakdown-items{display:flex;width:100%;height:20px;border-radius:15px;overflow:hidden;margin-bottom:15px}.scaleselector-container .scaleselector-metadata .questionnaire-breakdown .questionnaire-breakdown-item{flex:auto;min-width:50px;font-size:12px;font-weight:900;font-family:StevieSans,sans-serif;align-content:center;text-align:center}.scaleselector-container .scaleselector-metadata .questionnaire-breakdown .questionnaire-breakdown-item.teammembers{color:#fff;background:#1f3f8f}.scaleselector-container .scaleselector-metadata .questionnaire-breakdown .questionnaire-breakdown-item.stakeholders{background:#fff73f}.scaleselector-container .scaleselector-metadata .questionnaire-breakdown .questionnaire-breakdown-item.supporters{background:#ffbf00}.scaleselector-container .scaleselector-metadata .questionnaire-accuracy{flex:50%}.scaleselector-container .scaleselector-metadata .questionnaire-accuracy .questionnaire-breakdown-label{font-size:12px;font-weight:900;text-transform:uppercase;font-family:StevieSans,sans-serif}.scaleselector-container .scaleselector-metadata .questionnaire-accuracy .questionnaire-breakdown-bar-holder{margin-bottom:15px;background:#2f2f2f;height:20px;border-radius:15px;overflow:hidden}.scaleselector-container .scaleselector-metadata .questionnaire-accuracy .questionnaire-breakdown-bar-holder .questionnaire-accuracy-bar{flex:auto;min-width:50px;font-size:12px;font-weight:900;text-transform:uppercase;font-family:StevieSans,sans-serif;background:#00af77;height:100%;align-content:center;text-align:center}.scaleselector-container .scaleselector-metadata .questionnaire-accuracy .questionnaire-breakdown-bar-holder .questionnaire-accuracy-bar.low{background:#ffbf00}.scaleselector-container .scaleselector-warnings{margin-bottom:15px}.scaleselector-container .scaleselector-warnings .scaleselector-warnings-warning{display:flex;align-items:center;font-size:12pt}.scaleselector-container .scaleselector-warnings .scaleselector-warnings-warning .icon{color:#1f3f8f;font-size:16px;cursor:pointer;margin-right:10px}.mat-mdc-option.lower-1{margin-left:20px}.mat-mdc-option .segment{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%;padding:2px 4px;border-radius:4px;font-weight:600;font-size:10pt;margin-right:10px}.mat-mdc-option .segment.segment-stakeholder{background:#fff73f}.mat-mdc-option .segment.segment-teammember{background:#1f3f8f;color:#fff}.mat-mdc-option .segment.segment-supporter,.mat-mdc-option .segment.segment-management{background:#ffbf00}.mat-mdc-option .icon{vertical-align:middle;font-size:22px;color:#2f2f2f!important}\n"] }]
|
|
3321
3321
|
}], ctorParameters: () => [], propDecorators: { scales: [{
|
|
3322
3322
|
type: Input
|
|
3323
3323
|
}], filter: [{
|
|
@@ -6238,11 +6238,11 @@ class RoadmapComponent extends ComponentWithViewStateBase {
|
|
|
6238
6238
|
}
|
|
6239
6239
|
;
|
|
6240
6240
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: RoadmapComponent, deps: [{ token: VIEWSTATE_PROVIDER }, { token: i1.MatSnackBar }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6241
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: RoadmapComponent, selector: "roadmap", usesInheritance: true, ngImport: i0, template: "<div class=\"roadmap\" brandbackground [palette]=\"'accent'\" *ngIf=\"show\">\n <h3>Our roadmap</h3>\n <div class=\"feature\">\n <span class=\"icon ph-check-circle-fill\"></span>
|
|
6241
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: RoadmapComponent, selector: "roadmap", usesInheritance: true, ngImport: i0, template: "<div class=\"roadmap\" brandbackground [palette]=\"'accent'\" *ngIf=\"show\">\n <h3>Our roadmap</h3>\n <div class=\"feature\">\n <span class=\"icon ph-check-circle-fill\"></span> More Enterprise Features (MFA, SSO, potentially custom domains) (Q1)\n </div>\n <div class=\"feature\">\n <span class=\"icon ph-check-circle-fill\"></span> Introduce Lightweight Partner\u00A0Program (Q1-2)\n </div>\n <div class=\"feature\">\n <span class=\"icon ph-circle\"></span> Add basic API for select Enterprise users (Q3)\n </div>\n <div class=\"feature\">\n <span class=\"icon ph-circle\"></span> Evolve Feedback To Support Action\u00A0Learning (in progress, Q2-4)\n </div>\n <div class=\"feature\">\n <span class=\"icon ph-circle\"></span> Transition Teamwork Model Out Of\u00A0Beta (Q4)\n </div>\n <div class=\"feature\">\n <span class=\"icon ph-circle\"></span> Expand with non-survey measures (Q1-2, 2025)\n </div>\n</div>\n", styles: [".smallTextUppercase{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%}.roadmap{padding:20px;position:relative}.roadmap .close{position:absolute;top:15px;right:15px;font-size:30px;cursor:pointer}.roadmap .feature{display:flex;align-items:center;align-content:center}.roadmap .feature .icon{margin-right:15px}.roadmap .toolbar{margin-top:30px}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: BrandBackgroundDirective, selector: "[brandbackground]", inputs: ["palette"] }] }); }
|
|
6242
6242
|
}
|
|
6243
6243
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: RoadmapComponent, decorators: [{
|
|
6244
6244
|
type: Component,
|
|
6245
|
-
args: [{ selector: 'roadmap', template: "<div class=\"roadmap\" brandbackground [palette]=\"'accent'\" *ngIf=\"show\">\n <h3>Our roadmap</h3>\n <div class=\"feature\">\n <span class=\"icon ph-check-circle-fill\"></span>
|
|
6245
|
+
args: [{ selector: 'roadmap', template: "<div class=\"roadmap\" brandbackground [palette]=\"'accent'\" *ngIf=\"show\">\n <h3>Our roadmap</h3>\n <div class=\"feature\">\n <span class=\"icon ph-check-circle-fill\"></span> More Enterprise Features (MFA, SSO, potentially custom domains) (Q1)\n </div>\n <div class=\"feature\">\n <span class=\"icon ph-check-circle-fill\"></span> Introduce Lightweight Partner\u00A0Program (Q1-2)\n </div>\n <div class=\"feature\">\n <span class=\"icon ph-circle\"></span> Add basic API for select Enterprise users (Q3)\n </div>\n <div class=\"feature\">\n <span class=\"icon ph-circle\"></span> Evolve Feedback To Support Action\u00A0Learning (in progress, Q2-4)\n </div>\n <div class=\"feature\">\n <span class=\"icon ph-circle\"></span> Transition Teamwork Model Out Of\u00A0Beta (Q4)\n </div>\n <div class=\"feature\">\n <span class=\"icon ph-circle\"></span> Expand with non-survey measures (Q1-2, 2025)\n </div>\n</div>\n", styles: [".smallTextUppercase{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%}.roadmap{padding:20px;position:relative}.roadmap .close{position:absolute;top:15px;right:15px;font-size:30px;cursor:pointer}.roadmap .feature{display:flex;align-items:center;align-content:center}.roadmap .feature .icon{margin-right:15px}.roadmap .toolbar{margin-top:30px}\n"] }]
|
|
6246
6246
|
}], ctorParameters: () => [{ type: ViewModelStateBase, decorators: [{
|
|
6247
6247
|
type: Inject,
|
|
6248
6248
|
args: [VIEWSTATE_PROVIDER]
|