@ti-tecnologico-de-monterrey-oficial/ds-ng 1.5.1318-b → 1.5.1318-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.
Files changed (28) hide show
  1. package/assets/i18n/en.json +28 -0
  2. package/assets/i18n/es.json +28 -0
  3. package/assets/styles/main.min.css +1 -1
  4. package/assets/styles/main.min.css.map +1 -1
  5. package/esm2022/assets/i18n/en.json +28 -0
  6. package/esm2022/assets/i18n/es.json +28 -0
  7. package/esm2022/lib/components/bmb-alert-center/bmb-alert-center.component.mjs +3 -3
  8. package/esm2022/lib/components/bmb-card-button/bmb-card-button.component.mjs +3 -3
  9. package/esm2022/lib/components/bmb-chat-bubbles/bmb-chat-bubbles.component.mjs +3 -3
  10. package/esm2022/lib/components/bmb-filter-card/bmb-filter-card.component.mjs +2 -2
  11. package/esm2022/lib/components/bmb-hito-list/bmb-hito-list.component.mjs +3 -3
  12. package/esm2022/lib/components/bmb-list-group/bmb-list-group-item/bmb-list-group-item.component.mjs +3 -3
  13. package/esm2022/lib/components/bmb-notification-card/bmb-notification-card.component.mjs +3 -3
  14. package/esm2022/lib/components/bmb-portal/bmb-projected-content/bmb-projected-content.component.mjs +2 -2
  15. package/esm2022/lib/components/bmb-pull-wedge/bmb-pull-wedge.component.mjs +1 -4
  16. package/esm2022/lib/components/bmb-text-editor/bmb-text-editor-prompt/bmb-text-editor-prompt.component.mjs +51 -0
  17. package/esm2022/lib/components/bmb-text-editor/bmb-text-editor.component.mjs +75 -26
  18. package/esm2022/lib/components/bmb-timestream/bmb-timestream-detail/bmb-timestream-detail.component.mjs +3 -5
  19. package/esm2022/lib/components/utils/bmb-dropdown-content/bmb-dropdown-content.component.mjs +5 -3
  20. package/esm2022/lib/directives/bmb-layout/bmb-layout-item.directive.mjs +2 -2
  21. package/esm2022/lib/services/projection/projection.service.mjs +1 -1
  22. package/fesm2022/ti-tecnologico-de-monterrey-oficial-ds-ng.mjs +335 -195
  23. package/fesm2022/ti-tecnologico-de-monterrey-oficial-ds-ng.mjs.map +1 -1
  24. package/lib/components/bmb-card-button/bmb-card-button.component.d.ts +4 -4
  25. package/lib/components/bmb-chat-bubbles/bmb-chat-bubbles.component.d.ts +10 -10
  26. package/lib/components/bmb-text-editor/bmb-text-editor-prompt/bmb-text-editor-prompt.component.d.ts +13 -0
  27. package/lib/components/bmb-text-editor/bmb-text-editor.component.d.ts +14 -8
  28. package/package.json +1 -1
@@ -1,12 +1,14 @@
1
- import { ChangeDetectionStrategy, Component, input, ViewChild, ViewEncapsulation, } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, input, signal, ViewChild, ViewEncapsulation, } from '@angular/core';
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 = window.getSelection();
11
+ const selection = globalThis.getSelection();
10
12
  if (selection && selection.rangeCount > 0) {
11
13
  const element = selection.getRangeAt(0)
12
14
  .commonAncestorContainer;
@@ -21,15 +23,27 @@ 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
- this.htmlContent = '';
28
- this.sanitizedContent = '';
30
+ this.sanitizedContent = signal('');
29
31
  this.currentAlignment = 'left';
30
32
  this.showTableDialog = false;
31
33
  this.tableRows = 2;
32
34
  this.tableColumns = 2;
35
+ this.userSelection = null;
36
+ }
37
+ ngOnInit() {
38
+ this.sanitizedContent.set(
39
+ // NOSONAR: Initial content sanitization
40
+ this.sanitizer.bypassSecurityTrustHtml(this.control().value || ''));
41
+ this.control().valueChanges?.subscribe((value) => {
42
+ if (value === null) {
43
+ // NOSONAR: Clear content sanitization
44
+ this.sanitizedContent.set(this.sanitizer.bypassSecurityTrustHtml(''));
45
+ }
46
+ });
33
47
  }
34
48
  ngAfterViewInit() {
35
49
  this.editor.nativeElement.focus();
@@ -41,15 +55,61 @@ export class BmbTextEditorComponent {
41
55
  }
42
56
  }
43
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
+ }
44
65
  document.execCommand(command, false, value || undefined);
45
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();
46
90
  }
47
- insertLink() {
48
- const url = prompt('Ingrese la URL:');
49
- if (url) {
50
- this.execCommand('createLink', url);
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
+ }
51
104
  }
52
105
  }
106
+ insertImage(values) {
107
+ const selection = globalThis.getSelection();
108
+ if (!selection || selection.rangeCount === 0 || !values['prompt_url']) {
109
+ return;
110
+ }
111
+ this.execCommand('insertImage', values['prompt_url']);
112
+ }
53
113
  updateContent() {
54
114
  this.control().setValue(this.editor.nativeElement.innerHTML);
55
115
  }
@@ -60,17 +120,6 @@ export class BmbTextEditorComponent {
60
120
  getCurrentState() {
61
121
  return this.control().value;
62
122
  }
63
- insertImage() {
64
- const url = prompt('Ingrese la URL de la imagen:');
65
- if (url) {
66
- if (this.isValidImageUrl(url)) {
67
- this.execCommand('insertImage', url);
68
- }
69
- else {
70
- alert('La URL de la imagen no es válida.');
71
- }
72
- }
73
- }
74
123
  isValidImageUrl(url) {
75
124
  try {
76
125
  new URL(url); // Intenta crear un objeto URL
@@ -113,7 +162,7 @@ export class BmbTextEditorComponent {
113
162
  }
114
163
  // Método para insertar HTML en el editor
115
164
  insertHtml(html) {
116
- const selection = window.getSelection();
165
+ const selection = globalThis.getSelection();
117
166
  if (selection && selection.rangeCount > 0) {
118
167
  const range = selection.getRangeAt(0);
119
168
  const div = document.createElement('div');
@@ -122,14 +171,14 @@ export class BmbTextEditorComponent {
122
171
  this.updateContent();
123
172
  }
124
173
  }
125
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BmbTextEditorComponent, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component }); }
126
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", 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: "18.2.14", 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: "18.2.14", 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 }); }
127
176
  }
128
177
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BmbTextEditorComponent, decorators: [{
129
178
  type: Component,
130
- 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"] }]
131
- }], 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: [{
132
181
  type: ViewChild,
133
182
  args: ['editor']
134
183
  }] } });
