@firestitch/report 18.3.2 → 18.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/reports/dialogs/global-settings/components/semantic-database/semantic-database.component.d.ts +3 -0
- package/app/reports/export/report-pptx.service.d.ts +5 -0
- package/app/reports/interfaces/report.interface.d.ts +4 -1
- package/app/reports/option-builder.d.ts +15 -1
- package/app/reports/text.d.ts +1 -0
- package/app/reports/theme/palette.d.ts +2 -0
- package/esm2022/app/reports/dialogs/global-settings/components/semantic-database/semantic-database.component.mjs +28 -14
- package/esm2022/app/reports/dialogs/global-settings/global-settings.component.mjs +3 -3
- package/esm2022/app/reports/export/report-pptx.service.mjs +109 -12
- package/esm2022/app/reports/interfaces/report.interface.mjs +1 -1
- package/esm2022/app/reports/option-builder.mjs +137 -18
- package/esm2022/app/reports/text.mjs +2 -2
- package/esm2022/app/reports/theme/palette.mjs +9 -1
- package/fesm2022/{firestitch-report-echarts-D4xJt3zs.mjs → firestitch-report-echarts-CtKYuRcT.mjs} +2 -2
- package/fesm2022/{firestitch-report-echarts-D4xJt3zs.mjs.map → firestitch-report-echarts-CtKYuRcT.mjs.map} +1 -1
- package/fesm2022/{firestitch-report-firestitch-report-DY8HwvAU.mjs → firestitch-report-firestitch-report-Df1IXrEs.mjs} +1030 -796
- package/fesm2022/firestitch-report-firestitch-report-Df1IXrEs.mjs.map +1 -0
- package/fesm2022/firestitch-report.mjs +1 -1
- package/package.json +1 -1
- package/fesm2022/firestitch-report-firestitch-report-DY8HwvAU.mjs.map +0 -1
|
@@ -211,11 +211,11 @@ function hexColor(value) {
|
|
|
211
211
|
? `#${channels.map((channel) => Math.round(channel).toString(16).padStart(2, '0')).join('')}`
|
|
212
212
|
: undefined;
|
|
213
213
|
}
|
|
214
|
-
function escapeHtml(value) {
|
|
214
|
+
export function escapeHtml(value) {
|
|
215
215
|
return value
|
|
216
216
|
.replace(/&/g, '&')
|
|
217
217
|
.replace(/</g, '<')
|
|
218
218
|
.replace(/>/g, '>')
|
|
219
219
|
.replace(/"/g, '"');
|
|
220
220
|
}
|
|
221
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcHAvcmVwb3J0cy90ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDRFQUE0RTtBQUM1RSw4Q0FBOEM7QUFDOUMsRUFBRTtBQUNGLDRFQUE0RTtBQUM1RSwrRUFBK0U7QUFDL0UseUVBQXlFO0FBQ3pFLDBFQUEwRTtBQUcxRSw4RUFBOEU7QUFDOUUsb0VBQW9FO0FBQ3BFLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztBQUNwQyxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBMkIsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDO0FBQ2xGLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLFNBQVMsQ0FBQztBQWlDNUMsNkVBQTZFO0FBQzdFLDRFQUE0RTtBQUM1RSw2Q0FBNkM7QUFDN0MsTUFBTSxNQUFNLEdBQTBEO0lBQ3BFLGFBQWEsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUM7SUFDdEQsV0FBVyxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsUUFBUTtJQUMxQyxhQUFhLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxVQUFVO0NBQy9DLENBQUM7QUFFRiw2RUFBNkU7QUFDN0Usa0RBQWtEO0FBQ2xELE1BQU0sVUFBVSxjQUFjLENBQUMsSUFBWSxFQUFFLE9BQXlCO0lBQ3BFLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQywyQkFBMkIsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFhLEVBQUUsRUFBRTtRQUN4RSxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFFekMsT0FBTyxJQUFJLENBQUMs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UyxHQUFHLFNBQVMsQ0FBQztJQUNuQyxZQUFZLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUMvQixNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRWhELElBQUksUUFBUSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQzdCLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxvRUFBb0U7SUFDcEUsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7SUFFMUUsT0FBTyxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUM7UUFDMUIsQ0FBQyxDQUFDLElBQUksUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRTtRQUM3RixDQUFDLENBQUMsU0FBUyxDQUFDO0FBQ2hCLENBQUM7QUFFRCxTQUFTLFVBQVUsQ0FBQyxLQUFhO0lBQy9CLE9BQU8sS0FBSztTQUNULE9BQU8sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDO1NBQ3RCLE9BQU8sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDO1NBQ3JCLE9BQU8sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDO1NBQ3JCLE9BQU8sQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDN0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIFRleHQgYmxvY2tzIOKAlCBzaGFyZWQgYnkgdGhlIGNhbnZhcyBhbmQgYm90aCBleHBvcnRzLCBzbyBhIGJsb2NrIHJlYWRzIHRoZVxuLy8gc2FtZSBvbiBzY3JlZW4sIGluIHRoZSBkZWNrIGFuZCBpbiB0aGUgUERGLlxuLy9cbi8vIEEgYmxvY2sncyBodG1sIGFycml2ZXMgYWxyZWFkeSByZWJ1aWx0IHNlcnZlci1zaWRlIGZyb20gYSBzbWFsbCBhbGxvd2xpc3Rcbi8vIChSZXBvcnRUZXh0SHRtbCk6IHAsIGgxLWgzLCBzdHJvbmcsIGVtLCB1LCBzLCB1bC9vbC9saSwgYnIsIGEsIGFuZCBzcGFuIHdpdGhcbi8vIGNvbG9yIC8gYmFja2dyb3VuZC1jb2xvciAvIGZvbnQtc2l6ZSAvIGZvbnQtd2VpZ2h0IC8gZm9udC1mYW1pbHksIHBsdXNcbi8vIHRleHQtYWxpZ24gb24gYSBibG9jay4gRXZlcnl0aGluZyBoZXJlIG9ubHkgaGFzIHRvIHVuZGVyc3RhbmQgdGhhdCBzZXQuXG5cblxuLy8gQm9keSB0ZXh0IHNpemUsIHBvaW50cywgYW5kIHRoZSBoZWFkaW5nIHNpemVzIOKAlCB0aGUgc2FtZSBudW1iZXJzIHRoZSBjYW52YXNcbi8vIHN0eWxlc2hlZXQgdXNlcywgc28gYW4gdW5zdHlsZWQgcGFyYWdyYXBoIGlzIG9uZSBzaXplIGV2ZXJ5d2hlcmUuXG5leHBvcnQgY29uc3QgREVGQVVMVF9URVhUX1NJWkUgPSAxMjtcbmV4cG9ydCBjb25zdCBIRUFESU5HX1RFWFRfU0laRVM6IFJlY29yZDxudW1iZXIsIG51bWJlcj4gPSB7IDE6IDI0LCAyOiAxOCwgMzogMTQgfTtcbmV4cG9ydCBjb25zdCBERUZBVUxUX1RFWFRfQ09MT1IgPSAnIzFmMjkzMyc7XG5cbi8vIFdoYXQgdGhlIHRva2VucyBpbiBhIGJsb2NrJ3MgaHRtbCBhcmUgZmlsbGVkIHdpdGgsIHBlciBwYWdlLlxuZXhwb3J0IGludGVyZmFjZSBUZXh0VG9rZW5Db250ZXh0IHtcbiAgcGFnZU51bWJlcjogbnVtYmVyO1xuICBwYWdlTmFtZTogc3RyaW5nO1xuICByZXBvcnROYW1lOiBzdHJpbmc7XG59XG5cbi8vIE9uZSBzdHlsZWQgc3RyZXRjaCBvZiB0ZXh0LlxuZXhwb3J0IGludGVyZmFjZSBUZXh0UnVuIHtcbiAgdGV4dDogc3RyaW5nO1xuICBib2xkPzogYm9vbGVhbjtcbiAgaXRhbGljPzogYm9vbGVhbjtcbiAgdW5kZXJsaW5lPzogYm9vbGVhbjtcbiAgc3RyaWtlPzogYm9vbGVhbjtcbiAgLy8gI3JyZ2diYlxuICBjb2xvcj86IHN0cmluZztcbiAgaGlnaGxpZ2h0Pzogc3RyaW5nO1xuICAvLyBwb2ludHNcbiAgZm9udFNpemU/OiBudW1iZXI7XG4gIGZvbnRGYWNlPzogc3RyaW5nO1xuICBsaW5rPzogc3RyaW5nO1xufVxuXG4vLyBPbmUgbGluZS1zdGFydGluZyBibG9jazogYSBwYXJhZ3JhcGgsIGEgaGVhZGluZyBvciBhIGxpc3QgaXRlbS5cbmV4cG9ydCBpbnRlcmZhY2UgVGV4dFBhcmFncmFwaCB7XG4gIHJ1bnM6IFRleHRSdW5bXTtcbiAgYWxpZ24/OiAnbGVmdCcgfCAnY2VudGVyJyB8ICdyaWdodCcgfCAnanVzdGlmeSc7XG4gIGJ1bGxldD86ICdidWxsZXQnIHwgJ251bWJlcic7XG4gIGhlYWRpbmc/OiBudW1iZXI7XG59XG5cbi8vIFRoZSB0b2tlbnMgYSBibG9jayBtYXkgY2FycnksIHdpdGggd2hhdCBmaWxscyBlYWNoLiB7e3BhZ2UubnVtYmVyfX0gaXMgdGhlXG4vLyBwYWdlJ3MgcG9zaXRpb24gYW1vbmcgdGhlIHJlcG9ydCdzIHBhZ2VzICgxLWJhc2VkKSwgd2hpY2ggaXMgd2hhdCBtYWtlcyBhXG4vLyBzaGFyZWQgZm9vdGVyIG51bWJlciBldmVyeSBwYWdlIGNvcnJlY3RseS5cbmNvbnN0IFRPS0VOUzogUmVjb3JkPHN0cmluZywgKGNvbnRleHQ6IFRleHRUb2tlbkNvbnRleHQpID0+IHN0cmluZz4gPSB7XG4gICdwYWdlLm51bWJlcic6IChjb250ZXh0KSA9PiBTdHJpbmcoY29udGV4dC5wYWdlTnVtYmVyKSxcbiAgJ3BhZ2UubmFtZSc6IChjb250ZXh0KSA9PiBjb250ZXh0LnBhZ2VOYW1lLFxuICAncmVwb3J0Lm5hbWUnOiAoY29udGV4dCkgPT4gY29udGV4dC5yZXBvcnROYW1lLFxufTtcblxuLy8gUmVwbGFjZSBldmVyeSB7e3Rva2VufX0gaW4gdGhlIGh0bWwuIFZhbHVlcyBhcmUgaHRtbC1lc2NhcGVkOiBhIHBhZ2UgbmFtZWRcbi8vIFwiUiZEIDxkcmFmdD5cIiBtdXN0IHJlYWQgYXMgdGhhdCwgbm90IGFzIG1hcmt1cC5cbmV4cG9ydCBmdW5jdGlvbiBmaWxsVGV4dFRva2VucyhodG1sOiBzdHJpbmcsIGNvbnRleHQ6IFRleHRUb2tlbkNvbnRleHQpOiBzdHJpbmcge1xuICByZXR1cm4gaHRtbC5yZXBsYWNlKC9cXHtcXHtcXHMqKFthLXouXSspXFxzKlxcfVxcfS9naSwgKG1hdGNoLCB0b2tlbjogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgZmlsbCA9IFRPS0VOU1t0b2tlbi50b0xvd2VyQ2FzZSgpXTtcblxuICAgIHJldHVybiBmaWxsID8gZXNjYXBlSHRtbChmaWxsKGNvbnRleHQpKSA6IG1hdGNoO1xuICB9KTtcbn1cblxuLy8gV2FsayBhIGJsb2NrJ3MgaHRtbCBpbnRvIHBhcmFncmFwaHMgb2Ygc3R5bGVkIHJ1bnMg4oCUIHRoZSBzaGFwZSBib3RoIGV4cG9ydHNcbi8vIGRyYXcgZnJvbS4gVG9rZW5zIGFyZSBmaWxsZWQgZmlyc3Qgc28gYSBwYWdlIG51bWJlciBpcyBqdXN0IHRleHQgYnkgdGhlbi5cbmV4cG9ydCBmdW5jdGlvbiB0ZXh0UGFyYWdyYXBocyhodG1sOiBzdHJpbmcsIGNvbnRleHQ6IFRleHRUb2tlbkNvbnRleHQpOiBUZXh0UGFyYWdyYXBoW10ge1xuICBjb25zdCBkb2N1bWVudCA9IG5ldyBET01QYXJzZXIoKS5wYXJzZUZyb21TdHJpbmcoYDxib2R5PiR7ZmlsbFRleHRUb2tlbnMoaHRtbCwgY29udGV4dCl9PC9ib2R5PmAsICd0ZXh0L2h0bWwnKTtcbiAgY29uc3QgcGFyYWdyYXBoczogVGV4dFBhcmFncmFwaFtdID0gW107XG5cbiAgd2Fsa0Jsb2Nrcyhkb2N1bWVudC5ib2R5LCBwYXJhZ3JhcGhzLCBudWxsKTtcblxuICByZXR1cm4gcGFyYWdyYXBocy5maWx0ZXIoKHBhcmFncmFwaCwgaW5kZXgpID0+XG4gICAgLy8gS2VlcCBhbiBlbXB0eSBwYXJhZ3JhcGggYmV0d2VlbiB0d28gb3RoZXJzIChhIGRlbGliZXJhdGUgYmxhbmsgbGluZSksIGJ1dFxuICAgIC8vIG5vdCBvbmUgbGVmdCBkYW5nbGluZyBhdCBlaXRoZXIgZW5kLlxuICAgIHBhcmFncmFwaC5ydW5zLmxlbmd0aCB8fCAoaW5kZXggPiAwICYmIGluZGV4IDwgcGFyYWdyYXBocy5sZW5ndGggLSAxKSk7XG59XG5cbi8vIFRoZSBodG1sIGFzIHBsYWluIHRleHQg4oCUIHdoYXQgYSBibG9jayBzYXlzLCBmb3IgYW55dGhpbmcgdGhhdCBjYW5ub3Qgc3R5bGUgaXQuXG5leHBvcnQgZnVuY3Rpb24gdGV4dFBsYWluKGh0bWw6IHN0cmluZywgY29udGV4dDogVGV4dFRva2VuQ29udGV4dCk6IHN0cmluZyB7XG4gIHJldHVybiB0ZXh0UGFyYWdyYXBocyhodG1sLCBjb250ZXh0KVxuICAgIC5tYXAoKHBhcmFncmFwaCkgPT4gcGFyYWdyYXBoLnJ1bnMubWFwKChydW4pID0+IHJ1bi50ZXh0KS5qb2luKCcnKSlcbiAgICAuam9pbignXFxuJyk7XG59XG5cbmZ1bmN0aW9uIHdhbGtCbG9ja3MoXG4gIHBhcmVudDogTm9kZSxcbiAgcGFyYWdyYXBoczogVGV4dFBhcmFncmFwaFtdLFxuICBsaXN0OiAnYnVsbGV0JyB8ICdudW1iZXInIHwgbnVsbCxcbik6IHZvaWQge1xuICAvLyBMb29zZSBpbmxpbmUgY29udGVudCBiZXR3ZWVuIGJsb2NrcyAodGV4dCBzdHJhaWdodCB1bmRlciA8Ym9keT4gb3IgPGxpPilcbiAgLy8gaXMgZ2F0aGVyZWQgaW50byBhIHBhcmFncmFwaCBvZiBpdHMgb3duLlxuICBsZXQgbG9vc2U6IFRleHRQYXJhZ3JhcGggfCBudWxsID0gbnVsbDtcbiAgY29uc3QgZmx1c2ggPSAoKSA9PiB7XG4gICAgaWYgKGxvb3NlKSB7XG4gICAgICBwYXJhZ3JhcGhzLnB1c2gobG9vc2UpO1xuICAgICAgbG9vc2UgPSBudWxsO1xuICAgIH1cbiAgfTtcblxuICBwYXJlbnQuY2hpbGROb2Rlcy5mb3JFYWNoKChub2RlKSA9PiB7XG4gICAgY29uc3QgbmFtZSA9IG5vZGUubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtcblxuICAgIGlmIChuYW1lID09PSAndWwnIHx8IG5hbWUgPT09ICdvbCcpIHtcbiAgICAgIGZsdXNoKCk7XG4gICAgICB3YWxrQmxvY2tzKG5vZGUsIHBhcmFncmFwaHMsIG5hbWUgPT09ICd1bCcgPyAnYnVsbGV0JyA6ICdudW1iZXInKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChuYW1lID09PSAnbGknKSB7XG4gICAgICBmbHVzaCgpO1xuICAgICAgY29uc3QgaXRlbTogVGV4dFBhcmFncmFwaCA9IHsgcnVuczogW10sIGJ1bGxldDogbGlzdCA/PyAnYnVsbGV0JyB9O1xuICAgICAgY29uc3QgbmVzdGVkOiBUZXh0UGFyYWdyYXBoW10gPSBbXTtcbiAgICAgIC8vIEEgbGlzdCBpdGVtJ3MgZmlyc3QgcGFyYWdyYXBoIElTIHRoZSBpdGVtOyBhbnl0aGluZyBhZnRlciBpdCBpcyBpdHMgb3duXG4gICAgICAvLyBsaW5lIHVuZGVyIHRoZSBzYW1lIGJ1bGxldC5cbiAgICAgIHdhbGtCbG9ja3Mobm9kZSwgbmVzdGVkLCBsaXN0KTtcbiAgICAgIGNvbnN0IFtmaXJzdCwgLi4ucmVzdF0gPSBuZXN0ZWQubGVuZ3RoID8gbmVzdGVkIDogW2l0ZW1dO1xuICAgICAgcGFyYWdyYXBocy5wdXNoKHsgLi4uZmlyc3QsIGJ1bGxldDogbGlzdCA/PyAnYnVsbGV0JyB9LCAuLi5yZXN0KTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChuYW1lID09PSAncCcgfHwgL15oWzEtM10kLy50ZXN0KG5hbWUpKSB7XG4gICAgICBmbHVzaCgpO1xuICAgICAgY29uc3QgZWxlbWVudCA9IG5vZGUgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICBjb25zdCBoZWFkaW5nID0gbmFtZS5zdGFydHNXaXRoKCdoJykgPyBOdW1iZXIobmFtZVsxXSkgOiB1bmRlZmluZWQ7XG4gICAgICBjb25zdCBwYXJhZ3JhcGg6IFRleHRQYXJhZ3JhcGggPSB7XG4gICAgICAgIHJ1bnM6IFtdLFxuICAgICAgICBhbGlnbjogYmxvY2tBbGlnbihlbGVtZW50KSxcbiAgICAgICAgYnVsbGV0OiB1bmRlZmluZWQsXG4gICAgICAgIGhlYWRpbmcsXG4gICAgICB9O1xuICAgICAgY29uc3QgYmFzZTogUGFydGlhbDxUZXh0UnVuPiA9IGhlYWRpbmdcbiAgICAgICAgPyB7IGJvbGQ6IHRydWUsIGZvbnRTaXplOiBIRUFESU5HX1RFWFRfU0laRVNbaGVhZGluZ10gfVxuICAgICAgICA6IHt9O1xuXG4gICAgICB3YWxrSW5saW5lKG5vZGUsIGJhc2UsIHBhcmFncmFwaCwgcGFyYWdyYXBocyk7XG4gICAgICBwYXJhZ3JhcGhzLnB1c2gocGFyYWdyYXBoKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxvb3NlID0gbG9vc2UgPz8geyBydW5zOiBbXSB9O1xuICAgIHdhbGtJbmxpbmUobm9kZSwge30sIGxvb3NlLCBwYXJhZ3JhcGhzLCB0cnVlKTtcbiAgfSk7XG5cbiAgZmx1c2goKTtcbn1cblxuLy8gQWNjdW11bGF0ZSBpbmxpbmUgc3R5bGVzIGRvd24gdGhlIHRyZWUuIEEgPGJyPiBlbmRzIHRoZSBjdXJyZW50IGxpbmU6IHRoZVxuLy8gcnVucyBhZnRlciBpdCBzdGFydCBhIG5ldyBwYXJhZ3JhcGggd2l0aCB0aGUgc2FtZSBhbGlnbm1lbnQgYW5kIGJ1bGxldC5cbmZ1bmN0aW9uIHdhbGtJbmxpbmUoXG4gIG5vZGU6IE5vZGUsXG4gIHN0eWxlOiBQYXJ0aWFsPFRleHRSdW4+LFxuICBwYXJhZ3JhcGg6IFRleHRQYXJhZ3JhcGgsXG4gIHBhcmFncmFwaHM6IFRleHRQYXJhZ3JhcGhbXSxcbiAgaXNTZWxmID0gZmFsc2UsXG4pOiB2b2lkIHtcbiAgY29uc3QgdmlzaXQgPSAoY2hpbGQ6IE5vZGUpID0+IHtcbiAgICBpZiAoY2hpbGQubm9kZVR5cGUgPT09IE5vZGUuVEVYVF9OT0RFKSB7XG4gICAgICBjb25zdCB0ZXh0ID0gY2hpbGQudGV4dENvbnRlbnQgPz8gJyc7XG4gICAgICBpZiAodGV4dCkge1xuICAgICAgICBwYXJhZ3JhcGgucnVucy5wdXNoKHsgLi4uc3R5bGUsIHRleHQgfSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoY2hpbGQubm9kZVR5cGUgIT09IE5vZGUuRUxFTUVOVF9OT0RFKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudCA9IGNoaWxkIGFzIEhUTUxFbGVtZW50O1xuICAgIGNvbnN0IG5hbWUgPSBlbGVtZW50Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7XG5cbiAgICBpZiAobmFtZSA9PT0gJ2JyJykge1xuICAgICAgcGFyYWdyYXBocy5wdXNoKHsgLi4ucGFyYWdyYXBoLCBydW5zOiBbLi4ucGFyYWdyYXBoLnJ1bnNdIH0pO1xuICAgICAgcGFyYWdyYXBoLnJ1bnMubGVuZ3RoID0gMDtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHdhbGtJbmxpbmUoZWxlbWVudCwgeyAuLi5zdHlsZSwgLi4uaW5saW5lU3R5bGUoZWxlbWVudCkgfSwgcGFyYWdyYXBoLCBwYXJhZ3JhcGhzKTtcbiAgfTtcblxuICBpZiAoaXNTZWxmKSB7XG4gICAgdmlzaXQobm9kZSk7XG4gIH0gZWxzZSB7XG4gICAgbm9kZS5jaGlsZE5vZGVzLmZvckVhY2godmlzaXQpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGlubGluZVN0eWxlKGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogUGFydGlhbDxUZXh0UnVuPiB7XG4gIGNvbnN0IG5hbWUgPSBlbGVtZW50Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7XG4gIGNvbnN0IHN0eWxlOiBQYXJ0aWFsPFRleHRSdW4+ID0ge307XG5cbiAgaWYgKG5hbWUgPT09ICdzdHJvbmcnKSB7XG4gICAgc3R5bGUuYm9sZCA9IHRydWU7XG4gIH1cbiAgaWYgKG5hbWUgPT09ICdlbScpIHtcbiAgICBzdHlsZS5pdGFsaWMgPSB0cnVlO1xuICB9XG4gIGlmIChuYW1lID09PSAndScpIHtcbiAgICBzdHlsZS51bmRlcmxpbmUgPSB0cnVlO1xuICB9XG4gIGlmIChuYW1lID09PSAncycpIHtcbiAgICBzdHlsZS5zdHJpa2UgPSB0cnVlO1xuICB9XG4gIGlmIChuYW1lID09PSAnYScpIHtcbiAgICBzdHlsZS5saW5rID0gZWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2hyZWYnKSA/PyB1bmRlZmluZWQ7XG4gICAgc3R5bGUudW5kZXJsaW5lID0gdHJ1ZTtcbiAgfVxuXG4gIGNvbnN0IGNzcyA9IGVsZW1lbnQuc3R5bGU7XG4gIGlmIChjc3MuY29sb3IpIHtcbiAgICBzdHlsZS5jb2xvciA9IGhleENvbG9yKGNzcy5jb2xvcik7XG4gIH1cbiAgaWYgKGNzcy5iYWNrZ3JvdW5kQ29sb3IpIHtcbiAgICBzdHlsZS5oaWdobGlnaHQgPSBoZXhDb2xvcihjc3MuYmFja2dyb3VuZENvbG9yKTtcbiAgfVxuICBpZiAoY3NzLmZvbnRTaXplKSB7XG4gICAgc3R5bGUuZm9udFNpemUgPSBwb2ludHMoY3NzLmZvbnRTaXplKTtcbiAgfVxuICBpZiAoY3NzLmZvbnRXZWlnaHQpIHtcbiAgICBzdHlsZS5ib2xkID0gY3NzLmZvbnRXZWlnaHQgPT09ICdib2xkJyB8fCBOdW1iZXIoY3NzLmZvbnRXZWlnaHQpID49IDYwMDtcbiAgfVxuICBpZiAoY3NzLmZvbnRTdHlsZSkge1xuICAgIHN0eWxlLml0YWxpYyA9IGNzcy5mb250U3R5bGUgPT09ICdpdGFsaWMnO1xuICB9XG4gIGlmIChjc3MudGV4dERlY29yYXRpb24pIHtcbiAgICBzdHlsZS51bmRlcmxpbmUgPSBjc3MudGV4dERlY29yYXRpb24uaW5jbHVkZXMoJ3VuZGVybGluZScpO1xuICAgIHN0eWxlLnN0cmlrZSA9IGNzcy50ZXh0RGVjb3JhdGlvbi5pbmNsdWRlcygnbGluZS10aHJvdWdoJyk7XG4gIH1cbiAgaWYgKGNzcy5mb250RmFtaWx5KSB7XG4gICAgc3R5bGUuZm9udEZhY2UgPSBjc3MuZm9udEZhbWlseS5zcGxpdCgnLCcpWzBdLnJlcGxhY2UoL1tcIiddL2csICcnKS50cmltKCk7XG4gIH1cblxuICByZXR1cm4gc3R5bGU7XG59XG5cbmZ1bmN0aW9uIGJsb2NrQWxpZ24oZWxlbWVudDogSFRNTEVsZW1lbnQpOiBUZXh0UGFyYWdyYXBoWydhbGlnbiddIHtcbiAgY29uc3QgYWxpZ24gPSBlbGVtZW50LnN0eWxlLnRleHRBbGlnbjtcblxuICByZXR1cm4gYWxpZ24gPT09ICdjZW50ZXInIHx8IGFsaWduID09PSAncmlnaHQnIHx8IGFsaWduID09PSAnanVzdGlmeScgPyBhbGlnbiA6IHVuZGVmaW5lZDtcbn1cblxuLy8gQSBDU1MgZm9udC1zaXplIGluIHBvaW50cy4gVGhlIGNhbnZhcyByZW5kZXJzIGF0IDk2cHggcGVyIGluY2gsIHNvIDFweCBpc1xuLy8gZXhhY3RseSAwLjc1cHQ7IGVtL3JlbS8lIGFyZSByZWxhdGl2ZSB0byB0aGUgYm9keSBzaXplLlxuZnVuY3Rpb24gcG9pbnRzKHZhbHVlOiBzdHJpbmcpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICBjb25zdCBtYXRjaCA9IC9eKFtcXGQuXSspKHB0fHB4fGVtfHJlbXwlKSQvLmV4ZWModmFsdWUudHJpbSgpKTtcbiAgaWYgKCFtYXRjaCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBjb25zdCBzaXplID0gTnVtYmVyKG1hdGNoWzFdKTtcbiAgc3dpdGNoIChtYXRjaFsyXSkge1xuICAgIGNhc2UgJ3B0JzpcbiAgICAgIHJldHVybiBzaXplO1xuICAgIGNhc2UgJ3B4JzpcbiAgICAgIHJldHVybiBzaXplICogMC43NTtcbiAgICBjYXNlICclJzpcbiAgICAgIHJldHVybiAoc2l6ZSAvIDEwMCkgKiBERUZBVUxUX1RFWFRfU0laRTtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIHNpemUgKiBERUZBVUxUX1RFWFRfU0laRTtcbiAgfVxufVxuXG4vLyBBbnkgQ1NTIGNvbG9yIHRoZSBhbGxvd2xpc3QgbGV0cyB0aHJvdWdoIChoZXgsIHJnYigpLCBhIG5hbWUpIGFzICNycmdnYmIg4oCUXG4vLyB0aGUgb25lIGZvcm0gYm90aCBleHBvcnRzIGFjY2VwdC4gVGhlIGJyb3dzZXIgcmVzb2x2ZXMgaXQsIHNvIGEgbmFtZWQgY29sb3Jcbi8vIGNvbWVzIG91dCBleGFjdGx5IGFzIHRoZSBjYW52YXMgcGFpbnRlZCBpdC5cbmxldCBjb2xvckNvbnRleHQ6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCB8IG51bGwgPSBudWxsO1xuXG5mdW5jdGlvbiBoZXhDb2xvcih2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgY29sb3JDb250ZXh0ID0gY29sb3JDb250ZXh0ID8/IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpLmdldENvbnRleHQoJzJkJyk7XG4gIGlmICghY29sb3JDb250ZXh0KSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGNvbG9yQ29udGV4dC5maWxsU3R5bGUgPSAnIzAwMDAwMCc7XG4gIGNvbG9yQ29udGV4dC5maWxsU3R5bGUgPSB2YWx1ZTtcbiAgY29uc3QgcmVzb2x2ZWQgPSBTdHJpbmcoY29sb3JDb250ZXh0LmZpbGxTdHlsZSk7XG5cbiAgaWYgKHJlc29sdmVkLnN0YXJ0c1dpdGgoJyMnKSkge1xuICAgIHJldHVybiByZXNvbHZlZDtcbiAgfVxuXG4gIC8vIHJnYmEoLi4uKSBmb3IgYSB0cmFuc2x1Y2VudCBjb2xvciDigJQgZHJvcCB0aGUgYWxwaGEsIGtlZXAgdGhlIGh1ZS5cbiAgY29uc3QgY2hhbm5lbHMgPSByZXNvbHZlZC5tYXRjaCgvW1xcZC5dKy9nKT8uc2xpY2UoMCwgMykubWFwKE51bWJlcikgPz8gW107XG5cbiAgcmV0dXJuIGNoYW5uZWxzLmxlbmd0aCA9PT0gM1xuICAgID8gYCMke2NoYW5uZWxzLm1hcCgoY2hhbm5lbCkgPT4gTWF0aC5yb3VuZChjaGFubmVsKS50b1N0cmluZygxNikucGFkU3RhcnQoMiwgJzAnKSkuam9pbignJyl9YFxuICAgIDogdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiBlc2NhcGVIdG1sKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gdmFsdWVcbiAgICAucmVwbGFjZSgvJi9nLCAnJmFtcDsnKVxuICAgIC5yZXBsYWNlKC88L2csICcmbHQ7JylcbiAgICAucmVwbGFjZSgvPi9nLCAnJmd0OycpXG4gICAgLnJlcGxhY2UoL1wiL2csICcmcXVvdDsnKTtcbn1cbiJdfQ==
|
|
221
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcHAvcmVwb3J0cy90ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDRFQUE0RTtBQUM1RSw4Q0FBOEM7QUFDOUMsRUFBRTtBQUNGLDRFQUE0RTtBQUM1RSwrRUFBK0U7QUFDL0UseUVBQXlFO0FBQ3pFLDBFQUEwRTtBQUcxRSw4RUFBOEU7QUFDOUUsb0VBQW9FO0FBQ3BFLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztBQUNwQyxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBMkIsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDO0FBQ2xGLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLFNBQVMsQ0FBQztBQWlDNUMsNkVBQTZFO0FBQzdFLDRFQUE0RTtBQUM1RSw2Q0FBNkM7QUFDN0MsTUFBTSxNQUFNLEdBQTBEO0lBQ3BFLGFBQWEsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUM7SUFDdEQsV0FBVyxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsUUFBUTtJQUMxQyxhQUFhLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxVQUFVO0NBQy9DLENBQUM7QUFFRiw2RUFBNkU7QUFDN0Usa0RBQWtEO0FBQ2xELE1BQU0sVUFBVSxjQUFjLENBQUMsSUFBWSxFQUFFLE9BQXlCO0lBQ3BFLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQywyQkFBMkIsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFhLEVBQUUsRUFBRTtRQUN4RSxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFFekMsT0FBTyxJQUFJLENBQUMs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UyxHQUFHLFNBQVMsQ0FBQztJQUNuQyxZQUFZLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUMvQixNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRWhELElBQUksUUFBUSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQzdCLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxvRUFBb0U7SUFDcEUsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7SUFFMUUsT0FBTyxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUM7UUFDMUIsQ0FBQyxDQUFDLElBQUksUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRTtRQUM3RixDQUFDLENBQUMsU0FBUyxDQUFDO0FBQ2hCLENBQUM7QUFFRCxNQUFNLFVBQVUsVUFBVSxDQUFDLEtBQWE7SUFDdEMsT0FBTyxLQUFLO1NBQ1QsT0FBTyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUM7U0FDdEIsT0FBTyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUM7U0FDckIsT0FBTyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUM7U0FDckIsT0FBTyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztBQUM3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gVGV4dCBibG9ja3Mg4oCUIHNoYXJlZCBieSB0aGUgY2FudmFzIGFuZCBib3RoIGV4cG9ydHMsIHNvIGEgYmxvY2sgcmVhZHMgdGhlXG4vLyBzYW1lIG9uIHNjcmVlbiwgaW4gdGhlIGRlY2sgYW5kIGluIHRoZSBQREYuXG4vL1xuLy8gQSBibG9jaydzIGh0bWwgYXJyaXZlcyBhbHJlYWR5IHJlYnVpbHQgc2VydmVyLXNpZGUgZnJvbSBhIHNtYWxsIGFsbG93bGlzdFxuLy8gKFJlcG9ydFRleHRIdG1sKTogcCwgaDEtaDMsIHN0cm9uZywgZW0sIHUsIHMsIHVsL29sL2xpLCBiciwgYSwgYW5kIHNwYW4gd2l0aFxuLy8gY29sb3IgLyBiYWNrZ3JvdW5kLWNvbG9yIC8gZm9udC1zaXplIC8gZm9udC13ZWlnaHQgLyBmb250LWZhbWlseSwgcGx1c1xuLy8gdGV4dC1hbGlnbiBvbiBhIGJsb2NrLiBFdmVyeXRoaW5nIGhlcmUgb25seSBoYXMgdG8gdW5kZXJzdGFuZCB0aGF0IHNldC5cblxuXG4vLyBCb2R5IHRleHQgc2l6ZSwgcG9pbnRzLCBhbmQgdGhlIGhlYWRpbmcgc2l6ZXMg4oCUIHRoZSBzYW1lIG51bWJlcnMgdGhlIGNhbnZhc1xuLy8gc3R5bGVzaGVldCB1c2VzLCBzbyBhbiB1bnN0eWxlZCBwYXJhZ3JhcGggaXMgb25lIHNpemUgZXZlcnl3aGVyZS5cbmV4cG9ydCBjb25zdCBERUZBVUxUX1RFWFRfU0laRSA9IDEyO1xuZXhwb3J0IGNvbnN0IEhFQURJTkdfVEVYVF9TSVpFUzogUmVjb3JkPG51bWJlciwgbnVtYmVyPiA9IHsgMTogMjQsIDI6IDE4LCAzOiAxNCB9O1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfVEVYVF9DT0xPUiA9ICcjMWYyOTMzJztcblxuLy8gV2hhdCB0aGUgdG9rZW5zIGluIGEgYmxvY2sncyBodG1sIGFyZSBmaWxsZWQgd2l0aCwgcGVyIHBhZ2UuXG5leHBvcnQgaW50ZXJmYWNlIFRleHRUb2tlbkNvbnRleHQge1xuICBwYWdlTnVtYmVyOiBudW1iZXI7XG4gIHBhZ2VOYW1lOiBzdHJpbmc7XG4gIHJlcG9ydE5hbWU6IHN0cmluZztcbn1cblxuLy8gT25lIHN0eWxlZCBzdHJldGNoIG9mIHRleHQuXG5leHBvcnQgaW50ZXJmYWNlIFRleHRSdW4ge1xuICB0ZXh0OiBzdHJpbmc7XG4gIGJvbGQ/OiBib29sZWFuO1xuICBpdGFsaWM/OiBib29sZWFuO1xuICB1bmRlcmxpbmU/OiBib29sZWFuO1xuICBzdHJpa2U/OiBib29sZWFuO1xuICAvLyAjcnJnZ2JiXG4gIGNvbG9yPzogc3RyaW5nO1xuICBoaWdobGlnaHQ/OiBzdHJpbmc7XG4gIC8vIHBvaW50c1xuICBmb250U2l6ZT86IG51bWJlcjtcbiAgZm9udEZhY2U/OiBzdHJpbmc7XG4gIGxpbms/OiBzdHJpbmc7XG59XG5cbi8vIE9uZSBsaW5lLXN0YXJ0aW5nIGJsb2NrOiBhIHBhcmFncmFwaCwgYSBoZWFkaW5nIG9yIGEgbGlzdCBpdGVtLlxuZXhwb3J0IGludGVyZmFjZSBUZXh0UGFyYWdyYXBoIHtcbiAgcnVuczogVGV4dFJ1bltdO1xuICBhbGlnbj86ICdsZWZ0JyB8ICdjZW50ZXInIHwgJ3JpZ2h0JyB8ICdqdXN0aWZ5JztcbiAgYnVsbGV0PzogJ2J1bGxldCcgfCAnbnVtYmVyJztcbiAgaGVhZGluZz86IG51bWJlcjtcbn1cblxuLy8gVGhlIHRva2VucyBhIGJsb2NrIG1heSBjYXJyeSwgd2l0aCB3aGF0IGZpbGxzIGVhY2guIHt7cGFnZS5udW1iZXJ9fSBpcyB0aGVcbi8vIHBhZ2UncyBwb3NpdGlvbiBhbW9uZyB0aGUgcmVwb3J0J3MgcGFnZXMgKDEtYmFzZWQpLCB3aGljaCBpcyB3aGF0IG1ha2VzIGFcbi8vIHNoYXJlZCBmb290ZXIgbnVtYmVyIGV2ZXJ5IHBhZ2UgY29ycmVjdGx5LlxuY29uc3QgVE9LRU5TOiBSZWNvcmQ8c3RyaW5nLCAoY29udGV4dDogVGV4dFRva2VuQ29udGV4dCkgPT4gc3RyaW5nPiA9IHtcbiAgJ3BhZ2UubnVtYmVyJzogKGNvbnRleHQpID0+IFN0cmluZyhjb250ZXh0LnBhZ2VOdW1iZXIpLFxuICAncGFnZS5uYW1lJzogKGNvbnRleHQpID0+IGNvbnRleHQucGFnZU5hbWUsXG4gICdyZXBvcnQubmFtZSc6IChjb250ZXh0KSA9PiBjb250ZXh0LnJlcG9ydE5hbWUsXG59O1xuXG4vLyBSZXBsYWNlIGV2ZXJ5IHt7dG9rZW59fSBpbiB0aGUgaHRtbC4gVmFsdWVzIGFyZSBodG1sLWVzY2FwZWQ6IGEgcGFnZSBuYW1lZFxuLy8gXCJSJkQgPGRyYWZ0PlwiIG11c3QgcmVhZCBhcyB0aGF0LCBub3QgYXMgbWFya3VwLlxuZXhwb3J0IGZ1bmN0aW9uIGZpbGxUZXh0VG9rZW5zKGh0bWw6IHN0cmluZywgY29udGV4dDogVGV4dFRva2VuQ29udGV4dCk6IHN0cmluZyB7XG4gIHJldHVybiBodG1sLnJlcGxhY2UoL1xce1xce1xccyooW2Etei5dKylcXHMqXFx9XFx9L2dpLCAobWF0Y2gsIHRva2VuOiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCBmaWxsID0gVE9LRU5TW3Rva2VuLnRvTG93ZXJDYXNlKCldO1xuXG4gICAgcmV0dXJuIGZpbGwgPyBlc2NhcGVIdG1sKGZpbGwoY29udGV4dCkpIDogbWF0Y2g7XG4gIH0pO1xufVxuXG4vLyBXYWxrIGEgYmxvY2sncyBodG1sIGludG8gcGFyYWdyYXBocyBvZiBzdHlsZWQgcnVucyDigJQgdGhlIHNoYXBlIGJvdGggZXhwb3J0c1xuLy8gZHJhdyBmcm9tLiBUb2tlbnMgYXJlIGZpbGxlZCBmaXJzdCBzbyBhIHBhZ2UgbnVtYmVyIGlzIGp1c3QgdGV4dCBieSB0aGVuLlxuZXhwb3J0IGZ1bmN0aW9uIHRleHRQYXJhZ3JhcGhzKGh0bWw6IHN0cmluZywgY29udGV4dDogVGV4dFRva2VuQ29udGV4dCk6IFRleHRQYXJhZ3JhcGhbXSB7XG4gIGNvbnN0IGRvY3VtZW50ID0gbmV3IERPTVBhcnNlcigpLnBhcnNlRnJvbVN0cmluZyhgPGJvZHk+JHtmaWxsVGV4dFRva2VucyhodG1sLCBjb250ZXh0KX08L2JvZHk+YCwgJ3RleHQvaHRtbCcpO1xuICBjb25zdCBwYXJhZ3JhcGhzOiBUZXh0UGFyYWdyYXBoW10gPSBbXTtcblxuICB3YWxrQmxvY2tzKGRvY3VtZW50LmJvZHksIHBhcmFncmFwaHMsIG51bGwpO1xuXG4gIHJldHVybiBwYXJhZ3JhcGhzLmZpbHRlcigocGFyYWdyYXBoLCBpbmRleCkgPT5cbiAgICAvLyBLZWVwIGFuIGVtcHR5IHBhcmFncmFwaCBiZXR3ZWVuIHR3byBvdGhlcnMgKGEgZGVsaWJlcmF0ZSBibGFuayBsaW5lKSwgYnV0XG4gICAgLy8gbm90IG9uZSBsZWZ0IGRhbmdsaW5nIGF0IGVpdGhlciBlbmQuXG4gICAgcGFyYWdyYXBoLnJ1bnMubGVuZ3RoIHx8IChpbmRleCA+IDAgJiYgaW5kZXggPCBwYXJhZ3JhcGhzLmxlbmd0aCAtIDEpKTtcbn1cblxuLy8gVGhlIGh0bWwgYXMgcGxhaW4gdGV4dCDigJQgd2hhdCBhIGJsb2NrIHNheXMsIGZvciBhbnl0aGluZyB0aGF0IGNhbm5vdCBzdHlsZSBpdC5cbmV4cG9ydCBmdW5jdGlvbiB0ZXh0UGxhaW4oaHRtbDogc3RyaW5nLCBjb250ZXh0OiBUZXh0VG9rZW5Db250ZXh0KTogc3RyaW5nIHtcbiAgcmV0dXJuIHRleHRQYXJhZ3JhcGhzKGh0bWwsIGNvbnRleHQpXG4gICAgLm1hcCgocGFyYWdyYXBoKSA9PiBwYXJhZ3JhcGgucnVucy5tYXAoKHJ1bikgPT4gcnVuLnRleHQpLmpvaW4oJycpKVxuICAgIC5qb2luKCdcXG4nKTtcbn1cblxuZnVuY3Rpb24gd2Fsa0Jsb2NrcyhcbiAgcGFyZW50OiBOb2RlLFxuICBwYXJhZ3JhcGhzOiBUZXh0UGFyYWdyYXBoW10sXG4gIGxpc3Q6ICdidWxsZXQnIHwgJ251bWJlcicgfCBudWxsLFxuKTogdm9pZCB7XG4gIC8vIExvb3NlIGlubGluZSBjb250ZW50IGJldHdlZW4gYmxvY2tzICh0ZXh0IHN0cmFpZ2h0IHVuZGVyIDxib2R5PiBvciA8bGk+KVxuICAvLyBpcyBnYXRoZXJlZCBpbnRvIGEgcGFyYWdyYXBoIG9mIGl0cyBvd24uXG4gIGxldCBsb29zZTogVGV4dFBhcmFncmFwaCB8IG51bGwgPSBudWxsO1xuICBjb25zdCBmbHVzaCA9ICgpID0+IHtcbiAgICBpZiAobG9vc2UpIHtcbiAgICAgIHBhcmFncmFwaHMucHVzaChsb29zZSk7XG4gICAgICBsb29zZSA9IG51bGw7XG4gICAgfVxuICB9O1xuXG4gIHBhcmVudC5jaGlsZE5vZGVzLmZvckVhY2goKG5vZGUpID0+IHtcbiAgICBjb25zdCBuYW1lID0gbm9kZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgaWYgKG5hbWUgPT09ICd1bCcgfHwgbmFtZSA9PT0gJ29sJykge1xuICAgICAgZmx1c2goKTtcbiAgICAgIHdhbGtCbG9ja3Mobm9kZSwgcGFyYWdyYXBocywgbmFtZSA9PT0gJ3VsJyA/ICdidWxsZXQnIDogJ251bWJlcicpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKG5hbWUgPT09ICdsaScpIHtcbiAgICAgIGZsdXNoKCk7XG4gICAgICBjb25zdCBpdGVtOiBUZXh0UGFyYWdyYXBoID0geyBydW5zOiBbXSwgYnVsbGV0OiBsaXN0ID8/ICdidWxsZXQnIH07XG4gICAgICBjb25zdCBuZXN0ZWQ6IFRleHRQYXJhZ3JhcGhbXSA9IFtdO1xuICAgICAgLy8gQSBsaXN0IGl0ZW0ncyBmaXJzdCBwYXJhZ3JhcGggSVMgdGhlIGl0ZW07IGFueXRoaW5nIGFmdGVyIGl0IGlzIGl0cyBvd25cbiAgICAgIC8vIGxpbmUgdW5kZXIgdGhlIHNhbWUgYnVsbGV0LlxuICAgICAgd2Fsa0Jsb2Nrcyhub2RlLCBuZXN0ZWQsIGxpc3QpO1xuICAgICAgY29uc3QgW2ZpcnN0LCAuLi5yZXN0XSA9IG5lc3RlZC5sZW5ndGggPyBuZXN0ZWQgOiBbaXRlbV07XG4gICAgICBwYXJhZ3JhcGhzLnB1c2goeyAuLi5maXJzdCwgYnVsbGV0OiBsaXN0ID8/ICdidWxsZXQnIH0sIC4uLnJlc3QpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKG5hbWUgPT09ICdwJyB8fCAvXmhbMS0zXSQvLnRlc3QobmFtZSkpIHtcbiAgICAgIGZsdXNoKCk7XG4gICAgICBjb25zdCBlbGVtZW50ID0gbm9kZSBhcyBIVE1MRWxlbWVudDtcbiAgICAgIGNvbnN0IGhlYWRpbmcgPSBuYW1lLnN0YXJ0c1dpdGgoJ2gnKSA/IE51bWJlcihuYW1lWzFdKSA6IHVuZGVmaW5lZDtcbiAgICAgIGNvbnN0IHBhcmFncmFwaDogVGV4dFBhcmFncmFwaCA9IHtcbiAgICAgICAgcnVuczogW10sXG4gICAgICAgIGFsaWduOiBibG9ja0FsaWduKGVsZW1lbnQpLFxuICAgICAgICBidWxsZXQ6IHVuZGVmaW5lZCxcbiAgICAgICAgaGVhZGluZyxcbiAgICAgIH07XG4gICAgICBjb25zdCBiYXNlOiBQYXJ0aWFsPFRleHRSdW4+ID0gaGVhZGluZ1xuICAgICAgICA/IHsgYm9sZDogdHJ1ZSwgZm9udFNpemU6IEhFQURJTkdfVEVYVF9TSVpFU1toZWFkaW5nXSB9XG4gICAgICAgIDoge307XG5cbiAgICAgIHdhbGtJbmxpbmUobm9kZSwgYmFzZSwgcGFyYWdyYXBoLCBwYXJhZ3JhcGhzKTtcbiAgICAgIHBhcmFncmFwaHMucHVzaChwYXJhZ3JhcGgpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbG9vc2UgPSBsb29zZSA/PyB7IHJ1bnM6IFtdIH07XG4gICAgd2Fsa0lubGluZShub2RlLCB7fSwgbG9vc2UsIHBhcmFncmFwaHMsIHRydWUpO1xuICB9KTtcblxuICBmbHVzaCgpO1xufVxuXG4vLyBBY2N1bXVsYXRlIGlubGluZSBzdHlsZXMgZG93biB0aGUgdHJlZS4gQSA8YnI+IGVuZHMgdGhlIGN1cnJlbnQgbGluZTogdGhlXG4vLyBydW5zIGFmdGVyIGl0IHN0YXJ0IGEgbmV3IHBhcmFncmFwaCB3aXRoIHRoZSBzYW1lIGFsaWdubWVudCBhbmQgYnVsbGV0LlxuZnVuY3Rpb24gd2Fsa0lubGluZShcbiAgbm9kZTogTm9kZSxcbiAgc3R5bGU6IFBhcnRpYWw8VGV4dFJ1bj4sXG4gIHBhcmFncmFwaDogVGV4dFBhcmFncmFwaCxcbiAgcGFyYWdyYXBoczogVGV4dFBhcmFncmFwaFtdLFxuICBpc1NlbGYgPSBmYWxzZSxcbik6IHZvaWQge1xuICBjb25zdCB2aXNpdCA9IChjaGlsZDogTm9kZSkgPT4ge1xuICAgIGlmIChjaGlsZC5ub2RlVHlwZSA9PT0gTm9kZS5URVhUX05PREUpIHtcbiAgICAgIGNvbnN0IHRleHQgPSBjaGlsZC50ZXh0Q29udGVudCA/PyAnJztcbiAgICAgIGlmICh0ZXh0KSB7XG4gICAgICAgIHBhcmFncmFwaC5ydW5zLnB1c2goeyAuLi5zdHlsZSwgdGV4dCB9KTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChjaGlsZC5ub2RlVHlwZSAhPT0gTm9kZS5FTEVNRU5UX05PREUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50ID0gY2hpbGQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgY29uc3QgbmFtZSA9IGVsZW1lbnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtcblxuICAgIGlmIChuYW1lID09PSAnYnInKSB7XG4gICAgICBwYXJhZ3JhcGhzLnB1c2goeyAuLi5wYXJhZ3JhcGgsIHJ1bnM6IFsuLi5wYXJhZ3JhcGgucnVuc10gfSk7XG4gICAgICBwYXJhZ3JhcGgucnVucy5sZW5ndGggPSAwO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgd2Fsa0lubGluZShlbGVtZW50LCB7IC4uLnN0eWxlLCAuLi5pbmxpbmVTdHlsZShlbGVtZW50KSB9LCBwYXJhZ3JhcGgsIHBhcmFncmFwaHMpO1xuICB9O1xuXG4gIGlmIChpc1NlbGYpIHtcbiAgICB2aXNpdChub2RlKTtcbiAgfSBlbHNlIHtcbiAgICBub2RlLmNoaWxkTm9kZXMuZm9yRWFjaCh2aXNpdCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gaW5saW5lU3R5bGUoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBQYXJ0aWFsPFRleHRSdW4+IHtcbiAgY29uc3QgbmFtZSA9IGVsZW1lbnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtcbiAgY29uc3Qgc3R5bGU6IFBhcnRpYWw8VGV4dFJ1bj4gPSB7fTtcblxuICBpZiAobmFtZSA9PT0gJ3N0cm9uZycpIHtcbiAgICBzdHlsZS5ib2xkID0gdHJ1ZTtcbiAgfVxuICBpZiAobmFtZSA9PT0gJ2VtJykge1xuICAgIHN0eWxlLml0YWxpYyA9IHRydWU7XG4gIH1cbiAgaWYgKG5hbWUgPT09ICd1Jykge1xuICAgIHN0eWxlLnVuZGVybGluZSA9IHRydWU7XG4gIH1cbiAgaWYgKG5hbWUgPT09ICdzJykge1xuICAgIHN0eWxlLnN0cmlrZSA9IHRydWU7XG4gIH1cbiAgaWYgKG5hbWUgPT09ICdhJykge1xuICAgIHN0eWxlLmxpbmsgPSBlbGVtZW50LmdldEF0dHJpYnV0ZSgnaHJlZicpID8/IHVuZGVmaW5lZDtcbiAgICBzdHlsZS51bmRlcmxpbmUgPSB0cnVlO1xuICB9XG5cbiAgY29uc3QgY3NzID0gZWxlbWVudC5zdHlsZTtcbiAgaWYgKGNzcy5jb2xvcikge1xuICAgIHN0eWxlLmNvbG9yID0gaGV4Q29sb3IoY3NzLmNvbG9yKTtcbiAgfVxuICBpZiAoY3NzLmJhY2tncm91bmRDb2xvcikge1xuICAgIHN0eWxlLmhpZ2hsaWdodCA9IGhleENvbG9yKGNzcy5iYWNrZ3JvdW5kQ29sb3IpO1xuICB9XG4gIGlmIChjc3MuZm9udFNpemUpIHtcbiAgICBzdHlsZS5mb250U2l6ZSA9IHBvaW50cyhjc3MuZm9udFNpemUpO1xuICB9XG4gIGlmIChjc3MuZm9udFdlaWdodCkge1xuICAgIHN0eWxlLmJvbGQgPSBjc3MuZm9udFdlaWdodCA9PT0gJ2JvbGQnIHx8IE51bWJlcihjc3MuZm9udFdlaWdodCkgPj0gNjAwO1xuICB9XG4gIGlmIChjc3MuZm9udFN0eWxlKSB7XG4gICAgc3R5bGUuaXRhbGljID0gY3NzLmZvbnRTdHlsZSA9PT0gJ2l0YWxpYyc7XG4gIH1cbiAgaWYgKGNzcy50ZXh0RGVjb3JhdGlvbikge1xuICAgIHN0eWxlLnVuZGVybGluZSA9IGNzcy50ZXh0RGVjb3JhdGlvbi5pbmNsdWRlcygndW5kZXJsaW5lJyk7XG4gICAgc3R5bGUuc3RyaWtlID0gY3NzLnRleHREZWNvcmF0aW9uLmluY2x1ZGVzKCdsaW5lLXRocm91Z2gnKTtcbiAgfVxuICBpZiAoY3NzLmZvbnRGYW1pbHkpIHtcbiAgICBzdHlsZS5mb250RmFjZSA9IGNzcy5mb250RmFtaWx5LnNwbGl0KCcsJylbMF0ucmVwbGFjZSgvW1wiJ10vZywgJycpLnRyaW0oKTtcbiAgfVxuXG4gIHJldHVybiBzdHlsZTtcbn1cblxuZnVuY3Rpb24gYmxvY2tBbGlnbihlbGVtZW50OiBIVE1MRWxlbWVudCk6IFRleHRQYXJhZ3JhcGhbJ2FsaWduJ10ge1xuICBjb25zdCBhbGlnbiA9IGVsZW1lbnQuc3R5bGUudGV4dEFsaWduO1xuXG4gIHJldHVybiBhbGlnbiA9PT0gJ2NlbnRlcicgfHwgYWxpZ24gPT09ICdyaWdodCcgfHwgYWxpZ24gPT09ICdqdXN0aWZ5JyA/IGFsaWduIDogdW5kZWZpbmVkO1xufVxuXG4vLyBBIENTUyBmb250LXNpemUgaW4gcG9pbnRzLiBUaGUgY2FudmFzIHJlbmRlcnMgYXQgOTZweCBwZXIgaW5jaCwgc28gMXB4IGlzXG4vLyBleGFjdGx5IDAuNzVwdDsgZW0vcmVtLyUgYXJlIHJlbGF0aXZlIHRvIHRoZSBib2R5IHNpemUuXG5mdW5jdGlvbiBwb2ludHModmFsdWU6IHN0cmluZyk6IG51bWJlciB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IG1hdGNoID0gL14oW1xcZC5dKykocHR8cHh8ZW18cmVtfCUpJC8uZXhlYyh2YWx1ZS50cmltKCkpO1xuICBpZiAoIW1hdGNoKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGNvbnN0IHNpemUgPSBOdW1iZXIobWF0Y2hbMV0pO1xuICBzd2l0Y2ggKG1hdGNoWzJdKSB7XG4gICAgY2FzZSAncHQnOlxuICAgICAgcmV0dXJuIHNpemU7XG4gICAgY2FzZSAncHgnOlxuICAgICAgcmV0dXJuIHNpemUgKiAwLjc1O1xuICAgIGNhc2UgJyUnOlxuICAgICAgcmV0dXJuIChzaXplIC8gMTAwKSAqIERFRkFVTFRfVEVYVF9TSVpFO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gc2l6ZSAqIERFRkFVTFRfVEVYVF9TSVpFO1xuICB9XG59XG5cbi8vIEFueSBDU1MgY29sb3IgdGhlIGFsbG93bGlzdCBsZXRzIHRocm91Z2ggKGhleCwgcmdiKCksIGEgbmFtZSkgYXMgI3JyZ2diYiDigJRcbi8vIHRoZSBvbmUgZm9ybSBib3RoIGV4cG9ydHMgYWNjZXB0LiBUaGUgYnJvd3NlciByZXNvbHZlcyBpdCwgc28gYSBuYW1lZCBjb2xvclxuLy8gY29tZXMgb3V0IGV4YWN0bHkgYXMgdGhlIGNhbnZhcyBwYWludGVkIGl0LlxubGV0IGNvbG9yQ29udGV4dDogQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEIHwgbnVsbCA9IG51bGw7XG5cbmZ1bmN0aW9uIGhleENvbG9yKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBjb2xvckNvbnRleHQgPSBjb2xvckNvbnRleHQgPz8gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJykuZ2V0Q29udGV4dCgnMmQnKTtcbiAgaWYgKCFjb2xvckNvbnRleHQpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgY29sb3JDb250ZXh0LmZpbGxTdHlsZSA9ICcjMDAwMDAwJztcbiAgY29sb3JDb250ZXh0LmZpbGxTdHlsZSA9IHZhbHVlO1xuICBjb25zdCByZXNvbHZlZCA9IFN0cmluZyhjb2xvckNvbnRleHQuZmlsbFN0eWxlKTtcblxuICBpZiAocmVzb2x2ZWQuc3RhcnRzV2l0aCgnIycpKSB7XG4gICAgcmV0dXJuIHJlc29sdmVkO1xuICB9XG5cbiAgLy8gcmdiYSguLi4pIGZvciBhIHRyYW5zbHVjZW50IGNvbG9yIOKAlCBkcm9wIHRoZSBhbHBoYSwga2VlcCB0aGUgaHVlLlxuICBjb25zdCBjaGFubmVscyA9IHJlc29sdmVkLm1hdGNoKC9bXFxkLl0rL2cpPy5zbGljZSgwLCAzKS5tYXAoTnVtYmVyKSA/PyBbXTtcblxuICByZXR1cm4gY2hhbm5lbHMubGVuZ3RoID09PSAzXG4gICAgPyBgIyR7Y2hhbm5lbHMubWFwKChjaGFubmVsKSA9PiBNYXRoLnJvdW5kKGNoYW5uZWwpLnRvU3RyaW5nKDE2KS5wYWRTdGFydCgyLCAnMCcpKS5qb2luKCcnKX1gXG4gICAgOiB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlc2NhcGVIdG1sKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gdmFsdWVcbiAgICAucmVwbGFjZSgvJi9nLCAnJmFtcDsnKVxuICAgIC5yZXBsYWNlKC88L2csICcmbHQ7JylcbiAgICAucmVwbGFjZSgvPi9nLCAnJmd0OycpXG4gICAgLnJlcGxhY2UoL1wiL2csICcmcXVvdDsnKTtcbn1cbiJdfQ==
|
|
@@ -7,4 +7,12 @@ export const REPORT_CHART_COLORS = [
|
|
|
7
7
|
];
|
|
8
8
|
// CSS-hex form for ECharts.
|
|
9
9
|
export const REPORT_CHART_COLORS_CSS = REPORT_CHART_COLORS.map((color) => `#${color}`);
|
|
10
|
-
|
|
10
|
+
// A waterfall colors each bar by what it does to the running total, in the
|
|
11
|
+
// order Excel and PowerPoint use by default: a rise takes the first series
|
|
12
|
+
// color, a fall the second, and the closing total a neutral gray.
|
|
13
|
+
export const REPORT_WATERFALL_COLORS = {
|
|
14
|
+
rise: REPORT_CHART_COLORS[0],
|
|
15
|
+
fall: REPORT_CHART_COLORS[1],
|
|
16
|
+
total: REPORT_CHART_COLORS[9],
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFsZXR0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvcmVwb3J0cy90aGVtZS9wYWxldHRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLDRFQUE0RTtBQUM1RSw0RUFBNEU7QUFDNUUsbURBQW1EO0FBQ25ELE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHO0lBQ2pDLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRO0lBQ2hELFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRO0NBQ2pELENBQUM7QUFFRiw0QkFBNEI7QUFDNUIsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsbUJBQW1CLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDLENBQUM7QUFFdkYsMkVBQTJFO0FBQzNFLDJFQUEyRTtBQUMzRSxrRUFBa0U7QUFDbEUsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQXNDO0lBQ3hFLElBQUksRUFBRSxtQkFBbUIsQ0FBQyxDQUFDLENBQUM7SUFDNUIsSUFBSSxFQUFFLG1CQUFtQixDQUFDLENBQUMsQ0FBQztJQUM1QixLQUFLLEVBQUUsbUJBQW1CLENBQUMsQ0FBQyxDQUFDO0NBQzlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBXYXRlcmZhbGxTdGVwS2luZCB9IGZyb20gJy4uL2ludGVyZmFjZXMvcmVwb3J0LmludGVyZmFjZSc7XG5cblxuLy8gVGhlIHJlcG9ydCBjaGFydCBwYWxldHRlIOKAlCBvbmUgZGVmaW5pdGlvbiBzaGFyZWQgYnkgdGhlIEVDaGFydHMgdGhlbWUgKG9uXG4vLyBzY3JlZW4pLCB0aGUgUG93ZXJQb2ludCBleHBvcnQncyBuYXRpdmUgY2hhcnQgY29sb3JzLCBhbmQgdGhlIFBERiBleHBvcnQsXG4vLyBzbyBhIHNlcmllcyBrZWVwcyBpdHMgY29sb3IgYWNyb3NzIGV2ZXJ5IG1lZGl1bS5cbmV4cG9ydCBjb25zdCBSRVBPUlRfQ0hBUlRfQ09MT1JTID0gW1xuICAnNGU3OWE3JywgJ2YyOGUyYicsICdlMTU3NTknLCAnNzZiN2IyJywgJzU5YTE0ZicsXG4gICdlZGM5NDgnLCAnYjA3YWExJywgJ2ZmOWRhNycsICc5Yzc1NWYnLCAnYmFiMGFjJyxcbl07XG5cbi8vIENTUy1oZXggZm9ybSBmb3IgRUNoYXJ0cy5cbmV4cG9ydCBjb25zdCBSRVBPUlRfQ0hBUlRfQ09MT1JTX0NTUyA9IFJFUE9SVF9DSEFSVF9DT0xPUlMubWFwKChjb2xvcikgPT4gYCMke2NvbG9yfWApO1xuXG4vLyBBIHdhdGVyZmFsbCBjb2xvcnMgZWFjaCBiYXIgYnkgd2hhdCBpdCBkb2VzIHRvIHRoZSBydW5uaW5nIHRvdGFsLCBpbiB0aGVcbi8vIG9yZGVyIEV4Y2VsIGFuZCBQb3dlclBvaW50IHVzZSBieSBkZWZhdWx0OiBhIHJpc2UgdGFrZXMgdGhlIGZpcnN0IHNlcmllc1xuLy8gY29sb3IsIGEgZmFsbCB0aGUgc2Vjb25kLCBhbmQgdGhlIGNsb3NpbmcgdG90YWwgYSBuZXV0cmFsIGdyYXkuXG5leHBvcnQgY29uc3QgUkVQT1JUX1dBVEVSRkFMTF9DT0xPUlM6IFJlY29yZDxXYXRlcmZhbGxTdGVwS2luZCwgc3RyaW5nPiA9IHtcbiAgcmlzZTogUkVQT1JUX0NIQVJUX0NPTE9SU1swXSxcbiAgZmFsbDogUkVQT1JUX0NIQVJUX0NPTE9SU1sxXSxcbiAgdG90YWw6IFJFUE9SVF9DSEFSVF9DT0xPUlNbOV0sXG59O1xuIl19
|
package/fesm2022/{firestitch-report-echarts-D4xJt3zs.mjs → firestitch-report-echarts-CtKYuRcT.mjs}
RENAMED
|
@@ -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-
|
|
6
|
+
import { R as REPORT_CHART_COLORS_CSS } from './firestitch-report-firestitch-report-Df1IXrEs.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-
|
|
60
|
+
//# sourceMappingURL=firestitch-report-echarts-CtKYuRcT.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"firestitch-report-echarts-
|
|
1
|
+
{"version":3,"file":"firestitch-report-echarts-CtKYuRcT.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"}
|