ca-components 1.0.70 → 1.0.71

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 (105) 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-tooltip-list/ca-tooltip-list.component.mjs +5 -4
  23. package/esm2022/lib/components/ca-tooltip-list/models/tooltip-list-item.model.mjs +1 -1
  24. package/esm2022/lib/components/ca-tooltip-list/models/tooltip-list.model.mjs +1 -1
  25. package/esm2022/public-api.mjs +2 -1
  26. package/fesm2022/ca-components.mjs +527 -129
  27. package/fesm2022/ca-components.mjs.map +1 -1
  28. package/lib/ca-components.module.d.ts +7 -6
  29. package/lib/components/ca-chart/ca-chart.component.d.ts +18 -10
  30. package/lib/components/ca-chart/enums/chart-colors.enum.d.ts +2 -1
  31. package/lib/components/ca-chart/enums/chart-plugin-ids.enum.d.ts +2 -1
  32. package/lib/components/ca-chart/models/chart-annotation.model.d.ts +1 -1
  33. package/lib/components/ca-chart/models/chart-base-dataset.model.d.ts +5 -2
  34. package/lib/components/ca-chart/models/chart-center-label.model.d.ts +11 -0
  35. package/lib/components/ca-chart/models/chart-config.model.d.ts +10 -3
  36. package/lib/components/ca-chart/models/chart-dataset-hover.model.d.ts +5 -0
  37. package/lib/components/ca-chart/models/chart-line-dataset.model.d.ts +0 -3
  38. package/lib/components/ca-chart/models/index.d.ts +2 -0
  39. package/lib/components/ca-chart/utils/constants/chart.constants.d.ts +3 -0
  40. package/lib/components/ca-chart/utils/constants/index.d.ts +1 -0
  41. package/lib/components/ca-chart/utils/helpers/chart.helper.d.ts +7 -1
  42. package/lib/components/ca-chart-manager/ca-chart-manager.component.d.ts +27 -0
  43. package/lib/components/ca-chart-manager/models/hover-state.model.d.ts +4 -0
  44. package/lib/components/ca-chart-manager/models/index.d.ts +1 -0
  45. package/lib/components/ca-chart-manager/services/chart-manager.service.d.ts +10 -0
  46. package/lib/components/ca-chart-manager/services/index.d.ts +1 -0
  47. package/lib/components/ca-tooltip-list/ca-tooltip-list.component.d.ts +1 -1
  48. package/lib/components/ca-tooltip-list/models/tooltip-list-item.model.d.ts +0 -1
  49. package/lib/components/ca-tooltip-list/models/tooltip-list.model.d.ts +1 -3
  50. package/package.json +1 -1
  51. package/public-api.d.ts +1 -0
  52. package/src/assets/ca-components/svg/common/states/ic_alabama.svg +3 -0
  53. package/src/assets/ca-components/svg/common/states/ic_alaska.svg +14 -0
  54. package/src/assets/ca-components/svg/common/states/ic_arizona.svg +3 -0
  55. package/src/assets/ca-components/svg/common/states/ic_arkansas.svg +3 -0
  56. package/src/assets/ca-components/svg/common/states/ic_california.svg +3 -0
  57. package/src/assets/ca-components/svg/common/states/ic_colorado.svg +3 -0
  58. package/src/assets/ca-components/svg/common/states/ic_connecticut.svg +3 -0
  59. package/src/assets/ca-components/svg/common/states/ic_delaware.svg +3 -0
  60. package/src/assets/ca-components/svg/common/states/ic_florida.svg +3 -0
  61. package/src/assets/ca-components/svg/common/states/ic_georgia.svg +3 -0
  62. package/src/assets/ca-components/svg/common/states/ic_hawaii.svg +10 -0
  63. package/src/assets/ca-components/svg/common/states/ic_idaho.svg +3 -0
  64. package/src/assets/ca-components/svg/common/states/ic_illinois.svg +3 -0
  65. package/src/assets/ca-components/svg/common/states/ic_indiana.svg +3 -0
  66. package/src/assets/ca-components/svg/common/states/ic_iowa.svg +3 -0
  67. package/src/assets/ca-components/svg/common/states/ic_kansas.svg +3 -0
  68. package/src/assets/ca-components/svg/common/states/ic_kentucky.svg +3 -0
  69. package/src/assets/ca-components/svg/common/states/ic_louisiana.svg +4 -0
  70. package/src/assets/ca-components/svg/common/states/ic_maine.svg +9 -0
  71. package/src/assets/ca-components/svg/common/states/ic_maryland.svg +7 -0
  72. package/src/assets/ca-components/svg/common/states/ic_massachusetts.svg +7 -0
  73. package/src/assets/ca-components/svg/common/states/ic_michigan.svg +11 -0
  74. package/src/assets/ca-components/svg/common/states/ic_minnesota.svg +4 -0
  75. package/src/assets/ca-components/svg/common/states/ic_mississippi.svg +3 -0
  76. package/src/assets/ca-components/svg/common/states/ic_missouri.svg +3 -0
  77. package/src/assets/ca-components/svg/common/states/ic_montana.svg +3 -0
  78. package/src/assets/ca-components/svg/common/states/ic_nebraska.svg +3 -0
  79. package/src/assets/ca-components/svg/common/states/ic_nevada.svg +3 -0
  80. package/src/assets/ca-components/svg/common/states/ic_new_hampshire.svg +3 -0
  81. package/src/assets/ca-components/svg/common/states/ic_new_jersey.svg +5 -0
  82. package/src/assets/ca-components/svg/common/states/ic_new_mexico.svg +3 -0
  83. package/src/assets/ca-components/svg/common/states/ic_new_york.svg +4 -0
  84. package/src/assets/ca-components/svg/common/states/ic_north_carolina.svg +3 -0
  85. package/src/assets/ca-components/svg/common/states/ic_north_dakota.svg +3 -0
  86. package/src/assets/ca-components/svg/common/states/ic_ohio.svg +4 -0
  87. package/src/assets/ca-components/svg/common/states/ic_oklahoma.svg +3 -0
  88. package/src/assets/ca-components/svg/common/states/ic_oregon.svg +3 -0
  89. package/src/assets/ca-components/svg/common/states/ic_pennsylvania.svg +3 -0
  90. package/src/assets/ca-components/svg/common/states/ic_rhode_island.svg +8 -0
  91. package/src/assets/ca-components/svg/common/states/ic_south_carolina.svg +3 -0
  92. package/src/assets/ca-components/svg/common/states/ic_south_dakota.svg +3 -0
  93. package/src/assets/ca-components/svg/common/states/ic_tennessee.svg +3 -0
  94. package/src/assets/ca-components/svg/common/states/ic_texas.svg +3 -0
  95. package/src/assets/ca-components/svg/common/states/ic_utah.svg +3 -0
  96. package/src/assets/ca-components/svg/common/states/ic_vermont.svg +7 -0
  97. package/src/assets/ca-components/svg/common/states/ic_virginia.svg +4 -0
  98. package/src/assets/ca-components/svg/common/states/ic_washington.svg +15 -0
  99. package/src/assets/ca-components/svg/common/states/ic_west_virginia.svg +3 -0
  100. package/src/assets/ca-components/svg/common/states/ic_wisconsin.svg +4 -0
  101. package/src/assets/ca-components/svg/common/states/ic_wyoming.svg +3 -0
  102. package/esm2022/lib/components/ca-chart/config/ca-base-chart-dataset.config.mjs +0 -10
  103. package/esm2022/lib/components/ca-chart/config/index.mjs +0 -2
  104. package/lib/components/ca-chart/config/ca-base-chart-dataset.config.d.ts +0 -4
  105. 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';
