@natec/mef-dev-ui-kit 16.2.4 → 16.2.48

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 (56) hide show
  1. package/README.md +6 -1
  2. package/esm2022/lib/markup-kit/card/card/card.component.mjs +4 -4
  3. package/esm2022/lib/markup-kit/card/card-long/card-long.component.mjs +4 -4
  4. package/esm2022/lib/markup-kit/card/card-simple/card-simple.component.mjs +4 -4
  5. package/esm2022/lib/markup-kit/card/card.module.mjs +5 -5
  6. package/esm2022/lib/markup-kit/collapse/collapse/collapse.component.mjs +4 -4
  7. package/esm2022/lib/markup-kit/executors/mefdev-executor-page/mefdev-executor-page.component.mjs +69 -1
  8. package/esm2022/lib/markup-kit/executors/stage/stage.component.mjs +4 -1
  9. package/esm2022/lib/markup-kit/executors/step-executor/step-executor.component.mjs +188 -9
  10. package/esm2022/lib/markup-kit/executors/step-executor.module.mjs +7 -3
  11. package/esm2022/lib/markup-kit/modals/fill/fill.component.mjs +4 -4
  12. package/esm2022/lib/markup-kit/modals/slide-right/slide-right.component.mjs +2 -2
  13. package/esm2022/lib/markup-kit/modals/slide-up/slide-up.component.mjs +2 -2
  14. package/esm2022/lib/markup-kit/page-layouts/central-page/central-page.component.mjs +2 -2
  15. package/esm2022/lib/markup-kit/page-layouts/manage-page/manage-page.component.mjs +4 -4
  16. package/esm2022/lib/markup-kit/page-layouts/profile/profile.component.mjs +4 -4
  17. package/esm2022/lib/markup-kit/page-layouts/table-page/table-page.component.mjs +2 -2
  18. package/esm2022/lib/markup-kit/slider/slider/slider.component.mjs +4 -4
  19. package/esm2022/lib/markup-kit/utils/datepicker/datepicker/datepicker.component.mjs +138 -133
  20. package/esm2022/lib/markup-kit/utils/filtered-field/filtered-field-container/filtered-field-container.component.mjs +2 -2
  21. package/esm2022/lib/markup-kit/utils/filtered-field/filtered-field-item/filtered-field-item.component.mjs +2 -2
  22. package/esm2022/lib/markup-kit/utils/help-block/help-block.component.mjs +4 -4
  23. package/esm2022/lib/pg-components/card/card.components.mjs +11 -8
  24. package/esm2022/lib/pg-components/card/card.module.mjs +10 -10
  25. package/esm2022/lib/pg-components/select/select.component.mjs +2 -2
  26. package/esm2022/lib/pg-components/switch/switch.component.mjs +2 -2
  27. package/esm2022/lib/pg-components/tabs/tabset.component.mjs +2 -2
  28. package/fesm2022/natec-mef-dev-ui-kit.mjs +454 -195
  29. package/fesm2022/natec-mef-dev-ui-kit.mjs.map +1 -1
  30. package/lib/markup-kit/card/card/card.component.d.ts +1 -1
  31. package/lib/markup-kit/card/card-long/card-long.component.d.ts +1 -1
  32. package/lib/markup-kit/card/card-simple/card-simple.component.d.ts +1 -1
  33. package/lib/markup-kit/card/card.module.d.ts +2 -2
  34. package/lib/markup-kit/collapse/collapse/collapse.component.d.ts +1 -1
  35. package/lib/markup-kit/executors/mefdev-executor-page/mefdev-executor-page.component.d.ts +68 -0
  36. package/lib/markup-kit/executors/stage/stage.component.d.ts +3 -0
  37. package/lib/markup-kit/executors/step-executor/step-executor.component.d.ts +160 -3
  38. package/lib/markup-kit/executors/step-executor.module.d.ts +4 -3
  39. package/lib/markup-kit/modals/fill/fill.component.d.ts +1 -1
  40. package/lib/markup-kit/modals/slide-right/slide-right.component.d.ts +1 -1
  41. package/lib/markup-kit/modals/slide-up/slide-up.component.d.ts +1 -1
  42. package/lib/markup-kit/page-layouts/central-page/central-page.component.d.ts +1 -1
  43. package/lib/markup-kit/page-layouts/manage-page/manage-page.component.d.ts +1 -1
  44. package/lib/markup-kit/page-layouts/profile/profile.component.d.ts +1 -1
  45. package/lib/markup-kit/page-layouts/table-page/table-page.component.d.ts +1 -1
  46. package/lib/markup-kit/slider/slider/slider.component.d.ts +1 -1
  47. package/lib/markup-kit/utils/datepicker/datepicker/datepicker.component.d.ts +104 -104
  48. package/lib/markup-kit/utils/filtered-field/filtered-field-container/filtered-field-container.component.d.ts +1 -1
  49. package/lib/markup-kit/utils/help-block/help-block.component.d.ts +1 -1
  50. package/lib/pg-components/card/card.components.d.ts +5 -5
  51. package/lib/pg-components/card/card.module.d.ts +5 -5
  52. package/lib/pg-components/select/select.component.d.ts +1 -1
  53. package/lib/pg-components/switch/switch.component.d.ts +1 -1
  54. package/lib/pg-components/tabs/tabset.component.d.ts +1 -1
  55. package/package.json +1 -1
  56. package/src/lib/styles/designe-colors.scss +16 -1
@@ -1,6 +1,9 @@
1
1
  import { Component, Input } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  import * as i1 from "@angular/common";
