matcha-components 18.0.47 → 18.2.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.
@@ -0,0 +1,198 @@
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXRjaGEtY29tcG9uZW50cy9zcmMvbGliL21hdGNoYS10b29sdGlwL3Rvb2x0aXAvdG9vbHRpcC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXRjaGEtY29tcG9uZW50cy9zcmMvbGliL21hdGNoYS10b29sdGlwL3Rvb2x0aXAvdG9vbHRpcC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQWEsTUFBTSxlQUFlLENBQUM7O0FBT3RGLE1BQU0sT0FBTyxzQkFBc0I7SUFnQmpDLFlBQW9CLEVBQWMsRUFBVSxRQUFtQjtRQUEzQyxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQWZ0QyxnQkFBVyxHQUFXLEVBQUUsQ0FBQztRQUN2QixvQkFBZSxHQUFZLEtBQUssQ0FBQztRQUU1RCxrRUFBa0U7UUFDMUMsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFDOUIsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFDL0IsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFDNUIsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFFdEQsdURBQXVEO1FBQ3hCLHVCQUFrQixHQUFZLEtBQUssQ0FBQztRQUUzRCxtQkFBYyxHQUF1QixJQUFJLENBQUM7UUFDMUMsMEJBQXFCLEdBQXdCLElBQUksQ0FBQztJQUVRLENBQUM7SUFFbkUsNEVBQTRFO0lBQ2hELFlBQVk7UUFDdEMsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUM1QixvRUFBb0U7WUFDcEUsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLGNBQWMsSUFBSSxDQUFDLElBQUksQ0FB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QXNCO2tCQUxsQyxTQUFTOytCQUNFLGdCQUFnQjt1R0FLRCxXQUFXO3NCQUFuQyxLQUFLO3VCQUFDLGdCQUFnQjtnQkFDSSxlQUFlO3NCQUF6QyxLQUFLO3VCQUFDLGtCQUFrQjtnQkFHRCxZQUFZO3NCQUFuQyxLQUFLO3VCQUFDLGVBQWU7Z0JBQ0UsWUFBWTtzQkFBbkMsS0FBSzt1QkFBQyxlQUFlO2dCQUNDLFdBQVc7c0JBQWpDLEtBQUs7dUJBQUMsY0FBYztnQkFDRyxZQUFZO3NCQUFuQyxLQUFLO3VCQUFDLGVBQWU7Z0JBR1Msa0JBQWtCO3NCQUFoRCxLQUFLO3VCQUFDLHNCQUFzQjtnQkFRRCxZQUFZO3NCQUF2QyxZQUFZO3VCQUFDLFlBQVk7Z0JBWUUsWUFBWTtzQkFBdkMsWUFBWTt1QkFBQyxZQUFZO2dCQVExQixPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIElucHV0LCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWF0Y2hhLXRvb2x0aXAnLCAvLyBVc2FkbyBjb21vIGF0cmlidXRvXG4gIHRlbXBsYXRlVXJsOiAnLi90b29sdGlwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdG9vbHRpcC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIE1hdGNoYVRvb2x0aXBDb21wb25lbnQge1xuICBASW5wdXQoJ21hdGNoYS10b29sdGlwJykgdG9vbHRpcFRleHQ6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoJ3Rvb2x0aXAtZGlzYWJsZWQnKSB0b29sdGlwRGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvLyBJbnB1dHMgcGFyYSBkaXNwbGF5w6puY2lhIGRlIHBvc2nDp8OjbyAodHJ1ZSA9IGRpc3BsYXnDqm5jaWEgYXRpdmEpXG4gIEBJbnB1dCgnZGlzcGxheS1hYm92ZScpIGRpc3BsYXlBYm92ZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoJ2Rpc3BsYXktYmVsb3cnKSBkaXNwbGF5QmVsb3c6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCdkaXNwbGF5LWxlZnQnKSBkaXNwbGF5TGVmdDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoJ2Rpc3BsYXktcmlnaHQnKSBkaXNwbGF5UmlnaHQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvLyBJbnB1dCBwYXJhIGV4aWJpciBib3TDo28gZGUgZmVjaGFyICjDunRpbCBwYXJhIG1vYmlsZSlcbiAgQElucHV0KCd0b29sdGlwLWVuYWJsZS1jbG9zZScpIHRvb2x0aXBFbmFibGVDbG9zZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHByaXZhdGUgdG9vbHRpcEVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgZG9jdW1lbnRDbGlja0xpc3RlbmVyOiAoKCkgPT4gdm9pZCkgfCBudWxsID0gbnVsbDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsOiBFbGVtZW50UmVmLCBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHt9XG5cbiAgLy8gUGFyYSBkZXNrdG9wOiB1c2Ftb3MgbW91c2VlbnRlciBzZSBuw6NvIGVzdGl2ZXJtb3Mgbm8gbW9kbyBcImNsb3NlLWVuYWJsZWRcIlxuICBASG9zdExpc3RlbmVyKCdtb3VzZWVudGVyJykgb25Nb3VzZUVudGVyKCkge1xuICAgIGlmICh0aGlzLnRvb2x0aXBFbmFibGVDbG9zZSkge1xuICAgICAgLy8gU2UgZXN0aXZlciBlbSBtb2RvIGRlIGNsaXF1ZS90YXAgcGFyYSBtb2JpbGUsIG7Do28gYWJyZSB2aWEgaG92ZXIuXG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLnRvb2x0aXBEaXNhYmxlZCB8fCB0aGlzLnRvb2x0aXBFbGVtZW50IHx8ICF0aGlzLnRvb2x0aXBUZXh0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuY3JlYXRlVG9vbHRpcCgpO1xuICB9XG5cbiAgLy8gRW0gbW9kbyBkZXNrdG9wLCBmZWNoYSBhbyBzYWlyIGRvIGhvdmVyLCBleGNldG8gc2UgdG9vbHRpcEVuYWJsZUNsb3NlIGZvciB0cnVlXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlbGVhdmUnKSBvbk1vdXNlTGVhdmUoKSB7XG4gICAgaWYgKCF0aGlzLnRvb2x0aXBFbmFibGVDbG9zZSAmJiB0aGlzLnRvb2x0aXBFbGVtZW50KSB7XG4gICAgICB0aGlzLmRlc3Ryb3lUb29sdGlwKCk7XG4gICAgfVxuICB9XG5cbiAgLy8gUGFyYSBtb2JpbGUgb3UgcXVhbmRvIHRvb2x0aXBFbmFibGVDbG9zZSBlc3TDoSBhdGl2bywgYWJyaW1vcyBvIHRvb2x0aXAgY29tIGNsaXF1ZS90YXBcbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxuICBvbkNsaWNrKGV2ZW50OiBFdmVudCkge1xuICAgIGlmICghdGhpcy50b29sdGlwRW5hYmxlQ2xvc2UpIHtcbiAgICAgIC8vIFNlIG7Do28gZXN0aXZlciBubyBtb2RvIGRlIGZlY2hhciBjb20gY2xpcXVlLCBpZ25vcmEgbyBjbGlja1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAvLyBTZSBvIHRvb2x0aXAgasOhIGVzdGl2ZXIgYWJlcnRvLCBuw6NvIGZheiBuYWRhIChvdSBwb2RlIGltcGxlbWVudGFyIHRvZ2dsZSlcbiAgICBpZiAoIXRoaXMudG9vbHRpcEVsZW1lbnQgJiYgIXRoaXMudG9vbHRpcERpc2FibGVkICYmIHRoaXMudG9vbHRpcFRleHQpIHtcbiAgICAgIHRoaXMuY3JlYXRlVG9vbHRpcCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlVG9vbHRpcCgpIHtcbiAgICAvLyBDcmlhIG8gdG9vbHRpcCBlIGFkaWNpb25hIGEgY2xhc3NlIGJhc2VcbiAgICB0aGlzLnRvb2x0aXBFbGVtZW50ID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMudG9vbHRpcEVsZW1lbnQsICdtYXRjaGEtdG9vbHRpcC1jb250ZW50Jyk7XG4gICAgLy8gRGVmaW5lIG8gdGV4dG8gZG8gdG9vbHRpcCAoYXF1aSBuw6NvIHVzYW1vcyBpbm5lckhUTUwsIHBlcm1pdGluZG8gcXVlIG8gYm90w6NvIHNlamEgaW5zZXJpZG8gZGVwb2lzKVxuICAgIHRoaXMudG9vbHRpcEVsZW1lbnQhLnRleHRDb250ZW50ID0gdGhpcy50b29sdGlwVGV4dDtcblxuICAgIC8vIERlZmluZSBlc3RpbG9zIGluaWNpYWlzIHBhcmEgcG9zaWNpb25hbWVudG8gZSBtZWRpw6fDo29cbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMudG9vbHRpcEVsZW1lbnQsICdwb3NpdGlvbicsICdhYnNvbHV0ZScpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy50b29sdGlwRWxlbWVudCwgJ3RvcCcsICcwJyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnRvb2x0aXBFbGVtZW50LCAnbGVmdCcsICcwJyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnRvb2x0aXBFbGVtZW50LCAndmlzaWJpbGl0eScsICdoaWRkZW4nKTtcbiAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKGRvY3VtZW50LmJvZHksIHRoaXMudG9vbHRpcEVsZW1lbnQpO1xuXG4gICAgLy8gU2UgdG9vbHRpcEVuYWJsZUNsb3NlIGVzdGl2ZXIgdHJ1ZSwgYWRpY2lvbmEgbyBib3TDo28gZGUgZmVjaGFyXG4gICAgaWYgKHRoaXMudG9vbHRpcEVuYWJsZUNsb3NlKSB7XG4gICAgICBjb25zdCBjbG9zZUJ1dHRvbiA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKGNsb3NlQnV0dG9uLCAnbWF0Y2hhLXRvb2x0aXAtY2xvc2UnKTtcbiAgICAgIC8vIE8gYm90w6NvIGRlIGZlY2hhciBmaWNhIGRlbnRybyBkbyB0b29sdGlwXG4gICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMudG9vbHRpcEVsZW1lbnQsIGNsb3NlQnV0dG9uKTtcbiAgICAgIC8vIEFvIGNsaWNhciBubyBib3TDo28gWCwgZmVjaGEgbyB0b29sdGlwXG4gICAgICB0aGlzLnJlbmRlcmVyLmxpc3RlbihjbG9zZUJ1dHRvbiwgJ2NsaWNrJywgKGU6IEV2ZW50KSA9PiB7XG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRoaXMuZGVzdHJveVRvb2x0aXAoKTtcbiAgICAgIH0pO1xuICAgICAgLy8gQWRpY2lvbmEgbGlzdGVuZXIgZ2xvYmFsIHBhcmEgZmVjaGFyIG8gdG9vbHRpcCBxdWFuZG8gY2xpY2FyIGZvcmEgZGVsZVxuICAgICAgdGhpcy5kb2N1bWVudENsaWNrTGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3RlbignZG9jdW1lbnQnLCAnY2xpY2snLCAoZTogRXZlbnQpID0+IHtcbiAgICAgICAgaWYgKHRoaXMudG9vbHRpcEVsZW1lbnQgJiYgIXRoaXMudG9vbHRpcEVsZW1lbnQuY29udGFpbnMoZS50YXJnZXQgYXMgTm9kZSkpIHtcbiAgICAgICAgICB0aGlzLmRlc3Ryb3lUb29sdGlwKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIE1lZGlkYXMgcGFyYSBwb3NpY2lvbmFtZW50b1xuICAgIGNvbnN0IG1hcmdpbiA9IDg7XG4gICAgY29uc3QgaG9zdFJlY3QgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3QgdG9vbHRpcFJlY3QgPSB0aGlzLnRvb2x0aXBFbGVtZW50IS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgIC8vIFZlcmlmaWNhIHNlIGjDoSBlc3Bhw6dvIHN1ZmljaWVudGUgcGFyYSBjYWRhIHBvc2nDp8Ojb1xuICAgIGNvbnN0IGhhc1NwYWNlQWJvdmUgPSBob3N0UmVjdC50b3AgPj0gdG9vbHRpcFJlY3QuaGVpZ2h0ICsgbWFyZ2luO1xuICAgIGNvbnN0IGhhc1NwYWNlQmVsb3cgPSAod2luZG93LmlubmVySGVpZ2h0IC0gaG9zdFJlY3QuYm90dG9tKSA+PSB0b29sdGlwUmVjdC5oZWlnaHQgKyBtYXJnaW47XG4gICAgY29uc3QgaGFzU3BhY2VMZWZ0ICA9IGhvc3RSZWN0LmxlZnQgPj0gdG9vbHRpcFJlY3Qud2lkdGggKyBtYXJnaW47XG4gICAgY29uc3QgaGFzU3BhY2VSaWdodCA9ICh3aW5kb3cuaW5uZXJXaWR0aCAtIGhvc3RSZWN0LnJpZ2h0KSA+PSB0b29sdGlwUmVjdC53aWR0aCArIG1hcmdpbjtcblxuICAgIC8vIERldGVybWluYSBhIHBvc2nDp8OjbyBkZXNlamFkYSBjb20gYmFzZSBuYSBkaXNwbGF5w6puY2lhIGRvIHVzdcOhcmlvIGUgZGlzcG9uaWJpbGlkYWRlXG4gICAgbGV0IGNob3NlblBvc2l0aW9uOiAnYWJvdmUnIHwgJ2JlbG93JyB8ICdsZWZ0JyB8ICdyaWdodCcgPSAnYWJvdmUnO1xuICAgIGlmICh0aGlzLmRpc3BsYXlBYm92ZSAmJiBoYXNTcGFjZUFib3ZlKSB7XG4gICAgICBjaG9zZW5Qb3NpdGlvbiA9ICdhYm92ZSc7XG4gICAgfSBlbHNlIGlmICh0aGlzLmRpc3BsYXlCZWxvdyAmJiBoYXNTcGFjZUJlbG93KSB7XG4gICAgICBjaG9zZW5Qb3NpdGlvbiA9ICdiZWxvdyc7XG4gICAgfSBlbHNlIGlmICh0aGlzLmRpc3BsYXlMZWZ0ICYmIGhhc1NwYWNlTGVmdCkge1xuICAgICAgY2hvc2VuUG9zaXRpb24gPSAnbGVmdCc7XG4gICAgfSBlbHNlIGlmICh0aGlzLmRpc3BsYXlSaWdodCAmJiBoYXNTcGFjZVJpZ2h0KSB7XG4gICAgICBjaG9zZW5Qb3NpdGlvbiA9ICdyaWdodCc7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNob3NlblBvc2l0aW9uID0gaGFzU3BhY2VBYm92ZSA/ICdhYm92ZScgOiAoaGFzU3BhY2VCZWxvdyA/ICdiZWxvdycgOiAnYWJvdmUnKTtcbiAgICB9XG5cbiAgICAvLyBDYWxjdWxhIGEgcG9zacOnw6NvICh0b3AgZSBsZWZ0KSBkZSBhY29yZG8gY29tIGEgcG9zacOnw6NvIGVzY29saGlkYVxuICAgIGxldCB0b3A6IG51bWJlciA9IDA7XG4gICAgbGV0IGxlZnQ6IG51bWJlciA9IDA7XG4gICAgc3dpdGNoIChjaG9zZW5Qb3NpdGlvbikge1xuICAgICAgY2FzZSAnYWJvdmUnOlxuICAgICAgICB0b3AgPSBob3N0UmVjdC50b3AgKyB3aW5kb3cuc2Nyb2xsWSAtIHRvb2x0aXBSZWN0LmhlaWdodCAtIG1hcmdpbjtcbiAgICAgICAgbGVmdCA9IGhvc3RSZWN0LmxlZnQgKyB3aW5kb3cuc2Nyb2xsWCArIChob3N0UmVjdC53aWR0aCAtIHRvb2x0aXBSZWN0LndpZHRoKSAvIDI7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnYmVsb3cnOlxuICAgICAgICB0b3AgPSBob3N0UmVjdC5ib3R0b20gKyB3aW5kb3cuc2Nyb2xsWSArIG1hcmdpbjtcbiAgICAgICAgbGVmdCA9IGhvc3RSZWN0LmxlZnQgKyB3aW5kb3cuc2Nyb2xsWCArIChob3N0UmVjdC53aWR0aCAtIHRvb2x0aXBSZWN0LndpZHRoKSAvIDI7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnbGVmdCc6XG4gICAgICAgIHRvcCA9IGhvc3RSZWN0LnRvcCArIHdpbmRvdy5zY3JvbGxZICsgKGhvc3RSZWN0LmhlaWdodCAtIHRvb2x0aXBSZWN0LmhlaWdodCkgLyAyO1xuICAgICAgICBsZWZ0ID0gaG9zdFJlY3QubGVmdCArIHdpbmRvdy5zY3JvbGxYIC0gdG9vbHRpcFJlY3Qud2lkdGggLSBtYXJnaW47XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAncmlnaHQnOlxuICAgICAgICB0b3AgPSBob3N0UmVjdC50b3AgKyB3aW5kb3cuc2Nyb2xsWSArIChob3N0UmVjdC5oZWlnaHQgLSB0b29sdGlwUmVjdC5oZWlnaHQpIC8gMjtcbiAgICAgICAgbGVmdCA9IGhvc3RSZWN0LnJpZ2h0ICsgd2luZG93LnNjcm9sbFggKyBtYXJnaW47XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIC8vIEFqdXN0YSBob3Jpem9udGFsbWVudGUgcGFyYSBuw6NvIHVsdHJhcGFzc2FyIG9zIGxpbWl0ZXMgZGEgdGVsYVxuICAgIGlmIChsZWZ0IDwgbWFyZ2luKSB7XG4gICAgICBsZWZ0ID0gbWFyZ2luO1xuICAgIH0gZWxzZSBpZiAobGVmdCArIHRvb2x0aXBSZWN0LndpZHRoID4gd2luZG93LmlubmVyV2lkdGggLSBtYXJnaW4pIHtcbiAgICAgIGxlZnQgPSB3aW5kb3cuaW5uZXJXaWR0aCAtIHRvb2x0aXBSZWN0LndpZHRoIC0gbWFyZ2luO1xuICAgIH1cblxuICAgIC8vIEFwbGljYSBvcyBlc3RpbG9zIGNhbGN1bGFkb3MgZSB0b3JuYSBvIHRvb2x0aXAgdmlzw612ZWxcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMudG9vbHRpcEVsZW1lbnQsICd0b3AnLCBgJHt0b3B9cHhgKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMudG9vbHRpcEVsZW1lbnQsICdsZWZ0JywgYCR7bGVmdH1weGApO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy50b29sdGlwRWxlbWVudCwgJ3Zpc2liaWxpdHknLCAndmlzaWJsZScpO1xuXG4gICAgLy8gQWRpY2lvbmEgY2xhc3NlcyBlc3BlY8OtZmljYXMgcGFyYSBjdXN0b21pemFyIGEgc2V0YSBkZSBhY29yZG8gY29tIGEgcG9zacOnw6NvXG4gICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLnRvb2x0aXBFbGVtZW50LCAnbWF0Y2hhLXRvb2x0aXAtY29udGVudF9iZWxvdycpO1xuICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy50b29sdGlwRWxlbWVudCwgJ21hdGNoYS10b29sdGlwLWNvbnRlbnRfbGVmdCcpO1xuICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy50b29sdGlwRWxlbWVudCwgJ21hdGNoYS10b29sdGlwLWNvbnRlbnRfcmlnaHQnKTtcbiAgICBpZiAoY2hvc2VuUG9zaXRpb24gPT09ICdiZWxvdycpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy50b29sdGlwRWxlbWVudCwgJ21hdGNoYS10b29sdGlwLWNvbnRlbnRfYmVsb3cnKTtcbiAgICB9IGVsc2UgaWYgKGNob3NlblBvc2l0aW9uID09PSAnbGVmdCcpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy50b29sdGlwRWxlbWVudCwgJ21hdGNoYS10b29sdGlwLWNvbnRlbnRfbGVmdCcpO1xuICAgIH0gZWxzZSBpZiAoY2hvc2VuUG9zaXRpb24gPT09ICdyaWdodCcpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy50b29sdGlwRWxlbWVudCwgJ21hdGNoYS10b29sdGlwLWNvbnRlbnRfcmlnaHQnKTtcbiAgICB9XG4gICAgLy8gUGFyYSBhIHBvc2nDp8OjbyAnYWJvdmUnLCBtYW50w6ltIG8gZXN0aWxvIHBhZHLDo29cbiAgfVxuXG4gIHByaXZhdGUgZGVzdHJveVRvb2x0aXAoKSB7XG4gICAgaWYgKHRoaXMudG9vbHRpcEVsZW1lbnQpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuYm9keSwgdGhpcy50b29sdGlwRWxlbWVudCk7XG4gICAgICB0aGlzLnRvb2x0aXBFbGVtZW50ID0gbnVsbDtcbiAgICB9XG4gICAgaWYgKHRoaXMuZG9jdW1lbnRDbGlja0xpc3RlbmVyKSB7XG4gICAgICB0aGlzLmRvY3VtZW50Q2xpY2tMaXN0ZW5lcigpOyAvLyBSZW1vdmUgbyBsaXN0ZW5lciBnbG9iYWxcbiAgICAgIHRoaXMuZG9jdW1lbnRDbGlja0xpc3RlbmVyID0gbnVsbDtcbiAgICB9XG4gIH1cbn1cbiIsIjxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiJdfQ==
@@ -1,19 +1,183 @@
1
- import { Directive } from '@angular/core';
1
+ import { Directive, HostListener, Input } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export class MatchaTooltipDirective {
4
- constructor(_elementRef, _renderer) {
5
- this._elementRef = _elementRef;
6
- this._renderer = _renderer;
7
- //this._elementRef.nativeElement.style.backgroundColor = 'grey';
8
- this._renderer.addClass(this._elementRef.nativeElement, 'matcha-tooltip');
4
+ constructor(el, renderer) {
5
+ this.el = el;
6
+ this.renderer = renderer;
7
+ this.tooltipText = '';
8
+ this.tooltipDisabled = false;
9
+ this.preferAbove = false;
10
+ this.preferBelow = false;
11
+ this.preferLeft = false;
12
+ this.preferRight = false;
13
+ this.tooltipEnableClose = false;
14
+ this.tooltipElement = null;
15
+ this.documentClickListener = null;
16
+ }
17
+ onMouseEnter() {
18
+ if (this.tooltipEnableClose) {
19
+ // Em modo de clique/tap, não abre via hover
20
+ return;
21
+ }
22
+ if (this.tooltipDisabled || this.tooltipElement || !this.tooltipText) {
23
+ return;
24
+ }
25
+ this.createTooltip();
26
+ }
27
+ onMouseLeave() {
28
+ if (!this.tooltipEnableClose && this.tooltipElement) {
29
+ this.destroyTooltip();
30
+ }
31
+ }
32
+ onClick(event) {
33
+ if (!this.tooltipEnableClose) {
34
+ return;
35
+ }
36
+ event.stopPropagation();
37
+ if (!this.tooltipElement && !this.tooltipDisabled && this.tooltipText) {
38
+ this.createTooltip();
39
+ }
40
+ }
41
+ createTooltip() {
42
+ // Cria o tooltip e adiciona a classe base
43
+ this.tooltipElement = this.renderer.createElement('div');
44
+ this.renderer.addClass(this.tooltipElement, 'matcha-tooltip-content');
45
+ // Define o conteúdo do tooltip
46
+ this.tooltipElement.textContent = this.tooltipText;
47
+ // Define estilos iniciais para medição
48
+ this.renderer.setStyle(this.tooltipElement, 'position', 'absolute');
49
+ this.renderer.setStyle(this.tooltipElement, 'top', '0');
50
+ this.renderer.setStyle(this.tooltipElement, 'left', '0');
51
+ this.renderer.setStyle(this.tooltipElement, 'visibility', 'hidden');
52
+ this.renderer.appendChild(document.body, this.tooltipElement);
53
+ // Se tooltipEnableClose estiver ativo, adiciona o botão de fechar
54
+ if (this.tooltipEnableClose) {
55
+ const closeButton = this.renderer.createElement('div');
56
+ this.renderer.addClass(closeButton, 'matcha-tooltip-close');
57
+ this.renderer.appendChild(this.tooltipElement, closeButton);
58
+ this.renderer.listen(closeButton, 'click', (e) => {
59
+ e.stopPropagation();
60
+ this.destroyTooltip();
61
+ });
62
+ this.documentClickListener = this.renderer.listen('document', 'click', (e) => {
63
+ if (this.tooltipElement && !this.tooltipElement.contains(e.target)) {
64
+ this.destroyTooltip();
65
+ }
66
+ });
67
+ }
68
+ // Medidas e cálculo de posição
69
+ const margin = 8;
70
+ const hostRect = this.el.nativeElement.getBoundingClientRect();
71
+ const tooltipRect = this.tooltipElement.getBoundingClientRect();
72
+ const hasSpaceAbove = hostRect.top >= tooltipRect.height + margin;
73
+ const hasSpaceBelow = (window.innerHeight - hostRect.bottom) >= tooltipRect.height + margin;
74
+ const hasSpaceLeft = hostRect.left >= tooltipRect.width + margin;
75
+ const hasSpaceRight = (window.innerWidth - hostRect.right) >= tooltipRect.width + margin;
76
+ let chosenPosition = 'above';
77
+ if (this.preferAbove && hasSpaceAbove) {
78
+ chosenPosition = 'above';
79
+ }
80
+ else if (this.preferBelow && hasSpaceBelow) {
81
+ chosenPosition = 'below';
82
+ }
83
+ else if (this.preferLeft && hasSpaceLeft) {
84
+ chosenPosition = 'left';
85
+ }
86
+ else if (this.preferRight && hasSpaceRight) {
87
+ chosenPosition = 'right';
88
+ }
89
+ else {
90
+ chosenPosition = hasSpaceAbove ? 'above' : (hasSpaceBelow ? 'below' : 'above');
91
+ }
92
+ let top = 0;
93
+ let left = 0;
94
+ switch (chosenPosition) {
95
+ case 'above':
96
+ top = hostRect.top + window.scrollY - tooltipRect.height - margin;
97
+ left = hostRect.left + window.scrollX + (hostRect.width - tooltipRect.width) / 2;
98
+ break;
99
+ case 'below':
100
+ top = hostRect.bottom + window.scrollY + margin;
101
+ left = hostRect.left + window.scrollX + (hostRect.width - tooltipRect.width) / 2;
102
+ break;
103
+ case 'left':
104
+ top = hostRect.top + window.scrollY + (hostRect.height - tooltipRect.height) / 2;
105
+ left = hostRect.left + window.scrollX - tooltipRect.width - margin;
106
+ break;
107
+ case 'right':
108
+ top = hostRect.top + window.scrollY + (hostRect.height - tooltipRect.height) / 2;
109
+ left = hostRect.right + window.scrollX + margin;
110
+ break;
111
+ }
112
+ if (left < margin) {
113
+ left = margin;
114
+ }
115
+ else if (left + tooltipRect.width > window.innerWidth - margin) {
116
+ left = window.innerWidth - tooltipRect.width - margin;
117
+ }
118
+ this.renderer.setStyle(this.tooltipElement, 'top', `${top}px`);
119
+ this.renderer.setStyle(this.tooltipElement, 'left', `${left}px`);
120
+ this.renderer.setStyle(this.tooltipElement, 'visibility', 'visible');
121
+ this.renderer.removeClass(this.tooltipElement, 'matcha-tooltip-content_below');
122
+ this.renderer.removeClass(this.tooltipElement, 'matcha-tooltip-content_left');
123
+ this.renderer.removeClass(this.tooltipElement, 'matcha-tooltip-content_right');
124
+ if (chosenPosition === 'below') {
125
+ this.renderer.addClass(this.tooltipElement, 'matcha-tooltip-content_below');
126
+ }
127
+ else if (chosenPosition === 'left') {
128
+ this.renderer.addClass(this.tooltipElement, 'matcha-tooltip-content_left');
129
+ }
130
+ else if (chosenPosition === 'right') {
131
+ this.renderer.addClass(this.tooltipElement, 'matcha-tooltip-content_right');
132
+ }
133
+ }
134
+ destroyTooltip() {
135
+ if (this.tooltipElement) {
136
+ this.renderer.removeChild(document.body, this.tooltipElement);
137
+ this.tooltipElement = null;
138
+ }
139
+ if (this.documentClickListener) {
140
+ this.documentClickListener();
141
+ this.documentClickListener = null;
142
+ }
9
143
  }
10
144
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MatchaTooltipDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
11
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: MatchaTooltipDirective, selector: "[matchaTooltip]", ngImport: i0 }); }
145
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: MatchaTooltipDirective, selector: "[matcha-tooltip]", inputs: { tooltipText: ["matcha-tooltip", "tooltipText"], tooltipDisabled: ["tooltip-disabled", "tooltipDisabled"], preferAbove: ["display-above", "preferAbove"], preferBelow: ["display-below", "preferBelow"], preferLeft: ["display-left", "preferLeft"], preferRight: ["display-right", "preferRight"], tooltipEnableClose: ["tooltip-enable-close", "tooltipEnableClose"] }, host: { listeners: { "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()", "click": "onClick($event)" } }, ngImport: i0 }); }
12
146
  }
