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.
- package/esm2022/lib/ca-components.module.mjs +7 -1
- package/esm2022/lib/components/ca-chart/ca-chart.component.mjs +331 -118
- package/esm2022/lib/components/ca-chart/enums/chart-colors.enum.mjs +1 -1
- package/esm2022/lib/components/ca-chart/enums/chart-event-types.enum.mjs +1 -1
- package/esm2022/lib/components/ca-chart/enums/chart-font-properties.enum.mjs +1 -1
- package/esm2022/lib/components/ca-chart/enums/chart-plugin-ids.enum.mjs +2 -1
- package/esm2022/lib/components/ca-chart/models/chart-annotation.model.mjs +1 -1
- package/esm2022/lib/components/ca-chart/models/chart-base-dataset.model.mjs +1 -1
- package/esm2022/lib/components/ca-chart/models/chart-center-label.model.mjs +2 -0
- package/esm2022/lib/components/ca-chart/models/chart-config.model.mjs +1 -1
- package/esm2022/lib/components/ca-chart/models/chart-dataset-hover.model.mjs +2 -0
- package/esm2022/lib/components/ca-chart/models/chart-line-dataset.model.mjs +1 -1
- package/esm2022/lib/components/ca-chart/models/index.mjs +3 -1
- package/esm2022/lib/components/ca-chart/utils/constants/chart.constants.mjs +4 -0
- package/esm2022/lib/components/ca-chart/utils/constants/index.mjs +2 -0
- package/esm2022/lib/components/ca-chart/utils/helpers/chart.helper.mjs +74 -6
- package/esm2022/lib/components/ca-chart-manager/ca-chart-manager.component.mjs +108 -0
- package/esm2022/lib/components/ca-chart-manager/models/hover-state.model.mjs +2 -0
- package/esm2022/lib/components/ca-chart-manager/models/index.mjs +2 -0
- package/esm2022/lib/components/ca-chart-manager/services/chart-manager.service.mjs +21 -0
- package/esm2022/lib/components/ca-chart-manager/services/index.mjs +2 -0
- package/esm2022/lib/components/ca-tooltip-list/ca-tooltip-list.component.mjs +5 -4
- package/esm2022/lib/components/ca-tooltip-list/models/tooltip-list-item.model.mjs +1 -1
- package/esm2022/lib/components/ca-tooltip-list/models/tooltip-list.model.mjs +1 -1
- package/esm2022/public-api.mjs +2 -1
- package/fesm2022/ca-components.mjs +527 -129
- package/fesm2022/ca-components.mjs.map +1 -1
- package/lib/ca-components.module.d.ts +7 -6
- package/lib/components/ca-chart/ca-chart.component.d.ts +18 -10
- package/lib/components/ca-chart/enums/chart-colors.enum.d.ts +2 -1
- package/lib/components/ca-chart/enums/chart-plugin-ids.enum.d.ts +2 -1
- package/lib/components/ca-chart/models/chart-annotation.model.d.ts +1 -1
- package/lib/components/ca-chart/models/chart-base-dataset.model.d.ts +5 -2
- package/lib/components/ca-chart/models/chart-center-label.model.d.ts +11 -0
- package/lib/components/ca-chart/models/chart-config.model.d.ts +10 -3
- package/lib/components/ca-chart/models/chart-dataset-hover.model.d.ts +5 -0
- package/lib/components/ca-chart/models/chart-line-dataset.model.d.ts +0 -3
- package/lib/components/ca-chart/models/index.d.ts +2 -0
- package/lib/components/ca-chart/utils/constants/chart.constants.d.ts +3 -0
- package/lib/components/ca-chart/utils/constants/index.d.ts +1 -0
- package/lib/components/ca-chart/utils/helpers/chart.helper.d.ts +7 -1
- package/lib/components/ca-chart-manager/ca-chart-manager.component.d.ts +27 -0
- package/lib/components/ca-chart-manager/models/hover-state.model.d.ts +4 -0
- package/lib/components/ca-chart-manager/models/index.d.ts +1 -0
- package/lib/components/ca-chart-manager/services/chart-manager.service.d.ts +10 -0
- package/lib/components/ca-chart-manager/services/index.d.ts +1 -0
- package/lib/components/ca-tooltip-list/ca-tooltip-list.component.d.ts +1 -1
- package/lib/components/ca-tooltip-list/models/tooltip-list-item.model.d.ts +0 -1
- package/lib/components/ca-tooltip-list/models/tooltip-list.model.d.ts +1 -3
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
- package/src/assets/ca-components/svg/common/states/ic_alabama.svg +3 -0
- package/src/assets/ca-components/svg/common/states/ic_alaska.svg +14 -0
- package/src/assets/ca-components/svg/common/states/ic_arizona.svg +3 -0
- package/src/assets/ca-components/svg/common/states/ic_arkansas.svg +3 -0
- package/src/assets/ca-components/svg/common/states/ic_california.svg +3 -0
- package/src/assets/ca-components/svg/common/states/ic_colorado.svg +3 -0
- package/src/assets/ca-components/svg/common/states/ic_connecticut.svg +3 -0
- package/src/assets/ca-components/svg/common/states/ic_delaware.svg +3 -0
- package/src/assets/ca-components/svg/common/states/ic_florida.svg +3 -0
- package/src/assets/ca-components/svg/common/states/ic_georgia.svg +3 -0
- package/src/assets/ca-components/svg/common/states/ic_hawaii.svg +10 -0
- package/src/assets/ca-components/svg/common/states/ic_idaho.svg +3 -0
- package/src/assets/ca-components/svg/common/states/ic_illinois.svg +3 -0
- package/src/assets/ca-components/svg/common/states/ic_indiana.svg +3 -0
- package/src/assets/ca-components/svg/common/states/ic_iowa.svg +3 -0
- package/src/assets/ca-components/svg/common/states/ic_kansas.svg +3 -0
- package/src/assets/ca-components/svg/common/states/ic_kentucky.svg +3 -0
- package/src/assets/ca-components/svg/common/states/ic_louisiana.svg +4 -0
- package/src/assets/ca-components/svg/common/states/ic_maine.svg +9 -0
- package/src/assets/ca-components/svg/common/states/ic_maryland.svg +7 -0
- package/src/assets/ca-components/svg/common/states/ic_massachusetts.svg +7 -0
- package/src/assets/ca-components/svg/common/states/ic_michigan.svg +11 -0
- package/src/assets/ca-components/svg/common/states/ic_minnesota.svg +4 -0
- package/src/assets/ca-components/svg/common/states/ic_mississippi.svg +3 -0
- package/src/assets/ca-components/svg/common/states/ic_missouri.svg +3 -0
- package/src/assets/ca-components/svg/common/states/ic_montana.svg +3 -0
- package/src/assets/ca-components/svg/common/states/ic_nebraska.svg +3 -0
- package/src/assets/ca-components/svg/common/states/ic_nevada.svg +3 -0
- package/src/assets/ca-components/svg/common/states/ic_new_hampshire.svg +3 -0
- package/src/assets/ca-components/svg/common/states/ic_new_jersey.svg +5 -0
- package/src/assets/ca-components/svg/common/states/ic_new_mexico.svg +3 -0
- package/src/assets/ca-components/svg/common/states/ic_new_york.svg +4 -0
- package/src/assets/ca-components/svg/common/states/ic_north_carolina.svg +3 -0
- package/src/assets/ca-components/svg/common/states/ic_north_dakota.svg +3 -0
- package/src/assets/ca-components/svg/common/states/ic_ohio.svg +4 -0
- package/src/assets/ca-components/svg/common/states/ic_oklahoma.svg +3 -0
- package/src/assets/ca-components/svg/common/states/ic_oregon.svg +3 -0
- package/src/assets/ca-components/svg/common/states/ic_pennsylvania.svg +3 -0
- package/src/assets/ca-components/svg/common/states/ic_rhode_island.svg +8 -0
- package/src/assets/ca-components/svg/common/states/ic_south_carolina.svg +3 -0
- package/src/assets/ca-components/svg/common/states/ic_south_dakota.svg +3 -0
- package/src/assets/ca-components/svg/common/states/ic_tennessee.svg +3 -0
- package/src/assets/ca-components/svg/common/states/ic_texas.svg +3 -0
- package/src/assets/ca-components/svg/common/states/ic_utah.svg +3 -0
- package/src/assets/ca-components/svg/common/states/ic_vermont.svg +7 -0
- package/src/assets/ca-components/svg/common/states/ic_virginia.svg +4 -0
- package/src/assets/ca-components/svg/common/states/ic_washington.svg +15 -0
- package/src/assets/ca-components/svg/common/states/ic_west_virginia.svg +3 -0
- package/src/assets/ca-components/svg/common/states/ic_wisconsin.svg +4 -0
- package/src/assets/ca-components/svg/common/states/ic_wyoming.svg +3 -0
- package/esm2022/lib/components/ca-chart/config/ca-base-chart-dataset.config.mjs +0 -10
- package/esm2022/lib/components/ca-chart/config/index.mjs +0 -2
- package/lib/components/ca-chart/config/ca-base-chart-dataset.config.d.ts +0 -4
- 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
|
-
|
|
23273
|
-
|
|
23274
|
-
|
|
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(
|
|
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
|
|
23351
|
-
static
|
|
23352
|
-
|
|
23353
|
-
|
|
23354
|
-
|
|
23355
|
-
|
|
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
|
|
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
|
-
|
|
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(
|
|
23400
|
-
if (
|
|
23401
|
-
|
|
23402
|
-
|
|
23403
|
-
this.
|
|
23404
|
-
|
|
23405
|
-
|
|
23406
|
-
|
|
23407
|
-
|
|
23408
|
-
|
|
23409
|
-
|
|
23410
|
-
|
|
23411
|
-
|
|
23412
|
-
|
|
23413
|
-
|
|
23414
|
-
|
|
23415
|
-
|
|
23416
|
-
|
|
23417
|
-
|
|
23418
|
-
|
|
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
|
|
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.
|
|
23439
|
-
|
|
23440
|
-
|
|
23441
|
-
|
|
23442
|
-
|
|
23443
|
-
|
|
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
|
-
|
|
23452
|
-
|
|
23453
|
-
|
|
23454
|
-
|
|
23455
|
-
|
|
23456
|
-
|
|
23457
|
-
|
|
23458
|
-
|
|
23459
|
-
|
|
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
|
|
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:
|
|
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
|
-
//
|
|
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,
|
|
23526
|
-
if (
|
|
23527
|
-
|
|
23528
|
-
this.
|
|
23529
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
23568
|
-
|
|
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 =
|
|
23575
|
-
const
|
|
23576
|
-
tickPos
|
|
23577
|
-
|
|
23578
|
-
|
|
23579
|
-
|
|
23580
|
-
|
|
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 (
|
|
23816
|
+
if (this._hoveredIndex !== null) {
|
|
23586
23817
|
const { chartArea, scales: { x: xScale }, } = this.chart;
|
|
23587
|
-
ChartHelper.highlightSegment(this.chartContext, xScale, chartArea, this._chartConfig.height,
|
|
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 (
|
|
23595
|
-
|
|
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.
|
|
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
|
|
23634
|
-
dataset.type
|
|
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.
|
|
23638
|
-
|
|
23639
|
-
|
|
23640
|
-
|
|
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
|
-
|
|
23648
|
-
|
|
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:
|
|
23655
|
-
max:
|
|
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
|
-
|
|
23701
|
-
|
|
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
|
|
23706
|
-
}], ctorParameters: () => [
|
|
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
|
-
}],
|
|
23997
|
+
args: ['chartCanvas', { static: false }]
|
|
23998
|
+
}], chartId: [{
|
|
23710
23999
|
type: Input
|
|
23711
|
-
}],
|
|
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
|
|
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
|