4
+ /**
5
+ * @ignore
6
+ */
4
7
  export class StageComponent {
5
8
  currentExecutorStep;
6
9
  isRightModal;
@@ -21,4 +24,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
21
24
  }], title: [{
22
25
  type: Input
23
26
  }] } });
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkta2l0LWxpYi9zcmMvbGliL21hcmt1cC1raXQvZXhlY3V0b3JzL3N0YWdlL3N0YWdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWtpdC1saWIvc3JjL2xpYi9tYXJrdXAta2l0L2V4ZWN1dG9ycy9zdGFnZS9zdGFnZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBUWpELE1BQU0sT0FBTyxjQUFjO0lBRWhCLG1CQUFtQixDQUFTO0lBQzVCLFlBQVksQ0FBVTtJQUN0QixXQUFXLENBQVU7SUFDckIsS0FBSyxDQUFTO3VHQUxaLGNBQWM7MkZBQWQsY0FBYyxzTENSM0IseXNDQXVCQTs7MkZEZmEsY0FBYztrQkFOMUIsU0FBUzsrQkFDRSxjQUFjOzhCQU9mLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdtZWZkZXYtc3RhZ2UnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zdGFnZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc3RhZ2UuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBTdGFnZUNvbXBvbmVudCB7XHJcblxyXG4gIEBJbnB1dCgpIGN1cnJlbnRFeGVjdXRvclN0ZXA6IG51bWJlcjtcclxuICBASW5wdXQoKSBpc1JpZ2h0TW9kYWw6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgaXNDb21wbGV0ZWQ6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgdGl0bGU6IHN0cmluZztcclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInN0ZXBcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNDb21wbGV0ZWQgZWxzZSBkb25lXCI+XHJcbiAgICAgICAgPHN2ZyB3aWR0aD1cIjM2XCIgaGVpZ2h0PVwiMzZcIiB2aWV3Qm94PVwiMCAwIDM2IDM2XCIgW25nU3R5bGVdPVwiaXNSaWdodE1vZGFsID8geyAnZmlsbCc6ICcjRkZGRkZGJyB9IDogeyAnZmlsbCc6ICcjRjNGM0YzJyB9XCI+XHJcbiAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMzZcIiBoZWlnaHQ9XCIzNlwiIHJ4PVwiMThcIiAvPlxyXG4gICAgICAgICAgICA8dGV4dCBjbGFzcz1cImJvZHktM1wiIHg9XCI1MCVcIiB5PVwiNTAlXCIgZG9taW5hbnQtYmFzZWxpbmU9XCJtaWRkbGVcIiB0ZXh0LWFuY2hvcj1cIm1pZGRsZVwiIGZvbnQtc2l6ZT1cIjE2XCIgZmlsbD1cImJsYWNrXCI+XHJcbiAgICAgICAgICAgICAgICB7eyBjdXJyZW50RXhlY3V0b3JTdGVwIH19XHJcbiAgICAgICAgICAgIDwvdGV4dD5cclxuICAgICAgICA8L3N2Zz5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYm9keS02IGRlc2NyaXB0aW9uU3RlcFRleHRcIiAqbmdJZj1cIiFpc1JpZ2h0TW9kYWxcIj5cclxuICAgICAgICAgICAge3sgdGl0bGUgfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG48L2Rpdj5cclxuPG5nLXRlbXBsYXRlICNkb25lPlxyXG4gICAgPHN2ZyB3aWR0aD1cIjM2XCIgaGVpZ2h0PVwiMzZcIiB2aWV3Qm94PVwiMCAwIDM2IDM2XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgPHJlY3QgeD1cIjAuNVwiIHk9XCIwLjVcIiB3aWR0aD1cIjM1XCIgaGVpZ2h0PVwiMzVcIiByeD1cIjE3LjVcIiBzdHJva2U9XCIjOTI5MjkyXCIvPlxyXG4gICAgICAgIDxwYXRoIGQ9XCJNMjQuNzM3MyAxMEwxNC41NDY2IDIwLjM3NjlMMTEuMjQxNSAxNy4wMTE0TDggMjAuMzEyMkwxMS4zMDUxIDIzLjY3NzdMMTQuNTY3OCAyN0wxNy44MDkzIDIzLjY5OTJMMjggMTMuMzIyNEwyNC43MzczIDEwWlwiXHJcbiAgICAgICAgICAgICAgZmlsbD1cIiMyOEI0NDZcIi8+XHJcbiAgICA8L3N2Zz5cclxuICAgIDxzcGFuIGNsYXNzPVwiYm9keS02IGRlc2NyaXB0aW9uU3RlcFRleHRcIiAqbmdJZj1cIiFpc1JpZ2h0TW9kYWxcIj5cclxuICAgICAgICB7eyB0aXRsZSB9fVxyXG4gICAgPC9zcGFuPlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkta2l0LWxpYi9zcmMvbGliL21hcmt1cC1raXQvZXhlY3V0b3JzL3N0YWdlL3N0YWdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWtpdC1saWIvc3JjL2xpYi9tYXJrdXAta2l0L2V4ZWN1dG9ycy9zdGFnZS9zdGFnZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBRWpEOztHQUVHO0FBUUgsTUFBTSxPQUFPLGNBQWM7SUFFaEIsbUJBQW1CLENBQVM7SUFDNUIsWUFBWSxDQUFVO0lBQ3RCLFdBQVcsQ0FBVTtJQUNyQixLQUFLLENBQVM7dUdBTFosY0FBYzsyRkFBZCxjQUFjLHNMQ1ozQix5c0NBdUJBOzsyRkRYYSxjQUFjO2tCQU4xQixTQUFTOytCQUNFLGNBQWM7OEJBT2YsbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG4vKipcclxuICogQGlnbm9yZVxyXG4gKi9cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbWVmZGV2LXN0YWdlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc3RhZ2UuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3N0YWdlLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgU3RhZ2VDb21wb25lbnQge1xyXG5cclxuICBASW5wdXQoKSBjdXJyZW50RXhlY3V0b3JTdGVwOiBudW1iZXI7XHJcbiAgQElucHV0KCkgaXNSaWdodE1vZGFsOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGlzQ29tcGxldGVkOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmc7XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJzdGVwXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzQ29tcGxldGVkIGVsc2UgZG9uZVwiPlxyXG4gICAgICAgIDxzdmcgd2lkdGg9XCIzNlwiIGhlaWdodD1cIjM2XCIgdmlld0JveD1cIjAgMCAzNiAzNlwiIFtuZ1N0eWxlXT1cImlzUmlnaHRNb2RhbCA/IHsgJ2ZpbGwnOiAnI0ZGRkZGRicgfSA6IHsgJ2ZpbGwnOiAnI0YzRjNGMycgfVwiPlxyXG4gICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjM2XCIgaGVpZ2h0PVwiMzZcIiByeD1cIjE4XCIgLz5cclxuICAgICAgICAgICAgPHRleHQgY2xhc3M9XCJib2R5LTNcIiB4PVwiNTAlXCIgeT1cIjUwJVwiIGRvbWluYW50LWJhc2VsaW5lPVwibWlkZGxlXCIgdGV4dC1hbmNob3I9XCJtaWRkbGVcIiBmb250LXNpemU9XCIxNlwiIGZpbGw9XCJibGFja1wiPlxyXG4gICAgICAgICAgICAgICAge3sgY3VycmVudEV4ZWN1dG9yU3RlcCB9fVxyXG4gICAgICAgICAgICA8L3RleHQ+XHJcbiAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImJvZHktNiBkZXNjcmlwdGlvblN0ZXBUZXh0XCIgKm5nSWY9XCIhaXNSaWdodE1vZGFsXCI+XHJcbiAgICAgICAgICAgIHt7IHRpdGxlIH19XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuPC9kaXY+XHJcbjxuZy10ZW1wbGF0ZSAjZG9uZT5cclxuICAgIDxzdmcgd2lkdGg9XCIzNlwiIGhlaWdodD1cIjM2XCIgdmlld0JveD1cIjAgMCAzNiAzNlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgIDxyZWN0IHg9XCIwLjVcIiB5PVwiMC41XCIgd2lkdGg9XCIzNVwiIGhlaWdodD1cIjM1XCIgcng9XCIxNy41XCIgc3Ryb2tlPVwiIzkyOTI5MlwiLz5cclxuICAgICAgICA8cGF0aCBkPVwiTTI0LjczNzMgMTBMMTQuNTQ2NiAyMC4zNzY5TDExLjI0MTUgMTcuMDExNEw4IDIwLjMxMjJMMTEuMzA1MSAyMy42Nzc3TDE0LjU2NzggMjdMMTcuODA5MyAyMy42OTkyTDI4IDEzLjMyMjRMMjQuNzM3MyAxMFpcIlxyXG4gICAgICAgICAgICAgIGZpbGw9XCIjMjhCNDQ2XCIvPlxyXG4gICAgPC9zdmc+XHJcbiAgICA8c3BhbiBjbGFzcz1cImJvZHktNiBkZXNjcmlwdGlvblN0ZXBUZXh0XCIgKm5nSWY9XCIhaXNSaWdodE1vZGFsXCI+XHJcbiAgICAgICAge3sgdGl0bGUgfX1cclxuICAgIDwvc3Bhbj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
@@ -1,19 +1,143 @@
1
1
  import { Component, ContentChild, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
- import * as i1 from "@angular/common";
4
- import * as i2 from "../stage/stage.component";
3
+ import * as i1 from "../../modals/slide-up/slide-up.component";
4
+ import * as i2 from "../../modals/slide-right/slide-right.component";
5
+ import * as i3 from "@angular/common";
6
+ import * as i4 from "../stage/stage.component";
7
+ /**
8
+ * Wrapper component that represents a specific encapsulated executor.
9
+ *
10
+ * Example of usage:
11
+ *```
12
+ * <mefdev-step-executor #mainExecutor [view]="'regular'">
13
+ *
14
+ * <ng-template #title>
15
+ * <!-- Content for the executor title -->
16
+ * </ng-template>
17
+ * <ng-template #description>
18
+ * <!-- Content for the executor description -->
19
+ * </ng-template>
20
+ *
21
+ * <mefdev-executor-page
22
+ * [title]="'Description of situation 1'"
23
+ * [isActive]="mainExecutor.activePageInd === 0"
24
+ * [isCompleted]="mainExecutor.activePageInd >= 0">
25
+ * <!-- Content of the first executor step -->
26
+ * </mefdev-executor-page>
27
+ * <mefdev-executor-page
28
+ * [title]="'Description of situation 2'"
29
+ * [isActive]="mainExecutor.activePageInd === 1"
30
+ * [isCompleted]="mainExecutor.activePageInd >= 1">
31
+ * <!-- Content of the second executor step -->
32
+ * </mefdev-executor-page>
33
+ * <mefdev-executor-page
34
+ * [title]="'Description of situation 3'"
35
+ * [isActive]="mainExecutor.activePageInd === 2"
36
+ * [isCompleted]="mainExecutor.activePageInd >= 2">
37
+ * <!-- Content of the third executor step -->
38
+ * </mefdev-executor-page>
39
+ *
40
+ * <ng-template #footer>
41
+ * <!-- Content for the executor footer -->
42
+ * <ng-template>
43
+ *
44
+ * </mefdev-step-executor>
45
+ *
46
+ *```
47
+ * <example-url>https://mef.dev/ui_kit_demo/view/utils/main_executor</example-url>
48
+ */
5
49
  export class StepExecutorComponent {
6
50
  renderer;
51
+ changeDetectorRef;
52
+ /**
53
+ * Mandatory input parameter that specifies the type of the step-by-step wizard.
54
+ * It can have three options: regular, modal, right.
55
+ *
56
+ * @usageNotes
57
+ * ```
58
+ * <mefdev-step-executor #mainExecutor [view]="'regular'"></mefdev-step-executor>
59
+ * ```
60
+ */
7
61
  view;
62
+ /**
63
+ * An optional input parameter that specifies whether to show your executor.
64
+ * Usually used when you have a slideup or right executor view
65
+ *
66
+ * @usageNotes
67
+ * ```
68
+ * <mefdev-step-executor [show]="true" [view]="'right'" #mainExecutor></mefdev-step-executor>
69
+ * ```
70
+ */
71
+ show;
72
+ /**
73
+ * ViewChild reference to the host executor content.
74
+ */
8
75
  container;
76
+ /**
77
+ * Template for displaying the content of the executor title.
78
+ *
79
+ * @usageNotes
80
+ * ```
81
+ * <ng-template #title>
82
+ * <!-- Content for the executor title -->
83
+ * </ng-template>
84
+ * ```
85
+ */
9
86
  title;
87
+ /**
88
+ * Template for displaying the content of the executor description.
89
+ *
90
+ * @usageNotes
91
+ * ```
92
+ * <ng-template #description>
93
+ * <!-- Content for the executor description -->
94
+ * </ng-template>
95
+ * ```
96
+ */
10
97
  description;
98
+ /**
99
+ * Template for displaying the content of the executor footer.
100
+ *
101
+ * @usageNotes
102
+ * ```
103
+ * <ng-template #footer>
104
+ * <!-- Content for the executor footer -->
105
+ * </ng-template>
106
+ * ```
107
+ */
11
108
  footer;
109
+ /**
110
+ * The output parameter that emits the class of the active page - active step.
111
+ *
112
+ * @usageNotes
113
+ * ```
114
+ * <mefdev-step-executor #mainExecutor (onActivePageChange)="getActiveStep($event)"></mefdev-step-executor>
115
+ * ```
116
+ */
12
117
  onActivePageChange = new EventEmitter();
118
+ /**
119
+ * An output parameter that conveys the current state of the stepper in modal view
120
+ *
121
+ * @usageNotes
122
+ * ```
123
+ * <mefdev-step-executor [view]="'modal'" (modalStepExecutorStateChange)="getModalExecutorStateValue($event)" #modalExecutor></mefdev-step-executor>
124
+ * ```
125
+ */
126
+ modalStepExecutorStateChange = new EventEmitter();
127
+ /**
128
+ * An output parameter that conveys the current state of the stepper in right view
129
+ *
130
+ * @usageNotes
131
+ * ```
132
+ * <mefdev-step-executor [view]="'right'" (modalStepExecutorStateChange)="getModalExecutorStateValue($event)" #rightExecutor></mefdev-step-executor>
133
+ * ```
134
+ */
135
+ rightStepExecutorStateChange = new EventEmitter();
13
136
  _activePageInd = 0;
14
137
  pages = [];
15
- constructor(renderer) {
138
+ constructor(renderer, changeDetectorRef) {
16
139
  this.renderer = renderer;
140
+ this.changeDetectorRef = changeDetectorRef;
17
141
  }
18
142
  set activePageInd(activePageNumber) {
19
143
  this._activePageInd = activePageNumber;
@@ -32,18 +156,52 @@ export class StepExecutorComponent {
32
156
  return this.activePageInd == -1 ? null : this.pages[this.activePageInd];
33
157
  }
34
158
  ngAfterViewInit() {
35
- this.renderer.appendChild(this.container.nativeElement, this.activePage?.elRef.nativeElement);
159
+ this.renderer?.appendChild(this.container.nativeElement, this.activePage?.elRef.nativeElement);
36
160
  this.onActivePageChange.emit(this.pages.find((el) => el.isActive));
37
161
  }
162
+ /**
163
+ * A function that is allows to track the status of your executor in the modal view
164
+ */
165
+ modalStepExecutorVisibleChange(value) {
166
+ if (this.view === 'modal') {
167
+ this.show = value;
168
+ this.modalStepExecutorStateChange.emit(value);
169
+ }
170
+ }
171
+ /**
172
+ * A function that is allows to track the status of your executor in the right view
173
+ */
174
+ rightStepExecutorVisibleChange(value) {
175
+ if (this.view === 'right') {
176
+ this.show = value;
177
+ this.rightStepExecutorStateChange.emit(value);
178
+ }
179
+ }
180
+ /**
181
+ * A function that allows you to close your executor
182
+ */
183
+ closeExecutor() {
184
+ this.show = false;
185
+ this.changeDetectorRef.detectChanges();
186
+ }
187
+ /**
188
+ * Check whether there is a next step of the executor. If we are at the last step - disable the 'next' button
189
+ */
38
190
  nextBtnIsDisabled() {
39
191
  return this._activePageInd === this.pages.length - 1;
40
192
  }
193
+ /**
194
+ * Check whether there is a next step of the executor. If we are at the last step - disable the 'next' button
195
+ */
41
196
  prev() {
42
197
  const newPageInd = this.activePageInd - 1;
43
198
  if (newPageInd >= 0) {
44
199
  this.activePageInd = newPageInd;
45
200
  }
46
201
  }
202
+ /**
203
+ * Go back to the previous step
204
+ */
47
205
  cancel() {
48
206
  this.activePageInd = 0;
49
207
  const newPageInd = this.activePageInd - 1;
@@ -51,21 +209,33 @@ export class StepExecutorComponent {
51
209
  this.activePageInd = newPageInd;
52
210
  }
53
211
  }
212
+ /**
213
+ * Go to the next step
214
+ */
54
215
  next() {
55
216
  const newPageInd = this.activePageInd + 1;
56
217
  if (newPageInd < this.pages.length) {
57
218
  this.activePageInd = newPageInd;
58
219
  }
59
220
  }
221
+ /**
222
+ * Set a specific active page
223
+ */
60
224
  setActivePage(pageNumber) {
61
225
  pageNumber -= 1;
62
226
  if (pageNumber < this.pages.length && pageNumber >= 0) {
63
227
  this.activePageInd = pageNumber;
64
228
  }
65
229
  }
230
+ /**
231
+ * Add new page
232
+ */
66
233
  addPage(page) {
67
234
  this.pages.push(page);
68
235
  }
236
+ /**
237
+ * Delete a specific page
238
+ */
69
239
  removeSpecificPage(page) {
70
240
  const index = this.pages.indexOf(page);
71
241
  if (index !== -1) {
@@ -75,6 +245,9 @@ export class StepExecutorComponent {
75
245
  }
76
246
  }
77
247
  }
248
+ /**
249
+ * Delete a page by its index
250
+ */
78
251
  removePageByIndex(index) {
79
252
  if (index >= 0 && index < this.pages.length) {
80
253
  this.pages.splice(index, 1);
@@ -83,15 +256,17 @@ export class StepExecutorComponent {
83
256
  }
84
257
  }
85
258
  }
86
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: StepExecutorComponent, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
87
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: StepExecutorComponent, selector: "mefdev-step-executor", inputs: { view: "view" }, outputs: { onActivePageChange: "onActivePageChange" }, queries: [{ propertyName: "title", first: true, predicate: ["title"], descendants: true }, { propertyName: "description", first: true, predicate: ["description"], descendants: true }, { propertyName: "footer", first: true, predicate: ["footer"], descendants: true }], viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }], ngImport: i0, template: "<!--view == regular-->\r\n\r\n<div class=\"stepExecutorBlock\" *ngIf=\"view === 'regular'\">\r\n <header class=\"stepExecutorHeader\">\r\n <div class=\"stepExecutorHeaderText\">\r\n <h1 class=\"title\">\r\n <ng-container [ngTemplateOutlet]=\"title\"></ng-container>\r\n </h1>\r\n <p class=\"body-5\">\r\n <ng-container [ngTemplateOutlet]=\"description\"></ng-container>\r\n </p>\r\n </div>\r\n <div class=\"steps\">\r\n <mefdev-stage *ngFor=\"let page of pages; let pageIndex = index\"\r\n [isRightModal]=\"false\"\r\n [title]=\"page.title\"\r\n [currentExecutorStep]=\"pageIndex + 1\"\r\n [isCompleted]=\"page.isCompleted\">\r\n </mefdev-stage>\r\n </div>\r\n </header>\r\n\r\n <div *ngIf=\"activePage\" class=\"executorChangeContent\">\r\n <div #container></div>\r\n </div>\r\n\r\n <div class=\"footerButtons\">\r\n <ng-container [ngTemplateOutlet]=\"footer\"></ng-container>\r\n </div>\r\n</div>\r\n\r\n\r\n<!--view == modal-->\r\n\r\n<div class=\"modalStepExecutor\" *ngIf=\"view === 'modal'\">\r\n\r\n <header class=\"modalHeader\">\r\n <div class=\"headerModalText\">\r\n <div class=\"textAndCloseButton\">\r\n <h1 class=\"title\">\r\n <ng-container [ngTemplateOutlet]=\"title\"></ng-container>\r\n </h1>\r\n <p class=\"body-5\">\r\n <ng-container [ngTemplateOutlet]=\"description\"></ng-container>\r\n </p>\r\n </div>\r\n <article class=\"closeBtn\">\r\n <svg width=\"15\" height=\"15\" viewBox=\"0 0 15 15\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M6.26735 7.68135L0.610352 2.02435L2.02435 0.610352L7.68135 6.26735L13.3384 0.610352L14.7524 2.02435L9.09535 7.68135L14.7524 13.3384L13.3384 14.7524L7.68135 9.09535L2.02435 14.7524L0.610352 13.3384L6.26735 7.68135Z\" fill=\"#4D4D4D\"/>\r\n </svg>\r\n </article>\r\n </div>\r\n <div class=\"modalSteps\">\r\n <mefdev-stage *ngFor=\"let page of pages; let pageIndex = index\"\r\n [isRightModal]=\"false\"\r\n [title]=\"page.title\"\r\n [currentExecutorStep]=\"pageIndex + 1\"\r\n [isCompleted]=\"page.isCompleted\">\r\n </mefdev-stage>\r\n </div>\r\n </header>\r\n\r\n <main *ngIf=\"activePage\" class=\"modalExecutorMainContent\">\r\n <div #container></div>\r\n </main>\r\n\r\n <footer class=\"modalFooter\">\r\n <ng-container [ngTemplateOutlet]=\"footer\"></ng-container>\r\n </footer>\r\n\r\n</div>\r\n\r\n<!--view == right-->\r\n\r\n<div class=\"rightExecutorBlock\" *ngIf=\"view === 'right'\">\r\n\r\n <header class=\"rightExecutorHeader\">\r\n <div class=\"rightExecutorTextAndCloseButton\">\r\n <span class=\"body-1\">\r\n <ng-container [ngTemplateOutlet]=\"title\"></ng-container>\r\n </span>\r\n <p class=\"body-5\">\r\n <ng-container [ngTemplateOutlet]=\"description\"></ng-container>\r\n </p>\r\n </div>\r\n <div class=\"closeButton\">\r\n <svg width=\"17\" height=\"17\" viewBox=\"0 0 17 17\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M16.0566 1.59971L14.6566 0.199707L8.05664 6.79971L1.45664 0.199707L0.0566406 1.59971L6.65664 8.19971L0.0566406 14.7997L1.45664 16.1997L8.05664 9.59971L14.6566 16.1997L16.0566 14.7997L9.45664 8.19971L16.0566 1.59971Z\" fill=\"#525252\"/>\r\n </svg>\r\n </div>\r\n </header>\r\n\r\n <div class=\"line\">\r\n <svg width=\"363\" height=\"1\" viewBox=\"0 0 363 1\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <line x1=\"-4.37114e-08\" y1=\"0.5\" x2=\"362.674\" y2=\"0.499968\" stroke=\"#4D4D4D\"/>\r\n </svg>\r\n </div>\r\n\r\n <div class=\"contentExecutor\">\r\n <div class=\"rightChangeContent\">\r\n <div *ngIf=\"activePage\" class=\"executorChangeContent\">\r\n <div #container></div>\r\n </div>\r\n <div class=\"rightSteps\">\r\n <mefdev-stage *ngFor=\"let page of pages; let pageIndex = index\"\r\n [isRightModal]=\"true\"\r\n [title]=\"page.title\"\r\n [currentExecutorStep]=\"pageIndex + 1\"\r\n [isCompleted]=\"page.isCompleted\">\r\n </mefdev-stage>\r\n </div>\r\n </div>\r\n\r\n <footer class=\"rightFooter\">\r\n <ng-container [ngTemplateOutlet]=\"footer\"></ng-container>\r\n </footer>\r\n </div>\r\n\r\n</div>\r\n", styles: [".stepExecutorBlock{height:auto;display:flex;flex-direction:column}.stepExecutorBlock .stepExecutorHeader{padding:49px 71px 40px 154px;display:flex;flex-direction:column;row-gap:23px}.stepExecutorBlock .stepExecutorHeader .stepExecutorHeaderText{display:flex;flex-direction:column;row-gap:8px}.stepExecutorBlock .stepExecutorHeader .stepExecutorHeaderText .title{color:#4d4d4d}.stepExecutorBlock .stepExecutorHeader .stepExecutorHeaderText p{display:block;width:234px;height:auto;color:#4d4d4d}.stepExecutorBlock .stepExecutorHeader .steps{display:flex;flex-wrap:wrap;column-gap:23px;row-gap:17px}.stepExecutorBlock .executorChangeContent{padding:46px 31px 57px 154px;width:100%;min-height:359px;height:auto;background-color:#f3f3f3}.stepExecutorBlock .footerButtons{margin-top:46px;padding-left:154px;padding-bottom:74px}.modalStepExecutor{max-width:898px;width:auto;box-shadow:0 0 10px #0000001c}.modalStepExecutor .modalHeader{height:auto;padding:36px 25px 32px 33px;display:flex;flex-direction:column;row-gap:13px}.modalStepExecutor .modalHeader .headerModalText{display:flex;justify-content:space-between}.modalStepExecutor .modalHeader .headerModalText .textAndCloseButton{display:flex;column-gap:23px}.modalStepExecutor .modalHeader .headerModalText .closeBtn{width:33px;height:33px;border-radius:5px;background-color:#f3f3f3;display:flex;justify-content:center;align-items:center;cursor:pointer}.modalStepExecutor .modalHeader .headerModalText .closeBtn:hover svg path{fill:#cf0106}.modalStepExecutor .modalHeader .headerModalText p{width:235px;color:#4d4d4d}.modalStepExecutor .modalHeader .modalSteps{max-width:724px;width:auto;display:flex;flex-wrap:wrap;column-gap:23px}.modalStepExecutor .modalExecutorMainContent{padding:29px 45px 31px 33px;background-color:#f3f3f3;min-height:345px;height:auto}.modalStepExecutor .modalFooter{padding:32px 0 35px 33px;display:flex;column-gap:17px}.rightExecutorBlock{padding:25px 19px 43px;max-width:401px;height:auto;background-color:#f3f3f3;border-radius:5px}.rightExecutorBlock .rightExecutorHeader{display:flex;justify-content:space-between}.rightExecutorBlock .rightExecutorHeader .rightExecutorTextAndCloseButton{display:flex;flex-direction:column;row-gap:8px}.rightExecutorBlock .rightExecutorHeader .rightExecutorTextAndCloseButton span,.rightExecutorBlock .rightExecutorHeader .rightExecutorTextAndCloseButton p{height:auto;width:225px}.rightExecutorBlock .rightExecutorHeader .rightExecutorTextAndCloseButton p{color:#4d4d4d}.rightExecutorBlock .rightExecutorHeader .closeButton svg{cursor:pointer}.rightExecutorBlock .rightExecutorHeader .closeButton svg:hover path{fill:#cf0106}.rightExecutorBlock .line{margin-top:9px;margin-bottom:37px}.rightExecutorBlock .contentExecutor .rightChangeContent{display:flex;justify-content:space-between}.rightExecutorBlock .contentExecutor .rightChangeContent .executorChangeContent{max-width:291px;height:auto}.rightExecutorBlock .contentExecutor .rightChangeContent .rightSteps{display:flex;flex-direction:column;row-gap:22px}.rightExecutorBlock .rightFooter{margin-top:67px;display:flex;column-gap:16px}@media screen and (max-width: 768px){.stepExecutorBlock .stepExecutorHeader{padding:21px 41px}.stepExecutorBlock .executorChangeContent{padding:46px 31px 57px 54px}.stepExecutorBlock .footerButtons{padding:41px}.modalStepExecutor .modalHeader .headerModalText .textAndCloseButton{display:flex;flex-direction:column}.modalStepExecutor .modalHeader .modalSteps{row-gap:21px}}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.StageComponent, selector: "mefdev-stage", inputs: ["currentExecutorStep", "isRightModal", "isCompleted", "title"] }] });
259
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: StepExecutorComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
260
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: StepExecutorComponent, selector: "mefdev-step-executor", inputs: { view: "view", show: "show" }, outputs: { onActivePageChange: "onActivePageChange", modalStepExecutorStateChange: "modalStepExecutorStateChange", rightStepExecutorStateChange: "rightStepExecutorStateChange" }, queries: [{ propertyName: "title", first: true, predicate: ["title"], descendants: true }, { propertyName: "description", first: true, predicate: ["description"], descendants: true }, { propertyName: "footer", first: true, predicate: ["footer"], descendants: true }], viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }], ngImport: i0, template: "<!--view == regular-->\r\n\r\n<div class=\"stepExecutorBlock\" *ngIf=\"view === 'regular'\">\r\n <header class=\"stepExecutorHeader\">\r\n <div class=\"stepExecutorHeaderText\">\r\n <h1 class=\"title\">\r\n <ng-container [ngTemplateOutlet]=\"title\"></ng-container>\r\n </h1>\r\n <p class=\"body-5\">\r\n <ng-container [ngTemplateOutlet]=\"description\"></ng-container>\r\n </p>\r\n </div>\r\n <div class=\"steps\">\r\n <mefdev-stage *ngFor=\"let page of pages; let pageIndex = index\"\r\n [isRightModal]=\"false\"\r\n [title]=\"page.title\"\r\n [currentExecutorStep]=\"pageIndex + 1\"\r\n [isCompleted]=\"page.isCompleted\">\r\n </mefdev-stage>\r\n </div>\r\n </header>\r\n\r\n <div *ngIf=\"activePage\" class=\"executorChangeContent\">\r\n <div #container></div>\r\n </div>\r\n\r\n <div class=\"footerButtons\">\r\n <ng-container [ngTemplateOutlet]=\"footer\"></ng-container>\r\n </div>\r\n</div>\r\n\r\n\r\n<!--view == modal-->\r\n\r\n<mefdev-slide-up-modal [show]=\"show\" (visibleChange)=\"modalStepExecutorVisibleChange($event)\" *ngIf=\"view === 'modal'\">\r\n <div class=\"modalStepExecutor\">\r\n\r\n <header class=\"modalHeader\">\r\n <div class=\"headerModalText\">\r\n <div class=\"textAndCloseButton\">\r\n <h1 class=\"title\">\r\n <ng-container [ngTemplateOutlet]=\"title\"></ng-container>\r\n </h1>\r\n <p class=\"body-5\">\r\n <ng-container [ngTemplateOutlet]=\"description\"></ng-container>\r\n </p>\r\n </div>\r\n <article class=\"closeBtn\" (click)=\"closeExecutor()\">\r\n <svg width=\"15\" height=\"15\" viewBox=\"0 0 15 15\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M6.26735 7.68135L0.610352 2.02435L2.02435 0.610352L7.68135 6.26735L13.3384 0.610352L14.7524 2.02435L9.09535 7.68135L14.7524 13.3384L13.3384 14.7524L7.68135 9.09535L2.02435 14.7524L0.610352 13.3384L6.26735 7.68135Z\"\r\n fill=\"#4D4D4D\"/>\r\n </svg>\r\n </article>\r\n </div>\r\n <div class=\"modalSteps\">\r\n <mefdev-stage *ngFor=\"let page of pages; let pageIndex = index\"\r\n [isRightModal]=\"false\"\r\n [title]=\"page.title\"\r\n [currentExecutorStep]=\"pageIndex + 1\"\r\n [isCompleted]=\"page.isCompleted\">\r\n </mefdev-stage>\r\n </div>\r\n </header>\r\n\r\n <main *ngIf=\"activePage\" class=\"modalExecutorMainContent\">\r\n <div #container></div>\r\n </main>\r\n\r\n <footer class=\"modalFooter\">\r\n <ng-container [ngTemplateOutlet]=\"footer\"></ng-container>\r\n </footer>\r\n\r\n </div>\r\n</mefdev-slide-up-modal>\r\n\r\n<!--view == right-->\r\n\r\n<mefdev-slide-right-modal [show]=\"show\" (visibleChange)=\"rightStepExecutorVisibleChange($event)\" *ngIf=\"view === 'right'\">\r\n <div class=\"rightExecutorBlock\">\r\n\r\n <header class=\"rightExecutorHeader\">\r\n <div class=\"rightExecutorTextAndCloseButton\">\r\n <span class=\"body-1\">\r\n <ng-container [ngTemplateOutlet]=\"title\"></ng-container>\r\n </span>\r\n <p class=\"body-5\">\r\n <ng-container [ngTemplateOutlet]=\"description\"></ng-container>\r\n </p>\r\n </div>\r\n <div class=\"closeButton\" (click)=\"closeExecutor()\">\r\n <svg width=\"17\" height=\"17\" viewBox=\"0 0 17 17\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M16.0566 1.59971L14.6566 0.199707L8.05664 6.79971L1.45664 0.199707L0.0566406 1.59971L6.65664 8.19971L0.0566406 14.7997L1.45664 16.1997L8.05664 9.59971L14.6566 16.1997L16.0566 14.7997L9.45664 8.19971L16.0566 1.59971Z\"\r\n fill=\"#525252\"/>\r\n </svg>\r\n </div>\r\n </header>\r\n\r\n <div class=\"line\">\r\n <svg width=\"100%\" height=\"1\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect width=\"100%\" height=\"1\" fill=\"#4D4D4D\"></rect>\r\n </svg>\r\n </div>\r\n\r\n <div class=\"contentExecutor\">\r\n <div class=\"rightChangeContent\">\r\n <div *ngIf=\"activePage\" class=\"executorChangeContent\">\r\n <div #container></div>\r\n </div>\r\n <div class=\"rightSteps\">\r\n <mefdev-stage *ngFor=\"let page of pages; let pageIndex = index\"\r\n [isRightModal]=\"true\"\r\n [title]=\"page.title\"\r\n [currentExecutorStep]=\"pageIndex + 1\"\r\n [isCompleted]=\"page.isCompleted\">\r\n </mefdev-stage>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <footer class=\"rightFooter\">\r\n <ng-container [ngTemplateOutlet]=\"footer\"></ng-container>\r\n </footer>\r\n\r\n </div>\r\n</mefdev-slide-right-modal>\r\n", styles: [".stepExecutorBlock{height:auto;display:flex;flex-direction:column}.stepExecutorBlock .stepExecutorHeader{padding:49px 71px 40px 154px;display:flex;flex-direction:column;row-gap:23px}.stepExecutorBlock .stepExecutorHeader .stepExecutorHeaderText{display:flex;flex-direction:column;row-gap:8px}.stepExecutorBlock .stepExecutorHeader .stepExecutorHeaderText .title{color:#4d4d4d}.stepExecutorBlock .stepExecutorHeader .stepExecutorHeaderText p{display:block;width:234px;height:auto;color:#4d4d4d}.stepExecutorBlock .stepExecutorHeader .steps{display:flex;flex-wrap:wrap;column-gap:23px;row-gap:17px}.stepExecutorBlock .executorChangeContent{padding:46px 31px 57px 154px;width:100%;min-height:359px;height:auto;background-color:#f3f3f3}.stepExecutorBlock .footerButtons{margin-top:46px;padding-left:154px;padding-bottom:74px}.modalStepExecutor{min-width:898px;max-width:898px;width:auto;box-shadow:0 0 10px #0000001c}.modalStepExecutor .modalHeader{height:auto;padding:36px 25px 32px 33px;display:flex;flex-direction:column;row-gap:13px}.modalStepExecutor .modalHeader .headerModalText{display:flex;justify-content:space-between}.modalStepExecutor .modalHeader .headerModalText .textAndCloseButton{display:flex;column-gap:23px}.modalStepExecutor .modalHeader .headerModalText .closeBtn{width:33px;height:33px;border-radius:5px;background-color:#f3f3f3;display:flex;justify-content:center;align-items:center;cursor:pointer}.modalStepExecutor .modalHeader .headerModalText .closeBtn:hover svg path{fill:#cf0106}.modalStepExecutor .modalHeader .headerModalText p{width:235px;color:#4d4d4d}.modalStepExecutor .modalHeader .modalSteps{max-width:724px;width:auto;display:flex;flex-wrap:wrap;column-gap:23px}.modalStepExecutor .modalExecutorMainContent{padding:29px 45px 31px 33px;background-color:#f3f3f3;min-height:345px;height:auto}.modalStepExecutor .modalFooter{padding:32px 0 35px 33px;display:flex;column-gap:17px}.rightExecutorBlock{position:relative;padding:25px 19px 43px;width:100%;min-height:100vh;height:auto;background-color:#f3f3f3;border-radius:5px}.rightExecutorBlock .rightExecutorHeader{display:flex;justify-content:space-between}.rightExecutorBlock .rightExecutorHeader .rightExecutorTextAndCloseButton{display:flex;flex-direction:column;row-gap:8px}.rightExecutorBlock .rightExecutorHeader .rightExecutorTextAndCloseButton span,.rightExecutorBlock .rightExecutorHeader .rightExecutorTextAndCloseButton p{height:auto;width:225px}.rightExecutorBlock .rightExecutorHeader .rightExecutorTextAndCloseButton p{color:#4d4d4d}.rightExecutorBlock .rightExecutorHeader .closeButton svg{cursor:pointer}.rightExecutorBlock .rightExecutorHeader .closeButton svg:hover path{fill:#cf0106}.rightExecutorBlock .line{margin-top:9px;margin-bottom:37px}.rightExecutorBlock .contentExecutor .rightChangeContent{display:flex;justify-content:space-between;margin-bottom:25px}.rightExecutorBlock .contentExecutor .rightChangeContent .executorChangeContent{width:100%;max-width:75%;height:auto}.rightExecutorBlock .contentExecutor .rightChangeContent .rightSteps{display:flex;flex-direction:column;row-gap:22px}.rightExecutorBlock .rightFooter{margin-top:15px;position:absolute;bottom:15px;right:15px;display:flex;column-gap:16px}@media screen and (max-width: 768px){.stepExecutorBlock .stepExecutorHeader{padding:21px 41px}.stepExecutorBlock .executorChangeContent{padding:46px 31px 57px 54px}.stepExecutorBlock .footerButtons{padding:41px}.modalStepExecutor .modalHeader .headerModalText .textAndCloseButton{display:flex;flex-direction:column}.modalStepExecutor .modalHeader .modalSteps{row-gap:21px}}\n"], dependencies: [{ kind: "component", type: i1.SlideUpComponent, selector: "mefdev-slide-up-modal", inputs: ["show"], outputs: ["visibleChange"] }, { kind: "component", type: i2.SlideRightComponent, selector: "mefdev-slide-right-modal", inputs: ["size", "show"], outputs: ["visibleChange"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.StageComponent, selector: "mefdev-stage", inputs: ["currentExecutorStep", "isRightModal", "isCompleted", "title"] }] });
88
261
  }