13
147
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MatchaTooltipDirective, decorators: [{
14
148
  type: Directive,
15
149
  args: [{
16
- selector: '[matchaTooltip]'
150
+ selector: '[matcha-tooltip]' // Usado como atributo
17
151
  }]
18
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }] });
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXRjaGEtY29tcG9uZW50cy9zcmMvbGliL21hdGNoYS10b29sdGlwL3Rvb2x0aXAuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXlCLE1BQU0sZUFBZSxDQUFDOztBQUtqRSxNQUFNLE9BQU8sc0JBQXNCO0lBRS9CLFlBQ1ksV0FBdUIsRUFDdkIsU0FBb0I7UUFEcEIsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFDdkIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUU1QixnRUFBZ0U7UUFDaEUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQTtJQUM3RSxDQUFDOytHQVJRLHNCQUFzQjttR0FBdEIsc0JBQXNCOzs0RkFBdEIsc0JBQXNCO2tCQUhsQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxpQkFBaUI7aUJBQzVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW21hdGNoYVRvb2x0aXBdJ1xufSlcbmV4cG9ydCBjbGFzcyBNYXRjaGFUb29sdGlwRGlyZWN0aXZlIHtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIF9yZW5kZXJlcjogUmVuZGVyZXIyXG4gICAgKSB7XG4gICAgICAgIC8vdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLmJhY2tncm91bmRDb2xvciA9ICdncmV5JztcbiAgICAgICAgdGhpcy5fcmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnbWF0Y2hhLXRvb2x0aXAnKVxuICAgIH1cblxufVxuIl19
152
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { tooltipText: [{
153
+ type: Input,
154
+ args: ['matcha-tooltip']
155
+ }], tooltipDisabled: [{
156
+ type: Input,
157
+ args: ['tooltip-disabled']
158
+ }], preferAbove: [{
159
+ type: Input,
160
+ args: ['display-above']
161
+ }], preferBelow: [{
162
+ type: Input,
163
+ args: ['display-below']
164
+ }], preferLeft: [{
165
+ type: Input,
166
+ args: ['display-left']
167
+ }], preferRight: [{
168
+ type: Input,
169
+ args: ['display-right']
170
+ }], tooltipEnableClose: [{
171
+ type: Input,
172
+ args: ['tooltip-enable-close']
173
+ }], onMouseEnter: [{
174
+ type: HostListener,
175
+ args: ['mouseenter']
176
+ }], onMouseLeave: [{
177
+ type: HostListener,
178
+ args: ['mouseleave']
179
+ }], onClick: [{
180
+ type: HostListener,
181
+ args: ['click', ['$event']]
182
+ }] } });
183
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXRjaGEtY29tcG9uZW50cy9zcmMvbGliL21hdGNoYS10b29sdGlwL3Rvb2x0aXAuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLGVBQWUsQ0FBQzs7QUFLdEYsTUFBTSxPQUFPLHNCQUFzQjtJQWNqQyxZQUFvQixFQUFjLEVBQVUsUUFBbUI7UUFBM0MsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQVc7UUFidEMsZ0JBQVcsR0FBVyxFQUFFLENBQUM7UUFDdkIsb0JBQWUsR0FBWSxLQUFLLENBQUM7UUFFcEMsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFDN0IsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFDOUIsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUMzQixnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUV0Qix1QkFBa0IsR0FBWSxLQUFLLENBQUM7UUFFM0QsbUJBQWMsR0FBdUIsSUFBSSxDQUFDO1FBQzFDLDBCQUFxQixHQUF3QixJQUFJLENBQUM7SUFFUSxDQUFDO0lBR25FLFlBQVk7UUFDVixJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQzVCLDRDQUE0QztZQUM1QyxPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsY0FBYyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JFLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFHRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFD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LFlBQVk7dUJBQUMsWUFBWTtnQkFRMUIsT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1ttYXRjaGEtdG9vbHRpcF0nIC8vIFVzYWRvIGNvbW8gYXRyaWJ1dG9cbn0pXG5leHBvcnQgY2xhc3MgTWF0Y2hhVG9vbHRpcERpcmVjdGl2ZSB7XG4gIEBJbnB1dCgnbWF0Y2hhLXRvb2x0aXAnKSB0b29sdGlwVGV4dDogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgndG9vbHRpcC1kaXNhYmxlZCcpIHRvb2x0aXBEaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgnZGlzcGxheS1hYm92ZScpIHByZWZlckFib3ZlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgnZGlzcGxheS1iZWxvdycpIHByZWZlckJlbG93OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgnZGlzcGxheS1sZWZ0JykgcHJlZmVyTGVmdDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoJ2Rpc3BsYXktcmlnaHQnKSBwcmVmZXJSaWdodDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgndG9vbHRpcC1lbmFibGUtY2xvc2UnKSB0b29sdGlwRW5hYmxlQ2xvc2U6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwcml2YXRlIHRvb2x0aXBFbGVtZW50OiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIGRvY3VtZW50Q2xpY2tMaXN0ZW5lcjogKCgpID0+IHZvaWQpIHwgbnVsbCA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbDogRWxlbWVudFJlZiwgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyKSB7fVxuXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlZW50ZXInKVxuICBvbk1vdXNlRW50ZXIoKSB7XG4gICAgaWYgKHRoaXMudG9vbHRpcEVuYWJsZUNsb3NlKSB7XG4gICAgICAvLyBFbSBtb2RvIGRlIGNsaXF1ZS90YXAsIG7Do28gYWJyZSB2aWEgaG92ZXJcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMudG9vbHRpcERpc2FibGVkIHx8IHRoaXMudG9vbHRpcEVsZW1lbnQgfHwgIXRoaXMudG9vbHRpcFRleHQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5jcmVhdGVUb29sdGlwKCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdtb3VzZWxlYXZlJylcbiAgb25Nb3VzZUxlYXZlKCkge1xuICAgIGlmICghdGhpcy50b29sdGlwRW5hYmxlQ2xvc2UgJiYgdGhpcy50b29sdGlwRWxlbWVudCkge1xuICAgICAgdGhpcy5kZXN0cm95VG9vbHRpcCgpO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgb25DbGljayhldmVudDogRXZlbnQpIHtcbiAgICBpZiAoIXRoaXMudG9vbHRpcEVuYWJsZUNsb3NlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGlmICghdGhpcy50b29sdGlwRWxlbWVudCAmJiAhdGhpcy50b29sdGlwRGlzYWJsZWQgJiYgdGhpcy50b29sdGlwVGV4dCkge1xuICAgICAgdGhpcy5jcmVhdGVUb29sdGlwKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVUb29sdGlwKCkge1xuICAgIC8vIENyaWEgbyB0b29sdGlwIGUgYWRpY2lvbmEgYSBjbGFzc2UgYmFzZVxuICAgIHRoaXMudG9vbHRpcEVsZW1lbnQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy50b29sdGlwRWxlbWVudCwgJ21hdGNoYS10b29sdGlwLWNvbnRlbnQnKTtcblxuICAgIC8vIERlZmluZSBvIGNvbnRlw7pkbyBkbyB0b29sdGlwXG4gICAgdGhpcy50b29sdGlwRWxlbWVudCEudGV4dENvbnRlbnQgPSB0aGlzLnRvb2x0aXBUZXh0O1xuXG4gICAgLy8gRGVmaW5lIGVzdGlsb3MgaW5pY2lhaXMgcGFyYSBtZWRpw6fDo29cbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMudG9vbHRpcEVsZW1lbnQsICdwb3NpdGlvbicsICdhYnNvbHV0ZScpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy50b29sdGlwRWxlbWVudCwgJ3RvcCcsICcwJyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnRvb2x0aXBFbGVtZW50LCAnbGVmdCcsICcwJyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnRvb2x0aXBFbGVtZW50LCAndmlzaWJpbGl0eScsICdoaWRkZW4nKTtcbiAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKGRvY3VtZW50LmJvZHksIHRoaXMudG9vbHRpcEVsZW1lbnQpO1xuXG4gICAgLy8gU2UgdG9vbHRpcEVuYWJsZUNsb3NlIGVzdGl2ZXIgYXRpdm8sIGFkaWNpb25hIG8gYm90w6NvIGRlIGZlY2hhclxuICAgIGlmICh0aGlzLnRvb2x0aXBFbmFibGVDbG9zZSkge1xuICAgICAgY29uc3QgY2xvc2VCdXR0b24gPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhjbG9zZUJ1dHRvbiwgJ21hdGNoYS10b29sdGlwLWNsb3NlJyk7XG4gICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMudG9vbHRpcEVsZW1lbnQsIGNsb3NlQnV0dG9uKTtcbiAgICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKGNsb3NlQnV0dG9uLCAnY2xpY2snLCAoZTogRXZlbnQpID0+IHtcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgdGhpcy5kZXN0cm95VG9vbHRpcCgpO1xuICAgICAgfSk7XG4gICAgICB0aGlzLmRvY3VtZW50Q2xpY2tMaXN0ZW5lciA9IHRoaXMucmVuZGVyZXIubGlzdGVuKCdkb2N1bWVudCcsICdjbGljaycsIChlOiBFdmVudCkgPT4ge1xuICAgICAgICBpZiAodGhpcy50b29sdGlwRWxlbWVudCAmJiAhdGhpcy50b29sdGlwRWxlbWVudC5jb250YWlucyhlLnRhcmdldCBhcyBOb2RlKSkge1xuICAgICAgICAgIHRoaXMuZGVzdHJveVRvb2x0aXAoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gTWVkaWRhcyBlIGPDoWxjdWxvIGRlIHBvc2nDp8Ojb1xuICAgIGNvbnN0IG1hcmdpbiA9IDg7XG4gICAgY29uc3QgaG9zdFJlY3QgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3QgdG9vbHRpcFJlY3QgPSB0aGlzLnRvb2x0aXBFbGVtZW50IS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgIGNvbnN0IGhhc1NwYWNlQWJvdmUgPSBob3N0UmVjdC50b3AgPj0gdG9vbHRpcFJlY3QuaGVpZ2h0ICsgbWFyZ2luO1xuICAgIGNvbnN0IGhhc1NwYWNlQmVsb3cgPSAod2luZG93LmlubmVySGVpZ2h0IC0gaG9zdFJlY3QuYm90dG9tKSA+PSB0b29sdGlwUmVjdC5oZWlnaHQgKyBtYXJnaW47XG4gICAgY29uc3QgaGFzU3BhY2VMZWZ0ICA9IGhvc3RSZWN0LmxlZnQgPj0gdG9vbHRpcFJlY3Qud2lkdGggKyBtYXJnaW47XG4gICAgY29uc3QgaGFzU3BhY2VSaWdodCA9ICh3aW5kb3cuaW5uZXJXaWR0aCAtIGhvc3RSZWN0LnJpZ2h0KSA+PSB0b29sdGlwUmVjdC53aWR0aCArIG1hcmdpbjtcblxuICAgIGxldCBjaG9zZW5Qb3NpdGlvbjogJ2Fib3ZlJyB8ICdiZWxvdycgfCAnbGVmdCcgfCAncmlnaHQnID0gJ2Fib3ZlJztcbiAgICBpZiAodGhpcy5wcmVmZXJBYm92ZSAmJiBoYXNTcGFjZUFib3ZlKSB7XG4gICAgICBjaG9zZW5Qb3NpdGlvbiA9ICdhYm92ZSc7XG4gICAgfSBlbHNlIGlmICh0aGlzLnByZWZlckJlbG93ICYmIGhhc1NwYWNlQmVsb3cpIHtcbiAgICAgIGNob3NlblBvc2l0aW9uID0gJ2JlbG93JztcbiAgICB9IGVsc2UgaWYgKHRoaXMucHJlZmVyTGVmdCAmJiBoYXNTcGFjZUxlZnQpIHtcbiAgICAgIGNob3NlblBvc2l0aW9uID0gJ2xlZnQnO1xuICAgIH0gZWxzZSBpZiAodGhpcy5wcmVmZXJSaWdodCAmJiBoYXNTcGFjZVJpZ2h0KSB7XG4gICAgICBjaG9zZW5Qb3NpdGlvbiA9ICdyaWdodCc7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNob3NlblBvc2l0aW9uID0gaGFzU3BhY2VBYm92ZSA/ICdhYm92ZScgOiAoaGFzU3BhY2VCZWxvdyA/ICdiZWxvdycgOiAnYWJvdmUnKTtcbiAgICB9XG5cbiAgICBsZXQgdG9wOiBudW1iZXIgPSAwO1xuICAgIGxldCBsZWZ0OiBudW1iZXIgPSAwO1xuICAgIHN3aXRjaCAoY2hvc2VuUG9zaXRpb24pIHtcbiAgICAgIGNhc2UgJ2Fib3ZlJzpcbiAgICAgICAgdG9wID0gaG9zdFJlY3QudG9wICsgd2luZG93LnNjcm9sbFkgLSB0b29sdGlwUmVjdC5oZWlnaHQgLSBtYXJnaW47XG4gICAgICAgIGxlZnQgPSBob3N0UmVjdC5sZWZ0ICsgd2luZG93LnNjcm9sbFggKyAoaG9zdFJlY3Qud2lkdGggLSB0b29sdGlwUmVjdC53aWR0aCkgLyAyO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2JlbG93JzpcbiAgICAgICAgdG9wID0gaG9zdFJlY3QuYm90dG9tICsgd2luZG93LnNjcm9sbFkgKyBtYXJnaW47XG4gICAgICAgIGxlZnQgPSBob3N0UmVjdC5sZWZ0ICsgd2luZG93LnNjcm9sbFggKyAoaG9zdFJlY3Qud2lkdGggLSB0b29sdGlwUmVjdC53aWR0aCkgLyAyO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgICB0b3AgPSBob3N0UmVjdC50b3AgKyB3aW5kb3cuc2Nyb2xsWSArIChob3N0UmVjdC5oZWlnaHQgLSB0b29sdGlwUmVjdC5oZWlnaHQpIC8gMjtcbiAgICAgICAgbGVmdCA9IGhvc3RSZWN0LmxlZnQgKyB3aW5kb3cuc2Nyb2xsWCAtIHRvb2x0aXBSZWN0LndpZHRoIC0gbWFyZ2luO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3JpZ2h0JzpcbiAgICAgICAgdG9wID0gaG9zdFJlY3QudG9wICsgd2luZG93LnNjcm9sbFkgKyAoaG9zdFJlY3QuaGVpZ2h0IC0gdG9vbHRpcFJlY3QuaGVpZ2h0KSAvIDI7XG4gICAgICAgIGxlZnQgPSBob3N0UmVjdC5yaWdodCArIHdpbmRvdy5zY3JvbGxYICsgbWFyZ2luO1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICBpZiAobGVmdCA8IG1hcmdpbikge1xuICAgICAgbGVmdCA9IG1hcmdpbjtcbiAgICB9IGVsc2UgaWYgKGxlZnQgKyB0b29sdGlwUmVjdC53aWR0aCA+IHdpbmRvdy5pbm5lcldpZHRoIC0gbWFyZ2luKSB7XG4gICAgICBsZWZ0ID0gd2luZG93LmlubmVyV2lkdGggLSB0b29sdGlwUmVjdC53aWR0aCAtIG1hcmdpbjtcbiAgICB9XG5cbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMudG9vbHRpcEVsZW1lbnQsICd0b3AnLCBgJHt0b3B9cHhgKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMudG9vbHRpcEVsZW1lbnQsICdsZWZ0JywgYCR7bGVmdH1weGApO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy50b29sdGlwRWxlbWVudCwgJ3Zpc2liaWxpdHknLCAndmlzaWJsZScpO1xuXG4gICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLnRvb2x0aXBFbGVtZW50LCAnbWF0Y2hhLXRvb2x0aXAtY29udGVudF9iZWxvdycpO1xuICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy50b29sdGlwRWxlbWVudCwgJ21hdGNoYS10b29sdGlwLWNvbnRlbnRfbGVmdCcpO1xuICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy50b29sdGlwRWxlbWVudCwgJ21hdGNoYS10b29sdGlwLWNvbnRlbnRfcmlnaHQnKTtcbiAgICBpZiAoY2hvc2VuUG9zaXRpb24gPT09ICdiZWxvdycpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy50b29sdGlwRWxlbWVudCwgJ21hdGNoYS10b29sdGlwLWNvbnRlbnRfYmVsb3cnKTtcbiAgICB9IGVsc2UgaWYgKGNob3NlblBvc2l0aW9uID09PSAnbGVmdCcpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy50b29sdGlwRWxlbWVudCwgJ21hdGNoYS10b29sdGlwLWNvbnRlbnRfbGVmdCcpO1xuICAgIH0gZWxzZSBpZiAoY2hvc2VuUG9zaXRpb24gPT09ICdyaWdodCcpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy50b29sdGlwRWxlbWVudCwgJ21hdGNoYS10b29sdGlwLWNvbnRlbnRfcmlnaHQnKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGRlc3Ryb3lUb29sdGlwKCkge1xuICAgIGlmICh0aGlzLnRvb2x0aXBFbGVtZW50KSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNoaWxkKGRvY3VtZW50LmJvZHksIHRoaXMudG9vbHRpcEVsZW1lbnQpO1xuICAgICAgdGhpcy50b29sdGlwRWxlbWVudCA9IG51bGw7XG4gICAgfVxuICAgIGlmICh0aGlzLmRvY3VtZW50Q2xpY2tMaXN0ZW5lcikge1xuICAgICAgdGhpcy5kb2N1bWVudENsaWNrTGlzdGVuZXIoKTtcbiAgICAgIHRoaXMuZG9jdW1lbnRDbGlja0xpc3RlbmVyID0gbnVsbDtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -1,18 +1,19 @@
1
1
  import { NgModule } from '@angular/core';
