@ti-tecnologico-de-monterrey-oficial/ds-ng 1.5.1317-c → 1.5.1317-d
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/assets/i18n/en.json +28 -0
- package/assets/i18n/es.json +28 -0
- package/assets/styles/main.min.css +1 -1
- package/assets/styles/main.min.css.map +1 -1
- package/esm2022/assets/i18n/en.json +28 -0
- package/esm2022/assets/i18n/es.json +28 -0
- package/esm2022/lib/components/bmb-portal/bmb-projected-content/bmb-projected-content.component.mjs +2 -2
- package/esm2022/lib/components/bmb-text-editor/bmb-text-editor-prompt/bmb-text-editor-prompt.component.mjs +51 -0
- package/esm2022/lib/components/bmb-text-editor/bmb-text-editor.component.mjs +66 -24
- package/esm2022/lib/components/utils/bmb-dropdown-content/bmb-dropdown-content.component.mjs +5 -3
- package/esm2022/lib/directives/bmb-layout/bmb-layout-item.directive.mjs +2 -2
- package/esm2022/lib/services/projection/projection.service.mjs +1 -1
- package/fesm2022/ti-tecnologico-de-monterrey-oficial-ds-ng.mjs +311 -173
- package/fesm2022/ti-tecnologico-de-monterrey-oficial-ds-ng.mjs.map +1 -1
- package/lib/components/bmb-text-editor/bmb-text-editor-prompt/bmb-text-editor-prompt.component.d.ts +13 -0
- package/lib/components/bmb-text-editor/bmb-text-editor.component.d.ts +10 -4
- package/package.json +1 -1
|
@@ -2,11 +2,13 @@ import { ChangeDetectionStrategy, Component, input, signal, ViewChild, ViewEncap
|
|
|
2
2
|
import { FormControl } from '@angular/forms';
|
|
3
3
|
import { BmbButtonDirective } from '../../directives/bmb-button/button.directive';
|
|
4
4
|
import { BmbIconComponent } from '../bmb-icon/bmb-icon.component';
|
|
5
|
+
import { BmbTextEditorPromptComponent, } from './bmb-text-editor-prompt/bmb-text-editor-prompt.component';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
6
7
|
import * as i1 from "@angular/platform-browser";
|
|
8
|
+
import * as i2 from "../../services/projection/projection.service";
|
|
7
9
|
export class BmbTextEditorComponent {
|
|
8
10
|
detectAlignment() {
|
|
9
|
-
const selection =
|
|
11
|
+
const selection = globalThis.getSelection();
|
|
10
12
|
if (selection && selection.rangeCount > 0) {
|
|
11
13
|
const element = selection.getRangeAt(0)
|
|
12
14
|
.commonAncestorContainer;
|
|
@@ -21,19 +23,24 @@ export class BmbTextEditorComponent {
|
|
|
21
23
|
this.execCommand('styleWithCSS', 'true');
|
|
22
24
|
this.execCommand('justify' + alignment.charAt(0).toUpperCase() + alignment.slice(1));
|
|
23
25
|
}
|
|
24
|
-
constructor(sanitizer) {
|
|
26
|
+
constructor(sanitizer, projectionContent) {
|
|
25
27
|
this.sanitizer = sanitizer;
|
|
28
|
+
this.projectionContent = projectionContent;
|
|
26
29
|
this.control = input(new FormControl(''));
|
|
27
30
|
this.sanitizedContent = signal('');
|
|
28
31
|
this.currentAlignment = 'left';
|
|
29
32
|
this.showTableDialog = false;
|
|
30
33
|
this.tableRows = 2;
|
|
31
34
|
this.tableColumns = 2;
|
|
35
|
+
this.userSelection = null;
|
|
32
36
|
}
|
|
33
37
|
ngOnInit() {
|
|
34
|
-
this.sanitizedContent.set(
|
|
38
|
+
this.sanitizedContent.set(
|
|
39
|
+
// NOSONAR: Initial content sanitization
|
|
40
|
+
this.sanitizer.bypassSecurityTrustHtml(this.control().value || ''));
|
|
35
41
|
this.control().valueChanges?.subscribe((value) => {
|
|
36
42
|
if (value === null) {
|
|
43
|
+
// NOSONAR: Clear content sanitization
|
|
37
44
|
this.sanitizedContent.set(this.sanitizer.bypassSecurityTrustHtml(''));
|
|
38
45
|
}
|
|
39
46
|
});
|
|
@@ -48,14 +55,60 @@ export class BmbTextEditorComponent {
|
|
|
48
55
|
}
|
|
49
56
|
}
|
|
50
57
|
execCommand(command, value = null) {
|
|
58
|
+
if (this.userSelection) {
|
|
59
|
+
const selection = globalThis.getSelection();
|
|
60
|
+
if (selection) {
|
|
61
|
+
selection.removeAllRanges();
|
|
62
|
+
selection.addRange(this.userSelection);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
51
65
|
document.execCommand(command, false, value || undefined);
|
|
52
66
|
this.updateContent();
|
|
67
|
+
this.userSelection = null;
|
|
68
|
+
}
|
|
69
|
+
openPrompt(type, event) {
|
|
70
|
+
this.userSelection = globalThis.getSelection()?.getRangeAt(0) || null;
|
|
71
|
+
const buttonNode = event.currentTarget;
|
|
72
|
+
this.projectionContent.openContent({
|
|
73
|
+
content: BmbTextEditorPromptComponent,
|
|
74
|
+
inputContext: { type },
|
|
75
|
+
outputContext: {
|
|
76
|
+
formValues: (values) => this.handleClosePrompt({ ...values, type }),
|
|
77
|
+
cancelForm: () => this.projectionContent.closeContent(),
|
|
78
|
+
},
|
|
79
|
+
targetRef: buttonNode,
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
handleClosePrompt(values) {
|
|
83
|
+
if (values['type'] === 'link' && values['prompt_url']) {
|
|
84
|
+
this.insertLink(values);
|
|
85
|
+
}
|
|
86
|
+
else if (values['type'] === 'image' && values['prompt_url']) {
|
|
87
|
+
this.insertImage(values);
|
|
88
|
+
}
|
|
89
|
+
this.projectionContent.closeContent();
|
|
90
|
+
}
|
|
91
|
+
insertLink(values) {
|
|
92
|
+
const selection = globalThis.getSelection();
|
|
93
|
+
if (!selection || selection.rangeCount === 0 || !values['prompt_url']) {
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
this.execCommand('createLink', values['prompt_url']);
|
|
97
|
+
const range = selection.getRangeAt(0);
|
|
98
|
+
const parentNode = range.commonAncestorContainer.parentNode;
|
|
99
|
+
if (parentNode && parentNode instanceof HTMLAnchorElement) {
|
|
100
|
+
parentNode.target = values['target'] || '_self';
|
|
101
|
+
if (values['rel']) {
|
|
102
|
+
parentNode.rel = 'noopener noreferrer';
|
|
103
|
+
}
|
|
104
|
+
}
|
|
53
105
|
}
|
|
54
|
-
|
|
55
|
-
const
|
|
56
|
-
if (
|
|
57
|
-
|
|
106
|
+
insertImage(values) {
|
|
107
|
+
const selection = globalThis.getSelection();
|
|
108
|
+
if (!selection || selection.rangeCount === 0 || !values['prompt_url']) {
|
|
109
|
+
return;
|
|
58
110
|
}
|
|
111
|
+
this.execCommand('insertImage', values['prompt_url']);
|
|
59
112
|
}
|
|
60
113
|
updateContent() {
|
|
61
114
|
this.control().setValue(this.editor.nativeElement.innerHTML);
|
|
@@ -67,17 +120,6 @@ export class BmbTextEditorComponent {
|
|
|
67
120
|
getCurrentState() {
|
|
68
121
|
return this.control().value;
|
|
69
122
|
}
|
|
70
|
-
insertImage() {
|
|
71
|
-
const url = prompt('Ingrese la URL de la imagen:');
|
|
72
|
-
if (url) {
|
|
73
|
-
if (this.isValidImageUrl(url)) {
|
|
74
|
-
this.execCommand('insertImage', url);
|
|
75
|
-
}
|
|
76
|
-
else {
|
|
77
|
-
alert('La URL de la imagen no es válida.');
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
123
|
isValidImageUrl(url) {
|
|
82
124
|
try {
|
|
83
125
|
new URL(url); // Intenta crear un objeto URL
|
|
@@ -120,7 +162,7 @@ export class BmbTextEditorComponent {
|
|
|
120
162
|
}
|
|
121
163
|
// Método para insertar HTML en el editor
|
|
122
164
|
insertHtml(html) {
|
|
123
|
-
const selection =
|
|
165
|
+
const selection = globalThis.getSelection();
|
|
124
166
|
if (selection && selection.rangeCount > 0) {
|
|
125
167
|
const range = selection.getRangeAt(0);
|
|
126
168
|
const div = document.createElement('div');
|
|
@@ -129,14 +171,14 @@ export class BmbTextEditorComponent {
|
|
|
129
171
|
this.updateContent();
|
|
130
172
|
}
|
|
131
173
|
}
|
|
132
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BmbTextEditorComponent, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
133
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.12", type: BmbTextEditorComponent, isStandalone: true, selector: "bmb-text-editor", inputs: { control: { classPropertyName: "control", publicName: "control", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "editor", first: true, predicate: ["editor"], descendants: true }], ngImport: i0, template: "<section class=\"bmb_text-editor\">\n <header class=\"bmb_text-editor-header\">\n <span class=\"bmb_text-editor-header-group\">\n <select\n id=\"BmbTextEditorSelect\"\n class=\"bmb_text-editor-header-select\"\n (change)=\"handleChange($event, 'formatBlock')\"\n title=\"Estilo de p\u00E1rrafo\"\n >\n <option value=\"p\">P\u00E1rrafo</option>\n <option value=\"h1\">T\u00EDtulo 1</option>\n <option value=\"h2\">T\u00EDtulo 2</option>\n <option value=\"h3\">T\u00EDtulo 3</option>\n <option value=\"blockquote\">Cita</option>\n </select>\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"execCommand('bold')\"\n title=\"Negrita\"\n >\n <bmb-icon icon=\"format_bold\" [size]=\"24\" />\n </button>\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"execCommand('italic')\"\n title=\"Cursiva\"\n >\n <bmb-icon icon=\"format_italic\" [size]=\"24\" />\n </button>\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"execCommand('underline')\"\n title=\"Subrayado\"\n >\n <bmb-icon icon=\"format_underlined\" [size]=\"24\" />\n </button>\n <input\n id=\"BmbTextEditorColor\"\n type=\"color\"\n (change)=\"handleChange($event, 'foreColor')\"\n title=\"Color de texto\"\n />\n </span>\n\n <span class=\"bmb_text-editor-header-group\">\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"applyAlignment('left')\"\n [class.active]=\"currentAlignment === 'left'\"\n title=\"Alinear a la izquierda\"\n >\n <bmb-icon icon=\"format_align_left\" [size]=\"24\" />\n </button>\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"applyAlignment('center')\"\n [class.active]=\"currentAlignment === 'center'\"\n title=\"Centrar\"\n >\n <bmb-icon icon=\"format_align_center\" [size]=\"24\" />\n </button>\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"applyAlignment('right')\"\n [class.active]=\"currentAlignment === 'right'\"\n title=\"Alinear a la derecha\"\n >\n <bmb-icon icon=\"format_align_right\" [size]=\"24\" />\n </button>\n </span>\n\n <span class=\"bmb_text-editor-header-group\">\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"execCommand('insertOrderedList')\"\n title=\"Lista numerada\"\n >\n <bmb-icon icon=\"format_list_numbered\" [size]=\"24\" />\n </button>\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"execCommand('insertUnorderedList')\"\n title=\"Lista con vi\u00F1etas\"\n >\n <bmb-icon icon=\"format_list_bulleted\" [size]=\"24\" />\n </button>\n </span>\n\n <span class=\"bmb_text-editor-header-group\">\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"execCommand('indent')\"\n title=\"Aumentar sangr\u00EDa\"\n >\n <bmb-icon icon=\"format_indent_increase\" [size]=\"24\" />\n </button>\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"execCommand('outdent')\"\n title=\"Disminuir sangr\u00EDa\"\n >\n <bmb-icon icon=\"format_indent_decrease\" [size]=\"24\" />\n </button>\n </span>\n\n <span class=\"bmb_text-editor-header-group\">\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"insertLink()\"\n title=\"Insertar enlace\"\n >\n <bmb-icon icon=\"link\" [size]=\"24\" />\n </button>\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"insertImage()\"\n title=\"Insertar imagen\"\n >\n <bmb-icon icon=\"image\" [size]=\"24\" />\n </button>\n <!-- <button bmbButton appearance=\"transparent\" size=\"micro\" type=\"button\" (click)=\"openTableDialog()\" title=\"Insertar tabla\">\n <bmb-icon icon=\"table_chart\" [size]=\"24\"/>\n </button> -->\n </span>\n <span class=\"bmb_text-editor-header-group\">\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"clearFormatting()\"\n title=\"Limpiar formato\"\n >\n <bmb-icon icon=\"format_clear\" [size]=\"24\" />\n </button>\n </span>\n </header>\n\n <div\n class=\"bmb_text-editor-content\"\n #editor\n contenteditable=\"true\"\n (input)=\"updateContent()\"\n [innerHTML]=\"sanitizedContent()\"\n ></div>\n</section>\n\n<!-- Di\u00E1logo para definir filas y columnas -->\n<dialog class=\"dialog-overlay\" [open]=\"showTableDialog\">\n <div class=\"dialog\">\n <h3>Insertar tabla</h3>\n <label for=\"rows\">Filas:</label>\n <input type=\"number\" id=\"rows\" min=\"1\" max=\"10\" />\n\n <label for=\"columns\">Columnas:</label>\n <input type=\"number\" id=\"columns\" min=\"1\" max=\"10\" />\n\n <div class=\"dialog-buttons\">\n <button type=\"button\" (click)=\"insertTable()\">Insertar</button>\n <button type=\"button\" (click)=\"closeTableDialog()\">Cancelar</button>\n </div>\n </div>\n</dialog>\n", styles: ["@font-face{font-family:Poppins-Light;font-style:normal;font-weight:300;src:url(/assets/fonts/Poppins/Poppins-ExtraLight.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Regular;font-style:normal;font-weight:400;src:url(/assets/fonts/Poppins/Poppins-Regular.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Bold;font-style:normal;font-weight:700;src:url(/assets/fonts/Poppins/Poppins-Bold.ttf) format(\"truetype\")}:root,:host{--font-display: \"Poppins-Regular\", sans-serif}.font-thin-1{font-family:Poppins-Thin,sans-serif;font-size:.625rem}.font-light-1{font-family:Poppins-Light,sans-serif;font-size:.625rem}.font-regular-1{font-family:Poppins-Regular,sans-serif;font-size:.625rem}.font-medium-1{font-family:Poppins-Medium,sans-serif;font-size:.625rem}.font-semibold-1{font-family:Poppins-Semibold,sans-serif;font-size:.625rem}.font-bold-1{font-family:Poppins-Bold,sans-serif;font-size:.625rem}.font-thin-2{font-family:Poppins-Thin,sans-serif;font-size:.6875rem}.font-light-2{font-family:Poppins-Light,sans-serif;font-size:.6875rem}.font-regular-2{font-family:Poppins-Regular,sans-serif;font-size:.6875rem}.font-medium-2{font-family:Poppins-Medium,sans-serif;font-size:.6875rem}.font-semibold-2{font-family:Poppins-Semibold,sans-serif;font-size:.6875rem}.font-bold-2{font-family:Poppins-Bold,sans-serif;font-size:.6875rem}.font-thin-3{font-family:Poppins-Thin,sans-serif;font-size:.75rem}.font-light-3{font-family:Poppins-Light,sans-serif;font-size:.75rem}.font-regular-3{font-family:Poppins-Regular,sans-serif;font-size:.75rem}.font-medium-3{font-family:Poppins-Medium,sans-serif;font-size:.75rem}.font-semibold-3{font-family:Poppins-Semibold,sans-serif;font-size:.75rem}.font-bold-3{font-family:Poppins-Bold,sans-serif;font-size:.75rem}.font-thin-4{font-family:Poppins-Thin,sans-serif;font-size:.875rem}.font-light-4{font-family:Poppins-Light,sans-serif;font-size:.875rem}.font-regular-4{font-family:Poppins-Regular,sans-serif;font-size:.875rem}.font-medium-4{font-family:Poppins-Medium,sans-serif;font-size:.875rem}.font-semibold-4{font-family:Poppins-Semibold,sans-serif;font-size:.875rem}.font-bold-4{font-family:Poppins-Bold,sans-serif;font-size:.875rem}.font-thin-4_5{font-family:Poppins-Thin,sans-serif;font-size:.9375rem}.font-light-4_5{font-family:Poppins-Light,sans-serif;font-size:.9375rem}.font-regular-4_5{font-family:Poppins-Regular,sans-serif;font-size:.9375rem}.font-medium-4_5{font-family:Poppins-Medium,sans-serif;font-size:.9375rem}.font-semibold-4_5{font-family:Poppins-Semibold,sans-serif;font-size:.9375rem}.font-bold-4_5{font-family:Poppins-Bold,sans-serif;font-size:.9375rem}.font-thin-5{font-family:Poppins-Thin,sans-serif;font-size:1rem}.font-light-5{font-family:Poppins-Light,sans-serif;font-size:1rem}.font-regular-5{font-family:Poppins-Regular,sans-serif;font-size:1rem}.font-medium-5{font-family:Poppins-Medium,sans-serif;font-size:1rem}.font-semibold-5{font-family:Poppins-Semibold,sans-serif;font-size:1rem}.font-bold-5{font-family:Poppins-Bold,sans-serif;font-size:1rem}.font-thin-6{font-family:Poppins-Thin,sans-serif;font-size:1.125rem}.font-light-6{font-family:Poppins-Light,sans-serif;font-size:1.125rem}.font-regular-6{font-family:Poppins-Regular,sans-serif;font-size:1.125rem}.font-medium-6{font-family:Poppins-Medium,sans-serif;font-size:1.125rem}.font-semibold-6{font-family:Poppins-Semibold,sans-serif;font-size:1.125rem}.font-bold-6{font-family:Poppins-Bold,sans-serif;font-size:1.125rem}.font-thin-7{font-family:Poppins-Thin,sans-serif;font-size:1.25rem}.font-light-7{font-family:Poppins-Light,sans-serif;font-size:1.25rem}.font-regular-7{font-family:Poppins-Regular,sans-serif;font-size:1.25rem}.font-medium-7{font-family:Poppins-Medium,sans-serif;font-size:1.25rem}.font-semibold-7{font-family:Poppins-Semibold,sans-serif;font-size:1.25rem}.font-bold-7{font-family:Poppins-Bold,sans-serif;font-size:1.25rem}.font-thin-8{font-family:Poppins-Thin,sans-serif;font-size:1.375rem}.font-light-8{font-family:Poppins-Light,sans-serif;font-size:1.375rem}.font-regular-8{font-family:Poppins-Regular,sans-serif;font-size:1.375rem}.font-medium-8{font-family:Poppins-Medium,sans-serif;font-size:1.375rem}.font-semibold-8{font-family:Poppins-Semibold,sans-serif;font-size:1.375rem}.font-bold-8{font-family:Poppins-Bold,sans-serif;font-size:1.375rem}.font-thin-9{font-family:Poppins-Thin,sans-serif;font-size:1.5rem}.font-light-9{font-family:Poppins-Light,sans-serif;font-size:1.5rem}.font-regular-9{font-family:Poppins-Regular,sans-serif;font-size:1.5rem}.font-medium-9{font-family:Poppins-Medium,sans-serif;font-size:1.5rem}.font-semibold-9{font-family:Poppins-Semibold,sans-serif;font-size:1.5rem}.font-bold-9{font-family:Poppins-Bold,sans-serif;font-size:1.5rem}.font-thin-10{font-family:Poppins-Thin,sans-serif;font-size:1.625rem}.font-light-10{font-family:Poppins-Light,sans-serif;font-size:1.625rem}.font-regular-10{font-family:Poppins-Regular,sans-serif;font-size:1.625rem}.font-medium-10{font-family:Poppins-Medium,sans-serif;font-size:1.625rem}.font-semibold-10{font-family:Poppins-Semibold,sans-serif;font-size:1.625rem}.font-bold-10{font-family:Poppins-Bold,sans-serif;font-size:1.625rem}.font-thin-11{font-family:Poppins-Thin,sans-serif;font-size:2.25rem}.font-light-11{font-family:Poppins-Light,sans-serif;font-size:2.25rem}.font-regular-11{font-family:Poppins-Regular,sans-serif;font-size:2.25rem}.font-medium-11{font-family:Poppins-Medium,sans-serif;font-size:2.25rem}.font-semibold-11{font-family:Poppins-Semibold,sans-serif;font-size:2.25rem}.font-bold-11{font-family:Poppins-Bold,sans-serif;font-size:2.25rem}.font-thin-12{font-family:Poppins-Thin,sans-serif;font-size:3rem}.font-light-12{font-family:Poppins-Light,sans-serif;font-size:3rem}.font-regular-12{font-family:Poppins-Regular,sans-serif;font-size:3rem}.font-medium-12{font-family:Poppins-Medium,sans-serif;font-size:3rem}.font-semibold-12{font-family:Poppins-Semibold,sans-serif;font-size:3rem}.font-bold-12{font-family:Poppins-Bold,sans-serif;font-size:3rem}.bmb_text-editor{border:.0625rem solid var(--general_contrasts-50);border-radius:var(--bmb-spacing-s);container-type:inline-size;display:flex;flex-flow:column}.bmb_text-editor-header{border-bottom:.0625rem solid var(--general_contrasts-50);padding:var(--bmb-spacing-s);display:flex;flex-wrap:nowrap;align-items:center;gap:var(--bmb-spacing-m);overflow:auto}.bmb_text-editor-header-select{background:transparent;border:0;cursor:pointer;color:var(--general_contrasts-100)}.bmb_text-editor-header-group{display:inline-flex;align-items:center;flex-wrap:nowrap}.bmb_text-editor-header-group:not(:last-child){padding-right:var(--bmb-spacing-m);border-right:.0625rem solid var(--general_contrasts-50)}.bmb_text-editor-content{padding:var(--bmb-spacing-s);background-color:var(--general_contrasts-input-background);min-height:100px;border-radius:0 0 var(--bmb-spacing-s) var(--bmb-spacing-s);flex:1}\n"], dependencies: [{ kind: "directive", type: BmbButtonDirective, selector: "[bmbButton]", inputs: ["icon", "iconSize", "position", "case", "appearance", "size", "isToggleActive", "enableButtonToggle", "isRounded", "isMobile", "iconAlt"] }, { kind: "component", type: BmbIconComponent, selector: "bmb-icon", inputs: ["icon", "materialIcon", "styleIcon", "isFill", "fontWeight", "size", "alt", "dotNotification"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
174
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BmbTextEditorComponent, deps: [{ token: i1.DomSanitizer }, { token: i2.BmbProjectionContentService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
175
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.12", type: BmbTextEditorComponent, isStandalone: true, selector: "bmb-text-editor", inputs: { control: { classPropertyName: "control", publicName: "control", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "editor", first: true, predicate: ["editor"], descendants: true }], ngImport: i0, template: "<section class=\"bmb_text-editor\">\n <header class=\"bmb_text-editor-header\">\n <span class=\"bmb_text-editor-header-group\">\n <select\n id=\"BmbTextEditorSelect\"\n class=\"bmb_text-editor-header-select\"\n (change)=\"handleChange($event, 'formatBlock')\"\n title=\"Estilo de p\u00E1rrafo\"\n >\n <option value=\"p\">P\u00E1rrafo</option>\n <option value=\"h1\">T\u00EDtulo 1</option>\n <option value=\"h2\">T\u00EDtulo 2</option>\n <option value=\"h3\">T\u00EDtulo 3</option>\n <option value=\"blockquote\">Cita</option>\n </select>\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"execCommand('bold')\"\n title=\"Negrita\"\n >\n <bmb-icon icon=\"format_bold\" [size]=\"24\" />\n </button>\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"execCommand('italic')\"\n title=\"Cursiva\"\n >\n <bmb-icon icon=\"format_italic\" [size]=\"24\" />\n </button>\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"execCommand('underline')\"\n title=\"Subrayado\"\n >\n <bmb-icon icon=\"format_underlined\" [size]=\"24\" />\n </button>\n <input\n id=\"BmbTextEditorColor\"\n type=\"color\"\n (change)=\"handleChange($event, 'foreColor')\"\n title=\"Color de texto\"\n />\n </span>\n\n <span class=\"bmb_text-editor-header-group\">\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"applyAlignment('left')\"\n [class.active]=\"currentAlignment === 'left'\"\n title=\"Alinear a la izquierda\"\n >\n <bmb-icon icon=\"format_align_left\" [size]=\"24\" />\n </button>\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"applyAlignment('center')\"\n [class.active]=\"currentAlignment === 'center'\"\n title=\"Centrar\"\n >\n <bmb-icon icon=\"format_align_center\" [size]=\"24\" />\n </button>\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"applyAlignment('right')\"\n [class.active]=\"currentAlignment === 'right'\"\n title=\"Alinear a la derecha\"\n >\n <bmb-icon icon=\"format_align_right\" [size]=\"24\" />\n </button>\n </span>\n\n <span class=\"bmb_text-editor-header-group\">\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"execCommand('insertOrderedList')\"\n title=\"Lista numerada\"\n >\n <bmb-icon icon=\"format_list_numbered\" [size]=\"24\" />\n </button>\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"execCommand('insertUnorderedList')\"\n title=\"Lista con vi\u00F1etas\"\n >\n <bmb-icon icon=\"format_list_bulleted\" [size]=\"24\" />\n </button>\n </span>\n\n <span class=\"bmb_text-editor-header-group\">\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"execCommand('indent')\"\n title=\"Aumentar sangr\u00EDa\"\n >\n <bmb-icon icon=\"format_indent_increase\" [size]=\"24\" />\n </button>\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"execCommand('outdent')\"\n title=\"Disminuir sangr\u00EDa\"\n >\n <bmb-icon icon=\"format_indent_decrease\" [size]=\"24\" />\n </button>\n </span>\n\n <span class=\"bmb_text-editor-header-group\">\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"openPrompt('link', $event)\"\n title=\"Insertar enlace\"\n >\n <bmb-icon icon=\"link\" [size]=\"24\" />\n </button>\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"openPrompt('image', $event)\"\n title=\"Insertar imagen\"\n >\n <bmb-icon icon=\"image\" [size]=\"24\" />\n </button>\n <!-- <button bmbButton appearance=\"transparent\" size=\"micro\" type=\"button\" (click)=\"openTableDialog()\" title=\"Insertar tabla\">\n <bmb-icon icon=\"table_chart\" [size]=\"24\"/>\n </button> -->\n </span>\n <span class=\"bmb_text-editor-header-group\">\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"clearFormatting()\"\n title=\"Limpiar formato\"\n >\n <bmb-icon icon=\"format_clear\" [size]=\"24\" />\n </button>\n </span>\n </header>\n\n <div\n class=\"bmb_text-editor-content\"\n #editor\n contenteditable=\"true\"\n (input)=\"updateContent()\"\n [innerHTML]=\"sanitizedContent()\"\n ></div>\n</section>\n\n<!-- Di\u00E1logo para definir filas y columnas -->\n<dialog class=\"dialog-overlay\" [open]=\"showTableDialog\">\n <div class=\"dialog\">\n <h3>Insertar tabla</h3>\n <label for=\"rows\">Filas:</label>\n <input type=\"number\" id=\"rows\" min=\"1\" max=\"10\" />\n\n <label for=\"columns\">Columnas:</label>\n <input type=\"number\" id=\"columns\" min=\"1\" max=\"10\" />\n\n <div class=\"dialog-buttons\">\n <button type=\"button\" (click)=\"insertTable()\">Insertar</button>\n <button type=\"button\" (click)=\"closeTableDialog()\">Cancelar</button>\n </div>\n </div>\n</dialog>\n", styles: ["@font-face{font-family:Poppins-Light;font-style:normal;font-weight:300;src:url(/assets/fonts/Poppins/Poppins-ExtraLight.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Regular;font-style:normal;font-weight:400;src:url(/assets/fonts/Poppins/Poppins-Regular.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Bold;font-style:normal;font-weight:700;src:url(/assets/fonts/Poppins/Poppins-Bold.ttf) format(\"truetype\")}:root,:host{--font-display: \"Poppins-Regular\", sans-serif}.font-thin-1{font-family:Poppins-Thin,sans-serif;font-size:.625rem}.font-light-1{font-family:Poppins-Light,sans-serif;font-size:.625rem}.font-regular-1{font-family:Poppins-Regular,sans-serif;font-size:.625rem}.font-medium-1{font-family:Poppins-Medium,sans-serif;font-size:.625rem}.font-semibold-1{font-family:Poppins-Semibold,sans-serif;font-size:.625rem}.font-bold-1{font-family:Poppins-Bold,sans-serif;font-size:.625rem}.font-thin-2{font-family:Poppins-Thin,sans-serif;font-size:.6875rem}.font-light-2{font-family:Poppins-Light,sans-serif;font-size:.6875rem}.font-regular-2{font-family:Poppins-Regular,sans-serif;font-size:.6875rem}.font-medium-2{font-family:Poppins-Medium,sans-serif;font-size:.6875rem}.font-semibold-2{font-family:Poppins-Semibold,sans-serif;font-size:.6875rem}.font-bold-2{font-family:Poppins-Bold,sans-serif;font-size:.6875rem}.font-thin-3{font-family:Poppins-Thin,sans-serif;font-size:.75rem}.font-light-3{font-family:Poppins-Light,sans-serif;font-size:.75rem}.font-regular-3{font-family:Poppins-Regular,sans-serif;font-size:.75rem}.font-medium-3{font-family:Poppins-Medium,sans-serif;font-size:.75rem}.font-semibold-3{font-family:Poppins-Semibold,sans-serif;font-size:.75rem}.font-bold-3{font-family:Poppins-Bold,sans-serif;font-size:.75rem}.font-thin-4{font-family:Poppins-Thin,sans-serif;font-size:.875rem}.font-light-4{font-family:Poppins-Light,sans-serif;font-size:.875rem}.font-regular-4{font-family:Poppins-Regular,sans-serif;font-size:.875rem}.font-medium-4{font-family:Poppins-Medium,sans-serif;font-size:.875rem}.font-semibold-4{font-family:Poppins-Semibold,sans-serif;font-size:.875rem}.font-bold-4{font-family:Poppins-Bold,sans-serif;font-size:.875rem}.font-thin-4_5{font-family:Poppins-Thin,sans-serif;font-size:.9375rem}.font-light-4_5{font-family:Poppins-Light,sans-serif;font-size:.9375rem}.font-regular-4_5{font-family:Poppins-Regular,sans-serif;font-size:.9375rem}.font-medium-4_5{font-family:Poppins-Medium,sans-serif;font-size:.9375rem}.font-semibold-4_5{font-family:Poppins-Semibold,sans-serif;font-size:.9375rem}.font-bold-4_5{font-family:Poppins-Bold,sans-serif;font-size:.9375rem}.font-thin-5{font-family:Poppins-Thin,sans-serif;font-size:1rem}.font-light-5{font-family:Poppins-Light,sans-serif;font-size:1rem}.font-regular-5{font-family:Poppins-Regular,sans-serif;font-size:1rem}.font-medium-5{font-family:Poppins-Medium,sans-serif;font-size:1rem}.font-semibold-5{font-family:Poppins-Semibold,sans-serif;font-size:1rem}.font-bold-5{font-family:Poppins-Bold,sans-serif;font-size:1rem}.font-thin-6{font-family:Poppins-Thin,sans-serif;font-size:1.125rem}.font-light-6{font-family:Poppins-Light,sans-serif;font-size:1.125rem}.font-regular-6{font-family:Poppins-Regular,sans-serif;font-size:1.125rem}.font-medium-6{font-family:Poppins-Medium,sans-serif;font-size:1.125rem}.font-semibold-6{font-family:Poppins-Semibold,sans-serif;font-size:1.125rem}.font-bold-6{font-family:Poppins-Bold,sans-serif;font-size:1.125rem}.font-thin-7{font-family:Poppins-Thin,sans-serif;font-size:1.25rem}.font-light-7{font-family:Poppins-Light,sans-serif;font-size:1.25rem}.font-regular-7{font-family:Poppins-Regular,sans-serif;font-size:1.25rem}.font-medium-7{font-family:Poppins-Medium,sans-serif;font-size:1.25rem}.font-semibold-7{font-family:Poppins-Semibold,sans-serif;font-size:1.25rem}.font-bold-7{font-family:Poppins-Bold,sans-serif;font-size:1.25rem}.font-thin-8{font-family:Poppins-Thin,sans-serif;font-size:1.375rem}.font-light-8{font-family:Poppins-Light,sans-serif;font-size:1.375rem}.font-regular-8{font-family:Poppins-Regular,sans-serif;font-size:1.375rem}.font-medium-8{font-family:Poppins-Medium,sans-serif;font-size:1.375rem}.font-semibold-8{font-family:Poppins-Semibold,sans-serif;font-size:1.375rem}.font-bold-8{font-family:Poppins-Bold,sans-serif;font-size:1.375rem}.font-thin-9{font-family:Poppins-Thin,sans-serif;font-size:1.5rem}.font-light-9{font-family:Poppins-Light,sans-serif;font-size:1.5rem}.font-regular-9{font-family:Poppins-Regular,sans-serif;font-size:1.5rem}.font-medium-9{font-family:Poppins-Medium,sans-serif;font-size:1.5rem}.font-semibold-9{font-family:Poppins-Semibold,sans-serif;font-size:1.5rem}.font-bold-9{font-family:Poppins-Bold,sans-serif;font-size:1.5rem}.font-thin-10{font-family:Poppins-Thin,sans-serif;font-size:1.625rem}.font-light-10{font-family:Poppins-Light,sans-serif;font-size:1.625rem}.font-regular-10{font-family:Poppins-Regular,sans-serif;font-size:1.625rem}.font-medium-10{font-family:Poppins-Medium,sans-serif;font-size:1.625rem}.font-semibold-10{font-family:Poppins-Semibold,sans-serif;font-size:1.625rem}.font-bold-10{font-family:Poppins-Bold,sans-serif;font-size:1.625rem}.font-thin-11{font-family:Poppins-Thin,sans-serif;font-size:2.25rem}.font-light-11{font-family:Poppins-Light,sans-serif;font-size:2.25rem}.font-regular-11{font-family:Poppins-Regular,sans-serif;font-size:2.25rem}.font-medium-11{font-family:Poppins-Medium,sans-serif;font-size:2.25rem}.font-semibold-11{font-family:Poppins-Semibold,sans-serif;font-size:2.25rem}.font-bold-11{font-family:Poppins-Bold,sans-serif;font-size:2.25rem}.font-thin-12{font-family:Poppins-Thin,sans-serif;font-size:3rem}.font-light-12{font-family:Poppins-Light,sans-serif;font-size:3rem}.font-regular-12{font-family:Poppins-Regular,sans-serif;font-size:3rem}.font-medium-12{font-family:Poppins-Medium,sans-serif;font-size:3rem}.font-semibold-12{font-family:Poppins-Semibold,sans-serif;font-size:3rem}.font-bold-12{font-family:Poppins-Bold,sans-serif;font-size:3rem}.bmb_text-editor{border:.0625rem solid var(--general_contrasts-50);border-radius:var(--bmb-spacing-s);container-type:inline-size;display:flex;flex-flow:column}.bmb_text-editor-header{border-bottom:.0625rem solid var(--general_contrasts-50);padding:var(--bmb-spacing-s);display:flex;flex-wrap:nowrap;align-items:center;gap:var(--bmb-spacing-m);overflow:auto}.bmb_text-editor-header-select{background:transparent;border:0;cursor:pointer;color:var(--general_contrasts-100)}.bmb_text-editor-header-group{display:inline-flex;align-items:center;flex-wrap:nowrap}.bmb_text-editor-header-group:not(:last-child){padding-right:var(--bmb-spacing-m);border-right:.0625rem solid var(--general_contrasts-50)}.bmb_text-editor-content{padding:var(--bmb-spacing-s);background-color:var(--general_contrasts-input-background);min-height:100px;border-radius:0 0 var(--bmb-spacing-s) var(--bmb-spacing-s);flex:1}\n"], dependencies: [{ kind: "directive", type: BmbButtonDirective, selector: "[bmbButton]", inputs: ["icon", "iconSize", "position", "case", "appearance", "size", "isToggleActive", "enableButtonToggle", "isRounded", "isMobile", "iconAlt"] }, { kind: "component", type: BmbIconComponent, selector: "bmb-icon", inputs: ["icon", "materialIcon", "styleIcon", "isFill", "fontWeight", "size", "alt", "dotNotification"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
134
176
|
}
|
|
135
177
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BmbTextEditorComponent, decorators: [{
|
|
136
178
|
type: Component,
|
|
137
|
-
args: [{ selector: 'bmb-text-editor', standalone: true, imports: [BmbButtonDirective, BmbIconComponent], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<section class=\"bmb_text-editor\">\n <header class=\"bmb_text-editor-header\">\n <span class=\"bmb_text-editor-header-group\">\n <select\n id=\"BmbTextEditorSelect\"\n class=\"bmb_text-editor-header-select\"\n (change)=\"handleChange($event, 'formatBlock')\"\n title=\"Estilo de p\u00E1rrafo\"\n >\n <option value=\"p\">P\u00E1rrafo</option>\n <option value=\"h1\">T\u00EDtulo 1</option>\n <option value=\"h2\">T\u00EDtulo 2</option>\n <option value=\"h3\">T\u00EDtulo 3</option>\n <option value=\"blockquote\">Cita</option>\n </select>\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"execCommand('bold')\"\n title=\"Negrita\"\n >\n <bmb-icon icon=\"format_bold\" [size]=\"24\" />\n </button>\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"execCommand('italic')\"\n title=\"Cursiva\"\n >\n <bmb-icon icon=\"format_italic\" [size]=\"24\" />\n </button>\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"execCommand('underline')\"\n title=\"Subrayado\"\n >\n <bmb-icon icon=\"format_underlined\" [size]=\"24\" />\n </button>\n <input\n id=\"BmbTextEditorColor\"\n type=\"color\"\n (change)=\"handleChange($event, 'foreColor')\"\n title=\"Color de texto\"\n />\n </span>\n\n <span class=\"bmb_text-editor-header-group\">\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"applyAlignment('left')\"\n [class.active]=\"currentAlignment === 'left'\"\n title=\"Alinear a la izquierda\"\n >\n <bmb-icon icon=\"format_align_left\" [size]=\"24\" />\n </button>\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"applyAlignment('center')\"\n [class.active]=\"currentAlignment === 'center'\"\n title=\"Centrar\"\n >\n <bmb-icon icon=\"format_align_center\" [size]=\"24\" />\n </button>\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"applyAlignment('right')\"\n [class.active]=\"currentAlignment === 'right'\"\n title=\"Alinear a la derecha\"\n >\n <bmb-icon icon=\"format_align_right\" [size]=\"24\" />\n </button>\n </span>\n\n <span class=\"bmb_text-editor-header-group\">\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"execCommand('insertOrderedList')\"\n title=\"Lista numerada\"\n >\n <bmb-icon icon=\"format_list_numbered\" [size]=\"24\" />\n </button>\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"execCommand('insertUnorderedList')\"\n title=\"Lista con vi\u00F1etas\"\n >\n <bmb-icon icon=\"format_list_bulleted\" [size]=\"24\" />\n </button>\n </span>\n\n <span class=\"bmb_text-editor-header-group\">\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"execCommand('indent')\"\n title=\"Aumentar sangr\u00EDa\"\n >\n <bmb-icon icon=\"format_indent_increase\" [size]=\"24\" />\n </button>\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"execCommand('outdent')\"\n title=\"Disminuir sangr\u00EDa\"\n >\n <bmb-icon icon=\"format_indent_decrease\" [size]=\"24\" />\n </button>\n </span>\n\n <span class=\"bmb_text-editor-header-group\">\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"insertLink()\"\n title=\"Insertar enlace\"\n >\n <bmb-icon icon=\"link\" [size]=\"24\" />\n </button>\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"insertImage()\"\n title=\"Insertar imagen\"\n >\n <bmb-icon icon=\"image\" [size]=\"24\" />\n </button>\n <!-- <button bmbButton appearance=\"transparent\" size=\"micro\" type=\"button\" (click)=\"openTableDialog()\" title=\"Insertar tabla\">\n <bmb-icon icon=\"table_chart\" [size]=\"24\"/>\n </button> -->\n </span>\n <span class=\"bmb_text-editor-header-group\">\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"clearFormatting()\"\n title=\"Limpiar formato\"\n >\n <bmb-icon icon=\"format_clear\" [size]=\"24\" />\n </button>\n </span>\n </header>\n\n <div\n class=\"bmb_text-editor-content\"\n #editor\n contenteditable=\"true\"\n (input)=\"updateContent()\"\n [innerHTML]=\"sanitizedContent()\"\n ></div>\n</section>\n\n<!-- Di\u00E1logo para definir filas y columnas -->\n<dialog class=\"dialog-overlay\" [open]=\"showTableDialog\">\n <div class=\"dialog\">\n <h3>Insertar tabla</h3>\n <label for=\"rows\">Filas:</label>\n <input type=\"number\" id=\"rows\" min=\"1\" max=\"10\" />\n\n <label for=\"columns\">Columnas:</label>\n <input type=\"number\" id=\"columns\" min=\"1\" max=\"10\" />\n\n <div class=\"dialog-buttons\">\n <button type=\"button\" (click)=\"insertTable()\">Insertar</button>\n <button type=\"button\" (click)=\"closeTableDialog()\">Cancelar</button>\n </div>\n </div>\n</dialog>\n", styles: ["@font-face{font-family:Poppins-Light;font-style:normal;font-weight:300;src:url(/assets/fonts/Poppins/Poppins-ExtraLight.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Regular;font-style:normal;font-weight:400;src:url(/assets/fonts/Poppins/Poppins-Regular.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Bold;font-style:normal;font-weight:700;src:url(/assets/fonts/Poppins/Poppins-Bold.ttf) format(\"truetype\")}:root,:host{--font-display: \"Poppins-Regular\", sans-serif}.font-thin-1{font-family:Poppins-Thin,sans-serif;font-size:.625rem}.font-light-1{font-family:Poppins-Light,sans-serif;font-size:.625rem}.font-regular-1{font-family:Poppins-Regular,sans-serif;font-size:.625rem}.font-medium-1{font-family:Poppins-Medium,sans-serif;font-size:.625rem}.font-semibold-1{font-family:Poppins-Semibold,sans-serif;font-size:.625rem}.font-bold-1{font-family:Poppins-Bold,sans-serif;font-size:.625rem}.font-thin-2{font-family:Poppins-Thin,sans-serif;font-size:.6875rem}.font-light-2{font-family:Poppins-Light,sans-serif;font-size:.6875rem}.font-regular-2{font-family:Poppins-Regular,sans-serif;font-size:.6875rem}.font-medium-2{font-family:Poppins-Medium,sans-serif;font-size:.6875rem}.font-semibold-2{font-family:Poppins-Semibold,sans-serif;font-size:.6875rem}.font-bold-2{font-family:Poppins-Bold,sans-serif;font-size:.6875rem}.font-thin-3{font-family:Poppins-Thin,sans-serif;font-size:.75rem}.font-light-3{font-family:Poppins-Light,sans-serif;font-size:.75rem}.font-regular-3{font-family:Poppins-Regular,sans-serif;font-size:.75rem}.font-medium-3{font-family:Poppins-Medium,sans-serif;font-size:.75rem}.font-semibold-3{font-family:Poppins-Semibold,sans-serif;font-size:.75rem}.font-bold-3{font-family:Poppins-Bold,sans-serif;font-size:.75rem}.font-thin-4{font-family:Poppins-Thin,sans-serif;font-size:.875rem}.font-light-4{font-family:Poppins-Light,sans-serif;font-size:.875rem}.font-regular-4{font-family:Poppins-Regular,sans-serif;font-size:.875rem}.font-medium-4{font-family:Poppins-Medium,sans-serif;font-size:.875rem}.font-semibold-4{font-family:Poppins-Semibold,sans-serif;font-size:.875rem}.font-bold-4{font-family:Poppins-Bold,sans-serif;font-size:.875rem}.font-thin-4_5{font-family:Poppins-Thin,sans-serif;font-size:.9375rem}.font-light-4_5{font-family:Poppins-Light,sans-serif;font-size:.9375rem}.font-regular-4_5{font-family:Poppins-Regular,sans-serif;font-size:.9375rem}.font-medium-4_5{font-family:Poppins-Medium,sans-serif;font-size:.9375rem}.font-semibold-4_5{font-family:Poppins-Semibold,sans-serif;font-size:.9375rem}.font-bold-4_5{font-family:Poppins-Bold,sans-serif;font-size:.9375rem}.font-thin-5{font-family:Poppins-Thin,sans-serif;font-size:1rem}.font-light-5{font-family:Poppins-Light,sans-serif;font-size:1rem}.font-regular-5{font-family:Poppins-Regular,sans-serif;font-size:1rem}.font-medium-5{font-family:Poppins-Medium,sans-serif;font-size:1rem}.font-semibold-5{font-family:Poppins-Semibold,sans-serif;font-size:1rem}.font-bold-5{font-family:Poppins-Bold,sans-serif;font-size:1rem}.font-thin-6{font-family:Poppins-Thin,sans-serif;font-size:1.125rem}.font-light-6{font-family:Poppins-Light,sans-serif;font-size:1.125rem}.font-regular-6{font-family:Poppins-Regular,sans-serif;font-size:1.125rem}.font-medium-6{font-family:Poppins-Medium,sans-serif;font-size:1.125rem}.font-semibold-6{font-family:Poppins-Semibold,sans-serif;font-size:1.125rem}.font-bold-6{font-family:Poppins-Bold,sans-serif;font-size:1.125rem}.font-thin-7{font-family:Poppins-Thin,sans-serif;font-size:1.25rem}.font-light-7{font-family:Poppins-Light,sans-serif;font-size:1.25rem}.font-regular-7{font-family:Poppins-Regular,sans-serif;font-size:1.25rem}.font-medium-7{font-family:Poppins-Medium,sans-serif;font-size:1.25rem}.font-semibold-7{font-family:Poppins-Semibold,sans-serif;font-size:1.25rem}.font-bold-7{font-family:Poppins-Bold,sans-serif;font-size:1.25rem}.font-thin-8{font-family:Poppins-Thin,sans-serif;font-size:1.375rem}.font-light-8{font-family:Poppins-Light,sans-serif;font-size:1.375rem}.font-regular-8{font-family:Poppins-Regular,sans-serif;font-size:1.375rem}.font-medium-8{font-family:Poppins-Medium,sans-serif;font-size:1.375rem}.font-semibold-8{font-family:Poppins-Semibold,sans-serif;font-size:1.375rem}.font-bold-8{font-family:Poppins-Bold,sans-serif;font-size:1.375rem}.font-thin-9{font-family:Poppins-Thin,sans-serif;font-size:1.5rem}.font-light-9{font-family:Poppins-Light,sans-serif;font-size:1.5rem}.font-regular-9{font-family:Poppins-Regular,sans-serif;font-size:1.5rem}.font-medium-9{font-family:Poppins-Medium,sans-serif;font-size:1.5rem}.font-semibold-9{font-family:Poppins-Semibold,sans-serif;font-size:1.5rem}.font-bold-9{font-family:Poppins-Bold,sans-serif;font-size:1.5rem}.font-thin-10{font-family:Poppins-Thin,sans-serif;font-size:1.625rem}.font-light-10{font-family:Poppins-Light,sans-serif;font-size:1.625rem}.font-regular-10{font-family:Poppins-Regular,sans-serif;font-size:1.625rem}.font-medium-10{font-family:Poppins-Medium,sans-serif;font-size:1.625rem}.font-semibold-10{font-family:Poppins-Semibold,sans-serif;font-size:1.625rem}.font-bold-10{font-family:Poppins-Bold,sans-serif;font-size:1.625rem}.font-thin-11{font-family:Poppins-Thin,sans-serif;font-size:2.25rem}.font-light-11{font-family:Poppins-Light,sans-serif;font-size:2.25rem}.font-regular-11{font-family:Poppins-Regular,sans-serif;font-size:2.25rem}.font-medium-11{font-family:Poppins-Medium,sans-serif;font-size:2.25rem}.font-semibold-11{font-family:Poppins-Semibold,sans-serif;font-size:2.25rem}.font-bold-11{font-family:Poppins-Bold,sans-serif;font-size:2.25rem}.font-thin-12{font-family:Poppins-Thin,sans-serif;font-size:3rem}.font-light-12{font-family:Poppins-Light,sans-serif;font-size:3rem}.font-regular-12{font-family:Poppins-Regular,sans-serif;font-size:3rem}.font-medium-12{font-family:Poppins-Medium,sans-serif;font-size:3rem}.font-semibold-12{font-family:Poppins-Semibold,sans-serif;font-size:3rem}.font-bold-12{font-family:Poppins-Bold,sans-serif;font-size:3rem}.bmb_text-editor{border:.0625rem solid var(--general_contrasts-50);border-radius:var(--bmb-spacing-s);container-type:inline-size;display:flex;flex-flow:column}.bmb_text-editor-header{border-bottom:.0625rem solid var(--general_contrasts-50);padding:var(--bmb-spacing-s);display:flex;flex-wrap:nowrap;align-items:center;gap:var(--bmb-spacing-m);overflow:auto}.bmb_text-editor-header-select{background:transparent;border:0;cursor:pointer;color:var(--general_contrasts-100)}.bmb_text-editor-header-group{display:inline-flex;align-items:center;flex-wrap:nowrap}.bmb_text-editor-header-group:not(:last-child){padding-right:var(--bmb-spacing-m);border-right:.0625rem solid var(--general_contrasts-50)}.bmb_text-editor-content{padding:var(--bmb-spacing-s);background-color:var(--general_contrasts-input-background);min-height:100px;border-radius:0 0 var(--bmb-spacing-s) var(--bmb-spacing-s);flex:1}\n"] }]
|
|
138
|
-
}], ctorParameters: () => [{ type: i1.DomSanitizer }], propDecorators: { editor: [{
|
|
179
|
+
args: [{ selector: 'bmb-text-editor', standalone: true, imports: [BmbButtonDirective, BmbIconComponent], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<section class=\"bmb_text-editor\">\n <header class=\"bmb_text-editor-header\">\n <span class=\"bmb_text-editor-header-group\">\n <select\n id=\"BmbTextEditorSelect\"\n class=\"bmb_text-editor-header-select\"\n (change)=\"handleChange($event, 'formatBlock')\"\n title=\"Estilo de p\u00E1rrafo\"\n >\n <option value=\"p\">P\u00E1rrafo</option>\n <option value=\"h1\">T\u00EDtulo 1</option>\n <option value=\"h2\">T\u00EDtulo 2</option>\n <option value=\"h3\">T\u00EDtulo 3</option>\n <option value=\"blockquote\">Cita</option>\n </select>\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"execCommand('bold')\"\n title=\"Negrita\"\n >\n <bmb-icon icon=\"format_bold\" [size]=\"24\" />\n </button>\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"execCommand('italic')\"\n title=\"Cursiva\"\n >\n <bmb-icon icon=\"format_italic\" [size]=\"24\" />\n </button>\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"execCommand('underline')\"\n title=\"Subrayado\"\n >\n <bmb-icon icon=\"format_underlined\" [size]=\"24\" />\n </button>\n <input\n id=\"BmbTextEditorColor\"\n type=\"color\"\n (change)=\"handleChange($event, 'foreColor')\"\n title=\"Color de texto\"\n />\n </span>\n\n <span class=\"bmb_text-editor-header-group\">\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"applyAlignment('left')\"\n [class.active]=\"currentAlignment === 'left'\"\n title=\"Alinear a la izquierda\"\n >\n <bmb-icon icon=\"format_align_left\" [size]=\"24\" />\n </button>\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"applyAlignment('center')\"\n [class.active]=\"currentAlignment === 'center'\"\n title=\"Centrar\"\n >\n <bmb-icon icon=\"format_align_center\" [size]=\"24\" />\n </button>\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"applyAlignment('right')\"\n [class.active]=\"currentAlignment === 'right'\"\n title=\"Alinear a la derecha\"\n >\n <bmb-icon icon=\"format_align_right\" [size]=\"24\" />\n </button>\n </span>\n\n <span class=\"bmb_text-editor-header-group\">\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"execCommand('insertOrderedList')\"\n title=\"Lista numerada\"\n >\n <bmb-icon icon=\"format_list_numbered\" [size]=\"24\" />\n </button>\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"execCommand('insertUnorderedList')\"\n title=\"Lista con vi\u00F1etas\"\n >\n <bmb-icon icon=\"format_list_bulleted\" [size]=\"24\" />\n </button>\n </span>\n\n <span class=\"bmb_text-editor-header-group\">\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"execCommand('indent')\"\n title=\"Aumentar sangr\u00EDa\"\n >\n <bmb-icon icon=\"format_indent_increase\" [size]=\"24\" />\n </button>\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"execCommand('outdent')\"\n title=\"Disminuir sangr\u00EDa\"\n >\n <bmb-icon icon=\"format_indent_decrease\" [size]=\"24\" />\n </button>\n </span>\n\n <span class=\"bmb_text-editor-header-group\">\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"openPrompt('link', $event)\"\n title=\"Insertar enlace\"\n >\n <bmb-icon icon=\"link\" [size]=\"24\" />\n </button>\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"openPrompt('image', $event)\"\n title=\"Insertar imagen\"\n >\n <bmb-icon icon=\"image\" [size]=\"24\" />\n </button>\n <!-- <button bmbButton appearance=\"transparent\" size=\"micro\" type=\"button\" (click)=\"openTableDialog()\" title=\"Insertar tabla\">\n <bmb-icon icon=\"table_chart\" [size]=\"24\"/>\n </button> -->\n </span>\n <span class=\"bmb_text-editor-header-group\">\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"clearFormatting()\"\n title=\"Limpiar formato\"\n >\n <bmb-icon icon=\"format_clear\" [size]=\"24\" />\n </button>\n </span>\n </header>\n\n <div\n class=\"bmb_text-editor-content\"\n #editor\n contenteditable=\"true\"\n (input)=\"updateContent()\"\n [innerHTML]=\"sanitizedContent()\"\n ></div>\n</section>\n\n<!-- Di\u00E1logo para definir filas y columnas -->\n<dialog class=\"dialog-overlay\" [open]=\"showTableDialog\">\n <div class=\"dialog\">\n <h3>Insertar tabla</h3>\n <label for=\"rows\">Filas:</label>\n <input type=\"number\" id=\"rows\" min=\"1\" max=\"10\" />\n\n <label for=\"columns\">Columnas:</label>\n <input type=\"number\" id=\"columns\" min=\"1\" max=\"10\" />\n\n <div class=\"dialog-buttons\">\n <button type=\"button\" (click)=\"insertTable()\">Insertar</button>\n <button type=\"button\" (click)=\"closeTableDialog()\">Cancelar</button>\n </div>\n </div>\n</dialog>\n", styles: ["@font-face{font-family:Poppins-Light;font-style:normal;font-weight:300;src:url(/assets/fonts/Poppins/Poppins-ExtraLight.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Regular;font-style:normal;font-weight:400;src:url(/assets/fonts/Poppins/Poppins-Regular.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Bold;font-style:normal;font-weight:700;src:url(/assets/fonts/Poppins/Poppins-Bold.ttf) format(\"truetype\")}:root,:host{--font-display: \"Poppins-Regular\", sans-serif}.font-thin-1{font-family:Poppins-Thin,sans-serif;font-size:.625rem}.font-light-1{font-family:Poppins-Light,sans-serif;font-size:.625rem}.font-regular-1{font-family:Poppins-Regular,sans-serif;font-size:.625rem}.font-medium-1{font-family:Poppins-Medium,sans-serif;font-size:.625rem}.font-semibold-1{font-family:Poppins-Semibold,sans-serif;font-size:.625rem}.font-bold-1{font-family:Poppins-Bold,sans-serif;font-size:.625rem}.font-thin-2{font-family:Poppins-Thin,sans-serif;font-size:.6875rem}.font-light-2{font-family:Poppins-Light,sans-serif;font-size:.6875rem}.font-regular-2{font-family:Poppins-Regular,sans-serif;font-size:.6875rem}.font-medium-2{font-family:Poppins-Medium,sans-serif;font-size:.6875rem}.font-semibold-2{font-family:Poppins-Semibold,sans-serif;font-size:.6875rem}.font-bold-2{font-family:Poppins-Bold,sans-serif;font-size:.6875rem}.font-thin-3{font-family:Poppins-Thin,sans-serif;font-size:.75rem}.font-light-3{font-family:Poppins-Light,sans-serif;font-size:.75rem}.font-regular-3{font-family:Poppins-Regular,sans-serif;font-size:.75rem}.font-medium-3{font-family:Poppins-Medium,sans-serif;font-size:.75rem}.font-semibold-3{font-family:Poppins-Semibold,sans-serif;font-size:.75rem}.font-bold-3{font-family:Poppins-Bold,sans-serif;font-size:.75rem}.font-thin-4{font-family:Poppins-Thin,sans-serif;font-size:.875rem}.font-light-4{font-family:Poppins-Light,sans-serif;font-size:.875rem}.font-regular-4{font-family:Poppins-Regular,sans-serif;font-size:.875rem}.font-medium-4{font-family:Poppins-Medium,sans-serif;font-size:.875rem}.font-semibold-4{font-family:Poppins-Semibold,sans-serif;font-size:.875rem}.font-bold-4{font-family:Poppins-Bold,sans-serif;font-size:.875rem}.font-thin-4_5{font-family:Poppins-Thin,sans-serif;font-size:.9375rem}.font-light-4_5{font-family:Poppins-Light,sans-serif;font-size:.9375rem}.font-regular-4_5{font-family:Poppins-Regular,sans-serif;font-size:.9375rem}.font-medium-4_5{font-family:Poppins-Medium,sans-serif;font-size:.9375rem}.font-semibold-4_5{font-family:Poppins-Semibold,sans-serif;font-size:.9375rem}.font-bold-4_5{font-family:Poppins-Bold,sans-serif;font-size:.9375rem}.font-thin-5{font-family:Poppins-Thin,sans-serif;font-size:1rem}.font-light-5{font-family:Poppins-Light,sans-serif;font-size:1rem}.font-regular-5{font-family:Poppins-Regular,sans-serif;font-size:1rem}.font-medium-5{font-family:Poppins-Medium,sans-serif;font-size:1rem}.font-semibold-5{font-family:Poppins-Semibold,sans-serif;font-size:1rem}.font-bold-5{font-family:Poppins-Bold,sans-serif;font-size:1rem}.font-thin-6{font-family:Poppins-Thin,sans-serif;font-size:1.125rem}.font-light-6{font-family:Poppins-Light,sans-serif;font-size:1.125rem}.font-regular-6{font-family:Poppins-Regular,sans-serif;font-size:1.125rem}.font-medium-6{font-family:Poppins-Medium,sans-serif;font-size:1.125rem}.font-semibold-6{font-family:Poppins-Semibold,sans-serif;font-size:1.125rem}.font-bold-6{font-family:Poppins-Bold,sans-serif;font-size:1.125rem}.font-thin-7{font-family:Poppins-Thin,sans-serif;font-size:1.25rem}.font-light-7{font-family:Poppins-Light,sans-serif;font-size:1.25rem}.font-regular-7{font-family:Poppins-Regular,sans-serif;font-size:1.25rem}.font-medium-7{font-family:Poppins-Medium,sans-serif;font-size:1.25rem}.font-semibold-7{font-family:Poppins-Semibold,sans-serif;font-size:1.25rem}.font-bold-7{font-family:Poppins-Bold,sans-serif;font-size:1.25rem}.font-thin-8{font-family:Poppins-Thin,sans-serif;font-size:1.375rem}.font-light-8{font-family:Poppins-Light,sans-serif;font-size:1.375rem}.font-regular-8{font-family:Poppins-Regular,sans-serif;font-size:1.375rem}.font-medium-8{font-family:Poppins-Medium,sans-serif;font-size:1.375rem}.font-semibold-8{font-family:Poppins-Semibold,sans-serif;font-size:1.375rem}.font-bold-8{font-family:Poppins-Bold,sans-serif;font-size:1.375rem}.font-thin-9{font-family:Poppins-Thin,sans-serif;font-size:1.5rem}.font-light-9{font-family:Poppins-Light,sans-serif;font-size:1.5rem}.font-regular-9{font-family:Poppins-Regular,sans-serif;font-size:1.5rem}.font-medium-9{font-family:Poppins-Medium,sans-serif;font-size:1.5rem}.font-semibold-9{font-family:Poppins-Semibold,sans-serif;font-size:1.5rem}.font-bold-9{font-family:Poppins-Bold,sans-serif;font-size:1.5rem}.font-thin-10{font-family:Poppins-Thin,sans-serif;font-size:1.625rem}.font-light-10{font-family:Poppins-Light,sans-serif;font-size:1.625rem}.font-regular-10{font-family:Poppins-Regular,sans-serif;font-size:1.625rem}.font-medium-10{font-family:Poppins-Medium,sans-serif;font-size:1.625rem}.font-semibold-10{font-family:Poppins-Semibold,sans-serif;font-size:1.625rem}.font-bold-10{font-family:Poppins-Bold,sans-serif;font-size:1.625rem}.font-thin-11{font-family:Poppins-Thin,sans-serif;font-size:2.25rem}.font-light-11{font-family:Poppins-Light,sans-serif;font-size:2.25rem}.font-regular-11{font-family:Poppins-Regular,sans-serif;font-size:2.25rem}.font-medium-11{font-family:Poppins-Medium,sans-serif;font-size:2.25rem}.font-semibold-11{font-family:Poppins-Semibold,sans-serif;font-size:2.25rem}.font-bold-11{font-family:Poppins-Bold,sans-serif;font-size:2.25rem}.font-thin-12{font-family:Poppins-Thin,sans-serif;font-size:3rem}.font-light-12{font-family:Poppins-Light,sans-serif;font-size:3rem}.font-regular-12{font-family:Poppins-Regular,sans-serif;font-size:3rem}.font-medium-12{font-family:Poppins-Medium,sans-serif;font-size:3rem}.font-semibold-12{font-family:Poppins-Semibold,sans-serif;font-size:3rem}.font-bold-12{font-family:Poppins-Bold,sans-serif;font-size:3rem}.bmb_text-editor{border:.0625rem solid var(--general_contrasts-50);border-radius:var(--bmb-spacing-s);container-type:inline-size;display:flex;flex-flow:column}.bmb_text-editor-header{border-bottom:.0625rem solid var(--general_contrasts-50);padding:var(--bmb-spacing-s);display:flex;flex-wrap:nowrap;align-items:center;gap:var(--bmb-spacing-m);overflow:auto}.bmb_text-editor-header-select{background:transparent;border:0;cursor:pointer;color:var(--general_contrasts-100)}.bmb_text-editor-header-group{display:inline-flex;align-items:center;flex-wrap:nowrap}.bmb_text-editor-header-group:not(:last-child){padding-right:var(--bmb-spacing-m);border-right:.0625rem solid var(--general_contrasts-50)}.bmb_text-editor-content{padding:var(--bmb-spacing-s);background-color:var(--general_contrasts-input-background);min-height:100px;border-radius:0 0 var(--bmb-spacing-s) var(--bmb-spacing-s);flex:1}\n"] }]
|
|
180
|
+
}], ctorParameters: () => [{ type: i1.DomSanitizer }, { type: i2.BmbProjectionContentService }], propDecorators: { editor: [{
|
|
139
181
|
type: ViewChild,
|
|
140
182
|
args: ['editor']
|
|
141
183
|
}] } });
|
|
142
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm1iLXRleHQtZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RzLW5nL3NyYy9saWIvY29tcG9uZW50cy9ibWItdGV4dC1lZGl0b3IvYm1iLXRleHQtZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RzLW5nL3NyYy9saWIvY29tcG9uZW50cy9ibWItdGV4dC1lZGl0b3IvYm1iLXRleHQtZWRpdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDbEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7OztBQVdsRSxNQUFNLE9BQU8sc0JBQXNCO0lBV2pDLGVBQWU7UUFDYixNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDeEMsSUFBSSxTQUFTLElBQUksU0FBUyxDQUFDLFVBQVUsR0FBRyxDQUFDLEVBQUU7WUFDekMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7aUJBQ3BDLHVCQUFzQyxDQUFDO1lBQzFDLE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUM7WUFFNUMsSUFBSSxhQUFhLEVBQUU7Z0JBQ2pCLE1BQU0sU0FBUyxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUMsU0FBUyxJQUFJLE1BQU0sQ0FBQztnQkFDMUQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFNBQVMsQ0FBQzthQUNu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Q0FBQztZQUNwQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUNoQyxTQUFTLElBQUksK0RBQStELENBQUM7YUFDOUU7WUFDRCxTQUFTLElBQUksT0FBTyxDQUFDO1NBQ3RCO1FBQ0QsU0FBUyxJQUFJLFVBQVUsQ0FBQztRQUN4QixPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQseUNBQXlDO0lBQ3pDLFVBQVUsQ0FBQyxJQUFZO1FBQ3JCLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN4QyxJQUFJLFNBQVMsSUFBSSxTQUFTLENBQUMsVUFBVSxHQUFHLENBQUMsRUFBRTtZQUN6QyxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3RDLE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDMUMsR0FBRyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDckIsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN0QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDdEI7SUFDSCxDQUFDOytHQXBKVSxzQkFBc0I7bUdBQXRCLHNCQUFzQix1VEN6Qm5DLHc2TEF1TUEsMnhORHBMWSxrQkFBa0IsNE1BQUUsZ0JBQWdCOzs0RkFNbkMsc0JBQXNCO2tCQVRsQyxTQUFTOytCQUNFLGlCQUFpQixjQUNmLElBQUksV0FDUCxDQUFDLGtCQUFrQixFQUFFLGdCQUFnQixDQUFDLGlCQUdoQyxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNO2lGQUsxQixNQUFNO3NCQUExQixTQUFTO3VCQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBpbnB1dCxcbiAgT25Jbml0LFxuICBzaWduYWwsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIsIFNhZmVIdG1sIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBCbWJCdXR0b25EaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2JtYi1idXR0b24vYnV0dG9uLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBCbWJJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vYm1iLWljb24vYm1iLWljb24uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYm1iLXRleHQtZWRpdG9yJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0JtYkJ1dHRvbkRpcmVjdGl2ZSwgQm1iSWNvbkNvbXBvbmVudF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9ibWItdGV4dC1lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vYm1iLXRleHQtZWRpdG9yLmNvbXBvbmVudC5zY3NzJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEJtYlRleHRFZGl0b3JDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkluaXQge1xuICBjb250cm9sID0gaW5wdXQ8Rm9ybUNvbnRyb2w+KG5ldyBGb3JtQ29udHJvbCgnJykpO1xuXG4gIEBWaWV3Q2hpbGQoJ2VkaXRvcicpIGVkaXRvciE6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuXG4gIHNhbml0aXplZENvbnRlbnQgPSBzaWduYWw8U2FmZUh0bWw+KCcnKTtcbiAgY3VycmVudEFsaWdubWVudDogc3RyaW5nID0gJ2xlZnQnO1xuICBzaG93VGFibGVEaWFsb2c6IGJvb2xlYW4gPSBmYWxzZTtcbiAgdGFibGVSb3dzOiBudW1iZXIgPSAyO1xuICB0YWJsZUNvbHVtbnM6IG51bWJlciA9IDI7XG5cbiAgZGV0ZWN0QWxpZ25tZW50KCkge1xuICAgIGNvbnN0IHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTtcbiAgICBpZiAoc2VsZWN0aW9uICYmIHNlbGVjdGlvbi5yYW5nZUNvdW50ID4gMCkge1xuICAgICAgY29uc3QgZWxlbWVudCA9IHNlbGVjdGlvbi5nZXRSYW5nZUF0KDApXG4gICAgICAgIC5jb21tb25BbmNlc3RvckNvbnRhaW5lciBhcyBIVE1MRWxlbWVudDtcbiAgICAgIGNvbnN0IHBhcmVudEVsZW1lbnQgPSBlbGVtZW50LnBhcmVudEVsZW1lbnQ7XG5cbiAgICAgIGlmIChwYXJlbnRFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IHRleHRBbGlnbiA9IHBhcmVudEVsZW1lbnQuc3R5bGUudGV4dEFsaWduIHx8ICdsZWZ0JztcbiAgICAgICAgdGhpcy5jdXJyZW50QWxpZ25tZW50ID0gdGV4dEFsaWduO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGFwcGx5QWxpZ25tZW50KGFsaWdubWVudDogc3RyaW5nKSB7XG4gICAgdGhpcy5leGVjQ29tbWFuZCgnc3R5bGVXaXRoQ1NTJywgJ3RydWUnKTtcbiAgICB0aGlzLmV4ZWNDb21tYW5kKFxuICAgICAgJ2p1c3RpZnknICsgYWxpZ25tZW50LmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgYWxpZ25tZW50LnNsaWNlKDEpLFxuICAgICk7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNhbml0aXplcjogRG9tU2FuaXRpemVyKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc2FuaXRpemVkQ29udGVudC5zZXQodGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoXG4gICAgICB0aGlzLmNvbnRyb2woKS52YWx1ZSB8fCAnJyxcbiAgICApKTtcblxuICAgIHRoaXMuY29udHJvbCgpLnZhbHVlQ2hhbmdlcz8uc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgaWYgKHZhbHVlID09PSBudWxsKSB7XG4gICAgICB0aGlzLnNhbml0aXplZENvbnRlbnQuc2V0KHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKCcnKSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5lZGl0b3IubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICB9XG5cbiAgaGFuZGxlQ2hhbmdlKGV2ZW50OiBFdmVudCwgdHlwZTogc3RyaW5nKSB7XG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxTZWxlY3RFbGVtZW50O1xuICAgIGlmICh0YXJnZXQ/LnZhbHVlKSB7XG4gICAgICB0aGlzLmV4ZWNDb21tYW5kKHR5cGUsIHRhcmdldC52YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgZXhlY0NvbW1hbmQoY29tbWFuZDogc3RyaW5nLCB2YWx1ZTogc3RyaW5nIHwgbnVsbCA9IG51bGwpIHtcbiAgICBkb2N1bWVudC5leGVjQ29tbWFuZChjb21tYW5kLCBmYWxzZSwgdmFsdWUgfHwgdW5kZWZpbmVkKTtcbiAgICB0aGlzLnVwZGF0ZUNvbnRlbnQoKTtcbiAgfVxuXG4gIGluc2VydExpbmsoKSB7XG4gICAgY29uc3QgdXJsID0gcHJvbXB0KCdJbmdyZXNlIGxhIFVSTDonKTtcbiAgICBpZiAodXJsKSB7XG4gICAgICB0aGlzLmV4ZWNDb21tYW5kKCdjcmVhdGVMaW5rJywgdXJsKTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGVDb250ZW50KCkge1xuICAgIHRoaXMuY29udHJvbCgpLnNldFZhbHVlKHRoaXMuZWRpdG9yLm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MKTtcbiAgfVxuXG4gIGNsZWFyRm9ybWF0dGluZygpIHtcbiAgICB0aGlzLmV4ZWNDb21tYW5kKCdyZW1vdmVGb3JtYXQnKTtcbiAgICB0aGlzLmV4ZWNDb21tYW5kKCd1bmxpbmsnKTtcbiAgfVxuXG4gIGdldEN1cnJlbnRTdGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sKCkudmFsdWU7XG4gIH1cblxuICBpbnNlcnRJbWFnZSgpIHtcbiAgICBjb25zdCB1cmwgPSBwcm9tcHQoJ0luZ3Jlc2UgbGEgVVJMIGRlIGxhIGltYWdlbjonKTtcbiAgICBpZiAodXJsKSB7XG4gICAgICBpZiAodGhpcy5pc1ZhbGlkSW1hZ2VVcmwodXJsKSkge1xuICAgICAgICB0aGlzLmV4ZWNDb21tYW5kKCdpbnNlcnRJbWFnZScsIHVybCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhbGVydCgnTGEgVVJMIGRlIGxhIGltYWdlbiBubyBlcyB2w6FsaWRhLicpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlzVmFsaWRJbWFnZVVybCh1cmw6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHRyeSB7XG4gICAgICBuZXcgVVJMKHVybCk7IC8vIEludGVudGEgY3JlYXIgdW4gb2JqZXRvIFVSTFxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvLyBNw6l0b2RvIHBhcmEgYWJyaXIgZWwgZGnDoWxvZ28gZGUgbGEgdGFibGFcbiAgb3BlblRhYmxlRGlhbG9nKCkge1xuICAgIHRoaXMuc2hvd1RhYmxlRGlhbG9nID0gdHJ1ZTtcbiAgfVxuXG4gIC8vIE3DqXRvZG8gcGFyYSBjZXJyYXIgZWwgZGnDoWxvZ28gZGUgbGEgdGFibGFcbiAgY2xvc2VUYWJsZURpYWxvZygpIHtcbiAgICB0aGlzLnNob3dUYWJsZURpYWxvZyA9IGZhbHNlO1xuICB9XG5cbiAgLy8gTcOpdG9kbyBwYXJhIGluc2VydGFyIGxhIHRhYmxhXG4gIGluc2VydFRhYmxlKCkge1xuICAgIGNvbnN0IHJvd3MgPSB0aGlzLnRhYmxlUm93cztcbiAgICBjb25zdCBjb2x1bW5zID0gdGhpcy50YWJsZUNvbHVtbnM7XG5cbiAgICBpZiAocm93cyA+IDAgJiYgY29sdW1ucyA+IDApIHtcbiAgICAgIGNvbnN0IHRhYmxlSHRtbCA9IHRoaXMuZ2VuZXJhdGVUYWJsZUh0bWwocm93cywgY29sdW1ucyk7XG4gICAgICB0aGlzLmluc2VydEh0bWwodGFibGVIdG1sKTtcbiAgICAgIHRoaXMuY2xvc2VUYWJsZURpYWxvZygpO1xuICAgIH1cbiAgfVxuXG4gIC8vIE3DqXRvZG8gcGFyYSBnZW5lcmFyIGVsIEhUTUwgZGUgbGEgdGFibGFcbiAgZ2VuZXJhdGVUYWJsZUh0bWwocm93czogbnVtYmVyLCBjb2x1bW5zOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGxldCB0YWJsZUh0bWwgPSAnPHRhYmxlIHN0eWxlPVwiYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsgd2lkdGg6IDEwMCU7XCI+JztcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJvd3M7IGkrKykge1xuICAgICAgdGFibGVIdG1sICs9ICc8dHI+JztcbiAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgY29sdW1uczsgaisrKSB7XG4gICAgICAgIHRhYmxlSHRtbCArPSBgPHRkIHN0eWxlPVwiYm9yZGVyOiAxcHggc29saWQgIzAwMDsgcGFkZGluZzogOHB4O1wiPiZuYnNwOzwvdGQ+YDtcbiAgICAgIH1cbiAgICAgIHRhYmxlSHRtbCArPSAnPC90cj4nO1xuICAgIH1cbiAgICB0YWJsZUh0bWwgKz0gJzwvdGFibGU+JztcbiAgICByZXR1cm4gdGFibGVIdG1sO1xuICB9XG5cbiAgLy8gTcOpdG9kbyBwYXJhIGluc2VydGFyIEhUTUwgZW4gZWwgZWRpdG9yXG4gIGluc2VydEh0bWwoaHRtbDogc3RyaW5nKSB7XG4gICAgY29uc3Qgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpO1xuICAgIGlmIChzZWxlY3Rpb24gJiYgc2VsZWN0aW9uLnJhbmdlQ291bnQgPiAwKSB7XG4gICAgICBjb25zdCByYW5nZSA9IHNlbGVjdGlvbi5nZXRSYW5nZUF0KDApO1xuICAgICAgY29uc3QgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICBkaXYuaW5uZXJIVE1MID0gaHRtbDtcbiAgICAgIHJhbmdlLmluc2VydE5vZGUoZGl2KTtcbiAgICAgIHRoaXMudXBkYXRlQ29udGVudCgpO1xuICAgIH1cbiAgfVxufVxuIiwiPHNlY3Rpb24gY2xhc3M9XCJibWJfdGV4dC1lZGl0b3JcIj5cbiAgPGhlYWRlciBjbGFzcz1cImJtYl90ZXh0LWVkaXRvci1oZWFkZXJcIj5cbiAgICA8c3BhbiBjbGFzcz1cImJtYl90ZXh0LWVkaXRvci1oZWFkZXItZ3JvdXBcIj5cbiAgICAgIDxzZWxlY3RcbiAgICAgICAgaWQ9XCJCbWJUZXh0RWRpdG9yU2VsZWN0XCJcbiAgICAgICAgY2xhc3M9XCJibWJfdGV4dC1lZGl0b3ItaGVhZGVyLXNlbGVjdFwiXG4gICAgICAgIChjaGFuZ2UpPVwiaGFuZGxlQ2hhbmdlKCRldmVudCwgJ2Zvcm1hdEJsb2NrJylcIlxuICAgICAgICB0aXRsZT1cIkVzdGlsbyBkZSBww6FycmFmb1wiXG4gICAgICA+XG4gICAgICAgIDxvcHRpb24gdmFsdWU9XCJwXCI+UMOhcnJhZm88L29wdGlvbj5cbiAgICAgICAgPG9wdGlvbiB2YWx1ZT1cImgxXCI+VMOtdHVsbyAxPC9vcHRpb24+XG4gICAgICAgIDxvcHRpb24gdmFsdWU9XCJoMlwiPlTDrXR1bG8gMjwvb3B0aW9uPlxuICAgICAgICA8b3B0aW9uIHZhbHVlPVwiaDNcIj5Uw610dWxvIDM8L29wdGlvbj5cbiAgICAgICAgPG9wdGlvbiB2YWx1ZT1cImJsb2NrcXVvdGVcIj5DaXRhPC9vcHRpb24+XG4gICAgICA8L3NlbGVjdD5cbiAgICAgIDxidXR0b25cbiAgICAgICAgYm1iQnV0dG9uXG4gICAgICAgIGFwcGVhcmFuY2U9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgIHNpemU9XCJtaWNyb1wiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAoY2xpY2spPVwiZXhlY0NvbW1hbmQoJ2JvbGQnKVwiXG4gICAgICAgIHRpdGxlPVwiTmVncml0YVwiXG4gICAgICA+XG4gICAgICAgIDxibWItaWNvbiBpY29uPVwiZm9ybWF0X2JvbGRcIiBbc2l6ZV09XCIyNFwiIC8+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgYm1iQnV0dG9uXG4gICAgICAgIGFwcGVhcmFuY2U9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgIHNpemU9XCJtaWNyb1wiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAoY2xpY2spPVwiZXhlY0NvbW1hbmQoJ2l0YWxpYycpXCJcbiAgICAgICAgdGl0bGU9XCJDdXJzaXZhXCJcbiAgICAgID5cbiAgICAgICAgPGJtYi1pY29uIGljb249XCJmb3JtYXRfaXRhbGljXCIgW3NpemVdPVwiMjRcIiAvPlxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGJtYkJ1dHRvblxuICAgICAgICBhcHBlYXJhbmNlPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICBzaXplPVwibWljcm9cIlxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgKGNsaWNrKT1cImV4ZWNDb21tYW5kKCd1bmRlcmxpbmUnKVwiXG4gICAgICAgIHRpdGxlPVwiU3VicmF5YWRvXCJcbiAgICAgID5cbiAgICAgICAgPGJtYi1pY29uIGljb249XCJmb3JtYXRfdW5kZXJsaW5lZFwiIFtzaXplXT1cIjI0XCIgLz5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGlucHV0XG4gICAgICAgIGlkPVwiQm1iVGV4dEVkaXRvckNvbG9yXCJcbiAgICAgICAgdHlwZT1cImNvbG9yXCJcbiAgICAgICAgKGNoYW5nZSk9XCJoYW5kbGVDaGFuZ2UoJGV2ZW50LCAnZm9yZUNvbG9yJylcIlxuICAgICAgICB0aXRsZT1cIkNvbG9yIGRlIHRleHRvXCJcbiAgICAgIC8+XG4gICAgPC9zcGFuPlxuXG4gICAgPHNwYW4gY2xhc3M9XCJibWJfdGV4dC1lZGl0b3ItaGVhZGVyLWdyb3VwXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGJtYkJ1dHRvblxuICAgICAgICBhcHBlYXJhbmNlPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICBzaXplPVwibWljcm9cIlxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgKGNsaWNrKT1cImFwcGx5QWxpZ25tZW50KCdsZWZ0JylcIlxuICAgICAgICBbY2xhc3MuYWN0aXZlXT1cImN1cnJlbnRBbGlnbm1lbnQgPT09ICdsZWZ0J1wiXG4gICAgICAgIHRpdGxlPVwiQWxpbmVhciBhIGxhIGl6cXVpZXJkYVwiXG4gICAgICA+XG4gICAgICAgIDxibWItaWNvbiBpY29uPVwiZm9ybWF0X2FsaWduX2xlZnRcIiBbc2l6ZV09XCIyNFwiIC8+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgYm1iQnV0dG9uXG4gICAgICAgIGFwcGVhcmFuY2U9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgIHNpemU9XCJtaWNyb1wiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAoY2xpY2spPVwiYXBwbHlBbGlnbm1lbnQoJ2NlbnRlcicpXCJcbiAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJjdXJyZW50QWxpZ25tZW50ID09PSAnY2VudGVyJ1wiXG4gICAgICAgIHRpdGxlPVwiQ2VudHJhclwiXG4gICAgICA+XG4gICAgICAgIDxibWItaWNvbiBpY29uPVwiZm9ybWF0X2FsaWduX2NlbnRlclwiIFtzaXplXT1cIjI0XCIgLz5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBibWJCdXR0b25cbiAgICAgICAgYXBwZWFyYW5jZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgc2l6ZT1cIm1pY3JvXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIChjbGljayk9XCJhcHBseUFsaWdubWVudCgncmlnaHQnKVwiXG4gICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiY3VycmVudEFsaWdubWVudCA9PT0gJ3JpZ2h0J1wiXG4gICAgICAgIHRpdGxlPVwiQWxpbmVhciBhIGxhIGRlcmVjaGFcIlxuICAgICAgPlxuICAgICAgICA8Ym1iLWljb24gaWNvbj1cImZvcm1hdF9hbGlnbl9yaWdodFwiIFtzaXplXT1cIjI0XCIgLz5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvc3Bhbj5cblxuICAgIDxzcGFuIGNsYXNzPVwiYm1iX3RleHQtZWRpdG9yLWhlYWRlci1ncm91cFwiPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBibWJCdXR0b25cbiAgICAgICAgYXBwZWFyYW5jZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgc2l6ZT1cIm1pY3JvXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIChjbGljayk9XCJleGVjQ29tbWFuZCgnaW5zZXJ0T3JkZXJlZExpc3QnKVwiXG4gICAgICAgIHRpdGxlPVwiTGlzdGEgbnVtZXJhZGFcIlxuICAgICAgPlxuICAgICAgICA8Ym1iLWljb24gaWNvbj1cImZvcm1hdF9saXN0X251bWJlcmVkXCIgW3NpemVdPVwiMjRcIiAvPlxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGJtYkJ1dHRvblxuICAgICAgICBhcHBlYXJhbmNlPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICBzaXplPVwibWljcm9cIlxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgKGNsaWNrKT1cImV4ZWNDb21tYW5kKCdpbnNlcnRVbm9yZGVyZWRMaXN0JylcIlxuICAgICAgICB0aXRsZT1cIkxpc3RhIGNvbiB2acOxZXRhc1wiXG4gICAgICA+XG4gICAgICAgIDxibWItaWNvbiBpY29uPVwiZm9ybWF0X2xpc3RfYnVsbGV0ZWRcIiBbc2l6ZV09XCIyNFwiIC8+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L3NwYW4+XG5cbiAgICA8c3BhbiBjbGFzcz1cImJtYl90ZXh0LWVkaXRvci1oZWFkZXItZ3JvdXBcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgYm1iQnV0dG9uXG4gICAgICAgIGFwcGVhcmFuY2U9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgIHNpemU9XCJtaWNyb1wiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAoY2xpY2spPVwiZXhlY0NvbW1hbmQoJ2luZGVudCcpXCJcbiAgICAgICAgdGl0bGU9XCJBdW1lbnRhciBzYW5ncsOtYVwiXG4gICAgICA+XG4gICAgICAgIDxibWItaWNvbiBpY29uPVwiZm9ybWF0X2luZGVudF9pbmNyZWFzZVwiIFtzaXplXT1cIjI0XCIgLz5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBibWJCdXR0b25cbiAgICAgICAgYXBwZWFyYW5jZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgc2l6ZT1cIm1pY3JvXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIChjbGljayk9XCJleGVjQ29tbWFuZCgnb3V0ZGVudCcpXCJcbiAgICAgICAgdGl0bGU9XCJEaXNtaW51aXIgc2FuZ3LDrWFcIlxuICAgICAgPlxuICAgICAgICA8Ym1iLWljb24gaWNvbj1cImZvcm1hdF9pbmRlbnRfZGVjcmVhc2VcIiBbc2l6ZV09XCIyNFwiIC8+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L3NwYW4+XG5cbiAgICA8c3BhbiBjbGFzcz1cImJtYl90ZXh0LWVkaXRvci1oZWFkZXItZ3JvdXBcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgYm1iQnV0dG9uXG4gICAgICAgIGFwcGVhcmFuY2U9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgIHNpemU9XCJtaWNyb1wiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAoY2xpY2spPVwiaW5zZXJ0TGluaygpXCJcbiAgICAgICAgdGl0bGU9XCJJbnNlcnRhciBlbmxhY2VcIlxuICAgICAgPlxuICAgICAgICA8Ym1iLWljb24gaWNvbj1cImxpbmtcIiBbc2l6ZV09XCIyNFwiIC8+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgYm1iQnV0dG9uXG4gICAgICAgIGFwcGVhcmFuY2U9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgIHNpemU9XCJtaWNyb1wiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAoY2xpY2spPVwiaW5zZXJ0SW1hZ2UoKVwiXG4gICAgICAgIHRpdGxlPVwiSW5zZXJ0YXIgaW1hZ2VuXCJcbiAgICAgID5cbiAgICAgICAgPGJtYi1pY29uIGljb249XCJpbWFnZVwiIFtzaXplXT1cIjI0XCIgLz5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPCEtLSA8YnV0dG9uIGJtYkJ1dHRvbiBhcHBlYXJhbmNlPVwidHJhbnNwYXJlbnRcIiBzaXplPVwibWljcm9cIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm9wZW5UYWJsZURpYWxvZygpXCIgdGl0bGU9XCJJbnNlcnRhciB0YWJsYVwiPlxuICAgICAgICA8Ym1iLWljb24gaWNvbj1cInRhYmxlX2NoYXJ0XCIgW3NpemVdPVwiMjRcIi8+XG4gICAgICA8L2J1dHRvbj4gLS0+XG4gICAgPC9zcGFuPlxuICAgIDxzcGFuIGNsYXNzPVwiYm1iX3RleHQtZWRpdG9yLWhlYWRlci1ncm91cFwiPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBibWJCdXR0b25cbiAgICAgICAgYXBwZWFyYW5jZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgc2l6ZT1cIm1pY3JvXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIChjbGljayk9XCJjbGVhckZvcm1hdHRpbmcoKVwiXG4gICAgICAgIHRpdGxlPVwiTGltcGlhciBmb3JtYXRvXCJcbiAgICAgID5cbiAgICAgICAgPGJtYi1pY29uIGljb249XCJmb3JtYXRfY2xlYXJcIiBbc2l6ZV09XCIyNFwiIC8+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L3NwYW4+XG4gIDwvaGVhZGVyPlxuXG4gIDxkaXZcbiAgICBjbGFzcz1cImJtYl90ZXh0LWVkaXRvci1jb250ZW50XCJcbiAgICAjZWRpdG9yXG4gICAgY29udGVudGVkaXRhYmxlPVwidHJ1ZVwiXG4gICAgKGlucHV0KT1cInVwZGF0ZUNvbnRlbnQoKVwiXG4gICAgW2lubmVySFRNTF09XCJzYW5pdGl6ZWRDb250ZW50KClcIlxuICA+PC9kaXY+XG48L3NlY3Rpb24+XG5cbjwhLS0gRGnDoWxvZ28gcGFyYSBkZWZpbmlyIGZpbGFzIHkgY29sdW1uYXMgLS0+XG48ZGlhbG9nIGNsYXNzPVwiZGlhbG9nLW92ZXJsYXlcIiBbb3Blbl09XCJzaG93VGFibGVEaWFsb2dcIj5cbiAgPGRpdiBjbGFzcz1cImRpYWxvZ1wiPlxuICAgIDxoMz5JbnNlcnRhciB0YWJsYTwvaDM+XG4gICAgPGxhYmVsIGZvcj1cInJvd3NcIj5GaWxhczo8L2xhYmVsPlxuICAgIDxpbnB1dCB0eXBlPVwibnVtYmVyXCIgaWQ9XCJyb3dzXCIgbWluPVwiMVwiIG1heD1cIjEwXCIgLz5cblxuICAgIDxsYWJlbCBmb3I9XCJjb2x1bW5zXCI+Q29sdW1uYXM6PC9sYWJlbD5cbiAgICA8aW5wdXQgdHlwZT1cIm51bWJlclwiIGlkPVwiY29sdW1uc1wiIG1pbj1cIjFcIiBtYXg9XCIxMFwiIC8+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZGlhbG9nLWJ1dHRvbnNcIj5cbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJpbnNlcnRUYWJsZSgpXCI+SW5zZXJ0YXI8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJjbG9zZVRhYmxlRGlhbG9nKClcIj5DYW5jZWxhcjwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGlhbG9nPlxuIl19
|
|
184
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm1iLXRleHQtZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RzLW5nL3NyYy9saWIvY29tcG9uZW50cy9ibWItdGV4dC1lZGl0b3IvYm1iLXRleHQtZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RzLW5nL3NyYy9saWIvY29tcG9uZW50cy9ibWItdGV4dC1lZGl0b3IvYm1iLXRleHQtZWRpdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDbEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFbEUsT0FBTyxFQUNMLDRCQUE0QixHQUU3QixNQUFNLDJEQUEyRCxDQUFDOzs7O0FBV25FLE1BQU0sT0FBTyxzQkFBc0I7SUFZakMsZUFBZTtRQUNiLE1BQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUM1QyxJQUFJLFNBQVMsSUFBSSxTQUFTLENBQUMsVUFBVSxHQUFHLENBQUMsRUFBRTtZQUN6QyxNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztpQkFDcEMsdUJBQXNDLENBQUM7WUFDMUMsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQztZQUU1QyxJQUFJLGFBQWEsRUFBRTtnQkFDakIsTUFBTSxTQUFTLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQyxTQUFTLElBQUksTUFBTSxD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QVk7UUFDckIsTUFBTSxTQUFTLEdBQUcsVUFBVSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzVDLElBQUksU0FBUyxJQUFJLFNBQVMsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxFQUFFO1lBQ3pDLE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdEMsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMxQyxHQUFHLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztZQUNyQixLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3RCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUN0QjtJQUNILENBQUM7K0dBdk1VLHNCQUFzQjttR0FBdEIsc0JBQXNCLHVUQzlCbkMsbzhMQXVNQSwyeE5EL0tZLGtCQUFrQiw0TUFBRSxnQkFBZ0I7OzRGQU1uQyxzQkFBc0I7a0JBVGxDLFNBQVM7K0JBQ0UsaUJBQWlCLGNBQ2YsSUFBSSxXQUNQLENBQUMsa0JBQWtCLEVBQUUsZ0JBQWdCLENBQUMsaUJBR2hDLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU07MkhBSzFCLE1BQU07c0JBQTFCLFNBQVM7dUJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIGlucHV0LFxuICBPbkluaXQsXG4gIHNpZ25hbCxcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IERvbVNhbml0aXplciwgU2FmZUh0bWwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IEJtYkJ1dHRvbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvYm1iLWJ1dHRvbi9idXR0b24uZGlyZWN0aXZlJztcbmltcG9ydCB7IEJtYkljb25Db21wb25lbnQgfSBmcm9tICcuLi9ibWItaWNvbi9ibWItaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQm1iUHJvamVjdGlvbkNvbnRlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcHJvamVjdGlvbi9wcm9qZWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgQm1iVGV4dEVkaXRvclByb21wdENvbXBvbmVudCxcbiAgSUJtYlRleHRFZGl0b3JQcm9tcHRUeXBlLFxufSBmcm9tICcuL2JtYi10ZXh0LWVkaXRvci1wcm9tcHQvYm1iLXRleHQtZWRpdG9yLXByb21wdC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdibWItdGV4dC1lZGl0b3InLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQm1iQnV0dG9uRGlyZWN0aXZlLCBCbWJJY29uQ29tcG9uZW50XSxcbiAgdGVtcGxhdGVVcmw6ICcuL2JtYi10ZXh0LWVkaXRvci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9ibWItdGV4dC1lZGl0b3IuY29tcG9uZW50LnNjc3MnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQm1iVGV4dEVkaXRvckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uSW5pdCB7XG4gIGNvbnRyb2wgPSBpbnB1dDxGb3JtQ29udHJvbD4obmV3IEZvcm1Db250cm9sKCcnKSk7XG5cbiAgQFZpZXdDaGlsZCgnZWRpdG9yJykgZWRpdG9yITogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG5cbiAgc2FuaXRpemVkQ29udGVudCA9IHNpZ25hbDxTYWZlSHRtbD4oJycpO1xuICBjdXJyZW50QWxpZ25tZW50OiBzdHJpbmcgPSAnbGVmdCc7XG4gIHNob3dUYWJsZURpYWxvZzogYm9vbGVhbiA9IGZhbHNlO1xuICB0YWJsZVJvd3M6IG51bWJlciA9IDI7XG4gIHRhYmxlQ29sdW1uczogbnVtYmVyID0gMjtcbiAgdXNlclNlbGVjdGlvbjogUmFuZ2UgfCBudWxsID0gbnVsbDtcblxuICBkZXRlY3RBbGlnbm1lbnQoKSB7XG4gICAgY29uc3Qgc2VsZWN0aW9uID0gZ2xvYmFsVGhpcy5nZXRTZWxlY3Rpb24oKTtcbiAgICBpZiAoc2VsZWN0aW9uICYmIHNlbGVjdGlvbi5yYW5nZUNvdW50ID4gMCkge1xuICAgICAgY29uc3QgZWxlbWVudCA9IHNlbGVjdGlvbi5nZXRSYW5nZUF0KDApXG4gICAgICAgIC5jb21tb25BbmNlc3RvckNvbnRhaW5lciBhcyBIVE1MRWxlbWVudDtcbiAgICAgIGNvbnN0IHBhcmVudEVsZW1lbnQgPSBlbGVtZW50LnBhcmVudEVsZW1lbnQ7XG5cbiAgICAgIGlmIChwYXJlbnRFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IHRleHRBbGlnbiA9IHBhcmVudEVsZW1lbnQuc3R5bGUudGV4dEFsaWduIHx8ICdsZWZ0JztcbiAgICAgICAgdGhpcy5jdXJyZW50QWxpZ25tZW50ID0gdGV4dEFsaWduO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGFwcGx5QWxpZ25tZW50KGFsaWdubWVudDogc3RyaW5nKSB7XG4gICAgdGhpcy5leGVjQ29tbWFuZCgnc3R5bGVXaXRoQ1NTJywgJ3RydWUnKTtcbiAgICB0aGlzLmV4ZWNDb21tYW5kKFxuICAgICAgJ2p1c3RpZnknICsgYWxpZ25tZW50LmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgYWxpZ25tZW50LnNsaWNlKDEpLFxuICAgICk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNhbml0aXplcjogRG9tU2FuaXRpemVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJvamVjdGlvbkNvbnRlbnQ6IEJtYlByb2plY3Rpb25Db250ZW50U2VydmljZSxcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc2FuaXRpemVkQ29udGVudC5zZXQoXG4gICAgICAvLyBOT1NPTkFSOiBJbml0aWFsIGNvbnRlbnQgc2FuaXRpemF0aW9uXG4gICAgICB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbCh0aGlzLmNvbnRyb2woKS52YWx1ZSB8fCAnJyksXG4gICAgKTtcblxuICAgIHRoaXMuY29udHJvbCgpLnZhbHVlQ2hhbmdlcz8uc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgaWYgKHZhbHVlID09PSBudWxsKSB7XG4gICAgICAgIC8vIE5PU09OQVI6IENsZWFyIGNvbnRlbnQgc2FuaXRpemF0aW9uXG4gICAgICAgIHRoaXMuc2FuaXRpemVkQ29udGVudC5zZXQodGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoJycpKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLmVkaXRvci5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cblxuICBoYW5kbGVDaGFuZ2UoZXZlbnQ6IEV2ZW50LCB0eXBlOiBzdHJpbmcpIHtcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTFNlbGVjdEVsZW1lbnQ7XG4gICAgaWYgKHRhcmdldD8udmFsdWUpIHtcbiAgICAgIHRoaXMuZXhlY0NvbW1hbmQodHlwZSwgdGFyZ2V0LnZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBleGVjQ29tbWFuZChjb21tYW5kOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcgfCBudWxsID0gbnVsbCkge1xuICAgIGlmICh0aGlzLnVzZXJTZWxlY3Rpb24pIHtcbiAgICAgIGNvbnN0IHNlbGVjdGlvbiA9IGdsb2JhbFRoaXMuZ2V0U2VsZWN0aW9uKCk7XG4gICAgICBpZiAoc2VsZWN0aW9uKSB7XG4gICAgICAgIHNlbGVjdGlvbi5yZW1vdmVBbGxSYW5nZXMoKTtcbiAgICAgICAgc2VsZWN0aW9uLmFkZFJhbmdlKHRoaXMudXNlclNlbGVjdGlvbik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoY29tbWFuZCwgZmFsc2UsIHZhbHVlIHx8IHVuZGVmaW5lZCk7XG4gICAgdGhpcy51cGRhdGVDb250ZW50KCk7XG5cbiAgICB0aGlzLnVzZXJTZWxlY3Rpb24gPSBudWxsO1xuICB9XG5cbiAgb3BlblByb21wdCh0eXBlOiBJQm1iVGV4dEVkaXRvclByb21wdFR5cGUsIGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgdGhpcy51c2VyU2VsZWN0aW9uID0gZ2xvYmFsVGhpcy5nZXRTZWxlY3Rpb24oKT8uZ2V0UmFuZ2VBdCgwKSB8fCBudWxsO1xuICAgIGNvbnN0IGJ1dHRvbk5vZGUgPSBldmVudC5jdXJyZW50VGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgIHRoaXMucHJvamVjdGlvbkNvbnRlbnQub3BlbkNvbnRlbnQoe1xuICAgICAgY29udGVudDogQm1iVGV4dEVkaXRvclByb21wdENvbXBvbmVudCxcbiAgICAgIGlucHV0Q29udGV4dDogeyB0eXBlIH0sXG4gICAgICBvdXRwdXRDb250ZXh0OiB7XG4gICAgICAgIGZvcm1WYWx1ZXM6ICh2YWx1ZXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA9PlxuICAgICAgICAgIHRoaXMuaGFuZGxlQ2xvc2VQcm9tcHQoeyAuLi52YWx1ZXMsIHR5cGUgfSksXG4gICAgICAgIGNhbmNlbEZvcm06ICgpID0+IHRoaXMucHJvamVjdGlvbkNvbnRlbnQuY2xvc2VDb250ZW50KCksXG4gICAgICB9LFxuICAgICAgdGFyZ2V0UmVmOiBidXR0b25Ob2RlLFxuICAgIH0pO1xuICB9XG5cbiAgaGFuZGxlQ2xvc2VQcm9tcHQodmFsdWVzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikge1xuICAgIGlmICh2YWx1ZXNbJ3R5cGUnXSA9PT0gJ2xpbmsnICYmIHZhbHVlc1sncHJvbXB0X3VybCddKSB7XG4gICAgICB0aGlzLmluc2VydExpbmsodmFsdWVzKTtcbiAgICB9IGVsc2UgaWYgKHZhbHVlc1sndHlwZSddID09PSAnaW1hZ2UnICYmIHZhbHVlc1sncHJvbXB0X3VybCddKSB7XG4gICAgICB0aGlzLmluc2VydEltYWdlKHZhbHVlcyk7XG4gICAgfVxuICAgIHRoaXMucHJvamVjdGlvbkNvbnRlbnQuY2xvc2VDb250ZW50KCk7XG4gIH1cblxuICBpbnNlcnRMaW5rKHZhbHVlczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pIHtcbiAgICBjb25zdCBzZWxlY3Rpb24gPSBnbG9iYWxUaGlzLmdldFNlbGVjdGlvbigpO1xuXG4gICAgaWYgKCFzZWxlY3Rpb24gfHwgc2VsZWN0aW9uLnJhbmdlQ291bnQgPT09IDAgfHwgIXZhbHVlc1sncHJvbXB0X3VybCddKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5leGVjQ29tbWFuZCgnY3JlYXRlTGluaycsIHZhbHVlc1sncHJvbXB0X3VybCddIGFzIHN0cmluZyk7XG4gICAgY29uc3QgcmFuZ2UgPSBzZWxlY3Rpb24uZ2V0UmFuZ2VBdCgwKTtcbiAgICBjb25zdCBwYXJlbnROb2RlID0gcmFuZ2UuY29tbW9uQW5jZXN0b3JDb250YWluZXIucGFyZW50Tm9kZTtcbiAgICBpZiAocGFyZW50Tm9kZSAmJiBwYXJlbnROb2RlIGluc3RhbmNlb2YgSFRNTEFuY2hvckVsZW1lbnQpIHtcbiAgICAgIHBhcmVudE5vZGUudGFyZ2V0ID0gKHZhbHVlc1sndGFyZ2V0J10gYXMgc3RyaW5nKSB8fCAnX3NlbGYnO1xuXG4gICAgICBpZiAodmFsdWVzWydyZWwnXSkge1xuICAgICAgICBwYXJlbnROb2RlLnJlbCA9ICdub29wZW5lciBub3JlZmVycmVyJztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpbnNlcnRJbWFnZSh2YWx1ZXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSB7XG4gICAgY29uc3Qgc2VsZWN0aW9uID0gZ2xvYmFsVGhpcy5nZXRTZWxlY3Rpb24oKTtcblxuICAgIGlmICghc2VsZWN0aW9uIHx8IHNlbGVjdGlvbi5yYW5nZUNvdW50ID09PSAwIHx8ICF2YWx1ZXNbJ3Byb21wdF91cmwnXSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZXhlY0NvbW1hbmQoJ2luc2VydEltYWdlJywgdmFsdWVzWydwcm9tcHRfdXJsJ10gYXMgc3RyaW5nKTtcbiAgfVxuXG4gIHVwZGF0ZUNvbnRlbnQoKSB7XG4gICAgdGhpcy5jb250cm9sKCkuc2V0VmFsdWUodGhpcy5lZGl0b3IubmF0aXZlRWxlbWVudC5pbm5lckhUTUwpO1xuICB9XG5cbiAgY2xlYXJGb3JtYXR0aW5nKCkge1xuICAgIHRoaXMuZXhlY0NvbW1hbmQoJ3JlbW92ZUZvcm1hdCcpO1xuICAgIHRoaXMuZXhlY0NvbW1hbmQoJ3VubGluaycpO1xuICB9XG5cbiAgZ2V0Q3VycmVudFN0YXRlKCkge1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2woKS52YWx1ZTtcbiAgfVxuXG4gIGlzVmFsaWRJbWFnZVVybCh1cmw6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHRyeSB7XG4gICAgICBuZXcgVVJMKHVybCk7IC8vIEludGVudGEgY3JlYXIgdW4gb2JqZXRvIFVSTFxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvLyBNw6l0b2RvIHBhcmEgYWJyaXIgZWwgZGnDoWxvZ28gZGUgbGEgdGFibGFcbiAgb3BlblRhYmxlRGlhbG9nKCkge1xuICAgIHRoaXMuc2hvd1RhYmxlRGlhbG9nID0gdHJ1ZTtcbiAgfVxuXG4gIC8vIE3DqXRvZG8gcGFyYSBjZXJyYXIgZWwgZGnDoWxvZ28gZGUgbGEgdGFibGFcbiAgY2xvc2VUYWJsZURpYWxvZygpIHtcbiAgICB0aGlzLnNob3dUYWJsZURpYWxvZyA9IGZhbHNlO1xuICB9XG5cbiAgLy8gTcOpdG9kbyBwYXJhIGluc2VydGFyIGxhIHRhYmxhXG4gIGluc2VydFRhYmxlKCkge1xuICAgIGNvbnN0IHJvd3MgPSB0aGlzLnRhYmxlUm93cztcbiAgICBjb25zdCBjb2x1bW5zID0gdGhpcy50YWJsZUNvbHVtbnM7XG5cbiAgICBpZiAocm93cyA+IDAgJiYgY29sdW1ucyA+IDApIHtcbiAgICAgIGNvbnN0IHRhYmxlSHRtbCA9IHRoaXMuZ2VuZXJhdGVUYWJsZUh0bWwocm93cywgY29sdW1ucyk7XG4gICAgICB0aGlzLmluc2VydEh0bWwodGFibGVIdG1sKTtcbiAgICAgIHRoaXMuY2xvc2VUYWJsZURpYWxvZygpO1xuICAgIH1cbiAgfVxuXG4gIC8vIE3DqXRvZG8gcGFyYSBnZW5lcmFyIGVsIEhUTUwgZGUgbGEgdGFibGFcbiAgZ2VuZXJhdGVUYWJsZUh0bWwocm93czogbnVtYmVyLCBjb2x1bW5zOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGxldCB0YWJsZUh0bWwgPSAnPHRhYmxlIHN0eWxlPVwiYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsgd2lkdGg6IDEwMCU7XCI+JztcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJvd3M7IGkrKykge1xuICAgICAgdGFibGVIdG1sICs9ICc8dHI+JztcbiAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgY29sdW1uczsgaisrKSB7XG4gICAgICAgIHRhYmxlSHRtbCArPSBgPHRkIHN0eWxlPVwiYm9yZGVyOiAxcHggc29saWQgIzAwMDsgcGFkZGluZzogOHB4O1wiPiZuYnNwOzwvdGQ+YDtcbiAgICAgIH1cbiAgICAgIHRhYmxlSHRtbCArPSAnPC90cj4nO1xuICAgIH1cbiAgICB0YWJsZUh0bWwgKz0gJzwvdGFibGU+JztcbiAgICByZXR1cm4gdGFibGVIdG1sO1xuICB9XG5cbiAgLy8gTcOpdG9kbyBwYXJhIGluc2VydGFyIEhUTUwgZW4gZWwgZWRpdG9yXG4gIGluc2VydEh0bWwoaHRtbDogc3RyaW5nKSB7XG4gICAgY29uc3Qgc2VsZWN0aW9uID0gZ2xvYmFsVGhpcy5nZXRTZWxlY3Rpb24oKTtcbiAgICBpZiAoc2VsZWN0aW9uICYmIHNlbGVjdGlvbi5yYW5nZUNvdW50ID4gMCkge1xuICAgICAgY29uc3QgcmFuZ2UgPSBzZWxlY3Rpb24uZ2V0UmFuZ2VBdCgwKTtcbiAgICAgIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgZGl2LmlubmVySFRNTCA9IGh0bWw7XG4gICAgICByYW5nZS5pbnNlcnROb2RlKGRpdik7XG4gICAgICB0aGlzLnVwZGF0ZUNvbnRlbnQoKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxzZWN0aW9uIGNsYXNzPVwiYm1iX3RleHQtZWRpdG9yXCI+XG4gIDxoZWFkZXIgY2xhc3M9XCJibWJfdGV4dC1lZGl0b3ItaGVhZGVyXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJibWJfdGV4dC1lZGl0b3ItaGVhZGVyLWdyb3VwXCI+XG4gICAgICA8c2VsZWN0XG4gICAgICAgIGlkPVwiQm1iVGV4dEVkaXRvclNlbGVjdFwiXG4gICAgICAgIGNsYXNzPVwiYm1iX3RleHQtZWRpdG9yLWhlYWRlci1zZWxlY3RcIlxuICAgICAgICAoY2hhbmdlKT1cImhhbmRsZUNoYW5nZSgkZXZlbnQsICdmb3JtYXRCbG9jaycpXCJcbiAgICAgICAgdGl0bGU9XCJFc3RpbG8gZGUgcMOhcnJhZm9cIlxuICAgICAgPlxuICAgICAgICA8b3B0aW9uIHZhbHVlPVwicFwiPlDDoXJyYWZvPC9vcHRpb24+XG4gICAgICAgIDxvcHRpb24gdmFsdWU9XCJoMVwiPlTDrXR1bG8gMTwvb3B0aW9uPlxuICAgICAgICA8b3B0aW9uIHZhbHVlPVwiaDJcIj5Uw610dWxvIDI8L29wdGlvbj5cbiAgICAgICAgPG9wdGlvbiB2YWx1ZT1cImgzXCI+VMOtdHVsbyAzPC9vcHRpb24+XG4gICAgICAgIDxvcHRpb24gdmFsdWU9XCJibG9ja3F1b3RlXCI+Q2l0YTwvb3B0aW9uPlxuICAgICAgPC9zZWxlY3Q+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGJtYkJ1dHRvblxuICAgICAgICBhcHBlYXJhbmNlPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICBzaXplPVwibWljcm9cIlxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgKGNsaWNrKT1cImV4ZWNDb21tYW5kKCdib2xkJylcIlxuICAgICAgICB0aXRsZT1cIk5lZ3JpdGFcIlxuICAgICAgPlxuICAgICAgICA8Ym1iLWljb24gaWNvbj1cImZvcm1hdF9ib2xkXCIgW3NpemVdPVwiMjRcIiAvPlxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGJtYkJ1dHRvblxuICAgICAgICBhcHBlYXJhbmNlPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICBzaXplPVwibWljcm9cIlxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgKGNsaWNrKT1cImV4ZWNDb21tYW5kKCdpdGFsaWMnKVwiXG4gICAgICAgIHRpdGxlPVwiQ3Vyc2l2YVwiXG4gICAgICA+XG4gICAgICAgIDxibWItaWNvbiBpY29uPVwiZm9ybWF0X2l0YWxpY1wiIFtzaXplXT1cIjI0XCIgLz5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBibWJCdXR0b25cbiAgICAgICAgYXBwZWFyYW5jZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgc2l6ZT1cIm1pY3JvXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIChjbGljayk9XCJleGVjQ29tbWFuZCgndW5kZXJsaW5lJylcIlxuICAgICAgICB0aXRsZT1cIlN1YnJheWFkb1wiXG4gICAgICA+XG4gICAgICAgIDxibWItaWNvbiBpY29uPVwiZm9ybWF0X3VuZGVybGluZWRcIiBbc2l6ZV09XCIyNFwiIC8+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxpbnB1dFxuICAgICAgICBpZD1cIkJtYlRleHRFZGl0b3JDb2xvclwiXG4gICAgICAgIHR5cGU9XCJjb2xvclwiXG4gICAgICAgIChjaGFuZ2UpPVwiaGFuZGxlQ2hhbmdlKCRldmVudCwgJ2ZvcmVDb2xvcicpXCJcbiAgICAgICAgdGl0bGU9XCJDb2xvciBkZSB0ZXh0b1wiXG4gICAgICAvPlxuICAgIDwvc3Bhbj5cblxuICAgIDxzcGFuIGNsYXNzPVwiYm1iX3RleHQtZWRpdG9yLWhlYWRlci1ncm91cFwiPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBibWJCdXR0b25cbiAgICAgICAgYXBwZWFyYW5jZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgc2l6ZT1cIm1pY3JvXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIChjbGljayk9XCJhcHBseUFsaWdubWVudCgnbGVmdCcpXCJcbiAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJjdXJyZW50QWxpZ25tZW50ID09PSAnbGVmdCdcIlxuICAgICAgICB0aXRsZT1cIkFsaW5lYXIgYSBsYSBpenF1aWVyZGFcIlxuICAgICAgPlxuICAgICAgICA8Ym1iLWljb24gaWNvbj1cImZvcm1hdF9hbGlnbl9sZWZ0XCIgW3NpemVdPVwiMjRcIiAvPlxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGJtYkJ1dHRvblxuICAgICAgICBhcHBlYXJhbmNlPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICBzaXplPVwibWljcm9cIlxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgKGNsaWNrKT1cImFwcGx5QWxpZ25tZW50KCdjZW50ZXInKVwiXG4gICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiY3VycmVudEFsaWdubWVudCA9PT0gJ2NlbnRlcidcIlxuICAgICAgICB0aXRsZT1cIkNlbnRyYXJcIlxuICAgICAgPlxuICAgICAgICA8Ym1iLWljb24gaWNvbj1cImZvcm1hdF9hbGlnbl9jZW50ZXJcIiBbc2l6ZV09XCIyNFwiIC8+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgYm1iQnV0dG9uXG4gICAgICAgIGFwcGVhcmFuY2U9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgIHNpemU9XCJtaWNyb1wiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAoY2xpY2spPVwiYXBwbHlBbGlnbm1lbnQoJ3JpZ2h0JylcIlxuICAgICAgICBbY2xhc3MuYWN0aXZlXT1cImN1cnJlbnRBbGlnbm1lbnQgPT09ICdyaWdodCdcIlxuICAgICAgICB0aXRsZT1cIkFsaW5lYXIgYSBsYSBkZXJlY2hhXCJcbiAgICAgID5cbiAgICAgICAgPGJtYi1pY29uIGljb249XCJmb3JtYXRfYWxpZ25fcmlnaHRcIiBbc2l6ZV09XCIyNFwiIC8+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L3NwYW4+XG5cbiAgICA8c3BhbiBjbGFzcz1cImJtYl90ZXh0LWVkaXRvci1oZWFkZXItZ3JvdXBcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgYm1iQnV0dG9uXG4gICAgICAgIGFwcGVhcmFuY2U9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgIHNpemU9XCJtaWNyb1wiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAoY2xpY2spPVwiZXhlY0NvbW1hbmQoJ2luc2VydE9yZGVyZWRMaXN0JylcIlxuICAgICAgICB0aXRsZT1cIkxpc3RhIG51bWVyYWRhXCJcbiAgICAgID5cbiAgICAgICAgPGJtYi1pY29uIGljb249XCJmb3JtYXRfbGlzdF9udW1iZXJlZFwiIFtzaXplXT1cIjI0XCIgLz5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBibWJCdXR0b25cbiAgICAgICAgYXBwZWFyYW5jZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgc2l6ZT1cIm1pY3JvXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIChjbGljayk9XCJleGVjQ29tbWFuZCgnaW5zZXJ0VW5vcmRlcmVkTGlzdCcpXCJcbiAgICAgICAgdGl0bGU9XCJMaXN0YSBjb24gdmnDsWV0YXNcIlxuICAgICAgPlxuICAgICAgICA8Ym1iLWljb24gaWNvbj1cImZvcm1hdF9saXN0X2J1bGxldGVkXCIgW3NpemVdPVwiMjRcIiAvPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9zcGFuPlxuXG4gICAgPHNwYW4gY2xhc3M9XCJibWJfdGV4dC1lZGl0b3ItaGVhZGVyLWdyb3VwXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGJtYkJ1dHRvblxuICAgICAgICBhcHBlYXJhbmNlPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICBzaXplPVwibWljcm9cIlxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgKGNsaWNrKT1cImV4ZWNDb21tYW5kKCdpbmRlbnQnKVwiXG4gICAgICAgIHRpdGxlPVwiQXVtZW50YXIgc2FuZ3LDrWFcIlxuICAgICAgPlxuICAgICAgICA8Ym1iLWljb24gaWNvbj1cImZvcm1hdF9pbmRlbnRfaW5jcmVhc2VcIiBbc2l6ZV09XCIyNFwiIC8+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgYm1iQnV0dG9uXG4gICAgICAgIGFwcGVhcmFuY2U9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgIHNpemU9XCJtaWNyb1wiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAoY2xpY2spPVwiZXhlY0NvbW1hbmQoJ291dGRlbnQnKVwiXG4gICAgICAgIHRpdGxlPVwiRGlzbWludWlyIHNhbmdyw61hXCJcbiAgICAgID5cbiAgICAgICAgPGJtYi1pY29uIGljb249XCJmb3JtYXRfaW5kZW50X2RlY3JlYXNlXCIgW3NpemVdPVwiMjRcIiAvPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9zcGFuPlxuXG4gICAgPHNwYW4gY2xhc3M9XCJibWJfdGV4dC1lZGl0b3ItaGVhZGVyLWdyb3VwXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGJtYkJ1dHRvblxuICAgICAgICBhcHBlYXJhbmNlPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICBzaXplPVwibWljcm9cIlxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgKGNsaWNrKT1cIm9wZW5Qcm9tcHQoJ2xpbmsnLCAkZXZlbnQpXCJcbiAgICAgICAgdGl0bGU9XCJJbnNlcnRhciBlbmxhY2VcIlxuICAgICAgPlxuICAgICAgICA8Ym1iLWljb24gaWNvbj1cImxpbmtcIiBbc2l6ZV09XCIyNFwiIC8+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgYm1iQnV0dG9uXG4gICAgICAgIGFwcGVhcmFuY2U9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgIHNpemU9XCJtaWNyb1wiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAoY2xpY2spPVwib3BlblByb21wdCgnaW1hZ2UnLCAkZXZlbnQpXCJcbiAgICAgICAgdGl0bGU9XCJJbnNlcnRhciBpbWFnZW5cIlxuICAgICAgPlxuICAgICAgICA8Ym1iLWljb24gaWNvbj1cImltYWdlXCIgW3NpemVdPVwiMjRcIiAvPlxuICAgICAgPC9idXR0b24+XG4gICAgICA8IS0tIDxidXR0b24gYm1iQnV0dG9uIGFwcGVhcmFuY2U9XCJ0cmFuc3BhcmVudFwiIHNpemU9XCJtaWNyb1wiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwib3BlblRhYmxlRGlhbG9nKClcIiB0aXRsZT1cIkluc2VydGFyIHRhYmxhXCI+XG4gICAgICAgIDxibWItaWNvbiBpY29uPVwidGFibGVfY2hhcnRcIiBbc2l6ZV09XCIyNFwiLz5cbiAgICAgIDwvYnV0dG9uPiAtLT5cbiAgICA8L3NwYW4+XG4gICAgPHNwYW4gY2xhc3M9XCJibWJfdGV4dC1lZGl0b3ItaGVhZGVyLWdyb3VwXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGJtYkJ1dHRvblxuICAgICAgICBhcHBlYXJhbmNlPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICBzaXplPVwibWljcm9cIlxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgKGNsaWNrKT1cImNsZWFyRm9ybWF0dGluZygpXCJcbiAgICAgICAgdGl0bGU9XCJMaW1waWFyIGZvcm1hdG9cIlxuICAgICAgPlxuICAgICAgICA8Ym1iLWljb24gaWNvbj1cImZvcm1hdF9jbGVhclwiIFtzaXplXT1cIjI0XCIgLz5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvc3Bhbj5cbiAgPC9oZWFkZXI+XG5cbiAgPGRpdlxuICAgIGNsYXNzPVwiYm1iX3RleHQtZWRpdG9yLWNvbnRlbnRcIlxuICAgICNlZGl0b3JcbiAgICBjb250ZW50ZWRpdGFibGU9XCJ0cnVlXCJcbiAgICAoaW5wdXQpPVwidXBkYXRlQ29udGVudCgpXCJcbiAgICBbaW5uZXJIVE1MXT1cInNhbml0aXplZENvbnRlbnQoKVwiXG4gID48L2Rpdj5cbjwvc2VjdGlvbj5cblxuPCEtLSBEacOhbG9nbyBwYXJhIGRlZmluaXIgZmlsYXMgeSBjb2x1bW5hcyAtLT5cbjxkaWFsb2cgY2xhc3M9XCJkaWFsb2ctb3ZlcmxheVwiIFtvcGVuXT1cInNob3dUYWJsZURpYWxvZ1wiPlxuICA8ZGl2IGNsYXNzPVwiZGlhbG9nXCI+XG4gICAgPGgzPkluc2VydGFyIHRhYmxhPC9oMz5cbiAgICA8bGFiZWwgZm9yPVwicm93c1wiPkZpbGFzOjwvbGFiZWw+XG4gICAgPGlucHV0IHR5cGU9XCJudW1iZXJcIiBpZD1cInJvd3NcIiBtaW49XCIxXCIgbWF4PVwiMTBcIiAvPlxuXG4gICAgPGxhYmVsIGZvcj1cImNvbHVtbnNcIj5Db2x1bW5hczo8L2xhYmVsPlxuICAgIDxpbnB1dCB0eXBlPVwibnVtYmVyXCIgaWQ9XCJjb2x1bW5zXCIgbWluPVwiMVwiIG1heD1cIjEwXCIgLz5cblxuICAgIDxkaXYgY2xhc3M9XCJkaWFsb2ctYnV0dG9uc1wiPlxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImluc2VydFRhYmxlKClcIj5JbnNlcnRhcjwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImNsb3NlVGFibGVEaWFsb2coKVwiPkNhbmNlbGFyPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaWFsb2c+XG4iXX0=
|
package/esm2022/lib/components/utils/bmb-dropdown-content/bmb-dropdown-content.component.mjs
CHANGED
|
@@ -2,6 +2,7 @@ import { ChangeDetectionStrategy, Component, computed, input, model, output, sig
|
|
|
2
2
|
import { BmbCheckExternalLinkButtonComponent } from '../../bmb-check-external-link-button/bmb-check-external-link-button.component';
|
|
3
3
|
import { BmbIconComponent } from '../../bmb-icon/bmb-icon.component';
|
|
4
4
|
import { CommonModule } from '@angular/common';
|
|
5
|
+
import { TranslatePipe } from '../../../pipes/translations';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
6
7
|
import * as i1 from "@angular/common";
|
|
7
8
|
export class BmbDropdownContentComponent {
|
|
@@ -41,7 +42,7 @@ export class BmbDropdownContentComponent {
|
|
|
41
42
|
}
|
|
42
43
|
}
|
|
43
44
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BmbDropdownContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
44
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: BmbDropdownContentComponent, isStandalone: true, selector: "bmb-dropdown-content", inputs: { selectedOption: { classPropertyName: "selectedOption", publicName: "selectedOption", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, isKeyboardEvent: { classPropertyName: "isKeyboardEvent", publicName: "isKeyboardEvent", isSignal: true, isRequired: false, transformFunction: null }, enableFilter: { classPropertyName: "enableFilter", publicName: "enableFilter", isSignal: true, isRequired: false, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { items: "itemsChange", isKeyboardEvent: "isKeyboardEventChange", clickedItem: "clickedItem", isOpen: "isOpenChange" }, ngImport: i0, template: "<div class=\"bmb_dropdown-content-modal\" [tabindex]=\"1\">\n <ul class=\"bmb_dropdown-content-container\" [tabindex]=\"-1\">\n @if (enableFilter()) {\n <li class=\"bmb_dropdown-content-item bmb_dropdown-content-item-filter\">\n <input\n type=\"text\"\n class=\"bmb_dropdown-content-item-filter-input\"\n placeholder=\"Select an option\"\n (input)=\"filterList($event)\"\n />\n <bmb-icon\n class=\"bmb_dropdown-content-item-filter-icon\"\n icon=\"search\"\n [size]=\"24\"\n />\n </li>\n }\n @for (item of filteredItems(); track $index) {\n <li\n class=\"bmb_dropdown-content-item\"\n [ngClass]=\"{\n 'bmb_dropdown-content-item-selected': isSelected(item.value!)\n }\"\n [id]=\"item.idItem\"\n >\n <bmb-check-external-link-button\n [link]=\"item.url!\"\n [target]=\"item.target!\"\n (buttonClick)=\"handleDropdown(item)\"\n >\n @if (!!item.icon) {\n <bmb-icon\n class=\"bmb_dropdown-content-item-icon\"\n [icon]=\"item.icon\"\n [size]=\"24\"\n [dotNotification]=\"item.dotNotification\"\n />\n }\n <span class=\"bmb_dropdown-content-item-text\">\n {{ item.text }}\n </span>\n </bmb-check-external-link-button>\n </li>\n }\n </ul>\n</div>\n", styles: ["@font-face{font-family:Poppins-Light;font-style:normal;font-weight:300;src:url(/assets/fonts/Poppins/Poppins-ExtraLight.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Regular;font-style:normal;font-weight:400;src:url(/assets/fonts/Poppins/Poppins-Regular.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Bold;font-style:normal;font-weight:700;src:url(/assets/fonts/Poppins/Poppins-Bold.ttf) format(\"truetype\")}:root,:host{--font-display: \"Poppins-Regular\", sans-serif}.font-thin-1{font-family:Poppins-Thin,sans-serif;font-size:.625rem}.font-light-1{font-family:Poppins-Light,sans-serif;font-size:.625rem}.font-regular-1{font-family:Poppins-Regular,sans-serif;font-size:.625rem}.font-medium-1{font-family:Poppins-Medium,sans-serif;font-size:.625rem}.font-semibold-1{font-family:Poppins-Semibold,sans-serif;font-size:.625rem}.font-bold-1{font-family:Poppins-Bold,sans-serif;font-size:.625rem}.font-thin-2{font-family:Poppins-Thin,sans-serif;font-size:.6875rem}.font-light-2{font-family:Poppins-Light,sans-serif;font-size:.6875rem}.font-regular-2{font-family:Poppins-Regular,sans-serif;font-size:.6875rem}.font-medium-2{font-family:Poppins-Medium,sans-serif;font-size:.6875rem}.font-semibold-2{font-family:Poppins-Semibold,sans-serif;font-size:.6875rem}.font-bold-2{font-family:Poppins-Bold,sans-serif;font-size:.6875rem}.font-thin-3{font-family:Poppins-Thin,sans-serif;font-size:.75rem}.font-light-3{font-family:Poppins-Light,sans-serif;font-size:.75rem}.font-regular-3{font-family:Poppins-Regular,sans-serif;font-size:.75rem}.font-medium-3{font-family:Poppins-Medium,sans-serif;font-size:.75rem}.font-semibold-3{font-family:Poppins-Semibold,sans-serif;font-size:.75rem}.font-bold-3{font-family:Poppins-Bold,sans-serif;font-size:.75rem}.font-thin-4{font-family:Poppins-Thin,sans-serif;font-size:.875rem}.font-light-4{font-family:Poppins-Light,sans-serif;font-size:.875rem}.font-regular-4{font-family:Poppins-Regular,sans-serif;font-size:.875rem}.font-medium-4{font-family:Poppins-Medium,sans-serif;font-size:.875rem}.font-semibold-4{font-family:Poppins-Semibold,sans-serif;font-size:.875rem}.font-bold-4{font-family:Poppins-Bold,sans-serif;font-size:.875rem}.font-thin-4_5{font-family:Poppins-Thin,sans-serif;font-size:.9375rem}.font-light-4_5{font-family:Poppins-Light,sans-serif;font-size:.9375rem}.font-regular-4_5{font-family:Poppins-Regular,sans-serif;font-size:.9375rem}.font-medium-4_5{font-family:Poppins-Medium,sans-serif;font-size:.9375rem}.font-semibold-4_5{font-family:Poppins-Semibold,sans-serif;font-size:.9375rem}.font-bold-4_5{font-family:Poppins-Bold,sans-serif;font-size:.9375rem}.font-thin-5{font-family:Poppins-Thin,sans-serif;font-size:1rem}.font-light-5{font-family:Poppins-Light,sans-serif;font-size:1rem}.font-regular-5{font-family:Poppins-Regular,sans-serif;font-size:1rem}.font-medium-5{font-family:Poppins-Medium,sans-serif;font-size:1rem}.font-semibold-5{font-family:Poppins-Semibold,sans-serif;font-size:1rem}.font-bold-5{font-family:Poppins-Bold,sans-serif;font-size:1rem}.font-thin-6{font-family:Poppins-Thin,sans-serif;font-size:1.125rem}.font-light-6{font-family:Poppins-Light,sans-serif;font-size:1.125rem}.font-regular-6{font-family:Poppins-Regular,sans-serif;font-size:1.125rem}.font-medium-6{font-family:Poppins-Medium,sans-serif;font-size:1.125rem}.font-semibold-6{font-family:Poppins-Semibold,sans-serif;font-size:1.125rem}.font-bold-6{font-family:Poppins-Bold,sans-serif;font-size:1.125rem}.font-thin-7{font-family:Poppins-Thin,sans-serif;font-size:1.25rem}.font-light-7{font-family:Poppins-Light,sans-serif;font-size:1.25rem}.font-regular-7{font-family:Poppins-Regular,sans-serif;font-size:1.25rem}.font-medium-7{font-family:Poppins-Medium,sans-serif;font-size:1.25rem}.font-semibold-7{font-family:Poppins-Semibold,sans-serif;font-size:1.25rem}.font-bold-7{font-family:Poppins-Bold,sans-serif;font-size:1.25rem}.font-thin-8{font-family:Poppins-Thin,sans-serif;font-size:1.375rem}.font-light-8{font-family:Poppins-Light,sans-serif;font-size:1.375rem}.font-regular-8{font-family:Poppins-Regular,sans-serif;font-size:1.375rem}.font-medium-8{font-family:Poppins-Medium,sans-serif;font-size:1.375rem}.font-semibold-8{font-family:Poppins-Semibold,sans-serif;font-size:1.375rem}.font-bold-8{font-family:Poppins-Bold,sans-serif;font-size:1.375rem}.font-thin-9{font-family:Poppins-Thin,sans-serif;font-size:1.5rem}.font-light-9{font-family:Poppins-Light,sans-serif;font-size:1.5rem}.font-regular-9{font-family:Poppins-Regular,sans-serif;font-size:1.5rem}.font-medium-9{font-family:Poppins-Medium,sans-serif;font-size:1.5rem}.font-semibold-9{font-family:Poppins-Semibold,sans-serif;font-size:1.5rem}.font-bold-9{font-family:Poppins-Bold,sans-serif;font-size:1.5rem}.font-thin-10{font-family:Poppins-Thin,sans-serif;font-size:1.625rem}.font-light-10{font-family:Poppins-Light,sans-serif;font-size:1.625rem}.font-regular-10{font-family:Poppins-Regular,sans-serif;font-size:1.625rem}.font-medium-10{font-family:Poppins-Medium,sans-serif;font-size:1.625rem}.font-semibold-10{font-family:Poppins-Semibold,sans-serif;font-size:1.625rem}.font-bold-10{font-family:Poppins-Bold,sans-serif;font-size:1.625rem}.font-thin-11{font-family:Poppins-Thin,sans-serif;font-size:2.25rem}.font-light-11{font-family:Poppins-Light,sans-serif;font-size:2.25rem}.font-regular-11{font-family:Poppins-Regular,sans-serif;font-size:2.25rem}.font-medium-11{font-family:Poppins-Medium,sans-serif;font-size:2.25rem}.font-semibold-11{font-family:Poppins-Semibold,sans-serif;font-size:2.25rem}.font-bold-11{font-family:Poppins-Bold,sans-serif;font-size:2.25rem}.font-thin-12{font-family:Poppins-Thin,sans-serif;font-size:3rem}.font-light-12{font-family:Poppins-Light,sans-serif;font-size:3rem}.font-regular-12{font-family:Poppins-Regular,sans-serif;font-size:3rem}.font-medium-12{font-family:Poppins-Medium,sans-serif;font-size:3rem}.font-semibold-12{font-family:Poppins-Semibold,sans-serif;font-size:3rem}.font-bold-12{font-family:Poppins-Bold,sans-serif;font-size:3rem}.bmb_dropdown-content-modal{background-color:var(--containers-main);border:0;z-index:1;box-shadow:var(--bmb-box-shadow-3);max-height:18rem;overflow:auto;width:100%;border-radius:.5rem;padding:0;margin:.5rem 0 0}.bmb_dropdown-content-container{list-style:none;padding:0;margin:0}.bmb_dropdown-content-item{color:var(--menu_select-label-menu-inactive)}.bmb_dropdown-content-item .bmb_check-external-link-button-element{display:flex;align-items:center;background-color:transparent;border:none;padding:.5rem 1rem;text-decoration:none;width:100%;height:3rem;gap:var(--bmb-spacing-m)}.bmb_dropdown-content-item .bmb_check-external-link-button-element:hover,.bmb_dropdown-content-item .bmb_check-external-link-button-element:focus,.bmb_dropdown-content-item .bmb_check-external-link-button-element:focus-visible{background-color:var(--menu_select-on-surface-hovered);outline:0 none}.bmb_dropdown-content-item-selected{color:var(--menu_select-label-menu-active)}.bmb_dropdown-content-item-selected .bmb_check-external-link-button-element{background-color:var(--menu_select-surface-activated)}.bmb_dropdown-content-item-selected .bmb_check-external-link-button-element:hover,.bmb_dropdown-content-item-selected .bmb_check-external-link-button-element:focus,.bmb_dropdown-content-item-selected .bmb_check-external-link-button-element:focus-visible{color:var(--menu_select-label-menu-inactive)}.bmb_dropdown-content-item-text{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:Poppins-Regular,sans-serif;font-size:.875rem}.bmb_dropdown-content-item-filter{position:sticky;top:0;left:0}.bmb_dropdown-content-item-filter-icon{position:absolute;left:.5rem;top:.5rem}.bmb_dropdown-content-item-filter-input{border-radius:.5rem .5rem 0 0;border:.0625rem solid var(--general_contrasts-50);background-color:var(--general_contrasts-input-background);padding:.5rem .5rem .5rem 3rem;color:var(--menu_select-label-menu-inactive);width:100%}.bmb_dropdown-content-item-filter-input:hover,.bmb_dropdown-content-item-filter-input:focus,.bmb_dropdown-content-item-filter-input:focus-visible{outline:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: BmbCheckExternalLinkButtonComponent, selector: "bmb-check-external-link-button", inputs: ["idElement", "link", "target", "disabled", "buttonName"], outputs: ["buttonPress", "buttonClick", "buttonKeyPress"] }, { kind: "component", type: BmbIconComponent, selector: "bmb-icon", inputs: ["icon", "materialIcon", "styleIcon", "isFill", "fontWeight", "size", "alt", "dotNotification"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
45
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: BmbDropdownContentComponent, isStandalone: true, selector: "bmb-dropdown-content", inputs: { selectedOption: { classPropertyName: "selectedOption", publicName: "selectedOption", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, isKeyboardEvent: { classPropertyName: "isKeyboardEvent", publicName: "isKeyboardEvent", isSignal: true, isRequired: false, transformFunction: null }, enableFilter: { classPropertyName: "enableFilter", publicName: "enableFilter", isSignal: true, isRequired: false, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { items: "itemsChange", isKeyboardEvent: "isKeyboardEventChange", clickedItem: "clickedItem", isOpen: "isOpenChange" }, ngImport: i0, template: "<div class=\"bmb_dropdown-content-modal\" [tabindex]=\"1\">\n <ul class=\"bmb_dropdown-content-container\" [tabindex]=\"-1\">\n @if (enableFilter()) {\n <li class=\"bmb_dropdown-content-item bmb_dropdown-content-item-filter\">\n <input\n type=\"text\"\n class=\"bmb_dropdown-content-item-filter-input\"\n [placeholder]=\"'dropdown.menu.filter_placeholder' | translate\"\n (input)=\"filterList($event)\"\n />\n <bmb-icon\n class=\"bmb_dropdown-content-item-filter-icon\"\n icon=\"search\"\n [size]=\"24\"\n />\n </li>\n }\n @for (item of filteredItems(); track $index) {\n <li\n class=\"bmb_dropdown-content-item\"\n [ngClass]=\"{\n 'bmb_dropdown-content-item-selected': isSelected(item.value!)\n }\"\n [id]=\"item.idItem\"\n >\n <bmb-check-external-link-button\n [link]=\"item.url!\"\n [target]=\"item.target!\"\n (buttonClick)=\"handleDropdown(item)\"\n >\n @if (!!item.icon) {\n <bmb-icon\n class=\"bmb_dropdown-content-item-icon\"\n [icon]=\"item.icon\"\n [size]=\"24\"\n [dotNotification]=\"item.dotNotification\"\n />\n }\n <span class=\"bmb_dropdown-content-item-text\">\n {{ item.text }}\n </span>\n </bmb-check-external-link-button>\n </li>\n }\n </ul>\n</div>\n", styles: ["@font-face{font-family:Poppins-Light;font-style:normal;font-weight:300;src:url(/assets/fonts/Poppins/Poppins-ExtraLight.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Regular;font-style:normal;font-weight:400;src:url(/assets/fonts/Poppins/Poppins-Regular.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Bold;font-style:normal;font-weight:700;src:url(/assets/fonts/Poppins/Poppins-Bold.ttf) format(\"truetype\")}:root,:host{--font-display: \"Poppins-Regular\", sans-serif}.font-thin-1{font-family:Poppins-Thin,sans-serif;font-size:.625rem}.font-light-1{font-family:Poppins-Light,sans-serif;font-size:.625rem}.font-regular-1{font-family:Poppins-Regular,sans-serif;font-size:.625rem}.font-medium-1{font-family:Poppins-Medium,sans-serif;font-size:.625rem}.font-semibold-1{font-family:Poppins-Semibold,sans-serif;font-size:.625rem}.font-bold-1{font-family:Poppins-Bold,sans-serif;font-size:.625rem}.font-thin-2{font-family:Poppins-Thin,sans-serif;font-size:.6875rem}.font-light-2{font-family:Poppins-Light,sans-serif;font-size:.6875rem}.font-regular-2{font-family:Poppins-Regular,sans-serif;font-size:.6875rem}.font-medium-2{font-family:Poppins-Medium,sans-serif;font-size:.6875rem}.font-semibold-2{font-family:Poppins-Semibold,sans-serif;font-size:.6875rem}.font-bold-2{font-family:Poppins-Bold,sans-serif;font-size:.6875rem}.font-thin-3{font-family:Poppins-Thin,sans-serif;font-size:.75rem}.font-light-3{font-family:Poppins-Light,sans-serif;font-size:.75rem}.font-regular-3{font-family:Poppins-Regular,sans-serif;font-size:.75rem}.font-medium-3{font-family:Poppins-Medium,sans-serif;font-size:.75rem}.font-semibold-3{font-family:Poppins-Semibold,sans-serif;font-size:.75rem}.font-bold-3{font-family:Poppins-Bold,sans-serif;font-size:.75rem}.font-thin-4{font-family:Poppins-Thin,sans-serif;font-size:.875rem}.font-light-4{font-family:Poppins-Light,sans-serif;font-size:.875rem}.font-regular-4{font-family:Poppins-Regular,sans-serif;font-size:.875rem}.font-medium-4{font-family:Poppins-Medium,sans-serif;font-size:.875rem}.font-semibold-4{font-family:Poppins-Semibold,sans-serif;font-size:.875rem}.font-bold-4{font-family:Poppins-Bold,sans-serif;font-size:.875rem}.font-thin-4_5{font-family:Poppins-Thin,sans-serif;font-size:.9375rem}.font-light-4_5{font-family:Poppins-Light,sans-serif;font-size:.9375rem}.font-regular-4_5{font-family:Poppins-Regular,sans-serif;font-size:.9375rem}.font-medium-4_5{font-family:Poppins-Medium,sans-serif;font-size:.9375rem}.font-semibold-4_5{font-family:Poppins-Semibold,sans-serif;font-size:.9375rem}.font-bold-4_5{font-family:Poppins-Bold,sans-serif;font-size:.9375rem}.font-thin-5{font-family:Poppins-Thin,sans-serif;font-size:1rem}.font-light-5{font-family:Poppins-Light,sans-serif;font-size:1rem}.font-regular-5{font-family:Poppins-Regular,sans-serif;font-size:1rem}.font-medium-5{font-family:Poppins-Medium,sans-serif;font-size:1rem}.font-semibold-5{font-family:Poppins-Semibold,sans-serif;font-size:1rem}.font-bold-5{font-family:Poppins-Bold,sans-serif;font-size:1rem}.font-thin-6{font-family:Poppins-Thin,sans-serif;font-size:1.125rem}.font-light-6{font-family:Poppins-Light,sans-serif;font-size:1.125rem}.font-regular-6{font-family:Poppins-Regular,sans-serif;font-size:1.125rem}.font-medium-6{font-family:Poppins-Medium,sans-serif;font-size:1.125rem}.font-semibold-6{font-family:Poppins-Semibold,sans-serif;font-size:1.125rem}.font-bold-6{font-family:Poppins-Bold,sans-serif;font-size:1.125rem}.font-thin-7{font-family:Poppins-Thin,sans-serif;font-size:1.25rem}.font-light-7{font-family:Poppins-Light,sans-serif;font-size:1.25rem}.font-regular-7{font-family:Poppins-Regular,sans-serif;font-size:1.25rem}.font-medium-7{font-family:Poppins-Medium,sans-serif;font-size:1.25rem}.font-semibold-7{font-family:Poppins-Semibold,sans-serif;font-size:1.25rem}.font-bold-7{font-family:Poppins-Bold,sans-serif;font-size:1.25rem}.font-thin-8{font-family:Poppins-Thin,sans-serif;font-size:1.375rem}.font-light-8{font-family:Poppins-Light,sans-serif;font-size:1.375rem}.font-regular-8{font-family:Poppins-Regular,sans-serif;font-size:1.375rem}.font-medium-8{font-family:Poppins-Medium,sans-serif;font-size:1.375rem}.font-semibold-8{font-family:Poppins-Semibold,sans-serif;font-size:1.375rem}.font-bold-8{font-family:Poppins-Bold,sans-serif;font-size:1.375rem}.font-thin-9{font-family:Poppins-Thin,sans-serif;font-size:1.5rem}.font-light-9{font-family:Poppins-Light,sans-serif;font-size:1.5rem}.font-regular-9{font-family:Poppins-Regular,sans-serif;font-size:1.5rem}.font-medium-9{font-family:Poppins-Medium,sans-serif;font-size:1.5rem}.font-semibold-9{font-family:Poppins-Semibold,sans-serif;font-size:1.5rem}.font-bold-9{font-family:Poppins-Bold,sans-serif;font-size:1.5rem}.font-thin-10{font-family:Poppins-Thin,sans-serif;font-size:1.625rem}.font-light-10{font-family:Poppins-Light,sans-serif;font-size:1.625rem}.font-regular-10{font-family:Poppins-Regular,sans-serif;font-size:1.625rem}.font-medium-10{font-family:Poppins-Medium,sans-serif;font-size:1.625rem}.font-semibold-10{font-family:Poppins-Semibold,sans-serif;font-size:1.625rem}.font-bold-10{font-family:Poppins-Bold,sans-serif;font-size:1.625rem}.font-thin-11{font-family:Poppins-Thin,sans-serif;font-size:2.25rem}.font-light-11{font-family:Poppins-Light,sans-serif;font-size:2.25rem}.font-regular-11{font-family:Poppins-Regular,sans-serif;font-size:2.25rem}.font-medium-11{font-family:Poppins-Medium,sans-serif;font-size:2.25rem}.font-semibold-11{font-family:Poppins-Semibold,sans-serif;font-size:2.25rem}.font-bold-11{font-family:Poppins-Bold,sans-serif;font-size:2.25rem}.font-thin-12{font-family:Poppins-Thin,sans-serif;font-size:3rem}.font-light-12{font-family:Poppins-Light,sans-serif;font-size:3rem}.font-regular-12{font-family:Poppins-Regular,sans-serif;font-size:3rem}.font-medium-12{font-family:Poppins-Medium,sans-serif;font-size:3rem}.font-semibold-12{font-family:Poppins-Semibold,sans-serif;font-size:3rem}.font-bold-12{font-family:Poppins-Bold,sans-serif;font-size:3rem}.bmb_dropdown-content-modal{background-color:var(--containers-main);border:0;z-index:1;box-shadow:var(--bmb-box-shadow-3);max-height:18rem;overflow:auto;width:100%;border-radius:.5rem;padding:0;margin:.5rem 0 0}.bmb_dropdown-content-container{list-style:none;padding:0;margin:0}.bmb_dropdown-content-item{color:var(--menu_select-label-menu-inactive)}.bmb_dropdown-content-item .bmb_check-external-link-button-element{display:flex;align-items:center;background-color:transparent;border:none;padding:.5rem 1rem;text-decoration:none;width:100%;height:3rem;gap:var(--bmb-spacing-m)}.bmb_dropdown-content-item .bmb_check-external-link-button-element:hover,.bmb_dropdown-content-item .bmb_check-external-link-button-element:focus,.bmb_dropdown-content-item .bmb_check-external-link-button-element:focus-visible{background-color:var(--menu_select-on-surface-hovered);outline:0 none}.bmb_dropdown-content-item-selected{color:var(--menu_select-label-menu-active)}.bmb_dropdown-content-item-selected .bmb_check-external-link-button-element{background-color:var(--menu_select-surface-activated)}.bmb_dropdown-content-item-selected .bmb_check-external-link-button-element:hover,.bmb_dropdown-content-item-selected .bmb_check-external-link-button-element:focus,.bmb_dropdown-content-item-selected .bmb_check-external-link-button-element:focus-visible{color:var(--menu_select-label-menu-inactive)}.bmb_dropdown-content-item-text{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:Poppins-Regular,sans-serif;font-size:.875rem}.bmb_dropdown-content-item-filter{position:sticky;top:0;left:0;background-color:var(--containers-main)}.bmb_dropdown-content-item-filter-icon{position:absolute;left:.5rem;top:.5rem}.bmb_dropdown-content-item-filter-input{border-radius:.5rem .5rem 0 0;border:.0625rem solid var(--general_contrasts-50);background-color:var(--general_contrasts-input-background);padding:.5rem .5rem .5rem 3rem;color:var(--menu_select-label-menu-inactive);width:100%}.bmb_dropdown-content-item-filter-input:hover,.bmb_dropdown-content-item-filter-input:focus,.bmb_dropdown-content-item-filter-input:focus-visible{outline:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: BmbCheckExternalLinkButtonComponent, selector: "bmb-check-external-link-button", inputs: ["idElement", "link", "target", "disabled", "buttonName"], outputs: ["buttonPress", "buttonClick", "buttonKeyPress"] }, { kind: "component", type: BmbIconComponent, selector: "bmb-icon", inputs: ["icon", "materialIcon", "styleIcon", "isFill", "fontWeight", "size", "alt", "dotNotification"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
45
46
|
}
|
|
46
47
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BmbDropdownContentComponent, decorators: [{
|
|
47
48
|
type: Component,
|
|
@@ -49,6 +50,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
49
50
|
CommonModule,
|
|
50
51
|
BmbCheckExternalLinkButtonComponent,
|
|
51
52
|
BmbIconComponent,
|
|
52
|
-
|
|
53
|
+
TranslatePipe,
|
|
54
|
+
], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"bmb_dropdown-content-modal\" [tabindex]=\"1\">\n <ul class=\"bmb_dropdown-content-container\" [tabindex]=\"-1\">\n @if (enableFilter()) {\n <li class=\"bmb_dropdown-content-item bmb_dropdown-content-item-filter\">\n <input\n type=\"text\"\n class=\"bmb_dropdown-content-item-filter-input\"\n [placeholder]=\"'dropdown.menu.filter_placeholder' | translate\"\n (input)=\"filterList($event)\"\n />\n <bmb-icon\n class=\"bmb_dropdown-content-item-filter-icon\"\n icon=\"search\"\n [size]=\"24\"\n />\n </li>\n }\n @for (item of filteredItems(); track $index) {\n <li\n class=\"bmb_dropdown-content-item\"\n [ngClass]=\"{\n 'bmb_dropdown-content-item-selected': isSelected(item.value!)\n }\"\n [id]=\"item.idItem\"\n >\n <bmb-check-external-link-button\n [link]=\"item.url!\"\n [target]=\"item.target!\"\n (buttonClick)=\"handleDropdown(item)\"\n >\n @if (!!item.icon) {\n <bmb-icon\n class=\"bmb_dropdown-content-item-icon\"\n [icon]=\"item.icon\"\n [size]=\"24\"\n [dotNotification]=\"item.dotNotification\"\n />\n }\n <span class=\"bmb_dropdown-content-item-text\">\n {{ item.text }}\n </span>\n </bmb-check-external-link-button>\n </li>\n }\n </ul>\n</div>\n", styles: ["@font-face{font-family:Poppins-Light;font-style:normal;font-weight:300;src:url(/assets/fonts/Poppins/Poppins-ExtraLight.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Regular;font-style:normal;font-weight:400;src:url(/assets/fonts/Poppins/Poppins-Regular.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Bold;font-style:normal;font-weight:700;src:url(/assets/fonts/Poppins/Poppins-Bold.ttf) format(\"truetype\")}:root,:host{--font-display: \"Poppins-Regular\", sans-serif}.font-thin-1{font-family:Poppins-Thin,sans-serif;font-size:.625rem}.font-light-1{font-family:Poppins-Light,sans-serif;font-size:.625rem}.font-regular-1{font-family:Poppins-Regular,sans-serif;font-size:.625rem}.font-medium-1{font-family:Poppins-Medium,sans-serif;font-size:.625rem}.font-semibold-1{font-family:Poppins-Semibold,sans-serif;font-size:.625rem}.font-bold-1{font-family:Poppins-Bold,sans-serif;font-size:.625rem}.font-thin-2{font-family:Poppins-Thin,sans-serif;font-size:.6875rem}.font-light-2{font-family:Poppins-Light,sans-serif;font-size:.6875rem}.font-regular-2{font-family:Poppins-Regular,sans-serif;font-size:.6875rem}.font-medium-2{font-family:Poppins-Medium,sans-serif;font-size:.6875rem}.font-semibold-2{font-family:Poppins-Semibold,sans-serif;font-size:.6875rem}.font-bold-2{font-family:Poppins-Bold,sans-serif;font-size:.6875rem}.font-thin-3{font-family:Poppins-Thin,sans-serif;font-size:.75rem}.font-light-3{font-family:Poppins-Light,sans-serif;font-size:.75rem}.font-regular-3{font-family:Poppins-Regular,sans-serif;font-size:.75rem}.font-medium-3{font-family:Poppins-Medium,sans-serif;font-size:.75rem}.font-semibold-3{font-family:Poppins-Semibold,sans-serif;font-size:.75rem}.font-bold-3{font-family:Poppins-Bold,sans-serif;font-size:.75rem}.font-thin-4{font-family:Poppins-Thin,sans-serif;font-size:.875rem}.font-light-4{font-family:Poppins-Light,sans-serif;font-size:.875rem}.font-regular-4{font-family:Poppins-Regular,sans-serif;font-size:.875rem}.font-medium-4{font-family:Poppins-Medium,sans-serif;font-size:.875rem}.font-semibold-4{font-family:Poppins-Semibold,sans-serif;font-size:.875rem}.font-bold-4{font-family:Poppins-Bold,sans-serif;font-size:.875rem}.font-thin-4_5{font-family:Poppins-Thin,sans-serif;font-size:.9375rem}.font-light-4_5{font-family:Poppins-Light,sans-serif;font-size:.9375rem}.font-regular-4_5{font-family:Poppins-Regular,sans-serif;font-size:.9375rem}.font-medium-4_5{font-family:Poppins-Medium,sans-serif;font-size:.9375rem}.font-semibold-4_5{font-family:Poppins-Semibold,sans-serif;font-size:.9375rem}.font-bold-4_5{font-family:Poppins-Bold,sans-serif;font-size:.9375rem}.font-thin-5{font-family:Poppins-Thin,sans-serif;font-size:1rem}.font-light-5{font-family:Poppins-Light,sans-serif;font-size:1rem}.font-regular-5{font-family:Poppins-Regular,sans-serif;font-size:1rem}.font-medium-5{font-family:Poppins-Medium,sans-serif;font-size:1rem}.font-semibold-5{font-family:Poppins-Semibold,sans-serif;font-size:1rem}.font-bold-5{font-family:Poppins-Bold,sans-serif;font-size:1rem}.font-thin-6{font-family:Poppins-Thin,sans-serif;font-size:1.125rem}.font-light-6{font-family:Poppins-Light,sans-serif;font-size:1.125rem}.font-regular-6{font-family:Poppins-Regular,sans-serif;font-size:1.125rem}.font-medium-6{font-family:Poppins-Medium,sans-serif;font-size:1.125rem}.font-semibold-6{font-family:Poppins-Semibold,sans-serif;font-size:1.125rem}.font-bold-6{font-family:Poppins-Bold,sans-serif;font-size:1.125rem}.font-thin-7{font-family:Poppins-Thin,sans-serif;font-size:1.25rem}.font-light-7{font-family:Poppins-Light,sans-serif;font-size:1.25rem}.font-regular-7{font-family:Poppins-Regular,sans-serif;font-size:1.25rem}.font-medium-7{font-family:Poppins-Medium,sans-serif;font-size:1.25rem}.font-semibold-7{font-family:Poppins-Semibold,sans-serif;font-size:1.25rem}.font-bold-7{font-family:Poppins-Bold,sans-serif;font-size:1.25rem}.font-thin-8{font-family:Poppins-Thin,sans-serif;font-size:1.375rem}.font-light-8{font-family:Poppins-Light,sans-serif;font-size:1.375rem}.font-regular-8{font-family:Poppins-Regular,sans-serif;font-size:1.375rem}.font-medium-8{font-family:Poppins-Medium,sans-serif;font-size:1.375rem}.font-semibold-8{font-family:Poppins-Semibold,sans-serif;font-size:1.375rem}.font-bold-8{font-family:Poppins-Bold,sans-serif;font-size:1.375rem}.font-thin-9{font-family:Poppins-Thin,sans-serif;font-size:1.5rem}.font-light-9{font-family:Poppins-Light,sans-serif;font-size:1.5rem}.font-regular-9{font-family:Poppins-Regular,sans-serif;font-size:1.5rem}.font-medium-9{font-family:Poppins-Medium,sans-serif;font-size:1.5rem}.font-semibold-9{font-family:Poppins-Semibold,sans-serif;font-size:1.5rem}.font-bold-9{font-family:Poppins-Bold,sans-serif;font-size:1.5rem}.font-thin-10{font-family:Poppins-Thin,sans-serif;font-size:1.625rem}.font-light-10{font-family:Poppins-Light,sans-serif;font-size:1.625rem}.font-regular-10{font-family:Poppins-Regular,sans-serif;font-size:1.625rem}.font-medium-10{font-family:Poppins-Medium,sans-serif;font-size:1.625rem}.font-semibold-10{font-family:Poppins-Semibold,sans-serif;font-size:1.625rem}.font-bold-10{font-family:Poppins-Bold,sans-serif;font-size:1.625rem}.font-thin-11{font-family:Poppins-Thin,sans-serif;font-size:2.25rem}.font-light-11{font-family:Poppins-Light,sans-serif;font-size:2.25rem}.font-regular-11{font-family:Poppins-Regular,sans-serif;font-size:2.25rem}.font-medium-11{font-family:Poppins-Medium,sans-serif;font-size:2.25rem}.font-semibold-11{font-family:Poppins-Semibold,sans-serif;font-size:2.25rem}.font-bold-11{font-family:Poppins-Bold,sans-serif;font-size:2.25rem}.font-thin-12{font-family:Poppins-Thin,sans-serif;font-size:3rem}.font-light-12{font-family:Poppins-Light,sans-serif;font-size:3rem}.font-regular-12{font-family:Poppins-Regular,sans-serif;font-size:3rem}.font-medium-12{font-family:Poppins-Medium,sans-serif;font-size:3rem}.font-semibold-12{font-family:Poppins-Semibold,sans-serif;font-size:3rem}.font-bold-12{font-family:Poppins-Bold,sans-serif;font-size:3rem}.bmb_dropdown-content-modal{background-color:var(--containers-main);border:0;z-index:1;box-shadow:var(--bmb-box-shadow-3);max-height:18rem;overflow:auto;width:100%;border-radius:.5rem;padding:0;margin:.5rem 0 0}.bmb_dropdown-content-container{list-style:none;padding:0;margin:0}.bmb_dropdown-content-item{color:var(--menu_select-label-menu-inactive)}.bmb_dropdown-content-item .bmb_check-external-link-button-element{display:flex;align-items:center;background-color:transparent;border:none;padding:.5rem 1rem;text-decoration:none;width:100%;height:3rem;gap:var(--bmb-spacing-m)}.bmb_dropdown-content-item .bmb_check-external-link-button-element:hover,.bmb_dropdown-content-item .bmb_check-external-link-button-element:focus,.bmb_dropdown-content-item .bmb_check-external-link-button-element:focus-visible{background-color:var(--menu_select-on-surface-hovered);outline:0 none}.bmb_dropdown-content-item-selected{color:var(--menu_select-label-menu-active)}.bmb_dropdown-content-item-selected .bmb_check-external-link-button-element{background-color:var(--menu_select-surface-activated)}.bmb_dropdown-content-item-selected .bmb_check-external-link-button-element:hover,.bmb_dropdown-content-item-selected .bmb_check-external-link-button-element:focus,.bmb_dropdown-content-item-selected .bmb_check-external-link-button-element:focus-visible{color:var(--menu_select-label-menu-inactive)}.bmb_dropdown-content-item-text{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:Poppins-Regular,sans-serif;font-size:.875rem}.bmb_dropdown-content-item-filter{position:sticky;top:0;left:0;background-color:var(--containers-main)}.bmb_dropdown-content-item-filter-icon{position:absolute;left:.5rem;top:.5rem}.bmb_dropdown-content-item-filter-input{border-radius:.5rem .5rem 0 0;border:.0625rem solid var(--general_contrasts-50);background-color:var(--general_contrasts-input-background);padding:.5rem .5rem .5rem 3rem;color:var(--menu_select-label-menu-inactive);width:100%}.bmb_dropdown-content-item-filter-input:hover,.bmb_dropdown-content-item-filter-input:focus,.bmb_dropdown-content-item-filter-input:focus-visible{outline:none}\n"] }]
|
|
53
55
|
}] });
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm1iLWRyb3Bkb3duLWNvbnRlbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHMtbmcvc3JjL2xpYi9jb21wb25lbnRzL3V0aWxzL2JtYi1kcm9wZG93bi1jb250ZW50L2JtYi1kcm9wZG93bi1jb250ZW50LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RzLW5nL3NyYy9saWIvY29tcG9uZW50cy91dGlscy9ibWItZHJvcGRvd24tY29udGVudC9ibWItZHJvcGRvd24tY29udGVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsS0FBSyxFQUNMLEtBQUssRUFDTCxNQUFNLEVBQ04sTUFBTSxFQUNOLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSwrRUFBK0UsQ0FBQztBQUNwSSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUVyRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7QUFnQjVELE1BQU0sT0FBTywyQkFBMkI7SUFkeEM7UUFlRSxtQkFBYyxHQUFHLEtBQUssRUFBcUIsQ0FBQyxDQUFDLFVBQVU7UUFDdkQsVUFBSyxHQUFHLEtBQUssQ0FBa0IsRUFBRSxDQUFDLENBQUM7UUFDbkMsb0JBQWUsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUMsQ0FBQyxVQUFVO1FBQ25ELGlCQUFZLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBRXJDLGdCQUFXLEdBQUcsTUFBTSxFQUFpQixDQUFDO1FBRXRDLFdBQU0sR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUMsQ0FBQyxhQUFhO1FBRTdDLGtCQUFhLEdBQUcsUUFBUSxDQUFrQixHQUFHLEVBQUU7WUFDN0MsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxLQUFLLEVBQUUsRUFBRTtnQkFDckQsT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7b0JBQ2xDLE9BQU8sQ0FDTCxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQzt3QkFDM0QsSUFBSSxDQUFDLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7d0JBQzdELElBQUksQ0FBQyxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQ3JFLENBQUM7Z0JBQ0osQ0FBQyxDQUFDLENBQUM7YUFDSjtZQUVELE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3RCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsaUJBQVksR0FBRyxNQUFNLENBQVMsRUFBRSxDQUFDLENBQUM7S0FxQm5DO0lBbkJDLFVBQVUsQ0FBQyxLQUFZO1FBQ3JCLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUEwQixDQUFDO1FBQy9DLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDOUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUFZO1FBQ3JCLElBQUksT0FBTyxJQUFJLENBQUMsY0FBYyxFQUFFLEtBQUssUUFBUTtZQUMzQyxPQUFPLElBQUksS0FBSyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFFeEMsT0FBTyxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssQ0FBQztJQUN4RCxDQUFDO0lBRUQsY0FBYyxDQUFDLElBQW1CO1FBQ2hDLElBQUksSUFBSSxFQUFFLE1BQU0sRUFBRTtZQUNoQixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDZCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUM3QjtJQUNILENBQUM7K0dBM0NVLDJCQUEyQjttR0FBM0IsMkJBQTJCLHM0QkM5QnhDLG8rQ0E4Q0Esc2dRRDFCSSxZQUFZLDZIQUNaLG1DQUFtQyx5TUFDbkMsZ0JBQWdCLHlKQUNoQixhQUFhOzs0RkFPSiwyQkFBMkI7a0JBZHZDLFNBQVM7K0JBQ0Usc0JBQXNCLGNBQ3BCLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLG1DQUFtQzt3QkFDbkMsZ0JBQWdCO3dCQUNoQixhQUFhO3FCQUNkLGlCQUdjLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBjb21wdXRlZCxcbiAgaW5wdXQsXG4gIG1vZGVsLFxuICBvdXRwdXQsXG4gIHNpZ25hbCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQm1iQ2hlY2tFeHRlcm5hbExpbmtCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9ibWItY2hlY2stZXh0ZXJuYWwtbGluay1idXR0b24vYm1iLWNoZWNrLWV4dGVybmFsLWxpbmstYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCbWJJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYm1iLWljb24vYm1iLWljb24uY29tcG9uZW50JztcbmltcG9ydCB7IElEcm9wZG93bkl0ZW0gfSBmcm9tICcuLi8uLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgVHJhbnNsYXRlUGlwZSB9IGZyb20gJy4uLy4uLy4uL3BpcGVzL3RyYW5zbGF0aW9ucyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JtYi1kcm9wZG93bi1jb250ZW50JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBCbWJDaGVja0V4dGVybmFsTGlua0J1dHRvbkNvbXBvbmVudCxcbiAgICBCbWJJY29uQ29tcG9uZW50LFxuICAgIFRyYW5zbGF0ZVBpcGUsXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9ibWItZHJvcGRvd24tY29udGVudC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9ibWItZHJvcGRvd24tY29udGVudC5jb21wb25lbnQuc2NzcycsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBCbWJEcm9wZG93bkNvbnRlbnRDb21wb25lbnQge1xuICBzZWxlY3RlZE9wdGlvbiA9IGlucHV0PHN0cmluZyB8IHN0cmluZ1tdPigpOyAvL0ludGVybmFsXG4gIGl0ZW1zID0gbW9kZWw8SURyb3Bkb3duSXRlbVtdPihbXSk7XG4gIGlzS2V5Ym9hcmRFdmVudCA9IG1vZGVsPGJvb2xlYW4+KGZhbHNlKTsgLy9JbnRlcm5hbFxuICBlbmFibGVGaWx0ZXIgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG5cbiAgY2xpY2tlZEl0ZW0gPSBvdXRwdXQ8SURyb3Bkb3duSXRlbT4oKTtcblxuICBpc09wZW4gPSBtb2RlbDxib29sZWFuPihmYWxzZSk7IC8vcmVtb3ZlIHRoaXNcblxuICBmaWx0ZXJlZEl0ZW1zID0gY29tcHV0ZWQ8SURyb3Bkb3duSXRlbVtdPigoKSA9PiB7XG4gICAgaWYgKHRoaXMuZW5hYmxlRmlsdGVyKCkgJiYgdGhpcy5maWx0ZXJTdHJpbmcoKSAhPT0gJycpIHtcbiAgICAgIHJldHVybiB0aGlzLml0ZW1zKCkuZmlsdGVyKChpdGVtKSA9PiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgaXRlbS50ZXh0LnRvTG9jYWxlTG93ZXJDYXNlKCkuaW5jbHVkZXModGhpcy5maWx0ZXJTdHJpbmcoKSkgfHxcbiAgICAgICAgICBpdGVtLnZhbHVlPy50b0xvY2FsZUxvd2VyQ2FzZSgpLmluY2x1ZGVzKHRoaXMuZmlsdGVyU3RyaW5nKCkpIHx8XG4gICAgICAgICAgaXRlbS5zZWxlY3RlZFRleHQ/LnRvTG9jYWxlTG93ZXJDYXNlKCkuaW5jbHVkZXModGhpcy5maWx0ZXJTdHJpbmcoKSlcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLml0ZW1zKCk7XG4gIH0pO1xuICBmaWx0ZXJTdHJpbmcgPSBzaWduYWw8c3RyaW5nPignJyk7XG5cbiAgZmlsdGVyTGlzdChldmVudDogRXZlbnQpIHtcbiAgICBjb25zdCBpbnB1dCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICAgIGNvbnN0IGZpbHRlclZhbHVlID0gaW5wdXQudmFsdWUudG9Mb3dlckNhc2UoKTtcbiAgICB0aGlzLmZpbHRlclN0cmluZy5zZXQoZmlsdGVyVmFsdWUpO1xuICB9XG5cbiAgaXNTZWxlY3RlZChpdGVtOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBpZiAodHlwZW9mIHRoaXMuc2VsZWN0ZWRPcHRpb24oKSA9PT0gJ3N0cmluZycpXG4gICAgICByZXR1cm4gaXRlbSA9PT0gdGhpcy5zZWxlY3RlZE9wdGlvbigpO1xuXG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRPcHRpb24oKT8uaW5jbHVkZXMoaXRlbSkgfHwgZmFsc2U7XG4gIH1cblxuICBoYW5kbGVEcm9wZG93bihpdGVtOiBJRHJvcGRvd25JdGVtKSB7XG4gICAgaWYgKGl0ZW0/LmFjdGlvbikge1xuICAgICAgaXRlbS5hY3Rpb24oKTtcbiAgICAgIHRoaXMuY2xpY2tlZEl0ZW0uZW1pdChpdGVtKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJibWJfZHJvcGRvd24tY29udGVudC1tb2RhbFwiIFt0YWJpbmRleF09XCIxXCI+XG4gIDx1bCBjbGFzcz1cImJtYl9kcm9wZG93bi1jb250ZW50LWNvbnRhaW5lclwiIFt0YWJpbmRleF09XCItMVwiPlxuICAgIEBpZiAoZW5hYmxlRmlsdGVyKCkpIHtcbiAgICAgIDxsaSBjbGFzcz1cImJtYl9kcm9wZG93bi1jb250ZW50LWl0ZW0gYm1iX2Ryb3Bkb3duLWNvbnRlbnQtaXRlbS1maWx0ZXJcIj5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgIGNsYXNzPVwiYm1iX2Ryb3Bkb3duLWNvbnRlbnQtaXRlbS1maWx0ZXItaW5wdXRcIlxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInZHJvcGRvd24ubWVudS5maWx0ZXJfcGxhY2Vob2xkZXInIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAoaW5wdXQpPVwiZmlsdGVyTGlzdCgkZXZlbnQpXCJcbiAgICAgICAgLz5cbiAgICAgICAgPGJtYi1pY29uXG4gICAgICAgICAgY2xhc3M9XCJibWJfZHJvcGRvd24tY29udGVudC1pdGVtLWZpbHRlci1pY29uXCJcbiAgICAgICAgICBpY29uPVwic2VhcmNoXCJcbiAgICAgICAgICBbc2l6ZV09XCIyNFwiXG4gICAgICAgIC8+XG4gICAgICA8L2xpPlxuICAgIH1cbiAgICBAZm9yIChpdGVtIG9mIGZpbHRlcmVkSXRlbXMoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICA8bGlcbiAgICAgICAgY2xhc3M9XCJibWJfZHJvcGRvd24tY29udGVudC1pdGVtXCJcbiAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICdibWJfZHJvcGRvd24tY29udGVudC1pdGVtLXNlbGVjdGVkJzogaXNTZWxlY3RlZChpdGVtLnZhbHVlISlcbiAgICAgICAgfVwiXG4gICAgICAgIFtpZF09XCJpdGVtLmlkSXRlbVwiXG4gICAgICA+XG4gICAgICAgIDxibWItY2hlY2stZXh0ZXJuYWwtbGluay1idXR0b25cbiAgICAgICAgICBbbGlua109XCJpdGVtLnVybCFcIlxuICAgICAgICAgIFt0YXJnZXRdPVwiaXRlbS50YXJnZXQhXCJcbiAgICAgICAgICAoYnV0dG9uQ2xpY2spPVwiaGFuZGxlRHJvcGRvd24oaXRlbSlcIlxuICAgICAgICA+XG4gICAgICAgICAgQGlmICghIWl0ZW0uaWNvbikge1xuICAgICAgICAgICAgPGJtYi1pY29uXG4gICAgICAgICAgICAgIGNsYXNzPVwiYm1iX2Ryb3Bkb3duLWNvbnRlbnQtaXRlbS1pY29uXCJcbiAgICAgICAgICAgICAgW2ljb25dPVwiaXRlbS5pY29uXCJcbiAgICAgICAgICAgICAgW3NpemVdPVwiMjRcIlxuICAgICAgICAgICAgICBbZG90Tm90aWZpY2F0aW9uXT1cIml0ZW0uZG90Tm90aWZpY2F0aW9uXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgfVxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYm1iX2Ryb3Bkb3duLWNvbnRlbnQtaXRlbS10ZXh0XCI+XG4gICAgICAgICAgICB7eyBpdGVtLnRleHQgfX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvYm1iLWNoZWNrLWV4dGVybmFsLWxpbmstYnV0dG9uPlxuICAgICAgPC9saT5cbiAgICB9XG4gIDwvdWw+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -11,7 +11,7 @@ export class BmbLayoutItemDirective {
|
|
|
11
11
|
this.isDynamicItem = input(false);
|
|
12
12
|
}
|
|
13
13
|
get elementClass() {
|
|
14
|
-
const classes = [];
|
|
14
|
+
const classes = ['bmb_layout-item'];
|
|
15
15
|
if (this.colSm())
|
|
16
16
|
classes.push(`bmb_col-sm-${this.colSm()}`);
|
|
17
17
|
if (this.colLg())
|
|
@@ -61,4 +61,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
61
61
|
type: HostBinding,
|
|
62
62
|
args: ['style.flex']
|
|
63
63
|
}] } });
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm1iLWxheW91dC1pdGVtLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RzLW5nL3NyYy9saWIvZGlyZWN0aXZlcy9ibWItbGF5b3V0L2JtYi1sYXlvdXQtaXRlbS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFFVCxXQUFXLEVBQ1gsS0FBSyxHQUVOLE1BQU0sZUFBZSxDQUFDOztBQTBCdkIsTUFBTSxPQUFPLHNCQUFzQjtJQVFqQyxZQUFvQixFQUFjO1FBQWQsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQVBsQyxVQUFLLEdBQUcsS0FBSyxDQUFtQixDQUFDLENBQUMsQ0FBQztRQUNuQyxVQUFLLEdBQUcsS0FBSyxDQUFpQixDQUFDLENBQUMsQ0FBQztRQUNqQyxlQUFVLEdBQUcsS0FBSyxDQUFVLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM5QyxnQkFBVyxHQUFHLEtBQUssQ0FBVSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDL0MsWUFBTyxHQUFHLEtBQUssQ0FBUyxDQUFDLENBQUMsQ0FBQztRQUMzQixrQkFBYSxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztJQUVELENBQUM7SUFFdEMsSUFBMEIsWUFBWTtRQUNwQyxNQUFNLE9BQU8sR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFFcEMsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxjQUFjLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDN0QsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxjQUFjLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDN0QsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUU7WUFDckIsT0FBTyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFFMUQsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsRUFBRTtnQkFDdEIsT0FBTyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FDN0Q7UUFDRCxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRTtZQUN0QixPQUFPLENBQUMsSUFBSSxDQUFDLHNCQUFzQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUU1RCxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxFQUFFO2dCQUN2QixPQUFPLENBQUMsSUFBSSxDQUFDLHNCQUFzQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztTQUMvRDtRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFJRCxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQzFDLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQztTQUN0QztJQUNILENBQUM7SUFFRCxlQUFlO1FBQ2IsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUM7UUFDbkMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUVsQyxJQUNFLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLHNCQUFzQixDQUFDO1lBQ2pELENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsMkJBQTJCLENBQUMsRUFDckQ7WUFDQSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1NBQ2pEO2FBQU0sSUFDTCxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUM7WUFDdkMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxFQUMzQztZQUNBLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7U0FDdkM7SUFDSCxDQUFDOytHQXJEVSxzQkFBc0I7bUdBQXRCLHNCQUFzQjs7NEZBQXRCLHNCQUFzQjtrQkFKbEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixVQUFVLEVBQUUsSUFBSTtpQkFDakI7K0VBVzJCLFlBQVk7c0JBQXJDLFdBQVc7dUJBQUMsT0FBTztnQkFvQk8sSUFBSTtzQkFBOUIsV0FBVzt1QkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBIb3N0QmluZGluZyxcbiAgaW5wdXQsXG4gIE9uSW5pdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCB0eXBlIElDb2x1bVNpemVNb2JpbGUgPSAwIHwgMSB8IDIgfCAzIHwgNDtcbmV4cG9ydCB0eXBlIElDb2x1bVNpemVGdWxsID1cbiAgfCAwXG4gIHwgMVxuICB8IDJcbiAgfCAzXG4gIHwgNFxuICB8IDVcbiAgfCA2XG4gIHwgN1xuICB8IDhcbiAgfCA5XG4gIHwgMTBcbiAgfCAxMVxuICB8IDEyO1xuZXhwb3J0IGludGVyZmFjZSBJTWFyZ2luIHtcbiAgc206IG51bWJlcjtcbiAgbGc/OiBudW1iZXI7XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tibWJMYXlvdXRJdGVtXScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIEJtYkxheW91dEl0ZW1EaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuICBjb2xTbSA9IGlucHV0PElDb2x1bVNpemVNb2JpbGU+KDApO1xuICBjb2xMZyA9IGlucHV0PElDb2x1bVNpemVGdWxsPigwKTtcbiAgbWFyZ2luTGVmdCA9IGlucHV0PElNYXJnaW4+KHsgc206IDAsIGxnOiAwIH0pO1xuICBtYXJnaW5SaWdodCA9IGlucHV0PElNYXJnaW4+KHsgc206IDAsIGxnOiAwIH0pO1xuICBjb2xHcm93ID0gaW5wdXQ8bnVtYmVyPigwKTtcbiAgaXNEeW5hbWljSXRlbSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsOiBFbGVtZW50UmVmKSB7fVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKSBnZXQgZWxlbWVudENsYXNzKCk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBjbGFzc2VzID0gWydibWJfbGF5b3V0LWl0ZW0nXTtcblxuICAgIGlmICh0aGlzLmNvbFNtKCkpIGNsYXNzZXMucHVzaChgYm1iX2NvbC1zbS0ke3RoaXMuY29sU20oKX1gKTtcbiAgICBpZiAodGhpcy5jb2xMZygpKSBjbGFzc2VzLnB1c2goYGJtYl9jb2wtbGctJHt0aGlzLmNvbExnKCl9YCk7XG4gICAgaWYgKHRoaXMubWFyZ2luTGVmdCgpKSB7XG4gICAgICBjbGFzc2VzLnB1c2goYGJtYl9zcGFjZS1zbS1sZWZ0LSR7dGhpcy5tYXJnaW5MZWZ0KCkuc219YCk7XG5cbiAgICAgIGlmICh0aGlzLm1hcmdpbkxlZnQoKS5sZylcbiAgICAgICAgY2xhc3Nlcy5wdXNoKGBibWJfc3BhY2UtbGctbGVmdC0ke3RoaXMubWFyZ2luTGVmdCgpLmxnfWApO1xuICAgIH1cbiAgICBpZiAodGhpcy5tYXJnaW5SaWdodCgpKSB7XG4gICAgICBjbGFzc2VzLnB1c2goYGJtYl9zcGFjZS1zbS1yaWdodC0ke3RoaXMubWFyZ2luUmlnaHQoKS5zbX1gKTtcblxuICAgICAgaWYgKHRoaXMubWFyZ2luUmlnaHQoKS5sZylcbiAgICAgICAgY2xhc3Nlcy5wdXNoKGBibWJfc3BhY2UtbGctcmlnaHQtJHt0aGlzLm1hcmdpblJpZ2h0KCkubGd9YCk7XG4gICAgfVxuICAgIHJldHVybiBjbGFzc2VzO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5mbGV4JykgZmxleD86IHN0cmluZztcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0R5bmFtaWNJdGVtKCkgJiYgdGhpcy5jb2xHcm93KCkpIHtcbiAgICAgIHRoaXMuZmxleCA9IGAke3RoaXMuY29sR3JvdygpfSAwIDAlYDtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgY29uc3QgaG9zdCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudDtcbiAgICBjb25zdCBwYXJlbnQgPSBob3N0LnBhcmVudEVsZW1lbnQ7XG5cbiAgICBpZiAoXG4gICAgICBwYXJlbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCdibWJfbGF5b3V0LWNvbnRhaW5lcicpICYmXG4gICAgICAhaG9zdC5jbGFzc0xpc3QuY29udGFpbnMoJ2JtYl9sYXlvdXQtY29udGFpbmVyLWl0ZW0nKVxuICAgICkge1xuICAgICAgaG9zdC5jbGFzc0xpc3QuYWRkKCdibWJfbGF5b3V0LWNvbnRhaW5lci1pdGVtJyk7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIHBhcmVudC5jbGFzc0xpc3QuY29udGFpbnMoJ2JtYl9sYXlvdXQnKSAmJlxuICAgICAgIWhvc3QuY2xhc3NMaXN0LmNvbnRhaW5zKCdibWJfbGF5b3V0LWl0ZW0nKVxuICAgICkge1xuICAgICAgaG9zdC5jbGFzc0xpc3QuYWRkKCdibWJfbGF5b3V0LWl0ZW0nKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|