89
262
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: StepExecutorComponent, decorators: [{
90
263
  type: Component,
91
- args: [{ selector: 'mefdev-step-executor', template: "<!--view == regular-->\r\n\r\n<div class=\"stepExecutorBlock\" *ngIf=\"view === 'regular'\">\r\n <header class=\"stepExecutorHeader\">\r\n <div class=\"stepExecutorHeaderText\">\r\n <h1 class=\"title\">\r\n <ng-container [ngTemplateOutlet]=\"title\"></ng-container>\r\n </h1>\r\n <p class=\"body-5\">\r\n <ng-container [ngTemplateOutlet]=\"description\"></ng-container>\r\n </p>\r\n </div>\r\n <div class=\"steps\">\r\n <mefdev-stage *ngFor=\"let page of pages; let pageIndex = index\"\r\n [isRightModal]=\"false\"\r\n [title]=\"page.title\"\r\n [currentExecutorStep]=\"pageIndex + 1\"\r\n [isCompleted]=\"page.isCompleted\">\r\n </mefdev-stage>\r\n </div>\r\n </header>\r\n\r\n <div *ngIf=\"activePage\" class=\"executorChangeContent\">\r\n <div #container></div>\r\n </div>\r\n\r\n <div class=\"footerButtons\">\r\n <ng-container [ngTemplateOutlet]=\"footer\"></ng-container>\r\n </div>\r\n</div>\r\n\r\n\r\n<!--view == modal-->\r\n\r\n<div class=\"modalStepExecutor\" *ngIf=\"view === 'modal'\">\r\n\r\n <header class=\"modalHeader\">\r\n <div class=\"headerModalText\">\r\n <div class=\"textAndCloseButton\">\r\n <h1 class=\"title\">\r\n <ng-container [ngTemplateOutlet]=\"title\"></ng-container>\r\n </h1>\r\n <p class=\"body-5\">\r\n <ng-container [ngTemplateOutlet]=\"description\"></ng-container>\r\n </p>\r\n </div>\r\n <article class=\"closeBtn\">\r\n <svg width=\"15\" height=\"15\" viewBox=\"0 0 15 15\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M6.26735 7.68135L0.610352 2.02435L2.02435 0.610352L7.68135 6.26735L13.3384 0.610352L14.7524 2.02435L9.09535 7.68135L14.7524 13.3384L13.3384 14.7524L7.68135 9.09535L2.02435 14.7524L0.610352 13.3384L6.26735 7.68135Z\" fill=\"#4D4D4D\"/>\r\n </svg>\r\n </article>\r\n </div>\r\n <div class=\"modalSteps\">\r\n <mefdev-stage *ngFor=\"let page of pages; let pageIndex = index\"\r\n [isRightModal]=\"false\"\r\n [title]=\"page.title\"\r\n [currentExecutorStep]=\"pageIndex + 1\"\r\n [isCompleted]=\"page.isCompleted\">\r\n </mefdev-stage>\r\n </div>\r\n </header>\r\n\r\n <main *ngIf=\"activePage\" class=\"modalExecutorMainContent\">\r\n <div #container></div>\r\n </main>\r\n\r\n <footer class=\"modalFooter\">\r\n <ng-container [ngTemplateOutlet]=\"footer\"></ng-container>\r\n </footer>\r\n\r\n</div>\r\n\r\n<!--view == right-->\r\n\r\n<div class=\"rightExecutorBlock\" *ngIf=\"view === 'right'\">\r\n\r\n <header class=\"rightExecutorHeader\">\r\n <div class=\"rightExecutorTextAndCloseButton\">\r\n <span class=\"body-1\">\r\n <ng-container [ngTemplateOutlet]=\"title\"></ng-container>\r\n </span>\r\n <p class=\"body-5\">\r\n <ng-container [ngTemplateOutlet]=\"description\"></ng-container>\r\n </p>\r\n </div>\r\n <div class=\"closeButton\">\r\n <svg width=\"17\" height=\"17\" viewBox=\"0 0 17 17\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M16.0566 1.59971L14.6566 0.199707L8.05664 6.79971L1.45664 0.199707L0.0566406 1.59971L6.65664 8.19971L0.0566406 14.7997L1.45664 16.1997L8.05664 9.59971L14.6566 16.1997L16.0566 14.7997L9.45664 8.19971L16.0566 1.59971Z\" fill=\"#525252\"/>\r\n </svg>\r\n </div>\r\n </header>\r\n\r\n <div class=\"line\">\r\n <svg width=\"363\" height=\"1\" viewBox=\"0 0 363 1\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <line x1=\"-4.37114e-08\" y1=\"0.5\" x2=\"362.674\" y2=\"0.499968\" stroke=\"#4D4D4D\"/>\r\n </svg>\r\n </div>\r\n\r\n <div class=\"contentExecutor\">\r\n <div class=\"rightChangeContent\">\r\n <div *ngIf=\"activePage\" class=\"executorChangeContent\">\r\n <div #container></div>\r\n </div>\r\n <div class=\"rightSteps\">\r\n <mefdev-stage *ngFor=\"let page of pages; let pageIndex = index\"\r\n [isRightModal]=\"true\"\r\n [title]=\"page.title\"\r\n [currentExecutorStep]=\"pageIndex + 1\"\r\n [isCompleted]=\"page.isCompleted\">\r\n </mefdev-stage>\r\n </div>\r\n </div>\r\n\r\n <footer class=\"rightFooter\">\r\n <ng-container [ngTemplateOutlet]=\"footer\"></ng-container>\r\n </footer>\r\n </div>\r\n\r\n</div>\r\n", styles: [".stepExecutorBlock{height:auto;display:flex;flex-direction:column}.stepExecutorBlock .stepExecutorHeader{padding:49px 71px 40px 154px;display:flex;flex-direction:column;row-gap:23px}.stepExecutorBlock .stepExecutorHeader .stepExecutorHeaderText{display:flex;flex-direction:column;row-gap:8px}.stepExecutorBlock .stepExecutorHeader .stepExecutorHeaderText .title{color:#4d4d4d}.stepExecutorBlock .stepExecutorHeader .stepExecutorHeaderText p{display:block;width:234px;height:auto;color:#4d4d4d}.stepExecutorBlock .stepExecutorHeader .steps{display:flex;flex-wrap:wrap;column-gap:23px;row-gap:17px}.stepExecutorBlock .executorChangeContent{padding:46px 31px 57px 154px;width:100%;min-height:359px;height:auto;background-color:#f3f3f3}.stepExecutorBlock .footerButtons{margin-top:46px;padding-left:154px;padding-bottom:74px}.modalStepExecutor{max-width:898px;width:auto;box-shadow:0 0 10px #0000001c}.modalStepExecutor .modalHeader{height:auto;padding:36px 25px 32px 33px;display:flex;flex-direction:column;row-gap:13px}.modalStepExecutor .modalHeader .headerModalText{display:flex;justify-content:space-between}.modalStepExecutor .modalHeader .headerModalText .textAndCloseButton{display:flex;column-gap:23px}.modalStepExecutor .modalHeader .headerModalText .closeBtn{width:33px;height:33px;border-radius:5px;background-color:#f3f3f3;display:flex;justify-content:center;align-items:center;cursor:pointer}.modalStepExecutor .modalHeader .headerModalText .closeBtn:hover svg path{fill:#cf0106}.modalStepExecutor .modalHeader .headerModalText p{width:235px;color:#4d4d4d}.modalStepExecutor .modalHeader .modalSteps{max-width:724px;width:auto;display:flex;flex-wrap:wrap;column-gap:23px}.modalStepExecutor .modalExecutorMainContent{padding:29px 45px 31px 33px;background-color:#f3f3f3;min-height:345px;height:auto}.modalStepExecutor .modalFooter{padding:32px 0 35px 33px;display:flex;column-gap:17px}.rightExecutorBlock{padding:25px 19px 43px;max-width:401px;height:auto;background-color:#f3f3f3;border-radius:5px}.rightExecutorBlock .rightExecutorHeader{display:flex;justify-content:space-between}.rightExecutorBlock .rightExecutorHeader .rightExecutorTextAndCloseButton{display:flex;flex-direction:column;row-gap:8px}.rightExecutorBlock .rightExecutorHeader .rightExecutorTextAndCloseButton span,.rightExecutorBlock .rightExecutorHeader .rightExecutorTextAndCloseButton p{height:auto;width:225px}.rightExecutorBlock .rightExecutorHeader .rightExecutorTextAndCloseButton p{color:#4d4d4d}.rightExecutorBlock .rightExecutorHeader .closeButton svg{cursor:pointer}.rightExecutorBlock .rightExecutorHeader .closeButton svg:hover path{fill:#cf0106}.rightExecutorBlock .line{margin-top:9px;margin-bottom:37px}.rightExecutorBlock .contentExecutor .rightChangeContent{display:flex;justify-content:space-between}.rightExecutorBlock .contentExecutor .rightChangeContent .executorChangeContent{max-width:291px;height:auto}.rightExecutorBlock .contentExecutor .rightChangeContent .rightSteps{display:flex;flex-direction:column;row-gap:22px}.rightExecutorBlock .rightFooter{margin-top:67px;display:flex;column-gap:16px}@media screen and (max-width: 768px){.stepExecutorBlock .stepExecutorHeader{padding:21px 41px}.stepExecutorBlock .executorChangeContent{padding:46px 31px 57px 54px}.stepExecutorBlock .footerButtons{padding:41px}.modalStepExecutor .modalHeader .headerModalText .textAndCloseButton{display:flex;flex-direction:column}.modalStepExecutor .modalHeader .modalSteps{row-gap:21px}}\n"] }]
92
- }], ctorParameters: function () { return [{ type: i0.Renderer2 }]; }, propDecorators: { view: [{
264
+ args: [{ selector: 'mefdev-step-executor', template: "<!--view == regular-->\r\n\r\n<div class=\"stepExecutorBlock\" *ngIf=\"view === 'regular'\">\r\n <header class=\"stepExecutorHeader\">\r\n <div class=\"stepExecutorHeaderText\">\r\n <h1 class=\"title\">\r\n <ng-container [ngTemplateOutlet]=\"title\"></ng-container>\r\n </h1>\r\n <p class=\"body-5\">\r\n <ng-container [ngTemplateOutlet]=\"description\"></ng-container>\r\n </p>\r\n </div>\r\n <div class=\"steps\">\r\n <mefdev-stage *ngFor=\"let page of pages; let pageIndex = index\"\r\n [isRightModal]=\"false\"\r\n [title]=\"page.title\"\r\n [currentExecutorStep]=\"pageIndex + 1\"\r\n [isCompleted]=\"page.isCompleted\">\r\n </mefdev-stage>\r\n </div>\r\n </header>\r\n\r\n <div *ngIf=\"activePage\" class=\"executorChangeContent\">\r\n <div #container></div>\r\n </div>\r\n\r\n <div class=\"footerButtons\">\r\n <ng-container [ngTemplateOutlet]=\"footer\"></ng-container>\r\n </div>\r\n</div>\r\n\r\n\r\n<!--view == modal-->\r\n\r\n<mefdev-slide-up-modal [show]=\"show\" (visibleChange)=\"modalStepExecutorVisibleChange($event)\" *ngIf=\"view === 'modal'\">\r\n <div class=\"modalStepExecutor\">\r\n\r\n <header class=\"modalHeader\">\r\n <div class=\"headerModalText\">\r\n <div class=\"textAndCloseButton\">\r\n <h1 class=\"title\">\r\n <ng-container [ngTemplateOutlet]=\"title\"></ng-container>\r\n </h1>\r\n <p class=\"body-5\">\r\n <ng-container [ngTemplateOutlet]=\"description\"></ng-container>\r\n </p>\r\n </div>\r\n <article class=\"closeBtn\" (click)=\"closeExecutor()\">\r\n <svg width=\"15\" height=\"15\" viewBox=\"0 0 15 15\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M6.26735 7.68135L0.610352 2.02435L2.02435 0.610352L7.68135 6.26735L13.3384 0.610352L14.7524 2.02435L9.09535 7.68135L14.7524 13.3384L13.3384 14.7524L7.68135 9.09535L2.02435 14.7524L0.610352 13.3384L6.26735 7.68135Z\"\r\n fill=\"#4D4D4D\"/>\r\n </svg>\r\n </article>\r\n </div>\r\n <div class=\"modalSteps\">\r\n <mefdev-stage *ngFor=\"let page of pages; let pageIndex = index\"\r\n [isRightModal]=\"false\"\r\n [title]=\"page.title\"\r\n [currentExecutorStep]=\"pageIndex + 1\"\r\n [isCompleted]=\"page.isCompleted\">\r\n </mefdev-stage>\r\n </div>\r\n </header>\r\n\r\n <main *ngIf=\"activePage\" class=\"modalExecutorMainContent\">\r\n <div #container></div>\r\n </main>\r\n\r\n <footer class=\"modalFooter\">\r\n <ng-container [ngTemplateOutlet]=\"footer\"></ng-container>\r\n </footer>\r\n\r\n </div>\r\n</mefdev-slide-up-modal>\r\n\r\n<!--view == right-->\r\n\r\n<mefdev-slide-right-modal [show]=\"show\" (visibleChange)=\"rightStepExecutorVisibleChange($event)\" *ngIf=\"view === 'right'\">\r\n <div class=\"rightExecutorBlock\">\r\n\r\n <header class=\"rightExecutorHeader\">\r\n <div class=\"rightExecutorTextAndCloseButton\">\r\n <span class=\"body-1\">\r\n <ng-container [ngTemplateOutlet]=\"title\"></ng-container>\r\n </span>\r\n <p class=\"body-5\">\r\n <ng-container [ngTemplateOutlet]=\"description\"></ng-container>\r\n </p>\r\n </div>\r\n <div class=\"closeButton\" (click)=\"closeExecutor()\">\r\n <svg width=\"17\" height=\"17\" viewBox=\"0 0 17 17\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M16.0566 1.59971L14.6566 0.199707L8.05664 6.79971L1.45664 0.199707L0.0566406 1.59971L6.65664 8.19971L0.0566406 14.7997L1.45664 16.1997L8.05664 9.59971L14.6566 16.1997L16.0566 14.7997L9.45664 8.19971L16.0566 1.59971Z\"\r\n fill=\"#525252\"/>\r\n </svg>\r\n </div>\r\n </header>\r\n\r\n <div class=\"line\">\r\n <svg width=\"100%\" height=\"1\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect width=\"100%\" height=\"1\" fill=\"#4D4D4D\"></rect>\r\n </svg>\r\n </div>\r\n\r\n <div class=\"contentExecutor\">\r\n <div class=\"rightChangeContent\">\r\n <div *ngIf=\"activePage\" class=\"executorChangeContent\">\r\n <div #container></div>\r\n </div>\r\n <div class=\"rightSteps\">\r\n <mefdev-stage *ngFor=\"let page of pages; let pageIndex = index\"\r\n [isRightModal]=\"true\"\r\n [title]=\"page.title\"\r\n [currentExecutorStep]=\"pageIndex + 1\"\r\n [isCompleted]=\"page.isCompleted\">\r\n </mefdev-stage>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <footer class=\"rightFooter\">\r\n <ng-container [ngTemplateOutlet]=\"footer\"></ng-container>\r\n </footer>\r\n\r\n </div>\r\n</mefdev-slide-right-modal>\r\n", styles: [".stepExecutorBlock{height:auto;display:flex;flex-direction:column}.stepExecutorBlock .stepExecutorHeader{padding:49px 71px 40px 154px;display:flex;flex-direction:column;row-gap:23px}.stepExecutorBlock .stepExecutorHeader .stepExecutorHeaderText{display:flex;flex-direction:column;row-gap:8px}.stepExecutorBlock .stepExecutorHeader .stepExecutorHeaderText .title{color:#4d4d4d}.stepExecutorBlock .stepExecutorHeader .stepExecutorHeaderText p{display:block;width:234px;height:auto;color:#4d4d4d}.stepExecutorBlock .stepExecutorHeader .steps{display:flex;flex-wrap:wrap;column-gap:23px;row-gap:17px}.stepExecutorBlock .executorChangeContent{padding:46px 31px 57px 154px;width:100%;min-height:359px;height:auto;background-color:#f3f3f3}.stepExecutorBlock .footerButtons{margin-top:46px;padding-left:154px;padding-bottom:74px}.modalStepExecutor{min-width:898px;max-width:898px;width:auto;box-shadow:0 0 10px #0000001c}.modalStepExecutor .modalHeader{height:auto;padding:36px 25px 32px 33px;display:flex;flex-direction:column;row-gap:13px}.modalStepExecutor .modalHeader .headerModalText{display:flex;justify-content:space-between}.modalStepExecutor .modalHeader .headerModalText .textAndCloseButton{display:flex;column-gap:23px}.modalStepExecutor .modalHeader .headerModalText .closeBtn{width:33px;height:33px;border-radius:5px;background-color:#f3f3f3;display:flex;justify-content:center;align-items:center;cursor:pointer}.modalStepExecutor .modalHeader .headerModalText .closeBtn:hover svg path{fill:#cf0106}.modalStepExecutor .modalHeader .headerModalText p{width:235px;color:#4d4d4d}.modalStepExecutor .modalHeader .modalSteps{max-width:724px;width:auto;display:flex;flex-wrap:wrap;column-gap:23px}.modalStepExecutor .modalExecutorMainContent{padding:29px 45px 31px 33px;background-color:#f3f3f3;min-height:345px;height:auto}.modalStepExecutor .modalFooter{padding:32px 0 35px 33px;display:flex;column-gap:17px}.rightExecutorBlock{position:relative;padding:25px 19px 43px;width:100%;min-height:100vh;height:auto;background-color:#f3f3f3;border-radius:5px}.rightExecutorBlock .rightExecutorHeader{display:flex;justify-content:space-between}.rightExecutorBlock .rightExecutorHeader .rightExecutorTextAndCloseButton{display:flex;flex-direction:column;row-gap:8px}.rightExecutorBlock .rightExecutorHeader .rightExecutorTextAndCloseButton span,.rightExecutorBlock .rightExecutorHeader .rightExecutorTextAndCloseButton p{height:auto;width:225px}.rightExecutorBlock .rightExecutorHeader .rightExecutorTextAndCloseButton p{color:#4d4d4d}.rightExecutorBlock .rightExecutorHeader .closeButton svg{cursor:pointer}.rightExecutorBlock .rightExecutorHeader .closeButton svg:hover path{fill:#cf0106}.rightExecutorBlock .line{margin-top:9px;margin-bottom:37px}.rightExecutorBlock .contentExecutor .rightChangeContent{display:flex;justify-content:space-between;margin-bottom:25px}.rightExecutorBlock .contentExecutor .rightChangeContent .executorChangeContent{width:100%;max-width:75%;height:auto}.rightExecutorBlock .contentExecutor .rightChangeContent .rightSteps{display:flex;flex-direction:column;row-gap:22px}.rightExecutorBlock .rightFooter{margin-top:15px;position:absolute;bottom:15px;right:15px;display:flex;column-gap:16px}@media screen and (max-width: 768px){.stepExecutorBlock .stepExecutorHeader{padding:21px 41px}.stepExecutorBlock .executorChangeContent{padding:46px 31px 57px 54px}.stepExecutorBlock .footerButtons{padding:41px}.modalStepExecutor .modalHeader .headerModalText .textAndCloseButton{display:flex;flex-direction:column}.modalStepExecutor .modalHeader .modalSteps{row-gap:21px}}\n"] }]
265
+ }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { view: [{
93
266
  type: Input,
94
267
  args: [{ required: true }]
268
+ }], show: [{
269
+ type: Input
95
270
  }], container: [{
96
271
  type: ViewChild,
97
272
  args: ['container']
@@ -106,5 +281,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
106
281
  args: ['footer']
107
282
  }], onActivePageChange: [{
108
283
  type: Output
284
+ }], modalStepExecutorStateChange: [{
285
+ type: Output
286
+ }], rightStepExecutorStateChange: [{
287
+ type: Output
109
288
  }] } });
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC1leGVjdXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1raXQtbGliL3NyYy9saWIvbWFya3VwLWtpdC9leGVjdXRvcnMvc3RlcC1leGVjdXRvci9zdGVwLWV4ZWN1dG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWtpdC1saWIvc3JjL2xpYi9tYXJrdXAta2l0L2V4ZWN1dG9ycy9zdGVwLWV4ZWN1dG9yL3N0ZXAtZXhlY3V0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNZLFNBQVMsRUFDeEIsWUFBWSxFQUNaLFlBQVksRUFBRSxLQUFLLEVBQ25CLE1BQU0sRUFDTyxTQUFTLEVBQ3pCLE1BQU0sZUFBZSxDQUFDOzs7O0FBU3ZCLE1BQU0sT0FBTyxxQkFBcUI7SUFZVjtJQVZLLElBQUksQ0FBUztJQUNkLFNBQVMsQ0FBMEI7SUFDcEMsS0FBSyxDQUFvQjtJQUNuQixXQUFXLENBQW9CO0lBQ3BDLE1BQU0sQ0FBb0I7SUFDeEMsa0JBQWtCLEdBQThDLElBQUksWUFBWSxFQUErQixDQUFDO0lBRW5ILGNBQWMsR0FBVyxDQUFDLENBQUM7SUFDM0IsS0FBSyxHQUFrQyxFQUFFLENBQUM7SUFFakQsWUFBb0IsUUFBbUI7UUFBbkIsYUFBUSxHQUFSLFFBQVEsQ0FBVztJQUFHLENBQUM7SUFFM0MsSUFBVyxhQUFhLENBQUMsZ0JBQXdCO1FBQzdDLElBQUksQ0FBQyxjQUFjLEdBQUcsZ0JBQWdCLENBQUM7UUFDdkMsSUFBSSxnQkFBZ0IsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUN6QyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLFNBQVMsSUFBSSxFQUFFLEVBQUU7Z0JBQzlDLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLFNB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LENBQUMsSUFBSSxFQUFFLENBQUM7YUFDZjtTQUNKO0lBQ0wsQ0FBQztJQUVELGlCQUFpQixDQUFDLEtBQWE7UUFDM0IsSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUN6QyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDNUIsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLGFBQWEsRUFBRTtnQkFDOUIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO2FBQ2Y7U0FDSjtJQUVMLENBQUM7dUdBN0ZRLHFCQUFxQjsyRkFBckIscUJBQXFCLGlnQkNmbEMsK2hKQXVIQTs7MkZEeEdhLHFCQUFxQjtrQkFOakMsU0FBUzsrQkFDSSxzQkFBc0I7Z0dBT1AsSUFBSTtzQkFBNUIsS0FBSzt1QkFBQyxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUM7Z0JBQ0MsU0FBUztzQkFBaEMsU0FBUzt1QkFBQyxXQUFXO2dCQUNDLEtBQUs7c0JBQTNCLFlBQVk7dUJBQUMsT0FBTztnQkFDUSxXQUFXO3NCQUF2QyxZQUFZO3VCQUFDLGFBQWE7Z0JBQ0gsTUFBTTtzQkFBN0IsWUFBWTt1QkFBQyxRQUFRO2dCQUNaLGtCQUFrQjtzQkFBM0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsXHJcbiAgICBDb250ZW50Q2hpbGQsIEVsZW1lbnRSZWYsXHJcbiAgICBFdmVudEVtaXR0ZXIsIElucHV0LFxyXG4gICAgT3V0cHV0LCBSZW5kZXJlcjIsXHJcbiAgICBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1lZmRldkV4ZWN1dG9yUGFnZUNvbXBvbmVudCB9IGZyb20gJy4uL21lZmRldi1leGVjdXRvci1wYWdlL21lZmRldi1leGVjdXRvci1wYWdlLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnbWVmZGV2LXN0ZXAtZXhlY3V0b3InLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3N0ZXAtZXhlY3V0b3IuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vc3RlcC1leGVjdXRvci5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgU3RlcEV4ZWN1dG9yQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XHJcblxyXG4gICAgQElucHV0KHtyZXF1aXJlZDogdHJ1ZX0pIHZpZXc6IHN0cmluZztcclxuICAgIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicpIGNvbnRhaW5lcjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XHJcbiAgICBAQ29udGVudENoaWxkKCd0aXRsZScpIHRpdGxlOiBUZW1wbGF0ZVJlZjx2b2lkPjtcclxuICAgIEBDb250ZW50Q2hpbGQoJ2Rlc2NyaXB0aW9uJykgZGVzY3JpcHRpb246IFRlbXBsYXRlUmVmPHZvaWQ+O1xyXG4gICAgQENvbnRlbnRDaGlsZCgnZm9vdGVyJykgZm9vdGVyOiBUZW1wbGF0ZVJlZjx2b2lkPjtcclxuICAgIEBPdXRwdXQoKSBvbkFjdGl2ZVBhZ2VDaGFuZ2U6IEV2ZW50RW1pdHRlcjxNZWZkZXZFeGVjdXRvclBhZ2VDb21wb25lbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxNZWZkZXZFeGVjdXRvclBhZ2VDb21wb25lbnQ+KCk7XHJcblxyXG4gICAgcHVibGljIF9hY3RpdmVQYWdlSW5kOiBudW1iZXIgPSAwO1xyXG4gICAgcHVibGljIHBhZ2VzOiBNZWZkZXZFeGVjdXRvclBhZ2VDb21wb25lbnRbXSA9IFtdO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMikge31cclxuXHJcbiAgICBwdWJsaWMgc2V0IGFjdGl2ZVBhZ2VJbmQoYWN0aXZlUGFnZU51bWJlcjogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5fYWN0aXZlUGFnZUluZCA9IGFjdGl2ZVBhZ2VOdW1iZXI7XHJcbiAgICAgICAgaWYgKGFjdGl2ZVBhZ2VOdW1iZXIgPj0gMCAmJiB0aGlzLmNvbnRhaW5lcikge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudC5pbm5lckhUTUwgIT0gJycpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MID0gJyc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LCB0aGlzLmFjdGl2ZVBhZ2U/LmVsUmVmLm5hdGl2ZUVsZW1lbnQpO1xyXG4gICAgICAgICAgICB0aGlzLm9uQWN0aXZlUGFnZUNoYW5nZS5lbWl0KHRoaXMucGFnZXMuZmluZCgoZWw6IE1lZmRldkV4ZWN1dG9yUGFnZUNvbXBvbmVudCkgPT4gZWwuaXNBY3RpdmUpKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBhY3RpdmVQYWdlSW5kKCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FjdGl2ZVBhZ2VJbmQ7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGFjdGl2ZVBhZ2UoKTogTWVmZGV2RXhlY3V0b3JQYWdlQ29tcG9uZW50IHwgbnVsbCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYWN0aXZlUGFnZUluZCA9PSAtMSA/IG51bGwgOiB0aGlzLnBhZ2VzW3RoaXMuYWN0aXZlUGFnZUluZF07XHJcbiAgICB9XHJcblxyXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudCwgdGhpcy5hY3RpdmVQYWdlPy5lbFJlZi5uYXRpdmVFbGVtZW50KTtcclxuICAgICAgICB0aGlzLm9uQWN0aXZlUGFnZUNoYW5nZS5lbWl0KHRoaXMucGFnZXMuZmluZCgoZWw6IE1lZmRldkV4ZWN1dG9yUGFnZUNvbXBvbmVudCkgPT4gZWwuaXNBY3RpdmUpKTtcclxuICAgIH1cclxuXHJcbiAgICBuZXh0QnRuSXNEaXNhYmxlZCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fYWN0aXZlUGFnZUluZCA9PT0gdGhpcy5wYWdlcy5sZW5ndGggLSAxO1xyXG4gICAgfVxyXG5cclxuICAgIHByZXYoKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgbmV3UGFnZUluZCA9IHRoaXMuYWN0aXZlUGFnZUluZCAtIDE7XHJcbiAgICAgICAgaWYgKG5ld1BhZ2VJbmQgPj0gMCkge1xyXG4gICAgICAgICAgICB0aGlzLmFjdGl2ZVBhZ2VJbmQgPSBuZXdQYWdlSW5kO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjYW5jZWwoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5hY3RpdmVQYWdlSW5kID0gMDtcclxuICAgICAgICBjb25zdCBuZXdQYWdlSW5kID0gdGhpcy5hY3RpdmVQYWdlSW5kIC0gMTtcclxuICAgICAgICBpZiAobmV3UGFnZUluZCA+PSAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlUGFnZUluZCA9IG5ld1BhZ2VJbmQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG5leHQoKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgbmV3UGFnZUluZCA9IHRoaXMuYWN0aXZlUGFnZUluZCArIDE7XHJcbiAgICAgICAgaWYgKG5ld1BhZ2VJbmQgPCB0aGlzLnBhZ2VzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICB0aGlzLmFjdGl2ZVBhZ2VJbmQgPSBuZXdQYWdlSW5kO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzZXRBY3RpdmVQYWdlKHBhZ2VOdW1iZXI6IG51bWJlcik6IHZvaWQge1xyXG4gICAgICAgIHBhZ2VOdW1iZXIgLT0gMTtcclxuICAgICAgICBpZiAocGFnZU51bWJlciA8IHRoaXMucGFnZXMubGVuZ3RoICYmIHBhZ2VOdW1iZXIgPj0gMCkge1xyXG4gICAgICAgICAgICB0aGlzLmFjdGl2ZVBhZ2VJbmQgPSBwYWdlTnVtYmVyO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBhZGRQYWdlKHBhZ2U6IE1lZmRldkV4ZWN1dG9yUGFnZUNvbXBvbmVudCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMucGFnZXMucHVzaChwYWdlKTtcclxuICAgIH1cclxuXHJcbiAgICByZW1vdmVTcGVjaWZpY1BhZ2UocGFnZTogTWVmZGV2RXhlY3V0b3JQYWdlQ29tcG9uZW50KTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgaW5kZXg6IG51bWJlciA9IHRoaXMucGFnZXMuaW5kZXhPZihwYWdlKTtcclxuICAgICAgICBpZiAoaW5kZXggIT09IC0xKSB7XHJcbiAgICAgICAgICAgIHRoaXMucGFnZXMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICAgICAgaWYgKGluZGV4ID09PSB0aGlzLmFjdGl2ZVBhZ2VJbmQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucHJldigpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJlbW92ZVBhZ2VCeUluZGV4KGluZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuICAgICAgICBpZiAoaW5kZXggPj0gMCAmJiBpbmRleCA8IHRoaXMucGFnZXMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHRoaXMucGFnZXMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICAgICAgaWYgKGluZGV4ID09PSB0aGlzLmFjdGl2ZVBhZ2VJbmQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucHJldigpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcblxyXG59XHJcbiIsIjwhLS12aWV3ID09IHJlZ3VsYXItLT5cclxuXHJcbjxkaXYgY2xhc3M9XCJzdGVwRXhlY3V0b3JCbG9ja1wiICpuZ0lmPVwidmlldyA9PT0gJ3JlZ3VsYXInXCI+XHJcbiAgPGhlYWRlciBjbGFzcz1cInN0ZXBFeGVjdXRvckhlYWRlclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInN0ZXBFeGVjdXRvckhlYWRlclRleHRcIj5cclxuICAgICAgPGgxIGNsYXNzPVwidGl0bGVcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRpdGxlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvaDE+XHJcbiAgICAgIDxwIGNsYXNzPVwiYm9keS01XCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJkZXNjcmlwdGlvblwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L3A+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJzdGVwc1wiPlxyXG4gICAgICA8bWVmZGV2LXN0YWdlICpuZ0Zvcj1cImxldCBwYWdlIG9mIHBhZ2VzOyBsZXQgcGFnZUluZGV4ID0gaW5kZXhcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtpc1JpZ2h0TW9kYWxdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJwYWdlLnRpdGxlXCJcclxuICAgICAgICAgICAgICAgICAgICBbY3VycmVudEV4ZWN1dG9yU3RlcF09XCJwYWdlSW5kZXggKyAxXCJcclxuICAgICAgICAgICAgICAgICAgICBbaXNDb21wbGV0ZWRdPVwicGFnZS5pc0NvbXBsZXRlZFwiPlxyXG4gICAgICA8L21lZmRldi1zdGFnZT5cclxuICAgIDwvZGl2PlxyXG4gIDwvaGVhZGVyPlxyXG5cclxuICA8ZGl2ICpuZ0lmPVwiYWN0aXZlUGFnZVwiIGNsYXNzPVwiZXhlY3V0b3JDaGFuZ2VDb250ZW50XCI+XHJcbiAgICA8ZGl2ICNjb250YWluZXI+PC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJmb290ZXJCdXR0b25zXCI+XHJcbiAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImZvb3RlclwiPjwvbmctY29udGFpbmVyPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcblxyXG48IS0tdmlldyA9PSBtb2RhbC0tPlxyXG5cclxuPGRpdiBjbGFzcz1cIm1vZGFsU3RlcEV4ZWN1dG9yXCIgKm5nSWY9XCJ2aWV3ID09PSAnbW9kYWwnXCI+XHJcblxyXG4gIDxoZWFkZXIgY2xhc3M9XCJtb2RhbEhlYWRlclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImhlYWRlck1vZGFsVGV4dFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidGV4dEFuZENsb3NlQnV0dG9uXCI+XHJcbiAgICAgICAgPGgxIGNsYXNzPVwidGl0bGVcIj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwidGl0bGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2gxPlxyXG4gICAgICAgIDxwIGNsYXNzPVwiYm9keS01XCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImRlc2NyaXB0aW9uXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9wPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGFydGljbGUgY2xhc3M9XCJjbG9zZUJ0blwiPlxyXG4gICAgICAgIDxzdmcgd2lkdGg9XCIxNVwiIGhlaWdodD1cIjE1XCIgdmlld0JveD1cIjAgMCAxNSAxNVwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgPHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGNsaXAtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTYuMjY3MzUgNy42ODEzNUwwLjYxMDM1MiAyLjAyNDM1TDIuMDI0MzUgMC42MTAzNTJMNy42ODEzNSA2LjI2NzM1TDEzLjMzODQgMC42MTAzNTJMMTQuNzUyNCAyLjAyNDM1TDkuMDk1MzUgNy42ODEzNUwxNC43NTI0IDEzLjMzODRMMTMuMzM4NCAxNC43NTI0TDcuNjgxMzUgOS4wOTUzNUwyLjAyNDM1IDE0Ljc1MjRMMC42MTAzNTIgMTMuMzM4NEw2LjI2NzM1IDcuNjgxMzVaXCIgZmlsbD1cIiM0RDRENERcIi8+XHJcbiAgICAgICAgPC9zdmc+XHJcbiAgICAgIDwvYXJ0aWNsZT5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsU3RlcHNcIj5cclxuICAgICAgPG1lZmRldi1zdGFnZSAqbmdGb3I9XCJsZXQgcGFnZSBvZiBwYWdlczsgbGV0IHBhZ2VJbmRleCA9IGluZGV4XCJcclxuICAgICAgICAgICAgICAgICAgICBbaXNSaWdodE1vZGFsXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwicGFnZS50aXRsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2N1cnJlbnRFeGVjdXRvclN0ZXBdPVwicGFnZUluZGV4ICsgMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2lzQ29tcGxldGVkXT1cInBhZ2UuaXNDb21wbGV0ZWRcIj5cclxuICAgICAgPC9tZWZkZXYtc3RhZ2U+XHJcbiAgICA8L2Rpdj5cclxuICA8L2hlYWRlcj5cclxuXHJcbiAgPG1haW4gKm5nSWY9XCJhY3RpdmVQYWdlXCIgY2xhc3M9XCJtb2RhbEV4ZWN1dG9yTWFpbkNvbnRlbnRcIj5cclxuICAgIDxkaXYgI2NvbnRhaW5lcj48L2Rpdj5cclxuICA8L21haW4+XHJcblxyXG4gIDxmb290ZXIgY2xhc3M9XCJtb2RhbEZvb3RlclwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJmb290ZXJcIj48L25nLWNvbnRhaW5lcj5cclxuICA8L2Zvb3Rlcj5cclxuXHJcbjwvZGl2PlxyXG5cclxuPCEtLXZpZXcgPT0gcmlnaHQtLT5cclxuXHJcbjxkaXYgY2xhc3M9XCJyaWdodEV4ZWN1dG9yQmxvY2tcIiAqbmdJZj1cInZpZXcgPT09ICdyaWdodCdcIj5cclxuXHJcbiAgPGhlYWRlciBjbGFzcz1cInJpZ2h0RXhlY3V0b3JIZWFkZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJyaWdodEV4ZWN1dG9yVGV4dEFuZENsb3NlQnV0dG9uXCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwiYm9keS0xXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJ0aXRsZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L3NwYW4+XHJcbiAgICAgIDxwIGNsYXNzPVwiYm9keS01XCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJkZXNjcmlwdGlvblwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L3A+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjbG9zZUJ1dHRvblwiPlxyXG4gICAgICA8c3ZnIHdpZHRoPVwiMTdcIiBoZWlnaHQ9XCIxN1wiIHZpZXdCb3g9XCIwIDAgMTcgMTdcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMTYuMDU2NiAxLjU5OTcxTDE0LjY1NjYgMC4xOTk3MDdMOC4wNTY2NCA2Ljc5OTcxTDEuNDU2NjQgMC4xOTk3MDdMMC4wNTY2NDA2IDEuNTk5NzFMNi42NTY2NCA4LjE5OTcxTDAuMDU2NjQwNiAxNC43OTk3TDEuNDU2NjQgMTYuMTk5N0w4LjA1NjY0IDkuNTk5NzFMMTQuNjU2NiAxNi4xOTk3TDE2LjA1NjYgMTQuNzk5N0w5LjQ1NjY0IDguMTk5NzFMMTYuMDU2NiAxLjU5OTcxWlwiIGZpbGw9XCIjNTI1MjUyXCIvPlxyXG4gICAgICA8L3N2Zz5cclxuICAgIDwvZGl2PlxyXG4gIDwvaGVhZGVyPlxyXG5cclxuICA8ZGl2IGNsYXNzPVwibGluZVwiPlxyXG4gICAgPHN2ZyB3aWR0aD1cIjM2M1wiIGhlaWdodD1cIjFcIiB2aWV3Qm94PVwiMCAwIDM2MyAxXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgIDxsaW5lIHgxPVwiLTQuMzcxMTRlLTA4XCIgeTE9XCIwLjVcIiB4Mj1cIjM2Mi42NzRcIiB5Mj1cIjAuNDk5OTY4XCIgc3Ryb2tlPVwiIzRENEQ0RFwiLz5cclxuICAgIDwvc3ZnPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiY29udGVudEV4ZWN1dG9yXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicmlnaHRDaGFuZ2VDb250ZW50XCI+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJhY3RpdmVQYWdlXCIgY2xhc3M9XCJleGVjdXRvckNoYW5nZUNvbnRlbnRcIj5cclxuICAgICAgICA8ZGl2ICNjb250YWluZXI+PC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicmlnaHRTdGVwc1wiPlxyXG4gICAgICAgIDxtZWZkZXYtc3RhZ2UgKm5nRm9yPVwibGV0IHBhZ2Ugb2YgcGFnZXM7IGxldCBwYWdlSW5kZXggPSBpbmRleFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbaXNSaWdodE1vZGFsXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cInBhZ2UudGl0bGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW2N1cnJlbnRFeGVjdXRvclN0ZXBdPVwicGFnZUluZGV4ICsgMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbaXNDb21wbGV0ZWRdPVwicGFnZS5pc0NvbXBsZXRlZFwiPlxyXG4gICAgICAgIDwvbWVmZGV2LXN0YWdlPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxmb290ZXIgY2xhc3M9XCJyaWdodEZvb3RlclwiPlxyXG4gICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImZvb3RlclwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC9mb290ZXI+XHJcbiAgPC9kaXY+XHJcblxyXG48L2Rpdj5cclxuIl19
289
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC1leGVjdXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1raXQtbGliL3NyYy9saWIvbWFya3VwLWtpdC9leGVjdXRvcnMvc3RlcC1leGVjdXRvci9zdGVwLWV4ZWN1dG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWtpdC1saWIvc3JjL2xpYi9tYXJrdXAta2l0L2V4ZWN1dG9ycy9zdGVwLWV4ZWN1dG9yL3N0ZXAtZXhlY3V0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUM2QixTQUFTLEVBQzNDLFlBQVksRUFBYyxZQUFZLEVBQ3RDLEtBQUssRUFBRSxNQUFNLEVBQ0EsU0FBUyxFQUN2QixNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBR3ZCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXlDRztBQVFILE1BQU0sT0FBTyxxQkFBcUI7SUFvR1Y7SUFBNkI7SUFsR2pEOzs7Ozs7OztPQVFHO0lBQ3NCLElBQUksQ0FBUztJQUd0Qzs7Ozs7Ozs7T0FRRztJQUNNLElBQUksQ0FBVTtJQUd2Qjs7T0FFRztJQUNxQixTQUFTLENBQTBCO0lBRTNEOzs7Ozs7Ozs7T0FTRztJQUNvQixLQUFLLENBQW9CO0lBRWhEOzs7Ozs7Ozs7T0FTRztJQUMwQixXQUFXLENBQW9CO0lBRTVEOzs7Ozs7Ozs7T0FTRztJQUNxQixNQUFNLENBQW9CO0lBRWxEOzs7Ozs7O09BT0c7SUFDTyxrQkFBa0IsR0FBOEMsSUFBSSxZQUFZLEVBQStCLENBQUM7SUFFMUg7Ozs7Ozs7T0FPRztJQUNPLDRCQUE0QixHQUEwQixJQUFJLFlBQVksRUFBVyxDQUFDO0lBRTVGOzs7Ozs7O09BT0c7SUFDTyw0QkFBNEIsR0FBMEIsSUFBSSxZQUFZLEVBQVcsQ0FBQztJQUVyRixjQUFjLEdBQVcs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QUFDLElBQUksRUFBRSxDQUFDO2FBQ2Y7U0FDSjtJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNILGlCQUFpQixDQUFDLEtBQWE7UUFDM0IsSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUN6QyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDNUIsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLGFBQWEsRUFBRTtnQkFDOUIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO2FBQ2Y7U0FDSjtJQUNMLENBQUM7dUdBek9RLHFCQUFxQjsyRkFBckIscUJBQXFCLDJvQkN6RGxDLHMvSkErSEE7OzJGRHRFYSxxQkFBcUI7a0JBTmpDLFNBQVM7K0JBQ0ksc0JBQXNCO2dJQWdCUCxJQUFJO3NCQUE1QixLQUFLO3VCQUFDLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQztnQkFZZCxJQUFJO3NCQUFaLEtBQUs7Z0JBTWtCLFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVztnQkFZQyxLQUFLO3NCQUEzQixZQUFZO3VCQUFDLE9BQU87Z0JBWVEsV0FBVztzQkFBdkMsWUFBWTt1QkFBQyxhQUFhO2dCQVlILE1BQU07c0JBQTdCLFlBQVk7dUJBQUMsUUFBUTtnQkFVWixrQkFBa0I7c0JBQTNCLE1BQU07Z0JBVUcsNEJBQTRCO3NCQUFyQyxNQUFNO2dCQVVHLDRCQUE0QjtzQkFBckMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCxcclxuICBDb250ZW50Q2hpbGQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCwgT3V0cHV0LCBSZW5kZXJlcjIsXHJcbiAgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNZWZkZXZFeGVjdXRvclBhZ2VDb21wb25lbnQgfSBmcm9tICcuLi9tZWZkZXYtZXhlY3V0b3ItcGFnZS9tZWZkZXYtZXhlY3V0b3ItcGFnZS5jb21wb25lbnQnO1xyXG5cclxuLyoqXHJcbiAqIFdyYXBwZXIgY29tcG9uZW50IHRoYXQgcmVwcmVzZW50cyBhIHNwZWNpZmljIGVuY2Fwc3VsYXRlZCBleGVjdXRvci5cclxuICpcclxuICogRXhhbXBsZSBvZiB1c2FnZTpcclxuICpgYGBcclxuICogPG1lZmRldi1zdGVwLWV4ZWN1dG9yICNtYWluRXhlY3V0b3IgW3ZpZXddPVwiJ3JlZ3VsYXInXCI+XHJcbiAqXHJcbiAqICA8bmctdGVtcGxhdGUgI3RpdGxlPlxyXG4gKiAgICA8IS0tIENvbnRlbnQgZm9yIHRoZSBleGVjdXRvciB0aXRsZSAtLT5cclxuICogIDwvbmctdGVtcGxhdGU+XHJcbiAqICA8bmctdGVtcGxhdGUgI2Rlc2NyaXB0aW9uPlxyXG4gKiAgICA8IS0tIENvbnRlbnQgZm9yIHRoZSBleGVjdXRvciBkZXNjcmlwdGlvbiAtLT5cclxuICogIDwvbmctdGVtcGxhdGU+XHJcbiAqXHJcbiAqICA8bWVmZGV2LWV4ZWN1dG9yLXBhZ2VcclxuICogICAgIFt0aXRsZV09XCInRGVzY3JpcHRpb24gb2Ygc2l0dWF0aW9uIDEnXCJcclxuICogICAgIFtpc0FjdGl2ZV09XCJtYWluRXhlY3V0b3IuYWN0aXZlUGFnZUluZCA9PT0gMFwiXHJcbiAqICAgICBbaXNDb21wbGV0ZWRdPVwibWFpbkV4ZWN1dG9yLmFjdGl2ZVBhZ2VJbmQgPj0gMFwiPlxyXG4gKiAgICAgIDwhLS0gQ29udGVudCBvZiB0aGUgZmlyc3QgZXhlY3V0b3Igc3RlcCAtLT5cclxuICogIDwvbWVmZGV2LWV4ZWN1dG9yLXBhZ2U+XHJcbiAqICA8bWVmZGV2LWV4ZWN1dG9yLXBhZ2VcclxuICogICAgW3RpdGxlXT1cIidEZXNjcmlwdGlvbiBvZiBzaXR1YXRpb24gMidcIlxyXG4gKiAgICBbaXNBY3RpdmVdPVwibWFpbkV4ZWN1dG9yLmFjdGl2ZVBhZ2VJbmQgPT09IDFcIlxyXG4gKiAgICBbaXNDb21wbGV0ZWRdPVwibWFpbkV4ZWN1dG9yLmFjdGl2ZVBhZ2VJbmQgPj0gMVwiPlxyXG4gKiAgICAgPCEtLSBDb250ZW50IG9mIHRoZSBzZWNvbmQgZXhlY3V0b3Igc3RlcCAtLT5cclxuICogIDwvbWVmZGV2LWV4ZWN1dG9yLXBhZ2U+XHJcbiAqICA8bWVmZGV2LWV4ZWN1dG9yLXBhZ2VcclxuICogICAgW3RpdGxlXT1cIidEZXNjcmlwdGlvbiBvZiBzaXR1YXRpb24gMydcIlxyXG4gKiAgICBbaXNBY3RpdmVdPVwibWFpbkV4ZWN1dG9yLmFjdGl2ZVBhZ2VJbmQgPT09IDJcIlxyXG4gKiAgICBbaXNDb21wbGV0ZWRdPVwibWFpbkV4ZWN1dG9yLmFjdGl2ZVBhZ2VJbmQgPj0gMlwiPlxyXG4gKiAgICAgIDwhLS0gQ29udGVudCBvZiB0aGUgdGhpcmQgZXhlY3V0b3Igc3RlcCAtLT5cclxuICogIDwvbWVmZGV2LWV4ZWN1dG9yLXBhZ2U+XHJcbiAqXHJcbiAqICA8bmctdGVtcGxhdGUgI2Zvb3Rlcj5cclxuICogICAgPCEtLSBDb250ZW50IGZvciB0aGUgZXhlY3V0b3IgZm9vdGVyIC0tPlxyXG4gKiAgPG5nLXRlbXBsYXRlPlxyXG4gKlxyXG4gKiA8L21lZmRldi1zdGVwLWV4ZWN1dG9yPlxyXG4gKlxyXG4gKmBgYFxyXG4gKiA8ZXhhbXBsZS11cmw+aHR0cHM6Ly9tZWYuZGV2L3VpX2tpdF9kZW1vL3ZpZXcvdXRpbHMvbWFpbl9leGVjdXRvcjwvZXhhbXBsZS11cmw+XHJcbiAqL1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ21lZmRldi1zdGVwLWV4ZWN1dG9yJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9zdGVwLWV4ZWN1dG9yLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3N0ZXAtZXhlY3V0b3IuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIFN0ZXBFeGVjdXRvckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogTWFuZGF0b3J5IGlucHV0IHBhcmFtZXRlciB0aGF0IHNwZWNpZmllcyB0aGUgdHlwZSBvZiB0aGUgc3RlcC1ieS1zdGVwIHdpemFyZC5cclxuICAgICAqIEl0IGNhbiBoYXZlIHRocmVlIG9wdGlvbnM6IHJlZ3VsYXIsIG1vZGFsLCByaWdodC5cclxuICAgICAqXHJcbiAgICAgKiBAdXNhZ2VOb3Rlc1xyXG4gICAgICogYGBgXHJcbiAgICAgKiAgPG1lZmRldi1zdGVwLWV4ZWN1dG9yICNtYWluRXhlY3V0b3IgW3ZpZXddPVwiJ3JlZ3VsYXInXCI+PC9tZWZkZXYtc3RlcC1leGVjdXRvcj5cclxuICAgICAqIGBgYFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoe3JlcXVpcmVkOiB0cnVlfSkgdmlldzogc3RyaW5nO1xyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIEFuIG9wdGlvbmFsIGlucHV0IHBhcmFtZXRlciB0aGF0IHNwZWNpZmllcyB3aGV0aGVyIHRvIHNob3cgeW91ciBleGVjdXRvci5cclxuICAgICAqIFVzdWFsbHkgdXNlZCB3aGVuIHlvdSBoYXZlIGEgc2xpZGV1cCBvciByaWdodCBleGVjdXRvciB2aWV3XHJcbiAgICAgKlxyXG4gICAgICogQHVzYWdlTm90ZXNcclxuICAgICAqIGBgYFxyXG4gICAgICogIDxtZWZkZXYtc3RlcC1leGVjdXRvciBbc2hvd109XCJ0cnVlXCIgW3ZpZXddPVwiJ3JpZ2h0J1wiICNtYWluRXhlY3V0b3I+PC9tZWZkZXYtc3RlcC1leGVjdXRvcj5cclxuICAgICAqIGBgYFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBzaG93OiBib29sZWFuO1xyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZpZXdDaGlsZCByZWZlcmVuY2UgdG8gdGhlIGhvc3QgZXhlY3V0b3IgY29udGVudC5cclxuICAgICAqL1xyXG4gICAgQFZpZXdDaGlsZCgnY29udGFpbmVyJykgY29udGFpbmVyOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRlbXBsYXRlIGZvciBkaXNwbGF5aW5nIHRoZSBjb250ZW50IG9mIHRoZSBleGVjdXRvciB0aXRsZS5cclxuICAgICAqXHJcbiAgICAgKiBAdXNhZ2VOb3Rlc1xyXG4gICAgICogYGBgXHJcbiAgICAgKiA8bmctdGVtcGxhdGUgI3RpdGxlPlxyXG4gICAgICogICA8IS0tIENvbnRlbnQgZm9yIHRoZSBleGVjdXRvciB0aXRsZSAtLT5cclxuICAgICAqIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgKiBgYGBcclxuICAgICAqL1xyXG4gICAgQENvbnRlbnRDaGlsZCgndGl0bGUnKSB0aXRsZTogVGVtcGxhdGVSZWY8dm9pZD47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUZW1wbGF0ZSBmb3IgZGlzcGxheWluZyB0aGUgY29udGVudCBvZiB0aGUgZXhlY3V0b3IgZGVzY3JpcHRpb24uXHJcbiAgICAgKlxyXG4gICAgICogQHVzYWdlTm90ZXNcclxuICAgICAqIGBgYFxyXG4gICAgICogPG5nLXRlbXBsYXRlICNkZXNjcmlwdGlvbj5cclxuICAgICAqICA8IS0tIENvbnRlbnQgZm9yIHRoZSBleGVjdXRvciBkZXNjcmlwdGlvbiAtLT5cclxuICAgICAqIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgKiBgYGBcclxuICAgICAqL1xyXG4gICAgQENvbnRlbnRDaGlsZCgnZGVzY3JpcHRpb24nKSBkZXNjcmlwdGlvbjogVGVtcGxhdGVSZWY8dm9pZD47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUZW1wbGF0ZSBmb3IgZGlzcGxheWluZyB0aGUgY29udGVudCBvZiB0aGUgZXhlY3V0b3IgZm9vdGVyLlxyXG4gICAgICpcclxuICAgICAqIEB1c2FnZU5vdGVzXHJcbiAgICAgKiBgYGBcclxuICAgICAqIDxuZy10ZW1wbGF0ZSAjZm9vdGVyPlxyXG4gICAgICogICAgPCEtLSBDb250ZW50IGZvciB0aGUgZXhlY3V0b3IgZm9vdGVyIC0tPlxyXG4gICAgICogPC9uZy10ZW1wbGF0ZT5cclxuICAgICAqIGBgYFxyXG4gICAgICovXHJcbiAgICBAQ29udGVudENoaWxkKCdmb290ZXInKSBmb290ZXI6IFRlbXBsYXRlUmVmPHZvaWQ+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIG91dHB1dCBwYXJhbWV0ZXIgdGhhdCBlbWl0cyB0aGUgY2xhc3Mgb2YgdGhlIGFjdGl2ZSBwYWdlIC0gYWN0aXZlIHN0ZXAuXHJcbiAgICAgKlxyXG4gICAgICogQHVzYWdlTm90ZXNcclxuICAgICAqIGBgYFxyXG4gICAgICogIDxtZWZkZXYtc3RlcC1leGVjdXRvciAjbWFpbkV4ZWN1dG9yIChvbkFjdGl2ZVBhZ2VDaGFuZ2UpPVwiZ2V0QWN0aXZlU3RlcCgkZXZlbnQpXCI+PC9tZWZkZXYtc3RlcC1leGVjdXRvcj5cclxuICAgICAqIGBgYFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgb25BY3RpdmVQYWdlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8TWVmZGV2RXhlY3V0b3JQYWdlQ29tcG9uZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8TWVmZGV2RXhlY3V0b3JQYWdlQ29tcG9uZW50PigpO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQW4gb3V0cHV0IHBhcmFtZXRlciB0aGF0IGNvbnZleXMgdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIHN0ZXBwZXIgaW4gbW9kYWwgdmlld1xyXG4gICAgICpcclxuICAgICAqIEB1c2FnZU5vdGVzXHJcbiAgICAgKiBgYGBcclxuICAgICAqIDxtZWZkZXYtc3RlcC1leGVjdXRvciBbdmlld109XCInbW9kYWwnXCIgKG1vZGFsU3RlcEV4ZWN1dG9yU3RhdGVDaGFuZ2UpPVwiZ2V0TW9kYWxFeGVjdXRvclN0YXRlVmFsdWUoJGV2ZW50KVwiICNtb2RhbEV4ZWN1dG9yPjwvbWVmZGV2LXN0ZXAtZXhlY3V0b3I+XHJcbiAgICAgKiBgYGBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIG1vZGFsU3RlcEV4ZWN1dG9yU3RhdGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEFuIG91dHB1dCBwYXJhbWV0ZXIgdGhhdCBjb252ZXlzIHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSBzdGVwcGVyIGluIHJpZ2h0IHZpZXdcclxuICAgICAqXHJcbiAgICAgKiBAdXNhZ2VOb3Rlc1xyXG4gICAgICogYGBgXHJcbiAgICAgKiA8bWVmZGV2LXN0ZXAtZXhlY3V0b3IgW3ZpZXddPVwiJ3JpZ2h0J1wiIChtb2RhbFN0ZXBFeGVjdXRvclN0YXRlQ2hhbmdlKT1cImdldE1vZGFsRXhlY3V0b3JTdGF0ZVZhbHVlKCRldmVudClcIiAjcmlnaHRFeGVjdXRvcj48L21lZmRldi1zdGVwLWV4ZWN1dG9yPlxyXG4gICAgICogYGBgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSByaWdodFN0ZXBFeGVjdXRvclN0YXRlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcblxyXG4gICAgcHVibGljIF9hY3RpdmVQYWdlSW5kOiBudW1iZXIgPSAwO1xyXG4gICAgcHVibGljIHBhZ2VzOiBNZWZkZXZFeGVjdXRvclBhZ2VDb21wb25lbnRbXSA9IFtdO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMiwgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XHJcblxyXG4gICAgcHVibGljIHNldCBhY3RpdmVQYWdlSW5kKGFjdGl2ZVBhZ2VOdW1iZXI6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMuX2FjdGl2ZVBhZ2VJbmQgPSBhY3RpdmVQYWdlTnVtYmVyO1xyXG4gICAgICAgIGlmIChhY3RpdmVQYWdlTnVtYmVyID49IDAgJiYgdGhpcy5jb250YWluZXIpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MICE9ICcnKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LmlubmVySFRNTCA9ICcnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudCwgdGhpcy5hY3RpdmVQYWdlPy5lbFJlZi5uYXRpdmVFbGVtZW50KTtcclxuICAgICAgICAgICAgdGhpcy5vbkFjdGl2ZVBhZ2VDaGFuZ2UuZW1pdCh0aGlzLnBhZ2VzLmZpbmQoKGVsOiBNZWZkZXZFeGVjdXRvclBhZ2VDb21wb25lbnQpID0+IGVsLmlzQWN0aXZlKSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgYWN0aXZlUGFnZUluZCgpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9hY3RpdmVQYWdlSW5kO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBhY3RpdmVQYWdlKCk6IE1lZmRldkV4ZWN1dG9yUGFnZUNvbXBvbmVudCB8IG51bGwge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmFjdGl2ZVBhZ2VJbmQgPT0gLTEgPyBudWxsIDogdGhpcy5wYWdlc1t0aGlzLmFjdGl2ZVBhZ2VJbmRdO1xyXG4gICAgfVxyXG5cclxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyPy5hcHBlbmRDaGlsZCh0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LCB0aGlzLmFjdGl2ZVBhZ2U/LmVsUmVmLm5hdGl2ZUVsZW1lbnQpO1xyXG4gICAgICAgIHRoaXMub25BY3RpdmVQYWdlQ2hhbmdlLmVtaXQodGhpcy5wYWdlcy5maW5kKChlbDogTWVmZGV2RXhlY3V0b3JQYWdlQ29tcG9uZW50KSA9PiBlbC5pc0FjdGl2ZSkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQSBmdW5jdGlvbiB0aGF0IGlzIGFsbG93cyB0byB0cmFjayB0aGUgc3RhdHVzIG9mIHlvdXIgZXhlY3V0b3IgaW4gdGhlIG1vZGFsIHZpZXdcclxuICAgICAqL1xyXG4gICAgbW9kYWxTdGVwRXhlY3V0b3JWaXNpYmxlQ2hhbmdlKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICAgICAgaWYgKHRoaXMudmlldyA9PT0gJ21vZGFsJykge1xyXG4gICAgICAgICAgdGhpcy5zaG93ID0gdmFsdWU7XHJcbiAgICAgICAgICB0aGlzLm1vZGFsU3RlcEV4ZWN1dG9yU3RhdGVDaGFuZ2UuZW1pdCh2YWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIEEgZnVuY3Rpb24gdGhhdCBpcyBhbGxvd3MgdG8gdHJhY2sgdGhlIHN0YXR1cyBvZiB5b3VyIGV4ZWN1dG9yIGluIHRoZSByaWdodCB2aWV3XHJcbiAgICAgKi9cclxuICAgIHJpZ2h0U3RlcEV4ZWN1dG9yVmlzaWJsZUNoYW5nZSh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgICBpZiAodGhpcy52aWV3ID09PSAncmlnaHQnKSB7XHJcbiAgICAgICAgdGhpcy5zaG93ID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5yaWdodFN0ZXBFeGVjdXRvclN0YXRlQ2hhbmdlLmVtaXQodmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBIGZ1bmN0aW9uIHRoYXQgYWxsb3dzIHlvdSB0byBjbG9zZSB5b3VyIGV4ZWN1dG9yXHJcbiAgICAgKi9cclxuICAgIGNsb3NlRXhlY3V0b3IoKSB7XHJcbiAgICAgIHRoaXMuc2hvdyA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENoZWNrIHdoZXRoZXIgdGhlcmUgaXMgYSBuZXh0IHN0ZXAgb2YgdGhlIGV4ZWN1dG9yLiBJZiB3ZSBhcmUgYXQgdGhlIGxhc3Qgc3RlcCAtIGRpc2FibGUgdGhlICduZXh0JyBidXR0b25cclxuICAgICAqL1xyXG4gICAgbmV4dEJ0bklzRGlzYWJsZWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FjdGl2ZVBhZ2VJbmQgPT09IHRoaXMucGFnZXMubGVuZ3RoIC0gMTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENoZWNrIHdoZXRoZXIgdGhlcmUgaXMgYSBuZXh0IHN0ZXAgb2YgdGhlIGV4ZWN1dG9yLiBJZiB3ZSBhcmUgYXQgdGhlIGxhc3Qgc3RlcCAtIGRpc2FibGUgdGhlICduZXh0JyBidXR0b25cclxuICAgICAqL1xyXG4gICAgcHJldigpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBuZXdQYWdlSW5kID0gdGhpcy5hY3RpdmVQYWdlSW5kIC0gMTtcclxuICAgICAgICBpZiAobmV3UGFnZUluZCA+PSAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlUGFnZUluZCA9IG5ld1BhZ2VJbmQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR28gYmFjayB0byB0aGUgcHJldmlvdXMgc3RlcFxyXG4gICAgICovXHJcbiAgICBjYW5jZWwoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5hY3RpdmVQYWdlSW5kID0gMDtcclxuICAgICAgICBjb25zdCBuZXdQYWdlSW5kID0gdGhpcy5hY3RpdmVQYWdlSW5kIC0gMTtcclxuICAgICAgICBpZiAobmV3UGFnZUluZCA+PSAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlUGFnZUluZCA9IG5ld1BhZ2VJbmQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR28gdG8gdGhlIG5leHQgc3RlcFxyXG4gICAgICovXHJcbiAgICBuZXh0KCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IG5ld1BhZ2VJbmQgPSB0aGlzLmFjdGl2ZVBhZ2VJbmQgKyAxO1xyXG4gICAgICAgIGlmIChuZXdQYWdlSW5kIDwgdGhpcy5wYWdlcy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgdGhpcy5hY3RpdmVQYWdlSW5kID0gbmV3UGFnZUluZDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXQgYSBzcGVjaWZpYyBhY3RpdmUgcGFnZVxyXG4gICAgICovXHJcbiAgICBzZXRBY3RpdmVQYWdlKHBhZ2VOdW1iZXI6IG51bWJlcik6IHZvaWQge1xyXG4gICAgICAgIHBhZ2VOdW1iZXIgLT0gMTtcclxuICAgICAgICBpZiAocGFnZU51bWJlciA8IHRoaXMucGFnZXMubGVuZ3RoICYmIHBhZ2VOdW1iZXIgPj0gMCkge1xyXG4gICAgICAgICAgICB0aGlzLmFjdGl2ZVBhZ2VJbmQgPSBwYWdlTnVtYmVyO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEFkZCBuZXcgcGFnZVxyXG4gICAgICovXHJcbiAgICBhZGRQYWdlKHBhZ2U6IE1lZmRldkV4ZWN1dG9yUGFnZUNvbXBvbmVudCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMucGFnZXMucHVzaChwYWdlKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIERlbGV0ZSBhIHNwZWNpZmljIHBhZ2VcclxuICAgICAqL1xyXG4gICAgcmVtb3ZlU3BlY2lmaWNQYWdlKHBhZ2U6IE1lZmRldkV4ZWN1dG9yUGFnZUNvbXBvbmVudCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGluZGV4OiBudW1iZXIgPSB0aGlzLnBhZ2VzLmluZGV4T2YocGFnZSk7XHJcbiAgICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xyXG4gICAgICAgICAgICB0aGlzLnBhZ2VzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgICAgICAgIGlmIChpbmRleCA9PT0gdGhpcy5hY3RpdmVQYWdlSW5kKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnByZXYoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIERlbGV0ZSBhIHBhZ2UgYnkgaXRzIGluZGV4XHJcbiAgICAgKi9cclxuICAgIHJlbW92ZVBhZ2VCeUluZGV4KGluZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuICAgICAgICBpZiAoaW5kZXggPj0gMCAmJiBpbmRleCA8IHRoaXMucGFnZXMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHRoaXMucGFnZXMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICAgICAgaWYgKGluZGV4ID09PSB0aGlzLmFjdGl2ZVBhZ2VJbmQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucHJldigpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbn1cclxuIiwiPCEtLXZpZXcgPT0gcmVndWxhci0tPlxyXG5cclxuPGRpdiBjbGFzcz1cInN0ZXBFeGVjdXRvckJsb2NrXCIgKm5nSWY9XCJ2aWV3ID09PSAncmVndWxhcidcIj5cclxuICA8aGVhZGVyIGNsYXNzPVwic3RlcEV4ZWN1dG9ySGVhZGVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwic3RlcEV4ZWN1dG9ySGVhZGVyVGV4dFwiPlxyXG4gICAgICA8aDEgY2xhc3M9XCJ0aXRsZVwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwidGl0bGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9oMT5cclxuICAgICAgPHAgY2xhc3M9XCJib2R5LTVcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImRlc2NyaXB0aW9uXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvcD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInN0ZXBzXCI+XHJcbiAgICAgIDxtZWZkZXYtc3RhZ2UgKm5nRm9yPVwibGV0IHBhZ2Ugb2YgcGFnZXM7IGxldCBwYWdlSW5kZXggPSBpbmRleFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2lzUmlnaHRNb2RhbF09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cInBhZ2UudGl0bGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjdXJyZW50RXhlY3V0b3JTdGVwXT1cInBhZ2VJbmRleCArIDFcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtpc0NvbXBsZXRlZF09XCJwYWdlLmlzQ29tcGxldGVkXCI+XHJcbiAgICAgIDwvbWVmZGV2LXN0YWdlPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9oZWFkZXI+XHJcblxyXG4gIDxkaXYgKm5nSWY9XCJhY3RpdmVQYWdlXCIgY2xhc3M9XCJleGVjdXRvckNoYW5nZUNvbnRlbnRcIj5cclxuICAgIDxkaXYgI2NvbnRhaW5lcj48L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImZvb3RlckJ1dHRvbnNcIj5cclxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZm9vdGVyXCI+PC9uZy1jb250YWluZXI+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuXHJcbjwhLS12aWV3ID09IG1vZGFsLS0+XHJcblxyXG48bWVmZGV2LXNsaWRlLXVwLW1vZGFsIFtzaG93XT1cInNob3dcIiAodmlzaWJsZUNoYW5nZSk9XCJtb2RhbFN0ZXBFeGVjdXRvclZpc2libGVDaGFuZ2UoJGV2ZW50KVwiICpuZ0lmPVwidmlldyA9PT0gJ21vZGFsJ1wiPlxyXG4gIDxkaXYgY2xhc3M9XCJtb2RhbFN0ZXBFeGVjdXRvclwiPlxyXG5cclxuICAgIDxoZWFkZXIgY2xhc3M9XCJtb2RhbEhlYWRlclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyTW9kYWxUZXh0XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHRBbmRDbG9zZUJ1dHRvblwiPlxyXG4gICAgICAgICAgPGgxIGNsYXNzPVwidGl0bGVcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJ0aXRsZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPC9oMT5cclxuICAgICAgICAgIDxwIGNsYXNzPVwiYm9keS01XCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZGVzY3JpcHRpb25cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvcD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8YXJ0aWNsZSBjbGFzcz1cImNsb3NlQnRuXCIgKGNsaWNrKT1cImNsb3NlRXhlY3V0b3IoKVwiPlxyXG4gICAgICAgICAgPHN2ZyB3aWR0aD1cIjE1XCIgaGVpZ2h0PVwiMTVcIiB2aWV3Qm94PVwiMCAwIDE1IDE1XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgIDxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCJcclxuICAgICAgICAgICAgICAgICAgZD1cIk02LjI2NzM1IDcuNjgxMzVMMC42MTAzNTIgMi4wMjQzNUwyLjAyNDM1IDAuNjEwMzUyTDcuNjgxMzUgNi4yNjczNUwxMy4zMzg0IDAuNjEwMzUyTDE0Ljc1MjQgMi4wMjQzNUw5LjA5NTM1IDcuNjgxMzVMMTQuNzUyNCAxMy4zMzg0TDEzLjMzODQgMTQuNzUyNEw3LjY4MTM1IDkuMDk1MzVMMi4wMjQzNSAxNC43NTI0TDAuNjEwMzUyIDEzLjMzODRMNi4yNjczNSA3LjY4MTM1WlwiXHJcbiAgICAgICAgICAgICAgICAgIGZpbGw9XCIjNEQ0RDREXCIvPlxyXG4gICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgPC9hcnRpY2xlPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsU3RlcHNcIj5cclxuICAgICAgICA8bWVmZGV2LXN0YWdlICpuZ0Zvcj1cImxldCBwYWdlIG9mIHBhZ2VzOyBsZXQgcGFnZUluZGV4ID0gaW5kZXhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW2lzUmlnaHRNb2RhbF09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwicGFnZS50aXRsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbY3VycmVudEV4ZWN1dG9yU3RlcF09XCJwYWdlSW5kZXggKyAxXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtpc0NvbXBsZXRlZF09XCJwYWdlLmlzQ29tcGxldGVkXCI+XHJcbiAgICAgICAgPC9tZWZkZXYtc3RhZ2U+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9oZWFkZXI+XHJcblxyXG4gICAgPG1haW4gKm5nSWY9XCJhY3RpdmVQYWdlXCIgY2xhc3M9XCJtb2RhbEV4ZWN1dG9yTWFpbkNvbnRlbnRcIj5cclxuICAgICAgPGRpdiAjY29udGFpbmVyPjwvZGl2PlxyXG4gICAgPC9tYWluPlxyXG5cclxuICAgIDxmb290ZXIgY2xhc3M9XCJtb2RhbEZvb3RlclwiPlxyXG4gICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImZvb3RlclwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC9mb290ZXI+XHJcblxyXG4gIDwvZGl2PlxyXG48L21lZmRldi1zbGlkZS11cC1tb2RhbD5cclxuXHJcbjwhLS12aWV3ID09IHJpZ2h0LS0+XHJcblxyXG48bWVmZGV2LXNsaWRlLXJpZ2h0LW1vZGFsIFtzaG93XT1cInNob3dcIiAodmlzaWJsZUNoYW5nZSk9XCJyaWdodFN0ZXBFeGVjdXRvclZpc2libGVDaGFuZ2UoJGV2ZW50KVwiICpuZ0lmPVwidmlldyA9PT0gJ3JpZ2h0J1wiPlxyXG4gIDxkaXYgY2xhc3M9XCJyaWdodEV4ZWN1dG9yQmxvY2tcIj5cclxuXHJcbiAgICA8aGVhZGVyIGNsYXNzPVwicmlnaHRFeGVjdXRvckhlYWRlclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicmlnaHRFeGVjdXRvclRleHRBbmRDbG9zZUJ1dHRvblwiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cImJvZHktMVwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwidGl0bGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDxwIGNsYXNzPVwiYm9keS01XCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImRlc2NyaXB0aW9uXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9wPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNsb3NlQnV0dG9uXCIgKGNsaWNrKT1cImNsb3NlRXhlY3V0b3IoKVwiPlxyXG4gICAgICAgIDxzdmcgd2lkdGg9XCIxN1wiIGhlaWdodD1cIjE3XCIgdmlld0JveD1cIjAgMCAxNyAxN1wiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgPHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGNsaXAtcnVsZT1cImV2ZW5vZGRcIlxyXG4gICAgICAgICAgICAgICAgZD1cIk0xNi4wNTY2IDEuNTk5NzFMMTQuNjU2NiAwLjE5OTcwN0w4LjA1NjY0IDYuNzk5NzFMMS40NTY2NCAwLjE5OTcwN0wwLjA1NjY0MDYgMS41OTk3MUw2LjY1NjY0IDguMTk5NzFMMC4wNTY2NDA2IDE0Ljc5OTdMMS40NTY2NCAxNi4xOTk3TDguMDU2NjQgOS41OTk3MUwxNC42NTY2IDE2LjE5OTdMMTYuMDU2NiAxNC43OTk3TDkuNDU2NjQgOC4xOTk3MUwxNi4wNTY2IDEuNTk5NzFaXCJcclxuICAgICAgICAgICAgICAgIGZpbGw9XCIjNTI1MjUyXCIvPlxyXG4gICAgICAgIDwvc3ZnPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvaGVhZGVyPlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJsaW5lXCI+XHJcbiAgICAgIDxzdmcgd2lkdGg9XCIxMDAlXCIgaGVpZ2h0PVwiMVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICA8cmVjdCB3aWR0aD1cIjEwMCVcIiBoZWlnaHQ9XCIxXCIgZmlsbD1cIiM0RDRENERcIj48L3JlY3Q+XHJcbiAgICAgIDwvc3ZnPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImNvbnRlbnRFeGVjdXRvclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicmlnaHRDaGFuZ2VDb250ZW50XCI+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cImFjdGl2ZVBhZ2VcIiBjbGFzcz1cImV4ZWN1dG9yQ2hhbmdlQ29udGVudFwiPlxyXG4gICAgICAgICAgPGRpdiAjY29udGFpbmVyPjwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyaWdodFN0ZXBzXCI+XHJcbiAgICAgICAgICA8bWVmZGV2LXN0YWdlICpuZ0Zvcj1cImxldCBwYWdlIG9mIHBhZ2VzOyBsZXQgcGFnZUluZGV4ID0gaW5kZXhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbaXNSaWdodE1vZGFsXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwicGFnZS50aXRsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjdXJyZW50RXhlY3V0b3JTdGVwXT1cInBhZ2VJbmRleCArIDFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbaXNDb21wbGV0ZWRdPVwicGFnZS5pc0NvbXBsZXRlZFwiPlxyXG4gICAgICAgICAgPC9tZWZkZXYtc3RhZ2U+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGZvb3RlciBjbGFzcz1cInJpZ2h0Rm9vdGVyXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZm9vdGVyXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Zvb3Rlcj5cclxuXHJcbiAgPC9kaXY+XHJcbjwvbWVmZGV2LXNsaWRlLXJpZ2h0LW1vZGFsPlxyXG4iXX0=
@@ -4,16 +4,19 @@ import { StepExecutorComponent } from './step-executor/step-executor.component';
4
4
  import { StageComponent } from './stage/stage.component';