2
2
  import { CommonModule } from '@angular/common';
3
+ import { MatchaTooltipComponent } from './tooltip/tooltip.component';
3
4
  import { MatchaTooltipDirective } from './tooltip.directive';
4
5
  import * as i0 from "@angular/core";
5
6
  export class MatchaTooltipModule {
6
7
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MatchaTooltipModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
7
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: MatchaTooltipModule, declarations: [MatchaTooltipDirective], imports: [CommonModule], exports: [MatchaTooltipDirective] }); }
8
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: MatchaTooltipModule, declarations: [MatchaTooltipComponent, MatchaTooltipDirective], imports: [CommonModule], exports: [MatchaTooltipComponent, MatchaTooltipDirective] }); }
8
9
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MatchaTooltipModule, imports: [CommonModule] }); }
9
10
  }
10
11
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MatchaTooltipModule, decorators: [{
11
12
  type: NgModule,
12
13
  args: [{
13
- declarations: [MatchaTooltipDirective],
14
+ declarations: [MatchaTooltipComponent, MatchaTooltipDirective],
14
15
  imports: [CommonModule],
15
- exports: [MatchaTooltipDirective],
16
+ exports: [MatchaTooltipComponent, MatchaTooltipDirective],
16
17
  }]
17
18
  }] });
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXRjaGEtY29tcG9uZW50cy9zcmMvbGliL21hdGNoYS10b29sdGlwL3Rvb2x0aXAubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQU83RCxNQUFNLE9BQU8sbUJBQW1COytHQUFuQixtQkFBbUI7Z0hBQW5CLG1CQUFtQixpQkFKYixzQkFBc0IsYUFDM0IsWUFBWSxhQUNaLHNCQUFzQjtnSEFFdkIsbUJBQW1CLFlBSGxCLFlBQVk7OzRGQUdiLG1CQUFtQjtrQkFML0IsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDdEMsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztpQkFDcEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdGNoYVRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICcuL3Rvb2x0aXAuZGlyZWN0aXZlJztcblxuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFtNYXRjaGFUb29sdGlwRGlyZWN0aXZlXSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgICBleHBvcnRzOiBbTWF0Y2hhVG9vbHRpcERpcmVjdGl2ZV0sXG59KVxuZXhwb3J0IGNsYXNzIE1hdGNoYVRvb2x0aXBNb2R1bGUge31cbiJdfQ==
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXRjaGEtY29tcG9uZW50cy9zcmMvbGliL21hdGNoYS10b29sdGlwL3Rvb2x0aXAubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQU83RCxNQUFNLE9BQU8sbUJBQW1COytHQUFuQixtQkFBbUI7Z0hBQW5CLG1CQUFtQixpQkFKYixzQkFBc0IsRUFBRSxzQkFBc0IsYUFDbkQsWUFBWSxhQUNaLHNCQUFzQixFQUFFLHNCQUFzQjtnSEFFL0MsbUJBQW1CLFlBSGxCLFlBQVk7OzRGQUdiLG1CQUFtQjtrQkFML0IsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUUsQ0FBQyxzQkFBc0IsRUFBRSxzQkFBc0IsQ0FBQztvQkFDOUQsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsRUFBRSxzQkFBc0IsQ0FBQztpQkFDNUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdGNoYVRvb2x0aXBDb21wb25lbnQgfSBmcm9tICcuL3Rvb2x0aXAvdG9vbHRpcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0Y2hhVG9vbHRpcERpcmVjdGl2ZSB9IGZyb20gJy4vdG9vbHRpcC5kaXJlY3RpdmUnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogW01hdGNoYVRvb2x0aXBDb21wb25lbnQsIE1hdGNoYVRvb2x0aXBEaXJlY3RpdmVdLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICAgIGV4cG9ydHM6IFtNYXRjaGFUb29sdGlwQ29tcG9uZW50LCBNYXRjaGFUb29sdGlwRGlyZWN0aXZlXSxcbn0pXG5leHBvcnQgY2xhc3MgTWF0Y2hhVG9vbHRpcE1vZHVsZSB7fVxuIl19
@@ -25,6 +25,7 @@ export * from './lib/matcha-modal/modal-footer/modal-footer.component';
25
25
  export * from './lib/matcha-modal/modal-options/modal-options.component';
