@tiba-spark/client-shared-lib 25.3.0-97 → 25.3.0-98

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,149 @@
1
+ import { Directive, HostListener, Input } from '@angular/core';
2
+ import { MatTooltipModule } from '@angular/material/tooltip';
3
+ import { findParentElement } from '../utils/element.util';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/material/tooltip";
6
+ export class DynamicEllipsisTooltipDirective {
7
+ constructor(matTooltip, elementRef, renderer) {
8
+ this.matTooltip = matTooltip;
9
+ this.elementRef = elementRef;
10
+ this.renderer = renderer;
11
+ this.originalPlaceholder = '';
12
+ this.truncatedPlaceholder = '';
13
+ }
14
+ ngAfterViewInit() {
15
+ if (this.querySelector?.length > 0) {
16
+ this.element = this.elementRef.nativeElement.querySelector(this.querySelector);
17
+ }
18
+ else if (this.findParentElementClass?.length > 0) {
19
+ this.element = findParentElement(this.elementRef, this.findParentElementClass);
20
+ }
21
+ else {
22
+ this.element = this.elementRef.nativeElement;
23
+ }
24
+ this.originalPlaceholder = this.element['placeholder'];
25
+ if (this.originalPlaceholder?.length > 0) {
26
+ this.setupListeners();
27
+ this.setupResizeObserver();
28
+ this.calculateTruncatedPlaceholder();
29
+ }
30
+ }
31
+ ngOnDestroy() {
32
+ if (this.resizeObserver) {
33
+ this.resizeObserver.disconnect();
34
+ }
35
+ if (this.focusListener) {
36
+ this.element.removeEventListener('focus', this.focusListener);
37
+ }
38
+ if (this.blurListener) {
39
+ this.element.removeEventListener('blur', this.blurListener);
40
+ }
41
+ }
42
+ setupListeners() {
43
+ const input = this.element;
44
+ this.focusListener = () => {
45
+ // On focus, use truncated placeholder if overflow exists
46
+ if (this.isPlaceholderOverflowing()) {
47
+ this.renderer.setAttribute(input, 'placeholder', this.truncatedPlaceholder);
48
+ }
49
+ };
50
+ this.blurListener = () => {
51
+ this.renderer.setAttribute(input, 'placeholder', this.truncatedPlaceholder);
52
+ };
53
+ input.addEventListener('focus', this.focusListener);
54
+ input.addEventListener('blur', this.blurListener);
55
+ }
56
+ calculateTruncatedPlaceholder() {
57
+ if (!this.originalPlaceholder)
58
+ return;
59
+ const input = this.element;
60
+ const maxWidth = this.getAvailableWidth();
61
+ if (this.getTextWidth(this.originalPlaceholder) <= maxWidth) {
62
+ this.truncatedPlaceholder = this.originalPlaceholder;
63
+ this.renderer.setAttribute(input, 'placeholder', this.truncatedPlaceholder);
64
+ return;
65
+ }
66
+ // Binary search for optimal length
67
+ let left = 0;
68
+ let right = this.originalPlaceholder.length;
69
+ let bestFit = '';
70
+ while (left <= right) {
71
+ const mid = Math.floor((left + right) / 2);
72
+ const testText = this.originalPlaceholder.substring(0, mid) + '...';
73
+ const textWidth = this.getTextWidth(testText);
74
+ if (textWidth <= maxWidth) {
75
+ bestFit = testText;
76
+ left = mid + 1;
77
+ }
78
+ else {
79
+ right = mid - 1;
80
+ }
81
+ }
82
+ this.truncatedPlaceholder = bestFit || this.originalPlaceholder.substring(0, 10) + '...';
83
+ // Apply the truncated placeholder immediately
84
+ this.renderer.setAttribute(input, 'placeholder', this.truncatedPlaceholder);
85
+ }
86
+ getAvailableWidth() {
87
+ const input = this.element;
88
+ const computedStyle = window.getComputedStyle(input);
89
+ const paddingLeft = parseFloat(computedStyle.paddingLeft) || 0;
90
+ const paddingRight = parseFloat(computedStyle.paddingRight) || 0;
91
+ return input.clientWidth - paddingLeft - paddingRight;
92
+ }
93
+ getTextWidth(text) {
94
+ const input = this.element;
95
+ const computedStyle = window.getComputedStyle(input);
96
+ const canvas = document.createElement('canvas');
97
+ const context = canvas.getContext('2d');
98
+ context.font = `${computedStyle.fontSize} ${computedStyle.fontFamily}`;
99
+ return context.measureText(text).width;
100
+ }
101
+ isPlaceholderOverflowing() {
102
+ const textWidth = this.getTextWidth(this.originalPlaceholder);
103
+ const availableWidth = this.getAvailableWidth();
104
+ return textWidth > availableWidth;
105
+ }
106
+ setupResizeObserver() {
107
+ if ('ResizeObserver' in window) {
108
+ this.resizeObserver = new ResizeObserver(() => {
109
+ this.calculateTruncatedPlaceholder();
110
+ });
111
+ this.resizeObserver.observe(this.element);
112
+ }
113
+ }
114
+ onMouseOver() {
115
+ if (this.element) {
116
+ this.checkPlaceholderOverflow();
117
+ }
118
+ }
119
+ checkPlaceholderOverflow() {
120
+ if (this.originalPlaceholder?.length > 0) {
121
+ this.matTooltip.disabled = !this.isPlaceholderOverflowing();
122
+ }
123
+ else {
124
+ this.matTooltip.disabled = this.element.scrollWidth <= this.element.clientWidth;
125
+ }
126
+ }
127
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DynamicEllipsisTooltipDirective, deps: [{ token: i1.MatTooltip }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
128
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: DynamicEllipsisTooltipDirective, isStandalone: true, selector: "[matTooltip][querySelector]", inputs: { querySelector: "querySelector", findParentElementClass: "findParentElementClass" }, host: { listeners: { "mouseover": "onMouseOver()" } }, providers: [
129
+ MatTooltipModule,
130
+ ], ngImport: i0 }); }
131
+ }
132
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DynamicEllipsisTooltipDirective, decorators: [{
133
+ type: Directive,
134
+ args: [{
135
+ selector: '[matTooltip][querySelector]',
136
+ standalone: true,
137
+ providers: [
138
+ MatTooltipModule,
139
+ ]
140
+ }]
141
+ }], ctorParameters: () => [{ type: i1.MatTooltip }, { type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { querySelector: [{
142
+ type: Input
143
+ }], findParentElementClass: [{
144
+ type: Input
145
+ }], onMouseOver: [{
146
+ type: HostListener,
147
+ args: ['mouseover']
148
+ }] } });
149
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1lbGxpcHNpcy10b29sdGlwLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC1zaGFyZWQtbGliL3NyYy9saWJyYXJpZXMvZGlyZWN0aXZlcy9keW5hbWljLWVsbGlwc2lzLXRvb2x0aXAuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQXdCLE1BQU0sZUFBZSxDQUFDO0FBQ2hILE9BQU8sRUFBYyxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7QUFTMUQsTUFBTSxPQUFPLCtCQUErQjtJQWExQyxZQUFvQixVQUFzQixFQUFVLFVBQW1DLEVBQVUsUUFBbUI7UUFBaEcsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUFVLGVBQVUsR0FBVixVQUFVLENBQXlCO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQU41Ryx3QkFBbUIsR0FBVyxFQUFFLENBQUM7UUFDakMseUJBQW9CLEdBQVcsRUFBRSxDQUFDO0lBSzhFLENBQUM7SUFFbEgsZUFBZTtRQUNwQixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ25DLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNqRixDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsc0JBQXNCLEVBQUUsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ25ELElBQUksQ0FBQyxPQUFPLEdBQUcsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUNqRixDQUFD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QUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsR0FBRyxDQUFDLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1FBQzlELENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7UUFDbEYsQ0FBQztJQUNILENBQUM7K0dBbEpVLCtCQUErQjttR0FBL0IsK0JBQStCLCtOQUovQjtZQUNULGdCQUFnQjtTQUNqQjs7NEZBRVUsK0JBQStCO2tCQVAzQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSw2QkFBNkI7b0JBQ3ZDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixTQUFTLEVBQUU7d0JBQ1QsZ0JBQWdCO3FCQUNqQjtpQkFDRjtnSUFHVSxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFtSXFCLFdBQVc7c0JBQXJDLFlBQVk7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25EZXN0cm95LCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdFRvb2x0aXAsIE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcbmltcG9ydCB7IGZpbmRQYXJlbnRFbGVtZW50IH0gZnJvbSAnLi4vdXRpbHMvZWxlbWVudC51dGlsJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW21hdFRvb2x0aXBdW3F1ZXJ5U2VsZWN0b3JdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBEeW5hbWljRWxsaXBzaXNUb29sdGlwRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcblxuICBASW5wdXQoKSBxdWVyeVNlbGVjdG9yOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGZpbmRQYXJlbnRFbGVtZW50Q2xhc3M6IHN0cmluZztcblxuICBwcml2YXRlIGVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuXG4gIHByaXZhdGUgb3JpZ2luYWxQbGFjZWhvbGRlcjogc3RyaW5nID0gJyc7XG4gIHByaXZhdGUgdHJ1bmNhdGVkUGxhY2Vob2xkZXI6IHN0cmluZyA9ICcnO1xuICBwcml2YXRlIHJlc2l6ZU9ic2VydmVyPzogUmVzaXplT2JzZXJ2ZXI7XG4gIHByaXZhdGUgZm9jdXNMaXN0ZW5lcj86ICgpID0+IHZvaWQ7XG4gIHByaXZhdGUgYmx1ckxpc3RlbmVyPzogKCkgPT4gdm9pZDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG1hdFRvb2x0aXA6IE1hdFRvb2x0aXAsIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMikgeyB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5xdWVyeVNlbGVjdG9yPy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmVsZW1lbnQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKHRoaXMucXVlcnlTZWxlY3Rvcik7XG4gICAgfSBlbHNlIGlmICh0aGlzLmZpbmRQYXJlbnRFbGVtZW50Q2xhc3M/Lmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuZWxlbWVudCA9IGZpbmRQYXJlbnRFbGVtZW50KHRoaXMuZWxlbWVudFJlZiwgdGhpcy5maW5kUGFyZW50RWxlbWVudENsYXNzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5lbGVtZW50ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgdGhpcy5vcmlnaW5hbFBsYWNlaG9sZGVyID0gdGhpcy5lbGVtZW50WydwbGFjZWhvbGRlciddO1xuICAgIGlmICh0aGlzLm9yaWdpbmFsUGxhY2Vob2xkZXI/Lmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuc2V0dXBMaXN0ZW5lcnMoKTtcbiAgICAgIHRoaXMuc2V0dXBSZXNpemVPYnNlcnZlcigpO1xuICAgICAgdGhpcy5jYWxjdWxhdGVUcnVuY2F0ZWRQbGFjZWhvbGRlcigpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLnJlc2l6ZU9ic2VydmVyKSB7XG4gICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuZm9jdXNMaXN0ZW5lcikge1xuICAgICAgdGhpcy5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgdGhpcy5mb2N1c0xpc3RlbmVyKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuYmx1ckxpc3RlbmVyKSB7XG4gICAgICB0aGlzLmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignYmx1cicsIHRoaXMuYmx1ckxpc3RlbmVyKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldHVwTGlzdGVuZXJzKCkge1xuICAgIGNvbnN0IGlucHV0ID0gdGhpcy5lbGVtZW50O1xuXG4gICAgdGhpcy5mb2N1c0xpc3RlbmVyID0gKCkgPT4ge1xuICAgICAgLy8gT24gZm9jdXMsIHVzZSB0cnVuY2F0ZWQgcGxhY2Vob2xkZXIgaWYgb3ZlcmZsb3cgZXhpc3RzXG4gICAgICBpZiAodGhpcy5pc1BsYWNlaG9sZGVyT3ZlcmZsb3dpbmcoKSkge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShpbnB1dCwgJ3BsYWNlaG9sZGVyJywgdGhpcy50cnVuY2F0ZWRQbGFjZWhvbGRlcik7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHRoaXMuYmx1ckxpc3RlbmVyID0gKCkgPT4ge1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoaW5wdXQsICdwbGFjZWhvbGRlcicsIHRoaXMudHJ1bmNhdGVkUGxhY2Vob2xkZXIpO1xuICAgIH07XG5cbiAgICBpbnB1dC5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsIHRoaXMuZm9jdXNMaXN0ZW5lcik7XG4gICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsIHRoaXMuYmx1ckxpc3RlbmVyKTtcbiAgfVxuXG4gIHByaXZhdGUgY2FsY3VsYXRlVHJ1bmNhdGVkUGxhY2Vob2xkZXIoKSB7XG4gICAgaWYgKCF0aGlzLm9yaWdpbmFsUGxhY2Vob2xkZXIpIHJldHVybjtcblxuICAgIGNvbnN0IGlucHV0ID0gdGhpcy5lbGVtZW50O1xuICAgIGNvbnN0IG1heFdpZHRoID0gdGhpcy5nZXRBdmFpbGFibGVXaWR0aCgpO1xuXG4gICAgaWYgKHRoaXMuZ2V0VGV4dFdpZHRoKHRoaXMub3JpZ2luYWxQbGFjZWhvbGRlcikgPD0gbWF4V2lkdGgpIHtcbiAgICAgIHRoaXMudHJ1bmNhdGVkUGxhY2Vob2xkZXIgPSB0aGlzLm9yaWdpbmFsUGxhY2Vob2xkZXI7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShpbnB1dCwgJ3BsYWNlaG9sZGVyJywgdGhpcy50cnVuY2F0ZWRQbGFjZWhvbGRlcik7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gQmluYXJ5IHNlYXJjaCBmb3Igb3B0aW1hbCBsZW5ndGhcbiAgICBsZXQgbGVmdCA9IDA7XG4gICAgbGV0IHJpZ2h0ID0gdGhpcy5vcmlnaW5hbFBsYWNlaG9sZGVyLmxlbmd0aDtcbiAgICBsZXQgYmVzdEZpdCA9ICcnO1xuXG4gICAgd2hpbGUgKGxlZnQgPD0gcmlnaHQpIHtcbiAgICAgIGNvbnN0IG1pZCA9IE1hdGguZmxvb3IoKGxlZnQgKyByaWdodCkgLyAyKTtcbiAgICAgIGNvbnN0IHRlc3RUZXh0ID0gdGhpcy5vcmlnaW5hbFBsYWNlaG9sZGVyLnN1YnN0cmluZygwLCBtaWQpICsgJy4uLic7XG4gICAgICBjb25zdCB0ZXh0V2lkdGggPSB0aGlzLmdldFRleHRXaWR0aCh0ZXN0VGV4dCk7XG5cbiAgICAgIGlmICh0ZXh0V2lkdGggPD0gbWF4V2lkdGgpIHtcbiAgICAgICAgYmVzdEZpdCA9IHRlc3RUZXh0O1xuICAgICAgICBsZWZ0ID0gbWlkICsgMTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJpZ2h0ID0gbWlkIC0gMTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnRydW5jYXRlZFBsYWNlaG9sZGVyID0gYmVzdEZpdCB8fCB0aGlzLm9yaWdpbmFsUGxhY2Vob2xkZXIuc3Vic3RyaW5nKDAsIDEwKSArICcuLi4nO1xuXG4gICAgLy8gQXBwbHkgdGhlIHRydW5jYXRlZCBwbGFjZWhvbGRlciBpbW1lZGlhdGVseVxuICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKGlucHV0LCAncGxhY2Vob2xkZXInLCB0aGlzLnRydW5jYXRlZFBsYWNlaG9sZGVyKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0QXZhaWxhYmxlV2lkdGgoKTogbnVtYmVyIHtcbiAgICBjb25zdCBpbnB1dCA9IHRoaXMuZWxlbWVudDtcbiAgICBjb25zdCBjb21wdXRlZFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoaW5wdXQpO1xuXG4gICAgY29uc3QgcGFkZGluZ0xlZnQgPSBwYXJzZUZsb2F0KGNvbXB1dGVkU3R5bGUucGFkZGluZ0xlZnQpIHx8IDA7XG4gICAgY29uc3QgcGFkZGluZ1JpZ2h0ID0gcGFyc2VGbG9hdChjb21wdXRlZFN0eWxlLnBhZGRpbmdSaWdodCkgfHwgMDtcblxuICAgIHJldHVybiBpbnB1dC5jbGllbnRXaWR0aCAtIHBhZGRpbmdMZWZ0IC0gcGFkZGluZ1JpZ2h0O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRUZXh0V2lkdGgodGV4dDogc3RyaW5nKTogbnVtYmVyIHtcbiAgICBjb25zdCBpbnB1dCA9IHRoaXMuZWxlbWVudDtcbiAgICBjb25zdCBjb21wdXRlZFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoaW5wdXQpO1xuXG4gICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7XG4gICAgY29uc3QgY29udGV4dCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpITtcbiAgICBjb250ZXh0LmZvbnQgPSBgJHtjb21wdXRlZFN0eWxlLmZvbnRTaXplfSAke2NvbXB1dGVkU3R5bGUuZm9udEZhbWlseX1gO1xuXG4gICAgcmV0dXJuIGNvbnRleHQubWVhc3VyZVRleHQodGV4dCkud2lkdGg7XG4gIH1cblxuICBwcml2YXRlIGlzUGxhY2Vob2xkZXJPdmVyZmxvd2luZygpOiBib29sZWFuIHtcbiAgICBjb25zdCB0ZXh0V2lkdGggPSB0aGlzLmdldFRleHRXaWR0aCh0aGlzLm9yaWdpbmFsUGxhY2Vob2xkZXIpO1xuICAgIGNvbnN0IGF2YWlsYWJsZVdpZHRoID0gdGhpcy5nZXRBdmFpbGFibGVXaWR0aCgpO1xuICAgIHJldHVybiB0ZXh0V2lkdGggPiBhdmFpbGFibGVXaWR0aDtcbiAgfVxuXG4gIHByaXZhdGUgc2V0dXBSZXNpemVPYnNlcnZlcigpIHtcbiAgICBpZiAoJ1Jlc2l6ZU9ic2VydmVyJyBpbiB3aW5kb3cpIHtcbiAgICAgIHRoaXMucmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKCkgPT4ge1xuICAgICAgICB0aGlzLmNhbGN1bGF0ZVRydW5jYXRlZFBsYWNlaG9sZGVyKCk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMucmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLmVsZW1lbnQpO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlb3ZlcicpIG9uTW91c2VPdmVyKCkge1xuICAgIGlmICh0aGlzLmVsZW1lbnQpIHtcbiAgICAgIHRoaXMuY2hlY2tQbGFjZWhvbGRlck92ZXJmbG93KCk7XG4gICAgfVxuICB9XG5cbiAgY2hlY2tQbGFjZWhvbGRlck92ZXJmbG93KCkge1xuICAgIGlmICh0aGlzLm9yaWdpbmFsUGxhY2Vob2xkZXI/Lmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMubWF0VG9vbHRpcC5kaXNhYmxlZCA9ICF0aGlzLmlzUGxhY2Vob2xkZXJPdmVyZmxvd2luZygpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm1hdFRvb2x0aXAuZGlzYWJsZWQgPSB0aGlzLmVsZW1lbnQuc2Nyb2xsV2lkdGggPD0gdGhpcy5lbGVtZW50LmNsaWVudFdpZHRoO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -3,6 +3,7 @@ export * from './shared-directives.module';
3
3
  // Directives