5
5
  import { FormsModule } from '@angular/forms';
6
6
  import { MefdevExecutorPageComponent } from './mefdev-executor-page/mefdev-executor-page.component';
7
+ import { MefDevModalModule } from '../modals';
7
8
  import * as i0 from "@angular/core";
8
9
  export class MefDevStepExecutorModule {
9
10
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: MefDevStepExecutorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
11
  static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.6", ngImport: i0, type: MefDevStepExecutorModule, declarations: [StepExecutorComponent,
11
12
  MefdevExecutorPageComponent,
12
- StageComponent], imports: [CommonModule,
13
+ StageComponent], imports: [MefDevModalModule,
14
+ CommonModule,
13
15
  FormsModule], exports: [StepExecutorComponent,
14
16
  MefdevExecutorPageComponent,
15
17
  StageComponent] });
16
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: MefDevStepExecutorModule, imports: [CommonModule,
18
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: MefDevStepExecutorModule, imports: [MefDevModalModule,
19
+ CommonModule,
17
20
  FormsModule] });
18
21
  }
19
22
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: MefDevStepExecutorModule, decorators: [{
@@ -30,9 +33,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
30
33
  StageComponent,
31
34
  ],
32
35
  imports: [
36
+ MefDevModalModule,
33
37
  CommonModule,
34
38
  FormsModule,
35
39
  ]
36
40
  }]