26
26
  export * from './lib/matcha-modal/modal/modal.component';
27
27
  export * from './lib/matcha-menu/menu.component';
28
+ export * from './lib/matcha-tooltip/tooltip/tooltip.component';
28
29
  // -----------------------------------------------------------
29
30
  // MODULES
30
31
  // -----------------------------------------------------------
@@ -33,6 +34,10 @@ export * from './lib/matcha-card/card.module';
33
34
  export * from './lib/matcha-masonry/masonry.module';
34
35
  export * from './lib/matcha-title/title.module';
35
36
  export * from './lib/matcha-button/button.module';
37
+ export * from './lib/matcha-tooltip/tooltip.module';
38
+ export * from './lib/matcha-divider/divider.module';
39
+ export * from './lib/matcha-elevation/elevation.module';
40
+ export * from './lib/matcha-grid/grid.module';
36
41
  export * from './lib/matcha-components.module';
37
42
  export * from './lib/matcha-autocomplete/autocomplete.module';
38
43
  export * from './lib/matcha-badge/badge.module';
@@ -42,11 +47,8 @@ export * from './lib/matcha-button-toggle/button-toggle.module';
42
47
  export * from './lib/matcha-checkbox/checkbox.module';
43
48
  export * from './lib/matcha-chips/chips.module';
