ca-components 1.0.70 → 1.0.72

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.
Files changed (119) hide show
  1. package/esm2022/lib/ca-components.module.mjs +7 -1
  2. package/esm2022/lib/components/ca-chart/ca-chart.component.mjs +331 -118
  3. package/esm2022/lib/components/ca-chart/enums/chart-colors.enum.mjs +1 -1
  4. package/esm2022/lib/components/ca-chart/enums/chart-event-types.enum.mjs +1 -1
  5. package/esm2022/lib/components/ca-chart/enums/chart-font-properties.enum.mjs +1 -1
  6. package/esm2022/lib/components/ca-chart/enums/chart-plugin-ids.enum.mjs +2 -1
  7. package/esm2022/lib/components/ca-chart/models/chart-annotation.model.mjs +1 -1
  8. package/esm2022/lib/components/ca-chart/models/chart-base-dataset.model.mjs +1 -1
  9. package/esm2022/lib/components/ca-chart/models/chart-center-label.model.mjs +2 -0
  10. package/esm2022/lib/components/ca-chart/models/chart-config.model.mjs +1 -1
  11. package/esm2022/lib/components/ca-chart/models/chart-dataset-hover.model.mjs +2 -0
  12. package/esm2022/lib/components/ca-chart/models/chart-line-dataset.model.mjs +1 -1
  13. package/esm2022/lib/components/ca-chart/models/index.mjs +3 -1
  14. package/esm2022/lib/components/ca-chart/utils/constants/chart.constants.mjs +4 -0
  15. package/esm2022/lib/components/ca-chart/utils/constants/index.mjs +2 -0
  16. package/esm2022/lib/components/ca-chart/utils/helpers/chart.helper.mjs +74 -6
  17. package/esm2022/lib/components/ca-chart-manager/ca-chart-manager.component.mjs +108 -0
  18. package/esm2022/lib/components/ca-chart-manager/models/hover-state.model.mjs +2 -0
  19. package/esm2022/lib/components/ca-chart-manager/models/index.mjs +2 -0
  20. package/esm2022/lib/components/ca-chart-manager/services/chart-manager.service.mjs +21 -0
  21. package/esm2022/lib/components/ca-chart-manager/services/index.mjs +2 -0
  22. package/esm2022/lib/components/ca-dropdown-menu/ca-dropdown-menu.component.mjs +2 -1
  23. package/esm2022/lib/components/ca-dropdown-menu/models/dropdown-menu-option-emit.model.mjs +2 -0
  24. package/esm2022/lib/components/ca-dropdown-menu/models/index.mjs +2 -2
  25. package/esm2022/lib/components/ca-period-content/components/ca-period-content-payment/ca-period-content-payment.component.mjs +1 -1
  26. package/esm2022/lib/components/ca-pickup-delivery-block/components/ca-load/components/ca-load-single/ca-load-single.component.mjs +1 -1
  27. package/esm2022/lib/components/ca-tooltip-list/ca-tooltip-list.component.mjs +5 -4
  28. package/esm2022/lib/components/ca-tooltip-list/models/tooltip-list-item.model.mjs +1 -1
  29. package/esm2022/lib/components/ca-tooltip-list/models/tooltip-list.model.mjs +1 -1
  30. package/esm2022/lib/utils/helpers/dropdown-menu-content-conditional-items.helper.mjs +1 -1
  31. package/esm2022/lib/utils/helpers/dropdown-menu-content.helper.mjs +3 -1
  32. package/esm2022/public-api.mjs +2 -1
  33. package/fesm2022/ca-components.mjs +530 -129
  34. package/fesm2022/ca-components.mjs.map +1 -1
  35. package/lib/ca-components.module.d.ts +7 -6
  36. package/lib/components/ca-chart/ca-chart.component.d.ts +18 -10
  37. package/lib/components/ca-chart/enums/chart-colors.enum.d.ts +2 -1
  38. package/lib/components/ca-chart/enums/chart-plugin-ids.enum.d.ts +2 -1
  39. package/lib/components/ca-chart/models/chart-annotation.model.d.ts +1 -1
  40. package/lib/components/ca-chart/models/chart-base-dataset.model.d.ts +5 -2
  41. package/lib/components/ca-chart/models/chart-center-label.model.d.ts +11 -0
  42. package/lib/components/ca-chart/models/chart-config.model.d.ts +10 -3
  43. package/lib/components/ca-chart/models/chart-dataset-hover.model.d.ts +5 -0
  44. package/lib/components/ca-chart/models/chart-line-dataset.model.d.ts +0 -3
  45. package/lib/components/ca-chart/models/index.d.ts +2 -0
  46. package/lib/components/ca-chart/utils/constants/chart.constants.d.ts +3 -0
  47. package/lib/components/ca-chart/utils/constants/index.d.ts +1 -0
  48. package/lib/components/ca-chart/utils/helpers/chart.helper.d.ts +7 -1
  49. package/lib/components/ca-chart-manager/ca-chart-manager.component.d.ts +27 -0
  50. package/lib/components/ca-chart-manager/models/hover-state.model.d.ts +4 -0
  51. package/lib/components/ca-chart-manager/models/index.d.ts +1 -0
  52. package/lib/components/ca-chart-manager/services/chart-manager.service.d.ts +10 -0
  53. package/lib/components/ca-chart-manager/services/index.d.ts +1 -0
  54. package/lib/components/ca-dropdown-menu/ca-dropdown-menu.component.d.ts +2 -2
  55. package/lib/components/ca-dropdown-menu/models/{dropdown-option-emit.model.d.ts → dropdown-menu-option-emit.model.d.ts} +1 -1
  56. package/lib/components/ca-dropdown-menu/models/index.d.ts +1 -1
  57. package/lib/components/ca-filters/ca-filter.component.d.ts +2 -2
  58. package/lib/components/ca-period-content/components/ca-period-content-payment/ca-period-content-payment.component.d.ts +3 -3
  59. package/lib/components/ca-pickup-delivery-block/components/ca-load/components/ca-load-single/ca-load-single.component.d.ts +2 -2
  60. package/lib/components/ca-tooltip-list/ca-tooltip-list.component.d.ts +1 -1
  61. package/lib/components/ca-tooltip-list/models/tooltip-list-item.model.d.ts +0 -1
  62. package/lib/components/ca-tooltip-list/models/tooltip-list.model.d.ts +1 -3
  63. package/package.json +1 -1
  64. package/public-api.d.ts +1 -0
  65. package/src/assets/ca-components/svg/common/states/ic_alabama.svg +3 -0
  66. package/src/assets/ca-components/svg/common/states/ic_alaska.svg +14 -0
  67. package/src/assets/ca-components/svg/common/states/ic_arizona.svg +3 -0
  68. package/src/assets/ca-components/svg/common/states/ic_arkansas.svg +3 -0
  69. package/src/assets/ca-components/svg/common/states/ic_california.svg +3 -0
  70. package/src/assets/ca-components/svg/common/states/ic_colorado.svg +3 -0
  71. package/src/assets/ca-components/svg/common/states/ic_connecticut.svg +3 -0
  72. package/src/assets/ca-components/svg/common/states/ic_delaware.svg +3 -0
  73. package/src/assets/ca-components/svg/common/states/ic_florida.svg +3 -0
  74. package/src/assets/ca-components/svg/common/states/ic_georgia.svg +3 -0
  75. package/src/assets/ca-components/svg/common/states/ic_hawaii.svg +10 -0
  76. package/src/assets/ca-components/svg/common/states/ic_idaho.svg +3 -0
  77. package/src/assets/ca-components/svg/common/states/ic_illinois.svg +3 -0
  78. package/src/assets/ca-components/svg/common/states/ic_indiana.svg +3 -0
  79. package/src/assets/ca-components/svg/common/states/ic_iowa.svg +3 -0
  80. package/src/assets/ca-components/svg/common/states/ic_kansas.svg +3 -0
  81. package/src/assets/ca-components/svg/common/states/ic_kentucky.svg +3 -0
  82. package/src/assets/ca-components/svg/common/states/ic_louisiana.svg +4 -0
  83. package/src/assets/ca-components/svg/common/states/ic_maine.svg +9 -0
  84. package/src/assets/ca-components/svg/common/states/ic_maryland.svg +7 -0
  85. package/src/assets/ca-components/svg/common/states/ic_massachusetts.svg +7 -0
  86. package/src/assets/ca-components/svg/common/states/ic_michigan.svg +11 -0
  87. package/src/assets/ca-components/svg/common/states/ic_minnesota.svg +4 -0
  88. package/src/assets/ca-components/svg/common/states/ic_mississippi.svg +3 -0
  89. package/src/assets/ca-components/svg/common/states/ic_missouri.svg +3 -0
  90. package/src/assets/ca-components/svg/common/states/ic_montana.svg +3 -0
  91. package/src/assets/ca-components/svg/common/states/ic_nebraska.svg +3 -0
  92. package/src/assets/ca-components/svg/common/states/ic_nevada.svg +3 -0
  93. package/src/assets/ca-components/svg/common/states/ic_new_hampshire.svg +3 -0
  94. package/src/assets/ca-components/svg/common/states/ic_new_jersey.svg +5 -0
  95. package/src/assets/ca-components/svg/common/states/ic_new_mexico.svg +3 -0
  96. package/src/assets/ca-components/svg/common/states/ic_new_york.svg +4 -0
  97. package/src/assets/ca-components/svg/common/states/ic_north_carolina.svg +3 -0
  98. package/src/assets/ca-components/svg/common/states/ic_north_dakota.svg +3 -0
  99. package/src/assets/ca-components/svg/common/states/ic_ohio.svg +4 -0
  100. package/src/assets/ca-components/svg/common/states/ic_oklahoma.svg +3 -0
  101. package/src/assets/ca-components/svg/common/states/ic_oregon.svg +3 -0
  102. package/src/assets/ca-components/svg/common/states/ic_pennsylvania.svg +3 -0
  103. package/src/assets/ca-components/svg/common/states/ic_rhode_island.svg +8 -0
  104. package/src/assets/ca-components/svg/common/states/ic_south_carolina.svg +3 -0
  105. package/src/assets/ca-components/svg/common/states/ic_south_dakota.svg +3 -0
  106. package/src/assets/ca-components/svg/common/states/ic_tennessee.svg +3 -0
  107. package/src/assets/ca-components/svg/common/states/ic_texas.svg +3 -0
  108. package/src/assets/ca-components/svg/common/states/ic_utah.svg +3 -0
  109. package/src/assets/ca-components/svg/common/states/ic_vermont.svg +7 -0
  110. package/src/assets/ca-components/svg/common/states/ic_virginia.svg +4 -0
  111. package/src/assets/ca-components/svg/common/states/ic_washington.svg +15 -0
  112. package/src/assets/ca-components/svg/common/states/ic_west_virginia.svg +3 -0
  113. package/src/assets/ca-components/svg/common/states/ic_wisconsin.svg +4 -0
  114. package/src/assets/ca-components/svg/common/states/ic_wyoming.svg +3 -0
  115. package/esm2022/lib/components/ca-chart/config/ca-base-chart-dataset.config.mjs +0 -10
  116. package/esm2022/lib/components/ca-chart/config/index.mjs +0 -2
  117. package/esm2022/lib/components/ca-dropdown-menu/models/dropdown-option-emit.model.mjs +0 -2
  118. package/lib/components/ca-chart/config/ca-base-chart-dataset.config.d.ts +0 -4
  119. package/lib/components/ca-chart/config/index.d.ts +0 -1
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Pipe, Component, Input, TemplateRef, Host, ViewChild, EventEmitter, ViewEncapsulation, ChangeDetectionStrategy, Output, Injectable, Directive, HostListener, Inject, forwardRef, ViewContainerRef, CUSTOM_ELEMENTS_SCHEMA, Self, ViewChildren, Injector, NgModule } from '@angular/core';
2
+ import { Pipe, Component, Input, TemplateRef, Host, ViewChild, EventEmitter, ViewEncapsulation, ChangeDetectionStrategy, Output, Injectable, Directive, HostListener, Inject, forwardRef, ViewContainerRef, CUSTOM_ELEMENTS_SCHEMA, Self, ViewChildren, Injector, Optional, NgModule } from '@angular/core';
3
3
  import * as i1 from '@angular/common';
4
4
  import { CommonModule, DatePipe, NgTemplateOutlet } from '@angular/common';
5
5
  import * as i3 from '@ng-bootstrap/ng-bootstrap';
@@ -1019,6 +1019,7 @@ var StatusTypeEnum;
1019
1019
  class DropdownMenuContentHelper {
1020
1020
  // payroll - period content payment component
1021
1021
  static getPayrollDropdownContent(isOpenPayroll) {
1022
+ // requested items
1022
1023
  const requestedSharedItems = isOpenPayroll
1023
1024
  ? []
1024
1025
  : [
@@ -1026,6 +1027,7 @@ class DropdownMenuContentHelper {
1026
1027
  DropdownMenuStringEnum$1.SHARE,
1027
1028
  DropdownMenuStringEnum$1.PRINT,
1028
1029
  ];
1030
+ // items
1029
1031
  const sharedItems = DropdownMenuContentConditionalItemsHelper.getConditionalItems(requestedSharedItems, true);
1030
1032
  return [...sharedItems];
1031
1033
  }
@@ -16834,6 +16836,7 @@ class CaDropdownMenuComponent {
16834
16836
  }
16835
16837
  }
16836
16838
  handleDropdownOpenCloseClick(dropdownPopover) {
16839
+ this.activeInnerDropdownOptionIndex = -1;
16837
16840
  if (dropdownPopover.isOpen()) {
16838
16841
  dropdownPopover.close();
16839
16842
  this.dropdownPopover = null;
@@ -23205,6 +23208,7 @@ var ChartPluginIdsStringEnum;
23205
23208
  (function (ChartPluginIdsStringEnum) {
23206
23209
  ChartPluginIdsStringEnum["HIGHLIGHT_SEGMENT_ON_HOVER"] = "highlightSegmentOnHover";
23207
23210
  ChartPluginIdsStringEnum["HIGHLIGHT_POINT_ON_HOVER"] = "highlightPointOnHover";
23211
+ ChartPluginIdsStringEnum["BORDER_BOTTOM_LINE_CHART"] = "borderBottomLineChart";
23208
23212
  })(ChartPluginIdsStringEnum || (ChartPluginIdsStringEnum = {}));
23209
23213
 
23210
23214
  var ChartEventTypesStringEnum;
@@ -23261,17 +23265,35 @@ class ChartHelper {
23261
23265
  else
23262
23266
  return rgb;
23263
23267
  }
23268
+ static changeOpacityOfRgbOrRgba(color, opacity) {
23269
+ const rgbaRegex = /^rgba?\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})(?:,\s*(\d?\.?\d+))?\)$/;
23270
+ const match = color.match(rgbaRegex);
23271
+ if (match) {
23272
+ const red = parseInt(match[1], 10);
23273
+ const green = parseInt(match[2], 10);
23274
+ const blue = parseInt(match[3], 10);
23275
+ return `rgba(${red}, ${green}, ${blue}, ${opacity})`;
23276
+ }
23277
+ return color;
23278
+ }
23264
23279
  static calculateMinValue(data) {
23265
23280
  return Math.min(...data);
23266
23281
  }
23267
23282
  static calculateMaxValue(data) {
23268
23283
  return Math.max(...data);
23269
23284
  }
