{"version":3,"file":"dlr-eoc-utils-browser.mjs","sources":["../../../projects/utils-browser/src/lib/download/download.ts","../../../projects/utils-browser/src/lib/layout/layout.ts","../../../projects/utils-browser/src/public-api.ts","../../../projects/utils-browser/src/dlr-eoc-utils-browser.ts"],"sourcesContent":["\n\nexport function downloadJson(data: object, fileName: string) {\n    const jsonData = JSON.stringify(data);\n    const blob = new Blob([jsonData], { type: 'text/json;charset=utf-8;' });\n    return downloadBlob(blob, fileName);\n}\n\n\nexport function downloadBlob(blob: Blob, fileName: string) {\n    const url = window.URL.createObjectURL(blob);\n    downloadUrl(url, fileName);\n}\n\n\nexport function downloadUrl(url: string, fileName: string) {\n    // window.open(url) doesn't work here. Instead, we create a temporary link item and simulate a click on it.\n    const a = document.createElement('a');\n    document.body.appendChild(a);\n    a.style.display = 'none';\n    a.href = url;\n    a.download = fileName;\n    a.click();\n\n    window.URL.revokeObjectURL(url);\n    document.body.removeChild(a);\n}","\nexport type PaperFormat = 'A0' | 'A1' | 'A2' | 'A3' | 'A4' | 'A5' | 'A6';\nexport type Orientation = 'landscape' | 'portrait';\nexport type Resolution = number;\n\nconst PaperSizeTable = {\n    A6: {\n        longCm: 14.8,\n        shortCm: 10.5\n    },\n    A5: {\n        longCm: 21.0,\n        shortCm: 14.8\n    },\n    A4: {\n        longCm: 29.7,\n        shortCm: 21.0\n    },\n    A3: {\n        longCm: 42.0,\n        shortCm: 29.7\n    },\n    A2: {\n        longCm: 59.4,\n        shortCm: 42.0\n    },\n    A1: {\n        longCm: 84.1,\n        shortCm: 59.4\n    },\n    A0: {\n        longCm: 118.9,\n        shortCm: 84.1\n    },\n};\n\nconst inchPerCm = 0.393701;\n\n\n/**\n * A utility class intended to help with getting the dimensions of a paper.\n * Especially useful for preparing html that needs to be printed.\n */\nexport class Paper {\n\n    readonly widthCm: number;\n    readonly heightCm: number;\n    readonly widthPx: number;\n    readonly heightPx: number;\n    constructor(\n        readonly format: PaperFormat,\n        readonly resolution: Resolution,\n        readonly orientation: Orientation) {\n\n        const shortCm = PaperSizeTable[format].shortCm;\n        const longCm = PaperSizeTable[format].longCm;\n        const shortPx = Math.floor(shortCm * inchPerCm * resolution);\n        const longPx = Math.floor(longCm * inchPerCm * resolution);\n\n        if (orientation === 'portrait') {\n            this.widthCm = shortCm;\n            this.heightCm = longCm;\n            this.widthPx = shortPx;\n            this.heightPx = longPx;\n        } else {\n            this.widthCm = longCm;\n            this.heightCm = shortCm;\n            this.widthPx = longPx;\n            this.heightPx = shortPx;\n        }\n    }\n\n    updateFormat(format: PaperFormat): Paper {\n        return new Paper(format, this.resolution, this.orientation);\n    }\n\n    updateResolution(resolution: Resolution): Paper {\n        return new Paper(this.format, resolution, this.orientation);\n    }\n\n    updateOrientation(orientation: Orientation): Paper {\n        return new Paper(this.format, this.resolution, orientation);\n    }\n\n}\n","/*\n * Public API Surface of utils-browser\n */\n\nexport * from './lib/download/download';\nexport * from './lib/layout/layout';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}