135
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm1iLXRleHQtZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RzLW5nL3NyYy9saWIvY29tcG9uZW50cy9ibWItdGV4dC1lZGl0b3IvYm1iLXRleHQtZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RzLW5nL3NyYy9saWIvY29tcG9uZW50cy9ibWItdGV4dC1lZGl0b3IvYm1iLXRleHQtZWRpdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULEtBQUssRUFDTCxTQUFTLEVBQ1QsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNsRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7O0FBV2xFLE1BQU0sT0FBTyxzQkFBc0I7SUFZakMsZUFBZTtRQUNiLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN4QyxJQUFJLFNBQVMsSUFBSSxTQUFTLENBQUMsVUFBVSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzFDLE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO2lCQUNwQyx1QkFBc0MsQ0FBQztZQUMxQyxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDO1lBRTVDLElBQUksYUFBYSxFQUFFLENBQUM7Z0JBQ2xCLE1BQU0sU0FBUyxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUMsU0FBUyxJQUFJLE1BQU0sQ0FBQztnQkFDMUQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFNBQVMsQ0FBQztZQUNw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LFNBQVMsR0FBRyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDeEMsSUFBSSxTQUFTLElBQUksU0FBUyxDQUFDLFVBQVUsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUMxQyxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3RDLE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDMUMsR0FBRyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDckIsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN0QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDdkIsQ0FBQztJQUNILENBQUM7K0dBeklVLHNCQUFzQjttR0FBdEIsc0JBQXNCLHVUQ3RCbkMsczZMQXVNQSwyeE5EdkxZLGtCQUFrQiw0TUFBRSxnQkFBZ0I7OzRGQU1uQyxzQkFBc0I7a0JBVGxDLFNBQVM7K0JBQ0UsaUJBQWlCLGNBQ2YsSUFBSSxXQUNQLENBQUMsa0JBQWtCLEVBQUUsZ0JBQWdCLENBQUMsaUJBR2hDLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU07aUZBSzFCLE1BQU07c0JBQTFCLFNBQVM7dUJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIGlucHV0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlSHRtbCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgQm1iQnV0dG9uRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9ibWItYnV0dG9uL2J1dHRvbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQm1iSWNvbkNvbXBvbmVudCB9IGZyb20gJy4uL2JtYi1pY29uL2JtYi1pY29uLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JtYi10ZXh0LWVkaXRvcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtCbWJCdXR0b25EaXJlY3RpdmUsIEJtYkljb25Db21wb25lbnRdLFxuICB0ZW1wbGF0ZVVybDogJy4vYm1iLXRleHQtZWRpdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2JtYi10ZXh0LWVkaXRvci5jb21wb25lbnQuc2NzcycsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBCbWJUZXh0RWRpdG9yQ29tcG9uZW50IHtcbiAgY29udHJvbCA9IGlucHV0PEZvcm1Db250cm9sPihuZXcgRm9ybUNvbnRyb2woJycpKTtcblxuICBAVmlld0NoaWxkKCdlZGl0b3InKSBlZGl0b3IhOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuICBodG1sQ29udGVudDogc3RyaW5nID0gJyc7XG4gIHNhbml0aXplZENvbnRlbnQ6IFNhZmVIdG1sID0gJyc7XG4gIGN1cnJlbnRBbGlnbm1lbnQ6IHN0cmluZyA9ICdsZWZ0JztcbiAgc2hvd1RhYmxlRGlhbG9nOiBib29sZWFuID0gZmFsc2U7XG4gIHRhYmxlUm93czogbnVtYmVyID0gMjtcbiAgdGFibGVDb2x1bW5zOiBudW1iZXIgPSAyO1xuXG4gIGRldGVjdEFsaWdubWVudCgpIHtcbiAgICBjb25zdCBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7XG4gICAgaWYgKHNlbGVjdGlvbiAmJiBzZWxlY3Rpb24ucmFuZ2VDb3VudCA+IDApIHtcbiAgICAgIGNvbnN0IGVsZW1lbnQgPSBzZWxlY3Rpb24uZ2V0UmFuZ2VBdCgwKVxuICAgICAgICAuY29tbW9uQW5jZXN0b3JDb250YWluZXIgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICBjb25zdCBwYXJlbnRFbGVtZW50ID0gZWxlbWVudC5wYXJlbnRFbGVtZW50O1xuXG4gICAgICBpZiAocGFyZW50RWxlbWVudCkge1xuICAgICAgICBjb25zdCB0ZXh0QWxpZ24gPSBwYXJlbnRFbGVtZW50LnN0eWxlLnRleHRBbGlnbiB8fCAnbGVmdCc7XG4gICAgICAgIHRoaXMuY3VycmVudEFsaWdubWVudCA9IHRleHRBbGlnbjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBhcHBseUFsaWdubWVudChhbGlnbm1lbnQ6IHN0cmluZykge1xuICAgIHRoaXMuZXhlY0NvbW1hbmQoJ3N0eWxlV2l0aENTUycsICd0cnVlJyk7XG4gICAgdGhpcy5leGVjQ29tbWFuZChcbiAgICAgICdqdXN0aWZ5JyArIGFsaWdubWVudC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIGFsaWdubWVudC5zbGljZSgxKSxcbiAgICApO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcikge31cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5lZGl0b3IubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICB9XG5cbiAgaGFuZGxlQ2hhbmdlKGV2ZW50OiBFdmVudCwgdHlwZTogc3RyaW5nKSB7XG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxTZWxlY3RFbGVtZW50O1xuICAgIGlmICh0YXJnZXQ/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+XG4gIDwvaGVhZGVyPlxuXG4gIDxkaXZcbiAgICBjbGFzcz1cImJtYl90ZXh0LWVkaXRvci1jb250ZW50XCJcbiAgICAjZWRpdG9yXG4gICAgY29udGVudGVkaXRhYmxlPVwidHJ1ZVwiXG4gICAgKGlucHV0KT1cInVwZGF0ZUNvbnRlbnQoKVwiXG4gICAgW2lubmVySFRNTF09XCJzYW5pdGl6ZWRDb250ZW50XCJcbiAgPjwvZGl2PlxuPC9zZWN0aW9uPlxuXG48IS0tIERpw6Fsb2dvIHBhcmEgZGVmaW5pciBmaWxhcyB5IGNvbHVtbmFzIC0tPlxuPGRpYWxvZyBjbGFzcz1cImRpYWxvZy1vdmVybGF5XCIgW29wZW5dPVwic2hvd1RhYmxlRGlhbG9nXCI+XG4gIDxkaXYgY2xhc3M9XCJkaWFsb2dcIj5cbiAgICA8aDM+SW5zZXJ0YXIgdGFibGE8L2gzPlxuICAgIDxsYWJlbCBmb3I9XCJyb3dzXCI+RmlsYXM6PC9sYWJlbD5cbiAgICA8aW5wdXQgdHlwZT1cIm51bWJlclwiIGlkPVwicm93c1wiIG1pbj1cIjFcIiBtYXg9XCIxMFwiIC8+XG5cbiAgICA8bGFiZWwgZm9yPVwiY29sdW1uc1wiPkNvbHVtbmFzOjwvbGFiZWw+XG4gICAgPGlucHV0IHR5cGU9XCJudW1iZXJcIiBpZD1cImNvbHVtbnNcIiBtaW49XCIxXCIgbWF4PVwiMTBcIiAvPlxuXG4gICAgPGRpdiBjbGFzcz1cImRpYWxvZy1idXR0b25zXCI+XG4gICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiaW5zZXJ0VGFibGUoKVwiPkluc2VydGFyPC9idXR0b24+XG4gICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiY2xvc2VUYWJsZURpYWxvZygpXCI+Q2FuY2VsYXI8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2RpYWxvZz5cbiJdfQ==
184
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm1iLXRleHQtZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RzLW5nL3NyYy9saWIvY29tcG9uZW50cy9ibWItdGV4dC1lZGl0b3IvYm1iLXRleHQtZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RzLW5nL3NyYy9saWIvY29tcG9uZW50cy9ibWItdGV4dC1lZGl0b3IvYm1iLXRleHQtZWRpdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDbEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFbEUsT0FBTyxFQUNMLDRCQUE0QixHQUU3QixNQUFNLDJEQUEyRCxDQUFDOzs7O0FBV25FLE1BQU0sT0FBTyxzQkFBc0I7SUFZakMsZUFBZTtRQUNiLE1BQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUM1QyxJQUFJLFNBQVMsSUFBSSxTQUFTLENBQUMsVUFBVSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzFDLE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO2lCQUNwQyx1QkFBc0MsQ0FBQztZQUMxQyxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDO1lBRTVDLElBQUksYUFBYSxFQUFFLENBQUM7Z0JBQ2xCLE1BQU0sU0FBUyxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUMsU0FBUyxJQUFJLE1BQU0sQ0FBQztnQkFDMUQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFNBQVMsQ0FBQztZQUNwQyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxjQUFjLENBQUMsU0FBaUI7UUFDOUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLFdBQVcsQ0FDZCxTQUFTLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUNuRSxDQUFDO0lBQ0osQ0FBQztJQUVELFlBQ21CLFNBQXVCLEVBQ3ZCLGlCQUE4QztRQUQ5QyxjQUFTLEdBQVQsU0FBUyxDQUFjO1FBQ3ZCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBNkI7UUFsQ2pFLFlBQU8sR0FBRyxLQUFLLENBQWMsSUFBSSxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUlsRCxxQkFBZ0IsR0FBRyxNQUFNLENBQVcsRUFBRSxDQUFDLENBQUM7UUFDeEMscUJBQWdCLEdBQVcsTUFBTSxDQUFDO1FBQ2xDLG9CQUFlLEdBQVksS0FBSyxDQUFDO1FBQ2pDLGNBQVMsR0FBVyxDQUFDLENBQUM7UUFDdEIsaUJBQVksR0FBVyxDQUFDLENBQUM7UUFDekIsa0JBQWEsR0FBaUIsSUFBSSxDQUFDO0lBMEJoQyxDQUFDO0lBRUosUUFBUTtRQUNOLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHO1FBQ3ZCLHdDQUF3QztRQUN4QyxJQUFJLENBQUMsU0FBUyxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQ25FLENBQUM7UUFFRixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQy9DLElBQUksS0FBSyxLQUFLLElBQUksRUFBRSxDQUFDO2dCQUNuQixzQ0FBc0M7Z0JBQ3RDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3hFLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFZLEVBQUUsSUFBWTtRQUNyQyxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBMkIsQ0FBQztRQUNqRCxJQUFJLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkMsQ0FBQztJQUNILENBQUM7SUFFRCxXQUFXLENBQUMsT0FBZSxFQUFFLFFBQXVCLElBQUk7UUFDdEQsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDdkIsTUFBTSxTQUFTLEdBQUcsVUFBVSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQzVDLElBQUksU0FBUyxFQUFFLENBQUM7Z0JBQ2QsU0FBUyxDQUFDLGVBQWUsRUFBRSxDQUFDO2dCQUM1QixTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUN6QyxDQUFDO1FBQ0gsQ0FBQztRQUVELFFBQVEsQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLElBQUksU0FBUyxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBRXJCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO0lBQzVCLENBQUM7SUFFRCxVQUFVLENBQUMsSUFBOEIsRUFBRSxLQUFpQjtRQUMxRCxJQUFJLENBQUMsYUFBYSxHQUFHLFVBQVUsQ0FBQyxZQUFZLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDO1FBQ3RFLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxhQUE0QixDQUFDO1FBQ3RELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUM7WUFDakMsT0FBTyxFQUFFLDRCQUE0QjtZQUNyQyxZQUFZLEVBQUUsRUFBRSxJQUFJLEVBQUU7WUFDdEIsYUFBYSxFQUFFO2dCQUNiLFVBQVUsRUFBRSxDQUFDLE1BQStCLEVBQUUsRUFBRSxDQUM5QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsRUFBRSxHQUFHLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQztnQkFDN0MsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUU7YUFDeEQ7WUFDRCxTQUFTLEVBQUUsVUFBVTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsTUFBK0I7UUFDL0MsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssTUFBTSxJQUFJLE1BQU0sQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO1lBQ3RELElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDMUIsQ0FBQzthQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLE9BQU8sSUFBSSxNQUFNLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztZQUM5RCxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzNCLENBQUM7UUFDRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVELFVBQVUsQ0FBQyxNQUErQjtRQUN4QyxNQUFNLFNBQVMsR0FBRyxVQUFVLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFNUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxTQUFTLENBQUMsVUFBVSxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO1lBQ3RFLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBVyxDQUFDLENBQUM7UUFDL0QsTUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0QyxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsdUJBQXVCLENBQUMsVUFBVSxDQUFDO1FBQzVELElBQUksVUFBVSxJQUFJLFVBQVUsWUFBWSxpQkFBaUIsRUFBRSxDQUFDO1lBQzFELFVBQVUsQ0FBQyxNQUFNLEdBQUksTUFBTSxDQUFDLFFBQVEsQ0FBWSxJQUFJLE9BQU8sQ0FBQztZQUU1RCxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNsQixVQUFVLENBQUMsR0FBRyxHQUFHLHFCQUFxQixDQUFDO1lBQ3pDLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxNQUErQjtRQUN6QyxNQUFNLFNBQVMsR0FBRyxVQUFVLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFNUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxTQUFTLENBQUMsVUFBVSxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO1lBQ3RFLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBVyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDO0lBQzlCLENBQUM7SUFFRCxlQUFlLENBQUMsR0FBVztRQUN6QixJQUFJLENBQUM7WUFDSCxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLDhCQUE4QjtZQUM1QyxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO0lBQ0gsQ0FBQztJQUVELDJDQUEyQztJQUMzQyxlQUFlO1FBQ2IsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7SUFDOUIsQ0FBQztJQUVELDRDQUE0QztJQUM1QyxnQkFBZ0I7UUFDZCxJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztJQUMvQixDQUFDO0lBRUQsZ0NBQWdDO0lBQ2hDLFdBQVc7UUFDVCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQzVCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7UUFFbEMsSUFBSSxJQUFJLEdBQUcsQ0FBQyxJQUFJLE9BQU8sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUM1QixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ3hELElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDM0IsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDMUIsQ0FBQztJQUNILENBQUM7SUFFRCwwQ0FBMEM7SUFDMUMsaUJBQWlCLENBQUMsSUFBWSxFQUFFLE9BQWU7UUFDN0MsSUFBSSxTQUFTLEdBQUcseURBQXlELENBQUM7UUFDMUUsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQzlCLFNBQVMsSUFBSSxNQUFNLENBQUM7WUFDcEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE9BQU8sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO2dCQUNqQyxTQUFTLElBQUksK0RBQStELENBQUM7WUFDL0UsQ0FBQztZQUNELFNBQVMsSUFBSSxPQUFPLENBQUM7UUFDdkIsQ0FBQztRQUNELFNBQVMsSUFBSSxVQUFVLENBQUM7UUFDeEIsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELHlDQUF5QztJQUN6QyxVQUFVLENBQUMsSUFBWTtRQUNyQixNQUFNLFNBQVMsR0FBRyxVQUFVLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDNUMsSUFBSSxTQUFTLElBQUksU0FBUyxDQUFDLFVBQVUsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUMxQyxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3RDLE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDMUMsR0FBRyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDckIsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN0QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDdkIsQ0FBQztJQUNILENBQUM7K0dBdk1VLHNCQUFzQjttR0FBdEIsc0JBQXNCLHVUQzlCbkMsbzhMQXVNQSwyeE5EL0tZLGtCQUFrQiw0TUFBRSxnQkFBZ0I7OzRGQU1uQyxzQkFBc0I7a0JBVGxDLFNBQVM7K0JBQ0UsaUJBQWlCLGNBQ2YsSUFBSSxXQUNQLENBQUMsa0JBQWtCLEVBQUUsZ0JBQWdCLENBQUMsaUJBR2hDLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU07MkhBSzFCLE1BQU07c0JBQTFCLFNBQVM7dUJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIGlucHV0LFxuICBPbkluaXQsXG4gIHNpZ25hbCxcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IERvbVNhbml0aXplciwgU2FmZUh0bWwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IEJtYkJ1dHRvbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvYm1iLWJ1dHRvbi9idXR0b24uZGlyZWN0aXZlJztcbmltcG9ydCB7IEJtYkljb25Db21wb25lbnQgfSBmcm9tICcuLi9ibWItaWNvbi9ibWItaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQm1iUHJvamVjdGlvbkNvbnRlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcHJvamVjdGlvbi9wcm9qZWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgQm1iVGV4dEVkaXRvclByb21wdENvbXBvbmVudCxcbiAgSUJtYlRleHRFZGl0b3JQcm9tcHRUeXBlLFxufSBmcm9tICcuL2JtYi10ZXh0LWVkaXRvci1wcm9tcHQvYm1iLXRleHQtZWRpdG9yLXByb21wdC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdibWItdGV4dC1lZGl0b3InLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQm1iQnV0dG9uRGlyZWN0aXZlLCBCbWJJY29uQ29tcG9uZW50XSxcbiAgdGVtcGxhdGVVcmw6ICcuL2JtYi10ZXh0LWVkaXRvci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9ibWItdGV4dC1lZGl0b3IuY29tcG9uZW50LnNjc3MnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQm1iVGV4dEVkaXRvckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uSW5pdCB7XG4gIGNvbnRyb2wgPSBpbnB1dDxGb3JtQ29udHJvbD4obmV3IEZvcm1Db250cm9sKCcnKSk7XG5cbiAgQFZpZXdDaGlsZCgnZWRpdG9yJykgZWRpdG9yITogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG5cbiAgc2FuaXRpemVkQ29udGVudCA9IHNpZ25hbDxTYWZlSHRtbD4oJycpO1xuICBjdXJyZW50QWxpZ25tZW50OiBzdHJpbmcgPSAnbGVmdCc7XG4gIHNob3dUYWJsZURpYWxvZzogYm9vbGVhbiA9IGZhbHNlO1xuICB0YWJsZVJvd3M6IG51bWJlciA9IDI7XG4gIHRhYmxlQ29sdW1uczogbnVtYmVyID0gMjtcbiAgdXNlclNlbGVjdGlvbjogUmFuZ2UgfCBudWxsID0gbnVsbDtcblxuICBkZXRlY3RBbGlnbm1lbnQoKSB7XG4gICAgY29uc3Qgc2VsZWN0aW9uID0gZ2xvYmFsVGhpcy5nZXRTZWxlY3Rpb24oKTtcbiAgICBpZiAoc2VsZWN0aW9uICYmIHNlbGVjdGlvbi5yYW5nZUNvdW50ID4gMCkge1xuICAgICAgY29uc3QgZWxlbWVudCA9IHNlbGVjdGlvbi5nZXRSYW5nZUF0KDApXG4gICAgICAgIC5jb21tb25BbmNlc3RvckNvbnRhaW5lciBhcyBIVE1MRWxlbWVudDtcbiAgICAgIGNvbnN0IHBhcmVudEVsZW1lbnQgPSBlbGVtZW50LnBhcmVudEVsZW1lbnQ7XG5cbiAgICAgIGlmIChwYXJlbnRFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IHRleHRBbGlnbiA9IHBhcmVudEVsZW1lbnQuc3R5bGUudGV4dEFsaWduIHx8ICdsZWZ0JztcbiAgICAgICAgdGhpcy5jdXJyZW50QWxpZ25tZW50ID0gdGV4dEFsaWduO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGFwcGx5QWxpZ25tZW50KGFsaWdubWVudDogc3RyaW5nKSB7XG4gICAgdGhpcy5leGVjQ29tbWFuZCgnc3R5bGVXaXRoQ1NTJywgJ3RydWUnKTtcbiAgICB0aGlzLmV4ZWNDb21tYW5kKFxuICAgICAgJ2p1c3RpZnknICsgYWxpZ25tZW50LmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgYWxpZ25tZW50LnNsaWNlKDEpLFxuICAgICk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNhbml0aXplcjogRG9tU2FuaXRpemVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJvamVjdGlvbkNvbnRlbnQ6IEJtYlByb2plY3Rpb25Db250ZW50U2VydmljZSxcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc2FuaXRpemVkQ29udGVudC5zZXQoXG4gICAgICAvLyBOT1NPTkFSOiBJbml0aWFsIGNvbnRlbnQgc2FuaXRpemF0aW9uXG4gICAgICB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbCh0aGlzLmNvbnRyb2woKS52YWx1ZSB8fCAnJyksXG4gICAgKTtcblxuICAgIHRoaXMuY29udHJvbCgpLnZhbHVlQ2hhbmdlcz8uc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgaWYgKHZhbHVlID09PSBudWxsKSB7XG4gICAgICAgIC8vIE5PU09OQVI6IENsZWFyIGNvbnRlbnQgc2FuaXRpemF0aW9uXG4gICAgICAgIHRoaXMuc2FuaXRpemVkQ29udGVudC5zZXQodGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoJycpKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLmVkaXRvci5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cblxuICBoYW5kbGVDaGFuZ2UoZXZlbnQ6IEV2ZW50LCB0eXBlOiBzdHJpbmcpIHtcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTFNlbGVjdEVsZW1lbnQ7XG4gICAgaWYgKHRhcmdldD8udmFsdWUpIHtcbiAgICAgIHRoaXMuZXhlY0NvbW1hbmQodHlwZSwgdGFyZ2V0LnZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBleGVjQ29tbWFuZChjb21tYW5kOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcgfCBudWxsID0gbnVsbCkge1xuICAgIGlmICh0aGlzLnVzZXJTZWxlY3Rpb24pIHtcbiAgICAgIGNvbnN0IHNlbGVjdGlvbiA9IGdsb2JhbFRoaXMuZ2V0U2VsZWN0aW9uKCk7XG4gICAgICBpZiAoc2VsZWN0aW9uKSB7XG4gICAgICAgIHNlbGVjdGlvbi5yZW1vdmVBbGxSYW5nZXMoKTtcbiAgICAgICAgc2VsZWN0aW9uLmFkZFJhbmdlKHRoaXMudXNlclNlbGVjdGlvbik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoY29tbWFuZCwgZmFsc2UsIHZhbHVlIHx8IHVuZGVmaW5lZCk7XG4gICAgdGhpcy51cGRhdGVDb250ZW50KCk7XG5cbiAgICB0aGlzLnVzZXJTZWxlY3Rpb24gPSBudWxsO1xuICB9XG5cbiAgb3BlblByb21wdCh0eXBlOiBJQm1iVGV4dEVkaXRvclByb21wdFR5cGUsIGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgdGhpcy51c2VyU2VsZWN0aW9uID0gZ2xvYmFsVGhpcy5nZXRTZWxlY3Rpb24oKT8uZ2V0UmFuZ2VBdCgwKSB8fCBudWxsO1xuICAgIGNvbnN0IGJ1dHRvbk5vZGUgPSBldmVudC5jdXJyZW50VGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgIHRoaXMucHJvamVjdGlvbkNvbnRlbnQub3BlbkNvbnRlbnQoe1xuICAgICAgY29udGVudDogQm1iVGV4dEVkaXRvclByb21wdENvbXBvbmVudCxcbiAgICAgIGlucHV0Q29udGV4dDogeyB0eXBlIH0sXG4gICAgICBvdXRwdXRDb250ZXh0OiB7XG4gICAgICAgIGZvcm1WYWx1ZXM6ICh2YWx1ZXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+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=
@@ -46,8 +46,6 @@ export class BmbTimestreamDetailsComponent {
46
46
  let currentMonthElement = this.monthList.nativeElement.querySelector('.bmb_timestream-detail-item-current');
47
47
  if (currentMonthElement) {
48
48
  currentMonthElement.scrollIntoView();
49
- this.monthList.nativeElement.scrollTop =
50
- this.monthList.nativeElement.scrollTop;
51
49
  }
52
50
  }
