matcha-components 18.3.3 → 18.3.5

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.
@@ -0,0 +1,16 @@
1
+ import { QueryList, AfterContentInit } from '@angular/core';
2
+ import { MatchaStepComponent } from '../stepper-step/stepper-step.component';
3
+ import { MatchaStepperService } from '../stepper.service';
4
+ import * as i0 from "@angular/core";
5
+ export declare class MatchaStepperComponent implements AfterContentInit {
6
+ private stepperService;
7
+ steps: QueryList<MatchaStepComponent>;
8
+ currentStepIndex: number;
9
+ constructor(stepperService: MatchaStepperService);
10
+ ngAfterContentInit(): void;
11
+ next(): void;
12
+ previous(): void;
13
+ private activateStep;
14
+ static ɵfac: i0.ɵɵFactoryDeclaration<MatchaStepperComponent, never>;
15
+ static ɵcmp: i0.ɵɵComponentDeclaration<MatchaStepperComponent, "matcha-stepper", never, {}, {}, ["steps"], ["[matcha-stepper-header]", "*", "[matcha-stepper-footer]"], false, never>;
16
+ }
@@ -0,0 +1,16 @@
1
+ import { Subscription } from 'rxjs';
2
+ import { OnInit, OnDestroy } from '@angular/core';
3
+ import { MatchaStepperService, StepData } from '../stepper.service';
4
+ import * as i0 from "@angular/core";
5
+ export declare class MatchaStepperPaginationComponent implements OnInit, OnDestroy {
6
+ private stepperService;
7
+ steps: StepData[];
8
+ currentStep: number;
9
+ subscription: Subscription;
10
+ constructor(stepperService: MatchaStepperService);
11
+ ngOnInit(): void;
12
+ goToStep(index: number): void;
13
+ ngOnDestroy(): void;
14
+ static ɵfac: i0.ɵɵFactoryDeclaration<MatchaStepperPaginationComponent, never>;
15
+ static ɵcmp: i0.ɵɵComponentDeclaration<MatchaStepperPaginationComponent, "matcha-stepper-pagination", never, {}, {}, never, never, false, never>;
16
+ }
@@ -0,0 +1,7 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class MatchaStepComponent {
3
+ title: string;
4
+ active: boolean;
5
+ static ɵfac: i0.ɵɵFactoryDeclaration<MatchaStepComponent, never>;
6
+ static ɵcmp: i0.ɵɵComponentDeclaration<MatchaStepComponent, "matcha-step", never, { "title": { "alias": "title"; "required": false; }; }, {}, never, ["*"], false, never>;
7
+ }
@@ -1,8 +1,10 @@
1
1
  import * as i0 from "@angular/core";
2
- import * as i1 from "./stepper.directive";
3
- import * as i2 from "@angular/common";
2
+ import * as i1 from "./stepper-step/stepper-step.component";
3
+ import * as i2 from "./stepper/stepper.component";
4
+ import * as i3 from "./stepper-pagination/stepper-pagination.component";
5
+ import * as i4 from "@angular/common";
4
6
  export declare class MatchaStepperModule {
5
7
  static ɵfac: i0.ɵɵFactoryDeclaration<MatchaStepperModule, never>;
6
- static ɵmod: i0.ɵɵNgModuleDeclaration<MatchaStepperModule, [typeof i1.MatchaStepperDirective], [typeof i2.CommonModule], [typeof i1.MatchaStepperDirective]>;
8
+ static ɵmod: i0.ɵɵNgModuleDeclaration<MatchaStepperModule, [typeof i1.MatchaStepComponent, typeof i2.MatchaStepperComponent, typeof i3.MatchaStepperPaginationComponent], [typeof i4.CommonModule], [typeof i1.MatchaStepComponent, typeof i2.MatchaStepperComponent, typeof i3.MatchaStepperPaginationComponent]>;
7
9
  static ɵinj: i0.ɵɵInjectorDeclaration<MatchaStepperModule>;
8
10
  }
@@ -0,0 +1,15 @@
1
+ import { EventEmitter } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export interface StepData {
4
+ title: string;
5
+ visited: boolean;
6
+ }
7
+ export declare class MatchaStepperService {
8
+ currentStep: number;
9
+ steps: StepData[];
10
+ stepChanged: EventEmitter<number>;
11
+ setSteps(steps: StepData[]): void;
12
+ setCurrentStep(index: number): void;
13
+ static ɵfac: i0.ɵɵFactoryDeclaration<MatchaStepperService, never>;
14
+ static ɵprov: i0.ɵɵInjectableDeclaration<MatchaStepperService>;
15
+ }
@@ -19,5 +19,5 @@ export declare class MatchaTooltipDirective {
19
19
  private createTooltip;
20
20
  private destroyTooltip;
21
21
  static ɵfac: i0.ɵɵFactoryDeclaration<MatchaTooltipDirective, never>;
22
- static ɵdir: i0.ɵɵDirectiveDeclaration<MatchaTooltipDirective, "[matcha-tooltip]", never, { "tooltipText": { "alias": "matcha-tooltip"; "required": false; }; "tooltipDisabled": { "alias": "tooltip-disabled"; "required": false; }; "preferAbove": { "alias": "display-above"; "required": false; }; "preferBelow": { "alias": "display-below"; "required": false; }; "preferLeft": { "alias": "display-left"; "required": false; }; "preferRight": { "alias": "display-right"; "required": false; }; "tooltipEnableClose": { "alias": "tooltip-enable-close"; "required": false; }; }, {}, never, never, false, never>;
22
+ static ɵdir: i0.ɵɵDirectiveDeclaration<MatchaTooltipDirective, "[matcha-tooltip]", never, { "tooltipText": { "alias": "matcha-tooltip"; "required": false; }; "tooltipDisabled": { "alias": "matcha-tooltip-disabled"; "required": false; }; "preferAbove": { "alias": "matcha-tooltip-above"; "required": false; }; "preferBelow": { "alias": "matcha-tooltip-below"; "required": false; }; "preferLeft": { "alias": "matcha-tooltip-left"; "required": false; }; "preferRight": { "alias": "matcha-tooltip-right"; "required": false; }; "tooltipEnableClose": { "alias": "tooltip-enable-close"; "required": false; }; }, {}, never, never, false, never>;
23
23
  }
