@firestitch/report 18.0.21 → 18.0.22

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.
@@ -26,7 +26,7 @@ export declare class ReportSettingsComponent implements OnInit {
26
26
  pageWidth: number;
27
27
  pageHeight: number;
28
28
  readonly pageDimensionMin = 1;
29
- readonly pageDimensionMax = 200;
29
+ readonly pageDimensionMax = 50;
30
30
  layout: 'freeform' | 'flow';
31
31
  timezone: string;
32
32
  headingSize: number;
@@ -10,4 +10,4 @@ export interface ComponentGeometry {
10
10
  }
11
11
  export declare function pageGeometry(report: Report, page: ReportPage): Map<number, ComponentGeometry>;
12
12
  export declare const PAGE_DIMENSION_MIN = 1;
13
- export declare const PAGE_DIMENSION_MAX = 200;
13
+ export declare const PAGE_DIMENSION_MAX = 50;
@@ -49,7 +49,10 @@ export function pageGeometry(report, page) {
49
49
  }
50
50
  // Bounds for a page dimension, in inches. Mirrors ReportModel::PAGE_DIMENSION_MIN
51
51
  // / MAX on the server, which is the enforcing side — these drive the field-level
52
- // message so the operator sees the limit before submitting.
52
+ // message so the operator sees the limit before submitting. The ceiling is set by
53
+ // PowerPoint, not by the canvas: ECMA-376 caps a slide at 56 inches, and a .pptx
54
+ // over that is refused on open, so a page is not allowed to be sized past what it
55
+ // can be exported as.
53
56
  export const PAGE_DIMENSION_MIN = 1;
54
- export const PAGE_DIMENSION_MAX = 200;
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9yZXBvcnRzL2xheW91dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxxRUFBcUU7QUFDckUsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQztBQUVqQyxvRUFBb0U7QUFDcEUsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsS0FBSyxDQUFDO0FBRS9DLDRFQUE0RTtBQUM1RSxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxFQUFFLENBQUM7QUFTdkMsMkVBQTJFO0FBQzNFLHNFQUFzRTtBQUN0RSxFQUFFO0FBQ0YsMkNBQTJDO0FBQzNDLDJFQUEyRTtBQUMzRSw2RUFBNkU7QUFDN0UsMkVBQTJFO0FBQzNFLHdEQUF3RDtBQUN4RCxNQUFNLFVBQVUsWUFBWSxDQUFDLE1BQWMsRUFBRSxJQUFnQjtJQUMzRCxNQUFNLFFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBNkIsQ0FBQztJQUV0RCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssTUFBTSxFQUFFLENBQUM7UUFDN0IsS0FBSyxNQUFNLFNBQVMsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDeEMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFO2dCQUN6QixDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUM7YUFDL0QsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsU0FBUyxHQUFHLFlBQVksR0FBRyxDQUFDLENBQUM7SUFDckQsTUFBTSxNQUFNLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRXRHLElBQUksT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLG1EQUFtRDtJQUNwRSxJQUFJLE1BQU0sR0FBRyxZQUFZLENBQUM7SUFDMUIsSUFBSSxTQUFTLEdBQUcsQ0FBQyxDQUFDO0lBRWxCLEtBQUssTUFBTSxTQUFTLElBQUksTUFBTSxFQUFFLENBQUM7UUFDL0IsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsU0FBUyxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztRQUU5RSwwRUFBMEU7UUFDMUUsbUNBQW1DO1FBQ25DLElBQUksT0FBTyxHQUFHLFFBQVEsR0FBRyxLQUFLLEVBQUUsQ0FBQztZQUMvQixNQUFNLElBQUksU0FBUyxDQUFDO1lBQ3BCLE9BQU8sR0FBRyxDQUFDLENBQUM7WUFDWixTQUFTLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLENBQUM7UUFFRCxRQUFRLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUU7WUFDekIsQ0FBQyxFQUFFLFlBQVksR0FBRyxPQUFPLEdBQUcsUUFBUTtZQUNwQyxDQUFDLEVBQUUsTUFBTTtZQUNULENBQUMsRUFBRSxRQUFRLEdBQUcsUUFBUTtZQUN0QixDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUM7U0FDZixDQUFDLENBQUM7UUFFSCxPQUFPLElBQUksUUFBUSxDQUFDO1FBQ3BCLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUM7QUFFRCxrRkFBa0Y7QUFDbEYsaUZBQWlGO0FBQ2pGLDREQUE0RDtBQUM1RCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLENBQUM7QUFDcEMsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsR0FBRyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVwb3J0LCBSZXBvcnRDb21wb25lbnQsIFJlcG9ydFBhZ2UgfSBmcm9tICcuL2ludGVyZmFjZXMvcmVwb3J0LmludGVyZmFjZSc7XG5cblxuLy8gUGFnZSBwYWRkaW5nIGZvciBmbG93IGxheW91dCwgaW5jaGVzIOKAlCBtaXJyb3JlZCBieSB0aGUgY2FudmFzIENTUy5cbmV4cG9ydCBjb25zdCBGTE9XX1BBRERJTkcgPSAwLjI1O1xuXG4vLyBEZWZhdWx0IGNvbnRlbnQgcGFkZGluZyBhcm91bmQgYSBjb21wb25lbnQncyBib2R5LCBpbmNoZXMgKDEvOFwiKS5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0NPTVBPTkVOVF9QQURESU5HID0gMC4xMjU7XG5cbi8vIERlZmF1bHQgcmVwb3J0IGhlYWRpbmcgc2l6ZSwgcG9pbnRzICgxLzcyXCIpLiBBcHBsaWVzIHRvIGNvbXBvbmVudCB0aXRsZXMuXG5leHBvcnQgY29uc3QgREVGQVVMVF9IRUFESU5HX1NJWkUgPSAxNjtcblxuZXhwb3J0IGludGVyZmFjZSBDb21wb25lbnRHZW9tZXRyeSB7XG4gIHg6IG51bWJlcjtcbiAgeTogbnVtYmVyO1xuICB3OiBudW1iZXI7XG4gIGg6IG51bWJlcjtcbn1cblxuLy8gUmVzb2x2ZWQgZ2VvbWV0cnkgKGluY2hlcykgZm9yIGV2ZXJ5IGNvbXBvbmVudCBvbiBhIHBhZ2UsIGluIEJPVEggbGF5b3V0XG4vLyBtb2RlcyDigJQgdGhlIHNpbmdsZSBkZWZpbml0aW9uIHRoZSBQUFQgYW5kIFBERiBleHBvcnRzIGxheSBvdXQgZnJvbTpcbi8vXG4vLyAgIEZyZWVmb3JtOiB0aGUgc3RvcmVkIHgveS93L2ggdmVyYmF0aW0uXG4vLyAgIEZsb3c6ICAgICBjb21wb25lbnRzIGluIGBvcmRlcmAsIGVhY2ggZmxvd1dpZHRoJSBvZiB0aGUgY29udGVudCB3aWR0aCxcbi8vICAgICAgICAgICAgIHdyYXBwaW5nIGludG8gcm93cyAoYSByb3cgYnJlYWtzIHdoZW4gdGhlIG5leHQgY29tcG9uZW50IHdvdWxkXG4vLyAgICAgICAgICAgICBleGNlZWQgMTAwJSk7IHJvdyBoZWlnaHQgPSB0aGUgdGFsbGVzdCBjb21wb25lbnQgaW4gdGhlIHJvdy5cbi8vICAgICAgICAgICAgIE1hdGNoZXMgdGhlIGNhbnZhcydzIGZsZXgtd3JhcCByZW5kZXJpbmcuXG5leHBvcnQgZnVuY3Rpb24gcGFnZUdlb21ldHJ5KHJlcG9ydDogUmVwb3J0LCBwYWdlOiBSZXBvcnRQYWdlKTogTWFwPG51bWJlciwgQ29tcG9uZW50R2VvbWV0cnk+IHtcbiAgY29uc3QgZ2VvbWV0cnkgPSBuZXcgTWFwPG51bWJlciwgQ29tcG9uZW50R2VvbWV0cnk+KCk7XG5cbiAgaWYgKHJlcG9ydC5sYXlvdXQgIT09ICdmbG93Jykge1xuICAgIGZvciAoY29uc3QgY29tcG9uZW50IG9mIHBhZ2UuY29tcG9uZW50cykge1xuICAgICAgZ2VvbWV0cnkuc2V0KGNvbXBvbmVudC5pZCwge1xuICAgICAgICB4OiBjb21wb25lbnQueCwgeTogY29tcG9uZW50LnksIHc6IGNvbXBvbmVudC53LCBoOiBjb21wb25lbnQuaCxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBnZW9tZXRyeTtcbiAgfVxuXG4gIGNvbnN0IGNvbnRlbnRXID0gcmVwb3J0LnBhZ2VXaWR0aCAtIEZMT1dfUEFERElORyAqIDI7XG4gIGNvbnN0IHNvcnRlZCA9IFsuLi5wYWdlLmNvbXBvbmVudHNdLnNvcnQoKGEsIGIpID0+IChhLm9yZGVyIC0gYi5vcmRlcikgfHwgKGEueSAtIGIueSkgfHwgKGEueCAtIGIueCkpO1xuXG4gIGxldCBjdXJzb3JYID0gMDsgLy8gZnJhY3Rpb24gb2YgY29udGVudFcgY29uc3VtZWQgaW4gdGhlIGN1cnJlbnQgcm93XG4gIGxldCByb3dUb3AgPSBGTE9XX1BBRERJTkc7XG4gIGxldCByb3dIZWlnaHQgPSAwO1xuXG4gIGZvciAoY29uc3QgY29tcG9uZW50IG9mIHNvcnRlZCkge1xuICAgIGNvbnN0IGZyYWN0aW9uID0gTWF0aC5taW4oMTAwLCBNYXRoLm1heCgxMCwgY29tcG9uZW50LmZsb3dXaWR0aCA/PyA1MCkpIC8gMTAwO1xuXG4gICAgLy8gV3JhcCB3aGVuIHRoaXMgY29tcG9uZW50IGRvZXNuJ3QgZml0IHRoZSByZW1haW5kZXIgKHNtYWxsIHRvbGVyYW5jZSBmb3JcbiAgICAvLyAzMy4zMyszMy4zMyszMy4zMyBzdHlsZSBzcGxpdHMpLlxuICAgIGlmIChjdXJzb3JYICsgZnJhY3Rpb24gPiAxLjAwMSkge1xuICAgICAgcm93VG9wICs9IHJvd0hlaWdodDtcbiAgICAgIGN1cnNvclggPSAwO1xuICAgICAgcm93SGVpZ2h0ID0gMDtcbiAgICB9XG5cbiAgICBnZW9tZXRyeS5zZXQoY29tcG9uZW50LmlkLCB7XG4gICAgICB4OiBGTE9XX1BBRERJTkcgKyBjdXJzb3JYICogY29udGVudFcsXG4gICAgICB5OiByb3dUb3AsXG4gICAgICB3OiBmcmFjdGlvbiAqIGNvbnRlbnRXLFxuICAgICAgaDogY29tcG9uZW50LmgsXG4gICAgfSk7XG5cbiAgICBjdXJzb3JYICs9IGZyYWN0aW9uO1xuICAgIHJvd0hlaWdodCA9IE1hdGgubWF4KHJvd0hlaWdodCwgY29tcG9uZW50LmgpO1xuICB9XG5cbiAgcmV0dXJuIGdlb21ldHJ5O1xufVxuXG4vLyBCb3VuZHMgZm9yIGEgcGFnZSBkaW1lbnNpb24sIGluIGluY2hlcy4gTWlycm9ycyBSZXBvcnRNb2RlbDo6UEFHRV9ESU1FTlNJT05fTUlOXG4vLyAvIE1BWCBvbiB0aGUgc2VydmVyLCB3aGljaCBpcyB0aGUgZW5mb3JjaW5nIHNpZGUg4oCUIHRoZXNlIGRyaXZlIHRoZSBmaWVsZC1sZXZlbFxuLy8gbWVzc2FnZSBzbyB0aGUgb3BlcmF0b3Igc2VlcyB0aGUgbGltaXQgYmVmb3JlIHN1Ym1pdHRpbmcuXG5leHBvcnQgY29uc3QgUEFHRV9ESU1FTlNJT05fTUlOID0gMTtcbmV4cG9ydCBjb25zdCBQQUdFX0RJTUVOU0lPTl9NQVggPSAyMDA7XG4iXX0=
57
+ export const PAGE_DIMENSION_MAX = 50;
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9yZXBvcnRzL2xheW91dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxxRUFBcUU7QUFDckUsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQztBQUVqQyxvRUFBb0U7QUFDcEUsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsS0FBSyxDQUFDO0FBRS9DLDRFQUE0RTtBQUM1RSxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxFQUFFLENBQUM7QUFTdkMsMkVBQTJFO0FBQzNFLHNFQUFzRTtBQUN0RSxFQUFFO0FBQ0YsMkNBQTJDO0FBQzNDLDJFQUEyRTtBQUMzRSw2RUFBNkU7QUFDN0UsMkVBQTJFO0FBQzNFLHdEQUF3RDtBQUN4RCxNQUFNLFVBQVUsWUFBWSxDQUFDLE1BQWMsRUFBRSxJQUFnQjtJQUMzRCxNQUFNLFFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBNkIsQ0FBQztJQUV0RCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssTUFBTSxFQUFFLENBQUM7UUFDN0IsS0FBSyxNQUFNLFNBQVMsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDeEMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFO2dCQUN6QixDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUM7YUFDL0QsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsU0FBUyxHQUFHLFlBQVksR0FBRyxDQUFDLENBQUM7SUFDckQsTUFBTSxNQUFNLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRXRHLElBQUksT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLG1EQUFtRDtJQUNwRSxJQUFJLE1BQU0sR0FBRyxZQUFZLENBQUM7SUFDMUIsSUFBSSxTQUFTLEdBQUcsQ0FBQyxDQUFDO0lBRWxCLEtBQUssTUFBTSxTQUFTLElBQUksTUFBTSxFQUFFLENBQUM7UUFDL0IsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsU0FBUyxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztRQUU5RSwwRUFBMEU7UUFDMUUsbUNBQW1DO1FBQ25DLElBQUksT0FBTyxHQUFHLFFBQVEsR0FBRyxLQUFLLEVBQUUsQ0FBQztZQUMvQixNQUFNLElBQUksU0FBUyxDQUFDO1lBQ3BCLE9BQU8sR0FBRyxDQUFDLENBQUM7WUFDWixTQUFTLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLENBQUM7UUFFRCxRQUFRLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUU7WUFDekIsQ0FBQyxFQUFFLFlBQVksR0FBRyxPQUFPLEdBQUcsUUFBUTtZQUNwQyxDQUFDLEVBQUUsTUFBTTtZQUNULENBQUMsRUFBRSxRQUFRLEdBQUcsUUFBUTtZQUN0QixDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUM7U0FDZixDQUFDLENBQUM7UUFFSCxPQUFPLElBQUksUUFBUSxDQUFDO1FBQ3BCLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUM7QUFFRCxrRkFBa0Y7QUFDbEYsaUZBQWlGO0FBQ2pGLGtGQUFrRjtBQUNsRixpRkFBaUY7QUFDakYsa0ZBQWtGO0FBQ2xGLHNCQUFzQjtBQUN0QixNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLENBQUM7QUFDcEMsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVwb3J0LCBSZXBvcnRDb21wb25lbnQsIFJlcG9ydFBhZ2UgfSBmcm9tICcuL2ludGVyZmFjZXMvcmVwb3J0LmludGVyZmFjZSc7XG5cblxuLy8gUGFnZSBwYWRkaW5nIGZvciBmbG93IGxheW91dCwgaW5jaGVzIOKAlCBtaXJyb3JlZCBieSB0aGUgY2FudmFzIENTUy5cbmV4cG9ydCBjb25zdCBGTE9XX1BBRERJTkcgPSAwLjI1O1xuXG4vLyBEZWZhdWx0IGNvbnRlbnQgcGFkZGluZyBhcm91bmQgYSBjb21wb25lbnQncyBib2R5LCBpbmNoZXMgKDEvOFwiKS5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0NPTVBPTkVOVF9QQURESU5HID0gMC4xMjU7XG5cbi8vIERlZmF1bHQgcmVwb3J0IGhlYWRpbmcgc2l6ZSwgcG9pbnRzICgxLzcyXCIpLiBBcHBsaWVzIHRvIGNvbXBvbmVudCB0aXRsZXMuXG5leHBvcnQgY29uc3QgREVGQVVMVF9IRUFESU5HX1NJWkUgPSAxNjtcblxuZXhwb3J0IGludGVyZmFjZSBDb21wb25lbnRHZW9tZXRyeSB7XG4gIHg6IG51bWJlcjtcbiAgeTogbnVtYmVyO1xuICB3OiBudW1iZXI7XG4gIGg6IG51bWJlcjtcbn1cblxuLy8gUmVzb2x2ZWQgZ2VvbWV0cnkgKGluY2hlcykgZm9yIGV2ZXJ5IGNvbXBvbmVudCBvbiBhIHBhZ2UsIGluIEJPVEggbGF5b3V0XG4vLyBtb2RlcyDigJQgdGhlIHNpbmdsZSBkZWZpbml0aW9uIHRoZSBQUFQgYW5kIFBERiBleHBvcnRzIGxheSBvdXQgZnJvbTpcbi8vXG4vLyAgIEZyZWVmb3JtOiB0aGUgc3RvcmVkIHgveS93L2ggdmVyYmF0aW0uXG4vLyAgIEZsb3c6ICAgICBjb21wb25lbnRzIGluIGBvcmRlcmAsIGVhY2ggZmxvd1dpZHRoJSBvZiB0aGUgY29udGVudCB3aWR0aCxcbi8vICAgICAgICAgICAgIHdyYXBwaW5nIGludG8gcm93cyAoYSByb3cgYnJlYWtzIHdoZW4gdGhlIG5leHQgY29tcG9uZW50IHdvdWxkXG4vLyAgICAgICAgICAgICBleGNlZWQgMTAwJSk7IHJvdyBoZWlnaHQgPSB0aGUgdGFsbGVzdCBjb21wb25lbnQgaW4gdGhlIHJvdy5cbi8vICAgICAgICAgICAgIE1hdGNoZXMgdGhlIGNhbnZhcydzIGZsZXgtd3JhcCByZW5kZXJpbmcuXG5leHBvcnQgZnVuY3Rpb24gcGFnZUdlb21ldHJ5KHJlcG9ydDogUmVwb3J0LCBwYWdlOiBSZXBvcnRQYWdlKTogTWFwPG51bWJlciwgQ29tcG9uZW50R2VvbWV0cnk+IHtcbiAgY29uc3QgZ2VvbWV0cnkgPSBuZXcgTWFwPG51bWJlciwgQ29tcG9uZW50R2VvbWV0cnk+KCk7XG5cbiAgaWYgKHJlcG9ydC5sYXlvdXQgIT09ICdmbG93Jykge1xuICAgIGZvciAoY29uc3QgY29tcG9uZW50IG9mIHBhZ2UuY29tcG9uZW50cykge1xuICAgICAgZ2VvbWV0cnkuc2V0KGNvbXBvbmVudC5pZCwge1xuICAgICAgICB4OiBjb21wb25lbnQueCwgeTogY29tcG9uZW50LnksIHc6IGNvbXBvbmVudC53LCBoOiBjb21wb25lbnQuaCxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBnZW9tZXRyeTtcbiAgfVxuXG4gIGNvbnN0IGNvbnRlbnRXID0gcmVwb3J0LnBhZ2VXaWR0aCAtIEZMT1dfUEFERElORyAqIDI7XG4gIGNvbnN0IHNvcnRlZCA9IFsuLi5wYWdlLmNvbXBvbmVudHNdLnNvcnQoKGEsIGIpID0+IChhLm9yZGVyIC0gYi5vcmRlcikgfHwgKGEueSAtIGIueSkgfHwgKGEueCAtIGIueCkpO1xuXG4gIGxldCBjdXJzb3JYID0gMDsgLy8gZnJhY3Rpb24gb2YgY29udGVudFcgY29uc3VtZWQgaW4gdGhlIGN1cnJlbnQgcm93XG4gIGxldCByb3dUb3AgPSBGTE9XX1BBRERJTkc7XG4gIGxldCByb3dIZWlnaHQgPSAwO1xuXG4gIGZvciAoY29uc3QgY29tcG9uZW50IG9mIHNvcnRlZCkge1xuICAgIGNvbnN0IGZyYWN0aW9uID0gTWF0aC5taW4oMTAwLCBNYXRoLm1heCgxMCwgY29tcG9uZW50LmZsb3dXaWR0aCA/PyA1MCkpIC8gMTAwO1xuXG4gICAgLy8gV3JhcCB3aGVuIHRoaXMgY29tcG9uZW50IGRvZXNuJ3QgZml0IHRoZSByZW1haW5kZXIgKHNtYWxsIHRvbGVyYW5jZSBmb3JcbiAgICAvLyAzMy4zMyszMy4zMyszMy4zMyBzdHlsZSBzcGxpdHMpLlxuICAgIGlmIChjdXJzb3JYICsgZnJhY3Rpb24gPiAxLjAwMSkge1xuICAgICAgcm93VG9wICs9IHJvd0hlaWdodDtcbiAgICAgIGN1cnNvclggPSAwO1xuICAgICAgcm93SGVpZ2h0ID0gMDtcbiAgICB9XG5cbiAgICBnZW9tZXRyeS5zZXQoY29tcG9uZW50LmlkLCB7XG4gICAgICB4OiBGTE9XX1BBRERJTkcgKyBjdXJzb3JYICogY29udGVudFcsXG4gICAgICB5OiByb3dUb3AsXG4gICAgICB3OiBmcmFjdGlvbiAqIGNvbnRlbnRXLFxuICAgICAgaDogY29tcG9uZW50LmgsXG4gICAgfSk7XG5cbiAgICBjdXJzb3JYICs9IGZyYWN0aW9uO1xuICAgIHJvd0hlaWdodCA9IE1hdGgubWF4KHJvd0hlaWdodCwgY29tcG9uZW50LmgpO1xuICB9XG5cbiAgcmV0dXJuIGdlb21ldHJ5O1xufVxuXG4vLyBCb3VuZHMgZm9yIGEgcGFnZSBkaW1lbnNpb24sIGluIGluY2hlcy4gTWlycm9ycyBSZXBvcnRNb2RlbDo6UEFHRV9ESU1FTlNJT05fTUlOXG4vLyAvIE1BWCBvbiB0aGUgc2VydmVyLCB3aGljaCBpcyB0aGUgZW5mb3JjaW5nIHNpZGUg4oCUIHRoZXNlIGRyaXZlIHRoZSBmaWVsZC1sZXZlbFxuLy8gbWVzc2FnZSBzbyB0aGUgb3BlcmF0b3Igc2VlcyB0aGUgbGltaXQgYmVmb3JlIHN1Ym1pdHRpbmcuIFRoZSBjZWlsaW5nIGlzIHNldCBieVxuLy8gUG93ZXJQb2ludCwgbm90IGJ5IHRoZSBjYW52YXM6IEVDTUEtMzc2IGNhcHMgYSBzbGlkZSBhdCA1NiBpbmNoZXMsIGFuZCBhIC5wcHR4XG4vLyBvdmVyIHRoYXQgaXMgcmVmdXNlZCBvbiBvcGVuLCBzbyBhIHBhZ2UgaXMgbm90IGFsbG93ZWQgdG8gYmUgc2l6ZWQgcGFzdCB3aGF0IGl0XG4vLyBjYW4gYmUgZXhwb3J0ZWQgYXMuXG5leHBvcnQgY29uc3QgUEFHRV9ESU1FTlNJT05fTUlOID0gMTtcbmV4cG9ydCBjb25zdCBQQUdFX0RJTUVOU0lPTl9NQVggPSA1MDtcbiJdfQ==
@@ -3,7 +3,7 @@ import { GridComponent, TooltipComponent, LegendComponent, DatasetComponent } fr
3
3
  import * as echarts from 'echarts/core';
4
4
  export { echarts as default };
5
5
  import { CanvasRenderer } from 'echarts/renderers';
6
- import { R as REPORT_CHART_COLORS_CSS } from './firestitch-report-firestitch-report-acZuB8V2.mjs';
6
+ import { R as REPORT_CHART_COLORS_CSS } from './firestitch-report-firestitch-report-D9XMKkVT.mjs';
7
7
 
8
8
  // Tree-shaken ECharts build for the reports renderer: only the chart types and
9
9
  // components the option-builder emits are registered, keeping the lazy chunk
@@ -57,4 +57,4 @@ echarts.registerTheme('report', {
57
57
  axisLabel: { color: '#52606d', fontSize: 11 },
58
58
  },
59
59
  });