37
41
  }] });
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC1leGVjdXRvci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1raXQtbGliL3NyYy9saWIvbWFya3VwLWtpdC9leGVjdXRvcnMvc3RlcC1leGVjdXRvci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDaEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQzs7QUFtQnBHLE1BQU0sT0FBTyx3QkFBd0I7dUdBQXhCLHdCQUF3Qjt3R0FBeEIsd0JBQXdCLGlCQWY3QixxQkFBcUI7WUFDckIsMkJBQTJCO1lBQzNCLGNBQWMsYUFRZCxZQUFZO1lBQ1osV0FBVyxhQU5YLHFCQUFxQjtZQUNyQiwyQkFBMkI7WUFDM0IsY0FBYzt3R0FRVCx3QkFBd0IsWUFMN0IsWUFBWTtZQUNaLFdBQVc7OzJGQUlOLHdCQUF3QjtrQkFqQnBDLFFBQVE7bUJBQUM7b0JBQ04sWUFBWSxFQUFFO3dCQUNWLHFCQUFxQjt3QkFDckIsMkJBQTJCO3dCQUMzQixjQUFjO3FCQUNqQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ0wscUJBQXFCO3dCQUNyQiwyQkFBMkI7d0JBQzNCLGNBQWM7cUJBQ2pCO29CQUNELE9BQU8sRUFBRTt3QkFDTCxZQUFZO3dCQUNaLFdBQVc7cUJBQ2Q7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBTdGVwRXhlY3V0b3JDb21wb25lbnQgfSBmcm9tICcuL3N0ZXAtZXhlY3V0b3Ivc3RlcC1leGVjdXRvci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTdGFnZUNvbXBvbmVudCB9IGZyb20gJy4vc3RhZ2Uvc3RhZ2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1lZmRldkV4ZWN1dG9yUGFnZUNvbXBvbmVudCB9IGZyb20gJy4vbWVmZGV2LWV4ZWN1dG9yLXBhZ2UvbWVmZGV2LWV4ZWN1dG9yLXBhZ2UuY29tcG9uZW50JztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgICBkZWNsYXJhdGlvbnM6IFtcclxuICAgICAgICBTdGVwRXhlY3V0b3JDb21wb25lbnQsXHJcbiAgICAgICAgTWVmZGV2RXhlY3V0b3JQYWdlQ29tcG9uZW50LFxyXG4gICAgICAgIFN0YWdlQ29tcG9uZW50XHJcbiAgICBdLFxyXG4gICAgZXhwb3J0czogW1xyXG4gICAgICAgIFN0ZXBFeGVjdXRvckNvbXBvbmVudCxcclxuICAgICAgICBNZWZkZXZFeGVjdXRvclBhZ2VDb21wb25lbnQsXHJcbiAgICAgICAgU3RhZ2VDb21wb25lbnQsXHJcbiAgICBdLFxyXG4gICAgaW1wb3J0czogW1xyXG4gICAgICAgIENvbW1vbk1vZHVsZSxcclxuICAgICAgICBGb3Jtc01vZHVsZSxcclxuICAgIF1cclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBNZWZEZXZTdGVwRXhlY3V0b3JNb2R1bGUgeyB9XHJcbiJdfQ==
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC1leGVjdXRvci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1raXQtbGliL3NyYy9saWIvbWFya3VwLWtpdC9leGVjdXRvcnMvc3RlcC1leGVjdXRvci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDaEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUNwRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxXQUFXLENBQUM7O0FBb0I5QyxNQUFNLE9BQU8sd0JBQXdCO3VHQUF4Qix3QkFBd0I7d0dBQXhCLHdCQUF3QixpQkFoQjdCLHFCQUFxQjtZQUNyQiwyQkFBMkI7WUFDM0IsY0FBYyxhQVFkLGlCQUFpQjtZQUNqQixZQUFZO1lBQ1osV0FBVyxhQVBYLHFCQUFxQjtZQUNyQiwyQkFBMkI7WUFDM0IsY0FBYzt3R0FTVCx3QkFBd0IsWUFON0IsaUJBQWlCO1lBQ2pCLFlBQVk7WUFDWixXQUFXOzsyRkFJTix3QkFBd0I7a0JBbEJwQyxRQUFRO21CQUFDO29CQUNOLFlBQVksRUFBRTt3QkFDVixxQkFBcUI7d0JBQ3JCLDJCQUEyQjt3QkFDM0IsY0FBYztxQkFDakI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLHFCQUFxQjt3QkFDckIsMkJBQTJCO3dCQUMzQixjQUFjO3FCQUNqQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ0wsaUJBQWlCO3dCQUNqQixZQUFZO3dCQUNaLFdBQVc7cUJBQ2Q7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBTdGVwRXhlY3V0b3JDb21wb25lbnQgfSBmcm9tICcuL3N0ZXAtZXhlY3V0b3Ivc3RlcC1leGVjdXRvci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTdGFnZUNvbXBvbmVudCB9IGZyb20gJy4vc3RhZ2Uvc3RhZ2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1lZmRldkV4ZWN1dG9yUGFnZUNvbXBvbmVudCB9IGZyb20gJy4vbWVmZGV2LWV4ZWN1dG9yLXBhZ2UvbWVmZGV2LWV4ZWN1dG9yLXBhZ2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWVmRGV2TW9kYWxNb2R1bGUgfSBmcm9tICcuLi9tb2RhbHMnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICAgIGRlY2xhcmF0aW9uczogW1xyXG4gICAgICAgIFN0ZXBFeGVjdXRvckNvbXBvbmVudCxcclxuICAgICAgICBNZWZkZXZFeGVjdXRvclBhZ2VDb21wb25lbnQsXHJcbiAgICAgICAgU3RhZ2VDb21wb25lbnRcclxuICAgIF0sXHJcbiAgICBleHBvcnRzOiBbXHJcbiAgICAgICAgU3RlcEV4ZWN1dG9yQ29tcG9uZW50LFxyXG4gICAgICAgIE1lZmRldkV4ZWN1dG9yUGFnZUNvbXBvbmVudCxcclxuICAgICAgICBTdGFnZUNvbXBvbmVudCxcclxuICAgIF0sXHJcbiAgICBpbXBvcnRzOiBbXHJcbiAgICAgICAgTWVmRGV2TW9kYWxNb2R1bGUsXHJcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgXVxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIE1lZkRldlN0ZXBFeGVjdXRvck1vZHVsZSB7IH1cclxuIl19
@@ -20,7 +20,7 @@ import * as i1 from "@angular/common";
20
20
  * </mefdev-fill-modal>
