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