@ptsecurity/mosaic 16.1.2 → 16.3.0

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 (113) hide show
  1. package/_theming.scss +121 -4
  2. package/checkbox/checkbox.scss +4 -7
  3. package/core/forms/_forms-theme.scss +112 -0
  4. package/core/locales/index.d.ts +0 -2
  5. package/core/pop-up/pop-up.d.ts +3 -0
  6. package/core/selection/pseudo-checkbox/pseudo-checkbox.scss +3 -5
  7. package/core/styles/_core.scss +0 -1
  8. package/core/styles/theming/_scrollbars.scss +9 -3
  9. package/esm2022/autocomplete/autocomplete-trigger.directive.mjs +6 -6
  10. package/esm2022/button/button.component.mjs +6 -3
  11. package/esm2022/checkbox/checkbox.mjs +2 -2
  12. package/esm2022/code-block/actionbar.component.mjs +1 -1
  13. package/esm2022/core/formatters/index.mjs +4 -3
  14. package/esm2022/core/locales/index.mjs +1 -3
  15. package/esm2022/core/pop-up/pop-up.mjs +1 -1
  16. package/esm2022/core/selection/pseudo-checkbox/pseudo-checkbox.mjs +2 -2
  17. package/esm2022/core/version.mjs +2 -2
  18. package/esm2022/dropdown/dropdown-trigger.directive.mjs +3 -2
  19. package/esm2022/file-upload/file-drop.mjs +40 -3
  20. package/esm2022/file-upload/file-upload.mjs +1 -1
  21. package/esm2022/file-upload/multiple-file-upload.component.mjs +3 -3
  22. package/esm2022/file-upload/single-file-upload.component.mjs +1 -1
  23. package/esm2022/form-field/form-field.mjs +2 -2
  24. package/esm2022/form-field/validate.directive.mjs +9 -3
  25. package/esm2022/modal/modal.component.mjs +4 -9
  26. package/esm2022/navbar/navbar.component.mjs +3 -2
  27. package/esm2022/navbar/vertical-navbar.animation.mjs +2 -2
  28. package/esm2022/navbar/vertical-navbar.component.mjs +3 -2
  29. package/esm2022/select/select-option.directive.mjs +15 -3
  30. package/esm2022/select/select.component.mjs +29 -16
  31. package/esm2022/tabs/tab-group.component.mjs +1 -1
  32. package/esm2022/tags/tag-list.component.mjs +5 -4
  33. package/esm2022/timezone/timezone-select.component.mjs +3 -3
  34. package/esm2022/toast/toast-animations.mjs +2 -1
  35. package/esm2022/toast/toast-container.component.mjs +21 -7
  36. package/esm2022/toast/toast.component.mjs +7 -2
  37. package/esm2022/toast/toast.service.mjs +2 -1
  38. package/esm2022/toggle/toggle.component.mjs +3 -3
  39. package/esm2022/tooltip/tooltip.component.mjs +16 -4
  40. package/esm2022/tree/control/base-tree-control.mjs +1 -1
  41. package/esm2022/tree/control/flat-tree-control.filters.mjs +46 -0
  42. package/esm2022/tree/control/flat-tree-control.mjs +26 -44
  43. package/esm2022/tree/control/tree-control.mjs +1 -1
  44. package/esm2022/tree/padding.directive.mjs +2 -2
  45. package/esm2022/tree/public-api.mjs +2 -1
  46. package/esm2022/tree/toggle.mjs +2 -4
  47. package/esm2022/tree-select/tree-select.component.mjs +26 -10
  48. package/esm2022/tree-select/tree-select.module.mjs +6 -6
  49. package/fesm2022/ptsecurity-mosaic-autocomplete.mjs +5 -5
  50. package/fesm2022/ptsecurity-mosaic-autocomplete.mjs.map +1 -1
  51. package/fesm2022/ptsecurity-mosaic-button.mjs +5 -2
  52. package/fesm2022/ptsecurity-mosaic-button.mjs.map +1 -1
  53. package/fesm2022/ptsecurity-mosaic-checkbox.mjs +2 -2
  54. package/fesm2022/ptsecurity-mosaic-checkbox.mjs.map +1 -1
  55. package/fesm2022/ptsecurity-mosaic-code-block.mjs +1 -1
  56. package/fesm2022/ptsecurity-mosaic-code-block.mjs.map +1 -1
  57. package/fesm2022/ptsecurity-mosaic-core.mjs +8 -10
  58. package/fesm2022/ptsecurity-mosaic-core.mjs.map +1 -1
  59. package/fesm2022/ptsecurity-mosaic-dropdown.mjs +2 -1
  60. package/fesm2022/ptsecurity-mosaic-dropdown.mjs.map +1 -1
  61. package/fesm2022/ptsecurity-mosaic-file-upload.mjs +41 -4
  62. package/fesm2022/ptsecurity-mosaic-file-upload.mjs.map +1 -1
  63. package/fesm2022/ptsecurity-mosaic-form-field.mjs +10 -4
  64. package/fesm2022/ptsecurity-mosaic-form-field.mjs.map +1 -1
  65. package/fesm2022/ptsecurity-mosaic-modal.mjs +3 -8
  66. package/fesm2022/ptsecurity-mosaic-modal.mjs.map +1 -1
  67. package/fesm2022/ptsecurity-mosaic-navbar.mjs +5 -3
  68. package/fesm2022/ptsecurity-mosaic-navbar.mjs.map +1 -1
  69. package/fesm2022/ptsecurity-mosaic-select.mjs +42 -17
  70. package/fesm2022/ptsecurity-mosaic-select.mjs.map +1 -1
  71. package/fesm2022/ptsecurity-mosaic-tabs.mjs +1 -1
  72. package/fesm2022/ptsecurity-mosaic-tabs.mjs.map +1 -1
  73. package/fesm2022/ptsecurity-mosaic-tags.mjs +4 -3
  74. package/fesm2022/ptsecurity-mosaic-tags.mjs.map +1 -1
  75. package/fesm2022/ptsecurity-mosaic-timezone.mjs +2 -2
  76. package/fesm2022/ptsecurity-mosaic-timezone.mjs.map +1 -1
  77. package/fesm2022/ptsecurity-mosaic-toast.mjs +25 -8
  78. package/fesm2022/ptsecurity-mosaic-toast.mjs.map +1 -1
  79. package/fesm2022/ptsecurity-mosaic-toggle.mjs +2 -2
  80. package/fesm2022/ptsecurity-mosaic-toggle.mjs.map +1 -1
  81. package/fesm2022/ptsecurity-mosaic-tooltip.mjs +15 -3
  82. package/fesm2022/ptsecurity-mosaic-tooltip.mjs.map +1 -1
  83. package/fesm2022/ptsecurity-mosaic-tree-select.mjs +30 -14
  84. package/fesm2022/ptsecurity-mosaic-tree-select.mjs.map +1 -1
  85. package/fesm2022/ptsecurity-mosaic-tree.mjs +74 -48
  86. package/fesm2022/ptsecurity-mosaic-tree.mjs.map +1 -1
  87. package/file-upload/file-drop.d.ts +2 -1
  88. package/file-upload/file-upload.d.ts +4 -1
  89. package/file-upload/multiple-file-upload.component.d.ts +2 -2
  90. package/file-upload/single-file-upload.component.d.ts +2 -2
  91. package/form-field/form-field.scss +0 -2
  92. package/package.json +18 -18
  93. package/prebuilt-themes/dark-theme.css +1 -1
  94. package/prebuilt-themes/default-theme.css +1 -1
  95. package/select/select-option.directive.d.ts +2 -0
  96. package/select/select.component.d.ts +4 -3
  97. package/select/select.scss +4 -0
  98. package/tags/tag-list.scss +4 -0
  99. package/toast/toast-animations.d.ts +1 -0
  100. package/toast/toast-container.component.d.ts +7 -3
  101. package/toast/toast.component.d.ts +2 -0
  102. package/toast/toast.service.d.ts +2 -0
  103. package/toggle/_toggle-theme.scss +13 -1
  104. package/toggle/toggle.scss +6 -2
  105. package/tooltip/tooltip.component.d.ts +4 -1
  106. package/tree/control/base-tree-control.d.ts +1 -1
  107. package/tree/control/flat-tree-control.d.ts +5 -3
  108. package/tree/control/flat-tree-control.filters.d.ts +26 -0
  109. package/tree/control/tree-control.d.ts +1 -1
  110. package/tree/public-api.d.ts +1 -0
  111. package/tree-select/tree-select.component.d.ts +9 -3
  112. package/tree-select/tree-select.module.d.ts +1 -1
  113. package/core/forms/_forms.scss +0 -109
@@ -1,10 +1,21 @@
1
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Injector, ViewChild, ViewContainerRef, ViewEncapsulation } from '@angular/core';
1
+ import { CdkScrollable, ScrollDispatcher } from '@angular/cdk/overlay';
2
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, forwardRef, Inject, Injector, NgZone, ViewChild, ViewContainerRef, ViewEncapsulation } from '@angular/core';
3
+ import { McToastService } from './toast.service';
2
4
  import { McToastData } from './toast.type';
3
5
  import * as i0 from "@angular/core";