44
49
  export * from './lib/matcha-datepicker/datepicker.module';
45
- export * from './lib/matcha-divider/divider.module';
46
- export * from './lib/matcha-elevation/elevation.module';
47
50
  export * from './lib/matcha-expansion/expansion.module';
48
51
  export * from './lib/matcha-forms/forms.module';
49
- export * from './lib/matcha-grid/grid.module';
50
52
  export * from './lib/matcha-icon/icon.module';
51
53
  export * from './lib/matcha-input/input.module';
52
54
  export * from './lib/matcha-list/list.module';
@@ -63,14 +65,13 @@ export * from './lib/matcha-snackbar/snack-bar.module';
63
65
  export * from './lib/matcha-sort-header/sort-header.module';
64
66
  export * from './lib/matcha-stepper/stepper.module';
65
67
  export * from './lib/matcha-table/table.module';
66
- export * from './lib/matcha-tooltip/tooltip.module';
67
68
  export * from './lib/matcha-tree/tree.module';
68
69
  // -----------------------------------------------------------
69
70
  // DIRECTIVES
70
71
  // -----------------------------------------------------------
72
+ export * from './lib/matcha-tooltip/tooltip.directive';
71
73
  export * from './lib/matcha-input/input.directive';
72
74
  export * from './lib/matcha-tree/tree.directive';
