@firestitch/report 18.20.0 → 18.21.1

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.
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LWdyaWQtcGFyYW1zLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvcmVwb3J0cy9pbnRlcmZhY2VzL3JlcG9ydC1ncmlkLXBhcmFtcy5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdyaWRQYXJhbXMgfSBmcm9tICdAZmlyZXN0aXRjaC9ncmlkJztcblxuaW1wb3J0IHsgQ2hhcnRHcmFudWxhcml0eSwgUmVzb2x2ZWRGaWx0ZXJWYWx1ZSB9IGZyb20gJy4vcmVwb3J0LmludGVyZmFjZSc7XG5cblxuLy8gVGhlIGhvc3QgdmFsdWVzIGEgdGFibGUgdGlsZSdzIGdyaWQgY2FycmllcyBvbiBldmVyeSByZWFkLCBhbmQgbmV2ZXIgbG9va3Ncbi8vIGluc2lkZTogdGhlIHJlcG9ydCBmaWx0ZXJzIHRoZSB0aWxlIHJlc29sdmVzIHRvLCB0aGUgZ3JvdXBzIGl0cyAnYW55J1xuLy8gY29tYmluZXMsIGFuZCB0aGUgZ3JvdXAtYnkgZ3JhaW4gZm9yIGEgdGlsZSB0aGF0IGZvbGxvd3MgaXQuIFRoZSBzb3VyY2Vcbi8vIG1hcHMgdGhlbSBvbnRvIHRoZSBkYXRhIHJlcXVlc3QncyBvd24gbmFtZXMuXG5leHBvcnQgaW50ZXJmYWNlIFJlcG9ydEdyaWRQYXJhbXMgZXh0ZW5kcyBHcmlkUGFyYW1zIHtcbiAgZmlsdGVyczogUmVzb2x2ZWRGaWx0ZXJWYWx1ZVtdO1xuICBtYXRjaEFueUdyb3VwSWRzPzogbnVtYmVyW107XG4gIGZyZXF1ZW5jeT86IENoYXJ0R3JhbnVsYXJpdHk7XG59XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LWdyaWQtcGFyYW1zLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvcmVwb3J0cy9pbnRlcmZhY2VzL3JlcG9ydC1ncmlkLXBhcmFtcy5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdyaWRQYXJhbXMgfSBmcm9tICdAZmlyZXN0aXRjaC9ncmlkJztcblxuaW1wb3J0IHsgQ2hhcnRHcmFudWxhcml0eSwgUmVzb2x2ZWRGaWx0ZXJWYWx1ZSB9IGZyb20gJy4vcmVwb3J0LmludGVyZmFjZSc7XG5cblxuLy8gVGhlIGhvc3QgdmFsdWVzIGEgdGFibGUgdGlsZSdzIGdyaWQgY2FycmllcyBvbiBldmVyeSByZWFkLCBhbmQgbmV2ZXIgbG9va3Ncbi8vIGluc2lkZTogdGhlIHJlcG9ydCBmaWx0ZXJzIHRoZSB0aWxlIHJlc29sdmVzIHRvLCB0aGUgZ3JvdXBzIGl0cyAnYW55J1xuLy8gY29tYmluZXMsIGFuZCB0aGUgZ3JvdXAtYnkgZ3JhaW4gZm9yIGEgdGlsZSB0aGF0IGZvbGxvd3MgaXQuIFRoZSBzb3VyY2Vcbi8vIG1hcHMgdGhlbSBvbnRvIHRoZSBkYXRhIHJlcXVlc3QncyBvd24gbmFtZXMuXG4vL1xuLy8gYHJlcG9ydExvYWRzYCBjb3VudHMgdGhlIHJlcG9ydCBsb2FkcyAoYSBSZWZyZXNoLCBhIGNoYXQgZWRpdCwgYSBzZXR0aW5nc1xuLy8gc2F2ZSkgdGhlIHRpbGUgaGFzIHNlZW4gc2luY2UgaXQgd2FzIGRyYXduLiBmcy1ncmlkIHJlYWRzIG9ubHkgd2hlbiBpdHNcbi8vIHBhcmFtcyBvciBsYXlvdXQgbW92ZSBieSB2YWx1ZSwgYW5kIGEgbG9hZCB1c3VhbGx5IGxlYXZlcyBib3RoIGFzIHRoZXlcbi8vIHdlcmUsIHNvIHRoZSBjb3VudCBpcyB3aGF0IG1ha2VzIHRoZSB0YWJsZSByZWFkIGFnYWluIG9uIGVhY2ggbG9hZCwgYXNcbi8vIGV2ZXJ5IG90aGVyIHRpbGUgZG9lcy4gVGhlIHNvdXJjZSBuZXZlciBzZW5kcyBpdC5cbmV4cG9ydCBpbnRlcmZhY2UgUmVwb3J0R3JpZFBhcmFtcyBleHRlbmRzIEdyaWRQYXJhbXMge1xuICBmaWx0ZXJzOiBSZXNvbHZlZEZpbHRlclZhbHVlW107XG4gIG1hdGNoQW55R3JvdXBJZHM/OiBudW1iZXJbXTtcbiAgZnJlcXVlbmN5PzogQ2hhcnRHcmFudWxhcml0eTtcbiAgcmVwb3J0TG9hZHM/OiBudW1iZXI7XG59XG4iXX0=
@@ -4,7 +4,7 @@ import * as echarts from 'echarts/core';
4
4
  export { echarts as default };