@@ -23205,6 +23205,7 @@ var ChartPluginIdsStringEnum;
23205
23205
  (function (ChartPluginIdsStringEnum) {
23206
23206
  ChartPluginIdsStringEnum["HIGHLIGHT_SEGMENT_ON_HOVER"] = "highlightSegmentOnHover";
23207
23207
  ChartPluginIdsStringEnum["HIGHLIGHT_POINT_ON_HOVER"] = "highlightPointOnHover";
23208
+ ChartPluginIdsStringEnum["BORDER_BOTTOM_LINE_CHART"] = "borderBottomLineChart";
23208
23209
  })(ChartPluginIdsStringEnum || (ChartPluginIdsStringEnum = {}));
23209
23210
 
23210
23211
  var ChartEventTypesStringEnum;
@@ -23261,17 +23262,35 @@ class ChartHelper {
23261
23262
  else
23262
23263
  return rgb;
23263
23264
  }
23265
+ static changeOpacityOfRgbOrRgba(color, opacity) {
23266
+ const rgbaRegex = /^rgba?\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})(?:,\s*(\d?\.?\d+))?\)$/;
23267
+ const match = color.match(rgbaRegex);
23268
+ if (match) {
23269
+ const red = parseInt(match[1], 10);
23270
+ const green = parseInt(match[2], 10);
23271
+ const blue = parseInt(match[3], 10);
23272
+ return `rgba(${red}, ${green}, ${blue}, ${opacity})`;
23273
+ }
23274
+ return color;
23275
+ }
23264
23276
  static calculateMinValue(data) {
23265
23277
  return Math.min(...data);
23266
23278
  }
23267
23279
  static calculateMaxValue(data) {
23268
23280
  return Math.max(...data);
23269
23281
  }
23270
- static createGradient(chartContext, chartCanvas, color, color2) {
23282
+ static createGradient(chartContext, chartCanvas, color, color2, opacityColor1 = 1, opacityColor2 = 1, areColorsInRgbaFormat = false) {
23271
23283
  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);
23284
+ let fillColorTop = '';
23285
+ let fillColorBottom = '';
23286
+ if (areColorsInRgbaFormat) {
23287
+ fillColorTop = this.changeOpacityOfRgbOrRgba(color, opacityColor1);
23288
+ fillColorBottom = this.changeOpacityOfRgbOrRgba(color2, opacityColor2);
23289
+ }
23290
+ else {
23291
+ fillColorTop = this.hexToRgba(color, opacityColor1);
23292
+ fillColorBottom = this.hexToRgba(color2, opacityColor2);
23293
+ }
23275
23294
  gradient.addColorStop(0, fillColorTop);
23276
23295
  gradient.addColorStop(0.8, fillColorBottom);
23277
23296
  return gradient;
@@ -23314,15 +23333,47 @@ class ChartHelper {
23314
23333
  ctx.fill();
23315
23334
  ctx.restore();
23316
23335
  }
23336
+ // This is a dumb function whose only function is only to position legend elements one below under
23337
+ // Call it in ngFor
23338
+ static drawDoughnutLegend(chart, position, text,
23339
+ // Initial idea
23340
+ fontSize = 18, color = '#424242') {
23341
+ const { ctx } = chart;
23342
+ if (!ctx)
23343
+ return;
23344
+ ctx.save();
23345
+ const datasetMeta = chart.getDatasetMeta(0);
23346
+ const xCoord = datasetMeta?.data[0]?.x;
23347
+ const yCoord = datasetMeta?.data[0]?.y / 3 * 2 +
23348
+ position.indx * 20 +
23349
+ position.offsetTop;
23350
+ if (xCoord === undefined || yCoord == undefined)
23351
+ return;
23352
+ ctx.font = `bold ${fontSize}px sans-serif`;
23353
+ ctx.fillStyle = color;
23354
+ ctx.textAlign = 'center';
23355
+ ctx.textBaseline = 'middle';
23356
+ ctx.fillText(text, xCoord, yCoord);
23357
+ ctx.restore();
23358
+ }
23317
23359
  static highlightPoint(ctx, chart, index, chartData) {
23318
23360
  chartData.datasets.forEach((dataset, datasetIndex) => {
23319
23361
  const meta = chart.getDatasetMeta(datasetIndex);
23362
+ if (!meta || !meta.data[index])
23363
+ return;
23320
23364
  const point = meta.data[index];
23365
+ const yScale = chart.scales[dataset.yAxisID || 'y-axis-0'];
23366
+ const xScale = chart.scales['x'];
23367
+ const value = dataset.data[index];
23368
+ if (value === undefined || value === null)
23369
+ return;
23370
+ const xPixel = xScale.getPixelForValue(index);
23371
+ const yPixel = Math.abs(yScale.getPixelForValue(value));
23321
23372
  if (!point)
23322
23373
  return;
23323
23374
  ctx.save();
23324
23375
  ctx.beginPath();
23325
- ctx.arc(point.x, point.y, 4, 0, 2 * Math.PI);
23376
+ ctx.arc(xPixel, yPixel, 4, 0, 2 * Math.PI);
23326
23377
  ctx.fillStyle = "#FFFFFF" /* ChartColorsStringEnum.WHITE */;
23327
23378
  ctx.fill();
23328
23379
  ctx.lineWidth = 2;
@@ -23338,6 +23389,24 @@ class ChartHelper {
23338
23389
  const segmentStart = tickPositions[index] - segmentWidth / 2;
23339
23390
  return { segmentStart, segmentWidth };
23340
23391
  }
23392
+ static convertRgbToRgba(colorValue, alpha = 1) {
23393
+ if (alpha < 0 || alpha > 1)
23394
+ return colorValue;
23395
+ const rgbaMatch = colorValue.match(/rgba\((\d+),\s*(\d+),\s*(\d+),\s*(\d+(\.\d+)?)\)/);
23396
+ if (rgbaMatch) {
23397
+ const [, r, g, b] = rgbaMatch;
23398
+ // Return updated RGBA with the new alpha
23399
+ return `rgba(${r}, ${g}, ${b}, ${alpha})`;
23400
+ }
23401
+ // Extract the RGB values using a regular expression
23402
+ const rgbMatch = colorValue.match(/rgb\((\d+),\s*(\d+),\s*(\d+)\)/);
23403
+ if (!rgbMatch)
23404
+ return colorValue;
23405
+ // Destructure the matched values
23406
+ const [, r, g, b] = rgbMatch;
23407
+ // Return the RGBA string
23408
+ return `rgba(${r}, ${g}, ${b}, ${alpha})`;
23409
+ }
23341
23410
  }
23342
23411
 
23343
23412
  class ChartTypeGuard {
@@ -23347,21 +23416,40 @@ class ChartTypeGuard {
23347
23416
  }
23348
23417
  }
23349
23418
 
23350
- class CaBaseChartDatasetConfig {
23351
- static getBaseChartDatasetConfig() {
23352
- return {
23353
- type: "line" /* ChartTypesStringEnum.LINE */,
23354
- label: '',
23355
- data: [],
23356
- };
23419
+ class ChartConstants {
23420
+ static { this.STRING_EMPTY = ''; }
23421
+ }
23422
+
23423
+ class ChartManagerService {
23424
+ constructor() {
23425
+ this.hoverStateSubject = new BehaviorSubject({
23426
+ index: null,
23427
+ chartId: null,
23428
+ });
23429
+ this.hoverState$ = this.hoverStateSubject.asObservable();
23430
+ }
23431
+ setHoverState(index, chartId) {
23432
+ this.hoverStateSubject.next({ index, chartId });
23357
23433
  }
23434
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ChartManagerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
23435
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ChartManagerService }); }
23358
23436
  }
23437
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ChartManagerService, decorators: [{
23438
+ type: Injectable
23439
+ }] });
23359
23440
 
