design-angular-kit 1.0.0-7 → 1.0.0-8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/esm2020/lib/abstracts/abstract-form-component.mjs +6 -5
  2. package/esm2020/lib/abstracts/abstract.component.mjs +13 -6
  3. package/esm2020/lib/components/core/accordion/accordion.component.mjs +19 -8
  4. package/esm2020/lib/components/core/alert/alert.component.mjs +46 -6
  5. package/esm2020/lib/components/core/button/button.directive.mjs +14 -12
  6. package/esm2020/lib/components/core/carousel/carousel/carousel.component.mjs +3 -3
  7. package/esm2020/lib/components/core/collapse/collapse.component.mjs +23 -18
  8. package/esm2020/lib/components/core/dropdown/dropdown/dropdown.component.mjs +74 -4
  9. package/esm2020/lib/components/core/dropdown/dropdown-item/dropdown-item.component.mjs +8 -11
  10. package/esm2020/lib/components/core/link/link.component.mjs +9 -8
  11. package/esm2020/lib/components/core/modal/modal.component.mjs +5 -5
  12. package/esm2020/lib/components/core/popover/popover.directive.mjs +5 -2
  13. package/esm2020/lib/components/core/tab/tab-container/tab-container.component.mjs +37 -11
  14. package/esm2020/lib/components/core/tab/tab-item/tab-item.component.mjs +4 -4
  15. package/esm2020/lib/components/core/tooltip/tooltip.directive.mjs +4 -1
  16. package/esm2020/lib/components/form/input/input.component.mjs +2 -2
  17. package/esm2020/lib/components/form/password-input/password-input.component.mjs +1 -1
  18. package/esm2020/lib/components/form/upload-drag-drop/upload-drag-drop.component.mjs +1 -1
  19. package/esm2020/lib/components/form/upload-file-list/upload-file-list.component.mjs +13 -10
  20. package/esm2020/lib/components/navigation/back-to-top/back-to-top.component.mjs +41 -6
  21. package/esm2020/lib/components/navigation/header/header.component.mjs +9 -7
  22. package/esm2020/lib/components/utils/language-switcher/language-switcher.component.mjs +1 -1
  23. package/esm2020/lib/utils/file-utils.mjs +9 -1
  24. package/fesm2015/design-angular-kit.mjs +416 -193
  25. package/fesm2015/design-angular-kit.mjs.map +1 -1
  26. package/fesm2020/design-angular-kit.mjs +395 -189
  27. package/fesm2020/design-angular-kit.mjs.map +1 -1
  28. package/lib/abstracts/abstract-form-component.d.ts +4 -3
  29. package/lib/abstracts/abstract.component.d.ts +10 -4
  30. package/lib/components/core/accordion/accordion.component.d.ts +4 -8
  31. package/lib/components/core/alert/alert.component.d.ts +24 -2
  32. package/lib/components/core/button/button.directive.d.ts +5 -7
  33. package/lib/components/core/carousel/carousel/carousel.component.d.ts +1 -1
  34. package/lib/components/core/collapse/collapse.component.d.ts +8 -7
  35. package/lib/components/core/dropdown/dropdown/dropdown.component.d.ts +41 -3
  36. package/lib/components/core/dropdown/dropdown-item/dropdown-item.component.d.ts +0 -5
  37. package/lib/components/core/link/link.component.d.ts +2 -5
  38. package/lib/components/core/modal/modal.component.d.ts +2 -2
  39. package/lib/components/core/popover/popover.directive.d.ts +3 -2
  40. package/lib/components/core/tab/tab-container/tab-container.component.d.ts +6 -4
  41. package/lib/components/core/tooltip/tooltip.directive.d.ts +3 -2
  42. package/lib/components/form/password-input/password-input.component.d.ts +2 -1
  43. package/lib/components/form/upload-drag-drop/upload-drag-drop.component.d.ts +2 -1
  44. package/lib/components/form/upload-file-list/upload-file-list.component.d.ts +3 -3
  45. package/lib/components/navigation/back-to-top/back-to-top.component.d.ts +22 -3
  46. package/lib/components/navigation/header/header.component.d.ts +6 -4
  47. package/lib/utils/file-utils.d.ts +5 -0
  48. package/package.json +2 -2
@@ -1,6 +1,7 @@
1
- import { Component, Input } from '@angular/core';
2
- import { isTrueBooleanInput } from "../../../utils/boolean-input";
3
- import { AbstractComponent } from "../../../abstracts/abstract.component";
1
+ import { ChangeDetectionStrategy, Component, Input, ViewChild } from '@angular/core';
2
+ import { isTrueBooleanInput } from '../../../utils/boolean-input';
3
+ import { AbstractComponent } from '../../../abstracts/abstract.component';
4
+ import { BackToTop } from 'bootstrap-italia';
4
5
  import * as i0 from "@angular/core";
5
6
  import * as i1 from "../../utils/icon/icon.component";