23270
- static createGradient(chartContext, chartCanvas, color, color2) {
23285
+ static createGradient(chartContext, chartCanvas, color, color2, opacityColor1 = 1, opacityColor2 = 1, areColorsInRgbaFormat = false) {
23271
23286
  const gradient = chartContext.createLinearGradient(0, 0, 0, chartCanvas.nativeElement.height);
23272
- const opacity = 0.4;
23273
- const fillColorTop = this.hexToRgba(color, opacity);
23274
- const fillColorBottom = this.hexToRgba(color2, 1);
23287
+ let fillColorTop = '';
23288
+ let fillColorBottom = '';
23289
+ if (areColorsInRgbaFormat) {
23290
+ fillColorTop = this.changeOpacityOfRgbOrRgba(color, opacityColor1);
23291
+ fillColorBottom = this.changeOpacityOfRgbOrRgba(color2, opacityColor2);
23292
+ }
23293
+ else {
23294
+ fillColorTop = this.hexToRgba(color, opacityColor1);
23295
+ fillColorBottom = this.hexToRgba(color2, opacityColor2);
23296
+ }
23275
23297
  gradient.addColorStop(0, fillColorTop);
23276
23298
  gradient.addColorStop(0.8, fillColorBottom);
23277
23299
  return gradient;
@@ -23314,15 +23336,47 @@ class ChartHelper {
23314
23336
  ctx.fill();
23315
23337
  ctx.restore();
23316
23338
  }
23339
+ // This is a dumb function whose only function is only to position legend elements one below under
23340
+ // Call it in ngFor
23341
+ static drawDoughnutLegend(chart, position, text,
23342
+ // Initial idea
23343
+ fontSize = 18, color = '#424242') {
23344
+ const { ctx } = chart;
23345
+ if (!ctx)
23346
+ return;
23347
+ ctx.save();
23348
+ const datasetMeta = chart.getDatasetMeta(0);
23349
+ const xCoord = datasetMeta?.data[0]?.x;
23350
+ const yCoord = datasetMeta?.data[0]?.y / 3 * 2 +
23351
+ position.indx * 20 +
23352
+ position.offsetTop;
23353
+ if (xCoord === undefined || yCoord == undefined)
23354
+ return;
23355
+ ctx.font = `bold ${fontSize}px sans-serif`;
23356
+ ctx.fillStyle = color;
23357
+ ctx.textAlign = 'center';
23358
+ ctx.textBaseline = 'middle';
23359
+ ctx.fillText(text, xCoord, yCoord);
23360
+ ctx.restore();
23361
+ }
23317
23362
  static highlightPoint(ctx, chart, index, chartData) {
23318
23363
  chartData.datasets.forEach((dataset, datasetIndex) => {
23319
23364
  const meta = chart.getDatasetMeta(datasetIndex);
23365
+ if (!meta || !meta.data[index])
23366
+ return;
23320
23367
  const point = meta.data[index];
23368
+ const yScale = chart.scales[dataset.yAxisID || 'y-axis-0'];
23369
+ const xScale = chart.scales['x'];
23370
+ const value = dataset.data[index];
23371
+ if (value === undefined || value === null)
23372
+ return;
23373
+ const xPixel = xScale.getPixelForValue(index);
23374
+ const yPixel = Math.abs(yScale.getPixelForValue(value));
23321
23375
  if (!point)
23322
23376
  return;
23323
23377
  ctx.save();
23324
23378
  ctx.beginPath();
23325
- ctx.arc(point.x, point.y, 4, 0, 2 * Math.PI);
23379
+ ctx.arc(xPixel, yPixel, 4, 0, 2 * Math.PI);
23326
23380
  ctx.fillStyle = "#FFFFFF" /* ChartColorsStringEnum.WHITE */;
23327
23381
  ctx.fill();
23328
23382
  ctx.lineWidth = 2;
@@ -23338,6 +23392,24 @@ class ChartHelper {
23338
23392
  const segmentStart = tickPositions[index] - segmentWidth / 2;
23339
23393
  return { segmentStart, segmentWidth };
23340
23394
  }
23395
+ static convertRgbToRgba(colorValue, alpha = 1) {
23396
+ if (alpha < 0 || alpha > 1)
23397
+ return colorValue;
23398
+ const rgbaMatch = colorValue.match(/rgba\((\d+),\s*(\d+),\s*(\d+),\s*(\d+(\.\d+)?)\)/);
23399
+ if (rgbaMatch) {
23400
+ const [, r, g, b] = rgbaMatch;
23401
+ // Return updated RGBA with the new alpha
23402
+ return `rgba(${r}, ${g}, ${b}, ${alpha})`;
23403
+ }
23404
+ // Extract the RGB values using a regular expression
23405
+ const rgbMatch = colorValue.match(/rgb\((\d+),\s*(\d+),\s*(\d+)\)/);
23406
+ if (!rgbMatch)
23407
+ return colorValue;
23408
+ // Destructure the matched values
23409
+ const [, r, g, b] = rgbMatch;
23410
+ // Return the RGBA string
23411
+ return `rgba(${r}, ${g}, ${b}, ${alpha})`;
23412
+ }
23341
23413
  }
23342
23414
 
23343
23415
  class ChartTypeGuard {
@@ -23347,21 +23419,40 @@ class ChartTypeGuard {
23347
23419
  }
23348
23420
  }
23349
23421
 
23350
- class CaBaseChartDatasetConfig {
23351
- static getBaseChartDatasetConfig() {
23352
- return {
23353
- type: "line" /* ChartTypesStringEnum.LINE */,
23354
- label: '',
23355
- data: [],
23356
- };
23422
+ class ChartConstants {
23423
+ static { this.STRING_EMPTY = ''; }
23424
+ }
23425
+
23426
+ class ChartManagerService {
23427
+ constructor() {
23428
+ this.hoverStateSubject = new BehaviorSubject({
23429
+ index: null,
23430
+ chartId: null,
23431
+ });
23432
+ this.hoverState$ = this.hoverStateSubject.asObservable();
23357
23433
  }
23434
+ setHoverState(index, chartId) {
23435
+ this.hoverStateSubject.next({ index, chartId });
23436
+ }
23437
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ChartManagerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
23438
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ChartManagerService }); }
23358
23439
  }
23440
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ChartManagerService, decorators: [{
23441
+ type: Injectable
23442
+ }] });
23359
23443
 
23360
23444
  class CaChartComponent {
23445
+ set chartDatasetHover(value) {
23446
+ if (value)
23447
+ this.updateDatasetBackgroundOnHover(value);
23448
+ }
23361
23449
  set chartConfig(value) {
23362
23450
  this._chartConfig = value;
23363
23451
  this.isChartDataAvailable = false;
23364
- this._chartConfig.chartData.datasets.forEach((item) => {
23452
+ this._chartConfig?.
23453
+ chartData?.
23454
+ datasets?.
23455
+ forEach((item) => {
23365
23456
  item.data.forEach((value) => {
23366
23457
  if (Array.isArray(value)) {
23367
23458
  if (value[0] !== 0 || value[1] !== 0)
@@ -23371,21 +23462,29 @@ class CaChartComponent {
23371
23462
  this.isChartDataAvailable = true;
23372
23463
  });
23373
23464
  });
23374
- }
23375
- //for testing hover state on dataset
23376
- set isDatasetHovered(value) {
23377
- this._isDatasetHovered = value;
23378
- if (this.chart) {
23379
- this.updateDatasetBackgroundOnHover('Sales', '#6692F1', this._isDatasetHovered);
23380
- }
23381
- }
23382
- constructor() {
23383
- this.originalChartDataset = CaBaseChartDatasetConfig.getBaseChartDatasetConfig();
23384
- this.isChartDataAvailable = true;
23385
- }
23386
- ngOnChanges(changes) {
23387
- if (this.isChartDataAvailable && !changes['chartConfig'].firstChange)
23465
+ this.changeDetector.detectChanges();
23466
+ if (this.isChartDataAvailable)
23388
23467
  this.updateChart();
23468
+ this._chartConfig.chartData.datasets.forEach((item) => {
23469
+ item.data.forEach((value) => {
23470
+ if (Array.isArray(value)) {
23471
+ if (value[0] !== 0 || value[1] !== 0)
23472
+ this.isChartDataAvailable = true;
23473
+ }
23474
+ else {
23475
+ if (value !== 0)
23476
+ this.isChartDataAvailable = true;
23477
+ }
23478
+ });
23479
+ });
23480
+ }
23481
+ constructor(changeDetector, chartManagerService) {
23482
+ this.changeDetector = changeDetector;
23483
+ this.chartManagerService = chartManagerService;
23484
+ this.hoveredIndex = new EventEmitter();
23485
+ this.areAnimationsCompleated = false;
23486
+ this._hoveredIndex = null;
23487
+ this.isChartDataAvailable = false;
23389
23488
  }
23390
23489
  ngAfterViewInit() {
23391
23490
  if (this.isChartDataAvailable) {
@@ -23393,77 +23492,145 @@ class CaChartComponent {
23393
23492
  this.createChart();
23394
23493
  }
23395
23494
  }
23495
+ ngOnInit() {
23496
+ this.initializeChartManagerService();
23497
+ }
23498
+ initializeChartManagerService() {
23499
+ if (!this.chartManagerService)
23500
+ return;
23501
+ this.subscription = this.chartManagerService.hoverState$.subscribe(({ index, chartId }) => {
23502
+ if (chartId !== this.chartId) {
23503
+ this._hoveredIndex = index;
23504
+ if (this.chart)
23505
+ this.chart.draw();
23506
+ }
23507
+ });
23508
+ }
23396
23509
  initializeAnnotationPlugin() {
23397
23510
  Chart.register(annotationPlugin);
23398
23511
  }
23399
- updateDatasetBackgroundOnHover(dataSetLabel, color, isDatasetHovered) {
23400
- if (isDatasetHovered) {
23401
- this.originalChartDataset = JSON.parse(JSON.stringify(this._chartConfig.chartData.datasets));
23402
- const gradient = ChartHelper.createGradient(this.chartContext, this.chartCanvas, color, color);
23403
- this._chartConfig.chartData.datasets =
23404
- this._chartConfig.chartData.datasets.map((dataset) => {
23405
- if (dataset.label === dataSetLabel) {
23406
- return {
23407
- ...dataset,
23408
- fill: true,
23409
- backgroundColor: gradient,
23410
- borderColor: color,
23411
- };
23412
- }
23413
- else {
23414
- const borderColorWithOpacity = ChartHelper.rgbToRgba(dataset.borderColor, 0.2);
23415
- return {
23416
- ...dataset,
23417
- fill: false,
23418
- borderColor: borderColorWithOpacity,
23419
- };
23420
- }
23421
- });
23512
+ updateDatasetBackgroundOnHover(chartDatasetHover) {
23513
+ if (!this.chart || !this.chart.data.datasets)
23514
+ return;
23515
+ if (chartDatasetHover.isHoverd) {
23516
+ const gradient = ChartHelper.createGradient(this.chartContext, this.chartCanvas, chartDatasetHover.color, chartDatasetHover.color, 0.6, 0.1, true);
23517
+ this.chart.data.datasets = this.chart.data.datasets.map((dataset) => {
23518
+ if (dataset.hidden)
23519
+ return dataset;
23520
+ if (dataset.label?.toUpperCase() === chartDatasetHover.label.toUpperCase()) {
23521
+ const hoverdDataSet = {
23522
+ ...dataset,
23523
+ fill: true,
23524
+ backgroundColor: gradient,
23525
+ borderColor: chartDatasetHover.color,
23526
+ order: 1,
23527
+ };
23528
+ return hoverdDataSet;
23529
+ }
23530
+ else {
23531
+ const borderColorWithOpacity = ChartHelper.changeOpacityOfRgbOrRgba(dataset.borderColor, 0.2);
23532
+ return {
23533
+ ...dataset,
23534
+ fill: false,
23535
+ borderColor: borderColorWithOpacity,
23536
+ };
23537
+ }
23538
+ });
23539
+ }
23540
+ else {
23541
+ this.chart.data.datasets = this.chart.data.datasets.map((dataset) => {
23542
+ if (!dataset.hidden) {
23543
+ const originalColor = dataset.borderColor
23544
+ ? ChartHelper.changeOpacityOfRgbOrRgba(dataset.borderColor, 1)
23545
+ : ChartConstants.STRING_EMPTY;
23546
+ return {
23547
+ ...dataset,
23548
+ fill: false,
23549
+ borderColor: originalColor,
23550
+ backgroundColor: ChartConstants.STRING_EMPTY,
23551
+ };
23552
+ }
23553
+ else
23554
+ return dataset;
23555
+ });
23422
23556
  }
23423
- else
23424
- this._chartConfig.chartData.datasets = JSON.parse(JSON.stringify(this.originalChartDataset));
23425
23557
  this.chart.update();
23426
23558
  }
23427
23559
  createChart() {
23428
- this.chartContext = this.chartCanvas.nativeElement.getContext('2d');
23560
+ this.chartContext = this.chartCanvas?.
23561
+ nativeElement?.
23562
+ getContext('2d');
23429
23563
  this.setChartOptionsProperties();
23430
23564
  this.setChartDataProperties();
23431
23565
  this.setChartPluginsProperties();
23566
+ if (this.chart)
23567
+ this.chart.destroy();
23568
+ this.initializeAnnotationPlugin();
23569
+ if (this._chartConfig.chartType === "doughnut" /* ChartTypesStringEnum.DOUGHNUT */)
23570
+ Chart.overrides.doughnut.cutout = '80%';
23432
23571
  this.chart = new Chart(this.chartContext, {
23433
23572
  type: this._chartConfig.chartType,
23434
23573
  data: this._chartConfig.chartData,
23435
23574
  options: this._chartConfig.chartOptions,
23436
23575
  plugins: this.plugins,
23437
23576
  });
23438
- this.chart.config.data.datasets = [
23439
- ...this._chartConfig?.
23440
- chartData?.
23441
- datasets?.map((item, indx) => {
23442
- if (!item.shiftValue)
23443
- return {
23577
+ if (!this._chartConfig.isDashboardChart) {
23578
+ this.chart.config.data.datasets = [
23579
+ ...this._chartConfig?.
23580
+ chartData?.
23581
+ datasets?.
23582
+ map((item, indx) => {
23583
+ const pointConfig = {
23584
+ pointBackgroundColor: "#FFFFFF" /* ChartColorsStringEnum.WHITE */,
23585
+ pointBorderWidth: 2,
23586
+ pointRadius: 3,
23587
+ };
23588
+ this.updateChartAnnotations(item, indx);
23589
+ const yScale = this.chart.scales[EChartEventProperties.Y_AXIS_0];
23590
+ const datasetConfig = {
23444
23591
  ...item,
23592
+ pointBorderColor: item.color,
23593
+ ...pointConfig,
23445
23594
  backgroundColor: item?.color &&
23446
23595
  item?.color2 &&
23447
23596
  item?.color !== item?.color2 ?
23448
23597
  ChartHelper.createGradient(this.chartContext, this.chartCanvas, item?.color, item?.color2) : item?.color,
23449
23598
  fill: item?.fill
23450
23599
  };
23451
- this.updateChartAnnotations(item, indx);
23452
- const yScale = this.chart.scales[EChartEventProperties.Y_AXIS_0];
23453
- const shiftValuePx = yScale.getPixelForValue(item.shiftValue || 0);
23454
- const shiftValueAdjusted = shiftValuePx / yScale.maxHeight;
23455
- return {
23456
- ...item,
23457
- backgroundColor: ChartHelper.createGradientWithShiftValue(this.chartContext, yScale.maxHeight, item.color || '', item.color2 || '', shiftValueAdjusted, true),
23458
- borderColor: ChartHelper.createGradientWithShiftValue(this.chartContext, yScale.maxHeight, item.color || '', item.color2 || '', shiftValueAdjusted),
23459
- fill: true
23460
- };
23461
- })
23462
- ];
23600
+ if (this._chartConfig.chartType === "doughnut" /* ChartTypesStringEnum.DOUGHNUT */) {
23601
+ return {
23602
+ ...datasetConfig,
23603
+ backgroundColor: item.backgroundColor
23604
+ };
23605
+ }
23606
+ if (!item.shiftValue) {
23607
+ return {
23608
+ ...datasetConfig,
23609
+ backgroundColor: item?.color &&
23610
+ item?.color2 &&
23611
+ item?.color !== item?.color2 ?
23612
+ ChartHelper.createGradient(this.chartContext, this.chartCanvas, item?.color, item?.color2) : item?.color,
23613
+ };
23614
+ }
23615
+ const shiftValuePx = yScale.getPixelForValue(item.shiftValue || 0);
23616
+ const shiftValueAdjusted = shiftValuePx / yScale.maxHeight;
23617
+ const borderColor = ChartHelper.createGradientWithShiftValue(this.chartContext, yScale.maxHeight, item.color || ChartConstants.STRING_EMPTY, item.color2 || ChartConstants.STRING_EMPTY, shiftValueAdjusted);
23618
+ return {
23619
+ ...item,
23620
+ ...pointConfig,
23621
+ pointBorderColor: borderColor,
23622
+ backgroundColor: ChartHelper.createGradientWithShiftValue(this.chartContext, yScale.maxHeight, item.color || ChartConstants.STRING_EMPTY, item.color2 || ChartConstants.STRING_EMPTY, shiftValueAdjusted, true),
23623
+ borderColor,
23624
+ fill: true
23625
+ };
23626
+ })
23627
+ ];
23628
+ }
23463
23629
  this.chart.update();
23464
23630
  }
23465
23631
  updateChart() {
23466
- this.chart?.destroy();
23632
+ if (this.chart)
23633
+ this.chart?.destroy();
23467
23634
  this.createChart();
23468
23635
  }
23469
23636
  setChartOptionsProperties() {
@@ -23472,16 +23639,37 @@ class CaChartComponent {
23472
23639
  responsive: true,
23473
23640
  maintainAspectRatio: false,
23474
23641
  clip: false,
23642
+ animation: {
23643
+ onComplete: () => {
23644
+ this.areAnimationsCompleated = true;
23645
+ this.chart.draw();
23646
+ },
23647
+ onProgress: () => {
23648
+ this.areAnimationsCompleated = false;
23649
+ this.chart.draw();
23650
+ },
23651
+ },
23475
23652
  layout: {
23476
23653
  padding: {
23477
23654
  top: 0,
23478
- bottom: -25
23479
- }
23655
+ bottom: 0,
23656
+ left: this._chartConfig.chartType === "bar" /* ChartTypesStringEnum.BAR */ &&
23657
+ this._chartConfig.verticalyAlignBarChartWithLineCart
23658
+ ? 6
23659
+ : 0,
23660
+ right: this._chartConfig.chartType === "bar" /* ChartTypesStringEnum.BAR */ &&
23661
+ this._chartConfig.verticalyAlignBarChartWithLineCart
23662
+ ? 6
23663
+ : 0,
23664
+ },
23480
23665
  },
23481
23666
  plugins: {
23482
23667
  legend: {
23483
23668
  display: false,
23484
23669
  },
23670
+ tooltip: {
23671
+ enabled: false,
23672
+ },
23485
23673
  },
23486
23674
  scales: {
23487
23675
  x: {
@@ -23493,6 +23681,7 @@ class CaChartComponent {
23493
23681
  display: false,
23494
23682
  },
23495
23683
  ticks: {
23684
+ display: true,
23496
23685
  padding: 0,
23497
23686
  color: "#919191" /* ChartColorsStringEnum.X_AXIS_LABEL_COLOR */,
23498
23687
  font: {
@@ -23504,7 +23693,7 @@ class CaChartComponent {
23504
23693
  autoSkipPadding: 12,
23505
23694
  maxRotation: 0,
23506
23695
  minRotation: 0,
23507
- //ispis lable u 2 reda za dane - ceka se dizaj za prikaz dana
23696
+ //Label written in 2 lines, will be ujusted with new design
23508
23697
  callback: function (value, index) {
23509
23698
  const label = labels[index];
23510
23699
  const multiLineLabel = label ? label.split(' ') : [];
@@ -23520,20 +23709,44 @@ class CaChartComponent {
23520
23709
  beginAtZero: true,
23521
23710
  min: 0,
23522
23711
  max: 1,
23712
+ offset: false,
23523
23713
  },
23524
23714
  },
23525
- onHover: (event, dataItem) => {
23526
- if (!this._chartConfig.hasVerticalDashedAnnotation)
23527
- return;
23528
- this.resetAnnotations();
23529
- if (!dataItem || !dataItem?.length)
23715
+ onHover: (event, item) => {
23716
+ if (this._chartConfig.hasVerticalDashedAnnotation)
23717
+ this.resetAnnotations();
23718
+ if (this._chartConfig.chartType === "doughnut" /* ChartTypesStringEnum.DOUGHNUT */) {
23719
+ const colors = this.chart.data.datasets[0].backgroundColor;
23720
+ this.chart.data.datasets[0].backgroundColor =
23721
+ colors.map((color) => {
23722
+ return ChartHelper.convertRgbToRgba(color);
23723
+ });
23724
+ this.chart.update();
23725
+ }
23726
+ if (!item ||
23727
+ !item?.length) {
23728
+ this.hoveredIndex.emit(null);
23530
23729
  return;
23531
- this.setVerticalDashedAnnotationLine(dataItem[0].element.x);
23730
+ }
23731
+ this.hoveredIndex.emit(item[0].index);
23732
+ if (this._chartConfig.chartType === "doughnut" /* ChartTypesStringEnum.DOUGHNUT */) {
23733
+ const colors = this.chart.data.datasets[0].backgroundColor;
23734
+ const updatedColors = colors.map((color, indx) => {
23735
+ if (indx === item[0].index)
23736
+ return color;
23737
+ const convertedValue = ChartHelper.convertRgbToRgba(color, 0.2);
23738
+ return convertedValue;
23739
+ });
23740
+ this.chart.data.datasets[0].backgroundColor = updatedColors;
23741
+ }
23742
+ if (this._chartConfig.hasVerticalDashedAnnotation)
23743
+ this.setVerticalDashedAnnotationLine(item[0].element.x);
23744
+ this.chart.update();
23532
23745
  },
23533
23746
  };
23534
23747
  }
23535
23748
  setChartDataProperties() {
23536
- if ((this._chartConfig.chartType = "line" /* ChartTypesStringEnum.LINE */)) {
23749
+ if ((this._chartConfig.chartType === "line" /* ChartTypesStringEnum.LINE */)) {
23537
23750
  this._chartConfig.chartData.datasets.forEach((dataset) => {
23538
23751
  dataset.order = dataset.order;
23539
23752
  if (ChartTypeGuard.isLineDataset(dataset)) {
@@ -23559,43 +23772,110 @@ class CaChartComponent {
23559
23772
  {
23560
23773
  id: ChartPluginIdsStringEnum.HIGHLIGHT_SEGMENT_ON_HOVER,
23561
23774
  afterEvent: (chart, event) => {
23562
- if (!this._chartConfig.showTooltipBackground) {
23775
+ if (!this._chartConfig.showTooltipBackground)
23563
23776
  return;
23564
- }
23565
23777
  const nativeEvent = event.event.native;
23566
- if (event.event.type === ChartEventTypesStringEnum.MOUSE_OUT &&
23567
- hoveredIndex !== null) {
23568
- hoveredIndex = null;
23778
+ if (event.event.type === ChartEventTypesStringEnum.MOUSE_OUT) {
23779
+ const boundingRect = this.chart.canvas.getBoundingClientRect();
23780
+ const isMouseOutsideChart = nativeEvent.clientX < boundingRect.left ||
23781
+ nativeEvent.clientX > boundingRect.right ||
23782
+ nativeEvent.clientY < boundingRect.top ||
23783
+ nativeEvent.clientY > boundingRect.bottom;
23784
+ if (isMouseOutsideChart) {
23785
+ this._hoveredIndex = null;
23786
+ this.chartManagerService?.setHoverState(null, this.chartId);
23787
+ this.chart.draw();
23788
+ }
23789
+ return;
23790
+ }
23791
+ const boundingRect = this.chart.canvas.getBoundingClientRect();
23792
+ const mouseHorizontalCoordinate = nativeEvent.clientX - boundingRect.left;
23793
+ const { left, right } = this.chart.chartArea;
23794
+ if (mouseHorizontalCoordinate < left ||
23795
+ mouseHorizontalCoordinate > right) {
23796
+ this._hoveredIndex = null;
23797
+ this.chartManagerService?.setHoverState(null, this.chartId);
23569
23798
  this.chart.draw();
23570
23799
  return;
23571
23800
  }
23572
- const mouseHorizontalCoordinate = nativeEvent[EChartEventProperties.X];
23573
23801
  const xScale = this.chart.scales[EChartEventProperties.X];
23574
- const tickPositions = ChartHelper.calculateTickPositions(xScale);
23575
- const newHoveredIndex = tickPositions.findIndex((tickPos) => mouseHorizontalCoordinate >
23576
- tickPos - (tickPositions[1] - tickPositions[0]) / 2 &&
23577
- mouseHorizontalCoordinate <=
23578
- tickPos + (tickPositions[1] - tickPositions[0]) / 2);
23579
- if (newHoveredIndex !== hoveredIndex) {
23580
- hoveredIndex = newHoveredIndex === -1 ? null : newHoveredIndex;
23802
+ const tickPositions = xScale.ticks.map((tick) => xScale.getPixelForValue(tick.value));
23803
+ const segmentBoundaries = tickPositions.map((tickPos, index) => {
23804
+ const leftBoundary = index === 0 ? left : (tickPos + tickPositions[index - 1]) / 2;
23805
+ const rightBoundary = index === tickPositions.length - 1
23806
+ ? right
23807
+ : (tickPos + tickPositions[index + 1]) / 2;
23808
+ return { leftBoundary, rightBoundary };
23809
+ });
23810
+ const newHoveredIndex = segmentBoundaries.findIndex((boundary) => mouseHorizontalCoordinate >= boundary.leftBoundary &&
23811
+ mouseHorizontalCoordinate < boundary.rightBoundary);
23812
+ if (newHoveredIndex !== this._hoveredIndex) {
23813
+ this._hoveredIndex = newHoveredIndex === -1 ? null : newHoveredIndex;
23814
+ this.chartManagerService?.setHoverState(this._hoveredIndex, this.chartId);
23581
23815
  this.chart.draw();
23582
23816
  }
23583
23817
  },
23584
23818
  beforeDraw: () => {
23585
- if (hoveredIndex !== null) {
23819
+ if (this._hoveredIndex !== null) {
23586
23820
  const { chartArea, scales: { x: xScale }, } = this.chart;
23587
- ChartHelper.highlightSegment(this.chartContext, xScale, chartArea, this._chartConfig.height, hoveredIndex);
23821
+ ChartHelper.highlightSegment(this.chartContext, xScale, chartArea, this._chartConfig.height, this._hoveredIndex);
23588
23822
  }
23589
23823
  },
23590
23824
  },
23591
23825
  {
23592
23826
  id: ChartPluginIdsStringEnum.HIGHLIGHT_POINT_ON_HOVER,
23593
23827
  afterDraw: () => {
23594
- if (hoveredIndex !== null)
23595
- ChartHelper.highlightPoint(this.chartContext, this.chart, hoveredIndex, this._chartConfig.chartData);
23828
+ if (this._hoveredIndex !== null &&
23829
+ this._chartConfig.showHighlightPointOnHover &&
23830
+ this.areAnimationsCompleated) {
23831
+ const visibleDatasets = this._chartConfig.chartData.datasets.filter((dataset) => !dataset.hidden);
23832
+ ChartHelper.highlightPoint(this.chartContext, this.chart, this._hoveredIndex, { ...this._chartConfig.chartData, datasets: visibleDatasets });
23833
+ }
23834
+ },
23835
+ },
23836
+ {
23837
+ id: ChartPluginIdsStringEnum.BORDER_BOTTOM_LINE_CHART,
23838
+ beforeDraw: () => {
23839
+ if (this._chartConfig?.showBottomLineOnLineChart) {
23840
+ const { ctx, data, chartArea, scales: { x: xScale }, } = this.chart;
23841
+ const dataset = data.datasets[0];
23842
+ const firstIndex = 0;
23843
+ const lastIndex = dataset.data.length - 1;
23844
+ const firstValue = dataset.data[firstIndex];
23845
+ const lastValue = dataset.data[lastIndex];
23846
+ if (firstValue !== undefined && lastValue !== undefined) {
23847
+ const xStart = xScale.getPixelForValue(firstIndex);
23848
+ const xEnd = xScale.getPixelForValue(lastIndex);
23849
+ const yBottom = chartArea.bottom;
23850
+ ctx.save();
23851
+ ctx.strokeStyle =
23852
+ "#DADADA" /* ChartColorsStringEnum.BORDER_BOTTOM_LINE_CHART_COLOR */;
23853
+ ctx.lineWidth = 1;
23854
+ ctx.beginPath();
23855
+ ctx.moveTo(xStart, yBottom);
23856
+ ctx.lineTo(xEnd, yBottom);
23857
+ ctx.stroke();
23858
+ ctx.restore();
23859
+ }
23860
+ }
23596
23861
  },
23597
23862
  },
23598
23863
  ];
23864
+ if (this._chartConfig.chartType === "doughnut" /* ChartTypesStringEnum.DOUGHNUT */)
23865
+ this.plugins = [
23866
+ ...this.plugins,
23867
+ {
23868
+ id: 'doughnut-label',
23869
+ beforeDatasetDraw: (chart) => {
23870
+ this._chartConfig.centerLabels?.map((label, indx) => {
23871
+ ChartHelper.drawDoughnutLegend(chart, {
23872
+ indx,
23873
+ offsetTop: label.position?.top || 0
23874
+ }, label.value, label.fontSize, label.color);
23875
+ });
23876
+ },
23877
+ }
23878
+ ];
23599
23879
  }
23600
23880
  updateChartAnnotations(item, indx) {
23601
23881
  if (!this._chartConfig.annotations?.length)
@@ -23616,7 +23896,7 @@ class CaChartComponent {
23616
23896
  [`${item.label}-${indx}-${key}`]: {
23617
23897
  id: annotation.id || `annotation-${indx}-${key}`,
23618
23898
  type: annotation.type,
23619
- scaleID: annotation.axis || item.yAxisId,
23899
+ scaleID: annotation.axis || item.yAxisID,
23620
23900
  value: annotation.value || item.shiftValue,
23621
23901
  borderColor: annotation.color || '#DADADA',
23622
23902
  borderWidth: annotation.borderWidth || 2,
@@ -23626,37 +23906,45 @@ class CaChartComponent {
23626
23906
  },
23627
23907
  };
23628
23908
  });
23909
+ this.chart.update();
23629
23910
  }
23630
23911
  setMultipleYAxis(chartData) {
23631
23912
  let absoluteMax;
23632
23913
  chartData.datasets.forEach((dataset, index) => {
23633
- if (dataset.type == "line" /* ChartTypesStringEnum.LINE */ ||
23634
- dataset.type == "bar" /* ChartTypesStringEnum.BAR */) {
23914
+ if (dataset.type === "line" /* ChartTypesStringEnum.LINE */ ||
23915
+ dataset.type === "bar" /* ChartTypesStringEnum.BAR */) {
23635
23916
  const yAxisID = this._chartConfig.isMultiYAxis
23636
23917
  ? `y-axis-${index}`
23637
- : dataset.yAxisId || 'y-axis-0';
23638
- chartData.datasets[index] = {
23639
- ...dataset,
23640
- yAxisID,
23641
- };
23642
- const minValue = ChartHelper.calculateMinValue(dataset.data);
23643
- const maxValue = ChartHelper.calculateMaxValue(dataset.data);
23644
- if (!absoluteMax || maxValue > absoluteMax)
23645
- absoluteMax = maxValue;
23918
+ : dataset.yAxisID || 'y-axis-0';
23919
+ // Detect if the dataset is all 0
23920
+ const isAllZeroDataset = dataset.data.every((val) => val === 0);
23921
+ let minValue = ChartHelper.calculateMinValue(dataset.data);
23922
+ let maxValue = ChartHelper.calculateMaxValue(dataset.data);
23646
23923
  const padding = maxValue * 0.03;
23647
- const minValueAdjusted = padding == 0 ? minValue : 0;
23648
- const maxValueAdjusted = absoluteMax + padding;
23924
+ // Adjust scaling for all 0 datasets
23925
+ if (isAllZeroDataset) {
23926
+ minValue = 0;
23927
+ maxValue = 1;
23928
+ }
23929
+ else {
23930
+ minValue = maxValue === minValue ? minValue - 0.1 : minValue;
23931
+ maxValue =
23932
+ maxValue === minValue ? maxValue + 0.1 : maxValue + padding;
23933
+ }
23649
23934
  this._chartConfig.chartOptions.scales = {
23650
23935
  ...this._chartConfig.chartOptions.scales,
23651
23936
  [yAxisID]: {
23652
23937
  display: false,
23653
23938
  beginAtZero: true,
23654
- min: minValueAdjusted,
23655
- max: maxValueAdjusted,
23656
- // Ovo je jako bitno, moramo ovu osu sa stacked parametrom namjestiti
23939
+ min: minValue,
23940
+ max: maxValue,
23657
23941
  stacked: this._chartConfig.isStacked,
23658
23942
  },
23659
23943
  };
23944
+ chartData.datasets[index] = {
23945
+ ...dataset,
23946
+ yAxisID,
23947
+ };
23660
23948
  }
23661
23949
  });
23662
23950
  }
@@ -23695,21 +23983,29 @@ class CaChartComponent {
23695
23983
  },
23696
23984
  },
23697
23985
  };
23698
- this.chart.update();
23699
23986
  }
23700
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CaChartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
23701
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CaChartComponent, isStandalone: true, selector: "app-ca-chart", inputs: { chartConfig: "chartConfig", isDatasetHovered: "isDatasetHovered" }, viewQueries: [{ propertyName: "chartCanvas", first: true, predicate: ["chartCanvas"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"isChartDataAvailable; else noDataTemplate\">\n <div\n [ngStyle]=\"{\n height: _chartConfig.height + 'px',\n width: _chartConfig.width + '%',\n }\"\n >\n <canvas #chartCanvas> </canvas>\n </div>\n</ng-container>\n<ng-template #noDataTemplate>\n <div\n class=\"d-flex justify-content-center align-items-center\"\n [ngStyle]=\"{\n height: _chartConfig.height + 'px',\n width: _chartConfig.width + '%',\n }\"\n >\n <svg-icon\n [src]=\"_chartConfig.noDataImage\"\n alt=\"No data available\"\n class=\"no-data-svg\"\n ></svg-icon>\n </div>\n</ng-template>\n", styles: [".no-data-svg{width:100%;height:auto;max-width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: AngularSvgIconModule }, { kind: "component", type: i2.SvgIconComponent, selector: "svg-icon", inputs: ["src", "name", "stretch", "applyClass", "applyCss", "svgClass", "class", "viewBox", "svgAriaLabel", "svgStyle"] }] }); }
23987
+ ngOnDestroy() {
23988
+ this.subscription?.unsubscribe();
23989
+ }
23990
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CaChartComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: ChartManagerService, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
23991
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CaChartComponent, isStandalone: true, selector: "app-ca-chart", inputs: { chartId: "chartId", chartDatasetHover: "chartDatasetHover", chartConfig: "chartConfig" }, outputs: { hoveredIndex: "hoveredIndex" }, viewQueries: [{ propertyName: "chartCanvas", first: true, predicate: ["chartCanvas"], descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"isChartDataAvailable; else noDataTemplate\">\n <div\n [ngStyle]=\"{\n height: _chartConfig.height + 'px',\n width: _chartConfig.width + '%',\n }\"\n >\n <canvas #chartCanvas></canvas>\n </div>\n</ng-container>\n<ng-template #noDataTemplate>\n <div\n class=\"d-flex justify-content-center align-items-center\"\n [ngStyle]=\"{\n height: _chartConfig.height + 'px',\n width: _chartConfig.width + '%',\n }\"\n >\n <svg-icon\n [src]=\"_chartConfig.noDataImage\"\n alt=\"No data available\"\n class=\"no-data-svg\"\n ></svg-icon>\n </div>\n</ng-template>\n", styles: [".no-data-svg{width:100%;height:auto;max-width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: AngularSvgIconModule }, { kind: "component", type: i2.SvgIconComponent, selector: "svg-icon", inputs: ["src", "name", "stretch", "applyClass", "applyCss", "svgClass", "class", "viewBox", "svgAriaLabel", "svgStyle"] }] }); }
23702
23992
  }
23703
23993
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CaChartComponent, decorators: [{
23704
23994
  type: Component,
23705
- args: [{ selector: 'app-ca-chart', standalone: true, imports: [CommonModule, AngularSvgIconModule], template: "<ng-container *ngIf=\"isChartDataAvailable; else noDataTemplate\">\n <div\n [ngStyle]=\"{\n height: _chartConfig.height + 'px',\n width: _chartConfig.width + '%',\n }\"\n >\n <canvas #chartCanvas> </canvas>\n </div>\n</ng-container>\n<ng-template #noDataTemplate>\n <div\n class=\"d-flex justify-content-center align-items-center\"\n [ngStyle]=\"{\n height: _chartConfig.height + 'px',\n width: _chartConfig.width + '%',\n }\"\n >\n <svg-icon\n [src]=\"_chartConfig.noDataImage\"\n alt=\"No data available\"\n class=\"no-data-svg\"\n ></svg-icon>\n </div>\n</ng-template>\n", styles: [".no-data-svg{width:100%;height:auto;max-width:100%}\n"] }]
23706
- }], ctorParameters: () => [], propDecorators: { chartCanvas: [{
23995
+ args: [{ selector: 'app-ca-chart', standalone: true, imports: [CommonModule, AngularSvgIconModule], template: "<ng-container *ngIf=\"isChartDataAvailable; else noDataTemplate\">\n <div\n [ngStyle]=\"{\n height: _chartConfig.height + 'px',\n width: _chartConfig.width + '%',\n }\"\n >\n <canvas #chartCanvas></canvas>\n </div>\n</ng-container>\n<ng-template #noDataTemplate>\n <div\n class=\"d-flex justify-content-center align-items-center\"\n [ngStyle]=\"{\n height: _chartConfig.height + 'px',\n width: _chartConfig.width + '%',\n }\"\n >\n <svg-icon\n [src]=\"_chartConfig.noDataImage\"\n alt=\"No data available\"\n class=\"no-data-svg\"\n ></svg-icon>\n </div>\n</ng-template>\n", styles: [".no-data-svg{width:100%;height:auto;max-width:100%}\n"] }]
23996
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: ChartManagerService, decorators: [{
23997
+ type: Optional
23998
+ }] }], propDecorators: { chartCanvas: [{
23707
23999
  type: ViewChild,
23708
- args: ['chartCanvas']
23709
- }], chartConfig: [{
24000
+ args: ['chartCanvas', { static: false }]
24001
+ }], chartId: [{
23710
24002
  type: Input
23711
- }], isDatasetHovered: [{
24003
+ }], chartDatasetHover: [{
23712
24004
  type: Input
24005
+ }], chartConfig: [{
24006
+ type: Input
24007
+ }], hoveredIndex: [{
24008
+ type: Output
23713
24009
  }] } });
23714
24010
 
23715
24011
  class TruncatePipe {
@@ -23735,6 +24031,7 @@ class CaTooltipListConstants {
23735
24031
 
23736
24032
  class CaTooltipListComponent {
23737
24033
  constructor() {
24034
+ this.tooltipList = null;
23738
24035
  this.constants = CaTooltipListConstants;
23739
24036
  this.truncateLength = 18;
23740
24037
  }
@@ -23742,22 +24039,121 @@ class CaTooltipListComponent {
23742
24039
  return this.tooltipList?.selectedItems?.length === 1;
23743
24040
  }
23744
24041
  get isLessThanFourItemsSelected() {
23745
- return (!this.tooltipList.selectedItems ||
24042
+ return (!this.tooltipList?.selectedItems ||
23746
24043
  this.tooltipList?.selectedItems?.length < 4);
23747
24044
  }
23748
24045
  trackByIdentity(index) {
23749
24046
  return index;
23750
24047
  }
23751
24048
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CaTooltipListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
23752
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CaTooltipListComponent, isStandalone: true, selector: "app-ca-tooltip-list", inputs: { tooltipList: "tooltipList" }, ngImport: i0, template: "<ng-container\n [ngTemplateOutlet]=\"\n tooltipList?.showPercentage ? percentageTemplate : noPercentageTemplate\n \"\n [ngTemplateOutletContext]=\"{ tooltipList: tooltipList }\"\n>\n</ng-container>\n\n<ng-template #noPercentageTemplate let-tooltipList=\"tooltipList\">\n <div\n class=\"tooltip-list-container\"\n [ngClass]=\"isSingleItemSelected ? 'width-small' : 'width-medium'\"\n >\n <ng-container\n [ngTemplateOutlet]=\"tooltipHeader\"\n [ngTemplateOutletContext]=\"{ tooltipList: tooltipList }\"\n >\n </ng-container>\n <div\n [ngClass]=\"\n isSingleItemSelected\n ? 'tooltip-list-body-list'\n : 'tooltip-list-body-table'\n \"\n >\n <ng-container\n *ngFor=\"\n let item of tooltipList.selectedItems;\n let indx = index;\n trackBy: trackByIdentity\n \"\n [ngTemplateOutlet]=\"\n isSingleItemSelected ? listItemTemplate : tableItemTemplate\n \"\n [ngTemplateOutletContext]=\"{ item: item }\"\n >\n </ng-container>\n <ng-container\n *ngFor=\"\n let item of tooltipList.otherItems;\n let indx = index;\n trackBy: trackByIdentity\n \"\n [ngTemplateOutlet]=\"\n isSingleItemSelected ? listItemTemplate : tableItemTemplate\n \"\n [ngTemplateOutletContext]=\"{ item: item }\"\n >\n </ng-container>\n </div>\n </div>\n</ng-template>\n\n<ng-template #percentageTemplate let-tooltipList=\"tooltipList\">\n <div\n class=\"tooltip-list-container\"\n [ngClass]=\"isLessThanFourItemsSelected ? 'width-small' : 'width-large'\"\n >\n <ng-container\n *ngTemplateOutlet=\"tooltipHeader; context: { tooltipList: tooltipList }\"\n >\n </ng-container>\n <div\n [ngClass]=\"\n isLessThanFourItemsSelected\n ? 'tooltip-list-body-list'\n : 'tooltip-list-body-table'\n \"\n >\n <ng-container *ngIf=\"this.tooltipList?.selectedItems?.length >= 1\">\n <ng-container\n *ngFor=\"\n let item of tooltipList.selectedItems;\n let indx = index;\n trackBy: trackByIdentity\n \"\n [ngTemplateOutlet]=\"\n isLessThanFourItemsSelected\n ? listItemPercentageTemplate\n : tableItemTemplate\n \"\n [ngTemplateOutletContext]=\"{ item: item }\"\n >\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"this.tooltipList?.selectedItems?.length < 1\">\n <ng-container\n *ngFor=\"\n let item of tooltipList.otherItems;\n let indx = index;\n trackBy: trackByIdentity\n \"\n [ngTemplateOutlet]=\"listItemPercentageTemplate\"\n [ngTemplateOutletContext]=\"{ item: item }\"\n >\n </ng-container>\n </ng-container>\n </div>\n </div>\n</ng-template>\n\n<ng-template #tooltipHeader let-tooltipList=\"tooltipList\">\n <div class=\"tooltip-list-header\">\n <ng-container *ngIf=\"tooltipList?.singleDate\">\n <span>{{ tooltipList.singleDate | uppercase }}</span>\n </ng-container>\n <ng-container *ngIf=\"tooltipList?.startDate && tooltipList?.endDate\">\n <span>{{ tooltipList.startDate }} - {{ tooltipList.endDate }}</span>\n </ng-container>\n </div>\n</ng-template>\n\n<ng-template #listItemTemplate let-item=\"item\">\n <div class=\"d-flex flex-column justify-content-between tooltip-list-item\">\n <div class=\"tooltip-list-inline\">\n <span\n class=\"tooltip-list-item-dot\"\n [style.backgroundColor]=\"item.color\"\n ></span>\n <span class=\"tooltip-list-item-label\">{{\n item.label | truncate: truncateLength\n }}</span>\n </div>\n <span class=\"tooltip-list-item-value\">{{\n item.isCurrency\n ? (item.value | formatCurrency: item.isCurrency)\n : (item.value | nFormatter)\n }}</span>\n <ng-container *ngIf=\"item.percentage\">\n <span class=\"tooltip-list-item-percentage\">{{ item.percentage }}</span>\n </ng-container>\n </div>\n</ng-template>\n\n<ng-template #listItemPercentageTemplate let-item=\"item\">\n <div class=\"d-flex flex-column justify-content-between tooltip-list-item\">\n <div class=\"tooltip-list-inline\">\n <span\n class=\"tooltip-list-item-dot\"\n [style.backgroundColor]=\"item.color\"\n ></span>\n <span class=\"tooltip-list-item-label\">{{\n item.label | truncate: truncateLength\n }}</span>\n </div>\n <div class=\"d-flex align-items-center\">\n <span class=\"tooltip-list-item-value\">{{\n item.isCurrency\n ? (item.value | formatCurrency: item.isCurrency)\n : (item.value | nFormatter)\n }}</span>\n <span class=\"dot-delimiter\">{{\n constants.VALUE_PERCENTAGE_DELIMITER\n }}</span>\n <ng-container *ngIf=\"item.percentage\">\n <span class=\"tooltip-list-item-percentage\">{{ item.percentage }}</span>\n </ng-container>\n </div>\n </div>\n</ng-template>\n\n<ng-template #tableItemTemplate let-item=\"item\">\n <div class=\"table-item-layout\">\n <div class=\"table-item-cell\">\n <span\n class=\"tooltip-list-item-dot\"\n [style.backgroundColor]=\"item.color\"\n ></span>\n <span class=\"tooltip-list-item-label\">{{\n item.label | truncate: truncateLength\n }}</span>\n </div>\n <span class=\"text-end table-item-cell tooltip-list-item-value\">{{\n item.isCurrency\n ? (item.value | formatCurrency: item.isCurrency)\n : (item.value | nFormatter)\n }}</span>\n <ng-container *ngIf=\"item.percentage\">\n <span class=\"text-end table-item-cell tooltip-list-item-percentage\">{{\n item.percentage\n }}</span>\n </ng-container>\n </div>\n</ng-template>\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap\";@import\"https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css\";.ca-font-thin{font-weight:100!important}.ca-font-extra-light{font-weight:200!important}.ca-font-light{font-weight:300!important}.ca-font-regular{font-weight:400!important}.ca-font-medium{font-weight:500!important}.ca-font-semi-bold{font-weight:600!important}.ca-font-bold{font-weight:700!important}.ca-font-extra-bold{font-weight:800!important}.ca-font-black{font-weight:900!important}.pickup-delivery-popover{top:-38px!important;max-width:340px!important}.pickup-delivery-popover.bs-popover-top{top:auto!important;bottom:-38px!important}.pickup-delivery-popover.bs-popover-top .load-component .assigned-load-holder{order:3;margin-top:4px;margin-bottom:0!important}.pickup-delivery-popover.bs-popover-top .load-component .statusBar{order:2;margin-top:4px}.pickup-delivery-popover.bs-popover-top .load-component .animation-three-tabs{order:1}.gps_dropdown_popover{top:-38px;max-width:494px}.gps_dropdown_popover .popover-body{padding:0}.table-progress-popover{background-color:unset!important;margin-left:-10px}.table-progress-popover .progress-dropdown{margin-top:-6px;width:260px;height:200px;background:#2f2f2f;border-radius:3px;padding:8px;box-shadow:0 0 4px #00000026;overflow:hidden;-webkit-animation:progressAnimation .25s ease-in-out;animation:progressAnimation .25s ease-in-out}.table-progress-popover .progress-dropdown .progress-header .progress-title{font-size:18px;font-weight:600;color:#dadada}.table-progress-popover .progress-dropdown .progress-header .progress-title span{font-weight:400}.table-progress-popover .progress-dropdown .progress-header .progress-total{font-size:14px;line-height:17px;color:#dadada}.table-progress-popover .progress-dropdown .table-progress-bar-container{width:100%;height:8px;margin-top:6px;border-radius:2px;overflow:hidden}.table-progress-popover .progress-dropdown .table-progress-bar-container .table-progress-bar{height:100%}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-dual-info-container .progress-info-container{width:50%}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-info-container{margin-top:10px}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-info-container .progress-info-title{margin-bottom:2px;font-size:11px;font-weight:700;line-height:14px;color:#ffffffb2}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-info-container .progress-info-text{font-size:14px;line-height:18px;color:#dadada}.table-progress-popover .progress-dropdown.credit-dropdown{height:100px}@-webkit-keyframes progressAnimation{0%{height:0px}to{height:220px}}@keyframes progressAnimation{0%{height:0px}to{height:220px}}ngb-popover-window{padding:unset!important;border:unset!important}ngb-popover-window .popover-arrow{display:none!important}ngb-popover-window .popover-body{padding:unset!important}.dispatch-note .popover-body{position:relative;top:-4px;left:-4px}.tooltip{font-size:12px;position:relative}.tooltip.show{opacity:.83}.tooltip.fade:after,.tooltip.fade:before{transform:translateY(-10px);transition:all .15s ease-in-out}.tooltip.fade:hover:after,.tooltip.fade:hover:before{opacity:1;transform:translate(0)}.tooltip-inner{padding:4px 10px;white-space:nowrap;max-width:none;border-radius:3px}.placeholder-delete .tooltip-inner{background-color:#f66}.placeholder-delete .arrow:before{border-top-color:#f66}.custom-popup-owners-for-flag .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(126%) translate(-50%)!important;width:130px;border-radius:3px;box-shadow:0 0 3px #0003}.custom-popup-owners-for-flag .arrow{bottom:-18%;transform:rotate(180deg);left:calc(50% + 2.7rem)}.custom-popup-owners-for-flag .tooltip{opacity:.93!important;width:0}.custom-popup-owners{z-index:999}.custom-popup-owners .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(132%);z-index:999;box-shadow:0 0 3px #0003}.custom-popup-owners .arrow{bottom:-20%;transform:rotate(180deg)}.custom-popup-owners .tooltip{transform:translateY(-61px)!important}.custom-popup-owners-year{z-index:999}.custom-popup-owners-year .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(132%);z-index:999;box-shadow:0 0 3px #0003}.custom-popup-owners-year .arrow{bottom:-20%;transform:rotate(180deg)}.custom-popup-owners-year .tooltip{transform:translate(70px,-61px)!important}.custom-popup-owners-info .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(-100%) translate(-10%);width:200px;height:36px;display:flex;justify-content:center;align-items:center;border-radius:3px;margin-top:3px;box-shadow:0 0 3px #0003}.custom-popup-owners-info .tooltip{opacity:.93;width:0}.custom-popup-owners-info .arrow{display:none}.custom-popup-owners-info #phone-inside{position:relative;right:26px;bottom:0}.custom-popup-owners-info-at .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(-108%) translate(-7%);width:270px;height:36px;display:flex;justify-content:center;align-items:center;border-radius:3px;box-shadow:0 0 3px #0003}.custom-popup-owners-info-at .tooltip{opacity:1;width:0}.custom-popup-owners-info-at .arrow{display:none}.custom-popup-owners-for-tag .tooltip-inner{color:#3b3b3b;background-color:#fff;width:100px;border-radius:3px;box-shadow:0 0 3px #0003!important}.custom-popup-owners-for-tag .tooltip{top:5px!important}.custom-popup-owners-for-tag .arrow{bottom:-24%}.align-items-flex-start{justify-content:center;align-items:center}.align-items-flex-end{display:flex;justify-content:center;flex-direction:column;align-self:flex-end;align-items:flex-start}.label-add{align-self:flex-start}.fadeInLoad{animation:fadeInLoad .25s}@keyframes fadeInLoad{0%{opacity:0}to{opacity:1}}.fadeIn{opacity:1;-webkit-transition:.25s;-moz-transition:.25s;-o-transition:.25s;transition:.25s}.thisText:hover .fadeIn{opacity:0}.fadeInLoad{animation-name:example;animation-duration:.25s}@keyframes example{0%{transform:scale(.5)}to{transform:scale(1)}}.tooltip.tooltip-table-icons{left:12px!important;opacity:1}.tooltip.tooltip-table-icons .arrow{display:none!important}.tooltip.tooltip-table-icons .tooltip-inner{border-radius:0 50px 50px;background:#28529f}.tooltip.show{opacity:1;animation:fadeIn ease .5s!important;-webkit-animation:fadeIn ease .5s!important;-moz-animation:fadeIn ease .5s!important;-o-animation:fadeIn ease .5s!important;-ms-animation:fadeIn ease .5s!important}.ta-tooltip{position:absolute;font-size:12px;text-align:center;color:#fff;line-height:22px;z-index:999999!important;opacity:0;white-space:nowrap;transform:scale(.7)}.ta-tooltip.ta-tooltip-show{opacity:.85;transform:scale(1);padding:0 12px}.ta-tooltip.ta-tooltip-bottom-right,.ta-tooltip.ta-tooltip-bottom-right-corner{transform-origin:top left;border-radius:0 15px 15px}.ta-tooltip.ta-tooltip-bottom-left{transform-origin:top right;border-radius:15px 0 15px 15px}@keyframes scaleItem{0%{transform:scale(.4)}to{transform:scale(1)}}.app-ca-main-tooltip{pointer-events:none}.app-ca-main-tooltip .tooltip-inner{padding:0;pointer-events:none}.app-ca-main-tooltip .tooltip-inner .tooltip-holder{display:flex;font-size:11px;font-weight:700;border-radius:2px;padding:2px 8px;animation:scaleItem .3s;white-space:normal}.tooltip-arrow{display:none!important}.trucks.semitruck svg path,.trucks.semisleeper svg path,.trucks.flatbed svg path,.trucks.stepdeck svg path,.trucks.lowboyrgn svg path,.trucks.chassis svg path,.trucks.conestoga svg path,.trucks.sidekit svg path,.trucks.container svg path,.trailers.semitruck svg path,.trailers.semisleeper svg path,.trailers.flatbed svg path,.trailers.stepdeck svg path,.trailers.lowboyrgn svg path,.trailers.chassis svg path,.trailers.conestoga svg path,.trailers.sidekit svg path,.trailers.container svg path{fill:#92b1f5}.trucks.boxtruck svg path,.trucks.reefertruck svg path,.trucks.cargovan svg path,.trucks.dryvan svg path,.trucks.reefer svg path,.trailers.boxtruck svg path,.trailers.reefertruck svg path,.trailers.cargovan svg path,.trailers.dryvan svg path,.trailers.reefer svg path{fill:#fbc88b}.trucks.dumptruck svg path,.trucks.cementtruck svg path,.trucks.garbagetruck svg path,.trucks.enddump svg path,.trucks.bottomdump svg path,.trucks.hopper svg path,.trucks.tanker svg path,.trucks.pneumatictanker svg path,.trailers.dumptruck svg path,.trailers.cementtruck svg path,.trailers.garbagetruck svg path,.trailers.enddump svg path,.trailers.bottomdump svg path,.trailers.hopper svg path,.trailers.tanker svg path,.trailers.pneumatictanker svg path{fill:#ed9292}.trucks.towtruck svg path,.trucks.carhauler svg path,.trucks.spotter svg path,.trucks.carhaulerstigner svg path,.trailers.towtruck svg path,.trailers.carhauler svg path,.trailers.spotter svg path,.trailers.carhaulerstigner svg path{fill:#86c9c3}.trucks .svgtext-template-text,.trailers .svgtext-template-text{color:#fff;transition:color .3s ease-in-out}.colors .black svg #droplet{fill:#6c6c6c}.colors .brown svg #droplet{fill:#a1887f}.colors .darkgreen svg #droplet{fill:#4db6a2}.colors .lightgreen svg #droplet{fill:#81c784}.colors .darkblue svg #droplet{fill:#546fd2}.colors .lightblue svg #droplet{fill:#64b5f6}.colors .gray svg #droplet{fill:#aaa}.colors .purple svg #droplet{fill:#ba68c8}.colors .gold svg #droplet{fill:#bcad79}.colors .silver svg #droplet{fill:#dadada}.colors .red svg #droplet{fill:#f96b69}.colors .pink svg #droplet{fill:#f26ec2}.colors .white svg #droplet{fill:#f1f1f1}.colors .orange svg #droplet{fill:#ff8a65}.colors .yellow svg #droplet{fill:#ffd54f}.colors:hover{transition:all .3s ease-in-out}.colors:hover .black svg #droplet{fill:#3c3c3c}.colors:hover .brown svg #droplet{fill:#8d6e63}.colors:hover .darkgreen svg #droplet{fill:#26a690}.colors:hover .lightgreen svg #droplet{fill:#66bb6a}.colors:hover .darkblue svg #droplet{fill:#304fc1}.colors:hover .lightblue svg #droplet{fill:#42a5f5}.colors:hover .gray svg #droplet{fill:#919191}.colors:hover .purple svg #droplet{fill:#ab47bc}.colors:hover .gold svg #droplet{fill:#aa9c6e}.colors:hover .silver svg #droplet{fill:#b7b7b7}.colors:hover .red svg #droplet{fill:#ef5350}.colors:hover .pink svg #droplet{fill:#fa4daa}.colors:hover .white svg #droplet{fill:#fff}.colors:hover .orange svg #droplet{fill:#ff7043}.colors:hover .yellow svg #droplet{fill:#ffca28}.text-color-black{color:#424242!important}.text-color-black::-moz-selection{background:#42424233!important;color:#424242!important}.text-color-black::selection{background:#42424233!important;color:#424242!important}.text-color-black-2{color:#2f2f2f!important}.text-color-black-2::-moz-selection{background:#2f2f2f33!important;color:#2f2f2f!important}.text-color-black-2::selection{background:#2f2f2f33!important;color:#2f2f2f!important}.text-color-muted{color:#919191!important}.text-color-muted::-moz-selection{background:#91919133!important;color:#919191!important}.text-color-muted::selection{background:#91919133!important;color:#919191!important}.text-color-green{color:#56b4ac!important}.text-color-green::-moz-selection{background:#56b4ac33!important;color:#56b4ac!important}.text-color-green::selection{background:#56b4ac33!important;color:#56b4ac!important}.text-color-blue-13{color:#6692f1!important}.text-color-blue-13::-moz-selection{background:#66921833!important;color:#6692f1!important}.text-color-blue-13::selection{background:#66921833!important;color:#6692f1!important}.text-color-blue-18{color:#3b73ed!important}.text-color-blue-18::-moz-selection{background:#3b73ed33!important;color:#3b73ed!important}.text-color-blue-18::selection{background:#3b73ed33!important;color:#3b73ed!important}.text-color-red-10{color:#e66767!important}.text-color-red-10::-moz-selection{background:#e6676733!important;color:#e66767!important}.text-color-red-10::selection{background:#e6676733!important;color:#e66767!important}.text-color-light-grey{color:#e5e5e5!important}.text-color-light-grey::-moz-selection{background:#e5e5e533!important;color:#e5e5e5!important}.text-color-light-grey::selection{background:#e5e5e533!important;color:#e5e5e5!important}.text-color-light-grey-2{color:#aaa!important}.text-color-light-grey-2::-moz-selection{background:#aaa3!important;color:#aaa!important}.text-color-light-grey-2::selection{background:#aaa3!important;color:#aaa!important}.text-color-light-grey-6{color:#ccc!important}.text-color-light-grey-6::-moz-selection{color:#ccc!important;background:#aaa3!important}.text-color-light-grey-6::selection{color:#ccc!important;background:#aaa3!important}.text-color-white{color:#dadada!important}.text-color-white::-moz-selection{color:#dadada!important;background:#fff3!important}.text-color-white::selection{color:#dadada!important;background:#fff3!important}.text-color-white-4{color:#ffffffb2!important}.text-color-white-4::-moz-selection{color:#ffffffb2!important;background:#fff3!important}.text-color-white-4::selection{color:#ffffffb2!important;background:#fff3!important}.text-color-dark-grey{color:#6c6c6c!important}.text-color-dark-grey::-moz-selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-dark-grey::selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw6-2{color:#6c6c6c!important}.text-color-bw6-2::-moz-selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw6-2::selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw-9{color:#dadada!important}.text-color-bw-9::-moz-selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw-9::selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-grey{color:#919191!important}.text-color-grey::-moz-selection{color:#919191!important;background:#91919133!important}.text-color-grey::selection{color:#919191!important;background:#91919133!important}.text-color-grey .address-text::-moz-selection,.text-color-grey .marker-bold-text::-moz-selection{color:#919191!important;background:#91919133!important}.text-color-grey .address-text::selection,.text-color-grey .marker-bold-text::selection{color:#919191!important;background:#91919133!important}.text-size-11{font-size:11px!important;line-height:14px!important}.text-size-14{font-size:14px!important;line-height:18px!important}.text-size-16{font-size:16px!important;line-height:19px!important}.text-size-18{font-size:18px!important;line-height:22px!important}.text-size-26{font-size:26px!important;line-height:32px!important}.text-size-28{font-size:28px!important;line-height:34px!important}@keyframes dropdown{0%{margin-top:20px;visibility:hidden;opacity:0}to{opacity:1;margin-top:10px;visibility:visible!important}}@keyframes dropup{0%{margin-top:-19px;visibility:hidden;opacity:0}to{margin-top:inherit;visibility:visible!important}}.svg-fill-black svg path{fill:#424242!important}.svg-fill-muted svg path{fill:#919191!important}.svg-fill-bw-9 svg path{fill:#dadada!important}.svg-fill-light-grey-2 svg path{fill:#aaa!important}.svg-fill-light-grey-6 svg path{fill:#ccc!important}.svg-fill-blue-13 svg path{fill:#6692f1!important}.svg-fill-blue-19 svg path{fill:#92b1f5!important}.svg-fill-blue-26 svg path{fill:#4dc5eb!important}.svg-hover-muted svg path{transition:all .3s ease-in-out}.svg-hover-muted:hover svg path{fill:#919191!important}.svg-hover-black svg path{transition:all .3s ease-in-out}.svg-hover-black:hover svg path{fill:#424242!important}.svg-hover-blue-15 svg path{transition:all .3s ease-in-out}.svg-hover-blue-15:hover svg path{fill:#0b49d1!important}.svg-hover-bw6-2 svg path{transition:all .3s ease-in-out}.svg-hover-bw6-2:hover svg path{fill:#6c6c6c!important}.svg-hover-trash-red svg path{transition:all .3s ease-in-out}.svg-hover-trash-red:hover svg path{fill:#ff5050!important}.svg-hover-red-14 svg path{transition:all .3s ease-in-out}.svg-hover-red-14:hover svg path{fill:#c20c0c!important}.svg-size-12 svg{width:12px;height:12px}.svg-size-14 svg{width:14px;height:14px}.svg-size-16 svg{width:16px;height:16px}.svg-size-18 svg{width:18px;height:18px}.svg-size-44-16 svg{width:44px;height:16px}*{margin:0;font-family:Montserrat,sans-serif}html{scroll-behavior:auto!important}.gm-style-iw-chr,.gm-style-iw-tc{display:none}.gm-style .gm-style-iw-c{border-radius:0}.gm-style-iw{overflow-y:auto!important;overflow-x:hidden!important}.gm-style-iw>div{overflow:visible!important}.infoWindow{overflow:hidden!important}.gm-style-iw-d,.gm-style-iw.gm-style-iw-c{max-height:350px!important}::ng-deep .popover{--bs-popover-border-width: 0;--bs-popover-body-padding-y: 0;--bs-popover-body-padding-x: 0}::ng-deep .popover .popover-arrow{display:none}::ng-deep app-ca-tooltip-list .width-small{width:160px}::ng-deep app-ca-tooltip-list .width-medium{width:200px}::ng-deep app-ca-tooltip-list .width-large{width:240px}::ng-deep app-ca-tooltip-list .tooltip-list-container{padding:4px;background-color:#2f2f2f;color:#fff;border-radius:3px;box-shadow:0 4px 8px #0003}::ng-deep app-ca-tooltip-list .tooltip-list-header{margin:0;padding:4px;border-bottom:1px solid #424242}::ng-deep app-ca-tooltip-list .tooltip-list-header span{font-size:11px;font-weight:800;color:#fff;text-align:left}::ng-deep app-ca-tooltip-list .tooltip-list-body-list{margin-top:8px}::ng-deep app-ca-tooltip-list .tooltip-list-body-table{display:table;width:100%;padding:4px}::ng-deep app-ca-tooltip-list .tooltip-list-item{padding:4px;font-size:11px}::ng-deep app-ca-tooltip-list .tooltip-list-inline{line-height:1}::ng-deep app-ca-tooltip-list .table-item-layout{display:table-row;width:100%}::ng-deep app-ca-tooltip-list .table-item-cell{display:table-cell}::ng-deep app-ca-tooltip-list .table-item-cell:not(:last-child){padding-right:10px!important}::ng-deep app-ca-tooltip-list .tooltip-list-item-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:8px}::ng-deep app-ca-tooltip-list .tooltip-list-item-label{font-size:11px;font-weight:700;color:#fff}::ng-deep app-ca-tooltip-list .tooltip-list-item-value{font-weight:400;font-size:11px;color:#fff}::ng-deep app-ca-tooltip-list .tooltip-list-item-percentage{font-weight:700;font-size:11px;color:#fff}::ng-deep app-ca-tooltip-list .dot-delimiter{margin:0 4px;font-size:.8em;line-height:1;color:#fff}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i1.UpperCasePipe, name: "uppercase" }, { kind: "pipe", type: NFormatterPipe, name: "nFormatter" }, { kind: "pipe", type: FormatCurrencyPipe, name: "formatCurrency" }, { kind: "pipe", type: TruncatePipe, name: "truncate" }] }); }
24049
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CaTooltipListComponent, isStandalone: true, selector: "app-ca-tooltip-list", inputs: { tooltipList: "tooltipList" }, ngImport: i0, template: "<ng-container\n [ngTemplateOutlet]=\"\n tooltipList?.showPercentage ? percentageTemplate : noPercentageTemplate\n \"\n [ngTemplateOutletContext]=\"{ tooltipList: tooltipList }\"\n>\n</ng-container>\n\n<ng-template #noPercentageTemplate let-tooltipList=\"tooltipList\">\n <div\n class=\"tooltip-list-container\"\n [ngClass]=\"isSingleItemSelected ? 'width-small' : 'width-medium'\"\n >\n <ng-container\n [ngTemplateOutlet]=\"tooltipHeader\"\n [ngTemplateOutletContext]=\"{ tooltipList: tooltipList }\"\n >\n </ng-container>\n <div\n [ngClass]=\"\n isSingleItemSelected\n ? 'tooltip-list-body-list'\n : 'tooltip-list-body-table'\n \"\n >\n <ng-container\n *ngFor=\"\n let item of tooltipList.selectedItems;\n let indx = index;\n trackBy: trackByIdentity\n \"\n [ngTemplateOutlet]=\"\n isSingleItemSelected ? listItemTemplate : tableItemTemplate\n \"\n [ngTemplateOutletContext]=\"{ item: item }\"\n >\n </ng-container>\n <ng-container\n *ngFor=\"\n let item of tooltipList.otherItems;\n let indx = index;\n trackBy: trackByIdentity\n \"\n [ngTemplateOutlet]=\"\n isSingleItemSelected ? listItemTemplate : tableItemTemplate\n \"\n [ngTemplateOutletContext]=\"{ item: item }\"\n >\n </ng-container>\n </div>\n </div>\n</ng-template>\n\n<ng-template #percentageTemplate let-tooltipList=\"tooltipList\">\n <div\n class=\"tooltip-list-container\"\n [ngClass]=\"isLessThanFourItemsSelected ? 'width-small' : 'width-large'\"\n >\n <ng-container\n *ngTemplateOutlet=\"tooltipHeader; context: { tooltipList: tooltipList }\"\n >\n </ng-container>\n <div\n [ngClass]=\"\n isLessThanFourItemsSelected\n ? 'tooltip-list-body-list'\n : 'tooltip-list-body-table'\n \"\n >\n <ng-container *ngIf=\"this.tooltipList?.selectedItems?.length >= 1\">\n <ng-container\n *ngFor=\"\n let item of tooltipList.selectedItems;\n let indx = index;\n trackBy: trackByIdentity\n \"\n [ngTemplateOutlet]=\"\n isLessThanFourItemsSelected\n ? listItemPercentageTemplate\n : tableItemTemplate\n \"\n [ngTemplateOutletContext]=\"{ item: item }\"\n >\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"this.tooltipList?.selectedItems?.length < 1\">\n <ng-container\n *ngFor=\"\n let item of tooltipList.otherItems;\n let indx = index;\n trackBy: trackByIdentity\n \"\n [ngTemplateOutlet]=\"listItemPercentageTemplate\"\n [ngTemplateOutletContext]=\"{ item: item }\"\n >\n </ng-container>\n </ng-container>\n </div>\n </div>\n</ng-template>\n\n<ng-template #tooltipHeader let-tooltipList=\"tooltipList\">\n <div class=\"tooltip-list-header\">\n <span>{{tooltipList.date}}</span>\n </div>\n</ng-template>\n\n<ng-template #listItemTemplate let-item=\"item\">\n <div class=\"d-flex flex-column justify-content-between tooltip-list-item\">\n <div class=\"tooltip-list-inline\">\n <span\n class=\"tooltip-list-item-dot\"\n [style.backgroundColor]=\"item.color\"\n ></span>\n <span class=\"tooltip-list-item-label\">{{\n item.label | truncate: truncateLength\n }}</span>\n </div>\n <span class=\"tooltip-list-item-value\">{{\n item.isCurrency\n ? (item.value | formatCurrency: item.isCurrency)\n : (item.value | nFormatter)\n }}</span>\n <ng-container *ngIf=\"item.percentage\">\n <span class=\"tooltip-list-item-percentage\">{{ item.percentage }}</span>\n </ng-container>\n </div>\n</ng-template>\n\n<ng-template #listItemPercentageTemplate let-item=\"item\">\n <div class=\"d-flex flex-column justify-content-between tooltip-list-item\">\n <div class=\"tooltip-list-inline\">\n <span\n class=\"tooltip-list-item-dot\"\n [style.backgroundColor]=\"item.color\"\n ></span>\n <span class=\"tooltip-list-item-label\">{{\n item.label | truncate: truncateLength\n }}</span>\n </div>\n <div class=\"d-flex align-items-center\">\n <span class=\"tooltip-list-item-value\">{{\n item.isCurrency\n ? (item.value | formatCurrency: item.isCurrency)\n : (item.value | nFormatter)\n }}</span>\n <span class=\"dot-delimiter\">{{\n constants.VALUE_PERCENTAGE_DELIMITER\n }}</span>\n <ng-container *ngIf=\"item.percentage\">\n <span class=\"tooltip-list-item-percentage\">{{ item.percentage }}</span>\n </ng-container>\n </div>\n </div>\n</ng-template>\n\n<ng-template #tableItemTemplate let-item=\"item\">\n <div class=\"table-item-layout\">\n <div class=\"table-item-cell\">\n <span\n class=\"tooltip-list-item-dot\"\n [style.backgroundColor]=\"item.color\"\n ></span>\n <span class=\"tooltip-list-item-label\">{{\n item.label | truncate: truncateLength\n }}</span>\n </div>\n <span class=\"text-end table-item-cell tooltip-list-item-value\">{{\n item.isCurrency\n ? (item.value | formatCurrency: item.isCurrency)\n : (item.value | nFormatter)\n }}</span>\n <ng-container *ngIf=\"item.percentage\">\n <span class=\"text-end table-item-cell tooltip-list-item-percentage\">{{\n item.percentage\n }}</span>\n </ng-container>\n </div>\n</ng-template>\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap\";@import\"https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css\";.ca-font-thin{font-weight:100!important}.ca-font-extra-light{font-weight:200!important}.ca-font-light{font-weight:300!important}.ca-font-regular{font-weight:400!important}.ca-font-medium{font-weight:500!important}.ca-font-semi-bold{font-weight:600!important}.ca-font-bold{font-weight:700!important}.ca-font-extra-bold{font-weight:800!important}.ca-font-black{font-weight:900!important}.pickup-delivery-popover{top:-38px!important;max-width:340px!important}.pickup-delivery-popover.bs-popover-top{top:auto!important;bottom:-38px!important}.pickup-delivery-popover.bs-popover-top .load-component .assigned-load-holder{order:3;margin-top:4px;margin-bottom:0!important}.pickup-delivery-popover.bs-popover-top .load-component .statusBar{order:2;margin-top:4px}.pickup-delivery-popover.bs-popover-top .load-component .animation-three-tabs{order:1}.gps_dropdown_popover{top:-38px;max-width:494px}.gps_dropdown_popover .popover-body{padding:0}.table-progress-popover{background-color:unset!important;margin-left:-10px}.table-progress-popover .progress-dropdown{margin-top:-6px;width:260px;height:200px;background:#2f2f2f;border-radius:3px;padding:8px;box-shadow:0 0 4px #00000026;overflow:hidden;-webkit-animation:progressAnimation .25s ease-in-out;animation:progressAnimation .25s ease-in-out}.table-progress-popover .progress-dropdown .progress-header .progress-title{font-size:18px;font-weight:600;color:#dadada}.table-progress-popover .progress-dropdown .progress-header .progress-title span{font-weight:400}.table-progress-popover .progress-dropdown .progress-header .progress-total{font-size:14px;line-height:17px;color:#dadada}.table-progress-popover .progress-dropdown .table-progress-bar-container{width:100%;height:8px;margin-top:6px;border-radius:2px;overflow:hidden}.table-progress-popover .progress-dropdown .table-progress-bar-container .table-progress-bar{height:100%}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-dual-info-container .progress-info-container{width:50%}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-info-container{margin-top:10px}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-info-container .progress-info-title{margin-bottom:2px;font-size:11px;font-weight:700;line-height:14px;color:#ffffffb2}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-info-container .progress-info-text{font-size:14px;line-height:18px;color:#dadada}.table-progress-popover .progress-dropdown.credit-dropdown{height:100px}@-webkit-keyframes progressAnimation{0%{height:0px}to{height:220px}}@keyframes progressAnimation{0%{height:0px}to{height:220px}}ngb-popover-window{padding:unset!important;border:unset!important}ngb-popover-window .popover-arrow{display:none!important}ngb-popover-window .popover-body{padding:unset!important}.dispatch-note .popover-body{position:relative;top:-4px;left:-4px}.tooltip{font-size:12px;position:relative}.tooltip.show{opacity:.83}.tooltip.fade:after,.tooltip.fade:before{transform:translateY(-10px);transition:all .15s ease-in-out}.tooltip.fade:hover:after,.tooltip.fade:hover:before{opacity:1;transform:translate(0)}.tooltip-inner{padding:4px 10px;white-space:nowrap;max-width:none;border-radius:3px}.placeholder-delete .tooltip-inner{background-color:#f66}.placeholder-delete .arrow:before{border-top-color:#f66}.custom-popup-owners-for-flag .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(126%) translate(-50%)!important;width:130px;border-radius:3px;box-shadow:0 0 3px #0003}.custom-popup-owners-for-flag .arrow{bottom:-18%;transform:rotate(180deg);left:calc(50% + 2.7rem)}.custom-popup-owners-for-flag .tooltip{opacity:.93!important;width:0}.custom-popup-owners{z-index:999}.custom-popup-owners .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(132%);z-index:999;box-shadow:0 0 3px #0003}.custom-popup-owners .arrow{bottom:-20%;transform:rotate(180deg)}.custom-popup-owners .tooltip{transform:translateY(-61px)!important}.custom-popup-owners-year{z-index:999}.custom-popup-owners-year .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(132%);z-index:999;box-shadow:0 0 3px #0003}.custom-popup-owners-year .arrow{bottom:-20%;transform:rotate(180deg)}.custom-popup-owners-year .tooltip{transform:translate(70px,-61px)!important}.custom-popup-owners-info .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(-100%) translate(-10%);width:200px;height:36px;display:flex;justify-content:center;align-items:center;border-radius:3px;margin-top:3px;box-shadow:0 0 3px #0003}.custom-popup-owners-info .tooltip{opacity:.93;width:0}.custom-popup-owners-info .arrow{display:none}.custom-popup-owners-info #phone-inside{position:relative;right:26px;bottom:0}.custom-popup-owners-info-at .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(-108%) translate(-7%);width:270px;height:36px;display:flex;justify-content:center;align-items:center;border-radius:3px;box-shadow:0 0 3px #0003}.custom-popup-owners-info-at .tooltip{opacity:1;width:0}.custom-popup-owners-info-at .arrow{display:none}.custom-popup-owners-for-tag .tooltip-inner{color:#3b3b3b;background-color:#fff;width:100px;border-radius:3px;box-shadow:0 0 3px #0003!important}.custom-popup-owners-for-tag .tooltip{top:5px!important}.custom-popup-owners-for-tag .arrow{bottom:-24%}.align-items-flex-start{justify-content:center;align-items:center}.align-items-flex-end{display:flex;justify-content:center;flex-direction:column;align-self:flex-end;align-items:flex-start}.label-add{align-self:flex-start}.fadeInLoad{animation:fadeInLoad .25s}@keyframes fadeInLoad{0%{opacity:0}to{opacity:1}}.fadeIn{opacity:1;-webkit-transition:.25s;-moz-transition:.25s;-o-transition:.25s;transition:.25s}.thisText:hover .fadeIn{opacity:0}.fadeInLoad{animation-name:example;animation-duration:.25s}@keyframes example{0%{transform:scale(.5)}to{transform:scale(1)}}.tooltip.tooltip-table-icons{left:12px!important;opacity:1}.tooltip.tooltip-table-icons .arrow{display:none!important}.tooltip.tooltip-table-icons .tooltip-inner{border-radius:0 50px 50px;background:#28529f}.tooltip.show{opacity:1;animation:fadeIn ease .5s!important;-webkit-animation:fadeIn ease .5s!important;-moz-animation:fadeIn ease .5s!important;-o-animation:fadeIn ease .5s!important;-ms-animation:fadeIn ease .5s!important}.ta-tooltip{position:absolute;font-size:12px;text-align:center;color:#fff;line-height:22px;z-index:999999!important;opacity:0;white-space:nowrap;transform:scale(.7)}.ta-tooltip.ta-tooltip-show{opacity:.85;transform:scale(1);padding:0 12px}.ta-tooltip.ta-tooltip-bottom-right,.ta-tooltip.ta-tooltip-bottom-right-corner{transform-origin:top left;border-radius:0 15px 15px}.ta-tooltip.ta-tooltip-bottom-left{transform-origin:top right;border-radius:15px 0 15px 15px}@keyframes scaleItem{0%{transform:scale(.4)}to{transform:scale(1)}}.app-ca-main-tooltip{pointer-events:none}.app-ca-main-tooltip .tooltip-inner{padding:0;pointer-events:none}.app-ca-main-tooltip .tooltip-inner .tooltip-holder{display:flex;font-size:11px;font-weight:700;border-radius:2px;padding:2px 8px;animation:scaleItem .3s;white-space:normal}.tooltip-arrow{display:none!important}.trucks.semitruck svg path,.trucks.semisleeper svg path,.trucks.flatbed svg path,.trucks.stepdeck svg path,.trucks.lowboyrgn svg path,.trucks.chassis svg path,.trucks.conestoga svg path,.trucks.sidekit svg path,.trucks.container svg path,.trailers.semitruck svg path,.trailers.semisleeper svg path,.trailers.flatbed svg path,.trailers.stepdeck svg path,.trailers.lowboyrgn svg path,.trailers.chassis svg path,.trailers.conestoga svg path,.trailers.sidekit svg path,.trailers.container svg path{fill:#92b1f5}.trucks.boxtruck svg path,.trucks.reefertruck svg path,.trucks.cargovan svg path,.trucks.dryvan svg path,.trucks.reefer svg path,.trailers.boxtruck svg path,.trailers.reefertruck svg path,.trailers.cargovan svg path,.trailers.dryvan svg path,.trailers.reefer svg path{fill:#fbc88b}.trucks.dumptruck svg path,.trucks.cementtruck svg path,.trucks.garbagetruck svg path,.trucks.enddump svg path,.trucks.bottomdump svg path,.trucks.hopper svg path,.trucks.tanker svg path,.trucks.pneumatictanker svg path,.trailers.dumptruck svg path,.trailers.cementtruck svg path,.trailers.garbagetruck svg path,.trailers.enddump svg path,.trailers.bottomdump svg path,.trailers.hopper svg path,.trailers.tanker svg path,.trailers.pneumatictanker svg path{fill:#ed9292}.trucks.towtruck svg path,.trucks.carhauler svg path,.trucks.spotter svg path,.trucks.carhaulerstigner svg path,.trailers.towtruck svg path,.trailers.carhauler svg path,.trailers.spotter svg path,.trailers.carhaulerstigner svg path{fill:#86c9c3}.trucks .svgtext-template-text,.trailers .svgtext-template-text{color:#fff;transition:color .3s ease-in-out}.colors .black svg #droplet{fill:#6c6c6c}.colors .brown svg #droplet{fill:#a1887f}.colors .darkgreen svg #droplet{fill:#4db6a2}.colors .lightgreen svg #droplet{fill:#81c784}.colors .darkblue svg #droplet{fill:#546fd2}.colors .lightblue svg #droplet{fill:#64b5f6}.colors .gray svg #droplet{fill:#aaa}.colors .purple svg #droplet{fill:#ba68c8}.colors .gold svg #droplet{fill:#bcad79}.colors .silver svg #droplet{fill:#dadada}.colors .red svg #droplet{fill:#f96b69}.colors .pink svg #droplet{fill:#f26ec2}.colors .white svg #droplet{fill:#f1f1f1}.colors .orange svg #droplet{fill:#ff8a65}.colors .yellow svg #droplet{fill:#ffd54f}.colors:hover{transition:all .3s ease-in-out}.colors:hover .black svg #droplet{fill:#3c3c3c}.colors:hover .brown svg #droplet{fill:#8d6e63}.colors:hover .darkgreen svg #droplet{fill:#26a690}.colors:hover .lightgreen svg #droplet{fill:#66bb6a}.colors:hover .darkblue svg #droplet{fill:#304fc1}.colors:hover .lightblue svg #droplet{fill:#42a5f5}.colors:hover .gray svg #droplet{fill:#919191}.colors:hover .purple svg #droplet{fill:#ab47bc}.colors:hover .gold svg #droplet{fill:#aa9c6e}.colors:hover .silver svg #droplet{fill:#b7b7b7}.colors:hover .red svg #droplet{fill:#ef5350}.colors:hover .pink svg #droplet{fill:#fa4daa}.colors:hover .white svg #droplet{fill:#fff}.colors:hover .orange svg #droplet{fill:#ff7043}.colors:hover .yellow svg #droplet{fill:#ffca28}.text-color-black{color:#424242!important}.text-color-black::-moz-selection{background:#42424233!important;color:#424242!important}.text-color-black::selection{background:#42424233!important;color:#424242!important}.text-color-black-2{color:#2f2f2f!important}.text-color-black-2::-moz-selection{background:#2f2f2f33!important;color:#2f2f2f!important}.text-color-black-2::selection{background:#2f2f2f33!important;color:#2f2f2f!important}.text-color-muted{color:#919191!important}.text-color-muted::-moz-selection{background:#91919133!important;color:#919191!important}.text-color-muted::selection{background:#91919133!important;color:#919191!important}.text-color-green{color:#56b4ac!important}.text-color-green::-moz-selection{background:#56b4ac33!important;color:#56b4ac!important}.text-color-green::selection{background:#56b4ac33!important;color:#56b4ac!important}.text-color-blue-13{color:#6692f1!important}.text-color-blue-13::-moz-selection{background:#66921833!important;color:#6692f1!important}.text-color-blue-13::selection{background:#66921833!important;color:#6692f1!important}.text-color-blue-18{color:#3b73ed!important}.text-color-blue-18::-moz-selection{background:#3b73ed33!important;color:#3b73ed!important}.text-color-blue-18::selection{background:#3b73ed33!important;color:#3b73ed!important}.text-color-red-10{color:#e66767!important}.text-color-red-10::-moz-selection{background:#e6676733!important;color:#e66767!important}.text-color-red-10::selection{background:#e6676733!important;color:#e66767!important}.text-color-light-grey{color:#e5e5e5!important}.text-color-light-grey::-moz-selection{background:#e5e5e533!important;color:#e5e5e5!important}.text-color-light-grey::selection{background:#e5e5e533!important;color:#e5e5e5!important}.text-color-light-grey-2{color:#aaa!important}.text-color-light-grey-2::-moz-selection{background:#aaa3!important;color:#aaa!important}.text-color-light-grey-2::selection{background:#aaa3!important;color:#aaa!important}.text-color-light-grey-6{color:#ccc!important}.text-color-light-grey-6::-moz-selection{color:#ccc!important;background:#aaa3!important}.text-color-light-grey-6::selection{color:#ccc!important;background:#aaa3!important}.text-color-white{color:#dadada!important}.text-color-white::-moz-selection{color:#dadada!important;background:#fff3!important}.text-color-white::selection{color:#dadada!important;background:#fff3!important}.text-color-white-4{color:#ffffffb2!important}.text-color-white-4::-moz-selection{color:#ffffffb2!important;background:#fff3!important}.text-color-white-4::selection{color:#ffffffb2!important;background:#fff3!important}.text-color-dark-grey{color:#6c6c6c!important}.text-color-dark-grey::-moz-selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-dark-grey::selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw6-2{color:#6c6c6c!important}.text-color-bw6-2::-moz-selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw6-2::selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw-9{color:#dadada!important}.text-color-bw-9::-moz-selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw-9::selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-grey{color:#919191!important}.text-color-grey::-moz-selection{color:#919191!important;background:#91919133!important}.text-color-grey::selection{color:#919191!important;background:#91919133!important}.text-color-grey .address-text::-moz-selection,.text-color-grey .marker-bold-text::-moz-selection{color:#919191!important;background:#91919133!important}.text-color-grey .address-text::selection,.text-color-grey .marker-bold-text::selection{color:#919191!important;background:#91919133!important}.text-size-11{font-size:11px!important;line-height:14px!important}.text-size-14{font-size:14px!important;line-height:18px!important}.text-size-16{font-size:16px!important;line-height:19px!important}.text-size-18{font-size:18px!important;line-height:22px!important}.text-size-26{font-size:26px!important;line-height:32px!important}.text-size-28{font-size:28px!important;line-height:34px!important}@keyframes dropdown{0%{margin-top:20px;visibility:hidden;opacity:0}to{opacity:1;margin-top:10px;visibility:visible!important}}@keyframes dropup{0%{margin-top:-19px;visibility:hidden;opacity:0}to{margin-top:inherit;visibility:visible!important}}.svg-fill-black svg path{fill:#424242!important}.svg-fill-muted svg path{fill:#919191!important}.svg-fill-bw-9 svg path{fill:#dadada!important}.svg-fill-light-grey-2 svg path{fill:#aaa!important}.svg-fill-light-grey-6 svg path{fill:#ccc!important}.svg-fill-blue-13 svg path{fill:#6692f1!important}.svg-fill-blue-19 svg path{fill:#92b1f5!important}.svg-fill-blue-26 svg path{fill:#4dc5eb!important}.svg-hover-muted svg path{transition:all .3s ease-in-out}.svg-hover-muted:hover svg path{fill:#919191!important}.svg-hover-black svg path{transition:all .3s ease-in-out}.svg-hover-black:hover svg path{fill:#424242!important}.svg-hover-blue-15 svg path{transition:all .3s ease-in-out}.svg-hover-blue-15:hover svg path{fill:#0b49d1!important}.svg-hover-bw6-2 svg path{transition:all .3s ease-in-out}.svg-hover-bw6-2:hover svg path{fill:#6c6c6c!important}.svg-hover-trash-red svg path{transition:all .3s ease-in-out}.svg-hover-trash-red:hover svg path{fill:#ff5050!important}.svg-hover-red-14 svg path{transition:all .3s ease-in-out}.svg-hover-red-14:hover svg path{fill:#c20c0c!important}.svg-size-12 svg{width:12px;height:12px}.svg-size-14 svg{width:14px;height:14px}.svg-size-16 svg{width:16px;height:16px}.svg-size-18 svg{width:18px;height:18px}.svg-size-44-16 svg{width:44px;height:16px}*{margin:0;font-family:Montserrat,sans-serif}html{scroll-behavior:auto!important}.gm-style-iw-chr,.gm-style-iw-tc{display:none}.gm-style .gm-style-iw-c{border-radius:0}.gm-style-iw{overflow-y:auto!important;overflow-x:hidden!important}.gm-style-iw>div{overflow:visible!important}.infoWindow{overflow:hidden!important}.gm-style-iw-d,.gm-style-iw.gm-style-iw-c{max-height:350px!important}::ng-deep .popover{--bs-popover-border-width: 0;--bs-popover-body-padding-y: 0;--bs-popover-body-padding-x: 0}::ng-deep .popover .popover-arrow{display:none}::ng-deep app-ca-tooltip-list .width-small{width:160px}::ng-deep app-ca-tooltip-list .width-medium{width:200px}::ng-deep app-ca-tooltip-list .width-large{width:240px}::ng-deep app-ca-tooltip-list .tooltip-list-container{padding:4px;background-color:#2f2f2f;color:#fff;border-radius:3px;box-shadow:0 4px 8px #0003}::ng-deep app-ca-tooltip-list .tooltip-list-header{margin:0;padding:4px;border-bottom:1px solid #424242}::ng-deep app-ca-tooltip-list .tooltip-list-header span{font-size:11px;font-weight:800;color:#fff;text-align:left;word-wrap:break-word;word-break:break-word;white-space:normal}::ng-deep app-ca-tooltip-list .tooltip-list-body-list{margin-top:8px}::ng-deep app-ca-tooltip-list .tooltip-list-body-table{display:table;width:100%;padding:4px}::ng-deep app-ca-tooltip-list .tooltip-list-item{padding:4px;font-size:11px}::ng-deep app-ca-tooltip-list .tooltip-list-inline{line-height:1}::ng-deep app-ca-tooltip-list .table-item-layout{display:table-row;width:100%}::ng-deep app-ca-tooltip-list .table-item-cell{display:table-cell}::ng-deep app-ca-tooltip-list .table-item-cell:not(:last-child){padding-right:10px!important}::ng-deep app-ca-tooltip-list .tooltip-list-item-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:8px}::ng-deep app-ca-tooltip-list .tooltip-list-item-label{font-size:11px;font-weight:700;color:#fff}::ng-deep app-ca-tooltip-list .tooltip-list-item-value{font-weight:400;font-size:11px;color:#fff}::ng-deep app-ca-tooltip-list .tooltip-list-item-percentage{font-weight:700;font-size:11px;color:#fff}::ng-deep app-ca-tooltip-list .dot-delimiter{margin:0 4px;font-size:.8em;line-height:1;color:#fff}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: NFormatterPipe, name: "nFormatter" }, { kind: "pipe", type: FormatCurrencyPipe, name: "formatCurrency" }, { kind: "pipe", type: TruncatePipe, name: "truncate" }] }); }
23753
24050
  }
23754
24051
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CaTooltipListComponent, decorators: [{
23755
24052
  type: Component,
23756
- args: [{ selector: 'app-ca-tooltip-list', standalone: true, imports: [CommonModule, NFormatterPipe, FormatCurrencyPipe, TruncatePipe], template: "<ng-container\n [ngTemplateOutlet]=\"\n tooltipList?.showPercentage ? percentageTemplate : noPercentageTemplate\n \"\n [ngTemplateOutletContext]=\"{ tooltipList: tooltipList }\"\n>\n</ng-container>\n\n<ng-template #noPercentageTemplate let-tooltipList=\"tooltipList\">\n <div\n class=\"tooltip-list-container\"\n [ngClass]=\"isSingleItemSelected ? 'width-small' : 'width-medium'\"\n >\n <ng-container\n [ngTemplateOutlet]=\"tooltipHeader\"\n [ngTemplateOutletContext]=\"{ tooltipList: tooltipList }\"\n >\n </ng-container>\n <div\n [ngClass]=\"\n isSingleItemSelected\n ? 'tooltip-list-body-list'\n : 'tooltip-list-body-table'\n \"\n >\n <ng-container\n *ngFor=\"\n let item of tooltipList.selectedItems;\n let indx = index;\n trackBy: trackByIdentity\n \"\n [ngTemplateOutlet]=\"\n isSingleItemSelected ? listItemTemplate : tableItemTemplate\n \"\n [ngTemplateOutletContext]=\"{ item: item }\"\n >\n </ng-container>\n <ng-container\n *ngFor=\"\n let item of tooltipList.otherItems;\n let indx = index;\n trackBy: trackByIdentity\n \"\n [ngTemplateOutlet]=\"\n isSingleItemSelected ? listItemTemplate : tableItemTemplate\n \"\n [ngTemplateOutletContext]=\"{ item: item }\"\n >\n </ng-container>\n </div>\n </div>\n</ng-template>\n\n<ng-template #percentageTemplate let-tooltipList=\"tooltipList\">\n <div\n class=\"tooltip-list-container\"\n [ngClass]=\"isLessThanFourItemsSelected ? 'width-small' : 'width-large'\"\n >\n <ng-container\n *ngTemplateOutlet=\"tooltipHeader; context: { tooltipList: tooltipList }\"\n >\n </ng-container>\n <div\n [ngClass]=\"\n isLessThanFourItemsSelected\n ? 'tooltip-list-body-list'\n : 'tooltip-list-body-table'\n \"\n >\n <ng-container *ngIf=\"this.tooltipList?.selectedItems?.length >= 1\">\n <ng-container\n *ngFor=\"\n let item of tooltipList.selectedItems;\n let indx = index;\n trackBy: trackByIdentity\n \"\n [ngTemplateOutlet]=\"\n isLessThanFourItemsSelected\n ? listItemPercentageTemplate\n : tableItemTemplate\n \"\n [ngTemplateOutletContext]=\"{ item: item }\"\n >\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"this.tooltipList?.selectedItems?.length < 1\">\n <ng-container\n *ngFor=\"\n let item of tooltipList.otherItems;\n let indx = index;\n trackBy: trackByIdentity\n \"\n [ngTemplateOutlet]=\"listItemPercentageTemplate\"\n [ngTemplateOutletContext]=\"{ item: item }\"\n >\n </ng-container>\n </ng-container>\n </div>\n </div>\n</ng-template>\n\n<ng-template #tooltipHeader let-tooltipList=\"tooltipList\">\n <div class=\"tooltip-list-header\">\n <ng-container *ngIf=\"tooltipList?.singleDate\">\n <span>{{ tooltipList.singleDate | uppercase }}</span>\n </ng-container>\n <ng-container *ngIf=\"tooltipList?.startDate && tooltipList?.endDate\">\n <span>{{ tooltipList.startDate }} - {{ tooltipList.endDate }}</span>\n </ng-container>\n </div>\n</ng-template>\n\n<ng-template #listItemTemplate let-item=\"item\">\n <div class=\"d-flex flex-column justify-content-between tooltip-list-item\">\n <div class=\"tooltip-list-inline\">\n <span\n class=\"tooltip-list-item-dot\"\n [style.backgroundColor]=\"item.color\"\n ></span>\n <span class=\"tooltip-list-item-label\">{{\n item.label | truncate: truncateLength\n }}</span>\n </div>\n <span class=\"tooltip-list-item-value\">{{\n item.isCurrency\n ? (item.value | formatCurrency: item.isCurrency)\n : (item.value | nFormatter)\n }}</span>\n <ng-container *ngIf=\"item.percentage\">\n <span class=\"tooltip-list-item-percentage\">{{ item.percentage }}</span>\n </ng-container>\n </div>\n</ng-template>\n\n<ng-template #listItemPercentageTemplate let-item=\"item\">\n <div class=\"d-flex flex-column justify-content-between tooltip-list-item\">\n <div class=\"tooltip-list-inline\">\n <span\n class=\"tooltip-list-item-dot\"\n [style.backgroundColor]=\"item.color\"\n ></span>\n <span class=\"tooltip-list-item-label\">{{\n item.label | truncate: truncateLength\n }}</span>\n </div>\n <div class=\"d-flex align-items-center\">\n <span class=\"tooltip-list-item-value\">{{\n item.isCurrency\n ? (item.value | formatCurrency: item.isCurrency)\n : (item.value | nFormatter)\n }}</span>\n <span class=\"dot-delimiter\">{{\n constants.VALUE_PERCENTAGE_DELIMITER\n }}</span>\n <ng-container *ngIf=\"item.percentage\">\n <span class=\"tooltip-list-item-percentage\">{{ item.percentage }}</span>\n </ng-container>\n </div>\n </div>\n</ng-template>\n\n<ng-template #tableItemTemplate let-item=\"item\">\n <div class=\"table-item-layout\">\n <div class=\"table-item-cell\">\n <span\n class=\"tooltip-list-item-dot\"\n [style.backgroundColor]=\"item.color\"\n ></span>\n <span class=\"tooltip-list-item-label\">{{\n item.label | truncate: truncateLength\n }}</span>\n </div>\n <span class=\"text-end table-item-cell tooltip-list-item-value\">{{\n item.isCurrency\n ? (item.value | formatCurrency: item.isCurrency)\n : (item.value | nFormatter)\n }}</span>\n <ng-container *ngIf=\"item.percentage\">\n <span class=\"text-end table-item-cell tooltip-list-item-percentage\">{{\n item.percentage\n }}</span>\n </ng-container>\n </div>\n</ng-template>\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap\";@import\"https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css\";.ca-font-thin{font-weight:100!important}.ca-font-extra-light{font-weight:200!important}.ca-font-light{font-weight:300!important}.ca-font-regular{font-weight:400!important}.ca-font-medium{font-weight:500!important}.ca-font-semi-bold{font-weight:600!important}.ca-font-bold{font-weight:700!important}.ca-font-extra-bold{font-weight:800!important}.ca-font-black{font-weight:900!important}.pickup-delivery-popover{top:-38px!important;max-width:340px!important}.pickup-delivery-popover.bs-popover-top{top:auto!important;bottom:-38px!important}.pickup-delivery-popover.bs-popover-top .load-component .assigned-load-holder{order:3;margin-top:4px;margin-bottom:0!important}.pickup-delivery-popover.bs-popover-top .load-component .statusBar{order:2;margin-top:4px}.pickup-delivery-popover.bs-popover-top .load-component .animation-three-tabs{order:1}.gps_dropdown_popover{top:-38px;max-width:494px}.gps_dropdown_popover .popover-body{padding:0}.table-progress-popover{background-color:unset!important;margin-left:-10px}.table-progress-popover .progress-dropdown{margin-top:-6px;width:260px;height:200px;background:#2f2f2f;border-radius:3px;padding:8px;box-shadow:0 0 4px #00000026;overflow:hidden;-webkit-animation:progressAnimation .25s ease-in-out;animation:progressAnimation .25s ease-in-out}.table-progress-popover .progress-dropdown .progress-header .progress-title{font-size:18px;font-weight:600;color:#dadada}.table-progress-popover .progress-dropdown .progress-header .progress-title span{font-weight:400}.table-progress-popover .progress-dropdown .progress-header .progress-total{font-size:14px;line-height:17px;color:#dadada}.table-progress-popover .progress-dropdown .table-progress-bar-container{width:100%;height:8px;margin-top:6px;border-radius:2px;overflow:hidden}.table-progress-popover .progress-dropdown .table-progress-bar-container .table-progress-bar{height:100%}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-dual-info-container .progress-info-container{width:50%}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-info-container{margin-top:10px}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-info-container .progress-info-title{margin-bottom:2px;font-size:11px;font-weight:700;line-height:14px;color:#ffffffb2}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-info-container .progress-info-text{font-size:14px;line-height:18px;color:#dadada}.table-progress-popover .progress-dropdown.credit-dropdown{height:100px}@-webkit-keyframes progressAnimation{0%{height:0px}to{height:220px}}@keyframes progressAnimation{0%{height:0px}to{height:220px}}ngb-popover-window{padding:unset!important;border:unset!important}ngb-popover-window .popover-arrow{display:none!important}ngb-popover-window .popover-body{padding:unset!important}.dispatch-note .popover-body{position:relative;top:-4px;left:-4px}.tooltip{font-size:12px;position:relative}.tooltip.show{opacity:.83}.tooltip.fade:after,.tooltip.fade:before{transform:translateY(-10px);transition:all .15s ease-in-out}.tooltip.fade:hover:after,.tooltip.fade:hover:before{opacity:1;transform:translate(0)}.tooltip-inner{padding:4px 10px;white-space:nowrap;max-width:none;border-radius:3px}.placeholder-delete .tooltip-inner{background-color:#f66}.placeholder-delete .arrow:before{border-top-color:#f66}.custom-popup-owners-for-flag .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(126%) translate(-50%)!important;width:130px;border-radius:3px;box-shadow:0 0 3px #0003}.custom-popup-owners-for-flag .arrow{bottom:-18%;transform:rotate(180deg);left:calc(50% + 2.7rem)}.custom-popup-owners-for-flag .tooltip{opacity:.93!important;width:0}.custom-popup-owners{z-index:999}.custom-popup-owners .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(132%);z-index:999;box-shadow:0 0 3px #0003}.custom-popup-owners .arrow{bottom:-20%;transform:rotate(180deg)}.custom-popup-owners .tooltip{transform:translateY(-61px)!important}.custom-popup-owners-year{z-index:999}.custom-popup-owners-year .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(132%);z-index:999;box-shadow:0 0 3px #0003}.custom-popup-owners-year .arrow{bottom:-20%;transform:rotate(180deg)}.custom-popup-owners-year .tooltip{transform:translate(70px,-61px)!important}.custom-popup-owners-info .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(-100%) translate(-10%);width:200px;height:36px;display:flex;justify-content:center;align-items:center;border-radius:3px;margin-top:3px;box-shadow:0 0 3px #0003}.custom-popup-owners-info .tooltip{opacity:.93;width:0}.custom-popup-owners-info .arrow{display:none}.custom-popup-owners-info #phone-inside{position:relative;right:26px;bottom:0}.custom-popup-owners-info-at .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(-108%) translate(-7%);width:270px;height:36px;display:flex;justify-content:center;align-items:center;border-radius:3px;box-shadow:0 0 3px #0003}.custom-popup-owners-info-at .tooltip{opacity:1;width:0}.custom-popup-owners-info-at .arrow{display:none}.custom-popup-owners-for-tag .tooltip-inner{color:#3b3b3b;background-color:#fff;width:100px;border-radius:3px;box-shadow:0 0 3px #0003!important}.custom-popup-owners-for-tag .tooltip{top:5px!important}.custom-popup-owners-for-tag .arrow{bottom:-24%}.align-items-flex-start{justify-content:center;align-items:center}.align-items-flex-end{display:flex;justify-content:center;flex-direction:column;align-self:flex-end;align-items:flex-start}.label-add{align-self:flex-start}.fadeInLoad{animation:fadeInLoad .25s}@keyframes fadeInLoad{0%{opacity:0}to{opacity:1}}.fadeIn{opacity:1;-webkit-transition:.25s;-moz-transition:.25s;-o-transition:.25s;transition:.25s}.thisText:hover .fadeIn{opacity:0}.fadeInLoad{animation-name:example;animation-duration:.25s}@keyframes example{0%{transform:scale(.5)}to{transform:scale(1)}}.tooltip.tooltip-table-icons{left:12px!important;opacity:1}.tooltip.tooltip-table-icons .arrow{display:none!important}.tooltip.tooltip-table-icons .tooltip-inner{border-radius:0 50px 50px;background:#28529f}.tooltip.show{opacity:1;animation:fadeIn ease .5s!important;-webkit-animation:fadeIn ease .5s!important;-moz-animation:fadeIn ease .5s!important;-o-animation:fadeIn ease .5s!important;-ms-animation:fadeIn ease .5s!important}.ta-tooltip{position:absolute;font-size:12px;text-align:center;color:#fff;line-height:22px;z-index:999999!important;opacity:0;white-space:nowrap;transform:scale(.7)}.ta-tooltip.ta-tooltip-show{opacity:.85;transform:scale(1);padding:0 12px}.ta-tooltip.ta-tooltip-bottom-right,.ta-tooltip.ta-tooltip-bottom-right-corner{transform-origin:top left;border-radius:0 15px 15px}.ta-tooltip.ta-tooltip-bottom-left{transform-origin:top right;border-radius:15px 0 15px 15px}@keyframes scaleItem{0%{transform:scale(.4)}to{transform:scale(1)}}.app-ca-main-tooltip{pointer-events:none}.app-ca-main-tooltip .tooltip-inner{padding:0;pointer-events:none}.app-ca-main-tooltip .tooltip-inner .tooltip-holder{display:flex;font-size:11px;font-weight:700;border-radius:2px;padding:2px 8px;animation:scaleItem .3s;white-space:normal}.tooltip-arrow{display:none!important}.trucks.semitruck svg path,.trucks.semisleeper svg path,.trucks.flatbed svg path,.trucks.stepdeck svg path,.trucks.lowboyrgn svg path,.trucks.chassis svg path,.trucks.conestoga svg path,.trucks.sidekit svg path,.trucks.container svg path,.trailers.semitruck svg path,.trailers.semisleeper svg path,.trailers.flatbed svg path,.trailers.stepdeck svg path,.trailers.lowboyrgn svg path,.trailers.chassis svg path,.trailers.conestoga svg path,.trailers.sidekit svg path,.trailers.container svg path{fill:#92b1f5}.trucks.boxtruck svg path,.trucks.reefertruck svg path,.trucks.cargovan svg path,.trucks.dryvan svg path,.trucks.reefer svg path,.trailers.boxtruck svg path,.trailers.reefertruck svg path,.trailers.cargovan svg path,.trailers.dryvan svg path,.trailers.reefer svg path{fill:#fbc88b}.trucks.dumptruck svg path,.trucks.cementtruck svg path,.trucks.garbagetruck svg path,.trucks.enddump svg path,.trucks.bottomdump svg path,.trucks.hopper svg path,.trucks.tanker svg path,.trucks.pneumatictanker svg path,.trailers.dumptruck svg path,.trailers.cementtruck svg path,.trailers.garbagetruck svg path,.trailers.enddump svg path,.trailers.bottomdump svg path,.trailers.hopper svg path,.trailers.tanker svg path,.trailers.pneumatictanker svg path{fill:#ed9292}.trucks.towtruck svg path,.trucks.carhauler svg path,.trucks.spotter svg path,.trucks.carhaulerstigner svg path,.trailers.towtruck svg path,.trailers.carhauler svg path,.trailers.spotter svg path,.trailers.carhaulerstigner svg path{fill:#86c9c3}.trucks .svgtext-template-text,.trailers .svgtext-template-text{color:#fff;transition:color .3s ease-in-out}.colors .black svg #droplet{fill:#6c6c6c}.colors .brown svg #droplet{fill:#a1887f}.colors .darkgreen svg #droplet{fill:#4db6a2}.colors .lightgreen svg #droplet{fill:#81c784}.colors .darkblue svg #droplet{fill:#546fd2}.colors .lightblue svg #droplet{fill:#64b5f6}.colors .gray svg #droplet{fill:#aaa}.colors .purple svg #droplet{fill:#ba68c8}.colors .gold svg #droplet{fill:#bcad79}.colors .silver svg #droplet{fill:#dadada}.colors .red svg #droplet{fill:#f96b69}.colors .pink svg #droplet{fill:#f26ec2}.colors .white svg #droplet{fill:#f1f1f1}.colors .orange svg #droplet{fill:#ff8a65}.colors .yellow svg #droplet{fill:#ffd54f}.colors:hover{transition:all .3s ease-in-out}.colors:hover .black svg #droplet{fill:#3c3c3c}.colors:hover .brown svg #droplet{fill:#8d6e63}.colors:hover .darkgreen svg #droplet{fill:#26a690}.colors:hover .lightgreen svg #droplet{fill:#66bb6a}.colors:hover .darkblue svg #droplet{fill:#304fc1}.colors:hover .lightblue svg #droplet{fill:#42a5f5}.colors:hover .gray svg #droplet{fill:#919191}.colors:hover .purple svg #droplet{fill:#ab47bc}.colors:hover .gold svg #droplet{fill:#aa9c6e}.colors:hover .silver svg #droplet{fill:#b7b7b7}.colors:hover .red svg #droplet{fill:#ef5350}.colors:hover .pink svg #droplet{fill:#fa4daa}.colors:hover .white svg #droplet{fill:#fff}.colors:hover .orange svg #droplet{fill:#ff7043}.colors:hover .yellow svg #droplet{fill:#ffca28}.text-color-black{color:#424242!important}.text-color-black::-moz-selection{background:#42424233!important;color:#424242!important}.text-color-black::selection{background:#42424233!important;color:#424242!important}.text-color-black-2{color:#2f2f2f!important}.text-color-black-2::-moz-selection{background:#2f2f2f33!important;color:#2f2f2f!important}.text-color-black-2::selection{background:#2f2f2f33!important;color:#2f2f2f!important}.text-color-muted{color:#919191!important}.text-color-muted::-moz-selection{background:#91919133!important;color:#919191!important}.text-color-muted::selection{background:#91919133!important;color:#919191!important}.text-color-green{color:#56b4ac!important}.text-color-green::-moz-selection{background:#56b4ac33!important;color:#56b4ac!important}.text-color-green::selection{background:#56b4ac33!important;color:#56b4ac!important}.text-color-blue-13{color:#6692f1!important}.text-color-blue-13::-moz-selection{background:#66921833!important;color:#6692f1!important}.text-color-blue-13::selection{background:#66921833!important;color:#6692f1!important}.text-color-blue-18{color:#3b73ed!important}.text-color-blue-18::-moz-selection{background:#3b73ed33!important;color:#3b73ed!important}.text-color-blue-18::selection{background:#3b73ed33!important;color:#3b73ed!important}.text-color-red-10{color:#e66767!important}.text-color-red-10::-moz-selection{background:#e6676733!important;color:#e66767!important}.text-color-red-10::selection{background:#e6676733!important;color:#e66767!important}.text-color-light-grey{color:#e5e5e5!important}.text-color-light-grey::-moz-selection{background:#e5e5e533!important;color:#e5e5e5!important}.text-color-light-grey::selection{background:#e5e5e533!important;color:#e5e5e5!important}.text-color-light-grey-2{color:#aaa!important}.text-color-light-grey-2::-moz-selection{background:#aaa3!important;color:#aaa!important}.text-color-light-grey-2::selection{background:#aaa3!important;color:#aaa!important}.text-color-light-grey-6{color:#ccc!important}.text-color-light-grey-6::-moz-selection{color:#ccc!important;background:#aaa3!important}.text-color-light-grey-6::selection{color:#ccc!important;background:#aaa3!important}.text-color-white{color:#dadada!important}.text-color-white::-moz-selection{color:#dadada!important;background:#fff3!important}.text-color-white::selection{color:#dadada!important;background:#fff3!important}.text-color-white-4{color:#ffffffb2!important}.text-color-white-4::-moz-selection{color:#ffffffb2!important;background:#fff3!important}.text-color-white-4::selection{color:#ffffffb2!important;background:#fff3!important}.text-color-dark-grey{color:#6c6c6c!important}.text-color-dark-grey::-moz-selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-dark-grey::selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw6-2{color:#6c6c6c!important}.text-color-bw6-2::-moz-selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw6-2::selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw-9{color:#dadada!important}.text-color-bw-9::-moz-selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw-9::selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-grey{color:#919191!important}.text-color-grey::-moz-selection{color:#919191!important;background:#91919133!important}.text-color-grey::selection{color:#919191!important;background:#91919133!important}.text-color-grey .address-text::-moz-selection,.text-color-grey .marker-bold-text::-moz-selection{color:#919191!important;background:#91919133!important}.text-color-grey .address-text::selection,.text-color-grey .marker-bold-text::selection{color:#919191!important;background:#91919133!important}.text-size-11{font-size:11px!important;line-height:14px!important}.text-size-14{font-size:14px!important;line-height:18px!important}.text-size-16{font-size:16px!important;line-height:19px!important}.text-size-18{font-size:18px!important;line-height:22px!important}.text-size-26{font-size:26px!important;line-height:32px!important}.text-size-28{font-size:28px!important;line-height:34px!important}@keyframes dropdown{0%{margin-top:20px;visibility:hidden;opacity:0}to{opacity:1;margin-top:10px;visibility:visible!important}}@keyframes dropup{0%{margin-top:-19px;visibility:hidden;opacity:0}to{margin-top:inherit;visibility:visible!important}}.svg-fill-black svg path{fill:#424242!important}.svg-fill-muted svg path{fill:#919191!important}.svg-fill-bw-9 svg path{fill:#dadada!important}.svg-fill-light-grey-2 svg path{fill:#aaa!important}.svg-fill-light-grey-6 svg path{fill:#ccc!important}.svg-fill-blue-13 svg path{fill:#6692f1!important}.svg-fill-blue-19 svg path{fill:#92b1f5!important}.svg-fill-blue-26 svg path{fill:#4dc5eb!important}.svg-hover-muted svg path{transition:all .3s ease-in-out}.svg-hover-muted:hover svg path{fill:#919191!important}.svg-hover-black svg path{transition:all .3s ease-in-out}.svg-hover-black:hover svg path{fill:#424242!important}.svg-hover-blue-15 svg path{transition:all .3s ease-in-out}.svg-hover-blue-15:hover svg path{fill:#0b49d1!important}.svg-hover-bw6-2 svg path{transition:all .3s ease-in-out}.svg-hover-bw6-2:hover svg path{fill:#6c6c6c!important}.svg-hover-trash-red svg path{transition:all .3s ease-in-out}.svg-hover-trash-red:hover svg path{fill:#ff5050!important}.svg-hover-red-14 svg path{transition:all .3s ease-in-out}.svg-hover-red-14:hover svg path{fill:#c20c0c!important}.svg-size-12 svg{width:12px;height:12px}.svg-size-14 svg{width:14px;height:14px}.svg-size-16 svg{width:16px;height:16px}.svg-size-18 svg{width:18px;height:18px}.svg-size-44-16 svg{width:44px;height:16px}*{margin:0;font-family:Montserrat,sans-serif}html{scroll-behavior:auto!important}.gm-style-iw-chr,.gm-style-iw-tc{display:none}.gm-style .gm-style-iw-c{border-radius:0}.gm-style-iw{overflow-y:auto!important;overflow-x:hidden!important}.gm-style-iw>div{overflow:visible!important}.infoWindow{overflow:hidden!important}.gm-style-iw-d,.gm-style-iw.gm-style-iw-c{max-height:350px!important}::ng-deep .popover{--bs-popover-border-width: 0;--bs-popover-body-padding-y: 0;--bs-popover-body-padding-x: 0}::ng-deep .popover .popover-arrow{display:none}::ng-deep app-ca-tooltip-list .width-small{width:160px}::ng-deep app-ca-tooltip-list .width-medium{width:200px}::ng-deep app-ca-tooltip-list .width-large{width:240px}::ng-deep app-ca-tooltip-list .tooltip-list-container{padding:4px;background-color:#2f2f2f;color:#fff;border-radius:3px;box-shadow:0 4px 8px #0003}::ng-deep app-ca-tooltip-list .tooltip-list-header{margin:0;padding:4px;border-bottom:1px solid #424242}::ng-deep app-ca-tooltip-list .tooltip-list-header span{font-size:11px;font-weight:800;color:#fff;text-align:left}::ng-deep app-ca-tooltip-list .tooltip-list-body-list{margin-top:8px}::ng-deep app-ca-tooltip-list .tooltip-list-body-table{display:table;width:100%;padding:4px}::ng-deep app-ca-tooltip-list .tooltip-list-item{padding:4px;font-size:11px}::ng-deep app-ca-tooltip-list .tooltip-list-inline{line-height:1}::ng-deep app-ca-tooltip-list .table-item-layout{display:table-row;width:100%}::ng-deep app-ca-tooltip-list .table-item-cell{display:table-cell}::ng-deep app-ca-tooltip-list .table-item-cell:not(:last-child){padding-right:10px!important}::ng-deep app-ca-tooltip-list .tooltip-list-item-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:8px}::ng-deep app-ca-tooltip-list .tooltip-list-item-label{font-size:11px;font-weight:700;color:#fff}::ng-deep app-ca-tooltip-list .tooltip-list-item-value{font-weight:400;font-size:11px;color:#fff}::ng-deep app-ca-tooltip-list .tooltip-list-item-percentage{font-weight:700;font-size:11px;color:#fff}::ng-deep app-ca-tooltip-list .dot-delimiter{margin:0 4px;font-size:.8em;line-height:1;color:#fff}\n"] }]
24053
+ args: [{ selector: 'app-ca-tooltip-list', standalone: true, imports: [CommonModule, NFormatterPipe, FormatCurrencyPipe, TruncatePipe], template: "<ng-container\n [ngTemplateOutlet]=\"\n tooltipList?.showPercentage ? percentageTemplate : noPercentageTemplate\n \"\n [ngTemplateOutletContext]=\"{ tooltipList: tooltipList }\"\n>\n</ng-container>\n\n<ng-template #noPercentageTemplate let-tooltipList=\"tooltipList\">\n <div\n class=\"tooltip-list-container\"\n [ngClass]=\"isSingleItemSelected ? 'width-small' : 'width-medium'\"\n >\n <ng-container\n [ngTemplateOutlet]=\"tooltipHeader\"\n [ngTemplateOutletContext]=\"{ tooltipList: tooltipList }\"\n >\n </ng-container>\n <div\n [ngClass]=\"\n isSingleItemSelected\n ? 'tooltip-list-body-list'\n : 'tooltip-list-body-table'\n \"\n >\n <ng-container\n *ngFor=\"\n let item of tooltipList.selectedItems;\n let indx = index;\n trackBy: trackByIdentity\n \"\n [ngTemplateOutlet]=\"\n isSingleItemSelected ? listItemTemplate : tableItemTemplate\n \"\n [ngTemplateOutletContext]=\"{ item: item }\"\n >\n </ng-container>\n <ng-container\n *ngFor=\"\n let item of tooltipList.otherItems;\n let indx = index;\n trackBy: trackByIdentity\n \"\n [ngTemplateOutlet]=\"\n isSingleItemSelected ? listItemTemplate : tableItemTemplate\n \"\n [ngTemplateOutletContext]=\"{ item: item }\"\n >\n </ng-container>\n </div>\n </div>\n</ng-template>\n\n<ng-template #percentageTemplate let-tooltipList=\"tooltipList\">\n <div\n class=\"tooltip-list-container\"\n [ngClass]=\"isLessThanFourItemsSelected ? 'width-small' : 'width-large'\"\n >\n <ng-container\n *ngTemplateOutlet=\"tooltipHeader; context: { tooltipList: tooltipList }\"\n >\n </ng-container>\n <div\n [ngClass]=\"\n isLessThanFourItemsSelected\n ? 'tooltip-list-body-list'\n : 'tooltip-list-body-table'\n \"\n >\n <ng-container *ngIf=\"this.tooltipList?.selectedItems?.length >= 1\">\n <ng-container\n *ngFor=\"\n let item of tooltipList.selectedItems;\n let indx = index;\n trackBy: trackByIdentity\n \"\n [ngTemplateOutlet]=\"\n isLessThanFourItemsSelected\n ? listItemPercentageTemplate\n : tableItemTemplate\n \"\n [ngTemplateOutletContext]=\"{ item: item }\"\n >\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"this.tooltipList?.selectedItems?.length < 1\">\n <ng-container\n *ngFor=\"\n let item of tooltipList.otherItems;\n let indx = index;\n trackBy: trackByIdentity\n \"\n [ngTemplateOutlet]=\"listItemPercentageTemplate\"\n [ngTemplateOutletContext]=\"{ item: item }\"\n >\n </ng-container>\n </ng-container>\n </div>\n </div>\n</ng-template>\n\n<ng-template #tooltipHeader let-tooltipList=\"tooltipList\">\n <div class=\"tooltip-list-header\">\n <span>{{tooltipList.date}}</span>\n </div>\n</ng-template>\n\n<ng-template #listItemTemplate let-item=\"item\">\n <div class=\"d-flex flex-column justify-content-between tooltip-list-item\">\n <div class=\"tooltip-list-inline\">\n <span\n class=\"tooltip-list-item-dot\"\n [style.backgroundColor]=\"item.color\"\n ></span>\n <span class=\"tooltip-list-item-label\">{{\n item.label | truncate: truncateLength\n }}</span>\n </div>\n <span class=\"tooltip-list-item-value\">{{\n item.isCurrency\n ? (item.value | formatCurrency: item.isCurrency)\n : (item.value | nFormatter)\n }}</span>\n <ng-container *ngIf=\"item.percentage\">\n <span class=\"tooltip-list-item-percentage\">{{ item.percentage }}</span>\n </ng-container>\n </div>\n</ng-template>\n\n<ng-template #listItemPercentageTemplate let-item=\"item\">\n <div class=\"d-flex flex-column justify-content-between tooltip-list-item\">\n <div class=\"tooltip-list-inline\">\n <span\n class=\"tooltip-list-item-dot\"\n [style.backgroundColor]=\"item.color\"\n ></span>\n <span class=\"tooltip-list-item-label\">{{\n item.label | truncate: truncateLength\n }}</span>\n </div>\n <div class=\"d-flex align-items-center\">\n <span class=\"tooltip-list-item-value\">{{\n item.isCurrency\n ? (item.value | formatCurrency: item.isCurrency)\n : (item.value | nFormatter)\n }}</span>\n <span class=\"dot-delimiter\">{{\n constants.VALUE_PERCENTAGE_DELIMITER\n }}</span>\n <ng-container *ngIf=\"item.percentage\">\n <span class=\"tooltip-list-item-percentage\">{{ item.percentage }}</span>\n </ng-container>\n </div>\n </div>\n</ng-template>\n\n<ng-template #tableItemTemplate let-item=\"item\">\n <div class=\"table-item-layout\">\n <div class=\"table-item-cell\">\n <span\n class=\"tooltip-list-item-dot\"\n [style.backgroundColor]=\"item.color\"\n ></span>\n <span class=\"tooltip-list-item-label\">{{\n item.label | truncate: truncateLength\n }}</span>\n </div>\n <span class=\"text-end table-item-cell tooltip-list-item-value\">{{\n item.isCurrency\n ? (item.value | formatCurrency: item.isCurrency)\n : (item.value | nFormatter)\n }}</span>\n <ng-container *ngIf=\"item.percentage\">\n <span class=\"text-end table-item-cell tooltip-list-item-percentage\">{{\n item.percentage\n }}</span>\n </ng-container>\n </div>\n</ng-template>\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap\";@import\"https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css\";.ca-font-thin{font-weight:100!important}.ca-font-extra-light{font-weight:200!important}.ca-font-light{font-weight:300!important}.ca-font-regular{font-weight:400!important}.ca-font-medium{font-weight:500!important}.ca-font-semi-bold{font-weight:600!important}.ca-font-bold{font-weight:700!important}.ca-font-extra-bold{font-weight:800!important}.ca-font-black{font-weight:900!important}.pickup-delivery-popover{top:-38px!important;max-width:340px!important}.pickup-delivery-popover.bs-popover-top{top:auto!important;bottom:-38px!important}.pickup-delivery-popover.bs-popover-top .load-component .assigned-load-holder{order:3;margin-top:4px;margin-bottom:0!important}.pickup-delivery-popover.bs-popover-top .load-component .statusBar{order:2;margin-top:4px}.pickup-delivery-popover.bs-popover-top .load-component .animation-three-tabs{order:1}.gps_dropdown_popover{top:-38px;max-width:494px}.gps_dropdown_popover .popover-body{padding:0}.table-progress-popover{background-color:unset!important;margin-left:-10px}.table-progress-popover .progress-dropdown{margin-top:-6px;width:260px;height:200px;background:#2f2f2f;border-radius:3px;padding:8px;box-shadow:0 0 4px #00000026;overflow:hidden;-webkit-animation:progressAnimation .25s ease-in-out;animation:progressAnimation .25s ease-in-out}.table-progress-popover .progress-dropdown .progress-header .progress-title{font-size:18px;font-weight:600;color:#dadada}.table-progress-popover .progress-dropdown .progress-header .progress-title span{font-weight:400}.table-progress-popover .progress-dropdown .progress-header .progress-total{font-size:14px;line-height:17px;color:#dadada}.table-progress-popover .progress-dropdown .table-progress-bar-container{width:100%;height:8px;margin-top:6px;border-radius:2px;overflow:hidden}.table-progress-popover .progress-dropdown .table-progress-bar-container .table-progress-bar{height:100%}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-dual-info-container .progress-info-container{width:50%}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-info-container{margin-top:10px}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-info-container .progress-info-title{margin-bottom:2px;font-size:11px;font-weight:700;line-height:14px;color:#ffffffb2}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-info-container .progress-info-text{font-size:14px;line-height:18px;color:#dadada}.table-progress-popover .progress-dropdown.credit-dropdown{height:100px}@-webkit-keyframes progressAnimation{0%{height:0px}to{height:220px}}@keyframes progressAnimation{0%{height:0px}to{height:220px}}ngb-popover-window{padding:unset!important;border:unset!important}ngb-popover-window .popover-arrow{display:none!important}ngb-popover-window .popover-body{padding:unset!important}.dispatch-note .popover-body{position:relative;top:-4px;left:-4px}.tooltip{font-size:12px;position:relative}.tooltip.show{opacity:.83}.tooltip.fade:after,.tooltip.fade:before{transform:translateY(-10px);transition:all .15s ease-in-out}.tooltip.fade:hover:after,.tooltip.fade:hover:before{opacity:1;transform:translate(0)}.tooltip-inner{padding:4px 10px;white-space:nowrap;max-width:none;border-radius:3px}.placeholder-delete .tooltip-inner{background-color:#f66}.placeholder-delete .arrow:before{border-top-color:#f66}.custom-popup-owners-for-flag .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(126%) translate(-50%)!important;width:130px;border-radius:3px;box-shadow:0 0 3px #0003}.custom-popup-owners-for-flag .arrow{bottom:-18%;transform:rotate(180deg);left:calc(50% + 2.7rem)}.custom-popup-owners-for-flag .tooltip{opacity:.93!important;width:0}.custom-popup-owners{z-index:999}.custom-popup-owners .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(132%);z-index:999;box-shadow:0 0 3px #0003}.custom-popup-owners .arrow{bottom:-20%;transform:rotate(180deg)}.custom-popup-owners .tooltip{transform:translateY(-61px)!important}.custom-popup-owners-year{z-index:999}.custom-popup-owners-year .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(132%);z-index:999;box-shadow:0 0 3px #0003}.custom-popup-owners-year .arrow{bottom:-20%;transform:rotate(180deg)}.custom-popup-owners-year .tooltip{transform:translate(70px,-61px)!important}.custom-popup-owners-info .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(-100%) translate(-10%);width:200px;height:36px;display:flex;justify-content:center;align-items:center;border-radius:3px;margin-top:3px;box-shadow:0 0 3px #0003}.custom-popup-owners-info .tooltip{opacity:.93;width:0}.custom-popup-owners-info .arrow{display:none}.custom-popup-owners-info #phone-inside{position:relative;right:26px;bottom:0}.custom-popup-owners-info-at .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(-108%) translate(-7%);width:270px;height:36px;display:flex;justify-content:center;align-items:center;border-radius:3px;box-shadow:0 0 3px #0003}.custom-popup-owners-info-at .tooltip{opacity:1;width:0}.custom-popup-owners-info-at .arrow{display:none}.custom-popup-owners-for-tag .tooltip-inner{color:#3b3b3b;background-color:#fff;width:100px;border-radius:3px;box-shadow:0 0 3px #0003!important}.custom-popup-owners-for-tag .tooltip{top:5px!important}.custom-popup-owners-for-tag .arrow{bottom:-24%}.align-items-flex-start{justify-content:center;align-items:center}.align-items-flex-end{display:flex;justify-content:center;flex-direction:column;align-self:flex-end;align-items:flex-start}.label-add{align-self:flex-start}.fadeInLoad{animation:fadeInLoad .25s}@keyframes fadeInLoad{0%{opacity:0}to{opacity:1}}.fadeIn{opacity:1;-webkit-transition:.25s;-moz-transition:.25s;-o-transition:.25s;transition:.25s}.thisText:hover .fadeIn{opacity:0}.fadeInLoad{animation-name:example;animation-duration:.25s}@keyframes example{0%{transform:scale(.5)}to{transform:scale(1)}}.tooltip.tooltip-table-icons{left:12px!important;opacity:1}.tooltip.tooltip-table-icons .arrow{display:none!important}.tooltip.tooltip-table-icons .tooltip-inner{border-radius:0 50px 50px;background:#28529f}.tooltip.show{opacity:1;animation:fadeIn ease .5s!important;-webkit-animation:fadeIn ease .5s!important;-moz-animation:fadeIn ease .5s!important;-o-animation:fadeIn ease .5s!important;-ms-animation:fadeIn ease .5s!important}.ta-tooltip{position:absolute;font-size:12px;text-align:center;color:#fff;line-height:22px;z-index:999999!important;opacity:0;white-space:nowrap;transform:scale(.7)}.ta-tooltip.ta-tooltip-show{opacity:.85;transform:scale(1);padding:0 12px}.ta-tooltip.ta-tooltip-bottom-right,.ta-tooltip.ta-tooltip-bottom-right-corner{transform-origin:top left;border-radius:0 15px 15px}.ta-tooltip.ta-tooltip-bottom-left{transform-origin:top right;border-radius:15px 0 15px 15px}@keyframes scaleItem{0%{transform:scale(.4)}to{transform:scale(1)}}.app-ca-main-tooltip{pointer-events:none}.app-ca-main-tooltip .tooltip-inner{padding:0;pointer-events:none}.app-ca-main-tooltip .tooltip-inner .tooltip-holder{display:flex;font-size:11px;font-weight:700;border-radius:2px;padding:2px 8px;animation:scaleItem .3s;white-space:normal}.tooltip-arrow{display:none!important}.trucks.semitruck svg path,.trucks.semisleeper svg path,.trucks.flatbed svg path,.trucks.stepdeck svg path,.trucks.lowboyrgn svg path,.trucks.chassis svg path,.trucks.conestoga svg path,.trucks.sidekit svg path,.trucks.container svg path,.trailers.semitruck svg path,.trailers.semisleeper svg path,.trailers.flatbed svg path,.trailers.stepdeck svg path,.trailers.lowboyrgn svg path,.trailers.chassis svg path,.trailers.conestoga svg path,.trailers.sidekit svg path,.trailers.container svg path{fill:#92b1f5}.trucks.boxtruck svg path,.trucks.reefertruck svg path,.trucks.cargovan svg path,.trucks.dryvan svg path,.trucks.reefer svg path,.trailers.boxtruck svg path,.trailers.reefertruck svg path,.trailers.cargovan svg path,.trailers.dryvan svg path,.trailers.reefer svg path{fill:#fbc88b}.trucks.dumptruck svg path,.trucks.cementtruck svg path,.trucks.garbagetruck svg path,.trucks.enddump svg path,.trucks.bottomdump svg path,.trucks.hopper svg path,.trucks.tanker svg path,.trucks.pneumatictanker svg path,.trailers.dumptruck svg path,.trailers.cementtruck svg path,.trailers.garbagetruck svg path,.trailers.enddump svg path,.trailers.bottomdump svg path,.trailers.hopper svg path,.trailers.tanker svg path,.trailers.pneumatictanker svg path{fill:#ed9292}.trucks.towtruck svg path,.trucks.carhauler svg path,.trucks.spotter svg path,.trucks.carhaulerstigner svg path,.trailers.towtruck svg path,.trailers.carhauler svg path,.trailers.spotter svg path,.trailers.carhaulerstigner svg path{fill:#86c9c3}.trucks .svgtext-template-text,.trailers .svgtext-template-text{color:#fff;transition:color .3s ease-in-out}.colors .black svg #droplet{fill:#6c6c6c}.colors .brown svg #droplet{fill:#a1887f}.colors .darkgreen svg #droplet{fill:#4db6a2}.colors .lightgreen svg #droplet{fill:#81c784}.colors .darkblue svg #droplet{fill:#546fd2}.colors .lightblue svg #droplet{fill:#64b5f6}.colors .gray svg #droplet{fill:#aaa}.colors .purple svg #droplet{fill:#ba68c8}.colors .gold svg #droplet{fill:#bcad79}.colors .silver svg #droplet{fill:#dadada}.colors .red svg #droplet{fill:#f96b69}.colors .pink svg #droplet{fill:#f26ec2}.colors .white svg #droplet{fill:#f1f1f1}.colors .orange svg #droplet{fill:#ff8a65}.colors .yellow svg #droplet{fill:#ffd54f}.colors:hover{transition:all .3s ease-in-out}.colors:hover .black svg #droplet{fill:#3c3c3c}.colors:hover .brown svg #droplet{fill:#8d6e63}.colors:hover .darkgreen svg #droplet{fill:#26a690}.colors:hover .lightgreen svg #droplet{fill:#66bb6a}.colors:hover .darkblue svg #droplet{fill:#304fc1}.colors:hover .lightblue svg #droplet{fill:#42a5f5}.colors:hover .gray svg #droplet{fill:#919191}.colors:hover .purple svg #droplet{fill:#ab47bc}.colors:hover .gold svg #droplet{fill:#aa9c6e}.colors:hover .silver svg #droplet{fill:#b7b7b7}.colors:hover .red svg #droplet{fill:#ef5350}.colors:hover .pink svg #droplet{fill:#fa4daa}.colors:hover .white svg #droplet{fill:#fff}.colors:hover .orange svg #droplet{fill:#ff7043}.colors:hover .yellow svg #droplet{fill:#ffca28}.text-color-black{color:#424242!important}.text-color-black::-moz-selection{background:#42424233!important;color:#424242!important}.text-color-black::selection{background:#42424233!important;color:#424242!important}.text-color-black-2{color:#2f2f2f!important}.text-color-black-2::-moz-selection{background:#2f2f2f33!important;color:#2f2f2f!important}.text-color-black-2::selection{background:#2f2f2f33!important;color:#2f2f2f!important}.text-color-muted{color:#919191!important}.text-color-muted::-moz-selection{background:#91919133!important;color:#919191!important}.text-color-muted::selection{background:#91919133!important;color:#919191!important}.text-color-green{color:#56b4ac!important}.text-color-green::-moz-selection{background:#56b4ac33!important;color:#56b4ac!important}.text-color-green::selection{background:#56b4ac33!important;color:#56b4ac!important}.text-color-blue-13{color:#6692f1!important}.text-color-blue-13::-moz-selection{background:#66921833!important;color:#6692f1!important}.text-color-blue-13::selection{background:#66921833!important;color:#6692f1!important}.text-color-blue-18{color:#3b73ed!important}.text-color-blue-18::-moz-selection{background:#3b73ed33!important;color:#3b73ed!important}.text-color-blue-18::selection{background:#3b73ed33!important;color:#3b73ed!important}.text-color-red-10{color:#e66767!important}.text-color-red-10::-moz-selection{background:#e6676733!important;color:#e66767!important}.text-color-red-10::selection{background:#e6676733!important;color:#e66767!important}.text-color-light-grey{color:#e5e5e5!important}.text-color-light-grey::-moz-selection{background:#e5e5e533!important;color:#e5e5e5!important}.text-color-light-grey::selection{background:#e5e5e533!important;color:#e5e5e5!important}.text-color-light-grey-2{color:#aaa!important}.text-color-light-grey-2::-moz-selection{background:#aaa3!important;color:#aaa!important}.text-color-light-grey-2::selection{background:#aaa3!important;color:#aaa!important}.text-color-light-grey-6{color:#ccc!important}.text-color-light-grey-6::-moz-selection{color:#ccc!important;background:#aaa3!important}.text-color-light-grey-6::selection{color:#ccc!important;background:#aaa3!important}.text-color-white{color:#dadada!important}.text-color-white::-moz-selection{color:#dadada!important;background:#fff3!important}.text-color-white::selection{color:#dadada!important;background:#fff3!important}.text-color-white-4{color:#ffffffb2!important}.text-color-white-4::-moz-selection{color:#ffffffb2!important;background:#fff3!important}.text-color-white-4::selection{color:#ffffffb2!important;background:#fff3!important}.text-color-dark-grey{color:#6c6c6c!important}.text-color-dark-grey::-moz-selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-dark-grey::selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw6-2{color:#6c6c6c!important}.text-color-bw6-2::-moz-selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw6-2::selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw-9{color:#dadada!important}.text-color-bw-9::-moz-selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw-9::selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-grey{color:#919191!important}.text-color-grey::-moz-selection{color:#919191!important;background:#91919133!important}.text-color-grey::selection{color:#919191!important;background:#91919133!important}.text-color-grey .address-text::-moz-selection,.text-color-grey .marker-bold-text::-moz-selection{color:#919191!important;background:#91919133!important}.text-color-grey .address-text::selection,.text-color-grey .marker-bold-text::selection{color:#919191!important;background:#91919133!important}.text-size-11{font-size:11px!important;line-height:14px!important}.text-size-14{font-size:14px!important;line-height:18px!important}.text-size-16{font-size:16px!important;line-height:19px!important}.text-size-18{font-size:18px!important;line-height:22px!important}.text-size-26{font-size:26px!important;line-height:32px!important}.text-size-28{font-size:28px!important;line-height:34px!important}@keyframes dropdown{0%{margin-top:20px;visibility:hidden;opacity:0}to{opacity:1;margin-top:10px;visibility:visible!important}}@keyframes dropup{0%{margin-top:-19px;visibility:hidden;opacity:0}to{margin-top:inherit;visibility:visible!important}}.svg-fill-black svg path{fill:#424242!important}.svg-fill-muted svg path{fill:#919191!important}.svg-fill-bw-9 svg path{fill:#dadada!important}.svg-fill-light-grey-2 svg path{fill:#aaa!important}.svg-fill-light-grey-6 svg path{fill:#ccc!important}.svg-fill-blue-13 svg path{fill:#6692f1!important}.svg-fill-blue-19 svg path{fill:#92b1f5!important}.svg-fill-blue-26 svg path{fill:#4dc5eb!important}.svg-hover-muted svg path{transition:all .3s ease-in-out}.svg-hover-muted:hover svg path{fill:#919191!important}.svg-hover-black svg path{transition:all .3s ease-in-out}.svg-hover-black:hover svg path{fill:#424242!important}.svg-hover-blue-15 svg path{transition:all .3s ease-in-out}.svg-hover-blue-15:hover svg path{fill:#0b49d1!important}.svg-hover-bw6-2 svg path{transition:all .3s ease-in-out}.svg-hover-bw6-2:hover svg path{fill:#6c6c6c!important}.svg-hover-trash-red svg path{transition:all .3s ease-in-out}.svg-hover-trash-red:hover svg path{fill:#ff5050!important}.svg-hover-red-14 svg path{transition:all .3s ease-in-out}.svg-hover-red-14:hover svg path{fill:#c20c0c!important}.svg-size-12 svg{width:12px;height:12px}.svg-size-14 svg{width:14px;height:14px}.svg-size-16 svg{width:16px;height:16px}.svg-size-18 svg{width:18px;height:18px}.svg-size-44-16 svg{width:44px;height:16px}*{margin:0;font-family:Montserrat,sans-serif}html{scroll-behavior:auto!important}.gm-style-iw-chr,.gm-style-iw-tc{display:none}.gm-style .gm-style-iw-c{border-radius:0}.gm-style-iw{overflow-y:auto!important;overflow-x:hidden!important}.gm-style-iw>div{overflow:visible!important}.infoWindow{overflow:hidden!important}.gm-style-iw-d,.gm-style-iw.gm-style-iw-c{max-height:350px!important}::ng-deep .popover{--bs-popover-border-width: 0;--bs-popover-body-padding-y: 0;--bs-popover-body-padding-x: 0}::ng-deep .popover .popover-arrow{display:none}::ng-deep app-ca-tooltip-list .width-small{width:160px}::ng-deep app-ca-tooltip-list .width-medium{width:200px}::ng-deep app-ca-tooltip-list .width-large{width:240px}::ng-deep app-ca-tooltip-list .tooltip-list-container{padding:4px;background-color:#2f2f2f;color:#fff;border-radius:3px;box-shadow:0 4px 8px #0003}::ng-deep app-ca-tooltip-list .tooltip-list-header{margin:0;padding:4px;border-bottom:1px solid #424242}::ng-deep app-ca-tooltip-list .tooltip-list-header span{font-size:11px;font-weight:800;color:#fff;text-align:left;word-wrap:break-word;word-break:break-word;white-space:normal}::ng-deep app-ca-tooltip-list .tooltip-list-body-list{margin-top:8px}::ng-deep app-ca-tooltip-list .tooltip-list-body-table{display:table;width:100%;padding:4px}::ng-deep app-ca-tooltip-list .tooltip-list-item{padding:4px;font-size:11px}::ng-deep app-ca-tooltip-list .tooltip-list-inline{line-height:1}::ng-deep app-ca-tooltip-list .table-item-layout{display:table-row;width:100%}::ng-deep app-ca-tooltip-list .table-item-cell{display:table-cell}::ng-deep app-ca-tooltip-list .table-item-cell:not(:last-child){padding-right:10px!important}::ng-deep app-ca-tooltip-list .tooltip-list-item-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:8px}::ng-deep app-ca-tooltip-list .tooltip-list-item-label{font-size:11px;font-weight:700;color:#fff}::ng-deep app-ca-tooltip-list .tooltip-list-item-value{font-weight:400;font-size:11px;color:#fff}::ng-deep app-ca-tooltip-list .tooltip-list-item-percentage{font-weight:700;font-size:11px;color:#fff}::ng-deep app-ca-tooltip-list .dot-delimiter{margin:0 4px;font-size:.8em;line-height:1;color:#fff}\n"] }]
23757
24054
  }], propDecorators: { tooltipList: [{
23758
24055
  type: Input
23759
24056
  }] } });
23760
24057
 
24058
+ class CaChartManagerComponent {
24059
+ constructor(chartManagerService, cdr) {
24060
+ this.chartManagerService = chartManagerService;
24061
+ this.cdr = cdr;
24062
+ this.chartConfigs = [];
24063
+ this.tooltipLables = [];
24064
+ this.chartDatasetHover = null;
24065
+ this.hoveredIndex = null;
24066
+ this.hoveredChartId = null;
24067
+ this.tooltipList = null;
24068
+ this.tooltipPosition = { x: 0, y: 0 };
24069
+ this.chartManagerService.hoverState$.subscribe(({ index, chartId }) => {
24070
+ this.hoveredIndex = index;
24071
+ this.hoveredChartId = chartId;
24072
+ this.updateTooltipList(this.hoveredIndex);
24073
+ this.cdr.markForCheck();
24074
+ });
24075
+ }
24076
+ trackByIndex(index) {
24077
+ return index;
24078
+ }
24079
+ onMouseMove(event) {
24080
+ const containerRect = this.chartManagerContainer.nativeElement.getBoundingClientRect();
24081
+ const padding = 100;
24082
+ let x = event.clientX - containerRect.left + padding;
24083
+ let y = event.clientY - containerRect.top + padding;
24084
+ if (this.tooltipContainer) {
24085
+ const tooltipWidth = this.tooltipContainer.nativeElement.offsetWidth;
24086
+ const tooltipHeight = this.tooltipContainer.nativeElement.offsetHeight;
24087
+ // Adjust Y position if the tooltip goes above the top of container
24088
+ if (y < tooltipHeight / 2)
24089
+ y = tooltipHeight / 2 + padding;
24090
+ // Adjust Y position if the tooltip goes below the container
24091
+ if (y + tooltipHeight / 2 > containerRect.height)
24092
+ y = containerRect.height - tooltipHeight / 2 - padding;
24093
+ // Adjust X position if it overflows the right edge
24094
+ if (x + tooltipWidth > containerRect.width)
24095
+ x = event.clientX - containerRect.left - tooltipWidth - padding; // Move tooltip to the left
24096
+ }
24097
+ this.tooltipPosition = { x, y };
24098
+ }
24099
+ updateTooltipList(index) {
24100
+ if (index === null || !this.chartConfigs.length) {
24101
+ this.tooltipList = null;
24102
+ return;
24103
+ }
24104
+ const selectedItems = [];
24105
+ const otherItems = [];
24106
+ this.chartConfigs.forEach((config) => {
24107
+ const visibleDatasets = config.chartData.datasets.filter((dataset) => !dataset.hidden);
24108
+ visibleDatasets.forEach((dataset) => {
24109
+ const rawData = dataset.data[index];
24110
+ const value = Array.isArray(rawData) ? rawData[0] : rawData;
24111
+ const tooltipItem = {
24112
+ label: dataset.label,
24113
+ value: value || 0,
24114
+ isCurrency: dataset.isCurrency || false,
24115
+ color: dataset.borderColor || "#FFFFFF" /* ChartColorsStringEnum.WHITE */,
24116
+ };
24117
+ if (config.isTooltipItemInSelectedItems)
24118
+ selectedItems.push(tooltipItem);
24119
+ else
24120
+ otherItems.push(tooltipItem);
24121
+ });
24122
+ });
24123
+ this.tooltipList = {
24124
+ date: this.tooltipLables[index],
24125
+ selectedItems: selectedItems,
24126
+ otherItems: otherItems,
24127
+ showPercentage: false,
24128
+ };
24129
+ }
24130
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CaChartManagerComponent, deps: [{ token: ChartManagerService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
24131
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: CaChartManagerComponent, isStandalone: true, selector: "app-ca-chart-manager", inputs: { chartConfigs: "chartConfigs", tooltipLables: "tooltipLables", chartDatasetHover: "chartDatasetHover" }, providers: [ChartManagerService], viewQueries: [{ propertyName: "chartManagerContainer", first: true, predicate: ["chartManagerContainer"], descendants: true }, { propertyName: "tooltipContainer", first: true, predicate: ["tooltipContainer"], descendants: true }], ngImport: i0, template: "<div\n #chartManagerContainer\n class=\"chart-manager-container\"\n (mousemove)=\"onMouseMove($event)\"\n>\n @for (chartConfig of chartConfigs; let i = $index; track trackByIndex) {\n <app-ca-chart\n [chartConfig]=\"chartConfig\"\n [chartId]=\"'chart-' + i\"\n [chartDatasetHover]=\"\n chartConfig?.isDatasetHoverEnabled ? chartDatasetHover : null\n \"\n >\n </app-ca-chart>\n }\n\n @if (hoveredIndex !== null) {\n <div\n #tooltipContainer\n class=\"tooltip-container\"\n [style.top.px]=\"tooltipPosition.y\"\n [style.left.px]=\"tooltipPosition.x\"\n >\n <app-ca-tooltip-list [tooltipList]=\"tooltipList\">\n </app-ca-tooltip-list>\n </div>\n }\n</div>\n", styles: ["::ng-deep app-ca-chart-manager .chart-manager-container{position:relative;overflow:hidden}::ng-deep app-ca-chart-manager .tooltip-container{position:absolute;pointer-events:none;z-index:1000;transform:translateY(-50%);white-space:nowrap}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type:
24132
+ //Components
24133
+ CaChartComponent, selector: "app-ca-chart", inputs: ["chartId", "chartDatasetHover", "chartConfig"], outputs: ["hoveredIndex"] }, { kind: "component", type: CaTooltipListComponent, selector: "app-ca-tooltip-list", inputs: ["tooltipList"] }] }); }
24134
+ }
24135
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CaChartManagerComponent, decorators: [{
24136
+ type: Component,
24137
+ args: [{ selector: 'app-ca-chart-manager', standalone: true, imports: [
24138
+ CommonModule,
24139
+ //Components
24140
+ CaChartComponent,
24141
+ CaTooltipListComponent,
24142
+ ], providers: [ChartManagerService], template: "<div\n #chartManagerContainer\n class=\"chart-manager-container\"\n (mousemove)=\"onMouseMove($event)\"\n>\n @for (chartConfig of chartConfigs; let i = $index; track trackByIndex) {\n <app-ca-chart\n [chartConfig]=\"chartConfig\"\n [chartId]=\"'chart-' + i\"\n [chartDatasetHover]=\"\n chartConfig?.isDatasetHoverEnabled ? chartDatasetHover : null\n \"\n >\n </app-ca-chart>\n }\n\n @if (hoveredIndex !== null) {\n <div\n #tooltipContainer\n class=\"tooltip-container\"\n [style.top.px]=\"tooltipPosition.y\"\n [style.left.px]=\"tooltipPosition.x\"\n >\n <app-ca-tooltip-list [tooltipList]=\"tooltipList\">\n </app-ca-tooltip-list>\n </div>\n }\n</div>\n", styles: ["::ng-deep app-ca-chart-manager .chart-manager-container{position:relative;overflow:hidden}::ng-deep app-ca-chart-manager .tooltip-container{position:absolute;pointer-events:none;z-index:1000;transform:translateY(-50%);white-space:nowrap}\n"] }]
24143
+ }], ctorParameters: () => [{ type: ChartManagerService }, { type: i0.ChangeDetectorRef }], propDecorators: { chartConfigs: [{
24144
+ type: Input
24145
+ }], tooltipLables: [{
24146
+ type: Input
24147
+ }], chartDatasetHover: [{
24148
+ type: Input
24149
+ }], chartManagerContainer: [{
24150
+ type: ViewChild,
24151
+ args: ['chartManagerContainer']
24152
+ }], tooltipContainer: [{
24153
+ type: ViewChild,
24154
+ args: ['tooltipContainer']
24155
+ }] } });
24156
+
23761
24157
  var eProgressRangePrice;
23762
24158
  (function (eProgressRangePrice) {
23763
24159
  eProgressRangePrice[eProgressRangePrice["Expired"] = 0] = "Expired";
@@ -24038,6 +24434,7 @@ class CaComponentsLibModule {
24038
24434
  CaRightSidePanelTopBarComponent,
24039
24435
  CaRightSidePanelComponent,
24040
24436
  CaChartComponent,
24437
+ CaChartManagerComponent,
24041
24438
  CaDropdownMenuComponent,
24042
24439
  CaUploadFilesComponent,
24043
24440
  CaRightSidePanelCompanyComponent,
@@ -24069,6 +24466,7 @@ class CaComponentsLibModule {
24069
24466
  CaRightSidePanelTopBarComponent,
24070
24467
  CaRightSidePanelComponent,
24071
24468
  CaChartComponent,
24469
+ CaChartManagerComponent,
24072
24470
  CaDropdownMenuComponent,
24073
24471
  CaUploadFilesComponent,
24074
24472
  CaRightSidePanelCompanyComponent,
@@ -24105,6 +24503,7 @@ class CaComponentsLibModule {
24105
24503
  CaRightSidePanelTopBarComponent,
24106
24504
  CaRightSidePanelComponent,
24107
24505
  CaChartComponent,
24506
+ CaChartManagerComponent,
24108
24507
  CaDropdownMenuComponent,
24109
24508
  CaUploadFilesComponent,
24110
24509
  CaRightSidePanelCompanyComponent,
@@ -24146,6 +24545,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
24146
24545
  CaRightSidePanelTopBarComponent,
24147
24546
  CaRightSidePanelComponent,
24148
24547
  CaChartComponent,
24548
+ CaChartManagerComponent,
24149
24549
  CaDropdownMenuComponent,
24150
24550
  CaUploadFilesComponent,
24151
24551
  CaRightSidePanelCompanyComponent,
@@ -24181,6 +24581,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
24181
24581
  CaRightSidePanelTopBarComponent,
24182
24582
  CaRightSidePanelComponent,
24183
24583
  CaChartComponent,
24584
+ CaChartManagerComponent,
24184
24585
  CaDropdownMenuComponent,
24185
24586
  CaUploadFilesComponent,
24186
24587
  CaRightSidePanelCompanyComponent,
@@ -24434,5 +24835,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
24434
24835
  * Generated bundle index. Do not edit.
24435
24836
  */
24436
24837
 
24437
- export { CaActivityLogListComponent, CaAppTooltipV2Component, CaChartComponent, CaComponentsLibModule, CaDetailsDropdownComponent, CaDropdownMenuComponent, CaFilterComponent, CaInputAddressDropdownComponent, CaInputComponent, CaInputDropdownComponent, CaInputNoteComponent, CaInputRadiobuttonsComponent, CaMainTableComponent, CaMapComponent, CaMapDropdownComponent, CaModalButtonComponent, CaModalComponent, CaNoteComponent, CaNoteContainerComponent, CaPayrollListSummaryOverviewComponent, CaPayrollListSummaryOverviewTableComponent, CaPeriodContentComponent, CaProfileImageComponent, CaProgressExpirationComponent, CaProgressRangeComponent, CaRatingReviewComponent, CaRightSidePanelCompanyComponent, CaRightSidePanelComponent, CaRightSidePanelMenuComponent, CaRightSidePanelTopBarComponent, CaSearchMultipleStatesComponent, CaSearchMultipleStatesService, CaSortDropdownComponent, CaSpinnerComponent, CaTodoComponent, CaTooltipListComponent, CaTruckTrailerProgresBarComponent, CaUploadFilesComponent, ChartEventTypesStringEnum, ChartFontPropertiesStringEnum, ChartPluginIdsStringEnum, CubicInterpolationStringEnum, EChartAnnotationType, EChartEventProperties, MapHelper, MapInfoWindowOptionsConstants, MapMarkerIconHelper, MapOptionsConstants, PayrollTypeEnum, PickupDeliveryBlockComponent, ProgressBarComponent, SortDropdownEnum, eProgressRangePrice, eProgressRangeTooltipPosition, eProgressRangeUnit, userInfoEnum };
24838
+ export { CaActivityLogListComponent, CaAppTooltipV2Component, CaChartComponent, CaChartManagerComponent, CaComponentsLibModule, CaDetailsDropdownComponent, CaDropdownMenuComponent, CaFilterComponent, CaInputAddressDropdownComponent, CaInputComponent, CaInputDropdownComponent, CaInputNoteComponent, CaInputRadiobuttonsComponent, CaMainTableComponent, CaMapComponent, CaMapDropdownComponent, CaModalButtonComponent, CaModalComponent, CaNoteComponent, CaNoteContainerComponent, CaPayrollListSummaryOverviewComponent, CaPayrollListSummaryOverviewTableComponent, CaPeriodContentComponent, CaProfileImageComponent, CaProgressExpirationComponent, CaProgressRangeComponent, CaRatingReviewComponent, CaRightSidePanelCompanyComponent, CaRightSidePanelComponent, CaRightSidePanelMenuComponent, CaRightSidePanelTopBarComponent, CaSearchMultipleStatesComponent, CaSearchMultipleStatesService, CaSortDropdownComponent, CaSpinnerComponent, CaTodoComponent, CaTooltipListComponent, CaTruckTrailerProgresBarComponent, CaUploadFilesComponent, ChartEventTypesStringEnum, ChartFontPropertiesStringEnum, ChartPluginIdsStringEnum, CubicInterpolationStringEnum, EChartAnnotationType, EChartEventProperties, MapHelper, MapInfoWindowOptionsConstants, MapMarkerIconHelper, MapOptionsConstants, PayrollTypeEnum, PickupDeliveryBlockComponent, ProgressBarComponent, SortDropdownEnum, eProgressRangePrice, eProgressRangeTooltipPosition, eProgressRangeUnit, userInfoEnum };
24438
24839
  //# sourceMappingURL=ca-components.mjs.map