valtech-components 2.0.981 → 2.0.983

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.
@@ -1,7 +1,8 @@
1
1
  import { CommonModule } from '@angular/common';
2
- import { Component, computed, Input, signal } from '@angular/core';
2
+ import { Component, computed, inject, Input, signal } from '@angular/core';
3
3
  import { IonAccordion, IonAccordionGroup, IonItem, IonLabel } from '@ionic/angular/standalone';
4
4
  import { parseMarkdownArticle } from '../../../services/markdown-article/markdown-article-parser';
5
+ import { I18nService } from '../../../services/i18n/i18n.service';
5
6
  import { ArticleComponent } from '../article/article.component';
6
7
  import { SearchbarComponent } from '../../molecules/searchbar/searchbar.component';
7
8
  import * as i0 from "@angular/core";
@@ -24,6 +25,7 @@ import * as i0 from "@angular/core";
24
25
  */
25
26
  export class FaqComponent {
26
27
  constructor() {
28
+ this.i18n = inject(I18nService);
27
29
  this.props_ = signal({ categories: [] });
28
30
  /** Término de búsqueda actual. */
29
31
  this.query = signal('');
@@ -33,10 +35,11 @@ export class FaqComponent {
33
35
  * Keyed por id de item (los ids son únicos en toda la FAQ).
34
36
  */
35
37
  this.parsedAnswers = computed(() => {
38
+ const locale = (this.i18n.lang() ?? 'es');
36
39
  const map = new Map();
37
40
  for (const cat of this.props_().categories ?? []) {
38
41
  for (const item of cat.items) {
39
- map.set(item.id, parseMarkdownArticle(item.answer));
42
+ map.set(item.id, parseMarkdownArticle(item.answer, { locale }));
40
43
  }
41
44
  }
42
45
  return map;
@@ -173,4 +176,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
173
176
  }], propDecorators: { props: [{
174
177
  type: Input
175
178
  }] } });
176
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFxLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvZmFxL2ZhcS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDL0YsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDbEcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFaEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0NBQStDLENBQUM7O0FBR25GOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBNEdILE1BQU0sT0FBTyxZQUFZO0lBM0d6QjtRQTRHbUIsV0FBTSxHQUFHLE1BQU0sQ0FBYyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBU2xFLGtDQUFrQztRQUNqQixVQUFLLEdBQUcsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRXBDOzs7O1dBSUc7UUFDYyxrQkFBYSxHQUFHLFFBQVEsQ0FBK0IsR0FBRyxFQUFFO1lBQzNFLE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxFQUEyQixDQUFDO1lBQy9DLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLFVBQVUsSUFBSSxFQUFFLEVBQUUsQ0FBQztnQkFDakQsS0FBSyxNQUFNLElBQUksSUFBSSxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBQzdCLEdBQUcsQ0FBQyxHQUFH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Q29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIElucHV0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElvbkFjY29yZGlvbiwgSW9uQWNjb3JkaW9uR3JvdXAsIElvbkl0ZW0sIElvbkxhYmVsIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBwYXJzZU1hcmtkb3duQXJ0aWNsZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL21hcmtkb3duLWFydGljbGUvbWFya2Rvd24tYXJ0aWNsZS1wYXJzZXInO1xuaW1wb3J0IHsgQXJ0aWNsZUNvbXBvbmVudCB9IGZyb20gJy4uL2FydGljbGUvYXJ0aWNsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXJ0aWNsZU1ldGFkYXRhIH0gZnJvbSAnLi4vYXJ0aWNsZS90eXBlcyc7XG5pbXBvcnQgeyBTZWFyY2hiYXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvc2VhcmNoYmFyL3NlYXJjaGJhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmFxQ2F0ZWdvcnksIEZhcUl0ZW0sIEZhcU1ldGFkYXRhIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogYHZhbC1mYXFgXG4gKlxuICogT3JnYW5pc20gZGUgcHJlZ3VudGFzIGZyZWN1ZW50ZXMuIFEmQSBjYXRlZ29yaXphZG8gY29uIGFjY29yZGlvbiBjb2xhcHNhYmxlXG4gKiB5IGJ1c2NhZG9yIGVuIHZpdm8uIFBlbnNhZG8gcGFyYSB2aXN0YXMgRkFRIHDDumJsaWNhcyDigJQgZWwgY2FsbGVyIHB1ZWRlXG4gKiByZXVzYXIgbGEgbWlzbWEgZGF0YSAoYEZhcU1ldGFkYXRhLmNhdGVnb3JpZXNgKSBwYXJhIGVtaXRpciBlbCBzdHJ1Y3R1cmVkXG4gKiBkYXRhIGBGQVFQYWdlYCAoSlNPTi1MRCkgeSBnYW5hciByaWNoIHJlc3VsdHMgZW4gYnVzY2Fkb3Jlcy5cbiAqXG4gKiBMYXMgcmVzcHVlc3RhcyAoYEZhcUl0ZW0uYW5zd2VyYCkgc29uICoqTWFya2Rvd24qKiDigJQgc2UgcGFyc2VhbiBjb25cbiAqIGBwYXJzZU1hcmtkb3duQXJ0aWNsZWAgeSBzZSByZW5kZXJpemFuIHbDrWEgYHZhbC1hcnRpY2xlYC4gU29wb3J0YW4gbGlua3MsXG4gKiBsaXN0YXMsIG5lZ3JpdGFzLCB0YWJsYXMsIGV0Yy5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgaHRtbFxuICogPHZhbC1mYXEgW3Byb3BzXT1cInsgY2F0ZWdvcmllczogZmFxQ2F0ZWdvcmllcywgc2VhcmNoYWJsZTogdHJ1ZSB9XCIgLz5cbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtZmFxJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSW9uQWNjb3JkaW9uLCBJb25BY2NvcmRpb25Hcm91cCwgSW9uSXRlbSwgSW9uTGFiZWwsIFNlYXJjaGJhckNvbXBvbmVudCwgQXJ0aWNsZUNvbXBvbmVudF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cInZhbC1mYXFcIj5cbiAgICAgIEBpZiAocHJvcHMuc2VhcmNoYWJsZSAhPT0gZmFsc2UpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cInZhbC1mYXFfX3NlYXJjaFwiPlxuICAgICAgICAgIDx2YWwtc2VhcmNoYmFyXG4gICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogcHJvcHMuc2VhcmNoUGxhY2Vob2xkZXIgfHwgJycsXG4gICAgICAgICAgICAgIGRlYm91bmNlOiAyMDAsXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgICAgIChmaWx0ZXJFdmVudCk9XCJvblNlYXJjaCgkZXZlbnQpXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cblxuICAgICAgQGlmICh2aXNpYmxlQ2F0ZWdvcmllcygpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICA8cCBjbGFzcz1cInZhbC1mYXFfX2VtcHR5XCI+XG4gICAgICAgICAge3sgcHJvcHMubm9SZXN1bHRzVGV4dCB8fCAnU2luIHJlc3VsdGFkb3MnIH19XG4gICAgICAgIDwvcD5cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICBAZm9yIChjYXQgb2YgdmlzaWJsZUNhdGVnb3JpZXMoKTsgdHJhY2sgY2F0LmlkKSB7XG4gICAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJ2YWwtZmFxX19jYXRlZ29yeVwiPlxuICAgICAgICAgICAgQGlmIChzaG93Q2F0ZWdvcnlMYWJlbCgpKSB7XG4gICAgICAgICAgICAgIDxoMyBjbGFzcz1cInZhbC1mYXFfX2NhdGVnb3J5LWxhYmVsXCI+e3sgY2F0LmxhYmVsIH19PC9oMz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDxpb24tYWNjb3JkaW9uLWdyb3VwIFttdWx0aXBsZV09XCJwcm9wcy5tdWx0aXBsZSA/PyBmYWxzZVwiPlxuICAgICAgICAgICAgICBAZm9yIChpdGVtIG9mIGNhdC5pdGVtczsgdHJhY2sgaXRlbS5pZCkge1xuICAgICAgICAgICAgICAgIDxpb24tYWNjb3JkaW9uIFt2YWx1ZV09XCJpdGVtLmlkXCIgY2xhc3M9XCJ2YWwtZmFxX19pdGVtXCI+XG4gICAgICAgICAgICAgICAgICA8aW9uLWl0ZW0gc2xvdD1cImhlYWRlclwiIGxpbmVzPVwibm9uZVwiIGNsYXNzPVwidmFsLWZhcV9fcVwiPlxuICAgICAgICAgICAgICAgICAgICA8aW9uLWxhYmVsIGNsYXNzPVwidmFsLWZhcV9fcS1sYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0ucXVlc3Rpb24gfX1cbiAgICAgICAgICAgICAgICAgICAgPC9pb24tbGFiZWw+XG4gICAgICAgICAgICAgICAgICA8L2lvbi1pdGVtPlxuICAgICAgICAgICAgICAgICAgPGRpdiBzbG90PVwiY29udGVudFwiIGNsYXNzPVwidmFsLWZhcV9fYVwiPlxuICAgICAgICAgICAgICAgICAgICA8dmFsLWFydGljbGUgW3Byb3BzXT1cImFuc3dlck9mKGl0ZW0pXCIgLz5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvaW9uLWFjY29yZGlvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9pb24tYWNjb3JkaW9uLWdyb3VwPlxuICAgICAgICAgIDwvc2VjdGlvbj5cbiAgICAgICAgfVxuICAgICAgfVxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cblxuICAgICAgLnZhbC1mYXFfX3NlYXJjaCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICAgICB9XG5cbiAgICAgIC52YWwtZmFxX19jYXRlZ29yeSArIC52YWwtZmFxX19jYXRlZ29yeSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDI0cHg7XG4gICAgICB9XG5cbiAgICAgIC52YWwtZmFxX19jYXRlZ29yeS1sYWJlbCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wNmVtO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLW1lZGl1bSwgIzkyOTQ5Yyk7XG4gICAgICAgIG1hcmdpbjogMCAwIDhweDtcbiAgICAgICAgcGFkZGluZy1pbmxpbmU6IDRweDtcbiAgICAgIH1cblxuICAgICAgaW9uLWFjY29yZGlvbi1ncm91cCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgfVxuXG4gICAgICAudmFsLWZhcV9faXRlbSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWlvbi1jb2xvci1saWdodCwgI2Y0ZjVmOCk7XG4gICAgICB9XG5cbiAgICAgIC52YWwtZmFxX19xIHtcbiAgICAgICAgLS1iYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgLS1taW4taGVpZ2h0OiA1NnB4O1xuICAgICAgfVxuXG4gICAgICAudmFsLWZhcV9fcS1sYWJlbCB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgICB9XG5cbiAgICAgIC52YWwtZmFxX19hIHtcbiAgICAgICAgcGFkZGluZzogNHB4IDE2cHggMTZweDtcbiAgICAgIH1cblxuICAgICAgLnZhbC1mYXFfX2VtcHR5IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBwYWRkaW5nOiAzMnB4IDE2cHg7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItbWVkaXVtLCAjOTI5NDljKTtcbiAgICAgICAgZm9udC1zaXplOiAwLjk1cmVtO1xuICAgICAgfVxuICAgIGAsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEZhcUNvbXBvbmVudCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgcHJvcHNfID0gc2lnbmFsPEZhcU1ldGFkYXRhPih7IGNhdGVnb3JpZXM6IFtdIH0pO1xuXG4gIEBJbnB1dCgpIHNldCBwcm9wcyh2YWx1ZTogRmFxTWV0YWRhdGEgfCB1bmRlZmluZWQpIHtcbiAgICBpZiAodmFsdWUpIHRoaXMucHJvcHNfLnNldCh2YWx1ZSk7XG4gIH1cbiAgZ2V0IHByb3BzKCk6IEZhcU1ldGFkYXRhIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wc18oKTtcbiAgfVxuXG4gIC8qKiBUw6lybWlubyBkZSBiw7pzcXVlZGEgYWN0dWFsLiAqL1xuICBwcml2YXRlIHJlYWRvbmx5IHF1ZXJ5ID0gc2lnbmFsKCcnKTtcblxuICAvKipcbiAgICogQ2FjaGUgZGUgcmVzcHVlc3RhcyBwYXJzZWFkYXMgKE1hcmtkb3duIOKGkiBBcnRpY2xlTWV0YWRhdGEpLiBTZSByZWNvbnN0cnV5ZVxuICAgKiBzb2xvIGN1YW5kbyBjYW1iaWFuIGxhcyBjYXRlZ29yw61hcyDigJQgZWwgcGFyc2VvIE5PIGNvcnJlIHBvciBrZXlzdHJva2UuXG4gICAqIEtleWVkIHBvciBpZCBkZSBpdGVtIChsb3MgaWRzIHNvbiDDum5pY29zIGVuIHRvZGEgbGEgRkFRKS5cbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgcGFyc2VkQW5zd2VycyA9IGNvbXB1dGVkPE1hcDxzdHJpbmcsIEFydGljbGVNZXRhZGF0YT4+KCgpID0+IHtcbiAgICBjb25zdCBtYXAgPSBuZXcgTWFwPHN0cmluZywgQXJ0aWNsZU1ldGFkYXRhPigpO1xuICAgIGZvciAoY29uc3QgY2F0IG9mIHRoaXMucHJvcHNfKCkuY2F0ZWdvcmllcyA/PyBbXSkge1xuICAgICAgZm9yIChjb25zdCBpdGVtIG9mIGNhdC5pdGVtcykge1xuICAgICAgICBtYXAuc2V0KGl0ZW0uaWQsIHBhcnNlTWFya2Rvd25BcnRpY2xlKGl0ZW0uYW5zd2VyKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBtYXA7XG4gIH0pO1xuXG4gIC8qKiBSZXNwdWVzdGEgcGFyc2VhZGEgZGUgdW4gaXRlbSDigJQgZGVzZGUgZWwgY2FjaGUuICovXG4gIGFuc3dlck9mKGl0ZW06IEZhcUl0ZW0pOiBBcnRpY2xlTWV0YWRhdGEge1xuICAgIHJldHVybiB0aGlzLnBhcnNlZEFuc3dlcnMoKS5nZXQoaXRlbS5pZCkgPz8geyBlbGVtZW50czogW10gfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYXRlZ29yw61hcyB2aXNpYmxlcyB0cmFzIGVsIGZpbHRyby4gVW5hIGNhdGVnb3LDrWEgZGVzYXBhcmVjZSBzaSBuaW5ndW5hXG4gICAqIGRlIHN1cyBwcmVndW50YXMgbWF0Y2hlYS4gTWF0Y2ggc29icmUgcHJlZ3VudGEgKyByZXNwdWVzdGEgKHJhdyBtYXJrZG93biksXG4gICAqIGNhc2UtaW5zZW5zaXRpdmUuXG4gICAqL1xuICByZWFkb25seSB2aXNpYmxlQ2F0ZWdvcmllcyA9IGNvbXB1dGVkPEZhcUNhdGVnb3J5W10+KCgpID0+IHtcbiAgICBjb25zdCBxID0gdGhpcy5xdWVyeSgpLnRyaW0oKS50b0xvd2VyQ2FzZSgpO1xuICAgIGNvbnN0IGNhdHMgPSB0aGlzLnByb3BzXygpLmNhdGVnb3JpZXMgPz8gW107XG4gICAgaWYgKCFxKSByZXR1cm4gY2F0cztcbiAgICByZXR1cm4gY2F0c1xuICAgICAgLm1hcChjYXQgPT4gKHtcbiAgICAgICAgLi4uY2F0LFxuICAgICAgICBpdGVtczogY2F0Lml0ZW1zLmZpbHRlcihpdCA9PiBpdC5xdWVzdGlvbi50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHEpIHx8IGl0LmFuc3dlci50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHEpKSxcbiAgICAgIH0pKVxuICAgICAgLmZpbHRlcihjYXQgPT4gY2F0Lml0ZW1zLmxlbmd0aCA+IDApO1xuICB9KTtcblxuICAvKiogYHRydWVgIHNpIHNlIGRlYmUgbW9zdHJhciBlbCBsYWJlbCBkZSBjYWRhIGNhdGVnb3LDrWEuICovXG4gIHJlYWRvbmx5IHNob3dDYXRlZ29yeUxhYmVsID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHAgPSB0aGlzLnByb3BzXygpO1xuICAgIGlmIChwLmhpZGVTaW5nbGVDYXRlZ29yeUxhYmVsID09PSBmYWxzZSkgcmV0dXJuIHRydWU7XG4gICAgcmV0dXJuIChwLmNhdGVnb3JpZXM/Lmxlbmd0aCA/PyAwKSA+IDE7XG4gIH0pO1xuXG4gIG9uU2VhcmNoKHRlcm06IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMucXVlcnkuc2V0KHRlcm0gPz8gJycpO1xuICB9XG59XG4iXX0=
179
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFxLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvZmFxL2ZhcS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQy9GLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUVoRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQzs7QUFHbkY7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQkc7QUE0R0gsTUFBTSxPQUFPLFlBQVk7SUEzR3pCO1FBNEdtQixTQUFJLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzNCLFdBQU0sR0FBRyxNQUFNLENBQWMsRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQVNsRSxrQ0FBa0M7UUFDakIsVUFBSyxHQUFHLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUVwQzs7OztXQUlHO1FBQ2Msa0JBQWEsR0FBRyxRQUFRLENBQStCLEdBQUcsRUFBRTtZQUMzRSxNQUFNLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksSUFBSSxDQUF1QixDQUFDO1lBQ2hFLE1BQU0sR0FBRyxHQUFH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QUNQLENBQUMsWUFBWSxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixDQUFDLFlBQ3ZHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EwQ1Q7OEJBaUVZLEtBQUs7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5qZWN0LCBJbnB1dCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJb25BY2NvcmRpb24sIElvbkFjY29yZGlvbkdyb3VwLCBJb25JdGVtLCBJb25MYWJlbCB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgcGFyc2VNYXJrZG93bkFydGljbGUgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tYXJrZG93bi1hcnRpY2xlL21hcmtkb3duLWFydGljbGUtcGFyc2VyJztcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaTE4bi9pMThuLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXJ0aWNsZUNvbXBvbmVudCB9IGZyb20gJy4uL2FydGljbGUvYXJ0aWNsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXJ0aWNsZU1ldGFkYXRhIH0gZnJvbSAnLi4vYXJ0aWNsZS90eXBlcyc7XG5pbXBvcnQgeyBTZWFyY2hiYXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvc2VhcmNoYmFyL3NlYXJjaGJhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmFxQ2F0ZWdvcnksIEZhcUl0ZW0sIEZhcU1ldGFkYXRhIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogYHZhbC1mYXFgXG4gKlxuICogT3JnYW5pc20gZGUgcHJlZ3VudGFzIGZyZWN1ZW50ZXMuIFEmQSBjYXRlZ29yaXphZG8gY29uIGFjY29yZGlvbiBjb2xhcHNhYmxlXG4gKiB5IGJ1c2NhZG9yIGVuIHZpdm8uIFBlbnNhZG8gcGFyYSB2aXN0YXMgRkFRIHDDumJsaWNhcyDigJQgZWwgY2FsbGVyIHB1ZWRlXG4gKiByZXVzYXIgbGEgbWlzbWEgZGF0YSAoYEZhcU1ldGFkYXRhLmNhdGVnb3JpZXNgKSBwYXJhIGVtaXRpciBlbCBzdHJ1Y3R1cmVkXG4gKiBkYXRhIGBGQVFQYWdlYCAoSlNPTi1MRCkgeSBnYW5hciByaWNoIHJlc3VsdHMgZW4gYnVzY2Fkb3Jlcy5cbiAqXG4gKiBMYXMgcmVzcHVlc3RhcyAoYEZhcUl0ZW0uYW5zd2VyYCkgc29uICoqTWFya2Rvd24qKiDigJQgc2UgcGFyc2VhbiBjb25cbiAqIGBwYXJzZU1hcmtkb3duQXJ0aWNsZWAgeSBzZSByZW5kZXJpemFuIHbDrWEgYHZhbC1hcnRpY2xlYC4gU29wb3J0YW4gbGlua3MsXG4gKiBsaXN0YXMsIG5lZ3JpdGFzLCB0YWJsYXMsIGV0Yy5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgaHRtbFxuICogPHZhbC1mYXEgW3Byb3BzXT1cInsgY2F0ZWdvcmllczogZmFxQ2F0ZWdvcmllcywgc2VhcmNoYWJsZTogdHJ1ZSB9XCIgLz5cbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtZmFxJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSW9uQWNjb3JkaW9uLCBJb25BY2NvcmRpb25Hcm91cCwgSW9uSXRlbSwgSW9uTGFiZWwsIFNlYXJjaGJhckNvbXBvbmVudCwgQXJ0aWNsZUNvbXBvbmVudF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cInZhbC1mYXFcIj5cbiAgICAgIEBpZiAocHJvcHMuc2VhcmNoYWJsZSAhPT0gZmFsc2UpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cInZhbC1mYXFfX3NlYXJjaFwiPlxuICAgICAgICAgIDx2YWwtc2VhcmNoYmFyXG4gICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogcHJvcHMuc2VhcmNoUGxhY2Vob2xkZXIgfHwgJycsXG4gICAgICAgICAgICAgIGRlYm91bmNlOiAyMDAsXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgICAgIChmaWx0ZXJFdmVudCk9XCJvblNlYXJjaCgkZXZlbnQpXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cblxuICAgICAgQGlmICh2aXNpYmxlQ2F0ZWdvcmllcygpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICA8cCBjbGFzcz1cInZhbC1mYXFfX2VtcHR5XCI+XG4gICAgICAgICAge3sgcHJvcHMubm9SZXN1bHRzVGV4dCB8fCAnU2luIHJlc3VsdGFkb3MnIH19XG4gICAgICAgIDwvcD5cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICBAZm9yIChjYXQgb2YgdmlzaWJsZUNhdGVnb3JpZXMoKTsgdHJhY2sgY2F0LmlkKSB7XG4gICAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJ2YWwtZmFxX19jYXRlZ29yeVwiPlxuICAgICAgICAgICAgQGlmIChzaG93Q2F0ZWdvcnlMYWJlbCgpKSB7XG4gICAgICAgICAgICAgIDxoMyBjbGFzcz1cInZhbC1mYXFfX2NhdGVnb3J5LWxhYmVsXCI+e3sgY2F0LmxhYmVsIH19PC9oMz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDxpb24tYWNjb3JkaW9uLWdyb3VwIFttdWx0aXBsZV09XCJwcm9wcy5tdWx0aXBsZSA/PyBmYWxzZVwiPlxuICAgICAgICAgICAgICBAZm9yIChpdGVtIG9mIGNhdC5pdGVtczsgdHJhY2sgaXRlbS5pZCkge1xuICAgICAgICAgICAgICAgIDxpb24tYWNjb3JkaW9uIFt2YWx1ZV09XCJpdGVtLmlkXCIgY2xhc3M9XCJ2YWwtZmFxX19pdGVtXCI+XG4gICAgICAgICAgICAgICAgICA8aW9uLWl0ZW0gc2xvdD1cImhlYWRlclwiIGxpbmVzPVwibm9uZVwiIGNsYXNzPVwidmFsLWZhcV9fcVwiPlxuICAgICAgICAgICAgICAgICAgICA8aW9uLWxhYmVsIGNsYXNzPVwidmFsLWZhcV9fcS1sYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0ucXVlc3Rpb24gfX1cbiAgICAgICAgICAgICAgICAgICAgPC9pb24tbGFiZWw+XG4gICAgICAgICAgICAgICAgICA8L2lvbi1pdGVtPlxuICAgICAgICAgICAgICAgICAgPGRpdiBzbG90PVwiY29udGVudFwiIGNsYXNzPVwidmFsLWZhcV9fYVwiPlxuICAgICAgICAgICAgICAgICAgICA8dmFsLWFydGljbGUgW3Byb3BzXT1cImFuc3dlck9mKGl0ZW0pXCIgLz5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvaW9uLWFjY29yZGlvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9pb24tYWNjb3JkaW9uLWdyb3VwPlxuICAgICAgICAgIDwvc2VjdGlvbj5cbiAgICAgICAgfVxuICAgICAgfVxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cblxuICAgICAgLnZhbC1mYXFfX3NlYXJjaCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICAgICB9XG5cbiAgICAgIC52YWwtZmFxX19jYXRlZ29yeSArIC52YWwtZmFxX19jYXRlZ29yeSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDI0cHg7XG4gICAgICB9XG5cbiAgICAgIC52YWwtZmFxX19jYXRlZ29yeS1sYWJlbCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wNmVtO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLW1lZGl1bSwgIzkyOTQ5Yyk7XG4gICAgICAgIG1hcmdpbjogMCAwIDhweDtcbiAgICAgICAgcGFkZGluZy1pbmxpbmU6IDRweDtcbiAgICAgIH1cblxuICAgICAgaW9uLWFjY29yZGlvbi1ncm91cCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgfVxuXG4gICAgICAudmFsLWZhcV9faXRlbSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWlvbi1jb2xvci1saWdodCwgI2Y0ZjVmOCk7XG4gICAgICB9XG5cbiAgICAgIC52YWwtZmFxX19xIHtcbiAgICAgICAgLS1iYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgLS1taW4taGVpZ2h0OiA1NnB4O1xuICAgICAgfVxuXG4gICAgICAudmFsLWZhcV9fcS1sYWJlbCB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgICB9XG5cbiAgICAgIC52YWwtZmFxX19hIHtcbiAgICAgICAgcGFkZGluZzogNHB4IDE2cHggMTZweDtcbiAgICAgIH1cblxuICAgICAgLnZhbC1mYXFfX2VtcHR5IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBwYWRkaW5nOiAzMnB4IDE2cHg7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItbWVkaXVtLCAjOTI5NDljKTtcbiAgICAgICAgZm9udC1zaXplOiAwLjk1cmVtO1xuICAgICAgfVxuICAgIGAsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEZhcUNvbXBvbmVudCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgcHJvcHNfID0gc2lnbmFsPEZhcU1ldGFkYXRhPih7IGNhdGVnb3JpZXM6IFtdIH0pO1xuXG4gIEBJbnB1dCgpIHNldCBwcm9wcyh2YWx1ZTogRmFxTWV0YWRhdGEgfCB1bmRlZmluZWQpIHtcbiAgICBpZiAodmFsdWUpIHRoaXMucHJvcHNfLnNldCh2YWx1ZSk7XG4gIH1cbiAgZ2V0IHByb3BzKCk6IEZhcU1ldGFkYXRhIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wc18oKTtcbiAgfVxuXG4gIC8qKiBUw6lybWlubyBkZSBiw7pzcXVlZGEgYWN0dWFsLiAqL1xuICBwcml2YXRlIHJlYWRvbmx5IHF1ZXJ5ID0gc2lnbmFsKCcnKTtcblxuICAvKipcbiAgICogQ2FjaGUgZGUgcmVzcHVlc3RhcyBwYXJzZWFkYXMgKE1hcmtkb3duIOKGkiBBcnRpY2xlTWV0YWRhdGEpLiBTZSByZWNvbnN0cnV5ZVxuICAgKiBzb2xvIGN1YW5kbyBjYW1iaWFuIGxhcyBjYXRlZ29yw61hcyDigJQgZWwgcGFyc2VvIE5PIGNvcnJlIHBvciBrZXlzdHJva2UuXG4gICAqIEtleWVkIHBvciBpZCBkZSBpdGVtIChsb3MgaWRzIHNvbiDDum5pY29zIGVuIHRvZGEgbGEgRkFRKS5cbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgcGFyc2VkQW5zd2VycyA9IGNvbXB1dGVkPE1hcDxzdHJpbmcsIEFydGljbGVNZXRhZGF0YT4+KCgpID0+IHtcbiAgICBjb25zdCBsb2NhbGUgPSAodGhpcy5pMThuLmxhbmcoKSA/PyAnZXMnKSBhcyAnZXMnIHwgJ2VuJyB8ICdwdCc7XG4gICAgY29uc3QgbWFwID0gbmV3IE1hcDxzdHJpbmcsIEFydGljbGVNZXRhZGF0YT4oKTtcbiAgICBmb3IgKGNvbnN0IGNhdCBvZiB0aGlzLnByb3BzXygpLmNhdGVnb3JpZXMgPz8gW10pIHtcbiAgICAgIGZvciAoY29uc3QgaXRlbSBvZiBjYXQuaXRlbXMpIHtcbiAgICAgICAgbWFwLnNldChpdGVtLmlkLCBwYXJzZU1hcmtkb3duQXJ0aWNsZShpdGVtLmFuc3dlciwgeyBsb2NhbGUgfSkpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbWFwO1xuICB9KTtcblxuICAvKiogUmVzcHVlc3RhIHBhcnNlYWRhIGRlIHVuIGl0ZW0g4oCUIGRlc2RlIGVsIGNhY2hlLiAqL1xuICBhbnN3ZXJPZihpdGVtOiBGYXFJdGVtKTogQXJ0aWNsZU1ldGFkYXRhIHtcbiAgICByZXR1cm4gdGhpcy5wYXJzZWRBbnN3ZXJzKCkuZ2V0KGl0ZW0uaWQpID8/IHsgZWxlbWVudHM6IFtdIH07XG4gIH1cblxuICAvKipcbiAgICogQ2F0ZWdvcsOtYXMgdmlzaWJsZXMgdHJhcyBlbCBmaWx0cm8uIFVuYSBjYXRlZ29yw61hIGRlc2FwYXJlY2Ugc2kgbmluZ3VuYVxuICAgKiBkZSBzdXMgcHJlZ3VudGFzIG1hdGNoZWEuIE1hdGNoIHNvYnJlIHByZWd1bnRhICsgcmVzcHVlc3RhIChyYXcgbWFya2Rvd24pLFxuICAgKiBjYXNlLWluc2Vuc2l0aXZlLlxuICAgKi9cbiAgcmVhZG9ubHkgdmlzaWJsZUNhdGVnb3JpZXMgPSBjb21wdXRlZDxGYXFDYXRlZ29yeVtdPigoKSA9PiB7XG4gICAgY29uc3QgcSA9IHRoaXMucXVlcnkoKS50cmltKCkudG9Mb3dlckNhc2UoKTtcbiAgICBjb25zdCBjYXRzID0gdGhpcy5wcm9wc18oKS5jYXRlZ29yaWVzID8/IFtdO1xuICAgIGlmICghcSkgcmV0dXJuIGNhdHM7XG4gICAgcmV0dXJuIGNhdHNcbiAgICAgIC5tYXAoY2F0ID0+ICh7XG4gICAgICAgIC4uLmNhdCxcbiAgICAgICAgaXRlbXM6IGNhdC5pdGVtcy5maWx0ZXIoaXQgPT4gaXQucXVlc3Rpb24udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhxKSB8fCBpdC5hbnN3ZXIudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhxKSksXG4gICAgICB9KSlcbiAgICAgIC5maWx0ZXIoY2F0ID0+IGNhdC5pdGVtcy5sZW5ndGggPiAwKTtcbiAgfSk7XG5cbiAgLyoqIGB0cnVlYCBzaSBzZSBkZWJlIG1vc3RyYXIgZWwgbGFiZWwgZGUgY2FkYSBjYXRlZ29yw61hLiAqL1xuICByZWFkb25seSBzaG93Q2F0ZWdvcnlMYWJlbCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBwID0gdGhpcy5wcm9wc18oKTtcbiAgICBpZiAocC5oaWRlU2luZ2xlQ2F0ZWdvcnlMYWJlbCA9PT0gZmFsc2UpIHJldHVybiB0cnVlO1xuICAgIHJldHVybiAocC5jYXRlZ29yaWVzPy5sZW5ndGggPz8gMCkgPiAxO1xuICB9KTtcblxuICBvblNlYXJjaCh0ZXJtOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnF1ZXJ5LnNldCh0ZXJtID8/ICcnKTtcbiAgfVxufVxuIl19
@@ -4,8 +4,8 @@ import { ActivatedRoute } from '@angular/router';
4
4
  import { DisplayComponent } from '../../atoms/display/display.component';
5
5
  import { TextComponent } from '../../atoms/text/text.component';
6
6
  import { TitleComponent } from '../../atoms/title/title.component';
7
- import { IonSelect, IonSelectOption } from '@ionic/angular/standalone';
8
7
  import { LanguageSelectorComponent } from '../../molecules/language-selector/language-selector.component';
8
+ import { PopoverSelectorComponent } from '../../molecules/popover-selector/popover-selector.component';
9
9
  import { I18nService } from '../../../services/i18n';
10
10
  import { NavigationService } from '../../../services/navigation/navigation.service';
11
11
  import { PreferencesService } from '../../../services/preferences/preferences.service';
@@ -64,12 +64,6 @@ export class PreferencesViewComponent {
64
64
  this.langHint = computed(() => this.t('languageHint'));
65
65
  this.fontSizeTitle = computed(() => this.t('fontSizeTitle'));
66
66
  this.fontSizeHint = computed(() => this.t('fontSizeHint'));
67
- this.themeLight = computed(() => this.t('themeLight'));
68
- this.themeDark = computed(() => this.t('themeDark'));
69
- this.themeAuto = computed(() => this.t('themeAuto'));
70
- this.fontSizeSmall = computed(() => this.t('fontSizeSmall'));
71
- this.fontSizeMedium = computed(() => this.t('fontSizeMedium'));
72
- this.fontSizeLarge = computed(() => this.t('fontSizeLarge'));
73
67
  this.langProps = computed(() => ({
74
68
  currentLanguage: this.prefs.language(),
75
69
  availableLanguages: this.resolvedConfig().supportedLanguages,
@@ -78,6 +72,28 @@ export class PreferencesViewComponent {
78
72
  expand: 'block',
79
73
  fill: 'outline',
80
74
  }));
75
+ this.themePickerProps = computed(() => ({
76
+ selectedValue: this.prefs.theme(),
77
+ disabled: this.saving(),
78
+ fill: 'outline',
79
+ interface: 'popover',
80
+ options: [
81
+ { value: 'light', label: this.t('themeLight') },
82
+ { value: 'dark', label: this.t('themeDark') },
83
+ { value: 'auto', label: this.t('themeAuto') },
84
+ ],
85
+ }));
86
+ this.fontSizePickerProps = computed(() => ({
87
+ selectedValue: this.prefs.fontSize(),
88
+ disabled: this.saving(),
89
+ fill: 'outline',
90
+ interface: 'popover',
91
+ options: [
92
+ { value: 'small', label: this.t('fontSizeSmall') },
93
+ { value: 'medium', label: this.t('fontSizeMedium') },
94
+ { value: 'large', label: this.t('fontSizeLarge') },
95
+ ],
96
+ }));
81
97
  // Auto-registro i18n — respeta override del consumer. El namespace puede
82
98
  // venir de @Input.config o del route data; lo resolvemos acá.
83
99
  const ns = this.ns;
@@ -87,14 +103,16 @@ export class PreferencesViewComponent {
87
103
  this.nav.setBackHeader('pageTitle', ns, { withMenu: true });
88
104
  }
89
105
  async onThemeChange(value) {
90
- if (this.saving() || value === this.prefs.theme())
106
+ const v = Array.isArray(value) ? value[0] : value;
107
+ if (this.saving() || v === this.prefs.theme())
91
108
  return;
92
- const theme = value;
109
+ const theme = v;
93
110
  await this.dispatch(() => this.prefs.setTheme(theme), () => this.resolvedConfig().onThemeChanged?.(theme));
94
111
  }
95
112
  async onFontSizeChange(value) {
96
- const fontSize = value;
97
- if (this.saving() || value === this.prefs.fontSize())
113
+ const v = Array.isArray(value) ? value[0] : value;
114
+ const fontSize = v;
115
+ if (this.saving() || v === this.prefs.fontSize())
98
116
  return;
99
117
  await this.dispatch(() => this.prefs.setFontSize(fontSize), () => this.resolvedConfig().onFontSizeChanged?.(fontSize));
100
118
  }
@@ -161,18 +179,7 @@ export class PreferencesViewComponent {
161
179
  content: themeHint(),
162
180
  }"
163
181
  />
164
- <ion-select
165
- [value]="prefs.theme()"
166
- [disabled]="saving()"
167
- fill="outline"
168
- expand="block"
169
- interface="popover"
170
- (ionChange)="onThemeChange($event.detail.value)"
171
- >
172
- <ion-select-option value="light">{{ themeLight() }}</ion-select-option>
173
- <ion-select-option value="dark">{{ themeDark() }}</ion-select-option>
174
- <ion-select-option value="auto">{{ themeAuto() }}</ion-select-option>
175
- </ion-select>
182
+ <val-popover-selector [props]="themePickerProps()" (selectionChange)="onThemeChange($event)" />
176
183
  </div>
177
184
  </section>
178
185
  }
@@ -220,30 +227,18 @@ export class PreferencesViewComponent {
220
227
  content: fontSizeHint(),
221
228
  }"
222
229
  />
223
- <ion-select
224
- [value]="prefs.fontSize()"
225
- [disabled]="saving()"
226
- fill="outline"
227
- expand="block"
228
- interface="popover"
229
- (ionChange)="onFontSizeChange($event.detail.value)"
230
- >
231
- <ion-select-option value="small">{{ fontSizeSmall() }}</ion-select-option>
232
- <ion-select-option value="medium">{{ fontSizeMedium() }}</ion-select-option>
233
- <ion-select-option value="large">{{ fontSizeLarge() }}</ion-select-option>
234
- </ion-select>
230
+ <val-popover-selector [props]="fontSizePickerProps()" (selectionChange)="onFontSizeChange($event)" />
235
231
  </div>
236
232
  </section>
237
233
  }
238
234
  </div>
239
- `, isInline: true, styles: [".page{padding:16px 0;max-width:720px;margin:0 auto}.settings-section{padding:16px 0}.settings-section+.settings-section{border-top:1px solid var(--val-border-color, rgba(0, 0, 0, .08))}.section-body{display:flex;flex-direction:column;gap:10px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonSelect, selector: "ion-select", inputs: ["cancelText", "color", "compareWith", "disabled", "errorText", "expandedIcon", "fill", "helperText", "interface", "interfaceOptions", "justify", "label", "labelPlacement", "mode", "multiple", "name", "okText", "placeholder", "selectedText", "shape", "toggleIcon", "value"] }, { kind: "component", type: IonSelectOption, selector: "ion-select-option", inputs: ["disabled", "value"] }, { kind: "component", type: LanguageSelectorComponent, selector: "val-language-selector", inputs: ["props"], outputs: ["languageChange"] }, { kind: "component", type: DisplayComponent, selector: "val-display", inputs: ["props"] }, { kind: "component", type: TitleComponent, selector: "val-title", inputs: ["props"] }, { kind: "component", type: TextComponent, selector: "val-text", inputs: ["props"] }] }); }
235
+ `, isInline: true, styles: [".page{padding:16px 0;max-width:720px;margin:0 auto}.settings-section{padding:16px 0}.settings-section+.settings-section{border-top:1px solid var(--val-border-color, rgba(0, 0, 0, .08))}.section-body{display:flex;flex-direction:column;gap:10px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: PopoverSelectorComponent, selector: "val-popover-selector", inputs: ["props"], outputs: ["selectionChange"] }, { kind: "component", type: LanguageSelectorComponent, selector: "val-language-selector", inputs: ["props"], outputs: ["languageChange"] }, { kind: "component", type: DisplayComponent, selector: "val-display", inputs: ["props"] }, { kind: "component", type: TitleComponent, selector: "val-title", inputs: ["props"] }, { kind: "component", type: TextComponent, selector: "val-text", inputs: ["props"] }] }); }
240
236
  }
241
237
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PreferencesViewComponent, decorators: [{
242
238
  type: Component,
243
239
  args: [{ selector: 'val-preferences-view', standalone: true, imports: [
244
240
  CommonModule,
245
- IonSelect,
246
- IonSelectOption,
241
+ PopoverSelectorComponent,
247
242
  LanguageSelectorComponent,
248
243
  DisplayComponent,
249
244
  TitleComponent,
@@ -281,18 +276,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
281
276
  content: themeHint(),
282
277
  }"
283
278
  />
284
- <ion-select
285
- [value]="prefs.theme()"
286
- [disabled]="saving()"
287
- fill="outline"
288
- expand="block"
289
- interface="popover"
290
- (ionChange)="onThemeChange($event.detail.value)"
291
- >
292
- <ion-select-option value="light">{{ themeLight() }}</ion-select-option>
293
- <ion-select-option value="dark">{{ themeDark() }}</ion-select-option>
294
- <ion-select-option value="auto">{{ themeAuto() }}</ion-select-option>
295
- </ion-select>
279
+ <val-popover-selector [props]="themePickerProps()" (selectionChange)="onThemeChange($event)" />
296
280
  </div>
297
281
  </section>
298
282
  }
@@ -340,18 +324,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
340
324
  content: fontSizeHint(),
341
325
  }"
342
326
  />
343
- <ion-select
344
- [value]="prefs.fontSize()"
345
- [disabled]="saving()"
346
- fill="outline"
347
- expand="block"
348
- interface="popover"
349
- (ionChange)="onFontSizeChange($event.detail.value)"
350
- >
351
- <ion-select-option value="small">{{ fontSizeSmall() }}</ion-select-option>
352
- <ion-select-option value="medium">{{ fontSizeMedium() }}</ion-select-option>
353
- <ion-select-option value="large">{{ fontSizeLarge() }}</ion-select-option>
354
- </ion-select>
327
+ <val-popover-selector [props]="fontSizePickerProps()" (selectionChange)="onFontSizeChange($event)" />
355
328
  </div>
356
329
  </section>
357
330
  }
@@ -360,4 +333,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
360
333
  }], ctorParameters: () => [], propDecorators: { config: [{
361
334
  type: Input
362
335
  }] } });