4
4
  export * from './autofocus.directive';
5
5
  export * from './container-ref.directive';
6
+ export * from './dynamic-ellipsis-tooltip.directive';
6
7
  export * from './ellipsis-multiline.directive';
7
8
  export * from './formatted-input.directive';
8
9
  export * from './is-ellipsis.directive';
@@ -12,4 +13,4 @@ export * from './offscreen.directive';
12
13
  export * from './stop-propagation.directive';
13
14
  export * from './tb-type-number.directive';
14
15
  export * from './var.directive';
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtc2hhcmVkLWxpYi9zcmMvbGlicmFyaWVzL2RpcmVjdGl2ZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsU0FBUztBQUNULGNBQWMsNEJBQTRCLENBQUM7QUFFM0MsYUFBYTtBQUNiLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIE1vZHVsZVxuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQtZGlyZWN0aXZlcy5tb2R1bGUnO1xuXG4vLyBEaXJlY3RpdmVzXG5leHBvcnQgKiBmcm9tICcuL2F1dG9mb2N1cy5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9jb250YWluZXItcmVmLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2VsbGlwc2lzLW11bHRpbGluZS5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9mb3JtYXR0ZWQtaW5wdXQuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vaXMtZWxsaXBzaXMuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbWF0LWhpbnQtZXJyb3IuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbmF0aXZlLWVsZW1lbnQtaW5qZWN0b3IuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vb2Zmc2NyZWVuLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3N0b3AtcHJvcGFnYXRpb24uZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vdGItdHlwZS1udW1iZXIuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vdmFyLmRpcmVjdGl2ZSc7XG4iXX0=
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtc2hhcmVkLWxpYi9zcmMvbGlicmFyaWVzL2RpcmVjdGl2ZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsU0FBUztBQUNULGNBQWMsNEJBQTRCLENBQUM7QUFFM0MsYUFBYTtBQUNiLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLGlCQUFpQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTW9kdWxlXG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZC1kaXJlY3RpdmVzLm1vZHVsZSc7XG5cbi8vIERpcmVjdGl2ZXNcbmV4cG9ydCAqIGZyb20gJy4vYXV0b2ZvY3VzLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2NvbnRhaW5lci1yZWYuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vZHluYW1pYy1lbGxpcHNpcy10b29sdGlwLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2VsbGlwc2lzLW11bHRpbGluZS5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9mb3JtYXR0ZWQtaW5wdXQuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vaXMtZWxsaXBzaXMuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbWF0LWhpbnQtZXJyb3IuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbmF0aXZlLWVsZW1lbnQtaW5qZWN0b3IuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vb2Zmc2NyZWVuLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3N0b3AtcHJvcGFnYXRpb24uZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vdGItdHlwZS1udW1iZXIuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vdmFyLmRpcmVjdGl2ZSc7XG4iXX0=