@@ -1,9 +1,8 @@
1
1
  import * as i0 from "@angular/core";
2
- import * as i1 from "./tooltip/tooltip.component";
3
- import * as i2 from "./tooltip.directive";
4
- import * as i3 from "@angular/common";
2
+ import * as i1 from "./tooltip.directive";
3
+ import * as i2 from "@angular/common";
5
4
  export declare class MatchaTooltipModule {
6
5
  static ɵfac: i0.ɵɵFactoryDeclaration<MatchaTooltipModule, never>;
7
- static ɵmod: i0.ɵɵNgModuleDeclaration<MatchaTooltipModule, [typeof i1.MatchaTooltipComponent, typeof i2.MatchaTooltipDirective], [typeof i3.CommonModule], [typeof i1.MatchaTooltipComponent, typeof i2.MatchaTooltipDirective]>;
6
+ static ɵmod: i0.ɵɵNgModuleDeclaration<MatchaTooltipModule, [typeof i1.MatchaTooltipDirective], [typeof i2.CommonModule], [typeof i1.MatchaTooltipDirective]>;
8
7
  static ɵinj: i0.ɵɵInjectorDeclaration<MatchaTooltipModule>;
9
8
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "matcha-components",
3
- "version": "18.3.3",
3
+ "version": "18.3.5",
4
4
  "peerDependencies": {},
5
5
  "dependencies": {
6
6
  "tslib": "^2.3.0"
package/public-api.d.ts CHANGED
@@ -11,7 +11,9 @@ export * from './lib/matcha-modal/modal-footer/modal-footer.component';
11
11
  export * from './lib/matcha-modal/modal-options/modal-options.component';
12
12
  export * from './lib/matcha-modal/modal/modal.component';
13
13
  export * from './lib/matcha-menu/menu.component';
14
- export * from './lib/matcha-tooltip/tooltip/tooltip.component';
14
+ export * from './lib/matcha-stepper/stepper/stepper.component';
15
+ export * from './lib/matcha-stepper/stepper-pagination/stepper-pagination.component';
16
+ export * from './lib/matcha-stepper/stepper-step/stepper-step.component';
15
17
  export * from './lib/matcha-toolbar/toolbar/toolbar.component';
16
18
  export * from './lib/matcha-toolbar/toolbar-button/toolbar-button.component';
17
19
  export * from './lib/matcha-toolbar/toolbar-content/toolbar-content.component';
@@ -1,198 +0,0 @@
1
- import { Component, HostListener, Input } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class MatchaTooltipComponent {
4
- constructor(el, renderer) {
5
- this.el = el;
6
- this.renderer = renderer;
7
- this.tooltipText = '';
8
- this.tooltipDisabled = false;
9
- // Inputs para displayência de posição (true = displayência ativa)
10
- this.displayAbove = false;
11
- this.displayBelow = false;
12
- this.displayLeft = false;
13
- this.displayRight = false;
14
- // Input para exibir botão de fechar (útil para mobile)
15
- this.tooltipEnableClose = false;
16
- this.tooltipElement = null;
17
- this.documentClickListener = null;
18
- }
19
- // Para desktop: usamos mouseenter se não estivermos no modo "close-enabled"
20
- onMouseEnter() {
21
- if (this.tooltipEnableClose) {
22
- // Se estiver em modo de clique/tap para mobile, não abre via hover.
23
- return;
24
- }
25
- if (this.tooltipDisabled || this.tooltipElement || !this.tooltipText) {
26
- return;
27
- }
28
- this.createTooltip();
29
- }
30
- // Em modo desktop, fecha ao sair do hover, exceto se tooltipEnableClose for true
31
- onMouseLeave() {
32
- if (!this.tooltipEnableClose && this.tooltipElement) {
33
- this.destroyTooltip();
34
- }
35
- }
36
- // Para mobile ou quando tooltipEnableClose está ativo, abrimos o tooltip com clique/tap
37
- onClick(event) {
38
- if (!this.tooltipEnableClose) {
39
- // Se não estiver no modo de fechar com clique, ignora o click
40
- return;
41
- }
42
- event.stopPropagation();
43
- // Se o tooltip já estiver aberto, não faz nada (ou pode implementar toggle)
44
- if (!this.tooltipElement && !this.tooltipDisabled && this.tooltipText) {
45
- this.createTooltip();
46
- }
47
- }
48
- createTooltip() {
49
- // Cria o tooltip e adiciona a classe base
50
- this.tooltipElement = this.renderer.createElement('div');
51
- this.renderer.addClass(this.tooltipElement, 'matcha-tooltip-content');
52
- // Define o texto do tooltip (aqui não usamos innerHTML, permitindo que o botão seja inserido depois)
53
- this.tooltipElement.textContent = this.tooltipText;
54
- // Define estilos iniciais para posicionamento e medição
55
- this.renderer.setStyle(this.tooltipElement, 'position', 'absolute');
56
- this.renderer.setStyle(this.tooltipElement, 'top', '0');
57
- this.renderer.setStyle(this.tooltipElement, 'left', '0');
58
- this.renderer.setStyle(this.tooltipElement, 'visibility', 'hidden');
59
- this.renderer.appendChild(document.body, this.tooltipElement);
60
- // Se tooltipEnableClose estiver true, adiciona o botão de fechar
61
- if (this.tooltipEnableClose) {
62
- const closeButton = this.renderer.createElement('div');
63
- this.renderer.addClass(closeButton, 'matcha-tooltip-close');
64
- // O botão de fechar fica dentro do tooltip
65
- this.renderer.appendChild(this.tooltipElement, closeButton);
66
- // Ao clicar no botão X, fecha o tooltip
67
- this.renderer.listen(closeButton, 'click', (e) => {
68
- e.stopPropagation();
69
- this.destroyTooltip();
70
- });
71
- // Adiciona listener global para fechar o tooltip quando clicar fora dele
72
- this.documentClickListener = this.renderer.listen('document', 'click', (e) => {
73
- if (this.tooltipElement && !this.tooltipElement.contains(e.target)) {
74
- this.destroyTooltip();
75
- }
76
- });
77
- }
78
- // Medidas para posicionamento
79
- const margin = 8;
80
- const hostRect = this.el.nativeElement.getBoundingClientRect();
81
- const tooltipRect = this.tooltipElement.getBoundingClientRect();
82
- // Verifica se há espaço suficiente para cada posição
83
- const hasSpaceAbove = hostRect.top >= tooltipRect.height + margin;
84
- const hasSpaceBelow = (window.innerHeight - hostRect.bottom) >= tooltipRect.height + margin;
85
- const hasSpaceLeft = hostRect.left >= tooltipRect.width + margin;
86
- const hasSpaceRight = (window.innerWidth - hostRect.right) >= tooltipRect.width + margin;
87
- // Determina a posição desejada com base na displayência do usuário e disponibilidade
88
- let chosenPosition = 'above';
89
- if (this.displayAbove && hasSpaceAbove) {
90
- chosenPosition = 'above';
91
- }
92
- else if (this.displayBelow && hasSpaceBelow) {
93
- chosenPosition = 'below';
94
- }
95
- else if (this.displayLeft && hasSpaceLeft) {
96
- chosenPosition = 'left';
97
- }
98
- else if (this.displayRight && hasSpaceRight) {
99
- chosenPosition = 'right';
100
- }
101
- else {
102
- chosenPosition = hasSpaceAbove ? 'above' : (hasSpaceBelow ? 'below' : 'above');
103
- }
104
- // Calcula a posição (top e left) de acordo com a posição escolhida
105
- let top = 0;
106
- let left = 0;
107
- switch (chosenPosition) {
108
- case 'above':
109
- top = hostRect.top + window.scrollY - tooltipRect.height - margin;
110
- left = hostRect.left + window.scrollX + (hostRect.width - tooltipRect.width) / 2;
111
- break;
112
- case 'below':
113
- top = hostRect.bottom + window.scrollY + margin;
114
- left = hostRect.left + window.scrollX + (hostRect.width - tooltipRect.width) / 2;
115
- break;
116
- case 'left':
117
- top = hostRect.top + window.scrollY + (hostRect.height - tooltipRect.height) / 2;
118
- left = hostRect.left + window.scrollX - tooltipRect.width - margin;
119
- break;
120
- case 'right':
121
- top = hostRect.top + window.scrollY + (hostRect.height - tooltipRect.height) / 2;
122
- left = hostRect.right + window.scrollX + margin;
123
- break;
124
- }
125
- // Ajusta horizontalmente para não ultrapassar os limites da tela
126
- if (left < margin) {
127
- left = margin;
128
- }
129
- else if (left + tooltipRect.width > window.innerWidth - margin) {
130
- left = window.innerWidth - tooltipRect.width - margin;
131
- }
132
- // Aplica os estilos calculados e torna o tooltip visível
133
- this.renderer.setStyle(this.tooltipElement, 'top', `${top}px`);
134
- this.renderer.setStyle(this.tooltipElement, 'left', `${left}px`);
135
- this.renderer.setStyle(this.tooltipElement, 'visibility', 'visible');
136
- // Adiciona classes específicas para customizar a seta de acordo com a posição
137
- this.renderer.removeClass(this.tooltipElement, 'matcha-tooltip-content_below');
138
- this.renderer.removeClass(this.tooltipElement, 'matcha-tooltip-content_left');
139
- this.renderer.removeClass(this.tooltipElement, 'matcha-tooltip-content_right');
140
- if (chosenPosition === 'below') {
141
- this.renderer.addClass(this.tooltipElement, 'matcha-tooltip-content_below');
142
- }
143
- else if (chosenPosition === 'left') {
144
- this.renderer.addClass(this.tooltipElement, 'matcha-tooltip-content_left');
145
- }
146
- else if (chosenPosition === 'right') {
147
- this.renderer.addClass(this.tooltipElement, 'matcha-tooltip-content_right');
148
- }
149
- // Para a posição 'above', mantém o estilo padrão
150
- }
151
- destroyTooltip() {
152
- if (this.tooltipElement) {
153
- this.renderer.removeChild(document.body, this.tooltipElement);
154
- this.tooltipElement = null;
155
- }
156
- if (this.documentClickListener) {
157
- this.documentClickListener(); // Remove o listener global
158
- this.documentClickListener = null;
159
- }
160
- }
161
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MatchaTooltipComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
162
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MatchaTooltipComponent, selector: "matcha-tooltip", inputs: { tooltipText: ["matcha-tooltip", "tooltipText"], tooltipDisabled: ["tooltip-disabled", "tooltipDisabled"], displayAbove: ["display-above", "displayAbove"], displayBelow: ["display-below", "displayBelow"], displayLeft: ["display-left", "displayLeft"], displayRight: ["display-right", "displayRight"], tooltipEnableClose: ["tooltip-enable-close", "tooltipEnableClose"] }, host: { listeners: { "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()", "click": "onClick($event)" } }, ngImport: i0, template: "<ng-content></ng-content>\n", styles: [""] }); }
163
- }
164
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MatchaTooltipComponent, decorators: [{
165
- type: Component,
166
- args: [{ selector: 'matcha-tooltip', template: "<ng-content></ng-content>\n" }]
167
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { tooltipText: [{
168
- type: Input,
169
- args: ['matcha-tooltip']
170
- }], tooltipDisabled: [{
171
- type: Input,
172
- args: ['tooltip-disabled']
173
- }], displayAbove: [{
174
- type: Input,
175
- args: ['display-above']
176
- }], displayBelow: [{
177
- type: Input,
178
- args: ['display-below']
179
- }], displayLeft: [{
180
- type: Input,
181
- args: ['display-left']
182
- }], displayRight: [{
183
- type: Input,
184
- args: ['display-right']
185
- }], tooltipEnableClose: [{
186
- type: Input,
187
- args: ['tooltip-enable-close']
188
- }], onMouseEnter: [{
189
- type: HostListener,
190
- args: ['mouseenter']
191
- }], onMouseLeave: [{
192
- type: HostListener,
193
- args: ['mouseleave']
194
- }], onClick: [{
195
- type: HostListener,
196
- args: ['click', ['$event']]
197
- }] } });
198
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXRjaGEtY29tcG9uZW50cy9zcmMvbGliL21hdGNoYS10b29sdGlwL3Rvb2x0aXAvdG9vbHRpcC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXRjaGEtY29tcG9uZW50cy9zcmMvbGliL21hdGNoYS10b29sdGlwL3Rvb2x0aXAvdG9vbHRpcC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQWEsTUFBTSxlQUFlLENBQUM7O0FBT3RGLE1BQU0sT0FBTyxzQkFBc0I7SUFnQmpDLFlBQW9CLEVBQWMsRUFBVSxRQUFtQjtRQUEzQyxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQWZ0QyxnQkFBVyxHQUFXLEVBQUUsQ0FBQztRQUN2QixvQkFBZSxHQUFZLEtBQUssQ0FBQztRQUU1RCxrRUFBa0U7UUFDMUMsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFDOUIsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFDL0IsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFDNUIsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFFdEQsdURBQXVEO1FBQ3hCLHVCQUFrQixHQUFZLEtBQUssQ0FBQztRQUUzRCxtQkFBYyxHQUF1QixJQUFJLENBQUM7UUFDMUMsMEJBQXFCLEdBQXdCLElBQUksQ0FBQztJQUVRLENBQUM7SUFFbkUsNEVBQTRFO0lBQ2hELFlBQVk7UUFDdEMsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUM1QixvRUFBb0U7WUFDcEUsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLGNBQWMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNyRSxPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsaUZBQWlGO0lBQ3JELFlBQVk7UUFDdEMsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDcEQsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3hCLENBQUM7SUFDSCxDQUFDO0lBRUQsd0ZBQXdGO0lBRXhGLE9BQU8sQ0FBQyxLQUFZO1FBQ2xCLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUM3Qiw4REFBOEQ7WUFDOUQsT0FBTztRQUNULENBQUM7UUFDRCxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsNEVBQTRFO1FBQzVFLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDdEUsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3ZCLENBQUM7SUFDSCxDQUFDO0lBRU8sYUFBYTtRQUNuQiwwQ0FBMEM7UUFDMUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLHdCQUF3QixDQUFDLENBQUM7UUFDdEUscUdBQXFHO1FBQ3JHLElBQUksQ0FBQyxjQUFlLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFFcEQsd0RBQXdEO1FBQ3hELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3BFLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsWUFBWSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3BFLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRTlELGlFQUFpRTtRQUNqRSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQzVCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3ZELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO1lBQzVELDJDQUEyQztZQUMzQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1lBQzVELHdDQUF3QztZQUN4QyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBUSxFQUFFLEVBQUU7Z0JBQ3RELENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztnQkFDcEIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3hCLENBQUMsQ0FBQyxDQUFDO1lBQ0gseUVBQXlFO1lBQ3pFLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBUSxFQUFFLEVBQUU7Z0JBQ2xGLElBQUksSUFBSSxDQUFDLGNBQWMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFjLENBQUMsRUFBRSxDQUFDO29CQUMzRSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3hCLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCw4QkFBOEI7UUFDOUIsTUFBTSxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ2pCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDL0QsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGNBQWUsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBRWpFLHFEQUFxRDtRQUNyRCxNQUFNLGFBQWEsR0FBRyxRQUFRLENBQUMsR0FBRyxJQUFJLFdBQVcsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ2xFLE1BQU0sYUFBYSxHQUFHLENBQUMsTUFBTSxDQUFDLFdBQVcsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksV0FBVyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDNUYsTUFBTSxZQUFZLEdBQUksUUFBUSxDQUFDLElBQUksSUFBSSxXQUFXLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQztRQUNsRSxNQUFNLGFBQWEsR0FBRyxDQUFDLE1BQU0sQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLFdBQVcsQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDO1FBRXpGLHFGQUFxRjtRQUNyRixJQUFJLGNBQWMsR0FBeUMsT0FBTyxDQUFDO1FBQ25FLElBQUksSUFBSSxDQUFDLFlBQVksSUFBSSxhQUFhLEVBQUUsQ0FBQztZQUN2QyxjQUFjLEdBQUcsT0FBTyxDQUFDO1FBQzNCLENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksYUFBYSxFQUFFLENBQUM7WUFDOUMsY0FBYyxHQUFHLE9BQU8sQ0FBQztRQUMzQixDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsV0FBVyxJQUFJLFlBQVksRUFBRSxDQUFDO1lBQzVDLGNBQWMsR0FBRyxNQUFNLENBQUM7UUFDMUIsQ0FBQzthQUFNLElBQUksSUFBSSxDQUFDLFlBQVksSUFBSSxhQUFhLEVBQUUsQ0FBQztZQUM5QyxjQUFjLEdBQUcsT0FBTyxDQUFDO1FBQzNCLENBQUM7YUFBTSxDQUFDO1lBQ04sY0FBYyxHQUFHLGFBQWEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNqRixDQUFDO1FBRUQsbUVBQW1FO1FBQ25FLElBQUksR0FBRyxHQUFXLENBQUMsQ0FBQztRQUNwQixJQUFJLElBQUksR0FBVyxDQUFDLENBQUM7UUFDckIsUUFBUSxjQUFjLEVBQUUsQ0FBQztZQUN2QixLQUFLLE9BQU87Z0JBQ1YsR0FBRyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLE9BQU8sR0FBRyxXQUFXLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztnQkFDbEUsSUFBSSxHQUFHLFFBQVEsQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLE9BQU8sR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDakYsTUFBTTtZQUNSLEtBQUssT0FBTztnQkFDVixHQUFHLEdBQUcsUUFBUSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztnQkFDaEQsSUFBSSxHQUFHLFFBQVEsQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLE9BQU8sR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDakYsTUFBTTtZQUNSLEtBQUssTUFBTTtnQkFDVCxHQUFHLEdBQUcsUUFBUSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsT0FBTyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNqRixJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsT0FBTyxHQUFHLFdBQVcsQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDO2dCQUNuRSxNQUFNO1lBQ1IsS0FBSyxPQUFPO2dCQUNWLEdBQUcsR0FBRyxRQUFRLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxPQUFPLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2pGLElBQUksR0FBRyxRQUFRLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO2dCQUNoRCxNQUFNO1FBQ1YsQ0FBQztRQUVELGlFQUFpRTtRQUNqRSxJQUFJLElBQUksR0FBRyxNQUFNLEVBQUUsQ0FBQztZQUNsQixJQUFJLEdBQUcsTUFBTSxDQUFDO1FBQ2hCLENBQUM7YUFBTSxJQUFJLElBQUksR0FBRyxXQUFXLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxVQUFVLEdBQUcsTUFBTSxFQUFFLENBQUM7WUFDakUsSUFBSSxHQUFHLE1BQU0sQ0FBQyxVQUFVLEdBQUcsV0FBVyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUM7UUFDeEQsQ0FBQztRQUVELHlEQUF5RDtRQUN6RCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLEtBQUssRUFBRSxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDL0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDO1FBQ2pFLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsWUFBWSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBRXJFLDhFQUE4RTtRQUM5RSxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLDhCQUE4QixDQUFDLENBQUM7UUFDL0UsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSw2QkFBNkIsQ0FBQyxDQUFDO1FBQzlFLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsOEJBQThCLENBQUMsQ0FBQztRQUMvRSxJQUFJLGNBQWMsS0FBSyxPQUFPLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLDhCQUE4QixDQUFDLENBQUM7UUFDOUUsQ0FBQzthQUFNLElBQUksY0FBYyxLQUFLLE1BQU0sRUFBRSxDQUFDO1lBQ3JDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsNkJBQTZCLENBQUMsQ0FBQztRQUM3RSxDQUFDO2FBQU0sSUFBSSxjQUFjLEtBQUssT0FBTyxFQUFFLENBQUM7WUFDdEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSw4QkFBOEIsQ0FBQyxDQUFDO1FBQzlFLENBQUM7UUFDRCxpREFBaUQ7SUFDbkQsQ0FBQztJQUVPLGNBQWM7UUFDcEIsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDOUQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFDN0IsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDL0IsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUMsQ0FBQywyQkFBMkI7WUFDekQsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQztRQUNwQyxDQUFDO0lBQ0gsQ0FBQzsrR0F0S1Usc0JBQXNCO21HQUF0QixzQkFBc0Isc2lCQ1BuQyw2QkFDQTs7NEZETWEsc0JBQXNCO2tCQUxsQyxTQUFTOytCQUNFLGdCQUFnQjt1R0FLRCxXQUFXO3NCQUFuQyxLQUFLO3VCQUFDLGdCQUFnQjtnQkFDSSxlQUFlO3NCQUF6QyxLQUFLO3VCQUFDLGtCQUFrQjtnQkFHRCxZQUFZO3NCQUFuQyxLQUFLO3VCQUFDLGVBQWU7Z0JBQ0UsWUFBWTtzQkFBbkMsS0FBSzt1QkFBQyxlQUFlO2dCQUNDLFdBQVc7c0JBQWpDLEtBQUs7dUJBQUMsY0FBYztnQkFDRyxZQUFZO3NCQUFuQyxLQUFLO3VCQUFDLGVBQWU7Z0JBR1Msa0JBQWtCO3NCQUFoRCxLQUFLO3VCQUFDLHNCQUFzQjtnQkFRRCxZQUFZO3NCQUF2QyxZQUFZO3VCQUFDLFlBQVk7Z0JBWUUsWUFBWTtzQkFBdkMsWUFBWTt1QkFBQyxZQUFZO2dCQVExQixPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIElucHV0LCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWF0Y2hhLXRvb2x0aXAnLCAvLyBVc2FkbyBjb21vIGF0cmlidXRvXG4gIHRlbXBsYXRlVXJsOiAnLi90b29sdGlwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdG9vbHRpcC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIE1hdGNoYVRvb2x0aXBDb21wb25lbnQge1xuICBASW5wdXQoJ21hdGNoYS10b29sdGlwJykgdG9vbHRpcFRleHQ6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoJ3Rvb2x0aXAtZGlzYWJsZWQnKSB0b29sdGlwRGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvLyBJbnB1dHMgcGFyYSBkaXNwbGF5w6puY2lhIGRlIHBvc2nDp8OjbyAodHJ1ZSA9IGRpc3BsYXnDqm5jaWEgYXRpdmEpXG4gIEBJbnB1dCgnZGlzcGxheS1hYm92ZScpIGRpc3BsYXlBYm92ZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoJ2Rpc3BsYXktYmVsb3cnKSBkaXNwbGF5QmVsb3c6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCdkaXNwbGF5LWxlZnQnKSBkaXNwbGF5TGVmdDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoJ2Rpc3BsYXktcmlnaHQnKSBkaXNwbGF5UmlnaHQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvLyBJbnB1dCBwYXJhIGV4aWJpciBib3TDo28gZGUgZmVjaGFyICjDunRpbCBwYXJhIG1vYmlsZSlcbiAgQElucHV0KCd0b29sdGlwLWVuYWJsZS1jbG9zZScpIHRvb2x0aXBFbmFibGVDbG9zZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHByaXZhdGUgdG9vbHRpcEVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgZG9jdW1lbnRDbGlja0xpc3RlbmVyOiAoKCkgPT4gdm9pZCkgfCBudWxsID0gbnVsbDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsOiBFbGVtZW50UmVmLCBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHt9XG5cbiAgLy8gUGFyYSBkZXNrdG9wOiB1c2Ftb3MgbW91c2VlbnRlciBzZSBuw6NvIGVzdGl2ZXJtb3Mgbm8gbW9kbyBcImNsb3NlLWVuYWJsZWRcIlxuICBASG9zdExpc3RlbmVyKCdtb3VzZWVudGVyJykgb25Nb3VzZUVudGVyKCkge1xuICAgIGlmICh0aGlzLnRvb2x0aXBFbmFibGVDbG9zZSkge1xuICAgICAgLy8gU2UgZXN0aXZlciBlbSBtb2RvIGRlIGNsaXF1ZS90YXAgcGFyYSBtb2JpbGUsIG7Do28gYWJyZSB2aWEgaG92ZXIuXG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLnRvb2x0aXBEaXNhYmxlZCB8fCB0aGlzLnRvb2x0aXBFbGVtZW50IHx8ICF0aGlzLnRvb2x0aXBUZXh0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuY3JlYXRlVG9vbHRpcCgpO1xuICB9XG5cbiAgLy8gRW0gbW9kbyBkZXNrdG9wLCBmZWNoYSBhbyBzYWlyIGRvIGhvdmVyLCBleGNldG8gc2UgdG9vbHRpcEVuYWJsZUNsb3NlIGZvciB0cnVlXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlbGVhdmUnKSBvbk1vdXNlTGVhdmUoKSB7XG4gICAgaWYgKCF0aGlzLnRvb2x0aXBFbmFibGVDbG9zZSAmJiB0aGlzLnRvb2x0aXBFbGVtZW50KSB7XG4gICAgICB0aGlzLmRlc3Ryb3lUb29sdGlwKCk7XG4gICAgfVxuICB9XG5cbiAgLy8gUGFyYSBtb2JpbGUgb3UgcXVhbmRvIHRvb2x0aXBFbmFibGVDbG9zZSBlc3TDoSBhdGl2bywgYWJyaW1vcyBvIHRvb2x0aXAgY29tIGNsaXF1ZS90YXBcbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxuICBvbkNsaWNrKGV2ZW50OiBFdmVudCkge1xuICAgIGlmICghdGhpcy50b29sdGlwRW5hYmxlQ2xvc2UpIHtcbiAgICAgIC8vIFNlIG7Do28gZXN0aXZlciBubyBtb2RvIGRlIGZlY2hhciBjb20gY2xpcXVlLCBpZ25vcmEgbyBjbGlja1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAvLyBTZSBvIHRvb2x0aXAgasOhIGVzdGl2ZXIgYWJlcnRvLCBuw6NvIGZheiBuYWRhIChvdSBwb2RlIGltcGxlbWVudGFyIHRvZ2dsZSlcbiAgICBpZiAoIXRoaXMudG9vbHRpcEVsZW1lbnQgJiYgIXRoaXMudG9vbHRpcERpc2FibGVkICYmIHRoaXMudG9vbHRpcFRleHQpIHtcbiAgICAgIHRoaXMuY3JlYXRlVG9vbHRpcCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlVG9vbHRpcCgpIHtcbiAgICAvLyBDcmlhIG8gdG9vbHRpcCBlIGFkaWNpb25hIGEgY2xhc3NlIGJhc2VcbiAgICB0aGlzLnRvb2x0aXBFbGVtZW50ID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMudG9vbHRpcEVsZW1lbnQsICdtYXRjaGEtdG9vbHRpcC1jb250ZW50Jyk7XG4gICAgLy8gRGVmaW5lIG8gdGV4dG8gZG8gdG9vbHRpcCAoYXF1aSBuw6NvIHVzYW1vcyBpbm5lckhUTUwsIHBlcm1pdGluZG8gcXVlIG8gYm90w6NvIHNlamEgaW5zZXJpZG8gZGVwb2lzKVxuICAgIHRoaXMudG9vbHRpcEVsZW1lbnQhLnRleHRDb250ZW50ID0gdGhpcy50b29sdGlwVGV4dDtcblxuICAgIC8vIERlZmluZSBlc3RpbG9zIGluaWNpYWlzIHBhcmEgcG9zaWNpb25hbWVudG8gZSBtZWRpw6fDo29cbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMudG9vbHRpcEVsZW1lbnQsICdwb3NpdGlvbicsICdhYnNvbHV0ZScpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy50b29sdGlwRWxlbWVudCwgJ3RvcCcsICcwJyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnRvb2x0aXBFbGVtZW50LCAnbGVmdCcsICcwJyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnRvb2x0aXBFbGVtZW50LCAndmlzaWJpbGl0eScsICdoaWRkZW4nKTtcbiAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKGRvY3VtZW50LmJvZHksIHRoaXMudG9vbHRpcEVsZW1lbnQpO1xuXG4gICAgLy8gU2UgdG9vbHRpcEVuYWJsZUNsb3NlIGVzdGl2ZXIgdHJ1ZSwgYWRpY2lvbmEgbyBib3TDo28gZGUgZmVjaGFyXG4gICAgaWYgKHRoaXMudG9vbHRpcEVuYWJsZUNsb3NlKSB7XG4gICAgICBjb25zdCBjbG9zZUJ1dHRvbiA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKGNsb3NlQnV0dG9uLCAnbWF0Y2hhLXRvb2x0aXAtY2xvc2UnKTtcbiAgICAgIC8vIE8gYm90w6NvIGRlIGZlY2hhciBmaWNhIGRlbnRybyBkbyB0b29sdGlwXG4gICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMudG9vbHRpcEVsZW1lbnQsIGNsb3NlQnV0dG9uKTtcbiAgICAgIC8vIEFvIGNsaWNhciBubyBib3TDo28gWCwgZmVjaGEgbyB0b29sdGlwXG4gICAgICB0aGlzLnJlbmRlcmVyLmxpc3RlbihjbG9zZUJ1dHRvbiwgJ2NsaWNrJywgKGU6IEV2ZW50KSA9PiB7XG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRoaXMuZGVzdHJveVRvb2x0aXAoKTtcbiAgICAgIH0pO1xuICAgICAgLy8gQWRpY2lvbmEgbGlzdGVuZXIgZ2xvYmFsIHBhcmEgZmVjaGFyIG8gdG9vbHRpcCBxdWFuZG8gY2xpY2FyIGZvcmEgZGVsZVxuICAgICAgdGhpcy5kb2N1bWVudENsaWNrTGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3RlbignZG9jdW1lbnQnLCAnY2xpY2snLCAoZTogRXZlbnQpID0+IHtcbiAgICAgICAgaWYgKHRoaXMudG9vbHRpcEVsZW1lbnQgJiYgIXRoaXMudG9vbHRpcEVsZW1lbnQuY29udGFpbnMoZS50YXJnZXQgYXMgTm9kZSkpIHtcbiAgICAgICAgICB0aGlzLmRlc3Ryb3lUb29sdGlwKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIE1lZGlkYXMgcGFyYSBwb3NpY2lvbmFtZW50b1xuICAgIGNvbnN0IG1hcmdpbiA9IDg7XG4gICAgY29uc3QgaG9zdFJlY3QgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3QgdG9vbHRpcFJlY3QgPSB0aGlzLnRvb2x0aXBFbGVtZW50IS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgIC8vIFZlcmlmaWNhIHNlIGjDoSBlc3Bhw6dvIHN1ZmljaWVudGUgcGFyYSBjYWRhIHBvc2nDp8Ojb1xuICAgIGNvbnN0IGhhc1NwYWNlQWJvdmUgPSBob3N0UmVjdC50b3AgPj0gdG9vbHRpcFJlY3QuaGVpZ2h0ICsgbWFyZ2luO1xuICAgIGNvbnN0IGhhc1NwYWNlQmVsb3cgPSAod2luZG93LmlubmVySGVpZ2h0IC0gaG9zdFJlY3QuYm90dG9tKSA+PSB0b29sdGlwUmVjdC5oZWlnaHQgKyBtYXJnaW47XG4gICAgY29uc3QgaGFzU3BhY2VMZWZ0ICA9IGhvc3RSZWN0LmxlZnQgPj0gdG9vbHRpcFJlY3Qud2lkdGggKyBtYXJnaW47XG4gICAgY29uc3QgaGFzU3BhY2VSaWdodCA9ICh3aW5kb3cuaW5uZXJXaWR0aCAtIGhvc3RSZWN0LnJpZ2h0KSA+PSB0b29sdGlwUmVjdC53aWR0aCArIG1hcmdpbjtcblxuICAgIC8vIERldGVybWluYSBhIHBvc2nDp8OjbyBkZXNlamFkYSBjb20gYmFzZSBuYSBkaXNwbGF5w6puY2lhIGRvIHVzdcOhcmlvIGUgZGlzcG9uaWJpbGlkYWRlXG4gICAgbGV0IGNob3NlblBvc2l0aW9uOiAnYWJvdmUnIHwgJ2JlbG93JyB8ICdsZWZ0JyB8ICdyaWdodCcgPSAnYWJvdmUnO1xuICAgIGlmICh0aGlzLmRpc3BsYXlBYm92ZSAmJiBoYXNTcGFjZUFib3ZlKSB7XG4gICAgICBjaG9zZW5Qb3NpdGlvbiA9ICdhYm92ZSc7XG4gICAgfSBlbHNlIGlmICh0aGlzLmRpc3BsYXlCZWxvdyAmJiBoYXNTcGFjZUJlbG93KSB7XG4gICAgICBjaG9zZW5Qb3NpdGlvbiA9ICdiZWxvdyc7XG4gICAgfSBlbHNlIGlmICh0aGlzLmRpc3BsYXlMZWZ0ICYmIGhhc1NwYWNlTGVmdCkge1xuICAgICAgY2hvc2VuUG9zaXRpb24gPSAnbGVmdCc7XG4gICAgfSBlbHNlIGlmICh0aGlzLmRpc3BsYXlSaWdodCAmJiBoYXNTcGFjZVJpZ2h0KSB7XG4gICAgICBjaG9zZW5Qb3NpdGlvbiA9ICdyaWdodCc7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNob3NlblBvc2l0aW9uID0gaGFzU3BhY2VBYm92ZSA/ICdhYm92ZScgOiAoaGFzU3BhY2VCZWxvdyA/ICdiZWxvdycgOiAnYWJvdmUnKTtcbiAgICB9XG5cbiAgICAvLyBDYWxjdWxhIGEgcG9zacOnw6NvICh0b3AgZSBsZWZ0KSBkZSBhY29yZG8gY29tIGEgcG9zacOnw6NvIGVzY29saGlkYVxuICAgIGxldCB0b3A6IG51bWJlciA9IDA7XG4gICAgbGV0IGxlZnQ6IG51bWJlciA9IDA7XG4gICAgc3dpdGNoIChjaG9zZW5Qb3NpdGlvbikge1xuICAgICAgY2FzZSAnYWJvdmUnOlxuICAgICAgICB0b3AgPSBob3N0UmVjdC50b3AgKyB3aW5kb3cuc2Nyb2xsWSAtIHRvb2x0aXBSZWN0LmhlaWdodCAtIG1hcmdpbjtcbiAgICAgICAgbGVmdCA9IGhvc3RSZWN0LmxlZnQgKyB3aW5kb3cuc2Nyb2xsWCArIChob3N0UmVjdC53aWR0aCAtIHRvb2x0aXBSZWN0LndpZHRoKSAvIDI7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnYmVsb3cnOlxuICAgICAgICB0b3AgPSBob3N0UmVjdC5ib3R0b20gKyB3aW5kb3cuc2Nyb2xsWSArIG1hcmdpbjtcbiAgICAgICAgbGVmdCA9IGhvc3RSZWN0LmxlZnQgKyB3aW5kb3cuc2Nyb2xsWCArIChob3N0UmVjdC53aWR0aCAtIHRvb2x0aXBSZWN0LndpZHRoKSAvIDI7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnbGVmdCc6XG4gICAgICAgIHRvcCA9IGhvc3RSZWN0LnRvcCArIHdpbmRvdy5zY3JvbGxZICsgKGhvc3RSZWN0LmhlaWdodCAtIHRvb2x0aXBSZWN0LmhlaWdodCkgLyAyO1xuICAgICAgICBsZWZ0ID0gaG9zdFJlY3QubGVmdCArIHdpbmRvdy5zY3JvbGxYIC0gdG9vbHRpcFJlY3Qud2lkdGggLSBtYXJnaW47XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAncmlnaHQnOlxuICAgICAgICB0b3AgPSBob3N0UmVjdC50b3AgKyB3aW5kb3cuc2Nyb2xsWSArIChob3N0UmVjdC5oZWlnaHQgLSB0b29sdGlwUmVjdC5oZWlnaHQpIC8gMjtcbiAgICAgICAgbGVmdCA9IGhvc3RSZWN0LnJpZ2h0ICsgd2luZG93LnNjcm9sbFggKyBtYXJnaW47XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIC8vIEFqdXN0YSBob3Jpem9udGFsbWVudGUgcGFyYSBuw6NvIHVsdHJhcGFzc2FyIG9zIGxpbWl0ZXMgZGEgdGVsYVxuICAgIGlmIChsZWZ0IDwgbWFyZ2luKSB7XG4gICAgICBsZWZ0ID0gbWFyZ2luO1xuICAgIH0gZWxzZSBpZiAobGVmdCArIHRvb2x0aXBSZWN0LndpZHRoID4gd2luZG93LmlubmVyV2lkdGggLSBtYXJnaW4pIHtcbiAgICAgIGxlZnQgPSB3aW5kb3cuaW5uZXJXaWR0aCAtIHRvb2x0aXBSZWN0LndpZHRoIC0gbWFyZ2luO1xuICAgIH1cblxuICAgIC8vIEFwbGljYSBvcyBlc3RpbG9zIGNhbGN1bGFkb3MgZSB0b3JuYSBvIHRvb2x0aXAgdmlzw612ZWxcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMudG9vbHRpcEVsZW1lbnQsICd0b3AnLCBgJHt0b3B9cHhgKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMudG9vbHRpcEVsZW1lbnQsICdsZWZ0JywgYCR7bGVmdH1weGApO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy50b29sdGlwRWxlbWVudCwgJ3Zpc2liaWxpdHknLCAndmlzaWJsZScpO1xuXG4gICAgLy8gQWRpY2lvbmEgY2xhc3NlcyBlc3BlY8OtZmljYXMgcGFyYSBjdXN0b21pemFyIGEgc2V0YSBkZSBhY29yZG8gY29tIGEgcG9zacOnw6NvXG4gICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLnRvb2x0aXBFbGVtZW50LCAnbWF0Y2hhLXRvb2x0aXAtY29udGVudF9iZWxvdycpO1xuICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy50b29sdGlwRWxlbWVudCwgJ21hdGNoYS10b29sdGlwLWNvbnRlbnRfbGVmdCcpO1xuICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy50b29sdGlwRWxlbWVudCwgJ21hdGNoYS10b29sdGlwLWNvbnRlbnRfcmlnaHQnKTtcbiAgICBpZiAoY2hvc2VuUG9zaXRpb24gPT09ICdiZWxvdycpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy50b29sdGlwRWxlbWVudCwgJ21hdGNoYS10b29sdGlwLWNvbnRlbnRfYmVsb3cnKTtcbiAgICB9IGVsc2UgaWYgKGNob3NlblBvc2l0aW9uID09PSAnbGVmdCcpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy50b29sdGlwRWxlbWVudCwgJ21hdGNoYS10b29sdGlwLWNvbnRlbnRfbGVmdCcpO1xuICAgIH0gZWxzZSBpZiAoY2hvc2VuUG9zaXRpb24gPT09ICdyaWdodCcpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy50b29sdGlwRWxlbWVudCwgJ21hdGNoYS10b29sdGlwLWNvbnRlbnRfcmlnaHQnKTtcbiAgICB9XG4gICAgLy8gUGFyYSBhIHBvc2nDp8OjbyAnYWJvdmUnLCBtYW50w6ltIG8gZXN0aWxvIHBhZHLDo29cbiAgfVxuXG4gIHByaXZhdGUgZGVzdHJveVRvb2x0aXAoKSB7XG4gICAgaWYgKHRoaXMudG9vbHRpcEVsZW1lbnQpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuYm9keSwgdGhpcy50b29sdGlwRWxlbWVudCk7XG4gICAgICB0aGlzLnRvb2x0aXBFbGVtZW50ID0gbnVsbDtcbiAgICB9XG4gICAgaWYgKHRoaXMuZG9jdW1lbnRDbGlja0xpc3RlbmVyKSB7XG4gICAgICB0aGlzLmRvY3VtZW50Q2xpY2tMaXN0ZW5lcigpOyAvLyBSZW1vdmUgbyBsaXN0ZW5lciBnbG9iYWxcbiAgICAgIHRoaXMuZG9jdW1lbnRDbGlja0xpc3RlbmVyID0gbnVsbDtcbiAgICB9XG4gIH1cbn1cbiIsIjxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiJdfQ==
@@ -1,23 +0,0 @@
1
- import { ElementRef, Renderer2 } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export declare class MatchaTooltipComponent {
4
- private el;
5
- private renderer;
6
- tooltipText: string;
7
- tooltipDisabled: boolean;
8
- displayAbove: boolean;
9
- displayBelow: boolean;
10
- displayLeft: boolean;
11
- displayRight: boolean;
12
- tooltipEnableClose: boolean;
13
- private tooltipElement;
14
- private documentClickListener;
15
- constructor(el: ElementRef, renderer: Renderer2);
16
- onMouseEnter(): void;
17
- onMouseLeave(): void;
18
- onClick(event: Event): void;
19
- private createTooltip;
20
- private destroyTooltip;
21
- static ɵfac: i0.ɵɵFactoryDeclaration<MatchaTooltipComponent, never>;
22
- static ɵcmp: i0.ɵɵComponentDeclaration<MatchaTooltipComponent, "matcha-tooltip", never, { "tooltipText": { "alias": "matcha-tooltip"; "required": false; }; "tooltipDisabled": { "alias": "tooltip-disabled"; "required": false; }; "displayAbove": { "alias": "display-above"; "required": false; }; "displayBelow": { "alias": "display-below"; "required": false; }; "displayLeft": { "alias": "display-left"; "required": false; }; "displayRight": { "alias": "display-right"; "required": false; }; "tooltipEnableClose": { "alias": "tooltip-enable-close"; "required": false; }; }, {}, never, ["*"], false, never>;
23
- }