60
- //# sourceMappingURL=firestitch-report-echarts-BYmAhi-N.mjs.map
60
+ //# sourceMappingURL=firestitch-report-echarts-DM9HRleW.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"firestitch-report-echarts-BYmAhi-N.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 TooltipComponent,\n} from 'echarts/components';\nimport * as echarts from 'echarts/core';\nimport { CanvasRenderer } from 'echarts/renderers';\n\nimport { REPORT_CHART_COLORS_CSS } from './palette';\n\necharts.use([\n BarChart,\n LineChart,\n PieChart,\n GridComponent,\n TooltipComponent,\n LegendComponent,\n DatasetComponent,\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: 'Roboto, \"Helvetica Neue\", sans-serif',\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: 11 },\n splitLine: { show: false },\n },\n valueAxis: {\n axisLine: { show: false },\n axisLabel: { color: '#52606d', fontSize: 11 },\n splitLine: { lineStyle: { color: '#e4e7eb' } },\n },\n timeAxis: {\n axisLine: { lineStyle: { color: '#cbd2d9' } },\n axisLabel: { color: '#52606d', fontSize: 11 },\n },\n});\n\nexport default echarts;\n"],"names":[],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAcA,OAAO,CAAC,GAAG,CAAC;IACV,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,aAAa;IACb,gBAAgB;IAChB,eAAe;IACf,gBAAgB;IAChB,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,sCAAsC;AACnD,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,EAAE,EAAE;AAC7C,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,EAAE,EAAE;QAC7C,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,EAAE,EAAE;AAC9C,KAAA;AACF,CAAA,CAAC"}
1
+ {"version":3,"file":"firestitch-report-echarts-DM9HRleW.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 TooltipComponent,\n} from 'echarts/components';\nimport * as echarts from 'echarts/core';\nimport { CanvasRenderer } from 'echarts/renderers';\n\nimport { REPORT_CHART_COLORS_CSS } from './palette';\n\necharts.use([\n BarChart,\n LineChart,\n PieChart,\n GridComponent,\n TooltipComponent,\n LegendComponent,\n DatasetComponent,\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: 'Roboto, \"Helvetica Neue\", sans-serif',\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: 11 },\n splitLine: { show: false },\n },\n valueAxis: {\n axisLine: { show: false },\n axisLabel: { color: '#52606d', fontSize: 11 },\n splitLine: { lineStyle: { color: '#e4e7eb' } },\n },\n timeAxis: {\n axisLine: { lineStyle: { color: '#cbd2d9' } },\n axisLabel: { color: '#52606d', fontSize: 11 },\n },\n});\n\nexport default echarts;\n"],"names":[],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAcA,OAAO,CAAC,GAAG,CAAC;IACV,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,aAAa;IACb,gBAAgB;IAChB,eAAe;IACf,gBAAgB;IAChB,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,sCAAsC;AACnD,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,EAAE,EAAE;AAC7C,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,EAAE,EAAE;QAC7C,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,EAAE,EAAE;AAC9C,KAAA;AACF,CAAA,CAAC"}
@@ -391,9 +391,12 @@ function pageGeometry(report, page) {
391
391
  }