363
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlZmVyZW5jZXMtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3ByZWZlcmVuY2VzLXZpZXcvcHJlZmVyZW5jZXMtdmlldy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVqRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDaEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdkUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sK0RBQStELENBQUM7QUFHMUcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBTXZGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBR3JGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOztBQUVoRSxNQUFNLGlCQUFpQixHQUFHLGtCQUFrQixDQUFDO0FBQzdDLE1BQU0saUJBQWlCLEdBQTBCLENBQUMsSUFBSSxFQUFFLElBQUks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Ozs7Ozs7OztHQTRHVCw4VEFwSEMsWUFBWSwrQkFDWixTQUFTLGtWQUNULGVBQWUsNkZBQ2YseUJBQXlCLGtIQUN6QixnQkFBZ0IsMkVBQ2hCLGNBQWMseUVBQ2QsYUFBYTs7NEZBb0lKLHdCQUF3QjtrQkE5SXBDLFNBQVM7K0JBQ0Usc0JBQXNCLGNBQ3BCLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLFNBQVM7d0JBQ1QsZUFBZTt3QkFDZix5QkFBeUI7d0JBQ3pCLGdCQUFnQjt3QkFDaEIsY0FBYzt3QkFDZCxhQUFhO3FCQUNkLFlBQ1M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTRHVDt3REFrQ1EsTUFBTTtzQkFBZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIGluamVjdCwgSW5wdXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBEaXNwbGF5Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvZGlzcGxheS9kaXNwbGF5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZXh0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvdGV4dC90ZXh0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaXRsZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL3RpdGxlL3RpdGxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJb25TZWxlY3QsIElvblNlbGVjdE9wdGlvbiB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgTGFuZ3VhZ2VTZWxlY3RvckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9sYW5ndWFnZS1zZWxlY3Rvci9sYW5ndWFnZS1zZWxlY3Rvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGFuZ3VhZ2VTZWxlY3Rvck1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2xhbmd1YWdlLXNlbGVjdG9yL3R5cGVzJztcblxuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcbmltcG9ydCB7IE5hdmlnYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgUHJlZmVyZW5jZXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcHJlZmVyZW5jZXMvcHJlZmVyZW5jZXMuc2VydmljZSc7XG5pbXBvcnQge1xuICBQcmVmZXJlbmNlc0ZvbnRTaXplLFxuICBQcmVmZXJlbmNlc0xhbmd1YWdlLFxuICBQcmVmZXJlbmNlc1RoZW1lLFxufSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9wcmVmZXJlbmNlcy9wcmVmZXJlbmNlcy50eXBlcyc7XG5pbXBvcnQgeyBWYWx0ZWNoRXJyb3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZXJyb3JzL3ZhbHRlY2gtZXJyb3Iuc2VydmljZSc7XG5cbmltcG9ydCB7IFByZWZlcmVuY2VzVmlld0NvbmZpZyB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgUFJFRkVSRU5DRVNfVklFV19JMThOIH0gZnJvbSAnLi9wcmVmZXJlbmNlcy12aWV3LmkxOG4nO1xuXG5jb25zdCBERUZBVUxUX05BTUVTUEFDRSA9ICdTZXR0aW5ncy5HZW5lcmFsJztcbmNvbnN0IERFRkFVTFRfTEFOR1VBR0VTOiBQcmVmZXJlbmNlc0xhbmd1YWdlW10gPSBbJ2VzJywgJ2VuJ107XG5cbi8qKlxuICogYHZhbC1wcmVmZXJlbmNlcy12aWV3YCDigJQgdmlzdGEgZGUgcHJlZmVyZW5jaWFzIGRlIFVJIGNyb3NzLWFwcCAodGVtYSArXG4gKiBpZGlvbWEpIGZ1bGwtZmVhdHVyZSBhdXRvY29udGVuaWRhIChvcmdhbmlzbSkuIFByb21vdmlkYSBkZXNkZSBgc2hvd2Nhc2VgXG4gKiBiYWpvIGVsIHByb2Nlc28gZGUgQURSLTAyMS5cbiAqXG4gKiBCYWNrZW5kIGludGVncmF0aW9uIDEwMCUgZW4gYFByZWZlcmVuY2VzU2VydmljZWA6XG4gKiAgLSBSZWFkOiBsaXN0ZW5lciBGaXJlc3RvcmUgcmVhY3Rpdm8gKGBwcmVmcy50aGVtZSgpYCAvIGBwcmVmcy5sYW5ndWFnZSgpYCkuXG4gKiAgLSBXcml0ZTogYFBVVCAvdjIvYXV0aC9wcmVmZXJlbmNlc2AgKGBwcmVmcy5zZXRUaGVtZWAgLyBgcHJlZnMuc2V0TGFuZ3VhZ2VgKS5cbiAqICAgIEVsIGNsaWVudGUgTlVOQ0EgZXNjcmliZSBGaXJlc3RvcmUgZGlyZWN0by5cbiAqXG4gKiBOTyByZW5kZXJpemEgaW9uLWNvbnRlbnQg4oCUIHZpdmUgZGVudHJvIGRlIHZhbC1wYWdlLXdyYXBwZXIuXG4gKlxuICogQXV0by1yZWdpc3RyYSBzdXMgZGVmYXVsdHMgaTE4biAoZXMvZW4pIGVuIGVsIGNvbnN0cnVjdG9yIHNpIGVsIGNvbnN1bWVyIG5vXG4gKiBwcm92ZXnDsyBlbCBuYW1lc3BhY2UgY29uZmlndXJhZG8gKGRlZmF1bHQgYFNldHRpbmdzLkdlbmVyYWxgKS5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLXByZWZlcmVuY2VzLXZpZXcnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIElvblNlbGVjdCxcbiAgICBJb25TZWxlY3RPcHRpb24sXG4gICAgTGFuZ3VhZ2VTZWxlY3RvckNvbXBvbmVudCxcbiAgICBEaXNwbGF5Q29tcG9uZW50LFxuICAgIFRpdGxlQ29tcG9uZW50LFxuICAgIFRleHRDb21wb25lbnQsXG4gIF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cInBhZ2VcIj5cbiAgICAgIDxoZWFkZXIgY2xhc3M9XCJwYWdlLWhlYWRlclwiPlxuICAgICAgICA8dmFsLWRpc3BsYXkgW3Byb3BzXT1cInsgc2l6ZTogJ3NtYWxsJywgY29sb3I6ICdkYXJrJywgY29udGVudDogcGFnZVRpdGxlKCkgfVwiIC8+XG4gICAgICAgIDx2YWwtdGl0bGVcbiAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgc2l6ZTogJ2xhcmdlJyxcbiAgICAgICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgICAgICBib2xkOiBmYWxzZSxcbiAgICAgICAgICAgIGNvbnRlbnQ6IHBhZ2VEZXNjcmlwdGlvbigpLFxuICAgICAgICAgIH1cIlxuICAgICAgICAvPlxuICAgICAgPC9oZWFkZXI+XG5cbiAgICAgIEBpZiAocmVzb2x2ZWRDb25maWcoKS5zaG93VGhlbWUpIHtcbiAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJzZXR0aW5ncy1zZWN0aW9uXCI+XG4gICAgICAgICAgPHZhbC10aXRsZVxuICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgc2l6ZTogJ21lZGl1bScsXG4gICAgICAgICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgICAgICAgIGJvbGQ6IHRydWUsXG4gICAgICAgICAgICAgIGNvbnRlbnQ6IHRoZW1lVGl0bGUoKSxcbiAgICAgICAgICAgIH1cIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tYm9keVwiPlxuICAgICAgICAgICAgPHZhbC10ZXh0XG4gICAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgICAgc2l6ZTogJ21lZGl1bScsXG4gICAgICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgICAgICBib2xkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBjb250ZW50OiB0aGVtZUhpbnQoKSxcbiAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPGlvbi1zZWxlY3RcbiAgICAgICAgICAgICAgW3ZhbHVlXT1cInByZWZzLnRoZW1lKClcIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwic2F2aW5nKClcIlxuICAgICAgICAgICAgICBmaWxsPVwib3V0bGluZVwiXG4gICAgICAgICAgICAgIGV4cGFuZD1cImJsb2NrXCJcbiAgICAgICAgICAgICAgaW50ZXJmYWNlPVwicG9wb3ZlclwiXG4gICAgICAgICAgICAgIChpb25DaGFuZ2UpPVwib25UaGVtZUNoYW5nZSgkZXZlbnQuZGV0YWlsLnZhbHVlKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxpb24tc2VsZWN0LW9wdGlvbiB2YWx1ZT1cImxpZ2h0XCI+e3sgdGhlbWVMaWdodCgpIH19PC9pb24tc2VsZWN0LW9wdGlvbj5cbiAgICAgICAgICAgICAgPGlvbi1zZWxlY3Qtb3B0aW9uIHZhbHVlPVwiZGFya1wiPnt7IHRoZW1lRGFyaygpIH19PC9pb24tc2VsZWN0LW9wdGlvbj5cbiAgICAgICAgICAgICAgPGlvbi1zZWxlY3Qtb3B0aW9uIHZhbHVlPVwiYXV0b1wiPnt7IHRoZW1lQXV0bygpIH19PC9pb24tc2VsZWN0LW9wdGlvbj5cbiAgICAgICAgICAgIDwvaW9uLXNlbGVjdD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgfVxuXG4gICAgICBAaWYgKHJlc29sdmVkQ29uZmlnKCkuc2hvd0xhbmd1YWdlKSB7XG4gICAgICAgIDxzZWN0aW9uIGNsYXNzPVwic2V0dGluZ3Mtc2VjdGlvblwiPlxuICAgICAgICAgIDx2YWwtdGl0bGVcbiAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgIHNpemU6ICdtZWRpdW0nLFxuICAgICAgICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICAgICAgICBib2xkOiB0cnVlLFxuICAgICAgICAgICAgICBjb250ZW50OiBsYW5nVGl0bGUoKSxcbiAgICAgICAgICAgIH1cIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tYm9keVwiPlxuICAgICAgICAgICAgPHZhbC10ZXh0XG4gICAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgICAgc2l6ZTogJ21lZGl1bScsXG4gICAgICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgICAgICBib2xkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBjb250ZW50OiBsYW5nSGludCgpLFxuICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8dmFsLWxhbmd1YWdlLXNlbGVjdG9yIFtwcm9wc109XCJsYW5nUHJvcHMoKVwiIChsYW5ndWFnZUNoYW5nZSk9XCJvbkxhbmd1YWdlQ2hhbmdlKCRldmVudClcIiAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3NlY3Rpb24+XG4gICAgICB9XG5cbiAgICAgIEBpZiAocmVzb2x2ZWRDb25maWcoKS5zaG93Rm9udFNpemUpIHtcbiAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJzZXR0aW5ncy1zZWN0aW9uXCI+XG4gICAgICAgICAgPHZhbC10aXRsZVxuICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgc2l6ZTogJ21lZGl1bScsXG4gICAgICAgICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgICAgICAgIGJvbGQ6IHRydWUsXG4gICAgICAgICAgICAgIGNvbnRlbnQ6IGZvbnRTaXplVGl0bGUoKSxcbiAgICAgICAgICAgIH1cIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tYm9keVwiPlxuICAgICAgICAgICAgPHZhbC10ZXh0XG4gICAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgICAgc2l6ZTogJ21lZGl1bScsXG4gICAgICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgICAgICBib2xkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBjb250ZW50OiBmb250U2l6ZUhpbnQoKSxcbiAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPGlvbi1zZWxlY3RcbiAgICAgICAgICAgICAgW3ZhbHVlXT1cInByZWZzLmZvbnRTaXplKClcIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwic2F2aW5nKClcIlxuICAgICAgICAgICAgICBmaWxsPVwib3V0bGluZVwiXG4gICAgICAgICAgICAgIGV4cGFuZD1cImJsb2NrXCJcbiAgICAgICAgICAgICAgaW50ZXJmYWNlPVwicG9wb3ZlclwiXG4gICAgICAgICAgICAgIChpb25DaGFuZ2UpPVwib25Gb250U2l6ZUNoYW5nZSgkZXZlbnQuZGV0YWlsLnZhbHVlKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxpb24tc2VsZWN0LW9wdGlvbiB2YWx1ZT1cInNtYWxsXCI+e3sgZm9udFNpemVTbWFsbCgpIH19PC9pb24tc2VsZWN0LW9wdGlvbj5cbiAgICAgICAgICAgICAgPGlvbi1zZWxlY3Qtb3B0aW9uIHZhbHVlPVwibWVkaXVtXCI+e3sgZm9udFNpemVNZWRpdW0oKSB9fTwvaW9uLXNlbGVjdC1vcHRpb24+XG4gICAgICAgICAgICAgIDxpb24tc2VsZWN0LW9wdGlvbiB2YWx1ZT1cImxhcmdlXCI+e3sgZm9udFNpemVMYXJnZSgpIH19PC9pb24tc2VsZWN0LW9wdGlvbj5cbiAgICAgICAgICAgIDwvaW9uLXNlbGVjdD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgfVxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICAucGFnZSB7XG4gICAgICAgIHBhZGRpbmc6IDE2cHggMDtcbiAgICAgICAgbWF4LXdpZHRoOiA3MjBweDtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICB9XG4gICAgICAuc2V0dGluZ3Mtc2VjdGlvbiB7XG4gICAgICAgIHBhZGRpbmc6IDE2cHggMDtcbiAgICAgIH1cbiAgICAgIC5zZXR0aW5ncy1zZWN0aW9uICsgLnNldHRpbmdzLXNlY3Rpb24ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tdmFsLWJvcmRlci1jb2xvciwgcmdiYSgwLCAwLCAwLCAwLjA4KSk7XG4gICAgICB9XG4gICAgICAuc2VjdGlvbi1ib2R5IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAxMHB4O1xuICAgICAgfVxuICAgIGAsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFByZWZlcmVuY2VzVmlld0NvbXBvbmVudCB7XG4gIHByaXZhdGUgbmF2ID0gaW5qZWN0KE5hdmlnYXRpb25TZXJ2aWNlKTtcbiAgcHJvdGVjdGVkIHByZWZzID0gaW5qZWN0KFByZWZlcmVuY2VzU2VydmljZSk7XG4gIHByaXZhdGUgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG4gIHByaXZhdGUgZXJyb3JzID0gaW5qZWN0KFZhbHRlY2hFcnJvclNlcnZpY2UpO1xuICBwcml2YXRlIHJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gIC8qKlxuICAgKiBDb25maWcgdsOtYSBASW5wdXQgKG9iamVjdC1maXJzdCkuIFNpIG5vIHNlIHBhc2EsIHNlIGNhZSBhbCByb3V0ZSBkYXRhXG4gICAqIGBwcmVmZXJlbmNlc0NvbmZpZ2AgKHBvYmxhZG8gcG9yIGBwcm92aWRlVmFsdGVjaFByZWZlcmVuY2VzUm91dGVzYCkuXG4gICAqIGByZXNvbHZlZENvbmZpZ2AgbWVyZ2VhIGNvbiBsb3MgZGVmYXVsdHMuXG4gICAqL1xuICBASW5wdXQoKSBjb25maWc/OiBQcmVmZXJlbmNlc1ZpZXdDb25maWc7XG5cbiAgLyoqIENvbmZpZyBtZXJnZWFkYSBjb24gZGVmYXVsdHMuIEBJbnB1dCBnYW5hIHNvYnJlIHJvdXRlIGRhdGEuICovXG4gIHJlYWRvbmx5IHJlc29sdmVkQ29uZmlnID0gY29tcHV0ZWQ8XG4gICAgUmVxdWlyZWQ8T21pdDxQcmVmZXJlbmNlc1ZpZXdDb25maWcsICdvblRoZW1lQ2hhbmdlZCcgfCAnb25MYW5ndWFnZUNoYW5nZWQnIHwgJ29uRm9udFNpemVDaGFuZ2VkJz4+ICZcbiAgICAgIFBpY2s8UHJlZmVyZW5jZXNWaWV3Q29uZmlnLCAnb25UaGVtZUNoYW5nZWQnIHwgJ29uTGFuZ3VhZ2VDaGFuZ2VkJyB8ICdvbkZvbnRTaXplQ2hhbmdlZCc+XG4gID4oKCkgPT4ge1xuICAgIGNvbnN0IGZyb21Sb3V0ZSA9ICh0aGlzLnJvdXRlPy5zbmFwc2hvdC5kYXRhWydwcmVmZXJlbmNlc0NvbmZpZyddID8/IHt9KSBhcyBQcmVmZXJlbmNlc1ZpZXdDb25maWc7XG4gICAgY29uc3QgbWVyZ2VkOiBQcmVmZXJlbmNlc1ZpZXdDb25maWcgPSB7IC4uLmZyb21Sb3V0ZSwgLi4uKHRoaXMuY29uZmlnID8/IHt9KSB9O1xuICAgIHJldHVybiB7XG4gICAgICBzaG93VGhlbWU6IG1lcmdlZC5zaG93VGhlbWUgPz8gdHJ1ZSxcbiAgICAgIHNob3dMYW5ndWFnZTogbWVyZ2VkLnNob3dMYW5ndWFnZSA/PyB0cnVlLFxuICAgICAgc2hvd0ZvbnRTaXplOiBtZXJnZWQuc2hvd0ZvbnRTaXplID8/IHRydWUsXG4gICAgICBzdXBwb3J0ZWRMYW5ndWFnZXM6IG1lcmdlZC5zdXBwb3J0ZWRMYW5ndWFnZXMgPz8gREVGQVVMVF9MQU5HVUFHRVMsXG4gICAgICBpMThuTmFtZXNwYWNlOiBtZXJnZWQuaTE4bk5hbWVzcGFjZSA/PyBERUZBVUxUX05BTUVTUEFDRSxcbiAgICAgIG9uVGhlbWVDaGFuZ2VkOiBtZXJnZWQub25UaGVtZUNoYW5nZWQsXG4gICAgICBvbkxhbmd1YWdlQ2hhbmdlZDogbWVyZ2VkLm9uTGFuZ3VhZ2VDaGFuZ2VkLFxuICAgICAgb25Gb250U2l6ZUNoYW5nZWQ6IG1lcmdlZC5vbkZvbnRTaXplQ2hhbmdlZCxcbiAgICB9O1xuICB9KTtcblxuICAvKiogTmFtZXNwYWNlIGkxOG4gcmVzdWVsdG8gKGNhcHR1cmFkbyBwYXJhIGxsYW1hZGFzIG5vLXJlYWN0aXZhcykuICovXG4gIHByaXZhdGUgZ2V0IG5zKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZWRDb25maWcoKS5pMThuTmFtZXNwYWNlO1xuICB9XG5cbiAgcmVhZG9ubHkgc2F2aW5nID0gc2lnbmFsKGZhbHNlKTtcblxuICByZWFkb25seSBwYWdlVGl0bGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnQoJ3BhZ2VUaXRsZScpKTtcbiAgcmVhZG9ubHkgcGFnZURlc2NyaXB0aW9uID0gY29tcHV0ZWQoKCkgPT4gdGhpcy50KCdwYWdlRGVzY3JpcHRpb24nKSk7XG4gIHJlYWRvbmx5IHRoZW1lVGl0bGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnQoJ3RoZW1lVGl0bGUnKSk7XG4gIHJlYWRvbmx5IHRoZW1lSGludCA9IGNvbXB1dGVkKCgpID0+IHRoaXMudCgndGhlbWVIaW50JykpO1xuICByZWFkb25seSBsYW5nVGl0bGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnQoJ2xhbmd1YWdlVGl0bGUnKSk7XG4gIHJlYWRvbmx5IGxhbmdIaW50ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy50KCdsYW5ndWFnZUhpbnQnKSk7XG4gIHJlYWRvbmx5IGZvbnRTaXplVGl0bGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnQoJ2ZvbnRTaXplVGl0bGUnKSk7XG4gIHJlYWRvbmx5IGZvbnRTaXplSGludCA9IGNvbXB1dGVkKCgpID0+IHRoaXMudCgnZm9udFNpemVIaW50JykpO1xuICByZWFkb25seSB0aGVtZUxpZ2h0ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy50KCd0aGVtZUxpZ2h0JykpO1xuICByZWFkb25seSB0aGVtZURhcmsgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnQoJ3RoZW1lRGFyaycpKTtcbiAgcmVhZG9ubHkgdGhlbWVBdXRvID0gY29tcHV0ZWQoKCkgPT4gdGhpcy50KCd0aGVtZUF1dG8nKSk7XG4gIHJlYWRvbmx5IGZvbnRTaXplU21hbGwgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnQoJ2ZvbnRTaXplU21hbGwnKSk7XG4gIHJlYWRvbmx5IGZvbnRTaXplTWVkaXVtID0gY29tcHV0ZWQoKCkgPT4gdGhpcy50KCdmb250U2l6ZU1lZGl1bScpKTtcbiAgcmVhZG9ubHkgZm9udFNpemVMYXJnZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMudCgnZm9udFNpemVMYXJnZScpKTtcblxuICByZWFkb25seSBsYW5nUHJvcHMgPSBjb21wdXRlZDxQYXJ0aWFsPExhbmd1YWdlU2VsZWN0b3JNZXRhZGF0YT4+KCgpID0+ICh7XG4gICAgY3VycmVudExhbmd1YWdlOiB0aGlzLnByZWZzLmxhbmd1YWdlKCksXG4gICAgYXZhaWxhYmxlTGFuZ3VhZ2VzOiB0aGlzLnJlc29sdmVkQ29uZmlnKCkuc3VwcG9ydGVkTGFuZ3VhZ2VzLFxuICAgIHNob3dMYWJlbDogZmFsc2UsXG4gICAgZGlzYWJsZWQ6IHRoaXMuc2F2aW5nKCksXG4gICAgZXhwYW5kOiAnYmxvY2snLFxuICAgIGZpbGw6ICdvdXRsaW5lJyxcbiAgfSkpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIC8vIEF1dG8tcmVnaXN0cm8gaTE4biDigJQgcmVzcGV0YSBvdmVycmlkZSBkZWwgY29uc3VtZXIuIEVsIG5hbWVzcGFjZSBwdWVkZVxuICAgIC8vIHZlbmlyIGRlIEBJbnB1dC5jb25maWcgbyBkZWwgcm91dGUgZGF0YTsgbG8gcmVzb2x2ZW1vcyBhY8OhLlxuICAgIGNvbnN0IG5zID0gdGhpcy5ucztcbiAgICBpZiAoIXRoaXMuaTE4bi5oYXNOYW1lc3BhY2UobnMpKSB7XG4gICAgICB0aGlzLmkxOG4ucmVnaXN0ZXJDb250ZW50KG5zLCBQUkVGRVJFTkNFU19WSUVXX0kxOE4pO1xuICAgIH1cblxuICAgIHRoaXMubmF2LnNldEJhY2tIZWFkZXIoJ3BhZ2VUaXRsZScsIG5zLCB7IHdpdGhNZW51OiB0cnVlIH0pO1xuICB9XG5cbiAgYXN5bmMgb25UaGVtZUNoYW5nZSh2YWx1ZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMuc2F2aW5nKCkgfHwgdmFsdWUgPT09IHRoaXMucHJlZnMudGhlbWUoKSkgcmV0dXJuO1xuICAgIGNvbnN0IHRoZW1lID0gdmFsdWUgYXMgUHJlZmVyZW5jZXNUaGVtZTtcbiAgICBhd2FpdCB0aGlzLmRpc3BhdGNoKFxuICAgICAgKCkgPT4gdGhpcy5wcmVmcy5zZXRUaGVtZSh0aGVtZSksXG4gICAgICAoKSA9PiB0aGlzLnJlc29sdmVkQ29uZmlnKCkub25UaGVtZUNoYW5nZWQ/Lih0aGVtZSlcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgb25Gb250U2l6ZUNoYW5nZSh2YWx1ZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgZm9udFNpemUgPSB2YWx1ZSBhcyBQcmVmZXJlbmNlc0ZvbnRTaXplO1xuICAgIGlmICh0aGlzLnNhdmluZygpIHx8IHZhbHVlID09PSB0aGlzLnByZWZzLmZvbnRTaXplKCkpIHJldHVybjtcbiAgICBhd2FpdCB0aGlzLmRpc3BhdGNoKFxuICAgICAgKCkgPT4gdGhpcy5wcmVmcy5zZXRGb250U2l6ZShmb250U2l6ZSksXG4gICAgICAoKSA9PiB0aGlzLnJlc29sdmVkQ29uZmlnKCkub25Gb250U2l6ZUNoYW5nZWQ/Lihmb250U2l6ZSlcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgb25MYW5ndWFnZUNoYW5nZSh2YWx1ZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgbGFuZyA9IHZhbHVlIGFzIFByZWZlcmVuY2VzTGFuZ3VhZ2U7XG4gICAgaWYgKCF0aGlzLnJlc29sdmVkQ29uZmlnKCkuc3VwcG9ydGVkTGFuZ3VhZ2VzLmluY2x1ZGVzKGxhbmcpKSByZXR1cm47XG4gICAgaWYgKHRoaXMuc2F2aW5nKCkgfHwgdmFsdWUgPT09IHRoaXMucHJlZnMubGFuZ3VhZ2UoKSkgcmV0dXJuO1xuICAgIGF3YWl0IHRoaXMuZGlzcGF0Y2goXG4gICAgICAoKSA9PiB0aGlzLnByZWZzLnNldExhbmd1YWdlKGxhbmcpLFxuICAgICAgKCkgPT4gdGhpcy5yZXNvbHZlZENvbmZpZygpLm9uTGFuZ3VhZ2VDaGFuZ2VkPy4obGFuZylcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBkaXNwYXRjaChmbjogKCkgPT4gUHJvbWlzZTx1bmtub3duPiwgb25TdWNjZXNzPzogKCkgPT4gdm9pZCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuc2F2aW5nLnNldCh0cnVlKTtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgZm4oKTtcbiAgICAgIG9uU3VjY2Vzcz8uKCk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICB0aGlzLmVycm9ycy5oYW5kbGUoZXJyLCB7XG4gICAgICAgIGNvbnRleHQ6ICdzZXR0aW5ncy5wcmVmZXJlbmNlcy5zYXZlJyxcbiAgICAgICAgZmFsbGJhY2tLZXk6ICdzYXZlRXJyb3InLFxuICAgICAgICBpMThuTmFtZXNwYWNlOiB0aGlzLm5zLFxuICAgICAgfSk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMuc2F2aW5nLnNldChmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqIExlZSBkZWwgbmFtZXNwYWNlIGNvbmZpZ3VyYWRvLiAqL1xuICBwcm90ZWN0ZWQgdChrZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaTE4bi50KGtleSwgdGhpcy5ucyk7XG4gIH1cbn1cbiJdfQ==
336
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlZmVyZW5jZXMtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3ByZWZlcmVuY2VzLXZpZXcvcHJlZmVyZW5jZXMtdmlldy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVqRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDaEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLCtEQUErRCxDQUFDO0FBRTFHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDZEQUE2RCxDQUFDO0FBR3ZHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNwRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQU12RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUdyRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFFaEUsTUFBTSxpQkFBaUIsR0FBRyxrQkFBa0IsQ0FBQztBQUM3QyxNQUFNLGlCQUFpQixHQUEwQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FB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Ozs7Ozs7Ozs7R0FzRlQ7d0RBa0NRLE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBpbmplY3QsIElucHV0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHsgRGlzcGxheUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2Rpc3BsYXkvZGlzcGxheS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGV4dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL3RleHQvdGV4dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGl0bGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy90aXRsZS90aXRsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGFuZ3VhZ2VTZWxlY3RvckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9sYW5ndWFnZS1zZWxlY3Rvci9sYW5ndWFnZS1zZWxlY3Rvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGFuZ3VhZ2VTZWxlY3Rvck1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2xhbmd1YWdlLXNlbGVjdG9yL3R5cGVzJztcbmltcG9ydCB7IFBvcG92ZXJTZWxlY3RvckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9wb3BvdmVyLXNlbGVjdG9yL3BvcG92ZXItc2VsZWN0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IFBvcG92ZXJTZWxlY3Rvck1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL3BvcG92ZXItc2VsZWN0b3IvdHlwZXMnO1xuXG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2kxOG4nO1xuaW1wb3J0IHsgTmF2aWdhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9uYXZpZ2F0aW9uL25hdmlnYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBQcmVmZXJlbmNlc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9wcmVmZXJlbmNlcy9wcmVmZXJlbmNlcy5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIFByZWZlcmVuY2VzRm9udFNpemUsXG4gIFByZWZlcmVuY2VzTGFuZ3VhZ2UsXG4gIFByZWZlcmVuY2VzVGhlbWUsXG59IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3ByZWZlcmVuY2VzL3ByZWZlcmVuY2VzLnR5cGVzJztcbmltcG9ydCB7IFZhbHRlY2hFcnJvclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9lcnJvcnMvdmFsdGVjaC1lcnJvci5zZXJ2aWNlJztcblxuaW1wb3J0IHsgUHJlZmVyZW5jZXNWaWV3Q29uZmlnIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBQUkVGRVJFTkNFU19WSUVXX0kxOE4gfSBmcm9tICcuL3ByZWZlcmVuY2VzLXZpZXcuaTE4bic7XG5cbmNvbnN0IERFRkFVTFRfTkFNRVNQQUNFID0gJ1NldHRpbmdzLkdlbmVyYWwnO1xuY29uc3QgREVGQVVMVF9MQU5HVUFHRVM6IFByZWZlcmVuY2VzTGFuZ3VhZ2VbXSA9IFsnZXMnLCAnZW4nXTtcblxuLyoqXG4gKiBgdmFsLXByZWZlcmVuY2VzLXZpZXdgIOKAlCB2aXN0YSBkZSBwcmVmZXJlbmNpYXMgZGUgVUkgY3Jvc3MtYXBwICh0ZW1hICtcbiAqIGlkaW9tYSkgZnVsbC1mZWF0dXJlIGF1dG9jb250ZW5pZGEgKG9yZ2FuaXNtKS4gUHJvbW92aWRhIGRlc2RlIGBzaG93Y2FzZWBcbiAqIGJham8gZWwgcHJvY2VzbyBkZSBBRFItMDIxLlxuICpcbiAqIEJhY2tlbmQgaW50ZWdyYXRpb24gMTAwJSBlbiBgUHJlZmVyZW5jZXNTZXJ2aWNlYDpcbiAqICAtIFJlYWQ6IGxpc3RlbmVyIEZpcmVzdG9yZSByZWFjdGl2byAoYHByZWZzLnRoZW1lKClgIC8gYHByZWZzLmxhbmd1YWdlKClgKS5cbiAqICAtIFdyaXRlOiBgUFVUIC92Mi9hdXRoL3ByZWZlcmVuY2VzYCAoYHByZWZzLnNldFRoZW1lYCAvIGBwcmVmcy5zZXRMYW5ndWFnZWApLlxuICogICAgRWwgY2xpZW50ZSBOVU5DQSBlc2NyaWJlIEZpcmVzdG9yZSBkaXJlY3RvLlxuICpcbiAqIE5PIHJlbmRlcml6YSBpb24tY29udGVudCDigJQgdml2ZSBkZW50cm8gZGUgdmFsLXBhZ2Utd3JhcHBlci5cbiAqXG4gKiBBdXRvLXJlZ2lzdHJhIHN1cyBkZWZhdWx0cyBpMThuIChlcy9lbikgZW4gZWwgY29uc3RydWN0b3Igc2kgZWwgY29uc3VtZXIgbm9cbiAqIHByb3ZlecOzIGVsIG5hbWVzcGFjZSBjb25maWd1cmFkbyAoZGVmYXVsdCBgU2V0dGluZ3MuR2VuZXJhbGApLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtcHJlZmVyZW5jZXMtdmlldycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgUG9wb3ZlclNlbGVjdG9yQ29tcG9uZW50LFxuICAgIExhbmd1YWdlU2VsZWN0b3JDb21wb25lbnQsXG4gICAgRGlzcGxheUNvbXBvbmVudCxcbiAgICBUaXRsZUNvbXBvbmVudCxcbiAgICBUZXh0Q29tcG9uZW50LFxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJwYWdlXCI+XG4gICAgICA8aGVhZGVyIGNsYXNzPVwicGFnZS1oZWFkZXJcIj5cbiAgICAgICAgPHZhbC1kaXNwbGF5IFtwcm9wc109XCJ7IHNpemU6ICdzbWFsbCcsIGNvbG9yOiAnZGFyaycsIGNvbnRlbnQ6IHBhZ2VUaXRsZSgpIH1cIiAvPlxuICAgICAgICA8dmFsLXRpdGxlXG4gICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgIHNpemU6ICdsYXJnZScsXG4gICAgICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICAgICAgYm9sZDogZmFsc2UsXG4gICAgICAgICAgICBjb250ZW50OiBwYWdlRGVzY3JpcHRpb24oKSxcbiAgICAgICAgICB9XCJcbiAgICAgICAgLz5cbiAgICAgIDwvaGVhZGVyPlxuXG4gICAgICBAaWYgKHJlc29sdmVkQ29uZmlnKCkuc2hvd1RoZW1lKSB7XG4gICAgICAgIDxzZWN0aW9uIGNsYXNzPVwic2V0dGluZ3Mtc2VjdGlvblwiPlxuICAgICAgICAgIDx2YWwtdGl0bGVcbiAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgIHNpemU6ICdtZWRpdW0nLFxuICAgICAgICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICAgICAgICBib2xkOiB0cnVlLFxuICAgICAgICAgICAgICBjb250ZW50OiB0aGVtZVRpdGxlKCksXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWJvZHlcIj5cbiAgICAgICAgICAgIDx2YWwtdGV4dFxuICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgIHNpemU6ICdtZWRpdW0nLFxuICAgICAgICAgICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgICAgICAgICAgYm9sZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgY29udGVudDogdGhlbWVIaW50KCksXG4gICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDx2YWwtcG9wb3Zlci1zZWxlY3RvciBbcHJvcHNdPVwidGhlbWVQaWNrZXJQcm9wcygpXCIgKHNlbGVjdGlvbkNoYW5nZSk9XCJvblRoZW1lQ2hhbmdlKCRldmVudClcIiAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3NlY3Rpb24+XG4gICAgICB9XG5cbiAgICAgIEBpZiAocmVzb2x2ZWRDb25maWcoKS5zaG93TGFuZ3VhZ2UpIHtcbiAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJzZXR0aW5ncy1zZWN0aW9uXCI+XG4gICAgICAgICAgPHZhbC10aXRsZVxuICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgc2l6ZTogJ21lZGl1bScsXG4gICAgICAgICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgICAgICAgIGJvbGQ6IHRydWUsXG4gICAgICAgICAgICAgIGNvbnRlbnQ6IGxhbmdUaXRsZSgpLFxuICAgICAgICAgICAgfVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi1ib2R5XCI+XG4gICAgICAgICAgICA8dmFsLXRleHRcbiAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICBzaXplOiAnbWVkaXVtJyxcbiAgICAgICAgICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICAgICAgICAgIGJvbGQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGxhbmdIaW50KCksXG4gICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDx2YWwtbGFuZ3VhZ2Utc2VsZWN0b3IgW3Byb3BzXT1cImxhbmdQcm9wcygpXCIgKGxhbmd1YWdlQ2hhbmdlKT1cIm9uTGFuZ3VhZ2VDaGFuZ2UoJGV2ZW50KVwiIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvc2VjdGlvbj5cbiAgICAgIH1cblxuICAgICAgQGlmIChyZXNvbHZlZENvbmZpZygpLnNob3dGb250U2l6ZSkge1xuICAgICAgICA8c2VjdGlvbiBjbGFzcz1cInNldHRpbmdzLXNlY3Rpb25cIj5cbiAgICAgICAgICA8dmFsLXRpdGxlXG4gICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICBzaXplOiAnbWVkaXVtJyxcbiAgICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgICAgYm9sZDogdHJ1ZSxcbiAgICAgICAgICAgICAgY29udGVudDogZm9udFNpemVUaXRsZSgpLFxuICAgICAgICAgICAgfVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi1ib2R5XCI+XG4gICAgICAgICAgICA8dmFsLXRleHRcbiAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICBzaXplOiAnbWVkaXVtJyxcbiAgICAgICAgICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICAgICAgICAgIGJvbGQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGZvbnRTaXplSGludCgpLFxuICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8dmFsLXBvcG92ZXItc2VsZWN0b3IgW3Byb3BzXT1cImZvbnRTaXplUGlja2VyUHJvcHMoKVwiIChzZWxlY3Rpb25DaGFuZ2UpPVwib25Gb250U2l6ZUNoYW5nZSgkZXZlbnQpXCIgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgfVxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICAucGFnZSB7XG4gICAgICAgIHBhZGRpbmc6IDE2cHggMDtcbiAgICAgICAgbWF4LXdpZHRoOiA3MjBweDtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICB9XG4gICAgICAuc2V0dGluZ3Mtc2VjdGlvbiB7XG4gICAgICAgIHBhZGRpbmc6IDE2cHggMDtcbiAgICAgIH1cbiAgICAgIC5zZXR0aW5ncy1zZWN0aW9uICsgLnNldHRpbmdzLXNlY3Rpb24ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tdmFsLWJvcmRlci1jb2xvciwgcmdiYSgwLCAwLCAwLCAwLjA4KSk7XG4gICAgICB9XG4gICAgICAuc2VjdGlvbi1ib2R5IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAxMHB4O1xuICAgICAgfVxuICAgIGAsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFByZWZlcmVuY2VzVmlld0NvbXBvbmVudCB7XG4gIHByaXZhdGUgbmF2ID0gaW5qZWN0KE5hdmlnYXRpb25TZXJ2aWNlKTtcbiAgcHJvdGVjdGVkIHByZWZzID0gaW5qZWN0KFByZWZlcmVuY2VzU2VydmljZSk7XG4gIHByaXZhdGUgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG4gIHByaXZhdGUgZXJyb3JzID0gaW5qZWN0KFZhbHRlY2hFcnJvclNlcnZpY2UpO1xuICBwcml2YXRlIHJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gIC8qKlxuICAgKiBDb25maWcgdsOtYSBASW5wdXQgKG9iamVjdC1maXJzdCkuIFNpIG5vIHNlIHBhc2EsIHNlIGNhZSBhbCByb3V0ZSBkYXRhXG4gICAqIGBwcmVmZXJlbmNlc0NvbmZpZ2AgKHBvYmxhZG8gcG9yIGBwcm92aWRlVmFsdGVjaFByZWZlcmVuY2VzUm91dGVzYCkuXG4gICAqIGByZXNvbHZlZENvbmZpZ2AgbWVyZ2VhIGNvbiBsb3MgZGVmYXVsdHMuXG4gICAqL1xuICBASW5wdXQoKSBjb25maWc/OiBQcmVmZXJlbmNlc1ZpZXdDb25maWc7XG5cbiAgLyoqIENvbmZpZyBtZXJnZWFkYSBjb24gZGVmYXVsdHMuIEBJbnB1dCBnYW5hIHNvYnJlIHJvdXRlIGRhdGEuICovXG4gIHJlYWRvbmx5IHJlc29sdmVkQ29uZmlnID0gY29tcHV0ZWQ8XG4gICAgUmVxdWlyZWQ8T21pdDxQcmVmZXJlbmNlc1ZpZXdDb25maWcsICdvblRoZW1lQ2hhbmdlZCcgfCAnb25MYW5ndWFnZUNoYW5nZWQnIHwgJ29uRm9udFNpemVDaGFuZ2VkJz4+ICZcbiAgICAgIFBpY2s8UHJlZmVyZW5jZXNWaWV3Q29uZmlnLCAnb25UaGVtZUNoYW5nZWQnIHwgJ29uTGFuZ3VhZ2VDaGFuZ2VkJyB8ICdvbkZvbnRTaXplQ2hhbmdlZCc+XG4gID4oKCkgPT4ge1xuICAgIGNvbnN0IGZyb21Sb3V0ZSA9ICh0aGlzLnJvdXRlPy5zbmFwc2hvdC5kYXRhWydwcmVmZXJlbmNlc0NvbmZpZyddID8/IHt9KSBhcyBQcmVmZXJlbmNlc1ZpZXdDb25maWc7XG4gICAgY29uc3QgbWVyZ2VkOiBQcmVmZXJlbmNlc1ZpZXdDb25maWcgPSB7IC4uLmZyb21Sb3V0ZSwgLi4uKHRoaXMuY29uZmlnID8/IHt9KSB9O1xuICAgIHJldHVybiB7XG4gICAgICBzaG93VGhlbWU6IG1lcmdlZC5zaG93VGhlbWUgPz8gdHJ1ZSxcbiAgICAgIHNob3dMYW5ndWFnZTogbWVyZ2VkLnNob3dMYW5ndWFnZSA/PyB0cnVlLFxuICAgICAgc2hvd0ZvbnRTaXplOiBtZXJnZWQuc2hvd0ZvbnRTaXplID8/IHRydWUsXG4gICAgICBzdXBwb3J0ZWRMYW5ndWFnZXM6IG1lcmdlZC5zdXBwb3J0ZWRMYW5ndWFnZXMgPz8gREVGQVVMVF9MQU5HVUFHRVMsXG4gICAgICBpMThuTmFtZXNwYWNlOiBtZXJnZWQuaTE4bk5hbWVzcGFjZSA/PyBERUZBVUxUX05BTUVTUEFDRSxcbiAgICAgIG9uVGhlbWVDaGFuZ2VkOiBtZXJnZWQub25UaGVtZUNoYW5nZWQsXG4gICAgICBvbkxhbmd1YWdlQ2hhbmdlZDogbWVyZ2VkLm9uTGFuZ3VhZ2VDaGFuZ2VkLFxuICAgICAgb25Gb250U2l6ZUNoYW5nZWQ6IG1lcmdlZC5vbkZvbnRTaXplQ2hhbmdlZCxcbiAgICB9O1xuICB9KTtcblxuICAvKiogTmFtZXNwYWNlIGkxOG4gcmVzdWVsdG8gKGNhcHR1cmFkbyBwYXJhIGxsYW1hZGFzIG5vLXJlYWN0aXZhcykuICovXG4gIHByaXZhdGUgZ2V0IG5zKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZWRDb25maWcoKS5pMThuTmFtZXNwYWNlO1xuICB9XG5cbiAgcmVhZG9ubHkgc2F2aW5nID0gc2lnbmFsKGZhbHNlKTtcblxuICByZWFkb25seSBwYWdlVGl0bGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnQoJ3BhZ2VUaXRsZScpKTtcbiAgcmVhZG9ubHkgcGFnZURlc2NyaXB0aW9uID0gY29tcHV0ZWQoKCkgPT4gdGhpcy50KCdwYWdlRGVzY3JpcHRpb24nKSk7XG4gIHJlYWRvbmx5IHRoZW1lVGl0bGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnQoJ3RoZW1lVGl0bGUnKSk7XG4gIHJlYWRvbmx5IHRoZW1lSGludCA9IGNvbXB1dGVkKCgpID0+IHRoaXMudCgndGhlbWVIaW50JykpO1xuICByZWFkb25seSBsYW5nVGl0bGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnQoJ2xhbmd1YWdlVGl0bGUnKSk7XG4gIHJlYWRvbmx5IGxhbmdIaW50ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy50KCdsYW5ndWFnZUhpbnQnKSk7XG4gIHJlYWRvbmx5IGZvbnRTaXplVGl0bGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnQoJ2ZvbnRTaXplVGl0bGUnKSk7XG4gIHJlYWRvbmx5IGZvbnRTaXplSGludCA9IGNvbXB1dGVkKCgpID0+IHRoaXMudCgnZm9udFNpemVIaW50JykpO1xuICByZWFkb25seSBsYW5nUHJvcHMgPSBjb21wdXRlZDxQYXJ0aWFsPExhbmd1YWdlU2VsZWN0b3JNZXRhZGF0YT4+KCgpID0+ICh7XG4gICAgY3VycmVudExhbmd1YWdlOiB0aGlzLnByZWZzLmxhbmd1YWdlKCksXG4gICAgYXZhaWxhYmxlTGFuZ3VhZ2VzOiB0aGlzLnJlc29sdmVkQ29uZmlnKCkuc3VwcG9ydGVkTGFuZ3VhZ2VzLFxuICAgIHNob3dMYWJlbDogZmFsc2UsXG4gICAgZGlzYWJsZWQ6IHRoaXMuc2F2aW5nKCksXG4gICAgZXhwYW5kOiAnYmxvY2snLFxuICAgIGZpbGw6ICdvdXRsaW5lJyxcbiAgfSkpO1xuXG4gIHJlYWRvbmx5IHRoZW1lUGlja2VyUHJvcHMgPSBjb21wdXRlZDxQb3BvdmVyU2VsZWN0b3JNZXRhZGF0YT4oKCkgPT4gKHtcbiAgICBzZWxlY3RlZFZhbHVlOiB0aGlzLnByZWZzLnRoZW1lKCksXG4gICAgZGlzYWJsZWQ6IHRoaXMuc2F2aW5nKCksXG4gICAgZmlsbDogJ291dGxpbmUnLFxuICAgIGludGVyZmFjZTogJ3BvcG92ZXInLFxuICAgIG9wdGlvbnM6IFtcbiAgICAgIHsgdmFsdWU6ICdsaWdodCcsIGxhYmVsOiB0aGlzLnQoJ3RoZW1lTGlnaHQnKSB9LFxuICAgICAgeyB2YWx1ZTogJ2RhcmsnLCBsYWJlbDogdGhpcy50KCd0aGVtZURhcmsnKSB9LFxuICAgICAgeyB2YWx1ZTogJ2F1dG8nLCBsYWJlbDogdGhpcy50KCd0aGVtZUF1dG8nKSB9LFxuICAgIF0sXG4gIH0pKTtcblxuICByZWFkb25seSBmb250U2l6ZVBpY2tlclByb3BzID0gY29tcHV0ZWQ8UG9wb3ZlclNlbGVjdG9yTWV0YWRhdGE+KCgpID0+ICh7XG4gICAgc2VsZWN0ZWRWYWx1ZTogdGhpcy5wcmVmcy5mb250U2l6ZSgpLFxuICAgIGRpc2FibGVkOiB0aGlzLnNhdmluZygpLFxuICAgIGZpbGw6ICdvdXRsaW5lJyxcbiAgICBpbnRlcmZhY2U6ICdwb3BvdmVyJyxcbiAgICBvcHRpb25zOiBbXG4gICAgICB7IHZhbHVlOiAnc21hbGwnLCBsYWJlbDogdGhpcy50KCdmb250U2l6ZVNtYWxsJykgfSxcbiAgICAgIHsgdmFsdWU6ICdtZWRpdW0nLCBsYWJlbDogdGhpcy50KCdmb250U2l6ZU1lZGl1bScpIH0sXG4gICAgICB7IHZhbHVlOiAnbGFyZ2UnLCBsYWJlbDogdGhpcy50KCdmb250U2l6ZUxhcmdlJykgfSxcbiAgICBdLFxuICB9KSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgLy8gQXV0by1yZWdpc3RybyBpMThuIOKAlCByZXNwZXRhIG92ZXJyaWRlIGRlbCBjb25zdW1lci4gRWwgbmFtZXNwYWNlIHB1ZWRlXG4gICAgLy8gdmVuaXIgZGUgQElucHV0LmNvbmZpZyBvIGRlbCByb3V0ZSBkYXRhOyBsbyByZXNvbHZlbW9zIGFjw6EuXG4gICAgY29uc3QgbnMgPSB0aGlzLm5zO1xuICAgIGlmICghdGhpcy5pMThuLmhhc05hbWVzcGFjZShucykpIHtcbiAgICAgIHRoaXMuaTE4bi5yZWdpc3RlckNvbnRlbnQobnMsIFBSRUZFUkVOQ0VTX1ZJRVdfSTE4Tik7XG4gICAgfVxuXG4gICAgdGhpcy5uYXYuc2V0QmFja0hlYWRlcigncGFnZVRpdGxlJywgbnMsIHsgd2l0aE1lbnU6IHRydWUgfSk7XG4gIH1cblxuICBhc3luYyBvblRoZW1lQ2hhbmdlKHZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHYgPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlWzBdIDogdmFsdWU7XG4gICAgaWYgKHRoaXMuc2F2aW5nKCkgfHwgdiA9PT0gdGhpcy5wcmVmcy50aGVtZSgpKSByZXR1cm47XG4gICAgY29uc3QgdGhlbWUgPSB2IGFzIFByZWZlcmVuY2VzVGhlbWU7XG4gICAgYXdhaXQgdGhpcy5kaXNwYXRjaChcbiAgICAgICgpID0+IHRoaXMucHJlZnMuc2V0VGhlbWUodGhlbWUpLFxuICAgICAgKCkgPT4gdGhpcy5yZXNvbHZlZENvbmZpZygpLm9uVGhlbWVDaGFuZ2VkPy4odGhlbWUpXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIG9uRm9udFNpemVDaGFuZ2UodmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgdiA9IEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWVbMF0gOiB2YWx1ZTtcbiAgICBjb25zdCBmb250U2l6ZSA9IHYgYXMgUHJlZmVyZW5jZXNGb250U2l6ZTtcbiAgICBpZiAodGhpcy5zYXZpbmcoKSB8fCB2ID09PSB0aGlzLnByZWZzLmZvbnRTaXplKCkpIHJldHVybjtcbiAgICBhd2FpdCB0aGlzLmRpc3BhdGNoKFxuICAgICAgKCkgPT4gdGhpcy5wcmVmcy5zZXRGb250U2l6ZShmb250U2l6ZSksXG4gICAgICAoKSA9PiB0aGlzLnJlc29sdmVkQ29uZmlnKCkub25Gb250U2l6ZUNoYW5nZWQ/Lihmb250U2l6ZSlcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgb25MYW5ndWFnZUNoYW5nZSh2YWx1ZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgbGFuZyA9IHZhbHVlIGFzIFByZWZlcmVuY2VzTGFuZ3VhZ2U7XG4gICAgaWYgKCF0aGlzLnJlc29sdmVkQ29uZmlnKCkuc3VwcG9ydGVkTGFuZ3VhZ2VzLmluY2x1ZGVzKGxhbmcpKSByZXR1cm47XG4gICAgaWYgKHRoaXMuc2F2aW5nKCkgfHwgdmFsdWUgPT09IHRoaXMucHJlZnMubGFuZ3VhZ2UoKSkgcmV0dXJuO1xuICAgIGF3YWl0IHRoaXMuZGlzcGF0Y2goXG4gICAgICAoKSA9PiB0aGlzLnByZWZzLnNldExhbmd1YWdlKGxhbmcpLFxuICAgICAgKCkgPT4gdGhpcy5yZXNvbHZlZENvbmZpZygpLm9uTGFuZ3VhZ2VDaGFuZ2VkPy4obGFuZylcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBkaXNwYXRjaChmbjogKCkgPT4gUHJvbWlzZTx1bmtub3duPiwgb25TdWNjZXNzPzogKCkgPT4gdm9pZCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuc2F2aW5nLnNldCh0cnVlKTtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgZm4oKTtcbiAgICAgIG9uU3VjY2Vzcz8uKCk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICB0aGlzLmVycm9ycy5oYW5kbGUoZXJyLCB7XG4gICAgICAgIGNvbnRleHQ6ICdzZXR0aW5ncy5wcmVmZXJlbmNlcy5zYXZlJyxcbiAgICAgICAgZmFsbGJhY2tLZXk6ICdzYXZlRXJyb3InLFxuICAgICAgICBpMThuTmFtZXNwYWNlOiB0aGlzLm5zLFxuICAgICAgfSk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMuc2F2aW5nLnNldChmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqIExlZSBkZWwgbmFtZXNwYWNlIGNvbmZpZ3VyYWRvLiAqL1xuICBwcm90ZWN0ZWQgdChrZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaTE4bi50KGtleSwgdGhpcy5ucyk7XG4gIH1cbn1cbiJdfQ==
@@ -78,7 +78,8 @@ export class ContentService {
78
78
  * @param config - Override parcial de la `ArticleMetadata` resultante.
79
79
  */
80
80
  toArticle(doc, config) {
81
- return this.parser.parse(doc.body, config);
81
+ const locale = (doc.locale ?? 'es');
82
+ return this.parser.parse(doc.body, config, locale);
82
83
  }
83
84
  /** Limpia la cache de fuentes estáticas. Llamar al cambiar de locale en runtime. */
84
85
  invalidate() {
@@ -195,4 +196,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
195
196
  type: Injectable,
196
197
  args: [{ providedIn: 'root' }]
197
198
  }], ctorParameters: () => [] });