53
51
  getDurationString(event) {
@@ -60,15 +58,15 @@ export class BmbTimestreamDetailsComponent {
60
58
  this.changeSelectedEvent.emit(event);
61
59
  }
62
60
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BmbTimestreamDetailsComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
63
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: BmbTimestreamDetailsComponent, isStandalone: true, selector: "bmb-timestream-detail", inputs: { lang: { classPropertyName: "lang", publicName: "lang", isSignal: true, isRequired: false, transformFunction: null }, now: { classPropertyName: "now", publicName: "now", isSignal: true, isRequired: false, transformFunction: null }, selectedDate: { classPropertyName: "selectedDate", publicName: "selectedDate", isSignal: true, isRequired: false, transformFunction: null }, orderedEvents: { classPropertyName: "orderedEvents", publicName: "orderedEvents", isSignal: true, isRequired: false, transformFunction: null }, isMicro: { classPropertyName: "isMicro", publicName: "isMicro", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { changeSelectedEvent: "changeSelectedEvent" }, viewQueries: [{ propertyName: "monthList", first: true, predicate: ["monthDetailList"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ul #monthDetailList class=\"bmb_timestream-detail\">\n @if (!orderedEvents().length) {\n <p>No hay eventos para mostrar.</p>\n }\n @for (dayEvent of orderedEvents(); track $index) {\n @if (!isMicro() || isTodayEvent(dayEvent)) {\n <li\n class=\"bmb_timestream-detail-item\"\n [ngClass]=\"{\n 'bmb_timestream-detail-item-current': dayEvent.selected\n }\"\n >\n <header\n class=\"bmb_timestream-detail-item-header\"\n [ngClass]=\"{\n 'bmb_timestream-detail-item-header-micro': isMicro()\n }\"\n >\n <h3 class=\"bmb_timestream-detail-item-header-title\">\n {{ getMonthTitle(dayEvent.date) }}\n </h3>\n <span class=\"bmb_timestream-detail-item-header-subtitle\"\n >{{ dayEvent.events.length }}\n {{ dayEvent.events.length > 1 ? 'HITOS' : 'HITO' }}</span\n >\n </header>\n <section\n class=\"bmb_timestream-detail-content\"\n [ngClass]=\"{\n 'bmb_timestream-detail-content-micro': isMicro()\n }\"\n >\n @for (event of dayEvent.events; track $index) {\n <bmb-hito-card\n [icon]=\"event.icon || 'app_badging'\"\n (handleClick)=\"handleEventChange(event)\"\n [title]=\"event.title\"\n [short_description]=\"!isMicro() ? event.short_description : ''\"\n [type]=\"event.type\"\n [id]=\"event.id\"\n [sub_content]=\"getDurationString(event)\"\n [enable_bullet]=\"true\"\n [is_active]=\"dayEvent.selected\"\n [isCompact]=\"isMicro()\"\n />\n }\n </section>\n </li>\n }\n }\n</ul>\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_timestream-detail{padding:0 0 0 var(--bmb-spacing-m);margin:0;list-style:none;height:100%;overflow:auto}.bmb_timestream-detail:is(:empty):before{content:\"no hay eventos que mostrar\"}.bmb_timestream-detail-content{padding-right:var(--bmb-spacing-m)}.bmb_timestream-detail-content-micro>*:nth-child(n+4){display:none}.bmb_timestream-detail-item{border-left:.0625rem solid var(--general_contrasts-20);padding:0 0 0 var(--bmb-spacing-m)}.bmb_timestream-detail-item-header{padding:var(--bmb-spacing-m);position:sticky;top:0;display:flex;gap:var(--bmb-spacing-s);align-items:center;background-color:var(--containers-background-fade);z-index:1;backdrop-filter:blur(4px);container-type:inline-size}.bmb_timestream-detail-item-header-micro{padding:var(--bmb-spacing-s) var(--bmb-spacing-m)}.bmb_timestream-detail-item-header-title{text-transform:capitalize;font-family:Poppins-Regular,sans-serif;font-size:1rem;color:var(--general_contrasts-75)}.bmb_timestream-detail-item-header-subtitle{color:RGBA(var(--color-charade-500));font-family:Poppins-Regular,sans-serif;font-size:.75rem;display:none}@container (min-width: 31.25rem){.bmb_timestream-detail-item-header-subtitle{display:block}}.cdk-virtual-scrollable{height:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: BmbHitoCardComponent, selector: "bmb-hito-card", inputs: ["icon", "title", "id", "short_description", "type", "sub_content", "enable_bullet", "is_active", "isCompact", "alternative_appearance"], outputs: ["handleClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
61
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: BmbTimestreamDetailsComponent, isStandalone: true, selector: "bmb-timestream-detail", inputs: { lang: { classPropertyName: "lang", publicName: "lang", isSignal: true, isRequired: false, transformFunction: null }, now: { classPropertyName: "now", publicName: "now", isSignal: true, isRequired: false, transformFunction: null }, selectedDate: { classPropertyName: "selectedDate", publicName: "selectedDate", isSignal: true, isRequired: false, transformFunction: null }, orderedEvents: { classPropertyName: "orderedEvents", publicName: "orderedEvents", isSignal: true, isRequired: false, transformFunction: null }, isMicro: { classPropertyName: "isMicro", publicName: "isMicro", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { changeSelectedEvent: "changeSelectedEvent" }, viewQueries: [{ propertyName: "monthList", first: true, predicate: ["monthDetailList"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ul #monthDetailList class=\"bmb_timestream-detail\">\n @if (!orderedEvents().length) {\n <p>No hay eventos para mostrar.</p>\n }\n @for (dayEvent of orderedEvents(); track $index) {\n @if (!isMicro() || isTodayEvent(dayEvent)) {\n <li\n class=\"bmb_timestream-detail-item\"\n [ngClass]=\"{\n 'bmb_timestream-detail-item-current': dayEvent.selected\n }\"\n >\n <header\n class=\"bmb_timestream-detail-item-header\"\n [ngClass]=\"{\n 'bmb_timestream-detail-item-header-micro': isMicro()\n }\"\n >\n <h3 class=\"bmb_timestream-detail-item-header-title\">\n {{ getMonthTitle(dayEvent.date) }}\n </h3>\n <span class=\"bmb_timestream-detail-item-header-subtitle\"\n >{{ dayEvent.events.length }}\n {{ dayEvent.events.length > 1 ? 'HITOS' : 'HITO' }}</span\n >\n </header>\n <section\n class=\"bmb_timestream-detail-content\"\n [ngClass]=\"{\n 'bmb_timestream-detail-content-micro': isMicro()\n }\"\n >\n @for (event of dayEvent.events; track $index) {\n <bmb-hito-card\n [icon]=\"event.icon || 'app_badging'\"\n (handleClick)=\"handleEventChange(event)\"\n [title]=\"event.title\"\n [short_description]=\"!isMicro() ? event.short_description : ''\"\n [type]=\"event.type\"\n [id]=\"event.id\"\n [sub_content]=\"getDurationString(event)\"\n [enable_bullet]=\"true\"\n [is_active]=\"dayEvent.selected\"\n [isCompact]=\"isMicro()\"\n />\n }\n </section>\n </li>\n }\n }\n</ul>\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_timestream-detail{padding:0 0 0 var(--bmb-spacing-m);margin:0;list-style:none;height:100%;overflow:auto}.bmb_timestream-detail:is(:empty):before{content:\"no hay eventos que mostrar\"}.bmb_timestream-detail-content{padding-right:var(--bmb-spacing-m)}.bmb_timestream-detail-content-micro>*:nth-child(n+4){display:none}.bmb_timestream-detail-item{border-left:.0625rem solid var(--general_contrasts-20);padding:0 0 0 var(--bmb-spacing-m)}.bmb_timestream-detail-item-header{padding:var(--bmb-spacing-m);position:sticky;top:0;display:flex;gap:var(--bmb-spacing-s);align-items:center;background-color:var(--containers-background-fade);z-index:1;backdrop-filter:blur(4px);container-type:inline-size}.bmb_timestream-detail-item-header-micro{padding:var(--bmb-spacing-s) var(--bmb-spacing-m)}.bmb_timestream-detail-item-header-title{text-transform:capitalize;font-family:Poppins-Regular,sans-serif;font-size:1rem;color:var(--general_contrasts-75)}.bmb_timestream-detail-item-header-subtitle{color:var(--general_contrasts-80);font-family:Poppins-Regular,sans-serif;font-size:.75rem;display:none}@container (min-width: 31.25rem){.bmb_timestream-detail-item-header-subtitle{display:block}}.cdk-virtual-scrollable{height:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: BmbHitoCardComponent, selector: "bmb-hito-card", inputs: ["icon", "title", "id", "short_description", "type", "sub_content", "enable_bullet", "is_active", "isCompact", "alternative_appearance"], outputs: ["handleClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
64
62
  }
65
63
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BmbTimestreamDetailsComponent, decorators: [{
66
64
  type: Component,
67
- args: [{ selector: 'bmb-timestream-detail', standalone: true, imports: [CommonModule, BmbHitoCardComponent, BmbTextLinkComponent], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ul #monthDetailList class=\"bmb_timestream-detail\">\n @if (!orderedEvents().length) {\n <p>No hay eventos para mostrar.</p>\n }\n @for (dayEvent of orderedEvents(); track $index) {\n @if (!isMicro() || isTodayEvent(dayEvent)) {\n <li\n class=\"bmb_timestream-detail-item\"\n [ngClass]=\"{\n 'bmb_timestream-detail-item-current': dayEvent.selected\n }\"\n >\n <header\n class=\"bmb_timestream-detail-item-header\"\n [ngClass]=\"{\n 'bmb_timestream-detail-item-header-micro': isMicro()\n }\"\n >\n <h3 class=\"bmb_timestream-detail-item-header-title\">\n {{ getMonthTitle(dayEvent.date) }}\n </h3>\n <span class=\"bmb_timestream-detail-item-header-subtitle\"\n >{{ dayEvent.events.length }}\n {{ dayEvent.events.length > 1 ? 'HITOS' : 'HITO' }}</span\n >\n </header>\n <section\n class=\"bmb_timestream-detail-content\"\n [ngClass]=\"{\n 'bmb_timestream-detail-content-micro': isMicro()\n }\"\n >\n @for (event of dayEvent.events; track $index) {\n <bmb-hito-card\n [icon]=\"event.icon || 'app_badging'\"\n (handleClick)=\"handleEventChange(event)\"\n [title]=\"event.title\"\n [short_description]=\"!isMicro() ? event.short_description : ''\"\n [type]=\"event.type\"\n [id]=\"event.id\"\n [sub_content]=\"getDurationString(event)\"\n [enable_bullet]=\"true\"\n [is_active]=\"dayEvent.selected\"\n [isCompact]=\"isMicro()\"\n />\n }\n </section>\n </li>\n }\n }\n</ul>\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_timestream-detail{padding:0 0 0 var(--bmb-spacing-m);margin:0;list-style:none;height:100%;overflow:auto}.bmb_timestream-detail:is(:empty):before{content:\"no hay eventos que mostrar\"}.bmb_timestream-detail-content{padding-right:var(--bmb-spacing-m)}.bmb_timestream-detail-content-micro>*:nth-child(n+4){display:none}.bmb_timestream-detail-item{border-left:.0625rem solid var(--general_contrasts-20);padding:0 0 0 var(--bmb-spacing-m)}.bmb_timestream-detail-item-header{padding:var(--bmb-spacing-m);position:sticky;top:0;display:flex;gap:var(--bmb-spacing-s);align-items:center;background-color:var(--containers-background-fade);z-index:1;backdrop-filter:blur(4px);container-type:inline-size}.bmb_timestream-detail-item-header-micro{padding:var(--bmb-spacing-s) var(--bmb-spacing-m)}.bmb_timestream-detail-item-header-title{text-transform:capitalize;font-family:Poppins-Regular,sans-serif;font-size:1rem;color:var(--general_contrasts-75)}.bmb_timestream-detail-item-header-subtitle{color:RGBA(var(--color-charade-500));font-family:Poppins-Regular,sans-serif;font-size:.75rem;display:none}@container (min-width: 31.25rem){.bmb_timestream-detail-item-header-subtitle{display:block}}.cdk-virtual-scrollable{height:100%}\n"] }]
65
+ args: [{ selector: 'bmb-timestream-detail', standalone: true, imports: [CommonModule, BmbHitoCardComponent, BmbTextLinkComponent], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ul #monthDetailList class=\"bmb_timestream-detail\">\n @if (!orderedEvents().length) {\n <p>No hay eventos para mostrar.</p>\n }\n @for (dayEvent of orderedEvents(); track $index) {\n @if (!isMicro() || isTodayEvent(dayEvent)) {\n <li\n class=\"bmb_timestream-detail-item\"\n [ngClass]=\"{\n 'bmb_timestream-detail-item-current': dayEvent.selected\n }\"\n >\n <header\n class=\"bmb_timestream-detail-item-header\"\n [ngClass]=\"{\n 'bmb_timestream-detail-item-header-micro': isMicro()\n }\"\n >\n <h3 class=\"bmb_timestream-detail-item-header-title\">\n {{ getMonthTitle(dayEvent.date) }}\n </h3>\n <span class=\"bmb_timestream-detail-item-header-subtitle\"\n >{{ dayEvent.events.length }}\n {{ dayEvent.events.length > 1 ? 'HITOS' : 'HITO' }}</span\n >\n </header>\n <section\n class=\"bmb_timestream-detail-content\"\n [ngClass]=\"{\n 'bmb_timestream-detail-content-micro': isMicro()\n }\"\n >\n @for (event of dayEvent.events; track $index) {\n <bmb-hito-card\n [icon]=\"event.icon || 'app_badging'\"\n (handleClick)=\"handleEventChange(event)\"\n [title]=\"event.title\"\n [short_description]=\"!isMicro() ? event.short_description : ''\"\n [type]=\"event.type\"\n [id]=\"event.id\"\n [sub_content]=\"getDurationString(event)\"\n [enable_bullet]=\"true\"\n [is_active]=\"dayEvent.selected\"\n [isCompact]=\"isMicro()\"\n />\n }\n </section>\n </li>\n }\n }\n</ul>\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_timestream-detail{padding:0 0 0 var(--bmb-spacing-m);margin:0;list-style:none;height:100%;overflow:auto}.bmb_timestream-detail:is(:empty):before{content:\"no hay eventos que mostrar\"}.bmb_timestream-detail-content{padding-right:var(--bmb-spacing-m)}.bmb_timestream-detail-content-micro>*:nth-child(n+4){display:none}.bmb_timestream-detail-item{border-left:.0625rem solid var(--general_contrasts-20);padding:0 0 0 var(--bmb-spacing-m)}.bmb_timestream-detail-item-header{padding:var(--bmb-spacing-m);position:sticky;top:0;display:flex;gap:var(--bmb-spacing-s);align-items:center;background-color:var(--containers-background-fade);z-index:1;backdrop-filter:blur(4px);container-type:inline-size}.bmb_timestream-detail-item-header-micro{padding:var(--bmb-spacing-s) var(--bmb-spacing-m)}.bmb_timestream-detail-item-header-title{text-transform:capitalize;font-family:Poppins-Regular,sans-serif;font-size:1rem;color:var(--general_contrasts-75)}.bmb_timestream-detail-item-header-subtitle{color:var(--general_contrasts-80);font-family:Poppins-Regular,sans-serif;font-size:.75rem;display:none}@container (min-width: 31.25rem){.bmb_timestream-detail-item-header-subtitle{display:block}}.cdk-virtual-scrollable{height:100%}\n"] }]
68
66
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { changeSelectedEvent: [{
69
67
  type: Output
70
68
  }], monthList: [{
71
69
  type: ViewChild,
72
70
  args: ['monthDetailList']
73
71
  }] } });
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm1iLXRpbWVzdHJlYW0tZGV0YWlsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RzLW5nL3NyYy9saWIvY29tcG9uZW50cy9ibWItdGltZXN0cmVhbS9ibWItdGltZXN0cmVhbS1kZXRhaWwvYm1iLXRpbWVzdHJlYW0tZGV0YWlsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RzLW5nL3NyYy9saWIvY29tcG9uZW50cy9ibWItdGltZXN0cmVhbS9ibWItdGltZXN0cmVhbS1kZXRhaWwvYm1iLXRpbWVzdHJlYW0tZGV0YWlsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBRUwsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFFTixTQUFTLEVBQ1QsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFFakMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDbkYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7OztBQVduRixNQUFNLE9BQU8sNkJBQTZCO0lBZ0J4QyxZQUFvQixHQUFzQjtRQUF0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQWYxQyxTQUFJLEdBQUcsS0FBSyxDQUFTLElBQUksQ0FBQyxDQUFDO1FBQzNCLFFBQUcsR0FBRyxLQUFLLENBQVcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDdEMsaUJBQVksR0FBRyxLQUFLLENBQWdCO1lBQ2xDLEdBQUcsRUFBRSxFQUFFO1lBQ1AsS0FBSyxFQUFFLEVBQUU7WUFDVCxJQUFJLEVBQUUs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cEIsdUJBQXVCLENBQUMsTUFBTTtzRkFhckMsbUJBQW1CO3NCQUE1QixNQUFNO2dCQUd1QixTQUFTO3NCQUF0QyxTQUFTO3VCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBpbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGF0ZVRpbWUgfSBmcm9tICdsdXhvbic7XG5pbXBvcnQgeyBJU2VsZWN0ZWREYXRlLCBJVGltZWxpbmVFdmVudCwgSVRpbWVsaW5lRXZlbnRQYXJzZWQgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBCbWJIaXRvQ2FyZENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2JtYi1oaXRvLWNhcmQvYm1iLWhpdG8tY2FyZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQm1iVGV4dExpbmtDb21wb25lbnQgfSBmcm9tICcuLi8uLi9ibWItdGV4dC1saW5rL2JtYi10ZXh0LWxpbmsuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYm1iLXRpbWVzdHJlYW0tZGV0YWlsJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQm1iSGl0b0NhcmRDb21wb25lbnQsIEJtYlRleHRMaW5rQ29tcG9uZW50XSxcbiAgdGVtcGxhdGVVcmw6ICcuL2JtYi10aW1lc3RyZWFtLWRldGFpbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9ibWItdGltZXN0cmVhbS1kZXRhaWwuY29tcG9uZW50LnNjc3MnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQm1iVGltZXN0cmVhbURldGFpbHNDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMge1xuICBsYW5nID0gaW5wdXQ8c3RyaW5nPignZXMnKTtcbiAgbm93ID0gaW5wdXQ8RGF0ZVRpbWU+KERhdGVUaW1lLm5vdygpKTtcbiAgc2VsZWN0ZWREYXRlID0gaW5wdXQ8SVNlbGVjdGVkRGF0ZT4oe1xuICAgIGRheTogJycsXG4gICAgbW9udGg6ICcnLFxuICAgIGRhdGU6IHRoaXMubm93KCksXG4gIH0pO1xuICBvcmRlcmVkRXZlbnRzID0gaW5wdXQ8SVRpbWVsaW5lRXZlbnRQYXJzZWRbXT4oW10pO1xuICBpc01pY3JvID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIEBPdXRwdXQoKSBjaGFuZ2VTZWxlY3RlZEV2ZW50OiBFdmVudEVtaXR0ZXI8SVRpbWVsaW5lRXZlbnQ+ID1cbiAgICBuZXcgRXZlbnRFbWl0dGVyPElUaW1lbGluZUV2ZW50PigpO1xuXG4gIEBWaWV3Q2hpbGQoJ21vbnRoRGV0YWlsTGlzdCcpIG1vbnRoTGlzdCE6IEVsZW1lbnRSZWY7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuc2Nyb2xsVG9JdGVtKCk7XG4gICAgfSwgMSk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgY29uc3Qgc2VsZWN0ZWREYXRlQ2hhbmdlID0gY2hhbmdlc1snc2VsZWN0ZWREYXRlJ107XG5cbiAgICBpZiAoXG4gICAgICBzZWxlY3RlZERhdGVDaGFuZ2UucHJldmlvdXNWYWx1ZSAmJlxuICAgICAgc2VsZWN0ZWREYXRlQ2hhbmdlLnByZXZpb3VzVmFsdWUuZGF5ICE9PVxuICAgICAgICBzZWxlY3RlZERhdGVDaGFuZ2UuY3VycmVudFZhbHVlPy5kYXlcbiAgICApIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLnNjcm9sbFRvSXRlbSgpO1xuICAgICAgfSwgMSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0Q3VycmVudE1vbnRoKGRhdGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHBhcnNlZERhdGUgPSBEYXRlVGltZS5mcm9tRm9ybWF0KGRhdGUsICd5eXl5L01NJyk7XG4gICAgcmV0dXJuIChcbiAgICAgIHBhcnNlZERhdGUubW9udGggPT09IHRoaXMuc2VsZWN0ZWREYXRlKCkuZGF0ZS5tb250aCAmJlxuICAgICAgcGFyc2VkRGF0ZS55ZWFyID09PSB0aGlzLnNlbGVjdGVkRGF0ZSgpLmRhdGUueWVhclxuICAgICk7XG4gIH1cblxuICBnZXRNb250aFRpdGxlKGRhdGU6IERhdGVUaW1lKSB7XG4gICAgcmV0dXJuIGRhdGUuc2V0TG9jYWxlKHRoaXMubGFuZygpKS50b0Zvcm1hdCgnY2NjYyBkZCBMTExMIHl5eXknKTtcbiAgfVxuXG4gIHNjcm9sbFRvSXRlbSgpIHtcbiAgICBsZXQgY3VycmVudE1vbnRoRWxlbWVudCA9IHRoaXMubW9udGhMaXN0Lm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihcbiAgICAgICcuYm1iX3RpbWVzdHJlYW0tZGV0YWlsLWl0ZW0tY3VycmVudCcsXG4gICAgKTtcblxuICAgIGlmIChjdXJyZW50TW9udGhFbGVtZW50KSB7XG4gICAgICBjdXJyZW50TW9udGhFbGVtZW50LnNjcm9sbEludG9WaWV3KCk7XG4gICAgICB0aGlzLm1vbnRoTGlzdC5uYXRpdmVFbGVtZW50LnNjcm9sbFRvcCA9XG4gICAgICAgIHRoaXMubW9udGhMaXN0Lm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wO1xuICAgIH1cbiAgfVxuXG4gIGdldER1cmF0aW9uU3RyaW5nKGV2ZW50OiBJVGltZWxpbmVFdmVudCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBEdXJhY2nDs246ICR7ZXZlbnQub3JpZ2luYWxTdGFydD8uZGF5fSAtICR7ZXZlbnQuZW5kRXZlbnQ/LnNldExvY2FsZSh0aGlzLmxhbmcoKSkudG9Gb3JtYXQoJ2RkIExMTEwgeXl5eScpfSAoJHsoZXZlbnQuZGlmZiB8fCAwKSArIDF9IETDrWFzKWA7XG4gIH1cblxuICBpc1RvZGF5RXZlbnQoZXZlbnQ6IElUaW1lbGluZUV2ZW50UGFyc2VkKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGV2ZW50LmRhdGUuaGFzU2FtZSh0aGlzLm5vdygpLCAnZGF5Jyk7XG4gIH1cblxuICBoYW5kbGVFdmVudENoYW5nZShldmVudDogSVRpbWVsaW5lRXZlbnQpIHtcbiAgICB0aGlzLmNoYW5nZVNlbGVjdGVkRXZlbnQuZW1pdChldmVudCk7XG4gIH1cbn1cbiIsIjx1bCAjbW9udGhEZXRhaWxMaXN0IGNsYXNzPVwiYm1iX3RpbWVzdHJlYW0tZGV0YWlsXCI+XG4gIEBpZiAoIW9yZGVyZWRFdmVudHMoKS5sZW5ndGgpIHtcbiAgICA8cD5ObyBoYXkgZXZlbnRvcyBwYXJhIG1vc3RyYXIuPC9wPlxuICB9XG4gIEBmb3IgKGRheUV2ZW50IG9mIG9yZGVyZWRFdmVudHMoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgQGlmICghaXNNaWNybygpIHx8IGlzVG9kYXlFdmVudChkYXlFdmVudCkpIHtcbiAgICAgIDxsaVxuICAgICAgICBjbGFzcz1cImJtYl90aW1lc3RyZWFtLWRldGFpbC1pdGVtXCJcbiAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICdibWJfdGltZXN0cmVhbS1kZXRhaWwtaXRlbS1jdXJyZW50JzogZGF5RXZlbnQuc2VsZWN0ZWRcbiAgICAgICAgfVwiXG4gICAgICA+XG4gICAgICAgIDxoZWFkZXJcbiAgICAgICAgICBjbGFzcz1cImJtYl90aW1lc3RyZWFtLWRldGFpbC1pdGVtLWhlYWRlclwiXG4gICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgJ2JtYl90aW1lc3RyZWFtLWRldGFpbC1pdGVtLWhlYWRlci1taWNybyc6IGlzTWljcm8oKVxuICAgICAgICAgIH1cIlxuICAgICAgICA+XG4gICAgICAgICAgPGgzIGNsYXNzPVwiYm1iX3RpbWVzdHJlYW0tZGV0YWlsLWl0ZW0taGVhZGVyLXRpdGxlXCI+XG4gICAgICAgICAgICB7eyBnZXRNb250aFRpdGxlKGRheUV2ZW50LmRhdGUpIH19XG4gICAgICAgICAgPC9oMz5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImJtYl90aW1lc3RyZWFtLWRldGFpbC1pdGVtLWhlYWRlci1zdWJ0aXRsZVwiXG4gICAgICAgICAgICA+e3sgZGF5RXZlbnQuZXZlbnRzLmxlbmd0aCB9fVxuICAgICAgICAgICAge3sgZGF5RXZlbnQuZXZlbnRzLmxlbmd0aCA+IDEgPyAnSElUT1MnIDogJ0hJVE8nIH19PC9zcGFuXG4gICAgICAgICAgPlxuICAgICAgICA8L2hlYWRlcj5cbiAgICAgICAgPHNlY3Rpb25cbiAgICAgICAgICBjbGFzcz1cImJtYl90aW1lc3RyZWFtLWRldGFpbC1jb250ZW50XCJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAnYm1iX3RpbWVzdHJlYW0tZGV0YWlsLWNvbnRlbnQtbWljcm8nOiBpc01pY3JvKClcbiAgICAgICAgICB9XCJcbiAgICAgICAgPlxuICAgICAgICAgIEBmb3IgKGV2ZW50IG9mIGRheUV2ZW50LmV2ZW50czsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICA8Ym1iLWhpdG8tY2FyZFxuICAgICAgICAgICAgICBbaWNvbl09XCJldmVudC5pY29uIHx8ICdhcHBfYmFkZ2luZydcIlxuICAgICAgICAgICAgICAoaGFuZGxlQ2xpY2spPVwiaGFuZGxlRXZlbnRDaGFuZ2UoZXZlbnQpXCJcbiAgICAgICAgICAgICAgW3RpdGxlXT1cImV2ZW50LnRpdGxlXCJcbiAgICAgICAgICAgICAgW3Nob3J0X2Rlc2NyaXB0aW9uXT1cIiFpc01pY3JvKCkgPyBldmVudC5zaG9ydF9kZXNjcmlwdGlvbiA6ICcnXCJcbiAgICAgICAgICAgICAgW3R5cGVdPVwiZXZlbnQudHlwZVwiXG4gICAgICAgICAgICAgIFtpZF09XCJldmVudC5pZFwiXG4gICAgICAgICAgICAgIFtzdWJfY29udGVudF09XCJnZXREdXJhdGlvblN0cmluZyhldmVudClcIlxuICAgICAgICAgICAgICBbZW5hYmxlX2J1bGxldF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgW2lzX2FjdGl2ZV09XCJkYXlFdmVudC5zZWxlY3RlZFwiXG4gICAgICAgICAgICAgIFtpc0NvbXBhY3RdPVwiaXNNaWNybygpXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgfVxuICAgICAgICA8L3NlY3Rpb24+XG4gICAgICA8L2xpPlxuICAgIH1cbiAgfVxuPC91bD5cbiJdfQ==
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm1iLXRpbWVzdHJlYW0tZGV0YWlsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RzLW5nL3NyYy9saWIvY29tcG9uZW50cy9ibWItdGltZXN0cmVhbS9ibWItdGltZXN0cmVhbS1kZXRhaWwvYm1iLXRpbWVzdHJlYW0tZGV0YWlsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RzLW5nL3NyYy9saWIvY29tcG9uZW50cy9ibWItdGltZXN0cmVhbS9ibWItdGltZXN0cmVhbS1kZXRhaWwvYm1iLXRpbWVzdHJlYW0tZGV0YWlsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBRUwsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFFTixTQUFTLEVBQ1QsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFFakMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDbkYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7OztBQVduRixNQUFNLE9BQU8sNkJBQTZCO0lBZ0J4QyxZQUFvQixHQUFzQjtRQUF0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQWYxQyxTQUFJLEdBQUcsS0FBSyxDQUFTLElBQUksQ0FBQyxDQUFDO1FBQzNCLFFBQUcsR0FBRyxLQUFLLENBQVcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDdEMsaUJBQVksR0FBRyxLQUFLLENBQWdCO1lBQ2xDLEdBQUcsRUFBRSxFQUFFO1lBQ1AsS0FBSyxFQUFFLEVBQUU7WUFDVCxJQUFJLEVBQUUs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cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIGlucHV0LFxuICBPbkNoYW5nZXMsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYXRlVGltZSB9IGZyb20gJ2x1eG9uJztcbmltcG9ydCB7IElTZWxlY3RlZERhdGUsIElUaW1lbGluZUV2ZW50LCBJVGltZWxpbmVFdmVudFBhcnNlZCB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IEJtYkhpdG9DYXJkQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYm1iLWhpdG8tY2FyZC9ibWItaGl0by1jYXJkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCbWJUZXh0TGlua0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL2JtYi10ZXh0LWxpbmsvYm1iLXRleHQtbGluay5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdibWItdGltZXN0cmVhbS1kZXRhaWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBCbWJIaXRvQ2FyZENvbXBvbmVudCwgQm1iVGV4dExpbmtDb21wb25lbnRdLFxuICB0ZW1wbGF0ZVVybDogJy4vYm1iLXRpbWVzdHJlYW0tZGV0YWlsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2JtYi10aW1lc3RyZWFtLWRldGFpbC5jb21wb25lbnQuc2NzcycsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBCbWJUaW1lc3RyZWFtRGV0YWlsc0NvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcyB7XG4gIGxhbmcgPSBpbnB1dDxzdHJpbmc+KCdlcycpO1xuICBub3cgPSBpbnB1dDxEYXRlVGltZT4oRGF0ZVRpbWUubm93KCkpO1xuICBzZWxlY3RlZERhdGUgPSBpbnB1dDxJU2VsZWN0ZWREYXRlPih7XG4gICAgZGF5OiAnJyxcbiAgICBtb250aDogJycsXG4gICAgZGF0ZTogdGhpcy5ub3coKSxcbiAgfSk7XG4gIG9yZGVyZWRFdmVudHMgPSBpbnB1dDxJVGltZWxpbmVFdmVudFBhcnNlZFtdPihbXSk7XG4gIGlzTWljcm8gPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG5cbiAgQE91dHB1dCgpIGNoYW5nZVNlbGVjdGVkRXZlbnQ6IEV2ZW50RW1pdHRlcjxJVGltZWxpbmVFdmVudD4gPVxuICAgIG5ldyBFdmVudEVtaXR0ZXI8SVRpbWVsaW5lRXZlbnQ+KCk7XG5cbiAgQFZpZXdDaGlsZCgnbW9udGhEZXRhaWxMaXN0JykgbW9udGhMaXN0ITogRWxlbWVudFJlZjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5zY3JvbGxUb0l0ZW0oKTtcbiAgICB9LCAxKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBjb25zdCBzZWxlY3RlZERhdGVDaGFuZ2UgPSBjaGFuZ2VzWydzZWxlY3RlZERhdGUnXTtcblxuICAgIGlmIChcbiAgICAgIHNlbGVjdGVkRGF0ZUNoYW5nZS5wcmV2aW91c1ZhbHVlICYmXG4gICAgICBzZWxlY3RlZERhdGVDaGFuZ2UucHJldmlvdXNWYWx1ZS5kYXkgIT09XG4gICAgICAgIHNlbGVjdGVkRGF0ZUNoYW5nZS5jdXJyZW50VmFsdWU/LmRheVxuICAgICkge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuc2Nyb2xsVG9JdGVtKCk7XG4gICAgICB9LCAxKTtcbiAgICB9XG4gIH1cblxuICBnZXRDdXJyZW50TW9udGgoZGF0ZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3QgcGFyc2VkRGF0ZSA9IERhdGVUaW1lLmZyb21Gb3JtYXQoZGF0ZSwgJ3l5eXkvTU0nKTtcbiAgICByZXR1cm4gKFxuICAgICAgcGFyc2VkRGF0ZS5tb250aCA9PT0gdGhpcy5zZWxlY3RlZERhdGUoKS5kYXRlLm1vbnRoICYmXG4gICAgICBwYXJzZWREYXRlLnllYXIgPT09IHRoaXMuc2VsZWN0ZWREYXRlKCkuZGF0ZS55ZWFyXG4gICAgKTtcbiAgfVxuXG4gIGdldE1vbnRoVGl0bGUoZGF0ZTogRGF0ZVRpbWUpIHtcbiAgICByZXR1cm4gZGF0ZS5zZXRMb2NhbGUodGhpcy5sYW5nKCkpLnRvRm9ybWF0KCdjY2NjIGRkIExMTEwgeXl5eScpO1xuICB9XG5cbiAgc2Nyb2xsVG9JdGVtKCkge1xuICAgIGxldCBjdXJyZW50TW9udGhFbGVtZW50ID0gdGhpcy5tb250aExpc3QubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKFxuICAgICAgJy5ibWJfdGltZXN0cmVhbS1kZXRhaWwtaXRlbS1jdXJyZW50JyxcbiAgICApO1xuXG4gICAgaWYgKGN1cnJlbnRNb250aEVsZW1lbnQpIHtcbiAgICAgIGN1cnJlbnRNb250aEVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoKTtcbiAgICB9XG4gIH1cblxuICBnZXREdXJhdGlvblN0cmluZyhldmVudDogSVRpbWVsaW5lRXZlbnQpOiBzdHJpbmcge1xuICAgIHJldHVybiBgRHVyYWNpw7NuOiAke2V2ZW50Lm9yaWdpbmFsU3RhcnQ/LmRheX0gLSAke2V2ZW50LmVuZEV2ZW50Py5zZXRMb2NhbGUodGhpcy5sYW5nKCkpLnRvRm9ybWF0KCdkZCBMTExMIHl5eXknKX0gKCR7KGV2ZW50LmRpZmYgfHwgMCkgKyAxfSBEw61hcylgO1xuICB9XG5cbiAgaXNUb2RheUV2ZW50KGV2ZW50OiBJVGltZWxpbmVFdmVudFBhcnNlZCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBldmVudC5kYXRlLmhhc1NhbWUodGhpcy5ub3coKSwgJ2RheScpO1xuICB9XG5cbiAgaGFuZGxlRXZlbnRDaGFuZ2UoZXZlbnQ6IElUaW1lbGluZUV2ZW50KSB7XG4gICAgdGhpcy5jaGFuZ2VTZWxlY3RlZEV2ZW50LmVtaXQoZXZlbnQpO1xuICB9XG59XG4iLCI8dWwgI21vbnRoRGV0YWlsTGlzdCBjbGFzcz1cImJtYl90aW1lc3RyZWFtLWRldGFpbFwiPlxuICBAaWYgKCFvcmRlcmVkRXZlbnRzKCkubGVuZ3RoKSB7XG4gICAgPHA+Tm8gaGF5IGV2ZW50b3MgcGFyYSBtb3N0cmFyLjwvcD5cbiAgfVxuICBAZm9yIChkYXlFdmVudCBvZiBvcmRlcmVkRXZlbnRzKCk7IHRyYWNrICRpbmRleCkge1xuICAgIEBpZiAoIWlzTWljcm8oKSB8fCBpc1RvZGF5RXZlbnQoZGF5RXZlbnQpKSB7XG4gICAgICA8bGlcbiAgICAgICAgY2xhc3M9XCJibWJfdGltZXN0cmVhbS1kZXRhaWwtaXRlbVwiXG4gICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAnYm1iX3RpbWVzdHJlYW0tZGV0YWlsLWl0ZW0tY3VycmVudCc6IGRheUV2ZW50LnNlbGVjdGVkXG4gICAgICAgIH1cIlxuICAgICAgPlxuICAgICAgICA8aGVhZGVyXG4gICAgICAgICAgY2xhc3M9XCJibWJfdGltZXN0cmVhbS1kZXRhaWwtaXRlbS1oZWFkZXJcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICdibWJfdGltZXN0cmVhbS1kZXRhaWwtaXRlbS1oZWFkZXItbWljcm8nOiBpc01pY3JvKClcbiAgICAgICAgICB9XCJcbiAgICAgICAgPlxuICAgICAgICAgIDxoMyBjbGFzcz1cImJtYl90aW1lc3RyZWFtLWRldGFpbC1pdGVtLWhlYWRlci10aXRsZVwiPlxuICAgICAgICAgICAge3sgZ2V0TW9udGhUaXRsZShkYXlFdmVudC5kYXRlKSB9fVxuICAgICAgICAgIDwvaDM+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJibWJfdGltZXN0cmVhbS1kZXRhaWwtaXRlbS1oZWFkZXItc3VidGl0bGVcIlxuICAgICAgICAgICAgPnt7IGRheUV2ZW50LmV2ZW50cy5sZW5ndGggfX1cbiAgICAgICAgICAgIHt7IGRheUV2ZW50LmV2ZW50cy5sZW5ndGggPiAxID8gJ0hJVE9TJyA6ICdISVRPJyB9fTwvc3BhblxuICAgICAgICAgID5cbiAgICAgICAgPC9oZWFkZXI+XG4gICAgICAgIDxzZWN0aW9uXG4gICAgICAgICAgY2xhc3M9XCJibWJfdGltZXN0cmVhbS1kZXRhaWwtY29udGVudFwiXG4gICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgJ2JtYl90aW1lc3RyZWFtLWRldGFpbC1jb250ZW50LW1pY3JvJzogaXNNaWNybygpXG4gICAgICAgICAgfVwiXG4gICAgICAgID5cbiAgICAgICAgICBAZm9yIChldmVudCBvZiBkYXlFdmVudC5ldmVudHM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgPGJtYi1oaXRvLWNhcmRcbiAgICAgICAgICAgICAgW2ljb25dPVwiZXZlbnQuaWNvbiB8fCAnYXBwX2JhZGdpbmcnXCJcbiAgICAgICAgICAgICAgKGhhbmRsZUNsaWNrKT1cImhhbmRsZUV2ZW50Q2hhbmdlKGV2ZW50KVwiXG4gICAgICAgICAgICAgIFt0aXRsZV09XCJldmVudC50aXRsZVwiXG4gICAgICAgICAgICAgIFtzaG9ydF9kZXNjcmlwdGlvbl09XCIhaXNNaWNybygpID8gZXZlbnQuc2hvcnRfZGVzY3JpcHRpb24gOiAnJ1wiXG4gICAgICAgICAgICAgIFt0eXBlXT1cImV2ZW50LnR5cGVcIlxuICAgICAgICAgICAgICBbaWRdPVwiZXZlbnQuaWRcIlxuICAgICAgICAgICAgICBbc3ViX2NvbnRlbnRdPVwiZ2V0RHVyYXRpb25TdHJpbmcoZXZlbnQpXCJcbiAgICAgICAgICAgICAgW2VuYWJsZV9idWxsZXRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgIFtpc19hY3RpdmVdPVwiZGF5RXZlbnQuc2VsZWN0ZWRcIlxuICAgICAgICAgICAgICBbaXNDb21wYWN0XT1cImlzTWljcm8oKVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgPC9saT5cbiAgICB9XG4gIH1cbjwvdWw+XG4iXX0=