@dev-tcloud/tcloud-ui 2.3.2 → 2.3.4

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.
@@ -2,7 +2,7 @@ import * as i0 from '@angular/core';
2
2
  import { Component, Input, NgModule, CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA, Injectable, EventEmitter, Output, ViewChild, forwardRef, Pipe, ViewEncapsulation, Directive, HostListener } from '@angular/core';
3
3
  import * as i1 from '@angular/common';
4
4
  import { CommonModule, DatePipe } from '@angular/common';
5
- import { Subject } from 'rxjs';
5
+ import { Subject, Subscription } from 'rxjs';
6
6
  import * as i1$1 from '@angular/router';
7
7
  import * as i2 from '@angular/forms';
8
8
  import { FormsModule, ReactiveFormsModule, NG_VALIDATORS, NG_VALUE_ACCESSOR, FormControl } from '@angular/forms';
@@ -98,6 +98,8 @@ class TabMenuService {
98
98
  this.info_tab = [];
99
99
  this.scrollSubject = new Subject();
100
100
  this.scrollState$ = this.scrollSubject.asObservable();
101
+ this.bottom_lineSubject = new Subject();
102
+ this.bottom_lineState$ = this.bottom_lineSubject.asObservable();
101
103
  this.tabSubject = new Subject();
102
104
  this.tabState$ = this.tabSubject.asObservable();
103
105
  this.loadingSubject = new Subject();
@@ -112,6 +114,13 @@ class TabMenuService {
112
114
  getTabScroll() {
113
115
  return this._scroll;
114
116
  }
117
+ setTabBottomLine(bottom_line) {
118
+ this._bottom_line = bottom_line;
119
+ this.bottom_lineSubject.next(bottom_line);
120
+ }
121
+ getTabBottomLine() {
122
+ return this._bottom_line;
123
+ }
115
124
  setTabLoading(loading) {
116
125
  this._loading = loading;
117
126
  this.loadingSubject.next(loading);
@@ -285,7 +294,9 @@ class TCloudUiTabTitleComponent {
285
294
  this.tab = '';
286
295
  this.active = false;
287
296
  this.loading = false;
297
+ this.bottom_line = false;
288
298
  this._disabled = false;
299
+ this.subscription = new Subscription();
289
300
  }
290
301
  ngOnInit() {
291
302
  if (!this.disabled) {
@@ -293,16 +304,23 @@ class TCloudUiTabTitleComponent {
293
304
  if (this.tab !== '') {
294
305
  this.active = (tab === this.tab);
295
306
  }
307
+ const bottom_line = this.tabMenuService.getTabBottomLine();
308
+ if (typeof bottom_line === 'boolean') {
309
+ this.bottom_line = bottom_line;
310
+ }
296
311
  }
297
- this.subscription = this.tabMenuService.tabState$.subscribe((tab) => {
312
+ this.subscription?.add(this.tabMenuService.tabState$.subscribe((tab) => {
298
313
  if (this.tab !== '') {
299
314
  this.active = (tab === this.tab);
300
315
  }
301
- });
316
+ }));
302
317
  this.loading = this.tabMenuService.getTabLoading();
303
- this.subscription2 = this.tabMenuService.loadingState$.subscribe((loading) => {
318
+ this.subscription?.add(this.tabMenuService.loadingState$.subscribe((loading) => {
304
319
  this.loading = loading;
305
- });
320
+ }));
321
+ this.subscription?.add(this.tabMenuService.bottom_lineState$.subscribe((bottom_line) => {
322
+ this.bottom_line = bottom_line;
323
+ }));
306
324
  }
307
325
  toTab() {
308
326
  if (!this.disabled) {
@@ -315,16 +333,13 @@ class TCloudUiTabTitleComponent {
315
333
  if (this.subscription) {
316
334
  this.subscription.unsubscribe();
317
335
  }
318
- if (this.subscription2) {
319
- this.subscription2.unsubscribe();
320
- }
321
336
  }
322
337
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TCloudUiTabTitleComponent, deps: [{ token: TabMenuService }], target: i0.ɵɵFactoryTarget.Component }); }
323
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TCloudUiTabTitleComponent, selector: "tcloud-ui-tab-title", inputs: { tab: "tab", title: "title", active: "active", disabled: "disabled" }, ngImport: i0, template: "<button [class.loading]=\"loading\" [attr.data-id]=\"tab\" [class.tab-title-active]=\"active\" [disabled]=\"disabled || loading\" type=\"button\" (click)=\"toTab()\" class=\"tcloud-ui-tab-title tab-title\" >\r\n <ng-content></ng-content>\r\n</button>\r\n", styles: [".tab-title{border-radius:0!important;height:initial;display:inline-block;margin:0!important;color:var(--cinza);border:none;background:none;text-transform:uppercase;font-size:11px;padding:20px;cursor:pointer;min-width:60px;max-width:200px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;transition:all .25s}.tab-title-active{background:var(--tc-primary);color:#fff}.loading{cursor:progress!important}button:disabled{opacity:.7;cursor:not-allowed!important}@media (max-width: 1580px){.tab-title{font-size:11px;padding:20px 14px}}@media (max-width: 1440px){.tab-title{font-size:10px;padding:20px 13px}}\n"] }); }
338
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TCloudUiTabTitleComponent, selector: "tcloud-ui-tab-title", inputs: { tab: "tab", title: "title", active: "active", disabled: "disabled" }, ngImport: i0, template: "<button [class.loading]=\"loading\" [attr.data-id]=\"tab\" [class.tab-title-active]=\"active\" [disabled]=\"disabled || loading\" type=\"button\" (click)=\"toTab()\" class=\"tcloud-ui-tab-title tab-title\" >\r\n <ng-content></ng-content>\r\n</button>\r\n<div class=\"bottom-line\" [class.bottom-line-hover]=\"bottom_line\" ></div>", styles: [".tab-title{border-radius:0!important;height:initial;display:inline-block;margin:0!important;color:var(--cinza);border:none;background:none;text-transform:uppercase;font-size:11px;padding:20px;cursor:pointer;min-width:60px;max-width:200px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;transition:all .25s}.tab-title-active{background:var(--tc-primary);color:#fff}.loading{cursor:progress!important}button:disabled{opacity:.7;cursor:not-allowed!important}@media (max-width: 1580px){.tab-title{font-size:11px;padding:20px 14px}}@media (max-width: 1440px){.tab-title{font-size:10px;padding:20px 13px}}\n"] }); }
324
339
  }