4
- export class McToastContainerComponent {
5
- constructor(injector, changeDetectorRef) {
6
+ import * as i1 from "@angular/cdk/overlay";
7
+ import * as i2 from "./toast.service";
8
+ export class McToastContainerComponent extends CdkScrollable {
9
+ constructor(injector, changeDetectorRef, service, elementRef, scrollDispatcher, ngZone) {
10
+ super(elementRef, scrollDispatcher, ngZone);
6
11
  this.injector = injector;
7
12
  this.changeDetectorRef = changeDetectorRef;
13
+ this.service = service;
14
+ this.dispatchScrollEvent = () => {
15
+ this.elementRef.nativeElement.dispatchEvent(new CustomEvent('scroll'));
16
+ };
17
+ this.service.animation
18
+ .subscribe(this.dispatchScrollEvent);
8
19
  }
9
20
  createToast(data, componentType, onTop) {
10
21
  const injector = this.getInjector(data);
@@ -29,16 +40,19 @@ export class McToastContainerComponent {
29
40
  parent: this.injector
30
41
  });
31
42
  }
32
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: McToastContainerComponent, deps: [{ token: i0.Injector }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
33
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: McToastContainerComponent, selector: "mc-toast-container", host: { classAttribute: "mc-toast-container" }, viewQueries: [{ propertyName: "viewContainer", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: '<ng-container #container></ng-container>', isInline: true, styles: [".mc-toast-container{display:flex;flex-direction:column;gap:var(--mc-toast-size-gap, 12px)}.cdk-overlay-container .mc-toast-overlay,.cdk-overlay-container .mc-toast-overlay~*:not(.mc-modal-overlay,.mc-sidepanel-overlay,.cdk-overlay-backdrop){z-index:1010}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
43
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: McToastContainerComponent, deps: [{ token: i0.Injector }, { token: i0.ChangeDetectorRef }, { token: forwardRef(() => McToastService) }, { token: i0.ElementRef }, { token: i1.ScrollDispatcher }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
44
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: McToastContainerComponent, selector: "mc-toast-container", host: { classAttribute: "mc-toast-container" }, viewQueries: [{ propertyName: "viewContainer", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef, static: true }], usesInheritance: true, ngImport: i0, template: '<ng-container #container></ng-container>', isInline: true, styles: [".mc-toast-container{display:flex;flex-direction:column;gap:var(--mc-toast-size-gap, 12px)}.cdk-overlay-container .mc-toast-overlay,.cdk-overlay-container .mc-toast-overlay~*:not(.mc-modal-overlay,.mc-sidepanel-overlay,.cdk-overlay-backdrop){z-index:1010}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
34
45
  }
35
46
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: McToastContainerComponent, decorators: [{
36
47
  type: Component,
37
48
  args: [{ selector: 'mc-toast-container', template: '<ng-container #container></ng-container>', host: {
38
49
  class: 'mc-toast-container'
39
50
  }, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, styles: [".mc-toast-container{display:flex;flex-direction:column;gap:var(--mc-toast-size-gap, 12px)}.cdk-overlay-container .mc-toast-overlay,.cdk-overlay-container .mc-toast-overlay~*:not(.mc-modal-overlay,.mc-sidepanel-overlay,.cdk-overlay-backdrop){z-index:1010}\n"] }]
40
- }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { viewContainer: [{
51
+ }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ChangeDetectorRef }, { type: i2.McToastService, decorators: [{
52
+ type: Inject,
53
+ args: [forwardRef(() => McToastService)]
54
+ }] }, { type: i0.ElementRef }, { type: i1.ScrollDispatcher }, { type: i0.NgZone }]; }, propDecorators: { viewContainer: [{
41
55
  type: ViewChild,
42
56
  args: ['container', { static: true, read: ViewContainerRef }]
43
57
  }] } });
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QtY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21vc2FpYy90b2FzdC90b2FzdC1jb250YWluZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFHVCxRQUFRLEVBRVIsU0FBUyxFQUNULGdCQUFnQixFQUNoQixpQkFBaUIsRUFFcEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFhM0MsTUFBTSxPQUFPLHlCQUF5QjtJQUdsQyxZQUNZLFFBQWtCLEVBQ2xCLGlCQUFvQztRQURwQyxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7SUFDN0MsQ0FBQztJQUVKLFdBQVcsQ0FBSSxJQUFpQixFQUFFLGFBQWEsRUFBRSxLQUFjO1FBQzNELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEMsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUVwQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFdEMsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxhQUFhLEVBQUUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNsRixDQUFDO0lBRUQsY0FBYyxDQUFJLElBQWlCLEVBQUUsUUFBMEIsRUFBRSxLQUFjO1FBQzNFLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFFcEMsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN2RixDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQWdCO1FBQ25CLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWxELElBQUksS0FBSyxHQUFHLENBQUMsRUFBRTtZQUFFLE9BQU87U0FBRTtRQUUxQixJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsV0FBVyxDQUFDLElBQWlCO1FBQ3pCLE9BQU8sUUFBUSxDQUFDLE1BQU0sQ0FBQztZQUNuQixTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO1lBQ3JELE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUTtTQUN4QixDQUFDLENBQUM7SUFDUCxDQUFDO2lJQXBDUSx5QkFBeUI7cUhBQXpCLHlCQUF5QixpTUFDWSxnQkFBZ0IsMkNBVHBELDBDQUEwQzs7MkZBUTNDLHlCQUF5QjtrQkFWckMsU0FBUzsrQkFDSSxvQkFBb0IsWUFDcEIsMENBQTBDLFFBRTlDO3dCQUNGLEtBQUssRUFBRSxvQkFBb0I7cUJBQzlCLG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJOytIQUc2QixhQUFhO3NCQUE5RSxTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29tcG9uZW50UmVmLFxuICAgIEVtYmVkZGVkVmlld1JlZixcbiAgICBJbmplY3RvcixcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0NvbnRhaW5lclJlZixcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBWaWV3UmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBNY1RvYXN0RGF0YSB9IGZyb20gJy4vdG9hc3QudHlwZSc7XG5cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdtYy10b2FzdC1jb250YWluZXInLFxuICAgIHRlbXBsYXRlOiAnPG5nLWNvbnRhaW5lciAjY29udGFpbmVyPjwvbmctY29udGFpbmVyPicsXG4gICAgc3R5bGVVcmxzOiBbJy4vdG9hc3QtY29udGFpbmVyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ21jLXRvYXN0LWNvbnRhaW5lcidcbiAgICB9LFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgTWNUb2FzdENvbnRhaW5lckNvbXBvbmVudCB7XG4gICAgQFZpZXdDaGlsZCgnY29udGFpbmVyJywgeyBzdGF0aWM6IHRydWUsIHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSkgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgICApIHt9XG5cbiAgICBjcmVhdGVUb2FzdDxDPihkYXRhOiBNY1RvYXN0RGF0YSwgY29tcG9uZW50VHlwZSwgb25Ub3A6IGJvb2xlYW4pOiBDb21wb25lbnRSZWY8Qz4ge1xuICAgICAgICBjb25zdCBpbmplY3RvciA9IHRoaXMuZ2V0SW5qZWN0b3IoZGF0YSk7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gb25Ub3AgPyAwIDogdW5kZWZpbmVkO1xuXG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMudmlld0NvbnRhaW5lci5jcmVhdGVDb21wb25lbnQoY29tcG9uZW50VHlwZSwgeyBpbmplY3RvciwgaW5kZXggfSk7XG4gICAgfVxuXG4gICAgY3JlYXRlVGVtcGxhdGU8Qz4oZGF0YTogTWNUb2FzdERhdGEsIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+LCBvblRvcDogYm9vbGVhbik6IEVtYmVkZGVkVmlld1JlZjxDPiB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gb25Ub3AgPyAwIDogdW5kZWZpbmVkO1xuXG4gICAgICAgIHJldHVybiB0aGlzLnZpZXdDb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KHRlbXBsYXRlLCB7ICRpbXBsaWNpdDogZGF0YSB9LCBpbmRleCk7XG4gICAgfVxuXG4gICAgcmVtb3ZlKHZpZXdSZWY6IFZpZXdSZWYpIHtcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLnZpZXdDb250YWluZXIuaW5kZXhPZih2aWV3UmVmKTtcblxuICAgICAgICBpZiAoaW5kZXggPCAwKSB7IHJldHVybjsgfVxuXG4gICAgICAgIHRoaXMudmlld0NvbnRhaW5lci5yZW1vdmUoaW5kZXgpO1xuICAgIH1cblxuICAgIGdldEluamVjdG9yKGRhdGE6IE1jVG9hc3REYXRhKTogSW5qZWN0b3Ige1xuICAgICAgICByZXR1cm4gSW5qZWN0b3IuY3JlYXRlKHtcbiAgICAgICAgICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTWNUb2FzdERhdGEsIHVzZVZhbHVlOiBkYXRhIH1dLFxuICAgICAgICAgICAgcGFyZW50OiB0aGlzLmluamVjdG9yXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QtY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21vc2FpYy90b2FzdC90b2FzdC1jb250YWluZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBRVQsVUFBVSxFQUVWLFVBQVUsRUFDVixNQUFNLEVBQ04sUUFBUSxFQUNSLE1BQU0sRUFFTixTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUVwQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7OztBQWEzQyxNQUFNLE9BQU8seUJBQTBCLFNBQVEsYUFBYTtJQUd4RCxZQUNZLFFBQWtCLEVBQ2xCLGlCQUFvQyxFQUNPLE9BQXVCLEVBRTFFLFVBQW1DLEVBQ25DLGdCQUFrQyxFQUNsQyxNQUFjO1FBRWQsS0FBSyxDQUFDLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLENBQUMsQ0FBQztRQVJwQyxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDTyxZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQTBDOUUsd0JBQW1CLEdBQUcsR0FBRyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQzNFLENBQUMsQ0FBQTtRQXBDRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVM7YUFDakIsU0FBUyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxXQUFXLENBQUksSUFBaUIsRUFBRSxhQUFhLEVBQUUsS0FBYztRQUMzRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hDLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFFcEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBRXRDLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsYUFBYSxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDbEYsQ0FBQztJQUVELGNBQWMsQ0FBSSxJQUFpQixFQUFFLFFBQTBCLEVBQUUsS0FBYztRQUMzRSxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBRXBDLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDdkYsQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFnQjtRQUNuQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVsRCxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUU7WUFBRSxPQUFPO1NBQUU7UUFFMUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELFdBQVcsQ0FBQyxJQUFpQjtRQUN6QixPQUFPLFFBQVEsQ0FBQyxNQUFNLENBQUM7WUFDbkIsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUNyRCxNQUFNLEVBQUUsSUFBSSxDQUFDLFFBQVE7U0FDeEIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztpSUE5Q1EseUJBQXlCLDJFQU10QixVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsY0FBYyxDQUFDO3FIQU5uQyx5QkFBeUIsaU1BQ1ksZ0JBQWdCLGtFQVRwRCwwQ0FBMEM7OzJGQVEzQyx5QkFBeUI7a0JBVnJDLFNBQVM7K0JBQ0ksb0JBQW9CLFlBQ3BCLDBDQUEwQyxRQUU5Qzt3QkFDRixLQUFLLEVBQUUsb0JBQW9CO3FCQUM5QixtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSTs7MEJBUWhDLE1BQU07MkJBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGNBQWMsQ0FBQzt5SEFMc0IsYUFBYTtzQkFBOUUsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENka1Njcm9sbGFibGUsIFNjcm9sbERpc3BhdGNoZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb21wb25lbnRSZWYsXG4gICAgRWxlbWVudFJlZixcbiAgICBFbWJlZGRlZFZpZXdSZWYsXG4gICAgZm9yd2FyZFJlZixcbiAgICBJbmplY3QsXG4gICAgSW5qZWN0b3IsXG4gICAgTmdab25lLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3Q29udGFpbmVyUmVmLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIFZpZXdSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE1jVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi90b2FzdC5zZXJ2aWNlJztcbmltcG9ydCB7IE1jVG9hc3REYXRhIH0gZnJvbSAnLi90b2FzdC50eXBlJztcblxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ21jLXRvYXN0LWNvbnRhaW5lcicsXG4gICAgdGVtcGxhdGU6ICc8bmctY29udGFpbmVyICNjb250YWluZXI+PC9uZy1jb250YWluZXI+JyxcbiAgICBzdHlsZVVybHM6IFsnLi90b2FzdC1jb250YWluZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAnbWMtdG9hc3QtY29udGFpbmVyJ1xuICAgIH0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBNY1RvYXN0Q29udGFpbmVyQ29tcG9uZW50IGV4dGVuZHMgQ2RrU2Nyb2xsYWJsZSB7XG4gICAgQFZpZXdDaGlsZCgnY29udGFpbmVyJywgeyBzdGF0aWM6IHRydWUsIHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSkgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBJbmplY3QoZm9yd2FyZFJlZigoKSA9PiBNY1RvYXN0U2VydmljZSkpIHJlYWRvbmx5IHNlcnZpY2U6IE1jVG9hc3RTZXJ2aWNlLFxuXG4gICAgICAgIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgICAgICBzY3JvbGxEaXNwYXRjaGVyOiBTY3JvbGxEaXNwYXRjaGVyLFxuICAgICAgICBuZ1pvbmU6IE5nWm9uZVxuICAgICkge1xuICAgICAgICBzdXBlcihlbGVtZW50UmVmLCBzY3JvbGxEaXNwYXRjaGVyLCBuZ1pvbmUpO1xuXG4gICAgICAgIHRoaXMuc2VydmljZS5hbmltYXRpb25cbiAgICAgICAgICAgIC5zdWJzY3JpYmUodGhpcy5kaXNwYXRjaFNjcm9sbEV2ZW50KTtcbiAgICB9XG5cbiAgICBjcmVhdGVUb2FzdDxDPihkYXRhOiBNY1RvYXN0RGF0YSwgY29tcG9uZW50VHlwZSwgb25Ub3A6IGJvb2xlYW4pOiBDb21wb25lbnRSZWY8Qz4ge1xuICAgICAgICBjb25zdCBpbmplY3RvciA9IHRoaXMuZ2V0SW5qZWN0b3IoZGF0YSk7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gb25Ub3AgPyAwIDogdW5kZWZpbmVkO1xuXG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMudmlld0NvbnRhaW5lci5jcmVhdGVDb21wb25lbnQoY29tcG9uZW50VHlwZSwgeyBpbmplY3RvciwgaW5kZXggfSk7XG4gICAgfVxuXG4gICAgY3JlYXRlVGVtcGxhdGU8Qz4oZGF0YTogTWNUb2FzdERhdGEsIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+LCBvblRvcDogYm9vbGVhbik6IEVtYmVkZGVkVmlld1JlZjxDPiB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gb25Ub3AgPyAwIDogdW5kZWZpbmVkO1xuXG4gICAgICAgIHJldHVybiB0aGlzLnZpZXdDb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KHRlbXBsYXRlLCB7ICRpbXBsaWNpdDogZGF0YSB9LCBpbmRleCk7XG4gICAgfVxuXG4gICAgcmVtb3ZlKHZpZXdSZWY6IFZpZXdSZWYpIHtcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLnZpZXdDb250YWluZXIuaW5kZXhPZih2aWV3UmVmKTtcblxuICAgICAgICBpZiAoaW5kZXggPCAwKSB7IHJldHVybjsgfVxuXG4gICAgICAgIHRoaXMudmlld0NvbnRhaW5lci5yZW1vdmUoaW5kZXgpO1xuICAgIH1cblxuICAgIGdldEluamVjdG9yKGRhdGE6IE1jVG9hc3REYXRhKTogSW5qZWN0b3Ige1xuICAgICAgICByZXR1cm4gSW5qZWN0b3IuY3JlYXRlKHtcbiAgICAgICAgICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTWNUb2FzdERhdGEsIHVzZVZhbHVlOiBkYXRhIH1dLFxuICAgICAgICAgICAgcGFyZW50OiB0aGlzLmluamVjdG9yXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGRpc3BhdGNoU2Nyb2xsRXZlbnQgPSAoKSA9PiB7XG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCdzY3JvbGwnKSk7XG4gICAgfVxufVxuIl19
@@ -63,6 +63,9 @@ export class McToastComponent {
63
63
  isTemplateRef(value) {
64
64
  return value instanceof TemplateRef;
65
65
  }
66
+ onAnimation($event) {
67
+ this.service.animation.next($event);
68
+ }
66
69
  runFocusMonitor() {
67
70
  this.focusMonitor
68
71
  .monitor(this.elementRef.nativeElement, true)
@@ -72,7 +75,7 @@ export class McToastComponent {
72
75
  this.focusMonitor.stopMonitoring(this.elementRef.nativeElement);
73
76
  }
74
77
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: McToastComponent, deps: [{ token: i1.McToastData }, { token: forwardRef(() => McToastService) }, { token: i0.ElementRef }, { token: i2.FocusMonitor }], target: i0.ɵɵFactoryTarget.Component }); }
75
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: McToastComponent, selector: "mc-toast", host: { listeners: { "mouseenter": "hovered.next(true)", "mouseleave": "hovered.next(false)", "keydown.esc": "close()" }, properties: { "class": "toastStyle", "class.mc-toast_dismissible": "hasDismiss", "@state": "animationState" }, classAttribute: "mc-toast" }, ngImport: i0, template: "<div class=\"mc-toast__wrapper\">\n <div class=\"mc-toast__icon-container\">\n <ng-container *ngIf=\"isTemplateRef(data.icon)\"\n [ngTemplateOutlet]=\"$any(data.icon)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!data.icon\">\n <ng-container [ngSwitch]=\"data.style\">\n <ng-container *ngSwitchCase=\"'info'\">\n <i mc-icon=\"mc-info_16\" class=\"mc-toast__icon\"></i>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'success'\">\n <i mc-icon=\"mc-success_16\" class=\"mc-toast__icon\"></i>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'warning'\">\n <i mc-icon=\"mc-error_16\" class=\"mc-toast__icon\"></i>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'error'\">\n <i mc-icon=\"mc-error_16\" class=\"mc-toast__icon\"></i>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n\n <div class=\"mc-toast__container\">\n <div *ngIf=\"data.title\" class=\"mc-toast__title\">\n <ng-container *ngIf=\"isTemplateRef(data.title)\"\n [ngTemplateOutlet]=\"$any(data.title)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!isTemplateRef(data.title)\">\n <button\n class=\"mc-button_transparent mc-toast__close\"\n mc-button\n *ngIf=\"hasDismiss\"\n (click)=\"close()\">\n\n <i class=\"mc-icon_light\" mc-icon=\"mc-close-L_16\" [color]=\"themePalette.Secondary\"></i>\n </button>\n <p>{{ data.title }}</p>\n </ng-container>\n </div>\n\n <div *ngIf=\"data.caption\" class=\"mc-toast__caption\">\n <ng-container *ngIf=\"isTemplateRef(data.caption)\"\n [ngTemplateOutlet]=\"$any(data.caption)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!isTemplateRef(data.caption)\">{{ data.caption }}</ng-container>\n </div>\n\n <div *ngIf=\"data.content\" class=\"mc-toast__content\">\n <ng-container *ngIf=\"isTemplateRef(data.content)\"\n [ngTemplateOutlet]=\"$any(data.content)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!isTemplateRef(data.content)\">{{ data.content }}</ng-container>\n </div>\n\n <div *ngIf=\"data.actions\" class=\"mc-toast__actions\">\n <ng-container *ngIf=\"isTemplateRef(data.actions)\"\n [ngTemplateOutlet]=\"$any(data.actions)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!isTemplateRef(data.actions)\">{{ data.actions }}</ng-container>\n </div>\n </div>\n</div>\n", styles: [".mc-toast{box-sizing:border-box;z-index:1070;max-height:200px;height:auto}.mc-toast__wrapper{box-sizing:border-box;display:flex;flex:1 1 auto;width:var(--mc-toast-size-width, 360px);padding-right:var(--mc-toast-size-padding-right, 16px);padding-left:var(--mc-toast-size-padding-left, 12px);border-width:var(--mc-toast-size-border-width, 1px);border-style:solid;border-radius:var(--mc-toast-size-border-radius, 3px)}.mc-toast__icon-container{padding-right:var(--mc-toast-size-icon-margin, 8px);padding-top:var(--mc-toast-size-padding-vertical, 12px);padding-bottom:var(--mc-toast-size-padding-vertical, 12px)}.mc-toast__container{width:100%;padding-top:var(--mc-toast-size-padding-vertical, 12px);padding-bottom:var(--mc-toast-size-padding-vertical, 12px)}.mc-toast__title>p{margin:0}.mc-toast__content{display:flex;flex-direction:column}.mc-toast__actions{margin-top:var(--mc-toast-size-actionbar-margin, 8px)}.mc-toast__actions>*{margin-right:var(--mc-toast-size-actionbar-gap, 12px)}.mc-toast__close{float:right;width:var(--mc-toast-size-close-button-width, 32px);height:var(--mc-toast-size-close-button-width, 32px);margin:-6px -8px -6px 8px}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i4.McIcon, selector: "[mc-icon]", inputs: ["color"] }, { kind: "directive", type: i4.McIconCSSStyler, selector: "[mc-icon]" }, { kind: "component", type: i5.McButton, selector: "[mc-button]", inputs: ["color", "tabIndex", "disabled"] }, { kind: "directive", type: i5.McButtonCssStyler, selector: "[mc-button]" }], animations: [mcToastAnimations.toastState], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
78
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: McToastComponent, selector: "mc-toast", host: { listeners: { "@state.start": "onAnimation($event)", "@state.done": "onAnimation($event)", "mouseenter": "hovered.next(true)", "mouseleave": "hovered.next(false)", "keydown.esc": "close()" }, properties: { "class": "toastStyle", "class.mc-toast_dismissible": "hasDismiss", "@state": "animationState" }, classAttribute: "mc-toast" }, ngImport: i0, template: "<div class=\"mc-toast__wrapper\">\n <div class=\"mc-toast__icon-container\">\n <ng-container *ngIf=\"isTemplateRef(data.icon)\"\n [ngTemplateOutlet]=\"$any(data.icon)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!data.icon\">\n <ng-container [ngSwitch]=\"data.style\">\n <ng-container *ngSwitchCase=\"'info'\">\n <i mc-icon=\"mc-info_16\" class=\"mc-toast__icon\"></i>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'success'\">\n <i mc-icon=\"mc-success_16\" class=\"mc-toast__icon\"></i>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'warning'\">\n <i mc-icon=\"mc-error_16\" class=\"mc-toast__icon\"></i>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'error'\">\n <i mc-icon=\"mc-error_16\" class=\"mc-toast__icon\"></i>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n\n <div class=\"mc-toast__container\">\n <div *ngIf=\"data.title\" class=\"mc-toast__title\">\n <ng-container *ngIf=\"isTemplateRef(data.title)\"\n [ngTemplateOutlet]=\"$any(data.title)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!isTemplateRef(data.title)\">\n <button\n class=\"mc-button_transparent mc-toast__close\"\n mc-button\n *ngIf=\"hasDismiss\"\n (click)=\"close()\">\n\n <i class=\"mc-icon_light\" mc-icon=\"mc-close-L_16\" [color]=\"themePalette.Secondary\"></i>\n </button>\n <p>{{ data.title }}</p>\n </ng-container>\n </div>\n\n <div *ngIf=\"data.caption\" class=\"mc-toast__caption\">\n <ng-container *ngIf=\"isTemplateRef(data.caption)\"\n [ngTemplateOutlet]=\"$any(data.caption)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!isTemplateRef(data.caption)\">{{ data.caption }}</ng-container>\n </div>\n\n <div *ngIf=\"data.content\" class=\"mc-toast__content\">\n <ng-container *ngIf=\"isTemplateRef(data.content)\"\n [ngTemplateOutlet]=\"$any(data.content)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!isTemplateRef(data.content)\">{{ data.content }}</ng-container>\n </div>\n\n <div *ngIf=\"data.actions\" class=\"mc-toast__actions\">\n <ng-container *ngIf=\"isTemplateRef(data.actions)\"\n [ngTemplateOutlet]=\"$any(data.actions)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!isTemplateRef(data.actions)\">{{ data.actions }}</ng-container>\n </div>\n </div>\n</div>\n", styles: [".mc-toast{box-sizing:border-box;z-index:1070;max-height:200px;height:auto}.mc-toast__wrapper{box-sizing:border-box;display:flex;flex:1 1 auto;width:var(--mc-toast-size-width, 360px);padding-right:var(--mc-toast-size-padding-right, 16px);padding-left:var(--mc-toast-size-padding-left, 12px);border-width:var(--mc-toast-size-border-width, 1px);border-style:solid;border-radius:var(--mc-toast-size-border-radius, 3px)}.mc-toast__icon-container{padding-right:var(--mc-toast-size-icon-margin, 8px);padding-top:var(--mc-toast-size-padding-vertical, 12px);padding-bottom:var(--mc-toast-size-padding-vertical, 12px)}.mc-toast__container{width:100%;padding-top:var(--mc-toast-size-padding-vertical, 12px);padding-bottom:var(--mc-toast-size-padding-vertical, 12px)}.mc-toast__title>p{margin:0}.mc-toast__content{display:flex;flex-direction:column}.mc-toast__actions{margin-top:var(--mc-toast-size-actionbar-margin, 8px)}.mc-toast__actions>*{margin-right:var(--mc-toast-size-actionbar-gap, 12px)}.mc-toast__close{float:right;width:var(--mc-toast-size-close-button-width, 32px);height:var(--mc-toast-size-close-button-width, 32px);margin:-6px -8px -6px 8px}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i4.McIcon, selector: "[mc-icon]", inputs: ["color"] }, { kind: "directive", type: i4.McIconCSSStyler, selector: "[mc-icon]" }, { kind: "component", type: i5.McButton, selector: "[mc-button]", inputs: ["color", "tabIndex", "disabled"] }, { kind: "directive", type: i5.McButtonCssStyler, selector: "[mc-button]" }], animations: [mcToastAnimations.toastState], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
76
79
  }
77
80
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: McToastComponent, decorators: [{
78
81
  type: Component,
@@ -81,6 +84,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImpor
81
84
  '[class]': 'toastStyle',
82
85
  '[class.mc-toast_dismissible]': 'hasDismiss',
83
86
  '[@state]': 'animationState',
87
+ '(@state.start)': 'onAnimation($event)',
88
+ '(@state.done)': 'onAnimation($event)',
84
89
  '(mouseenter)': 'hovered.next(true)',
85
90
  '(mouseleave)': 'hovered.next(false)',
86
91
  '(keydown.esc)': 'close()'
@@ -89,4 +94,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImpor
89
94
  type: Inject,
90
95
  args: [forwardRef(() => McToastService)]
91
96
  }] }, { type: i0.ElementRef }, { type: i2.FocusMonitor }]; } });
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvbW9zYWljL3RvYXN0L3RvYXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21vc2FpYy90b2FzdC90b2FzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFlLE1BQU0sbUJBQW1CLENBQUM7QUFDOUQsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLFVBQVUsRUFDVixNQUFNLEVBRU4sV0FBVyxFQUNYLGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7Ozs7O0FBRzNDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztBQXFCWCxNQUFNLE9BQU8sZ0JBQWdCO0lBY3pCLElBQUksVUFBVTtRQUNWLE9BQU87WUFDSCxDQUFDLFlBQVksSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksTUFBTSxFQUFFLENBQUMsRUFBRSxJQUFJO1NBQ2xELENBQUM7SUFDTixDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1YsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FB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Q0FBQztJQUNwRSxDQUFDO2lJQS9FUSxnQkFBZ0IsNkNBZ0NiLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxjQUFjLENBQUM7cUhBaENuQyxnQkFBZ0IsdVRDekM3Qix5c0dBNEVBLGs4RER2Q2dCLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDOzsyRkFJakMsZ0JBQWdCO2tCQW5CNUIsU0FBUzsrQkFDSSxVQUFVLFFBR2Q7d0JBQ0YsS0FBSyxFQUFFLFVBQVU7d0JBQ2pCLFNBQVMsRUFBRSxZQUFZO3dCQUN2Qiw4QkFBOEIsRUFBRSxZQUFZO3dCQUM1QyxVQUFVLEVBQUUsZ0JBQWdCO3dCQUU1QixjQUFjLEVBQUUsb0JBQW9CO3dCQUNwQyxjQUFjLEVBQUUscUJBQXFCO3dCQUVyQyxlQUFlLEVBQUUsU0FBUztxQkFDN0IsY0FDVyxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxtQkFDekIsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSTs7MEJBa0NoQyxNQUFNOzJCQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb2N1c01vbml0b3IsIEZvY3VzT3JpZ2luIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBmb3J3YXJkUmVmLFxuICAgIEluamVjdCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaGVtZVBhbGV0dGUgfSBmcm9tICdAcHRzZWN1cml0eS9tb3NhaWMvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIG1lcmdlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgbWNUb2FzdEFuaW1hdGlvbnMgfSBmcm9tICcuL3RvYXN0LWFuaW1hdGlvbnMnO1xuaW1wb3J0IHsgTWNUb2FzdFNlcnZpY2UgfSBmcm9tICcuL3RvYXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgTWNUb2FzdERhdGEgfSBmcm9tICcuL3RvYXN0LnR5cGUnO1xuXG5cbmxldCBpZCA9IDA7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbWMtdG9hc3QnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90b2FzdC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdG9hc3QuY29tcG9uZW50LnNjc3MnXSxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAnbWMtdG9hc3QnLFxuICAgICAgICAnW2NsYXNzXSc6ICd0b2FzdFN0eWxlJyxcbiAgICAgICAgJ1tjbGFzcy5tYy10b2FzdF9kaXNtaXNzaWJsZV0nOiAnaGFzRGlzbWlzcycsXG4gICAgICAgICdbQHN0YXRlXSc6ICdhbmltYXRpb25TdGF0ZScsXG5cbiAgICAgICAgJyhtb3VzZWVudGVyKSc6ICdob3ZlcmVkLm5leHQodHJ1ZSknLFxuICAgICAgICAnKG1vdXNlbGVhdmUpJzogJ2hvdmVyZWQubmV4dChmYWxzZSknLFxuXG4gICAgICAgICcoa2V5ZG93bi5lc2MpJzogJ2Nsb3NlKCknXG4gICAgfSxcbiAgICBhbmltYXRpb25zOiBbbWNUb2FzdEFuaW1hdGlvbnMudG9hc3RTdGF0ZV0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBNY1RvYXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgICB0aGVtZVBhbGV0dGUgPSBUaGVtZVBhbGV0dGU7XG5cbiAgICBhbmltYXRpb25TdGF0ZSA9ICd2b2lkJztcblxuICAgIHJlYWRvbmx5IGhvdmVyZWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgICByZWFkb25seSBmb2N1c2VkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgICBpZCA9IGlkKys7XG4gICAgdHRsO1xuICAgIGRlbGF5O1xuXG4gICAgJGltcGxpY2l0O1xuXG4gICAgZ2V0IHRvYXN0U3R5bGUoKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBbYG1jLXRvYXN0XyR7dGhpcy5kYXRhLnN0eWxlIHx8ICdpbmZvJ31gXTogdHJ1ZVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGdldCBoYXNEaXNtaXNzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5kYXRhLmhhc0Rpc21pc3MgPT09IHVuZGVmaW5lZCA/IHRydWUgOiB0aGlzLmRhdGEuaGFzRGlzbWlzcztcbiAgICB9XG5cbiAgICBnZXQgaXNGb2N1c2VkT3JIb3ZlcmVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5ob3ZlcmVkLmdldFZhbHVlKCkgfHwgdGhpcy5mb2N1c2VkLmdldFZhbHVlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkZXN0cm95ZWQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdCgpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHJlYWRvbmx5IGRhdGE6IE1jVG9hc3REYXRhLFxuICAgICAgICBASW5qZWN0KGZvcndhcmRSZWYoKCkgPT4gTWNUb2FzdFNlcnZpY2UpKSByZWFkb25seSBzZXJ2aWNlOiBNY1RvYXN0U2VydmljZSxcbiAgICAgICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgZm9jdXNNb25pdG9yOiBGb2N1c01vbml0b3JcbiAgICApIHtcbiAgICAgICAgdGhpcy4kaW1wbGljaXQgPSB0aGlzO1xuXG4gICAgICAgIHRoaXMuYW5pbWF0aW9uU3RhdGUgPSAndmlzaWJsZSc7XG5cbiAgICAgICAgdGhpcy5ydW5Gb2N1c01vbml0b3IoKTtcblxuICAgICAgICB0aGlzLmhvdmVyZWQuc3Vic2NyaWJlKHRoaXMuc2VydmljZS5ob3ZlcmVkKTtcbiAgICAgICAgdGhpcy5mb2N1c2VkLnN1YnNjcmliZSh0aGlzLnNlcnZpY2UuZm9jdXNlZCk7XG5cbiAgICAgICAgbWVyZ2UodGhpcy5ob3ZlcmVkLCB0aGlzLmZvY3VzZWQpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQpLCBmaWx0ZXIoKHZhbHVlKSA9PiB2YWx1ZSkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy50dGwgPT09IDApIHsgcmV0dXJuOyB9XG5cbiAgICAgICAgICAgICAgICB0aGlzLnR0bCA9IHRoaXMudHRsIDwgdGhpcy5kZWxheSA/IHRoaXMuZGVsYXkgOiB0aGlzLnR0bDtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLnN0b3BGb2N1c01vbml0b3IoKTtcblxuICAgICAgICB0aGlzLmhvdmVyZWQubmV4dChmYWxzZSk7XG4gICAgICAgIHRoaXMuZm9jdXNlZC5uZXh0KGZhbHNlKTtcblxuICAgICAgICB0aGlzLmRlc3Ryb3llZC5uZXh0KHRydWUpO1xuICAgIH1cblxuICAgIGNsb3NlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlcnZpY2UuaGlkZSh0aGlzLmlkKTtcbiAgICB9XG5cbiAgICBpc1RlbXBsYXRlUmVmKHZhbHVlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmO1xuICAgIH1cblxuICAgIHByaXZhdGUgcnVuRm9jdXNNb25pdG9yKCkge1xuICAgICAgICB0aGlzLmZvY3VzTW9uaXRvclxuICAgICAgICAgICAgLm1vbml0b3IodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHRydWUpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChvcmlnaW46IEZvY3VzT3JpZ2luKSA9PiB0aGlzLmZvY3VzZWQubmV4dCghIW9yaWdpbikpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RvcEZvY3VzTW9uaXRvcigpIHtcbiAgICAgICAgdGhpcy5mb2N1c01vbml0b3Iuc3RvcE1vbml0b3JpbmcodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJtYy10b2FzdF9fd3JhcHBlclwiPlxuICAgIDxkaXYgY2xhc3M9XCJtYy10b2FzdF9faWNvbi1jb250YWluZXJcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzVGVtcGxhdGVSZWYoZGF0YS5pY29uKVwiXG4gICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiJGFueShkYXRhLmljb24pXCJcbiAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQgfVwiPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWRhdGEuaWNvblwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiZGF0YS5zdHlsZVwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidpbmZvJ1wiPlxuICAgICAgICAgICAgICAgICAgICA8aSBtYy1pY29uPVwibWMtaW5mb18xNlwiIGNsYXNzPVwibWMtdG9hc3RfX2ljb25cIj48L2k+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInc3VjY2VzcydcIj5cbiAgICAgICAgICAgICAgICAgICAgPGkgbWMtaWNvbj1cIm1jLXN1Y2Nlc3NfMTZcIiBjbGFzcz1cIm1jLXRvYXN0X19pY29uXCI+PC9pPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3dhcm5pbmcnXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpIG1jLWljb249XCJtYy1lcnJvcl8xNlwiIGNsYXNzPVwibWMtdG9hc3RfX2ljb25cIj48L2k+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZXJyb3InXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpIG1jLWljb249XCJtYy1lcnJvcl8xNlwiIGNsYXNzPVwibWMtdG9hc3RfX2ljb25cIj48L2k+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwibWMtdG9hc3RfX2NvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiZGF0YS50aXRsZVwiIGNsYXNzPVwibWMtdG9hc3RfX3RpdGxlXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNUZW1wbGF0ZVJlZihkYXRhLnRpdGxlKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIiRhbnkoZGF0YS50aXRsZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQgfVwiPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNUZW1wbGF0ZVJlZihkYXRhLnRpdGxlKVwiPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtYy1idXR0b25fdHJhbnNwYXJlbnQgbWMtdG9hc3RfX2Nsb3NlXCJcbiAgICAgICAgICAgICAgICAgICAgbWMtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaGFzRGlzbWlzc1wiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjbG9zZSgpXCI+XG5cbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJtYy1pY29uX2xpZ2h0XCIgbWMtaWNvbj1cIm1jLWNsb3NlLUxfMTZcIiBbY29sb3JdPVwidGhlbWVQYWxldHRlLlNlY29uZGFyeVwiPjwvaT5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8cD57eyBkYXRhLnRpdGxlIH19PC9wPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgKm5nSWY9XCJkYXRhLmNhcHRpb25cIiBjbGFzcz1cIm1jLXRvYXN0X19jYXB0aW9uXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNUZW1wbGF0ZVJlZihkYXRhLmNhcHRpb24pXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiJGFueShkYXRhLmNhcHRpb24pXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0IH1cIj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzVGVtcGxhdGVSZWYoZGF0YS5jYXB0aW9uKVwiPnt7IGRhdGEuY2FwdGlvbiB9fTwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2ICpuZ0lmPVwiZGF0YS5jb250ZW50XCIgY2xhc3M9XCJtYy10b2FzdF9fY29udGVudFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzVGVtcGxhdGVSZWYoZGF0YS5jb250ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIiRhbnkoZGF0YS5jb250ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdCB9XCI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc1RlbXBsYXRlUmVmKGRhdGEuY29udGVudClcIj57eyBkYXRhLmNvbnRlbnQgfX08L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiAqbmdJZj1cImRhdGEuYWN0aW9uc1wiIGNsYXNzPVwibWMtdG9hc3RfX2FjdGlvbnNcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1RlbXBsYXRlUmVmKGRhdGEuYWN0aW9ucylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCIkYW55KGRhdGEuYWN0aW9ucylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQgfVwiPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNUZW1wbGF0ZVJlZihkYXRhLmFjdGlvbnMpXCI+e3sgZGF0YS5hY3Rpb25zIH19PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvbW9zYWljL3RvYXN0L3RvYXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21vc2FpYy90b2FzdC90b2FzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsWUFBWSxFQUFlLE1BQU0sbUJBQW1CLENBQUM7QUFDOUQsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLFVBQVUsRUFDVixNQUFNLEVBRU4sV0FBVyxFQUNYLGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7Ozs7O0FBRzNDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztBQXVCWCxNQUFNLE9BQU8sZ0JBQWdCO0lBY3pCLElBQUksVUFBVTtRQUNWLE9BQU87WUFDSCxDQUFDLFlBQVksSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksTUFBTSxFQUFFLENBQUMsRUFBRSxJQUFJO1NBQ2xELENBQUM7SUFDTixDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1YsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FB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QUFDO0lBQ3pFLENBQUM7SUFFTyxnQkFBZ0I7UUFDcEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNwRSxDQUFDO2lJQW5GUSxnQkFBZ0IsNkNBZ0NiLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxjQUFjLENBQUM7cUhBaENuQyxnQkFBZ0Isb1lDNUM3Qix5c0dBNEVBLGs4RERwQ2dCLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDOzsyRkFJakMsZ0JBQWdCO2tCQXJCNUIsU0FBUzsrQkFDSSxVQUFVLFFBR2Q7d0JBQ0YsS0FBSyxFQUFFLFVBQVU7d0JBQ2pCLFNBQVMsRUFBRSxZQUFZO3dCQUN2Qiw4QkFBOEIsRUFBRSxZQUFZO3dCQUM1QyxVQUFVLEVBQUUsZ0JBQWdCO3dCQUM1QixnQkFBZ0IsRUFBRSxxQkFBcUI7d0JBQ3ZDLGVBQWUsRUFBRSxxQkFBcUI7d0JBRXRDLGNBQWMsRUFBRSxvQkFBb0I7d0JBQ3BDLGNBQWMsRUFBRSxxQkFBcUI7d0JBRXJDLGVBQWUsRUFBRSxTQUFTO3FCQUM3QixjQUNXLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLG1CQUN6Qix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJOzswQkFrQ2hDLE1BQU07MkJBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFuaW1hdGlvbkV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBGb2N1c01vbml0b3IsIEZvY3VzT3JpZ2luIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBmb3J3YXJkUmVmLFxuICAgIEluamVjdCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaGVtZVBhbGV0dGUgfSBmcm9tICdAcHRzZWN1cml0eS9tb3NhaWMvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIG1lcmdlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgbWNUb2FzdEFuaW1hdGlvbnMgfSBmcm9tICcuL3RvYXN0LWFuaW1hdGlvbnMnO1xuaW1wb3J0IHsgTWNUb2FzdFNlcnZpY2UgfSBmcm9tICcuL3RvYXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgTWNUb2FzdERhdGEgfSBmcm9tICcuL3RvYXN0LnR5cGUnO1xuXG5cbmxldCBpZCA9IDA7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbWMtdG9hc3QnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90b2FzdC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdG9hc3QuY29tcG9uZW50LnNjc3MnXSxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAnbWMtdG9hc3QnLFxuICAgICAgICAnW2NsYXNzXSc6ICd0b2FzdFN0eWxlJyxcbiAgICAgICAgJ1tjbGFzcy5tYy10b2FzdF9kaXNtaXNzaWJsZV0nOiAnaGFzRGlzbWlzcycsXG4gICAgICAgICdbQHN0YXRlXSc6ICdhbmltYXRpb25TdGF0ZScsXG4gICAgICAgICcoQHN0YXRlLnN0YXJ0KSc6ICdvbkFuaW1hdGlvbigkZXZlbnQpJyxcbiAgICAgICAgJyhAc3RhdGUuZG9uZSknOiAnb25BbmltYXRpb24oJGV2ZW50KScsXG5cbiAgICAgICAgJyhtb3VzZWVudGVyKSc6ICdob3ZlcmVkLm5leHQodHJ1ZSknLFxuICAgICAgICAnKG1vdXNlbGVhdmUpJzogJ2hvdmVyZWQubmV4dChmYWxzZSknLFxuXG4gICAgICAgICcoa2V5ZG93bi5lc2MpJzogJ2Nsb3NlKCknXG4gICAgfSxcbiAgICBhbmltYXRpb25zOiBbbWNUb2FzdEFuaW1hdGlvbnMudG9hc3RTdGF0ZV0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBNY1RvYXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgICB0aGVtZVBhbGV0dGUgPSBUaGVtZVBhbGV0dGU7XG5cbiAgICBhbmltYXRpb25TdGF0ZSA9ICd2b2lkJztcblxuICAgIHJlYWRvbmx5IGhvdmVyZWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgICByZWFkb25seSBmb2N1c2VkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgICBpZCA9IGlkKys7XG4gICAgdHRsO1xuICAgIGRlbGF5O1xuXG4gICAgJGltcGxpY2l0O1xuXG4gICAgZ2V0IHRvYXN0U3R5bGUoKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBbYG1jLXRvYXN0XyR7dGhpcy5kYXRhLnN0eWxlIHx8ICdpbmZvJ31gXTogdHJ1ZVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGdldCBoYXNEaXNtaXNzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5kYXRhLmhhc0Rpc21pc3MgPT09IHVuZGVmaW5lZCA/IHRydWUgOiB0aGlzLmRhdGEuaGFzRGlzbWlzcztcbiAgICB9XG5cbiAgICBnZXQgaXNGb2N1c2VkT3JIb3ZlcmVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5ob3ZlcmVkLmdldFZhbHVlKCkgfHwgdGhpcy5mb2N1c2VkLmdldFZhbHVlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkZXN0cm95ZWQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdCgpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHJlYWRvbmx5IGRhdGE6IE1jVG9hc3REYXRhLFxuICAgICAgICBASW5qZWN0KGZvcndhcmRSZWYoKCkgPT4gTWNUb2FzdFNlcnZpY2UpKSByZWFkb25seSBzZXJ2aWNlOiBNY1RvYXN0U2VydmljZSxcbiAgICAgICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgZm9jdXNNb25pdG9yOiBGb2N1c01vbml0b3JcbiAgICApIHtcbiAgICAgICAgdGhpcy4kaW1wbGljaXQgPSB0aGlzO1xuXG4gICAgICAgIHRoaXMuYW5pbWF0aW9uU3RhdGUgPSAndmlzaWJsZSc7XG5cbiAgICAgICAgdGhpcy5ydW5Gb2N1c01vbml0b3IoKTtcblxuICAgICAgICB0aGlzLmhvdmVyZWQuc3Vic2NyaWJlKHRoaXMuc2VydmljZS5ob3ZlcmVkKTtcbiAgICAgICAgdGhpcy5mb2N1c2VkLnN1YnNjcmliZSh0aGlzLnNlcnZpY2UuZm9jdXNlZCk7XG5cbiAgICAgICAgbWVyZ2UodGhpcy5ob3ZlcmVkLCB0aGlzLmZvY3VzZWQpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQpLCBmaWx0ZXIoKHZhbHVlKSA9PiB2YWx1ZSkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy50dGwgPT09IDApIHsgcmV0dXJuOyB9XG5cbiAgICAgICAgICAgICAgICB0aGlzLnR0bCA9IHRoaXMudHRsIDwgdGhpcy5kZWxheSA/IHRoaXMuZGVsYXkgOiB0aGlzLnR0bDtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLnN0b3BGb2N1c01vbml0b3IoKTtcblxuICAgICAgICB0aGlzLmhvdmVyZWQubmV4dChmYWxzZSk7XG4gICAgICAgIHRoaXMuZm9jdXNlZC5uZXh0KGZhbHNlKTtcblxuICAgICAgICB0aGlzLmRlc3Ryb3llZC5uZXh0KHRydWUpO1xuICAgIH1cblxuICAgIGNsb3NlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlcnZpY2UuaGlkZSh0aGlzLmlkKTtcbiAgICB9XG5cbiAgICBpc1RlbXBsYXRlUmVmKHZhbHVlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmO1xuICAgIH1cblxuICAgIG9uQW5pbWF0aW9uKCRldmVudDogQW5pbWF0aW9uRXZlbnQpIHtcbiAgICAgICAgdGhpcy5zZXJ2aWNlLmFuaW1hdGlvbi5uZXh0KCRldmVudCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBydW5Gb2N1c01vbml0b3IoKSB7XG4gICAgICAgIHRoaXMuZm9jdXNNb25pdG9yXG4gICAgICAgICAgICAubW9uaXRvcih0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgdHJ1ZSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKG9yaWdpbjogRm9jdXNPcmlnaW4pID0+IHRoaXMuZm9jdXNlZC5uZXh0KCEhb3JpZ2luKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdG9wRm9jdXNNb25pdG9yKCkge1xuICAgICAgICB0aGlzLmZvY3VzTW9uaXRvci5zdG9wTW9uaXRvcmluZyh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm1jLXRvYXN0X193cmFwcGVyXCI+XG4gICAgPGRpdiBjbGFzcz1cIm1jLXRvYXN0X19pY29uLWNvbnRhaW5lclwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNUZW1wbGF0ZVJlZihkYXRhLmljb24pXCJcbiAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCIkYW55KGRhdGEuaWNvbilcIlxuICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdCB9XCI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhZGF0YS5pY29uXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJkYXRhLnN0eWxlXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2luZm8nXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpIG1jLWljb249XCJtYy1pbmZvXzE2XCIgY2xhc3M9XCJtYy10b2FzdF9faWNvblwiPjwvaT5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidzdWNjZXNzJ1wiPlxuICAgICAgICAgICAgICAgICAgICA8aSBtYy1pY29uPVwibWMtc3VjY2Vzc18xNlwiIGNsYXNzPVwibWMtdG9hc3RfX2ljb25cIj48L2k+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInd2FybmluZydcIj5cbiAgICAgICAgICAgICAgICAgICAgPGkgbWMtaWNvbj1cIm1jLWVycm9yXzE2XCIgY2xhc3M9XCJtYy10b2FzdF9faWNvblwiPjwvaT5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidlcnJvcidcIj5cbiAgICAgICAgICAgICAgICAgICAgPGkgbWMtaWNvbj1cIm1jLWVycm9yXzE2XCIgY2xhc3M9XCJtYy10b2FzdF9faWNvblwiPjwvaT5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJtYy10b2FzdF9fY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJkYXRhLnRpdGxlXCIgY2xhc3M9XCJtYy10b2FzdF9fdGl0bGVcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1RlbXBsYXRlUmVmKGRhdGEudGl0bGUpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiJGFueShkYXRhLnRpdGxlKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdCB9XCI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc1RlbXBsYXRlUmVmKGRhdGEudGl0bGUpXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1jLWJ1dHRvbl90cmFuc3BhcmVudCBtYy10b2FzdF9fY2xvc2VcIlxuICAgICAgICAgICAgICAgICAgICBtYy1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJoYXNEaXNtaXNzXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlKClcIj5cblxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cIm1jLWljb25fbGlnaHRcIiBtYy1pY29uPVwibWMtY2xvc2UtTF8xNlwiIFtjb2xvcl09XCJ0aGVtZVBhbGV0dGUuU2Vjb25kYXJ5XCI+PC9pPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxwPnt7IGRhdGEudGl0bGUgfX08L3A+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiAqbmdJZj1cImRhdGEuY2FwdGlvblwiIGNsYXNzPVwibWMtdG9hc3RfX2NhcHRpb25cIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1RlbXBsYXRlUmVmKGRhdGEuY2FwdGlvbilcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCIkYW55KGRhdGEuY2FwdGlvbilcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQgfVwiPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNUZW1wbGF0ZVJlZihkYXRhLmNhcHRpb24pXCI+e3sgZGF0YS5jYXB0aW9uIH19PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgKm5nSWY9XCJkYXRhLmNvbnRlbnRcIiBjbGFzcz1cIm1jLXRvYXN0X19jb250ZW50XCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNUZW1wbGF0ZVJlZihkYXRhLmNvbnRlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiJGFueShkYXRhLmNvbnRlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0IH1cIj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzVGVtcGxhdGVSZWYoZGF0YS5jb250ZW50KVwiPnt7IGRhdGEuY29udGVudCB9fTwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2ICpuZ0lmPVwiZGF0YS5hY3Rpb25zXCIgY2xhc3M9XCJtYy10b2FzdF9fYWN0aW9uc1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzVGVtcGxhdGVSZWYoZGF0YS5hY3Rpb25zKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIiRhbnkoZGF0YS5hY3Rpb25zKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdCB9XCI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc1RlbXBsYXRlUmVmKGRhdGEuYWN0aW9ucylcIj57eyBkYXRhLmFjdGlvbnMgfX08L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -32,6 +32,7 @@ export class McToastService {
32
32
  this.toastConfig = toastConfig;
33
33
  this.hovered = new BehaviorSubject(false);
34
34
  this.focused = new BehaviorSubject(false);
35
+ this.animation = new BehaviorSubject(null);
35
36
  this.toastsDict = {};
36
37
  this.templatesDict = {};
37
38
  this.processToasts = () => {
@@ -185,4 +186,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImpor
185
186
  type: Inject,
186
187
  args: [MC_TOAST_CONFIG]
187
188
  }] }]; } });
