@blazes/data-visualization 0.0.0-stage → 1.0.0-alpha.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.
- package/README.md +238 -2
- package/dist/.vite/manifest.json +129 -0
- package/dist/PivotTableS2Renderer-C-Urwhuv.js +109 -0
- package/dist/PivotTableS2Renderer-C-Urwhuv.js.map +1 -0
- package/dist/WordCloudRenderer-7tzJz57a.js +96 -0
- package/dist/WordCloudRenderer-7tzJz57a.js.map +1 -0
- package/dist/core/adapter/index.d.ts +5 -0
- package/dist/core/adapter/index.d.ts.map +1 -0
- package/dist/core/adapter/standard-adapters.d.ts +211 -0
- package/dist/core/adapter/standard-adapters.d.ts.map +1 -0
- package/dist/core/adapter/standard-definitions.d.ts +230 -0
- package/dist/core/adapter/standard-definitions.d.ts.map +1 -0
- package/dist/core/adapter/types.d.ts +44 -0
- package/dist/core/adapter/types.d.ts.map +1 -0
- package/dist/core/adapter/view-models.d.ts +101 -0
- package/dist/core/adapter/view-models.d.ts.map +1 -0
- package/dist/core/config/config-validator.d.ts +27 -0
- package/dist/core/config/config-validator.d.ts.map +1 -0
- package/dist/core/config/dashboard-config-schema.d.ts +1360 -0
- package/dist/core/config/dashboard-config-schema.d.ts.map +1 -0
- package/dist/core/config/dashboard-config.d.ts +410 -0
- package/dist/core/config/dashboard-config.d.ts.map +1 -0
- package/dist/core/config/index.d.ts +9 -0
- package/dist/core/config/index.d.ts.map +1 -0
- package/dist/core/config/json-value.d.ts +5 -0
- package/dist/core/config/json-value.d.ts.map +1 -0
- package/dist/core/config/runtime-schema.d.ts +28 -0
- package/dist/core/config/runtime-schema.d.ts.map +1 -0
- package/dist/core/config/schema-version.d.ts +3 -0
- package/dist/core/config/schema-version.d.ts.map +1 -0
- package/dist/core/config/serializable.d.ts +6 -0
- package/dist/core/config/serializable.d.ts.map +1 -0
- package/dist/core/config/value-path.d.ts +2 -0
- package/dist/core/config/value-path.d.ts.map +1 -0
- package/dist/core/dataset/dataset-runner.d.ts +28 -0
- package/dist/core/dataset/dataset-runner.d.ts.map +1 -0
- package/dist/core/dataset/index.d.ts +4 -0
- package/dist/core/dataset/index.d.ts.map +1 -0
- package/dist/core/dataset/normalize.d.ts +8 -0
- package/dist/core/dataset/normalize.d.ts.map +1 -0
- package/dist/core/dataset/types.d.ts +37 -0
- package/dist/core/dataset/types.d.ts.map +1 -0
- package/dist/core/export/csv.d.ts +11 -0
- package/dist/core/export/csv.d.ts.map +1 -0
- package/dist/core/export/index.d.ts +2 -0
- package/dist/core/export/index.d.ts.map +1 -0
- package/dist/core/formatter/index.d.ts +2 -0
- package/dist/core/formatter/index.d.ts.map +1 -0
- package/dist/core/formatter/value-formatter.d.ts +14 -0
- package/dist/core/formatter/value-formatter.d.ts.map +1 -0
- package/dist/core/index.d.ts +11 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +111 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/provider/data-provider.d.ts +18 -0
- package/dist/core/provider/data-provider.d.ts.map +1 -0
- package/dist/core/provider/index.d.ts +5 -0
- package/dist/core/provider/index.d.ts.map +1 -0
- package/dist/core/provider/request-executor.d.ts +48 -0
- package/dist/core/provider/request-executor.d.ts.map +1 -0
- package/dist/core/provider/request-value-codec.d.ts +15 -0
- package/dist/core/provider/request-value-codec.d.ts.map +1 -0
- package/dist/core/provider/resolve-request-input.d.ts +12 -0
- package/dist/core/provider/resolve-request-input.d.ts.map +1 -0
- package/dist/core/registry/core-registries.d.ts +15 -0
- package/dist/core/registry/core-registries.d.ts.map +1 -0
- package/dist/core/registry/index.d.ts +4 -0
- package/dist/core/registry/index.d.ts.map +1 -0
- package/dist/core/registry/plugin-registry.d.ts +28 -0
- package/dist/core/registry/plugin-registry.d.ts.map +1 -0
- package/dist/core/registry/register-standard.d.ts +4 -0
- package/dist/core/registry/register-standard.d.ts.map +1 -0
- package/dist/core/runtime/dashboard-data-runtime.d.ts +26 -0
- package/dist/core/runtime/dashboard-data-runtime.d.ts.map +1 -0
- package/dist/core/runtime/dashboard-runtime.d.ts +458 -0
- package/dist/core/runtime/dashboard-runtime.d.ts.map +1 -0
- package/dist/core/runtime/dependency-graph.d.ts +11 -0
- package/dist/core/runtime/dependency-graph.d.ts.map +1 -0
- package/dist/core/runtime/index.d.ts +5 -0
- package/dist/core/runtime/index.d.ts.map +1 -0
- package/dist/core/runtime/types.d.ts +47 -0
- package/dist/core/runtime/types.d.ts.map +1 -0
- package/dist/core/telemetry/index.d.ts +2 -0
- package/dist/core/telemetry/index.d.ts.map +1 -0
- package/dist/core/telemetry/telemetry.d.ts +15 -0
- package/dist/core/telemetry/telemetry.d.ts.map +1 -0
- package/dist/core/variable/dashboard-context.d.ts +22 -0
- package/dist/core/variable/dashboard-context.d.ts.map +1 -0
- package/dist/core/variable/index.d.ts +3 -0
- package/dist/core/variable/index.d.ts.map +1 -0
- package/dist/core/variable/url-state.d.ts +17 -0
- package/dist/core/variable/url-state.d.ts.map +1 -0
- package/dist/csv-Dyrr2yMA.js +254 -0
- package/dist/csv-Dyrr2yMA.js.map +1 -0
- package/dist/dashboard-runtime-8a-9P8Ku.js +1540 -0
- package/dist/dashboard-runtime-8a-9P8Ku.js.map +1 -0
- package/dist/experimental/s2/PivotTableS2Renderer.vue.d.ts +18 -0
- package/dist/experimental/s2/PivotTableS2Renderer.vue.d.ts.map +1 -0
- package/dist/experimental/s2/index.d.ts +13 -0
- package/dist/experimental/s2/index.d.ts.map +1 -0
- package/dist/experimental/s2/index.js +66 -0
- package/dist/experimental/s2/index.js.map +1 -0
- package/dist/experimental/s2/pivot-table-s2.d.ts +23 -0
- package/dist/experimental/s2/pivot-table-s2.d.ts.map +1 -0
- package/dist/index.css +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +111 -0
- package/dist/index.js.map +1 -0
- package/dist/renderers/word-cloud/WordCloudRenderer.vue.d.ts +20 -0
- package/dist/renderers/word-cloud/WordCloudRenderer.vue.d.ts.map +1 -0
- package/dist/renderers/word-cloud/index.d.ts +8 -0
- package/dist/renderers/word-cloud/index.d.ts.map +1 -0
- package/dist/renderers/word-cloud/index.js +17 -0
- package/dist/renderers/word-cloud/index.js.map +1 -0
- package/dist/runtime-schema-BO2qLlvE.js +580 -0
- package/dist/runtime-schema-BO2qLlvE.js.map +1 -0
- package/dist/serializable-DOOpLZyk.js +36 -0
- package/dist/serializable-DOOpLZyk.js.map +1 -0
- package/dist/standard-definitions-DHtaLAf1.js +351 -0
- package/dist/standard-definitions-DHtaLAf1.js.map +1 -0
- package/dist/value-formatter-D5QmLSMG.js +47 -0
- package/dist/value-formatter-D5QmLSMG.js.map +1 -0
- package/dist/visual-theme-DH-k3L51.js +23 -0
- package/dist/visual-theme-DH-k3L51.js.map +1 -0
- package/dist/vue/components/DashboardFilterBar.vue.d.ts +23 -0
- package/dist/vue/components/DashboardFilterBar.vue.d.ts.map +1 -0
- package/dist/vue/components/DashboardPanel.vue.d.ts +39 -0
- package/dist/vue/components/DashboardPanel.vue.d.ts.map +1 -0
- package/dist/vue/components/DashboardRenderer.vue.d.ts +57 -0
- package/dist/vue/components/DashboardRenderer.vue.d.ts.map +1 -0
- package/dist/vue/components/index.d.ts +4 -0
- package/dist/vue/components/index.d.ts.map +1 -0
- package/dist/vue/composables/index.d.ts +2 -0
- package/dist/vue/composables/index.d.ts.map +1 -0
- package/dist/vue/composables/use-dashboard-runtime.d.ts +17 -0
- package/dist/vue/composables/use-dashboard-runtime.d.ts.map +1 -0
- package/dist/vue/export/browser-download.d.ts +3 -0
- package/dist/vue/export/browser-download.d.ts.map +1 -0
- package/dist/vue/export/index.d.ts +2 -0
- package/dist/vue/export/index.d.ts.map +1 -0
- package/dist/vue/index.d.ts +7 -0
- package/dist/vue/index.d.ts.map +1 -0
- package/dist/vue/index.js +1075 -0
- package/dist/vue/index.js.map +1 -0
- package/dist/vue/registry/index.d.ts +3 -0
- package/dist/vue/registry/index.d.ts.map +1 -0
- package/dist/vue/registry/register-standard.d.ts +3 -0
- package/dist/vue/registry/register-standard.d.ts.map +1 -0
- package/dist/vue/registry/renderer-registry.d.ts +12 -0
- package/dist/vue/registry/renderer-registry.d.ts.map +1 -0
- package/dist/vue/renderers/BarRenderer.vue.d.ts +24 -0
- package/dist/vue/renderers/BarRenderer.vue.d.ts.map +1 -0
- package/dist/vue/renderers/LineRenderer.vue.d.ts +24 -0
- package/dist/vue/renderers/LineRenderer.vue.d.ts.map +1 -0
- package/dist/vue/renderers/MetricRenderer.vue.d.ts +17 -0
- package/dist/vue/renderers/MetricRenderer.vue.d.ts.map +1 -0
- package/dist/vue/renderers/PieRenderer.vue.d.ts +24 -0
- package/dist/vue/renderers/PieRenderer.vue.d.ts.map +1 -0
- package/dist/vue/renderers/TableRenderer.vue.d.ts +21 -0
- package/dist/vue/renderers/TableRenderer.vue.d.ts.map +1 -0
- package/dist/vue/renderers/chart-format.d.ts +8 -0
- package/dist/vue/renderers/chart-format.d.ts.map +1 -0
- package/dist/vue/renderers/index.d.ts +7 -0
- package/dist/vue/renderers/index.d.ts.map +1 -0
- package/dist/vue/theme/index.d.ts +2 -0
- package/dist/vue/theme/index.d.ts.map +1 -0
- package/dist/vue/theme/visual-theme.d.ts +46 -0
- package/dist/vue/theme/visual-theme.d.ts.map +1 -0
- package/package.json +129 -4
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
function y(r) {
|
|
2
|
+
const t = Object.getPrototypeOf(r);
|
|
3
|
+
return t === Object.prototype || t === null;
|
|
4
|
+
}
|
|
5
|
+
function o(r, t = /* @__PURE__ */ new Set()) {
|
|
6
|
+
if (r === null || typeof r == "string" || typeof r == "boolean")
|
|
7
|
+
return !0;
|
|
8
|
+
if (typeof r == "number")
|
|
9
|
+
return Number.isFinite(r);
|
|
10
|
+
if (typeof r != "object" || !y(r) && !Array.isArray(r) || t.has(r))
|
|
11
|
+
return !1;
|
|
12
|
+
t.add(r);
|
|
13
|
+
const n = Array.isArray(r) ? r.every((e) => o(e, t)) : Reflect.ownKeys(r).every(
|
|
14
|
+
(e) => typeof e == "string" && o(r[e], t)
|
|
15
|
+
);
|
|
16
|
+
return t.delete(r), n;
|
|
17
|
+
}
|
|
18
|
+
function f(r) {
|
|
19
|
+
return Array.isArray(r) ? r.map((t) => f(t)) : r !== null && typeof r == "object" ? Object.fromEntries(Object.entries(r).map(([t, n]) => [t, f(n)])) : r;
|
|
20
|
+
}
|
|
21
|
+
function i(r) {
|
|
22
|
+
return Array.isArray(r) ? r.map(i) : r !== null && typeof r == "object" ? Object.keys(r).sort().reduce((t, n) => (t[n] = i(r[n]), t), {}) : r;
|
|
23
|
+
}
|
|
24
|
+
function s(r) {
|
|
25
|
+
return JSON.stringify(i(r));
|
|
26
|
+
}
|
|
27
|
+
function c(r, t) {
|
|
28
|
+
return s(r) === s(t);
|
|
29
|
+
}
|
|
30
|
+
export {
|
|
31
|
+
f as c,
|
|
32
|
+
o as i,
|
|
33
|
+
c as j,
|
|
34
|
+
s
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=serializable-DOOpLZyk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serializable-DOOpLZyk.js","sources":["../src/core/config/serializable.ts"],"sourcesContent":["import type { JsonValue } from \"./json-value\";\n\nfunction isPlainObject(value: object): value is Record<string, unknown> {\n const prototype = Object.getPrototypeOf(value);\n return prototype === Object.prototype || prototype === null;\n}\n\nexport function isJsonValue(value: unknown, ancestors = new Set<object>()): value is JsonValue {\n if (value === null || typeof value === \"string\" || typeof value === \"boolean\") {\n return true;\n }\n if (typeof value === \"number\") {\n return Number.isFinite(value);\n }\n if (typeof value !== \"object\" || (!isPlainObject(value) && !Array.isArray(value)) || ancestors.has(value)) {\n return false;\n }\n\n ancestors.add(value);\n const valid = Array.isArray(value)\n ? value.every((item) => isJsonValue(item, ancestors))\n : Reflect.ownKeys(value).every(\n (key) => typeof key === \"string\" && isJsonValue((value as Record<string, unknown>)[key], ancestors)\n );\n ancestors.delete(value);\n return valid;\n}\n\nexport function cloneJsonValue<T extends JsonValue>(value: T): T {\n if (Array.isArray(value)) {\n return value.map((item) => cloneJsonValue(item)) as T;\n }\n if (value !== null && typeof value === \"object\") {\n return Object.fromEntries(Object.entries(value).map(([key, item]) => [key, cloneJsonValue(item)])) as T;\n }\n return value;\n}\n\nfunction sortJsonValue(value: JsonValue): JsonValue {\n if (Array.isArray(value)) {\n return value.map(sortJsonValue);\n }\n if (value !== null && typeof value === \"object\") {\n return Object.keys(value)\n .sort()\n .reduce<Record<string, JsonValue>>((result, key) => {\n result[key] = sortJsonValue(value[key]!);\n return result;\n }, {});\n }\n return value;\n}\n\nexport function stableSerializeJson(value: JsonValue): string {\n return JSON.stringify(sortJsonValue(value));\n}\n\nexport function jsonValuesEqual(left: JsonValue, right: JsonValue): boolean {\n return stableSerializeJson(left) === stableSerializeJson(right);\n}\n"],"names":["isPlainObject","value","prototype","isJsonValue","ancestors","valid","item","key","cloneJsonValue","sortJsonValue","result","stableSerializeJson","jsonValuesEqual","left","right"],"mappings":"AAEA,SAASA,EAAcC,GAAiD;AACtE,QAAMC,IAAY,OAAO,eAAeD,CAAK;AAC7C,SAAOC,MAAc,OAAO,aAAaA,MAAc;AACzD;AAEO,SAASC,EAAYF,GAAgBG,IAAY,oBAAI,OAAmC;AAC7F,MAAIH,MAAU,QAAQ,OAAOA,KAAU,YAAY,OAAOA,KAAU;AAClE,WAAO;AAET,MAAI,OAAOA,KAAU;AACnB,WAAO,OAAO,SAASA,CAAK;AAE9B,MAAI,OAAOA,KAAU,YAAa,CAACD,EAAcC,CAAK,KAAK,CAAC,MAAM,QAAQA,CAAK,KAAMG,EAAU,IAAIH,CAAK;AACtG,WAAO;AAGT,EAAAG,EAAU,IAAIH,CAAK;AACnB,QAAMI,IAAQ,MAAM,QAAQJ,CAAK,IAC7BA,EAAM,MAAM,CAACK,MAASH,EAAYG,GAAMF,CAAS,CAAC,IAClD,QAAQ,QAAQH,CAAK,EAAE;AAAA,IACrB,CAACM,MAAQ,OAAOA,KAAQ,YAAYJ,EAAaF,EAAkCM,CAAG,GAAGH,CAAS;AAAA,EAAA;AAExG,SAAAA,EAAU,OAAOH,CAAK,GACfI;AACT;AAEO,SAASG,EAAoCP,GAAa;AAC/D,SAAI,MAAM,QAAQA,CAAK,IACdA,EAAM,IAAI,CAACK,MAASE,EAAeF,CAAI,CAAC,IAE7CL,MAAU,QAAQ,OAAOA,KAAU,WAC9B,OAAO,YAAY,OAAO,QAAQA,CAAK,EAAE,IAAI,CAAC,CAACM,GAAKD,CAAI,MAAM,CAACC,GAAKC,EAAeF,CAAI,CAAC,CAAC,CAAC,IAE5FL;AACT;AAEA,SAASQ,EAAcR,GAA6B;AAClD,SAAI,MAAM,QAAQA,CAAK,IACdA,EAAM,IAAIQ,CAAa,IAE5BR,MAAU,QAAQ,OAAOA,KAAU,WAC9B,OAAO,KAAKA,CAAK,EACrB,OACA,OAAkC,CAACS,GAAQH,OAC1CG,EAAOH,CAAG,IAAIE,EAAcR,EAAMM,CAAG,CAAE,GAChCG,IACN,CAAA,CAAE,IAEFT;AACT;AAEO,SAASU,EAAoBV,GAA0B;AAC5D,SAAO,KAAK,UAAUQ,EAAcR,CAAK,CAAC;AAC5C;AAEO,SAASW,EAAgBC,GAAiBC,GAA2B;AAC1E,SAAOH,EAAoBE,CAAI,MAAMF,EAAoBG,CAAK;AAChE;"}
|
|
@@ -0,0 +1,351 @@
|
|
|
1
|
+
import { s as R } from "./serializable-DOOpLZyk.js";
|
|
2
|
+
import { H as b, J as v, l as T, L as V, n as L, M as k, r as x, p as M, z as N, T as $, F as I, W as P, b as _, B as W } from "./runtime-schema-BO2qLlvE.js";
|
|
3
|
+
function g(e, i) {
|
|
4
|
+
const o = e.fields.find((t) => t.key === i);
|
|
5
|
+
if (!o) throw new Error(`Dataset ${e.datasetId} does not contain field ${i}.`);
|
|
6
|
+
return o;
|
|
7
|
+
}
|
|
8
|
+
function y(e, i) {
|
|
9
|
+
var o, t;
|
|
10
|
+
return ((t = (o = i == null ? void 0 : i.common) == null ? void 0 : o.formatOverrides) == null ? void 0 : t[e.key]) ?? e.format ?? { type: "number" };
|
|
11
|
+
}
|
|
12
|
+
function K(e, i) {
|
|
13
|
+
var o, t;
|
|
14
|
+
return ((t = (o = i == null ? void 0 : i.common) == null ? void 0 : o.formatOverrides) == null ? void 0 : t[e.key]) ?? e.format ?? (e.dataType === "date" || e.dataType === "datetime" ? { type: e.dataType } : void 0);
|
|
15
|
+
}
|
|
16
|
+
function D(e, i) {
|
|
17
|
+
return R({ format: y(e, i), unit: e.unit ?? null });
|
|
18
|
+
}
|
|
19
|
+
function z(e) {
|
|
20
|
+
return typeof e == "number" && Number.isFinite(e) ? e : null;
|
|
21
|
+
}
|
|
22
|
+
function j(e) {
|
|
23
|
+
return typeof e == "string" || typeof e == "number" && Number.isFinite(e) ? e : null;
|
|
24
|
+
}
|
|
25
|
+
function w(e) {
|
|
26
|
+
return `${typeof e}:${String(e)}`;
|
|
27
|
+
}
|
|
28
|
+
function A(e) {
|
|
29
|
+
return Object.freeze({ ...e, values: Object.freeze([...e.values]) });
|
|
30
|
+
}
|
|
31
|
+
function B(e, i, o, t, r) {
|
|
32
|
+
const s = [], a = /* @__PURE__ */ new Map();
|
|
33
|
+
if (e.rows.forEach((d) => {
|
|
34
|
+
const f = j(d[i]);
|
|
35
|
+
if (f === null) return;
|
|
36
|
+
const u = w(f);
|
|
37
|
+
a.has(u) || (a.set(u, s.length), s.push(f));
|
|
38
|
+
}), !t) {
|
|
39
|
+
const d = o.map((f) => {
|
|
40
|
+
const u = g(e, f), n = Array.from({ length: s.length }).fill(null);
|
|
41
|
+
return e.rows.forEach((m) => {
|
|
42
|
+
const F = j(m[i]);
|
|
43
|
+
if (F === null) return;
|
|
44
|
+
const O = a.get(w(F));
|
|
45
|
+
O !== void 0 && (n[O] = z(m[f]));
|
|
46
|
+
}), A({
|
|
47
|
+
id: u.key,
|
|
48
|
+
valueFieldId: u.key,
|
|
49
|
+
axisKey: D(u, r),
|
|
50
|
+
label: u.label,
|
|
51
|
+
values: n,
|
|
52
|
+
format: y(u, r),
|
|
53
|
+
...u.unit ? { unit: u.unit } : {}
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
return { categories: s, series: d };
|
|
57
|
+
}
|
|
58
|
+
const p = o[0], c = g(e, p), l = /* @__PURE__ */ new Map();
|
|
59
|
+
return e.rows.forEach((d) => {
|
|
60
|
+
const f = j(d[i]), u = d[t];
|
|
61
|
+
if (f === null || u === null || u === void 0) return;
|
|
62
|
+
const n = String(u), m = `${typeof u}:${n}`, F = l.get(m) ?? {
|
|
63
|
+
label: n,
|
|
64
|
+
values: Array.from({ length: s.length }).fill(null)
|
|
65
|
+
}, O = a.get(w(f));
|
|
66
|
+
O !== void 0 && (F.values[O] = z(d[p])), l.set(m, F);
|
|
67
|
+
}), {
|
|
68
|
+
categories: s,
|
|
69
|
+
series: Array.from(
|
|
70
|
+
l,
|
|
71
|
+
([d, f]) => A({
|
|
72
|
+
id: d,
|
|
73
|
+
valueFieldId: c.key,
|
|
74
|
+
axisKey: D(c, r),
|
|
75
|
+
label: f.label,
|
|
76
|
+
values: f.values,
|
|
77
|
+
format: y(c, r),
|
|
78
|
+
...c.unit ? { unit: c.unit } : {}
|
|
79
|
+
})
|
|
80
|
+
)
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
function J(e, i) {
|
|
84
|
+
var o;
|
|
85
|
+
if (i != null && i.compareMeaning) return i.compareMeaning;
|
|
86
|
+
switch ((o = e.metricSemantics) == null ? void 0 : o.betterDirection) {
|
|
87
|
+
case "lower":
|
|
88
|
+
return "negative";
|
|
89
|
+
case "neutral":
|
|
90
|
+
return "neutral";
|
|
91
|
+
default:
|
|
92
|
+
return "positive";
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
const q = {
|
|
96
|
+
id: "metric.default",
|
|
97
|
+
adapt({ dataset: e, binding: i, enhancement: o }) {
|
|
98
|
+
const t = g(e, i.valueField), r = e.rows[0], s = z(r == null ? void 0 : r[i.valueField]), a = o == null ? void 0 : o.metric;
|
|
99
|
+
let p;
|
|
100
|
+
if (i.compareField && (a == null ? void 0 : a.showComparison) !== !1) {
|
|
101
|
+
const c = g(e, i.compareField), l = z(r == null ? void 0 : r[i.compareField]);
|
|
102
|
+
l !== null && (p = Object.freeze({
|
|
103
|
+
label: (a == null ? void 0 : a.compareLabel) ?? c.label,
|
|
104
|
+
value: l,
|
|
105
|
+
direction: l > 0 ? "up" : l < 0 ? "down" : "flat",
|
|
106
|
+
meaning: J(t, a),
|
|
107
|
+
colorMode: (a == null ? void 0 : a.comparisonColorMode) ?? "meaning",
|
|
108
|
+
format: y(c, o)
|
|
109
|
+
}));
|
|
110
|
+
}
|
|
111
|
+
return Object.freeze({
|
|
112
|
+
type: "metric",
|
|
113
|
+
empty: s === null,
|
|
114
|
+
label: t.label,
|
|
115
|
+
value: s,
|
|
116
|
+
format: y(t, o),
|
|
117
|
+
...t.unit ? { unit: t.unit } : {},
|
|
118
|
+
...p ? { comparison: p } : {}
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
}, G = {
|
|
122
|
+
id: "line.default",
|
|
123
|
+
adapt({ dataset: e, binding: i, enhancement: o }) {
|
|
124
|
+
const t = B(e, i.xField, i.yFields, i.seriesField, o), r = g(e, i.xField), s = o == null ? void 0 : o.line, a = K(r, o), p = t.series.some((c) => c.values.some((l) => l !== null));
|
|
125
|
+
return Object.freeze({
|
|
126
|
+
type: "line",
|
|
127
|
+
empty: t.categories.length === 0 || t.series.length === 0 || !p,
|
|
128
|
+
categories: Object.freeze(t.categories),
|
|
129
|
+
...a ? { categoryFormat: a } : {},
|
|
130
|
+
series: Object.freeze(t.series),
|
|
131
|
+
showLabels: (s == null ? void 0 : s.showLabels) ?? !1,
|
|
132
|
+
smooth: (s == null ? void 0 : s.smooth) ?? !0,
|
|
133
|
+
annotations: Object.freeze([
|
|
134
|
+
...((s == null ? void 0 : s.markCategories) ?? []).map((c) => ({ type: "category", value: c })),
|
|
135
|
+
...((s == null ? void 0 : s.markValues) ?? []).map((c) => ({ type: "value", value: c }))
|
|
136
|
+
])
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
};
|
|
140
|
+
function H(e, i, o) {
|
|
141
|
+
const t = e.map((r, s) => ({
|
|
142
|
+
category: String(r),
|
|
143
|
+
index: s,
|
|
144
|
+
value: i.reduce((a, p) => a + (p.values[s] ?? 0), 0)
|
|
145
|
+
}));
|
|
146
|
+
return o === "ascending" && t.sort((r, s) => r.value - s.value), o === "descending" && t.sort((r, s) => s.value - r.value), {
|
|
147
|
+
categories: t.map((r) => r.category),
|
|
148
|
+
series: i.map(
|
|
149
|
+
(r) => A({ ...r, values: t.map(({ index: s }) => r.values[s] ?? null) })
|
|
150
|
+
)
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
const Q = {
|
|
154
|
+
id: "bar.default",
|
|
155
|
+
adapt({ dataset: e, binding: i, enhancement: o }) {
|
|
156
|
+
const t = B(
|
|
157
|
+
e,
|
|
158
|
+
i.categoryField,
|
|
159
|
+
i.valueFields,
|
|
160
|
+
i.seriesField,
|
|
161
|
+
o
|
|
162
|
+
), r = o == null ? void 0 : o.bar, s = H(t.categories, t.series, (r == null ? void 0 : r.sort) ?? "none");
|
|
163
|
+
return Object.freeze({
|
|
164
|
+
type: "bar",
|
|
165
|
+
empty: s.categories.length === 0 || s.series.length === 0,
|
|
166
|
+
categories: Object.freeze(s.categories),
|
|
167
|
+
series: Object.freeze(s.series),
|
|
168
|
+
orientation: (r == null ? void 0 : r.orientation) ?? "vertical",
|
|
169
|
+
...(r == null ? void 0 : r.visibleCount) !== void 0 ? { visibleCount: r.visibleCount } : {},
|
|
170
|
+
showLabels: (r == null ? void 0 : r.showLabels) ?? !1,
|
|
171
|
+
stacked: (r == null ? void 0 : r.stacked) ?? !1
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
}, U = {
|
|
175
|
+
id: "pie.default",
|
|
176
|
+
adapt({ dataset: e, binding: i, enhancement: o }) {
|
|
177
|
+
const t = g(e, i.valueField), r = /* @__PURE__ */ new Map();
|
|
178
|
+
e.rows.forEach((l) => {
|
|
179
|
+
const d = l[i.nameField], f = z(l[i.valueField]), u = d == null ? "" : String(d).trim();
|
|
180
|
+
if (!u || f === null || f <= 0) return;
|
|
181
|
+
const n = r.get(u);
|
|
182
|
+
r.set(u, {
|
|
183
|
+
id: (n == null ? void 0 : n.id) ?? `item:${u}`,
|
|
184
|
+
label: u,
|
|
185
|
+
value: ((n == null ? void 0 : n.value) ?? 0) + f
|
|
186
|
+
});
|
|
187
|
+
});
|
|
188
|
+
const s = Array.from(r.values());
|
|
189
|
+
s.sort((l, d) => d.value - l.value);
|
|
190
|
+
const a = o == null ? void 0 : o.pie, p = a == null ? void 0 : a.maxItems;
|
|
191
|
+
let c = s;
|
|
192
|
+
if (p && s.length > p) {
|
|
193
|
+
const l = s.slice(0, p - 1), d = s.slice(p - 1);
|
|
194
|
+
l.push({
|
|
195
|
+
id: "__others__",
|
|
196
|
+
label: a.othersLabel ?? "Others",
|
|
197
|
+
value: d.reduce((f, u) => f + u.value, 0)
|
|
198
|
+
}), c = l;
|
|
199
|
+
}
|
|
200
|
+
return Object.freeze({
|
|
201
|
+
type: "pie",
|
|
202
|
+
empty: c.length === 0,
|
|
203
|
+
items: Object.freeze(c.map((l) => Object.freeze(l))),
|
|
204
|
+
valueFormat: y(t, o),
|
|
205
|
+
...t.unit ? { unit: t.unit } : {},
|
|
206
|
+
donut: (a == null ? void 0 : a.donut) ?? !0,
|
|
207
|
+
showLegend: (a == null ? void 0 : a.showLegend) ?? !0
|
|
208
|
+
});
|
|
209
|
+
}
|
|
210
|
+
};
|
|
211
|
+
function C(e) {
|
|
212
|
+
return typeof e == "string" ? e.trim() || null : typeof e == "number" && Number.isFinite(e) || typeof e == "boolean" ? String(e) : null;
|
|
213
|
+
}
|
|
214
|
+
const X = {
|
|
215
|
+
id: "wordCloud.default",
|
|
216
|
+
adapt({ dataset: e, binding: i, enhancement: o }) {
|
|
217
|
+
const t = g(e, i.valueField);
|
|
218
|
+
i.labelFields.forEach((l) => g(e, l)), i.semanticField && g(e, i.semanticField);
|
|
219
|
+
const r = o == null ? void 0 : o.wordCloud, s = (r == null ? void 0 : r.minFontSize) ?? 12, a = (r == null ? void 0 : r.maxFontSize) ?? 56;
|
|
220
|
+
if (s > a) throw new Error("Word cloud minFontSize cannot be greater than maxFontSize.");
|
|
221
|
+
const p = e.rows.flatMap((l, d) => {
|
|
222
|
+
const f = i.labelFields.map((m) => C(l[m])), u = z(l[i.valueField]);
|
|
223
|
+
if (f.some((m) => m === null) || u === null || u <= 0) return [];
|
|
224
|
+
const n = i.semanticField ? C(l[i.semanticField]) : null;
|
|
225
|
+
return [
|
|
226
|
+
Object.freeze({
|
|
227
|
+
id: `${f.join(":")}:${d}`,
|
|
228
|
+
label: f.join(" · "),
|
|
229
|
+
value: u,
|
|
230
|
+
...n ? { semantic: n } : {}
|
|
231
|
+
})
|
|
232
|
+
];
|
|
233
|
+
});
|
|
234
|
+
p.sort((l, d) => d.value - l.value);
|
|
235
|
+
const c = p.slice(0, (r == null ? void 0 : r.maxItems) ?? 80);
|
|
236
|
+
return Object.freeze({
|
|
237
|
+
type: "wordCloud",
|
|
238
|
+
empty: c.length === 0,
|
|
239
|
+
words: Object.freeze(c),
|
|
240
|
+
valueFormat: y(t, o),
|
|
241
|
+
...t.unit ? { unit: t.unit } : {},
|
|
242
|
+
minFontSize: s,
|
|
243
|
+
maxFontSize: a
|
|
244
|
+
});
|
|
245
|
+
}
|
|
246
|
+
}, Y = {
|
|
247
|
+
id: "table.default",
|
|
248
|
+
adapt({ dataset: e, binding: i, enhancement: o }) {
|
|
249
|
+
const t = o == null ? void 0 : o.table, r = new Set((t == null ? void 0 : t.sortableFields) ?? []), s = new Set((t == null ? void 0 : t.filterableFields) ?? []), a = i.columns.map((c) => {
|
|
250
|
+
var u, n;
|
|
251
|
+
const l = g(e, c), d = (u = t == null ? void 0 : t.columnWidths) == null ? void 0 : u[c], f = (n = t == null ? void 0 : t.columnDisplays) == null ? void 0 : n[c];
|
|
252
|
+
return Object.freeze({
|
|
253
|
+
field: l.key,
|
|
254
|
+
label: l.label,
|
|
255
|
+
dataType: l.dataType,
|
|
256
|
+
...l.format ? { format: y(l, o) } : {},
|
|
257
|
+
...l.unit ? { unit: l.unit } : {},
|
|
258
|
+
...d ? { width: d } : {},
|
|
259
|
+
...f ? { display: Z(f) } : {},
|
|
260
|
+
sortable: r.has(c),
|
|
261
|
+
filterable: s.has(c)
|
|
262
|
+
});
|
|
263
|
+
}), p = e.rows.map(
|
|
264
|
+
(c) => Object.freeze(Object.fromEntries(i.columns.map((l) => [l, c[l]])))
|
|
265
|
+
);
|
|
266
|
+
return Object.freeze({
|
|
267
|
+
type: "table",
|
|
268
|
+
empty: p.length === 0,
|
|
269
|
+
columns: Object.freeze(a),
|
|
270
|
+
rows: Object.freeze(p),
|
|
271
|
+
pageSize: (t == null ? void 0 : t.pageSize) ?? 50,
|
|
272
|
+
showPagination: (t == null ? void 0 : t.showPagination) ?? !0,
|
|
273
|
+
diagnostics: e.diagnostics
|
|
274
|
+
});
|
|
275
|
+
}
|
|
276
|
+
};
|
|
277
|
+
function Z(e) {
|
|
278
|
+
return e.type !== "tag" || !e.toneByValue ? Object.freeze({ ...e }) : Object.freeze({ ...e, toneByValue: Object.freeze({ ...e.toneByValue }) });
|
|
279
|
+
}
|
|
280
|
+
const le = Object.freeze([
|
|
281
|
+
q,
|
|
282
|
+
G,
|
|
283
|
+
Q,
|
|
284
|
+
U,
|
|
285
|
+
Y,
|
|
286
|
+
X
|
|
287
|
+
]), S = {
|
|
288
|
+
responsive: !0,
|
|
289
|
+
csv: !0,
|
|
290
|
+
selection: !1
|
|
291
|
+
}, h = Object.freeze({
|
|
292
|
+
id: "metric",
|
|
293
|
+
defaultAdapterId: "metric.default",
|
|
294
|
+
bindingSchema: b(k),
|
|
295
|
+
enhancementSchema: b(L, [v]),
|
|
296
|
+
capabilities: Object.freeze({ ...S, png: !1 })
|
|
297
|
+
}), E = Object.freeze({
|
|
298
|
+
id: "line",
|
|
299
|
+
defaultAdapterId: "line.default",
|
|
300
|
+
bindingSchema: b(V),
|
|
301
|
+
enhancementSchema: b(T, [v]),
|
|
302
|
+
capabilities: Object.freeze({ ...S, png: !0, selection: !0 })
|
|
303
|
+
}), ee = Object.freeze({
|
|
304
|
+
id: "bar",
|
|
305
|
+
defaultAdapterId: "bar.default",
|
|
306
|
+
bindingSchema: b(W),
|
|
307
|
+
enhancementSchema: b(_, [v]),
|
|
308
|
+
capabilities: Object.freeze({ ...S, png: !0, selection: !0 })
|
|
309
|
+
}), te = Object.freeze({
|
|
310
|
+
id: "pie",
|
|
311
|
+
defaultAdapterId: "pie.default",
|
|
312
|
+
bindingSchema: b(M),
|
|
313
|
+
enhancementSchema: b(x, [v]),
|
|
314
|
+
capabilities: Object.freeze({ ...S, png: !0, selection: !0 })
|
|
315
|
+
}), re = Object.freeze({
|
|
316
|
+
id: "table",
|
|
317
|
+
defaultAdapterId: "table.default",
|
|
318
|
+
bindingSchema: b($),
|
|
319
|
+
enhancementSchema: b(N, [v]),
|
|
320
|
+
capabilities: Object.freeze({ ...S, png: !1, selection: !0 })
|
|
321
|
+
}), ie = Object.freeze({
|
|
322
|
+
id: "wordCloud",
|
|
323
|
+
defaultAdapterId: "wordCloud.default",
|
|
324
|
+
bindingSchema: b(P),
|
|
325
|
+
enhancementSchema: b(I, [v]),
|
|
326
|
+
capabilities: Object.freeze({ ...S, png: !0 })
|
|
327
|
+
}), ae = Object.freeze([
|
|
328
|
+
h,
|
|
329
|
+
E,
|
|
330
|
+
ee,
|
|
331
|
+
te,
|
|
332
|
+
re,
|
|
333
|
+
ie
|
|
334
|
+
]);
|
|
335
|
+
export {
|
|
336
|
+
le as S,
|
|
337
|
+
ae as a,
|
|
338
|
+
Q as b,
|
|
339
|
+
ee as c,
|
|
340
|
+
E as d,
|
|
341
|
+
h as e,
|
|
342
|
+
te as f,
|
|
343
|
+
re as g,
|
|
344
|
+
ie as h,
|
|
345
|
+
G as l,
|
|
346
|
+
q as m,
|
|
347
|
+
U as p,
|
|
348
|
+
Y as t,
|
|
349
|
+
X as w
|
|
350
|
+
};
|
|
351
|
+
//# sourceMappingURL=standard-definitions-DHtaLAf1.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"standard-definitions-DHtaLAf1.js","sources":["../src/core/adapter/standard-adapters.ts","../src/core/adapter/standard-definitions.ts"],"sourcesContent":["import type {\n BarBinding,\n BarEnhancement,\n DatasetFieldConfig,\n LineBinding,\n LineEnhancement,\n MetricBinding,\n MetricEnhancement,\n PieBinding,\n PieEnhancement,\n TableBinding,\n TableCellDisplay,\n TableEnhancement,\n ValueFormat,\n VisualizationEnhancement,\n WordCloudBinding,\n WordCloudEnhancement\n} from \"../config\";\nimport { stableSerializeJson } from \"../config\";\nimport type { DatasetResult } from \"../dataset\";\nimport type { VisualizationAdapter } from \"./types\";\nimport type {\n BarViewModel,\n CartesianSeriesViewModel,\n LineViewModel,\n MetricViewModel,\n PieItemViewModel,\n PieViewModel,\n TableViewModel,\n WordCloudViewModel,\n WordCloudWordViewModel\n} from \"./view-models\";\n\ntype EnhancementFor<TType extends VisualizationEnhancement[\"type\"]> = Extract<\n VisualizationEnhancement,\n { type: TType }\n>;\n\nfunction requireField(dataset: DatasetResult, fieldId: string): DatasetFieldConfig {\n const field = dataset.fields.find((candidate) => candidate.key === fieldId);\n if (!field) throw new Error(`Dataset ${dataset.datasetId} does not contain field ${fieldId}.`);\n return field;\n}\n\nfunction resolveFormat(field: DatasetFieldConfig, enhancement?: VisualizationEnhancement): ValueFormat {\n return enhancement?.common?.formatOverrides?.[field.key] ?? field.format ?? { type: \"number\" };\n}\n\nfunction resolveCategoryFormat(\n field: DatasetFieldConfig,\n enhancement?: VisualizationEnhancement\n): ValueFormat | undefined {\n return (\n enhancement?.common?.formatOverrides?.[field.key] ??\n field.format ??\n (field.dataType === \"date\" || field.dataType === \"datetime\" ? { type: field.dataType } : undefined)\n );\n}\n\nfunction resolveAxisKey(field: DatasetFieldConfig, enhancement?: VisualizationEnhancement): string {\n return stableSerializeJson({ format: resolveFormat(field, enhancement), unit: field.unit ?? null });\n}\n\nfunction finiteNumber(value: unknown): number | null {\n return typeof value === \"number\" && Number.isFinite(value) ? value : null;\n}\n\nfunction categoryValue(value: unknown): string | number | null {\n if (typeof value === \"string\" || (typeof value === \"number\" && Number.isFinite(value))) return value;\n return null;\n}\n\nfunction stableCategoryKey(value: string | number): string {\n return `${typeof value}:${String(value)}`;\n}\n\nfunction freezeSeries(series: CartesianSeriesViewModel): CartesianSeriesViewModel {\n return Object.freeze({ ...series, values: Object.freeze([...series.values]) });\n}\n\nfunction buildCartesianSeries(\n dataset: DatasetResult,\n categoryFieldId: string,\n valueFieldIds: ReadonlyArray<string>,\n seriesFieldId: string | undefined,\n enhancement?: VisualizationEnhancement\n): { categories: Array<string | number>; series: CartesianSeriesViewModel[] } {\n const categories: Array<string | number> = [];\n const categoryIndexes = new Map<string, number>();\n dataset.rows.forEach((row) => {\n const category = categoryValue(row[categoryFieldId]);\n if (category === null) return;\n const key = stableCategoryKey(category);\n if (!categoryIndexes.has(key)) {\n categoryIndexes.set(key, categories.length);\n categories.push(category);\n }\n });\n\n if (!seriesFieldId) {\n const series = valueFieldIds.map((fieldId) => {\n const field = requireField(dataset, fieldId);\n const values = Array.from<number | null>({ length: categories.length }).fill(null);\n dataset.rows.forEach((row) => {\n const category = categoryValue(row[categoryFieldId]);\n if (category === null) return;\n const index = categoryIndexes.get(stableCategoryKey(category));\n if (index !== undefined) values[index] = finiteNumber(row[fieldId]);\n });\n return freezeSeries({\n id: field.key,\n valueFieldId: field.key,\n axisKey: resolveAxisKey(field, enhancement),\n label: field.label,\n values,\n format: resolveFormat(field, enhancement),\n ...(field.unit ? { unit: field.unit } : {})\n });\n });\n return { categories, series };\n }\n\n const valueFieldId = valueFieldIds[0]!;\n const valueField = requireField(dataset, valueFieldId);\n const seriesGroups = new Map<string, { label: string; values: Array<number | null> }>();\n dataset.rows.forEach((row) => {\n const category = categoryValue(row[categoryFieldId]);\n const group = row[seriesFieldId];\n if (category === null || group === null || group === undefined) return;\n const label = String(group);\n const groupKey = `${typeof group}:${label}`;\n const entry = seriesGroups.get(groupKey) ?? {\n label,\n values: Array.from<number | null>({ length: categories.length }).fill(null)\n };\n const index = categoryIndexes.get(stableCategoryKey(category));\n if (index !== undefined) entry.values[index] = finiteNumber(row[valueFieldId]);\n seriesGroups.set(groupKey, entry);\n });\n\n return {\n categories,\n series: Array.from(seriesGroups, ([id, entry]) =>\n freezeSeries({\n id,\n valueFieldId: valueField.key,\n axisKey: resolveAxisKey(valueField, enhancement),\n label: entry.label,\n values: entry.values,\n format: resolveFormat(valueField, enhancement),\n ...(valueField.unit ? { unit: valueField.unit } : {})\n })\n )\n };\n}\n\nfunction comparisonMeaning(field: DatasetFieldConfig, enhancement?: MetricEnhancement) {\n if (enhancement?.compareMeaning) return enhancement.compareMeaning;\n switch (field.metricSemantics?.betterDirection) {\n case \"lower\":\n return \"negative\" as const;\n case \"neutral\":\n return \"neutral\" as const;\n default:\n return \"positive\" as const;\n }\n}\n\nexport const metricAdapter: VisualizationAdapter<MetricBinding, EnhancementFor<\"metric\">, MetricViewModel> = {\n id: \"metric.default\",\n adapt({ dataset, binding, enhancement }) {\n const field = requireField(dataset, binding.valueField);\n const row = dataset.rows[0];\n const value = finiteNumber(row?.[binding.valueField]);\n const metricEnhancement = enhancement?.metric;\n let comparison: MetricViewModel[\"comparison\"];\n if (binding.compareField && metricEnhancement?.showComparison !== false) {\n const compareField = requireField(dataset, binding.compareField);\n const compareValue = finiteNumber(row?.[binding.compareField]);\n if (compareValue !== null) {\n comparison = Object.freeze({\n label: metricEnhancement?.compareLabel ?? compareField.label,\n value: compareValue,\n direction: compareValue > 0 ? \"up\" : compareValue < 0 ? \"down\" : \"flat\",\n meaning: comparisonMeaning(field, metricEnhancement),\n colorMode: metricEnhancement?.comparisonColorMode ?? \"meaning\",\n format: resolveFormat(compareField, enhancement)\n });\n }\n }\n\n return Object.freeze({\n type: \"metric\",\n empty: value === null,\n label: field.label,\n value,\n format: resolveFormat(field, enhancement),\n ...(field.unit ? { unit: field.unit } : {}),\n ...(comparison ? { comparison } : {})\n });\n }\n};\n\nexport const lineAdapter: VisualizationAdapter<LineBinding, EnhancementFor<\"line\">, LineViewModel> = {\n id: \"line.default\",\n adapt({ dataset, binding, enhancement }) {\n const result = buildCartesianSeries(dataset, binding.xField, binding.yFields, binding.seriesField, enhancement);\n const categoryField = requireField(dataset, binding.xField);\n const lineEnhancement: LineEnhancement | undefined = enhancement?.line;\n const categoryFormat = resolveCategoryFormat(categoryField, enhancement);\n const hasFiniteValue = result.series.some((series) => series.values.some((value) => value !== null));\n return Object.freeze({\n type: \"line\",\n empty: result.categories.length === 0 || result.series.length === 0 || !hasFiniteValue,\n categories: Object.freeze(result.categories),\n ...(categoryFormat ? { categoryFormat } : {}),\n series: Object.freeze(result.series),\n showLabels: lineEnhancement?.showLabels ?? false,\n smooth: lineEnhancement?.smooth ?? true,\n annotations: Object.freeze([\n ...(lineEnhancement?.markCategories ?? []).map((value) => ({ type: \"category\" as const, value })),\n ...(lineEnhancement?.markValues ?? []).map((value) => ({ type: \"value\" as const, value }))\n ])\n });\n }\n};\n\nfunction sortBarResult(\n categories: Array<string | number>,\n series: CartesianSeriesViewModel[],\n sort: BarEnhancement[\"sort\"]\n): { categories: string[]; series: CartesianSeriesViewModel[] } {\n const order = categories.map((category, index) => ({\n category: String(category),\n index,\n value: series.reduce((sum, item) => sum + (item.values[index] ?? 0), 0)\n }));\n if (sort === \"ascending\") order.sort((left, right) => left.value - right.value);\n if (sort === \"descending\") order.sort((left, right) => right.value - left.value);\n return {\n categories: order.map((item) => item.category),\n series: series.map((item) =>\n freezeSeries({ ...item, values: order.map(({ index }) => item.values[index] ?? null) })\n )\n };\n}\n\nexport const barAdapter: VisualizationAdapter<BarBinding, EnhancementFor<\"bar\">, BarViewModel> = {\n id: \"bar.default\",\n adapt({ dataset, binding, enhancement }) {\n const base = buildCartesianSeries(\n dataset,\n binding.categoryField,\n binding.valueFields,\n binding.seriesField,\n enhancement\n );\n const barEnhancement = enhancement?.bar;\n const result = sortBarResult(base.categories, base.series, barEnhancement?.sort ?? \"none\");\n return Object.freeze({\n type: \"bar\",\n empty: result.categories.length === 0 || result.series.length === 0,\n categories: Object.freeze(result.categories),\n series: Object.freeze(result.series),\n orientation: barEnhancement?.orientation ?? \"vertical\",\n ...(barEnhancement?.visibleCount !== undefined ? { visibleCount: barEnhancement.visibleCount } : {}),\n showLabels: barEnhancement?.showLabels ?? false,\n stacked: barEnhancement?.stacked ?? false\n });\n }\n};\n\nexport const pieAdapter: VisualizationAdapter<PieBinding, EnhancementFor<\"pie\">, PieViewModel> = {\n id: \"pie.default\",\n adapt({ dataset, binding, enhancement }) {\n const valueField = requireField(dataset, binding.valueField);\n const groupedItems = new Map<string, PieItemViewModel>();\n dataset.rows.forEach((row) => {\n const label = row[binding.nameField];\n const value = finiteNumber(row[binding.valueField]);\n const normalizedLabel = label === null || label === undefined ? \"\" : String(label).trim();\n if (!normalizedLabel || value === null || value <= 0) return;\n const existing = groupedItems.get(normalizedLabel);\n groupedItems.set(normalizedLabel, {\n id: existing?.id ?? `item:${normalizedLabel}`,\n label: normalizedLabel,\n value: (existing?.value ?? 0) + value\n });\n });\n const rawItems = Array.from(groupedItems.values());\n rawItems.sort((left, right) => right.value - left.value);\n const pieEnhancement: PieEnhancement | undefined = enhancement?.pie;\n const maxItems = pieEnhancement?.maxItems;\n let items = rawItems;\n if (maxItems && rawItems.length > maxItems) {\n const visible = rawItems.slice(0, maxItems - 1);\n const remaining = rawItems.slice(maxItems - 1);\n visible.push({\n id: \"__others__\",\n label: pieEnhancement.othersLabel ?? \"Others\",\n value: remaining.reduce((sum, item) => sum + item.value, 0)\n });\n items = visible;\n }\n return Object.freeze({\n type: \"pie\",\n empty: items.length === 0,\n items: Object.freeze(items.map((item) => Object.freeze(item))),\n valueFormat: resolveFormat(valueField, enhancement),\n ...(valueField.unit ? { unit: valueField.unit } : {}),\n donut: pieEnhancement?.donut ?? true,\n showLegend: pieEnhancement?.showLegend ?? true\n });\n }\n};\n\nfunction wordLabelPart(value: unknown): string | null {\n if (typeof value === \"string\") return value.trim() || null;\n if (typeof value === \"number\" && Number.isFinite(value)) return String(value);\n if (typeof value === \"boolean\") return String(value);\n return null;\n}\n\nexport const wordCloudAdapter: VisualizationAdapter<\n WordCloudBinding,\n EnhancementFor<\"wordCloud\">,\n WordCloudViewModel\n> = {\n id: \"wordCloud.default\",\n adapt({ dataset, binding, enhancement }) {\n const valueField = requireField(dataset, binding.valueField);\n binding.labelFields.forEach((fieldId) => requireField(dataset, fieldId));\n if (binding.semanticField) requireField(dataset, binding.semanticField);\n\n const wordCloudEnhancement: WordCloudEnhancement | undefined = enhancement?.wordCloud;\n const minFontSize = wordCloudEnhancement?.minFontSize ?? 12;\n const maxFontSize = wordCloudEnhancement?.maxFontSize ?? 56;\n if (minFontSize > maxFontSize) throw new Error(\"Word cloud minFontSize cannot be greater than maxFontSize.\");\n\n const words: WordCloudWordViewModel[] = dataset.rows.flatMap((row, index) => {\n const labelParts = binding.labelFields.map((fieldId) => wordLabelPart(row[fieldId]));\n const value = finiteNumber(row[binding.valueField]);\n if (labelParts.some((part) => part === null) || value === null || value <= 0) return [];\n\n const semantic = binding.semanticField ? wordLabelPart(row[binding.semanticField]) : null;\n return [\n Object.freeze({\n id: `${labelParts.join(\":\")}:${index}`,\n label: labelParts.join(\" · \"),\n value,\n ...(semantic ? { semantic } : {})\n })\n ];\n });\n words.sort((left, right) => right.value - left.value);\n const visibleWords = words.slice(0, wordCloudEnhancement?.maxItems ?? 80);\n\n return Object.freeze({\n type: \"wordCloud\",\n empty: visibleWords.length === 0,\n words: Object.freeze(visibleWords),\n valueFormat: resolveFormat(valueField, enhancement),\n ...(valueField.unit ? { unit: valueField.unit } : {}),\n minFontSize,\n maxFontSize\n });\n }\n};\n\nexport const tableAdapter: VisualizationAdapter<TableBinding, EnhancementFor<\"table\">, TableViewModel> = {\n id: \"table.default\",\n adapt({ dataset, binding, enhancement }) {\n const tableEnhancement: TableEnhancement | undefined = enhancement?.table;\n const sortableFields = new Set(tableEnhancement?.sortableFields ?? []);\n const filterableFields = new Set(tableEnhancement?.filterableFields ?? []);\n const columns = binding.columns.map((fieldId) => {\n const field = requireField(dataset, fieldId);\n const width = tableEnhancement?.columnWidths?.[fieldId];\n const display = tableEnhancement?.columnDisplays?.[fieldId];\n return Object.freeze({\n field: field.key,\n label: field.label,\n dataType: field.dataType,\n ...(field.format ? { format: resolveFormat(field, enhancement) } : {}),\n ...(field.unit ? { unit: field.unit } : {}),\n ...(width ? { width } : {}),\n ...(display ? { display: freezeTableCellDisplay(display) } : {}),\n sortable: sortableFields.has(fieldId),\n filterable: filterableFields.has(fieldId)\n });\n });\n const rows = dataset.rows.map((row) =>\n Object.freeze(Object.fromEntries(binding.columns.map((fieldId) => [fieldId, row[fieldId]])))\n );\n return Object.freeze({\n type: \"table\",\n empty: rows.length === 0,\n columns: Object.freeze(columns),\n rows: Object.freeze(rows),\n pageSize: tableEnhancement?.pageSize ?? 50,\n showPagination: tableEnhancement?.showPagination ?? true,\n diagnostics: dataset.diagnostics\n });\n }\n};\n\nfunction freezeTableCellDisplay(display: TableCellDisplay): TableCellDisplay {\n if (display.type !== \"tag\" || !display.toneByValue) return Object.freeze({ ...display });\n return Object.freeze({ ...display, toneByValue: Object.freeze({ ...display.toneByValue }) });\n}\n\nexport const STANDARD_ADAPTERS = Object.freeze([\n metricAdapter,\n lineAdapter,\n barAdapter,\n pieAdapter,\n tableAdapter,\n wordCloudAdapter\n]);\n","import {\n BarBindingSchema,\n BarVisualizationEnhancementSchema,\n JsonValueSchema,\n LineBindingSchema,\n LineVisualizationEnhancementSchema,\n MetricBindingSchema,\n MetricVisualizationEnhancementSchema,\n PieBindingSchema,\n PieVisualizationEnhancementSchema,\n TableBindingSchema,\n TableVisualizationEnhancementSchema,\n WordCloudBindingSchema,\n WordCloudVisualizationEnhancementSchema,\n createTypeBoxRuntimeSchema\n} from \"../config\";\nimport type { VisualizationRendererDefinition } from \"./types\";\n\nconst standardCapabilities = {\n responsive: true,\n csv: true,\n selection: false\n} as const;\n\nexport const metricRendererDefinition: VisualizationRendererDefinition = Object.freeze({\n id: \"metric\",\n defaultAdapterId: \"metric.default\",\n bindingSchema: createTypeBoxRuntimeSchema(MetricBindingSchema),\n enhancementSchema: createTypeBoxRuntimeSchema(MetricVisualizationEnhancementSchema, [JsonValueSchema]),\n capabilities: Object.freeze({ ...standardCapabilities, png: false })\n});\n\nexport const lineRendererDefinition: VisualizationRendererDefinition = Object.freeze({\n id: \"line\",\n defaultAdapterId: \"line.default\",\n bindingSchema: createTypeBoxRuntimeSchema(LineBindingSchema),\n enhancementSchema: createTypeBoxRuntimeSchema(LineVisualizationEnhancementSchema, [JsonValueSchema]),\n capabilities: Object.freeze({ ...standardCapabilities, png: true, selection: true })\n});\n\nexport const barRendererDefinition: VisualizationRendererDefinition = Object.freeze({\n id: \"bar\",\n defaultAdapterId: \"bar.default\",\n bindingSchema: createTypeBoxRuntimeSchema(BarBindingSchema),\n enhancementSchema: createTypeBoxRuntimeSchema(BarVisualizationEnhancementSchema, [JsonValueSchema]),\n capabilities: Object.freeze({ ...standardCapabilities, png: true, selection: true })\n});\n\nexport const pieRendererDefinition: VisualizationRendererDefinition = Object.freeze({\n id: \"pie\",\n defaultAdapterId: \"pie.default\",\n bindingSchema: createTypeBoxRuntimeSchema(PieBindingSchema),\n enhancementSchema: createTypeBoxRuntimeSchema(PieVisualizationEnhancementSchema, [JsonValueSchema]),\n capabilities: Object.freeze({ ...standardCapabilities, png: true, selection: true })\n});\n\nexport const tableRendererDefinition: VisualizationRendererDefinition = Object.freeze({\n id: \"table\",\n defaultAdapterId: \"table.default\",\n bindingSchema: createTypeBoxRuntimeSchema(TableBindingSchema),\n enhancementSchema: createTypeBoxRuntimeSchema(TableVisualizationEnhancementSchema, [JsonValueSchema]),\n capabilities: Object.freeze({ ...standardCapabilities, png: false, selection: true })\n});\n\nexport const wordCloudRendererDefinition: VisualizationRendererDefinition = Object.freeze({\n id: \"wordCloud\",\n defaultAdapterId: \"wordCloud.default\",\n bindingSchema: createTypeBoxRuntimeSchema(WordCloudBindingSchema),\n enhancementSchema: createTypeBoxRuntimeSchema(WordCloudVisualizationEnhancementSchema, [JsonValueSchema]),\n capabilities: Object.freeze({ ...standardCapabilities, png: true })\n});\n\nexport const STANDARD_RENDERER_DEFINITIONS = Object.freeze([\n metricRendererDefinition,\n lineRendererDefinition,\n barRendererDefinition,\n pieRendererDefinition,\n tableRendererDefinition,\n wordCloudRendererDefinition\n]);\n"],"names":["requireField","dataset","fieldId","field","candidate","resolveFormat","enhancement","_b","_a","resolveCategoryFormat","resolveAxisKey","stableSerializeJson","finiteNumber","value","categoryValue","stableCategoryKey","freezeSeries","series","buildCartesianSeries","categoryFieldId","valueFieldIds","seriesFieldId","categories","categoryIndexes","row","category","key","values","index","valueFieldId","valueField","seriesGroups","group","label","groupKey","entry","id","comparisonMeaning","metricAdapter","binding","metricEnhancement","comparison","compareField","compareValue","lineAdapter","result","categoryField","lineEnhancement","categoryFormat","hasFiniteValue","sortBarResult","sort","order","sum","item","left","right","barAdapter","base","barEnhancement","pieAdapter","groupedItems","normalizedLabel","existing","rawItems","pieEnhancement","maxItems","items","visible","remaining","wordLabelPart","wordCloudAdapter","wordCloudEnhancement","minFontSize","maxFontSize","words","labelParts","part","semantic","visibleWords","tableAdapter","tableEnhancement","sortableFields","filterableFields","columns","width","display","freezeTableCellDisplay","rows","STANDARD_ADAPTERS","standardCapabilities","metricRendererDefinition","createTypeBoxRuntimeSchema","MetricBindingSchema","MetricVisualizationEnhancementSchema","JsonValueSchema","lineRendererDefinition","LineBindingSchema","LineVisualizationEnhancementSchema","barRendererDefinition","BarBindingSchema","BarVisualizationEnhancementSchema","pieRendererDefinition","PieBindingSchema","PieVisualizationEnhancementSchema","tableRendererDefinition","TableBindingSchema","TableVisualizationEnhancementSchema","wordCloudRendererDefinition","WordCloudBindingSchema","WordCloudVisualizationEnhancementSchema","STANDARD_RENDERER_DEFINITIONS"],"mappings":";;AAsCA,SAASA,EAAaC,GAAwBC,GAAqC;AACjF,QAAMC,IAAQF,EAAQ,OAAO,KAAK,CAACG,MAAcA,EAAU,QAAQF,CAAO;AAC1E,MAAI,CAACC,EAAO,OAAM,IAAI,MAAM,WAAWF,EAAQ,SAAS,2BAA2BC,CAAO,GAAG;AAC7F,SAAOC;AACT;AAEA,SAASE,EAAcF,GAA2BG,GAAqD;;AACrG,WAAOC,KAAAC,IAAAF,KAAA,gBAAAA,EAAa,WAAb,gBAAAE,EAAqB,oBAArB,gBAAAD,EAAuCJ,EAAM,SAAQA,EAAM,UAAU,EAAE,MAAM,SAAA;AACtF;AAEA,SAASM,EACPN,GACAG,GACyB;;AACzB,WACEC,KAAAC,IAAAF,KAAA,gBAAAA,EAAa,WAAb,gBAAAE,EAAqB,oBAArB,gBAAAD,EAAuCJ,EAAM,SAC7CA,EAAM,WACLA,EAAM,aAAa,UAAUA,EAAM,aAAa,aAAa,EAAE,MAAMA,EAAM,aAAa;AAE7F;AAEA,SAASO,EAAeP,GAA2BG,GAAgD;AACjG,SAAOK,EAAoB,EAAE,QAAQN,EAAcF,GAAOG,CAAW,GAAG,MAAMH,EAAM,QAAQ,KAAA,CAAM;AACpG;AAEA,SAASS,EAAaC,GAA+B;AACnD,SAAO,OAAOA,KAAU,YAAY,OAAO,SAASA,CAAK,IAAIA,IAAQ;AACvE;AAEA,SAASC,EAAcD,GAAwC;AAC7D,SAAI,OAAOA,KAAU,YAAa,OAAOA,KAAU,YAAY,OAAO,SAASA,CAAK,IAAWA,IACxF;AACT;AAEA,SAASE,EAAkBF,GAAgC;AACzD,SAAO,GAAG,OAAOA,CAAK,IAAI,OAAOA,CAAK,CAAC;AACzC;AAEA,SAASG,EAAaC,GAA4D;AAChF,SAAO,OAAO,OAAO,EAAE,GAAGA,GAAQ,QAAQ,OAAO,OAAO,CAAC,GAAGA,EAAO,MAAM,CAAC,GAAG;AAC/E;AAEA,SAASC,EACPjB,GACAkB,GACAC,GACAC,GACAf,GAC4E;AAC5E,QAAMgB,IAAqC,CAAA,GACrCC,wBAAsB,IAAA;AAW5B,MAVAtB,EAAQ,KAAK,QAAQ,CAACuB,MAAQ;AAC5B,UAAMC,IAAWX,EAAcU,EAAIL,CAAe,CAAC;AACnD,QAAIM,MAAa,KAAM;AACvB,UAAMC,IAAMX,EAAkBU,CAAQ;AACtC,IAAKF,EAAgB,IAAIG,CAAG,MAC1BH,EAAgB,IAAIG,GAAKJ,EAAW,MAAM,GAC1CA,EAAW,KAAKG,CAAQ;AAAA,EAE5B,CAAC,GAEG,CAACJ,GAAe;AAClB,UAAMJ,IAASG,EAAc,IAAI,CAAClB,MAAY;AAC5C,YAAMC,IAAQH,EAAaC,GAASC,CAAO,GACrCyB,IAAS,MAAM,KAAoB,EAAE,QAAQL,EAAW,OAAA,CAAQ,EAAE,KAAK,IAAI;AACjF,aAAArB,EAAQ,KAAK,QAAQ,CAACuB,MAAQ;AAC5B,cAAMC,IAAWX,EAAcU,EAAIL,CAAe,CAAC;AACnD,YAAIM,MAAa,KAAM;AACvB,cAAMG,IAAQL,EAAgB,IAAIR,EAAkBU,CAAQ,CAAC;AAC7D,QAAIG,MAAU,WAAWD,EAAOC,CAAK,IAAIhB,EAAaY,EAAItB,CAAO,CAAC;AAAA,MACpE,CAAC,GACMc,EAAa;AAAA,QAClB,IAAIb,EAAM;AAAA,QACV,cAAcA,EAAM;AAAA,QACpB,SAASO,EAAeP,GAAOG,CAAW;AAAA,QAC1C,OAAOH,EAAM;AAAA,QACb,QAAAwB;AAAA,QACA,QAAQtB,EAAcF,GAAOG,CAAW;AAAA,QACxC,GAAIH,EAAM,OAAO,EAAE,MAAMA,EAAM,KAAA,IAAS,CAAA;AAAA,MAAC,CAC1C;AAAA,IACH,CAAC;AACD,WAAO,EAAE,YAAAmB,GAAY,QAAAL,EAAA;AAAA,EACvB;AAEA,QAAMY,IAAeT,EAAc,CAAC,GAC9BU,IAAa9B,EAAaC,GAAS4B,CAAY,GAC/CE,wBAAmB,IAAA;AACzB,SAAA9B,EAAQ,KAAK,QAAQ,CAACuB,MAAQ;AAC5B,UAAMC,IAAWX,EAAcU,EAAIL,CAAe,CAAC,GAC7Ca,IAAQR,EAAIH,CAAa;AAC/B,QAAII,MAAa,QAAQO,MAAU,QAAQA,MAAU,OAAW;AAChE,UAAMC,IAAQ,OAAOD,CAAK,GACpBE,IAAW,GAAG,OAAOF,CAAK,IAAIC,CAAK,IACnCE,IAAQJ,EAAa,IAAIG,CAAQ,KAAK;AAAA,MAC1C,OAAAD;AAAA,MACA,QAAQ,MAAM,KAAoB,EAAE,QAAQX,EAAW,OAAA,CAAQ,EAAE,KAAK,IAAI;AAAA,IAAA,GAEtEM,IAAQL,EAAgB,IAAIR,EAAkBU,CAAQ,CAAC;AAC7D,IAAIG,MAAU,WAAWO,EAAM,OAAOP,CAAK,IAAIhB,EAAaY,EAAIK,CAAY,CAAC,IAC7EE,EAAa,IAAIG,GAAUC,CAAK;AAAA,EAClC,CAAC,GAEM;AAAA,IACL,YAAAb;AAAA,IACA,QAAQ,MAAM;AAAA,MAAKS;AAAA,MAAc,CAAC,CAACK,GAAID,CAAK,MAC1CnB,EAAa;AAAA,QACX,IAAAoB;AAAA,QACA,cAAcN,EAAW;AAAA,QACzB,SAASpB,EAAeoB,GAAYxB,CAAW;AAAA,QAC/C,OAAO6B,EAAM;AAAA,QACb,QAAQA,EAAM;AAAA,QACd,QAAQ9B,EAAcyB,GAAYxB,CAAW;AAAA,QAC7C,GAAIwB,EAAW,OAAO,EAAE,MAAMA,EAAW,KAAA,IAAS,CAAA;AAAA,MAAC,CACpD;AAAA,IAAA;AAAA,EACH;AAEJ;AAEA,SAASO,EAAkBlC,GAA2BG,GAAiC;;AACrF,MAAIA,KAAA,QAAAA,EAAa,eAAgB,QAAOA,EAAY;AACpD,WAAQE,IAAAL,EAAM,oBAAN,gBAAAK,EAAuB,iBAAA;AAAA,IAC7B,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT;AACE,aAAO;AAAA,EAAA;AAEb;AAEO,MAAM8B,IAAgG;AAAA,EAC3G,IAAI;AAAA,EACJ,MAAM,EAAE,SAAArC,GAAS,SAAAsC,GAAS,aAAAjC,KAAe;AACvC,UAAMH,IAAQH,EAAaC,GAASsC,EAAQ,UAAU,GAChDf,IAAMvB,EAAQ,KAAK,CAAC,GACpBY,IAAQD,EAAaY,KAAA,gBAAAA,EAAMe,EAAQ,WAAW,GAC9CC,IAAoBlC,KAAA,gBAAAA,EAAa;AACvC,QAAImC;AACJ,QAAIF,EAAQ,iBAAgBC,KAAA,gBAAAA,EAAmB,oBAAmB,IAAO;AACvE,YAAME,IAAe1C,EAAaC,GAASsC,EAAQ,YAAY,GACzDI,IAAe/B,EAAaY,KAAA,gBAAAA,EAAMe,EAAQ,aAAa;AAC7D,MAAII,MAAiB,SACnBF,IAAa,OAAO,OAAO;AAAA,QACzB,QAAOD,KAAA,gBAAAA,EAAmB,iBAAgBE,EAAa;AAAA,QACvD,OAAOC;AAAA,QACP,WAAWA,IAAe,IAAI,OAAOA,IAAe,IAAI,SAAS;AAAA,QACjE,SAASN,EAAkBlC,GAAOqC,CAAiB;AAAA,QACnD,YAAWA,KAAA,gBAAAA,EAAmB,wBAAuB;AAAA,QACrD,QAAQnC,EAAcqC,GAAcpC,CAAW;AAAA,MAAA,CAChD;AAAA,IAEL;AAEA,WAAO,OAAO,OAAO;AAAA,MACnB,MAAM;AAAA,MACN,OAAOO,MAAU;AAAA,MACjB,OAAOV,EAAM;AAAA,MACb,OAAAU;AAAA,MACA,QAAQR,EAAcF,GAAOG,CAAW;AAAA,MACxC,GAAIH,EAAM,OAAO,EAAE,MAAMA,EAAM,KAAA,IAAS,CAAA;AAAA,MACxC,GAAIsC,IAAa,EAAE,YAAAA,MAAe,CAAA;AAAA,IAAC,CACpC;AAAA,EACH;AACF,GAEaG,IAAwF;AAAA,EACnG,IAAI;AAAA,EACJ,MAAM,EAAE,SAAA3C,GAAS,SAAAsC,GAAS,aAAAjC,KAAe;AACvC,UAAMuC,IAAS3B,EAAqBjB,GAASsC,EAAQ,QAAQA,EAAQ,SAASA,EAAQ,aAAajC,CAAW,GACxGwC,IAAgB9C,EAAaC,GAASsC,EAAQ,MAAM,GACpDQ,IAA+CzC,KAAA,gBAAAA,EAAa,MAC5D0C,IAAiBvC,EAAsBqC,GAAexC,CAAW,GACjE2C,IAAiBJ,EAAO,OAAO,KAAK,CAAC5B,MAAWA,EAAO,OAAO,KAAK,CAACJ,MAAUA,MAAU,IAAI,CAAC;AACnG,WAAO,OAAO,OAAO;AAAA,MACnB,MAAM;AAAA,MACN,OAAOgC,EAAO,WAAW,WAAW,KAAKA,EAAO,OAAO,WAAW,KAAK,CAACI;AAAA,MACxE,YAAY,OAAO,OAAOJ,EAAO,UAAU;AAAA,MAC3C,GAAIG,IAAiB,EAAE,gBAAAA,EAAA,IAAmB,CAAA;AAAA,MAC1C,QAAQ,OAAO,OAAOH,EAAO,MAAM;AAAA,MACnC,aAAYE,KAAA,gBAAAA,EAAiB,eAAc;AAAA,MAC3C,SAAQA,KAAA,gBAAAA,EAAiB,WAAU;AAAA,MACnC,aAAa,OAAO,OAAO;AAAA,QACzB,KAAIA,KAAA,gBAAAA,EAAiB,mBAAkB,CAAA,GAAI,IAAI,CAAClC,OAAW,EAAE,MAAM,YAAqB,OAAAA,EAAA,EAAQ;AAAA,QAChG,KAAIkC,KAAA,gBAAAA,EAAiB,eAAc,CAAA,GAAI,IAAI,CAAClC,OAAW,EAAE,MAAM,SAAkB,OAAAA,IAAQ;AAAA,MAAA,CAC1F;AAAA,IAAA,CACF;AAAA,EACH;AACF;AAEA,SAASqC,EACP5B,GACAL,GACAkC,GAC8D;AAC9D,QAAMC,IAAQ9B,EAAW,IAAI,CAACG,GAAUG,OAAW;AAAA,IACjD,UAAU,OAAOH,CAAQ;AAAA,IACzB,OAAAG;AAAA,IACA,OAAOX,EAAO,OAAO,CAACoC,GAAKC,MAASD,KAAOC,EAAK,OAAO1B,CAAK,KAAK,IAAI,CAAC;AAAA,EAAA,EACtE;AACF,SAAIuB,MAAS,eAAaC,EAAM,KAAK,CAACG,GAAMC,MAAUD,EAAK,QAAQC,EAAM,KAAK,GAC1EL,MAAS,gBAAcC,EAAM,KAAK,CAACG,GAAMC,MAAUA,EAAM,QAAQD,EAAK,KAAK,GACxE;AAAA,IACL,YAAYH,EAAM,IAAI,CAACE,MAASA,EAAK,QAAQ;AAAA,IAC7C,QAAQrC,EAAO;AAAA,MAAI,CAACqC,MAClBtC,EAAa,EAAE,GAAGsC,GAAM,QAAQF,EAAM,IAAI,CAAC,EAAE,OAAAxB,EAAA,MAAY0B,EAAK,OAAO1B,CAAK,KAAK,IAAI,GAAG;AAAA,IAAA;AAAA,EACxF;AAEJ;AAEO,MAAM6B,IAAoF;AAAA,EAC/F,IAAI;AAAA,EACJ,MAAM,EAAE,SAAAxD,GAAS,SAAAsC,GAAS,aAAAjC,KAAe;AACvC,UAAMoD,IAAOxC;AAAA,MACXjB;AAAA,MACAsC,EAAQ;AAAA,MACRA,EAAQ;AAAA,MACRA,EAAQ;AAAA,MACRjC;AAAA,IAAA,GAEIqD,IAAiBrD,KAAA,gBAAAA,EAAa,KAC9BuC,IAASK,EAAcQ,EAAK,YAAYA,EAAK,SAAQC,KAAA,gBAAAA,EAAgB,SAAQ,MAAM;AACzF,WAAO,OAAO,OAAO;AAAA,MACnB,MAAM;AAAA,MACN,OAAOd,EAAO,WAAW,WAAW,KAAKA,EAAO,OAAO,WAAW;AAAA,MAClE,YAAY,OAAO,OAAOA,EAAO,UAAU;AAAA,MAC3C,QAAQ,OAAO,OAAOA,EAAO,MAAM;AAAA,MACnC,cAAac,KAAA,gBAAAA,EAAgB,gBAAe;AAAA,MAC5C,IAAIA,KAAA,gBAAAA,EAAgB,kBAAiB,SAAY,EAAE,cAAcA,EAAe,aAAA,IAAiB,CAAA;AAAA,MACjG,aAAYA,KAAA,gBAAAA,EAAgB,eAAc;AAAA,MAC1C,UAASA,KAAA,gBAAAA,EAAgB,YAAW;AAAA,IAAA,CACrC;AAAA,EACH;AACF,GAEaC,IAAoF;AAAA,EAC/F,IAAI;AAAA,EACJ,MAAM,EAAE,SAAA3D,GAAS,SAAAsC,GAAS,aAAAjC,KAAe;AACvC,UAAMwB,IAAa9B,EAAaC,GAASsC,EAAQ,UAAU,GACrDsB,wBAAmB,IAAA;AACzB,IAAA5D,EAAQ,KAAK,QAAQ,CAACuB,MAAQ;AAC5B,YAAMS,IAAQT,EAAIe,EAAQ,SAAS,GAC7B1B,IAAQD,EAAaY,EAAIe,EAAQ,UAAU,CAAC,GAC5CuB,IAAkB7B,KAAU,OAA8B,KAAK,OAAOA,CAAK,EAAE,KAAA;AACnF,UAAI,CAAC6B,KAAmBjD,MAAU,QAAQA,KAAS,EAAG;AACtD,YAAMkD,IAAWF,EAAa,IAAIC,CAAe;AACjD,MAAAD,EAAa,IAAIC,GAAiB;AAAA,QAChC,KAAIC,KAAA,gBAAAA,EAAU,OAAM,QAAQD,CAAe;AAAA,QAC3C,OAAOA;AAAA,QACP,SAAQC,KAAA,gBAAAA,EAAU,UAAS,KAAKlD;AAAA,MAAA,CACjC;AAAA,IACH,CAAC;AACD,UAAMmD,IAAW,MAAM,KAAKH,EAAa,QAAQ;AACjD,IAAAG,EAAS,KAAK,CAACT,GAAMC,MAAUA,EAAM,QAAQD,EAAK,KAAK;AACvD,UAAMU,IAA6C3D,KAAA,gBAAAA,EAAa,KAC1D4D,IAAWD,KAAA,gBAAAA,EAAgB;AACjC,QAAIE,IAAQH;AACZ,QAAIE,KAAYF,EAAS,SAASE,GAAU;AAC1C,YAAME,IAAUJ,EAAS,MAAM,GAAGE,IAAW,CAAC,GACxCG,IAAYL,EAAS,MAAME,IAAW,CAAC;AAC7C,MAAAE,EAAQ,KAAK;AAAA,QACX,IAAI;AAAA,QACJ,OAAOH,EAAe,eAAe;AAAA,QACrC,OAAOI,EAAU,OAAO,CAAChB,GAAKC,MAASD,IAAMC,EAAK,OAAO,CAAC;AAAA,MAAA,CAC3D,GACDa,IAAQC;AAAA,IACV;AACA,WAAO,OAAO,OAAO;AAAA,MACnB,MAAM;AAAA,MACN,OAAOD,EAAM,WAAW;AAAA,MACxB,OAAO,OAAO,OAAOA,EAAM,IAAI,CAACb,MAAS,OAAO,OAAOA,CAAI,CAAC,CAAC;AAAA,MAC7D,aAAajD,EAAcyB,GAAYxB,CAAW;AAAA,MAClD,GAAIwB,EAAW,OAAO,EAAE,MAAMA,EAAW,KAAA,IAAS,CAAA;AAAA,MAClD,QAAOmC,KAAA,gBAAAA,EAAgB,UAAS;AAAA,MAChC,aAAYA,KAAA,gBAAAA,EAAgB,eAAc;AAAA,IAAA,CAC3C;AAAA,EACH;AACF;AAEA,SAASK,EAAczD,GAA+B;AACpD,SAAI,OAAOA,KAAU,WAAiBA,EAAM,UAAU,OAClD,OAAOA,KAAU,YAAY,OAAO,SAASA,CAAK,KAClD,OAAOA,KAAU,YAAkB,OAAOA,CAAK,IAC5C;AACT;AAEO,MAAM0D,IAIT;AAAA,EACF,IAAI;AAAA,EACJ,MAAM,EAAE,SAAAtE,GAAS,SAAAsC,GAAS,aAAAjC,KAAe;AACvC,UAAMwB,IAAa9B,EAAaC,GAASsC,EAAQ,UAAU;AAC3D,IAAAA,EAAQ,YAAY,QAAQ,CAACrC,MAAYF,EAAaC,GAASC,CAAO,CAAC,GACnEqC,EAAQ,iBAAevC,EAAaC,GAASsC,EAAQ,aAAa;AAEtE,UAAMiC,IAAyDlE,KAAA,gBAAAA,EAAa,WACtEmE,KAAcD,KAAA,gBAAAA,EAAsB,gBAAe,IACnDE,KAAcF,KAAA,gBAAAA,EAAsB,gBAAe;AACzD,QAAIC,IAAcC,EAAa,OAAM,IAAI,MAAM,4DAA4D;AAE3G,UAAMC,IAAkC1E,EAAQ,KAAK,QAAQ,CAACuB,GAAKI,MAAU;AAC3E,YAAMgD,IAAarC,EAAQ,YAAY,IAAI,CAACrC,MAAYoE,EAAc9C,EAAItB,CAAO,CAAC,CAAC,GAC7EW,IAAQD,EAAaY,EAAIe,EAAQ,UAAU,CAAC;AAClD,UAAIqC,EAAW,KAAK,CAACC,MAASA,MAAS,IAAI,KAAKhE,MAAU,QAAQA,KAAS,EAAG,QAAO,CAAA;AAErF,YAAMiE,IAAWvC,EAAQ,gBAAgB+B,EAAc9C,EAAIe,EAAQ,aAAa,CAAC,IAAI;AACrF,aAAO;AAAA,QACL,OAAO,OAAO;AAAA,UACZ,IAAI,GAAGqC,EAAW,KAAK,GAAG,CAAC,IAAIhD,CAAK;AAAA,UACpC,OAAOgD,EAAW,KAAK,KAAK;AAAA,UAC5B,OAAA/D;AAAA,UACA,GAAIiE,IAAW,EAAE,UAAAA,MAAa,CAAA;AAAA,QAAC,CAChC;AAAA,MAAA;AAAA,IAEL,CAAC;AACD,IAAAH,EAAM,KAAK,CAACpB,GAAMC,MAAUA,EAAM,QAAQD,EAAK,KAAK;AACpD,UAAMwB,IAAeJ,EAAM,MAAM,IAAGH,KAAA,gBAAAA,EAAsB,aAAY,EAAE;AAExE,WAAO,OAAO,OAAO;AAAA,MACnB,MAAM;AAAA,MACN,OAAOO,EAAa,WAAW;AAAA,MAC/B,OAAO,OAAO,OAAOA,CAAY;AAAA,MACjC,aAAa1E,EAAcyB,GAAYxB,CAAW;AAAA,MAClD,GAAIwB,EAAW,OAAO,EAAE,MAAMA,EAAW,KAAA,IAAS,CAAA;AAAA,MAClD,aAAA2C;AAAA,MACA,aAAAC;AAAA,IAAA,CACD;AAAA,EACH;AACF,GAEaM,IAA4F;AAAA,EACvG,IAAI;AAAA,EACJ,MAAM,EAAE,SAAA/E,GAAS,SAAAsC,GAAS,aAAAjC,KAAe;AACvC,UAAM2E,IAAiD3E,KAAA,gBAAAA,EAAa,OAC9D4E,IAAiB,IAAI,KAAID,KAAA,gBAAAA,EAAkB,mBAAkB,CAAA,CAAE,GAC/DE,IAAmB,IAAI,KAAIF,KAAA,gBAAAA,EAAkB,qBAAoB,CAAA,CAAE,GACnEG,IAAU7C,EAAQ,QAAQ,IAAI,CAACrC,MAAY;;AAC/C,YAAMC,IAAQH,EAAaC,GAASC,CAAO,GACrCmF,KAAQ7E,IAAAyE,KAAA,gBAAAA,EAAkB,iBAAlB,gBAAAzE,EAAiCN,IACzCoF,KAAU/E,IAAA0E,KAAA,gBAAAA,EAAkB,mBAAlB,gBAAA1E,EAAmCL;AACnD,aAAO,OAAO,OAAO;AAAA,QACnB,OAAOC,EAAM;AAAA,QACb,OAAOA,EAAM;AAAA,QACb,UAAUA,EAAM;AAAA,QAChB,GAAIA,EAAM,SAAS,EAAE,QAAQE,EAAcF,GAAOG,CAAW,EAAA,IAAM,CAAA;AAAA,QACnE,GAAIH,EAAM,OAAO,EAAE,MAAMA,EAAM,KAAA,IAAS,CAAA;AAAA,QACxC,GAAIkF,IAAQ,EAAE,OAAAA,EAAA,IAAU,CAAA;AAAA,QACxB,GAAIC,IAAU,EAAE,SAASC,EAAuBD,CAAO,EAAA,IAAM,CAAA;AAAA,QAC7D,UAAUJ,EAAe,IAAIhF,CAAO;AAAA,QACpC,YAAYiF,EAAiB,IAAIjF,CAAO;AAAA,MAAA,CACzC;AAAA,IACH,CAAC,GACKsF,IAAOvF,EAAQ,KAAK;AAAA,MAAI,CAACuB,MAC7B,OAAO,OAAO,OAAO,YAAYe,EAAQ,QAAQ,IAAI,CAACrC,MAAY,CAACA,GAASsB,EAAItB,CAAO,CAAC,CAAC,CAAC,CAAC;AAAA,IAAA;AAE7F,WAAO,OAAO,OAAO;AAAA,MACnB,MAAM;AAAA,MACN,OAAOsF,EAAK,WAAW;AAAA,MACvB,SAAS,OAAO,OAAOJ,CAAO;AAAA,MAC9B,MAAM,OAAO,OAAOI,CAAI;AAAA,MACxB,WAAUP,KAAA,gBAAAA,EAAkB,aAAY;AAAA,MACxC,iBAAgBA,KAAA,gBAAAA,EAAkB,mBAAkB;AAAA,MACpD,aAAahF,EAAQ;AAAA,IAAA,CACtB;AAAA,EACH;AACF;AAEA,SAASsF,EAAuBD,GAA6C;AAC3E,SAAIA,EAAQ,SAAS,SAAS,CAACA,EAAQ,cAAoB,OAAO,OAAO,EAAE,GAAGA,EAAA,CAAS,IAChF,OAAO,OAAO,EAAE,GAAGA,GAAS,aAAa,OAAO,OAAO,EAAE,GAAGA,EAAQ,YAAA,CAAa,GAAG;AAC7F;AAEO,MAAMG,KAAoB,OAAO,OAAO;AAAA,EAC7CnD;AAAA,EACAM;AAAA,EACAa;AAAA,EACAG;AAAA,EACAoB;AAAA,EACAT;AACF,CAAC,GChZKmB,IAAuB;AAAA,EAC3B,YAAY;AAAA,EACZ,KAAK;AAAA,EACL,WAAW;AACb,GAEaC,IAA4D,OAAO,OAAO;AAAA,EACrF,IAAI;AAAA,EACJ,kBAAkB;AAAA,EAClB,eAAeC,EAA2BC,CAAmB;AAAA,EAC7D,mBAAmBD,EAA2BE,GAAsC,CAACC,CAAe,CAAC;AAAA,EACrG,cAAc,OAAO,OAAO,EAAE,GAAGL,GAAsB,KAAK,IAAO;AACrE,CAAC,GAEYM,IAA0D,OAAO,OAAO;AAAA,EACnF,IAAI;AAAA,EACJ,kBAAkB;AAAA,EAClB,eAAeJ,EAA2BK,CAAiB;AAAA,EAC3D,mBAAmBL,EAA2BM,GAAoC,CAACH,CAAe,CAAC;AAAA,EACnG,cAAc,OAAO,OAAO,EAAE,GAAGL,GAAsB,KAAK,IAAM,WAAW,GAAA,CAAM;AACrF,CAAC,GAEYS,KAAyD,OAAO,OAAO;AAAA,EAClF,IAAI;AAAA,EACJ,kBAAkB;AAAA,EAClB,eAAeP,EAA2BQ,CAAgB;AAAA,EAC1D,mBAAmBR,EAA2BS,GAAmC,CAACN,CAAe,CAAC;AAAA,EAClG,cAAc,OAAO,OAAO,EAAE,GAAGL,GAAsB,KAAK,IAAM,WAAW,GAAA,CAAM;AACrF,CAAC,GAEYY,KAAyD,OAAO,OAAO;AAAA,EAClF,IAAI;AAAA,EACJ,kBAAkB;AAAA,EAClB,eAAeV,EAA2BW,CAAgB;AAAA,EAC1D,mBAAmBX,EAA2BY,GAAmC,CAACT,CAAe,CAAC;AAAA,EAClG,cAAc,OAAO,OAAO,EAAE,GAAGL,GAAsB,KAAK,IAAM,WAAW,GAAA,CAAM;AACrF,CAAC,GAEYe,KAA2D,OAAO,OAAO;AAAA,EACpF,IAAI;AAAA,EACJ,kBAAkB;AAAA,EAClB,eAAeb,EAA2Bc,CAAkB;AAAA,EAC5D,mBAAmBd,EAA2Be,GAAqC,CAACZ,CAAe,CAAC;AAAA,EACpG,cAAc,OAAO,OAAO,EAAE,GAAGL,GAAsB,KAAK,IAAO,WAAW,GAAA,CAAM;AACtF,CAAC,GAEYkB,KAA+D,OAAO,OAAO;AAAA,EACxF,IAAI;AAAA,EACJ,kBAAkB;AAAA,EAClB,eAAehB,EAA2BiB,CAAsB;AAAA,EAChE,mBAAmBjB,EAA2BkB,GAAyC,CAACf,CAAe,CAAC;AAAA,EACxG,cAAc,OAAO,OAAO,EAAE,GAAGL,GAAsB,KAAK,IAAM;AACpE,CAAC,GAEYqB,KAAgC,OAAO,OAAO;AAAA,EACzDpB;AAAA,EACAK;AAAA,EACAG;AAAA,EACAG;AAAA,EACAG;AAAA,EACAG;AACF,CAAC;"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
function s(n, t, e) {
|
|
2
|
+
const i = t.type === "integer" ? 0 : t.precision, r = {
|
|
3
|
+
useGrouping: t.useGrouping ?? !0,
|
|
4
|
+
...i === void 0 ? {} : {
|
|
5
|
+
minimumFractionDigits: i,
|
|
6
|
+
maximumFractionDigits: i
|
|
7
|
+
}
|
|
8
|
+
};
|
|
9
|
+
t.type === "percent" ? r.style = "percent" : t.type === "currency" && t.unit && /^[A-Z]{3}$/.test(t.unit) && (r.style = "currency", r.currency = t.unit);
|
|
10
|
+
const o = new Intl.NumberFormat(e.locale, r).format(n);
|
|
11
|
+
return t.unit && r.style !== "currency" && t.type !== "percent" ? `${o} ${t.unit}` : o;
|
|
12
|
+
}
|
|
13
|
+
function m(n, t, e) {
|
|
14
|
+
if (typeof n != "string" && typeof n != "number" && !(n instanceof Date))
|
|
15
|
+
return;
|
|
16
|
+
if (t.type === "date" && typeof n == "string" && /^\d{4}-\d{2}-\d{2}$/.test(n)) {
|
|
17
|
+
const r = /* @__PURE__ */ new Date(`${n}T12:00:00Z`);
|
|
18
|
+
return Number.isNaN(r.getTime()) ? void 0 : new Intl.DateTimeFormat(e.locale, { dateStyle: "medium", timeZone: "UTC" }).format(r);
|
|
19
|
+
}
|
|
20
|
+
const i = n instanceof Date ? n : new Date(n);
|
|
21
|
+
if (!Number.isNaN(i.getTime()))
|
|
22
|
+
return new Intl.DateTimeFormat(e.locale, {
|
|
23
|
+
dateStyle: "medium",
|
|
24
|
+
...t.type === "datetime" ? { timeStyle: "medium" } : {},
|
|
25
|
+
timeZone: e.timezone
|
|
26
|
+
}).format(i);
|
|
27
|
+
}
|
|
28
|
+
class p {
|
|
29
|
+
formatDisplay(t, e, i) {
|
|
30
|
+
return t == null || t === "" ? e.emptyText ?? "--" : ["date", "datetime"].includes(e.type) ? m(t, e, i) ?? e.emptyText ?? "--" : typeof t != "number" || !Number.isFinite(t) ? typeof t == "string" ? t : e.emptyText ?? "--" : s(t, e, i);
|
|
31
|
+
}
|
|
32
|
+
formatTooltip(t, e, i) {
|
|
33
|
+
return this.formatDisplay(t, e, i);
|
|
34
|
+
}
|
|
35
|
+
formatAxis(t, e, i) {
|
|
36
|
+
return this.formatDisplay(t, e, i);
|
|
37
|
+
}
|
|
38
|
+
formatExport(t, e) {
|
|
39
|
+
return t == null || t === "" ? "" : typeof t == "number" || typeof t == "boolean" || typeof t == "string" ? t : t instanceof Date ? Number.isNaN(t.getTime()) ? "" : t.toISOString() : e.emptyText ?? "";
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
const y = new p();
|
|
43
|
+
export {
|
|
44
|
+
p as V,
|
|
45
|
+
y as v
|
|
46
|
+
};
|
|
47
|
+
//# sourceMappingURL=value-formatter-D5QmLSMG.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"value-formatter-D5QmLSMG.js","sources":["../src/core/formatter/value-formatter.ts"],"sourcesContent":["import type { ValueFormat } from \"../config\";\n\nexport interface FormatterContext {\n locale: string;\n timezone: string;\n}\n\nexport type ExportValue = string | number | boolean;\n\nfunction formatNumber(value: number, format: ValueFormat, context: FormatterContext): string {\n const precision = format.type === \"integer\" ? 0 : format.precision;\n const options: Intl.NumberFormatOptions = {\n useGrouping: format.useGrouping ?? true,\n ...(precision === undefined\n ? {}\n : {\n minimumFractionDigits: precision,\n maximumFractionDigits: precision\n })\n };\n\n if (format.type === \"percent\") {\n options.style = \"percent\";\n } else if (format.type === \"currency\" && format.unit && /^[A-Z]{3}$/.test(format.unit)) {\n options.style = \"currency\";\n options.currency = format.unit;\n }\n\n const result = new Intl.NumberFormat(context.locale, options).format(value);\n return format.unit && options.style !== \"currency\" && format.type !== \"percent\" ? `${result} ${format.unit}` : result;\n}\n\nfunction formatDate(value: unknown, format: ValueFormat, context: FormatterContext): string | undefined {\n if (typeof value !== \"string\" && typeof value !== \"number\" && !(value instanceof Date)) {\n return undefined;\n }\n\n if (format.type === \"date\" && typeof value === \"string\" && /^\\d{4}-\\d{2}-\\d{2}$/.test(value)) {\n const date = new Date(`${value}T12:00:00Z`);\n return Number.isNaN(date.getTime())\n ? undefined\n : new Intl.DateTimeFormat(context.locale, { dateStyle: \"medium\", timeZone: \"UTC\" }).format(date);\n }\n\n const date = value instanceof Date ? value : new Date(value);\n if (Number.isNaN(date.getTime())) return undefined;\n return new Intl.DateTimeFormat(context.locale, {\n dateStyle: \"medium\",\n ...(format.type === \"datetime\" ? { timeStyle: \"medium\" as const } : {}),\n timeZone: context.timezone\n }).format(date);\n}\n\nexport class ValueFormatter {\n formatDisplay(value: unknown, format: ValueFormat, context: FormatterContext): string {\n if (value === null || value === undefined || value === \"\") {\n return format.emptyText ?? \"--\";\n }\n if ([\"date\", \"datetime\"].includes(format.type)) {\n return formatDate(value, format, context) ?? format.emptyText ?? \"--\";\n }\n if (typeof value !== \"number\" || !Number.isFinite(value)) {\n return typeof value === \"string\" ? value : (format.emptyText ?? \"--\");\n }\n return formatNumber(value, format, context);\n }\n\n formatTooltip(value: unknown, format: ValueFormat, context: FormatterContext): string {\n return this.formatDisplay(value, format, context);\n }\n\n formatAxis(value: unknown, format: ValueFormat, context: FormatterContext): string {\n return this.formatDisplay(value, format, context);\n }\n\n formatExport(value: unknown, format: ValueFormat): ExportValue {\n if (value === null || value === undefined || value === \"\") return \"\";\n if (typeof value === \"number\" || typeof value === \"boolean\") return value;\n if (typeof value === \"string\") return value;\n if (value instanceof Date) return Number.isNaN(value.getTime()) ? \"\" : value.toISOString();\n return format.emptyText ?? \"\";\n }\n}\n\nexport const valueFormatter = new ValueFormatter();\n"],"names":["formatNumber","value","format","context","precision","options","result","formatDate","date","ValueFormatter","valueFormatter"],"mappings":"AASA,SAASA,EAAaC,GAAeC,GAAqBC,GAAmC;AAC3F,QAAMC,IAAYF,EAAO,SAAS,YAAY,IAAIA,EAAO,WACnDG,IAAoC;AAAA,IACxC,aAAaH,EAAO,eAAe;AAAA,IACnC,GAAIE,MAAc,SACd,KACA;AAAA,MACE,uBAAuBA;AAAA,MACvB,uBAAuBA;AAAA,IAAA;AAAA,EACzB;AAGN,EAAIF,EAAO,SAAS,YAClBG,EAAQ,QAAQ,YACPH,EAAO,SAAS,cAAcA,EAAO,QAAQ,aAAa,KAAKA,EAAO,IAAI,MACnFG,EAAQ,QAAQ,YAChBA,EAAQ,WAAWH,EAAO;AAG5B,QAAMI,IAAS,IAAI,KAAK,aAAaH,EAAQ,QAAQE,CAAO,EAAE,OAAOJ,CAAK;AAC1E,SAAOC,EAAO,QAAQG,EAAQ,UAAU,cAAcH,EAAO,SAAS,YAAY,GAAGI,CAAM,IAAIJ,EAAO,IAAI,KAAKI;AACjH;AAEA,SAASC,EAAWN,GAAgBC,GAAqBC,GAA+C;AACtG,MAAI,OAAOF,KAAU,YAAY,OAAOA,KAAU,YAAY,EAAEA,aAAiB;AAC/E;AAGF,MAAIC,EAAO,SAAS,UAAU,OAAOD,KAAU,YAAY,sBAAsB,KAAKA,CAAK,GAAG;AAC5F,UAAMO,IAAO,oBAAI,KAAK,GAAGP,CAAK,YAAY;AAC1C,WAAO,OAAO,MAAMO,EAAK,QAAA,CAAS,IAC9B,SACA,IAAI,KAAK,eAAeL,EAAQ,QAAQ,EAAE,WAAW,UAAU,UAAU,OAAO,EAAE,OAAOK,CAAI;AAAA,EACnG;AAEA,QAAMA,IAAOP,aAAiB,OAAOA,IAAQ,IAAI,KAAKA,CAAK;AAC3D,MAAI,QAAO,MAAMO,EAAK,QAAA,CAAS;AAC/B,WAAO,IAAI,KAAK,eAAeL,EAAQ,QAAQ;AAAA,MAC7C,WAAW;AAAA,MACX,GAAID,EAAO,SAAS,aAAa,EAAE,WAAW,SAAA,IAAsB,CAAA;AAAA,MACpE,UAAUC,EAAQ;AAAA,IAAA,CACnB,EAAE,OAAOK,CAAI;AAChB;AAEO,MAAMC,EAAe;AAAA,EAC1B,cAAcR,GAAgBC,GAAqBC,GAAmC;AACpF,WAAIF,KAAU,QAA+BA,MAAU,KAC9CC,EAAO,aAAa,OAEzB,CAAC,QAAQ,UAAU,EAAE,SAASA,EAAO,IAAI,IACpCK,EAAWN,GAAOC,GAAQC,CAAO,KAAKD,EAAO,aAAa,OAE/D,OAAOD,KAAU,YAAY,CAAC,OAAO,SAASA,CAAK,IAC9C,OAAOA,KAAU,WAAWA,IAASC,EAAO,aAAa,OAE3DF,EAAaC,GAAOC,GAAQC,CAAO;AAAA,EAC5C;AAAA,EAEA,cAAcF,GAAgBC,GAAqBC,GAAmC;AACpF,WAAO,KAAK,cAAcF,GAAOC,GAAQC,CAAO;AAAA,EAClD;AAAA,EAEA,WAAWF,GAAgBC,GAAqBC,GAAmC;AACjF,WAAO,KAAK,cAAcF,GAAOC,GAAQC,CAAO;AAAA,EAClD;AAAA,EAEA,aAAaF,GAAgBC,GAAkC;AAC7D,WAAID,KAAU,QAA+BA,MAAU,KAAW,KAC9D,OAAOA,KAAU,YAAY,OAAOA,KAAU,aAC9C,OAAOA,KAAU,WAAiBA,IAClCA,aAAiB,OAAa,OAAO,MAAMA,EAAM,SAAS,IAAI,KAAKA,EAAM,YAAA,IACtEC,EAAO,aAAa;AAAA,EAC7B;AACF;AAEO,MAAMQ,IAAiB,IAAID,EAAA;"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
const e = Object.freeze(["#4f6bed", "#20a486", "#e9a23b", "#e36b5d", "#7f73d8", "#74a8c7"]), a = Object.freeze({
|
|
2
|
+
backgroundColor: "rgba(30, 38, 54, 0.94)",
|
|
3
|
+
borderWidth: 0,
|
|
4
|
+
padding: [9, 11],
|
|
5
|
+
textStyle: { color: "#fff", fontSize: 12 }
|
|
6
|
+
}), o = Object.freeze({
|
|
7
|
+
axisLine: { lineStyle: { color: "#dfe4ec" } },
|
|
8
|
+
axisTick: { show: !1 },
|
|
9
|
+
axisLabel: { color: "#8a94a6", fontSize: 11, margin: 13, hideOverlap: !0 }
|
|
10
|
+
}), s = Object.freeze({
|
|
11
|
+
splitNumber: 4,
|
|
12
|
+
axisLine: { show: !1 },
|
|
13
|
+
axisTick: { show: !1 },
|
|
14
|
+
axisLabel: { color: "#8a94a6", fontSize: 11 },
|
|
15
|
+
splitLine: { lineStyle: { color: "#edf0f5", type: "dashed" } }
|
|
16
|
+
});
|
|
17
|
+
export {
|
|
18
|
+
e as S,
|
|
19
|
+
a,
|
|
20
|
+
s as b,
|
|
21
|
+
o as c
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=visual-theme-DH-k3L51.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"visual-theme-DH-k3L51.js","sources":["../src/vue/theme/visual-theme.ts"],"sourcesContent":["export const STANDARD_CHART_COLORS = Object.freeze([\"#4f6bed\", \"#20a486\", \"#e9a23b\", \"#e36b5d\", \"#7f73d8\", \"#74a8c7\"]);\n\nexport const STANDARD_CHART_TOOLTIP = Object.freeze({\n backgroundColor: \"rgba(30, 38, 54, 0.94)\",\n borderWidth: 0,\n padding: [9, 11],\n textStyle: { color: \"#fff\", fontSize: 12 }\n});\n\nexport const STANDARD_CATEGORY_AXIS = Object.freeze({\n axisLine: { lineStyle: { color: \"#dfe4ec\" } },\n axisTick: { show: false },\n axisLabel: { color: \"#8a94a6\", fontSize: 11, margin: 13, hideOverlap: true }\n});\n\nexport const STANDARD_VALUE_AXIS = Object.freeze({\n splitNumber: 4,\n axisLine: { show: false },\n axisTick: { show: false },\n axisLabel: { color: \"#8a94a6\", fontSize: 11 },\n splitLine: { lineStyle: { color: \"#edf0f5\", type: \"dashed\" as const } }\n});\n"],"names":["STANDARD_CHART_COLORS","STANDARD_CHART_TOOLTIP","STANDARD_CATEGORY_AXIS","STANDARD_VALUE_AXIS"],"mappings":"AAAO,MAAMA,IAAwB,OAAO,OAAO,CAAC,WAAW,WAAW,WAAW,WAAW,WAAW,SAAS,CAAC,GAExGC,IAAyB,OAAO,OAAO;AAAA,EAClD,iBAAiB;AAAA,EACjB,aAAa;AAAA,EACb,SAAS,CAAC,GAAG,EAAE;AAAA,EACf,WAAW,EAAE,OAAO,QAAQ,UAAU,GAAA;AACxC,CAAC,GAEYC,IAAyB,OAAO,OAAO;AAAA,EAClD,UAAU,EAAE,WAAW,EAAE,OAAO,YAAU;AAAA,EAC1C,UAAU,EAAE,MAAM,GAAA;AAAA,EAClB,WAAW,EAAE,OAAO,WAAW,UAAU,IAAI,QAAQ,IAAI,aAAa,GAAA;AACxE,CAAC,GAEYC,IAAsB,OAAO,OAAO;AAAA,EAC/C,aAAa;AAAA,EACb,UAAU,EAAE,MAAM,GAAA;AAAA,EAClB,UAAU,EAAE,MAAM,GAAA;AAAA,EAClB,WAAW,EAAE,OAAO,WAAW,UAAU,GAAA;AAAA,EACzC,WAAW,EAAE,WAAW,EAAE,OAAO,WAAW,MAAM,WAAkB;AACtE,CAAC;"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { DashboardContext, DashboardFilterBarConfig, JsonValue } from "../../core";
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
config?: DashboardFilterBarConfig;
|
|
4
|
+
context: DashboardContext;
|
|
5
|
+
loading?: boolean;
|
|
6
|
+
};
|
|
7
|
+
declare const _default: import("vue").DefineComponent<__VLS_TypePropsToOption<__VLS_Props>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
8
|
+
change: (patch: Readonly<Record<string, JsonValue>>) => void;
|
|
9
|
+
refresh: () => void;
|
|
10
|
+
}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToOption<__VLS_Props>>> & {
|
|
11
|
+
onChange?: (patch: Readonly<Record<string, JsonValue>>) => any;
|
|
12
|
+
onRefresh?: () => any;
|
|
13
|
+
}, {}, {}>;
|
|
14
|
+
export default _default;
|
|
15
|
+
type __VLS_TypePropsToOption<T> = {
|
|
16
|
+
[K in keyof T]-?: {} extends Pick<T, K> ? {
|
|
17
|
+
type: import('vue').PropType<T[K]>;
|
|
18
|
+
} : {
|
|
19
|
+
type: import('vue').PropType<T[K]>;
|
|
20
|
+
required: true;
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=DashboardFilterBar.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DashboardFilterBar.vue.d.ts","sourceRoot":"","sources":["../../../src/vue/components/DashboardFilterBar.vue"],"names":[],"mappings":"AAwYA,OAAO,KAAK,EACV,gBAAgB,EAChB,wBAAwB,EAGxB,SAAS,EACV,MAAM,YAAY,CAAC;AAIpB,KAAK,WAAW,GAAG;IAAE,MAAM,CAAC,EAAE,wBAAwB,CAAC;IAAC,OAAO,EAAE,gBAAgB,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;;;;;;;;AAsavG,wBAOG;AAEH,KAAK,uBAAuB,CAAC,CAAC,IAAI;KAChC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GACpC;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;KAAE,GACtC;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAA;KAAE;CACzD,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { type Component } from "vue";
|
|
2
|
+
import type { DashboardContext, PanelConfig, PanelRuntimeState, VisualizationEvent, VisualizationRendererDefinition } from "../../core";
|
|
3
|
+
type __VLS_Props = {
|
|
4
|
+
panel: PanelConfig;
|
|
5
|
+
state: PanelRuntimeState;
|
|
6
|
+
context: DashboardContext;
|
|
7
|
+
definition: VisualizationRendererDefinition;
|
|
8
|
+
renderer: Component;
|
|
9
|
+
filterSummary?: string;
|
|
10
|
+
refreshDisabled?: boolean;
|
|
11
|
+
};
|
|
12
|
+
declare function exportPng(): string | undefined;
|
|
13
|
+
declare const _default: import("vue").DefineComponent<__VLS_TypePropsToOption<__VLS_Props>, {
|
|
14
|
+
exportPng: typeof exportPng;
|
|
15
|
+
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
16
|
+
visualizationEvent: (event: VisualizationEvent) => void;
|
|
17
|
+
exportPng: () => void;
|
|
18
|
+
refresh: () => void;
|
|
19
|
+
retry: () => void;
|
|
20
|
+
exportCsv: () => void;
|
|
21
|
+
action: (actionId: string) => void;
|
|
22
|
+
}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToOption<__VLS_Props>>> & {
|
|
23
|
+
onVisualizationEvent?: (event: VisualizationEvent) => any;
|
|
24
|
+
onRefresh?: () => any;
|
|
25
|
+
onExportPng?: () => any;
|
|
26
|
+
onRetry?: () => any;
|
|
27
|
+
onExportCsv?: () => any;
|
|
28
|
+
onAction?: (actionId: string) => any;
|
|
29
|
+
}, {}, {}>;
|
|
30
|
+
export default _default;
|
|
31
|
+
type __VLS_TypePropsToOption<T> = {
|
|
32
|
+
[K in keyof T]-?: {} extends Pick<T, K> ? {
|
|
33
|
+
type: import('vue').PropType<T[K]>;
|
|
34
|
+
} : {
|
|
35
|
+
type: import('vue').PropType<T[K]>;
|
|
36
|
+
required: true;
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=DashboardPanel.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DashboardPanel.vue.d.ts","sourceRoot":"","sources":["../../../src/vue/components/DashboardPanel.vue"],"names":[],"mappings":"AAseA,OAAO,EAAyC,KAAK,SAAS,EAAE,MAAM,KAAK,CAAC;AAE5E,OAAO,KAAK,EACV,gBAAgB,EAChB,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,+BAA+B,EAChC,MAAM,YAAY,CAAC;AAGpB,KAAK,WAAW,GAAG;IACjB,KAAK,EAAE,WAAW,CAAC;IACnB,KAAK,EAAE,iBAAiB,CAAC;IACzB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,UAAU,EAAE,+BAA+B,CAAC;IAC5C,QAAQ,EAAE,SAAS,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AA0CF,iBAAS,SAAS,IAAI,MAAM,GAAG,SAAS,CAEvC;;;;;;;;;;;;;;;;;;AA8mBD,wBAQG;AAEH,KAAK,uBAAuB,CAAC,CAAC,IAAI;KAChC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GACpC;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;KAAE,GACtC;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAA;KAAE;CACzD,CAAC"}
|