wuic-framework-lib 1.0.11 → 1.0.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (16) hide show
  1. package/fesm2022/{wuic-framework-lib-chart-list.component-vuzmQW9F.mjs → wuic-framework-lib-chart-list.component-B44k_wZe.mjs} +79 -19
  2. package/fesm2022/{wuic-framework-lib-code-editor.component-BjbIkm4g.mjs → wuic-framework-lib-code-editor.component-D1dy4Dl9.mjs} +261 -261
  3. package/fesm2022/{wuic-framework-lib-designer.component-BM3elB-a.mjs → wuic-framework-lib-designer.component-CnOQbvEH.mjs} +178 -151
  4. package/fesm2022/{wuic-framework-lib-first-run-wizard.component-5tcl67dK.mjs → wuic-framework-lib-first-run-wizard.component-C9lswoxG.mjs} +248 -42
  5. package/fesm2022/{wuic-framework-lib-framework-docs.component-BGcJ7k1X.mjs → wuic-framework-lib-framework-docs.component-B6qNTs5H.mjs} +830 -121
  6. package/fesm2022/{wuic-framework-lib-pivot-builder.component-ChNyMAfi.mjs → wuic-framework-lib-pivot-builder.component-DMk26H0M.mjs} +475 -100
  7. package/fesm2022/{wuic-framework-lib-prompt-dialog-fallback-host.component-DFLR_EmK.mjs → wuic-framework-lib-prompt-dialog-fallback-host.component-y3shST6g.mjs} +5 -5
  8. package/fesm2022/{wuic-framework-lib-report-designer.component-B_SC7VkW.mjs → wuic-framework-lib-report-designer.component-BnngR2eL.mjs} +15 -15
  9. package/fesm2022/{wuic-framework-lib-report-viewer.component-BTK-p8xF.mjs → wuic-framework-lib-report-viewer.component-LGNRIQh2.mjs} +82 -12
  10. package/fesm2022/{wuic-framework-lib-scheduler-list.component-CIoGVf4O.mjs → wuic-framework-lib-scheduler-list.component-DbcFMwx5.mjs} +42 -19
  11. package/fesm2022/{wuic-framework-lib-spreadsheet-list-sf.component-DQ5OxO4j.mjs → wuic-framework-lib-spreadsheet-list-sf.component-DXyRX0YK.mjs} +25 -11
  12. package/fesm2022/{wuic-framework-lib-workflow-designer.component-BHLT4MER.mjs → wuic-framework-lib-workflow-designer.component-Bm719AWV.mjs} +9 -9
  13. package/fesm2022/{wuic-framework-lib-wuic-framework-lib-DDokY6wY.mjs → wuic-framework-lib-wuic-framework-lib-CGCZvtKK.mjs} +3795 -1466
  14. package/fesm2022/wuic-framework-lib.mjs +1 -1
  15. package/package.json +1 -1
  16. package/types/wuic-framework-lib.d.ts +647 -26
@@ -1,10 +1,10 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { EventEmitter, ViewChild, Output, Input, Component } from '@angular/core';
3
3
  import { BehaviorSubject } from 'rxjs';
4
- import { W as WtoolboxService, k as WuicClientException, l as WuicErrorCodes, G as GlobalHandler, M as MetadataProviderService, T as TranslationManagerService, U as UserInfoService, A as ArchetypeConfiguratorComponent } from './wuic-framework-lib-wuic-framework-lib-DDokY6wY.mjs';
4
+ import { W as WtoolboxService, k as WuicClientException, l as WuicErrorCodes, G as GlobalHandler, M as MetadataProviderService, T as TranslationManagerService, U as UserInfoService, A as ArchetypeConfiguratorComponent } from './wuic-framework-lib-wuic-framework-lib-CGCZvtKK.mjs';
5
5
  import * as i5 from 'primeng/chart';
6
6
  import { ChartModule } from 'primeng/chart';