6
7
  export class BackToTopComponent extends AbstractComponent {
@@ -21,12 +22,43 @@ export class BackToTopComponent extends AbstractComponent {
21
22
  get isDark() {
22
23
  return isTrueBooleanInput(this.dark);
23
24
  }
25
+ ngAfterViewInit() {
26
+ super.ngAfterViewInit();
27
+ if (this.backToTopElement) {
28
+ const element = this.backToTopElement.nativeElement;
29
+ this.backToTop = BackToTop.getOrCreateInstance(element);
30
+ }
31
+ }
32
+ /**
33
+ * Show button
34
+ */
35
+ show() {
36
+ this.backToTop?.show();
37
+ }
38
+ /**
39
+ * Hide the button
40
+ */
41
+ hide() {
42
+ this.backToTop?.hide();
43
+ }
44
+ /**
45
+ * Activates the scroll animation towards the Y coordinate indicated by the positionTop option
46
+ */
47
+ scrollToTop() {
48
+ this.backToTop?.scrollToTop();
49
+ }
50
+ /**
51
+ * Eliminate component features
52
+ */
53
+ dispose() {
54
+ this.backToTop?.dispose();
55
+ }
24
56
  }
25
57
  BackToTopComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: BackToTopComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
26
- BackToTopComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: BackToTopComponent, selector: "it-back-to-top", inputs: { id: "id", small: "small", shadow: "shadow", dark: "dark" }, usesInheritance: true, ngImport: i0, template: "<a [id]=\"id\"\n href=\"#\"\n aria-hidden=\"true\"\n data-bs-toggle=\"backtotop\"\n class=\"back-to-top\"\n [class.back-to-top-small]=\"isSmall\"\n [class.shadow]=\"isShadow\"\n [class.dark]=\"isDark\">\n\n <it-icon name=\"arrow-up\" [color]=\"isDark ? 'secondary' : 'light'\"></it-icon>\n</a>\n", styles: [""], dependencies: [{ kind: "component", type: i1.IconComponent, selector: "it-icon[name]", inputs: ["name", "size", "color", "padded", "class"] }] });
58
+ BackToTopComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: BackToTopComponent, selector: "it-back-to-top", inputs: { id: "id", small: "small", shadow: "shadow", dark: "dark" }, viewQueries: [{ propertyName: "backToTopElement", first: true, predicate: ["backToTop"], descendants: true }], exportAs: ["itBackToTop"], usesInheritance: true, ngImport: i0, template: "<a #backToTop [id]=\"id\"\n href=\"#\"\n aria-hidden=\"true\"\n class=\"back-to-top\"\n [class.back-to-top-small]=\"isSmall\"\n [class.shadow]=\"isShadow\"\n [class.dark]=\"isDark\">\n\n <it-icon name=\"arrow-up\" [color]=\"isDark ? 'secondary' : 'light'\"></it-icon>\n</a>\n", dependencies: [{ kind: "component", type: i1.IconComponent, selector: "it-icon[name]", inputs: ["name", "size", "color", "padded", "class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
27
59
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: BackToTopComponent, decorators: [{
28
60
  type: Component,
29
- args: [{ selector: 'it-back-to-top', template: "<a [id]=\"id\"\n href=\"#\"\n aria-hidden=\"true\"\n data-bs-toggle=\"backtotop\"\n class=\"back-to-top\"\n [class.back-to-top-small]=\"isSmall\"\n [class.shadow]=\"isShadow\"\n [class.dark]=\"isDark\">\n\n <it-icon name=\"arrow-up\" [color]=\"isDark ? 'secondary' : 'light'\"></it-icon>\n</a>\n" }]
61
+ args: [{ selector: 'it-back-to-top', exportAs: 'itBackToTop', changeDetection: ChangeDetectionStrategy.OnPush, template: "<a #backToTop [id]=\"id\"\n href=\"#\"\n aria-hidden=\"true\"\n class=\"back-to-top\"\n [class.back-to-top-small]=\"isSmall\"\n [class.shadow]=\"isShadow\"\n [class.dark]=\"isDark\">\n\n <it-icon name=\"arrow-up\" [color]=\"isDark ? 'secondary' : 'light'\"></it-icon>\n</a>\n" }]
30
62
  }], propDecorators: { id: [{
31
63
  type: Input
32
64
  }], small: [{
@@ -35,5 +67,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
35
67
  type: Input
36
68
  }], dark: [{
37
69
  type: Input
70
+ }], backToTopElement: [{
71
+ type: ViewChild,
72
+ args: ['backToTop']
38
73
  }] } });
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFjay10by10b3AuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWFuZ3VsYXIta2l0L3NyYy9saWIvY29tcG9uZW50cy9uYXZpZ2F0aW9uL2JhY2stdG8tdG9wL2JhY2stdG8tdG9wLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvbmF2aWdhdGlvbi9iYWNrLXRvLXRvcC9iYWNrLXRvLXRvcC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMvQyxPQUFPLEVBQWUsa0JBQWtCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUM5RSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQzs7O0FBT3hFLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxpQkFBaUI7SUFMekQ7O1FBT0U7OztXQUdHO1FBQ2UsT0FBRSxHQUFXLG9CQUFvQixDQUFDO0tBNEJyRDtJQVhDLElBQUksT0FBTztRQUNULE9BQU8sa0JBQWtCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFPLGtCQUFrQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ1IsT0FBTyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkMsQ0FBQzs7K0dBakNVLGtCQUFrQjttR0FBbEIsa0JBQWtCLG1KQ1QvQix3VEFXQTsyRkRGYSxrQkFBa0I7a0JBTDlCLFNBQVM7K0JBQ0UsZ0JBQWdCOzhCQVVSLEVBQUU7c0JBQW5CLEtBQUs7Z0JBS0csS0FBSztzQkFBYixLQUFLO2dCQUtHLE1BQU07c0JBQWQsS0FBSztnQkFLRyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5wdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtCb29sZWFuSW5wdXQsIGlzVHJ1ZUJvb2xlYW5JbnB1dH0gZnJvbSBcIi4uLy4uLy4uL3V0aWxzL2Jvb2xlYW4taW5wdXRcIjtcbmltcG9ydCB7QWJzdHJhY3RDb21wb25lbnR9IGZyb20gXCIuLi8uLi8uLi9hYnN0cmFjdHMvYWJzdHJhY3QuY29tcG9uZW50XCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2l0LWJhY2stdG8tdG9wJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2JhY2stdG8tdG9wLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYmFjay10by10b3AuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBCYWNrVG9Ub3BDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdENvbXBvbmVudCB7XG5cbiAgLyoqXG4gICAqIFRoZSBiYWNrIHRvIHRvcCBJRFxuICAgKiBAZGVmYXVsdCAnYmFjay10by10b3AtYnV0dG9uJ1xuICAgKi9cbiAgQElucHV0KCkgb3ZlcnJpZGUgaWQ6IHN0cmluZyA9ICdiYWNrLXRvLXRvcC1idXR0b24nO1xuXG4gIC8qKlxuICAgKiBTaG93IHNtYWxsIGJ1dHRvblxuICAgKi9cbiAgQElucHV0KCkgc21hbGw/OiBCb29sZWFuSW5wdXQ7XG5cbiAgLyoqXG4gICAqIFNob3cgc2hhZG93XG4gICAqL1xuICBASW5wdXQoKSBzaGFkb3c/OiBCb29sZWFuSW5wdXQ7XG5cbiAgLyoqXG4gICAqIEJ1dHRvbiB1c2FibGUgYnV0dG9uIG9uIGEgZGFyayBiYWNrZ3JvdW5kXG4gICAqL1xuICBASW5wdXQoKSBkYXJrPzogQm9vbGVhbklucHV0O1xuXG4gIGdldCBpc1NtYWxsKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc1RydWVCb29sZWFuSW5wdXQodGhpcy5zbWFsbCk7XG4gIH1cblxuICBnZXQgaXNTaGFkb3coKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzVHJ1ZUJvb2xlYW5JbnB1dCh0aGlzLnNoYWRvdyk7XG4gIH1cblxuICBnZXQgaXNEYXJrKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc1RydWVCb29sZWFuSW5wdXQodGhpcy5kYXJrKTtcbiAgfVxufVxuIiwiPGEgW2lkXT1cImlkXCJcbiAgIGhyZWY9XCIjXCJcbiAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICBkYXRhLWJzLXRvZ2dsZT1cImJhY2t0b3RvcFwiXG4gICBjbGFzcz1cImJhY2stdG8tdG9wXCJcbiAgIFtjbGFzcy5iYWNrLXRvLXRvcC1zbWFsbF09XCJpc1NtYWxsXCJcbiAgIFtjbGFzcy5zaGFkb3ddPVwiaXNTaGFkb3dcIlxuICAgW2NsYXNzLmRhcmtdPVwiaXNEYXJrXCI+XG5cbiAgPGl0LWljb24gbmFtZT1cImFycm93LXVwXCIgW2NvbG9yXT1cImlzRGFyayA/ICdzZWNvbmRhcnknIDogJ2xpZ2h0J1wiPjwvaXQtaWNvbj5cbjwvYT5cbiJdfQ==
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFjay10by10b3AuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWFuZ3VsYXIta2l0L3NyYy9saWIvY29tcG9uZW50cy9uYXZpZ2F0aW9uL2JhY2stdG8tdG9wL2JhY2stdG8tdG9wLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvbmF2aWdhdGlvbi9iYWNrLXRvLXRvcC9iYWNrLXRvLXRvcC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakcsT0FBTyxFQUFnQixrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7O0FBUTdDLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxpQkFBaUI7SUFOekQ7O1FBUUU7OztXQUdHO1FBQ2UsT0FBRSxHQUFXLG9CQUFvQixDQUFDO0tBcUVyRDtJQWhEQyxJQUFJLE9BQU87UUFDVCxPQUFPLGtCQUFrQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1YsT0FBTyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELElBQUksTUFBTTtRQUNSLE9BQU8sa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFUSxlQUFlO1FBQ3RCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUV4QixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUN6QixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDO1lBQ3BELElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ3pEO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0ksSUFBSTtRQUNULElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksSUFBSTtRQUNULElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksV0FBVztRQUNoQixJQUFJLENBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7T0FFRztJQUNJLE9BQU87UUFDWixJQUFJLENBQUMsU0FBUyxFQUFFLE9BQU8sRUFBRSxDQUFDO0lBQzVCLENBQUM7OytHQTFFVSxrQkFBa0I7bUdBQWxCLGtCQUFrQiw2UkNYL0Isa1NBVUE7MkZEQ2Esa0JBQWtCO2tCQU45QixTQUFTOytCQUNFLGdCQUFnQixZQUVoQixhQUFhLG1CQUNOLHVCQUF1QixDQUFDLE1BQU07OEJBUTdCLEVBQUU7c0JBQW5CLEtBQUs7Z0JBS0csS0FBSztzQkFBYixLQUFLO2dCQUtHLE1BQU07c0JBQWQsS0FBSztnQkFLRyxJQUFJO3NCQUFaLEtBQUs7Z0JBSTBCLGdCQUFnQjtzQkFBL0MsU0FBUzt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQm9vbGVhbklucHV0LCBpc1RydWVCb29sZWFuSW5wdXQgfSBmcm9tICcuLi8uLi8uLi91dGlscy9ib29sZWFuLWlucHV0JztcbmltcG9ydCB7IEFic3RyYWN0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vYWJzdHJhY3RzL2Fic3RyYWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCYWNrVG9Ub3AgfSBmcm9tICdib290c3RyYXAtaXRhbGlhJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXQtYmFjay10by10b3AnLFxuICB0ZW1wbGF0ZVVybDogJy4vYmFjay10by10b3AuY29tcG9uZW50Lmh0bWwnLFxuICBleHBvcnRBczogJ2l0QmFja1RvVG9wJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQmFja1RvVG9wQ29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3RDb21wb25lbnQge1xuXG4gIC8qKlxuICAgKiBUaGUgYmFjayB0byB0b3AgSURcbiAgICogQGRlZmF1bHQgJ2JhY2stdG8tdG9wLWJ1dHRvbidcbiAgICovXG4gIEBJbnB1dCgpIG92ZXJyaWRlIGlkOiBzdHJpbmcgPSAnYmFjay10by10b3AtYnV0dG9uJztcblxuICAvKipcbiAgICogU2hvdyBzbWFsbCBidXR0b25cbiAgICovXG4gIEBJbnB1dCgpIHNtYWxsPzogQm9vbGVhbklucHV0O1xuXG4gIC8qKlxuICAgKiBTaG93IHNoYWRvd1xuICAgKi9cbiAgQElucHV0KCkgc2hhZG93PzogQm9vbGVhbklucHV0O1xuXG4gIC8qKlxuICAgKiBCdXR0b24gdXNhYmxlIGJ1dHRvbiBvbiBhIGRhcmsgYmFja2dyb3VuZFxuICAgKi9cbiAgQElucHV0KCkgZGFyaz86IEJvb2xlYW5JbnB1dDtcblxuICBwcml2YXRlIGJhY2tUb1RvcD86IEJhY2tUb1RvcDtcblxuICBAVmlld0NoaWxkKCdiYWNrVG9Ub3AnKSBwcml2YXRlIGJhY2tUb1RvcEVsZW1lbnQ/OiBFbGVtZW50UmVmPEhUTUxBbmNob3JFbGVtZW50PjtcblxuICBnZXQgaXNTbWFsbCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNUcnVlQm9vbGVhbklucHV0KHRoaXMuc21hbGwpO1xuICB9XG5cbiAgZ2V0IGlzU2hhZG93KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc1RydWVCb29sZWFuSW5wdXQodGhpcy5zaGFkb3cpO1xuICB9XG5cbiAgZ2V0IGlzRGFyaygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNUcnVlQm9vbGVhbklucHV0KHRoaXMuZGFyayk7XG4gIH1cblxuICBvdmVycmlkZSBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XG5cbiAgICBpZiAodGhpcy5iYWNrVG9Ub3BFbGVtZW50KSB7XG4gICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5iYWNrVG9Ub3BFbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICB0aGlzLmJhY2tUb1RvcCA9IEJhY2tUb1RvcC5nZXRPckNyZWF0ZUluc3RhbmNlKGVsZW1lbnQpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTaG93IGJ1dHRvblxuICAgKi9cbiAgcHVibGljIHNob3coKTogdm9pZCB7XG4gICAgdGhpcy5iYWNrVG9Ub3A/LnNob3coKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIaWRlIHRoZSBidXR0b25cbiAgICovXG4gIHB1YmxpYyBoaWRlKCk6IHZvaWQge1xuICAgIHRoaXMuYmFja1RvVG9wPy5oaWRlKCk7XG4gIH1cblxuICAvKipcbiAgICogQWN0aXZhdGVzIHRoZSBzY3JvbGwgYW5pbWF0aW9uIHRvd2FyZHMgdGhlIFkgY29vcmRpbmF0ZSBpbmRpY2F0ZWQgYnkgdGhlIHBvc2l0aW9uVG9wIG9wdGlvblxuICAgKi9cbiAgcHVibGljIHNjcm9sbFRvVG9wKCk6IHZvaWQge1xuICAgIHRoaXMuYmFja1RvVG9wPy5zY3JvbGxUb1RvcCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEVsaW1pbmF0ZSBjb21wb25lbnQgZmVhdHVyZXNcbiAgICovXG4gIHB1YmxpYyBkaXNwb3NlKCk6IHZvaWQge1xuICAgIHRoaXMuYmFja1RvVG9wPy5kaXNwb3NlKCk7XG4gIH1cbn1cbiIsIjxhICNiYWNrVG9Ub3AgW2lkXT1cImlkXCJcbiAgIGhyZWY9XCIjXCJcbiAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICBjbGFzcz1cImJhY2stdG8tdG9wXCJcbiAgIFtjbGFzcy5iYWNrLXRvLXRvcC1zbWFsbF09XCJpc1NtYWxsXCJcbiAgIFtjbGFzcy5zaGFkb3ddPVwiaXNTaGFkb3dcIlxuICAgW2NsYXNzLmRhcmtdPVwiaXNEYXJrXCI+XG5cbiAgPGl0LWljb24gbmFtZT1cImFycm93LXVwXCIgW2NvbG9yXT1cImlzRGFyayA/ICdzZWNvbmRhcnknIDogJ2xpZ2h0J1wiPjwvaXQtaWNvbj5cbjwvYT5cbiJdfQ==
@@ -1,6 +1,6 @@
1
1
  import { Component, EventEmitter, Input, Output } from '@angular/core';
2
- import { isTrueBooleanInput } from "../../../utils/boolean-input";
3
- import { AbstractComponent } from "../../../abstracts/abstract.component";
2
+ import { isTrueBooleanInput } from '../../../utils/boolean-input';
3
+ import { AbstractComponent } from '../../../abstracts/abstract.component';
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "@angular/common";
6
6
  import * as i2 from "../../core/button/button.directive";
@@ -11,11 +11,13 @@ export class HeaderComponent extends AbstractComponent {
11
11
  * TODO: complete header
12
12
  * @param _renderer
13
13
  * @param _elementRef
14
+ * @param _changeDetectorRef
14
15
  */
15
- constructor(_renderer, _elementRef) {
16
- super(_renderer, _elementRef);
16
+ constructor(_renderer, _elementRef, _changeDetectorRef) {
17
+ super(_renderer, _elementRef, _changeDetectorRef);
17
18
  this._renderer = _renderer;
18
19
  this._elementRef = _elementRef;
20
+ this._changeDetectorRef = _changeDetectorRef;
19
21
  this.showSlim = true;
20
22
  this.loginStyle = 'full';
21
23
  this.smallHeader = true;
@@ -36,12 +38,12 @@ export class HeaderComponent extends AbstractComponent {
36
38
  return isTrueBooleanInput(this.showSearch);
37
39
  }
38
40
  }
39
- HeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: HeaderComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
41
+ HeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: HeaderComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
40
42
  HeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: HeaderComponent, selector: "it-header", inputs: { light: "light", showSlim: "showSlim", slimTitle: "slimTitle", loginStyle: "loginStyle", smallHeader: "smallHeader", showSearch: "showSearch" }, outputs: { loginClick: "loginClick", searchClick: "searchClick" }, usesInheritance: true, ngImport: i0, template: "<header class=\"it-header-wrapper\">\n <div *ngIf=\"isShowSlim\" class=\"it-header-slim-wrapper\" [class.theme-light]=\"isLight\">\n <div class=\"container\">\n <div class=\"row\">\n <div class=\"col-12\">\n <div class=\"it-header-slim-wrapper-content\">\n <a class=\"d-none d-lg-block navbar-brand\" href=\"#\">{{slimTitle}}</a>\n <div class=\"nav-mobile\">\n <nav [attr.aria-label]=\"'it.navigation.secondary-navigation'|translate\">\n <a class=\"it-opener d-lg-none\" data-bs-toggle=\"collapse\" href=\"#menuC1\" role=\"button\"\n aria-expanded=\"false\" aria-controls=\"menuC1\">\n <span>{{slimTitle}}</span>\n <it-icon name=\"expand\"></it-icon>\n </a>\n <div class=\"link-list-wrapper collapse\" id=\"menuC1\">\n <ng-content select=\"[slimLinkList]\"></ng-content>\n </div>\n </nav>\n </div>\n <div class=\"it-header-slim-right-zone\">\n <!-- TODO: add language dropdown -->\n <ng-content select=\"[slimRightZone]\"></ng-content>\n <div *ngIf=\"loginStyle === 'default'\" class=\"it-access-top-wrapper\">\n <a class=\"btn btn-primary btn-sm\" (click)=\"loginClick.emit($event)\">\n {{'it.navigation.login'|translate}}\n </a>\n </div>\n </div>\n <button *ngIf=\"loginStyle === 'full'\" itButton=\"primary\" class=\"btn-full\" (click)=\"loginClick.emit($event)\">\n <span class=\"rounded-icon\">\n <it-icon name=\"user\" color=\"primary\"></it-icon>\n <span class=\"d-none d-lg-block\">{{'it.navigation.full-login'|translate}}</span>\n </span>\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"it-nav-wrapper\">\n <div class=\"it-header-center-wrapper\" [class.it-small-header]=\"isSmallHeader\">\n <div class=\"container-fluid\">\n <div class=\"row\">\n <div class=\"col-12\">\n <div class=\"it-header-center-content-wrapper\">\n <div class=\"it-brand-wrapper\">\n <ng-content select=\"[brand]\"></ng-content>\n </div>\n <div class=\"it-right-zone\">\n <ng-content select=\"[rightZone]\"></ng-content>\n\n <div class=\"it-search-wrapper\" *ngIf=\"isShowSearch\">\n <span class=\"d-none d-md-block\">{{'it.navigation.search'|translate}}</span>\n <a class=\"search-link rounded-icon\" [attr.aria-label]=\"'it.navigation.website-search'|translate\" (click)=\"searchClick.emit($event)\">\n <it-icon name=\"search\"></it-icon>\n </a>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <!-- TODO: complete header -->\n </div>\n</header>\n", styles: [".nav-mobile:has(.link-list-wrapper:empty){display:none}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ButtonDirective, selector: "[itButton]", inputs: ["itButton", "size", "block", "disabled"], exportAs: ["itButton"] }, { kind: "component", type: i3.IconComponent, selector: "it-icon[name]", inputs: ["name", "size", "color", "padded", "class"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] });
41
43
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: HeaderComponent, decorators: [{
42
44
  type: Component,
43
45
  args: [{ selector: 'it-header', template: "<header class=\"it-header-wrapper\">\n <div *ngIf=\"isShowSlim\" class=\"it-header-slim-wrapper\" [class.theme-light]=\"isLight\">\n <div class=\"container\">\n <div class=\"row\">\n <div class=\"col-12\">\n <div class=\"it-header-slim-wrapper-content\">\n <a class=\"d-none d-lg-block navbar-brand\" href=\"#\">{{slimTitle}}</a>\n <div class=\"nav-mobile\">\n <nav [attr.aria-label]=\"'it.navigation.secondary-navigation'|translate\">\n <a class=\"it-opener d-lg-none\" data-bs-toggle=\"collapse\" href=\"#menuC1\" role=\"button\"\n aria-expanded=\"false\" aria-controls=\"menuC1\">\n <span>{{slimTitle}}</span>\n <it-icon name=\"expand\"></it-icon>\n </a>\n <div class=\"link-list-wrapper collapse\" id=\"menuC1\">\n <ng-content select=\"[slimLinkList]\"></ng-content>\n </div>\n </nav>\n </div>\n <div class=\"it-header-slim-right-zone\">\n <!-- TODO: add language dropdown -->\n <ng-content select=\"[slimRightZone]\"></ng-content>\n <div *ngIf=\"loginStyle === 'default'\" class=\"it-access-top-wrapper\">\n <a class=\"btn btn-primary btn-sm\" (click)=\"loginClick.emit($event)\">\n {{'it.navigation.login'|translate}}\n </a>\n </div>\n </div>\n <button *ngIf=\"loginStyle === 'full'\" itButton=\"primary\" class=\"btn-full\" (click)=\"loginClick.emit($event)\">\n <span class=\"rounded-icon\">\n <it-icon name=\"user\" color=\"primary\"></it-icon>\n <span class=\"d-none d-lg-block\">{{'it.navigation.full-login'|translate}}</span>\n </span>\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"it-nav-wrapper\">\n <div class=\"it-header-center-wrapper\" [class.it-small-header]=\"isSmallHeader\">\n <div class=\"container-fluid\">\n <div class=\"row\">\n <div class=\"col-12\">\n <div class=\"it-header-center-content-wrapper\">\n <div class=\"it-brand-wrapper\">\n <ng-content select=\"[brand]\"></ng-content>\n </div>\n <div class=\"it-right-zone\">\n <ng-content select=\"[rightZone]\"></ng-content>\n\n <div class=\"it-search-wrapper\" *ngIf=\"isShowSearch\">\n <span class=\"d-none d-md-block\">{{'it.navigation.search'|translate}}</span>\n <a class=\"search-link rounded-icon\" [attr.aria-label]=\"'it.navigation.website-search'|translate\" (click)=\"searchClick.emit($event)\">\n <it-icon name=\"search\"></it-icon>\n </a>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <!-- TODO: complete header -->\n </div>\n</header>\n", styles: [".nav-mobile:has(.link-list-wrapper:empty){display:none}\n"] }]
44
- }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }]; }, propDecorators: { light: [{
46
+ }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { light: [{
45
47
  type: Input
46
48
  }], showSlim: [{
47
49
  type: Input
@@ -58,4 +60,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
58
60
  }], searchClick: [{
59
61
  type: Output
60
62
  }] } });
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvbmF2aWdhdGlvbi9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvbmF2aWdhdGlvbi9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDNUYsT0FBTyxFQUFlLGtCQUFrQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDOUUsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sdUNBQXVDLENBQUM7Ozs7OztBQU94RSxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxpQkFBaUI7SUFrQnBEOzs7O09BSUc7SUFDSCxZQUM4QixTQUFvQixFQUNwQixXQUF1QjtRQUVuRCxLQUFLLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBSEYsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUNwQixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQXJCNUMsYUFBUSxHQUFrQixJQUFJLENBQUM7UUFJL0IsZUFBVSxHQUFnQyxNQUFNLENBQUM7UUFFakQsZ0JBQVcsR0FBa0IsSUFBSSxDQUFDO1FBRWxDLGVBQVUsR0FBa0IsSUFBSSxDQUFDO1FBZ0J4QyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksWUFBWSxFQUFTLENBQUE7UUFDM0MsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLFlBQVksRUFBUyxDQUFBO0lBQzlDLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLGtCQUFrQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osT0FBTyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELElBQUksYUFBYTtRQUNmLE9BQU8sa0JBQWtCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxPQUFPLGtCQUFrQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM3QyxDQUFDOzs0R0E5Q1UsZUFBZTtnR0FBZixlQUFlLHFTQ1Q1QiwrL0ZBbUVBOzJGRDFEYSxlQUFlO2tCQUwzQixTQUFTOytCQUNFLFdBQVc7eUhBTVosS0FBSztzQkFBYixLQUFLO2dCQUVHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUcsU0FBUztzQkFBakIsS0FBSztnQkFFRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUcsVUFBVTtzQkFBbEIsS0FBSztnQkFFSSxVQUFVO3NCQUFuQixNQUFNO2dCQUVHLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBSZW5kZXJlcjJ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtCb29sZWFuSW5wdXQsIGlzVHJ1ZUJvb2xlYW5JbnB1dH0gZnJvbSBcIi4uLy4uLy4uL3V0aWxzL2Jvb2xlYW4taW5wdXRcIjtcbmltcG9ydCB7QWJzdHJhY3RDb21wb25lbnR9IGZyb20gXCIuLi8uLi8uLi9hYnN0cmFjdHMvYWJzdHJhY3QuY29tcG9uZW50XCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2l0LWhlYWRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9oZWFkZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9oZWFkZXIuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBIZWFkZXJDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdENvbXBvbmVudCB7XG5cbiAgQElucHV0KCkgbGlnaHQ/OiBCb29sZWFuSW5wdXQ7XG5cbiAgQElucHV0KCkgc2hvd1NsaW0/OiBCb29sZWFuSW5wdXQgPSB0cnVlO1xuXG4gIEBJbnB1dCgpIHNsaW1UaXRsZT86IHN0cmluZztcblxuICBASW5wdXQoKSBsb2dpblN0eWxlOiAnbm9uZScgfCAnZGVmYXVsdCcgfCAnZnVsbCcgPSAnZnVsbCc7XG5cbiAgQElucHV0KCkgc21hbGxIZWFkZXI/OiBCb29sZWFuSW5wdXQgPSB0cnVlO1xuXG4gIEBJbnB1dCgpIHNob3dTZWFyY2g/OiBCb29sZWFuSW5wdXQgPSB0cnVlO1xuXG4gIEBPdXRwdXQoKSBsb2dpbkNsaWNrOiBFdmVudEVtaXR0ZXI8RXZlbnQ+O1xuXG4gIEBPdXRwdXQoKSBzZWFyY2hDbGljazogRXZlbnRFbWl0dGVyPEV2ZW50PjtcblxuICAvKipcbiAgICogVE9ETzogY29tcGxldGUgaGVhZGVyXG4gICAqIEBwYXJhbSBfcmVuZGVyZXJcbiAgICogQHBhcmFtIF9lbGVtZW50UmVmXG4gICAqL1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVhZG9ubHkgX3JlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlYWRvbmx5IF9lbGVtZW50UmVmOiBFbGVtZW50UmVmXG4gICkge1xuICAgIHN1cGVyKF9yZW5kZXJlciwgX2VsZW1lbnRSZWYpO1xuICAgIHRoaXMubG9naW5DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KClcbiAgICB0aGlzLnNlYXJjaENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKVxuICB9XG5cbiAgZ2V0IGlzTGlnaHQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzVHJ1ZUJvb2xlYW5JbnB1dCh0aGlzLmxpZ2h0KTtcbiAgfVxuXG4gIGdldCBpc1Nob3dTbGltKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc1RydWVCb29sZWFuSW5wdXQodGhpcy5zaG93U2xpbSk7XG4gIH1cblxuICBnZXQgaXNTbWFsbEhlYWRlcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNUcnVlQm9vbGVhbklucHV0KHRoaXMuc21hbGxIZWFkZXIpO1xuICB9XG5cbiAgZ2V0IGlzU2hvd1NlYXJjaCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNUcnVlQm9vbGVhbklucHV0KHRoaXMuc2hvd1NlYXJjaCk7XG4gIH1cblxufVxuIiwiPGhlYWRlciBjbGFzcz1cIml0LWhlYWRlci13cmFwcGVyXCI+XG4gIDxkaXYgKm5nSWY9XCJpc1Nob3dTbGltXCIgY2xhc3M9XCJpdC1oZWFkZXItc2xpbS13cmFwcGVyXCIgW2NsYXNzLnRoZW1lLWxpZ2h0XT1cImlzTGlnaHRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXQtaGVhZGVyLXNsaW0td3JhcHBlci1jb250ZW50XCI+XG4gICAgICAgICAgICA8YSBjbGFzcz1cImQtbm9uZSBkLWxnLWJsb2NrIG5hdmJhci1icmFuZFwiIGhyZWY9XCIjXCI+e3tzbGltVGl0bGV9fTwvYT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJuYXYtbW9iaWxlXCI+XG4gICAgICAgICAgICAgIDxuYXYgW2F0dHIuYXJpYS1sYWJlbF09XCInaXQubmF2aWdhdGlvbi5zZWNvbmRhcnktbmF2aWdhdGlvbid8dHJhbnNsYXRlXCI+XG4gICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJpdC1vcGVuZXIgZC1sZy1ub25lXCIgZGF0YS1icy10b2dnbGU9XCJjb2xsYXBzZVwiIGhyZWY9XCIjbWVudUMxXCIgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgYXJpYS1leHBhbmRlZD1cImZhbHNlXCIgYXJpYS1jb250cm9scz1cIm1lbnVDMVwiPlxuICAgICAgICAgICAgICAgICAgPHNwYW4+e3tzbGltVGl0bGV9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDxpdC1pY29uIG5hbWU9XCJleHBhbmRcIj48L2l0LWljb24+XG4gICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaW5rLWxpc3Qtd3JhcHBlciBjb2xsYXBzZVwiIGlkPVwibWVudUMxXCI+XG4gICAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbc2xpbUxpbmtMaXN0XVwiPjwvbmctY29udGVudD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9uYXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpdC1oZWFkZXItc2xpbS1yaWdodC16b25lXCI+XG4gICAgICAgICAgICAgIDwhLS0gVE9ETzogYWRkIGxhbmd1YWdlIGRyb3Bkb3duIC0tPlxuICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbc2xpbVJpZ2h0Wm9uZV1cIj48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJsb2dpblN0eWxlID09PSAnZGVmYXVsdCdcIiBjbGFzcz1cIml0LWFjY2Vzcy10b3Atd3JhcHBlclwiPlxuICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbVwiIChjbGljayk9XCJsb2dpbkNsaWNrLmVtaXQoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgICAge3snaXQubmF2aWdhdGlvbi5sb2dpbid8dHJhbnNsYXRlfX1cbiAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwibG9naW5TdHlsZSA9PT0gJ2Z1bGwnXCIgaXRCdXR0b249XCJwcmltYXJ5XCIgY2xhc3M9XCJidG4tZnVsbFwiIChjbGljayk9XCJsb2dpbkNsaWNrLmVtaXQoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInJvdW5kZWQtaWNvblwiPlxuICAgICAgICAgICAgICAgIDxpdC1pY29uIG5hbWU9XCJ1c2VyXCIgY29sb3I9XCJwcmltYXJ5XCI+PC9pdC1pY29uPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZC1ub25lIGQtbGctYmxvY2tcIj57eydpdC5uYXZpZ2F0aW9uLmZ1bGwtbG9naW4nfHRyYW5zbGF0ZX19PC9zcGFuPlxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJpdC1uYXYtd3JhcHBlclwiPlxuICAgIDxkaXYgY2xhc3M9XCJpdC1oZWFkZXItY2VudGVyLXdyYXBwZXJcIiBbY2xhc3MuaXQtc21hbGwtaGVhZGVyXT1cImlzU21hbGxIZWFkZXJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXItZmx1aWRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpdC1oZWFkZXItY2VudGVyLWNvbnRlbnQtd3JhcHBlclwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXQtYnJhbmQtd3JhcHBlclwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlticmFuZF1cIj48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXQtcmlnaHQtem9uZVwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltyaWdodFpvbmVdXCI+PC9uZy1jb250ZW50PlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0LXNlYXJjaC13cmFwcGVyXCIgKm5nSWY9XCJpc1Nob3dTZWFyY2hcIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZC1ub25lIGQtbWQtYmxvY2tcIj57eydpdC5uYXZpZ2F0aW9uLnNlYXJjaCd8dHJhbnNsYXRlfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cInNlYXJjaC1saW5rIHJvdW5kZWQtaWNvblwiIFthdHRyLmFyaWEtbGFiZWxdPVwiJ2l0Lm5hdmlnYXRpb24ud2Vic2l0ZS1zZWFyY2gnfHRyYW5zbGF0ZVwiIChjbGljayk9XCJzZWFyY2hDbGljay5lbWl0KCRldmVudClcIj5cbiAgICAgICAgICAgICAgICAgICAgPGl0LWljb24gbmFtZT1cInNlYXJjaFwiPjwvaXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gVE9ETzogY29tcGxldGUgaGVhZGVyIC0tPlxuICA8L2Rpdj5cbjwvaGVhZGVyPlxuIl19
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvbmF2aWdhdGlvbi9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvbmF2aWdhdGlvbi9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ2pILE9BQU8sRUFBZ0Isa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQzs7Ozs7O0FBTzFFLE1BQU0sT0FBTyxlQUFnQixTQUFRLGlCQUFpQjtJQWtCcEQ7Ozs7O09BS0c7SUFDSCxZQUM4QixTQUFvQixFQUNwQixXQUF1QixFQUN2QixrQkFBcUM7UUFFakUsS0FBSyxDQUFDLFNBQVMsRUFBRSxXQUFXLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztRQUp0QixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ3BCLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBQ3ZCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7UUF2QjFELGFBQVEsR0FBa0IsSUFBSSxDQUFDO1FBSS9CLGVBQVUsR0FBZ0MsTUFBTSxDQUFDO1FBRWpELGdCQUFXLEdBQWtCLElBQUksQ0FBQztRQUVsQyxlQUFVLEdBQWtCLElBQUksQ0FBQztRQWtCeEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLFlBQVksRUFBUyxDQUFDO1FBQzVDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE9BQU8sa0JBQWtCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDZixPQUFPLGtCQUFrQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDN0MsQ0FBQzs7NEdBaERVLGVBQWU7Z0dBQWYsZUFBZSxxU0NUNUIsKy9GQW1FQTsyRkQxRGEsZUFBZTtrQkFMM0IsU0FBUzsrQkFDRSxXQUFXO3lKQU1aLEtBQUs7c0JBQWIsS0FBSztnQkFFRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUcsVUFBVTtzQkFBbEIsS0FBSztnQkFFRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUksVUFBVTtzQkFBbkIsTUFBTTtnQkFFRyxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCwgaXNUcnVlQm9vbGVhbklucHV0IH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvYm9vbGVhbi1pbnB1dCc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2Fic3RyYWN0cy9hYnN0cmFjdC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpdC1oZWFkZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vaGVhZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaGVhZGVyLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgSGVhZGVyQ29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3RDb21wb25lbnQge1xuXG4gIEBJbnB1dCgpIGxpZ2h0PzogQm9vbGVhbklucHV0O1xuXG4gIEBJbnB1dCgpIHNob3dTbGltPzogQm9vbGVhbklucHV0ID0gdHJ1ZTtcblxuICBASW5wdXQoKSBzbGltVGl0bGU/OiBzdHJpbmc7XG5cbiAgQElucHV0KCkgbG9naW5TdHlsZTogJ25vbmUnIHwgJ2RlZmF1bHQnIHwgJ2Z1bGwnID0gJ2Z1bGwnO1xuXG4gIEBJbnB1dCgpIHNtYWxsSGVhZGVyPzogQm9vbGVhbklucHV0ID0gdHJ1ZTtcblxuICBASW5wdXQoKSBzaG93U2VhcmNoPzogQm9vbGVhbklucHV0ID0gdHJ1ZTtcblxuICBAT3V0cHV0KCkgbG9naW5DbGljazogRXZlbnRFbWl0dGVyPEV2ZW50PjtcblxuICBAT3V0cHV0KCkgc2VhcmNoQ2xpY2s6IEV2ZW50RW1pdHRlcjxFdmVudD47XG5cbiAgLyoqXG4gICAqIFRPRE86IGNvbXBsZXRlIGhlYWRlclxuICAgKiBAcGFyYW0gX3JlbmRlcmVyXG4gICAqIEBwYXJhbSBfZWxlbWVudFJlZlxuICAgKiBAcGFyYW0gX2NoYW5nZURldGVjdG9yUmVmXG4gICAqL1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVhZG9ubHkgX3JlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlYWRvbmx5IF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHByb3RlY3RlZCBvdmVycmlkZSByZWFkb25seSBfY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmXG4gICkge1xuICAgIHN1cGVyKF9yZW5kZXJlciwgX2VsZW1lbnRSZWYsIF9jaGFuZ2VEZXRlY3RvclJlZik7XG4gICAgdGhpcy5sb2dpbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcbiAgICB0aGlzLnNlYXJjaENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcbiAgfVxuXG4gIGdldCBpc0xpZ2h0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc1RydWVCb29sZWFuSW5wdXQodGhpcy5saWdodCk7XG4gIH1cblxuICBnZXQgaXNTaG93U2xpbSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNUcnVlQm9vbGVhbklucHV0KHRoaXMuc2hvd1NsaW0pO1xuICB9XG5cbiAgZ2V0IGlzU21hbGxIZWFkZXIoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzVHJ1ZUJvb2xlYW5JbnB1dCh0aGlzLnNtYWxsSGVhZGVyKTtcbiAgfVxuXG4gIGdldCBpc1Nob3dTZWFyY2goKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzVHJ1ZUJvb2xlYW5JbnB1dCh0aGlzLnNob3dTZWFyY2gpO1xuICB9XG5cbn1cbiIsIjxoZWFkZXIgY2xhc3M9XCJpdC1oZWFkZXItd3JhcHBlclwiPlxuICA8ZGl2ICpuZ0lmPVwiaXNTaG93U2xpbVwiIGNsYXNzPVwiaXQtaGVhZGVyLXNsaW0td3JhcHBlclwiIFtjbGFzcy50aGVtZS1saWdodF09XCJpc0xpZ2h0XCI+XG4gICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIml0LWhlYWRlci1zbGltLXdyYXBwZXItY29udGVudFwiPlxuICAgICAgICAgICAgPGEgY2xhc3M9XCJkLW5vbmUgZC1sZy1ibG9jayBuYXZiYXItYnJhbmRcIiBocmVmPVwiI1wiPnt7c2xpbVRpdGxlfX08L2E+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibmF2LW1vYmlsZVwiPlxuICAgICAgICAgICAgICA8bmF2IFthdHRyLmFyaWEtbGFiZWxdPVwiJ2l0Lm5hdmlnYXRpb24uc2Vjb25kYXJ5LW5hdmlnYXRpb24nfHRyYW5zbGF0ZVwiPlxuICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwiaXQtb3BlbmVyIGQtbGctbm9uZVwiIGRhdGEtYnMtdG9nZ2xlPVwiY29sbGFwc2VcIiBocmVmPVwiI21lbnVDMVwiIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9XCJmYWxzZVwiIGFyaWEtY29udHJvbHM9XCJtZW51QzFcIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuPnt7c2xpbVRpdGxlfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8aXQtaWNvbiBuYW1lPVwiZXhwYW5kXCI+PC9pdC1pY29uPlxuICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGluay1saXN0LXdyYXBwZXIgY29sbGFwc2VcIiBpZD1cIm1lbnVDMVwiPlxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3NsaW1MaW5rTGlzdF1cIj48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvbmF2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXQtaGVhZGVyLXNsaW0tcmlnaHQtem9uZVwiPlxuICAgICAgICAgICAgICA8IS0tIFRPRE86IGFkZCBsYW5ndWFnZSBkcm9wZG93biAtLT5cbiAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3NsaW1SaWdodFpvbmVdXCI+PC9uZy1jb250ZW50PlxuICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwibG9naW5TdHlsZSA9PT0gJ2RlZmF1bHQnXCIgY2xhc3M9XCJpdC1hY2Nlc3MtdG9wLXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICA8YSBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tc21cIiAoY2xpY2spPVwibG9naW5DbGljay5lbWl0KCRldmVudClcIj5cbiAgICAgICAgICAgICAgICAgIHt7J2l0Lm5hdmlnYXRpb24ubG9naW4nfHRyYW5zbGF0ZX19XG4gICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImxvZ2luU3R5bGUgPT09ICdmdWxsJ1wiIGl0QnV0dG9uPVwicHJpbWFyeVwiIGNsYXNzPVwiYnRuLWZ1bGxcIiAoY2xpY2spPVwibG9naW5DbGljay5lbWl0KCRldmVudClcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJyb3VuZGVkLWljb25cIj5cbiAgICAgICAgICAgICAgICA8aXQtaWNvbiBuYW1lPVwidXNlclwiIGNvbG9yPVwicHJpbWFyeVwiPjwvaXQtaWNvbj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImQtbm9uZSBkLWxnLWJsb2NrXCI+e3snaXQubmF2aWdhdGlvbi5mdWxsLWxvZ2luJ3x0cmFuc2xhdGV9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiaXQtbmF2LXdyYXBwZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiaXQtaGVhZGVyLWNlbnRlci13cmFwcGVyXCIgW2NsYXNzLml0LXNtYWxsLWhlYWRlcl09XCJpc1NtYWxsSGVhZGVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWZsdWlkXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXQtaGVhZGVyLWNlbnRlci1jb250ZW50LXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0LWJyYW5kLXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbYnJhbmRdXCI+PC9uZy1jb250ZW50PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0LXJpZ2h0LXpvbmVcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbcmlnaHRab25lXVwiPjwvbmctY29udGVudD5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpdC1zZWFyY2gtd3JhcHBlclwiICpuZ0lmPVwiaXNTaG93U2VhcmNoXCI+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImQtbm9uZSBkLW1kLWJsb2NrXCI+e3snaXQubmF2aWdhdGlvbi5zZWFyY2gnfHRyYW5zbGF0ZX19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJzZWFyY2gtbGluayByb3VuZGVkLWljb25cIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidpdC5uYXZpZ2F0aW9uLndlYnNpdGUtc2VhcmNoJ3x0cmFuc2xhdGVcIiAoY2xpY2spPVwic2VhcmNoQ2xpY2suZW1pdCgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpdC1pY29uIG5hbWU9XCJzZWFyY2hcIj48L2l0LWljb24+XG4gICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIFRPRE86IGNvbXBsZXRlIGhlYWRlciAtLT5cbiAgPC9kaXY+XG48L2hlYWRlcj5cbiJdfQ==
@@ -29,7 +29,7 @@ export class LanguageSwitcherComponent {
29
29
  }
30
30
  }
31
31
  LanguageSwitcherComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: LanguageSwitcherComponent, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
32
- LanguageSwitcherComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: LanguageSwitcherComponent, selector: "it-language-switcher", inputs: { availableLanguages: "availableLanguages" }, ngImport: i0, template: "<it-dropdown id=\"language-switcher\">\n <ng-container button>\n <span class=\"visually-hidden\">{{'it.utils.selected' | translate: { lang: (currentLang$ | async)?.label } }}</span>\n <span>{{(currentLang$ | async)?.label || ('it.utils.select-language' | translate)}}</span>\n </ng-container>\n\n <ng-container list>\n <it-dropdown-item *ngFor=\"let lang of availableLanguages\" (click)=\"changeLanguage(lang.code)\"\n [active]=\"lang.code === (currentLang$ | async)?.code\">\n {{lang.label}}\n <span class=\"visually-hidden\" *ngIf=\"lang.code === (currentLang$ | async)?.code\">\n {{'it.utils.selected' | translate}}\n </span>\n </it-dropdown-item>\n </ng-container>\n</it-dropdown>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.DropdownComponent, selector: "it-dropdown[id]", inputs: ["color", "direction", "fullWidth", "dark"] }, { kind: "component", type: i4.DropdownItemComponent, selector: "it-dropdown-item", inputs: ["divider", "active", "large", "iconName", "iconPosition"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] });
32
+ LanguageSwitcherComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: LanguageSwitcherComponent, selector: "it-language-switcher", inputs: { availableLanguages: "availableLanguages" }, ngImport: i0, template: "<it-dropdown id=\"language-switcher\">\n <ng-container button>\n <span class=\"visually-hidden\">{{'it.utils.selected' | translate: { lang: (currentLang$ | async)?.label } }}</span>\n <span>{{(currentLang$ | async)?.label || ('it.utils.select-language' | translate)}}</span>\n </ng-container>\n\n <ng-container list>\n <it-dropdown-item *ngFor=\"let lang of availableLanguages\" (click)=\"changeLanguage(lang.code)\"\n [active]=\"lang.code === (currentLang$ | async)?.code\">\n {{lang.label}}\n <span class=\"visually-hidden\" *ngIf=\"lang.code === (currentLang$ | async)?.code\">\n {{'it.utils.selected' | translate}}\n </span>\n </it-dropdown-item>\n </ng-container>\n</it-dropdown>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.DropdownComponent, selector: "it-dropdown[id]", inputs: ["color", "direction", "fullWidth", "dark"], outputs: ["onShow", "onShown", "onHide", "onHidden"], exportAs: ["itDropdown"] }, { kind: "component", type: i4.DropdownItemComponent, selector: "it-dropdown-item", inputs: ["divider", "active", "large", "iconName", "iconPosition"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] });
33
33
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: LanguageSwitcherComponent, decorators: [{
34
34
  type: Component,
35
35
  args: [{ selector: 'it-language-switcher', template: "<it-dropdown id=\"language-switcher\">\n <ng-container button>\n <span class=\"visually-hidden\">{{'it.utils.selected' | translate: { lang: (currentLang$ | async)?.label } }}</span>\n <span>{{(currentLang$ | async)?.label || ('it.utils.select-language' | translate)}}</span>\n </ng-container>\n\n <ng-container list>\n <it-dropdown-item *ngFor=\"let lang of availableLanguages\" (click)=\"changeLanguage(lang.code)\"\n [active]=\"lang.code === (currentLang$ | async)?.code\">\n {{lang.label}}\n <span class=\"visually-hidden\" *ngIf=\"lang.code === (currentLang$ | async)?.code\">\n {{'it.utils.selected' | translate}}\n </span>\n </it-dropdown-item>\n </ng-container>\n</it-dropdown>\n" }]
@@ -61,5 +61,13 @@ export class FileUtils {
61
61
  const fileBlob = FileUtils.base64ToBlob(base64, mimeType);
62
62
  return new File([fileBlob], filename, { type: mimeType });
63
63
  }
64
+ /**
65
+ * Extract the MIME type from base64 string
66
+ * @param base64 the base64 string
67
+ */
68
+ static getMimeTypeFromBase64(base64) {
69
+ const mime = base64.match(/data:([a-zA-Z0-9]+\/[a-zA-Z0-9-.+]+).*,.*/);
70
+ return (mime && mime.length) ? mime[1] : undefined;
71
+ }
64
72
  }
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL3V0aWxzL2ZpbGUtdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVsQyxNQUFNLE9BQU8sU0FBUztJQUVwQjs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLGlCQUFpQixDQUFDLElBQVUsRUFBRSxRQUFRLEdBQUcsQ0FBQztRQUN0RCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRTtZQUNYLE9BQU8sU0FBUyxDQUFDO1NBQ2xCO1FBRUQsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQ2YsTUFBTSxFQUFFLEdBQUcsUUFBUSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7UUFDdkMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRXhFLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEQsT0FBTyxHQUFHLFVBQVUsQ0FBQyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQzNFLENBQUM7SUFFRDs7O09BR0c7SUFDSSxNQUFNLENBQUMsWUFBWSxDQUFDLElBQVU7UUFDbkMsTUFBTSxNQUFNLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUNoQyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTNCLE9BQU8sSUFBSSxVQUFVLENBQVMsUUFBUSxDQUFDLEVBQUU7WUFDdkMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUNwQixNQUFNLE1BQU0sR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO2dCQUN4QixJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsTUFBTSxZQUFZLFdBQVcsRUFBRTtvQkFDckUsT0FBTyxRQUFRLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7aUJBQ3pDO2dCQUNELFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUM3QixRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDdEIsQ0FBQyxDQUFDO1lBQ0YsTUFBTSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsRUFBRTtnQkFDdkIsUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN4QixDQUFDLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFjLEVBQUUsUUFBZ0I7UUFDekQsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN2QyxNQUFNLFdBQVcsR0FBRyxJQUFJLFdBQVcsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdkQsTUFBTSxTQUFTLEdBQUcsSUFBSSxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDOUMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDMUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDekM7UUFDRCxPQUFPLElBQUksSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQWMsRUFBRSxRQUFnQixFQUFFLFFBQWdCO1FBQzNFLE1BQU0sUUFBUSxHQUFHLFNBQVMsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzFELE9BQU8sSUFBSSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUM1RCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBjbGFzcyBGaWxlVXRpbHMge1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIGZpbGUgc2l6ZSBzdHJpbmdcbiAgICogQHBhcmFtIGZpbGUgdGhlIGZpbGVcbiAgICogQHBhcmFtIGRlY2ltYWxzIGRlY2ltYWwgdG8gc2hvd1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBnZXRGaWxlU2l6ZVN0cmluZyhmaWxlOiBGaWxlLCBkZWNpbWFscyA9IDIpOiBzdHJpbmcge1xuICAgIGNvbnN0IGJ5dGVzID0gZmlsZS5zaXplO1xuICAgIGlmICghK2J5dGVzKSB7XG4gICAgICByZXR1cm4gJzAgQnl0ZXMnO1xuICAgIH1cblxuICAgIGNvbnN0IGsgPSAxMDI0O1xuICAgIGNvbnN0IGRtID0gZGVjaW1hbHMgPCAwID8gMCA6IGRlY2ltYWxzO1xuICAgIGNvbnN0IHNpemVzID0gWydCeXRlcycsICdLQicsICdNQicsICdHQicsICdUQicsICdQQicsICdFQicsICdaQicsICdZQiddO1xuXG4gICAgY29uc3QgaSA9IE1hdGguZmxvb3IoTWF0aC5sb2coYnl0ZXMpIC8gTWF0aC5sb2coaykpO1xuICAgIHJldHVybiBgJHtwYXJzZUZsb2F0KChieXRlcyAvIE1hdGgucG93KGssIGkpKS50b0ZpeGVkKGRtKSl9ICR7c2l6ZXNbaV19YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0IGEgZmlsZSB0byBiYXNlNjQgc3RyaW5nXG4gICAqIEBwYXJhbSBmaWxlIHRoZSBiYXNlNjQgc3RyaW5nXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZpbGVUb0Jhc2U2NChmaWxlOiBGaWxlKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpO1xuXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPHN0cmluZz4ob2JzZXJ2ZXIgPT4ge1xuICAgICAgcmVhZGVyLm9ubG9hZCA9IChlKSA9PiB7XG4gICAgICAgIGNvbnN0IHRhcmdldCA9IGUudGFyZ2V0O1xuICAgICAgICBpZiAoIXRhcmdldCB8fCAhdGFyZ2V0LnJlc3VsdCB8fCB0YXJnZXQucmVzdWx0IGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpIHtcbiAgICAgICAgICByZXR1cm4gb2JzZXJ2ZXIuZXJyb3IoJ0Vycm9yIG9uIHBhcnNlJyk7XG4gICAgICAgIH1cbiAgICAgICAgb2JzZXJ2ZXIubmV4dCh0YXJnZXQucmVzdWx0KTtcbiAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgIH07XG4gICAgICByZWFkZXIub25lcnJvciA9IGVycm9yID0+IHtcbiAgICAgICAgb2JzZXJ2ZXIuZXJyb3IoZXJyb3IpO1xuICAgICAgfTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0IGJhc2U2NCB0byBCbG9iXG4gICAqIEBwYXJhbSBiYXNlNjQgdGhlIGJhc2U2NCBzdHJpbmdcbiAgICogQHBhcmFtIG1pbWVUeXBlIHRoZSA8YSBocmVmPVwiaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSFRUUC9CYXNpY3Nfb2ZfSFRUUC9NSU1FX3R5cGVzL0NvbW1vbl90eXBlc1wiPk1JTUUgdHlwZTwvYT4gKGV4YW1wbGUgJ2FwcGxpY2F0aW9uL3BkZicpXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGJhc2U2NFRvQmxvYihiYXNlNjQ6IHN0cmluZywgbWltZVR5cGU6IHN0cmluZyk6IEJsb2Ige1xuICAgIGNvbnN0IGJ5dGVTdHJpbmcgPSB3aW5kb3cuYXRvYihiYXNlNjQpO1xuICAgIGNvbnN0IGFycmF5QnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKGJ5dGVTdHJpbmcubGVuZ3RoKTtcbiAgICBjb25zdCBpbnQ4QXJyYXkgPSBuZXcgVWludDhBcnJheShhcnJheUJ1ZmZlcik7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBieXRlU3RyaW5nLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpbnQ4QXJyYXlbaV0gPSBieXRlU3RyaW5nLmNoYXJDb2RlQXQoaSk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgQmxvYihbaW50OEFycmF5XSwgeyB0eXBlOiBtaW1lVHlwZSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0IGJhc2U2NCB0byBGaWxlXG4gICAqIEBwYXJhbSBiYXNlNjQgdGhlIGJhc2U2NCBzdHJpbmdcbiAgICogQHBhcmFtIG1pbWVUeXBlIHRoZSA8YSBocmVmPVwiaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSFRUUC9CYXNpY3Nfb2ZfSFRUUC9NSU1FX3R5cGVzL0NvbW1vbl90eXBlc1wiPk1JTUUgdHlwZTwvYT4gKGV4YW1wbGUgJ2FwcGxpY2F0aW9uL3BkZicpXG4gICAqIEBwYXJhbSBmaWxlbmFtZSB0aGUgZmlsZSBuYW1lXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGJhc2U2NFRvRmlsZShiYXNlNjQ6IHN0cmluZywgbWltZVR5cGU6IHN0cmluZywgZmlsZW5hbWU6IHN0cmluZyk6IEZpbGUge1xuICAgIGNvbnN0IGZpbGVCbG9iID0gRmlsZVV0aWxzLmJhc2U2NFRvQmxvYihiYXNlNjQsIG1pbWVUeXBlKTtcbiAgICByZXR1cm4gbmV3IEZpbGUoW2ZpbGVCbG9iXSwgZmlsZW5hbWUsIHsgdHlwZTogbWltZVR5cGUgfSk7XG4gIH1cbn1cbiJdfQ==
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL3V0aWxzL2ZpbGUtdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVsQyxNQUFNLE9BQU8sU0FBUztJQUVwQjs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLGlCQUFpQixDQUFDLElBQVUsRUFBRSxRQUFRLEdBQUcsQ0FBQztRQUN0RCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRTtZQUNYLE9BQU8sU0FBUyxDQUFDO1NBQ2xCO1FBRUQsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQ2YsTUFBTSxFQUFFLEdBQUcsUUFBUSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7UUFDdkMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRXhFLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEQsT0FBTyxHQUFHLFVBQVUsQ0FBQyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQzNFLENBQUM7SUFFRDs7O09BR0c7SUFDSSxNQUFNLENBQUMsWUFBWSxDQUFDLElBQVU7UUFDbkMsTUFBTSxNQUFNLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUNoQyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTNCLE9BQU8sSUFBSSxVQUFVLENBQVMsUUFBUSxDQUFDLEVBQUU7WUFDdkMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUNwQixNQUFNLE1BQU0sR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO2dCQUN4QixJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsTUFBTSxZQUFZLFdBQVcsRUFBRTtvQkFDckUsT0FBTyxRQUFRLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7aUJBQ3pDO2dCQUNELFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUM3QixRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDdEIsQ0FBQyxDQUFDO1lBQ0YsTUFBTSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsRUFBRTtnQkFDdkIsUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN4QixDQUFDLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFjLEVBQUUsUUFBZ0I7UUFDekQsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN2QyxNQUFNLFdBQVcsR0FBRyxJQUFJLFdBQVcsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdkQsTUFBTSxTQUFTLEdBQUcsSUFBSSxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDOUMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDMUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDekM7UUFDRCxPQUFPLElBQUksSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQWMsRUFBRSxRQUFnQixFQUFFLFFBQWdCO1FBQzNFLE1BQU0sUUFBUSxHQUFHLFNBQVMsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzFELE9BQU8sSUFBSSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLHFCQUFxQixDQUFDLE1BQWM7UUFDaEQsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDO1FBQ3ZFLE9BQU8sQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUNyRCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBjbGFzcyBGaWxlVXRpbHMge1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIGZpbGUgc2l6ZSBzdHJpbmdcbiAgICogQHBhcmFtIGZpbGUgdGhlIGZpbGVcbiAgICogQHBhcmFtIGRlY2ltYWxzIGRlY2ltYWwgdG8gc2hvd1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBnZXRGaWxlU2l6ZVN0cmluZyhmaWxlOiBGaWxlLCBkZWNpbWFscyA9IDIpOiBzdHJpbmcge1xuICAgIGNvbnN0IGJ5dGVzID0gZmlsZS5zaXplO1xuICAgIGlmICghK2J5dGVzKSB7XG4gICAgICByZXR1cm4gJzAgQnl0ZXMnO1xuICAgIH1cblxuICAgIGNvbnN0IGsgPSAxMDI0O1xuICAgIGNvbnN0IGRtID0gZGVjaW1hbHMgPCAwID8gMCA6IGRlY2ltYWxzO1xuICAgIGNvbnN0IHNpemVzID0gWydCeXRlcycsICdLQicsICdNQicsICdHQicsICdUQicsICdQQicsICdFQicsICdaQicsICdZQiddO1xuXG4gICAgY29uc3QgaSA9IE1hdGguZmxvb3IoTWF0aC5sb2coYnl0ZXMpIC8gTWF0aC5sb2coaykpO1xuICAgIHJldHVybiBgJHtwYXJzZUZsb2F0KChieXRlcyAvIE1hdGgucG93KGssIGkpKS50b0ZpeGVkKGRtKSl9ICR7c2l6ZXNbaV19YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0IGEgZmlsZSB0byBiYXNlNjQgc3RyaW5nXG4gICAqIEBwYXJhbSBmaWxlIHRoZSBiYXNlNjQgc3RyaW5nXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZpbGVUb0Jhc2U2NChmaWxlOiBGaWxlKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpO1xuXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPHN0cmluZz4ob2JzZXJ2ZXIgPT4ge1xuICAgICAgcmVhZGVyLm9ubG9hZCA9IChlKSA9PiB7XG4gICAgICAgIGNvbnN0IHRhcmdldCA9IGUudGFyZ2V0O1xuICAgICAgICBpZiAoIXRhcmdldCB8fCAhdGFyZ2V0LnJlc3VsdCB8fCB0YXJnZXQucmVzdWx0IGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpIHtcbiAgICAgICAgICByZXR1cm4gb2JzZXJ2ZXIuZXJyb3IoJ0Vycm9yIG9uIHBhcnNlJyk7XG4gICAgICAgIH1cbiAgICAgICAgb2JzZXJ2ZXIubmV4dCh0YXJnZXQucmVzdWx0KTtcbiAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgIH07XG4gICAgICByZWFkZXIub25lcnJvciA9IGVycm9yID0+IHtcbiAgICAgICAgb2JzZXJ2ZXIuZXJyb3IoZXJyb3IpO1xuICAgICAgfTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0IGJhc2U2NCB0byBCbG9iXG4gICAqIEBwYXJhbSBiYXNlNjQgdGhlIGJhc2U2NCBzdHJpbmdcbiAgICogQHBhcmFtIG1pbWVUeXBlIHRoZSA8YSBocmVmPVwiaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSFRUUC9CYXNpY3Nfb2ZfSFRUUC9NSU1FX3R5cGVzL0NvbW1vbl90eXBlc1wiPk1JTUUgdHlwZTwvYT4gKGV4YW1wbGUgJ2FwcGxpY2F0aW9uL3BkZicpXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGJhc2U2NFRvQmxvYihiYXNlNjQ6IHN0cmluZywgbWltZVR5cGU6IHN0cmluZyk6IEJsb2Ige1xuICAgIGNvbnN0IGJ5dGVTdHJpbmcgPSB3aW5kb3cuYXRvYihiYXNlNjQpO1xuICAgIGNvbnN0IGFycmF5QnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKGJ5dGVTdHJpbmcubGVuZ3RoKTtcbiAgICBjb25zdCBpbnQ4QXJyYXkgPSBuZXcgVWludDhBcnJheShhcnJheUJ1ZmZlcik7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBieXRlU3RyaW5nLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpbnQ4QXJyYXlbaV0gPSBieXRlU3RyaW5nLmNoYXJDb2RlQXQoaSk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgQmxvYihbaW50OEFycmF5XSwgeyB0eXBlOiBtaW1lVHlwZSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0IGJhc2U2NCB0byBGaWxlXG4gICAqIEBwYXJhbSBiYXNlNjQgdGhlIGJhc2U2NCBzdHJpbmdcbiAgICogQHBhcmFtIG1pbWVUeXBlIHRoZSA8YSBocmVmPVwiaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSFRUUC9CYXNpY3Nfb2ZfSFRUUC9NSU1FX3R5cGVzL0NvbW1vbl90eXBlc1wiPk1JTUUgdHlwZTwvYT4gKGV4YW1wbGUgJ2FwcGxpY2F0aW9uL3BkZicpXG4gICAqIEBwYXJhbSBmaWxlbmFtZSB0aGUgZmlsZSBuYW1lXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGJhc2U2NFRvRmlsZShiYXNlNjQ6IHN0cmluZywgbWltZVR5cGU6IHN0cmluZywgZmlsZW5hbWU6IHN0cmluZyk6IEZpbGUge1xuICAgIGNvbnN0IGZpbGVCbG9iID0gRmlsZVV0aWxzLmJhc2U2NFRvQmxvYihiYXNlNjQsIG1pbWVUeXBlKTtcbiAgICByZXR1cm4gbmV3IEZpbGUoW2ZpbGVCbG9iXSwgZmlsZW5hbWUsIHsgdHlwZTogbWltZVR5cGUgfSk7XG4gIH1cblxuICAvKipcbiAgICogRXh0cmFjdCB0aGUgTUlNRSB0eXBlIGZyb20gYmFzZTY0IHN0cmluZ1xuICAgKiBAcGFyYW0gYmFzZTY0IHRoZSBiYXNlNjQgc3RyaW5nXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGdldE1pbWVUeXBlRnJvbUJhc2U2NChiYXNlNjQ6IHN0cmluZyk6IHN0cmluZ3x1bmRlZmluZWQge1xuICAgIGNvbnN0IG1pbWUgPSBiYXNlNjQubWF0Y2goL2RhdGE6KFthLXpBLVowLTldK1xcL1thLXpBLVowLTktLitdKykuKiwuKi8pO1xuICAgIHJldHVybiAobWltZSAmJiBtaW1lLmxlbmd0aCkgPyBtaW1lWzFdIDogdW5kZWZpbmVkO1xuICB9XG59XG4iXX0=