nuxeo-development-framework 5.4.9 → 5.5.0
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/bundles/nuxeo-development-framework.umd.js +491 -288
- package/bundles/nuxeo-development-framework.umd.js.map +1 -1
- package/esm2015/lib/components/reports/charts/plugins/data-labels.js +166 -102
- package/esm2015/lib/components/reports/charts/utility/colors.js +13 -1
- package/esm2015/lib/components/reports/ndf-reports/base/base-chart.js +2 -2
- package/esm2015/lib/components/reports/ndf-reports/base/base-custom-report.js +16 -3
- package/esm2015/lib/components/reports/ndf-reports/base/base-graph.report.js +10 -22
- package/esm2015/lib/components/reports/ndf-reports/base/base-report.js +5 -2
- package/esm2015/lib/components/reports/ndf-reports/charts-components/custom-chart/custom-chart.component.js +68 -0
- package/esm2015/lib/components/reports/ndf-reports/charts-components/index.js +2 -1
- package/esm2015/lib/components/reports/ndf-reports/components/_parts/custom-chart-dialog/custom-chart-dialog.component.js +41 -0
- package/esm2015/lib/components/reports/ndf-reports/components/_parts/index.js +2 -1
- package/esm2015/lib/components/reports/ndf-reports/components/custom-report/custom-report.component.js +23 -37
- package/esm2015/lib/components/reports/ndf-reports/components/dynamic-timeline-report/dynamic-timeline-report.component.js +2 -6
- package/esm2015/lib/components/reports/ndf-reports/containers/ndf-report/ndf-report.component.js +4 -3
- package/esm2015/lib/components/reports/ndf-reports/containers/ndf-reports/ndf-reports.component.js +2 -2
- package/esm2015/lib/components/reports/ndf-reports/models/custom-definition.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/models/dialog-data.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/models/report-config.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/ndf-reports.module.js +5 -3
- package/esm2015/lib/components/reports/ndf-reports/public-api.js +2 -1
- package/esm2015/lib/components/reports/ndf-reports/services/chart-manager.service.js +15 -9
- package/esm2015/lib/components/reports/ndf-reports/services/custom-reports-registry.service.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/services/report-config-mapper.service.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/services/report-transform.service.js +2 -2
- package/esm2015/lib/components/reports/ndf-reports/services/reports-dialog.service.js +32 -0
- package/fesm2015/nuxeo-development-framework.js +452 -267
- package/fesm2015/nuxeo-development-framework.js.map +1 -1
- package/lib/components/reports/charts/utility/colors.d.ts +5 -0
- package/lib/components/reports/ndf-reports/base/base-chart.d.ts +1 -1
- package/lib/components/reports/ndf-reports/base/base-custom-report.d.ts +18 -13
- package/lib/components/reports/ndf-reports/base/base-graph.report.d.ts +5 -13
- package/lib/components/reports/ndf-reports/base/base-report.d.ts +4 -1
- package/lib/components/reports/ndf-reports/charts-components/custom-chart/custom-chart.component.d.ts +15 -0
- package/lib/components/reports/ndf-reports/charts-components/index.d.ts +1 -0
- package/lib/components/reports/ndf-reports/components/_parts/custom-chart-dialog/custom-chart-dialog.component.d.ts +14 -0
- package/lib/components/reports/ndf-reports/components/_parts/index.d.ts +1 -0
- package/lib/components/reports/ndf-reports/components/custom-report/custom-report.component.d.ts +8 -10
- package/lib/components/reports/ndf-reports/models/custom-definition.d.ts +3 -3
- package/lib/components/reports/ndf-reports/models/dialog-data.d.ts +8 -0
- package/lib/components/reports/ndf-reports/models/report-config.d.ts +2 -2
- package/lib/components/reports/ndf-reports/ndf-reports.module.d.ts +22 -20
- package/lib/components/reports/ndf-reports/public-api.d.ts +1 -0
- package/lib/components/reports/ndf-reports/services/chart-manager.service.d.ts +2 -2
- package/lib/components/reports/ndf-reports/services/custom-reports-registry.service.d.ts +3 -2
- package/lib/components/reports/ndf-reports/services/report-config-mapper.service.d.ts +2 -2
- package/lib/components/reports/ndf-reports/services/reports-dialog.service.d.ts +21 -0
- package/package.json +2 -2
|
@@ -40655,6 +40655,18 @@ function createColorVariants(color, length, type = 'tint', amount = 43) {
|
|
|
40655
40655
|
}
|
|
40656
40656
|
}
|
|
40657
40657
|
return variants;
|
|
40658
|
+
}
|
|
40659
|
+
function createConicGradient(chart, colors) {
|
|
40660
|
+
const { ctx, chartArea } = chart;
|
|
40661
|
+
if (!chartArea || !('createConicGradient' in ctx)) {
|
|
40662
|
+
return null;
|
|
40663
|
+
}
|
|
40664
|
+
const { left, width, top, height } = chartArea;
|
|
40665
|
+
//@ts-ignore
|
|
40666
|
+
const gradient = ctx.createConicGradient(0, left + width / 2, top + height / 2);
|
|
40667
|
+
gradient.addColorStop(0, colors === null || colors === void 0 ? void 0 : colors.startColor);
|
|
40668
|
+
gradient.addColorStop(1, colors === null || colors === void 0 ? void 0 : colors.endColor);
|
|
40669
|
+
return gradient;
|
|
40658
40670
|
}
|
|
40659
40671
|
|
|
40660
40672
|
function flatArray(data) {
|
|
@@ -40805,6 +40817,7 @@ var index$2 = /*#__PURE__*/Object.freeze({
|
|
|
40805
40817
|
createTint: createTint,
|
|
40806
40818
|
createShade: createShade,
|
|
40807
40819
|
createColorVariants: createColorVariants,
|
|
40820
|
+
createConicGradient: createConicGradient,
|
|
40808
40821
|
flatArray: flatArray,
|
|
40809
40822
|
isObject: isObject,
|
|
40810
40823
|
getCssVariable: getCssVariable,
|
|
@@ -41276,147 +41289,211 @@ const scrollableLegends = {
|
|
|
41276
41289
|
}
|
|
41277
41290
|
};
|
|
41278
41291
|
|
|
41292
|
+
// Configuration constants
|
|
41293
|
+
const LABEL_CONFIG = {
|
|
41294
|
+
minFontSize: 10,
|
|
41295
|
+
maxFontSize: 16,
|
|
41296
|
+
defaultFontSize: 12,
|
|
41297
|
+
textPadding: 8,
|
|
41298
|
+
minAngleForPieLabel: 0.3,
|
|
41299
|
+
arcRadiusMultiplier: {
|
|
41300
|
+
pie: 0.7,
|
|
41301
|
+
doughnut: 0.8
|
|
41302
|
+
},
|
|
41303
|
+
fontSizeCalculation: {
|
|
41304
|
+
percentageDivisor: 3,
|
|
41305
|
+
maxPercentageForFontSize: 20
|
|
41306
|
+
}
|
|
41307
|
+
};
|
|
41308
|
+
// Main plugin
|
|
41279
41309
|
const chartDataLabels = {
|
|
41280
41310
|
id: 'chartDataLabels',
|
|
41281
41311
|
afterDatasetsDraw(chart, args, plugins) {
|
|
41282
41312
|
var _a;
|
|
41283
41313
|
const { ctx } = chart;
|
|
41284
41314
|
ctx.save();
|
|
41285
|
-
|
|
41286
|
-
|
|
41287
|
-
|
|
41288
|
-
|
|
41289
|
-
case 'pie':
|
|
41290
|
-
pieChartLabels(chart);
|
|
41291
|
-
break;
|
|
41292
|
-
case 'doughnut':
|
|
41293
|
-
doughnutChartLabels(chart);
|
|
41294
|
-
break;
|
|
41315
|
+
const chartType = (_a = chart.config) === null || _a === void 0 ? void 0 : _a.type;
|
|
41316
|
+
const renderer = getChartRenderer(chartType);
|
|
41317
|
+
if (renderer) {
|
|
41318
|
+
renderer(chart);
|
|
41295
41319
|
}
|
|
41296
41320
|
ctx.restore();
|
|
41297
41321
|
}
|
|
41298
41322
|
};
|
|
41323
|
+
// Chart type router
|
|
41324
|
+
function getChartRenderer(chartType) {
|
|
41325
|
+
const renderers = {
|
|
41326
|
+
bar: barChartLabels,
|
|
41327
|
+
pie: pieChartLabels,
|
|
41328
|
+
doughnut: doughnutChartLabels
|
|
41329
|
+
};
|
|
41330
|
+
return renderers[chartType];
|
|
41331
|
+
}
|
|
41332
|
+
// Core utility functions
|
|
41333
|
+
function calculatePercentage(value, total) {
|
|
41334
|
+
return total > 0 ? (value / total) * 100 : 0;
|
|
41335
|
+
}
|
|
41336
|
+
function calculateFontSize(percentage) {
|
|
41337
|
+
const { percentageDivisor, maxPercentageForFontSize } = LABEL_CONFIG.fontSizeCalculation;
|
|
41338
|
+
const calculatedSize = Math.min(percentage / percentageDivisor, maxPercentageForFontSize);
|
|
41339
|
+
return Math.max(LABEL_CONFIG.minFontSize, Math.min(calculatedSize, LABEL_CONFIG.maxFontSize));
|
|
41340
|
+
}
|
|
41341
|
+
function getTextMetrics(ctx, text, fontSize) {
|
|
41342
|
+
ctx.font = `normal ${fontSize}px sans-serif`;
|
|
41343
|
+
const metrics = ctx.measureText(text);
|
|
41344
|
+
const height = metrics.actualBoundingBoxAscent + metrics.actualBoundingBoxDescent || LABEL_CONFIG.defaultFontSize;
|
|
41345
|
+
return {
|
|
41346
|
+
width: metrics.width,
|
|
41347
|
+
height
|
|
41348
|
+
};
|
|
41349
|
+
}
|
|
41350
|
+
function prepareCanvasForText(ctx, fontSize, color) {
|
|
41351
|
+
ctx.font = `bold ${fontSize}px sans-serif`;
|
|
41352
|
+
ctx.textAlign = 'center';
|
|
41353
|
+
ctx.textBaseline = 'middle';
|
|
41354
|
+
ctx.fillStyle = color;
|
|
41355
|
+
}
|
|
41356
|
+
function extractLabelData(dataset, index, totalSum, chart) {
|
|
41357
|
+
const value = dataset.data[index];
|
|
41358
|
+
const percentage = calculatePercentage(value, totalSum);
|
|
41359
|
+
const isVisible = chart.getDataVisibility(index);
|
|
41360
|
+
if (!percentage || !isVisible) {
|
|
41361
|
+
return null;
|
|
41362
|
+
}
|
|
41363
|
+
return {
|
|
41364
|
+
text: `${percentage.toFixed(1)}%`,
|
|
41365
|
+
percentage,
|
|
41366
|
+
backgroundColor: Array.isArray(dataset.backgroundColor) ? dataset.backgroundColor[index] : dataset.backgroundColor,
|
|
41367
|
+
isVisible
|
|
41368
|
+
};
|
|
41369
|
+
}
|
|
41370
|
+
// Bar chart implementation
|
|
41299
41371
|
function barChartLabels(chart) {
|
|
41300
41372
|
var _a;
|
|
41301
|
-
const { ctx
|
|
41373
|
+
const { ctx } = chart;
|
|
41302
41374
|
const isHorizontalChart = ((_a = chart.options) === null || _a === void 0 ? void 0 : _a.indexAxis) === 'y';
|
|
41303
|
-
const { isHorizontalReversed } =
|
|
41375
|
+
const { isHorizontalReversed } = getBarChartOrientation(chart);
|
|
41304
41376
|
chart.data.datasets.forEach((dataset, datasetIndex) => {
|
|
41305
41377
|
const meta = chart.getDatasetMeta(datasetIndex);
|
|
41306
|
-
const totalSum = dataset.data.reduce((sum,
|
|
41378
|
+
const totalSum = dataset.data.reduce((sum, value) => sum + value, 0);
|
|
41307
41379
|
meta.data.forEach((dataPoint, index) => {
|
|
41308
41380
|
if (!dataPoint)
|
|
41309
41381
|
return;
|
|
41310
|
-
const
|
|
41311
|
-
|
|
41312
|
-
if (!percentage || !isVisible) {
|
|
41382
|
+
const labelData = extractLabelData(dataset, index, totalSum, chart);
|
|
41383
|
+
if (!labelData)
|
|
41313
41384
|
return;
|
|
41314
|
-
|
|
41315
|
-
const
|
|
41316
|
-
const
|
|
41317
|
-
|
|
41318
|
-
|
|
41319
|
-
|
|
41320
|
-
ctx.font = `normal ${fontSize}px sans-serif`;
|
|
41321
|
-
ctx.fillStyle = textColor;
|
|
41322
|
-
const text = `${percentage.toFixed()}%`;
|
|
41323
|
-
const { width, height } = getTextMetrics(ctx, text);
|
|
41324
|
-
const textHeight = height || 12;
|
|
41325
|
-
const textWidth = width || 30;
|
|
41326
|
-
if (isHorizontalChart) {
|
|
41327
|
-
if ((dataPoint === null || dataPoint === void 0 ? void 0 : dataPoint.width) > 0) {
|
|
41328
|
-
const textPadding = 20;
|
|
41329
|
-
const offset = textPadding + textWidth <= dataPoint.width ? textWidth : textWidth >= dataPoint.width ? 0 : 10;
|
|
41330
|
-
const x = dataPoint.x + (isHorizontalReversed ? offset : -offset);
|
|
41331
|
-
ctx.fillStyle = dataPoint.width <= textWidth ? getColor('--chart-value-default-color', '#000') : textColor;
|
|
41332
|
-
if (percentage) {
|
|
41333
|
-
ctx.fillText(text, x, dataPoint.y);
|
|
41334
|
-
}
|
|
41335
|
-
}
|
|
41336
|
-
}
|
|
41337
|
-
else {
|
|
41338
|
-
if ((dataPoint === null || dataPoint === void 0 ? void 0 : dataPoint.height) > 0) {
|
|
41339
|
-
const y = textHeight >= dataPoint.height ? dataPoint.y - 10 : dataPoint.y + 10;
|
|
41340
|
-
ctx.fillStyle = textHeight >= dataPoint.height ? getColor('--chart-value-default-color', '#000') : textColor;
|
|
41341
|
-
if (!percentage) {
|
|
41342
|
-
return;
|
|
41343
|
-
}
|
|
41344
|
-
ctx.fillText(text, dataPoint.x, y);
|
|
41345
|
-
}
|
|
41385
|
+
const fontSize = calculateFontSize(labelData.percentage);
|
|
41386
|
+
const textMetrics = getTextMetrics(ctx, labelData.text, fontSize);
|
|
41387
|
+
const position = calculateBarLabelPosition(dataPoint, textMetrics, isHorizontalChart, isHorizontalReversed, labelData.backgroundColor);
|
|
41388
|
+
if (position) {
|
|
41389
|
+
prepareCanvasForText(ctx, fontSize, position.color);
|
|
41390
|
+
ctx.fillText(labelData.text, position.x, position.y);
|
|
41346
41391
|
}
|
|
41347
41392
|
});
|
|
41348
41393
|
});
|
|
41349
41394
|
}
|
|
41350
|
-
function
|
|
41351
|
-
const {
|
|
41352
|
-
|
|
41353
|
-
const
|
|
41354
|
-
|
|
41355
|
-
|
|
41356
|
-
|
|
41357
|
-
|
|
41358
|
-
|
|
41359
|
-
|
|
41360
|
-
|
|
41361
|
-
|
|
41362
|
-
|
|
41363
|
-
|
|
41364
|
-
|
|
41365
|
-
|
|
41366
|
-
|
|
41367
|
-
|
|
41368
|
-
|
|
41369
|
-
|
|
41370
|
-
|
|
41371
|
-
|
|
41395
|
+
function calculateBarLabelPosition(dataPoint, textMetrics, isHorizontal, isReversed, backgroundColor) {
|
|
41396
|
+
const { textPadding } = LABEL_CONFIG;
|
|
41397
|
+
if (isHorizontal) {
|
|
41398
|
+
const fitsInside = textMetrics.width + textPadding * 2 <= dataPoint.width;
|
|
41399
|
+
if (fitsInside) {
|
|
41400
|
+
return {
|
|
41401
|
+
x: dataPoint.x + (isReversed ? textMetrics.width / 2 : -textMetrics.width / 2),
|
|
41402
|
+
y: dataPoint.y,
|
|
41403
|
+
color: getTextColor(backgroundColor)
|
|
41404
|
+
};
|
|
41405
|
+
}
|
|
41406
|
+
else {
|
|
41407
|
+
return {
|
|
41408
|
+
x: dataPoint.x + (isReversed ? -textMetrics.width / 2 - textPadding : textMetrics.width / 2 + textPadding),
|
|
41409
|
+
y: dataPoint.y,
|
|
41410
|
+
color: getColor('--chart-value-default-color', '#000')
|
|
41411
|
+
};
|
|
41412
|
+
}
|
|
41413
|
+
}
|
|
41414
|
+
else {
|
|
41415
|
+
const fitsInside = textMetrics.height + textPadding * 2 <= dataPoint.height;
|
|
41416
|
+
if (fitsInside) {
|
|
41417
|
+
return {
|
|
41418
|
+
x: dataPoint.x,
|
|
41419
|
+
y: dataPoint.y,
|
|
41420
|
+
color: getTextColor(backgroundColor)
|
|
41421
|
+
};
|
|
41422
|
+
}
|
|
41423
|
+
else {
|
|
41424
|
+
return {
|
|
41425
|
+
x: dataPoint.x,
|
|
41426
|
+
y: dataPoint.y - textMetrics.height / 2 - textPadding,
|
|
41427
|
+
color: getColor('--chart-value-default-color', '#000')
|
|
41428
|
+
};
|
|
41429
|
+
}
|
|
41430
|
+
}
|
|
41372
41431
|
}
|
|
41432
|
+
// Pie chart implementation
|
|
41373
41433
|
function pieChartLabels(chart) {
|
|
41374
|
-
|
|
41434
|
+
renderArcLabels(chart, 'pie');
|
|
41435
|
+
}
|
|
41436
|
+
// Doughnut chart implementation
|
|
41437
|
+
function doughnutChartLabels(chart) {
|
|
41438
|
+
renderArcLabels(chart, 'doughnut');
|
|
41439
|
+
}
|
|
41440
|
+
function renderArcLabels(chart, chartType) {
|
|
41441
|
+
const { ctx } = chart;
|
|
41375
41442
|
chart.data.datasets.forEach((dataset, datasetIndex) => {
|
|
41376
41443
|
const meta = chart.getDatasetMeta(datasetIndex);
|
|
41377
|
-
const totalSum = dataset.data.reduce((sum,
|
|
41444
|
+
const totalSum = dataset.data.reduce((sum, value) => sum + value, 0);
|
|
41378
41445
|
meta.data.forEach((arc, index) => {
|
|
41379
41446
|
if (!arc)
|
|
41380
41447
|
return;
|
|
41381
|
-
const
|
|
41382
|
-
|
|
41383
|
-
if (!percentage || !isVisible) {
|
|
41448
|
+
const labelData = extractLabelData(dataset, index, totalSum, chart);
|
|
41449
|
+
if (!labelData)
|
|
41384
41450
|
return;
|
|
41451
|
+
if (shouldShowArcLabel(arc, labelData.text, chartType)) {
|
|
41452
|
+
const position = calculateArcLabelPosition(arc, chartType);
|
|
41453
|
+
const fontSize = calculateFontSize(labelData.percentage);
|
|
41454
|
+
const textColor = getTextColor(labelData.backgroundColor || '#000000');
|
|
41455
|
+
prepareCanvasForText(ctx, fontSize, textColor);
|
|
41456
|
+
ctx.fillText(labelData.text, position.x, position.y);
|
|
41385
41457
|
}
|
|
41386
|
-
const midAngle = (arc.startAngle + arc.endAngle) / 2;
|
|
41387
|
-
const x = arc.x + Math.cos(midAngle) * (arc.outerRadius / 1.5);
|
|
41388
|
-
const y = arc.y + Math.sin(midAngle) * (arc.outerRadius / 1.5);
|
|
41389
|
-
const fontSize = Math.max(12, Math.min(percentage / 2, 14));
|
|
41390
|
-
const bgColor = dataset.backgroundColor[index] || '#00000';
|
|
41391
|
-
prepareText(ctx, fontSize, bgColor);
|
|
41392
|
-
ctx.fillText(`${percentage.toFixed()}%`, x, y);
|
|
41393
41458
|
});
|
|
41394
41459
|
});
|
|
41395
41460
|
}
|
|
41396
|
-
function
|
|
41397
|
-
|
|
41398
|
-
|
|
41399
|
-
|
|
41400
|
-
|
|
41461
|
+
function shouldShowArcLabel(arc, text, chartType) {
|
|
41462
|
+
const arcAngle = Math.abs(arc.endAngle - arc.startAngle);
|
|
41463
|
+
// Don't show labels for very small slices
|
|
41464
|
+
if (arcAngle < LABEL_CONFIG.minAngleForPieLabel) {
|
|
41465
|
+
return false;
|
|
41466
|
+
}
|
|
41467
|
+
// For doughnut charts, also check if there's enough radial space
|
|
41468
|
+
if (chartType === 'doughnut') {
|
|
41469
|
+
const radialSpace = arc.outerRadius - arc.innerRadius;
|
|
41470
|
+
return radialSpace >= LABEL_CONFIG.defaultFontSize * 1.5;
|
|
41471
|
+
}
|
|
41472
|
+
return true;
|
|
41473
|
+
}
|
|
41474
|
+
function calculateArcLabelPosition(arc, chartType) {
|
|
41475
|
+
const midAngle = (arc.startAngle + arc.endAngle) / 2;
|
|
41476
|
+
const radiusMultiplier = LABEL_CONFIG.arcRadiusMultiplier[chartType];
|
|
41477
|
+
let radius;
|
|
41478
|
+
if (chartType === 'doughnut') {
|
|
41479
|
+
radius = (arc.outerRadius + arc.innerRadius) / 2;
|
|
41480
|
+
}
|
|
41481
|
+
else {
|
|
41482
|
+
radius = arc.outerRadius * radiusMultiplier;
|
|
41483
|
+
}
|
|
41401
41484
|
return {
|
|
41402
|
-
|
|
41403
|
-
|
|
41485
|
+
x: arc.x + Math.cos(midAngle) * radius,
|
|
41486
|
+
y: arc.y + Math.sin(midAngle) * radius
|
|
41404
41487
|
};
|
|
41405
41488
|
}
|
|
41406
|
-
|
|
41407
|
-
|
|
41408
|
-
|
|
41489
|
+
// Utility functions
|
|
41490
|
+
function getBarChartOrientation(chart) {
|
|
41491
|
+
var _a, _b;
|
|
41492
|
+
const scales = chart.options.scales;
|
|
41409
41493
|
return {
|
|
41410
|
-
|
|
41411
|
-
|
|
41494
|
+
isVerticalReversed: ((_a = scales === null || scales === void 0 ? void 0 : scales.y) === null || _a === void 0 ? void 0 : _a.reverse) === true,
|
|
41495
|
+
isHorizontalReversed: ((_b = scales === null || scales === void 0 ? void 0 : scales.x) === null || _b === void 0 ? void 0 : _b.reverse) === true
|
|
41412
41496
|
};
|
|
41413
|
-
}
|
|
41414
|
-
function prepareText(ctx, fontSize, bgColor) {
|
|
41415
|
-
const textColor = getTextColor(bgColor || getColor('--chart-value-default-color', '#000'));
|
|
41416
|
-
ctx.font = `bold ${fontSize}px sans-serif`;
|
|
41417
|
-
ctx.textAlign = 'center';
|
|
41418
|
-
ctx.textBaseline = 'middle';
|
|
41419
|
-
ctx.fillStyle = textColor;
|
|
41420
41497
|
}
|
|
41421
41498
|
|
|
41422
41499
|
var index = /*#__PURE__*/Object.freeze({
|
|
@@ -41434,9 +41511,9 @@ class BaseChart extends DestroySubject {
|
|
|
41434
41511
|
this.injector = injector;
|
|
41435
41512
|
this._translateService = this.injector.get(TranslateService);
|
|
41436
41513
|
this._rebuildTriggerSub = new BehaviorSubject(false);
|
|
41437
|
-
this._dataSub = new ReplaySubject(null);
|
|
41438
41514
|
this._configSub = new ReplaySubject(null);
|
|
41439
41515
|
this._isInitialized = false;
|
|
41516
|
+
this._dataSub = new ReplaySubject(null);
|
|
41440
41517
|
this.onReady = new EventEmitter();
|
|
41441
41518
|
this._subscribeToLanguage();
|
|
41442
41519
|
}
|
|
@@ -41631,13 +41708,13 @@ class ChartManagerService {
|
|
|
41631
41708
|
});
|
|
41632
41709
|
this._charts.clear();
|
|
41633
41710
|
}
|
|
41634
|
-
printChart(id, label) {
|
|
41711
|
+
printChart(id, label, options = {}, plugins = []) {
|
|
41635
41712
|
return __awaiter(this, void 0, void 0, function* () {
|
|
41636
41713
|
const _chart = this._charts.get(id);
|
|
41637
41714
|
if (!_chart) {
|
|
41638
41715
|
return;
|
|
41639
41716
|
}
|
|
41640
|
-
const { chart, destroy: destroyTempChart } = yield this._createHiddenCanvasForExport(_chart, label);
|
|
41717
|
+
const { chart, destroy: destroyTempChart } = yield this._createHiddenCanvasForExport(_chart, label, options, plugins);
|
|
41641
41718
|
if (!chart) {
|
|
41642
41719
|
return;
|
|
41643
41720
|
}
|
|
@@ -41649,7 +41726,7 @@ class ChartManagerService {
|
|
|
41649
41726
|
destroyTempChart();
|
|
41650
41727
|
});
|
|
41651
41728
|
}
|
|
41652
|
-
_createHiddenCanvasForExport(chart, label) {
|
|
41729
|
+
_createHiddenCanvasForExport(chart, label, options = {}, plugins = []) {
|
|
41653
41730
|
const currentLang = this._translateService.currentLang;
|
|
41654
41731
|
return new Promise((resolve) => {
|
|
41655
41732
|
var _a;
|
|
@@ -41665,9 +41742,13 @@ class ChartManagerService {
|
|
|
41665
41742
|
const hiddenChart = new Chart(hiddenCanvas, {
|
|
41666
41743
|
type: (_a = chart.config) === null || _a === void 0 ? void 0 : _a.type,
|
|
41667
41744
|
data: chart.config.data,
|
|
41668
|
-
options:
|
|
41745
|
+
options: ___default.merge({}, chart.config.options, {
|
|
41746
|
+
animation: false,
|
|
41747
|
+
responsive: false,
|
|
41748
|
+
layout: {
|
|
41669
41749
|
padding: padding
|
|
41670
|
-
},
|
|
41750
|
+
},
|
|
41751
|
+
plugins: Object.assign(Object.assign({}, chart.config.options.plugins), { title: {
|
|
41671
41752
|
display: true,
|
|
41672
41753
|
text: label,
|
|
41673
41754
|
padding: {
|
|
@@ -41678,8 +41759,9 @@ class ChartManagerService {
|
|
|
41678
41759
|
display: true,
|
|
41679
41760
|
rtl: currentLang == 'ar',
|
|
41680
41761
|
position: currentLang == 'ar' ? 'right' : 'left'
|
|
41681
|
-
} })
|
|
41682
|
-
|
|
41762
|
+
} })
|
|
41763
|
+
}, options),
|
|
41764
|
+
plugins: ___default.merge([], [
|
|
41683
41765
|
chartDataLabels,
|
|
41684
41766
|
{
|
|
41685
41767
|
id: 'canvasBackgroundColor',
|
|
@@ -41704,7 +41786,7 @@ class ChartManagerService {
|
|
|
41704
41786
|
});
|
|
41705
41787
|
}
|
|
41706
41788
|
}
|
|
41707
|
-
]
|
|
41789
|
+
], plugins)
|
|
41708
41790
|
});
|
|
41709
41791
|
hiddenChart.render();
|
|
41710
41792
|
});
|
|
@@ -41728,7 +41810,7 @@ class ReportTransformService {
|
|
|
41728
41810
|
}
|
|
41729
41811
|
_extractDataFormats(data) {
|
|
41730
41812
|
const extractedData = ___default.flatMap(data, (item) => {
|
|
41731
|
-
if (Array.isArray(item === null || item === void 0 ? void 0 : item.datasource)) {
|
|
41813
|
+
if ('datasource' in item && Array.isArray(item === null || item === void 0 ? void 0 : item.datasource)) {
|
|
41732
41814
|
return ___default.filter(item.datasource, (source) => source.dataFormat);
|
|
41733
41815
|
}
|
|
41734
41816
|
return [];
|
|
@@ -42719,6 +42801,8 @@ class BaseReport extends DestroySubject {
|
|
|
42719
42801
|
constructor(injector) {
|
|
42720
42802
|
super();
|
|
42721
42803
|
this.injector = injector;
|
|
42804
|
+
this._translateService = this.injector.get(TranslateService);
|
|
42805
|
+
this._cdr = this.injector.get(ChangeDetectorRef);
|
|
42722
42806
|
this._configMapperService = this.injector.get(ReportConfigMapperService);
|
|
42723
42807
|
this._configSub = new BehaviorSubject(null);
|
|
42724
42808
|
this.config$ = this._configSub.asObservable();
|
|
@@ -42777,6 +42861,177 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
42777
42861
|
type: Output
|
|
42778
42862
|
}] } });
|
|
42779
42863
|
|
|
42864
|
+
class ReportsDialogService {
|
|
42865
|
+
constructor(injector) {
|
|
42866
|
+
this.injector = injector;
|
|
42867
|
+
this._translateService = this.injector.get(TranslateService);
|
|
42868
|
+
this._dialog = this.injector.get(MatDialog);
|
|
42869
|
+
}
|
|
42870
|
+
open(component, options) {
|
|
42871
|
+
const { config, data, criteria, direction } = options;
|
|
42872
|
+
const _a = (config === null || config === void 0 ? void 0 : config.dialog) || {}, { active, width, height, maxWidth } = _a, resetOptions = __rest(_a, ["active", "width", "height", "maxWidth"]);
|
|
42873
|
+
this._dialog.open(component, Object.assign(Object.assign({}, resetOptions), { width: width || '100%', height: height || '100%', maxWidth: maxWidth || '100%', direction: direction, data: {
|
|
42874
|
+
config: config,
|
|
42875
|
+
data: data,
|
|
42876
|
+
title: config.label,
|
|
42877
|
+
direction: direction,
|
|
42878
|
+
criteria: criteria
|
|
42879
|
+
} }));
|
|
42880
|
+
}
|
|
42881
|
+
}
|
|
42882
|
+
ReportsDialogService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ReportsDialogService, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
42883
|
+
ReportsDialogService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ReportsDialogService, providedIn: 'root' });
|
|
42884
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ReportsDialogService, decorators: [{
|
|
42885
|
+
type: Injectable,
|
|
42886
|
+
args: [{
|
|
42887
|
+
providedIn: 'root'
|
|
42888
|
+
}]
|
|
42889
|
+
}], ctorParameters: function () { return [{ type: i0.Injector }]; } });
|
|
42890
|
+
|
|
42891
|
+
class BaseGraphReport extends BaseReport {
|
|
42892
|
+
constructor() {
|
|
42893
|
+
super(...arguments);
|
|
42894
|
+
this._dialog = this.injector.get(ReportsDialogService);
|
|
42895
|
+
}
|
|
42896
|
+
openGraphDialog(component = GraphChartComponent) {
|
|
42897
|
+
this._dialog.open(component, {
|
|
42898
|
+
config: this.config,
|
|
42899
|
+
data: this.data,
|
|
42900
|
+
criteria: this.criteria,
|
|
42901
|
+
direction: this.direction
|
|
42902
|
+
});
|
|
42903
|
+
}
|
|
42904
|
+
}
|
|
42905
|
+
BaseGraphReport.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: BaseGraphReport, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
42906
|
+
BaseGraphReport.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: BaseGraphReport, usesInheritance: true, ngImport: i0 });
|
|
42907
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: BaseGraphReport, decorators: [{
|
|
42908
|
+
type: Directive
|
|
42909
|
+
}] });
|
|
42910
|
+
|
|
42911
|
+
class BaseCustomReport extends DestroySubject {
|
|
42912
|
+
constructor(injector) {
|
|
42913
|
+
super();
|
|
42914
|
+
this.injector = injector;
|
|
42915
|
+
this._chartHelperService = this.injector.get(ChartManagerService);
|
|
42916
|
+
this.direction = 'rtl';
|
|
42917
|
+
this._dataSub = new ReplaySubject(null);
|
|
42918
|
+
this._criteriaSub = new ReplaySubject(null);
|
|
42919
|
+
this.criteria$ = this._criteriaSub.asObservable();
|
|
42920
|
+
this._configSub = new BehaviorSubject(null);
|
|
42921
|
+
this.config$ = this._configSub.asObservable();
|
|
42922
|
+
}
|
|
42923
|
+
set data(data) {
|
|
42924
|
+
this._data = data;
|
|
42925
|
+
this._dataSub.next(data);
|
|
42926
|
+
}
|
|
42927
|
+
get data() {
|
|
42928
|
+
return this._data;
|
|
42929
|
+
}
|
|
42930
|
+
set criteria(value) {
|
|
42931
|
+
this._criteria = ___default.cloneDeep(value);
|
|
42932
|
+
this._criteriaSub.next(this._criteria);
|
|
42933
|
+
}
|
|
42934
|
+
get criteria() {
|
|
42935
|
+
return this._criteria;
|
|
42936
|
+
}
|
|
42937
|
+
set config(obj) {
|
|
42938
|
+
if (obj) {
|
|
42939
|
+
this._configSub.next(obj);
|
|
42940
|
+
}
|
|
42941
|
+
}
|
|
42942
|
+
get config() {
|
|
42943
|
+
return this._configSub.getValue();
|
|
42944
|
+
}
|
|
42945
|
+
chartReady(chart) {
|
|
42946
|
+
this.chart = chart;
|
|
42947
|
+
this._chartHelperService.setChart(chart);
|
|
42948
|
+
this._printListener = (event) => {
|
|
42949
|
+
this.chart.resize();
|
|
42950
|
+
};
|
|
42951
|
+
window.addEventListener('beforeprint', this._printListener);
|
|
42952
|
+
queueMicrotask(() => {
|
|
42953
|
+
this.chart.resize();
|
|
42954
|
+
});
|
|
42955
|
+
}
|
|
42956
|
+
}
|
|
42957
|
+
BaseCustomReport.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: BaseCustomReport, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Directive });
|
|
42958
|
+
BaseCustomReport.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: BaseCustomReport, inputs: { direction: "direction", definition: "definition", data: "data", criteria: "criteria", config: "config" }, usesInheritance: true, ngImport: i0 });
|
|
42959
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: BaseCustomReport, decorators: [{
|
|
42960
|
+
type: Directive
|
|
42961
|
+
}], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: { direction: [{
|
|
42962
|
+
type: Input
|
|
42963
|
+
}], definition: [{
|
|
42964
|
+
type: Input
|
|
42965
|
+
}], data: [{
|
|
42966
|
+
type: Input
|
|
42967
|
+
}], criteria: [{
|
|
42968
|
+
type: Input
|
|
42969
|
+
}], config: [{
|
|
42970
|
+
type: Input
|
|
42971
|
+
}] } });
|
|
42972
|
+
|
|
42973
|
+
class CustomChartComponent extends BaseCustomReport {
|
|
42974
|
+
constructor() {
|
|
42975
|
+
super(...arguments);
|
|
42976
|
+
this._registeredComponents = this.injector.get(CustomReportsRegistry);
|
|
42977
|
+
}
|
|
42978
|
+
ngOnInit() {
|
|
42979
|
+
var _a, _b;
|
|
42980
|
+
const componentType = this._registeredComponents.getComponent((_a = this.config) === null || _a === void 0 ? void 0 : _a.type);
|
|
42981
|
+
if (!componentType) {
|
|
42982
|
+
console.warn(`No component registered for type: ${(_b = this.config) === null || _b === void 0 ? void 0 : _b.type}`);
|
|
42983
|
+
return;
|
|
42984
|
+
}
|
|
42985
|
+
this._componentRef = this._registeredComponents.renderComponent(componentType.type, this.container);
|
|
42986
|
+
combineLatest([this._dataSub.asObservable(), this._configSub.asObservable(), this._criteriaSub.asObservable()])
|
|
42987
|
+
.pipe(takeUntil(this.destroy$))
|
|
42988
|
+
.subscribe((res) => {
|
|
42989
|
+
this._prepareComponent();
|
|
42990
|
+
});
|
|
42991
|
+
}
|
|
42992
|
+
ngOnChanges(changes) {
|
|
42993
|
+
if (!this._componentRef) {
|
|
42994
|
+
return;
|
|
42995
|
+
}
|
|
42996
|
+
Object.keys(changes).forEach((key) => {
|
|
42997
|
+
this._componentRef.instance[key] = changes[key].currentValue;
|
|
42998
|
+
});
|
|
42999
|
+
this._componentRef.changeDetectorRef.detectChanges();
|
|
43000
|
+
}
|
|
43001
|
+
ngOnDestroy() {
|
|
43002
|
+
if (this._componentRef) {
|
|
43003
|
+
this._componentRef.destroy();
|
|
43004
|
+
}
|
|
43005
|
+
}
|
|
43006
|
+
_prepareComponent() {
|
|
43007
|
+
const instance = this._componentRef.instance;
|
|
43008
|
+
instance.config = this.config;
|
|
43009
|
+
instance.criteria = this.criteria;
|
|
43010
|
+
instance.data = this.data;
|
|
43011
|
+
instance.direction = this.direction;
|
|
43012
|
+
this._componentRef.changeDetectorRef.detectChanges();
|
|
43013
|
+
}
|
|
43014
|
+
print() {
|
|
43015
|
+
const instance = this._componentRef.instance;
|
|
43016
|
+
if (instance) {
|
|
43017
|
+
instance.print();
|
|
43018
|
+
}
|
|
43019
|
+
}
|
|
43020
|
+
}
|
|
43021
|
+
CustomChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CustomChartComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
43022
|
+
CustomChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: CustomChartComponent, selector: "app-custom-chart", viewQueries: [{ propertyName: "container", first: true, predicate: ["dynamicContainer"], descendants: true, read: ViewContainerRef, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: '<ng-container #dynamicContainer></ng-container>', isInline: true, styles: [""] });
|
|
43023
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CustomChartComponent, decorators: [{
|
|
43024
|
+
type: Component,
|
|
43025
|
+
args: [{
|
|
43026
|
+
selector: 'app-custom-chart',
|
|
43027
|
+
template: '<ng-container #dynamicContainer></ng-container>',
|
|
43028
|
+
styleUrls: ['./custom-chart.component.scss']
|
|
43029
|
+
}]
|
|
43030
|
+
}], propDecorators: { container: [{
|
|
43031
|
+
type: ViewChild,
|
|
43032
|
+
args: ['dynamicContainer', { read: ViewContainerRef, static: true }]
|
|
43033
|
+
}] } });
|
|
43034
|
+
|
|
42780
43035
|
class ChartPanel {
|
|
42781
43036
|
}
|
|
42782
43037
|
ChartPanel.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ChartPanel, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
@@ -42979,6 +43234,54 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
42979
43234
|
type: Output
|
|
42980
43235
|
}] } });
|
|
42981
43236
|
|
|
43237
|
+
class GraphReportComponent extends BaseGraphReport {
|
|
43238
|
+
constructor() {
|
|
43239
|
+
super(...arguments);
|
|
43240
|
+
this.chartType$ = this.config$.pipe(map((config) => {
|
|
43241
|
+
var _a, _b;
|
|
43242
|
+
if (config.chart.type !== 'bar') {
|
|
43243
|
+
return config.chart.type;
|
|
43244
|
+
}
|
|
43245
|
+
return ((_b = (_a = config.chart) === null || _a === void 0 ? void 0 : _a.options) === null || _b === void 0 ? void 0 : _b.indexAxis) == 'y' ? CHARTS_TYPES.horizontalBar : CHARTS_TYPES.verticalBar;
|
|
43246
|
+
}));
|
|
43247
|
+
}
|
|
43248
|
+
changeChartType(type) {
|
|
43249
|
+
var _a, _b;
|
|
43250
|
+
const _c = this._configSub.getValue(), { chart } = _c, config = __rest(_c, ["chart"]);
|
|
43251
|
+
const { options } = chart, chartConfig = __rest(chart, ["options"]);
|
|
43252
|
+
if (config.mode !== REPORT_MODE.graph) {
|
|
43253
|
+
return;
|
|
43254
|
+
}
|
|
43255
|
+
const barTypes = {
|
|
43256
|
+
[CHARTS_TYPES.horizontalBar]: 'bar',
|
|
43257
|
+
[CHARTS_TYPES.verticalBar]: 'bar'
|
|
43258
|
+
};
|
|
43259
|
+
const chartType = (_a = barTypes[type]) !== null && _a !== void 0 ? _a : type;
|
|
43260
|
+
this._configSub.next(Object.assign(Object.assign({}, config), { chart: Object.assign(Object.assign({}, chartConfig), { type: chartType, options: (_b = chart.overrides) === null || _b === void 0 ? void 0 : _b[type] }) }));
|
|
43261
|
+
}
|
|
43262
|
+
printChart() {
|
|
43263
|
+
if (this.graphChartComponent) {
|
|
43264
|
+
this.graphChartComponent.printChart();
|
|
43265
|
+
}
|
|
43266
|
+
}
|
|
43267
|
+
}
|
|
43268
|
+
GraphReportComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: GraphReportComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
43269
|
+
GraphReportComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: GraphReportComponent, selector: "app-graph-report", host: { classAttribute: "graph-report flex flex-col flex-grow" }, viewQueries: [{ propertyName: "graphChartComponent", first: true, predicate: ["graphChart"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<chart-panel *ngIf=\"config$ | async as config\" class=\"ndf-report chart-report\">\r\n\t<chart-panel-header class=\"ndf-report__header mb-3\">\r\n\t\t<span>\r\n\t\t\t{{ config.label | translate }}\r\n\t\t</span>\r\n\t\t<button\r\n\t\t\t*ngIf=\"config?.dialog?.active\"\r\n\t\t\tclass=\"dialog-button print:hidden\"\r\n\t\t\t(click)=\"openGraphDialog()\"\r\n\t\t\t[matTooltip]=\"'REPORTS.fullscreen' | translate\"\r\n\t\t>\r\n\t\t\t<mat-icon>fullscreen</mat-icon>\r\n\t\t</button>\r\n\t</chart-panel-header>\r\n\r\n\t<app-graph-chart\r\n\t\t#graphChart\r\n\t\tclass=\"ndf-report__content graph-chart\"\r\n\t\t[config]=\"config\"\r\n\t\t[data]=\"data\"\r\n\t></app-graph-chart>\r\n\r\n\t<chart-panel-footer class=\"ndf-report__footer flex-wrap\">\r\n\t\t<app-report-actions\r\n\t\t\t[config]=\"config\"\r\n\t\t\t(print)=\"printChart()\"\r\n\t\t\t(navigate)=\"navigate()\"\r\n\t\t\t(open)=\"onOpen.emit(null)\"\r\n\t\t></app-report-actions>\r\n\r\n\t\t<chart-type-selector\r\n [config]=\"config?.typeConfig\"\r\n\t\t\t[direction]=\"direction\"\r\n\t\t\t[type]=\"chartType$ | async\"\r\n\t\t\t(typeChange)=\"changeChartType($event)\"\r\n\t\t></chart-type-selector>\r\n\t</chart-panel-footer>\r\n</chart-panel>\r\n", styles: [".ndf-report{display:flex;flex-direction:column;min-width:0;max-width:100%;flex-grow:1}.ndf-report__content{position:relative;padding-block:.5rem;flex-grow:1;min-width:0;max-width:100%}.chart-actions{border:var(--chart-actions-border, 1px solid var(--border-color))}.chart-actions__item{background:var(--chart-actions-background, transparent);color:var(--chart-actions-color, currentColor);box-shadow:var(--chart-actions-shadow, unset);width:var(--chart-actions-width, 35px);height:var(--chart-actions-height, 35px);border-radius:var(--chart-actions-border-radius, 4px);flex-grow:1;display:grid;place-items:center}.chart-actions__item .mat-icon{color:var(--main-color, currentColor)}.chart-actions__item:hover{--chart-actions-shadow: var(--chart-actions-hover-shadow, 0 0 0 1px var(--main-color))}.chart-actions__item.selected{--chart-actions-background: var(--chart-actions-active-background, var(--main-color));--chart-actions-color: var(--chart-actions-active-color, var(--main-hover))}.chart-actions__item.selected .mat-icon{color:currentColor!important}@media print{.chart-actions{display:none}}:host{min-width:0;max-width:100%}\n"], components: [{ type: ChartPanel, selector: "chart-panel" }, { type: ChartPanelHeaderComponent, selector: "chart-panel-header" }, { type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: GraphChartComponent, selector: "app-graph-chart" }, { type: ChartPanelFooterComponent, selector: "chart-panel-footer" }, { type: ReportActionsComponent, selector: "app-report-actions", inputs: ["config"], outputs: ["navigate", "open", "print"] }, { type: ChartTypeSelectorComponent, selector: "chart-type-selector", inputs: ["direction", "config", "type"], outputs: ["typeChange"] }], directives: [{ type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltipPosition", "matTooltipDisabled", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }], pipes: { "async": i4$1.AsyncPipe, "translate": i1.TranslatePipe } });
|
|
43270
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: GraphReportComponent, decorators: [{
|
|
43271
|
+
type: Component,
|
|
43272
|
+
args: [{
|
|
43273
|
+
selector: 'app-graph-report',
|
|
43274
|
+
templateUrl: './graph-report.component.html',
|
|
43275
|
+
styleUrls: ['./graph-report.component.scss'],
|
|
43276
|
+
host: {
|
|
43277
|
+
class: 'graph-report flex flex-col flex-grow'
|
|
43278
|
+
}
|
|
43279
|
+
}]
|
|
43280
|
+
}], propDecorators: { graphChartComponent: [{
|
|
43281
|
+
type: ViewChild,
|
|
43282
|
+
args: ['graphChart']
|
|
43283
|
+
}] } });
|
|
43284
|
+
|
|
42982
43285
|
class TimeGroupSelectorComponent {
|
|
42983
43286
|
constructor() {
|
|
42984
43287
|
this.groups = this._prepareGroups();
|
|
@@ -43120,82 +43423,35 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
43120
43423
|
args: ['graphChart']
|
|
43121
43424
|
}] } });
|
|
43122
43425
|
|
|
43123
|
-
class
|
|
43124
|
-
constructor() {
|
|
43125
|
-
|
|
43126
|
-
this.
|
|
43127
|
-
this._cdr = this.injector.get(ChangeDetectorRef);
|
|
43128
|
-
this._dialog = this.injector.get(MatDialog);
|
|
43129
|
-
}
|
|
43130
|
-
openGraphDialog(_options) {
|
|
43131
|
-
var _a;
|
|
43132
|
-
const { config, data, component, criteria } = _options || {
|
|
43133
|
-
config: this.config,
|
|
43134
|
-
data: this.data,
|
|
43135
|
-
component: GraphDialogComponent
|
|
43136
|
-
};
|
|
43137
|
-
const _b = ((_a = this.config) === null || _a === void 0 ? void 0 : _a.dialog) || {}, { active, width, height, maxWidth } = _b, options = __rest(_b, ["active", "width", "height", "maxWidth"]);
|
|
43138
|
-
this._dialog.open(component, Object.assign(Object.assign({}, options), { width: width || '100%', height: height || '100%', maxWidth: maxWidth || '100%', direction: this.direction, data: {
|
|
43139
|
-
config: config,
|
|
43140
|
-
data: data,
|
|
43141
|
-
title: config.label,
|
|
43142
|
-
direction: this.direction,
|
|
43143
|
-
criteria: criteria
|
|
43144
|
-
} }));
|
|
43145
|
-
}
|
|
43146
|
-
}
|
|
43147
|
-
BaseGraphReport.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: BaseGraphReport, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
43148
|
-
BaseGraphReport.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: BaseGraphReport, usesInheritance: true, ngImport: i0 });
|
|
43149
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: BaseGraphReport, decorators: [{
|
|
43150
|
-
type: Directive
|
|
43151
|
-
}] });
|
|
43152
|
-
|
|
43153
|
-
class GraphReportComponent extends BaseGraphReport {
|
|
43154
|
-
constructor() {
|
|
43155
|
-
super(...arguments);
|
|
43156
|
-
this.chartType$ = this.config$.pipe(map((config) => {
|
|
43157
|
-
var _a, _b;
|
|
43158
|
-
if (config.chart.type !== 'bar') {
|
|
43159
|
-
return config.chart.type;
|
|
43160
|
-
}
|
|
43161
|
-
return ((_b = (_a = config.chart) === null || _a === void 0 ? void 0 : _a.options) === null || _b === void 0 ? void 0 : _b.indexAxis) == 'y' ? CHARTS_TYPES.horizontalBar : CHARTS_TYPES.verticalBar;
|
|
43162
|
-
}));
|
|
43426
|
+
class CustomChartDialogComponent {
|
|
43427
|
+
constructor(dialogRef, chart) {
|
|
43428
|
+
this.dialogRef = dialogRef;
|
|
43429
|
+
this.chart = chart;
|
|
43163
43430
|
}
|
|
43164
|
-
|
|
43165
|
-
|
|
43166
|
-
const _c = this._configSub.getValue(), { chart } = _c, config = __rest(_c, ["chart"]);
|
|
43167
|
-
const { options } = chart, chartConfig = __rest(chart, ["options"]);
|
|
43168
|
-
if (config.mode !== REPORT_MODE.graph) {
|
|
43169
|
-
return;
|
|
43170
|
-
}
|
|
43171
|
-
const barTypes = {
|
|
43172
|
-
[CHARTS_TYPES.horizontalBar]: 'bar',
|
|
43173
|
-
[CHARTS_TYPES.verticalBar]: 'bar'
|
|
43174
|
-
};
|
|
43175
|
-
const chartType = (_a = barTypes[type]) !== null && _a !== void 0 ? _a : type;
|
|
43176
|
-
this._configSub.next(Object.assign(Object.assign({}, config), { chart: Object.assign(Object.assign({}, chartConfig), { type: chartType, options: (_b = chart.overrides) === null || _b === void 0 ? void 0 : _b[type] }) }));
|
|
43431
|
+
close() {
|
|
43432
|
+
this.dialogRef.close();
|
|
43177
43433
|
}
|
|
43178
43434
|
printChart() {
|
|
43179
|
-
if (this.
|
|
43180
|
-
this.
|
|
43435
|
+
if (this.customChartComponent) {
|
|
43436
|
+
this.customChartComponent.print();
|
|
43181
43437
|
}
|
|
43182
43438
|
}
|
|
43183
43439
|
}
|
|
43184
|
-
|
|
43185
|
-
|
|
43186
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type:
|
|
43440
|
+
CustomChartDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CustomChartDialogComponent, deps: [{ token: i1$3.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
|
|
43441
|
+
CustomChartDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: CustomChartDialogComponent, selector: "app-custom-chart-dialog", viewQueries: [{ propertyName: "customChartComponent", first: true, predicate: ["customChart"], descendants: true }], ngImport: i0, template: "<ndf-nuxeo-dialog dialogTitle=\"{{ chart?.title | translate }}\">\r\n\t<ng-template #contentTemplate>\r\n\t\t<app-custom-chart\r\n\t\t\t#customChart\r\n\t\t\tclass=\"ndf-report__content graph-chart\"\r\n\t\t\t[config]=\"config\"\r\n\t\t\t[data]=\"data\"\r\n\t\t\t[criteria]=\"criteria\"\r\n\t\t\t[direction]=\"direction\"\r\n\t\t></app-custom-chart>\r\n\t</ng-template>\r\n\t<ng-template #footerTemplate>\r\n\t\t<div class=\"flex gap-x-4\">\r\n\t\t\t<div class=\"chart-actions flex items-center rounded-lg gap-2 p-1\">\r\n\t\t\t\t<button\r\n\t\t\t\t\tclass=\"print-button chart-actions__item rounded\"\r\n\t\t\t\t\t(click)=\"printChart()\"\r\n\t\t\t\t\t[matTooltip]=\"'REPORTS.print' | translate\"\r\n\t\t\t\t\t*ngIf=\"chart.config?.print\"\r\n\t\t\t\t>\r\n\t\t\t\t\t<mat-icon>print</mat-icon>\r\n\t\t\t\t</button>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</ng-template>\r\n</ndf-nuxeo-dialog>\r\n", styles: [""], components: [{ type: NdfNuxeoDialog, selector: "ndf-nuxeo-dialog", inputs: ["dialogTitle", "subTitle", "panelClass", "loaderMode"] }, { type: CustomChartComponent, selector: "app-custom-chart" }, { type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltipPosition", "matTooltipDisabled", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }], pipes: { "translate": i1.TranslatePipe } });
|
|
43442
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CustomChartDialogComponent, decorators: [{
|
|
43187
43443
|
type: Component,
|
|
43188
43444
|
args: [{
|
|
43189
|
-
selector: 'app-
|
|
43190
|
-
templateUrl: './
|
|
43191
|
-
styleUrls: ['./
|
|
43192
|
-
host: {
|
|
43193
|
-
class: 'graph-report flex flex-col flex-grow'
|
|
43194
|
-
}
|
|
43445
|
+
selector: 'app-custom-chart-dialog',
|
|
43446
|
+
templateUrl: './custom-chart-dialog.component.html',
|
|
43447
|
+
styleUrls: ['./custom-chart-dialog.component.scss']
|
|
43195
43448
|
}]
|
|
43196
|
-
}],
|
|
43449
|
+
}], ctorParameters: function () { return [{ type: i1$3.MatDialogRef }, { type: undefined, decorators: [{
|
|
43450
|
+
type: Inject,
|
|
43451
|
+
args: [MAT_DIALOG_DATA]
|
|
43452
|
+
}] }]; }, propDecorators: { customChartComponent: [{
|
|
43197
43453
|
type: ViewChild,
|
|
43198
|
-
args: ['
|
|
43454
|
+
args: ['customChart']
|
|
43199
43455
|
}] } });
|
|
43200
43456
|
|
|
43201
43457
|
class DynamicTimelineReportComponent extends BaseGraphReport {
|
|
@@ -43227,11 +43483,7 @@ class DynamicTimelineReportComponent extends BaseGraphReport {
|
|
|
43227
43483
|
this._timelineService.changeGroup(group);
|
|
43228
43484
|
}
|
|
43229
43485
|
openTimelineDialog() {
|
|
43230
|
-
this.openGraphDialog(
|
|
43231
|
-
config: this.config,
|
|
43232
|
-
data: this.data,
|
|
43233
|
-
component: TimelineDialogComponent
|
|
43234
|
-
});
|
|
43486
|
+
this.openGraphDialog(TimelineDialogComponent);
|
|
43235
43487
|
}
|
|
43236
43488
|
openDetails() {
|
|
43237
43489
|
this.onOpen.emit(this._timelineService.payload);
|
|
@@ -43256,94 +43508,27 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
43256
43508
|
args: ['graphChart']
|
|
43257
43509
|
}] } });
|
|
43258
43510
|
|
|
43259
|
-
class BaseCustomReport extends DestroySubject {
|
|
43260
|
-
constructor(injector) {
|
|
43261
|
-
super();
|
|
43262
|
-
this.injector = injector;
|
|
43263
|
-
this._chartHelperService = this.injector.get(ChartManagerService);
|
|
43264
|
-
this.direction = 'rtl';
|
|
43265
|
-
this._criteriaSub = new ReplaySubject(null);
|
|
43266
|
-
this.criteria$ = this._criteriaSub.asObservable();
|
|
43267
|
-
this._configSub = new BehaviorSubject(null);
|
|
43268
|
-
this.config$ = this._configSub.asObservable();
|
|
43269
|
-
}
|
|
43270
|
-
set criteria(value) {
|
|
43271
|
-
this._criteria = ___default.cloneDeep(value);
|
|
43272
|
-
this._criteriaSub.next(this._criteria);
|
|
43273
|
-
}
|
|
43274
|
-
set config(obj) {
|
|
43275
|
-
if (obj) {
|
|
43276
|
-
this._configSub.next(obj);
|
|
43277
|
-
}
|
|
43278
|
-
}
|
|
43279
|
-
get config() {
|
|
43280
|
-
return this._configSub.getValue();
|
|
43281
|
-
}
|
|
43282
|
-
chartReady(chart) {
|
|
43283
|
-
this.chart = chart;
|
|
43284
|
-
this._chartHelperService.setChart(chart);
|
|
43285
|
-
this._printListener = (event) => {
|
|
43286
|
-
this.chart.resize();
|
|
43287
|
-
};
|
|
43288
|
-
window.addEventListener('beforeprint', this._printListener);
|
|
43289
|
-
queueMicrotask(() => {
|
|
43290
|
-
this.chart.resize();
|
|
43291
|
-
});
|
|
43292
|
-
}
|
|
43293
|
-
}
|
|
43294
|
-
BaseCustomReport.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: BaseCustomReport, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Directive });
|
|
43295
|
-
BaseCustomReport.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: BaseCustomReport, inputs: { direction: "direction", data: "data", criteria: "criteria", config: "config" }, usesInheritance: true, ngImport: i0 });
|
|
43296
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: BaseCustomReport, decorators: [{
|
|
43297
|
-
type: Directive
|
|
43298
|
-
}], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: { direction: [{
|
|
43299
|
-
type: Input
|
|
43300
|
-
}], data: [{
|
|
43301
|
-
type: Input
|
|
43302
|
-
}], criteria: [{
|
|
43303
|
-
type: Input
|
|
43304
|
-
}], config: [{
|
|
43305
|
-
type: Input
|
|
43306
|
-
}] } });
|
|
43307
|
-
|
|
43308
43511
|
class CustomReportComponent extends BaseReport {
|
|
43309
43512
|
constructor() {
|
|
43310
43513
|
super(...arguments);
|
|
43311
|
-
this.
|
|
43514
|
+
this._dialog = this.injector.get(ReportsDialogService);
|
|
43312
43515
|
}
|
|
43313
|
-
|
|
43314
|
-
|
|
43315
|
-
|
|
43316
|
-
if (!componentType) {
|
|
43317
|
-
console.warn(`No component registered for type: ${(_b = this.config) === null || _b === void 0 ? void 0 : _b.type}`);
|
|
43318
|
-
return;
|
|
43516
|
+
printChart() {
|
|
43517
|
+
if (this.customChartComponent) {
|
|
43518
|
+
this.customChartComponent.print();
|
|
43319
43519
|
}
|
|
43320
|
-
this._componentRef = this._registeredComponents.renderComponent(componentType.type, this.container);
|
|
43321
|
-
this._prepareComponent();
|
|
43322
43520
|
}
|
|
43323
|
-
|
|
43324
|
-
|
|
43325
|
-
|
|
43326
|
-
|
|
43327
|
-
|
|
43328
|
-
this.
|
|
43521
|
+
openDialog() {
|
|
43522
|
+
this._dialog.open(CustomChartDialogComponent, {
|
|
43523
|
+
config: this.config,
|
|
43524
|
+
data: this.data,
|
|
43525
|
+
criteria: this.criteria,
|
|
43526
|
+
direction: this.direction
|
|
43329
43527
|
});
|
|
43330
|
-
this._componentRef.changeDetectorRef.markForCheck();
|
|
43331
|
-
}
|
|
43332
|
-
ngOnDestroy() {
|
|
43333
|
-
if (this._componentRef) {
|
|
43334
|
-
this._componentRef.destroy();
|
|
43335
|
-
}
|
|
43336
|
-
}
|
|
43337
|
-
_prepareComponent() {
|
|
43338
|
-
const instance = this._componentRef.instance;
|
|
43339
|
-
instance.config = this.config;
|
|
43340
|
-
instance.criteria = this.criteria;
|
|
43341
|
-
instance.data = this.data;
|
|
43342
|
-
instance.direction = this.direction;
|
|
43343
43528
|
}
|
|
43344
43529
|
}
|
|
43345
43530
|
CustomReportComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CustomReportComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
43346
|
-
CustomReportComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: CustomReportComponent, selector: "app-custom-report", host: { classAttribute: "custom-report flex flex-col flex-grow" }, viewQueries: [{ propertyName: "
|
|
43531
|
+
CustomReportComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: CustomReportComponent, selector: "app-custom-report", host: { classAttribute: "custom-report flex flex-col flex-grow" }, viewQueries: [{ propertyName: "customChartComponent", first: true, predicate: ["customChart"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<chart-panel *ngIf=\"config$ | async as config\" class=\"ndf-report chart-report\">\r\n\t<chart-panel-header class=\"ndf-report__header mb-3\">\r\n\t\t<span>\r\n\t\t\t{{ config?.label | translate }}\r\n\t\t</span>\r\n\t\t<button\r\n\t\t\t*ngIf=\"config?.dialog?.active\"\r\n\t\t\tclass=\"dialog-button print:hidden\"\r\n\t\t\t(click)=\"openDialog()\"\r\n\t\t\t[matTooltip]=\"'REPORTS.fullscreen' | translate\"\r\n\t\t>\r\n\t\t\t<mat-icon>fullscreen</mat-icon>\r\n\t\t</button>\r\n\t</chart-panel-header>\r\n\r\n\t<app-custom-chart\r\n\t\t#customChart\r\n\t\tclass=\"ndf-report__content graph-chart\"\r\n\t\t[config]=\"config\"\r\n\t\t[data]=\"data\"\r\n\t\t[criteria]=\"criteria\"\r\n\t\t[direction]=\"direction\"\r\n\t></app-custom-chart>\r\n\r\n\t<chart-panel-footer class=\"ndf-report__footer flex-wrap\">\r\n\t\t<app-report-actions\r\n\t\t\t[config]=\"config\"\r\n\t\t\t(print)=\"printChart()\"\r\n\t\t\t(navigate)=\"navigate()\"\r\n\t\t\t(open)=\"onOpen.emit(null)\"\r\n\t\t></app-report-actions>\r\n\t</chart-panel-footer>\r\n</chart-panel>\r\n", styles: [""], components: [{ type: ChartPanel, selector: "chart-panel" }, { type: ChartPanelHeaderComponent, selector: "chart-panel-header" }, { type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: CustomChartComponent, selector: "app-custom-chart" }, { type: ChartPanelFooterComponent, selector: "chart-panel-footer" }, { type: ReportActionsComponent, selector: "app-report-actions", inputs: ["config"], outputs: ["navigate", "open", "print"] }], directives: [{ type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltipPosition", "matTooltipDisabled", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }], pipes: { "async": i4$1.AsyncPipe, "translate": i1.TranslatePipe } });
|
|
43347
43532
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CustomReportComponent, decorators: [{
|
|
43348
43533
|
type: Component,
|
|
43349
43534
|
args: [{
|
|
@@ -43354,9 +43539,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
43354
43539
|
class: 'custom-report flex flex-col flex-grow'
|
|
43355
43540
|
}
|
|
43356
43541
|
}]
|
|
43357
|
-
}], propDecorators: {
|
|
43542
|
+
}], propDecorators: { customChartComponent: [{
|
|
43358
43543
|
type: ViewChild,
|
|
43359
|
-
args: ['
|
|
43544
|
+
args: ['customChart']
|
|
43360
43545
|
}] } });
|
|
43361
43546
|
|
|
43362
43547
|
function mapToNdfTableConfig(report, details) {
|
|
@@ -43413,7 +43598,7 @@ class NdfReportComponent extends DestroySubject {
|
|
|
43413
43598
|
}
|
|
43414
43599
|
}
|
|
43415
43600
|
NdfReportComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NdfReportComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
43416
|
-
NdfReportComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: NdfReportComponent, selector: "app-ndf-report", inputs: { config: "config", direction: "direction", data: "data", criteria: "criteria" }, outputs: { onNavigate: "onNavigate", onOpen: "onOpen" }, usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"config\">\r\n\t<ng-container [ngSwitch]=\"config.mode\">\r\n\t\t<app-graph-report\r\n\t\t\t*ngSwitchCase=\"reportModes.graph\"\r\n\t\t\t[definition]=\"config\"\r\n\t\t\t[data]=\"data\"\r\n
|
|
43601
|
+
NdfReportComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: NdfReportComponent, selector: "app-ndf-report", inputs: { config: "config", direction: "direction", data: "data", criteria: "criteria" }, outputs: { onNavigate: "onNavigate", onOpen: "onOpen" }, usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"config\">\r\n\t<ng-container [ngSwitch]=\"config.mode\">\r\n\r\n\t\t<app-graph-report\r\n\t\t\t*ngSwitchCase=\"reportModes.graph\"\r\n\t\t\t[definition]=\"config\"\r\n\t\t\t[data]=\"data\"\r\n\t\t\t[criteria]=\"criteria\"\r\n\t\t\t[direction]=\"direction\"\r\n\t\t\t(onNavigate)=\"onNavigate.emit($event)\"\r\n\t\t\t(onOpen)=\"onOpen.emit($event)\"\r\n\t\t></app-graph-report>\r\n\r\n\t\t<app-dynamic-timeline-report\r\n\t\t\t*ngSwitchCase=\"reportModes.dynamicLine\"\r\n\t\t\t[definition]=\"config\"\r\n\t\t\t[data]=\"data\"\r\n\t\t\t[criteria]=\"criteria\"\r\n\t\t\t[direction]=\"direction\"\r\n\t\t\t(onOpen)=\"onOpen.emit($event)\"\r\n\t\t></app-dynamic-timeline-report>\r\n\r\n\t\t<app-digit-report\r\n\t\t\t*ngSwitchCase=\"reportModes.digit\"\r\n\t\t\t[definition]=\"config\"\r\n\t\t\t[data]=\"data\"\r\n\t\t\t[criteria]=\"criteria\"\r\n\t\t\t[direction]=\"direction\"\r\n\t\t\t(onOpen)=\"onOpen.emit($event)\"\r\n\t\t></app-digit-report>\r\n\r\n\t\t<app-custom-report\r\n\t\t\t*ngSwitchCase=\"reportModes.custom\"\r\n\t\t\t[definition]=\"config\"\r\n\t\t\t[data]=\"data\"\r\n\t\t\t[criteria]=\"criteria\"\r\n\t\t\t[direction]=\"direction\"\r\n\t\t\t(onOpen)=\"onOpen.emit($event)\"\r\n\t\t>\r\n\t\t</app-custom-report>\r\n\t</ng-container>\r\n</ng-container>\r\n", styles: [".ndf-report{display:flex;flex-direction:column;min-width:0;max-width:100%;flex-grow:1}.ndf-report__content{position:relative;padding-block:.5rem;flex-grow:1;min-width:0;max-width:100%}.chart-actions{border:var(--chart-actions-border, 1px solid var(--border-color))}.chart-actions__item{background:var(--chart-actions-background, transparent);color:var(--chart-actions-color, currentColor);box-shadow:var(--chart-actions-shadow, unset);width:var(--chart-actions-width, 35px);height:var(--chart-actions-height, 35px);border-radius:var(--chart-actions-border-radius, 4px);flex-grow:1;display:grid;place-items:center}.chart-actions__item .mat-icon{color:var(--main-color, currentColor)}.chart-actions__item:hover{--chart-actions-shadow: var(--chart-actions-hover-shadow, 0 0 0 1px var(--main-color))}.chart-actions__item.selected{--chart-actions-background: var(--chart-actions-active-background, var(--main-color));--chart-actions-color: var(--chart-actions-active-color, var(--main-hover))}.chart-actions__item.selected .mat-icon{color:currentColor!important}@media print{.chart-actions{display:none}}\n"], components: [{ type: GraphReportComponent, selector: "app-graph-report" }, { type: DynamicTimelineReportComponent, selector: "app-dynamic-timeline-report" }, { type: DigitReportComponent, selector: "app-digit-report" }, { type: CustomReportComponent, selector: "app-custom-report" }], directives: [{ type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4$1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i4$1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
43417
43602
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NdfReportComponent, decorators: [{
|
|
43418
43603
|
type: Component,
|
|
43419
43604
|
args: [{
|
|
@@ -43692,7 +43877,7 @@ class NdfReportsComponent extends DestroySubject {
|
|
|
43692
43877
|
}
|
|
43693
43878
|
}
|
|
43694
43879
|
NdfReportsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NdfReportsComponent, deps: [{ token: i1.TranslateService }, { token: FiltersMapperService }, { token: NdfReportsService }, { token: ChartManagerService }, { token: ReportTransformService }, { token: i0.ChangeDetectorRef }, { token: FilterQueryService }, { token: ReportsStateService }, { token: i1$5.Router }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
43695
|
-
NdfReportsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: NdfReportsComponent, selector: "app-ndf-reports", inputs: { jsonEditorEnabled: "jsonEditorEnabled", reportsKey: "reportsKey", navigateRoute: "navigateRoute", config: "config" }, outputs: { onQueryChange: "onQueryChange" }, host: { properties: { "dir": "direction" }, classAttribute: "ndf-reports" }, viewQueries: [{ propertyName: "fluidDirective", first: true, predicate: FluidHeightDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\r\n\t*ngIf=\"reportsData$ | async as reports\"\r\n\tclass=\"ndf-reports__container\"\r\n\t[class.panel-opened]=\"isPanelOpened && filtersConfig\"\r\n\t[dir]=\"direction\"\r\n\tndfFluidHeight\r\n>\r\n\t<div class=\"ndf-reports__panel print:hidden\" *ngIf=\"!!filtersConfig?.fields?.length\">\r\n\t\t<app-filters-panel\r\n\t\t\t[fields]=\"filtersConfig?.fields\"\r\n\t\t\t[aggregations]=\"aggregations\"\r\n\t\t\t(filterChanged)=\"filterChanged($event)\"\r\n\t\t\t[activeQuery]=\"activeFiltersQuery$ | async\"\r\n\t\t\tclass=\"ndf-reports__filters\"\r\n\t\t></app-filters-panel>\r\n\t</div>\r\n\r\n\t<div class=\"ndf-reports__content\" (scrolled)=\"onContentScroll($event)\">\r\n\t\t<div class=\"ndf-reports__header flex pt-4 print:hidden\">\r\n\t\t\t<button mat-stroked-button class=\"toggle-button\" (click)=\"togglePanel()\">\r\n\t\t\t\t<mat-icon> filter_alt</mat-icon>\r\n\t\t\t</button>\r\n\t\t\t<app-editor-button\r\n\t\t\t\t*ngIf=\"jsonEditorEnabled && reportsKey\"\r\n\t\t\t\t[key]=\"reportsKey\"\r\n\t\t\t\t[type]=\"editorType\"\r\n\t\t\t></app-editor-button>\r\n\t\t\t<button mat-stroked-button *ngIf=\"config?.options?.print\" class=\"print-button\" (click)=\"printAll()\">\r\n\t\t\t\t<mat-icon> print</mat-icon>\r\n\t\t\t</button>\r\n\t\t</div>\r\n\t\t<mat-spinner *ngIf=\"isLoadingResult\" class=\"mt-5 mx-auto\" [diameter]=\"48\"></mat-spinner>\r\n\r\n\t\t<div class=\"reports-grid\" *ngIf=\"!isLoadingResult\">\r\n\t\t\t<app-ndf-report\r\n\t\t\t\t*ngFor=\"let config of reportConfig.items; trackBy: trackByFn\"\r\n\t\t\t\t[config]=\"config\"\r\n\t\t\t\t[data]=\"reports?.response\"\r\n\t\t\t\t[criteria]=\"filtersParams$ | async\"\r\n\t\t\t\t[direction]=\"direction\"\r\n\t\t\t\t[attr.data-width]=\"config?.layout?.width || 4\"\r\n\t\t\t\t[attr.data-height]=\"config?.layout?.height || 'auto'\"\r\n\t\t\t\t[attr.data-start-column]=\"config?.layout?.columnPosition || 'auto'\"\r\n\t\t\t\t[attr.data-start-row]=\"config?.layout?.rowPosition || 'auto'\"\r\n\t\t\t\t[class.wide]=\"config?.layout?.width >= 6\"\r\n\t\t\t\tclass=\"reports-grid__item {{ config?.layout?.styleClass }} \"\r\n\t\t\t\t(onNavigate)=\"onNavigate($event)\"\r\n\t\t\t\t(onOpen)=\"openReportDetails($event, config)\"\r\n\t\t\t></app-ndf-report>\r\n\t\t</div>\r\n\t</div>\r\n\t<div\r\n\t\tclass=\"ndf-reports__details print:hidden\"\r\n\t\t[class.opened]=\"showDetails\"\r\n\t\t[@slideInOut]=\"showDetails ? 'open' : 'closed'\"\r\n\t\t(@slideInOut.done)=\"onDetailsAnimationEnd($event)\"\r\n\t>\r\n\t\t<app-ndf-table\r\n\t\t\t*ngIf=\"reportDetails$ | async as report\"\r\n\t\t\t[config]=\"report.config\"\r\n\t\t\t[activeQuery]=\"activeFiltersQuery$ | async\"\r\n\t\t\t[customCriteria]=\"filtersParams$ | async\"\r\n\t\t>\r\n\t\t\t<ng-template searchTableTemplate>\r\n\t\t\t\t<div class=\"ndf-reports__details__header flex gap-2\">\r\n\t\t\t\t\t<button mat-stroked-button class=\"toggle-button\" (click)=\"togglePanel()\">\r\n\t\t\t\t\t\t<mat-icon> filter_alt</mat-icon>\r\n\t\t\t\t\t</button>\r\n\t\t\t\t\t<button mat-stroked-button class=\"close-button\" (click)=\"closeDetailsPanel()\">\r\n\t\t\t\t\t\t<mat-icon> close</mat-icon>\r\n\t\t\t\t\t</button>\r\n\t\t\t\t</div>\r\n\t\t\t\t<h3>\r\n\t\t\t\t\t{{ report.label | translate }}\r\n\t\t\t\t</h3>\r\n\t\t\t</ng-template>\r\n\t\t</app-ndf-table>\r\n\t</div>\r\n</div>\r\n", styles: [":host{padding-inline:var(--ndf-reports-inline-padding, 0);padding-block:var(--ndf-reports-block-padding, .5rem 0);height:100%;position:relative;display:flex;flex-direction:column;background-color:var(--ndf-reports-background, #fff);box-sizing:border-box;max-width:100%;flex:0 0 100%}:host:before,:host:after{box-sizing:border-box}:host[dir=ltr]{--ndf-reports-panel-translateX: -100%;--ndf-reports-details-translateX: 100%}.ndf-reports__header{background-color:var(--ndf-reports-background, #fff);flex-direction:var(--ndf-reports-header-direction, row);justify-content:var(--ndf-reports-header-justify, space-between);align-items:var(--ndf-reports-header-items, center);padding-inline:var(--ndf-reports-header-padding-inline, .5rem);padding-block:var(--ndf-reports-header-padding-block, 0 .5rem);position:var(--ndf-reports-header-position, sticky);top:0;z-index:1}.ndf-reports__header__actions{justify-content:var(--ndf-reports-actions-justify, flex-end)}.ndf-reports__header__custom-actions .toggle-button{min-width:0;padding:0 10px}.ndf-reports__container{--panel-width: var(--ndf-reports-panel-width, 18rem);position:relative;overflow:var(--ndf-reports-container-overflow, hidden);display:grid;transition:all .2s;max-width:100%;width:100%;height:var(--ndf-reports-height, calc(var(--ndf-fluid-height) - calc(var(--ndf-reports-block-padding, 1rem) * 2.5)));flex-grow:1;grid-gap:var(--ndf-table-container-gap, .5rem);gap:var(--ndf-table-container-gap, .5rem)}.ndf-reports__container.panel-opened{--ndf-details-margin: var(--panel-width);--ndf-reports-panel-translateX: 0;--ndf-reports-content-margin: var(--panel-width)}@media print{.ndf-reports__container{--ndf-reports-container-overflow: visible;height:100%}}.ndf-reports__panel,.ndf-reports__content .ndf-reports__details{overflow:auto;transition:all .2s}.ndf-reports__panel{position:absolute;width:var(--panel-width);height:100%;transform:translate(var(--ndf-reports-panel-translateX, 100%));padding-inline:var(--ndf-reports-panel-inline-padding, .5rem);padding-block:var(--ndf-reports-panel-block-padding, .5rem);background:var(--ndf-reports-panel-background, #fff);z-index:1}.ndf-reports__content{flex-grow:1;padding-inline-start:var(--ndf-reports-content-margin, 1rem);padding-inline-end:var(--ndf-reports-content-pie, 1rem);padding-block:var(--ndf-reports-content-pb, 0 1rem);overflow-y:var(--ndf-reports-content-overflow-y, auto);position:relative;display:flex;flex-direction:column}@media print{.ndf-reports__content{--ndf-reports-content-overflow-y: visible}}.ndf-reports__details{position:absolute;inset-inline-end:0;width:calc(100% - var(--ndf-details-margin, 0px));height:100%;transform:translate(var(--ndf-reports-details-translateX, -100%));padding-inline:var(--ndf-reports-details-inline-padding, 0rem);flex-grow:1;padding-block:var(--ndf-reports-details-block-padding, 0rem);background:var(--ndf-reports-details-background, #fff);z-index:1;transition:all .2s}.reports-grid{--grid-columns: 12;--column-width: calc(100% / var(--grid-columns));display:grid;grid-gap:var(--reports-grid-gap, 1.5rem);gap:var(--reports-grid-gap, 1.5rem);grid-template-columns:var(--rg-columns, repeat(var(--grid-columns), 1fr));margin-block:var(--reports-grid-margin-block, 1.25rem 0);padding-inline:var(--reports-grid-padding-inline, .5rem)}.reports-grid__item{background:#f5f5f5;display:grid;grid-gap:.3rem;gap:.3rem;min-width:0;text-align:center;vertical-align:middle}.reports-grid__item[data-width=\"1\"]{--col-span: span 1}.reports-grid__item[data-start-column=\"1\"]{--col-start: 1}.reports-grid__item[data-start-row=\"1\"]{--row-start: 1}.reports-grid__item[data-height=\"1\"]{--row-span: 1}.reports-grid__item[data-width=\"2\"]{--col-span: span 2}.reports-grid__item[data-start-column=\"2\"]{--col-start: 2}.reports-grid__item[data-start-row=\"2\"]{--row-start: 2}.reports-grid__item[data-height=\"2\"]{--row-span: 2}.reports-grid__item[data-width=\"3\"]{--col-span: span 3}.reports-grid__item[data-start-column=\"3\"]{--col-start: 3}.reports-grid__item[data-start-row=\"3\"]{--row-start: 3}.reports-grid__item[data-height=\"3\"]{--row-span: 3}.reports-grid__item[data-width=\"4\"]{--col-span: span 4}.reports-grid__item[data-start-column=\"4\"]{--col-start: 4}.reports-grid__item[data-start-row=\"4\"]{--row-start: 4}.reports-grid__item[data-height=\"4\"]{--row-span: 4}.reports-grid__item[data-width=\"5\"]{--col-span: span 5}.reports-grid__item[data-start-column=\"5\"]{--col-start: 5}.reports-grid__item[data-start-row=\"5\"]{--row-start: 5}.reports-grid__item[data-height=\"5\"]{--row-span: 5}.reports-grid__item[data-width=\"6\"]{--col-span: span 6}.reports-grid__item[data-start-column=\"6\"]{--col-start: 6}.reports-grid__item[data-start-row=\"6\"]{--row-start: 6}.reports-grid__item[data-height=\"6\"]{--row-span: 6}.reports-grid__item[data-width=\"7\"]{--col-span: span 7}.reports-grid__item[data-start-column=\"7\"]{--col-start: 7}.reports-grid__item[data-start-row=\"7\"]{--row-start: 7}.reports-grid__item[data-height=\"7\"]{--row-span: 7}.reports-grid__item[data-width=\"8\"]{--col-span: span 8}.reports-grid__item[data-start-column=\"8\"]{--col-start: 8}.reports-grid__item[data-start-row=\"8\"]{--row-start: 8}.reports-grid__item[data-height=\"8\"]{--row-span: 8}.reports-grid__item[data-width=\"9\"]{--col-span: span 9}.reports-grid__item[data-start-column=\"9\"]{--col-start: 9}.reports-grid__item[data-start-row=\"9\"]{--row-start: 9}.reports-grid__item[data-height=\"9\"]{--row-span: 9}.reports-grid__item[data-width=\"10\"]{--col-span: span 10}.reports-grid__item[data-start-column=\"10\"]{--col-start: 10}.reports-grid__item[data-start-row=\"10\"]{--row-start: 10}.reports-grid__item[data-height=\"10\"]{--row-span: 10}.reports-grid__item[data-width=\"11\"]{--col-span: span 11}.reports-grid__item[data-start-column=\"11\"]{--col-start: 11}.reports-grid__item[data-start-row=\"11\"]{--row-start: 11}.reports-grid__item[data-height=\"11\"]{--row-span: 11}.reports-grid__item[data-width=\"12\"]{--col-span: span 12}.reports-grid__item[data-start-column=\"12\"]{--col-start: 12}.reports-grid__item[data-start-row=\"12\"]{--row-start: 12}.reports-grid__item[data-height=\"12\"]{--row-span: 12}@media screen{.reports-grid__item{grid-column:var(--col-start, auto)/var(--col-span, span var(--grid-column, 2));grid-row:var(--row-start, auto)/span var(--row-span, 1);grid-template-rows:subgrid}}@media print{.reports-grid{--reports-grid-gap: 11mm;--reports-grid-margin-top: 9mm;--rg-columns: repeat(2, 1fr)}.reports-grid__item{--col-start: auto;--col-span: span 1;border:1px solid #f5f5f5;border-radius:var(--cp-radius, 1rem);page-break-inside:avoid;break-inside:avoid-page}}@media screen and (max-width: 1199px){.reports-grid__item[data-width=\"1\"]{--col-start: auto;--col-span: span 6}.reports-grid__item[data-width=\"2\"]{--col-start: auto;--col-span: span 6}.reports-grid__item[data-width=\"3\"]{--col-start: auto;--col-span: span 6}.reports-grid__item[data-width=\"4\"]{--col-start: auto;--col-span: span 6}.reports-grid__item[data-width=\"5\"]{--col-start: auto;--col-span: span 6}.reports-grid__item[data-width=\"6\"]{--col-start: auto;--col-span: span 6}.reports-grid__item.wide{--col-start: 1;--col-span: -1}}@media screen and (max-width: 767px){.reports-grid__item[data-width]{--col-start: 1;--col-span: -1}}\n"], components: [{ type: FiltersPanelComponent, selector: "app-filters-panel", inputs: ["aggregations", "fields", "activeQuery"], outputs: ["filterChanged"] }, { type: i1$c.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: EditorButtonComponent, selector: "app-editor-button", inputs: ["type", "key"] }, { type: i3$1.MatSpinner, selector: "mat-spinner", inputs: ["color"] }, { type: NdfReportComponent, selector: "app-ndf-report", inputs: ["config", "direction", "data", "criteria"], outputs: ["onNavigate", "onOpen"] }, { type: NdfTableComponent, selector: "app-ndf-table", inputs: ["rows", "totalRecords", "autoCalculateHeight", "emptyMessage", "activeQuery", "configPath", "configTransformer", "tableKey", "jsonEditorEnabled", "config", "customCriteria", "searchTerm"], outputs: ["onRowSelected", "onRowIndexSelected", "actionOnRow", "onGettingData", "onMultiRowSelected", "onLoading", "onPage", "onInitialized", "onLoaded", "onQueryChange", "onSort"] }], directives: [{ type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: FluidHeightDirective, selector: "[ndfFluidHeight]", inputs: ["minHeight", "ndfFluidHeight", "subtractItems", "decrease", "delay", "cssVar", "calculate", "inlineStyle"], exportAs: ["ndfFluidHeight"] }, { type: i4.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { type: ScrollableDivDirective, selector: "[scrolled]", inputs: ["scrollTop"], outputs: ["scrolled"] }, { type: i4$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: SearchTableTemplateDirective, selector: "[searchTableTemplate]" }], pipes: { "async": i4$1.AsyncPipe, "translate": i1.TranslatePipe }, animations: [slideAnimation] });
|
|
43880
|
+
NdfReportsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: NdfReportsComponent, selector: "app-ndf-reports", inputs: { jsonEditorEnabled: "jsonEditorEnabled", reportsKey: "reportsKey", navigateRoute: "navigateRoute", config: "config" }, outputs: { onQueryChange: "onQueryChange" }, host: { properties: { "dir": "direction" }, classAttribute: "ndf-reports" }, viewQueries: [{ propertyName: "fluidDirective", first: true, predicate: FluidHeightDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\r\n\t*ngIf=\"reportsData$ | async as reports\"\r\n\tclass=\"ndf-reports__container\"\r\n\t[class.panel-opened]=\"isPanelOpened && filtersConfig\"\r\n\t[dir]=\"direction\"\r\n\tndfFluidHeight\r\n>\r\n\t<div class=\"ndf-reports__panel print:hidden\" *ngIf=\"!!filtersConfig?.fields?.length\">\r\n\t\t<app-filters-panel\r\n\t\t\t[fields]=\"filtersConfig?.fields\"\r\n\t\t\t[aggregations]=\"aggregations\"\r\n\t\t\t(filterChanged)=\"filterChanged($event)\"\r\n\t\t\t[activeQuery]=\"activeFiltersQuery$ | async\"\r\n\t\t\tclass=\"ndf-reports__filters\"\r\n\t\t></app-filters-panel>\r\n\t</div>\r\n\r\n\t<div class=\"ndf-reports__content\" (scrolled)=\"onContentScroll($event)\">\r\n\t\t<div class=\"ndf-reports__header flex pt-4 print:hidden\">\r\n\t\t\t<button mat-stroked-button class=\"toggle-button\" (click)=\"togglePanel()\">\r\n\t\t\t\t<mat-icon> filter_alt</mat-icon>\r\n\t\t\t</button>\r\n\t\t\t<app-editor-button\r\n\t\t\t\t*ngIf=\"jsonEditorEnabled && reportsKey\"\r\n\t\t\t\t[key]=\"reportsKey\"\r\n\t\t\t\t[type]=\"editorType\"\r\n\t\t\t></app-editor-button>\r\n\t\t\t<button mat-stroked-button *ngIf=\"config?.options?.print\" class=\"print-button\" (click)=\"printAll()\">\r\n\t\t\t\t<mat-icon> print</mat-icon>\r\n\t\t\t</button>\r\n\t\t</div>\r\n\t\t<mat-spinner *ngIf=\"isLoadingResult\" class=\"mt-5 mx-auto\" [diameter]=\"48\"></mat-spinner>\r\n\r\n\t\t<div class=\"reports-grid\" *ngIf=\"!isLoadingResult\">\r\n\t\t\t<app-ndf-report\r\n\t\t\t\t*ngFor=\"let config of reportConfig.items; trackBy: trackByFn\"\r\n\t\t\t\t[config]=\"config\"\r\n\t\t\t\t[data]=\"reports?.response\"\r\n\t\t\t\t[criteria]=\"filtersParams$ | async\"\r\n\t\t\t\t[direction]=\"direction\"\r\n\t\t\t\t[attr.data-width]=\"config?.layout?.width || 4\"\r\n\t\t\t\t[attr.data-height]=\"config?.layout?.height || 'auto'\"\r\n\t\t\t\t[attr.data-start-column]=\"config?.layout?.columnPosition || 'auto'\"\r\n\t\t\t\t[attr.data-start-row]=\"config?.layout?.rowPosition || 'auto'\"\r\n\t\t\t\t[class.wide]=\"config?.layout?.width >= 6\"\r\n\t\t\t\tclass=\"reports-grid__item {{ config?.layout?.styleClass }} \"\r\n\t\t\t\t(onNavigate)=\"onNavigate($event)\"\r\n\t\t\t\t(onOpen)=\"openReportDetails($event, config)\"\r\n\t\t\t></app-ndf-report>\r\n\t\t</div>\r\n\t</div>\r\n\t<div\r\n\t\tclass=\"ndf-reports__details print:hidden\"\r\n\t\t[class.opened]=\"showDetails\"\r\n\t\t[@slideInOut]=\"showDetails ? 'open' : 'closed'\"\r\n\t\t(@slideInOut.done)=\"onDetailsAnimationEnd($event)\"\r\n\t>\r\n\t\t<app-ndf-table\r\n\t\t\t*ngIf=\"reportDetails$ | async as report\"\r\n\t\t\t[config]=\"report.config\"\r\n\t\t\t[activeQuery]=\"activeFiltersQuery$ | async\"\r\n\t\t\t[customCriteria]=\"filtersParams$ | async\"\r\n\t\t>\r\n\t\t\t<ng-template searchTableTemplate>\r\n\t\t\t\t<div class=\"ndf-reports__details__header flex gap-2\">\r\n\t\t\t\t\t<button mat-stroked-button class=\"toggle-button\" (click)=\"togglePanel()\">\r\n\t\t\t\t\t\t<mat-icon> filter_alt</mat-icon>\r\n\t\t\t\t\t</button>\r\n\t\t\t\t\t<button mat-stroked-button class=\"close-button\" (click)=\"closeDetailsPanel()\">\r\n\t\t\t\t\t\t<mat-icon> close</mat-icon>\r\n\t\t\t\t\t</button>\r\n\t\t\t\t</div>\r\n\t\t\t\t<h3>\r\n\t\t\t\t\t{{ report.label | translate }}\r\n\t\t\t\t</h3>\r\n\t\t\t</ng-template>\r\n\t\t</app-ndf-table>\r\n\t</div>\r\n</div>\r\n", styles: [":host{padding-inline:var(--ndf-reports-inline-padding, 0);padding-block:var(--ndf-reports-block-padding, .5rem 0);height:100%;position:relative;display:flex;flex-direction:column;background-color:var(--ndf-reports-background, #fff);box-sizing:border-box;max-width:100%;flex:0 0 100%}:host:before,:host:after{box-sizing:border-box}:host[dir=ltr]{--ndf-reports-panel-translateX: -100%;--ndf-reports-details-translateX: 100%}.ndf-reports__header{background-color:var(--ndf-reports-background, #fff);flex-direction:var(--ndf-reports-header-direction, row);justify-content:var(--ndf-reports-header-justify, space-between);align-items:var(--ndf-reports-header-items, center);padding-inline:var(--ndf-reports-header-padding-inline, .5rem);padding-block:var(--ndf-reports-header-padding-block, 0 .5rem);position:var(--ndf-reports-header-position, sticky);top:0;z-index:1}.ndf-reports__header__actions{justify-content:var(--ndf-reports-actions-justify, flex-end)}.ndf-reports__header__custom-actions .toggle-button{min-width:0;padding:0 10px}.ndf-reports__container{--panel-width: var(--ndf-reports-panel-width, 18rem);position:relative;overflow:var(--ndf-reports-container-overflow, hidden);display:grid;transition:all .2s;max-width:100%;width:100%;height:var(--ndf-reports-height, calc(var(--ndf-fluid-height) - calc(var(--ndf-reports-block-padding, 1rem) * 2.5)));flex-grow:1;grid-gap:var(--ndf-table-container-gap, .5rem);gap:var(--ndf-table-container-gap, .5rem)}.ndf-reports__container.panel-opened{--ndf-details-margin: var(--panel-width);--ndf-reports-panel-translateX: 0;--ndf-reports-content-margin: var(--panel-width)}@media print{.ndf-reports__container{--ndf-reports-container-overflow: visible;height:100%}}.ndf-reports__panel,.ndf-reports__content .ndf-reports__details{overflow:auto;transition:all .2s}.ndf-reports__panel{position:absolute;width:var(--panel-width);height:100%;transform:translate(var(--ndf-reports-panel-translateX, 100%));padding-inline:var(--ndf-reports-panel-inline-padding, .5rem);padding-block:var(--ndf-reports-panel-block-padding, .5rem);background:var(--ndf-reports-panel-background, #fff);z-index:1}.ndf-reports__content{flex-grow:1;padding-inline-start:var(--ndf-reports-content-margin, 1rem);padding-inline-end:var(--ndf-reports-content-pie, 1rem);padding-block:var(--ndf-reports-content-pb, 0 1rem);overflow-y:var(--ndf-reports-content-overflow-y, auto);position:relative;display:flex;flex-direction:column}@media print{.ndf-reports__content{--ndf-reports-content-overflow-y: visible}}.ndf-reports__details{position:absolute;inset-inline-end:0;width:calc(100% - var(--ndf-details-margin, 0px));height:100%;transform:translate(var(--ndf-reports-details-translateX, -100%));padding-inline:var(--ndf-reports-details-inline-padding, 0rem);flex-grow:1;padding-block:var(--ndf-reports-details-block-padding, 0rem);background:var(--ndf-reports-details-background, #fff);z-index:1;transition:all .2s}.reports-grid{--grid-columns: 12;--column-width: calc(100% / var(--grid-columns));display:grid;grid-gap:var(--reports-grid-gap, 1.5rem);gap:var(--reports-grid-gap, 1.5rem);grid-template-columns:var(--rg-columns, repeat(var(--grid-columns), 1fr));margin-block:var(--reports-grid-margin-block, 1.25rem 0);padding-inline:var(--reports-grid-padding-inline, .5rem)}.reports-grid__item{display:grid;grid-gap:.3rem;gap:.3rem;min-width:0;text-align:center;vertical-align:middle}.reports-grid__item[data-width=\"1\"]{--col-span: span 1}.reports-grid__item[data-start-column=\"1\"]{--col-start: 1}.reports-grid__item[data-start-row=\"1\"]{--row-start: 1}.reports-grid__item[data-height=\"1\"]{--row-span: 1}.reports-grid__item[data-width=\"2\"]{--col-span: span 2}.reports-grid__item[data-start-column=\"2\"]{--col-start: 2}.reports-grid__item[data-start-row=\"2\"]{--row-start: 2}.reports-grid__item[data-height=\"2\"]{--row-span: 2}.reports-grid__item[data-width=\"3\"]{--col-span: span 3}.reports-grid__item[data-start-column=\"3\"]{--col-start: 3}.reports-grid__item[data-start-row=\"3\"]{--row-start: 3}.reports-grid__item[data-height=\"3\"]{--row-span: 3}.reports-grid__item[data-width=\"4\"]{--col-span: span 4}.reports-grid__item[data-start-column=\"4\"]{--col-start: 4}.reports-grid__item[data-start-row=\"4\"]{--row-start: 4}.reports-grid__item[data-height=\"4\"]{--row-span: 4}.reports-grid__item[data-width=\"5\"]{--col-span: span 5}.reports-grid__item[data-start-column=\"5\"]{--col-start: 5}.reports-grid__item[data-start-row=\"5\"]{--row-start: 5}.reports-grid__item[data-height=\"5\"]{--row-span: 5}.reports-grid__item[data-width=\"6\"]{--col-span: span 6}.reports-grid__item[data-start-column=\"6\"]{--col-start: 6}.reports-grid__item[data-start-row=\"6\"]{--row-start: 6}.reports-grid__item[data-height=\"6\"]{--row-span: 6}.reports-grid__item[data-width=\"7\"]{--col-span: span 7}.reports-grid__item[data-start-column=\"7\"]{--col-start: 7}.reports-grid__item[data-start-row=\"7\"]{--row-start: 7}.reports-grid__item[data-height=\"7\"]{--row-span: 7}.reports-grid__item[data-width=\"8\"]{--col-span: span 8}.reports-grid__item[data-start-column=\"8\"]{--col-start: 8}.reports-grid__item[data-start-row=\"8\"]{--row-start: 8}.reports-grid__item[data-height=\"8\"]{--row-span: 8}.reports-grid__item[data-width=\"9\"]{--col-span: span 9}.reports-grid__item[data-start-column=\"9\"]{--col-start: 9}.reports-grid__item[data-start-row=\"9\"]{--row-start: 9}.reports-grid__item[data-height=\"9\"]{--row-span: 9}.reports-grid__item[data-width=\"10\"]{--col-span: span 10}.reports-grid__item[data-start-column=\"10\"]{--col-start: 10}.reports-grid__item[data-start-row=\"10\"]{--row-start: 10}.reports-grid__item[data-height=\"10\"]{--row-span: 10}.reports-grid__item[data-width=\"11\"]{--col-span: span 11}.reports-grid__item[data-start-column=\"11\"]{--col-start: 11}.reports-grid__item[data-start-row=\"11\"]{--row-start: 11}.reports-grid__item[data-height=\"11\"]{--row-span: 11}.reports-grid__item[data-width=\"12\"]{--col-span: span 12}.reports-grid__item[data-start-column=\"12\"]{--col-start: 12}.reports-grid__item[data-start-row=\"12\"]{--row-start: 12}.reports-grid__item[data-height=\"12\"]{--row-span: 12}@media screen{.reports-grid__item{grid-column:var(--col-start, auto)/var(--col-span, span var(--grid-column, 2));grid-row:var(--row-start, auto)/span var(--row-span, 1);grid-template-rows:subgrid}}@media print{.reports-grid{--reports-grid-gap: 11mm;--reports-grid-margin-top: 9mm;--rg-columns: repeat(2, 1fr)}.reports-grid__item{--col-start: auto;--col-span: span 1;border:1px solid #f5f5f5;border-radius:var(--cp-radius, 1rem);page-break-inside:avoid;break-inside:avoid-page}}@media screen and (max-width: 1199px){.reports-grid__item[data-width=\"1\"]{--col-start: auto;--col-span: span 6}.reports-grid__item[data-width=\"2\"]{--col-start: auto;--col-span: span 6}.reports-grid__item[data-width=\"3\"]{--col-start: auto;--col-span: span 6}.reports-grid__item[data-width=\"4\"]{--col-start: auto;--col-span: span 6}.reports-grid__item[data-width=\"5\"]{--col-start: auto;--col-span: span 6}.reports-grid__item[data-width=\"6\"]{--col-start: auto;--col-span: span 6}.reports-grid__item.wide{--col-start: 1;--col-span: -1}}@media screen and (max-width: 767px){.reports-grid__item[data-width]{--col-start: 1;--col-span: -1}}\n"], components: [{ type: FiltersPanelComponent, selector: "app-filters-panel", inputs: ["aggregations", "fields", "activeQuery"], outputs: ["filterChanged"] }, { type: i1$c.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: EditorButtonComponent, selector: "app-editor-button", inputs: ["type", "key"] }, { type: i3$1.MatSpinner, selector: "mat-spinner", inputs: ["color"] }, { type: NdfReportComponent, selector: "app-ndf-report", inputs: ["config", "direction", "data", "criteria"], outputs: ["onNavigate", "onOpen"] }, { type: NdfTableComponent, selector: "app-ndf-table", inputs: ["rows", "totalRecords", "autoCalculateHeight", "emptyMessage", "activeQuery", "configPath", "configTransformer", "tableKey", "jsonEditorEnabled", "config", "customCriteria", "searchTerm"], outputs: ["onRowSelected", "onRowIndexSelected", "actionOnRow", "onGettingData", "onMultiRowSelected", "onLoading", "onPage", "onInitialized", "onLoaded", "onQueryChange", "onSort"] }], directives: [{ type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: FluidHeightDirective, selector: "[ndfFluidHeight]", inputs: ["minHeight", "ndfFluidHeight", "subtractItems", "decrease", "delay", "cssVar", "calculate", "inlineStyle"], exportAs: ["ndfFluidHeight"] }, { type: i4.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { type: ScrollableDivDirective, selector: "[scrolled]", inputs: ["scrollTop"], outputs: ["scrolled"] }, { type: i4$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: SearchTableTemplateDirective, selector: "[searchTableTemplate]" }], pipes: { "async": i4$1.AsyncPipe, "translate": i1.TranslatePipe }, animations: [slideAnimation] });
|
|
43696
43881
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NdfReportsComponent, decorators: [{
|
|
43697
43882
|
type: Component,
|
|
43698
43883
|
args: [{
|
|
@@ -43741,7 +43926,7 @@ NdfReportsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", versio
|
|
|
43741
43926
|
DynamicTimelineReportComponent,
|
|
43742
43927
|
TimeGroupSelectorComponent,
|
|
43743
43928
|
GraphDialogComponent,
|
|
43744
|
-
TimelineDialogComponent, ScrollableDivDirective, GraphChartComponent, DigitChartComponent, ReportActionsComponent, CustomReportComponent], imports: [CommonModule,
|
|
43929
|
+
TimelineDialogComponent, ScrollableDivDirective, GraphChartComponent, DigitChartComponent, ReportActionsComponent, CustomReportComponent, CustomChartComponent, CustomChartDialogComponent], imports: [CommonModule,
|
|
43745
43930
|
TranslateModule,
|
|
43746
43931
|
MatMenuModule,
|
|
43747
43932
|
MatIconModule,
|
|
@@ -43786,7 +43971,7 @@ NdfReportsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", versio
|
|
|
43786
43971
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NdfReportsModule, decorators: [{
|
|
43787
43972
|
type: NgModule,
|
|
43788
43973
|
args: [{
|
|
43789
|
-
declarations: [CONTAINERS, COMPONENTS, DIRECTIVES, CHARTS, ReportActionsComponent, CustomReportComponent],
|
|
43974
|
+
declarations: [CONTAINERS, COMPONENTS, DIRECTIVES, CHARTS, ReportActionsComponent, CustomReportComponent, CustomChartComponent, CustomChartDialogComponent],
|
|
43790
43975
|
imports: [
|
|
43791
43976
|
CommonModule,
|
|
43792
43977
|
TranslateModule,
|
|
@@ -45859,5 +46044,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
45859
46044
|
* Generated bundle index. Do not edit.
|
|
45860
46045
|
*/
|
|
45861
46046
|
|
|
45862
|
-
export { ACTIONS_TABLE_TEMPLATE, AGGREGATION_FIELD_TYPES, AUTOCOMPLETE_TEMPLATE, ActionsTableTemplateDirective, ActiveUserSwitchComponent, ActivitiesLogComponent, ActivitiesLogModule, ActivityLineComponent, AdapterService, AddPermissionsDialogComponent, AddToCollectionComponent, AggregationAutocompleteComponent, AggregationCheckboxComponent, AggregationCustomComponent, AggregationDateListComponent, AggregationFieldComponent, AggregationGroupComponent, AggregationRadioComponent, AggregationSelectComponent, AggregationSwitchComponent, ApisErrorsMessagesService, AppConfigService, AppHasRoleDirective, AttachmentItemComponent, AttachmentItemModule, AttachmentModalModule, AttachmentsComponent, AttachmentsListComponent, AttachmentsPageProviderComponent, AutocompleteFilterPipe, AutocompleteTemplateDirective, AvatarComponent, AvatarModule, BaseChartBuilderService, BaseChartComponent, BaseColumnComponent, BaseComponent, BaseDatePicker, BaseDateValueAccessor, BaseDialogComponent, BaseNodeClass, BaseSelector, BaseService, BooleanViewerComponent, ButtonComponent, CHART_DEFAULTS_OPTIONS, CHART_MAIN_COLOR, CHECKBOX_TEMPLATE, COLORS_COUNT, COMPARISON_OPERATOR, CONFIG_EDITOR_MODE, CUSTOM_FIELD_TYPES, CUSTOM_TEMPLATE, CachingExpiryUnit, CalendarService, CallApiService, CardComponent, CardModule, ChartComponent, ChartDataService, ChartDataTransformers, index$1 as ChartDefaults, ChartManagerService, ChartPanel, ChartPanelFooterComponent, ChartPanelHeaderComponent, ChartPanelModule, index as ChartPlugins, ChartPluginsRegistry, index$2 as ChartUtils, ChartsModule, CheckConditionPipe, CheckboxTemplateDirective, CircleNode, CircleNodeComponent, ClickOutsideDirective, ClipboardComponent, CommentApiService, CommentsDashletComponent, CommentsModule, ComponentRegisterService, ComponentTranslationModel, ConfigEditorActionsComponent, ConfigPreviewComponent, ConfirmCallerDialogComponent, ConfirmCallerModule, ConfirmDialogComponent, ConfirmationDialogComponent, ConfirmationDialogModule, Connection, ConnectionLabelComponent, ContentActionType, ContentNode, ContentNodeComponent, CopyComponent, CopyToClipboardDirective, CopyToClipboardModule, CorrespondenceRelationComponent, CorrespondenceRelationCreateFormComponent, CorrespondenceRelationModule, CorrespondenceRelationService, CorrespondenceTagsComponent, CreateDirectoryComponent, CreateEntityComponent, CreateEntityModule, CreateModalComponent, CreationTypeComponent, CtsTagsModule, CustomConnectionComponent, CustomDocumentViewerComponent, CustomFieldComponent, CustomMomentDateAdapter, CustomPpViewerComponent, CustomReportsRegistry, CustomSocketComponent, CustomTemplateDirective, CustomToastrModule, CustomToastrService, CutomeVocViewerComponent, DATE_LIST_TEMPLATE, DATE_LIST_VIEW, DATE_LOCALE_KEYS, DATE_TYPE, DEFAULT_DEBOUNCE_TIME, DEFAULT_VIEW, DIAGRAM_DEFAULT_OPTIONS, DIAGRAM_HEIGHT, DROPDOWN_LABEL_TEMPLATE, DROPDOWN_MULTI_LABEL_TEMPLATE, DROPDOWN_TEMPLATE, DataChartComponent, DataViewerComponent, DateFormatterService, DateHelperService, DateListTemplateDirective, DateViewerComponent, DeleteComponent, DepartmentApiService, DepartmentFormComponent, DepartmentManagementService, DepartmentViewerComponent, DestroySubject, DiagramDirective, DiagramPluginsService, DiagramService, DiagramUtils, DiagramsModule, DialogMangmentService, DigitChartService, DirectiveModule, DisplaySuitableIconComponent, DisplaySuitableIconModule, DocumentScanService, DocumentTemplatesConstants, DocumentTemplatesService, DocumentUploadComponent, DocumentsComponent, DocumentsConstants, DocumentsListComponent, DocumentsModule, DocumentsService, DragAndDropDirective, DropdownLabelTemplateDirective, DropdownMultiLabelTemplateDirective, DropdownTemplateDirective, DropdownViewerComponent, DynamicChartComponent, DynamicChartModule, DynamicColumnComponent, DynamicCustomComponent, DynamicFieldsRendererComponent, DynamicFieldsRendererModule, DynamicFilterComponent, DynamicFilterModule, DynamicFormBoolItemComponent, DynamicFormBuilderComponent, DynamicFormCheckboxItemComponent, DynamicFormComponent, DynamicFormDateItemComponent, DynamicFormDepartmentComponent, DynamicFormFieldComponent, DynamicFormHijriDateitemComponent, DynamicFormMapItemComponent, DynamicFormModule, DynamicFormOptionsComponent, DynamicFormSelectItemComponent, DynamicFormSelectTagComponent, DynamicFormSelectUserFilterComponent, DynamicFormSelectUsersComponent, DynamicFormService, DynamicFormSlideToggleitemComponent, DynamicFormTextItemComponent, DynamicFormTextareaComponent, DynamicFormViewerComponent, DynamicFormVocabularyItemComponent, DynamicSearchComponent, DynamicSearchModule, DynamicTableComponent, DynamicTableModule, DynamicTableService, DynamicTabsComponent, DynamicTabsModule, DynamicTimelineReportService, DynamicViewModule, EMPTY_TEMPLATE, ENTITY_TYPE, EXTENSION_JSONS, EditDeleteModalComponent, EditorModeSwitchComponent, EditorSettingsComponent, ElementHeightDirective, ElementHeightModule, EmptyTemplateDirective, EnvManager, Evaluator, EvaluatorsService, ExtensionLoaderService, ExtensionService, FIELD_SEND_MODE, FIELD_TYPE, FILTER_CUSTOM_TEMPLATE, FILTER_DATES_TYPE, FieldHeaderComponent, FieldValueObject, FileGridInfiniteScrollDirective, FileManagerAbstract, FileManagerAdapter, FileManagerPaginationConfig, FileManagerService, FileMangerModule, FileSizePipe, FilterAutocompleteInputComponent, FilterCollapseControlComponent, FilterComponent, FilterCustomTemplateDirective, FilterDateRangeComponent, FilterEmptyMessageComponent, FilterModule, FilterOptionTextComponent, FilterOptionsSortComponent, FilterPipe, FilterQueryService, FilterSearchInputComponent, FiltersByRolesPipe, FiltersMapperService, FiltersPanelComponent, FluidHeightDirective, FluidHeightModule, FolderModalComponent, FolderishType, FormBuilderService, GREGORIAN_DATE_FORMATS, GREGORIAN_FORMAT, GatewayNodeComponent, GatewayPortsComponent, GlobalAdminService, GlobalPdfTron, GregorianDatepickerComponent, HIJRI_DATE_ARABIC_NAMES, HIJRI_DATE_ENGLISH_NAMES, HIJRI_DATE_FORMATS, HIJRI_FORMAT, HashTranslateAsyncPipe, HashTranslatePipe, HijriAdapterService, HijriDatePipe, HijriDatepickerComponent, HijriGregorianDatepickerComponent, HtmlDialogComponent, IN_OUT_DIRECTION, IconService, InfoDialogComponent, InitializationService, InputDateComponent, InputPort, InputRangeDateComponent, ItemListComponent, Lang, LatestActivityComponent, LatestActivityModule, LibrarySharedModule, ListViewerComponent, LoanRequestComponent, LocalStoragService, LocalizeState, LocalizedDatePipe, LocalizedLabelPipe, MAT_MOMENT_DATE_ADAPTER_OPTIONS, MAT_MOMENT_DATE_ADAPTER_OPTIONS_FACTORY, MESSAGE_TYPE, MIN_VISIBLE_COUNT, MONACO_EDITOR_CONFIG, MY_MOMENT_FORMATS, MainfolderService, MapToAggregationConfigPipe, MessageService, ModeTogglerComponent, MomentDateAdapter, MonacoEditorComponent, MoveComponent, MultiValuePipe, MultipleDynamicFormViewerComponent, MutipleDynamicFormViewerModule, NDF_EDITOR_TYPE, NODE_CIRCLE_SIZE, NODE_GATEWAY_SIZE, NODE_HEIGHT, NODE_MARGIN, NODE_STATUS, NODE_TYPE, NODE_WIDTH, NOTIFICATIONS_LIST_OPTIONS, NOTIFICATION_ICON, NOTIFICATION_ITEM, NOTIFICATION_STATUS, NOTIFY_EVENT, NdfConfigEditorComponent, NdfConfigEditorModule, NdfConfirmationDialogComponent, NdfDatepickerComponent, NdfDatepickerModule, NdfFiltersPanelModule, NdfGregorianDatepickerComponent, NdfHijriDatepickerComponent, NdfNuxeoDialog, NdfPanelComponent, NdfPanelModule, NdfReportComponent, NdfReportsComponent, NdfReportsModule, NdfReportsService, NdfTableComponent, NdfTableConfigurationService, NdfTableModule, NdfTableService, NdfTabsComponent, NdfTabsModule, NdfTransformService, NgxHijriGregorianDatepickerModule, NoDataComponent, NoDataFoundComponent, NoDataModule, NodeIconComponent, NodeInputsComponent, NodeOutputsComponent, NodePortsComponent, NotificationIconDirective, NotificationItemComponent, NotificationItemDirective, NotificationSourceSelectComponent, NotificationStatusToggleComponent, NotificationToastComponent, NotificationsButtonComponent, NotificationsDateSelectComponent, NotificationsListComponent, NotificationsListContainerComponent, NotificationsModule, NotificationsService, NotificationsSettingsContainerComponent, NuxeoCoreModule, NuxeoDevelopmentFrameworkComponent, NuxeoDevelopmentFrameworkModule, NuxeoDevelopmentFrameworkService, NuxeoDialogModule, NuxeoDialogService, NuxeoMapper, NuxeoService, NxQL, NxQlQuery, OutputPort, PAGINATION_MODE, PANEL_MODE, PARAMS_KEYS, PREDICATE_FIELD_TYPES, PROJECT_BASE_HREF, PageSizesListComponent, PaginationComponent, PaginationModule, PdfTronModule, PdftronComponent, PdftronService, PermissionService, PermissionsComponent, PermissionsDirective, PermissionsModule, PermissionsTemplateComponent, PipesModule, PredicateDateInputComponent, PredicateFieldComponent, PredicateTextInputComponent, PublishDialogComponent, PublishingDocumentService, RADIO_TEMPLATE, RadioTemplateDirective, ReadMoreComponent, RecentlyViewedService, RemoveButtonComponent, RenameComponent, ReportConfigMapperService, ReportTransformService, ReportsDataTransformers, ReportsStateService, RolesService, SEARCH_TABLE_TEMPLATE, SOCKET_WIDTH, SUBSCRIPTION_STATE, SWITCH_TEMPLATE, SafeHtmlPipe, SanitizerPipe, ScanComponent, ScanModalComponent, SearchAutocompleteComponent, SearchTableTemplateDirective, SecurePipe, SelectComponent, SelectModule, SelectUsersByDepartmentModule, SelectUsersByDepartmentsComponent, SetDirRtlDirective, SetRtlDirective, ShareDialogComponent, SharedDocsService, SharedServicesModule, SidepanelComponent, SilentPdfTronService, SingleActivityComponent, SkeletonComponent, SkeletonModule, Socket, SortListPipe, SortingListComponent, SpellCheckerFieldModule, SpellCheckerTextFieldComponent, SpinnerComponent, StatisticService, StatusIconComponent, SwitchTemplateDirective, TRANSLATION_PROVIDER, TableColumnsTogglerComponent, TableComponent, TableExportComponent, TableModule, TableSkeletonComponent, TagsApiService, TemplateModalComponent, TemplateNode, TemplateNodeComponent, TextSearchComponent, TimeAgoPipe, ToastsModule, TooltipPipe, TransferDocComponent, TranslateLoaderService, TranslatedVocabularySelectComponent, TranslationService, TreeviewSelectComponent, UpdateModalComponent, UploadFileService, UploadManagmentService, UserCardComponent, UserComponent, UserModule, UserPreferenceValues, UserPreferencesService, UserService, UsersCardComponent, UsersCardModule, UtilityService, VALUE_OBJECT, VersionsComponent, ViewerFilesService, ViewerLogComponent, ViewerLogModule, VocabularyApiService, VocabularyComponent, VocabularyModule, WorkflowService, ZoomControlComponent, appInitializer, departmentCacheBuster$, extensionJsonsFactory, filterEnabled, getChartsOptions, getConnections, getDoughnutOptions, getHorizontalBarOptions, getLineOptions, getPieOptions, getRandomNumber, getValue, getVerticalBarOptions, isDateObject, isFieldValueObject, mergeArrays, mergeObjects, minute$1 as minute, provideExtensionConfig, reduceEmptyMenus, reduceSeparators, removeConnections, removeEmptyKeys, removeNode, removeNodeAndConnections, serializeControl, serializePort, slideAnimation, sortByOrder };
|
|
46047
|
+
export { ACTIONS_TABLE_TEMPLATE, AGGREGATION_FIELD_TYPES, AUTOCOMPLETE_TEMPLATE, ActionsTableTemplateDirective, ActiveUserSwitchComponent, ActivitiesLogComponent, ActivitiesLogModule, ActivityLineComponent, AdapterService, AddPermissionsDialogComponent, AddToCollectionComponent, AggregationAutocompleteComponent, AggregationCheckboxComponent, AggregationCustomComponent, AggregationDateListComponent, AggregationFieldComponent, AggregationGroupComponent, AggregationRadioComponent, AggregationSelectComponent, AggregationSwitchComponent, ApisErrorsMessagesService, AppConfigService, AppHasRoleDirective, AttachmentItemComponent, AttachmentItemModule, AttachmentModalModule, AttachmentsComponent, AttachmentsListComponent, AttachmentsPageProviderComponent, AutocompleteFilterPipe, AutocompleteTemplateDirective, AvatarComponent, AvatarModule, BaseChartBuilderService, BaseChartComponent, BaseColumnComponent, BaseComponent, BaseCustomReport, BaseDatePicker, BaseDateValueAccessor, BaseDialogComponent, BaseNodeClass, BaseSelector, BaseService, BooleanViewerComponent, ButtonComponent, CHART_DEFAULTS_OPTIONS, CHART_MAIN_COLOR, CHECKBOX_TEMPLATE, COLORS_COUNT, COMPARISON_OPERATOR, CONFIG_EDITOR_MODE, CUSTOM_FIELD_TYPES, CUSTOM_TEMPLATE, CachingExpiryUnit, CalendarService, CallApiService, CardComponent, CardModule, ChartComponent, ChartDataService, ChartDataTransformers, index$1 as ChartDefaults, ChartManagerService, ChartPanel, ChartPanelFooterComponent, ChartPanelHeaderComponent, ChartPanelModule, index as ChartPlugins, ChartPluginsRegistry, index$2 as ChartUtils, ChartsModule, CheckConditionPipe, CheckboxTemplateDirective, CircleNode, CircleNodeComponent, ClickOutsideDirective, ClipboardComponent, CommentApiService, CommentsDashletComponent, CommentsModule, ComponentRegisterService, ComponentTranslationModel, ConfigEditorActionsComponent, ConfigPreviewComponent, ConfirmCallerDialogComponent, ConfirmCallerModule, ConfirmDialogComponent, ConfirmationDialogComponent, ConfirmationDialogModule, Connection, ConnectionLabelComponent, ContentActionType, ContentNode, ContentNodeComponent, CopyComponent, CopyToClipboardDirective, CopyToClipboardModule, CorrespondenceRelationComponent, CorrespondenceRelationCreateFormComponent, CorrespondenceRelationModule, CorrespondenceRelationService, CorrespondenceTagsComponent, CreateDirectoryComponent, CreateEntityComponent, CreateEntityModule, CreateModalComponent, CreationTypeComponent, CtsTagsModule, CustomConnectionComponent, CustomDocumentViewerComponent, CustomFieldComponent, CustomMomentDateAdapter, CustomPpViewerComponent, CustomReportsRegistry, CustomSocketComponent, CustomTemplateDirective, CustomToastrModule, CustomToastrService, CutomeVocViewerComponent, DATE_LIST_TEMPLATE, DATE_LIST_VIEW, DATE_LOCALE_KEYS, DATE_TYPE, DEFAULT_DEBOUNCE_TIME, DEFAULT_VIEW, DIAGRAM_DEFAULT_OPTIONS, DIAGRAM_HEIGHT, DROPDOWN_LABEL_TEMPLATE, DROPDOWN_MULTI_LABEL_TEMPLATE, DROPDOWN_TEMPLATE, DataChartComponent, DataViewerComponent, DateFormatterService, DateHelperService, DateListTemplateDirective, DateViewerComponent, DeleteComponent, DepartmentApiService, DepartmentFormComponent, DepartmentManagementService, DepartmentViewerComponent, DestroySubject, DiagramDirective, DiagramPluginsService, DiagramService, DiagramUtils, DiagramsModule, DialogMangmentService, DigitChartService, DirectiveModule, DisplaySuitableIconComponent, DisplaySuitableIconModule, DocumentScanService, DocumentTemplatesConstants, DocumentTemplatesService, DocumentUploadComponent, DocumentsComponent, DocumentsConstants, DocumentsListComponent, DocumentsModule, DocumentsService, DragAndDropDirective, DropdownLabelTemplateDirective, DropdownMultiLabelTemplateDirective, DropdownTemplateDirective, DropdownViewerComponent, DynamicChartComponent, DynamicChartModule, DynamicColumnComponent, DynamicCustomComponent, DynamicFieldsRendererComponent, DynamicFieldsRendererModule, DynamicFilterComponent, DynamicFilterModule, DynamicFormBoolItemComponent, DynamicFormBuilderComponent, DynamicFormCheckboxItemComponent, DynamicFormComponent, DynamicFormDateItemComponent, DynamicFormDepartmentComponent, DynamicFormFieldComponent, DynamicFormHijriDateitemComponent, DynamicFormMapItemComponent, DynamicFormModule, DynamicFormOptionsComponent, DynamicFormSelectItemComponent, DynamicFormSelectTagComponent, DynamicFormSelectUserFilterComponent, DynamicFormSelectUsersComponent, DynamicFormService, DynamicFormSlideToggleitemComponent, DynamicFormTextItemComponent, DynamicFormTextareaComponent, DynamicFormViewerComponent, DynamicFormVocabularyItemComponent, DynamicSearchComponent, DynamicSearchModule, DynamicTableComponent, DynamicTableModule, DynamicTableService, DynamicTabsComponent, DynamicTabsModule, DynamicTimelineReportService, DynamicViewModule, EMPTY_TEMPLATE, ENTITY_TYPE, EXTENSION_JSONS, EditDeleteModalComponent, EditorModeSwitchComponent, EditorSettingsComponent, ElementHeightDirective, ElementHeightModule, EmptyTemplateDirective, EnvManager, Evaluator, EvaluatorsService, ExtensionLoaderService, ExtensionService, FIELD_SEND_MODE, FIELD_TYPE, FILTER_CUSTOM_TEMPLATE, FILTER_DATES_TYPE, FieldHeaderComponent, FieldValueObject, FileGridInfiniteScrollDirective, FileManagerAbstract, FileManagerAdapter, FileManagerPaginationConfig, FileManagerService, FileMangerModule, FileSizePipe, FilterAutocompleteInputComponent, FilterCollapseControlComponent, FilterComponent, FilterCustomTemplateDirective, FilterDateRangeComponent, FilterEmptyMessageComponent, FilterModule, FilterOptionTextComponent, FilterOptionsSortComponent, FilterPipe, FilterQueryService, FilterSearchInputComponent, FiltersByRolesPipe, FiltersMapperService, FiltersPanelComponent, FluidHeightDirective, FluidHeightModule, FolderModalComponent, FolderishType, FormBuilderService, GREGORIAN_DATE_FORMATS, GREGORIAN_FORMAT, GatewayNodeComponent, GatewayPortsComponent, GlobalAdminService, GlobalPdfTron, GregorianDatepickerComponent, HIJRI_DATE_ARABIC_NAMES, HIJRI_DATE_ENGLISH_NAMES, HIJRI_DATE_FORMATS, HIJRI_FORMAT, HashTranslateAsyncPipe, HashTranslatePipe, HijriAdapterService, HijriDatePipe, HijriDatepickerComponent, HijriGregorianDatepickerComponent, HtmlDialogComponent, IN_OUT_DIRECTION, IconService, InfoDialogComponent, InitializationService, InputDateComponent, InputPort, InputRangeDateComponent, ItemListComponent, Lang, LatestActivityComponent, LatestActivityModule, LibrarySharedModule, ListViewerComponent, LoanRequestComponent, LocalStoragService, LocalizeState, LocalizedDatePipe, LocalizedLabelPipe, MAT_MOMENT_DATE_ADAPTER_OPTIONS, MAT_MOMENT_DATE_ADAPTER_OPTIONS_FACTORY, MESSAGE_TYPE, MIN_VISIBLE_COUNT, MONACO_EDITOR_CONFIG, MY_MOMENT_FORMATS, MainfolderService, MapToAggregationConfigPipe, MessageService, ModeTogglerComponent, MomentDateAdapter, MonacoEditorComponent, MoveComponent, MultiValuePipe, MultipleDynamicFormViewerComponent, MutipleDynamicFormViewerModule, NDF_EDITOR_TYPE, NODE_CIRCLE_SIZE, NODE_GATEWAY_SIZE, NODE_HEIGHT, NODE_MARGIN, NODE_STATUS, NODE_TYPE, NODE_WIDTH, NOTIFICATIONS_LIST_OPTIONS, NOTIFICATION_ICON, NOTIFICATION_ITEM, NOTIFICATION_STATUS, NOTIFY_EVENT, NdfConfigEditorComponent, NdfConfigEditorModule, NdfConfirmationDialogComponent, NdfDatepickerComponent, NdfDatepickerModule, NdfFiltersPanelModule, NdfGregorianDatepickerComponent, NdfHijriDatepickerComponent, NdfNuxeoDialog, NdfPanelComponent, NdfPanelModule, NdfReportComponent, NdfReportsComponent, NdfReportsModule, NdfReportsService, NdfTableComponent, NdfTableConfigurationService, NdfTableModule, NdfTableService, NdfTabsComponent, NdfTabsModule, NdfTransformService, NgxHijriGregorianDatepickerModule, NoDataComponent, NoDataFoundComponent, NoDataModule, NodeIconComponent, NodeInputsComponent, NodeOutputsComponent, NodePortsComponent, NotificationIconDirective, NotificationItemComponent, NotificationItemDirective, NotificationSourceSelectComponent, NotificationStatusToggleComponent, NotificationToastComponent, NotificationsButtonComponent, NotificationsDateSelectComponent, NotificationsListComponent, NotificationsListContainerComponent, NotificationsModule, NotificationsService, NotificationsSettingsContainerComponent, NuxeoCoreModule, NuxeoDevelopmentFrameworkComponent, NuxeoDevelopmentFrameworkModule, NuxeoDevelopmentFrameworkService, NuxeoDialogModule, NuxeoDialogService, NuxeoMapper, NuxeoService, NxQL, NxQlQuery, OutputPort, PAGINATION_MODE, PANEL_MODE, PARAMS_KEYS, PREDICATE_FIELD_TYPES, PROJECT_BASE_HREF, PageSizesListComponent, PaginationComponent, PaginationModule, PdfTronModule, PdftronComponent, PdftronService, PermissionService, PermissionsComponent, PermissionsDirective, PermissionsModule, PermissionsTemplateComponent, PipesModule, PredicateDateInputComponent, PredicateFieldComponent, PredicateTextInputComponent, PublishDialogComponent, PublishingDocumentService, RADIO_TEMPLATE, RadioTemplateDirective, ReadMoreComponent, RecentlyViewedService, RemoveButtonComponent, RenameComponent, ReportConfigMapperService, ReportTransformService, ReportsDataTransformers, ReportsStateService, RolesService, SEARCH_TABLE_TEMPLATE, SOCKET_WIDTH, SUBSCRIPTION_STATE, SWITCH_TEMPLATE, SafeHtmlPipe, SanitizerPipe, ScanComponent, ScanModalComponent, SearchAutocompleteComponent, SearchTableTemplateDirective, SecurePipe, SelectComponent, SelectModule, SelectUsersByDepartmentModule, SelectUsersByDepartmentsComponent, SetDirRtlDirective, SetRtlDirective, ShareDialogComponent, SharedDocsService, SharedServicesModule, SidepanelComponent, SilentPdfTronService, SingleActivityComponent, SkeletonComponent, SkeletonModule, Socket, SortListPipe, SortingListComponent, SpellCheckerFieldModule, SpellCheckerTextFieldComponent, SpinnerComponent, StatisticService, StatusIconComponent, SwitchTemplateDirective, TRANSLATION_PROVIDER, TableColumnsTogglerComponent, TableComponent, TableExportComponent, TableModule, TableSkeletonComponent, TagsApiService, TemplateModalComponent, TemplateNode, TemplateNodeComponent, TextSearchComponent, TimeAgoPipe, ToastsModule, TooltipPipe, TransferDocComponent, TranslateLoaderService, TranslatedVocabularySelectComponent, TranslationService, TreeviewSelectComponent, UpdateModalComponent, UploadFileService, UploadManagmentService, UserCardComponent, UserComponent, UserModule, UserPreferenceValues, UserPreferencesService, UserService, UsersCardComponent, UsersCardModule, UtilityService, VALUE_OBJECT, VersionsComponent, ViewerFilesService, ViewerLogComponent, ViewerLogModule, VocabularyApiService, VocabularyComponent, VocabularyModule, WorkflowService, ZoomControlComponent, appInitializer, departmentCacheBuster$, extensionJsonsFactory, filterEnabled, getChartsOptions, getConnections, getDoughnutOptions, getHorizontalBarOptions, getLineOptions, getPieOptions, getRandomNumber, getValue, getVerticalBarOptions, isDateObject, isFieldValueObject, mergeArrays, mergeObjects, minute$1 as minute, provideExtensionConfig, reduceEmptyMenus, reduceSeparators, removeConnections, removeEmptyKeys, removeNode, removeNodeAndConnections, serializeControl, serializePort, slideAnimation, sortByOrder };
|
|
45863
46048
|
//# sourceMappingURL=nuxeo-development-framework.js.map
|