tailjng 0.0.1

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.
package/README.md ADDED
@@ -0,0 +1,63 @@
1
+ # Tailjng
2
+
3
+ This project was generated using [Angular CLI](https://github.com/angular/angular-cli) version 19.2.0.
4
+
5
+ ## Code scaffolding
6
+
7
+ Angular CLI includes powerful code scaffolding tools. To generate a new component, run:
8
+
9
+ ```bash
10
+ ng generate component component-name
11
+ ```
12
+
13
+ For a complete list of available schematics (such as `components`, `directives`, or `pipes`), run:
14
+
15
+ ```bash
16
+ ng generate --help
17
+ ```
18
+
19
+ ## Building
20
+
21
+ To build the library, run:
22
+
23
+ ```bash
24
+ ng build tailjng
25
+ ```
26
+
27
+ This command will compile your project, and the build artifacts will be placed in the `dist/` directory.
28
+
29
+ ### Publishing the Library
30
+
31
+ Once the project is built, you can publish your library by following these steps:
32
+
33
+ 1. Navigate to the `dist` directory:
34
+ ```bash
35
+ cd dist/tailjng
36
+ ```
37
+
38
+ 2. Run the `npm publish` command to publish your library to the npm registry:
39
+ ```bash
40
+ npm publish
41
+ ```
42
+
43
+ ## Running unit tests
44
+
45
+ To execute unit tests with the [Karma](https://karma-runner.github.io) test runner, use the following command:
46
+
47
+ ```bash
48
+ ng test
49
+ ```
50
+
51
+ ## Running end-to-end tests
52
+
53
+ For end-to-end (e2e) testing, run:
54
+
55
+ ```bash
56
+ ng e2e
57
+ ```
58
+
59
+ Angular CLI does not come with an end-to-end testing framework by default. You can choose one that suits your needs.
60
+
61
+ ## Additional Resources
62
+
63
+ For more information on using the Angular CLI, including detailed command references, visit the [Angular CLI Overview and Command Reference](https://angular.dev/tools/cli) page.
@@ -0,0 +1,251 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Injectable, Component, TemplateRef, HostListener, Input, Directive } from '@angular/core';
3
+
4
+ class TailjngService {
5
+ constructor() { }
6
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: TailjngService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
7
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: TailjngService, providedIn: 'root' });
8
+ }
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: TailjngService, decorators: [{
10
+ type: Injectable,
11
+ args: [{
12
+ providedIn: 'root'
13
+ }]
14
+ }], ctorParameters: () => [] });
15
+
16
+ class TailjngComponent {
17
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: TailjngComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
18
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.7", type: TailjngComponent, isStandalone: true, selector: "lib-tailjng", ngImport: i0, template: `
19
+ <p>
20
+ tailjng works!
21
+ </p>
22
+ `, isInline: true, styles: [""] });
23
+ }
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: TailjngComponent, decorators: [{
25
+ type: Component,
26
+ args: [{ selector: 'lib-tailjng', imports: [], template: `
27
+ <p>
28
+ tailjng works!
29
+ </p>
30
+ ` }]
31
+ }] });
32
+
33
+ class TooltipService {
34
+ tooltipElement = null;
35
+ arrowElement = null;
36
+ renderer;
37
+ showArrow = true;
38
+ offsetX = 0;
39
+ offsetY = 0;
40
+ constructor(rendererFactory) {
41
+ this.renderer = rendererFactory.createRenderer(null, null);
42
+ }
43
+ show(content, target, position = 'top', showArrow = true, offsetX = 0, offsetY = 0) {
44
+ if (!content || !target)
45
+ return;
46
+ this.hide();
47
+ this.showArrow = showArrow;
48
+ this.offsetX = offsetX;
49
+ this.offsetY = offsetY;
50
+ if (!this.tooltipElement) {
51
+ this.tooltipElement = this.renderer.createElement('div');
52
+ this.renderer.addClass(this.tooltipElement, 'j-tooltip');
53
+ this.renderer.setStyle(this.tooltipElement, 'position', 'absolute');
54
+ this.renderer.setStyle(this.tooltipElement, 'z-index', '9999');
55
+ this.renderer.setStyle(this.tooltipElement, 'background-color', '#333');
56
+ this.renderer.setStyle(this.tooltipElement, 'color', 'white');
57
+ this.renderer.setStyle(this.tooltipElement, 'padding', '0.5rem');
58
+ this.renderer.setStyle(this.tooltipElement, 'border-radius', '0.25rem');
59
+ this.renderer.setStyle(this.tooltipElement, 'font-size', '0.875rem');
60
+ this.renderer.setStyle(this.tooltipElement, 'pointer-events', 'none');
61
+ this.renderer.setStyle(this.tooltipElement, 'box-shadow', '0 2px 4px rgba(0,0,0,0.2)');
62
+ this.renderer.setStyle(this.tooltipElement, 'max-width', '230px');
63
+ this.renderer.setStyle(this.tooltipElement, 'word-wrap', 'break-word');
64
+ this.renderer.setStyle(this.tooltipElement, 'transition', 'opacity 0.2s ease, transform 0.2s ease');
65
+ this.arrowElement = this.renderer.createElement('div');
66
+ this.renderer.setStyle(this.arrowElement, 'position', 'absolute');
67
+ this.renderer.setStyle(this.arrowElement, 'width', '0');
68
+ this.renderer.setStyle(this.arrowElement, 'height', '0');
69
+ this.renderer.setStyle(this.arrowElement, 'border-style', 'solid');
70
+ }
71
+ if (this.tooltipElement) {
72
+ while (this.tooltipElement.firstChild) {
73
+ this.tooltipElement.removeChild(this.tooltipElement.firstChild);
74
+ }
75
+ }
76
+ if (typeof content === 'string') {
77
+ this.tooltipElement.textContent = content;
78
+ }
79
+ else if (content instanceof HTMLElement) {
80
+ this.renderer.appendChild(this.tooltipElement, content.cloneNode(true));
81
+ }
82
+ if (this.showArrow) {
83
+ this.renderer.appendChild(this.tooltipElement, this.arrowElement);
84
+ }
85
+ this.renderer.appendChild(document.body, this.tooltipElement);
86
+ this.renderer.setStyle(this.tooltipElement, 'opacity', '0');
87
+ this.renderer.setStyle(this.tooltipElement, 'transform', 'scale(1)');
88
+ this.renderer.setStyle(this.tooltipElement, 'display', 'block');
89
+ this.positionAbsolute(target, position);
90
+ requestAnimationFrame(() => {
91
+ this.renderer.setStyle(this.tooltipElement, 'opacity', '1');
92
+ });
93
+ }
94
+ positionAbsolute(target, position) {
95
+ if (!this.tooltipElement)
96
+ return;
97
+ const tooltipRect = this.tooltipElement.getBoundingClientRect();
98
+ const targetRect = target.getBoundingClientRect();
99
+ let left = 0;
100
+ let top = 0;
101
+ const arrowSize = 6;
102
+ if (this.showArrow && this.arrowElement) {
103
+ this.renderer.setStyle(this.arrowElement, 'border-width', `${arrowSize}px`);
104
+ this.renderer.setStyle(this.arrowElement, 'border-color', 'transparent');
105
+ this.renderer.setStyle(this.arrowElement, 'top', '');
106
+ this.renderer.setStyle(this.arrowElement, 'bottom', '');
107
+ this.renderer.setStyle(this.arrowElement, 'left', '');
108
+ this.renderer.setStyle(this.arrowElement, 'right', '');
109
+ }
110
+ switch (position) {
111
+ case 'top':
112
+ left = targetRect.left + targetRect.width / 2 - tooltipRect.width / 2 + this.offsetX;
113
+ top = targetRect.top - tooltipRect.height - arrowSize + this.offsetY;
114
+ if (this.showArrow && this.arrowElement) {
115
+ this.renderer.setStyle(this.arrowElement, 'bottom', `-5px`);
116
+ this.renderer.setStyle(this.arrowElement, 'left', `calc(50% - ${arrowSize}px)`);
117
+ this.renderer.setStyle(this.arrowElement, 'border-top-color', '#333');
118
+ this.renderer.setStyle(this.arrowElement, 'border-bottom-width', '0');
119
+ }
120
+ break;
121
+ case 'bottom':
122
+ left = targetRect.left + targetRect.width / 2 - tooltipRect.width / 2 + this.offsetX;
123
+ top = targetRect.bottom + arrowSize + this.offsetY;
124
+ if (this.showArrow && this.arrowElement) {
125
+ this.renderer.setStyle(this.arrowElement, 'top', `-5px`);
126
+ this.renderer.setStyle(this.arrowElement, 'left', `calc(50% - ${arrowSize}px)`);
127
+ this.renderer.setStyle(this.arrowElement, 'border-bottom-color', '#333');
128
+ this.renderer.setStyle(this.arrowElement, 'border-top-width', '0');
129
+ }
130
+ break;
131
+ case 'left':
132
+ left = targetRect.left - tooltipRect.width - arrowSize + this.offsetX;
133
+ top = targetRect.top + targetRect.height / 2 - tooltipRect.height / 2 + this.offsetY;
134
+ if (this.showArrow && this.arrowElement) {
135
+ this.renderer.setStyle(this.arrowElement, 'right', `-5px`);
136
+ this.renderer.setStyle(this.arrowElement, 'top', `calc(50% - ${arrowSize}px)`);
137
+ this.renderer.setStyle(this.arrowElement, 'border-left-color', '#333');
138
+ this.renderer.setStyle(this.arrowElement, 'border-right-width', '0');
139
+ }
140
+ break;
141
+ case 'right':
142
+ left = targetRect.right + arrowSize + this.offsetX;
143
+ top = targetRect.top + targetRect.height / 2 - tooltipRect.height / 2 + this.offsetY;
144
+ if (this.showArrow && this.arrowElement) {
145
+ this.renderer.setStyle(this.arrowElement, 'left', `-5px`);
146
+ this.renderer.setStyle(this.arrowElement, 'top', `calc(50% - ${arrowSize}px)`);
147
+ this.renderer.setStyle(this.arrowElement, 'border-right-color', '#333');
148
+ this.renderer.setStyle(this.arrowElement, 'border-left-width', '0');
149
+ }
150
+ break;
151
+ }
152
+ this.renderer.setStyle(this.tooltipElement, 'left', `${left + window.scrollX}px`);
153
+ this.renderer.setStyle(this.tooltipElement, 'top', `${top + window.scrollY}px`);
154
+ }
155
+ hide() {
156
+ if (this.tooltipElement) {
157
+ this.renderer.setStyle(this.tooltipElement, 'opacity', '0');
158
+ this.renderer.setStyle(this.tooltipElement, 'transform', 'scale(0.95)');
159
+ this.renderer.setStyle(this.tooltipElement, 'display', 'none');
160
+ }
161
+ }
162
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: TooltipService, deps: [{ token: i0.RendererFactory2 }], target: i0.ɵɵFactoryTarget.Injectable });
163
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: TooltipService, providedIn: 'root' });
164
+ }
165
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: TooltipService, decorators: [{
166
+ type: Injectable,
167
+ args: [{ providedIn: 'root' }]
168
+ }], ctorParameters: () => [{ type: i0.RendererFactory2 }] });
169
+
170
+ class JTooltipModule {
171
+ el;
172
+ tooltipService;
173
+ zone;
174
+ viewContainerRef;
175
+ content;
176
+ jTooltipPosition = 'top';
177
+ jTooltipShowArrow = true;
178
+ jTooltipOffsetX = 0;
179
+ jTooltipOffsetY = 0;
180
+ constructor(el, tooltipService, zone, viewContainerRef) {
181
+ this.el = el;
182
+ this.tooltipService = tooltipService;
183
+ this.zone = zone;
184
+ this.viewContainerRef = viewContainerRef;
185
+ }
186
+ show() {
187
+ if (!this.content)
188
+ return;
189
+ this.zone.runOutsideAngular(() => {
190
+ let finalContent = '';
191
+ if (this.content instanceof TemplateRef) {
192
+ const view = this.content.createEmbeddedView({});
193
+ this.viewContainerRef.insert(view);
194
+ view.detectChanges();
195
+ const fragment = document.createElement('div');
196
+ view.rootNodes.forEach((node) => fragment.appendChild(node.cloneNode(true)));
197
+ finalContent = fragment;
198
+ view.destroy(); // limpieza inmediata
199
+ }
200
+ else {
201
+ finalContent = this.content;
202
+ }
203
+ this.tooltipService.show(finalContent, this.el.nativeElement, this.jTooltipPosition, this.jTooltipShowArrow, this.jTooltipOffsetX, this.jTooltipOffsetY);
204
+ });
205
+ }
206
+ hide() {
207
+ this.zone.runOutsideAngular(() => {
208
+ this.tooltipService.hide();
209
+ });
210
+ }
211
+ ngOnDestroy() {
212
+ this.tooltipService.hide();
213
+ }
214
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: JTooltipModule, deps: [{ token: i0.ElementRef }, { token: TooltipService }, { token: i0.NgZone }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
215
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.7", type: JTooltipModule, isStandalone: true, selector: "[jTooltip]", inputs: { content: ["jTooltip", "content"], jTooltipPosition: "jTooltipPosition", jTooltipShowArrow: "jTooltipShowArrow", jTooltipOffsetX: "jTooltipOffsetX", jTooltipOffsetY: "jTooltipOffsetY" }, host: { listeners: { "mouseenter": "show()", "mouseleave": "hide()" } }, ngImport: i0 });
216
+ }
217
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: JTooltipModule, decorators: [{
218
+ type: Directive,
219
+ args: [{
220
+ selector: '[jTooltip]',
221
+ standalone: true,
222
+ }]
223
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: TooltipService }, { type: i0.NgZone }, { type: i0.ViewContainerRef }], propDecorators: { content: [{
224
+ type: Input,
225
+ args: ['jTooltip']
226
+ }], jTooltipPosition: [{
227
+ type: Input
228
+ }], jTooltipShowArrow: [{
229
+ type: Input
230
+ }], jTooltipOffsetX: [{
231
+ type: Input
232
+ }], jTooltipOffsetY: [{
233
+ type: Input
234
+ }], show: [{
235
+ type: HostListener,
236
+ args: ['mouseenter']
237
+ }], hide: [{
238
+ type: HostListener,
239
+ args: ['mouseleave']
240
+ }] } });
241
+
242
+ /*
243
+ * Public API Surface of tailjng
244
+ */
245
+
246
+ /**
247
+ * Generated bundle index. Do not edit.
248
+ */
249
+
250
+ export { JTooltipModule, TailjngComponent, TailjngService };
251
+ //# sourceMappingURL=tailjng.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tailjng.mjs","sources":["../../../projects/tailjng/src/lib/tailjng.service.ts","../../../projects/tailjng/src/lib/tailjng.component.ts","../../../projects/tailjng/src/lib/tooltip/tooltip.service.ts","../../../projects/tailjng/src/lib/tooltip/tooltip.directive.ts","../../../projects/tailjng/src/public-api.ts","../../../projects/tailjng/src/tailjng.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TailjngService {\r\n\r\n constructor() { }\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-tailjng',\r\n imports: [],\r\n template: `\r\n <p>\r\n tailjng works!\r\n </p>\r\n `,\r\n styles: ``\r\n})\r\nexport class TailjngComponent {\r\n\r\n}\r\n","import { Injectable, Renderer2, RendererFactory2 } from '@angular/core';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class TooltipService {\r\n private tooltipElement: HTMLElement | null = null;\r\n private arrowElement: HTMLElement | null = null;\r\n private readonly renderer: Renderer2;\r\n private showArrow: boolean = true;\r\n private offsetX = 0;\r\n private offsetY = 0;\r\n\r\n constructor(rendererFactory: RendererFactory2) {\r\n this.renderer = rendererFactory.createRenderer(null, null);\r\n }\r\n\r\n show(\r\n content: string | HTMLElement,\r\n target: HTMLElement,\r\n position: string = 'top',\r\n showArrow: boolean = true,\r\n offsetX: number = 0,\r\n offsetY: number = 0\r\n ) {\r\n if (!content || !target) return;\r\n\r\n this.hide();\r\n this.showArrow = showArrow;\r\n this.offsetX = offsetX;\r\n this.offsetY = offsetY;\r\n\r\n if (!this.tooltipElement) {\r\n this.tooltipElement = this.renderer.createElement('div');\r\n this.renderer.addClass(this.tooltipElement, 'j-tooltip');\r\n this.renderer.setStyle(this.tooltipElement, 'position', 'absolute');\r\n this.renderer.setStyle(this.tooltipElement, 'z-index', '9999');\r\n this.renderer.setStyle(this.tooltipElement, 'background-color', '#333');\r\n this.renderer.setStyle(this.tooltipElement, 'color', 'white');\r\n this.renderer.setStyle(this.tooltipElement, 'padding', '0.5rem');\r\n this.renderer.setStyle(this.tooltipElement, 'border-radius', '0.25rem');\r\n this.renderer.setStyle(this.tooltipElement, 'font-size', '0.875rem');\r\n this.renderer.setStyle(this.tooltipElement, 'pointer-events', 'none');\r\n this.renderer.setStyle(this.tooltipElement, 'box-shadow', '0 2px 4px rgba(0,0,0,0.2)');\r\n this.renderer.setStyle(this.tooltipElement, 'max-width', '230px');\r\n this.renderer.setStyle(this.tooltipElement, 'word-wrap', 'break-word');\r\n this.renderer.setStyle(this.tooltipElement, 'transition', 'opacity 0.2s ease, transform 0.2s ease');\r\n\r\n this.arrowElement = this.renderer.createElement('div');\r\n this.renderer.setStyle(this.arrowElement, 'position', 'absolute');\r\n this.renderer.setStyle(this.arrowElement, 'width', '0');\r\n this.renderer.setStyle(this.arrowElement, 'height', '0');\r\n this.renderer.setStyle(this.arrowElement, 'border-style', 'solid');\r\n }\r\n\r\n if (this.tooltipElement) {\r\n while (this.tooltipElement.firstChild) {\r\n this.tooltipElement.removeChild(this.tooltipElement.firstChild);\r\n }\r\n }\r\n\r\n if (typeof content === 'string') {\r\n this.tooltipElement!.textContent = content;\r\n } else if (content instanceof HTMLElement) {\r\n this.renderer.appendChild(this.tooltipElement!, content.cloneNode(true));\r\n }\r\n\r\n if (this.showArrow) {\r\n this.renderer.appendChild(this.tooltipElement!, this.arrowElement!);\r\n }\r\n\r\n this.renderer.appendChild(document.body, this.tooltipElement);\r\n this.renderer.setStyle(this.tooltipElement, 'opacity', '0');\r\n this.renderer.setStyle(this.tooltipElement, 'transform', 'scale(1)');\r\n this.renderer.setStyle(this.tooltipElement, 'display', 'block');\r\n\r\n this.positionAbsolute(target, position);\r\n\r\n requestAnimationFrame(() => {\r\n this.renderer.setStyle(this.tooltipElement!, 'opacity', '1');\r\n });\r\n }\r\n\r\n positionAbsolute(target: HTMLElement, position: string) {\r\n if (!this.tooltipElement) return;\r\n\r\n const tooltipRect = this.tooltipElement.getBoundingClientRect();\r\n const targetRect = target.getBoundingClientRect();\r\n\r\n let left = 0;\r\n let top = 0;\r\n const arrowSize = 6;\r\n\r\n if (this.showArrow && this.arrowElement) {\r\n this.renderer.setStyle(this.arrowElement, 'border-width', `${arrowSize}px`);\r\n this.renderer.setStyle(this.arrowElement, 'border-color', 'transparent');\r\n this.renderer.setStyle(this.arrowElement, 'top', '');\r\n this.renderer.setStyle(this.arrowElement, 'bottom', '');\r\n this.renderer.setStyle(this.arrowElement, 'left', '');\r\n this.renderer.setStyle(this.arrowElement, 'right', '');\r\n }\r\n\r\n switch (position) {\r\n case 'top':\r\n left = targetRect.left + targetRect.width / 2 - tooltipRect.width / 2 + this.offsetX;\r\n top = targetRect.top - tooltipRect.height - arrowSize + this.offsetY;\r\n if (this.showArrow && this.arrowElement) {\r\n this.renderer.setStyle(this.arrowElement, 'bottom', `-5px`);\r\n this.renderer.setStyle(this.arrowElement, 'left', `calc(50% - ${arrowSize}px)`);\r\n this.renderer.setStyle(this.arrowElement, 'border-top-color', '#333');\r\n this.renderer.setStyle(this.arrowElement, 'border-bottom-width', '0');\r\n }\r\n break;\r\n\r\n case 'bottom':\r\n left = targetRect.left + targetRect.width / 2 - tooltipRect.width / 2 + this.offsetX;\r\n top = targetRect.bottom + arrowSize + this.offsetY;\r\n if (this.showArrow && this.arrowElement) {\r\n this.renderer.setStyle(this.arrowElement, 'top', `-5px`);\r\n this.renderer.setStyle(this.arrowElement, 'left', `calc(50% - ${arrowSize}px)`);\r\n this.renderer.setStyle(this.arrowElement, 'border-bottom-color', '#333');\r\n this.renderer.setStyle(this.arrowElement, 'border-top-width', '0');\r\n }\r\n break;\r\n\r\n case 'left':\r\n left = targetRect.left - tooltipRect.width - arrowSize + this.offsetX;\r\n top = targetRect.top + targetRect.height / 2 - tooltipRect.height / 2 + this.offsetY;\r\n if (this.showArrow && this.arrowElement) {\r\n this.renderer.setStyle(this.arrowElement, 'right', `-5px`);\r\n this.renderer.setStyle(this.arrowElement, 'top', `calc(50% - ${arrowSize}px)`);\r\n this.renderer.setStyle(this.arrowElement, 'border-left-color', '#333');\r\n this.renderer.setStyle(this.arrowElement, 'border-right-width', '0');\r\n }\r\n break;\r\n\r\n case 'right':\r\n left = targetRect.right + arrowSize + this.offsetX;\r\n top = targetRect.top + targetRect.height / 2 - tooltipRect.height / 2 + this.offsetY;\r\n if (this.showArrow && this.arrowElement) {\r\n this.renderer.setStyle(this.arrowElement, 'left', `-5px`);\r\n this.renderer.setStyle(this.arrowElement, 'top', `calc(50% - ${arrowSize}px)`);\r\n this.renderer.setStyle(this.arrowElement, 'border-right-color', '#333');\r\n this.renderer.setStyle(this.arrowElement, 'border-left-width', '0');\r\n }\r\n break;\r\n }\r\n\r\n this.renderer.setStyle(this.tooltipElement, 'left', `${left + window.scrollX}px`);\r\n this.renderer.setStyle(this.tooltipElement, 'top', `${top + window.scrollY}px`);\r\n }\r\n\r\n hide() {\r\n if (this.tooltipElement) {\r\n this.renderer.setStyle(this.tooltipElement, 'opacity', '0');\r\n this.renderer.setStyle(this.tooltipElement, 'transform', 'scale(0.95)');\r\n this.renderer.setStyle(this.tooltipElement, 'display', 'none');\r\n }\r\n }\r\n}","import { Directive, ElementRef, Input, OnDestroy, HostListener, NgZone, TemplateRef, ViewContainerRef } from '@angular/core';\r\nimport { TooltipService } from './tooltip.service';\r\n\r\n@Directive({\r\n selector: '[jTooltip]',\r\n standalone: true,\r\n})\r\nexport class JTooltipModule implements OnDestroy {\r\n @Input('jTooltip') content!: string | TemplateRef<any>;\r\n @Input() jTooltipPosition: 'top' | 'right' | 'bottom' | 'left' = 'top';\r\n @Input() jTooltipShowArrow: boolean = true;\r\n @Input() jTooltipOffsetX: number = 0;\r\n @Input() jTooltipOffsetY: number = 0;\r\n\r\n constructor(\r\n private readonly el: ElementRef,\r\n private readonly tooltipService: TooltipService,\r\n private readonly zone: NgZone,\r\n private readonly viewContainerRef: ViewContainerRef\r\n ) { }\r\n\r\n @HostListener('mouseenter')\r\n show() {\r\n if (!this.content) return;\r\n\r\n this.zone.runOutsideAngular(() => {\r\n let finalContent: string | HTMLElement = '';\r\n\r\n if (this.content instanceof TemplateRef) {\r\n const view = this.content.createEmbeddedView({});\r\n this.viewContainerRef.insert(view);\r\n view.detectChanges();\r\n\r\n const fragment = document.createElement('div');\r\n view.rootNodes.forEach((node) => fragment.appendChild(node.cloneNode(true)));\r\n finalContent = fragment;\r\n view.destroy(); // limpieza inmediata\r\n } else {\r\n finalContent = this.content;\r\n }\r\n\r\n this.tooltipService.show(\r\n finalContent,\r\n this.el.nativeElement,\r\n this.jTooltipPosition,\r\n this.jTooltipShowArrow,\r\n this.jTooltipOffsetX,\r\n this.jTooltipOffsetY\r\n );\r\n });\r\n }\r\n\r\n @HostListener('mouseleave')\r\n hide() {\r\n this.zone.runOutsideAngular(() => {\r\n this.tooltipService.hide();\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.tooltipService.hide();\r\n }\r\n}\r\n","/*\r\n * Public API Surface of tailjng\r\n */\r\n\r\nexport * from './lib/tailjng.service';\r\nexport * from './lib/tailjng.component';\r\n\r\n// Tooltip\r\nexport * from './lib/tooltip/tooltip.directive';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.TooltipService"],"mappings":"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"}
package/index.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="tailjng" />
5
+ export * from './public-api';
@@ -0,0 +1,5 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class TailjngComponent {
3
+ static ɵfac: i0.ɵɵFactoryDeclaration<TailjngComponent, never>;
4
+ static ɵcmp: i0.ɵɵComponentDeclaration<TailjngComponent, "lib-tailjng", never, {}, {}, never, never, true, never>;
5
+ }
@@ -0,0 +1,6 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class TailjngService {
3
+ constructor();
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<TailjngService, never>;
5
+ static ɵprov: i0.ɵɵInjectableDeclaration<TailjngService>;
6
+ }
@@ -0,0 +1,20 @@
1
+ import { ElementRef, OnDestroy, NgZone, TemplateRef, ViewContainerRef } from '@angular/core';
2
+ import { TooltipService } from './tooltip.service';
3
+ import * as i0 from "@angular/core";
4
+ export declare class JTooltipModule implements OnDestroy {
5
+ private readonly el;
6
+ private readonly tooltipService;
7
+ private readonly zone;
8
+ private readonly viewContainerRef;
9
+ content: string | TemplateRef<any>;
10
+ jTooltipPosition: 'top' | 'right' | 'bottom' | 'left';
11
+ jTooltipShowArrow: boolean;
12
+ jTooltipOffsetX: number;
13
+ jTooltipOffsetY: number;
14
+ constructor(el: ElementRef, tooltipService: TooltipService, zone: NgZone, viewContainerRef: ViewContainerRef);
15
+ show(): void;
16
+ hide(): void;
17
+ ngOnDestroy(): void;
18
+ static ɵfac: i0.ɵɵFactoryDeclaration<JTooltipModule, never>;
19
+ static ɵdir: i0.ɵɵDirectiveDeclaration<JTooltipModule, "[jTooltip]", never, { "content": { "alias": "jTooltip"; "required": false; }; "jTooltipPosition": { "alias": "jTooltipPosition"; "required": false; }; "jTooltipShowArrow": { "alias": "jTooltipShowArrow"; "required": false; }; "jTooltipOffsetX": { "alias": "jTooltipOffsetX"; "required": false; }; "jTooltipOffsetY": { "alias": "jTooltipOffsetY"; "required": false; }; }, {}, never, never, true, never>;
20
+ }
@@ -0,0 +1,16 @@
1
+ import { RendererFactory2 } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class TooltipService {
4
+ private tooltipElement;
5
+ private arrowElement;
6
+ private readonly renderer;
7
+ private showArrow;
8
+ private offsetX;
9
+ private offsetY;
10
+ constructor(rendererFactory: RendererFactory2);
11
+ show(content: string | HTMLElement, target: HTMLElement, position?: string, showArrow?: boolean, offsetX?: number, offsetY?: number): void;
12
+ positionAbsolute(target: HTMLElement, position: string): void;
13
+ hide(): void;
14
+ static ɵfac: i0.ɵɵFactoryDeclaration<TooltipService, never>;
15
+ static ɵprov: i0.ɵɵInjectableDeclaration<TooltipService>;
16
+ }
package/package.json ADDED
@@ -0,0 +1,23 @@
1
+ {
2
+ "name": "tailjng",
3
+ "version": "0.0.1",
4
+ "peerDependencies": {
5
+ "@angular/common": "^19.2.0",
6
+ "@angular/core": "^19.2.0"
7
+ },
8
+ "dependencies": {
9
+ "tslib": "^2.3.0"
10
+ },
11
+ "sideEffects": false,
12
+ "module": "fesm2022/tailjng.mjs",
13
+ "typings": "index.d.ts",
14
+ "exports": {
15
+ "./package.json": {
16
+ "default": "./package.json"
17
+ },
18
+ ".": {
19
+ "types": "./index.d.ts",
20
+ "default": "./fesm2022/tailjng.mjs"
21
+ }
22
+ }
23
+ }
@@ -0,0 +1,3 @@
1
+ export * from './lib/tailjng.service';
2
+ export * from './lib/tailjng.component';
3
+ export * from './lib/tooltip/tooltip.directive';