198
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9jb250ZW50LXBsYXRmb3JtL2NvbnRlbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RSxPQUFPLEVBQWMsVUFBVSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTlGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUNuRyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBR2xEOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCRztBQUVILE1BQU0sT0FBTyxjQUFjO0lBWXpCO1FBWGlCLFdBQU0sR0FBRyxNQUFNLENBQUMsc0JBQXNCLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM1RCxTQUFJLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzFCLFdBQU0sR0FBRyxNQUFNLENBQUMsNEJBQTRCLENBQUMsQ0FBQztRQUM5QyxTQUFJLEdBQUcsTUFBTSxDQUFDLFdBQVcsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRWhFLHVFQUF1RTtRQUM5RCxpQkFBWSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTlDLHdFQUF3RTtRQUN2RCxnQkFBVyxHQUFHLElB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QUMsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7K0dBdk5VLGNBQWM7bUhBQWQsY0FBYyxjQURELE1BQU07OzRGQUNuQixjQUFjO2tCQUQxQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QsIGlzRGV2TW9kZSwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBjYXRjaEVycm9yLCBmb3JrSm9pbiwgZnJvbSwgbWFwLCBvZiwgc3dpdGNoTWFwLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBcnRpY2xlTWV0YWRhdGEgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL29yZ2FuaXNtcy9hcnRpY2xlL3R5cGVzJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vYXV0aC9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgTWFya2Rvd25BcnRpY2xlUGFyc2VyU2VydmljZSB9IGZyb20gJy4uL21hcmtkb3duLWFydGljbGUvbWFya2Rvd24tYXJ0aWNsZS1wYXJzZXIuc2VydmljZSc7XG5pbXBvcnQgeyBWQUxURUNIX0NPTlRFTlRfQ09ORklHIH0gZnJvbSAnLi9jb25maWcnO1xuaW1wb3J0IHsgQ29udGVudERvY3VtZW50LCBDb250ZW50RG9jdW1lbnRUeXBlLCBDb250ZW50TG9hZE9wdGlvbnMgfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBTZXJ2aWNpbyBkZSBsYSBwbGF0YWZvcm1hIGRlIGNvbnRlbmlkbyAoQURSLTAyMCDCpzIuNSkuXG4gKlxuICogVW5lIGRvcyBvcsOtZ2VuZXMgKCoqaMOtYnJpZG8qKik6XG4gKiAgLSAqKkVzdMOhdGljbyoqIOKAlCBgc3RhdGljU291cmNlc2AgbGF6eSBwb3IgbG9jYWxlLCBnZW5lcmFkYXMgYnVpbGQtdGltZS5cbiAqICAtICoqQmFja2VuZCoqIOKAlCBEeW5hbW9EQiArIEFQSSAoYC92Mi9jb250ZW50KmApLCBwdWJsaWNhY2nDs24gc2luIHJlZGVwbG95LlxuICpcbiAqIFJlZ2xhcyBkZSBtZXJnZTpcbiAqICAtIGBsaXN0KClgIHVuZSBhbWJvcyBvcsOtZ2VuZXMgcG9yIGB0eXBlYC4gQ29saXNpw7NuIGRlIGBzbHVnYCDihpIgKiplc3TDoXRpY29cbiAqICAgIGdhbmEqKiAoY29udGVuaWRvIGN1cmFkbykuIE9yZGVuYSBwb3IgYHB1Ymxpc2hlZEF0YCBkZXNjIChzaW4gZmVjaGEgYWwgZmluYWwpLlxuICogIC0gYGxvYWQoKWAgcmVzdWVsdmUgZXN0w6F0aWNvIHByaW1lcm8sIGNvbiAqKmZhbGxiYWNrKiogYWwgYmFja2VuZC5cbiAqXG4gKiBSZW5kZXI6IGB0b0FydGljbGUoZG9jKWAgY29udmllcnRlIGBkb2MuYm9keWAgKE1hcmtkb3duKSBhIGBBcnRpY2xlTWV0YWRhdGFgXG4gKiB2w61hIGVsIGBtYXJrZG93bi1hcnRpY2xlLXBhcnNlcmAgZXhpc3RlbnRlIOKAlCBsYSBwYWdlIGhhY2UgYDx2YWwtYXJ0aWNsZSBbcHJvcHNdPVwiLi4uXCI+YC5cbiAqXG4gKiBSZXF1aWVyZSBgcHJvdmlkZVZhbHRlY2hDb250ZW50KHsgYXBpVXJsLCBhcHBJZCwgc3RhdGljU291cmNlcz8gfSlgIGVuIGBtYWluLnRzYC5cbiAqIFNpbiBwcm92aWRlciwgZWwgc2VydmljaW8gcXVlZGEgaW5lcnRlIChgaXNDb25maWd1cmVkKCkgPT09IGZhbHNlYCkuXG4gKi9cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQ29udGVudFNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZyA9IGluamVjdChWQUxURUNIX0NPTlRFTlRfQ09ORklHLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICBwcml2YXRlIHJlYWRvbmx5IGh0dHAgPSBpbmplY3QoSHR0cENsaWVudCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgcGFyc2VyID0gaW5qZWN0KE1hcmtkb3duQXJ0aWNsZVBhcnNlclNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IGF1dGggPSBpbmplY3QoQXV0aFNlcnZpY2UsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgLyoqIGB0cnVlYCBzaSBgcHJvdmlkZVZhbHRlY2hDb250ZW50KClgIGZ1ZSBsbGFtYWRvIGVuIGVsIGJvb3RzdHJhcC4gKi9cbiAgcmVhZG9ubHkgaXNDb25maWd1cmVkID0gc2lnbmFsKCEhdGhpcy5jb25maWcpO1xuXG4gIC8qKiBDYWNoZSBkZSBsYXMgcHJvbWVzYXMgZGUgY2FkYSBmYWN0b3J5IGVzdMOhdGljYSwga2V5ZWQgcG9yIGxvY2FsZS4gKi9cbiAgcHJpdmF0ZSByZWFkb25seSBzdGF0aWNDYWNoZSA9IG5ldyBNYXA8c3RyaW5nLCBQcm9taXNlPENvbnRlbnREb2N1bWVudFtdPj4oKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBpZiAoIXRoaXMuY29uZmlnICYmIGlzRGV2TW9kZSgpKSB7XG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICdbdmFsdGVjaC1jb21wb25lbnRzXSBDb250ZW50U2VydmljZTogcHJvdmlkZVZhbHRlY2hDb250ZW50KCkgbm8gZXN0w6EgZW4gbWFpbi50cy4gJyArXG4gICAgICAgICAgJ0VsIGxpc3RhZG8geSBsYSBjYXJnYSBkZSBjb250ZW5pZG8gbm8gZnVuY2lvbmFyw6FuLidcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIExpc3RhIGxvcyBkb2N1bWVudG9zIHB1YmxpY2Fkb3MgZGUgdW4gYHR5cGVgLCB1bmllbmRvIGVzdMOhdGljbyArIGJhY2tlbmQuXG4gICAqIENvbGlzacOzbiBkZSBgc2x1Z2Ag4oaSIGVzdMOhdGljbyBnYW5hLiBPcmRlbmFkb3MgcG9yIGBwdWJsaXNoZWRBdGAgZGVzYy5cbiAgICpcbiAgICogQHBhcmFtIHR5cGUgLSBUaXBvIGRlIGNvbnRlbmlkbyAoYCdibG9nJ2AsIGAnbmV3cydgLCDigKYpLlxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIGB7IGxvY2FsZSB9YCAoZGVmYXVsdCBgJ2VzJ2ApLlxuICAgKi9cbiAgbGlzdCh0eXBlOiBDb250ZW50RG9jdW1lbnRUeXBlLCBvcHRpb25zOiBDb250ZW50TG9hZE9wdGlvbnMgPSB7fSk6IE9ic2VydmFibGU8Q29udGVudERvY3VtZW50W10+IHtcbiAgICBjb25zdCBsb2NhbGUgPSAob3B0aW9ucy5sb2NhbGUgPz8gJ2VzJykudG9Mb3dlckNhc2UoKTtcblxuICAgIGNvbnN0IHN0YXRpYyQgPSBmcm9tKHRoaXMubG9hZFN0YXRpYyhsb2NhbGUpKS5waXBlKFxuICAgICAgbWFwKGRvY3MgPT4gZG9jcy5maWx0ZXIoZCA9PiBkLnR5cGUgPT09IHR5cGUgJiYgZC5zdGF0dXMgPT09ICdwdWJsaXNoZWQnKSlcbiAgICApO1xuXG4gICAgY29uc3QgYmFja2VuZCQgPSB0aGlzLmxpc3RCYWNrZW5kKHR5cGUsIGxvY2FsZSkucGlwZShcbiAgICAgIGNhdGNoRXJyb3IoKCkgPT4gb2Y8Q29udGVudERvY3VtZW50W10+KFtdKSlcbiAgICApO1xuXG4gICAgcmV0dXJuIGZvcmtKb2luKHsgc3RhdGljRG9jczogc3RhdGljJCwgYmFja2VuZERvY3M6IGJhY2tlbmQkIH0pLnBpcGUoXG4gICAgICBtYXAoKHsgc3RhdGljRG9jcywgYmFja2VuZERvY3MgfSkgPT4gdGhpcy5tZXJnZShzdGF0aWNEb2NzLCBiYWNrZW5kRG9jcykpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYXJnYSB1biBkb2N1bWVudG8gcG9yIGBzbHVnYDogZXN0w6F0aWNvIHByaW1lcm8sIGZhbGxiYWNrIGFsIGJhY2tlbmQuXG4gICAqXG4gICAqIEBwYXJhbSB0eXBlIC0gVGlwbyBkZSBjb250ZW5pZG8uXG4gICAqIEBwYXJhbSBzbHVnIC0gU2x1ZyBkZWwgZG9jdW1lbnRvLlxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIGB7IGxvY2FsZSB9YCAoZGVmYXVsdCBgJ2VzJ2ApLlxuICAgKi9cbiAgbG9hZChcbiAgICB0eXBlOiBDb250ZW50RG9jdW1lbnRUeXBlLFxuICAgIHNsdWc6IHN0cmluZyxcbiAgICBvcHRpb25zOiBDb250ZW50TG9hZE9wdGlvbnMgPSB7fVxuICApOiBPYnNlcnZhYmxlPENvbnRlbnREb2N1bWVudD4ge1xuICAgIGNvbnN0IGxvY2FsZSA9IChvcHRpb25zLmxvY2FsZSA/PyAnZXMnKS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgcmV0dXJuIGZyb20odGhpcy5sb2FkU3RhdGljKGxvY2FsZSkpLnBpcGUoXG4gICAgICBtYXAoZG9jcyA9PiBkb2NzLmZpbmQoZCA9PiBkLnR5cGUgPT09IHR5cGUgJiYgZC5zbHVnID09PSBzbHVnICYmIGQuc3RhdHVzID09PSAncHVibGlzaGVkJykpLFxuICAgICAgc3dpdGNoTWFwKHN0YXRpY0RvYyA9PlxuICAgICAgICBzdGF0aWNEb2NcbiAgICAgICAgICA/IG9mKHN0YXRpY0RvYylcbiAgICAgICAgICA6IHRoaXMubG9hZEJhY2tlbmQodHlwZSwgc2x1ZywgbG9jYWxlKS5waXBlKFxuICAgICAgICAgICAgICBjYXRjaEVycm9yKCgpID0+XG4gICAgICAgICAgICAgICAgdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoYENvbnRlbmlkbyBubyBlbmNvbnRyYWRvOiAke3R5cGV9LyR7bG9jYWxlfS8ke3NsdWd9YCkpXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIClcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZpZXJ0ZSBlbCBgYm9keWAgKE1hcmtkb3duKSBkZSB1biBkb2N1bWVudG8gZW4gYEFydGljbGVNZXRhZGF0YWAgcGFyYVxuICAgKiByZW5kZXJpemFyIGNvbiBgPHZhbC1hcnRpY2xlIFtwcm9wc109XCIuLi5cIj5gLiBVc2EgZWwgcGFyc2VyIGV4aXN0ZW50ZS5cbiAgICpcbiAgICogQHBhcmFtIGRvYyAtIERvY3VtZW50byBkZSBjb250ZW5pZG8gYSByZW5kZXJpemFyLlxuICAgKiBAcGFyYW0gY29uZmlnIC0gT3ZlcnJpZGUgcGFyY2lhbCBkZSBsYSBgQXJ0aWNsZU1ldGFkYXRhYCByZXN1bHRhbnRlLlxuICAgKi9cbiAgdG9BcnRpY2xlKGRvYzogQ29udGVudERvY3VtZW50LCBjb25maWc/OiBQYXJ0aWFsPEFydGljbGVNZXRhZGF0YT4pOiBBcnRpY2xlTWV0YWRhdGEge1xuICAgIHJldHVybiB0aGlzLnBhcnNlci5wYXJzZShkb2MuYm9keSwgY29uZmlnKTtcbiAgfVxuXG4gIC8qKiBMaW1waWEgbGEgY2FjaGUgZGUgZnVlbnRlcyBlc3TDoXRpY2FzLiBMbGFtYXIgYWwgY2FtYmlhciBkZSBsb2NhbGUgZW4gcnVudGltZS4gKi9cbiAgaW52YWxpZGF0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRpY0NhY2hlLmNsZWFyKCk7XG4gIH1cblxuICAvKipcbiAgICogTGlzdGEgbG9zIGRvY3VtZW50b3MgcHVibGljYWRvcyBkZSBsYSBvcmcgYWN0aXZhIGRlbCB1c3VhcmlvIGF1dGVudGljYWRvLlxuICAgKlxuICAgKiBSZXF1aWVyZSBzZXNpw7NuIGFjdGl2YSAoYEF1dGhTZXJ2aWNlLmlzQXV0aGVudGljYXRlZCgpYCkuIEVsIGludGVyY2VwdG9yIGRlXG4gICAqIGF1dGggYWdyZWdhIGF1dG9tw6F0aWNhbWVudGUgYEF1dGhvcml6YXRpb246IEJlYXJlciB7dG9rZW59YCBhIGxhIHJlcXVlc3QuXG4gICAqXG4gICAqIEBwYXJhbSB0eXBlICAtIFRpcG8gZGUgY29udGVuaWRvIChgJ2Jsb2cnYCwgYCduZXdzJ2AsIOKApikuXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gYHsgbG9jYWxlIH1gIChkZWZhdWx0IGAnZXMnYCkuXG4gICAqIEByZXR1cm5zIERvY3VtZW50b3MgZGUgbGEgb3JnIG8gYFtdYCBzaSBubyBoYXkgY29uZmlnL3Nlc2nDs24uXG4gICAqL1xuICBsaXN0Rm9yT3JnKFxuICAgIHR5cGU6IENvbnRlbnREb2N1bWVudFR5cGUsXG4gICAgb3B0aW9uczogQ29udGVudExvYWRPcHRpb25zID0ge31cbiAgKTogT2JzZXJ2YWJsZTxDb250ZW50RG9jdW1lbnRbXT4ge1xuICAgIGlmICghdGhpcy5jb25maWc/LmFwaVVybCkgcmV0dXJuIG9mKFtdKTtcbiAgICBpZiAoIXRoaXMuYXV0aD8uaXNBdXRoZW50aWNhdGVkKCkpIHJldHVybiBvZihbXSk7XG4gICAgY29uc3QgbG9jYWxlID0gKG9wdGlvbnMubG9jYWxlID8/ICdlcycpLnRvTG93ZXJDYXNlKCk7XG4gICAgcmV0dXJuIHRoaXMubGlzdEJhY2tlbmRPcmcodHlwZSwgbG9jYWxlKS5waXBlKGNhdGNoRXJyb3IoKCkgPT4gb2Y8Q29udGVudERvY3VtZW50W10+KFtdKSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhcmdhIHVuIGRvY3VtZW50byBkZSBsYSBvcmcgYWN0aXZhIGRlbCB1c3VhcmlvIGF1dGVudGljYWRvIHBvciBgc2x1Z2AuXG4gICAqXG4gICAqIFJlcXVpZXJlIHNlc2nDs24gYWN0aXZhLiBFbCBpbnRlcmNlcHRvciBkZSBhdXRoIGFncmVnYSBlbCBCZWFyZXIgdG9rZW4uXG4gICAqXG4gICAqIEBwYXJhbSB0eXBlICAtIFRpcG8gZGUgY29udGVuaWRvLlxuICAgKiBAcGFyYW0gc2x1ZyAgLSBTbHVnIGRlbCBkb2N1bWVudG8uXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gYHsgbG9jYWxlIH1gIChkZWZhdWx0IGAnZXMnYCkuXG4gICAqIEByZXR1cm5zIEVsIGRvY3VtZW50byBvIGVycm9yIHNpIG5vIHNlIGVuY3VlbnRyYSAvIG5vIGhheSBzZXNpw7NuLlxuICAgKi9cbiAgbG9hZEZvck9yZyhcbiAgICB0eXBlOiBDb250ZW50RG9jdW1lbnRUeXBlLFxuICAgIHNsdWc6IHN0cmluZyxcbiAgICBvcHRpb25zOiBDb250ZW50TG9hZE9wdGlvbnMgPSB7fVxuICApOiBPYnNlcnZhYmxlPENvbnRlbnREb2N1bWVudD4ge1xuICAgIGlmICghdGhpcy5jb25maWc/LmFwaVVybCkge1xuICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKCdDb250ZW50U2VydmljZSBubyBlc3TDoSBjb25maWd1cmFkby4nKSk7XG4gICAgfVxuICAgIGlmICghdGhpcy5hdXRoPy5pc0F1dGhlbnRpY2F0ZWQoKSkge1xuICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKCdTZSByZXF1aWVyZSBzZXNpw7NuIGFjdGl2YSBwYXJhIGNhcmdhciBjb250ZW5pZG8gZGUgb3JnLicpKTtcbiAgICB9XG4gICAgY29uc3QgbG9jYWxlID0gKG9wdGlvbnMubG9jYWxlID8/ICdlcycpLnRvTG93ZXJDYXNlKCk7XG4gICAgcmV0dXJuIHRoaXMubG9hZEJhY2tlbmRPcmcodHlwZSwgc2x1ZywgbG9jYWxlKTtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBJbnRlcm5vc1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvKiogVW5lIGVzdMOhdGljbyArIGJhY2tlbmQ6IGVzdMOhdGljbyBnYW5hIHBvciBzbHVnOyBvcmRlbiBwb3IgcHVibGlzaGVkQXQgZGVzYy4gKi9cbiAgcHJpdmF0ZSBtZXJnZShzdGF0aWNEb2NzOiBDb250ZW50RG9jdW1lbnRbXSwgYmFja2VuZERvY3M6IENvbnRlbnREb2N1bWVudFtdKTogQ29udGVudERvY3VtZW50W10ge1xuICAgIGNvbnN0IGJ5U2x1ZyA9IG5ldyBNYXA8c3RyaW5nLCBDb250ZW50RG9jdW1lbnQ+KCk7XG4gICAgZm9yIChjb25zdCBkb2Mgb2YgYmFja2VuZERvY3MpIGJ5U2x1Zy5zZXQoZG9jLnNsdWcsIGRvYyk7XG4gICAgLy8gRXN0w6F0aWNvIGdhbmEg4oCUIHNvYnJlc2NyaWJlIGN1YWxxdWllciBjb2xpc2nDs24gZGVsIGJhY2tlbmQuXG4gICAgZm9yIChjb25zdCBkb2Mgb2Ygc3RhdGljRG9jcykgYnlTbHVnLnNldChkb2Muc2x1ZywgZG9jKTtcbiAgICByZXR1cm4gWy4uLmJ5U2x1Zy52YWx1ZXMoKV0uc29ydCh0aGlzLmJ5UHVibGlzaGVkRGVzYyk7XG4gIH1cblxuICAvKiogQ29tcGFyYWRvcjogbcOhcyByZWNpZW50ZSBwcmltZXJvOyBzaW4gYHB1Ymxpc2hlZEF0YCBhbCBmaW5hbC4gKi9cbiAgcHJpdmF0ZSBieVB1Ymxpc2hlZERlc2MgPSAoYTogQ29udGVudERvY3VtZW50LCBiOiBDb250ZW50RG9jdW1lbnQpOiBudW1iZXIgPT4ge1xuICAgIGNvbnN0IHRhID0gYS5wdWJsaXNoZWRBdCA/IERhdGUucGFyc2UoYS5wdWJsaXNoZWRBdCkgOiAtSW5maW5pdHk7XG4gICAgY29uc3QgdGIgPSBiLnB1Ymxpc2hlZEF0ID8gRGF0ZS5wYXJzZShiLnB1Ymxpc2hlZEF0KSA6IC1JbmZpbml0eTtcbiAgICByZXR1cm4gdGIgLSB0YTtcbiAgfTtcblxuICAvKiogQ2FyZ2EgKHkgY2FjaGVhKSBsb3MgZG9jdW1lbnRvcyBlc3TDoXRpY29zIGRlIHVuIGxvY2FsZSwgc2kgaGF5IGZhY3RvcnkuICovXG4gIHByaXZhdGUgbG9hZFN0YXRpYyhsb2NhbGU6IHN0cmluZyk6IFByb21pc2U8Q29udGVudERvY3VtZW50W10+IHtcbiAgICBjb25zdCBmYWN0b3J5ID0gdGhpcy5jb25maWc/LnN0YXRpY1NvdXJjZXM/Lltsb2NhbGVdO1xuICAgIGlmICghZmFjdG9yeSkgcmV0dXJuIFByb21pc2UucmVzb2x2ZShbXSk7XG5cbiAgICBjb25zdCBjYWNoZWQgPSB0aGlzLnN0YXRpY0NhY2hlLmdldChsb2NhbGUpO1xuICAgIGlmIChjYWNoZWQpIHJldHVybiBjYWNoZWQ7XG5cbiAgICBjb25zdCBwcm9taXNlID0gZmFjdG9yeSgpLmNhdGNoKCgpID0+IFtdIGFzIENvbnRlbnREb2N1bWVudFtdKTtcbiAgICB0aGlzLnN0YXRpY0NhY2hlLnNldChsb2NhbGUsIHByb21pc2UpO1xuICAgIHJldHVybiBwcm9taXNlO1xuICB9XG5cbiAgLyoqIEdFVCBge2FwaVVybH0vdjIvY29udGVudD90eXBlPSZsb2NhbGU9YCDigJQgc29sbyBwdWJsaWNhZG9zLiAqL1xuICBwcml2YXRlIGxpc3RCYWNrZW5kKHR5cGU6IENvbnRlbnREb2N1bWVudFR5cGUsIGxvY2FsZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxDb250ZW50RG9jdW1lbnRbXT4ge1xuICAgIGlmICghdGhpcy5jb25maWc/LmFwaVVybCkgcmV0dXJuIG9mKFtdKTtcbiAgICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHsgdHlwZSwgbG9jYWxlIH0pO1xuICAgIGlmICh0aGlzLmNvbmZpZy5hcHBJZCkgcGFyYW1zLnNldCgnYXBwSWQnLCB0aGlzLmNvbmZpZy5hcHBJZCk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldDxDb250ZW50TGlzdFJlc3BvbnNlPihgJHt0aGlzLmNvbmZpZy5hcGlVcmx9L3YyL2NvbnRlbnQ/JHtwYXJhbXN9YClcbiAgICAgIC5waXBlKG1hcChyZXMgPT4gcmVzPy5pdGVtcyA/PyBbXSkpO1xuICB9XG5cbiAgLyoqIEdFVCBge2FwaVVybH0vdjIvY29udGVudC97dHlwZX0ve2xvY2FsZX0ve3NsdWd9YCDigJQgZGV0YWxsZSBwdWJsaWNhZG8uICovXG4gIHByaXZhdGUgbG9hZEJhY2tlbmQoXG4gICAgdHlwZTogQ29udGVudERvY3VtZW50VHlwZSxcbiAgICBzbHVnOiBzdHJpbmcsXG4gICAgbG9jYWxlOiBzdHJpbmdcbiAgKTogT2JzZXJ2YWJsZTxDb250ZW50RG9jdW1lbnQ+IHtcbiAgICBpZiAoIXRoaXMuY29uZmlnPy5hcGlVcmwpIHtcbiAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IG5ldyBFcnJvcignQ29udGVudFNlcnZpY2Ugbm8gZXN0w6EgY29uZmlndXJhZG8uJykpO1xuICAgIH1cbiAgICBjb25zdCBwYXRoID0gYCR7dGhpcy5jb25maWcuYXBpVXJsfS92Mi9jb250ZW50LyR7dHlwZX0vJHtsb2NhbGV9LyR7ZW5jb2RlVVJJQ29tcG9uZW50KHNsdWcpfWA7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldDxDb250ZW50RGV0YWlsUmVzcG9uc2U+KHBhdGgpXG4gICAgICAucGlwZShtYXAocmVzID0+IHJlcz8uaXRlbSA/PyAocmVzIGFzIHVua25vd24gYXMgQ29udGVudERvY3VtZW50KSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdFVCBge2FwaVVybH0vdjIvY29udGVudC9vcmc/dHlwZT0mbG9jYWxlPWAg4oCUIHB1YmxpY2Fkb3MgZGUgbGEgb3JnIGFjdGl2YS5cbiAgICogRWwgQmVhcmVyIHRva2VuIGxvIGHDsWFkZSBlbCBpbnRlcmNlcHRvciBkZSBhdXRoIGF1dG9tw6F0aWNhbWVudGUuXG4gICAqL1xuICBwcml2YXRlIGxpc3RCYWNrZW5kT3JnKHR5cGU6IENvbnRlbnREb2N1bWVudFR5cGUsIGxvY2FsZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxDb250ZW50RG9jdW1lbnRbXT4ge1xuICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoeyB0eXBlLCBsb2NhbGUgfSk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldDxDb250ZW50TGlzdFJlc3BvbnNlPihgJHt0aGlzLmNvbmZpZyEuYXBpVXJsfS92Mi9jb250ZW50L29yZz8ke3BhcmFtc31gKVxuICAgICAgLnBpcGUobWFwKHJlcyA9PiByZXM/Lml0ZW1zID8/IFtdKSk7XG4gIH1cblxuICAvKipcbiAgICogR0VUIGB7YXBpVXJsfS92Mi9jb250ZW50L29yZy97dHlwZX0ve2xvY2FsZX0ve3NsdWd9YCDigJQgZGV0YWxsZSBkZSBsYSBvcmcgYWN0aXZhLlxuICAgKiBFbCBCZWFyZXIgdG9rZW4gbG8gYcOxYWRlIGVsIGludGVyY2VwdG9yIGRlIGF1dGggYXV0b23DoXRpY2FtZW50ZS5cbiAgICovXG4gIHByaXZhdGUgbG9hZEJhY2tlbmRPcmcoXG4gICAgdHlwZTogQ29udGVudERvY3VtZW50VHlwZSxcbiAgICBzbHVnOiBzdHJpbmcsXG4gICAgbG9jYWxlOiBzdHJpbmdcbiAgKTogT2JzZXJ2YWJsZTxDb250ZW50RG9jdW1lbnQ+IHtcbiAgICBjb25zdCBwYXRoID0gYCR7dGhpcy5jb25maWchLmFwaVVybH0vdjIvY29udGVudC9vcmcvJHt0eXBlfS8ke2xvY2FsZX0vJHtlbmNvZGVVUklDb21wb25lbnQoc2x1Zyl9YDtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZ2V0PENvbnRlbnREZXRhaWxSZXNwb25zZT4ocGF0aClcbiAgICAgIC5waXBlKG1hcChyZXMgPT4gcmVzPy5pdGVtID8/IChyZXMgYXMgdW5rbm93biBhcyBDb250ZW50RG9jdW1lbnQpKSk7XG4gIH1cbn1cblxuLyoqIFNoYXBlIGRlIGxhIHJlc3B1ZXN0YSBkZSBsaXN0YWRvIGRlbCBiYWNrZW5kIChgL3YyL2NvbnRlbnRgKS4gKi9cbmludGVyZmFjZSBDb250ZW50TGlzdFJlc3BvbnNlIHtcbiAgaXRlbXM/OiBDb250ZW50RG9jdW1lbnRbXTtcbiAgb3BlcmF0aW9uSWQ/OiBzdHJpbmc7XG59XG5cbi8qKiBTaGFwZSBkZSBsYSByZXNwdWVzdGEgZGUgZGV0YWxsZSBkZWwgYmFja2VuZCAoYC92Mi9jb250ZW50L3t0eXBlfS97bG9jYWxlfS97c2x1Z31gKS4gKi9cbmludGVyZmFjZSBDb250ZW50RGV0YWlsUmVzcG9uc2Uge1xuICBpdGVtPzogQ29udGVudERvY3VtZW50O1xuICBvcGVyYXRpb25JZD86IHN0cmluZztcbn1cbiJdfQ==
199
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9jb250ZW50LXBsYXRmb3JtL2NvbnRlbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RSxPQUFPLEVBQWMsVUFBVSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTlGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUNuRyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBR2xEOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCRztBQUVILE1BQU0sT0FBTyxjQUFjO0lBWXpCO1FBWGlCLFdBQU0sR0FBRyxNQUFNLENBQUMsc0JBQXNCLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM1RCxTQUFJLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzFCLFdBQU0sR0FBRyxNQUFNLENBQUMsNEJBQTRCLENBQUMsQ0FBQztRQUM5QyxTQUFJLEdBQUcsTUFBTSxDQUFDLFdBQVcsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRWhFLHVFQUF1RTtRQUM5RCxpQkFBWSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTlDLHdFQUF3RTtRQUN2RCxnQkFBVyxHQUFHLElB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Q2hDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsSUFBSSxJQUFLLEdBQWtDLENBQUMsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7K0dBeE5VLGNBQWM7bUhBQWQsY0FBYyxjQURELE1BQU07OzRGQUNuQixjQUFjO2tCQUQxQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QsIGlzRGV2TW9kZSwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBjYXRjaEVycm9yLCBmb3JrSm9pbiwgZnJvbSwgbWFwLCBvZiwgc3dpdGNoTWFwLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBcnRpY2xlTWV0YWRhdGEgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL29yZ2FuaXNtcy9hcnRpY2xlL3R5cGVzJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vYXV0aC9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgTWFya2Rvd25BcnRpY2xlUGFyc2VyU2VydmljZSB9IGZyb20gJy4uL21hcmtkb3duLWFydGljbGUvbWFya2Rvd24tYXJ0aWNsZS1wYXJzZXIuc2VydmljZSc7XG5pbXBvcnQgeyBWQUxURUNIX0NPTlRFTlRfQ09ORklHIH0gZnJvbSAnLi9jb25maWcnO1xuaW1wb3J0IHsgQ29udGVudERvY3VtZW50LCBDb250ZW50RG9jdW1lbnRUeXBlLCBDb250ZW50TG9hZE9wdGlvbnMgfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBTZXJ2aWNpbyBkZSBsYSBwbGF0YWZvcm1hIGRlIGNvbnRlbmlkbyAoQURSLTAyMCDCpzIuNSkuXG4gKlxuICogVW5lIGRvcyBvcsOtZ2VuZXMgKCoqaMOtYnJpZG8qKik6XG4gKiAgLSAqKkVzdMOhdGljbyoqIOKAlCBgc3RhdGljU291cmNlc2AgbGF6eSBwb3IgbG9jYWxlLCBnZW5lcmFkYXMgYnVpbGQtdGltZS5cbiAqICAtICoqQmFja2VuZCoqIOKAlCBEeW5hbW9EQiArIEFQSSAoYC92Mi9jb250ZW50KmApLCBwdWJsaWNhY2nDs24gc2luIHJlZGVwbG95LlxuICpcbiAqIFJlZ2xhcyBkZSBtZXJnZTpcbiAqICAtIGBsaXN0KClgIHVuZSBhbWJvcyBvcsOtZ2VuZXMgcG9yIGB0eXBlYC4gQ29saXNpw7NuIGRlIGBzbHVnYCDihpIgKiplc3TDoXRpY29cbiAqICAgIGdhbmEqKiAoY29udGVuaWRvIGN1cmFkbykuIE9yZGVuYSBwb3IgYHB1Ymxpc2hlZEF0YCBkZXNjIChzaW4gZmVjaGEgYWwgZmluYWwpLlxuICogIC0gYGxvYWQoKWAgcmVzdWVsdmUgZXN0w6F0aWNvIHByaW1lcm8sIGNvbiAqKmZhbGxiYWNrKiogYWwgYmFja2VuZC5cbiAqXG4gKiBSZW5kZXI6IGB0b0FydGljbGUoZG9jKWAgY29udmllcnRlIGBkb2MuYm9keWAgKE1hcmtkb3duKSBhIGBBcnRpY2xlTWV0YWRhdGFgXG4gKiB2w61hIGVsIGBtYXJrZG93bi1hcnRpY2xlLXBhcnNlcmAgZXhpc3RlbnRlIOKAlCBsYSBwYWdlIGhhY2UgYDx2YWwtYXJ0aWNsZSBbcHJvcHNdPVwiLi4uXCI+YC5cbiAqXG4gKiBSZXF1aWVyZSBgcHJvdmlkZVZhbHRlY2hDb250ZW50KHsgYXBpVXJsLCBhcHBJZCwgc3RhdGljU291cmNlcz8gfSlgIGVuIGBtYWluLnRzYC5cbiAqIFNpbiBwcm92aWRlciwgZWwgc2VydmljaW8gcXVlZGEgaW5lcnRlIChgaXNDb25maWd1cmVkKCkgPT09IGZhbHNlYCkuXG4gKi9cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQ29udGVudFNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZyA9IGluamVjdChWQUxURUNIX0NPTlRFTlRfQ09ORklHLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICBwcml2YXRlIHJlYWRvbmx5IGh0dHAgPSBpbmplY3QoSHR0cENsaWVudCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgcGFyc2VyID0gaW5qZWN0KE1hcmtkb3duQXJ0aWNsZVBhcnNlclNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IGF1dGggPSBpbmplY3QoQXV0aFNlcnZpY2UsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgLyoqIGB0cnVlYCBzaSBgcHJvdmlkZVZhbHRlY2hDb250ZW50KClgIGZ1ZSBsbGFtYWRvIGVuIGVsIGJvb3RzdHJhcC4gKi9cbiAgcmVhZG9ubHkgaXNDb25maWd1cmVkID0gc2lnbmFsKCEhdGhpcy5jb25maWcpO1xuXG4gIC8qKiBDYWNoZSBkZSBsYXMgcHJvbWVzYXMgZGUgY2FkYSBmYWN0b3J5IGVzdMOhdGljYSwga2V5ZWQgcG9yIGxvY2FsZS4gKi9cbiAgcHJpdmF0ZSByZWFkb25seSBzdGF0aWNDYWNoZSA9IG5ldyBNYXA8c3RyaW5nLCBQcm9taXNlPENvbnRlbnREb2N1bWVudFtdPj4oKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBpZiAoIXRoaXMuY29uZmlnICYmIGlzRGV2TW9kZSgpKSB7XG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICdbdmFsdGVjaC1jb21wb25lbnRzXSBDb250ZW50U2VydmljZTogcHJvdmlkZVZhbHRlY2hDb250ZW50KCkgbm8gZXN0w6EgZW4gbWFpbi50cy4gJyArXG4gICAgICAgICAgJ0VsIGxpc3RhZG8geSBsYSBjYXJnYSBkZSBjb250ZW5pZG8gbm8gZnVuY2lvbmFyw6FuLidcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIExpc3RhIGxvcyBkb2N1bWVudG9zIHB1YmxpY2Fkb3MgZGUgdW4gYHR5cGVgLCB1bmllbmRvIGVzdMOhdGljbyArIGJhY2tlbmQuXG4gICAqIENvbGlzacOzbiBkZSBgc2x1Z2Ag4oaSIGVzdMOhdGljbyBnYW5hLiBPcmRlbmFkb3MgcG9yIGBwdWJsaXNoZWRBdGAgZGVzYy5cbiAgICpcbiAgICogQHBhcmFtIHR5cGUgLSBUaXBvIGRlIGNvbnRlbmlkbyAoYCdibG9nJ2AsIGAnbmV3cydgLCDigKYpLlxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIGB7IGxvY2FsZSB9YCAoZGVmYXVsdCBgJ2VzJ2ApLlxuICAgKi9cbiAgbGlzdCh0eXBlOiBDb250ZW50RG9jdW1lbnRUeXBlLCBvcHRpb25zOiBDb250ZW50TG9hZE9wdGlvbnMgPSB7fSk6IE9ic2VydmFibGU8Q29udGVudERvY3VtZW50W10+IHtcbiAgICBjb25zdCBsb2NhbGUgPSAob3B0aW9ucy5sb2NhbGUgPz8gJ2VzJykudG9Mb3dlckNhc2UoKTtcblxuICAgIGNvbnN0IHN0YXRpYyQgPSBmcm9tKHRoaXMubG9hZFN0YXRpYyhsb2NhbGUpKS5waXBlKFxuICAgICAgbWFwKGRvY3MgPT4gZG9jcy5maWx0ZXIoZCA9PiBkLnR5cGUgPT09IHR5cGUgJiYgZC5zdGF0dXMgPT09ICdwdWJsaXNoZWQnKSlcbiAgICApO1xuXG4gICAgY29uc3QgYmFja2VuZCQgPSB0aGlzLmxpc3RCYWNrZW5kKHR5cGUsIGxvY2FsZSkucGlwZShcbiAgICAgIGNhdGNoRXJyb3IoKCkgPT4gb2Y8Q29udGVudERvY3VtZW50W10+KFtdKSlcbiAgICApO1xuXG4gICAgcmV0dXJuIGZvcmtKb2luKHsgc3RhdGljRG9jczogc3RhdGljJCwgYmFja2VuZERvY3M6IGJhY2tlbmQkIH0pLnBpcGUoXG4gICAgICBtYXAoKHsgc3RhdGljRG9jcywgYmFja2VuZERvY3MgfSkgPT4gdGhpcy5tZXJnZShzdGF0aWNEb2NzLCBiYWNrZW5kRG9jcykpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYXJnYSB1biBkb2N1bWVudG8gcG9yIGBzbHVnYDogZXN0w6F0aWNvIHByaW1lcm8sIGZhbGxiYWNrIGFsIGJhY2tlbmQuXG4gICAqXG4gICAqIEBwYXJhbSB0eXBlIC0gVGlwbyBkZSBjb250ZW5pZG8uXG4gICAqIEBwYXJhbSBzbHVnIC0gU2x1ZyBkZWwgZG9jdW1lbnRvLlxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIGB7IGxvY2FsZSB9YCAoZGVmYXVsdCBgJ2VzJ2ApLlxuICAgKi9cbiAgbG9hZChcbiAgICB0eXBlOiBDb250ZW50RG9jdW1lbnRUeXBlLFxuICAgIHNsdWc6IHN0cmluZyxcbiAgICBvcHRpb25zOiBDb250ZW50TG9hZE9wdGlvbnMgPSB7fVxuICApOiBPYnNlcnZhYmxlPENvbnRlbnREb2N1bWVudD4ge1xuICAgIGNvbnN0IGxvY2FsZSA9IChvcHRpb25zLmxvY2FsZSA/PyAnZXMnKS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgcmV0dXJuIGZyb20odGhpcy5sb2FkU3RhdGljKGxvY2FsZSkpLnBpcGUoXG4gICAgICBtYXAoZG9jcyA9PiBkb2NzLmZpbmQoZCA9PiBkLnR5cGUgPT09IHR5cGUgJiYgZC5zbHVnID09PSBzbHVnICYmIGQuc3RhdHVzID09PSAncHVibGlzaGVkJykpLFxuICAgICAgc3dpdGNoTWFwKHN0YXRpY0RvYyA9PlxuICAgICAgICBzdGF0aWNEb2NcbiAgICAgICAgICA/IG9mKHN0YXRpY0RvYylcbiAgICAgICAgICA6IHRoaXMubG9hZEJhY2tlbmQodHlwZSwgc2x1ZywgbG9jYWxlKS5waXBlKFxuICAgICAgICAgICAgICBjYXRjaEVycm9yKCgpID0+XG4gICAgICAgICAgICAgICAgdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoYENvbnRlbmlkbyBubyBlbmNvbnRyYWRvOiAke3R5cGV9LyR7bG9jYWxlfS8ke3NsdWd9YCkpXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIClcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZpZXJ0ZSBlbCBgYm9keWAgKE1hcmtkb3duKSBkZSB1biBkb2N1bWVudG8gZW4gYEFydGljbGVNZXRhZGF0YWAgcGFyYVxuICAgKiByZW5kZXJpemFyIGNvbiBgPHZhbC1hcnRpY2xlIFtwcm9wc109XCIuLi5cIj5gLiBVc2EgZWwgcGFyc2VyIGV4aXN0ZW50ZS5cbiAgICpcbiAgICogQHBhcmFtIGRvYyAtIERvY3VtZW50byBkZSBjb250ZW5pZG8gYSByZW5kZXJpemFyLlxuICAgKiBAcGFyYW0gY29uZmlnIC0gT3ZlcnJpZGUgcGFyY2lhbCBkZSBsYSBgQXJ0aWNsZU1ldGFkYXRhYCByZXN1bHRhbnRlLlxuICAgKi9cbiAgdG9BcnRpY2xlKGRvYzogQ29udGVudERvY3VtZW50LCBjb25maWc/OiBQYXJ0aWFsPEFydGljbGVNZXRhZGF0YT4pOiBBcnRpY2xlTWV0YWRhdGEge1xuICAgIGNvbnN0IGxvY2FsZSA9IChkb2MubG9jYWxlID8/ICdlcycpIGFzICdlcycgfCAnZW4nIHwgJ3B0JztcbiAgICByZXR1cm4gdGhpcy5wYXJzZXIucGFyc2UoZG9jLmJvZHksIGNvbmZpZywgbG9jYWxlKTtcbiAgfVxuXG4gIC8qKiBMaW1waWEgbGEgY2FjaGUgZGUgZnVlbnRlcyBlc3TDoXRpY2FzLiBMbGFtYXIgYWwgY2FtYmlhciBkZSBsb2NhbGUgZW4gcnVudGltZS4gKi9cbiAgaW52YWxpZGF0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRpY0NhY2hlLmNsZWFyKCk7XG4gIH1cblxuICAvKipcbiAgICogTGlzdGEgbG9zIGRvY3VtZW50b3MgcHVibGljYWRvcyBkZSBsYSBvcmcgYWN0aXZhIGRlbCB1c3VhcmlvIGF1dGVudGljYWRvLlxuICAgKlxuICAgKiBSZXF1aWVyZSBzZXNpw7NuIGFjdGl2YSAoYEF1dGhTZXJ2aWNlLmlzQXV0aGVudGljYXRlZCgpYCkuIEVsIGludGVyY2VwdG9yIGRlXG4gICAqIGF1dGggYWdyZWdhIGF1dG9tw6F0aWNhbWVudGUgYEF1dGhvcml6YXRpb246IEJlYXJlciB7dG9rZW59YCBhIGxhIHJlcXVlc3QuXG4gICAqXG4gICAqIEBwYXJhbSB0eXBlICAtIFRpcG8gZGUgY29udGVuaWRvIChgJ2Jsb2cnYCwgYCduZXdzJ2AsIOKApikuXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gYHsgbG9jYWxlIH1gIChkZWZhdWx0IGAnZXMnYCkuXG4gICAqIEByZXR1cm5zIERvY3VtZW50b3MgZGUgbGEgb3JnIG8gYFtdYCBzaSBubyBoYXkgY29uZmlnL3Nlc2nDs24uXG4gICAqL1xuICBsaXN0Rm9yT3JnKFxuICAgIHR5cGU6IENvbnRlbnREb2N1bWVudFR5cGUsXG4gICAgb3B0aW9uczogQ29udGVudExvYWRPcHRpb25zID0ge31cbiAgKTogT2JzZXJ2YWJsZTxDb250ZW50RG9jdW1lbnRbXT4ge1xuICAgIGlmICghdGhpcy5jb25maWc/LmFwaVVybCkgcmV0dXJuIG9mKFtdKTtcbiAgICBpZiAoIXRoaXMuYXV0aD8uaXNBdXRoZW50aWNhdGVkKCkpIHJldHVybiBvZihbXSk7XG4gICAgY29uc3QgbG9jYWxlID0gKG9wdGlvbnMubG9jYWxlID8/ICdlcycpLnRvTG93ZXJDYXNlKCk7XG4gICAgcmV0dXJuIHRoaXMubGlzdEJhY2tlbmRPcmcodHlwZSwgbG9jYWxlKS5waXBlKGNhdGNoRXJyb3IoKCkgPT4gb2Y8Q29udGVudERvY3VtZW50W10+KFtdKSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhcmdhIHVuIGRvY3VtZW50byBkZSBsYSBvcmcgYWN0aXZhIGRlbCB1c3VhcmlvIGF1dGVudGljYWRvIHBvciBgc2x1Z2AuXG4gICAqXG4gICAqIFJlcXVpZXJlIHNlc2nDs24gYWN0aXZhLiBFbCBpbnRlcmNlcHRvciBkZSBhdXRoIGFncmVnYSBlbCBCZWFyZXIgdG9rZW4uXG4gICAqXG4gICAqIEBwYXJhbSB0eXBlICAtIFRpcG8gZGUgY29udGVuaWRvLlxuICAgKiBAcGFyYW0gc2x1ZyAgLSBTbHVnIGRlbCBkb2N1bWVudG8uXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gYHsgbG9jYWxlIH1gIChkZWZhdWx0IGAnZXMnYCkuXG4gICAqIEByZXR1cm5zIEVsIGRvY3VtZW50byBvIGVycm9yIHNpIG5vIHNlIGVuY3VlbnRyYSAvIG5vIGhheSBzZXNpw7NuLlxuICAgKi9cbiAgbG9hZEZvck9yZyhcbiAgICB0eXBlOiBDb250ZW50RG9jdW1lbnRUeXBlLFxuICAgIHNsdWc6IHN0cmluZyxcbiAgICBvcHRpb25zOiBDb250ZW50TG9hZE9wdGlvbnMgPSB7fVxuICApOiBPYnNlcnZhYmxlPENvbnRlbnREb2N1bWVudD4ge1xuICAgIGlmICghdGhpcy5jb25maWc/LmFwaVVybCkge1xuICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKCdDb250ZW50U2VydmljZSBubyBlc3TDoSBjb25maWd1cmFkby4nKSk7XG4gICAgfVxuICAgIGlmICghdGhpcy5hdXRoPy5pc0F1dGhlbnRpY2F0ZWQoKSkge1xuICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKCdTZSByZXF1aWVyZSBzZXNpw7NuIGFjdGl2YSBwYXJhIGNhcmdhciBjb250ZW5pZG8gZGUgb3JnLicpKTtcbiAgICB9XG4gICAgY29uc3QgbG9jYWxlID0gKG9wdGlvbnMubG9jYWxlID8/ICdlcycpLnRvTG93ZXJDYXNlKCk7XG4gICAgcmV0dXJuIHRoaXMubG9hZEJhY2tlbmRPcmcodHlwZSwgc2x1ZywgbG9jYWxlKTtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBJbnRlcm5vc1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvKiogVW5lIGVzdMOhdGljbyArIGJhY2tlbmQ6IGVzdMOhdGljbyBnYW5hIHBvciBzbHVnOyBvcmRlbiBwb3IgcHVibGlzaGVkQXQgZGVzYy4gKi9cbiAgcHJpdmF0ZSBtZXJnZShzdGF0aWNEb2NzOiBDb250ZW50RG9jdW1lbnRbXSwgYmFja2VuZERvY3M6IENvbnRlbnREb2N1bWVudFtdKTogQ29udGVudERvY3VtZW50W10ge1xuICAgIGNvbnN0IGJ5U2x1ZyA9IG5ldyBNYXA8c3RyaW5nLCBDb250ZW50RG9jdW1lbnQ+KCk7XG4gICAgZm9yIChjb25zdCBkb2Mgb2YgYmFja2VuZERvY3MpIGJ5U2x1Zy5zZXQoZG9jLnNsdWcsIGRvYyk7XG4gICAgLy8gRXN0w6F0aWNvIGdhbmEg4oCUIHNvYnJlc2NyaWJlIGN1YWxxdWllciBjb2xpc2nDs24gZGVsIGJhY2tlbmQuXG4gICAgZm9yIChjb25zdCBkb2Mgb2Ygc3RhdGljRG9jcykgYnlTbHVnLnNldChkb2Muc2x1ZywgZG9jKTtcbiAgICByZXR1cm4gWy4uLmJ5U2x1Zy52YWx1ZXMoKV0uc29ydCh0aGlzLmJ5UHVibGlzaGVkRGVzYyk7XG4gIH1cblxuICAvKiogQ29tcGFyYWRvcjogbcOhcyByZWNpZW50ZSBwcmltZXJvOyBzaW4gYHB1Ymxpc2hlZEF0YCBhbCBmaW5hbC4gKi9cbiAgcHJpdmF0ZSBieVB1Ymxpc2hlZERlc2MgPSAoYTogQ29udGVudERvY3VtZW50LCBiOiBDb250ZW50RG9jdW1lbnQpOiBudW1iZXIgPT4ge1xuICAgIGNvbnN0IHRhID0gYS5wdWJsaXNoZWRBdCA/IERhdGUucGFyc2UoYS5wdWJsaXNoZWRBdCkgOiAtSW5maW5pdHk7XG4gICAgY29uc3QgdGIgPSBiLnB1Ymxpc2hlZEF0ID8gRGF0ZS5wYXJzZShiLnB1Ymxpc2hlZEF0KSA6IC1JbmZpbml0eTtcbiAgICByZXR1cm4gdGIgLSB0YTtcbiAgfTtcblxuICAvKiogQ2FyZ2EgKHkgY2FjaGVhKSBsb3MgZG9jdW1lbnRvcyBlc3TDoXRpY29zIGRlIHVuIGxvY2FsZSwgc2kgaGF5IGZhY3RvcnkuICovXG4gIHByaXZhdGUgbG9hZFN0YXRpYyhsb2NhbGU6IHN0cmluZyk6IFByb21pc2U8Q29udGVudERvY3VtZW50W10+IHtcbiAgICBjb25zdCBmYWN0b3J5ID0gdGhpcy5jb25maWc/LnN0YXRpY1NvdXJjZXM/Lltsb2NhbGVdO1xuICAgIGlmICghZmFjdG9yeSkgcmV0dXJuIFByb21pc2UucmVzb2x2ZShbXSk7XG5cbiAgICBjb25zdCBjYWNoZWQgPSB0aGlzLnN0YXRpY0NhY2hlLmdldChsb2NhbGUpO1xuICAgIGlmIChjYWNoZWQpIHJldHVybiBjYWNoZWQ7XG5cbiAgICBjb25zdCBwcm9taXNlID0gZmFjdG9yeSgpLmNhdGNoKCgpID0+IFtdIGFzIENvbnRlbnREb2N1bWVudFtdKTtcbiAgICB0aGlzLnN0YXRpY0NhY2hlLnNldChsb2NhbGUsIHByb21pc2UpO1xuICAgIHJldHVybiBwcm9taXNlO1xuICB9XG5cbiAgLyoqIEdFVCBge2FwaVVybH0vdjIvY29udGVudD90eXBlPSZsb2NhbGU9YCDigJQgc29sbyBwdWJsaWNhZG9zLiAqL1xuICBwcml2YXRlIGxpc3RCYWNrZW5kKHR5cGU6IENvbnRlbnREb2N1bWVudFR5cGUsIGxvY2FsZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxDb250ZW50RG9jdW1lbnRbXT4ge1xuICAgIGlmICghdGhpcy5jb25maWc/LmFwaVVybCkgcmV0dXJuIG9mKFtdKTtcbiAgICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHsgdHlwZSwgbG9jYWxlIH0pO1xuICAgIGlmICh0aGlzLmNvbmZpZy5hcHBJZCkgcGFyYW1zLnNldCgnYXBwSWQnLCB0aGlzLmNvbmZpZy5hcHBJZCk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldDxDb250ZW50TGlzdFJlc3BvbnNlPihgJHt0aGlzLmNvbmZpZy5hcGlVcmx9L3YyL2NvbnRlbnQ/JHtwYXJhbXN9YClcbiAgICAgIC5waXBlKG1hcChyZXMgPT4gcmVzPy5pdGVtcyA/PyBbXSkpO1xuICB9XG5cbiAgLyoqIEdFVCBge2FwaVVybH0vdjIvY29udGVudC97dHlwZX0ve2xvY2FsZX0ve3NsdWd9YCDigJQgZGV0YWxsZSBwdWJsaWNhZG8uICovXG4gIHByaXZhdGUgbG9hZEJhY2tlbmQoXG4gICAgdHlwZTogQ29udGVudERvY3VtZW50VHlwZSxcbiAgICBzbHVnOiBzdHJpbmcsXG4gICAgbG9jYWxlOiBzdHJpbmdcbiAgKTogT2JzZXJ2YWJsZTxDb250ZW50RG9jdW1lbnQ+IHtcbiAgICBpZiAoIXRoaXMuY29uZmlnPy5hcGlVcmwpIHtcbiAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IG5ldyBFcnJvcignQ29udGVudFNlcnZpY2Ugbm8gZXN0w6EgY29uZmlndXJhZG8uJykpO1xuICAgIH1cbiAgICBjb25zdCBwYXRoID0gYCR7dGhpcy5jb25maWcuYXBpVXJsfS92Mi9jb250ZW50LyR7dHlwZX0vJHtsb2NhbGV9LyR7ZW5jb2RlVVJJQ29tcG9uZW50KHNsdWcpfWA7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldDxDb250ZW50RGV0YWlsUmVzcG9uc2U+KHBhdGgpXG4gICAgICAucGlwZShtYXAocmVzID0+IHJlcz8uaXRlbSA/PyAocmVzIGFzIHVua25vd24gYXMgQ29udGVudERvY3VtZW50KSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdFVCBge2FwaVVybH0vdjIvY29udGVudC9vcmc/dHlwZT0mbG9jYWxlPWAg4oCUIHB1YmxpY2Fkb3MgZGUgbGEgb3JnIGFjdGl2YS5cbiAgICogRWwgQmVhcmVyIHRva2VuIGxvIGHDsWFkZSBlbCBpbnRlcmNlcHRvciBkZSBhdXRoIGF1dG9tw6F0aWNhbWVudGUuXG4gICAqL1xuICBwcml2YXRlIGxpc3RCYWNrZW5kT3JnKHR5cGU6IENvbnRlbnREb2N1bWVudFR5cGUsIGxvY2FsZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxDb250ZW50RG9jdW1lbnRbXT4ge1xuICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoeyB0eXBlLCBsb2NhbGUgfSk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldDxDb250ZW50TGlzdFJlc3BvbnNlPihgJHt0aGlzLmNvbmZpZyEuYXBpVXJsfS92Mi9jb250ZW50L29yZz8ke3BhcmFtc31gKVxuICAgICAgLnBpcGUobWFwKHJlcyA9PiByZXM/Lml0ZW1zID8/IFtdKSk7XG4gIH1cblxuICAvKipcbiAgICogR0VUIGB7YXBpVXJsfS92Mi9jb250ZW50L29yZy97dHlwZX0ve2xvY2FsZX0ve3NsdWd9YCDigJQgZGV0YWxsZSBkZSBsYSBvcmcgYWN0aXZhLlxuICAgKiBFbCBCZWFyZXIgdG9rZW4gbG8gYcOxYWRlIGVsIGludGVyY2VwdG9yIGRlIGF1dGggYXV0b23DoXRpY2FtZW50ZS5cbiAgICovXG4gIHByaXZhdGUgbG9hZEJhY2tlbmRPcmcoXG4gICAgdHlwZTogQ29udGVudERvY3VtZW50VHlwZSxcbiAgICBzbHVnOiBzdHJpbmcsXG4gICAgbG9jYWxlOiBzdHJpbmdcbiAgKTogT2JzZXJ2YWJsZTxDb250ZW50RG9jdW1lbnQ+IHtcbiAgICBjb25zdCBwYXRoID0gYCR7dGhpcy5jb25maWchLmFwaVVybH0vdjIvY29udGVudC9vcmcvJHt0eXBlfS8ke2xvY2FsZX0vJHtlbmNvZGVVUklDb21wb25lbnQoc2x1Zyl9YDtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZ2V0PENvbnRlbnREZXRhaWxSZXNwb25zZT4ocGF0aClcbiAgICAgIC5waXBlKG1hcChyZXMgPT4gcmVzPy5pdGVtID8/IChyZXMgYXMgdW5rbm93biBhcyBDb250ZW50RG9jdW1lbnQpKSk7XG4gIH1cbn1cblxuLyoqIFNoYXBlIGRlIGxhIHJlc3B1ZXN0YSBkZSBsaXN0YWRvIGRlbCBiYWNrZW5kIChgL3YyL2NvbnRlbnRgKS4gKi9cbmludGVyZmFjZSBDb250ZW50TGlzdFJlc3BvbnNlIHtcbiAgaXRlbXM/OiBDb250ZW50RG9jdW1lbnRbXTtcbiAgb3BlcmF0aW9uSWQ/OiBzdHJpbmc7XG59XG5cbi8qKiBTaGFwZSBkZSBsYSByZXNwdWVzdGEgZGUgZGV0YWxsZSBkZWwgYmFja2VuZCAoYC92Mi9jb250ZW50L3t0eXBlfS97bG9jYWxlfS97c2x1Z31gKS4gKi9cbmludGVyZmFjZSBDb250ZW50RGV0YWlsUmVzcG9uc2Uge1xuICBpdGVtPzogQ29udGVudERvY3VtZW50O1xuICBvcGVyYXRpb25JZD86IHN0cmluZztcbn1cbiJdfQ==
@@ -7,8 +7,8 @@ import * as i0 from "@angular/core";
7
7
  * `markdown-article-parser.ts` and is also usable from Node scripts (build-time generation).
