@the-liberators/ngx-scrumteamsurvey-tools 2.3.4 → 2.3.6
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/actions/actions.module.mjs +5 -5
- package/esm2022/lib/actions/components/action-list/action-list.component.mjs +4 -4
- package/esm2022/lib/actions/components/action-manage/action-manage.component.mjs +5 -5
- package/esm2022/lib/actions/components/action-tile/action-tile.component.mjs +4 -4
- package/esm2022/lib/actions/dialogs/dialog-export-actions/dialog-export-actions.component.mjs +4 -4
- package/esm2022/lib/actions/dialogs/dialog-export-actions/dialog-export-actions.directive.mjs +4 -4
- package/esm2022/lib/actions/dialogs/dialog-filters/dialog-filters.component.mjs +7 -7
- package/esm2022/lib/actions/dialogs/dialog-manageaction/dialog-manageaction.component.mjs +10 -10
- package/esm2022/lib/actions/pipes/interventionOwnerToString.pipe.mjs +4 -4
- package/esm2022/lib/actions/pipes/interventionStateToString.pipe.mjs +4 -4
- package/esm2022/lib/actions/pipes/interventionTypeToString.pipe.mjs +4 -4
- package/esm2022/lib/actions/services/actionClientConfig.mjs +4 -4
- package/esm2022/lib/actions/services/actionService.mjs +4 -4
- package/esm2022/lib/add-calendar/ng-add-to-calendar.module.mjs +5 -5
- package/esm2022/lib/add-calendar/service/ng-add-to-calendar.service.mjs +4 -4
- package/esm2022/lib/alerts/alerts.module.mjs +5 -5
- package/esm2022/lib/alerts/components/alerts-list/alerts.component.mjs +4 -4
- package/esm2022/lib/alerts/components/dialog-alerts/dialog-alerts.component.mjs +4 -4
- package/esm2022/lib/alerts/components/dialog-alerts/dialog-alerts.directive.mjs +4 -4
- package/esm2022/lib/alerts/services/alertClientConfig.mjs +4 -4
- package/esm2022/lib/alerts/services/alerts.service.mjs +4 -4
- package/esm2022/lib/apiUrlToken.mjs +4 -4
- package/esm2022/lib/branding/brandBackground.directive.mjs +4 -4
- package/esm2022/lib/branding/brandConditionalBackgroundColor.directive.mjs +4 -4
- package/esm2022/lib/branding/brandConditionalColor.directive.mjs +4 -4
- package/esm2022/lib/branding/brandHoverColor.directive.mjs +4 -4
- package/esm2022/lib/branding/branding.module.mjs +5 -5
- package/esm2022/lib/branding/brandingProvider.service.mjs +4 -4
- package/esm2022/lib/branding/components/site-default-footer/site-default-footer.component.mjs +4 -4
- package/esm2022/lib/branding/components/site-default-header/site-default-header.component.mjs +4 -4
- package/esm2022/lib/branding/components/site-micro-footer/site-micro-footer.component.mjs +4 -4
- package/esm2022/lib/community/community.module.mjs +5 -5
- package/esm2022/lib/community/components/gethelp-form/gethelp-form.component.mjs +4 -4
- package/esm2022/lib/community/components/meetups/meetups.component.mjs +4 -4
- package/esm2022/lib/community/components/recentcontent/recentcontent.component.mjs +4 -4
- package/esm2022/lib/community/services/communityClientConfig.mjs +4 -4
- package/esm2022/lib/componentBase.mjs +4 -4
- package/esm2022/lib/componentWithViewStateBase.mjs +4 -4
- package/esm2022/lib/components/checkbox/checkbox.component.mjs +4 -4
- package/esm2022/lib/components/checkbox/checkbox.module.mjs +5 -5
- package/esm2022/lib/components/expand/expand.component.mjs +4 -4
- package/esm2022/lib/components/expand/expand.module.mjs +5 -5
- package/esm2022/lib/components/loading/loading.component.mjs +4 -4
- package/esm2022/lib/components/loading/loading.module.mjs +5 -5
- package/esm2022/lib/components/mat-tags/mat-tags.component.mjs +4 -4
- package/esm2022/lib/components/mat-tags/mat-tags.module.mjs +5 -5
- package/esm2022/lib/components/multi-email-input/multi-email-input.component.mjs +101 -0
- package/esm2022/lib/components/multi-email-input/multi-email-input.module.mjs +39 -0
- package/esm2022/lib/components/paginator/paginator.component.mjs +4 -4
- package/esm2022/lib/components/paginator/paginator.module.mjs +5 -5
- package/esm2022/lib/components/scale-selector/scale-selector.component.mjs +4 -4
- package/esm2022/lib/components/scale-selector/scale-selector.module.mjs +5 -5
- package/esm2022/lib/components/select-list/select-list.component.mjs +4 -4
- package/esm2022/lib/components/select-list/select-list.module.mjs +5 -5
- package/esm2022/lib/components/snapshot-inviteurls/snapshot-inviteurls.component.mjs +4 -4
- package/esm2022/lib/components/snapshot-inviteurls/snapshot-inviteurls.module.mjs +5 -5
- package/esm2022/lib/components/tabnavigator/tabnavigator.component.mjs +4 -4
- package/esm2022/lib/components/tabnavigator/tabnavigator.module.mjs +5 -5
- package/esm2022/lib/dialogs/dialog-account/account.service.mjs +4 -4
- package/esm2022/lib/dialogs/dialog-account/dialog-account.component.mjs +7 -7
- package/esm2022/lib/dialogs/dialog-account/dialog-account.module.mjs +5 -5
- package/esm2022/lib/dialogs/dialog-factorinformation/dialog-factorinformation.component.mjs +7 -7
- package/esm2022/lib/dialogs/dialog-factorinformation/dialog-factorinformation.module.mjs +5 -5
- package/esm2022/lib/dialogs/dialog-resourcedownload/dialog-resourcedownload.component.mjs +7 -7
- package/esm2022/lib/dialogs/dialog-resourcedownload/dialog-resourcedownload.module.mjs +5 -5
- package/esm2022/lib/dialogs/dialog-resourcedownload/resourceDownload.service.mjs +4 -4
- package/esm2022/lib/dialogs/dialog-subscribe/dialog-subscribe.component.mjs +4 -4
- package/esm2022/lib/dialogs/dialog-subscribe/dialog-subscribe.directive.mjs +4 -4
- package/esm2022/lib/dialogs/dialog-subscribe/dialog-subscribe.module.mjs +5 -5
- package/esm2022/lib/dialogs/dialog-support/contactService.service.mjs +4 -4
- package/esm2022/lib/dialogs/dialog-support/dialog-support.component.mjs +4 -4
- package/esm2022/lib/dialogs/dialog-support/dialog-support.directive.mjs +16 -16
- package/esm2022/lib/dialogs/dialog-support/dialog-support.module.mjs +5 -5
- package/esm2022/lib/directives/backbutton/backbutton.directive.mjs +4 -4
- package/esm2022/lib/directives/backbutton/backbutton.module.mjs +5 -5
- package/esm2022/lib/directives/guards/guards.module.mjs +5 -5
- package/esm2022/lib/directives/guards/validChangeTokenGuard.mjs +4 -4
- package/esm2022/lib/directives/guards/validKeyGuard.mjs +4 -4
- package/esm2022/lib/directives/guards/validSnapshotKeyGuard.mjs +4 -4
- package/esm2022/lib/directives/guards/validTeamKeyGuard.mjs +4 -4
- package/esm2022/lib/errorhandling/errorHandler.mjs +4 -4
- package/esm2022/lib/errorhandling/errorService.module.mjs +5 -5
- package/esm2022/lib/errorhandling/errorServiceConfig.mjs +4 -4
- package/esm2022/lib/guides/components/imageslider/imageslider.component.mjs +4 -4
- package/esm2022/lib/guides/components/resumeguidehover/resumeguidehover.component.mjs +4 -4
- package/esm2022/lib/guides/dialogs/dialog-guide/dialog-guide.component.mjs +7 -7
- package/esm2022/lib/guides/dialogs/dialog-guides/dialog-guides.component.mjs +7 -7
- package/esm2022/lib/guides/directives/startguide/startguide.directive.mjs +4 -4
- package/esm2022/lib/guides/guides.module.mjs +5 -5
- package/esm2022/lib/guides/services/guidePopup.service.mjs +4 -4
- package/esm2022/lib/guides/services/guideStateInBackEnd.service.mjs +4 -4
- package/esm2022/lib/guides/services/guideStateInBrowser.service.mjs +4 -4
- package/esm2022/lib/guides/services/guidesClientConfig.mjs +4 -4
- package/esm2022/lib/pipes/callback/callback.module.mjs +5 -5
- package/esm2022/lib/pipes/callback/callback.pipe.mjs +4 -4
- package/esm2022/lib/pipes/dateRange/ngx-dateRange.module.mjs +5 -5
- package/esm2022/lib/pipes/dateRange/ngx-dateRange.pipe.mjs +4 -4
- package/esm2022/lib/pipes/segmentName/segmentName.module.mjs +5 -5
- package/esm2022/lib/pipes/segmentName/segmentName.pipe.mjs +4 -4
- package/esm2022/lib/pipes/slugify/ngx-slugify.module.mjs +5 -5
- package/esm2022/lib/pipes/slugify/ngx-slugify.pipe.mjs +4 -4
- package/esm2022/lib/results/components/age-indicator/age-indicator.component.mjs +4 -4
- package/esm2022/lib/results/components/arrow/arrow.component.mjs +4 -4
- package/esm2022/lib/results/components/badge/badge.component.mjs +4 -4
- package/esm2022/lib/results/components/badge-progression/badge-progression.component.mjs +4 -4
- package/esm2022/lib/results/components/badge-streak/badge-streak.component.mjs +4 -4
- package/esm2022/lib/results/components/badges/badges.component.mjs +4 -4
- package/esm2022/lib/results/components/benchmark-indicator/benchmark-indicator.component.mjs +4 -4
- package/esm2022/lib/results/components/coachingcenter-teaser/coachingcenter-teaser.component.mjs +4 -4
- package/esm2022/lib/results/components/delta-arrow/delta-arrow.component.mjs +4 -4
- package/esm2022/lib/results/components/doityourself/doityourself.component.mjs +4 -4
- package/esm2022/lib/results/components/doityourselfworkshops/doityourselfworkshops.component.mjs +4 -4
- package/esm2022/lib/results/components/factor-axis/factor-axis.component.mjs +4 -4
- package/esm2022/lib/results/components/factors/factors.component.mjs +4 -4
- package/esm2022/lib/results/components/filter-tags/filter-tags.component.mjs +4 -4
- package/esm2022/lib/results/components/focusareas/focusareas.component.mjs +4 -4
- package/esm2022/lib/results/components/footer/footer.component.mjs +4 -4
- package/esm2022/lib/results/components/impact-indicator/impact-indicator.component.mjs +4 -4
- package/esm2022/lib/results/components/liberatorkits/liberatorkits.component.mjs +4 -4
- package/esm2022/lib/results/components/limitationsapply/limitationsapply.component.mjs +4 -4
- package/esm2022/lib/results/components/model/model.component.mjs +4 -4
- package/esm2022/lib/results/components/model-factor/model-factor.component.mjs +4 -4
- package/esm2022/lib/results/components/model-factor-breakdown/model-factor-breakdown.component.mjs +4 -4
- package/esm2022/lib/results/components/model-switcher/model-switcher.component.mjs +4 -4
- package/esm2022/lib/results/components/nav-button/nav-button.component.mjs +4 -4
- package/esm2022/lib/results/components/participants/participants.component.mjs +4 -4
- package/esm2022/lib/results/components/quicktips/quicktips.component.mjs +4 -4
- package/esm2022/lib/results/components/recommendation/recommendation.component.mjs +4 -4
- package/esm2022/lib/results/components/recommendations/recommendations.component.mjs +4 -4
- package/esm2022/lib/results/components/research/research.component.mjs +4 -4
- package/esm2022/lib/results/components/roadmap/roadmap.component.mjs +4 -4
- package/esm2022/lib/results/components/teamdashboard-teaser/teamdashboard-teaser.component.mjs +4 -4
- package/esm2022/lib/results/components/teameffectiveness/teameffectiveness.component.mjs +4 -4
- package/esm2022/lib/results/components/termsupdated/termsupdated.component.mjs +4 -4
- package/esm2022/lib/results/components/tip-badge/tip-badge.component.mjs +4 -4
- package/esm2022/lib/results/components/trends/trends.component.mjs +4 -4
- package/esm2022/lib/results/components/update-in-progress/update-in-progress.component.mjs +4 -4
- package/esm2022/lib/results/components/userprofile/userprofile.component.mjs +4 -4
- package/esm2022/lib/results/components/video/video.component.mjs +4 -4
- package/esm2022/lib/results/components/widget-factorscore/widget-factorscore.component.mjs +4 -4
- package/esm2022/lib/results/components/widget-participationrate/widget-participationrate.component.mjs +4 -4
- package/esm2022/lib/results/dialogs/dialog-export-factorscores/dialog-export-factorscores.component.mjs +4 -4
- package/esm2022/lib/results/dialogs/dialog-export-factorscores/dialog-export-factorscores.directive.mjs +4 -4
- package/esm2022/lib/results/dialogs/dialog-export-teamlist/dialog-export-teamlist.component.mjs +4 -4
- package/esm2022/lib/results/dialogs/dialog-export-teamlist/dialog-export-teamlist.directive.mjs +4 -4
- package/esm2022/lib/results/dialogs/dialog-modelfilter/dialog-modelfilter.component.mjs +7 -7
- package/esm2022/lib/results/dialogs/dialog-notes/dialog-notes.component.mjs +7 -7
- package/esm2022/lib/results/dialogs/dialog-settings/dialog-settings.component.mjs +7 -7
- package/esm2022/lib/results/results.module.mjs +5 -5
- package/esm2022/lib/results/services/account.service.mjs +4 -4
- package/esm2022/lib/results/services/dimissPopupService.mjs +4 -4
- package/esm2022/lib/results/services/exportService.mjs +4 -4
- package/esm2022/lib/results/services/factorService.mjs +4 -4
- package/esm2022/lib/results/services/resultsClientConfig.mjs +4 -4
- package/esm2022/lib/results/services/terms.service.mjs +4 -4
- package/esm2022/lib/results/services/trend.service.mjs +4 -4
- package/esm2022/lib/results/services/userProfile.service.mjs +4 -4
- package/esm2022/lib/viewModel/reloadStrategies/noReloadStrategy.mjs +4 -4
- package/esm2022/lib/viewModel/reloadStrategies/reloadOnPushStrategy.mjs +4 -4
- package/esm2022/lib/viewModel/services/sessionIdInterceptor.service.mjs +4 -4
- package/esm2022/lib/viewModel/services/sessionIdProvider.service.mjs +4 -4
- package/esm2022/lib/viewModel/userSettings.service.mjs +4 -4
- package/esm2022/lib/viewModel/viewModelState.module.mjs +5 -5
- package/esm2022/lib/viewModel/viewModelStateConfig.mjs +4 -4
- package/esm2022/public-api.mjs +5 -1
- package/fesm2022/the-liberators-ngx-scrumteamsurvey-tools.mjs +688 -562
- package/fesm2022/the-liberators-ngx-scrumteamsurvey-tools.mjs.map +1 -1
- package/lib/components/multi-email-input/multi-email-input.component.d.ts +27 -0
- package/lib/components/multi-email-input/multi-email-input.module.d.ts +11 -0
- package/package.json +1 -1
- package/public-api.d.ts +4 -0
|
@@ -118,10 +118,10 @@ export class TrendsComponent extends ComponentWithViewStateBase {
|
|
|
118
118
|
this.form.controls.factorKeys.setValue(coreFactors);
|
|
119
119
|
}
|
|
120
120
|
;
|
|
121
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
122
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: TrendsComponent, selector: "trends", inputs: { units: "units", unitType: "unitType" }, viewQueries: [{ propertyName: "chartContainer", first: true, predicate: ["chartcontainer"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<form [formGroup]=\"form\" class=\"dataselector\" (ngSubmit)=\"onFormSubmit()\">\n <div class=\"listtoolbar\" id=\"listtoolbar\">\n <mat-form-field class=\"listtoolbar-item select\" appearance=\"fill\" *ngIf=\"units.length > 1\">\n <mat-label>Select {{unitType}}</mat-label>\n <mat-select formControlName=\"unitKey\" id=\"select-units\" class=\"unitKey\" multiple [disabled]=\"units.length == 1\">\n <mat-option class=\"select-option\" *ngFor=\"let unit of units\" [value]=\"unit\">{{unit.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"listtoolbar-item select\" appearance=\"fill\">\n <mat-label>Select factors</mat-label>\n <mat-select formControlName=\"factorKeys\" id=\"select-factors\" class=\"factorKeys\" multiple [compareWith]=\"compareFactorOptions\">\n <mat-option class=\"select-option\" *ngFor=\"let factor of factors\" [ngClass]=\"{'lower' : factor.lower}\" [value]=\"factor\" selected=\"true\">{{factor.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"listtoolbar-item select\" appearance=\"fill\">\n <mat-label>Summarize to periods of</mat-label>\n <mat-select class=\"periodGrouping-dropdown\" id=\"select-periodGrouping\" formControlName=\"periodGrouping\">\n <mat-option class=\"select-option\" *ngFor=\"let item of periodGroupings\" [value]=\"item.value\">{{item.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"listtoolbar-item select\" appearance=\"fill\">\n <mat-label>Action count</mat-label>\n <mat-select class=\"selectactions-dropdown\" id=\"select-includeActions\" formControlName=\"includeActions\">\n <mat-option class=\"select-option\" *ngFor=\"let item of includeActionOptions\" [value]=\"item.value\" class=\"select-option\">{{item.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"listtoolbar-item select\" appearance=\"fill\">\n <mat-label>Select date range </mat-label>\n <mat-date-range-input [rangePicker]=\"picker\" id=\"select-daterange\">\n <input matStartDate formControlName=\"start\" placeholder=\"Start date\">\n <input matEndDate formControlName=\"end\" placeholder=\"End date\">\n </mat-date-range-input>\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-date-range-picker #picker></mat-date-range-picker>\n\n <mat-error *ngIf=\"form.controls.start.hasError('matStartDateInvalid')\">Invalid start date</mat-error>\n <mat-error *ngIf=\"form.controls.end.hasError('matEndDateInvalid')\">Invalid end date</mat-error>\n </mat-form-field>\n\n <div class=\"listtoolbar-item\">\n <button class=\"button primary\" id=\"button-showtrends\" [ngClass]=\"{'loading': loading}\"><span class=\"ph-funnel\"></span> Show trends</button>\n </div>\n </div>\n</form>\n\n<div class=\"message message-warning\" *ngIf=\"generatorNotes.length > 0\">\n <div class=\"ph-warning icon\"></div> {{generatorNotes[0]}}\n</div>\n\n<div class=\"wirebox calltoaction nodata\" *ngIf=\"!data\">\n <div class=\"contentwithborders\">\n <div class=\"center\">\n <img src=\"assets/img/improve.png\" />\n <h2>Are you actually improving?</h2>\n <p>Learn if your improvements are actually working out. Take more measurements and plot the trends for your {{unitType}}(s). How is that for empiricism?</p>\n </div>\n </div>\n</div>\n\n<div #chartcontainer class=\"linechart\">\n <div class=\"linechart-container\" *ngIf=\"data\">\n <ngx-charts-line-chart [legend]=\"true\"\n (window:resize)=\"onResize()\"\n [view]=\"view\"\n [showXAxisLabel]=\"true\"\n [showYAxisLabel]=\"true\"\n [xAxis]=\"true\"\n [scheme]=\"'vivid'\"\n [yAxis]=\"true\"\n [legendPosition]=\"legendPosition\"\n [xAxisLabel]=\"'Date'\"\n [yAxisLabel]=\"'Score'\"\n [timeline]=\"true\"\n [yScaleMin]=\"0\"\n [yScaleMax]=\"100\"\n [rangeFillOpacity]=\"0.1\"\n [results]=\"data\"\n [customColors]=\"customColors\">\n </ngx-charts-line-chart>\n </div>\n</div>\n\n<div class=\"message message-information\" *ngIf=\"data\">\n <span class=\"ph-info icon\"></span> This chart shows how factors change over time. The horizontal axis shows the time. The vertical axis shows the weighted average score on the factor. The light area around the lines represents the spread of scores (lower and upper 25% of scores). We aggregate results for one or more teams and from one or more organizations to the periods you chose (1 month, quarter, etc). For each period, we take the most recent snapshot of each team in that period (when available). Hit \"Show Trends\" when you're ready.\n</div>\n", styles: [".smallTextUppercase{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%}.bigletteredbutton{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;text-decoration:none;background:#ffffff1a;margin-bottom:10px;display:flex;align-content:center;border-radius:20px;padding:15px;font-size:24px;border:2px solid #1F3F8F;border-bottom:6px solid #1F3F8F;color:#fff;align-items:center;cursor:pointer}.bigletteredbutton .free{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;background:#fff73f;color:#2f2f2f;padding:3px 5px;margin-left:20px;border-radius:10px}.bigletteredbutton .plan{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;background:#fff;color:#2f2f2f;padding:3px 5px;margin-left:20px;border-radius:10px}.bigletteredbutton:hover,.bigletteredbutton.selected{border:2px solid #fff73f;border-bottom:6px solid #fff73f}.bigletteredbutton .button-letter{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;font-family:StevieSans,sans-serif;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;background:#fff73f;color:#1f3f8f;margin-right:20px}.bigletteredbutton .button-letter .ph{color:#1f3f8f}.bigletteredbutton .button-letter:hover{background:#1f3f8f;color:#fff73f}.bigletteredbutton .button-letter:hover .ph{color:#fff73f}.roundicon-yellow{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;font-family:StevieSans,sans-serif;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;background:#fff73f;color:#1f3f8f}.roundicon-yellow .ph{color:#1f3f8f}.roundicon-yellow:hover{background:#1f3f8f;color:#fff73f}.roundicon-yellow:hover .ph{color:#fff73f}.roundicon{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;font-family:StevieSans,sans-serif;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center}.roundicon-large{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;font-family:StevieSans,sans-serif;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;border-radius:60px;height:120px;width:120px}.listtoolbar{display:flex;flex-wrap:wrap;column-gap:30px;row-gap:10px}.listtoolbar .select{flex:auto}.nodata{margin-top:30px;margin-bottom:30px}.nodata img{max-width:700px}.linechart-container{border:3px solid #f0f0f0;margin-top:30px;margin-bottom:30px;padding:30px}.toolbar{margin-top:30px}.mat-mdc-option.lower{margin-left:20px}\n"], dependencies: [{ kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.LineChartComponent, selector: "ngx-charts-line-chart", inputs: ["legend", "legendTitle", "legendPosition", "xAxis", "yAxis", "showXAxisLabel", "showYAxisLabel", "xAxisLabel", "yAxisLabel", "autoScale", "timeline", "gradient", "showGridLines", "curve", "activeEntries", "schemeType", "rangeFillOpacity", "trimXAxisTicks", "trimYAxisTicks", "rotateXAxisTicks", "maxXAxisTickLength", "maxYAxisTickLength", "xAxisTickFormatting", "yAxisTickFormatting", "xAxisTicks", "yAxisTicks", "roundDomains", "tooltipDisabled", "showRefLines", "referenceLines", "showRefLabels", "xScaleMin", "xScaleMax", "yScaleMin", "yScaleMax", "wrapTicks"], outputs: ["activate", "deactivate"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i8.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i9.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i9.MatLabel, selector: "mat-label" }, { kind: "directive", type: i9.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i9.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i10.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i11.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "component", type: i11.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { kind: "directive", type: i11.MatStartDate, selector: "input[matStartDate]", outputs: ["dateChange", "dateInput"] }, { kind: "directive", type: i11.MatEndDate, selector: "input[matEndDate]", outputs: ["dateChange", "dateInput"] }, { kind: "component", type: i11.MatDateRangePicker, selector: "mat-date-range-picker", exportAs: ["matDateRangePicker"] }] }); }
|
|
121
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: TrendsComponent, deps: [{ token: i1.UntypedFormBuilder }, { token: i2.MatSnackBar }, { token: i3.FactorService }, { token: i4.TrendService }, { token: i5.ActivatedRoute }, { token: VIEWSTATE_PROVIDER }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
122
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: TrendsComponent, selector: "trends", inputs: { units: "units", unitType: "unitType" }, viewQueries: [{ propertyName: "chartContainer", first: true, predicate: ["chartcontainer"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<form [formGroup]=\"form\" class=\"dataselector\" (ngSubmit)=\"onFormSubmit()\">\n <div class=\"listtoolbar\" id=\"listtoolbar\">\n <mat-form-field class=\"listtoolbar-item select\" appearance=\"fill\" *ngIf=\"units.length > 1\">\n <mat-label>Select {{unitType}}</mat-label>\n <mat-select formControlName=\"unitKey\" id=\"select-units\" class=\"unitKey\" multiple [disabled]=\"units.length == 1\">\n <mat-option class=\"select-option\" *ngFor=\"let unit of units\" [value]=\"unit\">{{unit.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"listtoolbar-item select\" appearance=\"fill\">\n <mat-label>Select factors</mat-label>\n <mat-select formControlName=\"factorKeys\" id=\"select-factors\" class=\"factorKeys\" multiple [compareWith]=\"compareFactorOptions\">\n <mat-option class=\"select-option\" *ngFor=\"let factor of factors\" [ngClass]=\"{'lower' : factor.lower}\" [value]=\"factor\" selected=\"true\">{{factor.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"listtoolbar-item select\" appearance=\"fill\">\n <mat-label>Summarize to periods of</mat-label>\n <mat-select class=\"periodGrouping-dropdown\" id=\"select-periodGrouping\" formControlName=\"periodGrouping\">\n <mat-option class=\"select-option\" *ngFor=\"let item of periodGroupings\" [value]=\"item.value\">{{item.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"listtoolbar-item select\" appearance=\"fill\">\n <mat-label>Action count</mat-label>\n <mat-select class=\"selectactions-dropdown\" id=\"select-includeActions\" formControlName=\"includeActions\">\n <mat-option class=\"select-option\" *ngFor=\"let item of includeActionOptions\" [value]=\"item.value\" class=\"select-option\">{{item.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"listtoolbar-item select\" appearance=\"fill\">\n <mat-label>Select date range </mat-label>\n <mat-date-range-input [rangePicker]=\"picker\" id=\"select-daterange\">\n <input matStartDate formControlName=\"start\" placeholder=\"Start date\">\n <input matEndDate formControlName=\"end\" placeholder=\"End date\">\n </mat-date-range-input>\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-date-range-picker #picker></mat-date-range-picker>\n\n <mat-error *ngIf=\"form.controls.start.hasError('matStartDateInvalid')\">Invalid start date</mat-error>\n <mat-error *ngIf=\"form.controls.end.hasError('matEndDateInvalid')\">Invalid end date</mat-error>\n </mat-form-field>\n\n <div class=\"listtoolbar-item\">\n <button class=\"button primary\" id=\"button-showtrends\" [ngClass]=\"{'loading': loading}\"><span class=\"ph-funnel\"></span> Show trends</button>\n </div>\n </div>\n</form>\n\n<div class=\"message message-warning\" *ngIf=\"generatorNotes.length > 0\">\n <div class=\"ph-warning icon\"></div> {{generatorNotes[0]}}\n</div>\n\n<div class=\"wirebox calltoaction nodata\" *ngIf=\"!data\">\n <div class=\"contentwithborders\">\n <div class=\"center\">\n <img src=\"assets/img/improve.png\" />\n <h2>Are you actually improving?</h2>\n <p>Learn if your improvements are actually working out. Take more measurements and plot the trends for your {{unitType}}(s). How is that for empiricism?</p>\n </div>\n </div>\n</div>\n\n<div #chartcontainer class=\"linechart\">\n <div class=\"linechart-container\" *ngIf=\"data\">\n <ngx-charts-line-chart [legend]=\"true\"\n (window:resize)=\"onResize()\"\n [view]=\"view\"\n [showXAxisLabel]=\"true\"\n [showYAxisLabel]=\"true\"\n [xAxis]=\"true\"\n [scheme]=\"'vivid'\"\n [yAxis]=\"true\"\n [legendPosition]=\"legendPosition\"\n [xAxisLabel]=\"'Date'\"\n [yAxisLabel]=\"'Score'\"\n [timeline]=\"true\"\n [yScaleMin]=\"0\"\n [yScaleMax]=\"100\"\n [rangeFillOpacity]=\"0.1\"\n [results]=\"data\"\n [customColors]=\"customColors\">\n </ngx-charts-line-chart>\n </div>\n</div>\n\n<div class=\"message message-information\" *ngIf=\"data\">\n <span class=\"ph-info icon\"></span> This chart shows how factors change over time. The horizontal axis shows the time. The vertical axis shows the weighted average score on the factor. The light area around the lines represents the spread of scores (lower and upper 25% of scores). We aggregate results for one or more teams and from one or more organizations to the periods you chose (1 month, quarter, etc). For each period, we take the most recent snapshot of each team in that period (when available). Hit \"Show Trends\" when you're ready.\n</div>\n", styles: [".smallTextUppercase{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%}.bigletteredbutton{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;text-decoration:none;background:#ffffff1a;margin-bottom:10px;display:flex;align-content:center;border-radius:20px;padding:15px;font-size:24px;border:2px solid #1F3F8F;border-bottom:6px solid #1F3F8F;color:#fff;align-items:center;cursor:pointer}.bigletteredbutton .free{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;background:#fff73f;color:#2f2f2f;padding:3px 5px;margin-left:20px;border-radius:10px}.bigletteredbutton .plan{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;background:#fff;color:#2f2f2f;padding:3px 5px;margin-left:20px;border-radius:10px}.bigletteredbutton:hover,.bigletteredbutton.selected{border:2px solid #fff73f;border-bottom:6px solid #fff73f}.bigletteredbutton .button-letter{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;font-family:StevieSans,sans-serif;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;background:#fff73f;color:#1f3f8f;margin-right:20px}.bigletteredbutton .button-letter .ph{color:#1f3f8f}.bigletteredbutton .button-letter:hover{background:#1f3f8f;color:#fff73f}.bigletteredbutton .button-letter:hover .ph{color:#fff73f}.roundicon-yellow{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;font-family:StevieSans,sans-serif;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;background:#fff73f;color:#1f3f8f}.roundicon-yellow .ph{color:#1f3f8f}.roundicon-yellow:hover{background:#1f3f8f;color:#fff73f}.roundicon-yellow:hover .ph{color:#fff73f}.roundicon{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;font-family:StevieSans,sans-serif;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center}.roundicon-large{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;font-family:StevieSans,sans-serif;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;border-radius:60px;height:120px;width:120px}.listtoolbar{display:flex;flex-wrap:wrap;column-gap:30px;row-gap:10px}.listtoolbar .select{flex:auto}.nodata{margin-top:30px;margin-bottom:30px}.nodata img{max-width:700px}.linechart-container{border:3px solid #f0f0f0;margin-top:30px;margin-bottom:30px;padding:30px}.toolbar{margin-top:30px}.mat-mdc-option.lower{margin-left:20px}\n"], dependencies: [{ kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.LineChartComponent, selector: "ngx-charts-line-chart", inputs: ["legend", "legendTitle", "legendPosition", "xAxis", "yAxis", "showXAxisLabel", "showYAxisLabel", "xAxisLabel", "yAxisLabel", "autoScale", "timeline", "gradient", "showGridLines", "curve", "activeEntries", "schemeType", "rangeFillOpacity", "trimXAxisTicks", "trimYAxisTicks", "rotateXAxisTicks", "maxXAxisTickLength", "maxYAxisTickLength", "xAxisTickFormatting", "yAxisTickFormatting", "xAxisTicks", "yAxisTicks", "roundDomains", "tooltipDisabled", "showRefLines", "referenceLines", "showRefLabels", "xScaleMin", "xScaleMax", "yScaleMin", "yScaleMax", "wrapTicks"], outputs: ["activate", "deactivate"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i8.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i9.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i9.MatLabel, selector: "mat-label" }, { kind: "directive", type: i9.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i9.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i10.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i11.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "component", type: i11.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { kind: "directive", type: i11.MatStartDate, selector: "input[matStartDate]", outputs: ["dateChange", "dateInput"] }, { kind: "directive", type: i11.MatEndDate, selector: "input[matEndDate]", outputs: ["dateChange", "dateInput"] }, { kind: "component", type: i11.MatDateRangePicker, selector: "mat-date-range-picker", exportAs: ["matDateRangePicker"] }] }); }
|
|
123
123
|
}
|
|
124
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
124
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: TrendsComponent, decorators: [{
|
|
125
125
|
type: Component,
|
|
126
126
|
args: [{ selector: 'trends', template: "<form [formGroup]=\"form\" class=\"dataselector\" (ngSubmit)=\"onFormSubmit()\">\n <div class=\"listtoolbar\" id=\"listtoolbar\">\n <mat-form-field class=\"listtoolbar-item select\" appearance=\"fill\" *ngIf=\"units.length > 1\">\n <mat-label>Select {{unitType}}</mat-label>\n <mat-select formControlName=\"unitKey\" id=\"select-units\" class=\"unitKey\" multiple [disabled]=\"units.length == 1\">\n <mat-option class=\"select-option\" *ngFor=\"let unit of units\" [value]=\"unit\">{{unit.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"listtoolbar-item select\" appearance=\"fill\">\n <mat-label>Select factors</mat-label>\n <mat-select formControlName=\"factorKeys\" id=\"select-factors\" class=\"factorKeys\" multiple [compareWith]=\"compareFactorOptions\">\n <mat-option class=\"select-option\" *ngFor=\"let factor of factors\" [ngClass]=\"{'lower' : factor.lower}\" [value]=\"factor\" selected=\"true\">{{factor.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"listtoolbar-item select\" appearance=\"fill\">\n <mat-label>Summarize to periods of</mat-label>\n <mat-select class=\"periodGrouping-dropdown\" id=\"select-periodGrouping\" formControlName=\"periodGrouping\">\n <mat-option class=\"select-option\" *ngFor=\"let item of periodGroupings\" [value]=\"item.value\">{{item.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"listtoolbar-item select\" appearance=\"fill\">\n <mat-label>Action count</mat-label>\n <mat-select class=\"selectactions-dropdown\" id=\"select-includeActions\" formControlName=\"includeActions\">\n <mat-option class=\"select-option\" *ngFor=\"let item of includeActionOptions\" [value]=\"item.value\" class=\"select-option\">{{item.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"listtoolbar-item select\" appearance=\"fill\">\n <mat-label>Select date range </mat-label>\n <mat-date-range-input [rangePicker]=\"picker\" id=\"select-daterange\">\n <input matStartDate formControlName=\"start\" placeholder=\"Start date\">\n <input matEndDate formControlName=\"end\" placeholder=\"End date\">\n </mat-date-range-input>\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-date-range-picker #picker></mat-date-range-picker>\n\n <mat-error *ngIf=\"form.controls.start.hasError('matStartDateInvalid')\">Invalid start date</mat-error>\n <mat-error *ngIf=\"form.controls.end.hasError('matEndDateInvalid')\">Invalid end date</mat-error>\n </mat-form-field>\n\n <div class=\"listtoolbar-item\">\n <button class=\"button primary\" id=\"button-showtrends\" [ngClass]=\"{'loading': loading}\"><span class=\"ph-funnel\"></span> Show trends</button>\n </div>\n </div>\n</form>\n\n<div class=\"message message-warning\" *ngIf=\"generatorNotes.length > 0\">\n <div class=\"ph-warning icon\"></div> {{generatorNotes[0]}}\n</div>\n\n<div class=\"wirebox calltoaction nodata\" *ngIf=\"!data\">\n <div class=\"contentwithborders\">\n <div class=\"center\">\n <img src=\"assets/img/improve.png\" />\n <h2>Are you actually improving?</h2>\n <p>Learn if your improvements are actually working out. Take more measurements and plot the trends for your {{unitType}}(s). How is that for empiricism?</p>\n </div>\n </div>\n</div>\n\n<div #chartcontainer class=\"linechart\">\n <div class=\"linechart-container\" *ngIf=\"data\">\n <ngx-charts-line-chart [legend]=\"true\"\n (window:resize)=\"onResize()\"\n [view]=\"view\"\n [showXAxisLabel]=\"true\"\n [showYAxisLabel]=\"true\"\n [xAxis]=\"true\"\n [scheme]=\"'vivid'\"\n [yAxis]=\"true\"\n [legendPosition]=\"legendPosition\"\n [xAxisLabel]=\"'Date'\"\n [yAxisLabel]=\"'Score'\"\n [timeline]=\"true\"\n [yScaleMin]=\"0\"\n [yScaleMax]=\"100\"\n [rangeFillOpacity]=\"0.1\"\n [results]=\"data\"\n [customColors]=\"customColors\">\n </ngx-charts-line-chart>\n </div>\n</div>\n\n<div class=\"message message-information\" *ngIf=\"data\">\n <span class=\"ph-info icon\"></span> This chart shows how factors change over time. The horizontal axis shows the time. The vertical axis shows the weighted average score on the factor. The light area around the lines represents the spread of scores (lower and upper 25% of scores). We aggregate results for one or more teams and from one or more organizations to the periods you chose (1 month, quarter, etc). For each period, we take the most recent snapshot of each team in that period (when available). Hit \"Show Trends\" when you're ready.\n</div>\n", styles: [".smallTextUppercase{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%}.bigletteredbutton{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;text-decoration:none;background:#ffffff1a;margin-bottom:10px;display:flex;align-content:center;border-radius:20px;padding:15px;font-size:24px;border:2px solid #1F3F8F;border-bottom:6px solid #1F3F8F;color:#fff;align-items:center;cursor:pointer}.bigletteredbutton .free{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;background:#fff73f;color:#2f2f2f;padding:3px 5px;margin-left:20px;border-radius:10px}.bigletteredbutton .plan{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;background:#fff;color:#2f2f2f;padding:3px 5px;margin-left:20px;border-radius:10px}.bigletteredbutton:hover,.bigletteredbutton.selected{border:2px solid #fff73f;border-bottom:6px solid #fff73f}.bigletteredbutton .button-letter{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;font-family:StevieSans,sans-serif;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;background:#fff73f;color:#1f3f8f;margin-right:20px}.bigletteredbutton .button-letter .ph{color:#1f3f8f}.bigletteredbutton .button-letter:hover{background:#1f3f8f;color:#fff73f}.bigletteredbutton .button-letter:hover .ph{color:#fff73f}.roundicon-yellow{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;font-family:StevieSans,sans-serif;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;background:#fff73f;color:#1f3f8f}.roundicon-yellow .ph{color:#1f3f8f}.roundicon-yellow:hover{background:#1f3f8f;color:#fff73f}.roundicon-yellow:hover .ph{color:#fff73f}.roundicon{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;font-family:StevieSans,sans-serif;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center}.roundicon-large{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;font-family:StevieSans,sans-serif;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;border-radius:60px;height:120px;width:120px}.listtoolbar{display:flex;flex-wrap:wrap;column-gap:30px;row-gap:10px}.listtoolbar .select{flex:auto}.nodata{margin-top:30px;margin-bottom:30px}.nodata img{max-width:700px}.linechart-container{border:3px solid #f0f0f0;margin-top:30px;margin-bottom:30px;padding:30px}.toolbar{margin-top:30px}.mat-mdc-option.lower{margin-left:20px}\n"] }]
|
|
127
127
|
}], ctorParameters: () => [{ type: i1.UntypedFormBuilder }, { type: i2.MatSnackBar }, { type: i3.FactorService }, { type: i4.TrendService }, { type: i5.ActivatedRoute }, { type: i12.ViewModelStateBase, decorators: [{
|
|
@@ -135,4 +135,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
|
|
|
135
135
|
type: ViewChild,
|
|
136
136
|
args: ["chartcontainer"]
|
|
137
137
|
}] } });
|
|
138
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlbmRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zY3J1bXRlYW1zdXJ2ZXktdG9vbHMvc3JjL2xpYi9yZXN1bHRzL2NvbXBvbmVudHMvdHJlbmRzL3RyZW5kcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2NydW10ZWFtc3VydmV5LXRvb2xzL3NyYy9saWIvcmVzdWx0cy9jb21wb25lbnRzL3RyZW5kcy90cmVuZHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQXdDLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR2xGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEtBQUssTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUNqQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEMsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDakYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzVELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUMvRSxPQUFPLEVBQXNCLGtCQUFrQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFFbkcsT0FBTyxFQUFFLGVBQWUsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3RGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOzs7Ozs7Ozs7Ozs7OztBQVM3RSxNQUFNLE9BQU8sZUFBZ0IsU0FBUSwwQkFBeUM7SUF5QjNFLFlBQW9CLFdBQStCLEVBQVksUUFBcUIsRUFBVSxhQUE0QixFQUFVLFlBQTBCLEVBQVksS0FBcUIsRUFBc0MsS0FBd0M7UUFDMVEsS0FBSyxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztRQUROLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQUFZLGFBQVEsR0FBUixRQUFRLENBQWE7UUFBVSxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUFVLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQVksVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFBc0MsVUFBSyxHQUFMLEtBQUssQ0FBbUM7UUFuQnRRLG1CQUFjLEdBQWEsRUFBRSxDQUFDO1FBQzlCLFlBQU8sR0FBWSxLQUFLLENBQUM7UUFHekIsbUJBQWMsR0FBbUIsY0FBYyxDQUFDLEtBQUssQ0FBQztRQUN0RCxpQkFBWSxHQUFHLEVBQUUsQ0FBQztRQUVsQixvQkFBZSxHQUFpQjtZQUNwQyxJQUFJLFVBQVUsQ0FBQyxlQUFlLENBQUMsYUFBYSxFQUFFLFNBQVMsQ0FBQztZQUN4RCxJQUFJLFVBQVUsQ0FBQyxlQUFlLENBQUMsZUFBZSxFQUFFLFVBQVUsQ0FBQztZQUMzRCxJQUFJLFVBQVUsQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLEVBQUUsVUFBVSxDQUFDO1lBQzVELElBQUksVUFBVSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsV0FBVyxDQUFDO1NBQzNELENBQUE7UUFDTSx5QkFBb0IsR0FBaUI7WUFDekMsSUFBSSxVQUFVLENBQUMsc0JBQXNCLENBQUMsVUFBVSxFQUFFLGFBQWEsQ0FBQztZQUNoRSxJQUFJLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyxlQUFlLEVBQUUsOEJBQThCLENBQUM7WUFDdEYsSUFBSSxVQUFVLENBQUMsc0JBQXNCLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQztTQUNyRCxDQUFBO1FBSUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFTSxRQUFRO1FBQ1osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDbkYsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRU0sWUFBWTtRQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUFDLE9BQU87UUFBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBRXBCLElBQUksV0FBVyxHQUF3QixJQUFJLG1CQUFtQixFQUFFLENBQUM7UUFFakUsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQzNCLFdBQVcsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0UsQ0FBQzthQUNJLElBQUksSUFBSSxDQUFDLFFBQVEsR0FBRyxjQUFjLEVBQUUsQ0FBQztZQUN2QyxXQUFXLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQy9FLENBQUM7UUFFRCxXQUFXLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQy9FLFdBQVcsQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQztRQUNyRSxXQUFXLENBQUMsU0FBUyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDM0MsV0FBVyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztRQUM1RCxXQUFXLENBQUMsU0FBUyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDO1FBQ3hELFdBQVcsQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQztRQUNyRSxXQUFXLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztRQUVqQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzdDLFNBQVMsQ0FDUCxPQUFPLENBQUMsRUFBRTtZQUNQLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQztZQUM5QixJQUFJLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRXpILEtBQUssSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUMxQixLQUFLLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDekIsQ0FBQyxDQUFDLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUE7Z0JBQzVCLENBQUM7WUFDSixDQUFDO1lBRUQsSUFBSSxDQUFDLGNBQWMsR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDO1lBQzdDLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3JCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNuQixDQUFDLENBQUMsQ0FBQztJQUNaLENBQUM7SUFFTSxRQUFRO1FBQ1osSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUFDLE9BQU87UUFBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxXQUFXLEdBQUcsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFTyxVQUFVO1FBQ2YsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztZQUNoQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUNsQyxVQUFVLEVBQUUsQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUNyQyxjQUFjLEVBQUUsQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUN6QyxjQUFjLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQ3BELEtBQUssRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDM0MsR0FBRyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztTQUMzQyxDQUFDLENBQUM7SUFDTixDQUFDO0lBQUEsQ0FBQztJQUVLLG9CQUFvQixDQUFDLEVBQWMsRUFBRSxFQUFjO1FBQ3ZELElBQUksRUFBRSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsS0FBSztZQUNyQixPQUFPLElBQUksQ0FBQzs7WUFDVixPQUFPLEtBQUssQ0FBQTtJQUNwQixDQUFDO0lBRVMsWUFBWSxDQUFDLElBQW1CO1FBQ3ZDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNqRixJQUFJLFdBQVcsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksb0JBQW9CLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ2hLLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUFBLENBQUM7OEdBeEdRLGVBQWUsc0tBeUJnTCxrQkFBa0I7a0dBekJqTixlQUFlLHlPQ3RCNUIsdXNLQXlGQTs7MkZEbkVhLGVBQWU7a0JBTDNCLFNBQVM7K0JBQ0csUUFBUTs7MEJBNkJnTCxNQUFNOzJCQUFDLGtCQUFrQjt5Q0F4QjNNLEtBQUs7c0JBQXBCLEtBQUs7Z0JBQ1UsUUFBUTtzQkFBdkIsS0FBSztnQkFDOEIsY0FBYztzQkFBakQsU0FBUzt1QkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEluamVjdCwgSW5wdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVW50eXBlZEZvcm1CdWlsZGVyLCBVbnR5cGVkRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0U25hY2tCYXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXInO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgTGVnZW5kUG9zaXRpb24gfSBmcm9tICdAc3dpbWxhbmUvbmd4LWNoYXJ0cyc7XG5pbXBvcnQgKiBhcyBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBDb21wb25lbnRXaXRoVmlld1N0YXRlQmFzZSB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudFdpdGhWaWV3U3RhdGVCYXNlJztcbmltcG9ydCB7IFNlbGVjdEl0ZW0gfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvc2VsZWN0TGlzdEl0ZW0nO1xuaW1wb3J0IHsgRGF0ZVJhbmdlRHRvIH0gZnJvbSAnLi4vLi4vLi4vcGlwZXMvZGF0ZVJhbmdlL25neC1kYXRlUmFuZ2VEdG8ubW9kZWwnO1xuaW1wb3J0IHsgVmlld01vZGVsU3RhdGVCYXNlLCBWSUVXU1RBVEVfUFJPVklERVIgfSBmcm9tICcuLi8uLi8uLi92aWV3TW9kZWwvdmlld01vZGVsU3RhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBJUmVzdWx0c1N0YXRlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9JUmVzdWx0c1N0YXRlJztcbmltcG9ydCB7IERlbHRhUGVyaW9kRW51bSwgSW5jbHVkZUFjdGlvbnNNb2RlRW51bSB9IGZyb20gJy4uLy4uL21vZGVscy9mYWN0b3JTY29yZUR0byc7XG5pbXBvcnQgeyBUcmVuZERhdGFSZXF1ZXN0RHRvIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3RyZW5kRGF0YVJlcXVlc3REdG8ubW9kZWwnO1xuaW1wb3J0IHsgRmFjdG9yU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2ZhY3RvclNlcnZpY2UnO1xuaW1wb3J0IHsgVHJlbmRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdHJlbmQuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICAgc2VsZWN0b3I6ICd0cmVuZHMnLFxuICAgdGVtcGxhdGVVcmw6ICcuL3RyZW5kcy5jb21wb25lbnQuaHRtbCcsXG4gICBzdHlsZVVybHM6IFsnLi90cmVuZHMuY29tcG9uZW50Lmxlc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBUcmVuZHNDb21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnRXaXRoVmlld1N0YXRlQmFzZTxJUmVzdWx0c1N0YXRlPiB7XG4gICBASW5wdXQoKSBwdWJsaWMgdW5pdHM6IFNlbGVjdEl0ZW1bXTtcbiAgIEBJbnB1dCgpIHB1YmxpYyB1bml0VHlwZTogc3RyaW5nO1xuICAgQFZpZXdDaGlsZChcImNoYXJ0Y29udGFpbmVyXCIpIHB1YmxpYyBjaGFydENvbnRhaW5lcjogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD5cbiAgIHB1YmxpYyBmYWN0b3JzOiBTZWxlY3RJdGVtW107XG4gICBwdWJsaWMgZGF0YTogYW55W107XG4gICBwdWJsaWMgZ2VuZXJhdG9yTm90ZXM6IHN0cmluZ1tdID0gW107XG4gICBwdWJsaWMgbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuICAgcHVibGljIGZvcm06IFVudHlwZWRGb3JtR3JvdXA7XG4gICBwdWJsaWMgdmlldzogW251bWJlciwgbnVtYmVyXTtcbiAgIHB1YmxpYyBsZWdlbmRQb3NpdGlvbjogTGVnZW5kUG9zaXRpb24gPSBMZWdlbmRQb3NpdGlvbi5CZWxvdztcbiAgIHB1YmxpYyBjdXN0b21Db2xvcnMgPSBbXTtcblxuICAgcHVibGljIHBlcmlvZEdyb3VwaW5nczogU2VsZWN0SXRlbVtdID0gW1xuICAgICAgbmV3IFNlbGVjdEl0ZW0oRGVsdGFQZXJpb2RFbnVtLnByZXZpb3VzTW9udGgsIFwiMSBtb250aFwiKSxcbiAgICAgIG5ldyBTZWxlY3RJdGVtKERlbHRhUGVyaW9kRW51bS5wcmV2aW91c1F1YXJ0ZXIsIFwiMyBtb250aHNcIiksXG4gICAgICBuZXcgU2VsZWN0SXRlbShEZWx0YVBlcmlvZEVudW0ucHJldmlvdXNIYWxmWWVhciwgXCI2IG1vbnRoc1wiKSxcbiAgICAgIG5ldyBTZWxlY3RJdGVtKERlbHRhUGVyaW9kRW51bS5wcmV2aW91c1llYXIsIFwiMTIgbW9udGhzXCIpXG4gICBdXG4gICBwdWJsaWMgaW5jbHVkZUFjdGlvbk9wdGlvbnM6IFNlbGVjdEl0ZW1bXSA9IFtcbiAgICAgIG5ldyBTZWxlY3RJdGVtKEluY2x1ZGVBY3Rpb25zTW9kZUVudW0uaW5jbHVkZUFsbCwgXCJBbGwgYWN0aW9uc1wiKSxcbiAgICAgIG5ldyBTZWxlY3RJdGVtKEluY2x1ZGVBY3Rpb25zTW9kZUVudW0uaW5jbHVkZVJlbGV2YW50LCBcIkFjdGlvbnMgd2l0aCBleHBlY3RlZCBpbXBhY3RcIiksXG4gICAgICBuZXcgU2VsZWN0SXRlbShJbmNsdWRlQWN0aW9uc01vZGVFbnVtLm5vbmUsIFwiTm9uZVwiKVxuICAgXVxuXG4gICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZvcm1CdWlsZGVyOiBVbnR5cGVkRm9ybUJ1aWxkZXIsIHByb3RlY3RlZCBzbmFja0JhcjogTWF0U25hY2tCYXIsIHByaXZhdGUgZmFjdG9yU2VydmljZTogRmFjdG9yU2VydmljZSwgcHJpdmF0ZSB0cmVuZFNlcnZpY2U6IFRyZW5kU2VydmljZSwgcHJvdGVjdGVkIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSwgQEluamVjdChWSUVXU1RBVEVfUFJPVklERVIpIHByaXZhdGUgc3RhdGU6IFZpZXdNb2RlbFN0YXRlQmFzZTxJUmVzdWx0c1N0YXRlPikge1xuICAgICAgc3VwZXIoc3RhdGUsIHNuYWNrQmFyKTtcbiAgICAgIHRoaXMuY3JlYXRlRm9ybSgpO1xuICAgfVxuXG4gICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzLnVuaXRLZXkuc2V0VmFsdWUoW3RoaXMudW5pdHNbMF1dKTtcbiAgICAgIHRoaXMuZm9ybS5jb250cm9scy5pbmNsdWRlQWN0aW9ucy5zZXRWYWx1ZShcIkluY2x1ZGVBbGxcIik7XG4gICAgICB0aGlzLmZvcm0uY29udHJvbHMucGVyaW9kR3JvdXBpbmcuc2V0VmFsdWUoXCJQcmV2aW91c1F1YXJ0ZXJcIik7XG4gICAgICB0aGlzLmZvcm0uY29udHJvbHMuc3RhcnQuc2V0VmFsdWUobW9tZW50LnV0YygpLnN1YnRyYWN0KDEsICd5ZWFycycpLnRvSVNPU3RyaW5nKCkpO1xuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzLmVuZC5zZXRWYWx1ZShtb21lbnQudXRjKCkudG9JU09TdHJpbmcoKSk7XG4gICB9XG5cbiAgIHB1YmxpYyBvbkZvcm1TdWJtaXQoKSB7XG4gICAgICBpZiAoIXRoaXMuZm9ybS52YWxpZCkgeyByZXR1cm47IH1cbiAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG5cbiAgICAgIHZhciBkYXRhUmVxdWVzdDogVHJlbmREYXRhUmVxdWVzdER0byA9IG5ldyBUcmVuZERhdGFSZXF1ZXN0RHRvKCk7XG5cbiAgICAgIGlmICh0aGlzLnVuaXRUeXBlID09IFwidGVhbVwiKSB7XG4gICAgICAgICBkYXRhUmVxdWVzdC50ZWFtS2V5cyA9IHRoaXMuZm9ybS5jb250cm9scy51bml0S2V5LnZhbHVlLm1hcChwID0+IHAudmFsdWUpO1xuICAgICAgfVxuICAgICAgZWxzZSBpZiAodGhpcy51bml0VHlwZSA9IFwib3JnYW5pemF0aW9uXCIpIHtcbiAgICAgICAgIGRhdGFSZXF1ZXN0LmNsaWVudEtleXMgPSB0aGlzLmZvcm0uY29udHJvbHMudW5pdEtleS52YWx1ZS5tYXAocCA9PiBwLnZhbHVlKTtcbiAgICAgIH1cblxuICAgICAgZGF0YVJlcXVlc3QuZmFjdG9yS2V5cyA9IHRoaXMuZm9ybS5jb250cm9scy5mYWN0b3JLZXlzLnZhbHVlLm1hcChwID0+IHAudmFsdWUpO1xuICAgICAgZGF0YVJlcXVlc3QucGVyaW9kR3JvdXBpbmcgPSB0aGlzLmZvcm0uY29udHJvbHMucGVyaW9kR3JvdXBpbmcudmFsdWU7XG4gICAgICBkYXRhUmVxdWVzdC5kYXRlUmFuZ2UgPSBuZXcgRGF0ZVJhbmdlRHRvKCk7XG4gICAgICBkYXRhUmVxdWVzdC5kYXRlUmFuZ2UuZnJvbSA9IHRoaXMuZm9ybS5jb250cm9scy5zdGFydC52YWx1ZTtcbiAgICAgIGRhdGFSZXF1ZXN0LmRhdGVSYW5nZS50byA9IHRoaXMuZm9ybS5jb250cm9scy5lbmQudmFsdWU7XG4gICAgICBkYXRhUmVxdWVzdC5pbmNsdWRlQWN0aW9ucyA9IHRoaXMuZm9ybS5jb250cm9scy5pbmNsdWRlQWN0aW9ucy52YWx1ZTtcbiAgICAgIGRhdGFSZXF1ZXN0LmluY2x1ZGVTcHJlYWQgPSB0cnVlO1xuXG4gICAgICB0aGlzLnRyZW5kU2VydmljZS50ZWFtKGRhdGFSZXF1ZXN0KS5waXBlKHRha2UoMSkpXG4gICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgICAgc3VjY2VzcyA9PiB7XG4gICAgICAgICAgICAgICB0aGlzLmRhdGEgPSBzdWNjZXNzLnZhcmlhYmxlcztcbiAgICAgICAgICAgICAgIHRoaXMuY3VzdG9tQ29sb3JzID0gc3VjY2Vzcy52YXJpYWJsZXMuZmlsdGVyKHAgPT4gcC5jb2xvciAhPSBudWxsKS5tYXAocCA9PiB7IHJldHVybiB7IG5hbWU6IHAubmFtZSwgdmFsdWU6IHAuY29sb3IgfSB9KTtcblxuICAgICAgICAgICAgICAgZm9yIChsZXQgaXRlbSBvZiB0aGlzLmRhdGEpIHtcbiAgICAgICAgICAgICAgICAgIGZvciAobGV0IHMgb2YgaXRlbS5zZXJpZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgIHMubmFtZSA9IG5ldyBEYXRlKHMubmFtZSlcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgdGhpcy5nZW5lcmF0b3JOb3RlcyA9IHN1Y2Nlc3MuZ2VuZXJhdG9yTm90ZXM7XG4gICAgICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgIHRoaXMub25SZXNpemUoKTtcbiAgICAgICAgICAgIH0pO1xuICAgfVxuXG4gICBwdWJsaWMgb25SZXNpemUoKSB7XG4gICAgICBpZiAoIXRoaXMuY2hhcnRDb250YWluZXIpIHsgcmV0dXJuOyB9XG4gICAgICB0aGlzLnZpZXcgPSBbdGhpcy5jaGFydENvbnRhaW5lci5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoIC0gODAsIDQ1MF07XG4gICB9XG5cbiAgIHByaXZhdGUgY3JlYXRlRm9ybSgpOiB2b2lkIHtcbiAgICAgIHRoaXMuZm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgICAgdW5pdEtleTogW1wiXCIsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgICAgZmFjdG9yS2V5czogW1wiXCIsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgICAgaW5jbHVkZUFjdGlvbnM6IFtcIlwiLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgICAgIHBlcmlvZEdyb3VwaW5nOiBbeyB2YWx1ZTogXCJcIiB9LCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgICAgIHN0YXJ0OiBbeyB2YWx1ZTogXCJcIiB9LCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgICAgIGVuZDogW3sgdmFsdWU6IFwiXCIgfSwgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICB9KTtcbiAgIH07XG5cbiAgIHB1YmxpYyBjb21wYXJlRmFjdG9yT3B0aW9ucyhvMTogU2VsZWN0SXRlbSwgbzI6IFNlbGVjdEl0ZW0pIHtcbiAgICAgIGlmIChvMS52YWx1ZSA9PSBvMi52YWx1ZSlcbiAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgZWxzZSByZXR1cm4gZmFsc2VcbiAgIH1cblxuICAgcHJvdGVjdGVkIG9uRGF0YVVwZGF0ZShkYXRhOiBJUmVzdWx0c1N0YXRlKTogdm9pZCB7XG4gICAgICB0aGlzLmZhY3RvcnMgPSB0aGlzLmZhY3RvclNlcnZpY2UudG9TZWxlY3RMaXN0KGRhdGEuZmFjdG9yU2NvcmVzLm1vZGVsU3RydWN0dXJlKTtcbiAgICAgIHZhciBjb3JlRmFjdG9ycyA9IGRhdGEuZmFjdG9yU2NvcmVzLm1vZGVsU3RydWN0dXJlLmRlZmluaXRpb24uZmFjdG9ycy5maWx0ZXIocCA9PiBwLm5hbWUgPT0gXCJUZWFtIEVmZmVjdGl2ZW5lc3NcIikubWFwKHAgPT4gbmV3IFNlbGVjdEl0ZW0ocC5wdWJsaWNLZXksIHAubmFtZSkpO1xuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzLmZhY3RvcktleXMuc2V0VmFsdWUoY29yZUZhY3RvcnMpO1xuICAgfTtcbn1cbiIsIjxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiIGNsYXNzPVwiZGF0YXNlbGVjdG9yXCIgKG5nU3VibWl0KT1cIm9uRm9ybVN1Ym1pdCgpXCI+XG4gICA8ZGl2IGNsYXNzPVwibGlzdHRvb2xiYXJcIiBpZD1cImxpc3R0b29sYmFyXCI+XG4gICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJsaXN0dG9vbGJhci1pdGVtIHNlbGVjdFwiIGFwcGVhcmFuY2U9XCJmaWxsXCIgKm5nSWY9XCJ1bml0cy5sZW5ndGggPiAxXCI+XG4gICAgICAgICA8bWF0LWxhYmVsPlNlbGVjdCB7e3VuaXRUeXBlfX08L21hdC1sYWJlbD5cbiAgICAgICAgIDxtYXQtc2VsZWN0IGZvcm1Db250cm9sTmFtZT1cInVuaXRLZXlcIiBpZD1cInNlbGVjdC11bml0c1wiIGNsYXNzPVwidW5pdEtleVwiIG11bHRpcGxlIFtkaXNhYmxlZF09XCJ1bml0cy5sZW5ndGggPT0gMVwiPlxuICAgICAgICAgICAgPG1hdC1vcHRpb24gY2xhc3M9XCJzZWxlY3Qtb3B0aW9uXCIgKm5nRm9yPVwibGV0IHVuaXQgb2YgdW5pdHNcIiBbdmFsdWVdPVwidW5pdFwiPnt7dW5pdC5sYWJlbH19PC9tYXQtb3B0aW9uPlxuICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwibGlzdHRvb2xiYXItaXRlbSBzZWxlY3RcIiBhcHBlYXJhbmNlPVwiZmlsbFwiPlxuICAgICAgICAgPG1hdC1sYWJlbD5TZWxlY3QgZmFjdG9yczwvbWF0LWxhYmVsPlxuICAgICAgICAgPG1hdC1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwiZmFjdG9yS2V5c1wiIGlkPVwic2VsZWN0LWZhY3RvcnNcIiBjbGFzcz1cImZhY3RvcktleXNcIiBtdWx0aXBsZSBbY29tcGFyZVdpdGhdPVwiY29tcGFyZUZhY3Rvck9wdGlvbnNcIj5cbiAgICAgICAgICAgIDxtYXQtb3B0aW9uIGNsYXNzPVwic2VsZWN0LW9wdGlvblwiICpuZ0Zvcj1cImxldCBmYWN0b3Igb2YgZmFjdG9yc1wiIFtuZ0NsYXNzXT1cInsnbG93ZXInIDogZmFjdG9yLmxvd2VyfVwiIFt2YWx1ZV09XCJmYWN0b3JcIiBzZWxlY3RlZD1cInRydWVcIj57e2ZhY3Rvci5sYWJlbH19PC9tYXQtb3B0aW9uPlxuICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwibGlzdHRvb2xiYXItaXRlbSBzZWxlY3RcIiBhcHBlYXJhbmNlPVwiZmlsbFwiPlxuICAgICAgICAgPG1hdC1sYWJlbD5TdW1tYXJpemUgdG8gcGVyaW9kcyBvZjwvbWF0LWxhYmVsPlxuICAgICAgICAgPG1hdC1zZWxlY3QgY2xhc3M9XCJwZXJpb2RHcm91cGluZy1kcm9wZG93blwiIGlkPVwic2VsZWN0LXBlcmlvZEdyb3VwaW5nXCIgZm9ybUNvbnRyb2xOYW1lPVwicGVyaW9kR3JvdXBpbmdcIj5cbiAgICAgICAgICAgIDxtYXQtb3B0aW9uIGNsYXNzPVwic2VsZWN0LW9wdGlvblwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIHBlcmlvZEdyb3VwaW5nc1wiIFt2YWx1ZV09XCJpdGVtLnZhbHVlXCI+e3tpdGVtLmxhYmVsfX08L21hdC1vcHRpb24+XG4gICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJsaXN0dG9vbGJhci1pdGVtIHNlbGVjdFwiIGFwcGVhcmFuY2U9XCJmaWxsXCI+XG4gICAgICAgICA8bWF0LWxhYmVsPkFjdGlvbiBjb3VudDwvbWF0LWxhYmVsPlxuICAgICAgICAgPG1hdC1zZWxlY3QgY2xhc3M9XCJzZWxlY3RhY3Rpb25zLWRyb3Bkb3duXCIgaWQ9XCJzZWxlY3QtaW5jbHVkZUFjdGlvbnNcIiBmb3JtQ29udHJvbE5hbWU9XCJpbmNsdWRlQWN0aW9uc1wiPlxuICAgICAgICAgICAgPG1hdC1vcHRpb24gY2xhc3M9XCJzZWxlY3Qtb3B0aW9uXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaW5jbHVkZUFjdGlvbk9wdGlvbnNcIiBbdmFsdWVdPVwiaXRlbS52YWx1ZVwiIGNsYXNzPVwic2VsZWN0LW9wdGlvblwiPnt7aXRlbS5sYWJlbH19PC9tYXQtb3B0aW9uPlxuICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwibGlzdHRvb2xiYXItaXRlbSBzZWxlY3RcIiBhcHBlYXJhbmNlPVwiZmlsbFwiPlxuICAgICAgICAgPG1hdC1sYWJlbD5TZWxlY3QgZGF0ZSByYW5nZSA8L21hdC1sYWJlbD5cbiAgICAgICAgIDxtYXQtZGF0ZS1yYW5nZS1pbnB1dCBbcmFuZ2VQaWNrZXJdPVwicGlja2VyXCIgaWQ9XCJzZWxlY3QtZGF0ZXJhbmdlXCI+XG4gICAgICAgICAgICA8aW5wdXQgbWF0U3RhcnREYXRlIGZvcm1Db250cm9sTmFtZT1cInN0YXJ0XCIgcGxhY2Vob2xkZXI9XCJTdGFydCBkYXRlXCI+XG4gICAgICAgICAgICA8aW5wdXQgbWF0RW5kRGF0ZSBmb3JtQ29udHJvbE5hbWU9XCJlbmRcIiBwbGFjZWhvbGRlcj1cIkVuZCBkYXRlXCI+XG4gICAgICAgICA8L21hdC1kYXRlLXJhbmdlLWlucHV0PlxuICAgICAgICAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZSBtYXRTdWZmaXggW2Zvcl09XCJwaWNrZXJcIj48L21hdC1kYXRlcGlja2VyLXRvZ2dsZT5cbiAgICAgICAgIDxtYXQtZGF0ZS1yYW5nZS1waWNrZXIgI3BpY2tlcj48L21hdC1kYXRlLXJhbmdlLXBpY2tlcj5cblxuICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImZvcm0uY29udHJvbHMuc3RhcnQuaGFzRXJyb3IoJ21hdFN0YXJ0RGF0ZUludmFsaWQnKVwiPkludmFsaWQgc3RhcnQgZGF0ZTwvbWF0LWVycm9yPlxuICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImZvcm0uY29udHJvbHMuZW5kLmhhc0Vycm9yKCdtYXRFbmREYXRlSW52YWxpZCcpXCI+SW52YWxpZCBlbmQgZGF0ZTwvbWF0LWVycm9yPlxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgPGRpdiBjbGFzcz1cImxpc3R0b29sYmFyLWl0ZW1cIj5cbiAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidXR0b24gcHJpbWFyeVwiIGlkPVwiYnV0dG9uLXNob3d0cmVuZHNcIiBbbmdDbGFzc109XCJ7J2xvYWRpbmcnOiBsb2FkaW5nfVwiPjxzcGFuIGNsYXNzPVwicGgtZnVubmVsXCI+PC9zcGFuPiBTaG93IHRyZW5kczwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICA8L2Rpdj5cbjwvZm9ybT5cblxuPGRpdiBjbGFzcz1cIm1lc3NhZ2UgbWVzc2FnZS13YXJuaW5nXCIgKm5nSWY9XCJnZW5lcmF0b3JOb3Rlcy5sZW5ndGggPiAwXCI+XG4gICA8ZGl2IGNsYXNzPVwicGgtd2FybmluZyBpY29uXCI+PC9kaXY+IHt7Z2VuZXJhdG9yTm90ZXNbMF19fVxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJ3aXJlYm94IGNhbGx0b2FjdGlvbiBub2RhdGFcIiAqbmdJZj1cIiFkYXRhXCI+XG4gICA8ZGl2IGNsYXNzPVwiY29udGVudHdpdGhib3JkZXJzXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY2VudGVyXCI+XG4gICAgICAgICA8aW1nIHNyYz1cImFzc2V0cy9pbWcvaW1wcm92ZS5wbmdcIiAvPlxuICAgICAgICAgPGgyPkFyZSB5b3UgYWN0dWFsbHkgaW1wcm92aW5nPzwvaDI+XG4gICAgICAgICA8cD5MZWFybiBpZiB5b3VyIGltcHJvdmVtZW50cyBhcmUgYWN0dWFsbHkgd29ya2luZyBvdXQuIFRha2UgbW9yZSBtZWFzdXJlbWVudHMgYW5kIHBsb3QgdGhlIHRyZW5kcyBmb3IgeW91ciB7e3VuaXRUeXBlfX0ocykuIEhvdyBpcyB0aGF0IGZvciBlbXBpcmljaXNtPzwvcD5cbiAgICAgIDwvZGl2PlxuICAgPC9kaXY+XG48L2Rpdj5cblxuPGRpdiAjY2hhcnRjb250YWluZXIgY2xhc3M9XCJsaW5lY2hhcnRcIj5cbiAgIDxkaXYgY2xhc3M9XCJsaW5lY2hhcnQtY29udGFpbmVyXCIgKm5nSWY9XCJkYXRhXCI+XG4gICAgICA8bmd4LWNoYXJ0cy1saW5lLWNoYXJ0IFtsZWdlbmRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICh3aW5kb3c6cmVzaXplKT1cIm9uUmVzaXplKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmlld109XCJ2aWV3XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Nob3dYQXhpc0xhYmVsXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2hvd1lBeGlzTGFiZWxdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt4QXhpc109XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NjaGVtZV09XCIndml2aWQnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3lBeGlzXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGVnZW5kUG9zaXRpb25dPVwibGVnZW5kUG9zaXRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbeEF4aXNMYWJlbF09XCInRGF0ZSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbeUF4aXNMYWJlbF09XCInU2NvcmUnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RpbWVsaW5lXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbeVNjYWxlTWluXT1cIjBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbeVNjYWxlTWF4XT1cIjEwMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyYW5nZUZpbGxPcGFjaXR5XT1cIjAuMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZXN1bHRzXT1cImRhdGFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY3VzdG9tQ29sb3JzXT1cImN1c3RvbUNvbG9yc1wiPlxuICAgICAgPC9uZ3gtY2hhcnRzLWxpbmUtY2hhcnQ+XG4gICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwibWVzc2FnZSBtZXNzYWdlLWluZm9ybWF0aW9uXCIgKm5nSWY9XCJkYXRhXCI+XG4gICA8c3BhbiBjbGFzcz1cInBoLWluZm8gaWNvblwiPjwvc3Bhbj4gVGhpcyBjaGFydCBzaG93cyBob3cgZmFjdG9ycyBjaGFuZ2Ugb3ZlciB0aW1lLiBUaGUgaG9yaXpvbnRhbCBheGlzIHNob3dzIHRoZSB0aW1lLiBUaGUgdmVydGljYWwgYXhpcyBzaG93cyB0aGUgd2VpZ2h0ZWQgYXZlcmFnZSBzY29yZSBvbiB0aGUgZmFjdG9yLiBUaGUgbGlnaHQgYXJlYSBhcm91bmQgdGhlIGxpbmVzIHJlcHJlc2VudHMgdGhlIHNwcmVhZCBvZiBzY29yZXMgKGxvd2VyIGFuZCB1cHBlciAyNSUgb2Ygc2NvcmVzKS4gV2UgYWdncmVnYXRlIHJlc3VsdHMgZm9yIG9uZSBvciBtb3JlIHRlYW1zIGFuZCBmcm9tIG9uZSBvciBtb3JlIG9yZ2FuaXphdGlvbnMgdG8gdGhlIHBlcmlvZHMgeW91IGNob3NlICgxIG1vbnRoLCBxdWFydGVyLCBldGMpLiBGb3IgZWFjaCBwZXJpb2QsIHdlIHRha2UgdGhlIG1vc3QgcmVjZW50IHNuYXBzaG90IG9mIGVhY2ggdGVhbSBpbiB0aGF0IHBlcmlvZCAod2hlbiBhdmFpbGFibGUpLiBIaXQgXCJTaG93IFRyZW5kc1wiIHdoZW4geW91J3JlIHJlYWR5LlxuPC9kaXY+XG4iXX0=
|
|
138
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlbmRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zY3J1bXRlYW1zdXJ2ZXktdG9vbHMvc3JjL2xpYi9yZXN1bHRzL2NvbXBvbmVudHMvdHJlbmRzL3RyZW5kcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2NydW10ZWFtc3VydmV5LXRvb2xzL3NyYy9saWIvcmVzdWx0cy9jb21wb25lbnRzL3RyZW5kcy90cmVuZHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQXdDLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR2xGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEtBQUssTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUNqQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEMsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDakYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzVELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUMvRSxPQUFPLEVBQXNCLGtCQUFrQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFFbkcsT0FBTyxFQUFFLGVBQWUsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3RGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOzs7Ozs7Ozs7Ozs7OztBQVM3RSxNQUFNLE9BQU8sZUFBZ0IsU0FBUSwwQkFBeUM7SUF5QjNFLFlBQW9CLFdBQStCLEVB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QUFDLGtCQUFrQjt5Q0F4QjNNLEtBQUs7c0JBQXBCLEtBQUs7Z0JBQ1UsUUFBUTtzQkFBdkIsS0FBSztnQkFDOEIsY0FBYztzQkFBakQsU0FBUzt1QkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEluamVjdCwgSW5wdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVW50eXBlZEZvcm1CdWlsZGVyLCBVbnR5cGVkRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0U25hY2tCYXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXInO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgTGVnZW5kUG9zaXRpb24gfSBmcm9tICdAc3dpbWxhbmUvbmd4LWNoYXJ0cyc7XG5pbXBvcnQgKiBhcyBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBDb21wb25lbnRXaXRoVmlld1N0YXRlQmFzZSB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudFdpdGhWaWV3U3RhdGVCYXNlJztcbmltcG9ydCB7IFNlbGVjdEl0ZW0gfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvc2VsZWN0TGlzdEl0ZW0nO1xuaW1wb3J0IHsgRGF0ZVJhbmdlRHRvIH0gZnJvbSAnLi4vLi4vLi4vcGlwZXMvZGF0ZVJhbmdlL25neC1kYXRlUmFuZ2VEdG8ubW9kZWwnO1xuaW1wb3J0IHsgVmlld01vZGVsU3RhdGVCYXNlLCBWSUVXU1RBVEVfUFJPVklERVIgfSBmcm9tICcuLi8uLi8uLi92aWV3TW9kZWwvdmlld01vZGVsU3RhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBJUmVzdWx0c1N0YXRlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9JUmVzdWx0c1N0YXRlJztcbmltcG9ydCB7IERlbHRhUGVyaW9kRW51bSwgSW5jbHVkZUFjdGlvbnNNb2RlRW51bSB9IGZyb20gJy4uLy4uL21vZGVscy9mYWN0b3JTY29yZUR0byc7XG5pbXBvcnQgeyBUcmVuZERhdGFSZXF1ZXN0RHRvIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3RyZW5kRGF0YVJlcXVlc3REdG8ubW9kZWwnO1xuaW1wb3J0IHsgRmFjdG9yU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2ZhY3RvclNlcnZpY2UnO1xuaW1wb3J0IHsgVHJlbmRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdHJlbmQuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICAgc2VsZWN0b3I6ICd0cmVuZHMnLFxuICAgdGVtcGxhdGVVcmw6ICcuL3RyZW5kcy5jb21wb25lbnQuaHRtbCcsXG4gICBzdHlsZVVybHM6IFsnLi90cmVuZHMuY29tcG9uZW50Lmxlc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBUcmVuZHNDb21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnRXaXRoVmlld1N0YXRlQmFzZTxJUmVzdWx0c1N0YXRlPiB7XG4gICBASW5wdXQoKSBwdWJsaWMgdW5pdHM6IFNlbGVjdEl0ZW1bXTtcbiAgIEBJbnB1dCgpIHB1YmxpYyB1bml0VHlwZTogc3RyaW5nO1xuICAgQFZpZXdDaGlsZChcImNoYXJ0Y29udGFpbmVyXCIpIHB1YmxpYyBjaGFydENvbnRhaW5lcjogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD5cbiAgIHB1YmxpYyBmYWN0b3JzOiBTZWxlY3RJdGVtW107XG4gICBwdWJsaWMgZGF0YTogYW55W107XG4gICBwdWJsaWMgZ2VuZXJhdG9yTm90ZXM6IHN0cmluZ1tdID0gW107XG4gICBwdWJsaWMgbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuICAgcHVibGljIGZvcm06IFVudHlwZWRGb3JtR3JvdXA7XG4gICBwdWJsaWMgdmlldzogW251bWJlciwgbnVtYmVyXTtcbiAgIHB1YmxpYyBsZWdlbmRQb3NpdGlvbjogTGVnZW5kUG9zaXRpb24gPSBMZWdlbmRQb3NpdGlvbi5CZWxvdztcbiAgIHB1YmxpYyBjdXN0b21Db2xvcnMgPSBbXTtcblxuICAgcHVibGljIHBlcmlvZEdyb3VwaW5nczogU2VsZWN0SXRlbVtdID0gW1xuICAgICAgbmV3IFNlbGVjdEl0ZW0oRGVsdGFQZXJpb2RFbnVtLnByZXZpb3VzTW9udGgsIFwiMSBtb250aFwiKSxcbiAgICAgIG5ldyBTZWxlY3RJdGVtKERlbHRhUGVyaW9kRW51bS5wcmV2aW91c1F1YXJ0ZXIsIFwiMyBtb250aHNcIiksXG4gICAgICBuZXcgU2VsZWN0SXRlbShEZWx0YVBlcmlvZEVudW0ucHJldmlvdXNIYWxmWWVhciwgXCI2IG1vbnRoc1wiKSxcbiAgICAgIG5ldyBTZWxlY3RJdGVtKERlbHRhUGVyaW9kRW51bS5wcmV2aW91c1llYXIsIFwiMTIgbW9udGhzXCIpXG4gICBdXG4gICBwdWJsaWMgaW5jbHVkZUFjdGlvbk9wdGlvbnM6IFNlbGVjdEl0ZW1bXSA9IFtcbiAgICAgIG5ldyBTZWxlY3RJdGVtKEluY2x1ZGVBY3Rpb25zTW9kZUVudW0uaW5jbHVkZUFsbCwgXCJBbGwgYWN0aW9uc1wiKSxcbiAgICAgIG5ldyBTZWxlY3RJdGVtKEluY2x1ZGVBY3Rpb25zTW9kZUVudW0uaW5jbHVkZVJlbGV2YW50LCBcIkFjdGlvbnMgd2l0aCBleHBlY3RlZCBpbXBhY3RcIiksXG4gICAgICBuZXcgU2VsZWN0SXRlbShJbmNsdWRlQWN0aW9uc01vZGVFbnVtLm5vbmUsIFwiTm9uZVwiKVxuICAgXVxuXG4gICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZvcm1CdWlsZGVyOiBVbnR5cGVkRm9ybUJ1aWxkZXIsIHByb3RlY3RlZCBzbmFja0JhcjogTWF0U25hY2tCYXIsIHByaXZhdGUgZmFjdG9yU2VydmljZTogRmFjdG9yU2VydmljZSwgcHJpdmF0ZSB0cmVuZFNlcnZpY2U6IFRyZW5kU2VydmljZSwgcHJvdGVjdGVkIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSwgQEluamVjdChWSUVXU1RBVEVfUFJPVklERVIpIHByaXZhdGUgc3RhdGU6IFZpZXdNb2RlbFN0YXRlQmFzZTxJUmVzdWx0c1N0YXRlPikge1xuICAgICAgc3VwZXIoc3RhdGUsIHNuYWNrQmFyKTtcbiAgICAgIHRoaXMuY3JlYXRlRm9ybSgpO1xuICAgfVxuXG4gICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzLnVuaXRLZXkuc2V0VmFsdWUoW3RoaXMudW5pdHNbMF1dKTtcbiAgICAgIHRoaXMuZm9ybS5jb250cm9scy5pbmNsdWRlQWN0aW9ucy5zZXRWYWx1ZShcIkluY2x1ZGVBbGxcIik7XG4gICAgICB0aGlzLmZvcm0uY29udHJvbHMucGVyaW9kR3JvdXBpbmcuc2V0VmFsdWUoXCJQcmV2aW91c1F1YXJ0ZXJcIik7XG4gICAgICB0aGlzLmZvcm0uY29udHJvbHMuc3RhcnQuc2V0VmFsdWUobW9tZW50LnV0YygpLnN1YnRyYWN0KDEsICd5ZWFycycpLnRvSVNPU3RyaW5nKCkpO1xuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzLmVuZC5zZXRWYWx1ZShtb21lbnQudXRjKCkudG9JU09TdHJpbmcoKSk7XG4gICB9XG5cbiAgIHB1YmxpYyBvbkZvcm1TdWJtaXQoKSB7XG4gICAgICBpZiAoIXRoaXMuZm9ybS52YWxpZCkgeyByZXR1cm47IH1cbiAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG5cbiAgICAgIHZhciBkYXRhUmVxdWVzdDogVHJlbmREYXRhUmVxdWVzdER0byA9IG5ldyBUcmVuZERhdGFSZXF1ZXN0RHRvKCk7XG5cbiAgICAgIGlmICh0aGlzLnVuaXRUeXBlID09IFwidGVhbVwiKSB7XG4gICAgICAgICBkYXRhUmVxdWVzdC50ZWFtS2V5cyA9IHRoaXMuZm9ybS5jb250cm9scy51bml0S2V5LnZhbHVlLm1hcChwID0+IHAudmFsdWUpO1xuICAgICAgfVxuICAgICAgZWxzZSBpZiAodGhpcy51bml0VHlwZSA9IFwib3JnYW5pemF0aW9uXCIpIHtcbiAgICAgICAgIGRhdGFSZXF1ZXN0LmNsaWVudEtleXMgPSB0aGlzLmZvcm0uY29udHJvbHMudW5pdEtleS52YWx1ZS5tYXAocCA9PiBwLnZhbHVlKTtcbiAgICAgIH1cblxuICAgICAgZGF0YVJlcXVlc3QuZmFjdG9yS2V5cyA9IHRoaXMuZm9ybS5jb250cm9scy5mYWN0b3JLZXlzLnZhbHVlLm1hcChwID0+IHAudmFsdWUpO1xuICAgICAgZGF0YVJlcXVlc3QucGVyaW9kR3JvdXBpbmcgPSB0aGlzLmZvcm0uY29udHJvbHMucGVyaW9kR3JvdXBpbmcudmFsdWU7XG4gICAgICBkYXRhUmVxdWVzdC5kYXRlUmFuZ2UgPSBuZXcgRGF0ZVJhbmdlRHRvKCk7XG4gICAgICBkYXRhUmVxdWVzdC5kYXRlUmFuZ2UuZnJvbSA9IHRoaXMuZm9ybS5jb250cm9scy5zdGFydC52YWx1ZTtcbiAgICAgIGRhdGFSZXF1ZXN0LmRhdGVSYW5nZS50byA9IHRoaXMuZm9ybS5jb250cm9scy5lbmQudmFsdWU7XG4gICAgICBkYXRhUmVxdWVzdC5pbmNsdWRlQWN0aW9ucyA9IHRoaXMuZm9ybS5jb250cm9scy5pbmNsdWRlQWN0aW9ucy52YWx1ZTtcbiAgICAgIGRhdGFSZXF1ZXN0LmluY2x1ZGVTcHJlYWQgPSB0cnVlO1xuXG4gICAgICB0aGlzLnRyZW5kU2VydmljZS50ZWFtKGRhdGFSZXF1ZXN0KS5waXBlKHRha2UoMSkpXG4gICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgICAgc3VjY2VzcyA9PiB7XG4gICAgICAgICAgICAgICB0aGlzLmRhdGEgPSBzdWNjZXNzLnZhcmlhYmxlcztcbiAgICAgICAgICAgICAgIHRoaXMuY3VzdG9tQ29sb3JzID0gc3VjY2Vzcy52YXJpYWJsZXMuZmlsdGVyKHAgPT4gcC5jb2xvciAhPSBudWxsKS5tYXAocCA9PiB7IHJldHVybiB7IG5hbWU6IHAubmFtZSwgdmFsdWU6IHAuY29sb3IgfSB9KTtcblxuICAgICAgICAgICAgICAgZm9yIChsZXQgaXRlbSBvZiB0aGlzLmRhdGEpIHtcbiAgICAgICAgICAgICAgICAgIGZvciAobGV0IHMgb2YgaXRlbS5zZXJpZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgIHMubmFtZSA9IG5ldyBEYXRlKHMubmFtZSlcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgdGhpcy5nZW5lcmF0b3JOb3RlcyA9IHN1Y2Nlc3MuZ2VuZXJhdG9yTm90ZXM7XG4gICAgICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgIHRoaXMub25SZXNpemUoKTtcbiAgICAgICAgICAgIH0pO1xuICAgfVxuXG4gICBwdWJsaWMgb25SZXNpemUoKSB7XG4gICAgICBpZiAoIXRoaXMuY2hhcnRDb250YWluZXIpIHsgcmV0dXJuOyB9XG4gICAgICB0aGlzLnZpZXcgPSBbdGhpcy5jaGFydENvbnRhaW5lci5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoIC0gODAsIDQ1MF07XG4gICB9XG5cbiAgIHByaXZhdGUgY3JlYXRlRm9ybSgpOiB2b2lkIHtcbiAgICAgIHRoaXMuZm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgICAgdW5pdEtleTogW1wiXCIsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgICAgZmFjdG9yS2V5czogW1wiXCIsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgICAgaW5jbHVkZUFjdGlvbnM6IFtcIlwiLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgICAgIHBlcmlvZEdyb3VwaW5nOiBbeyB2YWx1ZTogXCJcIiB9LCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgICAgIHN0YXJ0OiBbeyB2YWx1ZTogXCJcIiB9LCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgICAgIGVuZDogW3sgdmFsdWU6IFwiXCIgfSwgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICB9KTtcbiAgIH07XG5cbiAgIHB1YmxpYyBjb21wYXJlRmFjdG9yT3B0aW9ucyhvMTogU2VsZWN0SXRlbSwgbzI6IFNlbGVjdEl0ZW0pIHtcbiAgICAgIGlmIChvMS52YWx1ZSA9PSBvMi52YWx1ZSlcbiAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgZWxzZSByZXR1cm4gZmFsc2VcbiAgIH1cblxuICAgcHJvdGVjdGVkIG9uRGF0YVVwZGF0ZShkYXRhOiBJUmVzdWx0c1N0YXRlKTogdm9pZCB7XG4gICAgICB0aGlzLmZhY3RvcnMgPSB0aGlzLmZhY3RvclNlcnZpY2UudG9TZWxlY3RMaXN0KGRhdGEuZmFjdG9yU2NvcmVzLm1vZGVsU3RydWN0dXJlKTtcbiAgICAgIHZhciBjb3JlRmFjdG9ycyA9IGRhdGEuZmFjdG9yU2NvcmVzLm1vZGVsU3RydWN0dXJlLmRlZmluaXRpb24uZmFjdG9ycy5maWx0ZXIocCA9PiBwLm5hbWUgPT0gXCJUZWFtIEVmZmVjdGl2ZW5lc3NcIikubWFwKHAgPT4gbmV3IFNlbGVjdEl0ZW0ocC5wdWJsaWNLZXksIHAubmFtZSkpO1xuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzLmZhY3RvcktleXMuc2V0VmFsdWUoY29yZUZhY3RvcnMpO1xuICAgfTtcbn1cbiIsIjxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiIGNsYXNzPVwiZGF0YXNlbGVjdG9yXCIgKG5nU3VibWl0KT1cIm9uRm9ybVN1Ym1pdCgpXCI+XG4gICA8ZGl2IGNsYXNzPVwibGlzdHRvb2xiYXJcIiBpZD1cImxpc3R0b29sYmFyXCI+XG4gICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJsaXN0dG9vbGJhci1pdGVtIHNlbGVjdFwiIGFwcGVhcmFuY2U9XCJmaWxsXCIgKm5nSWY9XCJ1bml0cy5sZW5ndGggPiAxXCI+XG4gICAgICAgICA8bWF0LWxhYmVsPlNlbGVjdCB7e3VuaXRUeXBlfX08L21hdC1sYWJlbD5cbiAgICAgICAgIDxtYXQtc2VsZWN0IGZvcm1Db250cm9sTmFtZT1cInVuaXRLZXlcIiBpZD1cInNlbGVjdC11bml0c1wiIGNsYXNzPVwidW5pdEtleVwiIG11bHRpcGxlIFtkaXNhYmxlZF09XCJ1bml0cy5sZW5ndGggPT0gMVwiPlxuICAgICAgICAgICAgPG1hdC1vcHRpb24gY2xhc3M9XCJzZWxlY3Qtb3B0aW9uXCIgKm5nRm9yPVwibGV0IHVuaXQgb2YgdW5pdHNcIiBbdmFsdWVdPVwidW5pdFwiPnt7dW5pdC5sYWJlbH19PC9tYXQtb3B0aW9uPlxuICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwibGlzdHRvb2xiYXItaXRlbSBzZWxlY3RcIiBhcHBlYXJhbmNlPVwiZmlsbFwiPlxuICAgICAgICAgPG1hdC1sYWJlbD5TZWxlY3QgZmFjdG9yczwvbWF0LWxhYmVsPlxuICAgICAgICAgPG1hdC1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwiZmFjdG9yS2V5c1wiIGlkPVwic2VsZWN0LWZhY3RvcnNcIiBjbGFzcz1cImZhY3RvcktleXNcIiBtdWx0aXBsZSBbY29tcGFyZVdpdGhdPVwiY29tcGFyZUZhY3Rvck9wdGlvbnNcIj5cbiAgICAgICAgICAgIDxtYXQtb3B0aW9uIGNsYXNzPVwic2VsZWN0LW9wdGlvblwiICpuZ0Zvcj1cImxldCBmYWN0b3Igb2YgZmFjdG9yc1wiIFtuZ0NsYXNzXT1cInsnbG93ZXInIDogZmFjdG9yLmxvd2VyfVwiIFt2YWx1ZV09XCJmYWN0b3JcIiBzZWxlY3RlZD1cInRydWVcIj57e2ZhY3Rvci5sYWJlbH19PC9tYXQtb3B0aW9uPlxuICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwibGlzdHRvb2xiYXItaXRlbSBzZWxlY3RcIiBhcHBlYXJhbmNlPVwiZmlsbFwiPlxuICAgICAgICAgPG1hdC1sYWJlbD5TdW1tYXJpemUgdG8gcGVyaW9kcyBvZjwvbWF0LWxhYmVsPlxuICAgICAgICAgPG1hdC1zZWxlY3QgY2xhc3M9XCJwZXJpb2RHcm91cGluZy1kcm9wZG93blwiIGlkPVwic2VsZWN0LXBlcmlvZEdyb3VwaW5nXCIgZm9ybUNvbnRyb2xOYW1lPVwicGVyaW9kR3JvdXBpbmdcIj5cbiAgICAgICAgICAgIDxtYXQtb3B0aW9uIGNsYXNzPVwic2VsZWN0LW9wdGlvblwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIHBlcmlvZEdyb3VwaW5nc1wiIFt2YWx1ZV09XCJpdGVtLnZhbHVlXCI+e3tpdGVtLmxhYmVsfX08L21hdC1vcHRpb24+XG4gICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJsaXN0dG9vbGJhci1pdGVtIHNlbGVjdFwiIGFwcGVhcmFuY2U9XCJmaWxsXCI+XG4gICAgICAgICA8bWF0LWxhYmVsPkFjdGlvbiBjb3VudDwvbWF0LWxhYmVsPlxuICAgICAgICAgPG1hdC1zZWxlY3QgY2xhc3M9XCJzZWxlY3RhY3Rpb25zLWRyb3Bkb3duXCIgaWQ9XCJzZWxlY3QtaW5jbHVkZUFjdGlvbnNcIiBmb3JtQ29udHJvbE5hbWU9XCJpbmNsdWRlQWN0aW9uc1wiPlxuICAgICAgICAgICAgPG1hdC1vcHRpb24gY2xhc3M9XCJzZWxlY3Qtb3B0aW9uXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaW5jbHVkZUFjdGlvbk9wdGlvbnNcIiBbdmFsdWVdPVwiaXRlbS52YWx1ZVwiIGNsYXNzPVwic2VsZWN0LW9wdGlvblwiPnt7aXRlbS5sYWJlbH19PC9tYXQtb3B0aW9uPlxuICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwibGlzdHRvb2xiYXItaXRlbSBzZWxlY3RcIiBhcHBlYXJhbmNlPVwiZmlsbFwiPlxuICAgICAgICAgPG1hdC1sYWJlbD5TZWxlY3QgZGF0ZSByYW5nZSA8L21hdC1sYWJlbD5cbiAgICAgICAgIDxtYXQtZGF0ZS1yYW5nZS1pbnB1dCBbcmFuZ2VQaWNrZXJdPVwicGlja2VyXCIgaWQ9XCJzZWxlY3QtZGF0ZXJhbmdlXCI+XG4gICAgICAgICAgICA8aW5wdXQgbWF0U3RhcnREYXRlIGZvcm1Db250cm9sTmFtZT1cInN0YXJ0XCIgcGxhY2Vob2xkZXI9XCJTdGFydCBkYXRlXCI+XG4gICAgICAgICAgICA8aW5wdXQgbWF0RW5kRGF0ZSBmb3JtQ29udHJvbE5hbWU9XCJlbmRcIiBwbGFjZWhvbGRlcj1cIkVuZCBkYXRlXCI+XG4gICAgICAgICA8L21hdC1kYXRlLXJhbmdlLWlucHV0PlxuICAgICAgICAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZSBtYXRTdWZmaXggW2Zvcl09XCJwaWNrZXJcIj48L21hdC1kYXRlcGlja2VyLXRvZ2dsZT5cbiAgICAgICAgIDxtYXQtZGF0ZS1yYW5nZS1waWNrZXIgI3BpY2tlcj48L21hdC1kYXRlLXJhbmdlLXBpY2tlcj5cblxuICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImZvcm0uY29udHJvbHMuc3RhcnQuaGFzRXJyb3IoJ21hdFN0YXJ0RGF0ZUludmFsaWQnKVwiPkludmFsaWQgc3RhcnQgZGF0ZTwvbWF0LWVycm9yPlxuICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImZvcm0uY29udHJvbHMuZW5kLmhhc0Vycm9yKCdtYXRFbmREYXRlSW52YWxpZCcpXCI+SW52YWxpZCBlbmQgZGF0ZTwvbWF0LWVycm9yPlxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgPGRpdiBjbGFzcz1cImxpc3R0b29sYmFyLWl0ZW1cIj5cbiAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidXR0b24gcHJpbWFyeVwiIGlkPVwiYnV0dG9uLXNob3d0cmVuZHNcIiBbbmdDbGFzc109XCJ7J2xvYWRpbmcnOiBsb2FkaW5nfVwiPjxzcGFuIGNsYXNzPVwicGgtZnVubmVsXCI+PC9zcGFuPiBTaG93IHRyZW5kczwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICA8L2Rpdj5cbjwvZm9ybT5cblxuPGRpdiBjbGFzcz1cIm1lc3NhZ2UgbWVzc2FnZS13YXJuaW5nXCIgKm5nSWY9XCJnZW5lcmF0b3JOb3Rlcy5sZW5ndGggPiAwXCI+XG4gICA8ZGl2IGNsYXNzPVwicGgtd2FybmluZyBpY29uXCI+PC9kaXY+IHt7Z2VuZXJhdG9yTm90ZXNbMF19fVxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJ3aXJlYm94IGNhbGx0b2FjdGlvbiBub2RhdGFcIiAqbmdJZj1cIiFkYXRhXCI+XG4gICA8ZGl2IGNsYXNzPVwiY29udGVudHdpdGhib3JkZXJzXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY2VudGVyXCI+XG4gICAgICAgICA8aW1nIHNyYz1cImFzc2V0cy9pbWcvaW1wcm92ZS5wbmdcIiAvPlxuICAgICAgICAgPGgyPkFyZSB5b3UgYWN0dWFsbHkgaW1wcm92aW5nPzwvaDI+XG4gICAgICAgICA8cD5MZWFybiBpZiB5b3VyIGltcHJvdmVtZW50cyBhcmUgYWN0dWFsbHkgd29ya2luZyBvdXQuIFRha2UgbW9yZSBtZWFzdXJlbWVudHMgYW5kIHBsb3QgdGhlIHRyZW5kcyBmb3IgeW91ciB7e3VuaXRUeXBlfX0ocykuIEhvdyBpcyB0aGF0IGZvciBlbXBpcmljaXNtPzwvcD5cbiAgICAgIDwvZGl2PlxuICAgPC9kaXY+XG48L2Rpdj5cblxuPGRpdiAjY2hhcnRjb250YWluZXIgY2xhc3M9XCJsaW5lY2hhcnRcIj5cbiAgIDxkaXYgY2xhc3M9XCJsaW5lY2hhcnQtY29udGFpbmVyXCIgKm5nSWY9XCJkYXRhXCI+XG4gICAgICA8bmd4LWNoYXJ0cy1saW5lLWNoYXJ0IFtsZWdlbmRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICh3aW5kb3c6cmVzaXplKT1cIm9uUmVzaXplKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmlld109XCJ2aWV3XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Nob3dYQXhpc0xhYmVsXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2hvd1lBeGlzTGFiZWxdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt4QXhpc109XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NjaGVtZV09XCIndml2aWQnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3lBeGlzXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGVnZW5kUG9zaXRpb25dPVwibGVnZW5kUG9zaXRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbeEF4aXNMYWJlbF09XCInRGF0ZSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbeUF4aXNMYWJlbF09XCInU2NvcmUnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RpbWVsaW5lXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbeVNjYWxlTWluXT1cIjBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbeVNjYWxlTWF4XT1cIjEwMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyYW5nZUZpbGxPcGFjaXR5XT1cIjAuMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZXN1bHRzXT1cImRhdGFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY3VzdG9tQ29sb3JzXT1cImN1c3RvbUNvbG9yc1wiPlxuICAgICAgPC9uZ3gtY2hhcnRzLWxpbmUtY2hhcnQ+XG4gICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwibWVzc2FnZSBtZXNzYWdlLWluZm9ybWF0aW9uXCIgKm5nSWY9XCJkYXRhXCI+XG4gICA8c3BhbiBjbGFzcz1cInBoLWluZm8gaWNvblwiPjwvc3Bhbj4gVGhpcyBjaGFydCBzaG93cyBob3cgZmFjdG9ycyBjaGFuZ2Ugb3ZlciB0aW1lLiBUaGUgaG9yaXpvbnRhbCBheGlzIHNob3dzIHRoZSB0aW1lLiBUaGUgdmVydGljYWwgYXhpcyBzaG93cyB0aGUgd2VpZ2h0ZWQgYXZlcmFnZSBzY29yZSBvbiB0aGUgZmFjdG9yLiBUaGUgbGlnaHQgYXJlYSBhcm91bmQgdGhlIGxpbmVzIHJlcHJlc2VudHMgdGhlIHNwcmVhZCBvZiBzY29yZXMgKGxvd2VyIGFuZCB1cHBlciAyNSUgb2Ygc2NvcmVzKS4gV2UgYWdncmVnYXRlIHJlc3VsdHMgZm9yIG9uZSBvciBtb3JlIHRlYW1zIGFuZCBmcm9tIG9uZSBvciBtb3JlIG9yZ2FuaXphdGlvbnMgdG8gdGhlIHBlcmlvZHMgeW91IGNob3NlICgxIG1vbnRoLCBxdWFydGVyLCBldGMpLiBGb3IgZWFjaCBwZXJpb2QsIHdlIHRha2UgdGhlIG1vc3QgcmVjZW50IHNuYXBzaG90IG9mIGVhY2ggdGVhbSBpbiB0aGF0IHBlcmlvZCAod2hlbiBhdmFpbGFibGUpLiBIaXQgXCJTaG93IFRyZW5kc1wiIHdoZW4geW91J3JlIHJlYWR5LlxuPC9kaXY+XG4iXX0=
|
|
@@ -23,14 +23,14 @@ export class UpdateInProgressComponent extends ComponentWithViewStateBase {
|
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
25
|
;
|
|
26
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
27
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.
|
|
26
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: UpdateInProgressComponent, deps: [{ token: VIEWSTATE_PROVIDER }, { token: i1.MatSnackBar }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: UpdateInProgressComponent, selector: "update-in-progress", usesInheritance: true, ngImport: i0, template: "<div class=\"update-in-progress\" *ngIf=\"delayedReloading\">\n <span class=\"icon ph-floppy-disk-bold\"></span>\n</div>\n", styles: [".smallTextUppercase{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%}.bigletteredbutton{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;text-decoration:none;background:#ffffff1a;margin-bottom:10px;display:flex;align-content:center;border-radius:20px;padding:15px;font-size:24px;border:2px solid #1F3F8F;border-bottom:6px solid #1F3F8F;color:#fff;align-items:center;cursor:pointer}.bigletteredbutton .free{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;background:#fff73f;color:#2f2f2f;padding:3px 5px;margin-left:20px;border-radius:10px}.bigletteredbutton .plan{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;background:#fff;color:#2f2f2f;padding:3px 5px;margin-left:20px;border-radius:10px}.bigletteredbutton:hover,.bigletteredbutton.selected{border:2px solid #fff73f;border-bottom:6px solid #fff73f}.bigletteredbutton .button-letter{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;font-family:StevieSans,sans-serif;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;background:#fff73f;color:#1f3f8f;margin-right:20px}.bigletteredbutton .button-letter .ph{color:#1f3f8f}.bigletteredbutton .button-letter:hover{background:#1f3f8f;color:#fff73f}.bigletteredbutton .button-letter:hover .ph{color:#fff73f}.roundicon-yellow{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;font-family:StevieSans,sans-serif;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;background:#fff73f;color:#1f3f8f}.roundicon-yellow .ph{color:#1f3f8f}.roundicon-yellow:hover{background:#1f3f8f;color:#fff73f}.roundicon-yellow:hover .ph{color:#fff73f}.roundicon{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;font-family:StevieSans,sans-serif;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center}.roundicon-large{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;font-family:StevieSans,sans-serif;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;border-radius:60px;height:120px;width:120px}.update-in-progress{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%;-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;background:#2f2f2f;position:fixed;right:0;width:20px;height:20px;bottom:0;padding:5px;display:flex;justify-content:center;align-items:center}.update-in-progress .icon{color:#f0f0f0;font-size:18px;animation:beating;animation-duration:1s;animation-iteration-count:infinite}@keyframes beating{0%{transform:scale(1)}50%{transform:scale(1.2)}to{transform:scale(1)}}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
28
28
|
}
|
|
29
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
29
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: UpdateInProgressComponent, decorators: [{
|
|
30
30
|
type: Component,
|
|
31
31
|
args: [{ selector: 'update-in-progress', template: "<div class=\"update-in-progress\" *ngIf=\"delayedReloading\">\n <span class=\"icon ph-floppy-disk-bold\"></span>\n</div>\n", styles: [".smallTextUppercase{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%}.bigletteredbutton{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;text-decoration:none;background:#ffffff1a;margin-bottom:10px;display:flex;align-content:center;border-radius:20px;padding:15px;font-size:24px;border:2px solid #1F3F8F;border-bottom:6px solid #1F3F8F;color:#fff;align-items:center;cursor:pointer}.bigletteredbutton .free{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;background:#fff73f;color:#2f2f2f;padding:3px 5px;margin-left:20px;border-radius:10px}.bigletteredbutton .plan{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;background:#fff;color:#2f2f2f;padding:3px 5px;margin-left:20px;border-radius:10px}.bigletteredbutton:hover,.bigletteredbutton.selected{border:2px solid #fff73f;border-bottom:6px solid #fff73f}.bigletteredbutton .button-letter{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;font-family:StevieSans,sans-serif;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;background:#fff73f;color:#1f3f8f;margin-right:20px}.bigletteredbutton .button-letter .ph{color:#1f3f8f}.bigletteredbutton .button-letter:hover{background:#1f3f8f;color:#fff73f}.bigletteredbutton .button-letter:hover .ph{color:#fff73f}.roundicon-yellow{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;font-family:StevieSans,sans-serif;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;background:#fff73f;color:#1f3f8f}.roundicon-yellow .ph{color:#1f3f8f}.roundicon-yellow:hover{background:#1f3f8f;color:#fff73f}.roundicon-yellow:hover .ph{color:#fff73f}.roundicon{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;font-family:StevieSans,sans-serif;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center}.roundicon-large{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;font-family:StevieSans,sans-serif;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;border-radius:60px;height:120px;width:120px}.update-in-progress{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%;-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;background:#2f2f2f;position:fixed;right:0;width:20px;height:20px;bottom:0;padding:5px;display:flex;justify-content:center;align-items:center}.update-in-progress .icon{color:#f0f0f0;font-size:18px;animation:beating;animation-duration:1s;animation-iteration-count:infinite}@keyframes beating{0%{transform:scale(1)}50%{transform:scale(1.2)}to{transform:scale(1)}}\n"] }]
|
|
32
32
|
}], ctorParameters: () => [{ type: i3.ViewModelStateBase, decorators: [{
|
|
33
33
|
type: Inject,
|
|
34
34
|
args: [VIEWSTATE_PROVIDER]
|
|
35
35
|
}] }, { type: i1.MatSnackBar }] });
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLWluLXByb2dyZXNzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zY3J1bXRlYW1zdXJ2ZXktdG9vbHMvc3JjL2xpYi9yZXN1bHRzL2NvbXBvbmVudHMvdXBkYXRlLWluLXByb2dyZXNzL3VwZGF0ZS1pbi1wcm9ncmVzcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2NydW10ZWFtc3VydmV5LXRvb2xzL3NyYy9saWIvcmVzdWx0cy9jb21wb25lbnRzL3VwZGF0ZS1pbi1wcm9ncmVzcy91cGRhdGUtaW4tcHJvZ3Jlc3MuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHbEQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDakYsT0FBTyxFQUFzQixrQkFBa0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDOzs7OztBQVFuRyxNQUFNLE9BQU8seUJBQTBCLFNBQVEsMEJBQXlDO0lBSXJGLFlBQWtELEtBQWtELEVBQVksUUFBcUI7UUFDbEksS0FBSyxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztRQUR3QixVQUFLLEdBQUwsS0FBSyxDQUE2QztRQUFZLGFBQVEsR0FBUixRQUFRLENBQWE7SUFFckksQ0FBQztJQUVNLFFBQVE7UUFDWixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUMxRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsUUFBUSxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUFBLENBQUM7SUFFSyxXQUFXO1FBQ2YsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQyxDQUFDO0lBQ0osQ0FBQztJQUFBLENBQUM7K0dBbEJRLHlCQUF5QixrQkFJZixrQkFBa0I7bUdBSjVCLHlCQUF5QixpRkNadEMsOEhBR0E7OzRGRFNhLHlCQUF5QjtrQkFMckMsU0FBUzsrQkFDRyxvQkFBb0I7OzBCQVFqQixNQUFNOzJCQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRTbmFja0JhciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhcic7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENvbXBvbmVudFdpdGhWaWV3U3RhdGVCYXNlIH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50V2l0aFZpZXdTdGF0ZUJhc2UnO1xuaW1wb3J0IHsgVmlld01vZGVsU3RhdGVCYXNlLCBWSUVXU1RBVEVfUFJPVklERVIgfSBmcm9tICcuLi8uLi8uLi92aWV3TW9kZWwvdmlld01vZGVsU3RhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBJUmVzdWx0c1N0YXRlLCBJVGVhbVJlcG9ydFJlc3VsdHNTdGF0ZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSVJlc3VsdHNTdGF0ZSc7XG5cbkBDb21wb25lbnQoe1xuICAgc2VsZWN0b3I6ICd1cGRhdGUtaW4tcHJvZ3Jlc3MnLFxuICAgdGVtcGxhdGVVcmw6ICcuL3VwZGF0ZS1pbi1wcm9ncmVzcy5jb21wb25lbnQuaHRtbCcsXG4gICBzdHlsZVVybHM6IFsnLi91cGRhdGUtaW4tcHJvZ3Jlc3MuY29tcG9uZW50Lmxlc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBVcGRhdGVJblByb2dyZXNzQ29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50V2l0aFZpZXdTdGF0ZUJhc2U8SVJlc3VsdHNTdGF0ZT4ge1xuICAgcHVibGljIGRlbGF5ZWRSZWxvYWRpbmc6IGJvb2xlYW47XG4gICBwcml2YXRlIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gICBjb25zdHJ1Y3RvcihASW5qZWN0KFZJRVdTVEFURV9QUk9WSURFUikgcHJvdGVjdGVkIHN0YXRlOiBWaWV3TW9kZWxTdGF0ZUJhc2U8SVRlYW1SZXBvcnRSZXN1bHRzU3RhdGU+LCBwcm90ZWN0ZWQgc25hY2tCYXI6IE1hdFNuYWNrQmFyKSB7XG4gICAgICBzdXBlcihzdGF0ZSwgc25hY2tCYXIpO1xuICAgfVxuXG4gICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMuc3RhdGUudXBkYXRpbmcuc3Vic2NyaWJlKHJlbG9hZGVkID0+IHtcbiAgICAgICAgIHRoaXMuZGVsYXllZFJlbG9hZGluZyA9IHJlbG9hZGVkO1xuICAgICAgfSk7XG4gICB9O1xuXG4gICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICBpZiAodGhpcy5zdWJzY3JpcHRpb24pIHtcbiAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICB9XG4gICB9O1xufVxuIiwiPGRpdiBjbGFzcz1cInVwZGF0ZS1pbi1wcm9ncmVzc1wiICpuZ0lmPVwiZGVsYXllZFJlbG9hZGluZ1wiPlxuICAgPHNwYW4gY2xhc3M9XCJpY29uIHBoLWZsb3BweS1kaXNrLWJvbGRcIj48L3NwYW4+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -145,14 +145,14 @@ export class UserProfileComponent extends ComponentWithViewStateBase {
|
|
|
145
145
|
}
|
|
146
146
|
}
|
|
147
147
|
;
|
|
148
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
149
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: UserProfileComponent, selector: "userprofile", usesInheritance: true, ngImport: i0, template: "<div class=\"form-profile\">\n <h2>My Profile</h2>\n <form class=\"form\" [formGroup]=\"form\" (ngSubmit)=\"onSubmit(formDirective)\" #formDirective=\"ngForm\">\n <div class=\"form-label\">Avatar</div>\n\n <div class=\"currentuserprofileavatar\">\n <div class=\"userprofileavatar\" *ngIf=\"userProfile.avatarUrl\">\n <div *ngIf=\"loading\" class=\"loading-icon small\"></div>\n <img *ngIf=\"!loading\" class=\"responsive\" [src]=\"userProfile.avatarUrl\" />\n </div>\n <div class=\"reupload\">\n <div class=\"button\" (click)=\"changeAvatar = true\" *ngIf=\"!changeAvatar && userProfile.avatarUrl\">Change avatar</div>\n <div class=\"button\" (click)=\"changeAvatar = true\" *ngIf=\"!changeAvatar && !userProfile.avatarUrl\">Set avatar</div>\n <div class=\"button\" (click)=\"clearAvatar()\" *ngIf=\"changeAvatar && userProfile.avatarUrl\"><span class=\"icon ph-trash-fill\"></span>Clear</div>\n </div>\n </div>\n\n <div class=\"reuploadform\" *ngIf=\"changeAvatar\">\n <div (click)=\"changeAvatar = false\" class=\"cancel icon ph-x-bold\"></div>\n <input class=\"mat-form-field\" accept=\"image/png,image/jpeg\" type=\"file\" id=\"coach-avatar\" (change)=\"uploadAvatar($event)\">\n <div class=\"message message-information\">\n <span class=\"icon ph-info-fill\"></span>Select new image (.png or .jpg). Use a 1:1 ratio for the best results (e.g. 500x500). Maximum size is 500x500px and 500kb.\n </div>\n </div>\n\n <div class=\"form-label\">Name</div>\n <mat-form-field appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>What is your name?</mat-label>\n <input maxlength=\"50\" matInput id=\"name\" formControlName=\"name\" type=\"text\">\n <mat-error *ngIf=\"form.controls.name.errors\">\n <div *ngIf=\"form.controls.name.errors.required\">This field is required</div>\n </mat-error>\n </mat-form-field>\n\n <div class=\"form-label\">Email</div>\n <p *ngIf=\"!showEmailInput\">\n The e-mail address is set to <b>{{userProfile.email}}</b>.\n <a [routerLink]=\"[]\" id=\"toggle-email\" (click)=\"setChangeEmail()\">Set a different address.</a>\n </p>\n\n <mat-form-field appearance=\"fill\" *ngIf=\"showEmailInput\" subscriptSizing=\"dynamic\">\n <mat-label>On what e-mail address can you be contacted?</mat-label>\n <input matInput id=\"newEmail\" formControlName=\"newEmail\" type=\"email\">\n <mat-error *ngIf=\"form.controls.newEmail.errors\">\n <div *ngIf=\"form.controls.newEmail.errors.email\">The email is invalid. Please specify email like john@doe.nl or jane.doe@someone.nl.</div>\n <div *ngIf=\"form.controls.newEmail.errors.alreadyExists\">Another user already uses this e-mail address. Please use another email address.</div>\n </mat-error>\n </mat-form-field>\n\n <div class=\"toolbar\">\n <input class=\"button submit primary\" type=\"submit\" id=\"submit\" [disabled]=\"loading\" [ngClass]=\"{'loading': loading}\" value=\"Save\" />\n </div>\n </form>\n</div>\n\n<div class=\"form-security\">\n <h2>Security</h2>\n\n <form class=\"form\">\n <div class=\"form-label\">Change password</div>\n <div class=\"button\" (click)=\"sendPasswordReset()\" id=\"account-passwordreset\" *ngIf=\"!userProfile.usesSSO\">Send email to change password</div>\n <p *ngIf=\"userProfile.usesSSO\">You are logging in through single-sign on (SSO). Use your company's identity provider to change your password.</p>\n\n <ng-container *ngIf=\"allowMfa\">\n <div class=\"form-label\">Add additional login factor (MFA)</div>\n <ng-container *ngIf=\"!usesMfa\">\n <p>Add a code from Google Authenticator or similar to your account to make it more secure.</p>\n <div class=\"button\" (click)=\"sendMfaEnrollment()\" id=\"account-enrollmfa\">Send email to set up 2FA</div>\n </ng-container>\n <ng-container *ngIf=\"usesMfa\">\n <p>An additional factor is <b>enabled</b> for this account.</p>\n <div class=\"button\" (click)=\"resetMfaEnrollment()\" id=\"account-resetmfa\">Reset 2FA</div>\n </ng-container>\n </ng-container>\n </form>\n</div>\n", styles: [".smallTextUppercase{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%}.bigletteredbutton{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;text-decoration:none;background:#ffffff1a;margin-bottom:10px;display:flex;align-content:center;border-radius:20px;padding:15px;font-size:24px;border:2px solid #1F3F8F;border-bottom:6px solid #1F3F8F;color:#fff;align-items:center;cursor:pointer}.bigletteredbutton .free{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;background:#fff73f;color:#2f2f2f;padding:3px 5px;margin-left:20px;border-radius:10px}.bigletteredbutton .plan{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;background:#fff;color:#2f2f2f;padding:3px 5px;margin-left:20px;border-radius:10px}.bigletteredbutton:hover,.bigletteredbutton.selected{border:2px solid #fff73f;border-bottom:6px solid #fff73f}.bigletteredbutton .button-letter{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;font-family:StevieSans,sans-serif;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;background:#fff73f;color:#1f3f8f;margin-right:20px}.bigletteredbutton .button-letter .ph{color:#1f3f8f}.bigletteredbutton .button-letter:hover{background:#1f3f8f;color:#fff73f}.bigletteredbutton .button-letter:hover .ph{color:#fff73f}.roundicon-yellow{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;font-family:StevieSans,sans-serif;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;background:#fff73f;color:#1f3f8f}.roundicon-yellow .ph{color:#1f3f8f}.roundicon-yellow:hover{background:#1f3f8f;color:#fff73f}.roundicon-yellow:hover .ph{color:#fff73f}.roundicon{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;font-family:StevieSans,sans-serif;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center}.roundicon-large{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;font-family:StevieSans,sans-serif;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;border-radius:60px;height:120px;width:120px}.form-label{margin-top:30px}.currentuserprofileavatar{display:flex}.currentuserprofileavatar .userprofileavatar{margin-bottom:30px;display:flex;background:#2f2f2f;margin-right:15px;width:100px;height:100px;padding:10px}.reuploadform{background:#f0f0f0;position:relative}.reuploadform input{padding:15px 15px 0}.reuploadform .cancel{cursor:pointer;font-size:20pt;position:absolute;right:10px;top:10px}.form-security{margin-top:90px}\n"], dependencies: [{ kind: "directive", type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i8.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i9.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i9.MatLabel, selector: "mat-label" }, { kind: "directive", type: i9.MatError, selector: "mat-error, [matError]", inputs: ["id"] }] }); }
|
|
148
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: UserProfileComponent, deps: [{ token: VIEWSTATE_PROVIDER }, { token: i1.AuthService }, { token: i2.UserProfileService }, { token: i3.AccountService }, { token: i4.UntypedFormBuilder }, { token: i5.MatSnackBar }, { token: i6.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
149
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: UserProfileComponent, selector: "userprofile", usesInheritance: true, ngImport: i0, template: "<div class=\"form-profile\">\n <h2>My Profile</h2>\n <form class=\"form\" [formGroup]=\"form\" (ngSubmit)=\"onSubmit(formDirective)\" #formDirective=\"ngForm\">\n <div class=\"form-label\">Avatar</div>\n\n <div class=\"currentuserprofileavatar\">\n <div class=\"userprofileavatar\" *ngIf=\"userProfile.avatarUrl\">\n <div *ngIf=\"loading\" class=\"loading-icon small\"></div>\n <img *ngIf=\"!loading\" class=\"responsive\" [src]=\"userProfile.avatarUrl\" />\n </div>\n <div class=\"reupload\">\n <div class=\"button\" (click)=\"changeAvatar = true\" *ngIf=\"!changeAvatar && userProfile.avatarUrl\">Change avatar</div>\n <div class=\"button\" (click)=\"changeAvatar = true\" *ngIf=\"!changeAvatar && !userProfile.avatarUrl\">Set avatar</div>\n <div class=\"button\" (click)=\"clearAvatar()\" *ngIf=\"changeAvatar && userProfile.avatarUrl\"><span class=\"icon ph-trash-fill\"></span>Clear</div>\n </div>\n </div>\n\n <div class=\"reuploadform\" *ngIf=\"changeAvatar\">\n <div (click)=\"changeAvatar = false\" class=\"cancel icon ph-x-bold\"></div>\n <input class=\"mat-form-field\" accept=\"image/png,image/jpeg\" type=\"file\" id=\"coach-avatar\" (change)=\"uploadAvatar($event)\">\n <div class=\"message message-information\">\n <span class=\"icon ph-info-fill\"></span>Select new image (.png or .jpg). Use a 1:1 ratio for the best results (e.g. 500x500). Maximum size is 500x500px and 500kb.\n </div>\n </div>\n\n <div class=\"form-label\">Name</div>\n <mat-form-field appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>What is your name?</mat-label>\n <input maxlength=\"50\" matInput id=\"name\" formControlName=\"name\" type=\"text\">\n <mat-error *ngIf=\"form.controls.name.errors\">\n <div *ngIf=\"form.controls.name.errors.required\">This field is required</div>\n </mat-error>\n </mat-form-field>\n\n <div class=\"form-label\">Email</div>\n <p *ngIf=\"!showEmailInput\">\n The e-mail address is set to <b>{{userProfile.email}}</b>.\n <a [routerLink]=\"[]\" id=\"toggle-email\" (click)=\"setChangeEmail()\">Set a different address.</a>\n </p>\n\n <mat-form-field appearance=\"fill\" *ngIf=\"showEmailInput\" subscriptSizing=\"dynamic\">\n <mat-label>On what e-mail address can you be contacted?</mat-label>\n <input matInput id=\"newEmail\" formControlName=\"newEmail\" type=\"email\">\n <mat-error *ngIf=\"form.controls.newEmail.errors\">\n <div *ngIf=\"form.controls.newEmail.errors.email\">The email is invalid. Please specify email like john@doe.nl or jane.doe@someone.nl.</div>\n <div *ngIf=\"form.controls.newEmail.errors.alreadyExists\">Another user already uses this e-mail address. Please use another email address.</div>\n </mat-error>\n </mat-form-field>\n\n <div class=\"toolbar\">\n <input class=\"button submit primary\" type=\"submit\" id=\"submit\" [disabled]=\"loading\" [ngClass]=\"{'loading': loading}\" value=\"Save\" />\n </div>\n </form>\n</div>\n\n<div class=\"form-security\">\n <h2>Security</h2>\n\n <form class=\"form\">\n <div class=\"form-label\">Change password</div>\n <div class=\"button\" (click)=\"sendPasswordReset()\" id=\"account-passwordreset\" *ngIf=\"!userProfile.usesSSO\">Send email to change password</div>\n <p *ngIf=\"userProfile.usesSSO\">You are logging in through single-sign on (SSO). Use your company's identity provider to change your password.</p>\n\n <ng-container *ngIf=\"allowMfa\">\n <div class=\"form-label\">Add additional login factor (MFA)</div>\n <ng-container *ngIf=\"!usesMfa\">\n <p>Add a code from Google Authenticator or similar to your account to make it more secure.</p>\n <div class=\"button\" (click)=\"sendMfaEnrollment()\" id=\"account-enrollmfa\">Send email to set up 2FA</div>\n </ng-container>\n <ng-container *ngIf=\"usesMfa\">\n <p>An additional factor is <b>enabled</b> for this account.</p>\n <div class=\"button\" (click)=\"resetMfaEnrollment()\" id=\"account-resetmfa\">Reset 2FA</div>\n </ng-container>\n </ng-container>\n </form>\n</div>\n", styles: [".smallTextUppercase{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%}.bigletteredbutton{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;text-decoration:none;background:#ffffff1a;margin-bottom:10px;display:flex;align-content:center;border-radius:20px;padding:15px;font-size:24px;border:2px solid #1F3F8F;border-bottom:6px solid #1F3F8F;color:#fff;align-items:center;cursor:pointer}.bigletteredbutton .free{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;background:#fff73f;color:#2f2f2f;padding:3px 5px;margin-left:20px;border-radius:10px}.bigletteredbutton .plan{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;background:#fff;color:#2f2f2f;padding:3px 5px;margin-left:20px;border-radius:10px}.bigletteredbutton:hover,.bigletteredbutton.selected{border:2px solid #fff73f;border-bottom:6px solid #fff73f}.bigletteredbutton .button-letter{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;font-family:StevieSans,sans-serif;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;background:#fff73f;color:#1f3f8f;margin-right:20px}.bigletteredbutton .button-letter .ph{color:#1f3f8f}.bigletteredbutton .button-letter:hover{background:#1f3f8f;color:#fff73f}.bigletteredbutton .button-letter:hover .ph{color:#fff73f}.roundicon-yellow{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;font-family:StevieSans,sans-serif;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;background:#fff73f;color:#1f3f8f}.roundicon-yellow .ph{color:#1f3f8f}.roundicon-yellow:hover{background:#1f3f8f;color:#fff73f}.roundicon-yellow:hover .ph{color:#fff73f}.roundicon{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;font-family:StevieSans,sans-serif;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center}.roundicon-large{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;font-family:StevieSans,sans-serif;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;border-radius:60px;height:120px;width:120px}.form-label{margin-top:30px}.currentuserprofileavatar{display:flex}.currentuserprofileavatar .userprofileavatar{margin-bottom:30px;display:flex;background:#2f2f2f;margin-right:15px;width:100px;height:100px;padding:10px}.reuploadform{background:#f0f0f0;position:relative}.reuploadform input{padding:15px 15px 0}.reuploadform .cancel{cursor:pointer;font-size:20pt;position:absolute;right:10px;top:10px}.form-security{margin-top:90px}\n"], dependencies: [{ kind: "directive", type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i8.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i9.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i9.MatLabel, selector: "mat-label" }, { kind: "directive", type: i9.MatError, selector: "mat-error, [matError]", inputs: ["id"] }] }); }
|
|
150
150
|
}
|
|
151
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
151
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: UserProfileComponent, decorators: [{
|
|
152
152
|
type: Component,
|
|
153
153
|
args: [{ selector: 'userprofile', template: "<div class=\"form-profile\">\n <h2>My Profile</h2>\n <form class=\"form\" [formGroup]=\"form\" (ngSubmit)=\"onSubmit(formDirective)\" #formDirective=\"ngForm\">\n <div class=\"form-label\">Avatar</div>\n\n <div class=\"currentuserprofileavatar\">\n <div class=\"userprofileavatar\" *ngIf=\"userProfile.avatarUrl\">\n <div *ngIf=\"loading\" class=\"loading-icon small\"></div>\n <img *ngIf=\"!loading\" class=\"responsive\" [src]=\"userProfile.avatarUrl\" />\n </div>\n <div class=\"reupload\">\n <div class=\"button\" (click)=\"changeAvatar = true\" *ngIf=\"!changeAvatar && userProfile.avatarUrl\">Change avatar</div>\n <div class=\"button\" (click)=\"changeAvatar = true\" *ngIf=\"!changeAvatar && !userProfile.avatarUrl\">Set avatar</div>\n <div class=\"button\" (click)=\"clearAvatar()\" *ngIf=\"changeAvatar && userProfile.avatarUrl\"><span class=\"icon ph-trash-fill\"></span>Clear</div>\n </div>\n </div>\n\n <div class=\"reuploadform\" *ngIf=\"changeAvatar\">\n <div (click)=\"changeAvatar = false\" class=\"cancel icon ph-x-bold\"></div>\n <input class=\"mat-form-field\" accept=\"image/png,image/jpeg\" type=\"file\" id=\"coach-avatar\" (change)=\"uploadAvatar($event)\">\n <div class=\"message message-information\">\n <span class=\"icon ph-info-fill\"></span>Select new image (.png or .jpg). Use a 1:1 ratio for the best results (e.g. 500x500). Maximum size is 500x500px and 500kb.\n </div>\n </div>\n\n <div class=\"form-label\">Name</div>\n <mat-form-field appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>What is your name?</mat-label>\n <input maxlength=\"50\" matInput id=\"name\" formControlName=\"name\" type=\"text\">\n <mat-error *ngIf=\"form.controls.name.errors\">\n <div *ngIf=\"form.controls.name.errors.required\">This field is required</div>\n </mat-error>\n </mat-form-field>\n\n <div class=\"form-label\">Email</div>\n <p *ngIf=\"!showEmailInput\">\n The e-mail address is set to <b>{{userProfile.email}}</b>.\n <a [routerLink]=\"[]\" id=\"toggle-email\" (click)=\"setChangeEmail()\">Set a different address.</a>\n </p>\n\n <mat-form-field appearance=\"fill\" *ngIf=\"showEmailInput\" subscriptSizing=\"dynamic\">\n <mat-label>On what e-mail address can you be contacted?</mat-label>\n <input matInput id=\"newEmail\" formControlName=\"newEmail\" type=\"email\">\n <mat-error *ngIf=\"form.controls.newEmail.errors\">\n <div *ngIf=\"form.controls.newEmail.errors.email\">The email is invalid. Please specify email like john@doe.nl or jane.doe@someone.nl.</div>\n <div *ngIf=\"form.controls.newEmail.errors.alreadyExists\">Another user already uses this e-mail address. Please use another email address.</div>\n </mat-error>\n </mat-form-field>\n\n <div class=\"toolbar\">\n <input class=\"button submit primary\" type=\"submit\" id=\"submit\" [disabled]=\"loading\" [ngClass]=\"{'loading': loading}\" value=\"Save\" />\n </div>\n </form>\n</div>\n\n<div class=\"form-security\">\n <h2>Security</h2>\n\n <form class=\"form\">\n <div class=\"form-label\">Change password</div>\n <div class=\"button\" (click)=\"sendPasswordReset()\" id=\"account-passwordreset\" *ngIf=\"!userProfile.usesSSO\">Send email to change password</div>\n <p *ngIf=\"userProfile.usesSSO\">You are logging in through single-sign on (SSO). Use your company's identity provider to change your password.</p>\n\n <ng-container *ngIf=\"allowMfa\">\n <div class=\"form-label\">Add additional login factor (MFA)</div>\n <ng-container *ngIf=\"!usesMfa\">\n <p>Add a code from Google Authenticator or similar to your account to make it more secure.</p>\n <div class=\"button\" (click)=\"sendMfaEnrollment()\" id=\"account-enrollmfa\">Send email to set up 2FA</div>\n </ng-container>\n <ng-container *ngIf=\"usesMfa\">\n <p>An additional factor is <b>enabled</b> for this account.</p>\n <div class=\"button\" (click)=\"resetMfaEnrollment()\" id=\"account-resetmfa\">Reset 2FA</div>\n </ng-container>\n </ng-container>\n </form>\n</div>\n", styles: [".smallTextUppercase{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%}.bigletteredbutton{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;text-decoration:none;background:#ffffff1a;margin-bottom:10px;display:flex;align-content:center;border-radius:20px;padding:15px;font-size:24px;border:2px solid #1F3F8F;border-bottom:6px solid #1F3F8F;color:#fff;align-items:center;cursor:pointer}.bigletteredbutton .free{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;background:#fff73f;color:#2f2f2f;padding:3px 5px;margin-left:20px;border-radius:10px}.bigletteredbutton .plan{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;background:#fff;color:#2f2f2f;padding:3px 5px;margin-left:20px;border-radius:10px}.bigletteredbutton:hover,.bigletteredbutton.selected{border:2px solid #fff73f;border-bottom:6px solid #fff73f}.bigletteredbutton .button-letter{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;font-family:StevieSans,sans-serif;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;background:#fff73f;color:#1f3f8f;margin-right:20px}.bigletteredbutton .button-letter .ph{color:#1f3f8f}.bigletteredbutton .button-letter:hover{background:#1f3f8f;color:#fff73f}.bigletteredbutton .button-letter:hover .ph{color:#fff73f}.roundicon-yellow{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;font-family:StevieSans,sans-serif;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;background:#fff73f;color:#1f3f8f}.roundicon-yellow .ph{color:#1f3f8f}.roundicon-yellow:hover{background:#1f3f8f;color:#fff73f}.roundicon-yellow:hover .ph{color:#fff73f}.roundicon{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;font-family:StevieSans,sans-serif;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center}.roundicon-large{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;font-family:StevieSans,sans-serif;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;border-radius:60px;height:120px;width:120px}.form-label{margin-top:30px}.currentuserprofileavatar{display:flex}.currentuserprofileavatar .userprofileavatar{margin-bottom:30px;display:flex;background:#2f2f2f;margin-right:15px;width:100px;height:100px;padding:10px}.reuploadform{background:#f0f0f0;position:relative}.reuploadform input{padding:15px 15px 0}.reuploadform .cancel{cursor:pointer;font-size:20pt;position:absolute;right:10px;top:10px}.form-security{margin-top:90px}\n"] }]
|
|
154
154
|
}], ctorParameters: () => [{ type: i10.ViewModelStateBase, decorators: [{
|
|
155
155
|
type: Inject,
|
|
156
156
|
args: [VIEWSTATE_PROVIDER]
|
|
157
157
|
}] }, { type: i1.AuthService }, { type: i2.UserProfileService }, { type: i3.AccountService }, { type: i4.UntypedFormBuilder }, { type: i5.MatSnackBar }, { type: i6.ActivatedRoute }] });
|
|
158
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlcnByb2ZpbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNjcnVtdGVhbXN1cnZleS10b29scy9zcmMvbGliL3Jlc3VsdHMvY29tcG9uZW50cy91c2VycHJvZmlsZS91c2VycHJvZmlsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2NydW10ZWFtc3VydmV5LXRvb2xzL3NyYy9saWIvcmVzdWx0cy9jb21wb25lbnRzL3VzZXJwcm9maWxlL3VzZXJwcm9maWxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUE0RCxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUl0RyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNqRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDN0QsT0FBTyxFQUFzQixrQkFBa0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDOzs7Ozs7Ozs7Ozs7QUFVbkcsTUFBTSxPQUFPLG9CQUFxQixTQUFRLDBCQUF5QztJQVloRixZQUFrRCxLQUF3QyxFQUFVLFdBQXdCLEVBQVUsa0JBQXNDLEVBQVUsY0FBOEIsRUFBVSxXQUErQixFQUFZLFFBQXFCLEVBQVksS0FBcUI7UUFDNVQsS0FBSyxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztRQUR3QixVQUFLLEdBQUwsS0FBSyxDQUFtQztRQUFVLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQVUsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUFVLG1CQUFjLEdBQWQsY0FB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QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBFdmVudFR5cGUsIEh0dHBSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXBEaXJlY3RpdmUsIFVudHlwZWRGb3JtQnVpbGRlciwgVW50eXBlZEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdFNuYWNrQmFyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnQGF1dGgwL2F1dGgwLWFuZ3VsYXInO1xuaW1wb3J0IHsgQ29tcG9uZW50V2l0aFZpZXdTdGF0ZUJhc2UgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRXaXRoVmlld1N0YXRlQmFzZSc7XG5pbXBvcnQgeyBVc2VyUHJvZmlsZUR0byB9IGZyb20gJy4uLy4uLy4uL21vZGVscy91c2VySW5mb0R0byc7XG5pbXBvcnQgeyBWaWV3TW9kZWxTdGF0ZUJhc2UsIFZJRVdTVEFURV9QUk9WSURFUiB9IGZyb20gJy4uLy4uLy4uL3ZpZXdNb2RlbC92aWV3TW9kZWxTdGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IElSZXN1bHRzU3RhdGUgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL0lSZXN1bHRzU3RhdGUnO1xuaW1wb3J0IHsgVXNlclByb2ZpbGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdXNlclByb2ZpbGUuc2VydmljZSc7XG5pbXBvcnQgeyBBY2NvdW50U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FjY291bnQuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICAgc2VsZWN0b3I6ICd1c2VycHJvZmlsZScsXG4gICB0ZW1wbGF0ZVVybDogJy4vdXNlcnByb2ZpbGUuY29tcG9uZW50Lmh0bWwnLFxuICAgc3R5bGVVcmxzOiBbJy4vdXNlcnByb2ZpbGUuY29tcG9uZW50Lmxlc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBVc2VyUHJvZmlsZUNvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudFdpdGhWaWV3U3RhdGVCYXNlPElSZXN1bHRzU3RhdGU+IHtcbiAgIHB1YmxpYyBmb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xuICAgcHVibGljIGxvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgIHB1YmxpYyB1c2VyUHJvZmlsZTogVXNlclByb2ZpbGVEdG87XG4gICBwdWJsaWMgY2hhbmdlQXZhdGFyOiBib29sZWFuO1xuICAgcHVibGljIGNvbG9yOiBzdHJpbmc7XG4gICBwdWJsaWMgZW1haWw6IHN0cmluZztcbiAgIHB1YmxpYyB1c2VzTWZhOiBib29sZWFuO1xuICAgcHVibGljIGFsbG93TWZhOiBib29sZWFuO1xuICAgcHVibGljIGFsbG93UGFzc3dvcmRDaGFuZ2U6IGJvb2xlYW47XG4gICBwdWJsaWMgc2hvd0VtYWlsSW5wdXQ6IGJvb2xlYW47XG5cbiAgIGNvbnN0cnVjdG9yKEBJbmplY3QoVklFV1NUQVRFX1BST1ZJREVSKSBwcm90ZWN0ZWQgc3RhdGU6IFZpZXdNb2RlbFN0YXRlQmFzZTxJUmVzdWx0c1N0YXRlPiwgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsIHByaXZhdGUgdXNlclByb2ZpbGVTZXJ2aWNlOiBVc2VyUHJvZmlsZVNlcnZpY2UsIHByaXZhdGUgYWNjb3VudFNlcnZpY2U6IEFjY291bnRTZXJ2aWNlLCBwcml2YXRlIGZvcm1CdWlsZGVyOiBVbnR5cGVkRm9ybUJ1aWxkZXIsIHByb3RlY3RlZCBzbmFja2JhcjogTWF0U25hY2tCYXIsIHByb3RlY3RlZCByb3V0ZTogQWN0aXZhdGVkUm91dGUpIHtcbiAgICAgIHN1cGVyKHN0YXRlLCBzbmFja2Jhcik7XG4gICAgICB0aGlzLmNyZWF0ZUZvcm0oKTtcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UudXNlciQuc3Vic2NyaWJlKFxuICAgICAgICAgKHByb2ZpbGUpID0+IHtcbiAgICAgICAgICAgIHRoaXMudXNlc01mYSA9IHByb2ZpbGUudXNlX21mYTtcbiAgICAgICAgICAgIHRoaXMuZW1haWwgPSBwcm9maWxlLmVtYWlsO1xuICAgICAgICAgfSk7XG4gICB9XG5cbiAgIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICB9XG5cbiAgIHByaXZhdGUgY3JlYXRlRm9ybSgpOiB2b2lkIHtcbiAgICAgIHRoaXMuZm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgICAgbmFtZTogW1wiXCIsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1heExlbmd0aCg1MCldXSxcbiAgICAgICAgIG5ld0VtYWlsOiBbXCJcIiwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMuZW1haWxdXVxuICAgICAgfSk7XG4gICB9O1xuXG4gICBwdWJsaWMgYXN5bmMgb25TdWJtaXQoZm9ybURpcmVjdGl2ZTogRm9ybUdyb3VwRGlyZWN0aXZlKSB7XG4gICAgICBpZiAoIXRoaXMuZm9ybS52YWxpZCkgeyByZXR1cm47IH1cbiAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG5cbiAgICAgIGF3YWl0IHRoaXMuYXV0aFNlcnZpY2UubG9naW5XaXRoUG9wdXAoeyBhdXRob3JpemF0aW9uUGFyYW1zOiB7IG1heF9hZ2U6IDEgfSB9KS5zdWJzY3JpYmUoc3VjY2VzcyA9PiB7XG4gICAgICAgICB2YXIgdXBkYXRlUmVxdWVzdCA9IG5ldyBVc2VyUHJvZmlsZUR0bygpO1xuICAgICAgICAgdXBkYXRlUmVxdWVzdC5uYW1lID0gdGhpcy5mb3JtLmNvbnRyb2xzLm5hbWUudmFsdWU7XG4gICAgICAgICB1cGRhdGVSZXF1ZXN0LmVtYWlsID0gdGhpcy5mb3JtLmNvbnRyb2xzLm5ld0VtYWlsLnZhbHVlO1xuXG4gICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgdGhpcy51c2VyUHJvZmlsZVNlcnZpY2UudXBkYXRlKHVwZGF0ZVJlcXVlc3QpLnN1YnNjcmliZShzdWNjZXNzID0+IHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuc2hvd1N1Y2Nlc3MoXCJZb3VyIHByb2ZpbGUgd2FzIHVwZGF0ZWRcIik7XG4gICAgICAgICAgICAgICB9KTtcbiAgICAgICAgIH1cbiAgICAgICAgIGNhdGNoIChleDogYW55KSB7XG4gICAgICAgICAgICB0aGlzLmZvcm0uY29udHJvbHMubmV3RW1haWwuc2V0RXJyb3JzKHsgYWxyZWFkeUV4aXN0czogdHJ1ZSB9KTtcbiAgICAgICAgIH1cbiAgICAgIH0sIGVycm9yID0+IHtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgIH1cblxuICAgcHVibGljIHNldENoYW5nZUVtYWlsKCkge1xuICAgICAgdGhpcy5zaG93RW1haWxJbnB1dCA9IHRydWU7XG4gICAgICB0aGlzLmZvcm0uY29udHJvbHMubmV3RW1haWwuZW5hYmxlKCk7XG4gICB9XG5cbiAgIHB1YmxpYyB1cGxvYWRBdmF0YXIoJGZpbGVJbnB1dDogYW55KTogdm9pZCB7XG4gICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgY29uc3QgZmlsZSA9ICgkZmlsZUlucHV0LnRhcmdldC5maWxlc1swXSk7XG5cbiAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgICByZWFkZXIub25sb2FkID0gKGU6IGFueSkgPT4ge1xuICAgICAgICAgaWYgKGZpbGUudHlwZSAhPSBcImltYWdlL3BuZ1wiICYmIGZpbGUudHlwZSAhPSBcImltYWdlL2pwZWdcIikge1xuICAgICAgICAgICAgYWxlcnQoXCJUaGUgZmlsZSBtdXN0IGJlIGEgcG5nIG9yIGpwZyBmaWxlLiBZb3UgdXBsb2FkZWQgYSBmaWxlIG9mIHR5cGUgXCIgKyBmaWxlLnR5cGUpO1xuICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICB9XG5cbiAgICAgICAgIGNvbnN0IGltYWdlID0gbmV3IEltYWdlKCk7XG4gICAgICAgICBpbWFnZS5zcmMgPSBlLnRhcmdldC5yZXN1bHQ7XG4gICAgICAgICBpbWFnZS5vbmxvYWQgPSBycyA9PiB7XG4gICAgICAgICAgICBjb25zdCBpbWdfaGVpZ2h0ID0gcnMuY3VycmVudFRhcmdldFsnaGVpZ2h0J107XG4gICAgICAgICAgICBjb25zdCBpbWdfd2lkdGggPSBycy5jdXJyZW50VGFyZ2V0Wyd3aWR0aCddO1xuXG4gICAgICAgICAgICBpZiAoaW1nX2hlaWdodCA+IDUwMCAmJiBpbWdfd2lkdGggPiA1MDApIHtcbiAgICAgICAgICAgICAgIGFsZXJ0KFwiVGhlIGxvZ28gaXMgdG9vIGxhcmdlLiBQbGVhc2UgbGltaXQgdG8gYSBwaWN0dXJlIG9mIDUwMHg1MDAgcGl4ZWxzLlwiKTtcbiAgICAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgIHRoaXMudXNlclByb2ZpbGVTZXJ2aWNlLnNldEF2YXRhcihmaWxlKVxuICAgICAgICAgICAgICAgICAgLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gSHR0cEV2ZW50VHlwZS5VcGxvYWRQcm9ncmVzcykge1xuICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChldmVudCBpbnN0YW5jZW9mIEh0dHBSZXNwb25zZSkge1xuICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICB9O1xuICAgICAgfTtcblxuICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XG4gICB9O1xuXG4gICBwdWJsaWMgY2xlYXJBdmF0YXIoKTogdm9pZCB7XG4gICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgdGhpcy51c2VyUHJvZmlsZVNlcnZpY2UuY2xlYXJBdmF0YXIoKVxuICAgICAgICAgLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMudXNlclByb2ZpbGUuYXZhdGFyVXJsID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlQXZhdGFyID0gZmFsc2U7XG4gICAgICAgICB9KTtcbiAgIH07ICBcblxuICAgcHVibGljIHNlbmRQYXNzd29yZFJlc2V0KCkge1xuICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICAgIHRoaXMuYWNjb3VudFNlcnZpY2Uuc2VuZFJlc2V0UGFzc3dvcmQodGhpcy5lbWFpbCkuc3Vic2NyaWJlKFxuICAgICAgICAgc3VjY2VzcyA9PiB7XG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIHN1cGVyLnNob3dTdWNjZXNzKCdXZSBzZW50IGFuIGUtbWFpbCB0byAnICsgdGhpcy5lbWFpbCArICcgdG8gY2hhbmdlIHlvdXIgcGFzc3dvcmQnKTtcbiAgICAgICAgIH0pO1xuICAgfVxuXG4gICBwdWJsaWMgc2VuZE1mYUVucm9sbG1lbnQoKSB7XG4gICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgdGhpcy51c2VyUHJvZmlsZVNlcnZpY2Uuc2VuZE1mYUVucm9sbG1lbnQoKS5zdWJzY3JpYmUoXG4gICAgICAgICBzdWNjZXNzID0+IHtcbiAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgc3VwZXIuc2hvd1N1Y2Nlc3MoJ1dlIHNlbnQgYW4gZS1tYWlsIHRvICcgKyB0aGlzLmVtYWlsICsgJyB0byBzZXQgdXAgeW91ciBzZWNvbmQgZmFjdG9yICgyRkEpJyk7XG4gICAgICAgICB9KTtcbiAgIH1cblxuXG4gICBwdWJsaWMgcmVzZXRNZmFFbnJvbGxtZW50KCkge1xuICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICAgIHRoaXMudXNlclByb2ZpbGVTZXJ2aWNlLnJlc2V0TWZhRW5yb2xsbWVudCgpLnN1YnNjcmliZShcbiAgICAgICAgIHN1Y2Nlc3MgPT4ge1xuICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICBzdXBlci5zaG93U3VjY2VzcygnWW91ciBzZWNvbmQgZmFjdG9yIGlzIGNsZWFyZWQuIElmIDJGQSBpcyByZXF1aXJlZCBmb3IgeW91ciBhY2NvdW50LCB5b3Ugbm93IGhhdmUgdG8gc2V0IHVwIGFnYWluLiBPdGhlcndpc2UgeW91IGNhbiBsZWF2ZSBpdCBkaXNhYmxlZC4nKTtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO1xuICAgICAgICAgICAgfSwgNDAwMCk7XG4gICAgICAgICB9KTtcbiAgIH1cblxuICAgcHJvdGVjdGVkIG9uRGF0YVVwZGF0ZShkYXRhOiBJUmVzdWx0c1N0YXRlKTogdm9pZCB7XG4gICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgIHRoaXMuY2hhbmdlQXZhdGFyID0gZmFsc2U7XG4gICAgICB0aGlzLnVzZXJQcm9maWxlID0gZGF0YS51c2VySW5mby5wcm9maWxlO1xuICAgICAgdGhpcy5hbGxvd01mYSA9IGRhdGEudXNlckluZm8uZmVhdHVyZXMuYWxsb3dNRkE7XG4gICAgICB0aGlzLmZvcm0uY29udHJvbHMubmFtZS5zZXRWYWx1ZShkYXRhLnVzZXJJbmZvLnByb2ZpbGUubmFtZSk7XG4gICAgICBcbiAgICAgIGlmIChkYXRhLnVzZXJJbmZvLnByb2ZpbGUuZW1haWwpIHtcbiAgICAgICAgIHRoaXMuc2hvd0VtYWlsSW5wdXQgPSBmYWxzZTtcbiAgICAgICAgIHRoaXMuZm9ybS5jb250cm9scy5uZXdFbWFpbC5kaXNhYmxlKCk7XG4gICAgICB9XG4gICB9O1xufVxuIiwiPGRpdiBjbGFzcz1cImZvcm0tcHJvZmlsZVwiPlxuICAgPGgyPk15IFByb2ZpbGU8L2gyPlxuICAgPGZvcm0gY2xhc3M9XCJmb3JtXCIgW2Zvcm1Hcm91cF09XCJmb3JtXCIgKG5nU3VibWl0KT1cIm9uU3VibWl0KGZvcm1EaXJlY3RpdmUpXCIgI2Zvcm1EaXJlY3RpdmU9XCJuZ0Zvcm1cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWxhYmVsXCI+QXZhdGFyPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJjdXJyZW50dXNlcnByb2ZpbGVhdmF0YXJcIj5cbiAgICAgICAgIDxkaXYgY2xhc3M9XCJ1c2VycHJvZmlsZWF2YXRhclwiICpuZ0lmPVwidXNlclByb2ZpbGUuYXZhdGFyVXJsXCI+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwibG9hZGluZ1wiIGNsYXNzPVwibG9hZGluZy1pY29uIHNtYWxsXCI+PC9kaXY+XG4gICAgICAgICAgICA8aW1nICpuZ0lmPVwiIWxvYWRpbmdcIiBjbGFzcz1cInJlc3BvbnNpdmVcIiBbc3JjXT1cInVzZXJQcm9maWxlLmF2YXRhclVybFwiIC8+XG4gICAgICAgICA8L2Rpdj5cbiAgICAgICAgIDxkaXYgY2xhc3M9XCJyZXVwbG9hZFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvblwiIChjbGljayk9XCJjaGFuZ2VBdmF0YXIgPSB0cnVlXCIgKm5nSWY9XCIhY2hhbmdlQXZhdGFyICYmIHVzZXJQcm9maWxlLmF2YXRhclVybFwiPkNoYW5nZSBhdmF0YXI8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b25cIiAoY2xpY2spPVwiY2hhbmdlQXZhdGFyID0gdHJ1ZVwiICpuZ0lmPVwiIWNoYW5nZUF2YXRhciAmJiAhdXNlclByb2ZpbGUuYXZhdGFyVXJsXCI+U2V0IGF2YXRhcjwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvblwiIChjbGljayk9XCJjbGVhckF2YXRhcigpXCIgKm5nSWY9XCJjaGFuZ2VBdmF0YXIgJiYgdXNlclByb2ZpbGUuYXZhdGFyVXJsXCI+PHNwYW4gY2xhc3M9XCJpY29uIHBoLXRyYXNoLWZpbGxcIj48L3NwYW4+Q2xlYXI8L2Rpdj5cbiAgICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJyZXVwbG9hZGZvcm1cIiAqbmdJZj1cImNoYW5nZUF2YXRhclwiPlxuICAgICAgICAgPGRpdiAoY2xpY2spPVwiY2hhbmdlQXZhdGFyID0gZmFsc2VcIiBjbGFzcz1cImNhbmNlbCBpY29uIHBoLXgtYm9sZFwiPjwvZGl2PlxuICAgICAgICAgPGlucHV0IGNsYXNzPVwibWF0LWZvcm0tZmllbGRcIiBhY2NlcHQ9XCJpbWFnZS9wbmcsaW1hZ2UvanBlZ1wiIHR5cGU9XCJmaWxlXCIgaWQ9XCJjb2FjaC1hdmF0YXJcIiAoY2hhbmdlKT1cInVwbG9hZEF2YXRhcigkZXZlbnQpXCI+XG4gICAgICAgICA8ZGl2IGNsYXNzPVwibWVzc2FnZSBtZXNzYWdlLWluZm9ybWF0aW9uXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImljb24gcGgtaW5mby1maWxsXCI+PC9zcGFuPlNlbGVjdCBuZXcgaW1hZ2UgKC5wbmcgb3IgLmpwZykuIFVzZSBhIDE6MSByYXRpbyBmb3IgdGhlIGJlc3QgcmVzdWx0cyAoZS5nLiA1MDB4NTAwKS4gTWF4aW11bSBzaXplIGlzIDUwMHg1MDBweCBhbmQgNTAwa2IuXG4gICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1sYWJlbFwiPk5hbWU8L2Rpdj5cbiAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiIHN1YnNjcmlwdFNpemluZz1cImR5bmFtaWNcIj5cbiAgICAgICAgIDxtYXQtbGFiZWw+V2hhdCBpcyB5b3VyIG5hbWU/PC9tYXQtbGFiZWw+XG4gICAgICAgICA8aW5wdXQgbWF4bGVuZ3RoPVwiNTBcIiBtYXRJbnB1dCBpZD1cIm5hbWVcIiBmb3JtQ29udHJvbE5hbWU9XCJuYW1lXCIgdHlwZT1cInRleHRcIj5cbiAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmb3JtLmNvbnRyb2xzLm5hbWUuZXJyb3JzXCI+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZm9ybS5jb250cm9scy5uYW1lLmVycm9ycy5yZXF1aXJlZFwiPlRoaXMgZmllbGQgaXMgcmVxdWlyZWQ8L2Rpdj5cbiAgICAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgPGRpdiBjbGFzcz1cImZvcm0tbGFiZWxcIj5FbWFpbDwvZGl2PlxuICAgICAgPHAgKm5nSWY9XCIhc2hvd0VtYWlsSW5wdXRcIj5cbiAgICAgICAgIFRoZSBlLW1haWwgYWRkcmVzcyBpcyBzZXQgdG8gPGI+e3t1c2VyUHJvZmlsZS5lbWFpbH19PC9iPi5cbiAgICAgICAgIDxhIFtyb3V0ZXJMaW5rXT1cIltdXCIgaWQ9XCJ0b2dnbGUtZW1haWxcIiAoY2xpY2spPVwic2V0Q2hhbmdlRW1haWwoKVwiPlNldCBhIGRpZmZlcmVudCBhZGRyZXNzLjwvYT5cbiAgICAgIDwvcD5cblxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCIgKm5nSWY9XCJzaG93RW1haWxJbnB1dFwiIHN1YnNjcmlwdFNpemluZz1cImR5bmFtaWNcIj5cbiAgICAgICAgIDxtYXQtbGFiZWw+T24gd2hhdCBlLW1haWwgYWRkcmVzcyBjYW4geW91IGJlIGNvbnRhY3RlZD88L21hdC1sYWJlbD5cbiAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBpZD1cIm5ld0VtYWlsXCIgZm9ybUNvbnRyb2xOYW1lPVwibmV3RW1haWxcIiB0eXBlPVwiZW1haWxcIj5cbiAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmb3JtLmNvbnRyb2xzLm5ld0VtYWlsLmVycm9yc1wiPlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cImZvcm0uY29udHJvbHMubmV3RW1haWwuZXJyb3JzLmVtYWlsXCI+VGhlIGVtYWlsIGlzIGludmFsaWQuIFBsZWFzZSBzcGVjaWZ5IGVtYWlsIGxpa2Ugam9obiYjNjQ7ZG9lLm5sIG9yIGphbmUuZG9lJiM2NDtzb21lb25lLm5sLjwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cImZvcm0uY29udHJvbHMubmV3RW1haWwuZXJyb3JzLmFscmVhZHlFeGlzdHNcIj5Bbm90aGVyIHVzZXIgYWxyZWFkeSB1c2VzIHRoaXMgZS1tYWlsIGFkZHJlc3MuIFBsZWFzZSB1c2UgYW5vdGhlciBlbWFpbCBhZGRyZXNzLjwvZGl2PlxuICAgICAgICAgPC9tYXQtZXJyb3I+XG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwidG9vbGJhclwiPlxuICAgICAgICAgPGlucHV0IGNsYXNzPVwiYnV0dG9uIHN1Ym1pdCBwcmltYXJ5XCIgdHlwZT1cInN1Ym1pdFwiIGlkPVwic3VibWl0XCIgW2Rpc2FibGVkXT1cImxvYWRpbmdcIiBbbmdDbGFzc109XCJ7J2xvYWRpbmcnOiBsb2FkaW5nfVwiIHZhbHVlPVwiU2F2ZVwiIC8+XG4gICAgICA8L2Rpdj5cbiAgIDwvZm9ybT5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwiZm9ybS1zZWN1cml0eVwiPlxuICAgPGgyPlNlY3VyaXR5PC9oMj5cblxuICAgPGZvcm0gY2xhc3M9XCJmb3JtXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1sYWJlbFwiPkNoYW5nZSBwYXNzd29yZDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvblwiIChjbGljayk9XCJzZW5kUGFzc3dvcmRSZXNldCgpXCIgaWQ9XCJhY2NvdW50LXBhc3N3b3JkcmVzZXRcIiAqbmdJZj1cIiF1c2VyUHJvZmlsZS51c2VzU1NPXCI+U2VuZCBlbWFpbCB0byBjaGFuZ2UgcGFzc3dvcmQ8L2Rpdj5cbiAgICAgIDxwICpuZ0lmPVwidXNlclByb2ZpbGUudXNlc1NTT1wiPllvdSBhcmUgbG9nZ2luZyBpbiB0aHJvdWdoIHNpbmdsZS1zaWduIG9uIChTU08pLiBVc2UgeW91ciBjb21wYW55J3MgaWRlbnRpdHkgcHJvdmlkZXIgdG8gY2hhbmdlIHlvdXIgcGFzc3dvcmQuPC9wPlxuXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYWxsb3dNZmFcIj5cbiAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWxhYmVsXCI+QWRkIGFkZGl0aW9uYWwgbG9naW4gZmFjdG9yIChNRkEpPC9kaXY+XG4gICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXVzZXNNZmFcIj5cbiAgICAgICAgICAgIDxwPkFkZCBhIGNvZGUgZnJvbSBHb29nbGUgQXV0aGVudGljYXRvciBvciBzaW1pbGFyIHRvIHlvdXIgYWNjb3VudCB0byBtYWtlIGl0IG1vcmUgc2VjdXJlLjwvcD5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b25cIiAoY2xpY2spPVwic2VuZE1mYUVucm9sbG1lbnQoKVwiIGlkPVwiYWNjb3VudC1lbnJvbGxtZmFcIj5TZW5kIGVtYWlsIHRvIHNldCB1cCAyRkE8L2Rpdj5cbiAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInVzZXNNZmFcIj5cbiAgICAgICAgICAgIDxwPkFuIGFkZGl0aW9uYWwgZmFjdG9yIGlzIDxiPmVuYWJsZWQ8L2I+IGZvciB0aGlzIGFjY291bnQuPC9wPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvblwiIChjbGljayk9XCJyZXNldE1mYUVucm9sbG1lbnQoKVwiIGlkPVwiYWNjb3VudC1yZXNldG1mYVwiPlJlc2V0IDJGQTwvZGl2PlxuICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgIDwvZm9ybT5cbjwvZGl2PlxuIl19
|
|
158
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlcnByb2ZpbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNjcnVtdGVhbXN1cnZleS10b29scy9zcmMvbGliL3Jlc3VsdHMvY29tcG9uZW50cy91c2VycHJvZmlsZS91c2VycHJvZmlsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2NydW10ZWFtc3VydmV5LXRvb2xzL3NyYy9saWIvcmVzdWx0cy9jb21wb25lbnRzL3VzZXJwcm9maWxlL3VzZXJwcm9maWxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUE0RCxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUl0RyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNqRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDN0QsT0FBTyxFQUFzQixrQkFBa0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDOzs7Ozs7Ozs7Ozs7QUFVbkcsTUFBTSxPQUFPLG9CQUFxQixTQUFRLDBCQUF5QztJQVloRixZQUFrRCxLQUF3QyxFQUFVLFdBQXdCLEVBQVUsa0JBQXNDLEVBQVUsY0FBOEIsRUFBVSxXQUErQixFQUFZLFFBQXFCLEVBQVksS0FBcUI7UUFDNVQsS0FBSyxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztRQUR3QixVQUFLLEdBQUwsS0FBSyxDQUFtQztRQUFVLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQVUsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUFVLG1CQUFjLEdBQWQsY0FB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QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBFdmVudFR5cGUsIEh0dHBSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXBEaXJlY3RpdmUsIFVudHlwZWRGb3JtQnVpbGRlciwgVW50eXBlZEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdFNuYWNrQmFyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnQGF1dGgwL2F1dGgwLWFuZ3VsYXInO1xuaW1wb3J0IHsgQ29tcG9uZW50V2l0aFZpZXdTdGF0ZUJhc2UgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRXaXRoVmlld1N0YXRlQmFzZSc7XG5pbXBvcnQgeyBVc2VyUHJvZmlsZUR0byB9IGZyb20gJy4uLy4uLy4uL21vZGVscy91c2VySW5mb0R0byc7XG5pbXBvcnQgeyBWaWV3TW9kZWxTdGF0ZUJhc2UsIFZJRVdTVEFURV9QUk9WSURFUiB9IGZyb20gJy4uLy4uLy4uL3ZpZXdNb2RlbC92aWV3TW9kZWxTdGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IElSZXN1bHRzU3RhdGUgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL0lSZXN1bHRzU3RhdGUnO1xuaW1wb3J0IHsgVXNlclByb2ZpbGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdXNlclByb2ZpbGUuc2VydmljZSc7XG5pbXBvcnQgeyBBY2NvdW50U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FjY291bnQuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICAgc2VsZWN0b3I6ICd1c2VycHJvZmlsZScsXG4gICB0ZW1wbGF0ZVVybDogJy4vdXNlcnByb2ZpbGUuY29tcG9uZW50Lmh0bWwnLFxuICAgc3R5bGVVcmxzOiBbJy4vdXNlcnByb2ZpbGUuY29tcG9uZW50Lmxlc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBVc2VyUHJvZmlsZUNvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudFdpdGhWaWV3U3RhdGVCYXNlPElSZXN1bHRzU3RhdGU+IHtcbiAgIHB1YmxpYyBmb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xuICAgcHVibGljIGxvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgIHB1YmxpYyB1c2VyUHJvZmlsZTogVXNlclByb2ZpbGVEdG87XG4gICBwdWJsaWMgY2hhbmdlQXZhdGFyOiBib29sZWFuO1xuICAgcHVibGljIGNvbG9yOiBzdHJpbmc7XG4gICBwdWJsaWMgZW1haWw6IHN0cmluZztcbiAgIHB1YmxpYyB1c2VzTWZhOiBib29sZWFuO1xuICAgcHVibGljIGFsbG93TWZhOiBib29sZWFuO1xuICAgcHVibGljIGFsbG93UGFzc3dvcmRDaGFuZ2U6IGJvb2xlYW47XG4gICBwdWJsaWMgc2hvd0VtYWlsSW5wdXQ6IGJvb2xlYW47XG5cbiAgIGNvbnN0cnVjdG9yKEBJbmplY3QoVklFV1NUQVRFX1BST1ZJREVSKSBwcm90ZWN0ZWQgc3RhdGU6IFZpZXdNb2RlbFN0YXRlQmFzZTxJUmVzdWx0c1N0YXRlPiwgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsIHByaXZhdGUgdXNlclByb2ZpbGVTZXJ2aWNlOiBVc2VyUHJvZmlsZVNlcnZpY2UsIHByaXZhdGUgYWNjb3VudFNlcnZpY2U6IEFjY291bnRTZXJ2aWNlLCBwcml2YXRlIGZvcm1CdWlsZGVyOiBVbnR5cGVkRm9ybUJ1aWxkZXIsIHByb3RlY3RlZCBzbmFja2JhcjogTWF0U25hY2tCYXIsIHByb3RlY3RlZCByb3V0ZTogQWN0aXZhdGVkUm91dGUpIHtcbiAgICAgIHN1cGVyKHN0YXRlLCBzbmFja2Jhcik7XG4gICAgICB0aGlzLmNyZWF0ZUZvcm0oKTtcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UudXNlciQuc3Vic2NyaWJlKFxuICAgICAgICAgKHByb2ZpbGUpID0+IHtcbiAgICAgICAgICAgIHRoaXMudXNlc01mYSA9IHByb2ZpbGUudXNlX21mYTtcbiAgICAgICAgICAgIHRoaXMuZW1haWwgPSBwcm9maWxlLmVtYWlsO1xuICAgICAgICAgfSk7XG4gICB9XG5cbiAgIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICB9XG5cbiAgIHByaXZhdGUgY3JlYXRlRm9ybSgpOiB2b2lkIHtcbiAgICAgIHRoaXMuZm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgICAgbmFtZTogW1wiXCIsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1heExlbmd0aCg1MCldXSxcbiAgICAgICAgIG5ld0VtYWlsOiBbXCJcIiwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMuZW1haWxdXVxuICAgICAgfSk7XG4gICB9O1xuXG4gICBwdWJsaWMgYXN5bmMgb25TdWJtaXQoZm9ybURpcmVjdGl2ZTogRm9ybUdyb3VwRGlyZWN0aXZlKSB7XG4gICAgICBpZiAoIXRoaXMuZm9ybS52YWxpZCkgeyByZXR1cm47IH1cbiAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG5cbiAgICAgIGF3YWl0IHRoaXMuYXV0aFNlcnZpY2UubG9naW5XaXRoUG9wdXAoeyBhdXRob3JpemF0aW9uUGFyYW1zOiB7IG1heF9hZ2U6IDEgfSB9KS5zdWJzY3JpYmUoc3VjY2VzcyA9PiB7XG4gICAgICAgICB2YXIgdXBkYXRlUmVxdWVzdCA9IG5ldyBVc2VyUHJvZmlsZUR0bygpO1xuICAgICAgICAgdXBkYXRlUmVxdWVzdC5uYW1lID0gdGhpcy5mb3JtLmNvbnRyb2xzLm5hbWUudmFsdWU7XG4gICAgICAgICB1cGRhdGVSZXF1ZXN0LmVtYWlsID0gdGhpcy5mb3JtLmNvbnRyb2xzLm5ld0VtYWlsLnZhbHVlO1xuXG4gICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgdGhpcy51c2VyUHJvZmlsZVNlcnZpY2UudXBkYXRlKHVwZGF0ZVJlcXVlc3QpLnN1YnNjcmliZShzdWNjZXNzID0+IHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuc2hvd1N1Y2Nlc3MoXCJZb3VyIHByb2ZpbGUgd2FzIHVwZGF0ZWRcIik7XG4gICAgICAgICAgICAgICB9KTtcbiAgICAgICAgIH1cbiAgICAgICAgIGNhdGNoIChleDogYW55KSB7XG4gICAgICAgICAgICB0aGlzLmZvcm0uY29udHJvbHMubmV3RW1haWwuc2V0RXJyb3JzKHsgYWxyZWFkeUV4aXN0czogdHJ1ZSB9KTtcbiAgICAgICAgIH1cbiAgICAgIH0sIGVycm9yID0+IHtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgIH1cblxuICAgcHVibGljIHNldENoYW5nZUVtYWlsKCkge1xuICAgICAgdGhpcy5zaG93RW1haWxJbnB1dCA9IHRydWU7XG4gICAgICB0aGlzLmZvcm0uY29udHJvbHMubmV3RW1haWwuZW5hYmxlKCk7XG4gICB9XG5cbiAgIHB1YmxpYyB1cGxvYWRBdmF0YXIoJGZpbGVJbnB1dDogYW55KTogdm9pZCB7XG4gICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgY29uc3QgZmlsZSA9ICgkZmlsZUlucHV0LnRhcmdldC5maWxlc1swXSk7XG5cbiAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgICByZWFkZXIub25sb2FkID0gKGU6IGFueSkgPT4ge1xuICAgICAgICAgaWYgKGZpbGUudHlwZSAhPSBcImltYWdlL3BuZ1wiICYmIGZpbGUudHlwZSAhPSBcImltYWdlL2pwZWdcIikge1xuICAgICAgICAgICAgYWxlcnQoXCJUaGUgZmlsZSBtdXN0IGJlIGEgcG5nIG9yIGpwZyBmaWxlLiBZb3UgdXBsb2FkZWQgYSBmaWxlIG9mIHR5cGUgXCIgKyBmaWxlLnR5cGUpO1xuICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICB9XG5cbiAgICAgICAgIGNvbnN0IGltYWdlID0gbmV3IEltYWdlKCk7XG4gICAgICAgICBpbWFnZS5zcmMgPSBlLnRhcmdldC5yZXN1bHQ7XG4gICAgICAgICBpbWFnZS5vbmxvYWQgPSBycyA9PiB7XG4gICAgICAgICAgICBjb25zdCBpbWdfaGVpZ2h0ID0gcnMuY3VycmVudFRhcmdldFsnaGVpZ2h0J107XG4gICAgICAgICAgICBjb25zdCBpbWdfd2lkdGggPSBycy5jdXJyZW50VGFyZ2V0Wyd3aWR0aCddO1xuXG4gICAgICAgICAgICBpZiAoaW1nX2hlaWdodCA+IDUwMCAmJiBpbWdfd2lkdGggPiA1MDApIHtcbiAgICAgICAgICAgICAgIGFsZXJ0KFwiVGhlIGxvZ28gaXMgdG9vIGxhcmdlLiBQbGVhc2UgbGltaXQgdG8gYSBwaWN0dXJlIG9mIDUwMHg1MDAgcGl4ZWxzLlwiKTtcbiAgICAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgIHRoaXMudXNlclByb2ZpbGVTZXJ2aWNlLnNldEF2YXRhcihmaWxlKVxuICAgICAgICAgICAgICAgICAgLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gSHR0cEV2ZW50VHlwZS5VcGxvYWRQcm9ncmVzcykge1xuICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChldmVudCBpbnN0YW5jZW9mIEh0dHBSZXNwb25zZSkge1xuICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICB9O1xuICAgICAgfTtcblxuICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XG4gICB9O1xuXG4gICBwdWJsaWMgY2xlYXJBdmF0YXIoKTogdm9pZCB7XG4gICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgdGhpcy51c2VyUHJvZmlsZVNlcnZpY2UuY2xlYXJBdmF0YXIoKVxuICAgICAgICAgLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMudXNlclByb2ZpbGUuYXZhdGFyVXJsID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlQXZhdGFyID0gZmFsc2U7XG4gICAgICAgICB9KTtcbiAgIH07ICBcblxuICAgcHVibGljIHNlbmRQYXNzd29yZFJlc2V0KCkge1xuICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICAgIHRoaXMuYWNjb3VudFNlcnZpY2Uuc2VuZFJlc2V0UGFzc3dvcmQodGhpcy5lbWFpbCkuc3Vic2NyaWJlKFxuICAgICAgICAgc3VjY2VzcyA9PiB7XG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIHN1cGVyLnNob3dTdWNjZXNzKCdXZSBzZW50IGFuIGUtbWFpbCB0byAnICsgdGhpcy5lbWFpbCArICcgdG8gY2hhbmdlIHlvdXIgcGFzc3dvcmQnKTtcbiAgICAgICAgIH0pO1xuICAgfVxuXG4gICBwdWJsaWMgc2VuZE1mYUVucm9sbG1lbnQoKSB7XG4gICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgdGhpcy51c2VyUHJvZmlsZVNlcnZpY2Uuc2VuZE1mYUVucm9sbG1lbnQoKS5zdWJzY3JpYmUoXG4gICAgICAgICBzdWNjZXNzID0+IHtcbiAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgc3VwZXIuc2hvd1N1Y2Nlc3MoJ1dlIHNlbnQgYW4gZS1tYWlsIHRvICcgKyB0aGlzLmVtYWlsICsgJyB0byBzZXQgdXAgeW91ciBzZWNvbmQgZmFjdG9yICgyRkEpJyk7XG4gICAgICAgICB9KTtcbiAgIH1cblxuXG4gICBwdWJsaWMgcmVzZXRNZmFFbnJvbGxtZW50KCkge1xuICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICAgIHRoaXMudXNlclByb2ZpbGVTZXJ2aWNlLnJlc2V0TWZhRW5yb2xsbWVudCgpLnN1YnNjcmliZShcbiAgICAgICAgIHN1Y2Nlc3MgPT4ge1xuICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICBzdXBlci5zaG93U3VjY2VzcygnWW91ciBzZWNvbmQgZmFjdG9yIGlzIGNsZWFyZWQuIElmIDJGQSBpcyByZXF1aXJlZCBmb3IgeW91ciBhY2NvdW50LCB5b3Ugbm93IGhhdmUgdG8gc2V0IHVwIGFnYWluLiBPdGhlcndpc2UgeW91IGNhbiBsZWF2ZSBpdCBkaXNhYmxlZC4nKTtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO1xuICAgICAgICAgICAgfSwgNDAwMCk7XG4gICAgICAgICB9KTtcbiAgIH1cblxuICAgcHJvdGVjdGVkIG9uRGF0YVVwZGF0ZShkYXRhOiBJUmVzdWx0c1N0YXRlKTogdm9pZCB7XG4gICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgIHRoaXMuY2hhbmdlQXZhdGFyID0gZmFsc2U7XG4gICAgICB0aGlzLnVzZXJQcm9maWxlID0gZGF0YS51c2VySW5mby5wcm9maWxlO1xuICAgICAgdGhpcy5hbGxvd01mYSA9IGRhdGEudXNlckluZm8uZmVhdHVyZXMuYWxsb3dNRkE7XG4gICAgICB0aGlzLmZvcm0uY29udHJvbHMubmFtZS5zZXRWYWx1ZShkYXRhLnVzZXJJbmZvLnByb2ZpbGUubmFtZSk7XG4gICAgICBcbiAgICAgIGlmIChkYXRhLnVzZXJJbmZvLnByb2ZpbGUuZW1haWwpIHtcbiAgICAgICAgIHRoaXMuc2hvd0VtYWlsSW5wdXQgPSBmYWxzZTtcbiAgICAgICAgIHRoaXMuZm9ybS5jb250cm9scy5uZXdFbWFpbC5kaXNhYmxlKCk7XG4gICAgICB9XG4gICB9O1xufVxuIiwiPGRpdiBjbGFzcz1cImZvcm0tcHJvZmlsZVwiPlxuICAgPGgyPk15IFByb2ZpbGU8L2gyPlxuICAgPGZvcm0gY2xhc3M9XCJmb3JtXCIgW2Zvcm1Hcm91cF09XCJmb3JtXCIgKG5nU3VibWl0KT1cIm9uU3VibWl0KGZvcm1EaXJlY3RpdmUpXCIgI2Zvcm1EaXJlY3RpdmU9XCJuZ0Zvcm1cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWxhYmVsXCI+QXZhdGFyPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJjdXJyZW50dXNlcnByb2ZpbGVhdmF0YXJcIj5cbiAgICAgICAgIDxkaXYgY2xhc3M9XCJ1c2VycHJvZmlsZWF2YXRhclwiICpuZ0lmPVwidXNlclByb2ZpbGUuYXZhdGFyVXJsXCI+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwibG9hZGluZ1wiIGNsYXNzPVwibG9hZGluZy1pY29uIHNtYWxsXCI+PC9kaXY+XG4gICAgICAgICAgICA8aW1nICpuZ0lmPVwiIWxvYWRpbmdcIiBjbGFzcz1cInJlc3BvbnNpdmVcIiBbc3JjXT1cInVzZXJQcm9maWxlLmF2YXRhclVybFwiIC8+XG4gICAgICAgICA8L2Rpdj5cbiAgICAgICAgIDxkaXYgY2xhc3M9XCJyZXVwbG9hZFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvblwiIChjbGljayk9XCJjaGFuZ2VBdmF0YXIgPSB0cnVlXCIgKm5nSWY9XCIhY2hhbmdlQXZhdGFyICYmIHVzZXJQcm9maWxlLmF2YXRhclVybFwiPkNoYW5nZSBhdmF0YXI8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b25cIiAoY2xpY2spPVwiY2hhbmdlQXZhdGFyID0gdHJ1ZVwiICpuZ0lmPVwiIWNoYW5nZUF2YXRhciAmJiAhdXNlclByb2ZpbGUuYXZhdGFyVXJsXCI+U2V0IGF2YXRhcjwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvblwiIChjbGljayk9XCJjbGVhckF2YXRhcigpXCIgKm5nSWY9XCJjaGFuZ2VBdmF0YXIgJiYgdXNlclByb2ZpbGUuYXZhdGFyVXJsXCI+PHNwYW4gY2xhc3M9XCJpY29uIHBoLXRyYXNoLWZpbGxcIj48L3NwYW4+Q2xlYXI8L2Rpdj5cbiAgICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJyZXVwbG9hZGZvcm1cIiAqbmdJZj1cImNoYW5nZUF2YXRhclwiPlxuICAgICAgICAgPGRpdiAoY2xpY2spPVwiY2hhbmdlQXZhdGFyID0gZmFsc2VcIiBjbGFzcz1cImNhbmNlbCBpY29uIHBoLXgtYm9sZFwiPjwvZGl2PlxuICAgICAgICAgPGlucHV0IGNsYXNzPVwibWF0LWZvcm0tZmllbGRcIiBhY2NlcHQ9XCJpbWFnZS9wbmcsaW1hZ2UvanBlZ1wiIHR5cGU9XCJmaWxlXCIgaWQ9XCJjb2FjaC1hdmF0YXJcIiAoY2hhbmdlKT1cInVwbG9hZEF2YXRhcigkZXZlbnQpXCI+XG4gICAgICAgICA8ZGl2IGNsYXNzPVwibWVzc2FnZSBtZXNzYWdlLWluZm9ybWF0aW9uXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImljb24gcGgtaW5mby1maWxsXCI+PC9zcGFuPlNlbGVjdCBuZXcgaW1hZ2UgKC5wbmcgb3IgLmpwZykuIFVzZSBhIDE6MSByYXRpbyBmb3IgdGhlIGJlc3QgcmVzdWx0cyAoZS5nLiA1MDB4NTAwKS4gTWF4aW11bSBzaXplIGlzIDUwMHg1MDBweCBhbmQgNTAwa2IuXG4gICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1sYWJlbFwiPk5hbWU8L2Rpdj5cbiAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiIHN1YnNjcmlwdFNpemluZz1cImR5bmFtaWNcIj5cbiAgICAgICAgIDxtYXQtbGFiZWw+V2hhdCBpcyB5b3VyIG5hbWU/PC9tYXQtbGFiZWw+XG4gICAgICAgICA8aW5wdXQgbWF4bGVuZ3RoPVwiNTBcIiBtYXRJbnB1dCBpZD1cIm5hbWVcIiBmb3JtQ29udHJvbE5hbWU9XCJuYW1lXCIgdHlwZT1cInRleHRcIj5cbiAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmb3JtLmNvbnRyb2xzLm5hbWUuZXJyb3JzXCI+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZm9ybS5jb250cm9scy5uYW1lLmVycm9ycy5yZXF1aXJlZFwiPlRoaXMgZmllbGQgaXMgcmVxdWlyZWQ8L2Rpdj5cbiAgICAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgPGRpdiBjbGFzcz1cImZvcm0tbGFiZWxcIj5FbWFpbDwvZGl2PlxuICAgICAgPHAgKm5nSWY9XCIhc2hvd0VtYWlsSW5wdXRcIj5cbiAgICAgICAgIFRoZSBlLW1haWwgYWRkcmVzcyBpcyBzZXQgdG8gPGI+e3t1c2VyUHJvZmlsZS5lbWFpbH19PC9iPi5cbiAgICAgICAgIDxhIFtyb3V0ZXJMaW5rXT1cIltdXCIgaWQ9XCJ0b2dnbGUtZW1haWxcIiAoY2xpY2spPVwic2V0Q2hhbmdlRW1haWwoKVwiPlNldCBhIGRpZmZlcmVudCBhZGRyZXNzLjwvYT5cbiAgICAgIDwvcD5cblxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCIgKm5nSWY9XCJzaG93RW1haWxJbnB1dFwiIHN1YnNjcmlwdFNpemluZz1cImR5bmFtaWNcIj5cbiAgICAgICAgIDxtYXQtbGFiZWw+T24gd2hhdCBlLW1haWwgYWRkcmVzcyBjYW4geW91IGJlIGNvbnRhY3RlZD88L21hdC1sYWJlbD5cbiAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBpZD1cIm5ld0VtYWlsXCIgZm9ybUNvbnRyb2xOYW1lPVwibmV3RW1haWxcIiB0eXBlPVwiZW1haWxcIj5cbiAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmb3JtLmNvbnRyb2xzLm5ld0VtYWlsLmVycm9yc1wiPlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cImZvcm0uY29udHJvbHMubmV3RW1haWwuZXJyb3JzLmVtYWlsXCI+VGhlIGVtYWlsIGlzIGludmFsaWQuIFBsZWFzZSBzcGVjaWZ5IGVtYWlsIGxpa2Ugam9obiYjNjQ7ZG9lLm5sIG9yIGphbmUuZG9lJiM2NDtzb21lb25lLm5sLjwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cImZvcm0uY29udHJvbHMubmV3RW1haWwuZXJyb3JzLmFscmVhZHlFeGlzdHNcIj5Bbm90aGVyIHVzZXIgYWxyZWFkeSB1c2VzIHRoaXMgZS1tYWlsIGFkZHJlc3MuIFBsZWFzZSB1c2UgYW5vdGhlciBlbWFpbCBhZGRyZXNzLjwvZGl2PlxuICAgICAgICAgPC9tYXQtZXJyb3I+XG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwidG9vbGJhclwiPlxuICAgICAgICAgPGlucHV0IGNsYXNzPVwiYnV0dG9uIHN1Ym1pdCBwcmltYXJ5XCIgdHlwZT1cInN1Ym1pdFwiIGlkPVwic3VibWl0XCIgW2Rpc2FibGVkXT1cImxvYWRpbmdcIiBbbmdDbGFzc109XCJ7J2xvYWRpbmcnOiBsb2FkaW5nfVwiIHZhbHVlPVwiU2F2ZVwiIC8+XG4gICAgICA8L2Rpdj5cbiAgIDwvZm9ybT5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwiZm9ybS1zZWN1cml0eVwiPlxuICAgPGgyPlNlY3VyaXR5PC9oMj5cblxuICAgPGZvcm0gY2xhc3M9XCJmb3JtXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1sYWJlbFwiPkNoYW5nZSBwYXNzd29yZDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvblwiIChjbGljayk9XCJzZW5kUGFzc3dvcmRSZXNldCgpXCIgaWQ9XCJhY2NvdW50LXBhc3N3b3JkcmVzZXRcIiAqbmdJZj1cIiF1c2VyUHJvZmlsZS51c2VzU1NPXCI+U2VuZCBlbWFpbCB0byBjaGFuZ2UgcGFzc3dvcmQ8L2Rpdj5cbiAgICAgIDxwICpuZ0lmPVwidXNlclByb2ZpbGUudXNlc1NTT1wiPllvdSBhcmUgbG9nZ2luZyBpbiB0aHJvdWdoIHNpbmdsZS1zaWduIG9uIChTU08pLiBVc2UgeW91ciBjb21wYW55J3MgaWRlbnRpdHkgcHJvdmlkZXIgdG8gY2hhbmdlIHlvdXIgcGFzc3dvcmQuPC9wPlxuXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYWxsb3dNZmFcIj5cbiAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWxhYmVsXCI+QWRkIGFkZGl0aW9uYWwgbG9naW4gZmFjdG9yIChNRkEpPC9kaXY+XG4gICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXVzZXNNZmFcIj5cbiAgICAgICAgICAgIDxwPkFkZCBhIGNvZGUgZnJvbSBHb29nbGUgQXV0aGVudGljYXRvciBvciBzaW1pbGFyIHRvIHlvdXIgYWNjb3VudCB0byBtYWtlIGl0IG1vcmUgc2VjdXJlLjwvcD5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b25cIiAoY2xpY2spPVwic2VuZE1mYUVucm9sbG1lbnQoKVwiIGlkPVwiYWNjb3VudC1lbnJvbGxtZmFcIj5TZW5kIGVtYWlsIHRvIHNldCB1cCAyRkE8L2Rpdj5cbiAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInVzZXNNZmFcIj5cbiAgICAgICAgICAgIDxwPkFuIGFkZGl0aW9uYWwgZmFjdG9yIGlzIDxiPmVuYWJsZWQ8L2I+IGZvciB0aGlzIGFjY291bnQuPC9wPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvblwiIChjbGljayk9XCJyZXNldE1mYUVucm9sbG1lbnQoKVwiIGlkPVwiYWNjb3VudC1yZXNldG1mYVwiPlJlc2V0IDJGQTwvZGl2PlxuICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgIDwvZm9ybT5cbjwvZGl2PlxuIl19
|
|
@@ -9,10 +9,10 @@ export class VideoComponent {
|
|
|
9
9
|
openVideo() {
|
|
10
10
|
window.open(this.videoUrl, "_blank");
|
|
11
11
|
}
|
|
12
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
13
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.
|
|
12
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: VideoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
13
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: VideoComponent, selector: "explainervideo", inputs: { videoUrl: "videoUrl", videoTitle: "videoTitle" }, ngImport: i0, template: "<div class=\"box explainervideo\" brandbackground [palette]=\"'theme'\" (click)=\"openVideo()\">\n <span class=\"ph-monitor-play-bold icon video\"></span>\n <div class=\"name\">\n <h3>\n {{videoTitle}}\n </h3>\n <div class=\"tags\">\n <span class=\"tag external\"><span class=\"icon ph-arrow-square-out\"></span> youtube</span>\n </div>\n </div>\n</div>\n\n\n", styles: [".smallTextUppercase{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%}.bigletteredbutton{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;text-decoration:none;background:#ffffff1a;margin-bottom:10px;display:flex;align-content:center;border-radius:20px;padding:15px;font-size:24px;border:2px solid #1F3F8F;border-bottom:6px solid #1F3F8F;color:#fff;align-items:center;cursor:pointer}.bigletteredbutton .free{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;background:#fff73f;color:#2f2f2f;padding:3px 5px;margin-left:20px;border-radius:10px}.bigletteredbutton .plan{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;background:#fff;color:#2f2f2f;padding:3px 5px;margin-left:20px;border-radius:10px}.bigletteredbutton:hover,.bigletteredbutton.selected{border:2px solid #fff73f;border-bottom:6px solid #fff73f}.bigletteredbutton .button-letter{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;font-family:StevieSans,sans-serif;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;background:#fff73f;color:#1f3f8f;margin-right:20px}.bigletteredbutton .button-letter .ph{color:#1f3f8f}.bigletteredbutton .button-letter:hover{background:#1f3f8f;color:#fff73f}.bigletteredbutton .button-letter:hover .ph{color:#fff73f}.roundicon-yellow{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;font-family:StevieSans,sans-serif;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;background:#fff73f;color:#1f3f8f}.roundicon-yellow .ph{color:#1f3f8f}.roundicon-yellow:hover{background:#1f3f8f;color:#fff73f}.roundicon-yellow:hover .ph{color:#fff73f}.roundicon{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;font-family:StevieSans,sans-serif;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center}.roundicon-large{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;font-family:StevieSans,sans-serif;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;border-radius:60px;height:120px;width:120px}.box{cursor:pointer;padding:20px;display:flex}.box .video{vertical-align:middle;margin-right:15px;font-size:60px;width:60px;color:#fff;text-decoration:none}.box .name{color:#fff}.box .name:hover{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;text-decoration:underline}.box h3{font-size:30px;margin-bottom:5px}.box .tags{display:block}\n"], dependencies: [{ kind: "directive", type: i1.BrandBackgroundDirective, selector: "[brandbackground]", inputs: ["palette"] }] }); }
|
|
14
14
|
}
|
|
15
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: VideoComponent, decorators: [{
|
|
16
16
|
type: Component,
|
|
17
17
|
args: [{ selector: 'explainervideo', template: "<div class=\"box explainervideo\" brandbackground [palette]=\"'theme'\" (click)=\"openVideo()\">\n <span class=\"ph-monitor-play-bold icon video\"></span>\n <div class=\"name\">\n <h3>\n {{videoTitle}}\n </h3>\n <div class=\"tags\">\n <span class=\"tag external\"><span class=\"icon ph-arrow-square-out\"></span> youtube</span>\n </div>\n </div>\n</div>\n\n\n", styles: [".smallTextUppercase{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%}.bigletteredbutton{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;text-decoration:none;background:#ffffff1a;margin-bottom:10px;display:flex;align-content:center;border-radius:20px;padding:15px;font-size:24px;border:2px solid #1F3F8F;border-bottom:6px solid #1F3F8F;color:#fff;align-items:center;cursor:pointer}.bigletteredbutton .free{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;background:#fff73f;color:#2f2f2f;padding:3px 5px;margin-left:20px;border-radius:10px}.bigletteredbutton .plan{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;background:#fff;color:#2f2f2f;padding:3px 5px;margin-left:20px;border-radius:10px}.bigletteredbutton:hover,.bigletteredbutton.selected{border:2px solid #fff73f;border-bottom:6px solid #fff73f}.bigletteredbutton .button-letter{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;font-family:StevieSans,sans-serif;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;background:#fff73f;color:#1f3f8f;margin-right:20px}.bigletteredbutton .button-letter .ph{color:#1f3f8f}.bigletteredbutton .button-letter:hover{background:#1f3f8f;color:#fff73f}.bigletteredbutton .button-letter:hover .ph{color:#fff73f}.roundicon-yellow{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;font-family:StevieSans,sans-serif;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;background:#fff73f;color:#1f3f8f}.roundicon-yellow .ph{color:#1f3f8f}.roundicon-yellow:hover{background:#1f3f8f;color:#fff73f}.roundicon-yellow:hover .ph{color:#fff73f}.roundicon{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;font-family:StevieSans,sans-serif;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center}.roundicon-large{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;font-family:StevieSans,sans-serif;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;border-radius:60px;height:120px;width:120px}.box{cursor:pointer;padding:20px;display:flex}.box .video{vertical-align:middle;margin-right:15px;font-size:60px;width:60px;color:#fff;text-decoration:none}.box .name{color:#fff}.box .name:hover{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;text-decoration:underline}.box h3{font-size:30px;margin-bottom:5px}.box .tags{display:block}\n"] }]
|
|
18
18
|
}], ctorParameters: () => [], propDecorators: { videoUrl: [{
|
|
@@ -20,4 +20,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
|
|
|
20
20
|
}], videoTitle: [{
|
|
21
21
|
type: Input
|
|
22
22
|
}] } });
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlkZW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNjcnVtdGVhbXN1cnZleS10b29scy9zcmMvbGliL3Jlc3VsdHMvY29tcG9uZW50cy92aWRlby92aWRlby5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2NydW10ZWFtc3VydmV5LXRvb2xzL3NyYy9saWIvcmVzdWx0cy9jb21wb25lbnRzL3ZpZGVvL3ZpZGVvLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFPakQsTUFBTSxPQUFPLGNBQWM7SUFJeEI7SUFDQSxDQUFDO0lBRUQsUUFBUTtJQUNSLENBQUM7SUFFRCxTQUFTO1FBQ04sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7K0dBWlMsY0FBYzttR0FBZCxjQUFjLGtIQ1AzQixtWkFhQTs7NEZETmEsY0FBYztrQkFMMUIsU0FBUzsrQkFDRyxnQkFBZ0I7d0RBS1YsUUFBUTtzQkFBdkIsS0FBSztnQkFDVSxVQUFVO3NCQUF6QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgIHNlbGVjdG9yOiAnZXhwbGFpbmVydmlkZW8nLFxuICAgdGVtcGxhdGVVcmw6ICcuL3ZpZGVvLmNvbXBvbmVudC5odG1sJyxcbiAgIHN0eWxlVXJsczogWycuL3ZpZGVvLmNvbXBvbmVudC5sZXNzJ11cbn0pXG5leHBvcnQgY2xhc3MgVmlkZW9Db21wb25lbnQge1xuICAgQElucHV0KCkgcHVibGljIHZpZGVvVXJsOiBzdHJpbmc7XG4gICBASW5wdXQoKSBwdWJsaWMgdmlkZW9UaXRsZTogc3RyaW5nO1xuXG4gICBjb25zdHJ1Y3RvcigpIHtcbiAgIH1cblxuICAgbmdPbkluaXQoKSB7XG4gICB9XG5cbiAgIG9wZW5WaWRlbygpIHtcbiAgICAgIHdpbmRvdy5vcGVuKHRoaXMudmlkZW9VcmwsIFwiX2JsYW5rXCIpO1xuICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImJveCBleHBsYWluZXJ2aWRlb1wiIGJyYW5kYmFja2dyb3VuZCBbcGFsZXR0ZV09XCIndGhlbWUnXCIgKGNsaWNrKT1cIm9wZW5WaWRlbygpXCI+XG4gICA8c3BhbiBjbGFzcz1cInBoLW1vbml0b3ItcGxheS1ib2xkIGljb24gdmlkZW9cIj48L3NwYW4+XG4gICA8ZGl2IGNsYXNzPVwibmFtZVwiPlxuICAgICAgPGgzPlxuICAgICAgICAge3t2aWRlb1RpdGxlfX1cbiAgICAgIDwvaDM+XG4gICAgICA8ZGl2IGNsYXNzPVwidGFnc1wiPlxuICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0YWcgZXh0ZXJuYWxcIj48c3BhbiBjbGFzcz1cImljb24gcGgtYXJyb3ctc3F1YXJlLW91dFwiPjwvc3Bhbj4geW91dHViZTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgPC9kaXY+XG48L2Rpdj5cblxuXG4iXX0=
|