188
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21vc2FpYy90b2FzdC90b2FzdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBMEIsT0FBTyxFQUFjLE1BQU0sc0JBQXNCLENBQUM7QUFDbkYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFDSCxVQUFVLEVBQ1YsUUFBUSxFQUNSLE1BQU0sRUFFTixRQUFRLEVBR1IsY0FBYyxFQUNqQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFeEUsT0FBTyxFQUFlLGVBQWUsRUFBaUIsZUFBZSxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7QUFHNUYsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxjQUFjLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztBQUVyRSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBa0I7SUFDN0MsUUFBUSxFQUFFLGVBQWUsQ0FBQyxTQUFTO0lBQ25DLFFBQVEsRUFBRSxJQUFJO0lBQ2QsS0FBSyxFQUFFLElBQUk7SUFDWCxLQUFLLEVBQUUsS0FBSztDQUNmLENBQUM7QUFHRixNQUFNLFdBQVcsR0FBRyxFQUFFLENBQUM7QUFDdkIsTUFBTSxjQUFjLEdBQUcsR0FBRyxDQUFDO0FBRTNCLElBQUksVUFBVSxHQUFHLENBQUMsQ0FBQztBQUduQixNQUFNLE9BQU8sY0FBYztJQUN2QixJQUFJLE1BQU07UUFDTixPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQzthQUNoQyxNQUFNLENBQUMs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U3RyYXRlZ3ksIE92ZXJsYXksIE92ZXJsYXlSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBDb21wb25lbnRQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7XG4gICAgSW5qZWN0YWJsZSxcbiAgICBJbmplY3RvcixcbiAgICBJbmplY3QsXG4gICAgQ29tcG9uZW50UmVmLFxuICAgIE9wdGlvbmFsLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIEVtYmVkZGVkVmlld1JlZixcbiAgICBJbmplY3Rpb25Ub2tlblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgdGltZXIgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgTWNUb2FzdENvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4vdG9hc3QtY29udGFpbmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNY1RvYXN0Q29tcG9uZW50IH0gZnJvbSAnLi90b2FzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWNUb2FzdERhdGEsIE1DX1RPQVNUX0NPTkZJRywgTWNUb2FzdENvbmZpZywgTWNUb2FzdFBvc2l0aW9uIH0gZnJvbSAnLi90b2FzdC50eXBlJztcblxuXG5leHBvcnQgY29uc3QgTUNfVE9BU1RfRkFDVE9SWSA9IG5ldyBJbmplY3Rpb25Ub2tlbignTWNUb2FzdEZhY3RvcnknKTtcblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRUb2FzdENvbmZpZzogTWNUb2FzdENvbmZpZyA9IHtcbiAgICBwb3NpdGlvbjogTWNUb2FzdFBvc2l0aW9uLlRPUF9SSUdIVCxcbiAgICBkdXJhdGlvbjogNTAwMCxcbiAgICBkZWxheTogMjAwMCxcbiAgICBvblRvcDogZmFsc2Vcbn07XG5cblxuY29uc3QgSU5ERU5UX1NJWkUgPSAxNjtcbmNvbnN0IENIRUNLX0lOVEVSVkFMID0gNTAwO1xuXG5sZXQgdGVtcGxhdGVJZCA9IDA7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgTWNUb2FzdFNlcnZpY2U8VCBleHRlbmRzIE1jVG9hc3RDb21wb25lbnQgPSBNY1RvYXN0Q29tcG9uZW50PiB7XG4gICAgZ2V0IHRvYXN0cygpOiBDb21wb25lbnRSZWY8VD5bXSB7XG4gICAgICAgIHJldHVybiBPYmplY3QudmFsdWVzKHRoaXMudG9hc3RzRGljdClcbiAgICAgICAgICAgIC5maWx0ZXIoKGl0ZW0pID0+ICFpdGVtLmhvc3RWaWV3LmRlc3Ryb3llZCk7XG4gICAgfVxuXG4gICAgZ2V0IHRlbXBsYXRlcygpOiBFbWJlZGRlZFZpZXdSZWY8VD5bXSB7XG4gICAgICAgIHJldHVybiBPYmplY3QudmFsdWVzKHRoaXMudGVtcGxhdGVzRGljdCk7XG4gICAgfVxuXG4gICAgcmVhZG9ubHkgaG92ZXJlZCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICAgIHJlYWRvbmx5IGZvY3VzZWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblxuICAgIHByaXZhdGUgY29udGFpbmVySW5zdGFuY2U6IE1jVG9hc3RDb250YWluZXJDb21wb25lbnQ7XG4gICAgcHJpdmF0ZSBvdmVybGF5UmVmOiBPdmVybGF5UmVmO1xuICAgIHByaXZhdGUgcG9ydGFsOiBDb21wb25lbnRQb3J0YWw8TWNUb2FzdENvbnRhaW5lckNvbXBvbmVudD47XG5cbiAgICBwcml2YXRlIHRvYXN0c0RpY3Q6IHsgW2lkOiBudW1iZXJdOiBDb21wb25lbnRSZWY8VD4gfSA9IHt9O1xuICAgIHByaXZhdGUgdGVtcGxhdGVzRGljdDogeyBbaWQ6IG51bWJlcl06IEVtYmVkZGVkVmlld1JlZjxUPiB9ID0ge307XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LFxuICAgICAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgQEluamVjdChNQ19UT0FTVF9GQUNUT1JZKSBwcml2YXRlIHRvYXN0RmFjdG9yeTogYW55LFxuICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE1DX1RPQVNUX0NPTkZJRykgcHJpdmF0ZSB0b2FzdENvbmZpZzogTWNUb2FzdENvbmZpZ1xuICAgICkge1xuICAgICAgICB0aGlzLnRvYXN0Q29uZmlnID0gdG9hc3RDb25maWcgfHwgZGVmYXVsdFRvYXN0Q29uZmlnO1xuXG4gICAgICAgIHRpbWVyKENIRUNLX0lOVEVSVkFMLCBDSEVDS19JTlRFUlZBTClcbiAgICAgICAgICAgIC5waXBlKGZpbHRlcigoKSA9PiB0aGlzLnRvYXN0cy5sZW5ndGggPiAwICYmICF0aGlzLmhvdmVyZWQuZ2V0VmFsdWUoKSAmJiAhdGhpcy5mb2N1c2VkLmdldFZhbHVlKCkpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSh0aGlzLnByb2Nlc3NUb2FzdHMpO1xuICAgIH1cblxuICAgIHNob3coXG4gICAgICAgIGRhdGE6IE1jVG9hc3REYXRhLFxuICAgICAgICBkdXJhdGlvbjogbnVtYmVyID0gdGhpcy50b2FzdENvbmZpZy5kdXJhdGlvbixcbiAgICAgICAgb25Ub3A6IGJvb2xlYW4gPSB0aGlzLnRvYXN0Q29uZmlnLm9uVG9wXG4gICAgKTogeyByZWY6IENvbXBvbmVudFJlZjxUPjsgaWQ6IG51bWJlcn0ge1xuXG4gICAgICAgIHRoaXMucHJlcGFyZUNvbnRhaW5lcigpO1xuXG4gICAgICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHRoaXMuY29udGFpbmVySW5zdGFuY2UuY3JlYXRlVG9hc3Q8VD4oZGF0YSwgdGhpcy50b2FzdEZhY3RvcnksIG9uVG9wKTtcblxuICAgICAgICB0aGlzLnRvYXN0c0RpY3RbY29tcG9uZW50UmVmLmluc3RhbmNlLmlkXSA9IGNvbXBvbmVudFJlZjtcblxuICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UudHRsID0gZHVyYXRpb247XG4gICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5kZWxheSA9IHRoaXMudG9hc3RDb25maWcuZGVsYXk7XG5cbiAgICAgICAgcmV0dXJuIHsgcmVmOiBjb21wb25lbnRSZWYsIGlkOiBjb21wb25lbnRSZWYuaW5zdGFuY2UuaWQgfTtcbiAgICB9XG5cbiAgICBzaG93VGVtcGxhdGUoXG4gICAgICAgIGRhdGE6IE1jVG9hc3REYXRhLFxuICAgICAgICB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PixcbiAgICAgICAgZHVyYXRpb246IG51bWJlciA9IHRoaXMudG9hc3RDb25maWcuZHVyYXRpb24sXG4gICAgICAgIG9uVG9wOiBib29sZWFuID0gdGhpcy50b2FzdENvbmZpZy5vblRvcFxuICAgICk6IHsgcmVmOiBFbWJlZGRlZFZpZXdSZWY8VD47IGlkOiBudW1iZXIgfSB7XG5cbiAgICAgICAgdGhpcy5wcmVwYXJlQ29udGFpbmVyKCk7XG5cbiAgICAgICAgY29uc3Qgdmlld1JlZiA9IHRoaXMuY29udGFpbmVySW5zdGFuY2UuY3JlYXRlVGVtcGxhdGU8VD4oZGF0YSwgdGVtcGxhdGUsIG9uVG9wKTtcblxuICAgICAgICB0aGlzLnRlbXBsYXRlc0RpY3RbdGVtcGxhdGVJZF0gPSB2aWV3UmVmO1xuXG4gICAgICAgIHRoaXMuYWRkUmVtb3ZlVGltZXIodGVtcGxhdGVJZCwgZHVyYXRpb24pO1xuXG4gICAgICAgIHRlbXBsYXRlSWQrKztcblxuICAgICAgICByZXR1cm4geyByZWY6IHZpZXdSZWYsIGlkOiB0ZW1wbGF0ZUlkIH07XG4gICAgfVxuXG4gICAgaGlkZShpZDogbnVtYmVyKSB7XG4gICAgICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHRoaXMudG9hc3RzRGljdFtpZF07XG5cbiAgICAgICAgaWYgKCFjb21wb25lbnRSZWYpIHsgcmV0dXJuOyB9XG5cbiAgICAgICAgdGhpcy5jb250YWluZXJJbnN0YW5jZS5yZW1vdmUoY29tcG9uZW50UmVmLmhvc3RWaWV3KTtcblxuICAgICAgICBkZWxldGUgdGhpcy50b2FzdHNEaWN0W2lkXTtcblxuICAgICAgICB0aGlzLmRldGFjaE92ZXJsYXkoKTtcbiAgICB9XG5cbiAgICBoaWRlVGVtcGxhdGUoaWQ6IG51bWJlcikge1xuICAgICAgICBjb25zdCB2aWV3UmVmID0gdGhpcy50ZW1wbGF0ZXNEaWN0W2lkXTtcblxuICAgICAgICBpZiAoIXZpZXdSZWYpIHsgcmV0dXJuOyB9XG5cbiAgICAgICAgdGhpcy5jb250YWluZXJJbnN0YW5jZS5yZW1vdmUodmlld1JlZik7XG5cbiAgICAgICAgZGVsZXRlIHRoaXMudGVtcGxhdGVzRGljdFtpZF07XG5cbiAgICAgICAgdGhpcy5kZXRhY2hPdmVybGF5KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkZXRhY2hPdmVybGF5KCkge1xuICAgICAgICBpZiAodGhpcy50b2FzdHMubGVuZ3RoICE9PSAwKSB7IHJldHVybjsgfVxuXG4gICAgICAgIHRoaXMub3ZlcmxheVJlZi5kZXRhY2goKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHByb2Nlc3NUb2FzdHMgPSAoKSA9PiB7XG4gICAgICAgIGZvciAoY29uc3QgdG9hc3Qgb2YgdGhpcy50b2FzdHMuZmlsdGVyKChpdGVtKSA9PiBpdGVtLmluc3RhbmNlLnR0bCA+IDApKSB7XG4gICAgICAgICAgICB0b2FzdC5pbnN0YW5jZS50dGwgLT0gQ0hFQ0tfSU5URVJWQUw7XG5cbiAgICAgICAgICAgIGlmICh0b2FzdC5pbnN0YW5jZS50dGwgPD0gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMuaGlkZSh0b2FzdC5pbnN0YW5jZS5pZCk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVRUTEFmdGVyRGVsZXRlKCk7XG5cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlVFRMQWZ0ZXJEZWxldGUoKSB7XG4gICAgICAgIHRoaXMudG9hc3RzXG4gICAgICAgICAgICAuZmlsdGVyKChpdGVtKSA9PiBpdGVtLmluc3RhbmNlLnR0bCA+IDApXG4gICAgICAgICAgICAuZm9yRWFjaCgoaXRlbSkgPT4gaXRlbS5pbnN0YW5jZS50dGwgPSB0aGlzLnRvYXN0Q29uZmlnLmRlbGF5KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFkZFJlbW92ZVRpbWVyKGlkOiBudW1iZXIsIGR1cmF0aW9uOiBudW1iZXIpIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmhpZGVUZW1wbGF0ZShpZCksIGR1cmF0aW9uKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHByZXBhcmVDb250YWluZXIoKSB7XG4gICAgICAgIHRoaXMuY3JlYXRlT3ZlcmxheSgpO1xuXG4gICAgICAgIHRoaXMucG9ydGFsID0gdGhpcy5wb3J0YWwgfHwgbmV3IENvbXBvbmVudFBvcnRhbChNY1RvYXN0Q29udGFpbmVyQ29tcG9uZW50LCBudWxsLCB0aGlzLmluamVjdG9yKTtcblxuICAgICAgICBpZiAoIXRoaXMub3ZlcmxheVJlZi5oYXNBdHRhY2hlZCgpKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRhaW5lckluc3RhbmNlID0gdGhpcy5vdmVybGF5UmVmLmF0dGFjaCh0aGlzLnBvcnRhbCkuaW5zdGFuY2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZU92ZXJsYXkoKSB7XG4gICAgICAgIGlmICh0aGlzLm92ZXJsYXlSZWYpIHsgcmV0dXJuIHRoaXMub3ZlcmxheVJlZjsgfVxuXG4gICAgICAgIGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLmdldFBvc2l0aW9uU3RyYXRlZ3kodGhpcy50b2FzdENvbmZpZy5wb3NpdGlvbik7XG5cbiAgICAgICAgdGhpcy5vdmVybGF5UmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZSh7IHBvc2l0aW9uU3RyYXRlZ3kgfSk7XG4gICAgICAgIHRoaXMub3ZlcmxheVJlZi5ob3N0RWxlbWVudC5jbGFzc0xpc3QuYWRkKCdtYy10b2FzdC1vdmVybGF5Jyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRQb3NpdGlvblN0cmF0ZWd5KHBvc2l0aW9uPzogTWNUb2FzdFBvc2l0aW9uKTogR2xvYmFsUG9zaXRpb25TdHJhdGVneSB7XG4gICAgICAgIHN3aXRjaCAocG9zaXRpb24pIHtcbiAgICAgICAgICAgIGNhc2UgTWNUb2FzdFBvc2l0aW9uLkNFTlRFUjpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRDZW50ZXIoKTtcbiAgICAgICAgICAgIGNhc2UgTWNUb2FzdFBvc2l0aW9uLkJPVFRPTV9DRU5URVI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Qm90dG9tQ2VudGVyKCk7XG4gICAgICAgICAgICBjYXNlIE1jVG9hc3RQb3NpdGlvbi5CT1RUT01fTEVGVDpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRCb3R0b21MZWZ0KCk7XG4gICAgICAgICAgICBjYXNlIE1jVG9hc3RQb3NpdGlvbi5CT1RUT01fUklHSFQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Qm90dG9tUmlnaHQoKTtcbiAgICAgICAgICAgIGNhc2UgTWNUb2FzdFBvc2l0aW9uLlRPUF9DRU5URVI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VG9wQ2VudGVyKCk7XG4gICAgICAgICAgICBjYXNlIE1jVG9hc3RQb3NpdGlvbi5UT1BfTEVGVDpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRUb3BMZWZ0KCk7XG4gICAgICAgICAgICBjYXNlIE1jVG9hc3RQb3NpdGlvbi5UT1BfUklHSFQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VG9wUmlnaHQoKTtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VG9wQ2VudGVyKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFRvcENlbnRlcigpOiBHbG9iYWxQb3NpdGlvblN0cmF0ZWd5IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0R2xvYmFsT3ZlcmxheVBvc2l0aW9uKClcbiAgICAgICAgICAgIC50b3AoYCR7SU5ERU5UX1NJWkV9cHhgKVxuICAgICAgICAgICAgLmNlbnRlckhvcml6b250YWxseSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0VG9wTGVmdCgpOiBHbG9iYWxQb3NpdGlvblN0cmF0ZWd5IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0R2xvYmFsT3ZlcmxheVBvc2l0aW9uKClcbiAgICAgICAgICAgIC50b3AoYCR7SU5ERU5UX1NJWkV9cHhgKVxuICAgICAgICAgICAgLmxlZnQoYCR7SU5ERU5UX1NJWkV9cHhgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFRvcFJpZ2h0KCk6IEdsb2JhbFBvc2l0aW9uU3RyYXRlZ3kge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRHbG9iYWxPdmVybGF5UG9zaXRpb24oKVxuICAgICAgICAgICAgLnRvcChgJHtJTkRFTlRfU0laRX1weGApXG4gICAgICAgICAgICAucmlnaHQoYCR7SU5ERU5UX1NJWkV9cHhgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEJvdHRvbUNlbnRlcigpOiBHbG9iYWxQb3NpdGlvblN0cmF0ZWd5IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0R2xvYmFsT3ZlcmxheVBvc2l0aW9uKClcbiAgICAgICAgICAgIC5ib3R0b20oYCR7SU5ERU5UX1NJWkV9cHhgKVxuICAgICAgICAgICAgLmNlbnRlckhvcml6b250YWxseSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Qm90dG9tTGVmdCgpOiBHbG9iYWxQb3NpdGlvblN0cmF0ZWd5IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0R2xvYmFsT3ZlcmxheVBvc2l0aW9uKClcbiAgICAgICAgICAgIC5ib3R0b20oYCR7SU5ERU5UX1NJWkV9cHhgKVxuICAgICAgICAgICAgLmxlZnQoYCR7SU5ERU5UX1NJWkV9cHhgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEJvdHRvbVJpZ2h0KCk6IEdsb2JhbFBvc2l0aW9uU3RyYXRlZ3kge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRHbG9iYWxPdmVybGF5UG9zaXRpb24oKVxuICAgICAgICAgICAgLmJvdHRvbShgJHtJTkRFTlRfU0laRX1weGApXG4gICAgICAgICAgICAucmlnaHQoYCR7SU5ERU5UX1NJWkV9cHhgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldENlbnRlcigpOiBHbG9iYWxQb3NpdGlvblN0cmF0ZWd5IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0R2xvYmFsT3ZlcmxheVBvc2l0aW9uKClcbiAgICAgICAgICAgIC5jZW50ZXJWZXJ0aWNhbGx5KClcbiAgICAgICAgICAgIC5jZW50ZXJIb3Jpem9udGFsbHkoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEdsb2JhbE92ZXJsYXlQb3NpdGlvbigpOiBHbG9iYWxQb3NpdGlvblN0cmF0ZWd5IHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3ZlcmxheS5wb3NpdGlvbigpLmdsb2JhbCgpO1xuICAgIH1cbn1cbiJdfQ==
189
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21vc2FpYy90b2FzdC90b2FzdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBMEIsT0FBTyxFQUFjLE1BQU0sc0JBQXNCLENBQUM7QUFDbkYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFDSCxVQUFVLEVBQ1YsUUFBUSxFQUNSLE1BQU0sRUFFTixRQUFRLEVBR1IsY0FBYyxFQUNqQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFeEUsT0FBTyxFQUFlLGVBQWUsRUFBaUIsZUFBZSxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7QUFHNUYsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxjQUFjLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztBQUVyRSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBa0I7SUFDN0MsUUFBUSxFQUFFLGVBQWUsQ0FBQyxTQUFTO0lBQ25DLFFBQVEsRUFBRSxJQUFJO0lBQ2QsS0FBSyxFQUFFLElBQUk7SUFDWCxLQUFLLEVBQUUsS0FBSztDQUNmLENBQUM7QUFHRixNQUFNLFdBQVcsR0FBRyxFQUFFLENBQUM7QUFDdkIsTUFBTSxjQUFjLEdBQUcsR0FBRyxDQUFDO0FBRTNCLElBQUksVUFBVSxHQUFHLENBQUMsQ0FBQztBQUduQixNQUFNLE9BQU8sY0FBYztJQUN2QixJQUFJLE1BQU07UUFDTixPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQzthQUNoQyxNQUFNLENBQUMs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QUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQW5pbWF0aW9uRXZlbnQgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7IEdsb2JhbFBvc2l0aW9uU3RyYXRlZ3ksIE92ZXJsYXksIE92ZXJsYXlSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBDb21wb25lbnRQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7XG4gICAgSW5qZWN0YWJsZSxcbiAgICBJbmplY3RvcixcbiAgICBJbmplY3QsXG4gICAgQ29tcG9uZW50UmVmLFxuICAgIE9wdGlvbmFsLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIEVtYmVkZGVkVmlld1JlZixcbiAgICBJbmplY3Rpb25Ub2tlblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgdGltZXIgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgTWNUb2FzdENvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4vdG9hc3QtY29udGFpbmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNY1RvYXN0Q29tcG9uZW50IH0gZnJvbSAnLi90b2FzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWNUb2FzdERhdGEsIE1DX1RPQVNUX0NPTkZJRywgTWNUb2FzdENvbmZpZywgTWNUb2FzdFBvc2l0aW9uIH0gZnJvbSAnLi90b2FzdC50eXBlJztcblxuXG5leHBvcnQgY29uc3QgTUNfVE9BU1RfRkFDVE9SWSA9IG5ldyBJbmplY3Rpb25Ub2tlbignTWNUb2FzdEZhY3RvcnknKTtcblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRUb2FzdENvbmZpZzogTWNUb2FzdENvbmZpZyA9IHtcbiAgICBwb3NpdGlvbjogTWNUb2FzdFBvc2l0aW9uLlRPUF9SSUdIVCxcbiAgICBkdXJhdGlvbjogNTAwMCxcbiAgICBkZWxheTogMjAwMCxcbiAgICBvblRvcDogZmFsc2Vcbn07XG5cblxuY29uc3QgSU5ERU5UX1NJWkUgPSAxNjtcbmNvbnN0IENIRUNLX0lOVEVSVkFMID0gNTAwO1xuXG5sZXQgdGVtcGxhdGVJZCA9IDA7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgTWNUb2FzdFNlcnZpY2U8VCBleHRlbmRzIE1jVG9hc3RDb21wb25lbnQgPSBNY1RvYXN0Q29tcG9uZW50PiB7XG4gICAgZ2V0IHRvYXN0cygpOiBDb21wb25lbnRSZWY8VD5bXSB7XG4gICAgICAgIHJldHVybiBPYmplY3QudmFsdWVzKHRoaXMudG9hc3RzRGljdClcbiAgICAgICAgICAgIC5maWx0ZXIoKGl0ZW0pID0+ICFpdGVtLmhvc3RWaWV3LmRlc3Ryb3llZCk7XG4gICAgfVxuXG4gICAgZ2V0IHRlbXBsYXRlcygpOiBFbWJlZGRlZFZpZXdSZWY8VD5bXSB7XG4gICAgICAgIHJldHVybiBPYmplY3QudmFsdWVzKHRoaXMudGVtcGxhdGVzRGljdCk7XG4gICAgfVxuXG4gICAgcmVhZG9ubHkgaG92ZXJlZCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICAgIHJlYWRvbmx5IGZvY3VzZWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgICByZWFkb25seSBhbmltYXRpb24gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEFuaW1hdGlvbkV2ZW50IHwgbnVsbD4obnVsbCk7XG5cbiAgICBwcml2YXRlIGNvbnRhaW5lckluc3RhbmNlOiBNY1RvYXN0Q29udGFpbmVyQ29tcG9uZW50O1xuICAgIHByaXZhdGUgb3ZlcmxheVJlZjogT3ZlcmxheVJlZjtcbiAgICBwcml2YXRlIHBvcnRhbDogQ29tcG9uZW50UG9ydGFsPE1jVG9hc3RDb250YWluZXJDb21wb25lbnQ+O1xuXG4gICAgcHJpdmF0ZSB0b2FzdHNEaWN0OiB7IFtpZDogbnVtYmVyXTogQ29tcG9uZW50UmVmPFQ+IH0gPSB7fTtcbiAgICBwcml2YXRlIHRlbXBsYXRlc0RpY3Q6IHsgW2lkOiBudW1iZXJdOiBFbWJlZGRlZFZpZXdSZWY8VD4gfSA9IHt9O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheSxcbiAgICAgICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIEBJbmplY3QoTUNfVE9BU1RfRkFDVE9SWSkgcHJpdmF0ZSB0b2FzdEZhY3Rvcnk6IGFueSxcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChNQ19UT0FTVF9DT05GSUcpIHByaXZhdGUgdG9hc3RDb25maWc6IE1jVG9hc3RDb25maWdcbiAgICApIHtcbiAgICAgICAgdGhpcy50b2FzdENvbmZpZyA9IHRvYXN0Q29uZmlnIHx8IGRlZmF1bHRUb2FzdENvbmZpZztcblxuICAgICAgICB0aW1lcihDSEVDS19JTlRFUlZBTCwgQ0hFQ0tfSU5URVJWQUwpXG4gICAgICAgICAgICAucGlwZShmaWx0ZXIoKCkgPT4gdGhpcy50b2FzdHMubGVuZ3RoID4gMCAmJiAhdGhpcy5ob3ZlcmVkLmdldFZhbHVlKCkgJiYgIXRoaXMuZm9jdXNlZC5nZXRWYWx1ZSgpKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUodGhpcy5wcm9jZXNzVG9hc3RzKTtcbiAgICB9XG5cbiAgICBzaG93KFxuICAgICAgICBkYXRhOiBNY1RvYXN0RGF0YSxcbiAgICAgICAgZHVyYXRpb246IG51bWJlciA9IHRoaXMudG9hc3RDb25maWcuZHVyYXRpb24sXG4gICAgICAgIG9uVG9wOiBib29sZWFuID0gdGhpcy50b2FzdENvbmZpZy5vblRvcFxuICAgICk6IHsgcmVmOiBDb21wb25lbnRSZWY8VD47IGlkOiBudW1iZXJ9IHtcblxuICAgICAgICB0aGlzLnByZXBhcmVDb250YWluZXIoKTtcblxuICAgICAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLmNvbnRhaW5lckluc3RhbmNlLmNyZWF0ZVRvYXN0PFQ+KGRhdGEsIHRoaXMudG9hc3RGYWN0b3J5LCBvblRvcCk7XG5cbiAgICAgICAgdGhpcy50b2FzdHNEaWN0W2NvbXBvbmVudFJlZi5pbnN0YW5jZS5pZF0gPSBjb21wb25lbnRSZWY7XG5cbiAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLnR0bCA9IGR1cmF0aW9uO1xuICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuZGVsYXkgPSB0aGlzLnRvYXN0Q29uZmlnLmRlbGF5O1xuXG4gICAgICAgIHJldHVybiB7IHJlZjogY29tcG9uZW50UmVmLCBpZDogY29tcG9uZW50UmVmLmluc3RhbmNlLmlkIH07XG4gICAgfVxuXG4gICAgc2hvd1RlbXBsYXRlKFxuICAgICAgICBkYXRhOiBNY1RvYXN0RGF0YSxcbiAgICAgICAgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4sXG4gICAgICAgIGR1cmF0aW9uOiBudW1iZXIgPSB0aGlzLnRvYXN0Q29uZmlnLmR1cmF0aW9uLFxuICAgICAgICBvblRvcDogYm9vbGVhbiA9IHRoaXMudG9hc3RDb25maWcub25Ub3BcbiAgICApOiB7IHJlZjogRW1iZWRkZWRWaWV3UmVmPFQ+OyBpZDogbnVtYmVyIH0ge1xuXG4gICAgICAgIHRoaXMucHJlcGFyZUNvbnRhaW5lcigpO1xuXG4gICAgICAgIGNvbnN0IHZpZXdSZWYgPSB0aGlzLmNvbnRhaW5lckluc3RhbmNlLmNyZWF0ZVRlbXBsYXRlPFQ+KGRhdGEsIHRlbXBsYXRlLCBvblRvcCk7XG5cbiAgICAgICAgdGhpcy50ZW1wbGF0ZXNEaWN0W3RlbXBsYXRlSWRdID0gdmlld1JlZjtcblxuICAgICAgICB0aGlzLmFkZFJlbW92ZVRpbWVyKHRlbXBsYXRlSWQsIGR1cmF0aW9uKTtcblxuICAgICAgICB0ZW1wbGF0ZUlkKys7XG5cbiAgICAgICAgcmV0dXJuIHsgcmVmOiB2aWV3UmVmLCBpZDogdGVtcGxhdGVJZCB9O1xuICAgIH1cblxuICAgIGhpZGUoaWQ6IG51bWJlcikge1xuICAgICAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLnRvYXN0c0RpY3RbaWRdO1xuXG4gICAgICAgIGlmICghY29tcG9uZW50UmVmKSB7IHJldHVybjsgfVxuXG4gICAgICAgIHRoaXMuY29udGFpbmVySW5zdGFuY2UucmVtb3ZlKGNvbXBvbmVudFJlZi5ob3N0Vmlldyk7XG5cbiAgICAgICAgZGVsZXRlIHRoaXMudG9hc3RzRGljdFtpZF07XG5cbiAgICAgICAgdGhpcy5kZXRhY2hPdmVybGF5KCk7XG4gICAgfVxuXG4gICAgaGlkZVRlbXBsYXRlKGlkOiBudW1iZXIpIHtcbiAgICAgICAgY29uc3Qgdmlld1JlZiA9IHRoaXMudGVtcGxhdGVzRGljdFtpZF07XG5cbiAgICAgICAgaWYgKCF2aWV3UmVmKSB7IHJldHVybjsgfVxuXG4gICAgICAgIHRoaXMuY29udGFpbmVySW5zdGFuY2UucmVtb3ZlKHZpZXdSZWYpO1xuXG4gICAgICAgIGRlbGV0ZSB0aGlzLnRlbXBsYXRlc0RpY3RbaWRdO1xuXG4gICAgICAgIHRoaXMuZGV0YWNoT3ZlcmxheSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZGV0YWNoT3ZlcmxheSgpIHtcbiAgICAgICAgaWYgKHRoaXMudG9hc3RzLmxlbmd0aCAhPT0gMCkgeyByZXR1cm47IH1cblxuICAgICAgICB0aGlzLm92ZXJsYXlSZWYuZGV0YWNoKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBwcm9jZXNzVG9hc3RzID0gKCkgPT4ge1xuICAgICAgICBmb3IgKGNvbnN0IHRvYXN0IG9mIHRoaXMudG9hc3RzLmZpbHRlcigoaXRlbSkgPT4gaXRlbS5pbnN0YW5jZS50dGwgPiAwKSkge1xuICAgICAgICAgICAgdG9hc3QuaW5zdGFuY2UudHRsIC09IENIRUNLX0lOVEVSVkFMO1xuXG4gICAgICAgICAgICBpZiAodG9hc3QuaW5zdGFuY2UudHRsIDw9IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLmhpZGUodG9hc3QuaW5zdGFuY2UuaWQpO1xuXG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVUVExBZnRlckRlbGV0ZSgpO1xuXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVRUTEFmdGVyRGVsZXRlKCkge1xuICAgICAgICB0aGlzLnRvYXN0c1xuICAgICAgICAgICAgLmZpbHRlcigoaXRlbSkgPT4gaXRlbS5pbnN0YW5jZS50dGwgPiAwKVxuICAgICAgICAgICAgLmZvckVhY2goKGl0ZW0pID0+IGl0ZW0uaW5zdGFuY2UudHRsID0gdGhpcy50b2FzdENvbmZpZy5kZWxheSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhZGRSZW1vdmVUaW1lcihpZDogbnVtYmVyLCBkdXJhdGlvbjogbnVtYmVyKSB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5oaWRlVGVtcGxhdGUoaWQpLCBkdXJhdGlvbik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBwcmVwYXJlQ29udGFpbmVyKCkge1xuICAgICAgICB0aGlzLmNyZWF0ZU92ZXJsYXkoKTtcblxuICAgICAgICB0aGlzLnBvcnRhbCA9IHRoaXMucG9ydGFsIHx8IG5ldyBDb21wb25lbnRQb3J0YWwoTWNUb2FzdENvbnRhaW5lckNvbXBvbmVudCwgbnVsbCwgdGhpcy5pbmplY3Rvcik7XG5cbiAgICAgICAgaWYgKCF0aGlzLm92ZXJsYXlSZWYuaGFzQXR0YWNoZWQoKSkge1xuICAgICAgICAgICAgdGhpcy5jb250YWluZXJJbnN0YW5jZSA9IHRoaXMub3ZlcmxheVJlZi5hdHRhY2godGhpcy5wb3J0YWwpLmluc3RhbmNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVPdmVybGF5KCkge1xuICAgICAgICBpZiAodGhpcy5vdmVybGF5UmVmKSB7IHJldHVybiB0aGlzLm92ZXJsYXlSZWY7IH1cblxuICAgICAgICBjb25zdCBwb3NpdGlvblN0cmF0ZWd5ID0gdGhpcy5nZXRQb3NpdGlvblN0cmF0ZWd5KHRoaXMudG9hc3RDb25maWcucG9zaXRpb24pO1xuXG4gICAgICAgIHRoaXMub3ZlcmxheVJlZiA9IHRoaXMub3ZlcmxheS5jcmVhdGUoeyBwb3NpdGlvblN0cmF0ZWd5IH0pO1xuICAgICAgICB0aGlzLm92ZXJsYXlSZWYuaG9zdEVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnbWMtdG9hc3Qtb3ZlcmxheScpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0UG9zaXRpb25TdHJhdGVneShwb3NpdGlvbj86IE1jVG9hc3RQb3NpdGlvbik6IEdsb2JhbFBvc2l0aW9uU3RyYXRlZ3kge1xuICAgICAgICBzd2l0Y2ggKHBvc2l0aW9uKSB7XG4gICAgICAgICAgICBjYXNlIE1jVG9hc3RQb3NpdGlvbi5DRU5URVI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Q2VudGVyKCk7XG4gICAgICAgICAgICBjYXNlIE1jVG9hc3RQb3NpdGlvbi5CT1RUT01fQ0VOVEVSOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmdldEJvdHRvbUNlbnRlcigpO1xuICAgICAgICAgICAgY2FzZSBNY1RvYXN0UG9zaXRpb24uQk9UVE9NX0xFRlQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Qm90dG9tTGVmdCgpO1xuICAgICAgICAgICAgY2FzZSBNY1RvYXN0UG9zaXRpb24uQk9UVE9NX1JJR0hUOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmdldEJvdHRvbVJpZ2h0KCk7XG4gICAgICAgICAgICBjYXNlIE1jVG9hc3RQb3NpdGlvbi5UT1BfQ0VOVEVSOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmdldFRvcENlbnRlcigpO1xuICAgICAgICAgICAgY2FzZSBNY1RvYXN0UG9zaXRpb24uVE9QX0xFRlQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VG9wTGVmdCgpO1xuICAgICAgICAgICAgY2FzZSBNY1RvYXN0UG9zaXRpb24uVE9QX1JJR0hUOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmdldFRvcFJpZ2h0KCk7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmdldFRvcENlbnRlcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRUb3BDZW50ZXIoKTogR2xvYmFsUG9zaXRpb25TdHJhdGVneSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEdsb2JhbE92ZXJsYXlQb3NpdGlvbigpXG4gICAgICAgICAgICAudG9wKGAke0lOREVOVF9TSVpFfXB4YClcbiAgICAgICAgICAgIC5jZW50ZXJIb3Jpem9udGFsbHkoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFRvcExlZnQoKTogR2xvYmFsUG9zaXRpb25TdHJhdGVneSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEdsb2JhbE92ZXJsYXlQb3NpdGlvbigpXG4gICAgICAgICAgICAudG9wKGAke0lOREVOVF9TSVpFfXB4YClcbiAgICAgICAgICAgIC5sZWZ0KGAke0lOREVOVF9TSVpFfXB4YCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRUb3BSaWdodCgpOiBHbG9iYWxQb3NpdGlvblN0cmF0ZWd5IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0R2xvYmFsT3ZlcmxheVBvc2l0aW9uKClcbiAgICAgICAgICAgIC50b3AoYCR7SU5ERU5UX1NJWkV9cHhgKVxuICAgICAgICAgICAgLnJpZ2h0KGAke0lOREVOVF9TSVpFfXB4YCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRCb3R0b21DZW50ZXIoKTogR2xvYmFsUG9zaXRpb25TdHJhdGVneSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEdsb2JhbE92ZXJsYXlQb3NpdGlvbigpXG4gICAgICAgICAgICAuYm90dG9tKGAke0lOREVOVF9TSVpFfXB4YClcbiAgICAgICAgICAgIC5jZW50ZXJIb3Jpem9udGFsbHkoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEJvdHRvbUxlZnQoKTogR2xvYmFsUG9zaXRpb25TdHJhdGVneSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEdsb2JhbE92ZXJsYXlQb3NpdGlvbigpXG4gICAgICAgICAgICAuYm90dG9tKGAke0lOREVOVF9TSVpFfXB4YClcbiAgICAgICAgICAgIC5sZWZ0KGAke0lOREVOVF9TSVpFfXB4YCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRCb3R0b21SaWdodCgpOiBHbG9iYWxQb3NpdGlvblN0cmF0ZWd5IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0R2xvYmFsT3ZlcmxheVBvc2l0aW9uKClcbiAgICAgICAgICAgIC5ib3R0b20oYCR7SU5ERU5UX1NJWkV9cHhgKVxuICAgICAgICAgICAgLnJpZ2h0KGAke0lOREVOVF9TSVpFfXB4YCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRDZW50ZXIoKTogR2xvYmFsUG9zaXRpb25TdHJhdGVneSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEdsb2JhbE92ZXJsYXlQb3NpdGlvbigpXG4gICAgICAgICAgICAuY2VudGVyVmVydGljYWxseSgpXG4gICAgICAgICAgICAuY2VudGVySG9yaXpvbnRhbGx5KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRHbG9iYWxPdmVybGF5UG9zaXRpb24oKTogR2xvYmFsUG9zaXRpb25TdHJhdGVneSB7XG4gICAgICAgIHJldHVybiB0aGlzLm92ZXJsYXkucG9zaXRpb24oKS5nbG9iYWwoKTtcbiAgICB9XG59XG4iXX0=
@@ -104,7 +104,7 @@ export class McToggleComponent extends McToggleMixinBase {
104
104
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: McToggleComponent, deps: [{ token: i0.ElementRef }, { token: i1.FocusMonitor }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
105
105
  /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: McToggleComponent, selector: "mc-toggle", inputs: { color: "color", tabIndex: "tabIndex", labelPosition: "labelPosition", ariaLabel: ["aria-label", "ariaLabel"], ariaLabelledby: ["aria-labelledby", "ariaLabelledby"], id: "id", name: "name", value: "value", disabled: "disabled", checked: "checked" }, outputs: { change: "change" }, host: { properties: { "id": "id", "attr.id": "id", "class.mc-disabled": "disabled", "class.mc-active": "checked" }, classAttribute: "mc-toggle" }, providers: [{
106
106
  provide: NG_VALUE_ACCESSOR, useExisting: forwardRef((() => McToggleComponent)), multi: true
107
- }], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["input"], descendants: true }], exportAs: ["mcToggle"], usesInheritance: true, ngImport: i0, template: "<label [attr.for]=\"inputId\" class=\"mc-toggle-layout\">\n <div class=\"mc-toggle__container\" [class.left]=\"labelPosition === 'left'\">\n <input #input\n type=\"checkbox\"\n role=\"switch\"\n class=\"mc-toggle-input cdk-visually-hidden\"\n [id]=\"inputId\"\n [checked]=\"checked\"\n [attr.value]=\"value\"\n [disabled]=\"disabled\"\n [attr.name]=\"name\"\n [tabIndex]=\"tabIndex\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-labelledby]=\"ariaLabelledby\"\n [attr.aria-checked]=\"getAriaChecked()\"\n (click)=\"onInputClick($event)\"\n (change)=\"onChangeEvent($event)\"/>\n <div class=\"mc-toggle-bar-container\">\n <div class=\"mc-toggle__overlay\"></div>\n <div class=\"mc-toggle-bar\">\n <div class=\"mc-toggle__circle\" [@switch]=\"checked\"></div>\n </div>\n </div>\n <div class=\"mc-toggle__content\"\n [class.left]=\"labelPosition === 'left'\"\n [class.right]=\"labelPosition === 'right'\">\n <span class=\"mc-toggle-label\" (cdkObserveContent)=\"onLabelTextChange()\">\n <ng-content></ng-content>\n </span>\n </div>\n </div>\n</label>\n", styles: [".mc-toggle{display:inline-block}.mc-toggle .mc-toggle-layout{cursor:inherit;align-items:baseline;vertical-align:middle;display:inline-flex;white-space:nowrap}.mc-toggle .mc-toggle-bar{box-sizing:border-box;position:relative;border-width:1px;border-style:solid}.mc-toggle .mc-toggle-bar.mc-toggle-label-position-left{order:1}.mc-toggle .mc-toggle-bar-container{position:relative}.mc-toggle__container{display:flex;align-items:center;position:relative}.mc-toggle__container.left{flex-direction:row-reverse}.mc-toggle__content.left{margin-right:var(--mc-toggle-size-label-margin, 8px)}.mc-toggle__content.right{margin-left:var(--mc-toggle-size-label-margin, 8px)}.mc-toggle__circle{box-sizing:border-box;position:absolute;border-width:1px;border-style:solid;border-radius:100%;margin-top:-1px;margin-left:-1px;transform:translate(-1px)}.mc-toggle__overlay{position:absolute;top:0;left:0;z-index:1}.mc-toggle:not(.mc-toggle_small) .mc-toggle-bar{height:var(--mc-toggle-size-height, 16px);width:var(--mc-toggle-size-width, 28px);border-radius:var(--mc-toggle-size-border-radius, 9px)}.mc-toggle:not(.mc-toggle_small) .mc-toggle__overlay{border-radius:var(--mc-toggle-size-border-radius, 9px);height:var(--mc-toggle-size-height, 16px);width:var(--mc-toggle-size-width, 28px)}.mc-toggle:not(.mc-toggle_small) .mc-toggle__circle{height:var(--mc-toggle-size-height, 16px);width:var(--mc-toggle-size-height, 16px)}.mc-toggle.mc-toggle_small .mc-toggle-bar{height:var(--mc-toggle-small-size-height, 14px);width:var(--mc-toggle-small-size-width, 24px);border-radius:var(--mc-toggle-small-size-border-radius, 8px)}.mc-toggle.mc-toggle_small .mc-toggle__overlay{border-radius:var(--mc-toggle-small-size-border-radius, 8px);height:var(--mc-toggle-small-size-height, 14px);width:var(--mc-toggle-small-size-width, 24px)}.mc-toggle.mc-toggle_small .mc-toggle__circle{height:var(--mc-toggle-small-size-height, 14px);width:var(--mc-toggle-small-size-height, 14px)}.mc-toggle:not(.mc-disabled){cursor:pointer}\n"], animations: [
107
+ }], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["input"], descendants: true }], exportAs: ["mcToggle"], usesInheritance: true, ngImport: i0, template: "<label [attr.for]=\"inputId\" class=\"mc-toggle-layout\">\n <div class=\"mc-toggle__container\" [class.left]=\"labelPosition === 'left'\">\n <input #input\n type=\"checkbox\"\n role=\"switch\"\n class=\"mc-toggle-input cdk-visually-hidden\"\n [id]=\"inputId\"\n [checked]=\"checked\"\n [attr.value]=\"value\"\n [disabled]=\"disabled\"\n [attr.name]=\"name\"\n [tabIndex]=\"tabIndex\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-labelledby]=\"ariaLabelledby\"\n [attr.aria-checked]=\"getAriaChecked()\"\n (click)=\"onInputClick($event)\"\n (change)=\"onChangeEvent($event)\"/>\n <div class=\"mc-toggle-bar-outer-container\">\n <div class=\"mc-toggle-bar-inner-container\">\n <div class=\"mc-toggle__overlay\"></div>\n <div class=\"mc-toggle-bar\">\n <div class=\"mc-toggle__circle\" [@switch]=\"checked\"></div>\n </div>\n </div>\n </div>\n <div class=\"mc-toggle__content\"\n [class.left]=\"labelPosition === 'left'\"\n [class.right]=\"labelPosition === 'right'\">\n <span class=\"mc-toggle-label\" (cdkObserveContent)=\"onLabelTextChange()\">\n <ng-content></ng-content>\n </span>\n </div>\n </div>\n</label>\n", styles: [".mc-toggle{display:inline-block}.mc-toggle .mc-toggle-layout{cursor:inherit;align-items:baseline;vertical-align:middle;display:inline-flex;white-space:nowrap}.mc-toggle .mc-toggle-bar{box-sizing:border-box;position:relative;border-width:1px;border-style:solid}.mc-toggle .mc-toggle-bar.mc-toggle-label-position-left{order:1}.mc-toggle .mc-toggle-bar-outer-container{display:flex;align-items:center}.mc-toggle .mc-toggle-bar-inner-container{position:relative}.mc-toggle__container{display:flex;position:relative}.mc-toggle__container.left{flex-direction:row-reverse}.mc-toggle__content.left{margin-right:var(--mc-toggle-size-label-margin, 8px)}.mc-toggle__content.right{margin-left:var(--mc-toggle-size-label-margin, 8px)}.mc-toggle__circle{box-sizing:border-box;position:absolute;border-width:1px;border-style:solid;border-radius:100%;margin-top:-1px;margin-left:-1px;transform:translate(-1px)}.mc-toggle__overlay{position:absolute;top:0;left:0;z-index:1}.mc-toggle:not(.mc-toggle_small) .mc-toggle-bar{height:var(--mc-toggle-size-height, 16px);width:var(--mc-toggle-size-width, 28px);border-radius:var(--mc-toggle-size-border-radius, 9px)}.mc-toggle:not(.mc-toggle_small) .mc-toggle__overlay{border-radius:var(--mc-toggle-size-border-radius, 9px);height:var(--mc-toggle-size-height, 16px);width:var(--mc-toggle-size-width, 28px)}.mc-toggle:not(.mc-toggle_small) .mc-toggle__circle{height:var(--mc-toggle-size-height, 16px);width:var(--mc-toggle-size-height, 16px)}.mc-toggle.mc-toggle_small .mc-toggle-bar{height:var(--mc-toggle-small-size-height, 14px);width:var(--mc-toggle-small-size-width, 24px);border-radius:var(--mc-toggle-small-size-border-radius, 8px)}.mc-toggle.mc-toggle_small .mc-toggle__overlay{border-radius:var(--mc-toggle-small-size-border-radius, 8px);height:var(--mc-toggle-small-size-height, 14px);width:var(--mc-toggle-small-size-width, 24px)}.mc-toggle.mc-toggle_small .mc-toggle__circle{height:var(--mc-toggle-small-size-height, 14px);width:var(--mc-toggle-small-size-height, 14px)}.mc-toggle:not(.mc-disabled){cursor:pointer}\n"], animations: [
108
108
  trigger('switch', [
109
109
  state('true', style({ left: '50%' })),
110
110
  state('false', style({ left: '1px' })),
@@ -128,7 +128,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImpor
128
128
  ])
129
129
  ], providers: [{
130
130
  provide: NG_VALUE_ACCESSOR, useExisting: forwardRef((() => McToggleComponent)), multi: true
131
- }], template: "<label [attr.for]=\"inputId\" class=\"mc-toggle-layout\">\n <div class=\"mc-toggle__container\" [class.left]=\"labelPosition === 'left'\">\n <input #input\n type=\"checkbox\"\n role=\"switch\"\n class=\"mc-toggle-input cdk-visually-hidden\"\n [id]=\"inputId\"\n [checked]=\"checked\"\n [attr.value]=\"value\"\n [disabled]=\"disabled\"\n [attr.name]=\"name\"\n [tabIndex]=\"tabIndex\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-labelledby]=\"ariaLabelledby\"\n [attr.aria-checked]=\"getAriaChecked()\"\n (click)=\"onInputClick($event)\"\n (change)=\"onChangeEvent($event)\"/>\n <div class=\"mc-toggle-bar-container\">\n <div class=\"mc-toggle__overlay\"></div>\n <div class=\"mc-toggle-bar\">\n <div class=\"mc-toggle__circle\" [@switch]=\"checked\"></div>\n </div>\n </div>\n <div class=\"mc-toggle__content\"\n [class.left]=\"labelPosition === 'left'\"\n [class.right]=\"labelPosition === 'right'\">\n <span class=\"mc-toggle-label\" (cdkObserveContent)=\"onLabelTextChange()\">\n <ng-content></ng-content>\n </span>\n </div>\n </div>\n</label>\n", styles: [".mc-toggle{display:inline-block}.mc-toggle .mc-toggle-layout{cursor:inherit;align-items:baseline;vertical-align:middle;display:inline-flex;white-space:nowrap}.mc-toggle .mc-toggle-bar{box-sizing:border-box;position:relative;border-width:1px;border-style:solid}.mc-toggle .mc-toggle-bar.mc-toggle-label-position-left{order:1}.mc-toggle .mc-toggle-bar-container{position:relative}.mc-toggle__container{display:flex;align-items:center;position:relative}.mc-toggle__container.left{flex-direction:row-reverse}.mc-toggle__content.left{margin-right:var(--mc-toggle-size-label-margin, 8px)}.mc-toggle__content.right{margin-left:var(--mc-toggle-size-label-margin, 8px)}.mc-toggle__circle{box-sizing:border-box;position:absolute;border-width:1px;border-style:solid;border-radius:100%;margin-top:-1px;margin-left:-1px;transform:translate(-1px)}.mc-toggle__overlay{position:absolute;top:0;left:0;z-index:1}.mc-toggle:not(.mc-toggle_small) .mc-toggle-bar{height:var(--mc-toggle-size-height, 16px);width:var(--mc-toggle-size-width, 28px);border-radius:var(--mc-toggle-size-border-radius, 9px)}.mc-toggle:not(.mc-toggle_small) .mc-toggle__overlay{border-radius:var(--mc-toggle-size-border-radius, 9px);height:var(--mc-toggle-size-height, 16px);width:var(--mc-toggle-size-width, 28px)}.mc-toggle:not(.mc-toggle_small) .mc-toggle__circle{height:var(--mc-toggle-size-height, 16px);width:var(--mc-toggle-size-height, 16px)}.mc-toggle.mc-toggle_small .mc-toggle-bar{height:var(--mc-toggle-small-size-height, 14px);width:var(--mc-toggle-small-size-width, 24px);border-radius:var(--mc-toggle-small-size-border-radius, 8px)}.mc-toggle.mc-toggle_small .mc-toggle__overlay{border-radius:var(--mc-toggle-small-size-border-radius, 8px);height:var(--mc-toggle-small-size-height, 14px);width:var(--mc-toggle-small-size-width, 24px)}.mc-toggle.mc-toggle_small .mc-toggle__circle{height:var(--mc-toggle-small-size-height, 14px);width:var(--mc-toggle-small-size-height, 14px)}.mc-toggle:not(.mc-disabled){cursor:pointer}\n"] }]
131
+ }], template: "<label [attr.for]=\"inputId\" class=\"mc-toggle-layout\">\n <div class=\"mc-toggle__container\" [class.left]=\"labelPosition === 'left'\">\n <input #input\n type=\"checkbox\"\n role=\"switch\"\n class=\"mc-toggle-input cdk-visually-hidden\"\n [id]=\"inputId\"\n [checked]=\"checked\"\n [attr.value]=\"value\"\n [disabled]=\"disabled\"\n [attr.name]=\"name\"\n [tabIndex]=\"tabIndex\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-labelledby]=\"ariaLabelledby\"\n [attr.aria-checked]=\"getAriaChecked()\"\n (click)=\"onInputClick($event)\"\n (change)=\"onChangeEvent($event)\"/>\n <div class=\"mc-toggle-bar-outer-container\">\n <div class=\"mc-toggle-bar-inner-container\">\n <div class=\"mc-toggle__overlay\"></div>\n <div class=\"mc-toggle-bar\">\n <div class=\"mc-toggle__circle\" [@switch]=\"checked\"></div>\n </div>\n </div>\n </div>\n <div class=\"mc-toggle__content\"\n [class.left]=\"labelPosition === 'left'\"\n [class.right]=\"labelPosition === 'right'\">\n <span class=\"mc-toggle-label\" (cdkObserveContent)=\"onLabelTextChange()\">\n <ng-content></ng-content>\n </span>\n </div>\n </div>\n</label>\n", styles: [".mc-toggle{display:inline-block}.mc-toggle .mc-toggle-layout{cursor:inherit;align-items:baseline;vertical-align:middle;display:inline-flex;white-space:nowrap}.mc-toggle .mc-toggle-bar{box-sizing:border-box;position:relative;border-width:1px;border-style:solid}.mc-toggle .mc-toggle-bar.mc-toggle-label-position-left{order:1}.mc-toggle .mc-toggle-bar-outer-container{display:flex;align-items:center}.mc-toggle .mc-toggle-bar-inner-container{position:relative}.mc-toggle__container{display:flex;position:relative}.mc-toggle__container.left{flex-direction:row-reverse}.mc-toggle__content.left{margin-right:var(--mc-toggle-size-label-margin, 8px)}.mc-toggle__content.right{margin-left:var(--mc-toggle-size-label-margin, 8px)}.mc-toggle__circle{box-sizing:border-box;position:absolute;border-width:1px;border-style:solid;border-radius:100%;margin-top:-1px;margin-left:-1px;transform:translate(-1px)}.mc-toggle__overlay{position:absolute;top:0;left:0;z-index:1}.mc-toggle:not(.mc-toggle_small) .mc-toggle-bar{height:var(--mc-toggle-size-height, 16px);width:var(--mc-toggle-size-width, 28px);border-radius:var(--mc-toggle-size-border-radius, 9px)}.mc-toggle:not(.mc-toggle_small) .mc-toggle__overlay{border-radius:var(--mc-toggle-size-border-radius, 9px);height:var(--mc-toggle-size-height, 16px);width:var(--mc-toggle-size-width, 28px)}.mc-toggle:not(.mc-toggle_small) .mc-toggle__circle{height:var(--mc-toggle-size-height, 16px);width:var(--mc-toggle-size-height, 16px)}.mc-toggle.mc-toggle_small .mc-toggle-bar{height:var(--mc-toggle-small-size-height, 14px);width:var(--mc-toggle-small-size-width, 24px);border-radius:var(--mc-toggle-small-size-border-radius, 8px)}.mc-toggle.mc-toggle_small .mc-toggle__overlay{border-radius:var(--mc-toggle-small-size-border-radius, 8px);height:var(--mc-toggle-small-size-height, 14px);width:var(--mc-toggle-small-size-width, 24px)}.mc-toggle.mc-toggle_small .mc-toggle__circle{height:var(--mc-toggle-small-size-height, 14px);width:var(--mc-toggle-small-size-height, 14px)}.mc-toggle:not(.mc-disabled){cursor:pointer}\n"] }]
132
132
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.FocusMonitor }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { inputElement: [{
133
133
  type: ViewChild,
134
134
  args: ['input', { static: false }]
@@ -153,4 +153,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImpor
153
153
  }], change: [{
154
154
  type: Output
155
155
  }] } });
