keevo-components 2.0.64 → 2.0.66
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/kv-filter-cards/kv-filter-cards.component.mjs +27 -3
- package/esm2022/lib/components/kv-inputs/kv-editor/kv-editor.component.mjs +9 -6
- package/esm2022/lib/components/kv-layout/layout/kv-layout.component.mjs +3 -3
- package/fesm2022/keevo-components.mjs +36 -9
- package/fesm2022/keevo-components.mjs.map +1 -1
- package/lib/components/kv-buttons/kv-button-popup/kv-button-popup.component.d.ts +1 -1
- package/lib/components/kv-filter-cards/kv-filter-cards.component.d.ts +5 -1
- package/lib/components/kv-inputs/kv-editor/kv-editor.component.d.ts +5 -2
- package/lib/components/kv-table/kv-table.component.d.ts +1 -1
- package/lib/components/kv-table-expandable/kv-table-expandable.component.d.ts +1 -1
- package/package.json +1 -1
|
@@ -6,6 +6,8 @@ export class KvFilterCardsComponent {
|
|
|
6
6
|
constructor() {
|
|
7
7
|
// Lista de cards de filtro, cada um com um ícone e valor específico
|
|
8
8
|
this.cards = input();
|
|
9
|
+
this.staticCards = input(false);
|
|
10
|
+
this.cursorPointer = input(true);
|
|
9
11
|
//Propiedade para armazenar os cards selecionados
|
|
10
12
|
this.selectedCards = model([]);
|
|
11
13
|
this.loadingCards = input(false);
|
|
@@ -41,12 +43,34 @@ export class KvFilterCardsComponent {
|
|
|
41
43
|
verificarSeCardEstaSelecionado(card) {
|
|
42
44
|
return this.selectedCards()?.find(c => c.id === card.id) !== undefined;
|
|
43
45
|
}
|
|
46
|
+
getColorFillPolygon(card) {
|
|
47
|
+
if (this.staticCards()) {
|
|
48
|
+
return 'var(--main-color)';
|
|
49
|
+
}
|
|
50
|
+
if (!this.selectedCards()?.includes(card)) {
|
|
51
|
+
return 'color-mix(in srgb, var(--mixed-color) 20%, white 80%)';
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
return 'var(--main-color)';
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
getColorIconPolygon(card) {
|
|
58
|
+
if (this.staticCards()) {
|
|
59
|
+
return 'white';
|
|
60
|
+
}
|
|
61
|
+
if (!this.selectedCards()?.includes(card)) {
|
|
62
|
+
return 'var(--main-color)';
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
return 'white';
|
|
66
|
+
}
|
|
67
|
+
}
|
|
44
68
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvFilterCardsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
45
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: KvFilterCardsComponent, selector: "kv-filter-cards", inputs: { cards: { classPropertyName: "cards", publicName: "cards", isSignal: true, isRequired: false, transformFunction: null }, selectedCards: { classPropertyName: "selectedCards", publicName: "selectedCards", isSignal: true, isRequired: false, transformFunction: null }, loadingCards: { classPropertyName: "loadingCards", publicName: "loadingCards", isSignal: true, isRequired: false, transformFunction: null }, wrapCards: { classPropertyName: "wrapCards", publicName: "wrapCards", isSignal: true, isRequired: false, transformFunction: null }, alignCardsCenter: { classPropertyName: "alignCardsCenter", publicName: "alignCardsCenter", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedCards: "selectedCardsChange", onCardClick: "onCardClick" }, ngImport: i0, template: "
|
|
69
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: KvFilterCardsComponent, selector: "kv-filter-cards", inputs: { cards: { classPropertyName: "cards", publicName: "cards", isSignal: true, isRequired: false, transformFunction: null }, staticCards: { classPropertyName: "staticCards", publicName: "staticCards", isSignal: true, isRequired: false, transformFunction: null }, cursorPointer: { classPropertyName: "cursorPointer", publicName: "cursorPointer", isSignal: true, isRequired: false, transformFunction: null }, selectedCards: { classPropertyName: "selectedCards", publicName: "selectedCards", isSignal: true, isRequired: false, transformFunction: null }, loadingCards: { classPropertyName: "loadingCards", publicName: "loadingCards", isSignal: true, isRequired: false, transformFunction: null }, wrapCards: { classPropertyName: "wrapCards", publicName: "wrapCards", isSignal: true, isRequired: false, transformFunction: null }, alignCardsCenter: { classPropertyName: "alignCardsCenter", publicName: "alignCardsCenter", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedCards: "selectedCardsChange", onCardClick: "onCardClick" }, ngImport: i0, template: "<div \r\n id=\"filter-card-container\" \r\n class=\"flex flex-row w-full justify-content-between\"\r\n>\r\n <div \r\n class=\"flex p-fluid formgrid w-full gap-1 px-3 py-1\" \r\n [ngClass]=\"[\r\n wrapCards() ? 'flex-wrap' : 'flex-nowrap overflow-x-auto',\r\n alignCardsCenter() ? 'justify-content-center' : 'justify-content-start' \r\n ]\" \r\n #filterCardsContainer\r\n >\r\n\r\n @for (card of cards(); track card.id) {\r\n \r\n <div \r\n (click)=\"handleCardClick(card)\" \r\n [style.--main-color]=\"color()(card)\" \r\n [style.--mixed-color]=\"mixedColor()(card)\"\r\n class=\"filter-card\" \r\n\r\n [ngClass]=\"[\r\n 'filter-card-size',\r\n verificarSeCardEstaSelecionado(card) ? 'filter-card-active' : 'clickable',\r\n staticCards() ? 'filter-card-active' : '',\r\n !staticCards() && !verificarSeCardEstaSelecionado(card) ? 'filter-card-hover' : '',\r\n cursorPointer() ? 'cursor-pointer' : '',\r\n\r\n ]\"\r\n >\r\n\r\n <div class=\"filter-card-content\">\r\n\r\n <div class=\"filter-card-title\">\r\n\r\n @if (card.icon) {\r\n\r\n <div class=\"hex-icon-svg\">\r\n <svg style=\"overflow: visible;\" viewBox=\"0 0 100 100\" class=\"hex-bg\">\r\n <polygon\r\n [attr.fill]=\"getColorFillPolygon(card)\"\r\n points=\"93.3 75,50 100,6.7 75,6.7 25,50 0,93.3 25\" \r\n stroke=\"var(--main-color)\" \r\n stroke-width=\"3\"\r\n stroke-linejoin=\"round\" \r\n stroke-linecap=\"round\" \r\n opacity=\"0.8\" \r\n />\r\n </svg>\r\n\r\n <span [style.color]=\"getColorIconPolygon(card)\"\r\n class=\"material-symbols-outlined icon\">\r\n {{ card?.icon }}\r\n </span>\r\n\r\n </div>\r\n\r\n }\r\n\r\n <div style=\"font-weight: bold; font-size: .825em; color: #414141;\">{{ card?.titulo }}</div>\r\n \r\n </div>\r\n\r\n @if(loadingCards()){\r\n\r\n <span class=\"loading-spinner\"></span>\r\n\r\n }@else {\r\n\r\n <div class=\"flex align-items-center\" [style.color]=\"color()(card)\"\r\n style=\"font-size: 1.25em; font-weight: bold; min-height: 1.875rem\">\r\n {{ card.valor | kvFilterCardsFormatter:card.formato}}\r\n </div>\r\n\r\n }\r\n\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n</div>", styles: ["@charset \"UTF-8\";.card,.card-disabled,.filter-card-active{transition:border .3s ease,background-color .3s ease;border:1px solid #CBD5E1}.filter-card{transition:all ease-in-out .1s;border:1px solid #CBD5E1;border-radius:1rem;-webkit-user-select:none;user-select:none}.filter-card-hover:hover{background:#f8fafc;transform:scale(1.01);border:var(--main-color) .5px solid}.filter-card-hover:active{background:#f8fafc;border:var(--main-color) .5px solid}.filter-card-active{border:var(--main-color) .5px solid;background-color:color-mix(in srgb,var(--mixed-color) 20%,white 80%)}p{font-size:.75rem}.select-none{-webkit-user-select:none;user-select:none}.filter-card-content{display:flex;flex-direction:row;align-items:center;padding:.4rem .6rem .4rem .5rem;gap:.5rem}.filter-card-title{flex:1 1 0%;display:flex;flex-direction:row;align-items:center;gap:.4rem}.hex-icon-svg{position:relative;width:2rem;height:2rem;font-size:2rem}.hex-icon-svg .hex-bg{width:100%;height:100%}.hex-icon-svg .icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:var(--main-color);font-size:24px;pointer-events:none}.icon{font-weight:500!important;font-size:.65em!important}div.filter-card-hover:hover .hex-icon-svg>svg>polygon{fill:var(--mixed-color)}polygon{transition:all ease-in-out .1s}#filter-card-container{container:filter-card-container/inline-size}.filter-card-size{flex:1 1 auto;padding:0 .25rem;min-width:170px;box-sizing:border-box}@container filter-card-container (min-width: 360px){.filter-card-size{width:50%}}@container filter-card-container (min-width: 600px){.filter-card-size{width:33.3333%}}@container filter-card-container (min-width: 900px){.filter-card-size{width:25%}}@container filter-card-container (min-width: 1200px){.filter-card-size{width:16.6667%}}@container filter-card-container (min-width: 1500px){.filter-card-size{width:14.2857%}}@media (min-width: 360px){.filter-card-size{width:50%}}@media (min-width: 600px){.filter-card-size{width:33.3333%}}@media (min-width: 900px){.filter-card-size{width:25%}}@media (min-width: 1200px){.filter-card-size{width:16.6667%}}@media (min-width: 1500px){.filter-card-size{width:14.2857%}}.flex-nowrap.overflow-x-auto{overflow-x:auto;scrollbar-width:thin}.flex-wrap .filter-card-size{flex:1 1 auto}.loading-spinner{width:1.5rem;height:1.5rem;border:2px solid var(--main-color);border-bottom-color:transparent;border-radius:50%;display:inline-block;box-sizing:border-box;animation:rotation .8s linear infinite}@keyframes rotation{0%{transform:rotate(0)}to{transform:rotate(360deg)}}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: i2.KvFilterCardsFormatterPipe, name: "kvFilterCardsFormatter" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
46
70
|
}
|
|
47
71
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvFilterCardsComponent, decorators: [{
|
|
48
72
|
type: Component,
|
|
49
|
-
args: [{ selector: 'kv-filter-cards', changeDetection: ChangeDetectionStrategy.OnPush, template: "
|
|
73
|
+
args: [{ selector: 'kv-filter-cards', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div \r\n id=\"filter-card-container\" \r\n class=\"flex flex-row w-full justify-content-between\"\r\n>\r\n <div \r\n class=\"flex p-fluid formgrid w-full gap-1 px-3 py-1\" \r\n [ngClass]=\"[\r\n wrapCards() ? 'flex-wrap' : 'flex-nowrap overflow-x-auto',\r\n alignCardsCenter() ? 'justify-content-center' : 'justify-content-start' \r\n ]\" \r\n #filterCardsContainer\r\n >\r\n\r\n @for (card of cards(); track card.id) {\r\n \r\n <div \r\n (click)=\"handleCardClick(card)\" \r\n [style.--main-color]=\"color()(card)\" \r\n [style.--mixed-color]=\"mixedColor()(card)\"\r\n class=\"filter-card\" \r\n\r\n [ngClass]=\"[\r\n 'filter-card-size',\r\n verificarSeCardEstaSelecionado(card) ? 'filter-card-active' : 'clickable',\r\n staticCards() ? 'filter-card-active' : '',\r\n !staticCards() && !verificarSeCardEstaSelecionado(card) ? 'filter-card-hover' : '',\r\n cursorPointer() ? 'cursor-pointer' : '',\r\n\r\n ]\"\r\n >\r\n\r\n <div class=\"filter-card-content\">\r\n\r\n <div class=\"filter-card-title\">\r\n\r\n @if (card.icon) {\r\n\r\n <div class=\"hex-icon-svg\">\r\n <svg style=\"overflow: visible;\" viewBox=\"0 0 100 100\" class=\"hex-bg\">\r\n <polygon\r\n [attr.fill]=\"getColorFillPolygon(card)\"\r\n points=\"93.3 75,50 100,6.7 75,6.7 25,50 0,93.3 25\" \r\n stroke=\"var(--main-color)\" \r\n stroke-width=\"3\"\r\n stroke-linejoin=\"round\" \r\n stroke-linecap=\"round\" \r\n opacity=\"0.8\" \r\n />\r\n </svg>\r\n\r\n <span [style.color]=\"getColorIconPolygon(card)\"\r\n class=\"material-symbols-outlined icon\">\r\n {{ card?.icon }}\r\n </span>\r\n\r\n </div>\r\n\r\n }\r\n\r\n <div style=\"font-weight: bold; font-size: .825em; color: #414141;\">{{ card?.titulo }}</div>\r\n \r\n </div>\r\n\r\n @if(loadingCards()){\r\n\r\n <span class=\"loading-spinner\"></span>\r\n\r\n }@else {\r\n\r\n <div class=\"flex align-items-center\" [style.color]=\"color()(card)\"\r\n style=\"font-size: 1.25em; font-weight: bold; min-height: 1.875rem\">\r\n {{ card.valor | kvFilterCardsFormatter:card.formato}}\r\n </div>\r\n\r\n }\r\n\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n</div>", styles: ["@charset \"UTF-8\";.card,.card-disabled,.filter-card-active{transition:border .3s ease,background-color .3s ease;border:1px solid #CBD5E1}.filter-card{transition:all ease-in-out .1s;border:1px solid #CBD5E1;border-radius:1rem;-webkit-user-select:none;user-select:none}.filter-card-hover:hover{background:#f8fafc;transform:scale(1.01);border:var(--main-color) .5px solid}.filter-card-hover:active{background:#f8fafc;border:var(--main-color) .5px solid}.filter-card-active{border:var(--main-color) .5px solid;background-color:color-mix(in srgb,var(--mixed-color) 20%,white 80%)}p{font-size:.75rem}.select-none{-webkit-user-select:none;user-select:none}.filter-card-content{display:flex;flex-direction:row;align-items:center;padding:.4rem .6rem .4rem .5rem;gap:.5rem}.filter-card-title{flex:1 1 0%;display:flex;flex-direction:row;align-items:center;gap:.4rem}.hex-icon-svg{position:relative;width:2rem;height:2rem;font-size:2rem}.hex-icon-svg .hex-bg{width:100%;height:100%}.hex-icon-svg .icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:var(--main-color);font-size:24px;pointer-events:none}.icon{font-weight:500!important;font-size:.65em!important}div.filter-card-hover:hover .hex-icon-svg>svg>polygon{fill:var(--mixed-color)}polygon{transition:all ease-in-out .1s}#filter-card-container{container:filter-card-container/inline-size}.filter-card-size{flex:1 1 auto;padding:0 .25rem;min-width:170px;box-sizing:border-box}@container filter-card-container (min-width: 360px){.filter-card-size{width:50%}}@container filter-card-container (min-width: 600px){.filter-card-size{width:33.3333%}}@container filter-card-container (min-width: 900px){.filter-card-size{width:25%}}@container filter-card-container (min-width: 1200px){.filter-card-size{width:16.6667%}}@container filter-card-container (min-width: 1500px){.filter-card-size{width:14.2857%}}@media (min-width: 360px){.filter-card-size{width:50%}}@media (min-width: 600px){.filter-card-size{width:33.3333%}}@media (min-width: 900px){.filter-card-size{width:25%}}@media (min-width: 1200px){.filter-card-size{width:16.6667%}}@media (min-width: 1500px){.filter-card-size{width:14.2857%}}.flex-nowrap.overflow-x-auto{overflow-x:auto;scrollbar-width:thin}.flex-wrap .filter-card-size{flex:1 1 auto}.loading-spinner{width:1.5rem;height:1.5rem;border:2px solid var(--main-color);border-bottom-color:transparent;border-radius:50%;display:inline-block;box-sizing:border-box;animation:rotation .8s linear infinite}@keyframes rotation{0%{transform:rotate(0)}to{transform:rotate(360deg)}}\n"] }]
|
|
50
74
|
}] });
|
|
51
75
|
export const mapaSeverityColors = {
|
|
52
76
|
primary: '#0A8765', // Verde
|
|
@@ -56,4 +80,4 @@ export const mapaSeverityColors = {
|
|
|
56
80
|
warning: '#E1963D', // Amarelo
|
|
57
81
|
danger: '#F15A24', // Laranja
|
|
58
82
|
};
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtZmlsdGVyLWNhcmRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2t2LWZpbHRlci1jYXJkcy9rdi1maWx0ZXItY2FyZHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtZmlsdGVyLWNhcmRzL2t2LWZpbHRlci1jYXJkcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQzs7OztBQVEzRyxNQUFNLE9BQU8sc0JBQXNCO0lBTm5DO1FBVUUsb0VBQW9FO1FBQ3BFLFVBQUssR0FBRyxLQUFLLEVBQXdCLENBQUE7UUFFckMsaURBQWlEO1FBQ2pELGtCQUFhLEdBQUcsS0FBSyxDQUF1QixFQUFFLENBQUMsQ0FBQTtRQUUvQyxpQkFBWSxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUdyQywrREFBK0Q7UUFDL0QsY0FBUyxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUVsQyw2Q0FBNkM7UUFDN0MscUJBQWdCLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBR3pDLGdCQUFXLEdBQUcsTUFBTSxFQUFzQixDQUFDO1FBSTNDLFVBQUssR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUF3QixFQUFFLEVBQUU7WUFDbEQsTUFBTSxLQUFLLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2hELE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQztRQUNwRCxDQUFDLENBQUMsQ0FBQztRQUVILGVBQVUsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUF3QixFQUFFLEVBQUU7WUFDdkQsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7UUFDbkQsQ0FBQyxDQUFDLENBQUM7S0E0Qko7SUF6QlMsaUJBQWlCLENBQUMsT0FBZSxFQUFFLFVBQWtCLEdBQUc7UUFDOUQsTUFBTSxDQUFDLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzVDLE1BQU0sQ0FBQyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM1QyxNQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDNUMsT0FBTyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLE9BQU8sR0FBRyxDQUFDO0lBQzlDLENBQUM7SUFHRCxlQUFlLENBQUMsSUFBd0I7UUFDdEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFNUIsZ0ZBQWdGO1FBQ2hGLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2hDLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNqRCxPQUFPLE1BQU07Z0JBQ1gsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ3JDLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3ZCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELDhCQUE4QixDQUFDLElBQXdCO1FBQ3JELE9BQU8sSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLFNBQVMsQ0FBQztJQUN6RSxDQUFDOzhHQXhEVSxzQkFBc0I7a0dBQXRCLHNCQUFzQixvMEJDVG5DLHUyRUF1RUE7OzJGRDlEYSxzQkFBc0I7a0JBTmxDLFNBQVM7K0JBQ0UsaUJBQWlCLG1CQUdWLHVCQUF1QixDQUFDLE1BQU07O0FBa0VqRCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBK0I7SUFDNUQsT0FBTyxFQUFFLFNBQVMsRUFBSyxRQUFRO0lBQy9CLFNBQVMsRUFBRSxTQUFTLEVBQUcsY0FBYztJQUNyQyxRQUFRLEVBQUUsU0FBUyxFQUFJLFFBQVE7SUFDL0IsSUFBSSxFQUFFLFNBQVMsRUFBUSxhQUFhO0lBQ3BDLE9BQU8sRUFBRSxTQUFTLEVBQUssVUFBVTtJQUNqQyxNQUFNLEVBQUUsU0FBUyxFQUFNLFVBQVU7Q0FDbEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nQ2xhc3MsIENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBpbnB1dCwgbW9kZWwsIG91dHB1dCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2t2LWZpbHRlci1jYXJkcycsXHJcbiAgdGVtcGxhdGVVcmw6IGAuL2t2LWZpbHRlci1jYXJkcy5jb21wb25lbnQuaHRtbGAsXHJcbiAgc3R5bGVVcmw6ICcuL2t2LWZpbHRlci1jYXJkcy5jb21wb25lbnQuc2NzcycsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBLdkZpbHRlckNhcmRzQ29tcG9uZW50IHtcclxuXHJcblxyXG5cclxuICAvLyBMaXN0YSBkZSBjYXJkcyBkZSBmaWx0cm8sIGNhZGEgdW0gY29tIHVtIMOtY29uZSBlIHZhbG9yIGVzcGVjw61maWNvXHJcbiAgY2FyZHMgPSBpbnB1dDxLdkZpbHRlckNhcmRDb25maWdbXT4oKVxyXG5cclxuICAvL1Byb3BpZWRhZGUgcGFyYSBhcm1hemVuYXIgb3MgY2FyZHMgc2VsZWNpb25hZG9zXHJcbiAgc2VsZWN0ZWRDYXJkcyA9IG1vZGVsPEt2RmlsdGVyQ2FyZENvbmZpZ1tdPihbXSlcclxuXHJcbiAgbG9hZGluZ0NhcmRzID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cclxuXHJcbiAgLy8gRGVmaW5lIHNlIG9zIGNhcmRzIGRldmVtIHNlciBleGliaWRvcyBlbSB1bWEgbGluaGEgb3UgY29sdW5hXHJcbiAgd3JhcENhcmRzID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cclxuICAvLyBEZWZpbmUgc2Ugb3MgY2FyZHMgZGV2ZW0gc2VyIGNlbnRyYWxpemFkb3NcclxuICBhbGlnbkNhcmRzQ2VudGVyID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cclxuXHJcbiAgb25DYXJkQ2xpY2sgPSBvdXRwdXQ8S3ZGaWx0ZXJDYXJkQ29uZmlnPigpO1xyXG5cclxuXHJcblxyXG4gIGNvbG9yID0gY29tcHV0ZWQoKCkgPT4gKGNhcmQ6IEt2RmlsdGVyQ2FyZENvbmZpZykgPT4ge1xyXG4gICAgY29uc3QgY29sb3IgPSBtYXBhU2V2ZXJpdHlDb2xvcnNbY2FyZC5zZXZlcml0eV07XHJcbiAgICByZXR1cm4gY29sb3IgPyBjb2xvciA6IG1hcGFTZXZlcml0eUNvbG9ycy5wcmltYXJ5O1xyXG4gIH0pO1xyXG5cclxuICBtaXhlZENvbG9yID0gY29tcHV0ZWQoKCkgPT4gKGNhcmQ6IEt2RmlsdGVyQ2FyZENvbmZpZykgPT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0VHJhbnNwYXJlbnRNaXgodGhpcy5jb2xvcigpKGNhcmQpKVxyXG4gIH0pO1xyXG5cclxuXHJcbiAgcHJpdmF0ZSBnZXRUcmFuc3BhcmVudE1peChiYXNlSGV4OiBzdHJpbmcsIG9wYWNpdHk6IG51bWJlciA9IDAuMyk6IHN0cmluZyB7XHJcbiAgICBjb25zdCByID0gcGFyc2VJbnQoYmFzZUhleC5zbGljZSgxLCAzKSwgMTYpO1xyXG4gICAgY29uc3QgZyA9IHBhcnNlSW50KGJhc2VIZXguc2xpY2UoMywgNSksIDE2KTtcclxuICAgIGNvbnN0IGIgPSBwYXJzZUludChiYXNlSGV4LnNsaWNlKDUsIDcpLCAxNik7XHJcbiAgICByZXR1cm4gYHJnYmEoJHtyfSwgJHtnfSwgJHtifSwgJHtvcGFjaXR5fSlgO1xyXG4gIH1cclxuXHJcblxyXG4gIGhhbmRsZUNhcmRDbGljayhjYXJkOiBLdkZpbHRlckNhcmRDb25maWcpIHtcclxuICAgIHRoaXMub25DYXJkQ2xpY2suZW1pdChjYXJkKTtcclxuXHJcbiAgICAvLyBBdHVhbGl6YSBhIGxpc3RhIGRlIHNlbGVjaW9uYWRvczogcmVtb3ZlIHNlIGrDoSBleGlzdGUsIGFkaWNpb25hIHNlIG7Do28gZXhpc3RlXHJcbiAgICB0aGlzLnNlbGVjdGVkQ2FyZHMudXBkYXRlKGNhcmRzID0+IHtcclxuICAgICAgY29uc3QgZXhpc3RlID0gY2FyZHMuc29tZShjID0+IGMuaWQgPT09IGNhcmQuaWQpO1xyXG4gICAgICByZXR1cm4gZXhpc3RlXHJcbiAgICAgICAgPyBjYXJkcy5maWx0ZXIoYyA9PiBjLmlkICE9PSBjYXJkLmlkKVxyXG4gICAgICAgIDogWy4uLmNhcmRzLCBjYXJkXTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgdmVyaWZpY2FyU2VDYXJkRXN0YVNlbGVjaW9uYWRvKGNhcmQ6IEt2RmlsdGVyQ2FyZENvbmZpZyk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRDYXJkcygpPy5maW5kKGMgPT4gYy5pZCA9PT0gY2FyZC5pZCkgIT09IHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG5cclxufVxyXG5cclxuXHJcbmV4cG9ydCB0eXBlIEt2U2V2ZXJpdHkgPSAncHJpbWFyeScgfCAnc2Vjb25kYXJ5JyB8ICd0ZXJ0aWFyeScgfCAnaW5mbycgfCAnd2FybmluZycgfCAnZGFuZ2VyJztcclxuXHJcbmV4cG9ydCBjb25zdCBtYXBhU2V2ZXJpdHlDb2xvcnM6IFJlY29yZDxLdlNldmVyaXR5LCBzdHJpbmc+ID0ge1xyXG4gIHByaW1hcnk6ICcjMEE4NzY1JywgICAgLy8gVmVyZGVcclxuICBzZWNvbmRhcnk6ICcjMEEzQTc4JywgIC8vIEF6dWwgZXNjdXJvXHJcbiAgdGVydGlhcnk6ICcjNzc4NTk5JywgICAvLyBDaW56YVxyXG4gIGluZm86ICcjMDA5MUMyJywgICAgICAgLy8gQXp1bCBjbGFyb1xyXG4gIHdhcm5pbmc6ICcjRTE5NjNEJywgICAgLy8gQW1hcmVsb1xyXG4gIGRhbmdlcjogJyNGMTVBMjQnLCAgICAgLy8gTGFyYW5qYVxyXG59O1xyXG5cclxuXHJcblxyXG5leHBvcnQgdHlwZSBLdkZpbHRlckNhcmRGb3JtYXRvID0gJ2ludCcgfCAnY3VycmVuY3knIHwgJ3BlcmNlbnQnIHwgJ2RlY2ltYWwnIHwgJ3RleHQnIHwgJ2RhdGUnO1xyXG5leHBvcnQgdHlwZSBLdkZpbHRlckNhcmRDb25maWcgPSB7XHJcbiAgICBpZDogbnVtYmVyO1xyXG4gICAgc2V2ZXJpdHk6IEt2U2V2ZXJpdHk7XHJcbiAgICB0aXR1bG86IHN0cmluZztcclxuICAgIGljb246IHN0cmluZztcclxuICAgIHZhbG9yPzogbnVtYmVyIHwgc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbDtcclxuICAgIGZvcm1hdG8/OiBLdkZpbHRlckNhcmRGb3JtYXRvO1xyXG5cclxufSIsIlxyXG48ZGl2XHJcbiAgaWQ9XCJmaWx0ZXItY2FyZC1jb250YWluZXJcIlxyXG4gIGNsYXNzPVwiZmxleCBmbGV4LXJvdyB3LWZ1bGwganVzdGlmeS1jb250ZW50LWJldHdlZW5cIlxyXG4+XHJcbiAgPGRpdiBcclxuICAgIGNsYXNzPVwiZmxleCBwLWZsdWlkIGZvcm1ncmlkIHctZnVsbCBnYXAtMSBweC0zIHB5LTFcIlxyXG4gICAgW25nQ2xhc3NdPVwiW1xyXG4gICAgICB3cmFwQ2FyZHMoKSA/ICdmbGV4LXdyYXAnIDogJ2ZsZXgtbm93cmFwIG92ZXJmbG93LXgtYXV0bycsXHJcbiAgICAgIGFsaWduQ2FyZHNDZW50ZXIoKSA/ICdqdXN0aWZ5LWNvbnRlbnQtY2VudGVyJyA6ICdqdXN0aWZ5LWNvbnRlbnQtc3RhcnQnICAgIFxyXG4gICAgXVwiXHJcbiAgICAjZmlsdGVyQ2FyZHNDb250YWluZXJcclxuICA+XHJcbiAgICBAZm9yIChjYXJkIG9mIGNhcmRzKCk7IHRyYWNrIGNhcmQuaWQpIHtcclxuICAgICAgPGRpdiBcclxuICAgICAgICAoY2xpY2spPVwiaGFuZGxlQ2FyZENsaWNrKGNhcmQpXCJcclxuICAgICAgICBbc3R5bGUuLS1tYWluLWNvbG9yXT1cImNvbG9yKCkoY2FyZClcIiBcclxuICAgICAgICBbc3R5bGUuLS1taXhlZC1jb2xvcl09XCJtaXhlZENvbG9yKCkoY2FyZClcIiBcclxuICAgICAgICBjbGFzcz1cImZpbHRlci1jYXJkXCJcclxuICAgICAgICBbbmdDbGFzc109XCJbXHJcbiAgICAgICAgICAnZmlsdGVyLWNhcmQtc2l6ZScsXHJcbiAgICAgICAgICB2ZXJpZmljYXJTZUNhcmRFc3RhU2VsZWNpb25hZG8oY2FyZCkgID8gJ2ZpbHRlci1jYXJkLWFjdGl2ZScgOiAnY2xpY2thYmxlJ1xyXG4gICAgICAgIF1cIlxyXG4gICAgICA+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmaWx0ZXItY2FyZC1jb250ZW50XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZpbHRlci1jYXJkLXRpdGxlXCI+XHJcblxyXG4gICAgICAgICAgQGlmIChjYXJkLmljb24pIHtcclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGV4LWljb24tc3ZnXCI+XHJcbiAgICAgICAgICAgIDxzdmcgc3R5bGU9XCJvdmVyZmxvdzogdmlzaWJsZTtcIiB2aWV3Qm94PVwiMCAwIDEwMCAxMDBcIiBjbGFzcz1cImhleC1iZ1wiPlxyXG4gICAgICAgICAgICAgIDxwb2x5Z29uXHJcbiAgICAgICAgICAgICAgICBbYXR0ci5maWxsXT1cIiFzZWxlY3RlZENhcmRzKCk/LmluY2x1ZGVzKGNhcmQpID8gJ2NvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1taXhlZC1jb2xvcikgMjAlLCB3aGl0ZSA4MCUpJyA6ICd2YXIoLS1tYWluLWNvbG9yKSdcIlxyXG4gICAgICAgICAgICAgICAgcG9pbnRzPVwiOTMuMyA3NSw1MCAxMDAsNi43IDc1LDYuNyAyNSw1MCAwLDkzLjMgMjVcIiBzdHJva2U9XCJ2YXIoLS1tYWluLWNvbG9yKVwiIHN0cm9rZS13aWR0aD1cIjNcIlxyXG4gICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgb3BhY2l0eT1cIjAuOFwiIC8+XHJcbiAgICAgICAgICAgIDwvc3ZnPlxyXG5cclxuICAgICAgICAgICAgPHNwYW4gW3N0eWxlLmNvbG9yXT1cIiFzZWxlY3RlZENhcmRzKCk/LmluY2x1ZGVzKGNhcmQpID8gJ3ZhcigtLW1haW4tY29sb3IpJyA6ICd3aGl0ZSdcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCBpY29uXCI+XHJcbiAgICAgICAgICAgICAge3sgY2FyZD8uaWNvbiB9fVxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcblxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIDxkaXYgc3R5bGU9XCJmb250LXdlaWdodDogYm9sZDsgZm9udC1zaXplOiAuODI1ZW07IGNvbG9yOiAjNDE0MTQxO1wiPnt7IGNhcmQ/LnRpdHVsbyB9fTwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICBAaWYobG9hZGluZ0NhcmRzKCkpe1xyXG4gICAgICAgICAgXHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImxvYWRpbmctc3Bpbm5lclwiPjwvc3Bhbj5cclxuXHJcbiAgICAgICAgfUBlbHNlIHtcclxuXHJcbiAgICAgICAgICA8ZGl2IFxyXG4gICAgICAgICAgICBjbGFzcz1cImZsZXggYWxpZ24taXRlbXMtY2VudGVyXCIgXHJcbiAgICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJjb2xvcigpKGNhcmQpXCJcclxuICAgICAgICAgICAgc3R5bGU9XCJmb250LXNpemU6IDEuMjVlbTsgZm9udC13ZWlnaHQ6IGJvbGQ7IG1pbi1oZWlnaHQ6IDEuODc1cmVtXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAge3sgY2FyZC52YWxvciB8IGt2RmlsdGVyQ2FyZHNGb3JtYXR0ZXI6Y2FyZC5mb3JtYXRvfX1cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICB9XHJcblxyXG5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICB9XHJcbjwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtZmlsdGVyLWNhcmRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2t2LWZpbHRlci1jYXJkcy9rdi1maWx0ZXItY2FyZHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtZmlsdGVyLWNhcmRzL2t2LWZpbHRlci1jYXJkcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQzs7OztBQVEzRyxNQUFNLE9BQU8sc0JBQXNCO0lBTm5DO1FBVUUsb0VBQW9FO1FBQ3BFLFVBQUssR0FBRyxLQUFLLEVBQXdCLENBQUE7UUFFckMsZ0JBQVcsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7UUFFcEMsa0JBQWEsR0FBRyxLQUFLLENBQVUsSUFBSSxDQUFDLENBQUM7UUFHckMsaURBQWlEO1FBQ2pELGtCQUFhLEdBQUcsS0FBSyxDQUF1QixFQUFFLENBQUMsQ0FBQTtRQUUvQyxpQkFBWSxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUVyQywrREFBK0Q7UUFDL0QsY0FBUyxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUVsQyw2Q0FBNkM7UUFDN0MscUJBQWdCLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBRXpDLGdCQUFXLEdBQUcsTUFBTSxFQUFzQixDQUFDO1FBRTNDLFVBQUssR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUF3QixFQUFFLEVBQUU7WUFDbEQsTUFBTSxLQUFLLEdBQUcs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c0JBQXNCLDhsQ0NUbkMsb2hGQWdGTTs7MkZEdkVPLHNCQUFzQjtrQkFObEMsU0FBUzsrQkFDRSxpQkFBaUIsbUJBR1YsdUJBQXVCLENBQUMsTUFBTTs7QUE2RmpELE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUErQjtJQUM1RCxPQUFPLEVBQUUsU0FBUyxFQUFLLFFBQVE7SUFDL0IsU0FBUyxFQUFFLFNBQVMsRUFBRyxjQUFjO0lBQ3JDLFFBQVEsRUFBRSxTQUFTLEVBQUksUUFBUTtJQUMvQixJQUFJLEVBQUUsU0FBUyxFQUFRLGFBQWE7SUFDcEMsT0FBTyxFQUFFLFNBQVMsRUFBSyxVQUFVO0lBQ2pDLE1BQU0sRUFBRSxTQUFTLEVBQU0sVUFBVTtDQUNsQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdDbGFzcywgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGlucHV0LCBtb2RlbCwgb3V0cHV0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAna3YtZmlsdGVyLWNhcmRzJyxcclxuICB0ZW1wbGF0ZVVybDogYC4va3YtZmlsdGVyLWNhcmRzLmNvbXBvbmVudC5odG1sYCxcclxuICBzdHlsZVVybDogJy4va3YtZmlsdGVyLWNhcmRzLmNvbXBvbmVudC5zY3NzJyxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIEt2RmlsdGVyQ2FyZHNDb21wb25lbnQge1xyXG5cclxuXHJcblxyXG4gIC8vIExpc3RhIGRlIGNhcmRzIGRlIGZpbHRybywgY2FkYSB1bSBjb20gdW0gw61jb25lIGUgdmFsb3IgZXNwZWPDrWZpY29cclxuICBjYXJkcyA9IGlucHV0PEt2RmlsdGVyQ2FyZENvbmZpZ1tdPigpXHJcblxyXG4gIHN0YXRpY0NhcmRzID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cclxuICBjdXJzb3JQb2ludGVyID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XHJcblxyXG5cclxuICAvL1Byb3BpZWRhZGUgcGFyYSBhcm1hemVuYXIgb3MgY2FyZHMgc2VsZWNpb25hZG9zXHJcbiAgc2VsZWN0ZWRDYXJkcyA9IG1vZGVsPEt2RmlsdGVyQ2FyZENvbmZpZ1tdPihbXSlcclxuXHJcbiAgbG9hZGluZ0NhcmRzID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cclxuICAvLyBEZWZpbmUgc2Ugb3MgY2FyZHMgZGV2ZW0gc2VyIGV4aWJpZG9zIGVtIHVtYSBsaW5oYSBvdSBjb2x1bmFcclxuICB3cmFwQ2FyZHMgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcblxyXG4gIC8vIERlZmluZSBzZSBvcyBjYXJkcyBkZXZlbSBzZXIgY2VudHJhbGl6YWRvc1xyXG4gIGFsaWduQ2FyZHNDZW50ZXIgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcblxyXG4gIG9uQ2FyZENsaWNrID0gb3V0cHV0PEt2RmlsdGVyQ2FyZENvbmZpZz4oKTtcclxuXHJcbiAgY29sb3IgPSBjb21wdXRlZCgoKSA9PiAoY2FyZDogS3ZGaWx0ZXJDYXJkQ29uZmlnKSA9PiB7XHJcbiAgICBjb25zdCBjb2xvciA9IG1hcGFTZXZlcml0eUNvbG9yc1tjYXJkLnNldmVyaXR5XTtcclxuICAgIHJldHVybiBjb2xvciA/IGNvbG9yIDogbWFwYVNldmVyaXR5Q29sb3JzLnByaW1hcnk7XHJcbiAgfSk7XHJcblxyXG4gIG1peGVkQ29sb3IgPSBjb21wdXRlZCgoKSA9PiAoY2FyZDogS3ZGaWx0ZXJDYXJkQ29uZmlnKSA9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRUcmFuc3BhcmVudE1peCh0aGlzLmNvbG9yKCkoY2FyZCkpXHJcbiAgfSk7XHJcblxyXG5cclxuICBwcml2YXRlIGdldFRyYW5zcGFyZW50TWl4KGJhc2VIZXg6IHN0cmluZywgb3BhY2l0eTogbnVtYmVyID0gMC4zKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IHIgPSBwYXJzZUludChiYXNlSGV4LnNsaWNlKDEsIDMpLCAxNik7XHJcbiAgICBjb25zdCBnID0gcGFyc2VJbnQoYmFzZUhleC5zbGljZSgzLCA1KSwgMTYpO1xyXG4gICAgY29uc3QgYiA9IHBhcnNlSW50KGJhc2VIZXguc2xpY2UoNSwgNyksIDE2KTtcclxuICAgIHJldHVybiBgcmdiYSgke3J9LCAke2d9LCAke2J9LCAke29wYWNpdHl9KWA7XHJcbiAgfVxyXG5cclxuXHJcbiAgaGFuZGxlQ2FyZENsaWNrKGNhcmQ6IEt2RmlsdGVyQ2FyZENvbmZpZykge1xyXG4gICAgdGhpcy5vbkNhcmRDbGljay5lbWl0KGNhcmQpO1xyXG5cclxuICAgIC8vIEF0dWFsaXphIGEgbGlzdGEgZGUgc2VsZWNpb25hZG9zOiByZW1vdmUgc2UgasOhIGV4aXN0ZSwgYWRpY2lvbmEgc2UgbsOjbyBleGlzdGVcclxuICAgIHRoaXMuc2VsZWN0ZWRDYXJkcy51cGRhdGUoY2FyZHMgPT4ge1xyXG4gICAgICBjb25zdCBleGlzdGUgPSBjYXJkcy5zb21lKGMgPT4gYy5pZCA9PT0gY2FyZC5pZCk7XHJcbiAgICAgIHJldHVybiBleGlzdGVcclxuICAgICAgICA/IGNhcmRzLmZpbHRlcihjID0+IGMuaWQgIT09IGNhcmQuaWQpXHJcbiAgICAgICAgOiBbLi4uY2FyZHMsIGNhcmRdO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICB2ZXJpZmljYXJTZUNhcmRFc3RhU2VsZWNpb25hZG8oY2FyZDogS3ZGaWx0ZXJDYXJkQ29uZmlnKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZENhcmRzKCk/LmZpbmQoYyA9PiBjLmlkID09PSBjYXJkLmlkKSAhPT0gdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q29sb3JGaWxsUG9seWdvbihjYXJkOiBLdkZpbHRlckNhcmRDb25maWcpOiBzdHJpbmcge1xyXG5cclxuICAgIGlmICh0aGlzLnN0YXRpY0NhcmRzKCkpIHtcclxuICAgICAgcmV0dXJuICd2YXIoLS1tYWluLWNvbG9yKSc7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCF0aGlzLnNlbGVjdGVkQ2FyZHMoKT8uaW5jbHVkZXMoY2FyZCkpIHtcclxuICAgICAgcmV0dXJuICdjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWl4ZWQtY29sb3IpIDIwJSwgd2hpdGUgODAlKSc7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gJ3ZhcigtLW1haW4tY29sb3IpJztcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuXHJcbiAgZ2V0Q29sb3JJY29uUG9seWdvbihjYXJkOiBLdkZpbHRlckNhcmRDb25maWcpOiBzdHJpbmcge1xyXG4gICAgaWYgKHRoaXMuc3RhdGljQ2FyZHMoKSkge1xyXG4gICAgICByZXR1cm4gJ3doaXRlJztcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIXRoaXMuc2VsZWN0ZWRDYXJkcygpPy5pbmNsdWRlcyhjYXJkKSkge1xyXG4gICAgICByZXR1cm4gJ3ZhcigtLW1haW4tY29sb3IpJztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiAnd2hpdGUnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuXHJcblxyXG5leHBvcnQgdHlwZSBLdlNldmVyaXR5ID0gJ3ByaW1hcnknIHwgJ3NlY29uZGFyeScgfCAndGVydGlhcnknIHwgJ2luZm8nIHwgJ3dhcm5pbmcnIHwgJ2Rhbmdlcic7XHJcblxyXG5leHBvcnQgY29uc3QgbWFwYVNldmVyaXR5Q29sb3JzOiBSZWNvcmQ8S3ZTZXZlcml0eSwgc3RyaW5nPiA9IHtcclxuICBwcmltYXJ5OiAnIzBBODc2NScsICAgIC8vIFZlcmRlXHJcbiAgc2Vjb25kYXJ5OiAnIzBBM0E3OCcsICAvLyBBenVsIGVzY3Vyb1xyXG4gIHRlcnRpYXJ5OiAnIzc3ODU5OScsICAgLy8gQ2luemFcclxuICBpbmZvOiAnIzAwOTFDMicsICAgICAgIC8vIEF6dWwgY2xhcm9cclxuICB3YXJuaW5nOiAnI0UxOTYzRCcsICAgIC8vIEFtYXJlbG9cclxuICBkYW5nZXI6ICcjRjE1QTI0JywgICAgIC8vIExhcmFuamFcclxufTtcclxuXHJcblxyXG5cclxuZXhwb3J0IHR5cGUgS3ZGaWx0ZXJDYXJkRm9ybWF0byA9ICdpbnQnIHwgJ2N1cnJlbmN5JyB8ICdwZXJjZW50JyB8ICdkZWNpbWFsJyB8ICd0ZXh0JyB8ICdkYXRlJztcclxuZXhwb3J0IHR5cGUgS3ZGaWx0ZXJDYXJkQ29uZmlnID0ge1xyXG4gICAgaWQ6IG51bWJlcjtcclxuICAgIHNldmVyaXR5OiBLdlNldmVyaXR5O1xyXG4gICAgdGl0dWxvOiBzdHJpbmc7XHJcbiAgICBpY29uOiBzdHJpbmc7XHJcbiAgICB2YWxvcj86IG51bWJlciB8IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGw7XHJcbiAgICBmb3JtYXRvPzogS3ZGaWx0ZXJDYXJkRm9ybWF0bztcclxuXHJcbn0iLCI8ZGl2IFxyXG4gIGlkPVwiZmlsdGVyLWNhcmQtY29udGFpbmVyXCIgXHJcbiAgY2xhc3M9XCJmbGV4IGZsZXgtcm93IHctZnVsbCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiXHJcbj5cclxuICA8ZGl2IFxyXG4gICAgY2xhc3M9XCJmbGV4IHAtZmx1aWQgZm9ybWdyaWQgdy1mdWxsIGdhcC0xIHB4LTMgcHktMVwiIFxyXG4gICAgW25nQ2xhc3NdPVwiW1xyXG4gICAgICAgIHdyYXBDYXJkcygpID8gJ2ZsZXgtd3JhcCcgOiAnZmxleC1ub3dyYXAgb3ZlcmZsb3cteC1hdXRvJyxcclxuICAgICAgICBhbGlnbkNhcmRzQ2VudGVyKCkgPyAnanVzdGlmeS1jb250ZW50LWNlbnRlcicgOiAnanVzdGlmeS1jb250ZW50LXN0YXJ0JyAgICBcclxuICAgIF1cIiBcclxuICAgICNmaWx0ZXJDYXJkc0NvbnRhaW5lclxyXG4gID5cclxuXHJcbiAgICBAZm9yIChjYXJkIG9mIGNhcmRzKCk7IHRyYWNrIGNhcmQuaWQpIHtcclxuICAgIFxyXG4gICAgICA8ZGl2IFxyXG4gICAgICAgIChjbGljayk9XCJoYW5kbGVDYXJkQ2xpY2soY2FyZClcIiBcclxuICAgICAgICBbc3R5bGUuLS1tYWluLWNvbG9yXT1cImNvbG9yKCkoY2FyZClcIiBcclxuICAgICAgICBbc3R5bGUuLS1taXhlZC1jb2xvcl09XCJtaXhlZENvbG9yKCkoY2FyZClcIlxyXG4gICAgICAgIGNsYXNzPVwiZmlsdGVyLWNhcmRcIiBcclxuXHJcbiAgICAgICAgW25nQ2xhc3NdPVwiW1xyXG4gICAgICAgICAgICAnZmlsdGVyLWNhcmQtc2l6ZScsXHJcbiAgICAgICAgICAgIHZlcmlmaWNhclNlQ2FyZEVzdGFTZWxlY2lvbmFkbyhjYXJkKSAgPyAnZmlsdGVyLWNhcmQtYWN0aXZlJyA6ICdjbGlja2FibGUnLFxyXG4gICAgICAgICAgICBzdGF0aWNDYXJkcygpID8gJ2ZpbHRlci1jYXJkLWFjdGl2ZScgOiAnJyxcclxuICAgICAgICAgICAgIXN0YXRpY0NhcmRzKCkgJiYgIXZlcmlmaWNhclNlQ2FyZEVzdGFTZWxlY2lvbmFkbyhjYXJkKSA/ICdmaWx0ZXItY2FyZC1ob3ZlcicgOiAnJyxcclxuICAgICAgICAgICAgY3Vyc29yUG9pbnRlcigpID8gJ2N1cnNvci1wb2ludGVyJyA6ICcnLFxyXG5cclxuICAgICAgICBdXCJcclxuICAgICAgPlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cImZpbHRlci1jYXJkLWNvbnRlbnRcIj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZpbHRlci1jYXJkLXRpdGxlXCI+XHJcblxyXG4gICAgICAgICAgQGlmIChjYXJkLmljb24pIHtcclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGV4LWljb24tc3ZnXCI+XHJcbiAgICAgICAgICAgIDxzdmcgc3R5bGU9XCJvdmVyZmxvdzogdmlzaWJsZTtcIiB2aWV3Qm94PVwiMCAwIDEwMCAxMDBcIiBjbGFzcz1cImhleC1iZ1wiPlxyXG4gICAgICAgICAgICAgIDxwb2x5Z29uXHJcbiAgICAgICAgICAgICAgICBbYXR0ci5maWxsXT1cImdldENvbG9yRmlsbFBvbHlnb24oY2FyZClcIlxyXG4gICAgICAgICAgICAgICAgcG9pbnRzPVwiOTMuMyA3NSw1MCAxMDAsNi43IDc1LDYuNyAyNSw1MCAwLDkzLjMgMjVcIiBcclxuICAgICAgICAgICAgICAgIHN0cm9rZT1cInZhcigtLW1haW4tY29sb3IpXCIgXHJcbiAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIzXCJcclxuICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgXHJcbiAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgXHJcbiAgICAgICAgICAgICAgICBvcGFjaXR5PVwiMC44XCIgXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9zdmc+XHJcblxyXG4gICAgICAgICAgICA8c3BhbiBbc3R5bGUuY29sb3JdPVwiZ2V0Q29sb3JJY29uUG9seWdvbihjYXJkKVwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkIGljb25cIj5cclxuICAgICAgICAgICAgICB7eyBjYXJkPy5pY29uIH19XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuXHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgPGRpdiBzdHlsZT1cImZvbnQtd2VpZ2h0OiBib2xkOyBmb250LXNpemU6IC44MjVlbTsgY29sb3I6ICM0MTQxNDE7XCI+e3sgY2FyZD8udGl0dWxvIH19PC9kaXY+XHJcbiAgICAgIFxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICBAaWYobG9hZGluZ0NhcmRzKCkpe1xyXG5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibG9hZGluZy1zcGlubmVyXCI+PC9zcGFuPlxyXG5cclxuICAgICAgICB9QGVsc2Uge1xyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiIFtzdHlsZS5jb2xvcl09XCJjb2xvcigpKGNhcmQpXCJcclxuICAgICAgICAgICAgc3R5bGU9XCJmb250LXNpemU6IDEuMjVlbTsgZm9udC13ZWlnaHQ6IGJvbGQ7IG1pbi1oZWlnaHQ6IDEuODc1cmVtXCI+XHJcbiAgICAgICAgICAgIHt7IGNhcmQudmFsb3IgfCBrdkZpbHRlckNhcmRzRm9ybWF0dGVyOmNhcmQuZm9ybWF0b319XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIH1cclxuICA8L2Rpdj5cclxuPC9kaXY+Il19
|
|
@@ -14,12 +14,15 @@ export class KvEditorComponent extends BaseComponentInput {
|
|
|
14
14
|
this.renderer = renderer;
|
|
15
15
|
this.el = el;
|
|
16
16
|
this.readonly = false;
|
|
17
|
-
this.canvaHeigth = '380px';
|
|
18
17
|
this.debug = false;
|
|
19
18
|
this.onTextChange = new EventEmitter();
|
|
20
19
|
this.onSelectionChange = new EventEmitter();
|
|
21
20
|
this.outputRaw = new EventEmitter();
|
|
22
21
|
this.outputHtml = new EventEmitter();
|
|
22
|
+
/**
|
|
23
|
+
* @deprecated Essa propriedade não será mais utilizada por esse componente nas próximas versões.
|
|
24
|
+
*/
|
|
25
|
+
this.canvaHeigth = '380px';
|
|
23
26
|
this.updatingEditor = false;
|
|
24
27
|
this.initLoadComplete = signal(false);
|
|
25
28
|
this.editorReadyPromise = new Promise((resolve) => {
|
|
@@ -156,15 +159,13 @@ export class KvEditorComponent extends BaseComponentInput {
|
|
|
156
159
|
}
|
|
157
160
|
}
|
|
158
161
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvEditorComponent, deps: [{ token: i1.ComponentService }, { token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
159
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.8", type: KvEditorComponent, selector: "kv-editor", inputs: { readonly: "readonly",
|
|
162
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.8", type: KvEditorComponent, selector: "kv-editor", inputs: { readonly: "readonly", debug: "debug", canvaHeigth: "canvaHeigth", contentType: "contentType" }, outputs: { onTextChange: "onTextChange", onSelectionChange: "onSelectionChange", outputRaw: "outputRaw", outputHtml: "outputHtml" }, providers: ComponentProviders(KvEditorComponent), usesInheritance: true, ngImport: i0, template: "\r\n <div class=\"kv-editor-container h-full flex flex-column\" >\r\n <div #editor id=\"kv-editor-toolbar\" [ngClass]=\"{'error-border-toolbar': hasControlError()}\" class=\"flex flex-row flex-wrap gap-2 flex-initial\">\r\n <span class=\"ql-formats bg-gray-100 border-round-md\">\r\n <select class=\"ql-font\">\r\n <option value=\"roboto\">Roboto</option>\r\n <option value=\"monospace\">Monospace</option>\r\n <option value=\"inter\">Inter</option>\r\n <option selected>Sans Serif</option>\r\n <option value=\"serif\">Serif</option>\r\n </select>\r\n \r\n <select class=\"ql-header\">\r\n <option value=\"1\">Titulo</option>\r\n <option value=\"2\">Subtitulo</option>\r\n <option selected>Normal</option>\r\n </select>\r\n \r\n <span class=\"ql-format-group\">\r\n <select title=\"Size\" class=\"ql-size\">\r\n <option value=\"15px\">15px</option>\r\n <option value=\"20px\">20px</option>\r\n <option value=\"30px\">30px</option>\r\n <option value=\"40px\">40px</option>\r\n <option value=\"50px\">50px</option>\r\n <option value=\"70px\">70px</option>\r\n <option value=\"90px\">90px</option>\r\n </select>\r\n </span>\r\n </span>\r\n \r\n <span class=\"ql-formats bg-gray-100 border-round-md\">\r\n <button class=\"ql-bold\"></button>\r\n <button class=\"ql-italic\"></button>\r\n <button class=\"ql-underline\"></button>\r\n <button class=\"ql-strike\"></button>\r\n </span>\r\n \r\n <span class=\"ql-formats bg-gray-100 border-round-md\">\r\n <select class=\"ql-color\"></select>\r\n <select class=\"ql-background\"></select>\r\n </span>\r\n \r\n <span class=\"ql-formats bg-gray-100 border-round-md\">\r\n <button class=\"ql-script\" value=\"sub\"></button>\r\n <button class=\"ql-script\" value=\"super\"></button>\r\n </span>\r\n \r\n <span class=\"ql-formats bg-gray-100 border-round-md\">\r\n <button class=\"ql-header\" value=\"1\"></button>\r\n <button class=\"ql-header\" value=\"2\"></button>\r\n <button class=\"ql-blockquote\"></button>\r\n <button class=\"ql-code-block\"></button>\r\n </span>\r\n \r\n <span class=\"ql-formats bg-gray-100 border-round-md\">\r\n <button class=\"ql-list\" value=\"ordered\"></button>\r\n <button class=\"ql-list\" value=\"bullet\"></button>\r\n <button class=\"ql-indent\" value=\"-1\"></button>\r\n <button class=\"ql-indent\" value=\"+1\"></button>\r\n </span>\r\n \r\n <span class=\"ql-formats bg-gray-100 border-round-md\">\r\n <button class=\"ql-direction\" value=\"rtl\"></button>\r\n <select class=\"ql-align\"></select>\r\n </span>\r\n \r\n <span class=\"ql-formats bg-gray-100 border-round-md\">\r\n <button class=\"ql-link\"></button>\r\n <button class=\"ql-image\"></button>\r\n <button class=\"ql-video\"></button>\r\n </span>\r\n \r\n <span class=\"ql-formats bg-gray-100 border-round-md\">\r\n <button class=\"ql-clean\"></button>\r\n </span>\r\n </div>\r\n \r\n <div id=\"kv-editor\" class=\"h-full flex-1\" [ngClass]=\"{'error-border': hasControlError()}\" ></div>\r\n </div>\r\n <kv-error [hasError]=\"hasControlError()\">{{ erroMessage() }}</kv-error>\r\n\r\n<!------------------------------------------------------------------------------------------------------------------->\r\n\r\n <!-- <link href=\"https://cdn.jsdelivr.net/npm/quill@2.0.2/dist/quill.snow.css\" rel=\"stylesheet\" /> -->\r\n <link href=\"https://fonts.googleapis.com/css?family=Roboto\" rel=\"stylesheet\">\r\n <script src=\"https://cdn.jsdelivr.net/npm/quill@2.0.2/dist/quill.js\"></script>\r\n <script src=\"https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.js\"></script>\r\n\r\n\r\n <link rel=\"stylesheet\" href=\"https://cdn.jsdelivr.net/npm/quill@2.0.2/dist/quill.bubble.css\" />\r\n <link rel=\"stylesheet\" href=\"https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/atom-one-dark.min.css\" />\r\n <link rel=\"stylesheet\" href=\"https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.css\" />\r\n\r\n\r\n <!-- Import fonts -->\r\n\r\n <link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\r\n <link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\r\n\r\n <link href=\"https://fonts.googleapis.com/css2?family=Baloo+2:wght@400;500;600;700;800&family=Inter:wght@100..900&family=JetBrains+Mono:ital,wght@0,100..800;1,100..800&display=swap\" rel=\"stylesheet\">\r\n <link href=\"https://fonts.googleapis.com/css2?family=Baloo+2:wght@400;500;600;700;800&family=Inter:wght@100..900&family=JetBrains+Mono:ital,wght@0,100..800;1,100..800&family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap\" rel=\"stylesheet\">\r\n", styles: [":host ::ng-deep .ql-font-roboto{font-family:Roboto,sans-serif}:host ::ng-deep .ql-font-inter{font-family:Inter var,sans-serif}:host ::ng-deep .ql-tooltip.ql-editing[data-mode=video]{transform:translate(40%)}:host ::ng-deep #kv-editor-toolbar{border-radius:6px 6px 0 0;border:1px solid #e5e7eb}:host ::ng-deep #kv-editor{border-radius:0 0 6px 6px;border:1px solid #e5e7eb}.error-border-toolbar{transition:all ease-in .2s;border-top-color:#e24c4c!important;border-bottom-color:#e24c4c!important;border-left-color:#e24c4c!important;border-right-color:#e24c4c!important}.error-border{border-color:#e24c4c!important;transition:all ease-in .2s}:host ::ng-deep .blot-formatter__resize-handle{background:#eaeaea!important}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "component", type: i4.KvErrorComponent, selector: "kv-error", inputs: ["formControl", "hasError"] }] }); }
|
|
160
163
|
}
|
|
161
164
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvEditorComponent, decorators: [{
|
|
162
165
|
type: Component,
|
|
163
|
-
args: [{ selector: 'kv-editor', providers: ComponentProviders(KvEditorComponent), template: "\r\n <div class=\"kv-editor-container\" >\r\n <div #editor id=\"kv-editor-toolbar\" [ngClass]=\"{'error-border-toolbar': hasControlError()}\" >\r\n <span class=\"ql-formats\">\r\n <select class=\"ql-font\">\r\n <option value=\"roboto\">Roboto</option>\r\n <option value=\"monospace\">Monospace</option>\r\n <option value=\"inter\">Inter</option>\r\n <option selected>Sans Serif</option>\r\n <option value=\"serif\">Serif</option>\r\n </select>\r\n \r\n <select class=\"ql-header\">\r\n <option value=\"1\">Titulo</option>\r\n <option value=\"2\">Subtitulo</option>\r\n <option selected>Normal</option>\r\n </select>\r\n \r\n <span class=\"ql-format-group\">\r\n <select title=\"Size\" class=\"ql-size\">\r\n <option value=\"15px\">15px</option>\r\n <option value=\"20px\">20px</option>\r\n <option value=\"30px\">30px</option>\r\n <option value=\"40px\">40px</option>\r\n <option value=\"50px\">50px</option>\r\n <option value=\"70px\">70px</option>\r\n <option value=\"90px\">90px</option>\r\n </select>\r\n </span>\r\n </span>\r\n \r\n <span class=\"ql-formats\">\r\n <button class=\"ql-bold\"></button>\r\n <button class=\"ql-italic\"></button>\r\n <button class=\"ql-underline\"></button>\r\n <button class=\"ql-strike\"></button>\r\n </span>\r\n \r\n <span class=\"ql-formats\">\r\n <select class=\"ql-color\"></select>\r\n <select class=\"ql-background\"></select>\r\n </span>\r\n \r\n <span class=\"ql-formats\">\r\n <button class=\"ql-script\" value=\"sub\"></button>\r\n <button class=\"ql-script\" value=\"super\"></button>\r\n </span>\r\n \r\n <span class=\"ql-formats\">\r\n <button class=\"ql-header\" value=\"1\"></button>\r\n <button class=\"ql-header\" value=\"2\"></button>\r\n <button class=\"ql-blockquote\"></button>\r\n <button class=\"ql-code-block\"></button>\r\n </span>\r\n \r\n <span class=\"ql-formats\">\r\n <button class=\"ql-list\" value=\"ordered\"></button>\r\n <button class=\"ql-list\" value=\"bullet\"></button>\r\n <button class=\"ql-indent\" value=\"-1\"></button>\r\n <button class=\"ql-indent\" value=\"+1\"></button>\r\n </span>\r\n \r\n <span class=\"ql-formats\">\r\n <button class=\"ql-direction\" value=\"rtl\"></button>\r\n <select class=\"ql-align\"></select>\r\n </span>\r\n \r\n <span class=\"ql-formats\">\r\n <button class=\"ql-link\"></button>\r\n <button class=\"ql-image\"></button>\r\n <button class=\"ql-video\"></button>\r\n </span>\r\n \r\n <span class=\"ql-formats\">\r\n <button class=\"ql-clean\"></button>\r\n </span>\r\n </div>\r\n \r\n <div id=\"kv-editor\"
|
|
166
|
+
args: [{ selector: 'kv-editor', providers: ComponentProviders(KvEditorComponent), template: "\r\n <div class=\"kv-editor-container h-full flex flex-column\" >\r\n <div #editor id=\"kv-editor-toolbar\" [ngClass]=\"{'error-border-toolbar': hasControlError()}\" class=\"flex flex-row flex-wrap gap-2 flex-initial\">\r\n <span class=\"ql-formats bg-gray-100 border-round-md\">\r\n <select class=\"ql-font\">\r\n <option value=\"roboto\">Roboto</option>\r\n <option value=\"monospace\">Monospace</option>\r\n <option value=\"inter\">Inter</option>\r\n <option selected>Sans Serif</option>\r\n <option value=\"serif\">Serif</option>\r\n </select>\r\n \r\n <select class=\"ql-header\">\r\n <option value=\"1\">Titulo</option>\r\n <option value=\"2\">Subtitulo</option>\r\n <option selected>Normal</option>\r\n </select>\r\n \r\n <span class=\"ql-format-group\">\r\n <select title=\"Size\" class=\"ql-size\">\r\n <option value=\"15px\">15px</option>\r\n <option value=\"20px\">20px</option>\r\n <option value=\"30px\">30px</option>\r\n <option value=\"40px\">40px</option>\r\n <option value=\"50px\">50px</option>\r\n <option value=\"70px\">70px</option>\r\n <option value=\"90px\">90px</option>\r\n </select>\r\n </span>\r\n </span>\r\n \r\n <span class=\"ql-formats bg-gray-100 border-round-md\">\r\n <button class=\"ql-bold\"></button>\r\n <button class=\"ql-italic\"></button>\r\n <button class=\"ql-underline\"></button>\r\n <button class=\"ql-strike\"></button>\r\n </span>\r\n \r\n <span class=\"ql-formats bg-gray-100 border-round-md\">\r\n <select class=\"ql-color\"></select>\r\n <select class=\"ql-background\"></select>\r\n </span>\r\n \r\n <span class=\"ql-formats bg-gray-100 border-round-md\">\r\n <button class=\"ql-script\" value=\"sub\"></button>\r\n <button class=\"ql-script\" value=\"super\"></button>\r\n </span>\r\n \r\n <span class=\"ql-formats bg-gray-100 border-round-md\">\r\n <button class=\"ql-header\" value=\"1\"></button>\r\n <button class=\"ql-header\" value=\"2\"></button>\r\n <button class=\"ql-blockquote\"></button>\r\n <button class=\"ql-code-block\"></button>\r\n </span>\r\n \r\n <span class=\"ql-formats bg-gray-100 border-round-md\">\r\n <button class=\"ql-list\" value=\"ordered\"></button>\r\n <button class=\"ql-list\" value=\"bullet\"></button>\r\n <button class=\"ql-indent\" value=\"-1\"></button>\r\n <button class=\"ql-indent\" value=\"+1\"></button>\r\n </span>\r\n \r\n <span class=\"ql-formats bg-gray-100 border-round-md\">\r\n <button class=\"ql-direction\" value=\"rtl\"></button>\r\n <select class=\"ql-align\"></select>\r\n </span>\r\n \r\n <span class=\"ql-formats bg-gray-100 border-round-md\">\r\n <button class=\"ql-link\"></button>\r\n <button class=\"ql-image\"></button>\r\n <button class=\"ql-video\"></button>\r\n </span>\r\n \r\n <span class=\"ql-formats bg-gray-100 border-round-md\">\r\n <button class=\"ql-clean\"></button>\r\n </span>\r\n </div>\r\n \r\n <div id=\"kv-editor\" class=\"h-full flex-1\" [ngClass]=\"{'error-border': hasControlError()}\" ></div>\r\n </div>\r\n <kv-error [hasError]=\"hasControlError()\">{{ erroMessage() }}</kv-error>\r\n\r\n<!------------------------------------------------------------------------------------------------------------------->\r\n\r\n <!-- <link href=\"https://cdn.jsdelivr.net/npm/quill@2.0.2/dist/quill.snow.css\" rel=\"stylesheet\" /> -->\r\n <link href=\"https://fonts.googleapis.com/css?family=Roboto\" rel=\"stylesheet\">\r\n <script src=\"https://cdn.jsdelivr.net/npm/quill@2.0.2/dist/quill.js\"></script>\r\n <script src=\"https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.js\"></script>\r\n\r\n\r\n <link rel=\"stylesheet\" href=\"https://cdn.jsdelivr.net/npm/quill@2.0.2/dist/quill.bubble.css\" />\r\n <link rel=\"stylesheet\" href=\"https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/atom-one-dark.min.css\" />\r\n <link rel=\"stylesheet\" href=\"https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.css\" />\r\n\r\n\r\n <!-- Import fonts -->\r\n\r\n <link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\r\n <link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\r\n\r\n <link href=\"https://fonts.googleapis.com/css2?family=Baloo+2:wght@400;500;600;700;800&family=Inter:wght@100..900&family=JetBrains+Mono:ital,wght@0,100..800;1,100..800&display=swap\" rel=\"stylesheet\">\r\n <link href=\"https://fonts.googleapis.com/css2?family=Baloo+2:wght@400;500;600;700;800&family=Inter:wght@100..900&family=JetBrains+Mono:ital,wght@0,100..800;1,100..800&family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap\" rel=\"stylesheet\">\r\n", styles: [":host ::ng-deep .ql-font-roboto{font-family:Roboto,sans-serif}:host ::ng-deep .ql-font-inter{font-family:Inter var,sans-serif}:host ::ng-deep .ql-tooltip.ql-editing[data-mode=video]{transform:translate(40%)}:host ::ng-deep #kv-editor-toolbar{border-radius:6px 6px 0 0;border:1px solid #e5e7eb}:host ::ng-deep #kv-editor{border-radius:0 0 6px 6px;border:1px solid #e5e7eb}.error-border-toolbar{transition:all ease-in .2s;border-top-color:#e24c4c!important;border-bottom-color:#e24c4c!important;border-left-color:#e24c4c!important;border-right-color:#e24c4c!important}.error-border{border-color:#e24c4c!important;transition:all ease-in .2s}:host ::ng-deep .blot-formatter__resize-handle{background:#eaeaea!important}\n"] }]
|
|
164
167
|
}], ctorParameters: () => [{ type: i1.ComponentService }, { type: i0.Renderer2 }, { type: i0.ElementRef }], propDecorators: { readonly: [{
|
|
165
168
|
type: Input
|
|
166
|
-
}], canvaHeigth: [{
|
|
167
|
-
type: Input
|
|
168
169
|
}], debug: [{
|
|
169
170
|
type: Input
|
|
170
171
|
}], onTextChange: [{
|
|
@@ -175,7 +176,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
|
|
|
175
176
|
type: Output
|
|
176
177
|
}], outputHtml: [{
|
|
177
178
|
type: Output
|
|
179
|
+
}], canvaHeigth: [{
|
|
180
|
+
type: Input
|
|
178
181
|
}], contentType: [{
|
|
179
182
|
type: Input
|
|
180
183
|
}] } });
|
|
181
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2t2LWlucHV0cy9rdi1lZGl0b3Iva3YtZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2t2LWlucHV0cy9rdi1lZGl0b3Iva3YtZWRpdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBRU4sTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQiw0REFBNEQ7QUFHNUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDdkYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMENBQTBDLENBQUM7Ozs7OztBQVM5RSxNQUFNLE9BQU8saUJBQWtCLFNBQVEsa0JBQTBCO0lBRS9ELFlBQ0UsZ0JBQWtDLEVBQVUsUUFBbUIsRUFBVSxFQUFjO1FBQ3ZGLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRG9CLGFBQVEsR0FBUixRQUFRLENBQVc7UUFBVSxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBTWhGLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsZ0JBQVcsR0FBVyxPQUFPLENBQUM7UUFDOUIsVUFBSyxHQUFZLEtBQUssQ0FBQztRQUV0QixpQkFBWSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3JELHNCQUFpQixHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTFELGNBQVMsR0FBeUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNyRCxlQUFV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QUNELElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO1lBQzVCLElBQUksQ0FBQyxLQUFLLEdBQUUsU0FBUyxDQUFBO1lBRXJCLElBQUcsUUFBUSxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFHLElBQUk7Z0JBQ3RDLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFBO1FBR25CLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUE7UUFDN0IsQ0FBQztJQUdMLENBQUM7OEdBaE5VLGlCQUFpQjtrR0FBakIsaUJBQWlCLG1SQUZqQixrQkFBa0IsQ0FBQyxpQkFBaUIsQ0FBQyxpREN2QmxELDhuSkFzR0E7OzJGRDdFYSxpQkFBaUI7a0JBTjdCLFNBQVM7K0JBQ0UsV0FBVyxhQUdWLGtCQUFrQixtQkFBbUI7c0lBV3ZDLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUksWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBRUcsU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQWtCRSxXQUFXO3NCQUFuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBSZW5kZXJlcjIsXHJcbiAgc2lnbmFsLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IFF1aWxsIGZyb20gJ3F1aWxsJztcclxuLy8gaW1wb3J0IFF1aWxsQmxvdEZvcm1hdHRlciAgZnJvbSAncXVpbGwtYmxvdC1mb3JtYXR0ZXItMic7XHJcblxyXG5cclxuaW1wb3J0IHsgQmFzZUNvbXBvbmVudElucHV0IH0gZnJvbSAnLi4vLi4vLi4vYXBpL2Jhc2UtY29tcG9uZW50cy9iYXNlLWNvbXBvbmVudC1pbnB1dCc7XHJcbmltcG9ydCB7IENvbXBvbmVudFByb3ZpZGVycyB9IGZyb20gJy4uLy4uLy4uL2FwaS9oZWxwZXJzL2NvbXBvbmVudC1wcm92aWRlcnMnO1xyXG5pbXBvcnQgeyBDb21wb25lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vYXBpL3NlcnZpY2VzL2NvbXBvbmVudC5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAna3YtZWRpdG9yJyxcclxuICB0ZW1wbGF0ZVVybDogJy4va3YtZWRpdG9yLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9rdi1lZGl0b3IuY29tcG9uZW50LnNjc3MnLF0sXHJcbiAgcHJvdmlkZXJzOiBDb21wb25lbnRQcm92aWRlcnMoS3ZFZGl0b3JDb21wb25lbnQpLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgS3ZFZGl0b3JDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50SW5wdXQ8c3RyaW5nPiBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgY29tcG9uZW50U2VydmljZTogQ29tcG9uZW50U2VydmljZSwgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLCBwcml2YXRlIGVsOiBFbGVtZW50UmVmKSB7XHJcbiAgICBzdXBlcihjb21wb25lbnRTZXJ2aWNlKTtcclxuXHJcbiAgfVxyXG5cclxuXHJcbiAgQElucHV0KCkgcmVhZG9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBjYW52YUhlaWd0aDogc3RyaW5nID0gJzM4MHB4JztcclxuICBASW5wdXQoKSBkZWJ1ZzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBAT3V0cHV0KCkgb25UZXh0Q2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgb25TZWxlY3Rpb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBAT3V0cHV0KCkgb3V0cHV0UmF3OiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgb3V0cHV0SHRtbDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG5cclxuICBwcml2YXRlIHVwZGF0aW5nRWRpdG9yOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHF1aWxsITogUXVpbGw7XHJcblxyXG4gIGluaXRMb2FkQ29tcGxldGUgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gXHJcbiAgXHJcbiAgcHJpdmF0ZSBlZGl0b3JSZWFkeVByb21pc2UgPSBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSkgPT4ge1xyXG4gICAgdGhpcy5lZGl0b3JSZWFkeVJlc29sdmVyID0gcmVzb2x2ZTtcclxuICB9KTtcclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIGNhc28gZGVmaW5hIGNvbW8gXCJ0ZXh0XCIgbyB0ZXh0byBpcmEgc2VyIGVudmlhZG8gc2VtIGZvcm1hdGHDp8Ojb1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGNvbnRlbnRUeXBlOiAnaHRtbCcgfCAndGV4dCcgPSAnaHRtbCc7XHJcblxyXG4gIG92ZXJyaWRlIG5nT25Jbml0KCkge1xyXG4gICAgc3VwZXIubmdPbkluaXQoKVxyXG4gICAgaWYgKCF0aGlzLnF1aWxsKSB7XHJcbiAgICAgIHRoaXMuaGFuZGxlSW5pdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBlZGl0b3JSZWFkeVJlc29sdmVyITogKCkgPT4gdm9pZDtcclxuXHJcbiAgYXN5bmMgaGFuZGxlSW5pdCgpe1xyXG4gICAgYXdhaXQgdGhpcy5sb2FkQ3NzKCk7XHJcbiAgICB0aGlzLmluaXRpYWxpemVRdWlsbEVkaXRvcigpO1xyXG4gICBcclxuICB9XHJcblxyXG4gIGxvYWRDc3MoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICBjb25zdCBjc3NFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGluaycpO1xyXG4gICAgICBjc3NFbGVtZW50LnJlbCA9ICdzdHlsZXNoZWV0JztcclxuICAgICAgY3NzRWxlbWVudC5ocmVmID0gJ2h0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vcXVpbGxAMi4wLjIvZGlzdC9xdWlsbC5zbm93LmNzcyc7XHJcbiAgXHJcbiAgICAgIGNzc0VsZW1lbnQub25sb2FkID0gKCkgPT4gcmVzb2x2ZSgpOyAgXHJcbiAgICAgIGNzc0VsZW1lbnQub25lcnJvciA9IChlcnIpID0+IHJlamVjdChlcnIpO1xyXG4gIFxyXG4gICAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGNzc0VsZW1lbnQpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBpbml0aWFsaXplUXVpbGxFZGl0b3IoKSB7XHJcbiAgICBjb25zdCBDb2xvckNsYXNzOiBhbnkgPSBRdWlsbC5pbXBvcnQoJ2F0dHJpYnV0b3JzL2NsYXNzL2NvbG9yJyk7XHJcbiAgICBjb25zdCBDb2xvclN0eWxlOiBhbnkgPSBRdWlsbC5pbXBvcnQoJ2F0dHJpYnV0b3JzL3N0eWxlL2NvbG9yJyk7XHJcbiAgICBjb25zdCBTaXplU3R5bGU6IGFueSA9IFF1aWxsLmltcG9ydCgnYXR0cmlidXRvcnMvc3R5bGUvc2l6ZScpO1xyXG4gICAgY29uc3QgRm9udDogYW55ID0gUXVpbGwuaW1wb3J0KCdmb3JtYXRzL2ZvbnQnKTtcclxuICAgIGNvbnN0IFNpemU6IGFueSA9IFF1aWxsLmltcG9ydCgnYXR0cmlidXRvcnMvc3R5bGUvc2l6ZScpO1xyXG4gIFxyXG4gICAgU2l6ZS53aGl0ZWxpc3QgPSBbJzE1cHgnLCAnMjBweCcsICczMHB4JywgJzQwcHgnLCAnNTBweCcsICc3MHB4JywgJzkwcHgnXTtcclxuICAgIEZvbnQud2hpdGVsaXN0ID0gWydtb25vc3BhY2UnLCAncm9ib3RvJywgJ3NlcmlmJywgJ2ludGVyJ107XHJcbiAgXHJcbiAgICBRdWlsbC5yZWdpc3RlcihDb2xvclN0eWxlLCB0cnVlKTtcclxuICAgIFF1aWxsLnJlZ2lzdGVyKFNpemVTdHlsZSwgdHJ1ZSk7XHJcbiAgICBRdWlsbC5yZWdpc3RlcihGb250LCB0cnVlKTtcclxuICAgIFF1aWxsLnJlZ2lzdGVyKFNpemUsIHRydWUpO1xyXG4gIFxyXG4gICAgLy8gQ3VzdG9taXphbmRvIG8gY29tcG9ydGFtZW50byBkbyBFbnRlclxyXG4gICAgY29uc3QgYmluZGluZ3MgPSAoUXVpbGwuaW1wb3J0KCdtb2R1bGVzL2tleWJvYXJkJykgYXMgYW55KS5ERUZBVUxUUy5iaW5kaW5ncztcclxuICAgIFxyXG4gICAgYmluZGluZ3NbJ2VudGVyJ10gPSB7XHJcbiAgICAgIGtleTogMTMsIC8vIEPDs2RpZ28gZGEgdGVjbGEgRW50ZXJcclxuICAgICAgaGFuZGxlcjogKHJhbmdlOiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgcXVpbGwgPSB0aGlzLnF1aWxsO1xyXG4gICAgICBxdWlsbC5pbnNlcnRFbWJlZChyYW5nZS5pbmRleCwgJ2JyZWFrJywgdHJ1ZSwgUXVpbGwuc291cmNlcy5VU0VSKTtcclxuICAgICAgcXVpbGwuc2V0U2VsZWN0aW9uKHJhbmdlLmluZGV4ICsgMSwgUXVpbGwuc291cmNlcy5TSUxFTlQpO1xyXG4gICAgICByZXR1cm4gZmFsc2U7IC8vIEV2aXRhIG8gY29tcG9ydGFtZW50byBwYWRyw6NvIGRlIGNyaWFyIHVtIDxwPlxyXG4gICAgICB9LFxyXG4gICAgfTtcclxuXHJcbiAgICAvLyBDdXN0b20gYmxvdCBmb3IgPGJyPiB0YWdcclxuICAgIGNvbnN0IEJsb2NrRW1iZWQgPSBRdWlsbC5pbXBvcnQoJ2Jsb3RzL2Jsb2NrL2VtYmVkJyk7XHJcbiAgICBjbGFzcyBCcmVhayBleHRlbmRzIChCbG9ja0VtYmVkIGFzIGFueSkge1xyXG4gICAgICBzdGF0aWMgYmxvdE5hbWUgPSAnYnJlYWsnO1xyXG4gICAgICBzdGF0aWMgdGFnTmFtZSA9ICdicic7XHJcbiAgICB9XHJcbiAgICBRdWlsbC5yZWdpc3RlcihCcmVhayk7XHJcbiAgXHJcbiAgICB0aGlzLnF1aWxsID0gbmV3IFF1aWxsKCcja3YtZWRpdG9yJywge1xyXG4gICAgICB0aGVtZTogJ3Nub3cnLFxyXG4gICAgICBtb2R1bGVzOiB7XHJcbiAgICAgICAgdG9vbGJhcjogJyNrdi1lZGl0b3ItdG9vbGJhcicsXHJcbiAgICAgICAga2V5Ym9hcmQ6IHtcclxuICAgICAgICAgIGJpbmRpbmdzOiBiaW5kaW5ncyxcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICBwbGFjZWhvbGRlcjogdGhpcy5sYWJlbCA/IHRoaXMubGFiZWwgOiAnJyxcclxuICAgICAgcmVhZE9ubHk6IHRoaXMucmVhZG9ubHksXHJcbiAgICAgIGRlYnVnOiB0aGlzLmRlYnVnLFxyXG4gICAgfSk7XHJcblxyXG4gICAgY29uc3QgQWxpZ25TdHlsZSA9IFF1aWxsLmltcG9ydCgnYXR0cmlidXRvcnMvc3R5bGUvYWxpZ24nKSBhcyBhbnk7XHJcbiAgICBRdWlsbC5yZWdpc3RlcihBbGlnblN0eWxlLCB0cnVlKTtcclxuXHJcbiAgXHJcbiAgICB0aGlzLnF1aWxsLm9uKCdzZWxlY3Rpb24tY2hhbmdlJywgKHJhbmdlLCBvbGRSYW5nZSwgc291cmNlKSA9PiB7XHJcbiAgICAgIHRoaXMub25TZWxlY3Rpb25DaGFuZ2UuZW1pdCh7XHJcbiAgICAgICAgcmFuZ2U6IHJhbmdlLFxyXG4gICAgICAgIG9sZFJhbmdlOiBvbGRSYW5nZSxcclxuICAgICAgICBzb3VyY2U6IHNvdXJjZSxcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLnF1aWxsLm9uKCd0ZXh0LWNoYW5nZScsIChkZWx0YSwgb2xkQ29udGVudHMsIHNvdXJjZSkgPT4ge1xyXG4gICAgICBpZiAoIXRoaXMudXBkYXRpbmdFZGl0b3IpIHtcclxuICAgICAgICB0aGlzLnVwZGF0aW5nRWRpdG9yID0gZmFsc2U7XHJcbiAgICAgICAgXHJcbiAgICAgICAgdGhpcy5lc2NyZXZhVmFsb3IodGhpcy5xdWlsbC5nZXRTZW1hbnRpY0hUTUwoKSwgdGhpcy5xdWlsbC5nZXRUZXh0KCkpO1xyXG4gICAgICAgIFxyXG4gICAgICAgIHRoaXMub25UZXh0Q2hhbmdlLmVtaXQoe1xyXG4gICAgICAgICAgZGVsdGE6IGRlbHRhLFxyXG4gICAgICAgICAgb2xkQ29udGVudHM6IG9sZENvbnRlbnRzLFxyXG4gICAgICAgICAgc291cmNlOiBzb3VyY2UsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5vdXRwdXRSYXcuZW1pdCh0aGlzLnF1aWxsLmdldFRleHQoKSk7XHJcbiAgICAgICAgdGhpcy5vdXRwdXRIdG1sLmVtaXQodGhpcy5xdWlsbC5nZXRTZW1hbnRpY0hUTUwoKSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuXHJcbiAgICB0aGlzLmVkaXRvclJlYWR5UmVzb2x2ZXIoKTtcclxuICAgIHRoaXMuaW5pdExvYWRDb21wbGV0ZS5zZXQodHJ1ZSk7XHJcblxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmZvcm1Db250cm9sO1xyXG4gICAgICBpZiAoY29udHJvbCAmJiBjb250cm9sLm1hcmtBc1ByaXN0aW5lKSB7XHJcbiAgICAgICAgY29udHJvbC5tYXJrQXNQcmlzdGluZSgpOyBcclxuICAgICAgICBjb250cm9sLm1hcmtBc1VudG91Y2hlZCgpOyBcclxuICAgICAgfVxyXG4gICAgfSwgMCk7ICAgXHJcbiAgICBcclxuICB9XHJcbiAgXHJcbiAgYWRkUXVpbGxDc3MoKSB7XHJcbiAgICBjb25zdCBsaW5rID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdsaW5rJyk7XHJcbiAgICBsaW5rLnJlbCA9ICdzdHlsZXNoZWV0JztcclxuICAgIGxpbmsuaHJlZiA9ICdodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL3F1aWxsQDIuMC4yL2Rpc3QvcXVpbGwuc25vdy5jc3MnO1xyXG5cclxuICAgIC8vIFF1YW5kbyBvIENTUyBmb3IgY2FycmVnYWRvLCBpbmljaWFsaXplIG8gUXVpbGxcclxuICAgIGxpbmsub25sb2FkID0gKCkgPT4ge1xyXG4gICAgICB0aGlzLmluaXRpYWxpemVRdWlsbEVkaXRvcigpO1xyXG4gICAgfTtcclxuXHJcbiAgICAvLyBBZGljaW9uYSBvIGxpbmsgYW8gPGhlYWQ+XHJcbiAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKGRvY3VtZW50LmhlYWQsIGxpbmspO1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcbiAgXHJcblxyXG4gIG92ZXJyaWRlICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcclxuICAgIHRoaXMudXBkYXRpbmdFZGl0b3IgPSB0cnVlXHJcbiAgICB0aGlzLmVzY3JldmFWYWxvcih2YWx1ZSlcclxuICB9XHJcblxyXG5cclxuIFxyXG5cclxuXHJcblxyXG4gIGFzeW5jIGVzY3JldmFWYWxvcihodG1sdmFsdWU6IGFueSwgcmF3dmFsdWU/OmFueSkge1xyXG5cclxuICAgIGlmKCF0aGlzLmluaXRMb2FkQ29tcGxldGUoKSlcclxuICAgICAgYXdhaXQgdGhpcy5lZGl0b3JSZWFkeVByb21pc2VcclxuICAgIFxyXG5cclxuICAgICAgaWYgKHRoaXMucXVpbGwpIHtcclxuXHJcbiAgICAgICAgaWYodGhpcy51cGRhdGluZ0VkaXRvcil7XHJcbiAgICAgICAgICB0aGlzLnF1aWxsLmNsaXBib2FyZC5kYW5nZXJvdXNseVBhc3RlSFRNTChodG1sdmFsdWUpXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMudXBkYXRpbmdFZGl0b3IgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnZhbHVlPSBodG1sdmFsdWVcclxuICAgICBcclxuICAgICAgICBpZihyYXd2YWx1ZSA9PSBcIlxcblwiIHx8IHRoaXMudmFsdWUgPT1cIlxcblwiKVxyXG4gICAgICAgICAgdGhpcy52YWx1ZSA9ICcnXHJcblxyXG5cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnVwZGF0aW5nRWRpdG9yID0gZmFsc2VcclxuICAgICAgfVxyXG5cclxuXHJcbiAgfVxyXG59XHJcbiIsIlxyXG4gIDxkaXYgY2xhc3M9XCJrdi1lZGl0b3ItY29udGFpbmVyXCIgPlxyXG4gICAgPGRpdiAjZWRpdG9yIGlkPVwia3YtZWRpdG9yLXRvb2xiYXJcIiBbbmdDbGFzc109XCJ7J2Vycm9yLWJvcmRlci10b29sYmFyJzogaGFzQ29udHJvbEVycm9yKCl9XCIgPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHNcIj5cclxuICAgICAgICA8c2VsZWN0IGNsYXNzPVwicWwtZm9udFwiPlxyXG4gICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cInJvYm90b1wiPlJvYm90bzwvb3B0aW9uPlxyXG4gICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIm1vbm9zcGFjZVwiPk1vbm9zcGFjZTwvb3B0aW9uPlxyXG4gICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cImludGVyXCI+SW50ZXI8L29wdGlvbj5cclxuICAgICAgICAgIDxvcHRpb24gc2VsZWN0ZWQ+U2FucyBTZXJpZjwvb3B0aW9uPlxyXG4gICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cInNlcmlmXCI+U2VyaWY8L29wdGlvbj5cclxuICAgICAgICA8L3NlbGVjdD5cclxuICBcclxuICAgICAgICA8c2VsZWN0IGNsYXNzPVwicWwtaGVhZGVyXCI+XHJcbiAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiMVwiPlRpdHVsbzwvb3B0aW9uPlxyXG4gICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjJcIj5TdWJ0aXR1bG88L29wdGlvbj5cclxuICAgICAgICAgIDxvcHRpb24gc2VsZWN0ZWQ+Tm9ybWFsPC9vcHRpb24+XHJcbiAgICAgICAgPC9zZWxlY3Q+XHJcbiAgXHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXQtZ3JvdXBcIj5cclxuICAgICAgICAgIDxzZWxlY3QgdGl0bGU9XCJTaXplXCIgY2xhc3M9XCJxbC1zaXplXCI+XHJcbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCIxNXB4XCI+MTVweDwvb3B0aW9uPlxyXG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiMjBweFwiPjIwcHg8L29wdGlvbj5cclxuICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjMwcHhcIj4zMHB4PC9vcHRpb24+XHJcbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCI0MHB4XCI+NDBweDwvb3B0aW9uPlxyXG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiNTBweFwiPjUwcHg8L29wdGlvbj5cclxuICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjcwcHhcIj43MHB4PC9vcHRpb24+XHJcbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCI5MHB4XCI+OTBweDwvb3B0aW9uPlxyXG4gICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICA8L3NwYW4+XHJcbiAgXHJcbiAgICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiPlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1ib2xkXCI+PC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLWl0YWxpY1wiPjwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC11bmRlcmxpbmVcIj48L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtc3RyaWtlXCI+PC9idXR0b24+XHJcbiAgICAgIDwvc3Bhbj5cclxuICBcclxuICAgICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzXCI+XHJcbiAgICAgICAgPHNlbGVjdCBjbGFzcz1cInFsLWNvbG9yXCI+PC9zZWxlY3Q+XHJcbiAgICAgICAgPHNlbGVjdCBjbGFzcz1cInFsLWJhY2tncm91bmRcIj48L3NlbGVjdD5cclxuICAgICAgPC9zcGFuPlxyXG4gIFxyXG4gICAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHNcIj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtc2NyaXB0XCIgdmFsdWU9XCJzdWJcIj48L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtc2NyaXB0XCIgdmFsdWU9XCJzdXBlclwiPjwvYnV0dG9uPlxyXG4gICAgICA8L3NwYW4+XHJcbiAgXHJcbiAgICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiPlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1oZWFkZXJcIiB2YWx1ZT1cIjFcIj48L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtaGVhZGVyXCIgdmFsdWU9XCIyXCI+PC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLWJsb2NrcXVvdGVcIj48L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtY29kZS1ibG9ja1wiPjwvYnV0dG9uPlxyXG4gICAgICA8L3NwYW4+XHJcbiAgXHJcbiAgICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiPlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1saXN0XCIgdmFsdWU9XCJvcmRlcmVkXCI+PC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLWxpc3RcIiB2YWx1ZT1cImJ1bGxldFwiPjwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1pbmRlbnRcIiB2YWx1ZT1cIi0xXCI+PC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLWluZGVudFwiIHZhbHVlPVwiKzFcIj48L2J1dHRvbj5cclxuICAgICAgPC9zcGFuPlxyXG4gIFxyXG4gICAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHNcIj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtZGlyZWN0aW9uXCIgdmFsdWU9XCJydGxcIj48L2J1dHRvbj5cclxuICAgICAgICA8c2VsZWN0IGNsYXNzPVwicWwtYWxpZ25cIj48L3NlbGVjdD5cclxuICAgICAgPC9zcGFuPlxyXG4gIFxyXG4gICAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHNcIj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtbGlua1wiPjwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1pbWFnZVwiPjwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC12aWRlb1wiPjwvYnV0dG9uPlxyXG4gICAgICA8L3NwYW4+XHJcbiAgXHJcbiAgICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiPlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1jbGVhblwiPjwvYnV0dG9uPlxyXG4gICAgICA8L3NwYW4+XHJcbiAgICA8L2Rpdj5cclxuICBcclxuICAgIDxkaXYgaWQ9XCJrdi1lZGl0b3JcIiBbc3R5bGUuaGVpZ2h0XT1cImNhbnZhSGVpZ3RoXCIgW25nQ2xhc3NdPVwieydlcnJvci1ib3JkZXInOiBoYXNDb250cm9sRXJyb3IoKX1cIiA+PC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGt2LWVycm9yIFtoYXNFcnJvcl09XCJoYXNDb250cm9sRXJyb3IoKVwiPnt7IGVycm9NZXNzYWdlKCkgfX08L2t2LWVycm9yPlxyXG5cclxuPCEtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPlxyXG5cclxuICA8IS0tIDxsaW5rIGhyZWY9XCJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL3F1aWxsQDIuMC4yL2Rpc3QvcXVpbGwuc25vdy5jc3NcIiByZWw9XCJzdHlsZXNoZWV0XCIgLz4gLS0+XHJcbiAgPGxpbmsgaHJlZj1cImh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzP2ZhbWlseT1Sb2JvdG9cIiByZWw9XCJzdHlsZXNoZWV0XCI+XHJcbiAgPHNjcmlwdCBzcmM9XCJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL3F1aWxsQDIuMC4yL2Rpc3QvcXVpbGwuanNcIj48L3NjcmlwdD5cclxuICA8c2NyaXB0IHNyYz1cImh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0va2F0ZXhAMC4xNi45L2Rpc3Qva2F0ZXgubWluLmpzXCI+PC9zY3JpcHQ+XHJcblxyXG5cclxuICA8bGluayByZWw9XCJzdHlsZXNoZWV0XCIgaHJlZj1cImh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vcXVpbGxAMi4wLjIvZGlzdC9xdWlsbC5idWJibGUuY3NzXCIgLz5cclxuICA8bGluayByZWw9XCJzdHlsZXNoZWV0XCIgaHJlZj1cImh0dHBzOi8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL2hpZ2hsaWdodC5qcy8xMS45LjAvc3R5bGVzL2F0b20tb25lLWRhcmsubWluLmNzc1wiIC8+XHJcbiAgPGxpbmsgcmVsPVwic3R5bGVzaGVldFwiIGhyZWY9XCJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2thdGV4QDAuMTYuOS9kaXN0L2thdGV4Lm1pbi5jc3NcIiAvPlxyXG5cclxuXHJcbiAgPCEtLSBJbXBvcnQgZm9udHMgLS0+XHJcblxyXG4gIDxsaW5rIHJlbD1cInByZWNvbm5lY3RcIiBocmVmPVwiaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbVwiPlxyXG4gIDxsaW5rIHJlbD1cInByZWNvbm5lY3RcIiBocmVmPVwiaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbVwiIGNyb3Nzb3JpZ2luPlxyXG5cclxuICA8bGluayBocmVmPVwiaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3MyP2ZhbWlseT1CYWxvbysyOndnaHRANDAwOzUwMDs2MDA7NzAwOzgwMCZmYW1pbHk9SW50ZXI6d2dodEAxMDAuLjkwMCZmYW1pbHk9SmV0QnJhaW5zK01vbm86aXRhbCx3Z2h0QDAsMTAwLi44MDA7MSwxMDAuLjgwMCZkaXNwbGF5PXN3YXBcIiByZWw9XCJzdHlsZXNoZWV0XCI+XHJcbiAgPGxpbmsgaHJlZj1cImh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9QmFsb28rMjp3Z2h0QDQwMDs1MDA7NjAwOzcwMDs4MDAmZmFtaWx5PUludGVyOndnaHRAMTAwLi45MDAmZmFtaWx5PUpldEJyYWlucytNb25vOml0YWwsd2dodEAwLDEwMC4uODAwOzEsMTAwLi44MDAmZmFtaWx5PVJvYm90bzppdGFsLHdnaHRAMCwxMDA7MCwzMDA7MCw0MDA7MCw1MDA7MCw3MDA7MCw5MDA7MSwxMDA7MSwzMDA7MSw0MDA7MSw1MDA7MSw3MDA7MSw5MDAmZGlzcGxheT1zd2FwXCIgcmVsPVwic3R5bGVzaGVldFwiPlxyXG4iXX0=
|
|
184
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2t2LWlucHV0cy9rdi1lZGl0b3Iva3YtZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2t2LWlucHV0cy9rdi1lZGl0b3Iva3YtZWRpdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsWUFBWSxFQUVaLEtBQUssRUFFTCxNQUFNLEVBRU4sTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQiw0REFBNEQ7QUFHNUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDdkYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMENBQTBDLENBQUM7Ozs7OztBQVM5RSxNQUFNLE9BQU8saUJBQWtCLFNBQVEsa0JBQTBCO0lBRS9ELFlBQ0UsZ0JBQWtDLEVBQVUsUUFBbUIsRUFBVSxFQUFjO1FBQ3ZGLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRG9CLGFBQVEsR0FBUixRQUFRLENBQVc7UUFBVSxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBS2hGLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFHMUIsVUFBSyxHQUFZLEtBQUssQ0FBQztRQUV0QixpQkFBWSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3JELHNCQUFpQixHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTFELGNBQVMsR0FBeUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNyRCxlQUFVLEdBQXlCLElBQUksWUFBWSxFQUFFLENBQUM7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QUN0RCxDQUFDO1lBQ0QsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7WUFDNUIsSUFBSSxDQUFDLEtBQUssR0FBRyxTQUFTLENBQUE7WUFFdEIsSUFBSSxRQUFRLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSTtnQkFDeEMsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUE7UUFHbkIsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQTtRQUM3QixDQUFDO0lBR0gsQ0FBQzs4R0FyTlUsaUJBQWlCO2tHQUFqQixpQkFBaUIsbVJBRmpCLGtCQUFrQixDQUFDLGlCQUFpQixDQUFDLGlEQ3hCbEQsZzhKQXNHQTs7MkZENUVhLGlCQUFpQjtrQkFON0IsU0FBUzsrQkFDRSxXQUFXLGFBR1Ysa0JBQWtCLG1CQUFtQjtzSUFVdkMsUUFBUTtzQkFBaEIsS0FBSztnQkFHRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUksWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBRUcsU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUtFLFdBQVc7c0JBQW5CLEtBQUs7Z0JBa0JHLFdBQVc7c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBpbnB1dCxcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFJlbmRlcmVyMixcclxuICBzaWduYWwsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgUXVpbGwgZnJvbSAncXVpbGwnO1xyXG4vLyBpbXBvcnQgUXVpbGxCbG90Rm9ybWF0dGVyICBmcm9tICdxdWlsbC1ibG90LWZvcm1hdHRlci0yJztcclxuXHJcblxyXG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50SW5wdXQgfSBmcm9tICcuLi8uLi8uLi9hcGkvYmFzZS1jb21wb25lbnRzL2Jhc2UtY29tcG9uZW50LWlucHV0JztcclxuaW1wb3J0IHsgQ29tcG9uZW50UHJvdmlkZXJzIH0gZnJvbSAnLi4vLi4vLi4vYXBpL2hlbHBlcnMvY29tcG9uZW50LXByb3ZpZGVycyc7XHJcbmltcG9ydCB7IENvbXBvbmVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9hcGkvc2VydmljZXMvY29tcG9uZW50LnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdrdi1lZGl0b3InLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9rdi1lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2t2LWVkaXRvci5jb21wb25lbnQuc2NzcycsXSxcclxuICBwcm92aWRlcnM6IENvbXBvbmVudFByb3ZpZGVycyhLdkVkaXRvckNvbXBvbmVudCksXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBLdkVkaXRvckNvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnRJbnB1dDxzdHJpbmc+IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBjb21wb25lbnRTZXJ2aWNlOiBDb21wb25lbnRTZXJ2aWNlLCBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsIHByaXZhdGUgZWw6IEVsZW1lbnRSZWYpIHtcclxuICAgIHN1cGVyKGNvbXBvbmVudFNlcnZpY2UpO1xyXG5cclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIHJlYWRvbmx5OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG5cclxuICBASW5wdXQoKSBkZWJ1ZzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBAT3V0cHV0KCkgb25UZXh0Q2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgb25TZWxlY3Rpb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBAT3V0cHV0KCkgb3V0cHV0UmF3OiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgb3V0cHV0SHRtbDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIC8qKlxyXG4gICogQGRlcHJlY2F0ZWQgRXNzYSBwcm9wcmllZGFkZSBuw6NvIHNlcsOhIG1haXMgdXRpbGl6YWRhIHBvciBlc3NlIGNvbXBvbmVudGUgbmFzIHByw7N4aW1hcyB2ZXJzw7Vlcy5cclxuICAqL1xyXG4gIEBJbnB1dCgpIGNhbnZhSGVpZ3RoOiBzdHJpbmcgPSAnMzgwcHgnO1xyXG5cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGluZ0VkaXRvcjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBxdWlsbCE6IFF1aWxsO1xyXG5cclxuICBpbml0TG9hZENvbXBsZXRlID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcclxuXHJcblxyXG4gIHByaXZhdGUgZWRpdG9yUmVhZHlQcm9taXNlID0gbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUpID0+IHtcclxuICAgIHRoaXMuZWRpdG9yUmVhZHlSZXNvbHZlciA9IHJlc29sdmU7XHJcbiAgfSk7XHJcblxyXG5cclxuICAvKipcclxuICAgKiBjYXNvIGRlZmluYSBjb21vIFwidGV4dFwiIG8gdGV4dG8gaXJhIHNlciBlbnZpYWRvIHNlbSBmb3JtYXRhw6fDo29cclxuICAgKi9cclxuICBASW5wdXQoKSBjb250ZW50VHlwZTogJ2h0bWwnIHwgJ3RleHQnID0gJ2h0bWwnO1xyXG5cclxuICBvdmVycmlkZSBuZ09uSW5pdCgpIHtcclxuICAgIHN1cGVyLm5nT25Jbml0KClcclxuICAgIGlmICghdGhpcy5xdWlsbCkge1xyXG4gICAgICB0aGlzLmhhbmRsZUluaXQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZWRpdG9yUmVhZHlSZXNvbHZlciE6ICgpID0+IHZvaWQ7XHJcblxyXG4gIGFzeW5jIGhhbmRsZUluaXQoKSB7XHJcbiAgICBhd2FpdCB0aGlzLmxvYWRDc3MoKTtcclxuICAgIHRoaXMuaW5pdGlhbGl6ZVF1aWxsRWRpdG9yKCk7XHJcblxyXG4gIH1cclxuXHJcbiAgbG9hZENzcygpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgIGNvbnN0IGNzc0VsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaW5rJyk7XHJcbiAgICAgIGNzc0VsZW1lbnQucmVsID0gJ3N0eWxlc2hlZXQnO1xyXG4gICAgICBjc3NFbGVtZW50LmhyZWYgPSAnaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9xdWlsbEAyLjAuMi9kaXN0L3F1aWxsLnNub3cuY3NzJztcclxuXHJcbiAgICAgIGNzc0VsZW1lbnQub25sb2FkID0gKCkgPT4gcmVzb2x2ZSgpO1xyXG4gICAgICBjc3NFbGVtZW50Lm9uZXJyb3IgPSAoZXJyKSA9PiByZWplY3QoZXJyKTtcclxuXHJcbiAgICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoY3NzRWxlbWVudCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGluaXRpYWxpemVRdWlsbEVkaXRvcigpIHtcclxuICAgIGNvbnN0IENvbG9yQ2xhc3M6IGFueSA9IFF1aWxsLmltcG9ydCgnYXR0cmlidXRvcnMvY2xhc3MvY29sb3InKTtcclxuICAgIGNvbnN0IENvbG9yU3R5bGU6IGFueSA9IFF1aWxsLmltcG9ydCgnYXR0cmlidXRvcnMvc3R5bGUvY29sb3InKTtcclxuICAgIGNvbnN0IFNpemVTdHlsZTogYW55ID0gUXVpbGwuaW1wb3J0KCdhdHRyaWJ1dG9ycy9zdHlsZS9zaXplJyk7XHJcbiAgICBjb25zdCBGb250OiBhbnkgPSBRdWlsbC5pbXBvcnQoJ2Zvcm1hdHMvZm9udCcpO1xyXG4gICAgY29uc3QgU2l6ZTogYW55ID0gUXVpbGwuaW1wb3J0KCdhdHRyaWJ1dG9ycy9zdHlsZS9zaXplJyk7XHJcblxyXG4gICAgU2l6ZS53aGl0ZWxpc3QgPSBbJzE1cHgnLCAnMjBweCcsICczMHB4JywgJzQwcHgnLCAnNTBweCcsICc3MHB4JywgJzkwcHgnXTtcclxuICAgIEZvbnQud2hpdGVsaXN0ID0gWydtb25vc3BhY2UnLCAncm9ib3RvJywgJ3NlcmlmJywgJ2ludGVyJ107XHJcblxyXG4gICAgUXVpbGwucmVnaXN0ZXIoQ29sb3JTdHlsZSwgdHJ1ZSk7XHJcbiAgICBRdWlsbC5yZWdpc3RlcihTaXplU3R5bGUsIHRydWUpO1xyXG4gICAgUXVpbGwucmVnaXN0ZXIoRm9udCwgdHJ1ZSk7XHJcbiAgICBRdWlsbC5yZWdpc3RlcihTaXplLCB0cnVlKTtcclxuXHJcbiAgICAvLyBDdXN0b21pemFuZG8gbyBjb21wb3J0YW1lbnRvIGRvIEVudGVyXHJcbiAgICBjb25zdCBiaW5kaW5ncyA9IChRdWlsbC5pbXBvcnQoJ21vZHVsZXMva2V5Ym9hcmQnKSBhcyBhbnkpLkRFRkFVTFRTLmJpbmRpbmdzO1xyXG5cclxuICAgIGJpbmRpbmdzWydlbnRlciddID0ge1xyXG4gICAgICBrZXk6IDEzLCAvLyBDw7NkaWdvIGRhIHRlY2xhIEVudGVyXHJcbiAgICAgIGhhbmRsZXI6IChyYW5nZTogYW55KSA9PiB7XHJcbiAgICAgICAgY29uc3QgcXVpbGwgPSB0aGlzLnF1aWxsO1xyXG4gICAgICAgIHF1aWxsLmluc2VydEVtYmVkKHJhbmdlLmluZGV4LCAnYnJlYWsnLCB0cnVlLCBRdWlsbC5zb3VyY2VzLlVTRVIpO1xyXG4gICAgICAgIHF1aWxsLnNldFNlbGVjdGlvbihyYW5nZS5pbmRleCArIDEsIFF1aWxsLnNvdXJjZXMuU0lMRU5UKTtcclxuICAgICAgICByZXR1cm4gZmFsc2U7IC8vIEV2aXRhIG8gY29tcG9ydGFtZW50byBwYWRyw6NvIGRlIGNyaWFyIHVtIDxwPlxyXG4gICAgICB9LFxyXG4gICAgfTtcclxuXHJcbiAgICAvLyBDdXN0b20gYmxvdCBmb3IgPGJyPiB0YWdcclxuICAgIGNvbnN0IEJsb2NrRW1iZWQgPSBRdWlsbC5pbXBvcnQoJ2Jsb3RzL2Jsb2NrL2VtYmVkJyk7XHJcbiAgICBjbGFzcyBCcmVhayBleHRlbmRzIChCbG9ja0VtYmVkIGFzIGFueSkge1xyXG4gICAgICBzdGF0aWMgYmxvdE5hbWUgPSAnYnJlYWsnO1xyXG4gICAgICBzdGF0aWMgdGFnTmFtZSA9ICdicic7XHJcbiAgICB9XHJcbiAgICBRdWlsbC5yZWdpc3RlcihCcmVhayk7XHJcblxyXG4gICAgdGhpcy5xdWlsbCA9IG5ldyBRdWlsbCgnI2t2LWVkaXRvcicsIHtcclxuICAgICAgdGhlbWU6ICdzbm93JyxcclxuICAgICAgbW9kdWxlczoge1xyXG4gICAgICAgIHRvb2xiYXI6ICcja3YtZWRpdG9yLXRvb2xiYXInLFxyXG4gICAgICAgIGtleWJvYXJkOiB7XHJcbiAgICAgICAgICBiaW5kaW5nczogYmluZGluZ3MsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAgcGxhY2Vob2xkZXI6IHRoaXMubGFiZWwgPyB0aGlzLmxhYmVsIDogJycsXHJcbiAgICAgIHJlYWRPbmx5OiB0aGlzLnJlYWRvbmx5LFxyXG4gICAgICBkZWJ1ZzogdGhpcy5kZWJ1ZyxcclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnN0IEFsaWduU3R5bGUgPSBRdWlsbC5pbXBvcnQoJ2F0dHJpYnV0b3JzL3N0eWxlL2FsaWduJykgYXMgYW55O1xyXG4gICAgUXVpbGwucmVnaXN0ZXIoQWxpZ25TdHlsZSwgdHJ1ZSk7XHJcblxyXG5cclxuICAgIHRoaXMucXVpbGwub24oJ3NlbGVjdGlvbi1jaGFuZ2UnLCAocmFuZ2UsIG9sZFJhbmdlLCBzb3VyY2UpID0+IHtcclxuICAgICAgdGhpcy5vblNlbGVjdGlvbkNoYW5nZS5lbWl0KHtcclxuICAgICAgICByYW5nZTogcmFuZ2UsXHJcbiAgICAgICAgb2xkUmFuZ2U6IG9sZFJhbmdlLFxyXG4gICAgICAgIHNvdXJjZTogc291cmNlLFxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMucXVpbGwub24oJ3RleHQtY2hhbmdlJywgKGRlbHRhLCBvbGRDb250ZW50cywgc291cmNlKSA9PiB7XHJcbiAgICAgIGlmICghdGhpcy51cGRhdGluZ0VkaXRvcikge1xyXG4gICAgICAgIHRoaXMudXBkYXRpbmdFZGl0b3IgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgdGhpcy5lc2NyZXZhVmFsb3IodGhpcy5xdWlsbC5nZXRTZW1hbnRpY0hUTUwoKSwgdGhpcy5xdWlsbC5nZXRUZXh0KCkpO1xyXG5cclxuICAgICAgICB0aGlzLm9uVGV4dENoYW5nZS5lbWl0KHtcclxuICAgICAgICAgIGRlbHRhOiBkZWx0YSxcclxuICAgICAgICAgIG9sZENvbnRlbnRzOiBvbGRDb250ZW50cyxcclxuICAgICAgICAgIHNvdXJjZTogc291cmNlLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMub3V0cHV0UmF3LmVtaXQodGhpcy5xdWlsbC5nZXRUZXh0KCkpO1xyXG4gICAgICAgIHRoaXMub3V0cHV0SHRtbC5lbWl0KHRoaXMucXVpbGwuZ2V0U2VtYW50aWNIVE1MKCkpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcblxyXG4gICAgdGhpcy5lZGl0b3JSZWFkeVJlc29sdmVyKCk7XHJcbiAgICB0aGlzLmluaXRMb2FkQ29tcGxldGUuc2V0KHRydWUpO1xyXG5cclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBjb25zdCBjb250cm9sID0gdGhpcy5mb3JtQ29udHJvbDtcclxuICAgICAgaWYgKGNvbnRyb2wgJiYgY29udHJvbC5tYXJrQXNQcmlzdGluZSkge1xyXG4gICAgICAgIGNvbnRyb2wubWFya0FzUHJpc3RpbmUoKTtcclxuICAgICAgICBjb250cm9sLm1hcmtBc1VudG91Y2hlZCgpO1xyXG4gICAgICB9XHJcbiAgICB9LCAwKTtcclxuXHJcbiAgfVxyXG5cclxuICBhZGRRdWlsbENzcygpIHtcclxuICAgIGNvbnN0IGxpbmsgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKTtcclxuICAgIGxpbmsucmVsID0gJ3N0eWxlc2hlZXQnO1xyXG4gICAgbGluay5ocmVmID0gJ2h0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vcXVpbGxAMi4wLjIvZGlzdC9xdWlsbC5zbm93LmNzcyc7XHJcblxyXG4gICAgLy8gUXVhbmRvIG8gQ1NTIGZvciBjYXJyZWdhZG8sIGluaWNpYWxpemUgbyBRdWlsbFxyXG4gICAgbGluay5vbmxvYWQgPSAoKSA9PiB7XHJcbiAgICAgIHRoaXMuaW5pdGlhbGl6ZVF1aWxsRWRpdG9yKCk7XHJcbiAgICB9O1xyXG5cclxuICAgIC8vIEFkaWNpb25hIG8gbGluayBhbyA8aGVhZD5cclxuICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuaGVhZCwgbGluayk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIG92ZXJyaWRlICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcclxuICAgIHRoaXMudXBkYXRpbmdFZGl0b3IgPSB0cnVlXHJcbiAgICB0aGlzLmVzY3JldmFWYWxvcih2YWx1ZSlcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgYXN5bmMgZXNjcmV2YVZhbG9yKGh0bWx2YWx1ZTogYW55LCByYXd2YWx1ZT86IGFueSkge1xyXG5cclxuICAgIGlmICghdGhpcy5pbml0TG9hZENvbXBsZXRlKCkpXHJcbiAgICAgIGF3YWl0IHRoaXMuZWRpdG9yUmVhZHlQcm9taXNlXHJcblxyXG5cclxuICAgIGlmICh0aGlzLnF1aWxsKSB7XHJcblxyXG4gICAgICBpZiAodGhpcy51cGRhdGluZ0VkaXRvcikge1xyXG4gICAgICAgIHRoaXMucXVpbGwuY2xpcGJvYXJkLmRhbmdlcm91c2x5UGFzdGVIVE1MKGh0bWx2YWx1ZSlcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnVwZGF0aW5nRWRpdG9yID0gZmFsc2U7XHJcbiAgICAgIHRoaXMudmFsdWUgPSBodG1sdmFsdWVcclxuXHJcbiAgICAgIGlmIChyYXd2YWx1ZSA9PSBcIlxcblwiIHx8IHRoaXMudmFsdWUgPT0gXCJcXG5cIilcclxuICAgICAgICB0aGlzLnZhbHVlID0gJydcclxuXHJcblxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy51cGRhdGluZ0VkaXRvciA9IGZhbHNlXHJcbiAgICB9XHJcblxyXG5cclxuICB9XHJcbn1cclxuIiwiXHJcbiAgPGRpdiBjbGFzcz1cImt2LWVkaXRvci1jb250YWluZXIgaC1mdWxsIGZsZXggZmxleC1jb2x1bW5cIiA+XHJcbiAgICA8ZGl2ICNlZGl0b3IgaWQ9XCJrdi1lZGl0b3ItdG9vbGJhclwiIFtuZ0NsYXNzXT1cInsnZXJyb3ItYm9yZGVyLXRvb2xiYXInOiBoYXNDb250cm9sRXJyb3IoKX1cIiAgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGZsZXgtd3JhcCBnYXAtMiBmbGV4LWluaXRpYWxcIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzIGJnLWdyYXktMTAwIGJvcmRlci1yb3VuZC1tZFwiPlxyXG4gICAgICAgIDxzZWxlY3QgY2xhc3M9XCJxbC1mb250XCI+XHJcbiAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwicm9ib3RvXCI+Um9ib3RvPC9vcHRpb24+XHJcbiAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwibW9ub3NwYWNlXCI+TW9ub3NwYWNlPC9vcHRpb24+XHJcbiAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiaW50ZXJcIj5JbnRlcjwvb3B0aW9uPlxyXG4gICAgICAgICAgPG9wdGlvbiBzZWxlY3RlZD5TYW5zIFNlcmlmPC9vcHRpb24+XHJcbiAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwic2VyaWZcIj5TZXJpZjwvb3B0aW9uPlxyXG4gICAgICAgIDwvc2VsZWN0PlxyXG4gIFxyXG4gICAgICAgIDxzZWxlY3QgY2xhc3M9XCJxbC1oZWFkZXJcIj5cclxuICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCIxXCI+VGl0dWxvPC9vcHRpb24+XHJcbiAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiMlwiPlN1YnRpdHVsbzwvb3B0aW9uPlxyXG4gICAgICAgICAgPG9wdGlvbiBzZWxlY3RlZD5Ob3JtYWw8L29wdGlvbj5cclxuICAgICAgICA8L3NlbGVjdD5cclxuICBcclxuICAgICAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdC1ncm91cFwiPlxyXG4gICAgICAgICAgPHNlbGVjdCB0aXRsZT1cIlNpemVcIiBjbGFzcz1cInFsLXNpemVcIj5cclxuICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjE1cHhcIj4xNXB4PC9vcHRpb24+XHJcbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCIyMHB4XCI+MjBweDwvb3B0aW9uPlxyXG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiMzBweFwiPjMwcHg8L29wdGlvbj5cclxuICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjQwcHhcIj40MHB4PC9vcHRpb24+XHJcbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCI1MHB4XCI+NTBweDwvb3B0aW9uPlxyXG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiNzBweFwiPjcwcHg8L29wdGlvbj5cclxuICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjkwcHhcIj45MHB4PC9vcHRpb24+XHJcbiAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvc3Bhbj5cclxuICBcclxuICAgICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzIGJnLWdyYXktMTAwIGJvcmRlci1yb3VuZC1tZFwiPlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1ib2xkXCI+PC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLWl0YWxpY1wiPjwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC11bmRlcmxpbmVcIj48L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtc3RyaWtlXCI+PC9idXR0b24+XHJcbiAgICAgIDwvc3Bhbj5cclxuICBcclxuICAgICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzIGJnLWdyYXktMTAwIGJvcmRlci1yb3VuZC1tZFwiPlxyXG4gICAgICAgIDxzZWxlY3QgY2xhc3M9XCJxbC1jb2xvclwiPjwvc2VsZWN0PlxyXG4gICAgICAgIDxzZWxlY3QgY2xhc3M9XCJxbC1iYWNrZ3JvdW5kXCI+PC9zZWxlY3Q+XHJcbiAgICAgIDwvc3Bhbj5cclxuICBcclxuICAgICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzIGJnLWdyYXktMTAwIGJvcmRlci1yb3VuZC1tZFwiPlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1zY3JpcHRcIiB2YWx1ZT1cInN1YlwiPjwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1zY3JpcHRcIiB2YWx1ZT1cInN1cGVyXCI+PC9idXR0b24+XHJcbiAgICAgIDwvc3Bhbj5cclxuICBcclxuICAgICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzIGJnLWdyYXktMTAwIGJvcmRlci1yb3VuZC1tZFwiPlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1oZWFkZXJcIiB2YWx1ZT1cIjFcIj48L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtaGVhZGVyXCIgdmFsdWU9XCIyXCI+PC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLWJsb2NrcXVvdGVcIj48L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtY29kZS1ibG9ja1wiPjwvYnV0dG9uPlxyXG4gICAgICA8L3NwYW4+XHJcbiAgXHJcbiAgICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0cyBiZy1ncmF5LTEwMCBib3JkZXItcm91bmQtbWRcIj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtbGlzdFwiIHZhbHVlPVwib3JkZXJlZFwiPjwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1saXN0XCIgdmFsdWU9XCJidWxsZXRcIj48L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtaW5kZW50XCIgdmFsdWU9XCItMVwiPjwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1pbmRlbnRcIiB2YWx1ZT1cIisxXCI+PC9idXR0b24+XHJcbiAgICAgIDwvc3Bhbj5cclxuICBcclxuICAgICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzIGJnLWdyYXktMTAwIGJvcmRlci1yb3VuZC1tZFwiPlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1kaXJlY3Rpb25cIiB2YWx1ZT1cInJ0bFwiPjwvYnV0dG9uPlxyXG4gICAgICAgIDxzZWxlY3QgY2xhc3M9XCJxbC1hbGlnblwiPjwvc2VsZWN0PlxyXG4gICAgICA8L3NwYW4+XHJcbiAgXHJcbiAgICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0cyBiZy1ncmF5LTEwMCBib3JkZXItcm91bmQtbWRcIj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtbGlua1wiPjwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1pbWFnZVwiPjwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC12aWRlb1wiPjwvYnV0dG9uPlxyXG4gICAgICA8L3NwYW4+XHJcbiAgXHJcbiAgICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0cyBiZy1ncmF5LTEwMCBib3JkZXItcm91bmQtbWRcIj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtY2xlYW5cIj48L2J1dHRvbj5cclxuICAgICAgPC9zcGFuPlxyXG4gICAgPC9kaXY+XHJcbiAgXHJcbiAgICA8ZGl2IGlkPVwia3YtZWRpdG9yXCIgY2xhc3M9XCJoLWZ1bGwgZmxleC0xXCIgW25nQ2xhc3NdPVwieydlcnJvci1ib3JkZXInOiBoYXNDb250cm9sRXJyb3IoKX1cIiA+PC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGt2LWVycm9yIFtoYXNFcnJvcl09XCJoYXNDb250cm9sRXJyb3IoKVwiPnt7IGVycm9NZXNzYWdlKCkgfX08L2t2LWVycm9yPlxyXG5cclxuPCEtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPlxyXG5cclxuICA8IS0tIDxsaW5rIGhyZWY9XCJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL3F1aWxsQDIuMC4yL2Rpc3QvcXVpbGwuc25vdy5jc3NcIiByZWw9XCJzdHlsZXNoZWV0XCIgLz4gLS0+XHJcbiAgPGxpbmsgaHJlZj1cImh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzP2ZhbWlseT1Sb2JvdG9cIiByZWw9XCJzdHlsZXNoZWV0XCI+XHJcbiAgPHNjcmlwdCBzcmM9XCJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL3F1aWxsQDIuMC4yL2Rpc3QvcXVpbGwuanNcIj48L3NjcmlwdD5cclxuICA8c2NyaXB0IHNyYz1cImh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0va2F0ZXhAMC4xNi45L2Rpc3Qva2F0ZXgubWluLmpzXCI+PC9zY3JpcHQ+XHJcblxyXG5cclxuICA8bGluayByZWw9XCJzdHlsZXNoZWV0XCIgaHJlZj1cImh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vcXVpbGxAMi4wLjIvZGlzdC9xdWlsbC5idWJibGUuY3NzXCIgLz5cclxuICA8bGluayByZWw9XCJzdHlsZXNoZWV0XCIgaHJlZj1cImh0dHBzOi8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL2hpZ2hsaWdodC5qcy8xMS45LjAvc3R5bGVzL2F0b20tb25lLWRhcmsubWluLmNzc1wiIC8+XHJcbiAgPGxpbmsgcmVsPVwic3R5bGVzaGVldFwiIGhyZWY9XCJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2thdGV4QDAuMTYuOS9kaXN0L2thdGV4Lm1pbi5jc3NcIiAvPlxyXG5cclxuXHJcbiAgPCEtLSBJbXBvcnQgZm9udHMgLS0+XHJcblxyXG4gIDxsaW5rIHJlbD1cInByZWNvbm5lY3RcIiBocmVmPVwiaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbVwiPlxyXG4gIDxsaW5rIHJlbD1cInByZWNvbm5lY3RcIiBocmVmPVwiaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbVwiIGNyb3Nzb3JpZ2luPlxyXG5cclxuICA8bGluayBocmVmPVwiaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3MyP2ZhbWlseT1CYWxvbysyOndnaHRANDAwOzUwMDs2MDA7NzAwOzgwMCZmYW1pbHk9SW50ZXI6d2dodEAxMDAuLjkwMCZmYW1pbHk9SmV0QnJhaW5zK01vbm86aXRhbCx3Z2h0QDAsMTAwLi44MDA7MSwxMDAuLjgwMCZkaXNwbGF5PXN3YXBcIiByZWw9XCJzdHlsZXNoZWV0XCI+XHJcbiAgPGxpbmsgaHJlZj1cImh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9QmFsb28rMjp3Z2h0QDQwMDs1MDA7NjAwOzcwMDs4MDAmZmFtaWx5PUludGVyOndnaHRAMTAwLi45MDAmZmFtaWx5PUpldEJyYWlucytNb25vOml0YWwsd2dodEAwLDEwMC4uODAwOzEsMTAwLi44MDAmZmFtaWx5PVJvYm90bzppdGFsLHdnaHRAMCwxMDA7MCwzMDA7MCw0MDA7MCw1MDA7MCw3MDA7MCw5MDA7MSwxMDA7MSwzMDA7MSw0MDA7MSw1MDA7MSw3MDA7MSw5MDAmZGlzcGxheT1zd2FwXCIgcmVsPVwic3R5bGVzaGVldFwiPlxyXG4iXX0=
|