325
340
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TCloudUiTabTitleComponent, decorators: [{
326
341
  type: Component,
327
- args: [{ selector: 'tcloud-ui-tab-title', template: "<button [class.loading]=\"loading\" [attr.data-id]=\"tab\" [class.tab-title-active]=\"active\" [disabled]=\"disabled || loading\" type=\"button\" (click)=\"toTab()\" class=\"tcloud-ui-tab-title tab-title\" >\r\n <ng-content></ng-content>\r\n</button>\r\n", styles: [".tab-title{border-radius:0!important;height:initial;display:inline-block;margin:0!important;color:var(--cinza);border:none;background:none;text-transform:uppercase;font-size:11px;padding:20px;cursor:pointer;min-width:60px;max-width:200px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;transition:all .25s}.tab-title-active{background:var(--tc-primary);color:#fff}.loading{cursor:progress!important}button:disabled{opacity:.7;cursor:not-allowed!important}@media (max-width: 1580px){.tab-title{font-size:11px;padding:20px 14px}}@media (max-width: 1440px){.tab-title{font-size:10px;padding:20px 13px}}\n"] }]
342
+ args: [{ selector: 'tcloud-ui-tab-title', template: "<button [class.loading]=\"loading\" [attr.data-id]=\"tab\" [class.tab-title-active]=\"active\" [disabled]=\"disabled || loading\" type=\"button\" (click)=\"toTab()\" class=\"tcloud-ui-tab-title tab-title\" >\r\n <ng-content></ng-content>\r\n</button>\r\n<div class=\"bottom-line\" [class.bottom-line-hover]=\"bottom_line\" ></div>", styles: [".tab-title{border-radius:0!important;height:initial;display:inline-block;margin:0!important;color:var(--cinza);border:none;background:none;text-transform:uppercase;font-size:11px;padding:20px;cursor:pointer;min-width:60px;max-width:200px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;transition:all .25s}.tab-title-active{background:var(--tc-primary);color:#fff}.loading{cursor:progress!important}button:disabled{opacity:.7;cursor:not-allowed!important}@media (max-width: 1580px){.tab-title{font-size:11px;padding:20px 14px}}@media (max-width: 1440px){.tab-title{font-size:10px;padding:20px 13px}}\n"] }]
328
343
  }], ctorParameters: function () { return [{ type: TabMenuService }]; }, propDecorators: { tab: [{
329
344
  type: Input
330
345
  }], title: [{
@@ -347,6 +362,8 @@ class TCloudUiTabSubtitleComponent {
347
362
  this.active = false;
348
363
  this._disabled = false;
349
364
  this.loading = false;
365
+ this.bottom_line = false;
366
+ this.subscription = new Subscription();
350
367
  }
351
368
  ngOnInit() {
352
369
  if (!this.disabled) {
@@ -354,16 +371,23 @@ class TCloudUiTabSubtitleComponent {
354
371
  if (this.tab !== '') {
355
372
  this.active = (tab === this.tab);
356
373
  }
374
+ const bottom_line = this.tabMenuService.getTabBottomLine();
375
+ if (typeof bottom_line === 'boolean') {
376
+ this.bottom_line = bottom_line;
377
+ }
357
378
  }
358
- this.subscription = this.tabMenuService.tabState$.subscribe((tab) => {
379
+ this.subscription?.add(this.tabMenuService.tabState$.subscribe((tab) => {
359
380
  if (this.tab !== '') {
360
381
  this.active = (tab === this.tab);
361
382
  }
362
- });
383
+ }));
363
384
  this.loading = this.tabMenuService.getTabLoading();
364
- this.subscription2 = this.tabMenuService.loadingState$.subscribe((loading) => {
385
+ this.subscription?.add(this.tabMenuService.loadingState$.subscribe((loading) => {
365
386
  this.loading = loading;
366
- });
387
+ }));
388
+ this.subscription?.add(this.tabMenuService.bottom_lineState$.subscribe((bottom_line) => {
389
+ this.bottom_line = bottom_line;
390
+ }));
367
391
  }
368
392
  toTab() {
369
393
  if (!this.disabled) {
@@ -376,16 +400,13 @@ class TCloudUiTabSubtitleComponent {
376
400
  if (this.subscription) {
377
401
  this.subscription.unsubscribe();
378
402
  }
379
- if (this.subscription2) {
380
- this.subscription2.unsubscribe();
381
- }
382
403
  }
383
404
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TCloudUiTabSubtitleComponent, deps: [{ token: TabMenuService }], target: i0.ɵɵFactoryTarget.Component }); }
384
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TCloudUiTabSubtitleComponent, selector: "tcloud-ui-tab-subtitle", inputs: { tab: "tab", active: "active", disabled: "disabled" }, ngImport: i0, template: "<button [class.loading]=\"loading\" [attr.data-id]=\"tab\" [class.tab-subtitle-active]=\"active\" [disabled]=\"disabled || loading\" type=\"button\" (click)=\"toTab()\" class=\"tcloud-ui-tab-subtitle tab-subtitle\" >\r\n <ng-content></ng-content>\r\n</button>\r\n", styles: [".tab-subtitle{cursor:pointer;color:var(--cinza);border:none;background:none;text-transform:uppercase;font-size:11px;padding:0;margin:20px 10px}.tab-subtitle-active{color:var(--tc-primary)}.loading{cursor:progress!important}button:disabled{opacity:.7;cursor:not-allowed!important}\n"] }); }
405
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TCloudUiTabSubtitleComponent, selector: "tcloud-ui-tab-subtitle", inputs: { tab: "tab", active: "active", disabled: "disabled" }, ngImport: i0, template: "<button [class.loading]=\"loading\" [attr.data-id]=\"tab\" [class.tab-subtitle-active]=\"active\" [disabled]=\"disabled || loading\" type=\"button\" (click)=\"toTab()\" class=\"tcloud-ui-tab-subtitle tab-subtitle\" >\r\n <ng-content></ng-content>\r\n</button>\r\n<div class=\"bottom-line\" [class.bottom-line-hover]=\"bottom_line\" ></div>\r\n", styles: [".tab-subtitle{cursor:pointer;color:var(--cinza);border:none;background:none;text-transform:uppercase;font-size:11px;padding:0;margin:20px 10px;opacity:.8}.tab-subtitle:hover{opacity:1}.tab-subtitle-active{color:var(--tc-primary);opacity:1}.loading{cursor:progress!important}button:disabled{opacity:.6;cursor:not-allowed!important}button:disabled:hover{opacity:.6!important}\n"] }); }
385
406
  }