23360
23441
  class CaChartComponent {
23442
+ set chartDatasetHover(value) {
23443
+ if (value)
23444
+ this.updateDatasetBackgroundOnHover(value);
23445
+ }
23361
23446
  set chartConfig(value) {
23362
23447
  this._chartConfig = value;
23363
23448
  this.isChartDataAvailable = false;
23364
- this._chartConfig.chartData.datasets.forEach((item) => {
23449
+ this._chartConfig?.
23450
+ chartData?.
23451
+ datasets?.
23452
+ forEach((item) => {
23365
23453
  item.data.forEach((value) => {
23366
23454
  if (Array.isArray(value)) {
23367
23455
  if (value[0] !== 0 || value[1] !== 0)
@@ -23371,21 +23459,29 @@ class CaChartComponent {
23371
23459
  this.isChartDataAvailable = true;
23372
23460
  });
23373
23461
  });
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)
23462
+ this.changeDetector.detectChanges();
23463
+ if (this.isChartDataAvailable)
23388
23464
  this.updateChart();
23465
+ this._chartConfig.chartData.datasets.forEach((item) => {
23466
+ item.data.forEach((value) => {
23467
+ if (Array.isArray(value)) {
23468
+ if (value[0] !== 0 || value[1] !== 0)
23469
+ this.isChartDataAvailable = true;
23470
+ }
23471
+ else {
23472
+ if (value !== 0)
23473
+ this.isChartDataAvailable = true;
23474
+ }
23475
+ });
23476
+ });
23477
+ }
23478
+ constructor(changeDetector, chartManagerService) {
23479
+ this.changeDetector = changeDetector;
23480
+ this.chartManagerService = chartManagerService;
23481
+ this.hoveredIndex = new EventEmitter();
23482
+ this.areAnimationsCompleated = false;
23483
+ this._hoveredIndex = null;
23484
+ this.isChartDataAvailable = false;
23389
23485
  }
23390
23486
  ngAfterViewInit() {
23391
23487
  if (this.isChartDataAvailable) {
@@ -23393,77 +23489,145 @@ class CaChartComponent {
23393
23489
  this.createChart();
23394
23490
  }
23395
23491
  }
23492
+ ngOnInit() {
23493
+ this.initializeChartManagerService();
23494
+ }
23495
+ initializeChartManagerService() {
23496
+ if (!this.chartManagerService)
23497
+ return;
23498
+ this.subscription = this.chartManagerService.hoverState$.subscribe(({ index, chartId }) => {
23499
+ if (chartId !== this.chartId) {
23500
+ this._hoveredIndex = index;
23501
+ if (this.chart)
23502
+ this.chart.draw();
23503
+ }
23504
+ });
23505
+ }
23396
23506
  initializeAnnotationPlugin() {
23397
23507
  Chart.register(annotationPlugin);
23398
23508
  }
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
- });
23509
+ updateDatasetBackgroundOnHover(chartDatasetHover) {
23510
+ if (!this.chart || !this.chart.data.datasets)
23511
+ return;
23512
+ if (chartDatasetHover.isHoverd) {
23513
+ const gradient = ChartHelper.createGradient(this.chartContext, this.chartCanvas, chartDatasetHover.color, chartDatasetHover.color, 0.6, 0.1, true);
23514
+ this.chart.data.datasets = this.chart.data.datasets.map((dataset) => {
23515
+ if (dataset.hidden)
23516
+ return dataset;
23517
+ if (dataset.label?.toUpperCase() === chartDatasetHover.label.toUpperCase()) {
23518
+ const hoverdDataSet = {
23519
+ ...dataset,
23520
+ fill: true,
23521
+ backgroundColor: gradient,
23522
+ borderColor: chartDatasetHover.color,
23523
+ order: 1,
23524
+ };
23525
+ return hoverdDataSet;
23526
+ }
23527
+ else {
23528
+ const borderColorWithOpacity = ChartHelper.changeOpacityOfRgbOrRgba(dataset.borderColor, 0.2);
23529
+ return {
23530
+ ...dataset,
23531
+ fill: false,
23532
+ borderColor: borderColorWithOpacity,
23533
+ };
23534
+ }
23535
+ });
23536
+ }
23537
+ else {
23538
+ this.chart.data.datasets = this.chart.data.datasets.map((dataset) => {
23539
+ if (!dataset.hidden) {
23540
+ const originalColor = dataset.borderColor
23541
+ ? ChartHelper.changeOpacityOfRgbOrRgba(dataset.borderColor, 1)
23542
+ : ChartConstants.STRING_EMPTY;
23543
+ return {
23544
+ ...dataset,
23545
+ fill: false,
23546
+ borderColor: originalColor,
23547
+ backgroundColor: ChartConstants.STRING_EMPTY,
23548
+ };
23549
+ }
23550
+ else
23551
+ return dataset;
23552
+ });
23422
23553
  }
23423
- else
23424
- this._chartConfig.chartData.datasets = JSON.parse(JSON.stringify(this.originalChartDataset));
23425
23554
  this.chart.update();
23426
23555
  }
23427
23556
  createChart() {
23428
- this.chartContext = this.chartCanvas.nativeElement.getContext('2d');
23557
+ this.chartContext = this.chartCanvas?.
23558
+ nativeElement?.
23559
+ getContext('2d');
23429
23560
  this.setChartOptionsProperties();
23430
23561
  this.setChartDataProperties();
23431
23562
  this.setChartPluginsProperties();
23563
+ if (this.chart)
23564
+ this.chart.destroy();
23565
+ this.initializeAnnotationPlugin();
23566
+ if (this._chartConfig.chartType === "doughnut" /* ChartTypesStringEnum.DOUGHNUT */)
23567
+ Chart.overrides.doughnut.cutout = '80%';
23432
23568
  this.chart = new Chart(this.chartContext, {
23433
23569
  type: this._chartConfig.chartType,
23434
23570
  data: this._chartConfig.chartData,
23435
23571
  options: this._chartConfig.chartOptions,
23436
23572
  plugins: this.plugins,
23437
23573
  });
23438
- this.chart.config.data.datasets = [
23439
- ...this._chartConfig?.
23440
- chartData?.
23441
- datasets?.map((item, indx) => {
23442
- if (!item.shiftValue)
23443
- return {
23574
+ if (!this._chartConfig.isDashboardChart) {
23575
+ this.chart.config.data.datasets = [
23576
+ ...this._chartConfig?.
23577
+ chartData?.
23578
+ datasets?.
23579
+ map((item, indx) => {
23580
+ const pointConfig = {
23581
+ pointBackgroundColor: "#FFFFFF" /* ChartColorsStringEnum.WHITE */,
23582
+ pointBorderWidth: 2,
23583
+ pointRadius: 3,
23584
+ };
23585
+ this.updateChartAnnotations(item, indx);
23586
+ const yScale = this.chart.scales[EChartEventProperties.Y_AXIS_0];
23587
+ const datasetConfig = {
23444
23588
  ...item,
23589
+ pointBorderColor: item.color,
23590
+ ...pointConfig,
23445
23591
  backgroundColor: item?.color &&
23446
23592
  item?.color2 &&
23447
23593
  item?.color !== item?.color2 ?
23448
23594
  ChartHelper.createGradient(this.chartContext, this.chartCanvas, item?.color, item?.color2) : item?.color,
23449
23595
  fill: item?.fill
23450
23596
  };
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
- ];
23597
+ if (this._chartConfig.chartType === "doughnut" /* ChartTypesStringEnum.DOUGHNUT */) {
23598
+ return {
23599
+ ...datasetConfig,
23600
+ backgroundColor: item.backgroundColor
23601
+ };
23602
+ }
23603
+ if (!item.shiftValue) {
23604
+ return {
23605
+ ...datasetConfig,
23606
+ backgroundColor: item?.color &&
23607
+ item?.color2 &&
23608
+ item?.color !== item?.color2 ?
23609
+ ChartHelper.createGradient(this.chartContext, this.chartCanvas, item?.color, item?.color2) : item?.color,
23610
+ };
23611
+ }
23612
+ const shiftValuePx = yScale.getPixelForValue(item.shiftValue || 0);
23613
+ const shiftValueAdjusted = shiftValuePx / yScale.maxHeight;
23614
+ const borderColor = ChartHelper.createGradientWithShiftValue(this.chartContext, yScale.maxHeight, item.color || ChartConstants.STRING_EMPTY, item.color2 || ChartConstants.STRING_EMPTY, shiftValueAdjusted);
23615
+ return {
23616
+ ...item,
23617
+ ...pointConfig,
23618
+ pointBorderColor: borderColor,
23619
+ backgroundColor: ChartHelper.createGradientWithShiftValue(this.chartContext, yScale.maxHeight, item.color || ChartConstants.STRING_EMPTY, item.color2 || ChartConstants.STRING_EMPTY, shiftValueAdjusted, true),
23620
+ borderColor,
23621
+ fill: true
23622
+ };
23623
+ })
23624
+ ];
23625
+ }
23463
23626
  this.chart.update();
23464
23627
  }
23465
23628
  updateChart() {
23466
- this.chart?.destroy();
23629
+ if (this.chart)
23630
+ this.chart?.destroy();
23467
23631
  this.createChart();
23468
23632
  }
23469
23633
  setChartOptionsProperties() {
@@ -23472,16 +23636,37 @@ class CaChartComponent {
23472
23636
  responsive: true,
23473
23637
  maintainAspectRatio: false,
23474
23638
  clip: false,
23639
+ animation: {
23640
+ onComplete: () => {
23641
+ this.areAnimationsCompleated = true;
23642
+ this.chart.draw();
23643
+ },
23644
+ onProgress: () => {
23645
+ this.areAnimationsCompleated = false;
23646
+ this.chart.draw();
23647
+ },
23648
+ },
23475
23649
  layout: {
23476
23650
  padding: {
23477
23651
  top: 0,
23478
- bottom: -25
23479
- }
23652
+ bottom: 0,
23653
+ left: this._chartConfig.chartType === "bar" /* ChartTypesStringEnum.BAR */ &&
23654
+ this._chartConfig.verticalyAlignBarChartWithLineCart
23655
+ ? 6
23656
+ : 0,
23657
+ right: this._chartConfig.chartType === "bar" /* ChartTypesStringEnum.BAR */ &&
23658
+ this._chartConfig.verticalyAlignBarChartWithLineCart
23659
+ ? 6
23660
+ : 0,
23661
+ },
23480
23662
  },
23481
23663
  plugins: {
23482
23664
  legend: {
23483
23665
  display: false,
23484
23666
  },
23667
+ tooltip: {
23668
+ enabled: false,
23669
+ },
23485
23670
  },
23486
23671
  scales: {
23487
23672
  x: {
@@ -23493,6 +23678,7 @@ class CaChartComponent {
23493
23678
  display: false,
23494
23679
  },
23495
23680
  ticks: {
23681
+ display: true,
23496
23682
  padding: 0,
23497
23683
  color: "#919191" /* ChartColorsStringEnum.X_AXIS_LABEL_COLOR */,
23498
23684
  font: {
@@ -23504,7 +23690,7 @@ class CaChartComponent {
23504
23690
  autoSkipPadding: 12,
23505
23691
  maxRotation: 0,
23506
23692
  minRotation: 0,
23507
- //ispis lable u 2 reda za dane - ceka se dizaj za prikaz dana
23693
+ //Label written in 2 lines, will be ujusted with new design
23508
23694
  callback: function (value, index) {
23509
23695
  const label = labels[index];
23510
23696
  const multiLineLabel = label ? label.split(' ') : [];
@@ -23520,20 +23706,44 @@ class CaChartComponent {
23520
23706
  beginAtZero: true,
23521
23707
  min: 0,
23522
23708
  max: 1,
23709
+ offset: false,
23523
23710
  },
23524
23711
  },
23525
- onHover: (event, dataItem) => {
23526
- if (!this._chartConfig.hasVerticalDashedAnnotation)
23527
- return;
23528
- this.resetAnnotations();
23529
- if (!dataItem || !dataItem?.length)
23712
+ onHover: (event, item) => {
23713
+ if (this._chartConfig.hasVerticalDashedAnnotation)
23714
+ this.resetAnnotations();
23715
+ if (this._chartConfig.chartType === "doughnut" /* ChartTypesStringEnum.DOUGHNUT */) {
23716
+ const colors = this.chart.data.datasets[0].backgroundColor;
23717
+ this.chart.data.datasets[0].backgroundColor =
23718
+ colors.map((color) => {
23719
+ return ChartHelper.convertRgbToRgba(color);
23720
+ });
23721
+ this.chart.update();
23722
+ }
23723
+ if (!item ||
23724
+ !item?.length) {
23725
+ this.hoveredIndex.emit(null);
23530
23726
  return;
23531
- this.setVerticalDashedAnnotationLine(dataItem[0].element.x);
23727
+ }
23728
+ this.hoveredIndex.emit(item[0].index);
23729
+ if (this._chartConfig.chartType === "doughnut" /* ChartTypesStringEnum.DOUGHNUT */) {
23730
+ const colors = this.chart.data.datasets[0].backgroundColor;
23731
+ const updatedColors = colors.map((color, indx) => {
23732
+ if (indx === item[0].index)
23733
+ return color;
23734
+ const convertedValue = ChartHelper.convertRgbToRgba(color, 0.2);
23735
+ return convertedValue;
23736
+ });
23737
+ this.chart.data.datasets[0].backgroundColor = updatedColors;
23738
+ }
23739
+ if (this._chartConfig.hasVerticalDashedAnnotation)
23740
+ this.setVerticalDashedAnnotationLine(item[0].element.x);
23741
+ this.chart.update();
23532
23742
  },
23533
23743
  };
23534
23744
  }
23535
23745
  setChartDataProperties() {
23536
- if ((this._chartConfig.chartType = "line" /* ChartTypesStringEnum.LINE */)) {
23746
+ if ((this._chartConfig.chartType === "line" /* ChartTypesStringEnum.LINE */)) {
23537
23747
  this._chartConfig.chartData.datasets.forEach((dataset) => {
23538
23748
  dataset.order = dataset.order;
23539
23749
  if (ChartTypeGuard.isLineDataset(dataset)) {
@@ -23559,43 +23769,110 @@ class CaChartComponent {
23559
23769
  {
23560
23770
  id: ChartPluginIdsStringEnum.HIGHLIGHT_SEGMENT_ON_HOVER,
23561
23771
  afterEvent: (chart, event) => {
23562
- if (!this._chartConfig.showTooltipBackground) {
23772
+ if (!this._chartConfig.showTooltipBackground)
23563
23773
  return;
23564
- }
23565
23774
  const nativeEvent = event.event.native;
23566
- if (event.event.type === ChartEventTypesStringEnum.MOUSE_OUT &&
23567
- hoveredIndex !== null) {
23568
- hoveredIndex = null;
23775
+ if (event.event.type === ChartEventTypesStringEnum.MOUSE_OUT) {
23776
+ const boundingRect = this.chart.canvas.getBoundingClientRect();
23777
+ const isMouseOutsideChart = nativeEvent.clientX < boundingRect.left ||
23778
+ nativeEvent.clientX > boundingRect.right ||
23779
+ nativeEvent.clientY < boundingRect.top ||
23780
+ nativeEvent.clientY > boundingRect.bottom;
23781
+ if (isMouseOutsideChart) {
23782
+ this._hoveredIndex = null;
23783
+ this.chartManagerService?.setHoverState(null, this.chartId);
23784
+ this.chart.draw();
23785
+ }
23786
+ return;
23787
+ }
23788
+ const boundingRect = this.chart.canvas.getBoundingClientRect();
23789
+ const mouseHorizontalCoordinate = nativeEvent.clientX - boundingRect.left;
23790
+ const { left, right } = this.chart.chartArea;
23791
+ if (mouseHorizontalCoordinate < left ||
23792
+ mouseHorizontalCoordinate > right) {
23793
+ this._hoveredIndex = null;
23794
+ this.chartManagerService?.setHoverState(null, this.chartId);
23569
23795
  this.chart.draw();
23570
23796
  return;
23571
23797
  }
23572
- const mouseHorizontalCoordinate = nativeEvent[EChartEventProperties.X];
23573
23798
  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;
23799
+ const tickPositions = xScale.ticks.map((tick) => xScale.getPixelForValue(tick.value));
23800
+ const segmentBoundaries = tickPositions.map((tickPos, index) => {
23801
+ const leftBoundary = index === 0 ? left : (tickPos + tickPositions[index - 1]) / 2;
23802
+ const rightBoundary = index === tickPositions.length - 1
23803
+ ? right
23804
+ : (tickPos + tickPositions[index + 1]) / 2;
23805
+ return { leftBoundary, rightBoundary };
23806
+ });
23807
+ const newHoveredIndex = segmentBoundaries.findIndex((boundary) => mouseHorizontalCoordinate >= boundary.leftBoundary &&
23808
+ mouseHorizontalCoordinate < boundary.rightBoundary);
23809
+ if (newHoveredIndex !== this._hoveredIndex) {
23810
+ this._hoveredIndex = newHoveredIndex === -1 ? null : newHoveredIndex;
23811
+ this.chartManagerService?.setHoverState(this._hoveredIndex, this.chartId);
23581
23812
  this.chart.draw();
23582
23813
  }
23583
23814
  },
23584
23815
  beforeDraw: () => {
23585
- if (hoveredIndex !== null) {
23816
+ if (this._hoveredIndex !== null) {
23586
23817
  const { chartArea, scales: { x: xScale }, } = this.chart;
23587
- ChartHelper.highlightSegment(this.chartContext, xScale, chartArea, this._chartConfig.height, hoveredIndex);
23818
+ ChartHelper.highlightSegment(this.chartContext, xScale, chartArea, this._chartConfig.height, this._hoveredIndex);
23588
23819
  }
23589
23820
  },
23590
23821
  },
23591
23822
  {
23592
23823
  id: ChartPluginIdsStringEnum.HIGHLIGHT_POINT_ON_HOVER,
23593
23824
  afterDraw: () => {
23594
- if (hoveredIndex !== null)
23595
- ChartHelper.highlightPoint(this.chartContext, this.chart, hoveredIndex, this._chartConfig.chartData);
23825
+ if (this._hoveredIndex !== null &&
23826
+ this._chartConfig.showHighlightPointOnHover &&
23827
+ this.areAnimationsCompleated) {
23828
+ const visibleDatasets = this._chartConfig.chartData.datasets.filter((dataset) => !dataset.hidden);
23829
+ ChartHelper.highlightPoint(this.chartContext, this.chart, this._hoveredIndex, { ...this._chartConfig.chartData, datasets: visibleDatasets });
23830
+ }
23831
+ },
23832
+ },
23833
+ {
23834
+ id: ChartPluginIdsStringEnum.BORDER_BOTTOM_LINE_CHART,
23835
+ beforeDraw: () => {
23836
+ if (this._chartConfig?.showBottomLineOnLineChart) {
23837
+ const { ctx, data, chartArea, scales: { x: xScale }, } = this.chart;
23838
+ const dataset = data.datasets[0];
23839
+ const firstIndex = 0;
23840
+ const lastIndex = dataset.data.length - 1;
23841
+ const firstValue = dataset.data[firstIndex];
23842
+ const lastValue = dataset.data[lastIndex];
23843
+ if (firstValue !== undefined && lastValue !== undefined) {
23844
+ const xStart = xScale.getPixelForValue(firstIndex);
23845
+ const xEnd = xScale.getPixelForValue(lastIndex);
23846
+ const yBottom = chartArea.bottom;
23847
+ ctx.save();
23848
+ ctx.strokeStyle =
23849
+ "#DADADA" /* ChartColorsStringEnum.BORDER_BOTTOM_LINE_CHART_COLOR */;
23850
+ ctx.lineWidth = 1;
23851
+ ctx.beginPath();
23852
+ ctx.moveTo(xStart, yBottom);
23853
+ ctx.lineTo(xEnd, yBottom);
23854
+ ctx.stroke();
23855
+ ctx.restore();
23856
+ }
23857
+ }
23596
23858
  },
23597
23859
  },
23598
23860
  ];
23861
+ if (this._chartConfig.chartType === "doughnut" /* ChartTypesStringEnum.DOUGHNUT */)
23862
+ this.plugins = [
23863
+ ...this.plugins,
23864
+ {
23865
+ id: 'doughnut-label',
23866
+ beforeDatasetDraw: (chart) => {
23867
+ this._chartConfig.centerLabels?.map((label, indx) => {
23868
+ ChartHelper.drawDoughnutLegend(chart, {
23869
+ indx,
23870
+ offsetTop: label.position?.top || 0
23871
+ }, label.value, label.fontSize, label.color);
23872
+ });
23873
+ },
23874
+ }
23875
+ ];
23599
23876
  }
23600
23877
  updateChartAnnotations(item, indx) {
23601
23878
  if (!this._chartConfig.annotations?.length)
@@ -23616,7 +23893,7 @@ class CaChartComponent {
23616
23893
  [`${item.label}-${indx}-${key}`]: {
23617
23894
  id: annotation.id || `annotation-${indx}-${key}`,
23618
23895
  type: annotation.type,
23619
- scaleID: annotation.axis || item.yAxisId,
23896
+ scaleID: annotation.axis || item.yAxisID,
23620
23897
  value: annotation.value || item.shiftValue,
23621
23898
  borderColor: annotation.color || '#DADADA',
23622
23899
  borderWidth: annotation.borderWidth || 2,
@@ -23626,37 +23903,45 @@ class CaChartComponent {
23626
23903
  },
23627
23904
  };
23628
23905
  });
23906
+ this.chart.update();
23629
23907
  }
23630
23908
  setMultipleYAxis(chartData) {
23631
23909
  let absoluteMax;
23632
23910
  chartData.datasets.forEach((dataset, index) => {
23633
- if (dataset.type == "line" /* ChartTypesStringEnum.LINE */ ||
23634
- dataset.type == "bar" /* ChartTypesStringEnum.BAR */) {
23911
+ if (dataset.type === "line" /* ChartTypesStringEnum.LINE */ ||
23912
+ dataset.type === "bar" /* ChartTypesStringEnum.BAR */) {
23635
23913
  const yAxisID = this._chartConfig.isMultiYAxis
23636
23914
  ? `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;
23915
+ : dataset.yAxisID || 'y-axis-0';
23916
+ // Detect if the dataset is all 0
23917
+ const isAllZeroDataset = dataset.data.every((val) => val === 0);
23918
+ let minValue = ChartHelper.calculateMinValue(dataset.data);
23919
+ let maxValue = ChartHelper.calculateMaxValue(dataset.data);
23646
23920
  const padding = maxValue * 0.03;
23647
- const minValueAdjusted = padding == 0 ? minValue : 0;
23648
- const maxValueAdjusted = absoluteMax + padding;
23921
+ // Adjust scaling for all 0 datasets
23922
+ if (isAllZeroDataset) {
23923
+ minValue = 0;
23924
+ maxValue = 1;
23925
+ }
23926
+ else {
23927
+ minValue = maxValue === minValue ? minValue - 0.1 : minValue;
23928
+ maxValue =
23929
+ maxValue === minValue ? maxValue + 0.1 : maxValue + padding;
23930
+ }
23649
23931
  this._chartConfig.chartOptions.scales = {
23650
23932
  ...this._chartConfig.chartOptions.scales,
23651
23933
  [yAxisID]: {
23652
23934
  display: false,
23653
23935
  beginAtZero: true,
23654
- min: minValueAdjusted,
23655
- max: maxValueAdjusted,
23656
- // Ovo je jako bitno, moramo ovu osu sa stacked parametrom namjestiti
23936
+ min: minValue,
23937
+ max: maxValue,
23657
23938
  stacked: this._chartConfig.isStacked,
23658
23939
  },
23659
23940
  };
23941
+ chartData.datasets[index] = {
23942
+ ...dataset,
23943
+ yAxisID,
23944
+ };
23660
23945
  }
23661
23946
  });
23662
23947
  }
@@ -23695,21 +23980,29 @@ class CaChartComponent {
23695
23980
  },
23696
23981
  },
23697
23982
  };
23698
- this.chart.update();
23699
23983
  }
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"] }] }); }
23984
+ ngOnDestroy() {
23985
+ this.subscription?.unsubscribe();
23986
+ }
23987
+ 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 }); }
23988
+ 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
23989
  }
23703
23990
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CaChartComponent, decorators: [{
23704
23991
  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: [{
23992
+ 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"] }]
23993
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: ChartManagerService, decorators: [{
23994
+ type: Optional
23995
+ }] }], propDecorators: { chartCanvas: [{
23707
23996
  type: ViewChild,
23708
- args: ['chartCanvas']
23709
- }], chartConfig: [{
23997
+ args: ['chartCanvas', { static: false }]
23998
+ }], chartId: [{
23710
23999
  type: Input
23711
- }], isDatasetHovered: [{
24000
+ }], chartDatasetHover: [{
23712
24001
  type: Input
24002
+ }], chartConfig: [{
24003
+ type: Input
24004
+ }], hoveredIndex: [{
24005
+ type: Output
23713
24006
  }] } });
23714
24007
 
23715
24008
  class TruncatePipe {
@@ -23735,6 +24028,7 @@ class CaTooltipListConstants {
23735
24028
 
23736
24029
  class CaTooltipListComponent {
23737
24030
  constructor() {
24031
+ this.tooltipList = null;
23738
24032
  this.constants = CaTooltipListConstants;
23739
24033
  this.truncateLength = 18;
23740
24034
  }
@@ -23742,22 +24036,121 @@ class CaTooltipListComponent {
23742
24036
  return this.tooltipList?.selectedItems?.length === 1;
23743
24037
  }
23744
24038
  get isLessThanFourItemsSelected() {
23745
- return (!this.tooltipList.selectedItems ||
24039
+ return (!this.tooltipList?.selectedItems ||
23746
24040
  this.tooltipList?.selectedItems?.length < 4);
23747
24041
  }
23748
24042
  trackByIdentity(index) {
23749
24043
  return index;
23750
24044
  }
23751
24045
  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" }] }); }
24046
+ 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
24047
  }
23754
24048
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CaTooltipListComponent, decorators: [{
23755
24049
  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"] }]
24050
+ 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
24051
  }], propDecorators: { tooltipList: [{
23758
24052
  type: Input
23759
24053
  }] } });
23760
24054
 
24055
+ class CaChartManagerComponent {
24056
+ constructor(chartManagerService, cdr) {
24057
+ this.chartManagerService = chartManagerService;
24058
+ this.cdr = cdr;
24059
+ this.chartConfigs = [];
24060
+ this.tooltipLables = [];
24061
+ this.chartDatasetHover = null;
24062
+ this.hoveredIndex = null;
24063
+ this.hoveredChartId = null;
24064
+ this.tooltipList = null;
24065
+ this.tooltipPosition = { x: 0, y: 0 };
24066
+ this.chartManagerService.hoverState$.subscribe(({ index, chartId }) => {
24067
+ this.hoveredIndex = index;
24068
+ this.hoveredChartId = chartId;
24069
+ this.updateTooltipList(this.hoveredIndex);
24070
+ this.cdr.markForCheck();
24071
+ });
24072
+ }
24073
+ trackByIndex(index) {
24074
+ return index;
24075
+ }
24076
+ onMouseMove(event) {
24077
+ const containerRect = this.chartManagerContainer.nativeElement.getBoundingClientRect();
24078
+ const padding = 100;
24079
+ let x = event.clientX - containerRect.left + padding;
24080
+ let y = event.clientY - containerRect.top + padding;
24081
+ if (this.tooltipContainer) {
24082
+ const tooltipWidth = this.tooltipContainer.nativeElement.offsetWidth;
24083
+ const tooltipHeight = this.tooltipContainer.nativeElement.offsetHeight;
24084
+ // Adjust Y position if the tooltip goes above the top of container
24085
+ if (y < tooltipHeight / 2)
24086
+ y = tooltipHeight / 2 + padding;
24087
+ // Adjust Y position if the tooltip goes below the container
24088
+ if (y + tooltipHeight / 2 > containerRect.height)
24089
+ y = containerRect.height - tooltipHeight / 2 - padding;
24090
+ // Adjust X position if it overflows the right edge
24091
+ if (x + tooltipWidth > containerRect.width)
24092
+ x = event.clientX - containerRect.left - tooltipWidth - padding; // Move tooltip to the left
24093
+ }
24094
+ this.tooltipPosition = { x, y };
24095
+ }
24096
+ updateTooltipList(index) {
24097
+ if (index === null || !this.chartConfigs.length) {
24098
+ this.tooltipList = null;
24099
+ return;
24100
+ }
24101
+ const selectedItems = [];
24102
+ const otherItems = [];
24103
+ this.chartConfigs.forEach((config) => {
24104
+ const visibleDatasets = config.chartData.datasets.filter((dataset) => !dataset.hidden);
24105
+ visibleDatasets.forEach((dataset) => {
24106
+ const rawData = dataset.data[index];
24107
+ const value = Array.isArray(rawData) ? rawData[0] : rawData;
24108
+ const tooltipItem = {
24109
+ label: dataset.label,
24110
+ value: value || 0,
24111
+ isCurrency: dataset.isCurrency || false,
24112
+ color: dataset.borderColor || "#FFFFFF" /* ChartColorsStringEnum.WHITE */,
24113
+ };
24114
+ if (config.isTooltipItemInSelectedItems)
24115
+ selectedItems.push(tooltipItem);
24116
+ else
24117
+ otherItems.push(tooltipItem);
24118
+ });
24119
+ });
24120
+ this.tooltipList = {
24121
+ date: this.tooltipLables[index],
24122
+ selectedItems: selectedItems,
24123
+ otherItems: otherItems,
24124
+ showPercentage: false,
24125
+ };
24126
+ }
24127
+ 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 }); }
24128
+ 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) {\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:
24129
+ //Components
24130
+ CaChartComponent, selector: "app-ca-chart", inputs: ["chartId", "chartDatasetHover", "chartConfig"], outputs: ["hoveredIndex"] }, { kind: "component", type: CaTooltipListComponent, selector: "app-ca-tooltip-list", inputs: ["tooltipList"] }] }); }
24131
+ }
24132
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CaChartManagerComponent, decorators: [{
24133
+ type: Component,
24134
+ args: [{ selector: 'app-ca-chart-manager', standalone: true, imports: [
24135
+ CommonModule,
24136
+ //Components
24137
+ CaChartComponent,
24138
+ CaTooltipListComponent,
24139
+ ], 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) {\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"] }]
24140
+ }], ctorParameters: () => [{ type: ChartManagerService }, { type: i0.ChangeDetectorRef }], propDecorators: { chartConfigs: [{
24141
+ type: Input
24142
+ }], tooltipLables: [{
24143
+ type: Input
24144
+ }], chartDatasetHover: [{
24145
+ type: Input
24146
+ }], chartManagerContainer: [{
24147
+ type: ViewChild,
24148
+ args: ['chartManagerContainer']
24149
+ }], tooltipContainer: [{
24150
+ type: ViewChild,
24151
+ args: ['tooltipContainer']
24152
+ }] } });
24153
+
23761
24154
  var eProgressRangePrice;
23762
24155
  (function (eProgressRangePrice) {
23763
24156
  eProgressRangePrice[eProgressRangePrice["Expired"] = 0] = "Expired";
@@ -24038,6 +24431,7 @@ class CaComponentsLibModule {
24038
24431
  CaRightSidePanelTopBarComponent,
24039
24432
  CaRightSidePanelComponent,
24040
24433
  CaChartComponent,
24434
+ CaChartManagerComponent,
24041
24435
  CaDropdownMenuComponent,
24042
24436
  CaUploadFilesComponent,
24043
24437
  CaRightSidePanelCompanyComponent,
@@ -24069,6 +24463,7 @@ class CaComponentsLibModule {
24069
24463
  CaRightSidePanelTopBarComponent,
24070
24464
  CaRightSidePanelComponent,
24071
24465
  CaChartComponent,
24466
+ CaChartManagerComponent,
24072
24467
  CaDropdownMenuComponent,
24073
24468
  CaUploadFilesComponent,
24074
24469
  CaRightSidePanelCompanyComponent,
@@ -24105,6 +24500,7 @@ class CaComponentsLibModule {
24105
24500
  CaRightSidePanelTopBarComponent,
24106
24501
  CaRightSidePanelComponent,
24107
24502
  CaChartComponent,
24503
+ CaChartManagerComponent,
24108
24504
  CaDropdownMenuComponent,
24109
24505
  CaUploadFilesComponent,
24110
24506
  CaRightSidePanelCompanyComponent,
@@ -24146,6 +24542,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
24146
24542
  CaRightSidePanelTopBarComponent,
24147
24543
  CaRightSidePanelComponent,
24148
24544
  CaChartComponent,
24545
+ CaChartManagerComponent,
24149
24546
  CaDropdownMenuComponent,
24150
24547
  CaUploadFilesComponent,
24151
24548
  CaRightSidePanelCompanyComponent,
@@ -24181,6 +24578,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
24181
24578
  CaRightSidePanelTopBarComponent,
24182
24579
  CaRightSidePanelComponent,
24183
24580
  CaChartComponent,
24581
+ CaChartManagerComponent,
24184
24582
  CaDropdownMenuComponent,
24185
24583
  CaUploadFilesComponent,
24186
24584
  CaRightSidePanelCompanyComponent,
@@ -24434,5 +24832,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
24434
24832
  * Generated bundle index. Do not edit.
24435
24833
  */
24436
24834
 
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 };
24835
+ 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
24836
  //# sourceMappingURL=ca-components.mjs.map