8
8
  */
9
9
  export class MarkdownArticleParserService {
10
- parse(markdown, config) {
11
- return parseMarkdownArticle(markdown, config);
10
+ parse(markdown, config, locale) {
11
+ return parseMarkdownArticle(markdown, { ...config, locale });
12
12
  }
13
13
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MarkdownArticleParserService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
14
14
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MarkdownArticleParserService, providedIn: 'root' }); }
@@ -17,4 +17,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
17
17
  type: Injectable,
18
18
  args: [{ providedIn: 'root' }]
19
19
  }] });
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2Rvd24tYXJ0aWNsZS1wYXJzZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2VydmljZXMvbWFya2Rvd24tYXJ0aWNsZS9tYXJrZG93bi1hcnRpY2xlLXBhcnNlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7O0FBRWpFOzs7O0dBSUc7QUFFSCxNQUFNLE9BQU8sNEJBQTRCO0lBQ3ZDLEtBQUssQ0FBQyxRQUFnQixFQUFFLE1BQWlDO1FBQ3ZELE9BQU8sb0JBQW9CLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hELENBQUM7K0dBSFUsNEJBQTRCO21IQUE1Qiw0QkFBNEIsY0FEZixNQUFNOzs0RkFDbkIsNEJBQTRCO2tCQUR4QyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFydGljbGVNZXRhZGF0YSB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvb3JnYW5pc21zL2FydGljbGUvdHlwZXMnO1xuaW1wb3J0IHsgcGFyc2VNYXJrZG93bkFydGljbGUgfSBmcm9tICcuL21hcmtkb3duLWFydGljbGUtcGFyc2VyJztcblxuLyoqXG4gKiBBbmd1bGFyIHNlcnZpY2Ugd3JhcHBlciBmb3IgdGhlIHB1cmUge0BsaW5rIHBhcnNlTWFya2Rvd25BcnRpY2xlfSBmdW5jdGlvbi5cbiAqIFByb3ZpZGVkIGluIHJvb3Qgc28gaXQgY2FuIGJlIGluamVjdGVkIGFueXdoZXJlLiBUaGUgYWN0dWFsIHBhcnNpbmcgbG9naWMgbGl2ZXMgaW5cbiAqIGBtYXJrZG93bi1hcnRpY2xlLXBhcnNlci50c2AgYW5kIGlzIGFsc28gdXNhYmxlIGZyb20gTm9kZSBzY3JpcHRzIChidWlsZC10aW1lIGdlbmVyYXRpb24pLlxuICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIE1hcmtkb3duQXJ0aWNsZVBhcnNlclNlcnZpY2Uge1xuICBwYXJzZShtYXJrZG93bjogc3RyaW5nLCBjb25maWc/OiBQYXJ0aWFsPEFydGljbGVNZXRhZGF0YT4pOiBBcnRpY2xlTWV0YWRhdGEge1xuICAgIHJldHVybiBwYXJzZU1hcmtkb3duQXJ0aWNsZShtYXJrZG93biwgY29uZmlnKTtcbiAgfVxufVxuIl19
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2Rvd24tYXJ0aWNsZS1wYXJzZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2VydmljZXMvbWFya2Rvd24tYXJ0aWNsZS9tYXJrZG93bi1hcnRpY2xlLXBhcnNlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7O0FBRWpFOzs7O0dBSUc7QUFFSCxNQUFNLE9BQU8sNEJBQTRCO0lBQ3ZDLEtBQUssQ0FDSCxRQUFnQixFQUNoQixNQUFpQyxFQUNqQyxNQUEyQjtRQUUzQixPQUFPLG9CQUFvQixDQUFDLFFBQVEsRUFBRSxFQUFFLEdBQUcsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDL0QsQ0FBQzsrR0FQVSw0QkFBNEI7bUhBQTVCLDRCQUE0QixjQURmLE1BQU07OzRGQUNuQiw0QkFBNEI7a0JBRHhDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXJ0aWNsZU1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9vcmdhbmlzbXMvYXJ0aWNsZS90eXBlcyc7XG5pbXBvcnQgeyBwYXJzZU1hcmtkb3duQXJ0aWNsZSB9IGZyb20gJy4vbWFya2Rvd24tYXJ0aWNsZS1wYXJzZXInO1xuXG4vKipcbiAqIEFuZ3VsYXIgc2VydmljZSB3cmFwcGVyIGZvciB0aGUgcHVyZSB7QGxpbmsgcGFyc2VNYXJrZG93bkFydGljbGV9IGZ1bmN0aW9uLlxuICogUHJvdmlkZWQgaW4gcm9vdCBzbyBpdCBjYW4gYmUgaW5qZWN0ZWQgYW55d2hlcmUuIFRoZSBhY3R1YWwgcGFyc2luZyBsb2dpYyBsaXZlcyBpblxuICogYG1hcmtkb3duLWFydGljbGUtcGFyc2VyLnRzYCBhbmQgaXMgYWxzbyB1c2FibGUgZnJvbSBOb2RlIHNjcmlwdHMgKGJ1aWxkLXRpbWUgZ2VuZXJhdGlvbikuXG4gKi9cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgTWFya2Rvd25BcnRpY2xlUGFyc2VyU2VydmljZSB7XG4gIHBhcnNlKFxuICAgIG1hcmtkb3duOiBzdHJpbmcsXG4gICAgY29uZmlnPzogUGFydGlhbDxBcnRpY2xlTWV0YWRhdGE+LFxuICAgIGxvY2FsZT86ICdlcycgfCAnZW4nIHwgJ3B0J1xuICApOiBBcnRpY2xlTWV0YWRhdGEge1xuICAgIHJldHVybiBwYXJzZU1hcmtkb3duQXJ0aWNsZShtYXJrZG93biwgeyAuLi5jb25maWcsIGxvY2FsZSB9KTtcbiAgfVxufVxuIl19
@@ -2,5 +2,5 @@
2
2
  * Current version of valtech-components.
3
3
  * This is automatically updated during the publish process.
4
4
  */
5
- export const VERSION = '2.0.981';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzIuMC45ODEnO1xuIl19
5
+ export const VERSION = '2.0.983';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzIuMC45ODMnO1xuIl19