386
407
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TCloudUiTabSubtitleComponent, decorators: [{
387
408
  type: Component,
388
- args: [{ selector: 'tcloud-ui-tab-subtitle', template: "<button [class.loading]=\"loading\" [attr.data-id]=\"tab\" [class.tab-subtitle-active]=\"active\" [disabled]=\"disabled || loading\" type=\"button\" (click)=\"toTab()\" class=\"tcloud-ui-tab-subtitle tab-subtitle\" >\r\n <ng-content></ng-content>\r\n</button>\r\n", styles: [".tab-subtitle{cursor:pointer;color:var(--cinza);border:none;background:none;text-transform:uppercase;font-size:11px;padding:0;margin:20px 10px}.tab-subtitle-active{color:var(--tc-primary)}.loading{cursor:progress!important}button:disabled{opacity:.7;cursor:not-allowed!important}\n"] }]
409
+ args: [{ selector: 'tcloud-ui-tab-subtitle', template: "<button [class.loading]=\"loading\" [attr.data-id]=\"tab\" [class.tab-subtitle-active]=\"active\" [disabled]=\"disabled || loading\" type=\"button\" (click)=\"toTab()\" class=\"tcloud-ui-tab-subtitle tab-subtitle\" >\r\n <ng-content></ng-content>\r\n</button>\r\n<div class=\"bottom-line\" [class.bottom-line-hover]=\"bottom_line\" ></div>\r\n", styles: [".tab-subtitle{cursor:pointer;color:var(--cinza);border:none;background:none;text-transform:uppercase;font-size:11px;padding:0;margin:20px 10px;opacity:.8}.tab-subtitle:hover{opacity:1}.tab-subtitle-active{color:var(--tc-primary);opacity:1}.loading{cursor:progress!important}button:disabled{opacity:.6;cursor:not-allowed!important}button:disabled:hover{opacity:.6!important}\n"] }]
389
410
  }], ctorParameters: function () { return [{ type: TabMenuService }]; }, propDecorators: { tab: [{
390
411
  type: Input
391
412
  }], active: [{
@@ -402,13 +423,20 @@ class TCloudUiTabHeadComponent {
402
423
  }
403
424
  }
404
425
  get scroll() { return this._scroll; }
426
+ set bottom_line(bottom_line) {
427
+ if (typeof bottom_line === 'boolean') {
428
+ this._bottom_line = bottom_line;
429
+ this.tabMenuService.setTabBottomLine(bottom_line);
430
+ }
431
+ }
432
+ get bottom_line() { return this._bottom_line; }
405
433
  constructor(tabMenuService) {
406
434
  this.tabMenuService = tabMenuService;
407
435
  this._scroll = true;
408
436
  this.ID = '';
409
437
  this.background = true;
410
438
  this.backgroundColor = 'transparent'; // var(--cinza4)
411
- this.bottom_line = false;
439
+ this._bottom_line = false;
412
440
  }
413
441
  ngOnInit() {
414
442
  if (this.background) {
@@ -453,11 +481,11 @@ class TCloudUiTabHeadComponent {
453
481
  this.scrollSuave(ccs_s, action == 'next' ? wid + ccs_s : ccs_s - wid, 0, ccs);
454
482
  }
455
483
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TCloudUiTabHeadComponent, deps: [{ token: TabMenuService }], target: i0.ɵɵFactoryTarget.Component }); }
456
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TCloudUiTabHeadComponent, selector: "tcloud-ui-tab-head", inputs: { scroll: "scroll", background: "background", backgroundColor: "backgroundColor", bottom_line: "bottom_line" }, ngImport: i0, template: "\r\n\r\n<table class=\"tcloud-ui-tab-head area-navigation\">\r\n <tr>\r\n <td *ngIf=\"scroll\">\r\n <button (click)=\"to_scroll('prev')\"> <i class=\"fas fa-chevron-left\"></i> </button>\r\n </td>\r\n\r\n <td>\r\n\r\n </td>\r\n\r\n <td *ngIf=\"scroll\">\r\n <button (click)=\"to_scroll('next')\"> <i class=\"fas fa-chevron-right\"></i> </button>\r\n </td>\r\n </tr>\r\n</table>\r\n\r\n<div class=\"tc-menu {{ ID }}\" [attr.style]=\"'background: ' + backgroundColor + ';'\" [class.tab-full]=\"!scroll\" [class.tab-subtitle-line-bottom]=\"bottom_line\">\r\n <ng-content></ng-content>\r\n</div>\r\n\r\n", styles: [".area-navigation{display:none;width:100%;line-height:0}.area-navigation button{padding:0!important}.area-navigation td{width:100%;height:0;line-height:0}.area-navigation td:first-child{width:10px!important;text-align:left}.area-navigation td:first-child button{color:var(--tc-primary);cursor:pointer;position:relative;top:15px;right:0;border:none;background-color:transparent;font-size:15px;height:30px}.area-navigation td:last-child{width:10px!important;text-align:right}.area-navigation td:last-child button{color:var(--tc-primary);cursor:pointer;position:relative;top:15px;left:0;border:none;background-color:transparent;font-size:15px;height:30px}.tc-menu{display:flex;align-items:center;border-radius:10px;overflow:hidden;margin-bottom:5px;z-index:1;position:relative}@media (max-width: 1440px){.area-navigation{display:block!important;position:relative;top:0;height:2px}.tc-menu{margin-left:15px;margin-right:15px}}.tab-full{margin-left:0!important;margin-right:0!important}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
484
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TCloudUiTabHeadComponent, selector: "tcloud-ui-tab-head", inputs: { scroll: "scroll", background: "background", backgroundColor: "backgroundColor", bottom_line: "bottom_line" }, ngImport: i0, template: "\r\n\r\n<table class=\"tcloud-ui-tab-head area-navigation\">\r\n <tr>\r\n <td *ngIf=\"scroll\">\r\n <button (click)=\"to_scroll('prev')\"> <i class=\"fas fa-chevron-left\"></i> </button>\r\n </td>\r\n\r\n <td>\r\n\r\n </td>\r\n\r\n <td *ngIf=\"scroll\">\r\n <button (click)=\"to_scroll('next')\"> <i class=\"fas fa-chevron-right\"></i> </button>\r\n </td>\r\n </tr>\r\n</table>\r\n\r\n<div class=\"tc-menu {{ ID }}\" [attr.style]=\"'background: ' + backgroundColor + ';'\" [class.tab-full]=\"!scroll\" [class.tab-subtitle-line-bottom]=\"bottom_line\">\r\n <ng-content></ng-content> \r\n</div>\r\n<div class=\"hr-border-bottom\" *ngIf=\"bottom_line\"></div>\r\n", styles: [".area-navigation{display:none;width:100%;line-height:0}.area-navigation button{padding:0!important}.area-navigation td{width:100%;height:0;line-height:0}.area-navigation td:first-child{width:10px!important;text-align:left}.area-navigation td:first-child button{color:var(--tc-primary);cursor:pointer;position:relative;top:15px;right:0;border:none;background-color:transparent;font-size:15px;height:30px}.area-navigation td:last-child{width:10px!important;text-align:right}.area-navigation td:last-child button{color:var(--tc-primary);cursor:pointer;position:relative;top:15px;left:0;border:none;background-color:transparent;font-size:15px;height:30px}.tc-menu{display:flex;align-items:center;overflow:hidden;margin-bottom:5px;z-index:1;position:relative}.hr-border-bottom{border-bottom:none;border-left:none;border-right:none;margin-top:0!important;border-top:1px solid #ccc;margin-bottom:0}@media (max-width: 1440px){.area-navigation{display:block!important;position:relative;top:0;height:2px}.tc-menu{margin-left:15px;margin-right:15px}}.tab-full{margin-left:0!important;margin-right:0!important}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
457
485
  }
458
486
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TCloudUiTabHeadComponent, decorators: [{
459
487
  type: Component,
460
- args: [{ selector: 'tcloud-ui-tab-head', template: "\r\n\r\n<table class=\"tcloud-ui-tab-head area-navigation\">\r\n <tr>\r\n <td *ngIf=\"scroll\">\r\n <button (click)=\"to_scroll('prev')\"> <i class=\"fas fa-chevron-left\"></i> </button>\r\n </td>\r\n\r\n <td>\r\n\r\n </td>\r\n\r\n <td *ngIf=\"scroll\">\r\n <button (click)=\"to_scroll('next')\"> <i class=\"fas fa-chevron-right\"></i> </button>\r\n </td>\r\n </tr>\r\n</table>\r\n\r\n<div class=\"tc-menu {{ ID }}\" [attr.style]=\"'background: ' + backgroundColor + ';'\" [class.tab-full]=\"!scroll\" [class.tab-subtitle-line-bottom]=\"bottom_line\">\r\n <ng-content></ng-content>\r\n</div>\r\n\r\n", styles: [".area-navigation{display:none;width:100%;line-height:0}.area-navigation button{padding:0!important}.area-navigation td{width:100%;height:0;line-height:0}.area-navigation td:first-child{width:10px!important;text-align:left}.area-navigation td:first-child button{color:var(--tc-primary);cursor:pointer;position:relative;top:15px;right:0;border:none;background-color:transparent;font-size:15px;height:30px}.area-navigation td:last-child{width:10px!important;text-align:right}.area-navigation td:last-child button{color:var(--tc-primary);cursor:pointer;position:relative;top:15px;left:0;border:none;background-color:transparent;font-size:15px;height:30px}.tc-menu{display:flex;align-items:center;border-radius:10px;overflow:hidden;margin-bottom:5px;z-index:1;position:relative}@media (max-width: 1440px){.area-navigation{display:block!important;position:relative;top:0;height:2px}.tc-menu{margin-left:15px;margin-right:15px}}.tab-full{margin-left:0!important;margin-right:0!important}\n"] }]
488
+ args: [{ selector: 'tcloud-ui-tab-head', template: "\r\n\r\n<table class=\"tcloud-ui-tab-head area-navigation\">\r\n <tr>\r\n <td *ngIf=\"scroll\">\r\n <button (click)=\"to_scroll('prev')\"> <i class=\"fas fa-chevron-left\"></i> </button>\r\n </td>\r\n\r\n <td>\r\n\r\n </td>\r\n\r\n <td *ngIf=\"scroll\">\r\n <button (click)=\"to_scroll('next')\"> <i class=\"fas fa-chevron-right\"></i> </button>\r\n </td>\r\n </tr>\r\n</table>\r\n\r\n<div class=\"tc-menu {{ ID }}\" [attr.style]=\"'background: ' + backgroundColor + ';'\" [class.tab-full]=\"!scroll\" [class.tab-subtitle-line-bottom]=\"bottom_line\">\r\n <ng-content></ng-content> \r\n</div>\r\n<div class=\"hr-border-bottom\" *ngIf=\"bottom_line\"></div>\r\n", styles: [".area-navigation{display:none;width:100%;line-height:0}.area-navigation button{padding:0!important}.area-navigation td{width:100%;height:0;line-height:0}.area-navigation td:first-child{width:10px!important;text-align:left}.area-navigation td:first-child button{color:var(--tc-primary);cursor:pointer;position:relative;top:15px;right:0;border:none;background-color:transparent;font-size:15px;height:30px}.area-navigation td:last-child{width:10px!important;text-align:right}.area-navigation td:last-child button{color:var(--tc-primary);cursor:pointer;position:relative;top:15px;left:0;border:none;background-color:transparent;font-size:15px;height:30px}.tc-menu{display:flex;align-items:center;overflow:hidden;margin-bottom:5px;z-index:1;position:relative}.hr-border-bottom{border-bottom:none;border-left:none;border-right:none;margin-top:0!important;border-top:1px solid #ccc;margin-bottom:0}@media (max-width: 1440px){.area-navigation{display:block!important;position:relative;top:0;height:2px}.tc-menu{margin-left:15px;margin-right:15px}}.tab-full{margin-left:0!important;margin-right:0!important}\n"] }]
461
489
  }], ctorParameters: function () { return [{ type: TabMenuService }]; }, propDecorators: { scroll: [{
462
490
  type: Input
463
491
  }], background: [{
@@ -4598,14 +4626,18 @@ class TCloudUiTooltipDirective {
4598
4626
  };
4599
4627
  let hoverOutCallback = () => {
4600
4628
  this.remove = true;
4601
- const customDiv = document.querySelector('.tc-directive-tooltip');
4602
- if (customDiv) {
4603
- customDiv.remove();
4629
+ const customDivAll = document.querySelectorAll('.tc-directive-tooltip');
4630
+ if (customDivAll && customDivAll.length > 0) {
4631
+ customDivAll.forEach((_customDiv) => {
4632
+ if (_customDiv) {
4633
+ _customDiv.remove();
4634
+ }
4635
+ });
4604
4636
  }
4605
4637
  };
4606
4638
  hoverOutCallback;
4607
4639
  setTimeout(() => {
4608
- const scrollTop = window.scrollY || window.pageYOffset;
4640
+ const scrollTop = window?.scrollY || window?.pageYOffset;
4609
4641
  const tooltip = this.renderer.createElement('div');
4610
4642
  const rect = this.el.nativeElement?.getBoundingClientRect();
4611
4643
  // const direction = this.el.nativeElement?.attributes['ng-reflect--t-cdirection']?.value || 'top';
@@ -4642,15 +4674,17 @@ class TCloudUiTooltipDirective {
4642
4674
  }
4643
4675
  onMouseOut(event) {
4644
4676
  this.remove = true;
4645
- this.remove_tooltip(document.querySelector('.tc-directive-tooltip'));
4646
- }
4647
- remove_tooltip(customDiv) {
4648
- if (customDiv) {
4677
+ const customDivAll = document.querySelectorAll('.tc-directive-tooltip');
4678
+ if (customDivAll && customDivAll.length > 0) {
4649
4679
  setTimeout(() => {
4650
4680
  if (this.remove) {
4651
- customDiv.remove();
4681
+ customDivAll.forEach((_customDiv) => {
4682
+ if (_customDiv) {
4683
+ _customDiv.remove();
4684
+ }
4685
+ });
4652
4686
  }
4653
- }, 30);
4687
+ }, 25);
4654
4688
  }
4655
4689
  }
4656
4690
  set TCtooltip(tooltip) {