21
21
  * ```
22
22
  *
23
- * <example-url>https://mef.dev/ui_kit_demo/view/modals/fill</example-url>
23
+ * <example-url>https://mef.dev/ui_kit_demo/view/page_components/modals/fill</example-url>
24
24
  */
25
25
  export class FillComponent {
26
26
  visible = false;
@@ -95,7 +95,7 @@ export class FillComponent {
95
95
  this.visibleChange.emit(this.visible);
96
96
  }
97
97
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: FillComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
98
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: FillComponent, selector: "mefdev-fill-modal", inputs: { show: "show" }, outputs: { visibleChange: "visibleChange" }, queries: [{ propertyName: "modal_header", first: true, predicate: ["modal_header"], descendants: true }, { propertyName: "modal_footer", first: true, predicate: ["modal_footer"], descendants: true }], viewQueries: [{ propertyName: "dialog", first: true, predicate: ["dialog"], descendants: true }], ngImport: i0, template: "<button *ngIf=\"visible\" (click)=\"hideModal()\" aria-label=\"Close\" class=\"dialog__close-btn\">X</button>\r\n<div [@dialog] *ngIf=\"visible\" class=\"dialog\" #dialog>\r\n\t<div class=\"modal-content\">\r\n <div class=\"modal-header clearfix text-left\">\r\n <ng-template [ngTemplateOutlet]=\"modal_header\"></ng-template>\r\n </div>\r\n <div class=\"modal-body\">\r\n <ng-content></ng-content>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <ng-template [ngTemplateOutlet]=\"modal_footer\"></ng-template>\r\n </div>\r\n </div>\r\n</div>\r\n<div *ngIf=\"visible\" class=\"overlay\" (click)=\"hideModal()\"></div>\r\n", styles: [".overlay{position:fixed;inset:0;background-color:#ffffffd9;z-index:999}.dialog{z-index:1000;position:fixed;right:0;left:0;top:0;margin-left:auto;margin-right:auto;height:100%;min-height:200px;min-width:520px;max-width:90%;width:-moz-fit-content;width:fit-content;background-color:#ffffffd9;padding:12px;overflow-y:auto;display:flex;align-items:center}.dialog__close-btn{border:0;background:none;color:#2d2d2d;position:absolute;top:8px;right:8px;font-size:1.2em;z-index:1001}.modal-footer{padding-top:10px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], animations: [
98
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: FillComponent, selector: "mefdev-fill-modal", inputs: { show: "show" }, outputs: { visibleChange: "visibleChange" }, queries: [{ propertyName: "modal_header", first: true, predicate: ["modal_header"], descendants: true }, { propertyName: "modal_footer", first: true, predicate: ["modal_footer"], descendants: true }], viewQueries: [{ propertyName: "dialog", first: true, predicate: ["dialog"], descendants: true }], ngImport: i0, template: "<button *ngIf=\"visible\" (click)=\"hideModal()\" aria-label=\"Close\" class=\"dialog__close-btn\">X</button>\r\n<div [@dialog] *ngIf=\"visible\" class=\"dialog\" #dialog>\r\n\t<div class=\"modal-content\">\r\n <div class=\"modal-header clearfix text-left\">\r\n <ng-template [ngTemplateOutlet]=\"modal_header\"></ng-template>\r\n </div>\r\n <div class=\"modal-body\">\r\n <ng-content></ng-content>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <ng-template [ngTemplateOutlet]=\"modal_footer\"></ng-template>\r\n </div>\r\n </div>\r\n</div>\r\n<div *ngIf=\"visible\" class=\"overlay\" (click)=\"hideModal()\"></div>\r\n", styles: [".overlay{position:fixed;inset:0;background-color:#ffffffd9;z-index:999}.dialog{z-index:1000;position:fixed;right:0;left:0;top:0;margin-left:auto;margin-right:auto;height:100%;min-height:200px;min-width:520px;max-width:90%;width:-moz-fit-content;width:fit-content;padding:12px;overflow-y:auto;display:flex;align-items:center}.dialog__close-btn{border:0;background:none;color:#2d2d2d;position:absolute;top:8px;right:8px;font-size:1.2em;z-index:1001}.modal-footer{padding-top:10px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], animations: [
99
99
  trigger('dialog', [
100
100
  transition('void => *', [
101
101
  style({ transform: 'scale3d(.3, .3, .3)' }),
@@ -119,7 +119,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
119
119
  animate(100, style({ transform: 'scale3d(.0, .0, .0)' }))
120
120
  ])
121
121
  ])
122
- ], template: "<button *ngIf=\"visible\" (click)=\"hideModal()\" aria-label=\"Close\" class=\"dialog__close-btn\">X</button>\r\n<div [@dialog] *ngIf=\"visible\" class=\"dialog\" #dialog>\r\n\t<div class=\"modal-content\">\r\n <div class=\"modal-header clearfix text-left\">\r\n <ng-template [ngTemplateOutlet]=\"modal_header\"></ng-template>\r\n </div>\r\n <div class=\"modal-body\">\r\n <ng-content></ng-content>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <ng-template [ngTemplateOutlet]=\"modal_footer\"></ng-template>\r\n </div>\r\n </div>\r\n</div>\r\n<div *ngIf=\"visible\" class=\"overlay\" (click)=\"hideModal()\"></div>\r\n", styles: [".overlay{position:fixed;inset:0;background-color:#ffffffd9;z-index:999}.dialog{z-index:1000;position:fixed;right:0;left:0;top:0;margin-left:auto;margin-right:auto;height:100%;min-height:200px;min-width:520px;max-width:90%;width:-moz-fit-content;width:fit-content;background-color:#ffffffd9;padding:12px;overflow-y:auto;display:flex;align-items:center}.dialog__close-btn{border:0;background:none;color:#2d2d2d;position:absolute;top:8px;right:8px;font-size:1.2em;z-index:1001}.modal-footer{padding-top:10px}\n"] }]
122
+ ], template: "<button *ngIf=\"visible\" (click)=\"hideModal()\" aria-label=\"Close\" class=\"dialog__close-btn\">X</button>\r\n<div [@dialog] *ngIf=\"visible\" class=\"dialog\" #dialog>\r\n\t<div class=\"modal-content\">\r\n <div class=\"modal-header clearfix text-left\">\r\n <ng-template [ngTemplateOutlet]=\"modal_header\"></ng-template>\r\n </div>\r\n <div class=\"modal-body\">\r\n <ng-content></ng-content>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <ng-template [ngTemplateOutlet]=\"modal_footer\"></ng-template>\r\n </div>\r\n </div>\r\n</div>\r\n<div *ngIf=\"visible\" class=\"overlay\" (click)=\"hideModal()\"></div>\r\n", styles: [".overlay{position:fixed;inset:0;background-color:#ffffffd9;z-index:999}.dialog{z-index:1000;position:fixed;right:0;left:0;top:0;margin-left:auto;margin-right:auto;height:100%;min-height:200px;min-width:520px;max-width:90%;width:-moz-fit-content;width:fit-content;padding:12px;overflow-y:auto;display:flex;align-items:center}.dialog__close-btn{border:0;background:none;color:#2d2d2d;position:absolute;top:8px;right:8px;font-size:1.2em;z-index:1001}.modal-footer{padding-top:10px}\n"] }]
123
123
  }], ctorParameters: function () { return []; }, propDecorators: { dialog: [{
124
124
  type: ViewChild,
125
125
  args: ['dialog', { static: false }]
@@ -134,4 +134,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
134
134
  }], visibleChange: [{
135
135
  type: Output
136
136
  }] } });
137
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1raXQtbGliL3NyYy9saWIvbWFya3VwLWtpdC9tb2RhbHMvZmlsbC9maWxsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWtpdC1saWIvc3JjL2xpYi9tYXJrdXAta2l0L21vZGFscy9maWxsL2ZpbGwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQWUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpJLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7O0FBRzFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBbUJJO0FBaUJKLE1BQU0sT0FBTyxhQUFhO0lBQ2QsT0FBTyxHQUFZLEtBQUssQ0FBQztJQUVlLE1BQU0sQ0FBYztJQUd0RTs7Ozs7Ozs7O01BU0U7SUFDNEIsWUFBWSxDQUFvQjtJQUU5RDs7Ozs7Ozs7O01BU0U7SUFDNEIsWUFBWSxDQUFvQjtJQUU5RDs7T0FFRztJQUNILElBQWEsSUFBSSxDQUFDLEdBQVk7UUFDNUIsSUFBRyxHQUFHLEVBQUM7WUFDTCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7U0FDbEI7YUFDRztZQUNGLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztTQUNsQjtJQUNILENBQUM7SUFBQSxDQUFDO0lBRUY7Ozs7Ozs7T0FPRztJQUNPLGFBQWEsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO0lBR3RELGdCQUFnQixDQUFDO0lBRWpCLFFBQVE7SUFDUixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsYUFBYTtRQUNYLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksU0FBUztRQUNkLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksU0FBUztRQUNkLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN4QyxDQUFDO3VHQWxGVSxhQUFhOzJGQUFiLGFBQWEsMmFDekMxQix1cUJBZUEsa3pCRGNjO1lBQ1YsT0FBTyxDQUFDLFFBQVEsRUFBRTtnQkFDaEIsVUFBVSxDQUFDLFdBQVcsRUFBRTtvQkFDdEIsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFLENBQUM7b0JBQzNDLE9BQU8sQ0FBQyxHQUFHLENBQUM7aUJBQ2IsQ0FBQztnQkFDRixVQUFVLENBQUMsV0FBVyxFQUFFO29CQUN0QixPQUFPLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxxQkFBcUIsRUFBRSxDQUFDLENBQUM7aUJBQzFELENBQUM7YUFDSCxDQUFDO1NBQ0g7OzJGQUVVLGFBQWE7a0JBaEJ6QixTQUFTOytCQUNFLG1CQUFtQixjQUdqQjt3QkFDVixPQUFPLENBQUMsUUFBUSxFQUFFOzRCQUNoQixVQUFVLENBQUMsV0FBVyxFQUFFO2dDQUN0QixLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUscUJBQXFCLEVBQUUsQ0FBQztnQ0FDM0MsT0FBTyxDQUFDLEdBQUcsQ0FBQzs2QkFDYixDQUFDOzRCQUNGLFVBQVUsQ0FBQyxXQUFXLEVBQUU7Z0NBQ3RCLE9BQU8sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFLENBQUMsQ0FBQzs2QkFDMUQsQ0FBQzt5QkFDSCxDQUFDO3FCQUNIOzBFQUtpRCxNQUFNO3NCQUF2RCxTQUFTO3VCQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBYVIsWUFBWTtzQkFBekMsWUFBWTt1QkFBQyxjQUFjO2dCQVlFLFlBQVk7c0JBQXpDLFlBQVk7dUJBQUMsY0FBYztnQkFLZixJQUFJO3NCQUFoQixLQUFLO2dCQWlCSSxhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjsgLy8gYWRkIGZvciBzdGF0aWMgYW5hbGl6ZXIgYnVnIGZpeFxyXG5pbXBvcnQgeyBhbmltYXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xyXG5cclxuXHJcbi8qKlxyXG4gICogRmlsbCBDb21wb25lbnQgZm9yIGEgbW9kYWwgd2luZG93LlxyXG4gICpcclxuICAqIEV4YW1wbGUgb2YgdXNhZ2U6XHJcbiAgKiBgYGBcclxuICAqIDxtZWZkZXYtZmlsbC1tb2RhbCAjcGluX21vZGFsPlxyXG4gICogICA8IS0tIE1vZGFsIGhlYWRlciBjb250ZW50IC0tPlxyXG4gICogICA8bmctdGVtcGxhdGUgI21vZGFsX2hlYWRlcj5cclxuICAqICAgICA8IS0tIEhlYWRlciBjb250ZW50IGdvZXMgaGVyZSAtLT5cclxuICAqICAgPC9uZy10ZW1wbGF0ZT5cclxuICAqXHJcbiAgKiAgIDwhLS0gTW9kYWwgZm9vdGVyIGNvbnRlbnQgLS0+XHJcbiAgKiAgIDxuZy10ZW1wbGF0ZSAjbW9kYWxfZm9vdGVyPlxyXG4gICogICAgIDwhLS0gRm9vdGVyIGNvbnRlbnQgZ29lcyBoZXJlIC0tPlxyXG4gICogICA8L25nLXRlbXBsYXRlPlxyXG4gICogPC9tZWZkZXYtZmlsbC1tb2RhbD5cclxuICAqIGBgYFxyXG4gICpcclxuICAqIDxleGFtcGxlLXVybD5odHRwczovL21lZi5kZXYvdWlfa2l0X2RlbW8vdmlldy9tb2RhbHMvZmlsbDwvZXhhbXBsZS11cmw+XHJcbiAgKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdtZWZkZXYtZmlsbC1tb2RhbCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbGwuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ZpbGwuY29tcG9uZW50LnNjc3MnXSxcclxuICBhbmltYXRpb25zOiBbXHJcbiAgICB0cmlnZ2VyKCdkaWFsb2cnLCBbXHJcbiAgICAgIHRyYW5zaXRpb24oJ3ZvaWQgPT4gKicsIFtcclxuICAgICAgICBzdHlsZSh7IHRyYW5zZm9ybTogJ3NjYWxlM2QoLjMsIC4zLCAuMyknIH0pLFxyXG4gICAgICAgIGFuaW1hdGUoMTAwKVxyXG4gICAgICBdKSxcclxuICAgICAgdHJhbnNpdGlvbignKiA9PiB2b2lkJywgW1xyXG4gICAgICAgIGFuaW1hdGUoMTAwLCBzdHlsZSh7IHRyYW5zZm9ybTogJ3NjYWxlM2QoLjAsIC4wLCAuMCknIH0pKVxyXG4gICAgICBdKVxyXG4gICAgXSlcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGaWxsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBwcm90ZWN0ZWQgdmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBAVmlld0NoaWxkKCdkaWFsb2cnLCB7IHN0YXRpYzogZmFsc2UgfSkgcHJvdGVjdGVkIGRpYWxvZz86IEVsZW1lbnRSZWY7XHJcblxyXG5cclxuICAvKipcclxuICAqIFRoZSBoZWFkZXIgdGVtcGxhdGUgb2YgdGhlIG1vZGFsIHdpbmRvdy5cclxuICAqIGBgYFxyXG4gICogPG1lZmRldi1maWxsLW1vZGFsICNwaW5fbW9kYWw+XHJcbiAgICogICA8bmctdGVtcGxhdGUgI21vZGFsX2hlYWRlcj5cclxuICAgKiAgICAgPCEtLSBIZWFkZXIgY29udGVudCBnb2VzIGhlcmUgLS0+XHJcbiAgICogICA8L25nLXRlbXBsYXRlPlxyXG4gICAqIDwvbWVmZGV2LWZpbGwtbW9kYWw+XHJcbiAgKiBgYGBcclxuICAqL1xyXG4gIEBDb250ZW50Q2hpbGQoXCJtb2RhbF9oZWFkZXJcIikgbW9kYWxfaGVhZGVyOiBUZW1wbGF0ZVJlZjx2b2lkPjtcclxuXHJcbiAgLyoqXHJcbiAgKiBUaGUgZm9vdGVyIHRlbXBsYXRlIG9mIHRoZSBtb2RhbCB3aW5kb3cuXHJcbiAgKiBgYGBcclxuICAqIDxtZWZkZXYtZmlsbC1tb2RhbCAjcGluX21vZGFsPlxyXG4gICAqICAgPG5nLXRlbXBsYXRlICNtb2RhbF9mb290ZXI+XHJcbiAgICogICAgIDwhLS0gRm9vdGVyIGNvbnRlbnQgZ29lcyBoZXJlIC0tPlxyXG4gICAqICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgKiA8L21lZmRldi1maWxsLW1vZGFsPlxyXG4gICogYGBgXHJcbiAgKi9cclxuICBAQ29udGVudENoaWxkKFwibW9kYWxfZm9vdGVyXCIpIG1vZGFsX2Zvb3RlcjogVGVtcGxhdGVSZWY8dm9pZD47XHJcblxyXG4gIC8qKlxyXG4gICAqIElucHV0IHBhcmFtZXRlciB0aGF0IGRldGVybWluZXMgd2hldGhlciB0byBzaG93IHRoZSBtb2RhbCB3aW5kb3cuXHJcbiAgICovXHJcbiAgQElucHV0KCkgc2V0IHNob3codmFsOiBib29sZWFuKXtcclxuICAgIGlmKHZhbCl7XHJcbiAgICAgIHRoaXMuc2hvd01vZGFsKCk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICB0aGlzLmhpZGVNb2RhbCgpO1xyXG4gICAgfVxyXG4gIH07XHJcblxyXG4gIC8qKlxyXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgbW9kYWwgaXMgY2hhbmdlIHN0YXRlLlxyXG4gICAqIEVtaXRzIGEgYm9vbGVhbiB2YWx1ZSBpbmRpY2F0aW5nIGlmIHRoZSBtb2RhbCBpcyBjbG9zZWQoZmFsc2UpLCBvciBvcGVuKHRydWUpLlxyXG4gICAqIEV4YW1wbGU6XHJcbiAgICogYGBgXHJcbiAgICogPG1lZmRldi1maWxsLW1vZGFsICh2aXNpYmxlQ2hhbmdlKT1cIm9uTW9kYWxDbG9zZWQoJGV2ZW50KVwiPjwvbWVmZGV2LWZpbGwtbW9kYWw+XHJcbiAgICogYGBgXHJcbiAgICovXHJcbiAgQE91dHB1dCgpIHZpc2libGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcblxyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNob3dzIHRoZSBtb2RhbCBzdGF0ZS5cclxuICAgKiBSZXR1cm4gYSBib29sZWFuIHZhbHVlIGluZGljYXRpbmcgaWYgdGhlIG1vZGFsIGlzIGNsb3NlZChmYWxzZSksIG9yIG9wZW4odHJ1ZSlcclxuICAgKi9cclxuICBnZXRNb2RhbFN0YXRlKCk6IGJvb2xlYW57XHJcbiAgICByZXR1cm4gdGhpcy52aXNpYmxlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2hvd3MgdGhlIG1vZGFsLlxyXG4gICAqIENhbGwgdGhpcyBtZXRob2QgdG8gb3BlbiB0aGUgbW9kYWwgd2luZG93LlxyXG4gICAqL1xyXG4gIHB1YmxpYyBzaG93TW9kYWwoKXtcclxuICAgIHRoaXMudmlzaWJsZSA9IHRydWU7XHJcbiAgICB0aGlzLnZpc2libGVDaGFuZ2UuZW1pdCh0aGlzLnZpc2libGUpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSGlkZXMgdGhlIG1vZGFsLlxyXG4gICAqIENhbGwgdGhpcyBtZXRob2QgdG8gY2xvc2UgdGhlIG1vZGFsIHdpbmRvdy5cclxuICAgKi9cclxuICBwdWJsaWMgaGlkZU1vZGFsKCl7XHJcbiAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcclxuICAgIHRoaXMudmlzaWJsZUNoYW5nZS5lbWl0KHRoaXMudmlzaWJsZSk7XHJcbiAgfVxyXG59XHJcbiIsIjxidXR0b24gKm5nSWY9XCJ2aXNpYmxlXCIgKGNsaWNrKT1cImhpZGVNb2RhbCgpXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCIgY2xhc3M9XCJkaWFsb2dfX2Nsb3NlLWJ0blwiPlg8L2J1dHRvbj5cclxuPGRpdiBbQGRpYWxvZ10gKm5nSWY9XCJ2aXNpYmxlXCIgY2xhc3M9XCJkaWFsb2dcIiAjZGlhbG9nPlxyXG5cdDxkaXYgY2xhc3M9XCJtb2RhbC1jb250ZW50XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyIGNsZWFyZml4IHRleHQtbGVmdFwiPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIm1vZGFsX2hlYWRlclwiPjwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keVwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWZvb3RlclwiPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIm1vZGFsX2Zvb3RlclwiPjwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuPGRpdiAqbmdJZj1cInZpc2libGVcIiBjbGFzcz1cIm92ZXJsYXlcIiAoY2xpY2spPVwiaGlkZU1vZGFsKClcIj48L2Rpdj5cclxuIl19
137
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1raXQtbGliL3NyYy9saWIvbWFya3VwLWtpdC9tb2RhbHMvZmlsbC9maWxsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWtpdC1saWIvc3JjL2xpYi9tYXJrdXAta2l0L21vZGFscy9maWxsL2ZpbGwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQWUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpJLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7O0FBRzFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBbUJJO0FBaUJKLE1BQU0sT0FBTyxhQUFhO0lBQ2QsT0FBTyxHQUFZLEtBQUssQ0FBQztJQUVlLE1BQU0sQ0FBYztJQUd0RTs7Ozs7Ozs7O01BU0U7SUFDNEIsWUFBWSxDQUFvQjtJQUU5RDs7Ozs7Ozs7O01BU0U7SUFDNEIsWUFBWSxDQUFvQjtJQUU5RDs7T0FFRztJQUNILElBQWEsSUFBSSxDQUFDLEdBQVk7UUFDNUIsSUFBRyxHQUFHLEVBQUM7WUFDTCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7U0FDbEI7YUFDRztZQUNGLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztTQUNsQjtJQUNILENBQUM7SUFBQSxDQUFDO0lBRUY7Ozs7Ozs7T0FPRztJQUNPLGFBQWEsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO0lBR3RELGdCQUFnQixDQUFDO0lBRWpCLFFBQVE7SUFDUixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsYUFBYTtRQUNYLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksU0FBUztRQUNkLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksU0FBUztRQUNkLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN4QyxDQUFDO3VHQWxGVSxhQUFhOzJGQUFiLGFBQWEsMmFDekMxQix1cUJBZUEsdXhCRGNjO1lBQ1YsT0FBTyxDQUFDLFFBQVEsRUFBRTtnQkFDaEIsVUFBVSxDQUFDLFdBQVcsRUFBRTtvQkFDdEIsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFLENBQUM7b0JBQzNDLE9BQU8sQ0FBQyxHQUFHLENBQUM7aUJBQ2IsQ0FBQztnQkFDRixVQUFVLENBQUMsV0FBVyxFQUFFO29CQUN0QixPQUFPLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxxQkFBcUIsRUFBRSxDQUFDLENBQUM7aUJBQzFELENBQUM7YUFDSCxDQUFDO1NBQ0g7OzJGQUVVLGFBQWE7a0JBaEJ6QixTQUFTOytCQUNFLG1CQUFtQixjQUdqQjt3QkFDVixPQUFPLENBQUMsUUFBUSxFQUFFOzRCQUNoQixVQUFVLENBQUMsV0FBVyxFQUFFO2dDQUN0QixLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUscUJBQXFCLEVBQUUsQ0FBQztnQ0FDM0MsT0FBTyxDQUFDLEdBQUcsQ0FBQzs2QkFDYixDQUFDOzRCQUNGLFVBQVUsQ0FBQyxXQUFXLEVBQUU7Z0NBQ3RCLE9BQU8sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFLENBQUMsQ0FBQzs2QkFDMUQsQ0FBQzt5QkFDSCxDQUFDO3FCQUNIOzBFQUtpRCxNQUFNO3NCQUF2RCxTQUFTO3VCQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBYVIsWUFBWTtzQkFBekMsWUFBWTt1QkFBQyxjQUFjO2dCQVlFLFlBQVk7c0JBQXpDLFlBQVk7dUJBQUMsY0FBYztnQkFLZixJQUFJO3NCQUFoQixLQUFLO2dCQWlCSSxhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjsgLy8gYWRkIGZvciBzdGF0aWMgYW5hbGl6ZXIgYnVnIGZpeFxyXG5pbXBvcnQgeyBhbmltYXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xyXG5cclxuXHJcbi8qKlxyXG4gICogRmlsbCBDb21wb25lbnQgZm9yIGEgbW9kYWwgd2luZG93LlxyXG4gICpcclxuICAqIEV4YW1wbGUgb2YgdXNhZ2U6XHJcbiAgKiBgYGBcclxuICAqIDxtZWZkZXYtZmlsbC1tb2RhbCAjcGluX21vZGFsPlxyXG4gICogICA8IS0tIE1vZGFsIGhlYWRlciBjb250ZW50IC0tPlxyXG4gICogICA8bmctdGVtcGxhdGUgI21vZGFsX2hlYWRlcj5cclxuICAqICAgICA8IS0tIEhlYWRlciBjb250ZW50IGdvZXMgaGVyZSAtLT5cclxuICAqICAgPC9uZy10ZW1wbGF0ZT5cclxuICAqXHJcbiAgKiAgIDwhLS0gTW9kYWwgZm9vdGVyIGNvbnRlbnQgLS0+XHJcbiAgKiAgIDxuZy10ZW1wbGF0ZSAjbW9kYWxfZm9vdGVyPlxyXG4gICogICAgIDwhLS0gRm9vdGVyIGNvbnRlbnQgZ29lcyBoZXJlIC0tPlxyXG4gICogICA8L25nLXRlbXBsYXRlPlxyXG4gICogPC9tZWZkZXYtZmlsbC1tb2RhbD5cclxuICAqIGBgYFxyXG4gICpcclxuICAqIDxleGFtcGxlLXVybD5odHRwczovL21lZi5kZXYvdWlfa2l0X2RlbW8vdmlldy9wYWdlX2NvbXBvbmVudHMvbW9kYWxzL2ZpbGw8L2V4YW1wbGUtdXJsPlxyXG4gICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbWVmZGV2LWZpbGwtbW9kYWwnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9maWxsLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9maWxsLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgYW5pbWF0aW9uczogW1xyXG4gICAgdHJpZ2dlcignZGlhbG9nJywgW1xyXG4gICAgICB0cmFuc2l0aW9uKCd2b2lkID0+IConLCBbXHJcbiAgICAgICAgc3R5bGUoeyB0cmFuc2Zvcm06ICdzY2FsZTNkKC4zLCAuMywgLjMpJyB9KSxcclxuICAgICAgICBhbmltYXRlKDEwMClcclxuICAgICAgXSksXHJcbiAgICAgIHRyYW5zaXRpb24oJyogPT4gdm9pZCcsIFtcclxuICAgICAgICBhbmltYXRlKDEwMCwgc3R5bGUoeyB0cmFuc2Zvcm06ICdzY2FsZTNkKC4wLCAuMCwgLjApJyB9KSlcclxuICAgICAgXSlcclxuICAgIF0pXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRmlsbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgcHJvdGVjdGVkIHZpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQFZpZXdDaGlsZCgnZGlhbG9nJywgeyBzdGF0aWM6IGZhbHNlIH0pIHByb3RlY3RlZCBkaWFsb2c/OiBFbGVtZW50UmVmO1xyXG5cclxuXHJcbiAgLyoqXHJcbiAgKiBUaGUgaGVhZGVyIHRlbXBsYXRlIG9mIHRoZSBtb2RhbCB3aW5kb3cuXHJcbiAgKiBgYGBcclxuICAqIDxtZWZkZXYtZmlsbC1tb2RhbCAjcGluX21vZGFsPlxyXG4gICAqICAgPG5nLXRlbXBsYXRlICNtb2RhbF9oZWFkZXI+XHJcbiAgICogICAgIDwhLS0gSGVhZGVyIGNvbnRlbnQgZ29lcyBoZXJlIC0tPlxyXG4gICAqICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgKiA8L21lZmRldi1maWxsLW1vZGFsPlxyXG4gICogYGBgXHJcbiAgKi9cclxuICBAQ29udGVudENoaWxkKFwibW9kYWxfaGVhZGVyXCIpIG1vZGFsX2hlYWRlcjogVGVtcGxhdGVSZWY8dm9pZD47XHJcblxyXG4gIC8qKlxyXG4gICogVGhlIGZvb3RlciB0ZW1wbGF0ZSBvZiB0aGUgbW9kYWwgd2luZG93LlxyXG4gICogYGBgXHJcbiAgKiA8bWVmZGV2LWZpbGwtbW9kYWwgI3Bpbl9tb2RhbD5cclxuICAgKiAgIDxuZy10ZW1wbGF0ZSAjbW9kYWxfZm9vdGVyPlxyXG4gICAqICAgICA8IS0tIEZvb3RlciBjb250ZW50IGdvZXMgaGVyZSAtLT5cclxuICAgKiAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICogPC9tZWZkZXYtZmlsbC1tb2RhbD5cclxuICAqIGBgYFxyXG4gICovXHJcbiAgQENvbnRlbnRDaGlsZChcIm1vZGFsX2Zvb3RlclwiKSBtb2RhbF9mb290ZXI6IFRlbXBsYXRlUmVmPHZvaWQ+O1xyXG5cclxuICAvKipcclxuICAgKiBJbnB1dCBwYXJhbWV0ZXIgdGhhdCBkZXRlcm1pbmVzIHdoZXRoZXIgdG8gc2hvdyB0aGUgbW9kYWwgd2luZG93LlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHNldCBzaG93KHZhbDogYm9vbGVhbil7XHJcbiAgICBpZih2YWwpe1xyXG4gICAgICB0aGlzLnNob3dNb2RhbCgpO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgdGhpcy5oaWRlTW9kYWwoKTtcclxuICAgIH1cclxuICB9O1xyXG5cclxuICAvKipcclxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIG1vZGFsIGlzIGNoYW5nZSBzdGF0ZS5cclxuICAgKiBFbWl0cyBhIGJvb2xlYW4gdmFsdWUgaW5kaWNhdGluZyBpZiB0aGUgbW9kYWwgaXMgY2xvc2VkKGZhbHNlKSwgb3Igb3Blbih0cnVlKS5cclxuICAgKiBFeGFtcGxlOlxyXG4gICAqIGBgYFxyXG4gICAqIDxtZWZkZXYtZmlsbC1tb2RhbCAodmlzaWJsZUNoYW5nZSk9XCJvbk1vZGFsQ2xvc2VkKCRldmVudClcIj48L21lZmRldi1maWxsLW1vZGFsPlxyXG4gICAqIGBgYFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSB2aXNpYmxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTaG93cyB0aGUgbW9kYWwgc3RhdGUuXHJcbiAgICogUmV0dXJuIGEgYm9vbGVhbiB2YWx1ZSBpbmRpY2F0aW5nIGlmIHRoZSBtb2RhbCBpcyBjbG9zZWQoZmFsc2UpLCBvciBvcGVuKHRydWUpXHJcbiAgICovXHJcbiAgZ2V0TW9kYWxTdGF0ZSgpOiBib29sZWFue1xyXG4gICAgcmV0dXJuIHRoaXMudmlzaWJsZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNob3dzIHRoZSBtb2RhbC5cclxuICAgKiBDYWxsIHRoaXMgbWV0aG9kIHRvIG9wZW4gdGhlIG1vZGFsIHdpbmRvdy5cclxuICAgKi9cclxuICBwdWJsaWMgc2hvd01vZGFsKCl7XHJcbiAgICB0aGlzLnZpc2libGUgPSB0cnVlO1xyXG4gICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQodGhpcy52aXNpYmxlKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhpZGVzIHRoZSBtb2RhbC5cclxuICAgKiBDYWxsIHRoaXMgbWV0aG9kIHRvIGNsb3NlIHRoZSBtb2RhbCB3aW5kb3cuXHJcbiAgICovXHJcbiAgcHVibGljIGhpZGVNb2RhbCgpe1xyXG4gICAgdGhpcy52aXNpYmxlID0gZmFsc2U7XHJcbiAgICB0aGlzLnZpc2libGVDaGFuZ2UuZW1pdCh0aGlzLnZpc2libGUpO1xyXG4gIH1cclxufVxyXG4iLCI8YnV0dG9uICpuZ0lmPVwidmlzaWJsZVwiIChjbGljayk9XCJoaWRlTW9kYWwoKVwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiIGNsYXNzPVwiZGlhbG9nX19jbG9zZS1idG5cIj5YPC9idXR0b24+XHJcbjxkaXYgW0BkaWFsb2ddICpuZ0lmPVwidmlzaWJsZVwiIGNsYXNzPVwiZGlhbG9nXCIgI2RpYWxvZz5cclxuXHQ8ZGl2IGNsYXNzPVwibW9kYWwtY29udGVudFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlciBjbGVhcmZpeCB0ZXh0LWxlZnRcIj5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJtb2RhbF9oZWFkZXJcIj48L25nLXRlbXBsYXRlPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHlcIj5cclxuICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1mb290ZXJcIj5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJtb2RhbF9mb290ZXJcIj48L25nLXRlbXBsYXRlPlxyXG4gICAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbjxkaXYgKm5nSWY9XCJ2aXNpYmxlXCIgY2xhc3M9XCJvdmVybGF5XCIgKGNsaWNrKT1cImhpZGVNb2RhbCgpXCI+PC9kaXY+XHJcbiJdfQ==