@edugouvfr/ngx-dsfr-ext
Version:
NgxDsfrExt est une extension au package @edugouvfr/ngx-dsfr (portage Angular des éléments DSFR)
44 lines • 18.1 kB
JavaScript
import { CommonModule } from '@angular/common';
import { Component, inject, Input, ViewEncapsulation } from '@angular/core';
import { DsfrI18nPipe, DsfrI18nService, Language } from '@edugouvfr/ngx-dsfr';
import { MESSAGES_EN } from './i18n/messages.en';
import { MESSAGES_FR } from './i18n/messages.fr';
import * as i0 from "@angular/core";
import * as i1 from "@angular/common";
export class DsfrSpinnerComponent {
constructor() {
/**
* Type de loader.
*/
this.typeLoader = 'sun';
/**
* Conditionne un overlay fullscreen.
*/
this.overlay = false;
this.i18n = inject(DsfrI18nService);
this.i18n.extendsLabelsBundle(Language.EN, MESSAGES_EN);
this.i18n.extendsLabelsBundle(Language.FR, MESSAGES_FR);
}
/** @internal */
getClasses() {
return {
'dsfrx-spinner': true,
'dsfrx-spinner--sun': this.typeLoader === 'sun',
'dsfrx-spinner--quarter': this.typeLoader === 'quarter',
'dsfrx-spinner--line': this.typeLoader === 'line',
};
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DsfrSpinnerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DsfrSpinnerComponent, isStandalone: true, selector: "dsfr-ext-spinner", inputs: { typeLoader: "typeLoader", overlay: "overlay", labelSrOnly: "labelSrOnly" }, ngImport: i0, template: "@if (overlay) {\n <div class=\"dsfrx-overlay\">\n <div [ngClass]=\"getClasses()\">\n <ng-container *ngTemplateOutlet=\"dsfrSpinner\"></ng-container>\n </div>\n </div>\n} @else {\n <div [ngClass]=\"getClasses()\">\n <ng-container *ngTemplateOutlet=\"dsfrSpinner\"></ng-container>\n </div>\n}\n\n<ng-template #dsfrSpinner>\n @switch (typeLoader) {\n @default {\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path\n d=\"M11.9995 2C12.5518 2 12.9995 2.44772 12.9995 3V6C12.9995 6.55228 12.5518 7 11.9995 7C11.4472 7 10.9995 6.55228 10.9995 6V3C10.9995 2.44772 11.4472 2 11.9995 2ZM11.9995 17C12.5518 17 12.9995 17.4477 12.9995 18V21C12.9995 21.5523 12.5518 22 11.9995 22C11.4472 22 10.9995 21.5523 10.9995 21V18C10.9995 17.4477 11.4472 17 11.9995 17ZM20.6597 7C20.9359 7.47829 20.772 8.08988 20.2937 8.36602L17.6956 9.86602C17.2173 10.1422 16.6057 9.97829 16.3296 9.5C16.0535 9.02171 16.2173 8.41012 16.6956 8.13398L19.2937 6.63397C19.772 6.35783 20.3836 6.52171 20.6597 7ZM7.66935 14.5C7.94549 14.9783 7.78161 15.5899 7.30332 15.866L4.70525 17.366C4.22695 17.6422 3.61536 17.4783 3.33922 17C3.06308 16.5217 3.22695 15.9101 3.70525 15.634L6.30332 14.134C6.78161 13.8578 7.3932 14.0217 7.66935 14.5ZM20.6597 17C20.3836 17.4783 19.772 17.6422 19.2937 17.366L16.6956 15.866C16.2173 15.5899 16.0535 14.9783 16.3296 14.5C16.6057 14.0217 17.2173 13.8578 17.6956 14.134L20.2937 15.634C20.772 15.9101 20.9359 16.5217 20.6597 17ZM7.66935 9.5C7.3932 9.97829 6.78161 10.1422 6.30332 9.86602L3.70525 8.36602C3.22695 8.08988 3.06308 7.47829 3.33922 7C3.61536 6.52171 4.22695 6.35783 4.70525 6.63397L7.30332 8.13398C7.78161 8.41012 7.94549 9.02171 7.66935 9.5Z\" />\n </svg>\n }\n @case ('quarter') {\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path d=\"M12 3C16.9706 3 21 7.02944 21 12H19C19 8.13401 15.866 5 12 5V3Z\"></path>\n </svg>\n }\n @case ('line') {\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path\n d=\"M18.364 5.63604L16.9497 7.05025C15.683 5.7835 13.933 5 12 5C8.13401 5 5 8.13401 5 12C5 15.866 8.13401 19 12 19C15.866 19 19 15.866 19 12H21C21 16.9706 16.9706 21 12 21C7.02944 21 3 16.9706 3 12C3 7.02944 7.02944 3 12 3C14.4853 3 16.7353 4.00736 18.364 5.63604Z\"></path>\n </svg>\n }\n }\n</ng-template>\n\n<span class=\"fr-sr-only\">{{ labelSrOnly ?? ('spinner.messageContext' | dsfrI18n) }}</span>\n", styles: [".dsfrx-overlay{position:fixed;inset:0;background-color:#161616a3;z-index:9999;cursor:not-allowed}.dsfrx-overlay:before{content:\"\";width:3.5rem;height:3.5rem;background-color:var(--background-lifted-grey);position:absolute;z-index:9999;top:calc(50% - 1.75rem);left:calc(50% - 1.75rem)}.dsfrx-overlay .dsfrx-spinner{width:2.5rem;height:2.5rem;position:absolute;z-index:99999;top:calc(50% - 1.25rem);left:calc(50% - 1.25rem)}.dsfrx-spinner{width:2rem;height:2rem;fill:var(--background-action-high-blue-france)}.dsfrx-spinner--sun{clip-path:polygon(60% 0%,60% 50%,100% 50%,100% 99%,0% 100%,0% 0%);animation:rotateSpinner1 1s ease-in-out infinite}.dsfrx-spinner--quarter,.dsfrx-spinner--line{animation:rotateSpinner2 1s ease-in-out infinite}@keyframes rotateSpinner1{0%{clip-path:polygon(60% 0%,60% 50%,100% 50%,100% 100%,0% 100%,0% 0%)}16%{clip-path:polygon(60% 0%,60% 50%,100% 50%,100% 100%,0% 100%,0% 0%)}17%{clip-path:polygon(100% 0%,100% 50%,60% 50%,60% 100%,0% 100%,0% 0%)}33%{clip-path:polygon(100% 0%,100% 50%,60% 50%,60% 100%,0% 100%,0% 0%)}34%{clip-path:polygon(0% 0%,100% 0%,100% 100%,50% 50%,50% 50%,0% 100%)}50%{clip-path:polygon(0% 0%,100% 0%,100% 100%,50% 50%,50% 50%,0% 100%)}51%{clip-path:polygon(0% 0%,100% 0%,100% 100%,40% 100%,40% 50%,0% 50%)}67%{clip-path:polygon(0% 0%,100% 0%,100% 100%,40% 100%,40% 50%,0% 50%)}68%{clip-path:polygon(40% 0%,100% 0%,100% 100%,0% 100%,0% 50%,40% 50%)}83%{clip-path:polygon(40% 0%,100% 0%,100% 100%,0% 100%,0% 50%,40% 50%)}84%{clip-path:polygon(50% 50%,100% 0%,100% 100%,0% 100%,0% 0%,50% 50%)}99%{clip-path:polygon(51% 50%,100% 0%,100% 100%,0% 100%,0% 0%,50% 50%)}to{clip-path:polygon(60% 0%,60% 50%,100% 50%,100% 100%,0% 100%,0% 0%)}}@keyframes rotateSpinner2{0%{transform:rotate(0)}to{transform:rotate(360deg)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: DsfrI18nPipe, name: "dsfrI18n" }], encapsulation: i0.ViewEncapsulation.None }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DsfrSpinnerComponent, decorators: [{
type: Component,
args: [{ selector: 'dsfr-ext-spinner', encapsulation: ViewEncapsulation.None, standalone: true, imports: [CommonModule, DsfrI18nPipe], template: "@if (overlay) {\n <div class=\"dsfrx-overlay\">\n <div [ngClass]=\"getClasses()\">\n <ng-container *ngTemplateOutlet=\"dsfrSpinner\"></ng-container>\n </div>\n </div>\n} @else {\n <div [ngClass]=\"getClasses()\">\n <ng-container *ngTemplateOutlet=\"dsfrSpinner\"></ng-container>\n </div>\n}\n\n<ng-template #dsfrSpinner>\n @switch (typeLoader) {\n @default {\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path\n d=\"M11.9995 2C12.5518 2 12.9995 2.44772 12.9995 3V6C12.9995 6.55228 12.5518 7 11.9995 7C11.4472 7 10.9995 6.55228 10.9995 6V3C10.9995 2.44772 11.4472 2 11.9995 2ZM11.9995 17C12.5518 17 12.9995 17.4477 12.9995 18V21C12.9995 21.5523 12.5518 22 11.9995 22C11.4472 22 10.9995 21.5523 10.9995 21V18C10.9995 17.4477 11.4472 17 11.9995 17ZM20.6597 7C20.9359 7.47829 20.772 8.08988 20.2937 8.36602L17.6956 9.86602C17.2173 10.1422 16.6057 9.97829 16.3296 9.5C16.0535 9.02171 16.2173 8.41012 16.6956 8.13398L19.2937 6.63397C19.772 6.35783 20.3836 6.52171 20.6597 7ZM7.66935 14.5C7.94549 14.9783 7.78161 15.5899 7.30332 15.866L4.70525 17.366C4.22695 17.6422 3.61536 17.4783 3.33922 17C3.06308 16.5217 3.22695 15.9101 3.70525 15.634L6.30332 14.134C6.78161 13.8578 7.3932 14.0217 7.66935 14.5ZM20.6597 17C20.3836 17.4783 19.772 17.6422 19.2937 17.366L16.6956 15.866C16.2173 15.5899 16.0535 14.9783 16.3296 14.5C16.6057 14.0217 17.2173 13.8578 17.6956 14.134L20.2937 15.634C20.772 15.9101 20.9359 16.5217 20.6597 17ZM7.66935 9.5C7.3932 9.97829 6.78161 10.1422 6.30332 9.86602L3.70525 8.36602C3.22695 8.08988 3.06308 7.47829 3.33922 7C3.61536 6.52171 4.22695 6.35783 4.70525 6.63397L7.30332 8.13398C7.78161 8.41012 7.94549 9.02171 7.66935 9.5Z\" />\n </svg>\n }\n @case ('quarter') {\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path d=\"M12 3C16.9706 3 21 7.02944 21 12H19C19 8.13401 15.866 5 12 5V3Z\"></path>\n </svg>\n }\n @case ('line') {\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path\n d=\"M18.364 5.63604L16.9497 7.05025C15.683 5.7835 13.933 5 12 5C8.13401 5 5 8.13401 5 12C5 15.866 8.13401 19 12 19C15.866 19 19 15.866 19 12H21C21 16.9706 16.9706 21 12 21C7.02944 21 3 16.9706 3 12C3 7.02944 7.02944 3 12 3C14.4853 3 16.7353 4.00736 18.364 5.63604Z\"></path>\n </svg>\n }\n }\n</ng-template>\n\n<span class=\"fr-sr-only\">{{ labelSrOnly ?? ('spinner.messageContext' | dsfrI18n) }}</span>\n", styles: [".dsfrx-overlay{position:fixed;inset:0;background-color:#161616a3;z-index:9999;cursor:not-allowed}.dsfrx-overlay:before{content:\"\";width:3.5rem;height:3.5rem;background-color:var(--background-lifted-grey);position:absolute;z-index:9999;top:calc(50% - 1.75rem);left:calc(50% - 1.75rem)}.dsfrx-overlay .dsfrx-spinner{width:2.5rem;height:2.5rem;position:absolute;z-index:99999;top:calc(50% - 1.25rem);left:calc(50% - 1.25rem)}.dsfrx-spinner{width:2rem;height:2rem;fill:var(--background-action-high-blue-france)}.dsfrx-spinner--sun{clip-path:polygon(60% 0%,60% 50%,100% 50%,100% 99%,0% 100%,0% 0%);animation:rotateSpinner1 1s ease-in-out infinite}.dsfrx-spinner--quarter,.dsfrx-spinner--line{animation:rotateSpinner2 1s ease-in-out infinite}@keyframes rotateSpinner1{0%{clip-path:polygon(60% 0%,60% 50%,100% 50%,100% 100%,0% 100%,0% 0%)}16%{clip-path:polygon(60% 0%,60% 50%,100% 50%,100% 100%,0% 100%,0% 0%)}17%{clip-path:polygon(100% 0%,100% 50%,60% 50%,60% 100%,0% 100%,0% 0%)}33%{clip-path:polygon(100% 0%,100% 50%,60% 50%,60% 100%,0% 100%,0% 0%)}34%{clip-path:polygon(0% 0%,100% 0%,100% 100%,50% 50%,50% 50%,0% 100%)}50%{clip-path:polygon(0% 0%,100% 0%,100% 100%,50% 50%,50% 50%,0% 100%)}51%{clip-path:polygon(0% 0%,100% 0%,100% 100%,40% 100%,40% 50%,0% 50%)}67%{clip-path:polygon(0% 0%,100% 0%,100% 100%,40% 100%,40% 50%,0% 50%)}68%{clip-path:polygon(40% 0%,100% 0%,100% 100%,0% 100%,0% 50%,40% 50%)}83%{clip-path:polygon(40% 0%,100% 0%,100% 100%,0% 100%,0% 50%,40% 50%)}84%{clip-path:polygon(50% 50%,100% 0%,100% 100%,0% 100%,0% 0%,50% 50%)}99%{clip-path:polygon(51% 50%,100% 0%,100% 100%,0% 100%,0% 0%,50% 50%)}to{clip-path:polygon(60% 0%,60% 50%,100% 50%,100% 100%,0% 100%,0% 0%)}}@keyframes rotateSpinner2{0%{transform:rotate(0)}to{transform:rotate(360deg)}}\n"] }]
}], ctorParameters: () => [], propDecorators: { typeLoader: [{
type: Input
}], overlay: [{
type: Input
}], labelSrOnly: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Bpbm5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZHNmci1leHQvc3JjL2xpYi9zcGlubmVyL3NwaW5uZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWRzZnItZXh0L3NyYy9saWIvc3Bpbm5lci9zcGlubmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUUsT0FBTyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDOUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7O0FBVWpELE1BQU0sT0FBTyxvQkFBb0I7SUFtQi9CO1FBbEJBOztXQUVHO1FBQ00sZUFBVSxHQUErQixLQUFLLENBQUM7UUFFeEQ7O1dBRUc7UUFDTSxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBUWpCLFNBQUksR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFHckMsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQsZ0JBQWdCO0lBQ2hCLFVBQVU7UUFDUixPQUFPO1lBQ0wsZUFBZSxFQUFFLElBQUk7WUFDckIsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLFVBQVUsS0FBSyxLQUFLO1lBQy9DLHdCQUF3QixFQUFFLElBQUksQ0FBQyxVQUFVLEtBQUssU0FBUztZQUN2RCxxQkFBcUIsRUFBRSxJQUFJLENBQUMsVUFBVSxLQUFLLE1BQU07U0FDbEQsQ0FBQztJQUNKLENBQUM7K0dBaENVLG9CQUFvQjttR0FBcEIsb0JBQW9CLGtLQ2RqQyxrN0VBbUNBLCt4RER2QlksWUFBWSwrUkFBRSxZQUFZOzs0RkFFekIsb0JBQW9CO2tCQVJoQyxTQUFTOytCQUNFLGtCQUFrQixpQkFHYixpQkFBaUIsQ0FBQyxJQUFJLGNBQ3pCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUM7d0RBTTVCLFVBQVU7c0JBQWxCLEtBQUs7Z0JBS0csT0FBTztzQkFBZixLQUFLO2dCQU1HLFdBQVc7c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIElucHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRHNmckkxOG5QaXBlLCBEc2ZySTE4blNlcnZpY2UsIExhbmd1YWdlIH0gZnJvbSAnQGVkdWdvdXZmci9uZ3gtZHNmcic7XG5pbXBvcnQgeyBNRVNTQUdFU19FTiB9IGZyb20gJy4vaTE4bi9tZXNzYWdlcy5lbic7XG5pbXBvcnQgeyBNRVNTQUdFU19GUiB9IGZyb20gJy4vaTE4bi9tZXNzYWdlcy5mcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2RzZnItZXh0LXNwaW5uZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vc3Bpbm5lci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NwaW5uZXIuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBEc2ZySTE4blBpcGVdLFxufSlcbmV4cG9ydCBjbGFzcyBEc2ZyU3Bpbm5lckNvbXBvbmVudCB7XG4gIC8qKlxuICAgKiBUeXBlIGRlIGxvYWRlci5cbiAgICovXG4gIEBJbnB1dCgpIHR5cGVMb2FkZXI6ICdzdW4nIHwgJ3F1YXJ0ZXInIHwgJ2xpbmUnID0gJ3N1bic7XG5cbiAgLyoqXG4gICAqIENvbmRpdGlvbm5lIHVuIG92ZXJsYXkgZnVsbHNjcmVlbi5cbiAgICovXG4gIEBJbnB1dCgpIG92ZXJsYXkgPSBmYWxzZTtcblxuICAvKipcbiAgICogIE1lc3NhZ2UgcGVybWV0dGFudCBkZSBkb25uZXIgcGx1cyBkZSBjb250ZXh0ZSBhdXggdXNhZ2VycyB1dGlsaXNhbnQgdW4gbGVjdGV1ciBkJ8OpY3Jhbi5cbiAgICogKGV4IDogXCJFbiBhdHRlbnRlIGRlIGxhIHZhbGlkYXRpb24gZGUgbCdpbnNjcmlwdGlvbi5cIilcbiAgICovXG4gIEBJbnB1dCgpIGxhYmVsU3JPbmx5OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgcHJpdmF0ZSBpMThuID0gaW5qZWN0KERzZnJJMThuU2VydmljZSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5pMThuLmV4dGVuZHNMYWJlbHNCdW5kbGUoTGFuZ3VhZ2UuRU4sIE1FU1NBR0VTX0VOKTtcbiAgICB0aGlzLmkxOG4uZXh0ZW5kc0xhYmVsc0J1bmRsZShMYW5ndWFnZS5GUiwgTUVTU0FHRVNfRlIpO1xuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBnZXRDbGFzc2VzKCk6IHt9IHtcbiAgICByZXR1cm4ge1xuICAgICAgJ2RzZnJ4LXNwaW5uZXInOiB0cnVlLFxuICAgICAgJ2RzZnJ4LXNwaW5uZXItLXN1bic6IHRoaXMudHlwZUxvYWRlciA9PT0gJ3N1bicsXG4gICAgICAnZHNmcngtc3Bpbm5lci0tcXVhcnRlcic6IHRoaXMudHlwZUxvYWRlciA9PT0gJ3F1YXJ0ZXInLFxuICAgICAgJ2RzZnJ4LXNwaW5uZXItLWxpbmUnOiB0aGlzLnR5cGVMb2FkZXIgPT09ICdsaW5lJyxcbiAgICB9O1xuICB9XG59XG4iLCJAaWYgKG92ZXJsYXkpIHtcbiAgPGRpdiBjbGFzcz1cImRzZnJ4LW92ZXJsYXlcIj5cbiAgICA8ZGl2IFtuZ0NsYXNzXT1cImdldENsYXNzZXMoKVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRzZnJTcGlubmVyXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxufSBAZWxzZSB7XG4gIDxkaXYgW25nQ2xhc3NdPVwiZ2V0Q2xhc3NlcygpXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRzZnJTcGlubmVyXCI+PC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxufVxuXG48bmctdGVtcGxhdGUgI2RzZnJTcGlubmVyPlxuICBAc3dpdGNoICh0eXBlTG9hZGVyKSB7XG4gICAgQGRlZmF1bHQge1xuICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgICAgICA8cGF0aFxuICAgICAgICAgIGQ9XCJNMTEuOTk5NSAyQzEyLjU1MTggMiAxMi45OTk1IDIuNDQ3NzIgMTIuOTk5NSAzVjZDMTIuOTk5NSA2LjU1MjI4IDEyLjU1MTggNyAxMS45OTk1IDdDMTEuNDQ3MiA3IDEwLjk5OTUgNi41NTIyOCAxMC45OTk1IDZWM0MxMC45OTk1IDIuNDQ3NzIgMTEuNDQ3MiAyIDExLjk5OTUgMlpNMTEuOTk5NSAxN0MxMi41NTE4IDE3IDEyLjk5OTUgMTcuNDQ3NyAxMi45OTk1IDE4VjIxQzEyLjk5OTUgMjEuNTUyMyAxMi41NTE4IDIyIDExLjk5OTUgMjJDMTEuNDQ3MiAyMiAxMC45OTk1IDIxLjU1MjMgMTAuOTk5NSAyMVYxOEMxMC45OTk1IDE3LjQ0NzcgMTEuNDQ3MiAxNyAxMS45OTk1IDE3Wk0yMC42NTk3IDdDMjAuOTM1OSA3LjQ3ODI5IDIwLjc3MiA4LjA4OTg4IDIwLjI5MzcgOC4zNjYwMkwxNy42OTU2IDkuODY2MDJDMTcuMjE3MyAxMC4xNDIyIDE2LjYwNTcgOS45NzgyOSAxNi4zMjk2IDkuNUMxNi4wNTM1IDkuMDIxNzEgMTYuMjE3MyA4LjQxMDEyIDE2LjY5NTYgOC4xMzM5OEwxOS4yOTM3IDYuNjMzOTdDMTkuNzcyIDYuMzU3ODMgMjAuMzgzNiA2LjUyMTcxIDIwLjY1OTcgN1pNNy42NjkzNSAxNC41QzcuOTQ1NDkgMTQuOTc4MyA3Ljc4MTYxIDE1LjU4OTkgNy4zMDMzMiAxNS44NjZMNC43MDUyNSAxNy4zNjZDNC4yMjY5NSAxNy42NDIyIDMuNjE1MzYgMTcuNDc4MyAzLjMzOTIyIDE3QzMuMDYzMDggMTYuNTIxNyAzLjIyNjk1IDE1LjkxMDEgMy43MDUyNSAxNS42MzRMNi4zMDMzMiAxNC4xMzRDNi43ODE2MSAxMy44NTc4IDcuMzkzMiAxNC4wMjE3IDcuNjY5MzUgMTQuNVpNMjAuNjU5NyAxN0MyMC4zODM2IDE3LjQ3ODMgMTkuNzcyIDE3LjY0MjIgMTkuMjkzNyAxNy4zNjZMMTYuNjk1NiAxNS44NjZDMTYuMjE3MyAxNS41ODk5IDE2LjA1MzUgMTQuOTc4MyAxNi4zMjk2IDE0LjVDMTYuNjA1NyAxNC4wMjE3IDE3LjIxNzMgMTMuODU3OCAxNy42OTU2IDE0LjEzNEwyMC4yOTM3IDE1LjYzNEMyMC43NzIgMTUuOTEwMSAyMC45MzU5IDE2LjUyMTcgMjAuNjU5NyAxN1pNNy42NjkzNSA5LjVDNy4zOTMyIDkuOTc4MjkgNi43ODE2MSAxMC4xNDIyIDYuMzAzMzIgOS44NjYwMkwzLjcwNTI1IDguMzY2MDJDMy4yMjY5NSA4LjA4OTg4IDMuMDYzMDggNy40NzgyOSAzLjMzOTIyIDdDMy42MTUzNiA2LjUyMTcxIDQuMjI2OTUgNi4zNTc4MyA0LjcwNTI1IDYuNjMzOTdMNy4zMDMzMiA4LjEzMzk4QzcuNzgxNjEgOC40MTAxMiA3Ljk0NTQ5IDkuMDIxNzEgNy42NjkzNSA5LjVaXCIgLz5cbiAgICAgIDwvc3ZnPlxuICAgIH1cbiAgICBAY2FzZSAoJ3F1YXJ0ZXInKSB7XG4gICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgICAgIDxwYXRoIGQ9XCJNMTIgM0MxNi45NzA2IDMgMjEgNy4wMjk0NCAyMSAxMkgxOUMxOSA4LjEzNDAxIDE1Ljg2NiA1IDEyIDVWM1pcIj48L3BhdGg+XG4gICAgICA8L3N2Zz5cbiAgICB9XG4gICAgQGNhc2UgKCdsaW5lJykge1xuICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgICAgICA8cGF0aFxuICAgICAgICAgIGQ9XCJNMTguMzY0IDUuNjM2MDRMMTYuOTQ5NyA3LjA1MDI1QzE1LjY4MyA1Ljc4MzUgMTMuOTMzIDUgMTIgNUM4LjEzNDAxIDUgNSA4LjEzNDAxIDUgMTJDNSAxNS44NjYgOC4xMzQwMSAxOSAxMiAxOUMxNS44NjYgMTkgMTkgMTUuODY2IDE5IDEySDIxQzIxIDE2Ljk3MDYgMTYuOTcwNiAyMSAxMiAyMUM3LjAyOTQ0IDIxIDMgMTYuOTcwNiAzIDEyQzMgNy4wMjk0NCA3LjAyOTQ0IDMgMTIgM0MxNC40ODUzIDMgMTYuNzM1MyA0LjAwNzM2IDE4LjM2NCA1LjYzNjA0WlwiPjwvcGF0aD5cbiAgICAgIDwvc3ZnPlxuICAgIH1cbiAgfVxuPC9uZy10ZW1wbGF0ZT5cblxuPHNwYW4gY2xhc3M9XCJmci1zci1vbmx5XCI+e3sgbGFiZWxTck9ubHkgPz8gKCdzcGlubmVyLm1lc3NhZ2VDb250ZXh0JyB8IGRzZnJJMThuKSB9fTwvc3Bhbj5cbiJdfQ==