@dev-tcloud/tcloud-ui 4.1.1 → 4.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.
|
@@ -1,79 +1,14 @@
|
|
|
1
1
|
import { Directive, Input, HostListener } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export class TCloudUiTooltipDirective {
|
|
4
|
-
onMouseOver(event) {
|
|
5
|
-
let hoverInCallback = () => {
|
|
6
|
-
this.remove = false;
|
|
7
|
-
};
|
|
8
|
-
let hoverOutCallback = () => {
|
|
9
|
-
this.remove = true;
|
|
10
|
-
const customDivAll = document.querySelectorAll('.tc-directive-tooltip');
|
|
11
|
-
if (customDivAll && customDivAll.length > 0) {
|
|
12
|
-
customDivAll.forEach((_customDiv) => {
|
|
13
|
-
if (_customDiv) {
|
|
14
|
-
_customDiv.remove();
|
|
15
|
-
}
|
|
16
|
-
});
|
|
17
|
-
}
|
|
18
|
-
};
|
|
19
|
-
hoverOutCallback;
|
|
20
|
-
setTimeout(() => {
|
|
21
|
-
const scrollTop = window?.scrollY || window?.pageYOffset;
|
|
22
|
-
const tooltip = this.renderer.createElement('div');
|
|
23
|
-
const rect = this.el.nativeElement?.getBoundingClientRect();
|
|
24
|
-
// const direction = this.el.nativeElement?.attributes['ng-reflect--t-cdirection']?.value || 'top';
|
|
25
|
-
const direction = this._direction || 'top';
|
|
26
|
-
const el_position_x = (rect?.left) ? parseInt(rect?.left) : 0;
|
|
27
|
-
const el_position_y = (rect?.top) ? parseInt(rect?.top + scrollTop) : 0;
|
|
28
|
-
let width = 0;
|
|
29
|
-
let height = 0;
|
|
30
|
-
if (event && event.target) {
|
|
31
|
-
const _event = event.target;
|
|
32
|
-
height = _event.offsetHeight;
|
|
33
|
-
width = _event.offsetWidth;
|
|
34
|
-
}
|
|
35
|
-
const top = `${(el_position_y - ((height / 2) + 10))}px`;
|
|
36
|
-
const left = `${el_position_x + (width / 2)}px`;
|
|
37
|
-
this.renderer.setStyle(tooltip, 'top', '0px');
|
|
38
|
-
this.renderer.setStyle(tooltip, 'left', '0px');
|
|
39
|
-
this.renderer.setStyle(tooltip, 'opacity', '0');
|
|
40
|
-
this.renderer.addClass(tooltip, 'tc-directive-tooltip');
|
|
41
|
-
this.renderer.addClass(tooltip, `tc-directive-tooltip-${direction}`);
|
|
42
|
-
const id = this.generateID();
|
|
43
|
-
this.renderer.setAttribute(tooltip, 'id', id);
|
|
44
|
-
const textNode = this.info_text;
|
|
45
|
-
if (textNode !== undefined && textNode !== null && textNode !== '') {
|
|
46
|
-
tooltip.innerHTML = textNode;
|
|
47
|
-
this.renderer.appendChild(document.body, tooltip);
|
|
48
|
-
this.start_tooltip(id, height, width, el_position_x, el_position_y, direction);
|
|
49
|
-
if (tooltip) {
|
|
50
|
-
tooltip.addEventListener('mouseenter', hoverInCallback);
|
|
51
|
-
tooltip.addEventListener('mouseleave', hoverOutCallback);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
onMouseOut(event) {
|
|
57
|
-
this.remove = true;
|
|
58
|
-
const customDivAll = document.querySelectorAll('.tc-directive-tooltip');
|
|
59
|
-
if (customDivAll && customDivAll.length > 0) {
|
|
60
|
-
setTimeout(() => {
|
|
61
|
-
if (this.remove) {
|
|
62
|
-
customDivAll.forEach((_customDiv) => {
|
|
63
|
-
if (_customDiv) {
|
|
64
|
-
_customDiv.remove();
|
|
65
|
-
}
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
}, 25);
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
4
|
set TCtooltip(tooltip) {
|
|
72
5
|
if (tooltip) {
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
this.
|
|
6
|
+
this.info_text = typeof tooltip === 'object' ? '' : tooltip;
|
|
7
|
+
if (this.tooltipVisible && this.tooltipElement) {
|
|
8
|
+
// Atualiza o conteúdo do tooltip diretamente
|
|
9
|
+
this.tooltipElement.innerHTML = this.info_text;
|
|
10
|
+
// Reaplica a posição calculada anteriormente para manter a centralização
|
|
11
|
+
this.repositionTooltip();
|
|
77
12
|
}
|
|
78
13
|
}
|
|
79
14
|
}
|
|
@@ -85,12 +20,121 @@ export class TCloudUiTooltipDirective {
|
|
|
85
20
|
constructor(el, renderer) {
|
|
86
21
|
this.el = el;
|
|
87
22
|
this.renderer = renderer;
|
|
23
|
+
this.tooltipMode = 'hover';
|
|
88
24
|
this.remove = false;
|
|
89
25
|
this.info_text = '';
|
|
26
|
+
this.tooltipVisible = false;
|
|
27
|
+
this.tooltipElement = null;
|
|
90
28
|
this._direction = 'top';
|
|
91
29
|
}
|
|
30
|
+
onDocumentClick(event) {
|
|
31
|
+
if (this.tooltipMode === 'click' && this.tooltipVisible && this.info_text) {
|
|
32
|
+
const clickedInside = this.el.nativeElement.contains(event.target) || (this.tooltipElement?.contains(event.target));
|
|
33
|
+
if (!clickedInside) {
|
|
34
|
+
this.removeTooltip();
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
onMouseOver(event) {
|
|
39
|
+
if (this.tooltipMode === 'hover' && !this.tooltipVisible && this.info_text) {
|
|
40
|
+
this.createTooltip(event);
|
|
41
|
+
this.tooltipVisible = true;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
onMouseOut(event) {
|
|
45
|
+
if (this.tooltipVisible) {
|
|
46
|
+
const relatedTarget = event.relatedTarget;
|
|
47
|
+
if (!this.el.nativeElement.contains(relatedTarget) && !this.tooltipElement?.contains(relatedTarget)) {
|
|
48
|
+
this.removeTooltip();
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
onClick(event) {
|
|
53
|
+
if (this.tooltipMode === 'click') {
|
|
54
|
+
if (this.tooltipVisible) {
|
|
55
|
+
this.removeTooltip();
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
this.createTooltip(event);
|
|
59
|
+
}
|
|
60
|
+
this.tooltipVisible = !this.tooltipVisible;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
createTooltip(event) {
|
|
64
|
+
const scrollTop = window?.scrollY || window?.pageYOffset;
|
|
65
|
+
const tooltip = this.renderer.createElement('div');
|
|
66
|
+
const rect = this.el.nativeElement?.getBoundingClientRect();
|
|
67
|
+
const direction = this._direction || 'top';
|
|
68
|
+
const el_position_x = rect?.left || 0;
|
|
69
|
+
const el_position_y = rect?.top + scrollTop || 0;
|
|
70
|
+
let width = 0;
|
|
71
|
+
let height = 0;
|
|
72
|
+
if (event && event.target) {
|
|
73
|
+
const _event = event.target;
|
|
74
|
+
height = _event.offsetHeight;
|
|
75
|
+
width = _event.offsetWidth;
|
|
76
|
+
}
|
|
77
|
+
this.renderer.setStyle(tooltip, 'top', '0px');
|
|
78
|
+
this.renderer.setStyle(tooltip, 'left', '0px');
|
|
79
|
+
this.renderer.setStyle(tooltip, 'opacity', '0');
|
|
80
|
+
this.renderer.addClass(tooltip, 'tc-directive-tooltip');
|
|
81
|
+
this.renderer.addClass(tooltip, `tc-directive-tooltip-${direction}`);
|
|
82
|
+
const id = this.generateID();
|
|
83
|
+
this.renderer.setAttribute(tooltip, 'id', id);
|
|
84
|
+
tooltip.innerHTML = this.info_text;
|
|
85
|
+
this.renderer.appendChild(document.body, tooltip);
|
|
86
|
+
this.start_tooltip(id, height, width, el_position_x, el_position_y, direction);
|
|
87
|
+
this.tooltipElement = tooltip;
|
|
88
|
+
tooltip.addEventListener('mouseenter', () => this.tooltipVisible = true);
|
|
89
|
+
tooltip.addEventListener('mouseleave', () => this.removeTooltip());
|
|
90
|
+
}
|
|
91
|
+
removeTooltip() {
|
|
92
|
+
const customDivAll = document.querySelectorAll('.tc-directive-tooltip');
|
|
93
|
+
if (customDivAll && customDivAll.length > 0) {
|
|
94
|
+
setTimeout(() => {
|
|
95
|
+
customDivAll.forEach((_customDiv) => {
|
|
96
|
+
if (_customDiv) {
|
|
97
|
+
_customDiv.remove();
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
}, 25);
|
|
101
|
+
}
|
|
102
|
+
this.tooltipVisible = false;
|
|
103
|
+
this.tooltipElement = null;
|
|
104
|
+
}
|
|
105
|
+
repositionTooltip() {
|
|
106
|
+
if (!this.tooltipElement)
|
|
107
|
+
return;
|
|
108
|
+
const rect = this.el.nativeElement?.getBoundingClientRect();
|
|
109
|
+
const height = this.el.nativeElement.offsetHeight;
|
|
110
|
+
const width = this.el.nativeElement.offsetWidth;
|
|
111
|
+
const tooltipHeight = this.tooltipElement.clientHeight;
|
|
112
|
+
const tooltipWidth = this.tooltipElement.clientWidth;
|
|
113
|
+
let p_y = 0;
|
|
114
|
+
let p_x = 0;
|
|
115
|
+
const scrollTop = window?.scrollY || window?.pageYOffset;
|
|
116
|
+
const center_position = (rect.left + (width / 2)) - (tooltipWidth / 2);
|
|
117
|
+
if (this._direction === 'top') {
|
|
118
|
+
p_y = (rect.top + scrollTop - tooltipHeight) - 15;
|
|
119
|
+
p_x = center_position;
|
|
120
|
+
}
|
|
121
|
+
else if (this._direction === 'bottom') {
|
|
122
|
+
p_y = (rect.top + scrollTop + height) + 15;
|
|
123
|
+
p_x = center_position;
|
|
124
|
+
}
|
|
125
|
+
else if (this._direction === 'left') {
|
|
126
|
+
p_y = (rect.top + scrollTop - (tooltipHeight / 2) + (height / 2));
|
|
127
|
+
p_x = rect.left - tooltipWidth - 15;
|
|
128
|
+
}
|
|
129
|
+
else if (this._direction === 'right') {
|
|
130
|
+
p_y = (rect.top + scrollTop - (tooltipHeight / 2) + (height / 2));
|
|
131
|
+
p_x = rect.left + width + 15;
|
|
132
|
+
}
|
|
133
|
+
this.renderer.setStyle(this.tooltipElement, 'top', `${p_y}px`);
|
|
134
|
+
this.renderer.setStyle(this.tooltipElement, 'left', `${p_x}px`);
|
|
135
|
+
}
|
|
92
136
|
generateID(target) {
|
|
93
|
-
const ref =
|
|
137
|
+
const ref = target ? `-${target}` : '';
|
|
94
138
|
return `tc-tooltip-${Math.floor(Math.random() * Math.floor(Math.random() * Date.now()))}${ref}`;
|
|
95
139
|
}
|
|
96
140
|
start_tooltip(id, height, width, el_position_x, el_position_y, direction) {
|
|
@@ -98,13 +142,6 @@ export class TCloudUiTooltipDirective {
|
|
|
98
142
|
const tooltip = document.getElementById(id);
|
|
99
143
|
const tooltip_height = tooltip.clientHeight;
|
|
100
144
|
const tooltip_width = tooltip.clientWidth;
|
|
101
|
-
/*
|
|
102
|
-
console.log('altura do target: ', height);
|
|
103
|
-
console.log('largura do target: ', width);
|
|
104
|
-
console.log('el_position_x do target: ', el_position_x);
|
|
105
|
-
console.log('el_position_y do target: ', el_position_y);
|
|
106
|
-
console.log('direction do tooltip: ', direction);
|
|
107
|
-
*/
|
|
108
145
|
let p_y = 0;
|
|
109
146
|
let p_x = 0;
|
|
110
147
|
const center_position = (el_position_x + (width / 2)) - (tooltip_width / 2);
|
|
@@ -130,22 +167,30 @@ export class TCloudUiTooltipDirective {
|
|
|
130
167
|
});
|
|
131
168
|
}
|
|
132
169
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: TCloudUiTooltipDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
133
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.6", type: TCloudUiTooltipDirective, selector: "[TCtooltip]", inputs: { TCtooltip: "TCtooltip", TCdirection: "TCdirection" }, host: { listeners: { "mouseover": "onMouseOver($event)", "mouseout": "onMouseOut($event)" } }, ngImport: i0 }); }
|
|
170
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.6", type: TCloudUiTooltipDirective, selector: "[TCtooltip]", inputs: { tooltipMode: "tooltipMode", TCtooltip: "TCtooltip", TCdirection: "TCdirection" }, host: { listeners: { "document:click": "onDocumentClick($event)", "mouseover": "onMouseOver($event)", "mouseout": "onMouseOut($event)", "click": "onClick($event)" } }, ngImport: i0 }); }
|
|
134
171
|
}
|
|
135
172
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: TCloudUiTooltipDirective, decorators: [{
|
|
136
173
|
type: Directive,
|
|
137
174
|
args: [{
|
|
138
175
|
selector: '[TCtooltip]'
|
|
139
176
|
}]
|
|
140
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: {
|
|
177
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { tooltipMode: [{
|
|
178
|
+
type: Input
|
|
179
|
+
}], TCtooltip: [{
|
|
180
|
+
type: Input
|
|
181
|
+
}], TCdirection: [{
|
|
182
|
+
type: Input
|
|
183
|
+
}], onDocumentClick: [{
|
|
184
|
+
type: HostListener,
|
|
185
|
+
args: ['document:click', ['$event']]
|
|
186
|
+
}], onMouseOver: [{
|
|
141
187
|
type: HostListener,
|
|
142
188
|
args: ['mouseover', ['$event']]
|
|
143
189
|
}], onMouseOut: [{
|
|
144
190
|
type: HostListener,
|
|
145
191
|
args: ['mouseout', ['$event']]
|
|
146
|
-
}],
|
|
147
|
-
type:
|
|
148
|
-
|
|
149
|
-
type: Input
|
|
192
|
+
}], onClick: [{
|
|
193
|
+
type: HostListener,
|
|
194
|
+
args: ['click', ['$event']]
|
|
150
195
|
}] } });
|
|
151
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90Y2xvdWQtdWkvc3JjL2xpYi9fZGlyZWN0aXZlcy90b29sdGlwL3Rvb2x0aXAuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXlCLEtBQUssRUFBRSxZQUFZLEVBQUMsTUFBTSxlQUFlLENBQUM7O0FBTXJGLE1BQU0sT0FBTyx3QkFBd0I7SUFNSSxXQUFXLENBQUMsS0FBaUI7UUFFbEUsSUFBSSxlQUFlLEdBQUcsR0FBRyxFQUFFO1lBQ3pCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLENBQUMsQ0FBQTtRQUVELElBQUksZ0JBQWdCLEdBQUcsR0FBRyxFQUFFO1lBQzFCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQ25CLE1BQU0sWUFBWSxHQUFTLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1lBQzlFLElBQUcsWUFBWSxJQUFJLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFDLENBQUM7Z0JBQzFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBRSxVQUFlLEVBQUUsRUFBRTtvQkFDeEMsSUFBSSxVQUFVLEVBQUUsQ0FBQzt3QkFBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQUMsQ0FBQztnQkFDMUMsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDO1FBQ0gsQ0FBQyxDQUFBO1FBRUQsZ0JBQWdCLENBQUM7UUFFakIsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLE1BQU0sU0FBUyxHQUFHLE1BQU0sRUFBRSxPQUFPLElBQUksTUFBTSxFQUFFLFdBQVcsQ0FBQztZQUN6RCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNuRCxNQUFNLElB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InNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgUmVuZGVyZXIyLCBJbnB1dCwgSG9zdExpc3RlbmVyfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tUQ3Rvb2x0aXBdJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVENsb3VkVWlUb29sdGlwRGlyZWN0aXZlIHtcclxuXHJcbiAgcmVtb3ZlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGluZm9fdGV4dDogc3RyaW5nID0gJyc7XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlb3ZlcicsIFsnJGV2ZW50J10pIG9uTW91c2VPdmVyKGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcblxyXG4gICAgbGV0IGhvdmVySW5DYWxsYmFjayA9ICgpID0+IHtcclxuICAgICAgdGhpcy5yZW1vdmUgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgaG92ZXJPdXRDYWxsYmFjayA9ICgpID0+IHtcclxuICAgICAgdGhpcy5yZW1vdmUgPSB0cnVlOyBcclxuICAgICAgY29uc3QgY3VzdG9tRGl2QWxsID0gPGFueT4gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLnRjLWRpcmVjdGl2ZS10b29sdGlwJyk7XHJcbiAgICAgIGlmKGN1c3RvbURpdkFsbCAmJiBjdXN0b21EaXZBbGwubGVuZ3RoID4gMCl7XHJcbiAgICAgICAgY3VzdG9tRGl2QWxsLmZvckVhY2goKCBfY3VzdG9tRGl2OiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmKCBfY3VzdG9tRGl2ICl7IF9jdXN0b21EaXYucmVtb3ZlKCk7IH1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGhvdmVyT3V0Q2FsbGJhY2s7XHJcblxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGNvbnN0IHNjcm9sbFRvcCA9IHdpbmRvdz8uc2Nyb2xsWSB8fCB3aW5kb3c/LnBhZ2VZT2Zmc2V0O1xyXG4gICAgICBjb25zdCB0b29sdGlwID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuICAgICAgY29uc3QgcmVjdCAgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQ/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgICAvLyBjb25zdCBkaXJlY3Rpb24gPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQ/LmF0dHJpYnV0ZXNbJ25nLXJlZmxlY3QtLXQtY2RpcmVjdGlvbiddPy52YWx1ZSB8fCAndG9wJztcclxuICAgICAgY29uc3QgZGlyZWN0aW9uID0gdGhpcy5fZGlyZWN0aW9uIHx8ICd0b3AnO1xyXG4gICAgICBjb25zdCBlbF9wb3NpdGlvbl94ID0gKHJlY3Q/LmxlZnQpID8gcGFyc2VJbnQocmVjdD8ubGVmdCkgOiAwO1xyXG4gICAgICBjb25zdCBlbF9wb3NpdGlvbl95ID0gKHJlY3Q/LnRvcCApID8gcGFyc2VJbnQocmVjdD8udG9wICArIHNjcm9sbFRvcCkgOiAwO1xyXG5cclxuICAgICAgbGV0IHdpZHRoID0gMDtcclxuICAgICAgbGV0IGhlaWdodCA9IDA7XHJcbiAgICAgIGlmKCBldmVudCAmJiBldmVudC50YXJnZXQgKXtcclxuICAgICAgICBjb25zdCBfZXZlbnQgPSBldmVudC50YXJnZXQgYXMgYW55O1xyXG4gICAgICAgIGhlaWdodCAgPSBfZXZlbnQub2Zmc2V0SGVpZ2h0O1xyXG4gICAgICAgIHdpZHRoICAgPSBfZXZlbnQub2Zmc2V0V2lkdGg7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IHRvcCA9IGAkeyhlbF9wb3NpdGlvbl95IC0gKChoZWlnaHQvMikgKyAxMCkgKX1weGA7XHJcbiAgICAgIGNvbnN0IGxlZnQgPSBgJHtlbF9wb3NpdGlvbl94ICsgKHdpZHRoLzIpIH1weGA7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodG9vbHRpcCwgJ3RvcCcsICcwcHgnKTtcclxuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0b29sdGlwLCAnbGVmdCcsICcwcHgnKTtcclxuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0b29sdGlwLCAnb3BhY2l0eScsICcwJyk7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModG9vbHRpcCwgJ3RjLWRpcmVjdGl2ZS10b29sdGlwJyk7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModG9vbHRpcCwgYHRjLWRpcmVjdGl2ZS10b29sdGlwLSR7ZGlyZWN0aW9ufWApO1xyXG4gICAgICBjb25zdCBpZCA9IHRoaXMuZ2VuZXJhdGVJRCgpO1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0b29sdGlwLCAnaWQnLCBpZCk7XHJcbiAgICAgIGNvbnN0IHRleHROb2RlID0gdGhpcy5pbmZvX3RleHQ7XHJcblxyXG4gICAgICBpZiggdGV4dE5vZGUgIT09IHVuZGVmaW5lZCAmJiB0ZXh0Tm9kZSAhPT0gbnVsbCAmJiB0ZXh0Tm9kZSAhPT0gJycgKXtcclxuXHJcbiAgICAgICAgdG9vbHRpcC5pbm5lckhUTUwgPSB0ZXh0Tm9kZTtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKGRvY3VtZW50LmJvZHksIHRvb2x0aXApOyAgICBcclxuICAgICAgICB0aGlzLnN0YXJ0X3Rvb2x0aXAoaWQsIGhlaWdodCwgd2lkdGgsIGVsX3Bvc2l0aW9uX3gsIGVsX3Bvc2l0aW9uX3ksIGRpcmVjdGlvbik7XHJcblxyXG4gICAgICAgIGlmICh0b29sdGlwKSB7XHJcbiAgICAgICAgICB0b29sdGlwLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCBob3ZlckluQ2FsbGJhY2spO1xyXG4gICAgICAgICAgdG9vbHRpcC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgaG92ZXJPdXRDYWxsYmFjayk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgfSk7XHJcblxyXG4gIH0gIFxyXG5cclxuICBASG9zdExpc3RlbmVyKCdtb3VzZW91dCcsIFsnJGV2ZW50J10pIG9uTW91c2VPdXQoZXZlbnQ6IE1vdXNlRXZlbnQpIHsgICBcclxuICAgIHRoaXMucmVtb3ZlID0gdHJ1ZTtcclxuICAgIGNvbnN0IGN1c3RvbURpdkFsbCA9IDxhbnk+IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy50Yy1kaXJlY3RpdmUtdG9vbHRpcCcpO1xyXG4gICAgaWYoY3VzdG9tRGl2QWxsICYmIGN1c3RvbURpdkFsbC5sZW5ndGggPiAwKXtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgaWYoIHRoaXMucmVtb3ZlICl7XHJcbiAgICAgICAgICBjdXN0b21EaXZBbGwuZm9yRWFjaCgoIF9jdXN0b21EaXY6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBpZiggX2N1c3RvbURpdiApeyBfY3VzdG9tRGl2LnJlbW92ZSgpOyB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sIDI1KTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICBASW5wdXQoKSBzZXQgVEN0b29sdGlwICh0b29sdGlwOiBhbnkpe1xyXG4gICAgaWYgKHRvb2x0aXApe1xyXG4gICAgICBpZiggdHlwZW9mIHRvb2x0aXAgPT09ICdvYmplY3QnICl7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIHRoaXMuaW5mb190ZXh0ID0gdG9vbHRpcDtcclxuICAgICAgfSAgICAgIFxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfZGlyZWN0aW9uOiAndG9wJyB8ICdib3R0b20nIHwgJ2xlZnQnIHwgJ3JpZ2h0JyA9ICd0b3AnO1xyXG4gIEBJbnB1dCgpIHNldCBUQ2RpcmVjdGlvbiAoZGlyZWN0aW9uOiBhbnkpe1xyXG4gICAgaWYgKGRpcmVjdGlvbil7XHJcbiAgICAgIHRoaXMuX2RpcmVjdGlvbiA9IGRpcmVjdGlvbjtcclxuICAgIH1cclxuICB9XHJcbiAgXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGVsOiBFbGVtZW50UmVmLFxyXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyXHJcbiAgKSB7fVxyXG5cclxuXHJcbiAgZ2VuZXJhdGVJRCh0YXJnZXQ/OiBzdHJpbmcpOiBzdHJpbmd7XHJcbiAgICBjb25zdCByZWYgPSAodGFyZ2V0KSA/IGAtJHt0YXJnZXR9YCA6ICcnO1xyXG4gICAgcmV0dXJuIGB0Yy10b29sdGlwLSR7TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogRGF0ZS5ub3coKSkpfSR7cmVmfWA7XHJcbiAgfVxyXG5cclxuICBzdGFydF90b29sdGlwKGlkOiBzdHJpbmcsIGhlaWdodDogbnVtYmVyLCB3aWR0aDogbnVtYmVyLCBlbF9wb3NpdGlvbl94OiBudW1iZXIsIGVsX3Bvc2l0aW9uX3k6IG51bWJlciwgZGlyZWN0aW9uOiBzdHJpbmcpe1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7ICAgICAgXHJcbiAgICAgIGNvbnN0IHRvb2x0aXA6IGFueSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTtcclxuICAgICAgY29uc3QgdG9vbHRpcF9oZWlnaHQgPSB0b29sdGlwLmNsaWVudEhlaWdodDtcclxuICAgICAgY29uc3QgdG9vbHRpcF93aWR0aCA9IHRvb2x0aXAuY2xpZW50V2lkdGg7XHJcblxyXG4gICAgICAvKlxyXG4gICAgICBjb25zb2xlLmxvZygnYWx0dXJhIGRvIHRhcmdldDogJywgaGVpZ2h0KTtcclxuICAgICAgY29uc29sZS5sb2coJ2xhcmd1cmEgZG8gdGFyZ2V0OiAnLCB3aWR0aCk7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdlbF9wb3NpdGlvbl94IGRvIHRhcmdldDogJywgZWxfcG9zaXRpb25feCk7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdlbF9wb3NpdGlvbl95IGRvIHRhcmdldDogJywgZWxfcG9zaXRpb25feSk7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdkaXJlY3Rpb24gZG8gdG9vbHRpcDogJywgZGlyZWN0aW9uKTtcclxuICAgICAgKi9cclxuXHJcbiAgICAgIGxldCBwX3kgPSAwO1xyXG4gICAgICBsZXQgcF94ID0gMDtcclxuICAgICAgY29uc3QgY2VudGVyX3Bvc2l0aW9uID0gKGVsX3Bvc2l0aW9uX3ggKyAod2lkdGgvMikpIC0gKHRvb2x0aXBfd2lkdGgvMik7XHJcblxyXG4gICAgICBpZiggZGlyZWN0aW9uID09PSAndG9wJyApe1xyXG4gICAgICAgIHBfeSA9IChlbF9wb3NpdGlvbl95IC0gdG9vbHRpcF9oZWlnaHQpIC0gMTU7XHJcbiAgICAgICAgcF94ID0gY2VudGVyX3Bvc2l0aW9uO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiggZGlyZWN0aW9uID09PSAnYm90dG9tJyApe1xyXG4gICAgICAgIHBfeSA9IChlbF9wb3NpdGlvbl95ICsgaGVpZ2h0KSArIDE1O1xyXG4gICAgICAgIHBfeCA9IGNlbnRlcl9wb3NpdGlvbjtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYoIGRpcmVjdGlvbiA9PT0gJ2xlZnQnICl7XHJcbiAgICAgICAgcF95ID0gZWxfcG9zaXRpb25feSAtICh0b29sdGlwX2hlaWdodC8yKSArIChoZWlnaHQvMik7XHJcbiAgICAgICAgcF94ID0gY2VudGVyX3Bvc2l0aW9uIC0gdG9vbHRpcF93aWR0aC8yIC0gd2lkdGgvMiAtIDE1O1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiggZGlyZWN0aW9uID09PSAncmlnaHQnICl7XHJcbiAgICAgICAgcF95ID0gZWxfcG9zaXRpb25feSAtICh0b29sdGlwX2hlaWdodC8yKSArIChoZWlnaHQvMik7XHJcbiAgICAgICAgcF94ID0gY2VudGVyX3Bvc2l0aW9uICsgdG9vbHRpcF93aWR0aC8yICsgd2lkdGgvMiArIDE1O1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRvb2x0aXAsICd0b3AnLCBgJHtwX3l9cHhgKTtcclxuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0b29sdGlwLCAnbGVmdCcsIGAke3BfeH1weGApO1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRvb2x0aXAsICd0Yy10b29sdGlwLWZhZGUtaW4nKTtcclxuXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG59Il19
|
|
196
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90Y2xvdWQtdWkvc3JjL2xpYi9fZGlyZWN0aXZlcy90b29sdGlwL3Rvb2x0aXAuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXlCLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBS3RGLE1BQU0sT0FBTyx3QkFBd0I7SUFVbkMsSUFBYSxTQUFTLENBQUMsT0FBWTtRQUVqQyxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1osSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLE9BQU8sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO1lBQzVELElBQUksSUFBSSxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQy9DLDZDQUE2QztnQkFDN0MsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztnQkFFL0MseUVBQXlFO2dCQUN6RSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUMzQixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFhLFdBQVcsQ0FBQyxTQUFjO1FBQ3JDLElBQUksU0FBUyxFQUFFLENBQUM7WUFDZCxJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQztRQUM5QixDQUFDO0lBQ0gsQ0FBQztJQUVELFlBQ1UsRUFBYyxFQUNkLFFBQW1CO1FBRG5CLE9BQUUsR0FBRixFQUFFLENBQVk7UUFDZCxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBOUJwQixnQkFBVyxHQUFzQixPQUFPLENBQUM7UUFDbEQsV0FBTSxHQUFZLEtBQUssQ0FBQztRQUN4QixjQUFTLEdBQVcsRUFBRSxDQUFDO1FBQ3ZCLG1CQUFjLEdBQVksS0FB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LEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFdkUsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQzlCLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsU0FBUyxHQUFHLGFBQWEsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNsRCxHQUFHLEdBQUcsZUFBZSxDQUFDO1FBQ3hCLENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDeEMsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxTQUFTLEdBQUcsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQzNDLEdBQUcsR0FBRyxlQUFlLENBQUM7UUFDeEIsQ0FBQzthQUFNLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxNQUFNLEVBQUUsQ0FBQztZQUN0QyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLFNBQVMsR0FBRyxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2xFLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxHQUFHLFlBQVksR0FBRyxFQUFFLENBQUM7UUFDdEMsQ0FBQzthQUFNLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxPQUFPLEVBQUUsQ0FBQztZQUN2QyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLFNBQVMsR0FBRyxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2xFLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDL0IsQ0FBQztRQUVELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxD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QUF3QjtrQkFIcEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsYUFBYTtpQkFDeEI7dUdBR1UsV0FBVztzQkFBbkIsS0FBSztnQkFRTyxTQUFTO3NCQUFyQixLQUFLO2dCQWNPLFdBQVc7c0JBQXZCLEtBQUs7Z0JBV3NDLGVBQWU7c0JBQTFELFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBU0gsV0FBVztzQkFBakQsWUFBWTt1QkFBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBT0MsVUFBVTtzQkFBL0MsWUFBWTt1QkFBQyxVQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBU0QsT0FBTztzQkFBekMsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIFJlbmRlcmVyMiwgSW5wdXQsIEhvc3RMaXN0ZW5lciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbVEN0b29sdGlwXSdcclxufSlcclxuZXhwb3J0IGNsYXNzIFRDbG91ZFVpVG9vbHRpcERpcmVjdGl2ZSB7XHJcblxyXG4gIEBJbnB1dCgpIHRvb2x0aXBNb2RlOiAnY2xpY2snIHwgJ2hvdmVyJyA9ICdob3Zlcic7XHJcbiAgcmVtb3ZlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgaW5mb190ZXh0OiBzdHJpbmcgPSAnJztcclxuICB0b29sdGlwVmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHByaXZhdGUgdG9vbHRpcEVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIHByaXZhdGUgX2RpcmVjdGlvbjogJ3RvcCcgfCAnYm90dG9tJyB8ICdsZWZ0JyB8ICdyaWdodCcgPSAndG9wJztcclxuXHJcbiAgQElucHV0KCkgc2V0IFRDdG9vbHRpcCh0b29sdGlwOiBhbnkpIHtcclxuXHJcbiAgICBpZiAodG9vbHRpcCkge1xyXG4gICAgICB0aGlzLmluZm9fdGV4dCA9IHR5cGVvZiB0b29sdGlwID09PSAnb2JqZWN0JyA/ICcnIDogdG9vbHRpcDtcclxuICAgICAgaWYgKHRoaXMudG9vbHRpcFZpc2libGUgJiYgdGhpcy50b29sdGlwRWxlbWVudCkge1xyXG4gICAgICAgIC8vIEF0dWFsaXphIG8gY29udGXDumRvIGRvIHRvb2x0aXAgZGlyZXRhbWVudGVcclxuICAgICAgICB0aGlzLnRvb2x0aXBFbGVtZW50LmlubmVySFRNTCA9IHRoaXMuaW5mb190ZXh0O1xyXG5cclxuICAgICAgICAvLyBSZWFwbGljYSBhIHBvc2nDp8OjbyBjYWxjdWxhZGEgYW50ZXJpb3JtZW50ZSBwYXJhIG1hbnRlciBhIGNlbnRyYWxpemHDp8Ojb1xyXG4gICAgICAgIHRoaXMucmVwb3NpdGlvblRvb2x0aXAoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgc2V0IFRDZGlyZWN0aW9uKGRpcmVjdGlvbjogYW55KSB7XHJcbiAgICBpZiAoZGlyZWN0aW9uKSB7XHJcbiAgICAgIHRoaXMuX2RpcmVjdGlvbiA9IGRpcmVjdGlvbjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBlbDogRWxlbWVudFJlZixcclxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMlxyXG4gICkge31cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snLCBbJyRldmVudCddKSBvbkRvY3VtZW50Q2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIGlmICh0aGlzLnRvb2x0aXBNb2RlID09PSAnY2xpY2snICYmIHRoaXMudG9vbHRpcFZpc2libGUgJiYgdGhpcy5pbmZvX3RleHQpIHtcclxuICAgICAgY29uc3QgY2xpY2tlZEluc2lkZSA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpIHx8ICh0aGlzLnRvb2x0aXBFbGVtZW50Py5jb250YWlucyhldmVudC50YXJnZXQgYXMgTm9kZSkpO1xyXG4gICAgICBpZiAoIWNsaWNrZWRJbnNpZGUpIHtcclxuICAgICAgICB0aGlzLnJlbW92ZVRvb2x0aXAoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignbW91c2VvdmVyJywgWyckZXZlbnQnXSkgb25Nb3VzZU92ZXIoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIGlmICh0aGlzLnRvb2x0aXBNb2RlID09PSAnaG92ZXInICYmICF0aGlzLnRvb2x0aXBWaXNpYmxlICYmIHRoaXMuaW5mb190ZXh0KSB7XHJcbiAgICAgIHRoaXMuY3JlYXRlVG9vbHRpcChldmVudCk7XHJcbiAgICAgIHRoaXMudG9vbHRpcFZpc2libGUgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignbW91c2VvdXQnLCBbJyRldmVudCddKSBvbk1vdXNlT3V0KGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICBpZiAodGhpcy50b29sdGlwVmlzaWJsZSkge1xyXG4gICAgICBjb25zdCByZWxhdGVkVGFyZ2V0ID0gZXZlbnQucmVsYXRlZFRhcmdldCBhcyBOb2RlO1xyXG4gICAgICBpZiAoIXRoaXMuZWwubmF0aXZlRWxlbWVudC5jb250YWlucyhyZWxhdGVkVGFyZ2V0KSAmJiAhdGhpcy50b29sdGlwRWxlbWVudD8uY29udGFpbnMocmVsYXRlZFRhcmdldCkpIHtcclxuICAgICAgICB0aGlzLnJlbW92ZVRvb2x0aXAoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKSBvbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICBpZiAodGhpcy50b29sdGlwTW9kZSA9PT0gJ2NsaWNrJykge1xyXG4gICAgICBpZiAodGhpcy50b29sdGlwVmlzaWJsZSkge1xyXG4gICAgICAgIHRoaXMucmVtb3ZlVG9vbHRpcCgpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuY3JlYXRlVG9vbHRpcChldmVudCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy50b29sdGlwVmlzaWJsZSA9ICF0aGlzLnRvb2x0aXBWaXNpYmxlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVUb29sdGlwKGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICBjb25zdCBzY3JvbGxUb3AgPSB3aW5kb3c/LnNjcm9sbFkgfHwgd2luZG93Py5wYWdlWU9mZnNldDtcclxuICAgIGNvbnN0IHRvb2x0aXAgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgY29uc3QgcmVjdCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudD8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICBjb25zdCBkaXJlY3Rpb24gPSB0aGlzLl9kaXJlY3Rpb24gfHwgJ3RvcCc7XHJcbiAgICBjb25zdCBlbF9wb3NpdGlvbl94ID0gcmVjdD8ubGVmdCB8fCAwO1xyXG4gICAgY29uc3QgZWxfcG9zaXRpb25feSA9IHJlY3Q/LnRvcCArIHNjcm9sbFRvcCB8fCAwO1xyXG5cclxuICAgIGxldCB3aWR0aCA9IDA7XHJcbiAgICBsZXQgaGVpZ2h0ID0gMDtcclxuICAgIGlmIChldmVudCAmJiBldmVudC50YXJnZXQpIHtcclxuICAgICAgY29uc3QgX2V2ZW50ID0gZXZlbnQudGFyZ2V0IGFzIGFueTtcclxuICAgICAgaGVpZ2h0ID0gX2V2ZW50Lm9mZnNldEhlaWdodDtcclxuICAgICAgd2lkdGggPSBfZXZlbnQub2Zmc2V0V2lkdGg7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0b29sdGlwLCAndG9wJywgJzBweCcpO1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0b29sdGlwLCAnbGVmdCcsICcwcHgnKTtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodG9vbHRpcCwgJ29wYWNpdHknLCAnMCcpO1xyXG4gICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0b29sdGlwLCAndGMtZGlyZWN0aXZlLXRvb2x0aXAnKTtcclxuICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModG9vbHRpcCwgYHRjLWRpcmVjdGl2ZS10b29sdGlwLSR7ZGlyZWN0aW9ufWApO1xyXG4gICAgY29uc3QgaWQgPSB0aGlzLmdlbmVyYXRlSUQoKTtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRvb2x0aXAsICdpZCcsIGlkKTtcclxuICAgIHRvb2x0aXAuaW5uZXJIVE1MID0gdGhpcy5pbmZvX3RleHQ7XHJcbiAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKGRvY3VtZW50LmJvZHksIHRvb2x0aXApO1xyXG4gICAgdGhpcy5zdGFydF90b29sdGlwKGlkLCBoZWlnaHQsIHdpZHRoLCBlbF9wb3NpdGlvbl94LCBlbF9wb3NpdGlvbl95LCBkaXJlY3Rpb24pO1xyXG4gICAgdGhpcy50b29sdGlwRWxlbWVudCA9IHRvb2x0aXA7XHJcblxyXG4gICAgdG9vbHRpcC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWVudGVyJywgKCkgPT4gdGhpcy50b29sdGlwVmlzaWJsZSA9IHRydWUpO1xyXG4gICAgdG9vbHRpcC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgKCkgPT4gdGhpcy5yZW1vdmVUb29sdGlwKCkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZW1vdmVUb29sdGlwKCkge1xyXG4gICAgY29uc3QgY3VzdG9tRGl2QWxsID0gPGFueT5kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcudGMtZGlyZWN0aXZlLXRvb2x0aXAnKTtcclxuICAgIGlmIChjdXN0b21EaXZBbGwgJiYgY3VzdG9tRGl2QWxsLmxlbmd0aCA+IDApIHtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgY3VzdG9tRGl2QWxsLmZvckVhY2goKF9jdXN0b21EaXY6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKF9jdXN0b21EaXYpIHsgX2N1c3RvbURpdi5yZW1vdmUoKTsgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9LCAyNSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnRvb2x0aXBWaXNpYmxlID0gZmFsc2U7XHJcbiAgICB0aGlzLnRvb2x0aXBFbGVtZW50ID0gbnVsbDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVwb3NpdGlvblRvb2x0aXAoKSB7XHJcbiAgICBpZiAoIXRoaXMudG9vbHRpcEVsZW1lbnQpIHJldHVybjtcclxuXHJcbiAgICBjb25zdCByZWN0ID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50Py5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgIGNvbnN0IGhlaWdodCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQ7XHJcbiAgICBjb25zdCB3aWR0aCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aDtcclxuICAgIGNvbnN0IHRvb2x0aXBIZWlnaHQgPSB0aGlzLnRvb2x0aXBFbGVtZW50LmNsaWVudEhlaWdodDtcclxuICAgIGNvbnN0IHRvb2x0aXBXaWR0aCA9IHRoaXMudG9vbHRpcEVsZW1lbnQuY2xpZW50V2lkdGg7XHJcblxyXG4gICAgbGV0IHBfeSA9IDA7XHJcbiAgICBsZXQgcF94ID0gMDtcclxuICAgIGNvbnN0IHNjcm9sbFRvcCA9IHdpbmRvdz8uc2Nyb2xsWSB8fCB3aW5kb3c/LnBhZ2VZT2Zmc2V0O1xyXG4gICAgY29uc3QgY2VudGVyX3Bvc2l0aW9uID0gKHJlY3QubGVmdCArICh3aWR0aCAvIDIpKSAtICh0b29sdGlwV2lkdGggLyAyKTtcclxuXHJcbiAgICBpZiAodGhpcy5fZGlyZWN0aW9uID09PSAndG9wJykge1xyXG4gICAgICBwX3kgPSAocmVjdC50b3AgKyBzY3JvbGxUb3AgLSB0b29sdGlwSGVpZ2h0KSAtIDE1O1xyXG4gICAgICBwX3ggPSBjZW50ZXJfcG9zaXRpb247XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuX2RpcmVjdGlvbiA9PT0gJ2JvdHRvbScpIHtcclxuICAgICAgcF95ID0gKHJlY3QudG9wICsgc2Nyb2xsVG9wICsgaGVpZ2h0KSArIDE1O1xyXG4gICAgICBwX3ggPSBjZW50ZXJfcG9zaXRpb247XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuX2RpcmVjdGlvbiA9PT0gJ2xlZnQnKSB7XHJcbiAgICAgIHBfeSA9IChyZWN0LnRvcCArIHNjcm9sbFRvcCAtICh0b29sdGlwSGVpZ2h0IC8gMikgKyAoaGVpZ2h0IC8gMikpO1xyXG4gICAgICBwX3ggPSByZWN0LmxlZnQgLSB0b29sdGlwV2lkdGggLSAxNTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5fZGlyZWN0aW9uID09PSAncmlnaHQnKSB7XHJcbiAgICAgIHBfeSA9IChyZWN0LnRvcCArIHNjcm9sbFRvcCAtICh0b29sdGlwSGVpZ2h0IC8gMikgKyAoaGVpZ2h0IC8gMikpO1xyXG4gICAgICBwX3ggPSByZWN0LmxlZnQgKyB3aWR0aCArIDE1O1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy50b29sdGlwRWxlbWVudCwgJ3RvcCcsIGAke3BfeX1weGApO1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnRvb2x0aXBFbGVtZW50LCAnbGVmdCcsIGAke3BfeH1weGApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZW5lcmF0ZUlEKHRhcmdldD86IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBjb25zdCByZWYgPSB0YXJnZXQgPyBgLSR7dGFyZ2V0fWAgOiAnJztcclxuICAgIHJldHVybiBgdGMtdG9vbHRpcC0ke01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIERhdGUubm93KCkpKX0ke3JlZn1gO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzdGFydF90b29sdGlwKGlkOiBzdHJpbmcsIGhlaWdodDogbnVtYmVyLCB3aWR0aDogbnVtYmVyLCBlbF9wb3NpdGlvbl94OiBudW1iZXIsIGVsX3Bvc2l0aW9uX3k6IG51bWJlciwgZGlyZWN0aW9uOiBzdHJpbmcpIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBjb25zdCB0b29sdGlwOiBhbnkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7XHJcbiAgICAgIGNvbnN0IHRvb2x0aXBfaGVpZ2h0ID0gdG9vbHRpcC5jbGllbnRIZWlnaHQ7XHJcbiAgICAgIGNvbnN0IHRvb2x0aXBfd2lkdGggPSB0b29sdGlwLmNsaWVudFdpZHRoO1xyXG5cclxuICAgICAgbGV0IHBfeSA9IDA7XHJcbiAgICAgIGxldCBwX3ggPSAwO1xyXG4gICAgICBjb25zdCBjZW50ZXJfcG9zaXRpb24gPSAoZWxfcG9zaXRpb25feCArICh3aWR0aCAvIDIpKSAtICh0b29sdGlwX3dpZHRoIC8gMik7XHJcblxyXG4gICAgICBpZiAoZGlyZWN0aW9uID09PSAndG9wJykge1xyXG4gICAgICAgIHBfeSA9IChlbF9wb3NpdGlvbl95IC0gdG9vbHRpcF9oZWlnaHQpIC0gMTU7XHJcbiAgICAgICAgcF94ID0gY2VudGVyX3Bvc2l0aW9uO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoZGlyZWN0aW9uID09PSAnYm90dG9tJykge1xyXG4gICAgICAgIHBfeSA9IChlbF9wb3NpdGlvbl95ICsgaGVpZ2h0KSArIDE1O1xyXG4gICAgICAgIHBfeCA9IGNlbnRlcl9wb3NpdGlvbjtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGRpcmVjdGlvbiA9PT0gJ2xlZnQnKSB7XHJcbiAgICAgICAgcF95ID0gZWxfcG9zaXRpb25feSAtICh0b29sdGlwX2hlaWdodCAvIDIpICsgKGhlaWdodCAvIDIpO1xyXG4gICAgICAgIHBfeCA9IGNlbnRlcl9wb3NpdGlvbiAtIHRvb2x0aXBfd2lkdGggLyAyIC0gd2lkdGggLyAyIC0gMTU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChkaXJlY3Rpb24gPT09ICdyaWdodCcpIHtcclxuICAgICAgICBwX3kgPSBlbF9wb3NpdGlvbl95IC0gKHRvb2x0aXBfaGVpZ2h0IC8gMikgKyAoaGVpZ2h0IC8gMik7XHJcbiAgICAgICAgcF94ID0gY2VudGVyX3Bvc2l0aW9uICsgdG9vbHRpcF93aWR0aCAvIDIgKyB3aWR0aCAvIDIgKyAxNTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0b29sdGlwLCAndG9wJywgYCR7cF95fXB4YCk7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodG9vbHRpcCwgJ2xlZnQnLCBgJHtwX3h9cHhgKTtcclxuICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0b29sdGlwLCAndGMtdG9vbHRpcC1mYWRlLWluJyk7XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -4688,79 +4688,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImpor
|
|
|
4688
4688
|
}] } });
|
|
4689
4689
|
|
|
4690
4690
|
class TCloudUiTooltipDirective {
|
|
4691
|
-
onMouseOver(event) {
|
|
4692
|
-
let hoverInCallback = () => {
|
|
4693
|
-
this.remove = false;
|
|
4694
|
-
};
|
|
4695
|
-
let hoverOutCallback = () => {
|
|
4696
|
-
this.remove = true;
|
|
4697
|
-
const customDivAll = document.querySelectorAll('.tc-directive-tooltip');
|
|
4698
|
-
if (customDivAll && customDivAll.length > 0) {
|
|
4699
|
-
customDivAll.forEach((_customDiv) => {
|
|
4700
|
-
if (_customDiv) {
|
|
4701
|
-
_customDiv.remove();
|
|
4702
|
-
}
|
|
4703
|
-
});
|
|
4704
|
-
}
|
|
4705
|
-
};
|
|
4706
|
-
hoverOutCallback;
|
|
4707
|
-
setTimeout(() => {
|
|
4708
|
-
const scrollTop = window?.scrollY || window?.pageYOffset;
|
|
4709
|
-
const tooltip = this.renderer.createElement('div');
|
|
4710
|
-
const rect = this.el.nativeElement?.getBoundingClientRect();
|
|
4711
|
-
// const direction = this.el.nativeElement?.attributes['ng-reflect--t-cdirection']?.value || 'top';
|
|
4712
|
-
const direction = this._direction || 'top';
|
|
4713
|
-
const el_position_x = (rect?.left) ? parseInt(rect?.left) : 0;
|
|
4714
|
-
const el_position_y = (rect?.top) ? parseInt(rect?.top + scrollTop) : 0;
|
|
4715
|
-
let width = 0;
|
|
4716
|
-
let height = 0;
|
|
4717
|
-
if (event && event.target) {
|
|
4718
|
-
const _event = event.target;
|
|
4719
|
-
height = _event.offsetHeight;
|
|
4720
|
-
width = _event.offsetWidth;
|
|
4721
|
-
}
|
|
4722
|
-
const top = `${(el_position_y - ((height / 2) + 10))}px`;
|
|
4723
|
-
const left = `${el_position_x + (width / 2)}px`;
|
|
4724
|
-
this.renderer.setStyle(tooltip, 'top', '0px');
|
|
4725
|
-
this.renderer.setStyle(tooltip, 'left', '0px');
|
|
4726
|
-
this.renderer.setStyle(tooltip, 'opacity', '0');
|
|
4727
|
-
this.renderer.addClass(tooltip, 'tc-directive-tooltip');
|
|
4728
|
-
this.renderer.addClass(tooltip, `tc-directive-tooltip-${direction}`);
|
|
4729
|
-
const id = this.generateID();
|
|
4730
|
-
this.renderer.setAttribute(tooltip, 'id', id);
|
|
4731
|
-
const textNode = this.info_text;
|
|
4732
|
-
if (textNode !== undefined && textNode !== null && textNode !== '') {
|
|
4733
|
-
tooltip.innerHTML = textNode;
|
|
4734
|
-
this.renderer.appendChild(document.body, tooltip);
|
|
4735
|
-
this.start_tooltip(id, height, width, el_position_x, el_position_y, direction);
|
|
4736
|
-
if (tooltip) {
|
|
4737
|
-
tooltip.addEventListener('mouseenter', hoverInCallback);
|
|
4738
|
-
tooltip.addEventListener('mouseleave', hoverOutCallback);
|
|
4739
|
-
}
|
|
4740
|
-
}
|
|
4741
|
-
});
|
|
4742
|
-
}
|
|
4743
|
-
onMouseOut(event) {
|
|
4744
|
-
this.remove = true;
|
|
4745
|
-
const customDivAll = document.querySelectorAll('.tc-directive-tooltip');
|
|
4746
|
-
if (customDivAll && customDivAll.length > 0) {
|
|
4747
|
-
setTimeout(() => {
|
|
4748
|
-
if (this.remove) {
|
|
4749
|
-
customDivAll.forEach((_customDiv) => {
|
|
4750
|
-
if (_customDiv) {
|
|
4751
|
-
_customDiv.remove();
|
|
4752
|
-
}
|
|
4753
|
-
});
|
|
4754
|
-
}
|
|
4755
|
-
}, 25);
|
|
4756
|
-
}
|
|
4757
|
-
}
|
|
4758
4691
|
set TCtooltip(tooltip) {
|
|
4759
4692
|
if (tooltip) {
|
|
4760
|
-
|
|
4761
|
-
|
|
4762
|
-
|
|
4763
|
-
this.
|
|
4693
|
+
this.info_text = typeof tooltip === 'object' ? '' : tooltip;
|
|
4694
|
+
if (this.tooltipVisible && this.tooltipElement) {
|
|
4695
|
+
// Atualiza o conteúdo do tooltip diretamente
|
|
4696
|
+
this.tooltipElement.innerHTML = this.info_text;
|
|
4697
|
+
// Reaplica a posição calculada anteriormente para manter a centralização
|
|
4698
|
+
this.repositionTooltip();
|
|
4764
4699
|
}
|
|
4765
4700
|
}
|
|
4766
4701
|
}
|
|
@@ -4772,12 +4707,121 @@ class TCloudUiTooltipDirective {
|
|
|
4772
4707
|
constructor(el, renderer) {
|
|
4773
4708
|
this.el = el;
|
|
4774
4709
|
this.renderer = renderer;
|
|
4710
|
+
this.tooltipMode = 'hover';
|
|
4775
4711
|
this.remove = false;
|
|
4776
4712
|
this.info_text = '';
|
|
4713
|
+
this.tooltipVisible = false;
|
|
4714
|
+
this.tooltipElement = null;
|
|
4777
4715
|
this._direction = 'top';
|
|
4778
4716
|
}
|
|
4717
|
+
onDocumentClick(event) {
|
|
4718
|
+
if (this.tooltipMode === 'click' && this.tooltipVisible && this.info_text) {
|
|
4719
|
+
const clickedInside = this.el.nativeElement.contains(event.target) || (this.tooltipElement?.contains(event.target));
|
|
4720
|
+
if (!clickedInside) {
|
|
4721
|
+
this.removeTooltip();
|
|
4722
|
+
}
|
|
4723
|
+
}
|
|
4724
|
+
}
|
|
4725
|
+
onMouseOver(event) {
|
|
4726
|
+
if (this.tooltipMode === 'hover' && !this.tooltipVisible && this.info_text) {
|
|
4727
|
+
this.createTooltip(event);
|
|
4728
|
+
this.tooltipVisible = true;
|
|
4729
|
+
}
|
|
4730
|
+
}
|
|
4731
|
+
onMouseOut(event) {
|
|
4732
|
+
if (this.tooltipVisible) {
|
|
4733
|
+
const relatedTarget = event.relatedTarget;
|
|
4734
|
+
if (!this.el.nativeElement.contains(relatedTarget) && !this.tooltipElement?.contains(relatedTarget)) {
|
|
4735
|
+
this.removeTooltip();
|
|
4736
|
+
}
|
|
4737
|
+
}
|
|
4738
|
+
}
|
|
4739
|
+
onClick(event) {
|
|
4740
|
+
if (this.tooltipMode === 'click') {
|
|
4741
|
+
if (this.tooltipVisible) {
|
|
4742
|
+
this.removeTooltip();
|
|
4743
|
+
}
|
|
4744
|
+
else {
|
|
4745
|
+
this.createTooltip(event);
|
|
4746
|
+
}
|
|
4747
|
+
this.tooltipVisible = !this.tooltipVisible;
|
|
4748
|
+
}
|
|
4749
|
+
}
|
|
4750
|
+
createTooltip(event) {
|
|
4751
|
+
const scrollTop = window?.scrollY || window?.pageYOffset;
|
|
4752
|
+
const tooltip = this.renderer.createElement('div');
|
|
4753
|
+
const rect = this.el.nativeElement?.getBoundingClientRect();
|
|
4754
|
+
const direction = this._direction || 'top';
|
|
4755
|
+
const el_position_x = rect?.left || 0;
|
|
4756
|
+
const el_position_y = rect?.top + scrollTop || 0;
|
|
4757
|
+
let width = 0;
|
|
4758
|
+
let height = 0;
|
|
4759
|
+
if (event && event.target) {
|
|
4760
|
+
const _event = event.target;
|
|
4761
|
+
height = _event.offsetHeight;
|
|
4762
|
+
width = _event.offsetWidth;
|
|
4763
|
+
}
|
|
4764
|
+
this.renderer.setStyle(tooltip, 'top', '0px');
|
|
4765
|
+
this.renderer.setStyle(tooltip, 'left', '0px');
|
|
4766
|
+
this.renderer.setStyle(tooltip, 'opacity', '0');
|
|
4767
|
+
this.renderer.addClass(tooltip, 'tc-directive-tooltip');
|
|
4768
|
+
this.renderer.addClass(tooltip, `tc-directive-tooltip-${direction}`);
|
|
4769
|
+
const id = this.generateID();
|
|
4770
|
+
this.renderer.setAttribute(tooltip, 'id', id);
|
|
4771
|
+
tooltip.innerHTML = this.info_text;
|
|
4772
|
+
this.renderer.appendChild(document.body, tooltip);
|
|
4773
|
+
this.start_tooltip(id, height, width, el_position_x, el_position_y, direction);
|
|
4774
|
+
this.tooltipElement = tooltip;
|
|
4775
|
+
tooltip.addEventListener('mouseenter', () => this.tooltipVisible = true);
|
|
4776
|
+
tooltip.addEventListener('mouseleave', () => this.removeTooltip());
|
|
4777
|
+
}
|
|
4778
|
+
removeTooltip() {
|
|
4779
|
+
const customDivAll = document.querySelectorAll('.tc-directive-tooltip');
|
|
4780
|
+
if (customDivAll && customDivAll.length > 0) {
|
|
4781
|
+
setTimeout(() => {
|
|
4782
|
+
customDivAll.forEach((_customDiv) => {
|
|
4783
|
+
if (_customDiv) {
|
|
4784
|
+
_customDiv.remove();
|
|
4785
|
+
}
|
|
4786
|
+
});
|
|
4787
|
+
}, 25);
|
|
4788
|
+
}
|
|
4789
|
+
this.tooltipVisible = false;
|
|
4790
|
+
this.tooltipElement = null;
|
|
4791
|
+
}
|
|
4792
|
+
repositionTooltip() {
|
|
4793
|
+
if (!this.tooltipElement)
|
|
4794
|
+
return;
|
|
4795
|
+
const rect = this.el.nativeElement?.getBoundingClientRect();
|
|
4796
|
+
const height = this.el.nativeElement.offsetHeight;
|
|
4797
|
+
const width = this.el.nativeElement.offsetWidth;
|
|
4798
|
+
const tooltipHeight = this.tooltipElement.clientHeight;
|
|
4799
|
+
const tooltipWidth = this.tooltipElement.clientWidth;
|
|
4800
|
+
let p_y = 0;
|
|
4801
|
+
let p_x = 0;
|
|
4802
|
+
const scrollTop = window?.scrollY || window?.pageYOffset;
|
|
4803
|
+
const center_position = (rect.left + (width / 2)) - (tooltipWidth / 2);
|
|
4804
|
+
if (this._direction === 'top') {
|
|
4805
|
+
p_y = (rect.top + scrollTop - tooltipHeight) - 15;
|
|
4806
|
+
p_x = center_position;
|
|
4807
|
+
}
|
|
4808
|
+
else if (this._direction === 'bottom') {
|
|
4809
|
+
p_y = (rect.top + scrollTop + height) + 15;
|
|
4810
|
+
p_x = center_position;
|
|
4811
|
+
}
|
|
4812
|
+
else if (this._direction === 'left') {
|
|
4813
|
+
p_y = (rect.top + scrollTop - (tooltipHeight / 2) + (height / 2));
|
|
4814
|
+
p_x = rect.left - tooltipWidth - 15;
|
|
4815
|
+
}
|
|
4816
|
+
else if (this._direction === 'right') {
|
|
4817
|
+
p_y = (rect.top + scrollTop - (tooltipHeight / 2) + (height / 2));
|
|
4818
|
+
p_x = rect.left + width + 15;
|
|
4819
|
+
}
|
|
4820
|
+
this.renderer.setStyle(this.tooltipElement, 'top', `${p_y}px`);
|
|
4821
|
+
this.renderer.setStyle(this.tooltipElement, 'left', `${p_x}px`);
|
|
4822
|
+
}
|
|
4779
4823
|
generateID(target) {
|
|
4780
|
-
const ref =
|
|
4824
|
+
const ref = target ? `-${target}` : '';
|
|
4781
4825
|
return `tc-tooltip-${Math.floor(Math.random() * Math.floor(Math.random() * Date.now()))}${ref}`;
|
|
4782
4826
|
}
|
|
4783
4827
|
start_tooltip(id, height, width, el_position_x, el_position_y, direction) {
|
|
@@ -4785,13 +4829,6 @@ class TCloudUiTooltipDirective {
|
|
|
4785
4829
|
const tooltip = document.getElementById(id);
|
|
4786
4830
|
const tooltip_height = tooltip.clientHeight;
|
|
4787
4831
|
const tooltip_width = tooltip.clientWidth;
|
|
4788
|
-
/*
|
|
4789
|
-
console.log('altura do target: ', height);
|
|
4790
|
-
console.log('largura do target: ', width);
|
|
4791
|
-
console.log('el_position_x do target: ', el_position_x);
|
|
4792
|
-
console.log('el_position_y do target: ', el_position_y);
|
|
4793
|
-
console.log('direction do tooltip: ', direction);
|
|
4794
|
-
*/
|
|
4795
4832
|
let p_y = 0;
|
|
4796
4833
|
let p_x = 0;
|
|
4797
4834
|
const center_position = (el_position_x + (width / 2)) - (tooltip_width / 2);
|
|
@@ -4817,23 +4854,31 @@ class TCloudUiTooltipDirective {
|
|
|
4817
4854
|
});
|
|
4818
4855
|
}
|
|
4819
4856
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: TCloudUiTooltipDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
4820
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.6", type: TCloudUiTooltipDirective, selector: "[TCtooltip]", inputs: { TCtooltip: "TCtooltip", TCdirection: "TCdirection" }, host: { listeners: { "mouseover": "onMouseOver($event)", "mouseout": "onMouseOut($event)" } }, ngImport: i0 }); }
|
|
4857
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.6", type: TCloudUiTooltipDirective, selector: "[TCtooltip]", inputs: { tooltipMode: "tooltipMode", TCtooltip: "TCtooltip", TCdirection: "TCdirection" }, host: { listeners: { "document:click": "onDocumentClick($event)", "mouseover": "onMouseOver($event)", "mouseout": "onMouseOut($event)", "click": "onClick($event)" } }, ngImport: i0 }); }
|
|
4821
4858
|
}
|
|
4822
4859
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: TCloudUiTooltipDirective, decorators: [{
|
|
4823
4860
|
type: Directive,
|
|
4824
4861
|
args: [{
|
|
4825
4862
|
selector: '[TCtooltip]'
|
|
4826
4863
|
}]
|
|
4827
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: {
|
|
4864
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { tooltipMode: [{
|
|
4865
|
+
type: Input
|
|
4866
|
+
}], TCtooltip: [{
|
|
4867
|
+
type: Input
|
|
4868
|
+
}], TCdirection: [{
|
|
4869
|
+
type: Input
|
|
4870
|
+
}], onDocumentClick: [{
|
|
4871
|
+
type: HostListener,
|
|
4872
|
+
args: ['document:click', ['$event']]
|
|
4873
|
+
}], onMouseOver: [{
|
|
4828
4874
|
type: HostListener,
|
|
4829
4875
|
args: ['mouseover', ['$event']]
|
|
4830
4876
|
}], onMouseOut: [{
|
|
4831
4877
|
type: HostListener,
|
|
4832
4878
|
args: ['mouseout', ['$event']]
|
|
4833
|
-
}],
|
|
4834
|
-
type:
|
|
4835
|
-
|
|
4836
|
-
type: Input
|
|
4879
|
+
}], onClick: [{
|
|
4880
|
+
type: HostListener,
|
|
4881
|
+
args: ['click', ['$event']]
|
|
4837
4882
|
}] } });
|
|
4838
4883
|
|
|
4839
4884
|
class TCloudUiElCopyDirective {
|