73
- export * from './lib/matcha-tooltip/tooltip.directive';
74
75
  export * from './lib/matcha-table/table.directive';
75
76
  export * from './lib/matcha-stepper/stepper.directive';
76
77
  export * from './lib/matcha-sort-header/sort-header.directive';
@@ -97,4 +98,4 @@ export * from './lib/matcha-tabs/tabs.directive';
97
98
  export * from './lib/matcha-badge/badge.directive';
98
99
  export * from './lib/matcha-autocomplete/autocomplete-overview.directive';
99
100
  export * from './lib/matcha-autocomplete/autocomplete.directive';
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL21hdGNoYS1jb21wb25lbnRzL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsOERBQThEO0FBQzlELGFBQWE7QUFDYiw4REFBOEQ7QUFFOUQsdUJBQXVCO0FBQ3ZCLCtEQUErRDtBQUUvRCxvQkFBb0I7QUFDcEIsNkRBQTZEO0FBRTdELEVBQUU7QUFDRiw4REFBOEQ7QUFDOUQsYUFBYTtBQUNiLDhEQUE4RDtBQUM5RCxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsMERBQTBELENBQUM7QUFDekUsY0FBYyx3REFBd0QsQ0FBQztBQUN2RSxjQUFjLHdEQUF3RCxDQUFDO0FBQ3ZFLGNBQWMsMERBQTBELENBQUM7QUFDekUsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLGtDQUFrQyxDQUFDO0FBR2pELDhEQUE4RDtBQUM5RCxVQUFVO0FBQ1YsOERBQThEO0FBQzlELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxtQ0FBbUMsQ0FBQztBQUVsRCxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLHVEQUF1RCxDQUFDO0FBQ3RFLGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsK0JBQStCLENBQUM7QUFFOUMsOERBQThEO0FBQzlELGFBQWE7QUFDYiw4REFBOEQ7QUFFOUQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLHlEQUF5RCxDQUFDO0FBQ3hFLGNBQWMsMERBQTBELENBQUM7QUFDekUsY0FBYyxrREFBa0QsQ0FBQztBQUNqRSxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsMkRBQTJELENBQUM7QUFDMUUsY0FBYyxrREFBa0QsQ0FBQztBQUNqRSxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYywyREFBMkQsQ0FBQztBQUMxRSxjQUFjLGtEQUFrRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBtYXRjaGEtY29tcG9uZW50c1xuICovXG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBDT01QT05FTlRTXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyAvLyBBVE9NSUMgQ09NUE9ORU5UU1xuLy8gZXhwb3J0ICogZnJvbSAnLi9saWIvbWF0Y2hhLWJ1dHRvbi9tYXRjaGEtYnV0dG9uLmNvbXBvbmVudCc7XG5cbi8vIC8vIEJBU0UgQ09NUE9ORU5UXG4vLyBleHBvcnQgKiBmcm9tICcuL2xpYi9tYXRjaGEtdGl0bGUvbWF0Y2hhLXRpdGxlLmNvbXBvbmVudCc7XG5cbi8vXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQ09NUE9ORU5UU1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmV4cG9ydCAqIGZyb20gJy4vbGliL21hdGNoYS1idXR0b24vYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWF0Y2hhLWNhcmQvY2FyZC9jYXJkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tYXRjaGEtZGl2aWRlci9kaXZpZGVyL2RpdmlkZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21hdGNoYS10aXRsZS90aXRsZS90aXRsZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWF0Y2hhLWljb24vaWNvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWF0Y2hhLWdyaWQvZ3JpZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWF0Y2hhLW1hc29ucnkvbWFzb25yeS9tYXNvbnJ5LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tYXRjaGEtbW9kYWwvbW9kYWwtY29udGVudC9tb2RhbC1jb250ZW50LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tYXRjaGEtbW9kYWwvbW9kYWwtaGVhZGVyL21vZGFsLWhlYWRlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWF0Y2hhLW1vZGFsL21vZGFsLWZvb3Rlci9tb2RhbC1mb290ZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21hdGNoYS1tb2RhbC9tb2RhbC1vcHRpb25zL21vZGFsLW9wdGlvbnMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21hdGNoYS1tb2RhbC9tb2RhbC9tb2RhbC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWF0Y2hhLW1lbnUvbWVudS5jb21wb25lbnQnO1xuXG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBNT0RVTEVTXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZXhwb3J0ICogZnJvbSAnLi9saWIvbWF0Y2hhLW1vZGFsL21hdGNoYS1tb2RhbC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWF0Y2hhLWNhcmQvY2FyZC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWF0Y2hhLW1hc29ucnkvbWFzb25yeS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWF0Y2hhLXRpdGxlL3RpdGxlLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tYXRjaGEtYnV0dG9uL2J1dHRvbi5tb2R1bGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tYXRjaGEtY29tcG9uZW50cy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWF0Y2hhLWF1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21hdGNoYS1iYWRnZS9iYWRnZS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWF0Y2hhLXRhYnMvdGFicy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWF0Y2hhLWJvdHRvbS1zaGVldC9ib3R0b20tc2hlZXQubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21hdGNoYS1idXR0b24tdG9nZ2xlL2J1dHRvbi10b2dnbGUubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21hdGNoYS1jaGVja2JveC9jaGVja2JveC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWF0Y2hhLWNoaXBzL2NoaXBzLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tYXRjaGEtZGF0ZXBpY2tlci9kYXRlcGlja2VyLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tYXRjaGEtZGl2aWRlci9kaXZpZGVyLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tYXRjaGEtZWxldmF0aW9uL2VsZXZhdGlvbi5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWF0Y2hhLWV4cGFuc2lvbi9leHBhbnNpb24ubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21hdGNoYS1mb3Jtcy9mb3Jtcy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWF0Y2hhLWdyaWQvZ3JpZC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWF0Y2hhLWljb24vaWNvbi5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWF0Y2hhLWlucHV0L2lucHV0Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tYXRjaGEtbGlzdC9saXN0Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tYXRjaGEtbWVudS9tZW51Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tYXRjaGEtc2lkZW5hdi9zaWRlbmF2Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tYXRjaGEtcGFnaW5hdG9yL3BhZ2luYXRvci5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWF0Y2hhLXByb2dyZXNzLWJhci9wcm9ncmVzcy1iYXIubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21hdGNoYS1wcm9ncmVzcy1zcGlubmVyL3Byb2dyZXNzLXNwaW5uZXIubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21hdGNoYS1yYWRpby1idXR0b24vcmFkaW8tYnV0dG9uLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tYXRjaGEtc2VsZWN0L3NlbGVjdC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWF0Y2hhLXNsaWRlLXRvZ2dsZS9zbGlkZS10b2dnbGUubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21hdGNoYS1zbGlkZXIvc2xpZGVyLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tYXRjaGEtc25hY2tiYXIvc25hY2stYmFyLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tYXRjaGEtc29ydC1oZWFkZXIvc29ydC1oZWFkZXIubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21hdGNoYS1zdGVwcGVyL3N0ZXBwZXIubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21hdGNoYS10YWJsZS90YWJsZS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWF0Y2hhLXRvb2x0aXAvdG9vbHRpcC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWF0Y2hhLXRyZWUvdHJlZS5tb2R1bGUnO1xuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gRElSRUNUSVZFU1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvbWF0Y2hhLWlucHV0L2lucHV0LmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tYXRjaGEtdHJlZS90cmVlLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tYXRjaGEtdG9vbHRpcC90b29sdGlwLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tYXRjaGEtdGFibGUvdGFibGUuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21hdGNoYS1zdGVwcGVyL3N0ZXBwZXIuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21hdGNoYS1zb3J0LWhlYWRlci9zb3J0LWhlYWRlci5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWF0Y2hhLXNuYWNrYmFyL3NuYWNrLWJhci5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWF0Y2hhLXNsaWRlci9tYXRjaGEtc2xpZGVyLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tYXRjaGEtc2xpZGUtdG9nZ2xlL3NsaWRlLXRvZ2dsZS5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWF0Y2hhLXNlbGVjdC9zZWxlY3QuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21hdGNoYS1yYWRpby1idXR0b24vbWF0Y2hhLXJhZGlvLWJ1dHRvbi5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWF0Y2hhLXByb2dyZXNzLXNwaW5uZXIvcHJvZ3Jlc3Mtc3Bpbm5lci5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWF0Y2hhLXByb2dyZXNzLWJhci9wcm9ncmVzcy1iYXIuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21hdGNoYS1wYWdpbmF0b3IvcGFnaW5hdG9yLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tYXRjaGEtc2lkZW5hdi9zaWRlbmF2LmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tYXRjaGEtbWVudS9tZW51LmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tYXRjaGEtbGlzdC9saXN0LmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tYXRjaGEtZm9ybXMvZm9ybS1maWVsZC5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWF0Y2hhLWV4cGFuc2lvbi9leHBhbnNpb24uZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21hdGNoYS1lbGV2YXRpb24vZWxldmF0aW9uLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tYXRjaGEtZGF0ZXBpY2tlci9kYXRlcGlja2VyLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tYXRjaGEtY2hpcHMvbWF0Y2hhLWNoaXBzLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tYXRjaGEtY2hlY2tib3gvY2hlY2tib3guZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21hdGNoYS1idXR0b24tdG9nZ2xlL21hdGNoYS1idXR0b24tdG9nZ2xlLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tYXRjaGEtYm90dG9tLXNoZWV0L2JvdHRvbS1zaGVldC5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWF0Y2hhLXRhYnMvdGFicy5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWF0Y2hhLWJhZGdlL2JhZGdlLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tYXRjaGEtYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS1vdmVydmlldy5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWF0Y2hhLWF1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUuZGlyZWN0aXZlJztcbiJdfQ==
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL21hdGNoYS1jb21wb25lbnRzL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsOERBQThEO0FBQzlELGFBQWE7QUFDYiw4REFBOEQ7QUFFOUQsdUJBQXVCO0FBQ3ZCLCtEQUErRDtBQUUvRCxvQkFBb0I7QUFDcEIsNkRBQTZEO0FBRTdELEVBQUU7QUFDRiw4REFBOEQ7QUFDOUQsYUFBYTtBQUNiLDhEQUE4RDtBQUM5RCxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsMERBQTBELENBQUM7QUFDekUsY0FBYyx3REFBd0QsQ0FBQztBQUN2RSxjQUFjLHdEQUF3RCxDQUFDO0FBQ3ZFLGNBQWMsMERBQTBELENBQUM7QUFDekUsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsZ0RBQWdELENBQUM7QUFHL0QsOERBQThEO0FBQzlELFVBQVU7QUFDViw4REFBOEQ7QUFDOUQsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsK0JBQStCLENBQUM7QUFFOUMsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyx1REFBdUQsQ0FBQztBQUN0RSxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYywrQkFBK0IsQ0FBQztBQUU5Qyw4REFBOEQ7QUFDOUQsYUFBYTtBQUNiLDhEQUE4RDtBQUU5RCxjQUFjLHdDQUF3QyxDQUFDO0FBRXZELGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYyxrREFBa0QsQ0FBQztBQUNqRSxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMseURBQXlELENBQUM7QUFDeEUsY0FBYywwREFBMEQsQ0FBQztBQUN6RSxjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYywyREFBMkQsQ0FBQztBQUMxRSxjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLDJEQUEyRCxDQUFDO0FBQzFFLGNBQWMsa0RBQWtELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIG1hdGNoYS1jb21wb25lbnRzXG4gKi9cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIENPTVBPTkVOVFNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIC8vIEFUT01JQyBDT01QT05FTlRTXG4vLyBleHBvcnQgKiBmcm9tICcuL2xpYi9tYXRjaGEtYnV0dG9uL21hdGNoYS1idXR0b24uY29tcG9uZW50JztcblxuLy8gLy8gQkFTRSBDT01QT05FTlRcbi8vIGV4cG9ydCAqIGZyb20gJy4vbGliL21hdGNoYS10aXRsZS9tYXRjaGEtdGl0bGUuY29tcG9uZW50JztcblxuLy9cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBDT01QT05FTlRTXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZXhwb3J0ICogZnJvbSAnLi9saWIvbWF0Y2hhLWJ1dHRvbi9idXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tYXRjaGEtY2FyZC9jYXJkL2NhcmQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21hdGNoYS1kaXZpZGVyL2RpdmlkZXIvZGl2aWRlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWF0Y2hhLXRpdGxlL3RpdGxlL3RpdGxlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tYXRjaGEtaWNvbi9pY29uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tYXRjaGEtZ3JpZC9ncmlkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tYXRjaGEtbWFzb25yeS9tYXNvbnJ5L21hc29ucnkuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21hdGNoYS1tb2RhbC9tb2RhbC1jb250ZW50L21vZGFsLWNvbnRlbnQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21hdGNoYS1tb2RhbC9tb2RhbC1oZWFkZXIvbW9kYWwtaGVhZGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tYXRjaGEtbW9kYWwvbW9kYWwtZm9vdGVyL21vZGFsLWZvb3Rlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWF0Y2hhLW1vZGFsL21vZGFsLW9wdGlvbnMvbW9kYWwtb3B0aW9ucy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWF0Y2hhLW1vZGFsL21vZGFsL21vZGFsLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tYXRjaGEtbWVudS9tZW51LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tYXRjaGEtdG9vbHRpcC90b29sdGlwL3Rvb2x0aXAuY29tcG9uZW50JztcblxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gTU9EVUxFU1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmV4cG9ydCAqIGZyb20gJy4vbGliL21hdGNoYS1tb2RhbC9tYXRjaGEtbW9kYWwubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21hdGNoYS1jYXJkL2NhcmQubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21hdGNoYS1tYXNvbnJ5L21hc29ucnkubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21hdGNoYS10aXRsZS90aXRsZS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWF0Y2hhLWJ1dHRvbi9idXR0b24ubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21hdGNoYS10b29sdGlwL3Rvb2x0aXAubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21hdGNoYS1kaXZpZGVyL2RpdmlkZXIubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21hdGNoYS1lbGV2YXRpb24vZWxldmF0aW9uLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tYXRjaGEtZ3JpZC9ncmlkLm1vZHVsZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL21hdGNoYS1jb21wb25lbnRzLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tYXRjaGEtYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWF0Y2hhLWJhZGdlL2JhZGdlLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tYXRjaGEtdGFicy90YWJzLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tYXRjaGEtYm90dG9tLXNoZWV0L2JvdHRvbS1zaGVldC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWF0Y2hhLWJ1dHRvbi10b2dnbGUvYnV0dG9uLXRvZ2dsZS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWF0Y2hhLWNoZWNrYm94L2NoZWNrYm94Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tYXRjaGEtY2hpcHMvY2hpcHMubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21hdGNoYS1kYXRlcGlja2VyL2RhdGVwaWNrZXIubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21hdGNoYS1leHBhbnNpb24vZXhwYW5zaW9uLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tYXRjaGEtZm9ybXMvZm9ybXMubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21hdGNoYS1pY29uL2ljb24ubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21hdGNoYS1pbnB1dC9pbnB1dC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWF0Y2hhLWxpc3QvbGlzdC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWF0Y2hhLW1lbnUvbWVudS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWF0Y2hhLXNpZGVuYXYvc2lkZW5hdi5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWF0Y2hhLXBhZ2luYXRvci9wYWdpbmF0b3IubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21hdGNoYS1wcm9ncmVzcy1iYXIvcHJvZ3Jlc3MtYmFyLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tYXRjaGEtcHJvZ3Jlc3Mtc3Bpbm5lci9wcm9ncmVzcy1zcGlubmVyLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tYXRjaGEtcmFkaW8tYnV0dG9uL3JhZGlvLWJ1dHRvbi5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWF0Y2hhLXNlbGVjdC9zZWxlY3QubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21hdGNoYS1zbGlkZS10b2dnbGUvc2xpZGUtdG9nZ2xlLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tYXRjaGEtc2xpZGVyL3NsaWRlci5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWF0Y2hhLXNuYWNrYmFyL3NuYWNrLWJhci5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWF0Y2hhLXNvcnQtaGVhZGVyL3NvcnQtaGVhZGVyLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tYXRjaGEtc3RlcHBlci9zdGVwcGVyLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tYXRjaGEtdGFibGUvdGFibGUubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21hdGNoYS10cmVlL3RyZWUubW9kdWxlJztcblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIERJUkVDVElWRVNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL21hdGNoYS10b29sdGlwL3Rvb2x0aXAuZGlyZWN0aXZlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvbWF0Y2hhLWlucHV0L2lucHV0LmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tYXRjaGEtdHJlZS90cmVlLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tYXRjaGEtdGFibGUvdGFibGUuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21hdGNoYS1zdGVwcGVyL3N0ZXBwZXIuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21hdGNoYS1zb3J0LWhlYWRlci9zb3J0LWhlYWRlci5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWF0Y2hhLXNuYWNrYmFyL3NuYWNrLWJhci5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWF0Y2hhLXNsaWRlci9tYXRjaGEtc2xpZGVyLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tYXRjaGEtc2xpZGUtdG9nZ2xlL3NsaWRlLXRvZ2dsZS5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWF0Y2hhLXNlbGVjdC9zZWxlY3QuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21hdGNoYS1yYWRpby1idXR0b24vbWF0Y2hhLXJhZGlvLWJ1dHRvbi5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWF0Y2hhLXByb2dyZXNzLXNwaW5uZXIvcHJvZ3Jlc3Mtc3Bpbm5lci5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWF0Y2hhLXByb2dyZXNzLWJhci9wcm9ncmVzcy1iYXIuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21hdGNoYS1wYWdpbmF0b3IvcGFnaW5hdG9yLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tYXRjaGEtc2lkZW5hdi9zaWRlbmF2LmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tYXRjaGEtbWVudS9tZW51LmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tYXRjaGEtbGlzdC9saXN0LmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tYXRjaGEtZm9ybXMvZm9ybS1maWVsZC5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWF0Y2hhLWV4cGFuc2lvbi9leHBhbnNpb24uZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21hdGNoYS1lbGV2YXRpb24vZWxldmF0aW9uLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tYXRjaGEtZGF0ZXBpY2tlci9kYXRlcGlja2VyLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tYXRjaGEtY2hpcHMvbWF0Y2hhLWNoaXBzLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tYXRjaGEtY2hlY2tib3gvY2hlY2tib3guZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21hdGNoYS1idXR0b24tdG9nZ2xlL21hdGNoYS1idXR0b24tdG9nZ2xlLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tYXRjaGEtYm90dG9tLXNoZWV0L2JvdHRvbS1zaGVldC5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWF0Y2hhLXRhYnMvdGFicy5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWF0Y2hhLWJhZGdlL2JhZGdlLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tYXRjaGEtYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS1vdmVydmlldy5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWF0Y2hhLWF1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUuZGlyZWN0aXZlJztcbiJdfQ==