156
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21vc2FpYy90b2dnbGUvdG9nZ2xlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21vc2FpYy90b2dnbGUvdG9nZ2xlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFDSCxZQUFZLEVBSVosVUFBVSxFQUNWLGFBQWEsRUFDYixhQUFhLEVBQ2hCLE1BQU0seUJBQXlCLENBQUM7OztBQUdqQyxJQUFJLFlBQVksR0FBRyxDQUFDLENBQUM7QUFJckIsb0JBQW9CO0FBQ3BCLE1BQU0sT0FBTyxZQUFZO0lBQ3JCLFlBQW1CLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7SUFBRyxDQUFDO0NBQ2hEO0FBRUQsb0JBQW9CO0FBQ3BCLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUlKLGFBQWEsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxFQUFFLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0FBRXZHLE1BQU0sT0FBTyxjQUFjO0NBRzFCO0FBNEJELE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxpQkFBaUI7SUFZcEQsSUFBSSxPQUFPO1FBQ1AsT0FBTyxHQUFHLElBQUksQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLFFBQVEsUUFBUSxDQUFDO0lBQy9DLENBQUM7SUFNRCxJQUNJLFFBQVE7UUFDUixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQUksUUFBUSxDQUFDLEtBQVU7UUFDbkIsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUMxQixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUN2QixJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDMUM7SUFDTCxDQUFDO0lBSUQsSUFBSSxPQUFPO1FBQ1AsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUNJLE9BQU8sQ0FBQyxLQUFjO1FBQ3RCLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDekIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7WUFDdEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRSxDQUFDO1NBQzFDO0lBQ0wsQ0FBQztJQVFELFlBQ1csVUFBc0IsRUFDckIsYUFBMkIsRUFDM0Isa0JBQXFDO1FBRTdDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUpYLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDckIsa0JBQWEsR0FBYixhQUFhLENBQWM7UUFDM0IsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtRQWxEeEMsa0JBQWEsR0FBNEIsT0FBTyxDQUFDO1FBRXJDLGNBQVMsR0FBVyxFQUFFLENBQUM7UUFDbEIsbUJBQWMsR0FBa0IsSUFBSSxDQUFDO1FBUXRELFNBQUksR0FBa0IsSUFBSSxDQUFDO1FBZ0I1QixjQUFTLEdBQVksS0FBSyxDQUFDO1FBYzNCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFFZixXQUFNLEdBQWlDLElBQUksWUFBWSxFQUFrQixDQUFDO1FBRXJGLGFBQVEsR0FBVyxhQUFhLEVBQUUsWUFBWSxFQUFFLENBQUM7UUF5RHpELG9DQUFvQztRQUM1QixzQkFBaUIsR0FBRyxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFFckMsb0NBQW9DO1FBQzVCLHFCQUFnQixHQUFHLENBQUMsQ0FBTSxFQUFFLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFwRHRDLElBQUksQ0FBQyxFQUFFLEdBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUV6QixJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVELEtBQUs7UUFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBRUQsY0FBYztRQUNWLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQVk7UUFDdEIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBRXhCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsaUJBQWlCO1FBQ2IsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzNDLENBQUM7SUFFRCxZQUFZLENBQUMsS0FBaUI7UUFDMUIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBVTtRQUNqQixJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDM0IsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQU87UUFDcEIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBTztRQUNyQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxVQUFtQjtRQUNoQyxJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztJQUMvQixDQUFDO0lBUU8sZ0JBQWdCO1FBQ3BCLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQzlCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFTyxlQUFlO1FBQ25CLE1BQU0sS0FBSyxHQUFHLElBQUksY0FBYyxFQUFFLENBQUM7UUFDbkMsS0FBSyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDcEIsS0FBSyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBRTdCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUIsQ0FBQztpSUE3SFEsaUJBQWlCO3FIQUFqQixpQkFBaUIseWRBSmYsQ0FBQztnQkFDUixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxpQkFBaUIsRUFBQyxFQUFFLEtBQUssRUFBRSxJQUFJO2FBQzVGLENBQUMsZ0xDdkVOLCszQ0FnQ0EsaytERDhCZ0I7WUFDUixPQUFPLENBQUMsUUFBUSxFQUFFO2dCQUNkLEtBQUssQ0FBQyxNQUFNLEVBQUcsS0FBSyxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7Z0JBQ3RDLEtBQUssQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7Z0JBQ3RDLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDakQsQ0FBQztTQUNMOzsyRkFLUSxpQkFBaUI7a0JBMUI3QixTQUFTOytCQUNJLFdBQVcsWUFDWCxVQUFVLG1CQUdILHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksVUFDN0IsQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLFFBQ3ZCO3dCQUNGLEtBQUssRUFBRSxXQUFXO3dCQUNsQixNQUFNLEVBQUUsSUFBSTt3QkFDWixXQUFXLEVBQUUsSUFBSTt3QkFDakIscUJBQXFCLEVBQUUsVUFBVTt3QkFDakMsbUJBQW1CLEVBQUUsU0FBUztxQkFDakMsY0FDVzt3QkFDUixPQUFPLENBQUMsUUFBUSxFQUFFOzRCQUNkLEtBQUssQ0FBQyxNQUFNLEVBQUcsS0FBSyxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7NEJBQ3RDLEtBQUssQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7NEJBQ3RDLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7eUJBQ2pELENBQUM7cUJBQ0wsYUFDVSxDQUFDOzRCQUNSLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFDLEdBQUcsRUFBRSxrQkFBa0IsRUFBQyxFQUFFLEtBQUssRUFBRSxJQUFJO3lCQUM1RixDQUFDOzRKQUtxQyxZQUFZO3NCQUFsRCxTQUFTO3VCQUFDLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBRTVCLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRWUsU0FBUztzQkFBN0IsS0FBSzt1QkFBQyxZQUFZO2dCQUNPLGNBQWM7c0JBQXZDLEtBQUs7dUJBQUMsaUJBQWlCO2dCQUVmLEVBQUU7c0JBQVYsS0FBSztnQkFNRyxJQUFJO3NCQUFaLEtBQUs7Z0JBRUcsS0FBSztzQkFBYixLQUFLO2dCQUdGLFFBQVE7c0JBRFgsS0FBSztnQkFtQkYsT0FBTztzQkFEVixLQUFLO2dCQVVhLE1BQU07c0JBQXhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbmltYXRlLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7IEZvY3VzTW9uaXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gICAgVGhlbWVQYWxldHRlLFxuICAgIENhbkNvbG9yLCBDYW5Db2xvckN0b3IsXG4gICAgQ2FuRGlzYWJsZSwgQ2FuRGlzYWJsZUN0b3IsXG4gICAgSGFzVGFiSW5kZXgsIEhhc1RhYkluZGV4Q3RvcixcbiAgICBtaXhpbkNvbG9yLFxuICAgIG1peGluRGlzYWJsZWQsXG4gICAgbWl4aW5UYWJJbmRleFxufSBmcm9tICdAcHRzZWN1cml0eS9tb3NhaWMvY29yZSc7XG5cblxubGV0IG5leHRVbmlxdWVJZCA9IDA7XG5cbnR5cGUgVG9nZ2xlTGFiZWxQb3NpdGlvblR5cGUgPSAnbGVmdCcgfCAncmlnaHQnO1xuXG4vKiogQGRvY3MtcHJpdmF0ZSAqL1xuZXhwb3J0IGNsYXNzIE1jVG9nZ2xlQmFzZSB7XG4gICAgY29uc3RydWN0b3IocHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHt9XG59XG5cbi8qKiBAZG9jcy1wcml2YXRlICovXG5leHBvcnQgY29uc3QgTWNUb2dnbGVNaXhpbkJhc2U6XG4gICAgSGFzVGFiSW5kZXhDdG9yICZcbiAgICBDYW5EaXNhYmxlQ3RvciAmXG4gICAgQ2FuQ29sb3JDdG9yICZcbiAgICB0eXBlb2YgTWNUb2dnbGVCYXNlID0gbWl4aW5UYWJJbmRleChtaXhpbkNvbG9yKG1peGluRGlzYWJsZWQoTWNUb2dnbGVCYXNlKSwgVGhlbWVQYWxldHRlLlByaW1hcnkpKTtcblxuZXhwb3J0IGNsYXNzIE1jVG9nZ2xlQ2hhbmdlIHtcbiAgICBzb3VyY2U6IE1jVG9nZ2xlQ29tcG9uZW50O1xuICAgIGNoZWNrZWQ6IGJvb2xlYW47XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbWMtdG9nZ2xlJyxcbiAgICBleHBvcnRBczogJ21jVG9nZ2xlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdG9nZ2xlLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi90b2dnbGUuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaW5wdXRzOiBbJ2NvbG9yJywgJ3RhYkluZGV4J10sXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ21jLXRvZ2dsZScsXG4gICAgICAgICdbaWRdJzogJ2lkJyxcbiAgICAgICAgJ1thdHRyLmlkXSc6ICdpZCcsXG4gICAgICAgICdbY2xhc3MubWMtZGlzYWJsZWRdJzogJ2Rpc2FibGVkJyxcbiAgICAgICAgJ1tjbGFzcy5tYy1hY3RpdmVdJzogJ2NoZWNrZWQnXG4gICAgfSxcbiAgICBhbmltYXRpb25zOiBbXG4gICAgICAgIHRyaWdnZXIoJ3N3aXRjaCcsIFtcbiAgICAgICAgICAgIHN0YXRlKCd0cnVlJyAsIHN0eWxlKHsgbGVmdDogJzUwJScgfSkpLFxuICAgICAgICAgICAgc3RhdGUoJ2ZhbHNlJywgc3R5bGUoeyBsZWZ0OiAnMXB4JyB9KSksXG4gICAgICAgICAgICB0cmFuc2l0aW9uKCd0cnVlIDw9PiBmYWxzZScsIGFuaW1hdGUoJzE1MG1zJykpXG4gICAgICAgIF0pXG4gICAgXSxcbiAgICBwcm92aWRlcnM6IFt7XG4gICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLCB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBNY1RvZ2dsZUNvbXBvbmVudCksIG11bHRpOiB0cnVlXG4gICAgfV1cbn0pXG5leHBvcnQgY2xhc3MgTWNUb2dnbGVDb21wb25lbnQgZXh0ZW5kcyBNY1RvZ2dsZU1peGluQmFzZVxuICAgIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIENhbkNvbG9yLCBDYW5EaXNhYmxlLCBIYXNUYWJJbmRleCB7XG5cbiAgICBAVmlld0NoaWxkKCdpbnB1dCcsIHsgc3RhdGljOiBmYWxzZSB9KSBpbnB1dEVsZW1lbnQ6IEVsZW1lbnRSZWY7XG5cbiAgICBASW5wdXQoKSBsYWJlbFBvc2l0aW9uOiBUb2dnbGVMYWJlbFBvc2l0aW9uVHlwZSA9ICdyaWdodCc7XG5cbiAgICBASW5wdXQoJ2FyaWEtbGFiZWwnKSBhcmlhTGFiZWw6IHN0cmluZyA9ICcnO1xuICAgIEBJbnB1dCgnYXJpYS1sYWJlbGxlZGJ5JykgYXJpYUxhYmVsbGVkYnk6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gICAgQElucHV0KCkgaWQ6IHN0cmluZztcblxuICAgIGdldCBpbnB1dElkKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgJHt0aGlzLmlkIHx8IHRoaXMudW5pcXVlSWR9LWlucHV0YDtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBuYW1lOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAgIEBJbnB1dCgpIHZhbHVlOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIGdldCBkaXNhYmxlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xuICAgIH1cblxuICAgIHNldCBkaXNhYmxlZCh2YWx1ZTogYW55KSB7XG4gICAgICAgIGlmICh2YWx1ZSAhPT0gdGhpcy5fZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2Rpc2FibGVkID0gdmFsdWU7XG4gICAgICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX2Rpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBnZXQgY2hlY2tlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NoZWNrZWQ7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBzZXQgY2hlY2tlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICBpZiAodmFsdWUgIT09IHRoaXMuX2NoZWNrZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2NoZWNrZWQgPSB2YWx1ZTtcbiAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY2hlY2tlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IGNoYW5nZTogRXZlbnRFbWl0dGVyPE1jVG9nZ2xlQ2hhbmdlPiA9IG5ldyBFdmVudEVtaXR0ZXI8TWNUb2dnbGVDaGFuZ2U+KCk7XG5cbiAgICBwcml2YXRlIHVuaXF1ZUlkOiBzdHJpbmcgPSBgbWMtdG9nZ2xlLSR7KytuZXh0VW5pcXVlSWR9YDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSBfZm9jdXNNb25pdG9yOiBGb2N1c01vbml0b3IsXG4gICAgICAgIHByaXZhdGUgX2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxuICAgICkge1xuICAgICAgICBzdXBlcihlbGVtZW50UmVmKTtcblxuICAgICAgICB0aGlzLmlkID0gIHRoaXMudW5pcXVlSWQ7XG5cbiAgICAgICAgdGhpcy5fZm9jdXNNb25pdG9yLm1vbml0b3IodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHRydWUpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLl9mb2N1c01vbml0b3Iuc3RvcE1vbml0b3JpbmcodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuICAgIH1cblxuICAgIGZvY3VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9mb2N1c01vbml0b3IuZm9jdXNWaWEodGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ2tleWJvYXJkJyk7XG4gICAgfVxuXG4gICAgZ2V0QXJpYUNoZWNrZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNoZWNrZWQ7XG4gICAgfVxuXG4gICAgb25DaGFuZ2VFdmVudChldmVudDogRXZlbnQpIHtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgdGhpcy51cGRhdGVNb2RlbFZhbHVlKCk7XG4gICAgICAgIHRoaXMuZW1pdENoYW5nZUV2ZW50KCk7XG4gICAgfVxuXG4gICAgb25MYWJlbFRleHRDaGFuZ2UoKSB7XG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIG9uSW5wdXRDbGljayhldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG5cbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICAgICAgdGhpcy5jaGVja2VkID0gISF2YWx1ZTtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrID0gZm47XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrID0gZm47XG4gICAgfVxuXG4gICAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIH1cblxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1lbXB0eVxuICAgIHByaXZhdGUgb25Ub3VjaGVkQ2FsbGJhY2sgPSAoKSA9PiB7fTtcblxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1lbXB0eVxuICAgIHByaXZhdGUgb25DaGFuZ2VDYWxsYmFjayA9IChfOiBhbnkpID0+IHt9O1xuXG4gICAgcHJpdmF0ZSB1cGRhdGVNb2RlbFZhbHVlKCkge1xuICAgICAgICB0aGlzLl9jaGVja2VkID0gIXRoaXMuY2hlY2tlZDtcbiAgICAgICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjaygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZW1pdENoYW5nZUV2ZW50KCkge1xuICAgICAgICBjb25zdCBldmVudCA9IG5ldyBNY1RvZ2dsZUNoYW5nZSgpO1xuICAgICAgICBldmVudC5zb3VyY2UgPSB0aGlzO1xuICAgICAgICBldmVudC5jaGVja2VkID0gdGhpcy5jaGVja2VkO1xuXG4gICAgICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayh0aGlzLmNoZWNrZWQpO1xuICAgICAgICB0aGlzLmNoYW5nZS5lbWl0KGV2ZW50KTtcbiAgICB9XG59XG4iLCI8bGFiZWwgW2F0dHIuZm9yXT1cImlucHV0SWRcIiBjbGFzcz1cIm1jLXRvZ2dsZS1sYXlvdXRcIj5cbiAgICA8ZGl2IGNsYXNzPVwibWMtdG9nZ2xlX19jb250YWluZXJcIiBbY2xhc3MubGVmdF09XCJsYWJlbFBvc2l0aW9uID09PSAnbGVmdCdcIj5cbiAgICAgICAgPGlucHV0ICNpbnB1dFxuICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgIHJvbGU9XCJzd2l0Y2hcIlxuICAgICAgICAgICAgICAgY2xhc3M9XCJtYy10b2dnbGUtaW5wdXQgY2RrLXZpc3VhbGx5LWhpZGRlblwiXG4gICAgICAgICAgICAgICBbaWRdPVwiaW5wdXRJZFwiXG4gICAgICAgICAgICAgICBbY2hlY2tlZF09XCJjaGVja2VkXCJcbiAgICAgICAgICAgICAgIFthdHRyLnZhbHVlXT1cInZhbHVlXCJcbiAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICAgICBbYXR0ci5uYW1lXT1cIm5hbWVcIlxuICAgICAgICAgICAgICAgW3RhYkluZGV4XT1cInRhYkluZGV4XCJcbiAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsIHx8IG51bGxcIlxuICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImFyaWFMYWJlbGxlZGJ5XCJcbiAgICAgICAgICAgICAgIFthdHRyLmFyaWEtY2hlY2tlZF09XCJnZXRBcmlhQ2hlY2tlZCgpXCJcbiAgICAgICAgICAgICAgIChjbGljayk9XCJvbklucHV0Q2xpY2soJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAoY2hhbmdlKT1cIm9uQ2hhbmdlRXZlbnQoJGV2ZW50KVwiLz5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1jLXRvZ2dsZS1iYXItY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWMtdG9nZ2xlX19vdmVybGF5XCI+PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWMtdG9nZ2xlLWJhclwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYy10b2dnbGVfX2NpcmNsZVwiIFtAc3dpdGNoXT1cImNoZWNrZWRcIj48L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1jLXRvZ2dsZV9fY29udGVudFwiXG4gICAgICAgICAgICAgW2NsYXNzLmxlZnRdPVwibGFiZWxQb3NpdGlvbiA9PT0gJ2xlZnQnXCJcbiAgICAgICAgICAgICBbY2xhc3MucmlnaHRdPVwibGFiZWxQb3NpdGlvbiA9PT0gJ3JpZ2h0J1wiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYy10b2dnbGUtbGFiZWxcIiAoY2RrT2JzZXJ2ZUNvbnRlbnQpPVwib25MYWJlbFRleHRDaGFuZ2UoKVwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2xhYmVsPlxuIl19
156
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21vc2FpYy90b2dnbGUvdG9nZ2xlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21vc2FpYy90b2dnbGUvdG9nZ2xlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFDSCxZQUFZLEVBSVosVUFBVSxFQUNWLGFBQWEsRUFDYixhQUFhLEVBQ2hCLE1BQU0seUJBQXlCLENBQUM7OztBQUdqQyxJQUFJLFlBQVksR0FBRyxDQUFDLENBQUM7QUFJckIsb0JBQW9CO0FBQ3BCLE1BQU0sT0FBTyxZQUFZO0lBQ3JCLFlBQW1CLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7SUFBRyxDQUFDO0NBQ2hEO0FBRUQsb0JBQW9CO0FBQ3BCLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUlKLGFBQWEsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxFQUFFLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0FBRXZHLE1BQU0sT0FBTyxjQUFjO0NBRzFCO0FBNEJELE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxpQkFB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QkFEVixLQUFLO2dCQVVhLE1BQU07c0JBQXhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbmltYXRlLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7IEZvY3VzTW9uaXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gICAgVGhlbWVQYWxldHRlLFxuICAgIENhbkNvbG9yLCBDYW5Db2xvckN0b3IsXG4gICAgQ2FuRGlzYWJsZSwgQ2FuRGlzYWJsZUN0b3IsXG4gICAgSGFzVGFiSW5kZXgsIEhhc1RhYkluZGV4Q3RvcixcbiAgICBtaXhpbkNvbG9yLFxuICAgIG1peGluRGlzYWJsZWQsXG4gICAgbWl4aW5UYWJJbmRleFxufSBmcm9tICdAcHRzZWN1cml0eS9tb3NhaWMvY29yZSc7XG5cblxubGV0IG5leHRVbmlxdWVJZCA9IDA7XG5cbnR5cGUgVG9nZ2xlTGFiZWxQb3NpdGlvblR5cGUgPSAnbGVmdCcgfCAncmlnaHQnO1xuXG4vKiogQGRvY3MtcHJpdmF0ZSAqL1xuZXhwb3J0IGNsYXNzIE1jVG9nZ2xlQmFzZSB7XG4gICAgY29uc3RydWN0b3IocHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHt9XG59XG5cbi8qKiBAZG9jcy1wcml2YXRlICovXG5leHBvcnQgY29uc3QgTWNUb2dnbGVNaXhpbkJhc2U6XG4gICAgSGFzVGFiSW5kZXhDdG9yICZcbiAgICBDYW5EaXNhYmxlQ3RvciAmXG4gICAgQ2FuQ29sb3JDdG9yICZcbiAgICB0eXBlb2YgTWNUb2dnbGVCYXNlID0gbWl4aW5UYWJJbmRleChtaXhpbkNvbG9yKG1peGluRGlzYWJsZWQoTWNUb2dnbGVCYXNlKSwgVGhlbWVQYWxldHRlLlByaW1hcnkpKTtcblxuZXhwb3J0IGNsYXNzIE1jVG9nZ2xlQ2hhbmdlIHtcbiAgICBzb3VyY2U6IE1jVG9nZ2xlQ29tcG9uZW50O1xuICAgIGNoZWNrZWQ6IGJvb2xlYW47XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbWMtdG9nZ2xlJyxcbiAgICBleHBvcnRBczogJ21jVG9nZ2xlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdG9nZ2xlLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi90b2dnbGUuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaW5wdXRzOiBbJ2NvbG9yJywgJ3RhYkluZGV4J10sXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ21jLXRvZ2dsZScsXG4gICAgICAgICdbaWRdJzogJ2lkJyxcbiAgICAgICAgJ1thdHRyLmlkXSc6ICdpZCcsXG4gICAgICAgICdbY2xhc3MubWMtZGlzYWJsZWRdJzogJ2Rpc2FibGVkJyxcbiAgICAgICAgJ1tjbGFzcy5tYy1hY3RpdmVdJzogJ2NoZWNrZWQnXG4gICAgfSxcbiAgICBhbmltYXRpb25zOiBbXG4gICAgICAgIHRyaWdnZXIoJ3N3aXRjaCcsIFtcbiAgICAgICAgICAgIHN0YXRlKCd0cnVlJyAsIHN0eWxlKHsgbGVmdDogJzUwJScgfSkpLFxuICAgICAgICAgICAgc3RhdGUoJ2ZhbHNlJywgc3R5bGUoeyBsZWZ0OiAnMXB4JyB9KSksXG4gICAgICAgICAgICB0cmFuc2l0aW9uKCd0cnVlIDw9PiBmYWxzZScsIGFuaW1hdGUoJzE1MG1zJykpXG4gICAgICAgIF0pXG4gICAgXSxcbiAgICBwcm92aWRlcnM6IFt7XG4gICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLCB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBNY1RvZ2dsZUNvbXBvbmVudCksIG11bHRpOiB0cnVlXG4gICAgfV1cbn0pXG5leHBvcnQgY2xhc3MgTWNUb2dnbGVDb21wb25lbnQgZXh0ZW5kcyBNY1RvZ2dsZU1peGluQmFzZVxuICAgIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIENhbkNvbG9yLCBDYW5EaXNhYmxlLCBIYXNUYWJJbmRleCB7XG5cbiAgICBAVmlld0NoaWxkKCdpbnB1dCcsIHsgc3RhdGljOiBmYWxzZSB9KSBpbnB1dEVsZW1lbnQ6IEVsZW1lbnRSZWY7XG5cbiAgICBASW5wdXQoKSBsYWJlbFBvc2l0aW9uOiBUb2dnbGVMYWJlbFBvc2l0aW9uVHlwZSA9ICdyaWdodCc7XG5cbiAgICBASW5wdXQoJ2FyaWEtbGFiZWwnKSBhcmlhTGFiZWw6IHN0cmluZyA9ICcnO1xuICAgIEBJbnB1dCgnYXJpYS1sYWJlbGxlZGJ5JykgYXJpYUxhYmVsbGVkYnk6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gICAgQElucHV0KCkgaWQ6IHN0cmluZztcblxuICAgIGdldCBpbnB1dElkKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgJHt0aGlzLmlkIHx8IHRoaXMudW5pcXVlSWR9LWlucHV0YDtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBuYW1lOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAgIEBJbnB1dCgpIHZhbHVlOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIGdldCBkaXNhYmxlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xuICAgIH1cblxuICAgIHNldCBkaXNhYmxlZCh2YWx1ZTogYW55KSB7XG4gICAgICAgIGlmICh2YWx1ZSAhPT0gdGhpcy5fZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2Rpc2FibGVkID0gdmFsdWU7XG4gICAgICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX2Rpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBnZXQgY2hlY2tlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NoZWNrZWQ7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBzZXQgY2hlY2tlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICBpZiAodmFsdWUgIT09IHRoaXMuX2NoZWNrZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2NoZWNrZWQgPSB2YWx1ZTtcbiAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY2hlY2tlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IGNoYW5nZTogRXZlbnRFbWl0dGVyPE1jVG9nZ2xlQ2hhbmdlPiA9IG5ldyBFdmVudEVtaXR0ZXI8TWNUb2dnbGVDaGFuZ2U+KCk7XG5cbiAgICBwcml2YXRlIHVuaXF1ZUlkOiBzdHJpbmcgPSBgbWMtdG9nZ2xlLSR7KytuZXh0VW5pcXVlSWR9YDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSBfZm9jdXNNb25pdG9yOiBGb2N1c01vbml0b3IsXG4gICAgICAgIHByaXZhdGUgX2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxuICAgICkge1xuICAgICAgICBzdXBlcihlbGVtZW50UmVmKTtcblxuICAgICAgICB0aGlzLmlkID0gIHRoaXMudW5pcXVlSWQ7XG5cbiAgICAgICAgdGhpcy5fZm9jdXNNb25pdG9yLm1vbml0b3IodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHRydWUpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLl9mb2N1c01vbml0b3Iuc3RvcE1vbml0b3JpbmcodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuICAgIH1cblxuICAgIGZvY3VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9mb2N1c01vbml0b3IuZm9jdXNWaWEodGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ2tleWJvYXJkJyk7XG4gICAgfVxuXG4gICAgZ2V0QXJpYUNoZWNrZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNoZWNrZWQ7XG4gICAgfVxuXG4gICAgb25DaGFuZ2VFdmVudChldmVudDogRXZlbnQpIHtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgdGhpcy51cGRhdGVNb2RlbFZhbHVlKCk7XG4gICAgICAgIHRoaXMuZW1pdENoYW5nZUV2ZW50KCk7XG4gICAgfVxuXG4gICAgb25MYWJlbFRleHRDaGFuZ2UoKSB7XG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIG9uSW5wdXRDbGljayhldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG5cbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICAgICAgdGhpcy5jaGVja2VkID0gISF2YWx1ZTtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrID0gZm47XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrID0gZm47XG4gICAgfVxuXG4gICAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIH1cblxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1lbXB0eVxuICAgIHByaXZhdGUgb25Ub3VjaGVkQ2FsbGJhY2sgPSAoKSA9PiB7fTtcblxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1lbXB0eVxuICAgIHByaXZhdGUgb25DaGFuZ2VDYWxsYmFjayA9IChfOiBhbnkpID0+IHt9O1xuXG4gICAgcHJpdmF0ZSB1cGRhdGVNb2RlbFZhbHVlKCkge1xuICAgICAgICB0aGlzLl9jaGVja2VkID0gIXRoaXMuY2hlY2tlZDtcbiAgICAgICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjaygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZW1pdENoYW5nZUV2ZW50KCkge1xuICAgICAgICBjb25zdCBldmVudCA9IG5ldyBNY1RvZ2dsZUNoYW5nZSgpO1xuICAgICAgICBldmVudC5zb3VyY2UgPSB0aGlzO1xuICAgICAgICBldmVudC5jaGVja2VkID0gdGhpcy5jaGVja2VkO1xuXG4gICAgICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayh0aGlzLmNoZWNrZWQpO1xuICAgICAgICB0aGlzLmNoYW5nZS5lbWl0KGV2ZW50KTtcbiAgICB9XG59XG4iLCI8bGFiZWwgW2F0dHIuZm9yXT1cImlucHV0SWRcIiBjbGFzcz1cIm1jLXRvZ2dsZS1sYXlvdXRcIj5cbiAgICA8ZGl2IGNsYXNzPVwibWMtdG9nZ2xlX19jb250YWluZXJcIiBbY2xhc3MubGVmdF09XCJsYWJlbFBvc2l0aW9uID09PSAnbGVmdCdcIj5cbiAgICAgICAgPGlucHV0ICNpbnB1dFxuICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgIHJvbGU9XCJzd2l0Y2hcIlxuICAgICAgICAgICAgICAgY2xhc3M9XCJtYy10b2dnbGUtaW5wdXQgY2RrLXZpc3VhbGx5LWhpZGRlblwiXG4gICAgICAgICAgICAgICBbaWRdPVwiaW5wdXRJZFwiXG4gICAgICAgICAgICAgICBbY2hlY2tlZF09XCJjaGVja2VkXCJcbiAgICAgICAgICAgICAgIFthdHRyLnZhbHVlXT1cInZhbHVlXCJcbiAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICAgICBbYXR0ci5uYW1lXT1cIm5hbWVcIlxuICAgICAgICAgICAgICAgW3RhYkluZGV4XT1cInRhYkluZGV4XCJcbiAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsIHx8IG51bGxcIlxuICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImFyaWFMYWJlbGxlZGJ5XCJcbiAgICAgICAgICAgICAgIFthdHRyLmFyaWEtY2hlY2tlZF09XCJnZXRBcmlhQ2hlY2tlZCgpXCJcbiAgICAgICAgICAgICAgIChjbGljayk9XCJvbklucHV0Q2xpY2soJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAoY2hhbmdlKT1cIm9uQ2hhbmdlRXZlbnQoJGV2ZW50KVwiLz5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1jLXRvZ2dsZS1iYXItb3V0ZXItY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWMtdG9nZ2xlLWJhci1pbm5lci1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWMtdG9nZ2xlX19vdmVybGF5XCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1jLXRvZ2dsZS1iYXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1jLXRvZ2dsZV9fY2lyY2xlXCIgW0Bzd2l0Y2hdPVwiY2hlY2tlZFwiPjwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWMtdG9nZ2xlX19jb250ZW50XCJcbiAgICAgICAgICAgICBbY2xhc3MubGVmdF09XCJsYWJlbFBvc2l0aW9uID09PSAnbGVmdCdcIlxuICAgICAgICAgICAgIFtjbGFzcy5yaWdodF09XCJsYWJlbFBvc2l0aW9uID09PSAncmlnaHQnXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1jLXRvZ2dsZS1sYWJlbFwiIChjZGtPYnNlcnZlQ29udGVudCk9XCJvbkxhYmVsVGV4dENoYW5nZSgpXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvbGFiZWw+XG4iXX0=