392
392
  // Bounds for a page dimension, in inches. Mirrors ReportModel::PAGE_DIMENSION_MIN
393
393
  // / MAX on the server, which is the enforcing side — these drive the field-level
394
- // message so the operator sees the limit before submitting.
394
+ // message so the operator sees the limit before submitting. The ceiling is set by
395
+ // PowerPoint, not by the canvas: ECMA-376 caps a slide at 56 inches, and a .pptx
396
+ // over that is refused on open, so a page is not allowed to be sized past what it
397
+ // can be exported as.
395
398
  const PAGE_DIMENSION_MIN = 1;
396
- const PAGE_DIMENSION_MAX = 200;
399
+ const PAGE_DIMENSION_MAX = 50;
397
400
 
398
401
  // A date-range boundary as the picked LOCAL calendar day (no time, no tz).
399
402
  // Date-range filters are calendar-day semantics, so the boundary must carry
@@ -2771,7 +2774,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
2771
2774
  // complete synchronously after setOption.
2772
2775
  async function renderChartImage(component, data, width, height, pixelRatio = 3) {
2773
2776
  // The same tree-shaken echarts build + 'report' theme the live canvas uses.
2774
- const echarts = (await import('./firestitch-report-echarts-BYmAhi-N.mjs')).default;
2777
+ const echarts = (await import('./firestitch-report-echarts-DM9HRleW.mjs')).default;
2775
2778
  const host = document.createElement('div');
2776
2779
  host.style.width = `${width}px`;
2777
2780
  host.style.height = `${height}px`;
@@ -3536,7 +3539,7 @@ class ReportComponent {
3536
3539
  ReportPdfService,
3537
3540
  // Tree-shaken ECharts core + the 'report' house theme, loaded lazily with
3538
3541
  // this route's chunk.
3539
- provideEchartsCore({ echarts: () => import('./firestitch-report-echarts-BYmAhi-N.mjs').then((module) => module.default) }),
3542
+ provideEchartsCore({ echarts: () => import('./firestitch-report-echarts-DM9HRleW.mjs').then((module) => module.default) }),
3540
3543
  ], viewQueries: [{ propertyName: "_split", first: true, predicate: ["split"], descendants: true, static: true }, { propertyName: "_chatPanel", first: true, predicate: ["chatPanel"], descendants: true, read: ElementRef, static: true }, { propertyName: "_canvas", first: true, predicate: ReportCanvasComponent, descendants: true }], ngImport: i0, template: "<div\n #split\n class=\"report fs-row.align-start\">\n <fs-ai-chat\n #chatPanel\n class=\"chat\"\n style=\"min-height: 500px;\"\n basePath=\"reports\"\n [requestData]=\"{ reportId: selected?.id ?? null }\"\n [introMessage]=\"introMessage\"\n (response)=\"onChatResponse($event)\">\n </fs-ai-chat>\n <div\n class=\"resizer\"\n (pointerdown)=\"onResizeStart($event)\">\n </div>\n <div class=\"viewer fs-flex fs-column\">\n <div class=\"fs-row.align-center.gap-sm\">\n <fs-autocomplete-chips\n class=\"fs-flex\"\n [fetch]=\"fetchReports\"\n [(ngModel)]=\"selected\"\n [disabled]=\"loadingReports\"\n [padless]=\"true\"\n [multiple]=\"false\"\n [fetchOnFocus]=\"true\"\n (ngModelChange)=\"reportChange($event)\"\n placeholder=\"Report\"\n name=\"report\">\n <ng-template\n fsAutocompleteChipsTemplate\n let-object=\"object\">\n {{ object.name }}\n </ng-template>\n <ng-template\n fsAutocompleteChipsStatic\n (click)=\"createReport()\">\n Create Report\n </ng-template>\n </fs-autocomplete-chips>\n @if (report) {\n <fs-menu>\n <ng-template\n fs-menu-item\n (click)=\"reportSettings()\">\n <mat-icon>\n tune\n </mat-icon>\n Report settings\n </ng-template>\n <ng-template\n fs-menu-item\n (click)=\"toggleEditMode()\"\n [disabled]=\"editMode\">\n <mat-icon>\n dashboard_2_edit\n </mat-icon>\n {{ editMode ? 'Done editing layout' : 'Edit layout' }}\n </ng-template>\n <ng-template\n fs-menu-item\n (click)=\"exportPowerpoint()\">\n <mat-icon>\n slideshow\n </mat-icon>\n Export PowerPoint\n </ng-template>\n <ng-template\n fs-menu-item\n (click)=\"exportPdf()\">\n <mat-icon>\n picture_as_pdf\n </mat-icon>\n Export PDF\n </ng-template>\n <ng-template\n fs-menu-item\n (click)=\"exportData()\">\n <mat-icon>\n table_view\n </mat-icon>\n Export Raw Data\n </ng-template>\n @if ((report?.pages?.length ?? 0) > 1) {\n <ng-template\n fs-menu-item\n (click)=\"exportData(true)\">\n <mat-icon>\n table_view\n </mat-icon>\n Export Raw Data (This Page)\n </ng-template>\n }\n </fs-menu>\n }\n </div>\n @if (report) {\n <!-- Report-level filters only (the report's actions live in the menu\n above). fs-filter reads its config once at init, so it's keyed on the\n filter signature: when the report-level filter set changes the block\n is recreated and re-reads the rebuilt config. -->\n @if (reportHasFilters) {\n @for (key of [reportFilterKey]; track key) {\n <fs-filter [config]=\"reportFilterConfig\"></fs-filter>\n }\n }\n <app-report-canvas\n [report]=\"report\"\n [editMode]=\"editMode\"\n (componentSettings)=\"componentSettings($event)\"\n (reportChanged)=\"onCanvasReportChanged()\"\n (editDone)=\"toggleEditMode()\">\n </app-report-canvas>\n }\n </div>\n</div>", styles: [".report{height:100%;min-height:500px}.report .chat{display:block;flex:0 0 25%;width:100%;height:100%;min-height:500px;min-width:0;border:none}.report .viewer{display:flex;flex-direction:column;min-width:0;height:100%;overflow:hidden}.report .viewer fs-filter{flex:0 0 auto;margin-top:10px;margin-bottom:0}.report .viewer ::ng-deep .mat-mdc-form-field-subscript-wrapper{display:none}.report .resizer{flex:0 0 11px;align-self:stretch;display:flex;justify-content:center;cursor:col-resize;touch-action:none;-webkit-user-select:none;user-select:none}.report .resizer:before{content:\"\";width:0px;background:#0000001f;transition:width .12s ease,background-color .12s ease}.report .resizer:hover:before{width:3px;background:var(--brand-primary-color)}.report.resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}.report.resizing .resizer:before{width:3px;background:var(--brand-primary-color)}.report.resizing .chat,.report.resizing .viewer{pointer-events:none}::ng-deep body.body-report-reports .mat-mdc-card-content{display:flex;flex-direction:column;box-sizing:border-box}::ng-deep body.body-report-reports .mat-mdc-card-content mat-tab-nav-panel{flex:1;min-height:0}::ng-deep body.body-report-reports .mat-mdc-card-content mat-tab-nav-panel router-outlet+ng-component{height:100%}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: FsAutocompleteChipsModule }, { kind: "component", type: i2$2.FsAutocompleteChipsComponent, selector: "fs-autocomplete-chips", inputs: ["fetch", "appearance", "floatLabel", "readonly", "size", "label", "placeholder", "chipImage", "chipBackground", "chipColor", "chipIcon", "chipIconColor", "chipClass", "chipPadding", "shape", "hint", "allowText", "allowObject", "delay", "minPanelWidth", "maxPanelHeight", "validateText", "removable", "allowClear", "color", "background", "orderable", "padless", "initOnClick", "fetchOnFocus", "multiple", "multipleAdd", "confirm", "disabled", "groupBy", "panelWidth", "panelClass", "compareWith"], outputs: ["selected", "removed", "reordered", "clear", "panelOpened", "panelClosed"] }, { kind: "directive", type: i2$2.FsAutocompleteObjectDirective, selector: "[fsAutocompleteObject],[fsAutocompleteChipsTemplate]" }, { kind: "directive", type: i2$2.FsAutocompleteChipsStaticDirective, selector: "[fsAutocompleteChipsStatic]", inputs: ["show", "disable"], outputs: ["click", "selected"] }, { kind: "ngmodule", type: FsFilterModule }, { kind: "component", type: i2.FilterComponent, selector: "fs-filter", inputs: ["config"], outputs: ["closed", "opened", "ready"] }, { kind: "ngmodule", type: FsMenuModule }, { kind: "component", type: i2$3.FsMenuComponent, selector: "fs-menu", inputs: ["class", "buttonClass", "buttonType", "buttonColor"], outputs: ["opened", "closed"] }, { kind: "directive", type: i2$3.FsMenuItemDirective, selector: "fs-menu-group,[fs-menu-item]" }, { kind: "component", type: FsAiChatComponent, selector: "fs-ai-chat", inputs: ["basePath", "requestData", "introMessage", "showThinking"], outputs: ["response", "showThinkingChange"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: ReportCanvasComponent, selector: "app-report-canvas", inputs: ["report", "editMode"], outputs: ["componentSettings", "reportChanged", "editDone"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3541
3544
  }
3542
3545
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ReportComponent, decorators: [{
@@ -3550,7 +3553,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
3550
3553
  ReportPdfService,
3551
3554
  // Tree-shaken ECharts core + the 'report' house theme, loaded lazily with
3552
3555
  // this route's chunk.
3553
- provideEchartsCore({ echarts: () => import('./firestitch-report-echarts-BYmAhi-N.mjs').then((module) => module.default) }),
3556
+ provideEchartsCore({ echarts: () => import('./firestitch-report-echarts-DM9HRleW.mjs').then((module) => module.default) }),
3554
3557
  ], imports: [
3555
3558
  FormsModule,
3556
3559
  FsAutocompleteChipsModule,
@@ -4870,7 +4873,7 @@ class FsAiReportComponent {
4870
4873
  ReportPptxService,
4871
4874
  ReportPdfService,
4872
4875
  // Tree-shaken ECharts core + the 'report' house theme, loaded lazily.
4873
- provideEchartsCore({ echarts: () => import('./firestitch-report-echarts-BYmAhi-N.mjs').then((module) => module.default) }),
4876
+ provideEchartsCore({ echarts: () => import('./firestitch-report-echarts-DM9HRleW.mjs').then((module) => module.default) }),
4874
4877
  ], viewQueries: [{ propertyName: "_split", first: true, predicate: ["split"], descendants: true, static: true }, { propertyName: "_chatPanel", first: true, predicate: ["chatPanel"], descendants: true, read: ElementRef, static: true }, { propertyName: "_canvas", first: true, predicate: ReportCanvasComponent, descendants: true }], ngImport: i0, template: "<div class=\"fs-ai-report fs-column\">\n\n <div class=\"fs-ai-report__header fs-row.align-center\">\n <h2 class=\"fs-ai-report__title fs-flex\">{{ report?.name }}</h2>\n\n @if (report) {\n <!-- Report-level filters, inline with the toolbar actions. fs-filter\n reads its config once at init, so it's keyed on the filter\n signature: when the report-level filter set changes the block is\n recreated and re-reads the rebuilt config. -->\n @if (reportHasFilters) {\n @for (key of [reportFilterKey]; track key) {\n <fs-filter\n class=\"fs-ai-report__filters\"\n [config]=\"reportFilterConfig\">\n </fs-filter>\n }\n }\n\n <button\n mat-icon-button\n type=\"button\"\n [matTooltip]=\"editMode ? 'Done' : 'Edit layout'\"\n (click)=\"toggleEditMode()\">\n <mat-icon>{{ editMode ? 'lock' : 'open_with' }}</mat-icon>\n </button>\n\n <button\n mat-icon-button\n type=\"button\"\n matTooltip=\"Export\"\n [fsMenuTriggerFor]=\"exportMenu\">\n <mat-icon>download</mat-icon>\n </button>\n <fs-menu #exportMenu>\n <ng-template\n fs-menu-item\n (click)=\"exportPowerpoint()\">\n Export PowerPoint\n </ng-template>\n <ng-template\n fs-menu-item\n (click)=\"exportPdf()\">\n Export PDF\n </ng-template>\n <ng-template\n fs-menu-item\n (click)=\"exportData()\">\n Export Raw Data\n </ng-template>\n @if ((report?.pages?.length ?? 0) > 1) {\n <ng-template\n fs-menu-item\n (click)=\"exportData(true)\">\n Export Raw Data (This Page)\n </ng-template>\n }\n </fs-menu>\n\n <button\n mat-icon-button\n type=\"button\"\n matTooltip=\"Report settings\"\n (click)=\"reportSettings()\">\n <mat-icon>settings</mat-icon>\n </button>\n }\n </div>\n\n <div\n #split\n class=\"fs-ai-report__split fs-row.align-start\">\n <fs-ai-chat\n #chatPanel\n class=\"chat\"\n [basePath]=\"basePath()\"\n [requestData]=\"{ reportId: reportId() }\"\n (response)=\"onChatResponse($event)\">\n </fs-ai-chat>\n\n <div\n class=\"resizer\"\n (pointerdown)=\"onResizeStart($event)\">\n </div>\n\n <div class=\"viewer fs-flex fs-column\">\n @if (report) {\n <app-report-canvas\n [report]=\"report\"\n [editMode]=\"editMode\"\n (componentSettings)=\"componentSettings($event)\"\n (reportChanged)=\"onCanvasReportChanged()\"\n (editDone)=\"toggleEditMode()\">\n </app-report-canvas>\n }\n </div>\n </div>\n</div>\n", styles: [".fs-ai-report{height:100%;min-height:500px;display:flex;flex-direction:column}.fs-ai-report__header{flex:0 0 auto;margin-bottom:10px}.fs-ai-report__title{margin:0;min-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fs-ai-report__filters{flex:0 1 auto;min-width:0;display:block;margin:0 5px 0 0}.fs-ai-report__filters ::ng-deep .filter-bar-container{align-items:center!important}.fs-ai-report__filters ::ng-deep .mat-mdc-form-field-subscript-wrapper{display:none}.fs-ai-report__split{flex:1 1 auto;min-height:0}.fs-ai-report .chat{display:block;flex:0 0 25%;width:100%;height:100%;min-height:400px;min-width:0;border:none}.fs-ai-report .viewer{display:flex;flex-direction:column;min-width:0;height:100%;overflow:hidden}.fs-ai-report .resizer{flex:0 0 11px;align-self:stretch;display:flex;justify-content:center;cursor:col-resize;touch-action:none;-webkit-user-select:none;user-select:none}.fs-ai-report .resizer:before{content:\"\";width:3px;border-radius:3px;background:transparent;transition:background-color .12s ease}.fs-ai-report .resizer:hover:before{background:var(--brand-primary-color)}.fs-ai-report__split.resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}.fs-ai-report__split.resizing .resizer:before{background:var(--brand-primary-color)}.fs-ai-report__split.resizing .chat,.fs-ai-report__split.resizing .viewer{pointer-events:none}\n"], dependencies: [{ kind: "ngmodule", type: FsFilterModule }, { kind: "component", type: i2.FilterComponent, selector: "fs-filter", inputs: ["config"], outputs: ["closed", "opened", "ready"] }, { kind: "ngmodule", type: FsMenuModule }, { kind: "component", type: i2$3.FsMenuComponent, selector: "fs-menu", inputs: ["class", "buttonClass", "buttonType", "buttonColor"], outputs: ["opened", "closed"] }, { kind: "directive", type: i2$3.FsMenuItemDirective, selector: "fs-menu-group,[fs-menu-item]" }, { kind: "directive", type: i2$3.FsMenuTriggerDirective, selector: "[fsMenuTriggerFor]", inputs: ["fsMenuTriggerFor"] }, { kind: "component", type: FsAiChatComponent, selector: "fs-ai-chat", inputs: ["basePath", "requestData", "introMessage", "showThinking"], outputs: ["response", "showThinkingChange"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3$2.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i2$5.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: ReportCanvasComponent, selector: "app-report-canvas", inputs: ["report", "editMode"], outputs: ["componentSettings", "reportChanged", "editDone"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
4875
4878
  }
4876
4879
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FsAiReportComponent, decorators: [{
@@ -4883,7 +4886,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
4883
4886
  ReportPptxService,
4884
4887
  ReportPdfService,
4885
4888
  // Tree-shaken ECharts core + the 'report' house theme, loaded lazily.
4886
- provideEchartsCore({ echarts: () => import('./firestitch-report-echarts-BYmAhi-N.mjs').then((module) => module.default) }),
4889
+ provideEchartsCore({ echarts: () => import('./firestitch-report-echarts-DM9HRleW.mjs').then((module) => module.default) }),
4887
4890
  ], imports: [
4888
4891
  FsFilterModule,
4889
4892
  FsMenuModule,
@@ -4917,4 +4920,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
4917
4920
  */
4918
4921
 
4919
4922
  export { FsAiReportsComponent as F, REPORT_CHART_COLORS_CSS as R, ReportComponent as a, FsAiReportComponent as b, ReportData as c, ReportService as d, ReportFilterStateService as e, FREQUENCY_OPTIONS as f, ReportNodeType as g, ReportState as h, ReportStates as i };
4920
- //# sourceMappingURL=firestitch-report-firestitch-report-acZuB8V2.mjs.map
4923
+ //# sourceMappingURL=firestitch-report-firestitch-report-D9XMKkVT.mjs.map