7
- import * as i2 from '@ngx-translate/core';
7
+ import * as i8 from '@ngx-translate/core';
8
8
  import { TranslateModule } from '@ngx-translate/core';
9
9
  import * as i1 from '@angular/platform-browser';
10
10
  import * as i1$1 from '@angular/router';
@@ -330,6 +330,16 @@ class ChartListComponent {
330
330
  const metaChartOptions = info.metaInfo.tableMetadata.extraProps?.archetypes?.chart?.options || {};
331
331
  const metaChartType = info.metaInfo.tableMetadata.extraProps?.archetypes?.chart?.type || "bar";
332
332
  this.metaChartOptions = metaChartOptions;
333
+ // Seed UI controls (stacked/indexAxis) from dataOptions when present.
334
+ // Permette config 'stacked: true' + 'indexAxis: y' nel mdpropsbag.archetypes.chart.dataOptions
335
+ // direttamente, senza che l'utente debba toggle-are nel chart settings dialog.
336
+ const seedDataOptions = info.metaInfo.tableMetadata.extraProps?.archetypes?.chart?.dataOptions || {};
337
+ if (seedDataOptions.stacked !== undefined && !this.hasUserChartTypeOverride) {
338
+ this.ui.stacked = !!seedDataOptions.stacked;
339
+ }
340
+ if (seedDataOptions.indexAxis && !this.hasUserChartTypeOverride) {
341
+ this.ui.indexAxis = (String(seedDataOptions.indexAxis).toLowerCase() === 'y') ? 'y' : 'x';
342
+ }
333
343
  this.basicOptions = this.deepMerge({}, this.defaultChartOptions, this.getThemeChartOptions(), this.metaChartOptions);
334
344
  if (!this.hasUserChartTypeOverride) {
335
345
  this.selectedChartType = metaChartType;
@@ -337,7 +347,7 @@ class ChartListComponent {
337
347
  this.refreshChartOptions();
338
348
  this.startChartResizeObserver();
339
349
  this.scheduleChartResizePasses();
340
- var title = this.metaInfo.tableMetadata.md_display_string;
350
+ let title = this.metaInfo.tableMetadata.md_display_string;
341
351
  this.titleService.setTitle(title);
342
352
  if (info.resultInfo.dato) {
343
353
  this.lastResultInfo = info.resultInfo;
@@ -386,7 +396,7 @@ class ChartListComponent {
386
396
  */
387
397
  drillDown($event) {
388
398
  this.onChartDataSelect.emit($event);
389
- var clicked = this.datasource?.value?.resultInfo?.dato?.[$event?.element?.index];
399
+ let clicked = this.datasource?.value?.resultInfo?.dato?.[$event?.element?.index];
390
400
  this.onChartDrillDown.emit({
391
401
  event: $event,
392
402
  clickedItem: clicked,
@@ -1046,7 +1056,7 @@ class ChartListComponent {
1046
1056
  }
1047
1057
  }
1048
1058
  _parseDataInternal(result, runtimeCutOff) {
1049
- var chartData;
1059
+ let chartData;
1050
1060
  // = {
1051
1061
  // labels: ['Q1', 'Q2', 'Q3', 'Q4'],
1052
1062
  // datasets: [
@@ -1060,7 +1070,7 @@ class ChartListComponent {
1060
1070
  // ]
1061
1071
  // };
1062
1072
  if (this.metaInfo.tableMetadata.extraProps?.archetypes?.chart?.dataOptions) {
1063
- var dataOptions = this.metaInfo.tableMetadata.extraProps.archetypes.chart.dataOptions;
1073
+ let dataOptions = this.metaInfo.tableMetadata.extraProps.archetypes.chart.dataOptions;
1064
1074
  if (dataOptions.getChartData) {
1065
1075
  chartData = typeof dataOptions.getChartData === 'string' ? new Function("data", dataOptions.getChartData)(result) : dataOptions.getChartData(result);
1066
1076
  }
@@ -1069,7 +1079,7 @@ class ChartListComponent {
1069
1079
  labels: [],
1070
1080
  datasets: []
1071
1081
  };
1072
- var data = Array.isArray(result[dataOptions.dataProperty]) ? result[dataOptions.dataProperty] : [];
1082
+ let data = Array.isArray(result[dataOptions.dataProperty]) ? result[dataOptions.dataProperty] : [];
1073
1083
  const groupRows = data.filter((d) => d && d.__group_header === 1);
1074
1084
  const chartRows = groupRows.length ? groupRows : data;
1075
1085
  const sortField = dataOptions.datasets?.[0]?.dataField;
@@ -1091,21 +1101,50 @@ class ChartListComponent {
1091
1101
  chartData.datasets.push(typeof ds.parseData === 'string' ? new Function("data", ds.parseData)(result) : ds.parseData(data));
1092
1102
  }
1093
1103
  else if (ds.labelField && ds.dataField) {
1094
- var dsInstance = {
1095
- label: ds.label,
1096
- // backgroundColor: ds.backgroundColor,
1097
- // borderColor: ds.borderColor,
1098
- // borderWidth: ds.borderWidth
1104
+ let dsInstance = {
1105
+ label: ds.label
1099
1106
  };
1100
1107
  dsInstance.data = orderedRows.map((d) => this.getSeriesValue(d, ds.dataField));
1101
- if (ds.backgroundColorField) {
1102
- dsInstance.backgroundColor = orderedRows.map((d) => d[ds.backgroundColorField]);
1108
+ // Static colors per dataset (multi-series stacked / semantic palette).
1109
+ // Priority: backgroundColorField (per-row) > backgroundColor (static dataset)
1110
+ // > generateRandomColor (random per row) > applyDatasetAppearance (theme palette).
1111
+ // Cast `any` perche' ChartDatasetOptions del modello custom non espone
1112
+ // backgroundColor diretto (solo backgroundColorField), ma Chart.js runtime
1113
+ // accetta entrambi.
1114
+ const dsCfgAny = ds;
1115
+ if (dsCfgAny.backgroundColorField) {
1116
+ dsInstance.backgroundColor = orderedRows.map((d) => d[dsCfgAny.backgroundColorField]);
1117
+ }
1118
+ else if (dsCfgAny.backgroundColor) {
1119
+ dsInstance.backgroundColor = dsCfgAny.backgroundColor;
1103
1120
  }
1104
- else if (ds.generateRandomColor) {
1121
+ else if (dsCfgAny.generateRandomColor) {
1105
1122
  dsInstance.backgroundColor = orderedRows.map(() => {
1106
1123
  return 'rgba(' + Math.floor(Math.random() * 255) + ',' + Math.floor(Math.random() * 255) + ',' + Math.floor(Math.random() * 255) + ',0.8)';
1107
1124
  });
1108
1125
  }
1126
+ // Cast `any` per Chart.js types: ChartDatasetOptions limita le keys
1127
+ // sul livello root, ma a runtime Chart.js le accetta tutte (chart-type-specific).
1128
+ const dsAny = ds;
1129
+ const dsInstAny = dsInstance;
1130
+ if (dsAny.borderColor)
1131
+ dsInstAny.borderColor = dsAny.borderColor;
1132
+ if (dsAny.borderWidth !== undefined)
1133
+ dsInstAny.borderWidth = dsAny.borderWidth;
1134
+ // `stack` raggruppa datasets in stacked bar separati per gruppo
1135
+ if (dsAny.stack)
1136
+ dsInstAny.stack = dsAny.stack;
1137
+ // Pass-through bar sizing controls (Chart.js bar/horizontal-bar):
1138
+ // evita che con poche categorie i bar si espandano a tutta altezza.
1139
+ // maxBarThickness=24 => bar mai oltre 24px anche con 2-3 categorie.
1140
+ if (dsAny.maxBarThickness !== undefined)
1141
+ dsInstAny.maxBarThickness = dsAny.maxBarThickness;
1142
+ if (dsAny.barThickness !== undefined)
1143
+ dsInstAny.barThickness = dsAny.barThickness;
1144
+ if (dsAny.barPercentage !== undefined)
1145
+ dsInstAny.barPercentage = dsAny.barPercentage;
1146
+ if (dsAny.categoryPercentage !== undefined)
1147
+ dsInstAny.categoryPercentage = dsAny.categoryPercentage;
1109
1148
  if (ds.borderColorField) {
1110
1149
  dsInstance.borderColor = orderedRows.map((d) => d[ds.borderColorField]);
1111
1150
  dsInstance.borderWidth = 1;
@@ -1188,6 +1227,27 @@ class ChartListComponent {
1188
1227
  nextHeight -= overflowDelta;
1189
1228
  }
1190
1229
  }
1230
+ // Cap al bounding del TD/cella dashboard. Quando il chart-list e' embedded
1231
+ // come widget di cella in una dashboard, NON deve espandersi oltre il box
1232
+ // riservato dalla cella — altrimenti lo strato sotto (es. tabella) viene
1233
+ // spinto fuori dal viewport. Solo TD veri (DOM tag) o ancestor con classe
1234
+ // CRM_HOME_CELL del designer (non qualsiasi ancestor con height esplicita,
1235
+ // perche' il chart-list ha un wrapper interno con height inline che
1236
+ // creerebbe un cap-loop).
1237
+ let constrainAncestor = chartHost.parentElement;
1238
+ while (constrainAncestor && constrainAncestor !== layoutContainer) {
1239
+ const isDashboardCell = constrainAncestor.tagName === 'TD'
1240
+ || (constrainAncestor.className && constrainAncestor.className.indexOf('CRM_HOME_CELL') >= 0);
1241
+ if (isDashboardCell) {
1242
+ const ancRect = constrainAncestor.getBoundingClientRect();
1243
+ const cappedHeight = Math.floor(ancRect.bottom - hostTop - this.chartBottomPadding);
1244
+ if (cappedHeight > 0 && cappedHeight < nextHeight) {
1245
+ nextHeight = cappedHeight;
1246
+ }
1247
+ break;
1248
+ }
1249
+ constrainAncestor = constrainAncestor.parentElement;
1250
+ }
1191
1251
  // Restore inline styles before updating the binding
1192
1252
  chartHost.style.height = prevH;
1193
1253
  chartHost.style.maxHeight = prevMH;
@@ -1284,10 +1344,10 @@ class ChartListComponent {
1284
1344
  this.parentResizeObserver?.disconnect();
1285
1345
  this.parentResizeObserver = undefined;
1286
1346
  }
1287
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: ChartListComponent, deps: [{ token: i1.Title }, { token: i0.ChangeDetectorRef }, { token: i1$1.ActivatedRoute }, { token: TranslationManagerService }, { token: UserInfoService }], target: i0.ɵɵFactoryTarget.Component });
1288
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.8", type: ChartListComponent, isStandalone: true, selector: "wuic-chart-list", inputs: { hardcodedRoute: "hardcodedRoute", parentRecord: "parentRecord", parentMetaInfo: "parentMetaInfo", datasource: "datasource", hardcodedDatasource: "hardcodedDatasource", hideToolbar: "hideToolbar" }, outputs: { onChartDataSelect: "onChartDataSelect", onChartDrillDown: "onChartDrillDown", onChartDataBound: "onChartDataBound" }, viewQueries: [{ propertyName: "chartRef", first: true, predicate: ["chartRef"], descendants: true }, { propertyName: "chartHostRef", first: true, predicate: ["chartHostRef"], descendants: true }], ngImport: i0, template: "@if (chartOptions) {\n <div class=\"chart-list-root\">\n @if (!hideToolbar) {\n <div class=\"chart-list-toolbar\">\n @if (isAdmin) {\n <button class=\"p-element p-button p-component\" (click)=\"openConfigPopup()\">{{'chart.settings' | translate}}</button>\n }\n <button class=\"p-element p-button p-component\" (click)=\"exportChart()\">{{'chart.export' | translate}}</button>\n @if (isAdmin) {\n <button class=\"p-element p-button p-component\" (click)=\"saveChartMetadataPropsBag()\">{{ 'metadata.save_table' | translate }}</button>\n }\n </div>\n }\n\n <div class=\"chart-list-chart-host\" #chartHostRef [style.height.px]=\"chartHostHeightPx\" [style.max-height.px]=\"chartHostHeightPx\">\n <p-chart #chartRef [type]=\"chartOptions.type\" [data]=\"data\" [options]=\"chartOptions\" width=\"100%\"\n height=\"100%\" [responsive]=\"true\" (onDataSelect)=\"drillDown($event)\" />\n </div>\n </div>\n\n <wuic-archetype-configurator\n [visible]=\"showConfigPopup\"\n (visibleChange)=\"showConfigPopup = $event\"\n [archetype]=\"'chart'\"\n [metaInfo]=\"metaInfo\"\n [value]=\"getChartConfigValue()\"\n (applyConfig)=\"onArchetypeConfigApply($event)\">\n </wuic-archetype-configurator>\n}\n", styles: [":host{display:block;height:100%;min-height:0;overflow:hidden}.chart-list-root{display:flex;flex-direction:column;height:100%;width:100%;min-height:0;overflow:hidden}.chart-list-cutoff{flex:0 0 auto;padding:.5rem 0}.chart-list-toolbar{flex:0 0 auto;padding:.5rem 0;display:flex;gap:.5rem;flex-wrap:wrap}.chart-list-config{flex:0 0 auto;padding:.5rem 0}.chart-list-modal-backdrop{position:fixed;inset:0;background:#0006;z-index:1200;display:flex;align-items:center;justify-content:center;padding:1rem}.chart-list-modal{width:min(900px,100%);max-height:85vh;overflow:auto;background:#fff;color:#111827;border-radius:8px;box-shadow:0 10px 32px #00000040;padding:1rem}.chart-list-modal-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.75rem}.chart-list-modal-header h4{margin:0}.chart-list-config-row{display:flex;flex-direction:column;gap:.3rem;margin-bottom:.5rem}.chart-list-inline{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.chart-list-inline label{display:inline-flex;align-items:center;gap:.35rem}.chart-list-type-select,.chart-list-inline select,.chart-list-input,.chart-list-input-sm{background:#fff;color:#111827;border:1px solid #d1d5db;border-radius:6px;padding:.35rem .45rem}.chart-list-config-label{font-weight:600;font-size:.9rem}.chart-list-type-select,.chart-list-input,.chart-list-input-sm{width:100%;box-sizing:border-box}.chart-list-input-sm{width:8rem}:host-context(.theme-dark) .chart-list-modal-backdrop{background:#000000a6}:host-context(.theme-dark) .chart-list-modal{background:#111827;color:#e5e7eb;box-shadow:0 10px 32px #0000008c}:host-context(.theme-dark) .chart-list-config-label,:host-context(.theme-dark) .chart-list-inline label{color:#e5e7eb}:host-context(.theme-dark) .chart-list-type-select,:host-context(.theme-dark) .chart-list-inline select,:host-context(.theme-dark) .chart-list-input,:host-context(.theme-dark) .chart-list-input-sm{background:#0f172a;color:#e5e7eb;border-color:#374151}:host-context(.theme-dark) .chart-list-type-select:focus,:host-context(.theme-dark) .chart-list-inline select:focus,:host-context(.theme-dark) .chart-list-input:focus,:host-context(.theme-dark) .chart-list-input-sm:focus{outline:1px solid #60a5fa;outline-offset:0}.chart-list-cutoff-label{display:block;font-weight:600}.chart-list-cutoff-slider{width:100%}.chart-list-chart-host{flex:1 1 auto;min-height:0;overflow:hidden}.chart-list-chart-host p-chart{display:block;height:100%}\n"], dependencies: [{ kind: "ngmodule", type: ChartModule }, { kind: "component", type: i5.UIChart, selector: "p-chart", inputs: ["type", "plugins", "width", "height", "responsive", "ariaLabel", "ariaLabelledBy", "data", "options"], outputs: ["onDataSelect"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "component", type: ArchetypeConfiguratorComponent, selector: "wuic-archetype-configurator", inputs: ["visible", "archetype", "metaInfo", "value"], outputs: ["visibleChange", "applyConfig"] }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] });
1347
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ChartListComponent, deps: [{ token: i1.Title }, { token: i0.ChangeDetectorRef }, { token: i1$1.ActivatedRoute }, { token: TranslationManagerService }, { token: UserInfoService }], target: i0.ɵɵFactoryTarget.Component });
1348
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: ChartListComponent, isStandalone: true, selector: "wuic-chart-list", inputs: { hardcodedRoute: "hardcodedRoute", parentRecord: "parentRecord", parentMetaInfo: "parentMetaInfo", datasource: "datasource", hardcodedDatasource: "hardcodedDatasource", hideToolbar: "hideToolbar" }, outputs: { onChartDataSelect: "onChartDataSelect", onChartDrillDown: "onChartDrillDown", onChartDataBound: "onChartDataBound" }, viewQueries: [{ propertyName: "chartRef", first: true, predicate: ["chartRef"], descendants: true }, { propertyName: "chartHostRef", first: true, predicate: ["chartHostRef"], descendants: true }], ngImport: i0, template: "@if (chartOptions) {\n <div class=\"chart-list-root\">\n @if (!hideToolbar) {\n <div class=\"chart-list-toolbar\">\n @if (isAdmin) {\n <button class=\"p-element p-button p-component\" (click)=\"openConfigPopup()\">{{'chart.settings' | translate}}</button>\n }\n <button class=\"p-element p-button p-component\" (click)=\"exportChart()\">{{'chart.export' | translate}}</button>\n @if (isAdmin) {\n <button class=\"p-element p-button p-component\" (click)=\"saveChartMetadataPropsBag()\">{{ 'metadata.save_table' | translate }}</button>\n }\n </div>\n }\n\n <div class=\"chart-list-chart-host\" #chartHostRef [style.height.px]=\"chartHostHeightPx\" [style.max-height.px]=\"chartHostHeightPx\">\n <p-chart #chartRef [type]=\"chartOptions.type\" [data]=\"data\" [options]=\"chartOptions\" width=\"100%\"\n height=\"100%\" [responsive]=\"true\" (onDataSelect)=\"drillDown($event)\" />\n </div>\n </div>\n\n <wuic-archetype-configurator\n [visible]=\"showConfigPopup\"\n (visibleChange)=\"showConfigPopup = $event\"\n [archetype]=\"'chart'\"\n [metaInfo]=\"metaInfo\"\n [value]=\"getChartConfigValue()\"\n (applyConfig)=\"onArchetypeConfigApply($event)\">\n </wuic-archetype-configurator>\n}\n", styles: [":host{display:block;height:100%;min-height:0;overflow:hidden}.chart-list-root{display:flex;flex-direction:column;height:100%;width:100%;min-height:0;overflow:hidden}.chart-list-cutoff{flex:0 0 auto;padding:.5rem 0}.chart-list-toolbar{flex:0 0 auto;padding:.5rem 0;display:flex;gap:.5rem;flex-wrap:wrap}.chart-list-config{flex:0 0 auto;padding:.5rem 0}.chart-list-modal-backdrop{position:fixed;inset:0;background:#0006;z-index:1200;display:flex;align-items:center;justify-content:center;padding:1rem}.chart-list-modal{width:min(900px,100%);max-height:85vh;overflow:auto;background:#fff;color:#111827;border-radius:8px;box-shadow:0 10px 32px #00000040;padding:1rem}.chart-list-modal-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.75rem}.chart-list-modal-header h4{margin:0}.chart-list-config-row{display:flex;flex-direction:column;gap:.3rem;margin-bottom:.5rem}.chart-list-inline{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.chart-list-inline label{display:inline-flex;align-items:center;gap:.35rem}.chart-list-type-select,.chart-list-inline select,.chart-list-input,.chart-list-input-sm{background:#fff;color:#111827;border:1px solid #d1d5db;border-radius:6px;padding:.35rem .45rem}.chart-list-config-label{font-weight:600;font-size:.9rem}.chart-list-type-select,.chart-list-input,.chart-list-input-sm{width:100%;box-sizing:border-box}.chart-list-input-sm{width:8rem}:host-context(.theme-dark) .chart-list-modal-backdrop{background:#000000a6}:host-context(.theme-dark) .chart-list-modal{background:#111827;color:#e5e7eb;box-shadow:0 10px 32px #0000008c}:host-context(.theme-dark) .chart-list-config-label,:host-context(.theme-dark) .chart-list-inline label{color:#e5e7eb}:host-context(.theme-dark) .chart-list-type-select,:host-context(.theme-dark) .chart-list-inline select,:host-context(.theme-dark) .chart-list-input,:host-context(.theme-dark) .chart-list-input-sm{background:#0f172a;color:#e5e7eb;border-color:#374151}:host-context(.theme-dark) .chart-list-type-select:focus,:host-context(.theme-dark) .chart-list-inline select:focus,:host-context(.theme-dark) .chart-list-input:focus,:host-context(.theme-dark) .chart-list-input-sm:focus{outline:1px solid #60a5fa;outline-offset:0}.chart-list-cutoff-label{display:block;font-weight:600}.chart-list-cutoff-slider{width:100%}.chart-list-chart-host{flex:1 1 auto;min-height:0;overflow:hidden}.chart-list-chart-host p-chart{display:block;height:100%}\n"], dependencies: [{ kind: "ngmodule", type: ChartModule }, { kind: "component", type: i5.UIChart, selector: "p-chart", inputs: ["type", "plugins", "width", "height", "responsive", "ariaLabel", "ariaLabelledBy", "data", "options"], outputs: ["onDataSelect"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "component", type: ArchetypeConfiguratorComponent, selector: "wuic-archetype-configurator", inputs: ["visible", "archetype", "metaInfo", "value"], outputs: ["visibleChange", "applyConfig"] }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }] });
1289
1349
  }
1290
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: ChartListComponent, decorators: [{
1350
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ChartListComponent, decorators: [{
1291
1351
  type: Component,
1292
1352
  args: [{ selector: 'wuic-chart-list', imports: [ChartModule, TranslateModule, ArchetypeConfiguratorComponent], template: "@if (chartOptions) {\n <div class=\"chart-list-root\">\n @if (!hideToolbar) {\n <div class=\"chart-list-toolbar\">\n @if (isAdmin) {\n <button class=\"p-element p-button p-component\" (click)=\"openConfigPopup()\">{{'chart.settings' | translate}}</button>\n }\n <button class=\"p-element p-button p-component\" (click)=\"exportChart()\">{{'chart.export' | translate}}</button>\n @if (isAdmin) {\n <button class=\"p-element p-button p-component\" (click)=\"saveChartMetadataPropsBag()\">{{ 'metadata.save_table' | translate }}</button>\n }\n </div>\n }\n\n <div class=\"chart-list-chart-host\" #chartHostRef [style.height.px]=\"chartHostHeightPx\" [style.max-height.px]=\"chartHostHeightPx\">\n <p-chart #chartRef [type]=\"chartOptions.type\" [data]=\"data\" [options]=\"chartOptions\" width=\"100%\"\n height=\"100%\" [responsive]=\"true\" (onDataSelect)=\"drillDown($event)\" />\n </div>\n </div>\n\n <wuic-archetype-configurator\n [visible]=\"showConfigPopup\"\n (visibleChange)=\"showConfigPopup = $event\"\n [archetype]=\"'chart'\"\n [metaInfo]=\"metaInfo\"\n [value]=\"getChartConfigValue()\"\n (applyConfig)=\"onArchetypeConfigApply($event)\">\n </wuic-archetype-configurator>\n}\n", styles: [":host{display:block;height:100%;min-height:0;overflow:hidden}.chart-list-root{display:flex;flex-direction:column;height:100%;width:100%;min-height:0;overflow:hidden}.chart-list-cutoff{flex:0 0 auto;padding:.5rem 0}.chart-list-toolbar{flex:0 0 auto;padding:.5rem 0;display:flex;gap:.5rem;flex-wrap:wrap}.chart-list-config{flex:0 0 auto;padding:.5rem 0}.chart-list-modal-backdrop{position:fixed;inset:0;background:#0006;z-index:1200;display:flex;align-items:center;justify-content:center;padding:1rem}.chart-list-modal{width:min(900px,100%);max-height:85vh;overflow:auto;background:#fff;color:#111827;border-radius:8px;box-shadow:0 10px 32px #00000040;padding:1rem}.chart-list-modal-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.75rem}.chart-list-modal-header h4{margin:0}.chart-list-config-row{display:flex;flex-direction:column;gap:.3rem;margin-bottom:.5rem}.chart-list-inline{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.chart-list-inline label{display:inline-flex;align-items:center;gap:.35rem}.chart-list-type-select,.chart-list-inline select,.chart-list-input,.chart-list-input-sm{background:#fff;color:#111827;border:1px solid #d1d5db;border-radius:6px;padding:.35rem .45rem}.chart-list-config-label{font-weight:600;font-size:.9rem}.chart-list-type-select,.chart-list-input,.chart-list-input-sm{width:100%;box-sizing:border-box}.chart-list-input-sm{width:8rem}:host-context(.theme-dark) .chart-list-modal-backdrop{background:#000000a6}:host-context(.theme-dark) .chart-list-modal{background:#111827;color:#e5e7eb;box-shadow:0 10px 32px #0000008c}:host-context(.theme-dark) .chart-list-config-label,:host-context(.theme-dark) .chart-list-inline label{color:#e5e7eb}:host-context(.theme-dark) .chart-list-type-select,:host-context(.theme-dark) .chart-list-inline select,:host-context(.theme-dark) .chart-list-input,:host-context(.theme-dark) .chart-list-input-sm{background:#0f172a;color:#e5e7eb;border-color:#374151}:host-context(.theme-dark) .chart-list-type-select:focus,:host-context(.theme-dark) .chart-list-inline select:focus,:host-context(.theme-dark) .chart-list-input:focus,:host-context(.theme-dark) .chart-list-input-sm:focus{outline:1px solid #60a5fa;outline-offset:0}.chart-list-cutoff-label{display:block;font-weight:600}.chart-list-cutoff-slider{width:100%}.chart-list-chart-host{flex:1 1 auto;min-height:0;overflow:hidden}.chart-list-chart-host p-chart{display:block;height:100%}\n"] }]
1293
1353
  }], ctorParameters: () => [{ type: i1.Title }, { type: i0.ChangeDetectorRef }, { type: i1$1.ActivatedRoute }, { type: TranslationManagerService }, { type: UserInfoService }], propDecorators: { hardcodedRoute: [{
@@ -1317,4 +1377,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
1317
1377
  }] } });
1318
1378
 
1319
1379
  export { ChartListComponent };
1320
- //# sourceMappingURL=wuic-framework-lib-chart-list.component-vuzmQW9F.mjs.map
1380
+ //# sourceMappingURL=wuic-framework-lib-chart-list.component-B44k_wZe.mjs.map