5
5
  import { LabelLayout } from 'echarts/features';
6
6
  import { CanvasRenderer } from 'echarts/renderers';
7
- import { R as REPORT_CHART_COLORS_CSS, a as REPORT_CHART_FONT_FAMILY, b as REPORT_AXIS_LABEL_FONT_SIZE } from './firestitch-report-firestitch-report-BQseFyHJ.mjs';
7
+ import { R as REPORT_CHART_COLORS_CSS, a as REPORT_CHART_FONT_FAMILY, b as REPORT_AXIS_LABEL_FONT_SIZE } from './firestitch-report-firestitch-report-cys9XusN.mjs';
8
8
 
9
9
  // Tree-shaken ECharts build for the reports renderer: only the chart types and
10
10
  // components the option-builder emits are registered, keeping the lazy chunk
@@ -63,4 +63,4 @@ echarts.registerTheme('report', {
63
63
  axisLabel: { color: '#52606d', fontSize: REPORT_AXIS_LABEL_FONT_SIZE },
64
64
  },
65
65
  });
66
- //# sourceMappingURL=firestitch-report-echarts-CgZBsQWf.mjs.map
66
+ //# sourceMappingURL=firestitch-report-echarts-D1UDj4L9.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"firestitch-report-echarts-CgZBsQWf.mjs","sources":["../../src/app/reports/theme/echarts.ts"],"sourcesContent":["// Tree-shaken ECharts build for the reports renderer: only the chart types and\n// components the option-builder emits are registered, keeping the lazy chunk\n// lean. Loaded on demand by ngx-echarts via provideEchartsCore — see\n// REPORT_ECHARTS_PROVIDERS in reports-echarts.provider.ts.\n//\n// The canvas renderer (not SVG) is deliberate: chart.getDataURL() needs it for\n// the high-res images the PPT/PDF exports will use.\n\nimport { BarChart, LineChart, PieChart } from 'echarts/charts';\nimport {\n DatasetComponent,\n GridComponent,\n LegendComponent,\n MarkAreaComponent,\n MarkLineComponent,\n TooltipComponent,\n} from 'echarts/components';\nimport * as echarts from 'echarts/core';\nimport { LabelLayout } from 'echarts/features';\nimport { CanvasRenderer } from 'echarts/renderers';\n\nimport { REPORT_CHART_COLORS_CSS } from './palette';\nimport { REPORT_AXIS_LABEL_FONT_SIZE, REPORT_CHART_FONT_FAMILY } from './typography';\n\necharts.use([\n BarChart,\n LineChart,\n PieChart,\n GridComponent,\n TooltipComponent,\n LegendComponent,\n DatasetComponent,\n // Reference lines and statistic lines (markLine), reference bands\n // (markArea), and the overlap hiding of 'auto' data labels (LabelLayout).\n MarkLineComponent,\n MarkAreaComponent,\n LabelLayout,\n CanvasRenderer,\n]);\n\n// The house theme — the single place report chart \"standards\" live (palette,\n// typography, tooltip styling). Polished defaults now; refined in the polish\n// phase.\necharts.registerTheme('report', {\n color: REPORT_CHART_COLORS_CSS,\n textStyle: {\n fontFamily: REPORT_CHART_FONT_FAMILY,\n },\n title: {\n textStyle: { color: '#1f2933', fontSize: 14, fontWeight: 600 },\n },\n legend: {\n textStyle: { color: '#52606d', fontSize: 11 },\n },\n tooltip: {\n backgroundColor: 'rgba(31, 41, 51, 0.92)',\n borderWidth: 0,\n textStyle: { color: '#fff', fontSize: 12 },\n },\n categoryAxis: {\n axisLine: { lineStyle: { color: '#cbd2d9' } },\n axisTick: { show: false },\n axisLabel: { color: '#52606d', fontSize: REPORT_AXIS_LABEL_FONT_SIZE },\n splitLine: { show: false },\n },\n valueAxis: {\n axisLine: { show: false },\n axisLabel: { color: '#52606d', fontSize: REPORT_AXIS_LABEL_FONT_SIZE },\n splitLine: { lineStyle: { color: '#e4e7eb' } },\n },\n timeAxis: {\n axisLine: { lineStyle: { color: '#cbd2d9' } },\n axisLabel: { color: '#52606d', fontSize: REPORT_AXIS_LABEL_FONT_SIZE },\n },\n});\n\nexport default echarts;\n"],"names":[],"mappings":";;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAkBA,OAAO,CAAC,GAAG,CAAC;IACV,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,aAAa;IACb,gBAAgB;IAChB,eAAe;IACf,gBAAgB;;;IAGhB,iBAAiB;IACjB,iBAAiB;IACjB,WAAW;IACX,cAAc;AACf,CAAA,CAAC,CAAC;AAEH;AACA;AACA;AACA,OAAO,CAAC,aAAa,CAAC,QAAQ,EAAE;AAC9B,IAAA,KAAK,EAAE,uBAAuB;AAC9B,IAAA,SAAS,EAAE;AACT,QAAA,UAAU,EAAE,wBAAwB;AACrC,KAAA;AACD,IAAA,KAAK,EAAE;AACL,QAAA,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE;AAC/D,KAAA;AACD,IAAA,MAAM,EAAE;QACN,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE;AAC9C,KAAA;AACD,IAAA,OAAO,EAAE;AACP,QAAA,eAAe,EAAE,wBAAwB;AACzC,QAAA,WAAW,EAAE,CAAC;QACd,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE;AAC3C,KAAA;AACD,IAAA,YAAY,EAAE;QACZ,QAAQ,EAAE,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;AAC7C,QAAA,QAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;QACzB,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,2BAA2B,EAAE;AACtE,QAAA,SAAS,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;AAC3B,KAAA;AACD,IAAA,SAAS,EAAE;AACT,QAAA,QAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;QACzB,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,2BAA2B,EAAE;QACtE,SAAS,EAAE,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;AAC/C,KAAA;AACD,IAAA,QAAQ,EAAE;QACR,QAAQ,EAAE,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;QAC7C,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,2BAA2B,EAAE;AACvE,KAAA;AACF,CAAA,CAAC"}
1
+ {"version":3,"file":"firestitch-report-echarts-D1UDj4L9.mjs","sources":["../../src/app/reports/theme/echarts.ts"],"sourcesContent":["// Tree-shaken ECharts build for the reports renderer: only the chart types and\n// components the option-builder emits are registered, keeping the lazy chunk\n// lean. Loaded on demand by ngx-echarts via provideEchartsCore — see\n// REPORT_ECHARTS_PROVIDERS in reports-echarts.provider.ts.\n//\n// The canvas renderer (not SVG) is deliberate: chart.getDataURL() needs it for\n// the high-res images the PPT/PDF exports will use.\n\nimport { BarChart, LineChart, PieChart } from 'echarts/charts';\nimport {\n DatasetComponent,\n GridComponent,\n LegendComponent,\n MarkAreaComponent,\n MarkLineComponent,\n TooltipComponent,\n} from 'echarts/components';\nimport * as echarts from 'echarts/core';\nimport { LabelLayout } from 'echarts/features';\nimport { CanvasRenderer } from 'echarts/renderers';\n\nimport { REPORT_CHART_COLORS_CSS } from './palette';\nimport { REPORT_AXIS_LABEL_FONT_SIZE, REPORT_CHART_FONT_FAMILY } from './typography';\n\necharts.use([\n BarChart,\n LineChart,\n PieChart,\n GridComponent,\n TooltipComponent,\n LegendComponent,\n DatasetComponent,\n // Reference lines and statistic lines (markLine), reference bands\n // (markArea), and the overlap hiding of 'auto' data labels (LabelLayout).\n MarkLineComponent,\n MarkAreaComponent,\n LabelLayout,\n CanvasRenderer,\n]);\n\n// The house theme — the single place report chart \"standards\" live (palette,\n// typography, tooltip styling). Polished defaults now; refined in the polish\n// phase.\necharts.registerTheme('report', {\n color: REPORT_CHART_COLORS_CSS,\n textStyle: {\n fontFamily: REPORT_CHART_FONT_FAMILY,\n },\n title: {\n textStyle: { color: '#1f2933', fontSize: 14, fontWeight: 600 },\n },\n legend: {\n textStyle: { color: '#52606d', fontSize: 11 },\n },\n tooltip: {\n backgroundColor: 'rgba(31, 41, 51, 0.92)',\n borderWidth: 0,\n textStyle: { color: '#fff', fontSize: 12 },\n },\n categoryAxis: {\n axisLine: { lineStyle: { color: '#cbd2d9' } },\n axisTick: { show: false },\n axisLabel: { color: '#52606d', fontSize: REPORT_AXIS_LABEL_FONT_SIZE },\n splitLine: { show: false },\n },\n valueAxis: {\n axisLine: { show: false },\n axisLabel: { color: '#52606d', fontSize: REPORT_AXIS_LABEL_FONT_SIZE },\n splitLine: { lineStyle: { color: '#e4e7eb' } },\n },\n timeAxis: {\n axisLine: { lineStyle: { color: '#cbd2d9' } },\n axisLabel: { color: '#52606d', fontSize: REPORT_AXIS_LABEL_FONT_SIZE },\n },\n});\n\nexport default echarts;\n"],"names":[],"mappings":";;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAkBA,OAAO,CAAC,GAAG,CAAC;IACV,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,aAAa;IACb,gBAAgB;IAChB,eAAe;IACf,gBAAgB;;;IAGhB,iBAAiB;IACjB,iBAAiB;IACjB,WAAW;IACX,cAAc;AACf,CAAA,CAAC,CAAC;AAEH;AACA;AACA;AACA,OAAO,CAAC,aAAa,CAAC,QAAQ,EAAE;AAC9B,IAAA,KAAK,EAAE,uBAAuB;AAC9B,IAAA,SAAS,EAAE;AACT,QAAA,UAAU,EAAE,wBAAwB;AACrC,KAAA;AACD,IAAA,KAAK,EAAE;AACL,QAAA,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE;AAC/D,KAAA;AACD,IAAA,MAAM,EAAE;QACN,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE;AAC9C,KAAA;AACD,IAAA,OAAO,EAAE;AACP,QAAA,eAAe,EAAE,wBAAwB;AACzC,QAAA,WAAW,EAAE,CAAC;QACd,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE;AAC3C,KAAA;AACD,IAAA,YAAY,EAAE;QACZ,QAAQ,EAAE,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;AAC7C,QAAA,QAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;QACzB,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,2BAA2B,EAAE;AACtE,QAAA,SAAS,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;AAC3B,KAAA;AACD,IAAA,SAAS,EAAE;AACT,QAAA,QAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;QACzB,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,2BAA2B,EAAE;QACtE,SAAS,EAAE,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;AAC/C,KAAA;AACD,IAAA,QAAQ,EAAE;QACR,QAAQ,EAAE,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;QAC7C,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,2BAA2B,EAAE;AACvE,KAAA;AACF,CAAA,CAAC"}
@@ -10061,6 +10061,13 @@ function decimalMark(locale) {
10061
10061
  // them. After that a change to one of the tile's filter groups settles for
10062
10062
  // TILE_REFRESH_DEBOUNCE_MS, so a sweep of changes costs one read; one sent
10063
10063
  // under an older state version is dropped.
10064
+ // - A report load (a Refresh, a chat edit, a settings save, all of which
10065
+ // re-init the filter state) reads the table again at once, even when its
10066
+ // filters did not move: the rows behind it, or its own query, may have.
10067
+ // The load is counted into the params (reportLoads), since fs-grid reads
10068
+ // only when they move. The new params land in the same tick as the
10069
+ // reloaded tile, so a load that also moves the authored layout costs one
10070
+ // read.
10064
10071
  // - The layout on screen is the state service's (gridLayout): the viewer's
10065
10072
  // own while they changed it from the layout authored now, else the
10066
10073
  // authored one. It outlives a page switch, and the chat reads it. So do
@@ -10109,6 +10116,8 @@ class ComponentGridComponent {
10109
10116
  _isPruned = false;
10110
10117
  // The state version the params on screen were read under.
10111
10118
  _paramsVersion = 0;
10119
+ // The report loads seen since the tile was drawn (ReportGridParams).
10120
+ _reportLoads = 0;
10112
10121
  ngOnInit() {
10113
10122
  this.expansion.set(this._filterState.gridExpansion(this.component()));
10114
10123
  this._init();
@@ -10123,8 +10132,9 @@ class ComponentGridComponent {
10123
10132
  _init() {
10124
10133
  this._paramsVersion = this._filterState.stateVersion();
10125
10134
  this.params.set(this._readParams());
10135
+ // A null group is a full re-init: a report load, or a reset.
10126
10136
  this._filterState.changesFor(this.component())
10127
- .pipe(switchMap$1(() => this._settled$()), tap$1(() => this._applyParams()), takeUntilDestroyed(this._destroyRef))
10137
+ .pipe(switchMap$1((groupId) => this._settled$(groupId === null)), tap$1((isLoad) => this._applyParams(isLoad)), takeUntilDestroyed(this._destroyRef))
10128
10138
  .subscribe();
10129
10139
  if (followsGroupBy(this.component())) {
10130
10140
  this._filterState.frequencyChanges()
@@ -10156,21 +10166,25 @@ class ComponentGridComponent {
10156
10166
  this._filterState.setGridLayout(component, pruned);
10157
10167
  }
10158
10168
  }
10159
- // A change, once it has settled: at once when the state version moved,
10160
- // else after the debounce; dropped when the version moves while it waits,
10161
- // since that move brings its own change.
10162
- _settled$() {
10169
+ // A change, once it has settled, passing on whether it was a report load:
10170
+ // at once for a load (one event, not a sweep) or when the state version
10171
+ // moved, else after the debounce; dropped when the version moves while it
10172
+ // waits, since that move brings its own change.
10173
+ _settled$(isLoad) {
10163
10174
  const version = this._filterState.stateVersion();
10164
10175
  const moved = version !== this._paramsVersion;
10165
- return (moved ? of(0) : timer(TILE_REFRESH_DEBOUNCE_MS))
10166
- .pipe(filter$1(() => this._filterState.stateVersion() === version), map$1(() => undefined));
10176
+ return (isLoad || moved ? of(0) : timer(TILE_REFRESH_DEBOUNCE_MS))
10177
+ .pipe(filter$1(() => this._filterState.stateVersion() === version), map$1(() => isLoad));
10167
10178
  }
10168
- _applyParams() {
10179
+ _applyParams(isLoad = false) {
10180
+ if (isLoad) {
10181
+ this._reportLoads++;
10182
+ }
10169
10183
  this._paramsVersion = this._filterState.stateVersion();
10170
10184
  this.params.set(this._readParams());
10171
10185
  }
10172
10186
  // The tile's report filters, 'any' groups and group-by grain as they stand
10173
- // (tileState()).
10187
+ // (tileState()), and the report loads it has seen.
10174
10188
  _readParams() {
10175
10189
  const component = this.component();
10176
10190
  const { matchAnyGroupIds, frequency } = this._filterState.tileState(component);
@@ -10178,6 +10192,7 @@ class ComponentGridComponent {
10178
10192
  filters: this._filterState.resolveForComponent(component),
10179
10193
  ...(matchAnyGroupIds?.length ? { matchAnyGroupIds } : {}),
10180
10194
  ...(frequency ? { frequency } : {}),
10195
+ ...(this._reportLoads ? { reportLoads: this._reportLoads } : {}),
10181
10196
  };
10182
10197
  }
10183
10198
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ComponentGridComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
@@ -15101,7 +15116,7 @@ function gridExportTable(table) {
15101
15116
  .map((heading) => exportCell$1(headingText(heading), true, 0, heading.numeric, heading.columnSpan, heading.rowSpan)));
15102
15117
  const line = (row) => row.cells.map((cell, index) => {
15103
15118
  const isLabel = index === 0 && table.groupColumn;
15104
- return exportCell$1(isLabel && row.count ? `${cell.text} (${row.count})` : cell.text, row.kind !== GridRowKind.Detail || !!table.columns[index]?.emphasis, isLabel ? row.depth : 0, numeric[index] ?? false);
15119
+ return exportCell$1(isLabel && row.count ? `${cell.text} (${row.count})` : cell.text, row.kind !== GridRowKind.Detail || !!table.columns[index]?.emphasis, isLabel ? row.depth : 0, numeric[index] ?? false, 1, 1, cell.shade);
15105
15120
  });
15106
15121
  return {
15107
15122
  head,
@@ -15128,8 +15143,8 @@ function gridExportNotes(table, layout, locale) {
15128
15143
  function headingText(heading) {
15129
15144
  return heading.hint ? `${heading.label} (${heading.hint})` : heading.label;
15130
15145
  }
15131
- function exportCell$1(text, bold, indent, numeric, colSpan = 1, rowSpan = 1) {
15132
- return { text, colSpan, rowSpan, bold, indent, numeric };
15146
+ function exportCell$1(text, bold, indent, numeric, colSpan = 1, rowSpan = 1, shade = null) {
15147
+ return { text, colSpan, rowSpan, bold, indent, numeric, shade };
15133
15148
  }
15134
15149
 
15135
15150
  // How far a KPI card's rows shrink to fit a short tile. A tile shorter still
@@ -15804,7 +15819,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
15804
15819
  // in the report's format context, as on screen.
15805
15820
  async function renderChartImage(component, data, width, height, context, pixelRatio = 3) {
15806
15821
  // The same tree-shaken echarts build + 'report' theme the live canvas uses.
15807
- const echarts = (await import('./firestitch-report-echarts-CgZBsQWf.mjs')).default;
15822
+ const echarts = (await import('./firestitch-report-echarts-D1UDj4L9.mjs')).default;
15808
15823
  const host = document.createElement('div');
15809
15824
  host.style.width = `${width}px`;
15810
15825
  host.style.height = `${height}px`;
@@ -16763,6 +16778,7 @@ class ReportPdfService {
16763
16778
  rowSpan: exported.rowSpan,
16764
16779
  styles: {
16765
16780
  ...(exported.bold ? { fontStyle: 'bold' } : {}),
16781
+ ...(exported.shade ? { fillColor: exported.shade.background, textColor: exported.shade.foreground } : {}),
16766
16782
  ...(exported.indent
16767
16783
  ? {
16768
16784
  cellPadding: {
@@ -18306,6 +18322,9 @@ class ReportPptxService {
18306
18322
  ...(exported.rowSpan > 1 ? { rowspan: exported.rowSpan } : {}),
18307
18323
  ...(exported.bold ? { bold: true } : {}),
18308
18324
  ...(exported.numeric ? { align: 'right' } : {}),
18325
+ ...(exported.shade
18326
+ ? { fill: { color: exported.shade.background.replace('#', '') }, color: exported.shade.foreground.replace('#', '') }
18327
+ : {}),
18309
18328
  ...options,
18310
18329
  }, exported.numeric ? context.locale : undefined),
18311
18330
  });
@@ -19493,7 +19512,7 @@ class FsAiReportComponent {
19493
19512
  ReportAiChatData,
19494
19513
  { provide: FsAiChatData, useExisting: ReportAiChatData },
19495
19514
  // Tree-shaken ECharts core + the 'report' house theme, loaded lazily.
19496
- provideEchartsCore({ echarts: () => import('./firestitch-report-echarts-CgZBsQWf.mjs').then((module) => module.default) }),
19515
+ provideEchartsCore({ echarts: () => import('./firestitch-report-echarts-D1UDj4L9.mjs').then((module) => module.default) }),
19497
19516
  // The bar's date pickers start their weeks on Monday and list the built-in
19498
19517
  // presets; a preset only sets the days.
19499
19518
  provideReportDatePicker(),
@@ -19517,7 +19536,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
19517
19536
  ReportAiChatData,
19518
19537
  { provide: FsAiChatData, useExisting: ReportAiChatData },
19519
19538
  // Tree-shaken ECharts core + the 'report' house theme, loaded lazily.
19520
- provideEchartsCore({ echarts: () => import('./firestitch-report-echarts-CgZBsQWf.mjs').then((module) => module.default) }),
19539
+ provideEchartsCore({ echarts: () => import('./firestitch-report-echarts-D1UDj4L9.mjs').then((module) => module.default) }),
19521
19540
  // The bar's date pickers start their weeks on Monday and list the built-in
19522
19541
  // presets; a preset only sets the days.
19523
19542
  provideReportDatePicker(),
@@ -19610,4 +19629,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
19610
19629
  */
19611
19630
 
19612
19631
  export { FsAiReportsComponent as F, GRANULARITY_OPTIONS as G, REPORT_CHART_COLORS_CSS as R, REPORT_CHART_FONT_FAMILY as a, REPORT_AXIS_LABEL_FONT_SIZE as b, FsAiReportComponent as c, ReportData as d, ReportService as e, ReportFilterStateService as f, ReportNodeType as g, ReportState as h, ReportValueFormat as i, ReportValueFormula as j, ReportListColumnFormat as k, ReportNumberUnits as l, ReportChartDataLabels as m, ReportChartColor as n, ReportChartLineStyle as o, ReportChartMarkStat as p, ReportChartDateLabel as q, ReportChartSpanThrough as r, ReportChangePolarity as s };
19613
- //# sourceMappingURL=firestitch-report-firestitch-report-BQseFyHJ.mjs.map
19632
+ //# sourceMappingURL=firestitch-report-firestitch-report-cys9XusN.mjs.map