@blazes/data-visualization 1.0.0-alpha.1 → 1.0.0-alpha.2

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.
Files changed (32) hide show
  1. package/README.md +20 -0
  2. package/dist/.vite/manifest.json +26 -26
  3. package/dist/core/config/dashboard-config-schema.d.ts +13 -0
  4. package/dist/core/config/dashboard-config-schema.d.ts.map +1 -1
  5. package/dist/core/config/dashboard-config.d.ts +4 -0
  6. package/dist/core/config/dashboard-config.d.ts.map +1 -1
  7. package/dist/core/export/index.d.ts +1 -0
  8. package/dist/core/export/index.d.ts.map +1 -1
  9. package/dist/core/export/panel-export.d.ts +4 -0
  10. package/dist/core/export/panel-export.d.ts.map +1 -0
  11. package/dist/core/index.js +63 -61
  12. package/dist/core/runtime/dashboard-runtime.d.ts +4 -0
  13. package/dist/core/runtime/dashboard-runtime.d.ts.map +1 -1
  14. package/dist/{dashboard-runtime-8a-9P8Ku.js → dashboard-runtime-6VlVQIuQ.js} +27 -27
  15. package/dist/{dashboard-runtime-8a-9P8Ku.js.map → dashboard-runtime-6VlVQIuQ.js.map} +1 -1
  16. package/dist/experimental/s2/index.js +12 -12
  17. package/dist/index.css +1 -1
  18. package/dist/index.js +63 -61
  19. package/dist/{csv-Dyrr2yMA.js → panel-export-Di_5Frul.js} +24 -19
  20. package/dist/panel-export-Di_5Frul.js.map +1 -0
  21. package/dist/renderers/word-cloud/index.js +1 -1
  22. package/dist/{runtime-schema-BO2qLlvE.js → runtime-schema-BmeEvFU-.js} +42 -34
  23. package/dist/runtime-schema-BmeEvFU-.js.map +1 -0
  24. package/dist/{standard-definitions-DHtaLAf1.js → standard-definitions-hgJ-kOoz.js} +5 -5
  25. package/dist/{standard-definitions-DHtaLAf1.js.map → standard-definitions-hgJ-kOoz.js.map} +1 -1
  26. package/dist/vue/components/DashboardPanel.vue.d.ts.map +1 -1
  27. package/dist/vue/components/DashboardRenderer.vue.d.ts.map +1 -1
  28. package/dist/vue/index.js +609 -592
  29. package/dist/vue/index.js.map +1 -1
  30. package/package.json +1 -1
  31. package/dist/csv-Dyrr2yMA.js.map +0 -1
  32. package/dist/runtime-schema-BO2qLlvE.js.map +0 -1
@@ -1,35 +1,35 @@
1
- import { H as u, J as m, u as p, s as b } from "../../runtime-schema-BO2qLlvE.js";
1
+ import { K as u, J as m, v as p, t as b } from "../../runtime-schema-BmeEvFU-.js";
2
2
  const n = "pivotTableS2", f = "pivotTableS2.default";
3
- function S(e, t) {
3
+ function v(e, t) {
4
4
  const o = e.get(t);
5
5
  if (!o) throw new Error(`Pivot table field is missing from the dataset: ${t}`);
6
6
  return o;
7
7
  }
8
8
  function c(e, t, o, i) {
9
- var r, l;
10
- const a = S(e, t), s = ((l = (r = o == null ? void 0 : o.common) == null ? void 0 : r.formatOverrides) == null ? void 0 : l[a.key]) ?? a.format ?? i;
9
+ var r, s;
10
+ const a = v(e, t), l = ((s = (r = o == null ? void 0 : o.common) == null ? void 0 : r.formatOverrides) == null ? void 0 : s[a.key]) ?? a.format ?? i;
11
11
  return Object.freeze({
12
12
  field: a.key,
13
13
  label: a.label,
14
- ...s ? { format: Object.freeze({ ...s }) } : {},
14
+ ...l ? { format: Object.freeze({ ...l }) } : {},
15
15
  ...a.unit ? { unit: a.unit } : {}
16
16
  });
17
17
  }
18
- const v = {
18
+ const S = {
19
19
  id: f,
20
20
  adapt({ dataset: e, binding: t, enhancement: o }) {
21
- const i = new Map(e.fields.map((r) => [r.key, r])), a = [...t.rowFields, ...t.columnFields, ...t.valueFields], s = e.rows.map(
22
- (r) => Object.freeze(Object.fromEntries(a.map((l) => [l, r[l]])))
21
+ const i = new Map(e.fields.map((r) => [r.key, r])), a = [...t.rowFields, ...t.columnFields, ...t.valueFields], l = e.rows.map(
22
+ (r) => Object.freeze(Object.fromEntries(a.map((s) => [s, r[s]])))
23
23
  );
24
24
  return Object.freeze({
25
25
  type: n,
26
- empty: s.length === 0,
26
+ empty: l.length === 0,
27
27
  rowFields: Object.freeze(t.rowFields.map((r) => c(i, r, o))),
28
28
  columnFields: Object.freeze(t.columnFields.map((r) => c(i, r, o))),
29
29
  valueFields: Object.freeze(
30
30
  t.valueFields.map((r) => c(i, r, o, { type: "number" }))
31
31
  ),
32
- rows: Object.freeze(s)
32
+ rows: Object.freeze(l)
33
33
  });
34
34
  }
35
35
  }, T = Object.freeze({
@@ -40,7 +40,7 @@ const v = {
40
40
  capabilities: Object.freeze({ responsive: !0, csv: !0, png: !1, selection: !1 })
41
41
  });
42
42
  function O(e) {
43
- return e.adapters.register(v), e.rendererDefinitions.register(T), e;
43
+ return e.adapters.register(S), e.rendererDefinitions.register(T), e;
44
44
  }
45
45
  async function d() {
46
46
  return (await import("../../PivotTableS2Renderer-C-Urwhuv.js")).default;
@@ -57,7 +57,7 @@ export {
57
57
  f as PIVOT_TABLE_S2_ADAPTER_ID,
58
58
  n as S2_RENDERER_ID,
59
59
  d as loadPivotTableS2Renderer,
60
- v as pivotTableS2Adapter,
60
+ S as pivotTableS2Adapter,
61
61
  T as pivotTableS2RendererDefinition,
62
62
  z as registerPivotTableS2,
63
63
  O as registerPivotTableS2Core,
package/dist/index.css CHANGED
@@ -1 +1 @@
1
- .dv-filter-bar[data-v-45855b0b]{display:flex;align-items:center;gap:12px;padding:11px 14px;background:#fff;border:1px solid var(--dv-card-border, #e1e6ed);border-radius:7px;box-shadow:0 1px 2px #10182809,0 5px 14px #10182806}.dv-filter-bar__controls[data-v-45855b0b]{flex:1;display:grid;grid-template-columns:repeat(24,minmax(0,1fr));column-gap:16px;row-gap:8px}.dv-filter-bar__control[data-v-45855b0b]{grid-column:span var(--dv-filter-xs);min-width:0}.dv-filter-bar__label[data-v-45855b0b]{display:block;margin-bottom:6px;color:var(--dv-text-secondary, #657184);font-size:12px;font-weight:600;line-height:18px;white-space:nowrap}.dv-filter-bar__control[data-v-45855b0b] .ant-select{width:100%;min-width:0}.dv-filter-bar__control[data-v-45855b0b] .ant-select-single .ant-select-selector,.dv-filter-bar__control[data-v-45855b0b] .ant-select-multiple .ant-select-selector{height:32px;min-height:32px}.dv-filter-bar__control[data-v-45855b0b] .ant-select-multiple .ant-select-selection-overflow{flex-wrap:nowrap;overflow:hidden}.dv-filter-bar__date-range[data-v-45855b0b]{display:flex;width:fit-content;min-width:0;max-width:100%;align-items:center;gap:10px}.dv-filter-bar__range-picker[data-v-45855b0b]{width:320px;min-width:220px;max-width:320px;height:32px;flex:0 1 320px}.dv-filter-bar__presets[data-v-45855b0b]{display:inline-flex;height:32px;flex:none;align-items:center;gap:2px;padding:3px;border:1px solid #e2e7ed;border-radius:6px;background:#f3f5f7}.dv-filter-bar__presets[data-v-45855b0b] .ant-radio-button-wrapper{height:24px;padding:0 8px;border:0;border-radius:4px;color:#737e8e;background:transparent;box-shadow:none;font-size:12px;font-weight:500;line-height:24px}.dv-filter-bar__presets[data-v-45855b0b] .ant-radio-button-wrapper:before{display:none}.dv-filter-bar__presets[data-v-45855b0b] .ant-radio-button-wrapper-checked{color:var(--dv-primary, #315fc4);background:#fff;box-shadow:0 1px 2px #10182814,0 0 0 1px #10182806;font-weight:600}.dv-filter-bar[data-v-45855b0b] .ant-select-selector,.dv-filter-bar[data-v-45855b0b] .ant-picker{border-color:#dce2e9;border-radius:5px;box-shadow:none}.dv-filter-bar__refresh[data-v-45855b0b]{width:78px;height:32px;flex:0 0 78px;border-color:var(--dv-primary, #315fc4);border-radius:6px;background:var(--dv-primary, #315fc4);box-shadow:none}@media (min-width: 576px){.dv-filter-bar__control[data-v-45855b0b]{grid-column:span var(--dv-filter-sm)}}@media (min-width: 768px){.dv-filter-bar__control[data-v-45855b0b]{grid-column:span var(--dv-filter-md);display:flex;align-items:center}.dv-filter-bar__label[data-v-45855b0b]{flex:none;margin:0 8px 0 0}.dv-filter-bar--flow .dv-filter-bar__controls[data-v-45855b0b]{display:flex;flex-wrap:wrap;align-items:center;column-gap:20px}.dv-filter-bar--flow .dv-filter-bar__control[data-v-45855b0b]{width:auto;flex:0 1 auto;grid-column:auto}.dv-filter-bar--flow .dv-filter-bar__control--select[data-v-45855b0b],.dv-filter-bar--flow .dv-filter-bar__control--multi-select[data-v-45855b0b]{width:clamp(220px,20vw,320px);flex-basis:clamp(220px,20vw,320px)}}@media (min-width: 992px){.dv-filter-bar__control[data-v-45855b0b]{grid-column:span var(--dv-filter-lg)}}@media (min-width: 1200px){.dv-filter-bar__control[data-v-45855b0b]{grid-column:span var(--dv-filter-xl)}}@media (min-width: 768px) and (max-width: 1300px){.dv-filter-bar__date-range[data-v-45855b0b]{gap:6px}.dv-filter-bar__range-picker[data-v-45855b0b]{width:288px;min-width:200px;max-width:288px;flex-basis:288px}.dv-filter-bar__presets[data-v-45855b0b] .ant-radio-button-wrapper{padding:0 5px;font-size:11px}}@media (max-width: 767px){.dv-filter-bar[data-v-45855b0b]{align-items:stretch;flex-direction:column}.dv-filter-bar__refresh[data-v-45855b0b]{align-self:flex-end}.dv-filter-bar__controls[data-v-45855b0b]{column-gap:0}.dv-filter-bar__date-range[data-v-45855b0b]{width:100%;align-items:stretch;flex-direction:column}.dv-filter-bar__range-picker[data-v-45855b0b]{width:100%;min-width:0;max-width:none;flex-basis:auto}.dv-filter-bar__refresh[data-v-45855b0b]{flex-basis:32px}.dv-filter-bar__date-popup .ant-picker-panels>.ant-picker-panel:last-child{display:none}.dv-filter-bar__date-popup .ant-picker-panel:first-child .ant-picker-header-next-btn,.dv-filter-bar__date-popup .ant-picker-panel:first-child .ant-picker-header-super-next-btn{visibility:visible!important}}.dv-panel[data-v-b524c4f2]{height:100%;overflow:hidden;border:1px solid var(--dv-card-border, #e1e6ed);border-radius:7px;background:#fff;box-shadow:0 1px 2px #10182809,0 5px 14px #10182806}.dv-panel[data-v-b524c4f2] .ant-card-head{min-height:50px;padding:0 16px;border-bottom-color:var(--dv-card-divider, #edf0f4)}.dv-panel[data-v-b524c4f2] .ant-card-head-title,.dv-panel[data-v-b524c4f2] .ant-card-extra{padding:10px 0}.dv-panel[data-v-b524c4f2] .ant-card-head-title{padding:13px 0}.dv-panel[data-v-b524c4f2] .ant-card-body{position:relative;display:flex;flex-direction:column;box-sizing:border-box;padding:15px 16px}.dv-panel__heading[data-v-b524c4f2],.dv-panel__title-group[data-v-b524c4f2],.dv-panel__actions[data-v-b524c4f2]{display:flex;align-items:center;gap:6px}.dv-panel__heading[data-v-b524c4f2]{min-width:0;flex-wrap:wrap;row-gap:2px;line-height:20px}.dv-panel__title-group[data-v-b524c4f2]{min-width:0}.dv-panel__title-group[data-v-b524c4f2] .anticon{flex-shrink:0}.dv-panel__title-note[data-v-b524c4f2]{min-width:0;max-width:100%;color:#98a2b3;font-size:12px;font-weight:400;line-height:20px;overflow-wrap:anywhere;white-space:normal}.dv-panel__title[data-v-b524c4f2]{overflow:hidden;color:var(--dv-text-title, #273244);font-size:14px;font-weight:650;line-height:20px;text-overflow:ellipsis;white-space:nowrap}.dv-panel__heading[data-v-b524c4f2] svg{color:#8a94a6;font-size:13px}.dv-panel__actions[data-v-b524c4f2]{gap:4px}.dv-panel__actions[data-v-b524c4f2] .ant-btn{width:28px;height:28px;padding:0;border-radius:5px;color:#6e7889}.dv-panel__actions[data-v-b524c4f2] .ant-btn:hover{color:var(--dv-primary, #315fc4);background:#f0f4fa}.dv-panel__filters[data-v-b524c4f2]{display:none}.dv-panel__warning[data-v-b524c4f2]{color:#f59e0b;font-size:15px}.dv-panel__state[data-v-b524c4f2]{min-height:190px;flex:1;display:flex;align-items:center;justify-content:center}.dv-panel__state--empty[data-v-b524c4f2]{box-sizing:border-box;flex-direction:column;gap:14px;padding:24px 12px;text-align:center}.dv-panel__empty-icon[data-v-b524c4f2]{display:grid;width:56px;height:56px;flex-shrink:0;place-items:center;border:1px solid var(--dv-card-divider, #edf0f4);border-radius:16px;color:#8da2c5;background:linear-gradient(145deg,#f8fafd,#eff3f9);font-size:26px}.dv-panel__empty-copy[data-v-b524c4f2]{max-width:100%}.dv-panel__empty-title[data-v-b524c4f2]{color:var(--dv-text-secondary, #657184);font-size:13px;font-weight:500;line-height:20px}.dv-panel[data-v-b524c4f2] .ant-spin{color:var(--dv-primary, #315fc4)}.dv-panel[data-v-b524c4f2] .ant-spin-dot-item{background-color:currentColor}.dv-panel__failure[data-v-b524c4f2]{display:flex;max-width:min(320px,100%);flex-direction:column;align-items:center;color:#667085;text-align:center}.dv-panel__failure-copy[data-v-b524c4f2]{max-width:100%;min-width:0}.dv-panel__failure-heading[data-v-b524c4f2]{overflow:hidden;color:#526075;font-size:13px;font-weight:600;line-height:20px;text-overflow:ellipsis;white-space:nowrap}.dv-panel__failure-icon[data-v-b524c4f2]{margin-bottom:9px;color:#8592a5;font-size:22px}.dv-panel__failure-detail[data-v-b524c4f2]{max-width:100%;overflow:hidden;margin-top:1px;color:#98a2b3;font-size:12px;line-height:18px;text-overflow:ellipsis;white-space:nowrap}.dv-panel__retry[data-v-b524c4f2]{width:auto;height:28px;margin-top:10px;padding:0 10px;border-color:#dbe1e8;border-radius:5px;color:#59677a;background:#fff;box-shadow:none;font-size:12px}.dv-panel__retry[data-v-b524c4f2]:hover,.dv-panel__retry[data-v-b524c4f2]:focus{border-color:#b8c7e5;color:var(--dv-primary, #315fc4);background:#f7f9fc}.dv-panel__idle[data-v-b524c4f2]{color:#98a0ad;font-size:12px}.dv-panel__renderer[data-v-b524c4f2]{position:relative;min-width:0;flex:1}.dv-panel__refreshing[data-v-b524c4f2]{position:absolute;z-index:1;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:#ffffffc2}.dv-panel__updated[data-v-b524c4f2]{display:none;margin-top:8px;color:#98a0ad;font-size:11px;text-align:right}.dv-panel--metric[data-v-b524c4f2] .ant-card-head{min-height:40px;border-bottom:0}.dv-panel--metric[data-v-b524c4f2] .ant-card-head-title{padding:13px 0 4px}.dv-panel--metric[data-v-b524c4f2] .ant-card-extra{padding:8px 0 0}.dv-panel--metric[data-v-b524c4f2] .ant-card-body{padding:2px 16px 13px}.dv-panel--metric .dv-panel__state--loading[data-v-b524c4f2],.dv-panel--metric .dv-panel__state--failure[data-v-b524c4f2]{min-height:0}.dv-panel--metric .dv-panel__failure[data-v-b524c4f2]{width:fit-content;max-width:100%;display:grid;grid-template-columns:20px minmax(0,1fr) 28px;column-gap:8px;text-align:left}.dv-panel--metric .dv-panel__failure-icon[data-v-b524c4f2]{margin-bottom:0;font-size:16px}.dv-panel--metric .dv-panel__failure-detail[data-v-b524c4f2]{display:none}.dv-panel--metric .dv-panel__retry[data-v-b524c4f2]{width:28px;margin-top:0;padding:0;border-color:transparent;background:transparent}.dv-panel--metric .dv-panel__retry-label[data-v-b524c4f2]{display:none}.dv-panel--metric .dv-panel__state--metric-empty[data-v-b524c4f2]{min-height:0;color:#98a0ad;font-size:12px;line-height:20px}.dv-panel--metric .dv-panel__title[data-v-b524c4f2]{color:#637083;font-size:13px;font-weight:550}.dv-panel--metric .dv-panel__actions[data-v-b524c4f2]{opacity:0;transition:opacity .16s ease}.dv-panel--metric:hover .dv-panel__actions[data-v-b524c4f2],.dv-panel--metric:focus-within .dv-panel__actions[data-v-b524c4f2]{opacity:1}.dv-dashboard[data-v-6d4b5bdb]{--dv-card-border: #e1e6ed;--dv-card-divider: #edf0f4;--dv-text-title: #273244;--dv-text-body: #182230;--dv-text-secondary: #657184;--dv-text-muted: #8a94a6;width:100%;min-width:0;color:var(--dv-text-body)}.dv-dashboard__header[data-v-6d4b5bdb]{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:16px}.dv-dashboard__header h1[data-v-6d4b5bdb]{margin:0;font-size:22px;font-weight:650;line-height:30px;letter-spacing:0}.dv-dashboard__header p[data-v-6d4b5bdb]{margin:4px 0 0;color:#64748b;font-size:13px}.dv-dashboard__grid[data-v-6d4b5bdb]{display:grid;grid-template-columns:repeat(24,minmax(0,1fr));gap:14px;margin-top:14px}.dv-dashboard__cell[data-v-6d4b5bdb]{grid-column:span var(--dv-panel-xs);min-width:0}@media (min-width: 576px){.dv-dashboard__cell[data-v-6d4b5bdb]{grid-column:span var(--dv-panel-sm)}}@media (min-width: 768px){.dv-dashboard__cell[data-v-6d4b5bdb]{grid-column:span var(--dv-panel-md)}}@media (min-width: 992px){.dv-dashboard__cell[data-v-6d4b5bdb]{grid-column:span var(--dv-panel-lg)}}@media (min-width: 1200px){.dv-dashboard__cell[data-v-6d4b5bdb]{grid-column:span var(--dv-panel-xl)}}@media (max-width: 767px){.dv-dashboard__grid[data-v-6d4b5bdb]{gap:12px}}.dv-chart-renderer[data-v-4f111bdf]{width:100%;min-width:0}.dv-bar-renderer[data-v-4f111bdf] .bar-container{height:320px!important}.dv-bar-renderer[data-v-4f111bdf] .legend{min-height:18px;margin-bottom:2px;padding:0 4px}.dv-bar-renderer[data-v-4f111bdf] .legend-container{justify-content:flex-end}.dv-bar-renderer[data-v-4f111bdf] .legend-item{margin-right:12px;color:#667085;font-size:11px}.dv-bar-renderer[data-v-4f111bdf] .legend-item-color{width:9px;height:9px;border-radius:3px}.dv-chart-renderer[data-v-efc34766]{width:100%;min-width:0}.dv-line-renderer[data-v-efc34766] .line-container{height:320px}.dv-line-renderer[data-v-efc34766] .legend{min-height:18px;margin-bottom:2px;padding:0 4px}.dv-line-renderer[data-v-efc34766] .legend-container{justify-content:flex-end}.dv-line-renderer[data-v-efc34766] .legend-item{margin-right:12px;color:#667085;font-size:11px}.dv-line-renderer[data-v-efc34766] .legend-item-color{width:8px;height:8px;border-radius:50%}.dv-metric[data-v-efa26253]{min-height:62px;display:flex;flex-direction:column;justify-content:flex-start}.dv-metric__value[data-v-efa26253]{display:flex;align-items:baseline;column-gap:4px;color:#172033;font-size:29px;font-weight:650;letter-spacing:0;line-height:1.2;white-space:nowrap}.dv-metric__number[data-v-efa26253]{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.dv-metric__unit[data-v-efa26253]{position:relative;top:-1px;color:#7d8797;font-size:12px;font-weight:400;line-height:1}.dv-metric__comparison[data-v-efa26253]{display:flex;align-items:center;gap:10px;margin-top:7px;color:#7b8493;font-size:12px;line-height:18px}.dv-metric__comparison strong[data-v-efa26253]{display:inline-flex;align-items:center;gap:3px;font-weight:600}.dv-metric__comparison--favorable[data-v-efa26253]{color:#00a870}.dv-metric__comparison--unfavorable[data-v-efa26253]{color:#f53f3f}.dv-metric__comparison--neutral[data-v-efa26253]{color:#7b8493}.dv-chart-renderer[data-v-ccdee116]{width:100%;min-width:0}.dv-pie-renderer[data-v-ccdee116] .pie-container{height:320px!important;flex-direction:column-reverse}.dv-pie-renderer[data-v-ccdee116] .legend{min-height:18px;margin:4px 0 0;padding:0 4px}.dv-pie-renderer[data-v-ccdee116] .legend-item{margin-right:12px;color:#667085;font-size:11px}.dv-pie-renderer[data-v-ccdee116] .legend-item-color{width:8px;height:8px;border-radius:50%}.dv-table[data-v-c8a717c4] .ant-table{font-size:12px}.dv-table-scroll[data-v-c8a717c4]{width:100%;overflow-x:auto}.dv-table[data-v-c8a717c4]{min-width:720px}.dv-table[data-v-c8a717c4] .ant-table-thead>tr>th{padding:13px 16px;color:#5e6a7d;border-bottom:1px solid #e5eaf0;font-weight:600;background:#f7f9fb}.dv-table[data-v-c8a717c4] .ant-table-tbody>tr>td{padding:14px 16px;color:#344054;border-bottom:1px solid #edf0f4}.dv-table[data-v-c8a717c4] .ant-table-tbody>tr.ant-table-row:hover>td{background:#f8fafc}.dv-table[data-v-c8a717c4] .dv-table__progress-cell{display:grid;min-width:160px;grid-template-columns:minmax(96px,1fr) 48px;align-items:center;gap:8px}.dv-table[data-v-c8a717c4] .dv-table__progress-cell .ant-progress{margin:0;line-height:1}.dv-table[data-v-c8a717c4] .dv-table__progress-cell .ant-progress-inner{background:#edf0f4}.dv-table[data-v-c8a717c4] .dv-table__progress-cell .ant-progress-bg{background:#315fc4}.dv-table[data-v-c8a717c4] .dv-table__cell-value{color:#657184;font-variant-numeric:tabular-nums;text-align:right}.dv-table[data-v-c8a717c4] .dv-table__trend{display:inline-flex;align-items:center;gap:3px;font-weight:600;line-height:18px;white-space:nowrap}.dv-table[data-v-c8a717c4] .dv-table__trend--neutral{color:#7b8493}.dv-table[data-v-c8a717c4] .dv-table__trend--info{color:#315fc4}.dv-table[data-v-c8a717c4] .dv-table__trend--success{color:#00a870}.dv-table[data-v-c8a717c4] .dv-table__trend--warning{color:#c2410c}.dv-table[data-v-c8a717c4] .dv-table__trend--danger{color:#f53f3f}.dv-table[data-v-c8a717c4] .dv-table__tag{display:inline-flex;align-items:center;gap:4px;margin:0;border-radius:4px;font-size:12px;line-height:20px}.dv-table[data-v-c8a717c4] .dv-table__tag--neutral{color:#475467;border-color:#e4e7ec;background:#f2f4f7}.dv-table[data-v-c8a717c4] .dv-table__tag--info{color:#315fc4;border-color:#cbdafa;background:#eff6ff}.dv-table[data-v-c8a717c4] .dv-table__tag--success{color:#027a48;border-color:#abefc6;background:#ecfdf3}.dv-table[data-v-c8a717c4] .dv-table__tag--warning{color:#c2410c;border-color:#fed7aa;background:#fff7ed}.dv-table[data-v-c8a717c4] .dv-table__tag--danger{color:#b42318;border-color:#fecdca;background:#fef3f2}.dv-table[data-v-c8a717c4] .ant-table-pagination.ant-pagination{display:flex;align-items:center;gap:4px;margin:16px 0 0}.dv-table[data-v-c8a717c4] .ant-table-pagination.ant-pagination:after{display:none}.dv-table[data-v-c8a717c4] .ant-table-pagination.ant-pagination>.ant-pagination-item,.dv-table[data-v-c8a717c4] .ant-table-pagination.ant-pagination>.ant-pagination-prev,.dv-table[data-v-c8a717c4] .ant-table-pagination.ant-pagination>.ant-pagination-next,.dv-table[data-v-c8a717c4] .ant-table-pagination.ant-pagination>.ant-pagination-jump-prev,.dv-table[data-v-c8a717c4] .ant-table-pagination.ant-pagination>.ant-pagination-jump-next{display:flex;min-width:28px;height:28px;align-items:center;justify-content:center;margin:0;border-radius:5px;line-height:1}.dv-table[data-v-c8a717c4] .ant-table-pagination .ant-pagination-item>a,.dv-table[data-v-c8a717c4] .ant-table-pagination .ant-pagination-item-link,.dv-table[data-v-c8a717c4] .ant-table-pagination .ant-pagination-item-container{display:flex;width:100%;height:100%;align-items:center;justify-content:center;padding:0;line-height:1}.dv-table[data-v-c8a717c4] .ant-table-pagination .ant-pagination-item-ellipsis{display:flex;align-items:center;justify-content:center;letter-spacing:1px;line-height:1;text-indent:0}.dv-table[data-v-c8a717c4] .ant-table-pagination .anticon{display:inline-flex;align-items:center;justify-content:center;line-height:1}.dv-table[data-v-c8a717c4] .ant-table-pagination .anticon svg{display:block}.dv-table[data-v-c8a717c4] .ant-table-pagination .ant-pagination-item-active{border-color:var(--dv-primary, #315fc4);background:#f0f4fc;background:color-mix(in srgb,var(--dv-primary, #315fc4) 8%,white)}.dv-table[data-v-c8a717c4] .ant-table-pagination .ant-pagination-item-active>a{color:var(--dv-primary, #315fc4)}.dv-table[data-v-c8a717c4] .ant-table-pagination:not(.ant-pagination-disabled) .ant-pagination-item:not(.ant-pagination-item-disabled):hover,.dv-table[data-v-c8a717c4] .ant-table-pagination:not(.ant-pagination-disabled) .ant-pagination-item:not(.ant-pagination-item-disabled):focus-visible{border-color:var(--dv-primary, #315fc4);background:#f0f4fc;background:color-mix(in srgb,var(--dv-primary, #315fc4) 8%,white)}.dv-table[data-v-c8a717c4] .ant-table-pagination:not(.ant-pagination-disabled) .ant-pagination-item:not(.ant-pagination-item-disabled):hover>a,.dv-table[data-v-c8a717c4] .ant-table-pagination:not(.ant-pagination-disabled) .ant-pagination-item:not(.ant-pagination-item-disabled):focus-visible>a,.dv-table[data-v-c8a717c4] .ant-table-pagination .ant-pagination-item-link-icon,.dv-table[data-v-c8a717c4] .ant-table-pagination:not(.ant-pagination-disabled) .ant-pagination-prev:not(.ant-pagination-disabled):hover .ant-pagination-item-link,.dv-table[data-v-c8a717c4] .ant-table-pagination:not(.ant-pagination-disabled) .ant-pagination-prev:not(.ant-pagination-disabled):focus-visible .ant-pagination-item-link,.dv-table[data-v-c8a717c4] .ant-table-pagination:not(.ant-pagination-disabled) .ant-pagination-next:not(.ant-pagination-disabled):hover .ant-pagination-item-link,.dv-table[data-v-c8a717c4] .ant-table-pagination:not(.ant-pagination-disabled) .ant-pagination-next:not(.ant-pagination-disabled):focus-visible .ant-pagination-item-link{color:var(--dv-primary, #315fc4)}.dv-table[data-v-c8a717c4] .ant-table-pagination:not(.ant-pagination-disabled) .ant-pagination-prev:not(.ant-pagination-disabled):hover .ant-pagination-item-link,.dv-table[data-v-c8a717c4] .ant-table-pagination:not(.ant-pagination-disabled) .ant-pagination-prev:not(.ant-pagination-disabled):focus-visible .ant-pagination-item-link,.dv-table[data-v-c8a717c4] .ant-table-pagination:not(.ant-pagination-disabled) .ant-pagination-next:not(.ant-pagination-disabled):hover .ant-pagination-item-link,.dv-table[data-v-c8a717c4] .ant-table-pagination:not(.ant-pagination-disabled) .ant-pagination-next:not(.ant-pagination-disabled):focus-visible .ant-pagination-item-link{border-color:var(--dv-primary, #315fc4)}
1
+ .dv-filter-bar[data-v-45855b0b]{display:flex;align-items:center;gap:12px;padding:11px 14px;background:#fff;border:1px solid var(--dv-card-border, #e1e6ed);border-radius:7px;box-shadow:0 1px 2px #10182809,0 5px 14px #10182806}.dv-filter-bar__controls[data-v-45855b0b]{flex:1;display:grid;grid-template-columns:repeat(24,minmax(0,1fr));column-gap:16px;row-gap:8px}.dv-filter-bar__control[data-v-45855b0b]{grid-column:span var(--dv-filter-xs);min-width:0}.dv-filter-bar__label[data-v-45855b0b]{display:block;margin-bottom:6px;color:var(--dv-text-secondary, #657184);font-size:12px;font-weight:600;line-height:18px;white-space:nowrap}.dv-filter-bar__control[data-v-45855b0b] .ant-select{width:100%;min-width:0}.dv-filter-bar__control[data-v-45855b0b] .ant-select-single .ant-select-selector,.dv-filter-bar__control[data-v-45855b0b] .ant-select-multiple .ant-select-selector{height:32px;min-height:32px}.dv-filter-bar__control[data-v-45855b0b] .ant-select-multiple .ant-select-selection-overflow{flex-wrap:nowrap;overflow:hidden}.dv-filter-bar__date-range[data-v-45855b0b]{display:flex;width:fit-content;min-width:0;max-width:100%;align-items:center;gap:10px}.dv-filter-bar__range-picker[data-v-45855b0b]{width:320px;min-width:220px;max-width:320px;height:32px;flex:0 1 320px}.dv-filter-bar__presets[data-v-45855b0b]{display:inline-flex;height:32px;flex:none;align-items:center;gap:2px;padding:3px;border:1px solid #e2e7ed;border-radius:6px;background:#f3f5f7}.dv-filter-bar__presets[data-v-45855b0b] .ant-radio-button-wrapper{height:24px;padding:0 8px;border:0;border-radius:4px;color:#737e8e;background:transparent;box-shadow:none;font-size:12px;font-weight:500;line-height:24px}.dv-filter-bar__presets[data-v-45855b0b] .ant-radio-button-wrapper:before{display:none}.dv-filter-bar__presets[data-v-45855b0b] .ant-radio-button-wrapper-checked{color:var(--dv-primary, #315fc4);background:#fff;box-shadow:0 1px 2px #10182814,0 0 0 1px #10182806;font-weight:600}.dv-filter-bar[data-v-45855b0b] .ant-select-selector,.dv-filter-bar[data-v-45855b0b] .ant-picker{border-color:#dce2e9;border-radius:5px;box-shadow:none}.dv-filter-bar__refresh[data-v-45855b0b]{width:78px;height:32px;flex:0 0 78px;border-color:var(--dv-primary, #315fc4);border-radius:6px;background:var(--dv-primary, #315fc4);box-shadow:none}@media (min-width: 576px){.dv-filter-bar__control[data-v-45855b0b]{grid-column:span var(--dv-filter-sm)}}@media (min-width: 768px){.dv-filter-bar__control[data-v-45855b0b]{grid-column:span var(--dv-filter-md);display:flex;align-items:center}.dv-filter-bar__label[data-v-45855b0b]{flex:none;margin:0 8px 0 0}.dv-filter-bar--flow .dv-filter-bar__controls[data-v-45855b0b]{display:flex;flex-wrap:wrap;align-items:center;column-gap:20px}.dv-filter-bar--flow .dv-filter-bar__control[data-v-45855b0b]{width:auto;flex:0 1 auto;grid-column:auto}.dv-filter-bar--flow .dv-filter-bar__control--select[data-v-45855b0b],.dv-filter-bar--flow .dv-filter-bar__control--multi-select[data-v-45855b0b]{width:clamp(220px,20vw,320px);flex-basis:clamp(220px,20vw,320px)}}@media (min-width: 992px){.dv-filter-bar__control[data-v-45855b0b]{grid-column:span var(--dv-filter-lg)}}@media (min-width: 1200px){.dv-filter-bar__control[data-v-45855b0b]{grid-column:span var(--dv-filter-xl)}}@media (min-width: 768px) and (max-width: 1300px){.dv-filter-bar__date-range[data-v-45855b0b]{gap:6px}.dv-filter-bar__range-picker[data-v-45855b0b]{width:288px;min-width:200px;max-width:288px;flex-basis:288px}.dv-filter-bar__presets[data-v-45855b0b] .ant-radio-button-wrapper{padding:0 5px;font-size:11px}}@media (max-width: 767px){.dv-filter-bar[data-v-45855b0b]{align-items:stretch;flex-direction:column}.dv-filter-bar__refresh[data-v-45855b0b]{align-self:flex-end}.dv-filter-bar__controls[data-v-45855b0b]{column-gap:0}.dv-filter-bar__date-range[data-v-45855b0b]{width:100%;align-items:stretch;flex-direction:column}.dv-filter-bar__range-picker[data-v-45855b0b]{width:100%;min-width:0;max-width:none;flex-basis:auto}.dv-filter-bar__refresh[data-v-45855b0b]{flex-basis:32px}.dv-filter-bar__date-popup .ant-picker-panels>.ant-picker-panel:last-child{display:none}.dv-filter-bar__date-popup .ant-picker-panel:first-child .ant-picker-header-next-btn,.dv-filter-bar__date-popup .ant-picker-panel:first-child .ant-picker-header-super-next-btn{visibility:visible!important}}.dv-panel[data-v-d457add9]{height:100%;overflow:hidden;border:1px solid var(--dv-card-border, #e1e6ed);border-radius:7px;background:#fff;box-shadow:0 1px 2px #10182809,0 5px 14px #10182806}.dv-panel[data-v-d457add9] .ant-card-head{min-height:50px;padding:0 16px;border-bottom-color:var(--dv-card-divider, #edf0f4)}.dv-panel[data-v-d457add9] .ant-card-head-title,.dv-panel[data-v-d457add9] .ant-card-extra{padding:10px 0}.dv-panel[data-v-d457add9] .ant-card-head-title{padding:13px 0}.dv-panel[data-v-d457add9] .ant-card-body{position:relative;display:flex;flex-direction:column;box-sizing:border-box;padding:15px 16px}.dv-panel__heading[data-v-d457add9],.dv-panel__title-group[data-v-d457add9],.dv-panel__actions[data-v-d457add9]{display:flex;align-items:center;gap:6px}.dv-panel__heading[data-v-d457add9]{min-width:0;flex-wrap:wrap;row-gap:2px;line-height:20px}.dv-panel__title-group[data-v-d457add9]{min-width:0}.dv-panel__title-group[data-v-d457add9] .anticon{flex-shrink:0}.dv-panel__title-note[data-v-d457add9]{min-width:0;max-width:100%;color:#98a2b3;font-size:12px;font-weight:400;line-height:20px;overflow-wrap:anywhere;white-space:normal}.dv-panel__title[data-v-d457add9]{overflow:hidden;color:var(--dv-text-title, #273244);font-size:14px;font-weight:650;line-height:20px;text-overflow:ellipsis;white-space:nowrap}.dv-panel__heading[data-v-d457add9] svg{color:#8a94a6;font-size:13px}.dv-panel__actions[data-v-d457add9]{gap:4px}.dv-panel__actions[data-v-d457add9] .ant-btn{width:28px;height:28px;padding:0;border-radius:5px;color:#6e7889}.dv-panel__actions[data-v-d457add9] .ant-btn:hover{color:var(--dv-primary, #315fc4);background:#f0f4fa}.dv-panel__filters[data-v-d457add9]{display:none}.dv-panel__warning[data-v-d457add9]{color:#f59e0b;font-size:15px}.dv-panel__state[data-v-d457add9]{min-height:190px;flex:1;display:flex;align-items:center;justify-content:center}.dv-panel__state--empty[data-v-d457add9]{box-sizing:border-box;flex-direction:column;gap:14px;padding:24px 12px;text-align:center}.dv-panel__empty-icon[data-v-d457add9]{display:grid;width:56px;height:56px;flex-shrink:0;place-items:center;border:1px solid var(--dv-card-divider, #edf0f4);border-radius:16px;color:#8da2c5;background:linear-gradient(145deg,#f8fafd,#eff3f9);font-size:26px}.dv-panel__empty-copy[data-v-d457add9]{max-width:100%}.dv-panel__empty-title[data-v-d457add9]{color:var(--dv-text-secondary, #657184);font-size:13px;font-weight:500;line-height:20px}.dv-panel[data-v-d457add9] .ant-spin{color:var(--dv-primary, #315fc4)}.dv-panel[data-v-d457add9] .ant-spin-dot-item{background-color:currentColor}.dv-panel__failure[data-v-d457add9]{display:flex;max-width:min(320px,100%);flex-direction:column;align-items:center;color:#667085;text-align:center}.dv-panel__failure-copy[data-v-d457add9]{max-width:100%;min-width:0}.dv-panel__failure-heading[data-v-d457add9]{overflow:hidden;color:#526075;font-size:13px;font-weight:600;line-height:20px;text-overflow:ellipsis;white-space:nowrap}.dv-panel__failure-icon[data-v-d457add9]{margin-bottom:9px;color:#8592a5;font-size:22px}.dv-panel__failure-detail[data-v-d457add9]{max-width:100%;overflow:hidden;margin-top:1px;color:#98a2b3;font-size:12px;line-height:18px;text-overflow:ellipsis;white-space:nowrap}.dv-panel__retry[data-v-d457add9]{width:auto;height:28px;margin-top:10px;padding:0 10px;border-color:#dbe1e8;border-radius:5px;color:#59677a;background:#fff;box-shadow:none;font-size:12px}.dv-panel__retry[data-v-d457add9]:hover,.dv-panel__retry[data-v-d457add9]:focus{border-color:#b8c7e5;color:var(--dv-primary, #315fc4);background:#f7f9fc}.dv-panel__idle[data-v-d457add9]{color:#98a0ad;font-size:12px}.dv-panel__renderer[data-v-d457add9]{position:relative;min-width:0;flex:1}.dv-panel__refreshing[data-v-d457add9]{position:absolute;z-index:1;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:#ffffffc2}.dv-panel__updated[data-v-d457add9]{display:none;margin-top:8px;color:#98a0ad;font-size:11px;text-align:right}.dv-panel--metric[data-v-d457add9] .ant-card-head{min-height:40px;border-bottom:0}.dv-panel--metric[data-v-d457add9] .ant-card-head-title{padding:13px 0 4px}.dv-panel--metric[data-v-d457add9] .ant-card-extra{padding:8px 0 0}.dv-panel--metric[data-v-d457add9] .ant-card-body{padding:2px 16px 13px}.dv-panel--metric .dv-panel__state--loading[data-v-d457add9],.dv-panel--metric .dv-panel__state--failure[data-v-d457add9]{min-height:0}.dv-panel--metric .dv-panel__failure[data-v-d457add9]{width:fit-content;max-width:100%;display:grid;grid-template-columns:20px minmax(0,1fr) 28px;column-gap:8px;text-align:left}.dv-panel--metric .dv-panel__failure-icon[data-v-d457add9]{margin-bottom:0;font-size:16px}.dv-panel--metric .dv-panel__failure-detail[data-v-d457add9]{display:none}.dv-panel--metric .dv-panel__retry[data-v-d457add9]{width:28px;margin-top:0;padding:0;border-color:transparent;background:transparent}.dv-panel--metric .dv-panel__retry-label[data-v-d457add9]{display:none}.dv-panel--metric .dv-panel__state--metric-empty[data-v-d457add9]{min-height:0;color:#98a0ad;font-size:12px;line-height:20px}.dv-panel--metric .dv-panel__title[data-v-d457add9]{color:#637083;font-size:13px;font-weight:550}.dv-panel--metric .dv-panel__actions[data-v-d457add9]{opacity:0;transition:opacity .16s ease}.dv-panel--metric:hover .dv-panel__actions[data-v-d457add9],.dv-panel--metric:focus-within .dv-panel__actions[data-v-d457add9]{opacity:1}.dv-dashboard[data-v-39ec9b07]{--dv-card-border: #e1e6ed;--dv-card-divider: #edf0f4;--dv-text-title: #273244;--dv-text-body: #182230;--dv-text-secondary: #657184;--dv-text-muted: #8a94a6;width:100%;min-width:0;color:var(--dv-text-body)}.dv-dashboard__header[data-v-39ec9b07]{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:16px}.dv-dashboard__header h1[data-v-39ec9b07]{margin:0;font-size:22px;font-weight:650;line-height:30px;letter-spacing:0}.dv-dashboard__header p[data-v-39ec9b07]{margin:4px 0 0;color:#64748b;font-size:13px}.dv-dashboard__grid[data-v-39ec9b07]{display:grid;grid-template-columns:repeat(24,minmax(0,1fr));gap:14px;margin-top:14px}.dv-dashboard__cell[data-v-39ec9b07]{grid-column:span var(--dv-panel-xs);min-width:0}@media (min-width: 576px){.dv-dashboard__cell[data-v-39ec9b07]{grid-column:span var(--dv-panel-sm)}}@media (min-width: 768px){.dv-dashboard__cell[data-v-39ec9b07]{grid-column:span var(--dv-panel-md)}}@media (min-width: 992px){.dv-dashboard__cell[data-v-39ec9b07]{grid-column:span var(--dv-panel-lg)}}@media (min-width: 1200px){.dv-dashboard__cell[data-v-39ec9b07]{grid-column:span var(--dv-panel-xl)}}@media (max-width: 767px){.dv-dashboard__grid[data-v-39ec9b07]{gap:12px}}.dv-chart-renderer[data-v-4f111bdf]{width:100%;min-width:0}.dv-bar-renderer[data-v-4f111bdf] .bar-container{height:320px!important}.dv-bar-renderer[data-v-4f111bdf] .legend{min-height:18px;margin-bottom:2px;padding:0 4px}.dv-bar-renderer[data-v-4f111bdf] .legend-container{justify-content:flex-end}.dv-bar-renderer[data-v-4f111bdf] .legend-item{margin-right:12px;color:#667085;font-size:11px}.dv-bar-renderer[data-v-4f111bdf] .legend-item-color{width:9px;height:9px;border-radius:3px}.dv-chart-renderer[data-v-efc34766]{width:100%;min-width:0}.dv-line-renderer[data-v-efc34766] .line-container{height:320px}.dv-line-renderer[data-v-efc34766] .legend{min-height:18px;margin-bottom:2px;padding:0 4px}.dv-line-renderer[data-v-efc34766] .legend-container{justify-content:flex-end}.dv-line-renderer[data-v-efc34766] .legend-item{margin-right:12px;color:#667085;font-size:11px}.dv-line-renderer[data-v-efc34766] .legend-item-color{width:8px;height:8px;border-radius:50%}.dv-metric[data-v-efa26253]{min-height:62px;display:flex;flex-direction:column;justify-content:flex-start}.dv-metric__value[data-v-efa26253]{display:flex;align-items:baseline;column-gap:4px;color:#172033;font-size:29px;font-weight:650;letter-spacing:0;line-height:1.2;white-space:nowrap}.dv-metric__number[data-v-efa26253]{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.dv-metric__unit[data-v-efa26253]{position:relative;top:-1px;color:#7d8797;font-size:12px;font-weight:400;line-height:1}.dv-metric__comparison[data-v-efa26253]{display:flex;align-items:center;gap:10px;margin-top:7px;color:#7b8493;font-size:12px;line-height:18px}.dv-metric__comparison strong[data-v-efa26253]{display:inline-flex;align-items:center;gap:3px;font-weight:600}.dv-metric__comparison--favorable[data-v-efa26253]{color:#00a870}.dv-metric__comparison--unfavorable[data-v-efa26253]{color:#f53f3f}.dv-metric__comparison--neutral[data-v-efa26253]{color:#7b8493}.dv-chart-renderer[data-v-ccdee116]{width:100%;min-width:0}.dv-pie-renderer[data-v-ccdee116] .pie-container{height:320px!important;flex-direction:column-reverse}.dv-pie-renderer[data-v-ccdee116] .legend{min-height:18px;margin:4px 0 0;padding:0 4px}.dv-pie-renderer[data-v-ccdee116] .legend-item{margin-right:12px;color:#667085;font-size:11px}.dv-pie-renderer[data-v-ccdee116] .legend-item-color{width:8px;height:8px;border-radius:50%}.dv-table[data-v-c8a717c4] .ant-table{font-size:12px}.dv-table-scroll[data-v-c8a717c4]{width:100%;overflow-x:auto}.dv-table[data-v-c8a717c4]{min-width:720px}.dv-table[data-v-c8a717c4] .ant-table-thead>tr>th{padding:13px 16px;color:#5e6a7d;border-bottom:1px solid #e5eaf0;font-weight:600;background:#f7f9fb}.dv-table[data-v-c8a717c4] .ant-table-tbody>tr>td{padding:14px 16px;color:#344054;border-bottom:1px solid #edf0f4}.dv-table[data-v-c8a717c4] .ant-table-tbody>tr.ant-table-row:hover>td{background:#f8fafc}.dv-table[data-v-c8a717c4] .dv-table__progress-cell{display:grid;min-width:160px;grid-template-columns:minmax(96px,1fr) 48px;align-items:center;gap:8px}.dv-table[data-v-c8a717c4] .dv-table__progress-cell .ant-progress{margin:0;line-height:1}.dv-table[data-v-c8a717c4] .dv-table__progress-cell .ant-progress-inner{background:#edf0f4}.dv-table[data-v-c8a717c4] .dv-table__progress-cell .ant-progress-bg{background:#315fc4}.dv-table[data-v-c8a717c4] .dv-table__cell-value{color:#657184;font-variant-numeric:tabular-nums;text-align:right}.dv-table[data-v-c8a717c4] .dv-table__trend{display:inline-flex;align-items:center;gap:3px;font-weight:600;line-height:18px;white-space:nowrap}.dv-table[data-v-c8a717c4] .dv-table__trend--neutral{color:#7b8493}.dv-table[data-v-c8a717c4] .dv-table__trend--info{color:#315fc4}.dv-table[data-v-c8a717c4] .dv-table__trend--success{color:#00a870}.dv-table[data-v-c8a717c4] .dv-table__trend--warning{color:#c2410c}.dv-table[data-v-c8a717c4] .dv-table__trend--danger{color:#f53f3f}.dv-table[data-v-c8a717c4] .dv-table__tag{display:inline-flex;align-items:center;gap:4px;margin:0;border-radius:4px;font-size:12px;line-height:20px}.dv-table[data-v-c8a717c4] .dv-table__tag--neutral{color:#475467;border-color:#e4e7ec;background:#f2f4f7}.dv-table[data-v-c8a717c4] .dv-table__tag--info{color:#315fc4;border-color:#cbdafa;background:#eff6ff}.dv-table[data-v-c8a717c4] .dv-table__tag--success{color:#027a48;border-color:#abefc6;background:#ecfdf3}.dv-table[data-v-c8a717c4] .dv-table__tag--warning{color:#c2410c;border-color:#fed7aa;background:#fff7ed}.dv-table[data-v-c8a717c4] .dv-table__tag--danger{color:#b42318;border-color:#fecdca;background:#fef3f2}.dv-table[data-v-c8a717c4] .ant-table-pagination.ant-pagination{display:flex;align-items:center;gap:4px;margin:16px 0 0}.dv-table[data-v-c8a717c4] .ant-table-pagination.ant-pagination:after{display:none}.dv-table[data-v-c8a717c4] .ant-table-pagination.ant-pagination>.ant-pagination-item,.dv-table[data-v-c8a717c4] .ant-table-pagination.ant-pagination>.ant-pagination-prev,.dv-table[data-v-c8a717c4] .ant-table-pagination.ant-pagination>.ant-pagination-next,.dv-table[data-v-c8a717c4] .ant-table-pagination.ant-pagination>.ant-pagination-jump-prev,.dv-table[data-v-c8a717c4] .ant-table-pagination.ant-pagination>.ant-pagination-jump-next{display:flex;min-width:28px;height:28px;align-items:center;justify-content:center;margin:0;border-radius:5px;line-height:1}.dv-table[data-v-c8a717c4] .ant-table-pagination .ant-pagination-item>a,.dv-table[data-v-c8a717c4] .ant-table-pagination .ant-pagination-item-link,.dv-table[data-v-c8a717c4] .ant-table-pagination .ant-pagination-item-container{display:flex;width:100%;height:100%;align-items:center;justify-content:center;padding:0;line-height:1}.dv-table[data-v-c8a717c4] .ant-table-pagination .ant-pagination-item-ellipsis{display:flex;align-items:center;justify-content:center;letter-spacing:1px;line-height:1;text-indent:0}.dv-table[data-v-c8a717c4] .ant-table-pagination .anticon{display:inline-flex;align-items:center;justify-content:center;line-height:1}.dv-table[data-v-c8a717c4] .ant-table-pagination .anticon svg{display:block}.dv-table[data-v-c8a717c4] .ant-table-pagination .ant-pagination-item-active{border-color:var(--dv-primary, #315fc4);background:#f0f4fc;background:color-mix(in srgb,var(--dv-primary, #315fc4) 8%,white)}.dv-table[data-v-c8a717c4] .ant-table-pagination .ant-pagination-item-active>a{color:var(--dv-primary, #315fc4)}.dv-table[data-v-c8a717c4] .ant-table-pagination:not(.ant-pagination-disabled) .ant-pagination-item:not(.ant-pagination-item-disabled):hover,.dv-table[data-v-c8a717c4] .ant-table-pagination:not(.ant-pagination-disabled) .ant-pagination-item:not(.ant-pagination-item-disabled):focus-visible{border-color:var(--dv-primary, #315fc4);background:#f0f4fc;background:color-mix(in srgb,var(--dv-primary, #315fc4) 8%,white)}.dv-table[data-v-c8a717c4] .ant-table-pagination:not(.ant-pagination-disabled) .ant-pagination-item:not(.ant-pagination-item-disabled):hover>a,.dv-table[data-v-c8a717c4] .ant-table-pagination:not(.ant-pagination-disabled) .ant-pagination-item:not(.ant-pagination-item-disabled):focus-visible>a,.dv-table[data-v-c8a717c4] .ant-table-pagination .ant-pagination-item-link-icon,.dv-table[data-v-c8a717c4] .ant-table-pagination:not(.ant-pagination-disabled) .ant-pagination-prev:not(.ant-pagination-disabled):hover .ant-pagination-item-link,.dv-table[data-v-c8a717c4] .ant-table-pagination:not(.ant-pagination-disabled) .ant-pagination-prev:not(.ant-pagination-disabled):focus-visible .ant-pagination-item-link,.dv-table[data-v-c8a717c4] .ant-table-pagination:not(.ant-pagination-disabled) .ant-pagination-next:not(.ant-pagination-disabled):hover .ant-pagination-item-link,.dv-table[data-v-c8a717c4] .ant-table-pagination:not(.ant-pagination-disabled) .ant-pagination-next:not(.ant-pagination-disabled):focus-visible .ant-pagination-item-link{color:var(--dv-primary, #315fc4)}.dv-table[data-v-c8a717c4] .ant-table-pagination:not(.ant-pagination-disabled) .ant-pagination-prev:not(.ant-pagination-disabled):hover .ant-pagination-item-link,.dv-table[data-v-c8a717c4] .ant-table-pagination:not(.ant-pagination-disabled) .ant-pagination-prev:not(.ant-pagination-disabled):focus-visible .ant-pagination-item-link,.dv-table[data-v-c8a717c4] .ant-table-pagination:not(.ant-pagination-disabled) .ant-pagination-next:not(.ant-pagination-disabled):hover .ant-pagination-item-link,.dv-table[data-v-c8a717c4] .ant-table-pagination:not(.ant-pagination-disabled) .ant-pagination-next:not(.ant-pagination-disabled):focus-visible .ant-pagination-item-link{border-color:var(--dv-primary, #315fc4)}
package/dist/index.js CHANGED
@@ -1,9 +1,9 @@
1
- import { B as s, D as n, a as r, b as t, c as i, d as o, P as c, R as m, e as h, f as l, g as d, h as S, i as D, j as u, k as b, l as R, m as E, n as C, o as g, p as f, q as V, r as p, s as P, t as A, u as B, v as T, w as I } from "./dashboard-runtime-8a-9P8Ku.js";
2
- import { B as v, a as z, b as q, C as F, D as w, c as y, d as _, e as N, f as J, g as L, h as M, i as j, j as O, I as W, J as H, L as U, k, l as G, M as K, m as Q, n as X, P as Y, o as Z, p as $, q as aa, r as ea, s as sa, t as na, u as ra, R as ta, v as ia, T as oa, w as ca, x as ma, y as ha, z as la, V as da, A as Sa, W as Da, E as ua, F as ba, G as Ra, H as Ea } from "./runtime-schema-BO2qLlvE.js";
3
- import { D as ga, P as fa, R as Va, b as pa, c as Pa, a as Aa, e as Ba, g as Ta, r as Ia, d as xa, s as va, w as za } from "./csv-Dyrr2yMA.js";
4
- import { S as Fa, a as wa, b as ya, c as _a, l as Na, d as Ja, m as La, e as Ma, p as ja, f as Oa, t as Wa, g as Ha, w as Ua, h as ka } from "./standard-definitions-DHtaLAf1.js";
5
- import { V as Ka, v as Qa } from "./value-formatter-D5QmLSMG.js";
6
- import { c as Ya, i as Za, j as $a, s as ae } from "./serializable-DOOpLZyk.js";
1
+ import { B as s, D as n, a as r, b as t, c as i, d as o, P as c, R as m, e as h, f as l, g as d, h as S, i as D, j as u, k as b, l as E, m as R, n as C, o as g, p as f, q as p, r as V, s as P, t as A, u as B, v as T, w as x } from "./dashboard-runtime-6VlVQIuQ.js";
2
+ import { B as v, a as z, b as q, C as F, D as w, c as y, d as _, e as N, f as J, g as L, h as M, i as j, j as O, I as W, J as H, L as U, k, l as G, M as K, m as Q, n as X, P as Y, o as Z, p as $, q as aa, r as ea, s as sa, t as na, u as ra, v as ta, R as ia, w as oa, T as ca, x as ma, y as ha, z as la, A as da, V as Sa, E as Da, W as ua, F as ba, G as Ea, H as Ra, K as Ca } from "./runtime-schema-BmeEvFU-.js";
3
+ import { D as fa, P as pa, R as Va, b as Pa, c as Aa, a as Ba, e as Ta, g as xa, i as Ia, r as va, d as za, s as qa, w as Fa } from "./panel-export-Di_5Frul.js";
4
+ import { S as ya, a as _a, b as Na, c as Ja, l as La, d as Ma, m as ja, e as Oa, p as Wa, f as Ha, t as Ua, g as ka, w as Ga, h as Ka } from "./standard-definitions-hgJ-kOoz.js";
5
+ import { V as Xa, v as Ya } from "./value-formatter-D5QmLSMG.js";
6
+ import { c as $a, i as ae, j as ee, s as se } from "./serializable-DOOpLZyk.js";
7
7
  export {
8
8
  s as BUILT_IN_REQUEST_VALUE_CODECS,
9
9
  v as BarBindingSchema,
@@ -18,7 +18,7 @@ export {
18
18
  N as DashboardFilterControlConfigSchema,
19
19
  t as DashboardRuntime,
20
20
  J as DashboardVariableConfigSchema,
21
- ga as DashboardVariableError,
21
+ fa as DashboardVariableError,
22
22
  L as DataRequestConfigSchema,
23
23
  M as DatasetConfigSchema,
24
24
  i as DatasetExecutionError,
@@ -35,77 +35,79 @@ export {
35
35
  X as MetricVisualizationEnhancementSchema,
36
36
  Y as PanelBindingSchema,
37
37
  Z as PanelConfigSchema,
38
- $ as PieBindingSchema,
39
- aa as PieEnhancementSchema,
40
- ea as PieVisualizationEnhancementSchema,
41
- sa as PivotTableS2BindingSchema,
42
- na as PivotTableS2EnhancementSchema,
43
- ra as PivotTableS2VisualizationEnhancementSchema,
44
- fa as PluginRegistry,
38
+ $ as PanelExportConfigSchema,
39
+ aa as PieBindingSchema,
40
+ ea as PieEnhancementSchema,
41
+ sa as PieVisualizationEnhancementSchema,
42
+ na as PivotTableS2BindingSchema,
43
+ ra as PivotTableS2EnhancementSchema,
44
+ ta as PivotTableS2VisualizationEnhancementSchema,
45
+ pa as PluginRegistry,
45
46
  c as ProviderInputValidationError,
46
47
  Va as RegistryError,
47
48
  m as RequestExecutor,
48
49
  h as RequestInputError,
49
- ta as RequestValueBindingSchema,
50
+ ia as RequestValueBindingSchema,
50
51
  l as RequestValueCodecError,
51
- ia as RuntimeSchemaValidationError,
52
- Fa as STANDARD_ADAPTERS,
53
- wa as STANDARD_RENDERER_DEFINITIONS,
54
- oa as TableBindingSchema,
55
- ca as TableCellDisplaySchema,
56
- ma as TableCellToneSchema,
57
- ha as TableEnhancementSchema,
58
- la as TableVisualizationEnhancementSchema,
59
- da as ValueFormatSchema,
60
- Ka as ValueFormatter,
61
- Sa as VisualizationEnhancementSchema,
62
- Da as WordCloudBindingSchema,
63
- ua as WordCloudEnhancementSchema,
64
- ba as WordCloudVisualizationEnhancementSchema,
52
+ oa as RuntimeSchemaValidationError,
53
+ ya as STANDARD_ADAPTERS,
54
+ _a as STANDARD_RENDERER_DEFINITIONS,
55
+ ca as TableBindingSchema,
56
+ ma as TableCellDisplaySchema,
57
+ ha as TableCellToneSchema,
58
+ la as TableEnhancementSchema,
59
+ da as TableVisualizationEnhancementSchema,
60
+ Sa as ValueFormatSchema,
61
+ Xa as ValueFormatter,
62
+ Da as VisualizationEnhancementSchema,
63
+ ua as WordCloudBindingSchema,
64
+ ba as WordCloudEnhancementSchema,
65
+ Ea as WordCloudVisualizationEnhancementSchema,
65
66
  d as assertDashboardConfig,
66
- ya as barAdapter,
67
- _a as barRendererDefinition,
68
- pa as buildDashboardSearch,
69
- Ya as cloneJsonValue,
67
+ Na as barAdapter,
68
+ Ja as barRendererDefinition,
69
+ Pa as buildDashboardSearch,
70
+ $a as cloneJsonValue,
70
71
  S as collectDownstreamDatasetIds,
71
72
  D as collectDownstreamPanelIds,
72
73
  u as createCoreRegistries,
73
- Pa as createDashboardContext,
74
+ Aa as createDashboardContext,
74
75
  b as createDashboardDataRuntime,
75
- R as createDashboardDependencyGraph,
76
- E as createDashboardRuntime,
76
+ E as createDashboardDependencyGraph,
77
+ R as createDashboardRuntime,
77
78
  Ra as createJsonSchemaRuntimeSchema,
78
- Aa as createPanelCsvFilename,
79
+ Ba as createPanelCsvFilename,
79
80
  C as createRequestCacheKey,
80
81
  g as createRequestValueCodecRegistry,
81
82
  f as createStandardCoreRegistries,
82
- Ea as createTypeBoxRuntimeSchema,
83
- V as dashboardConfigRuntimeSchema,
84
- Ba as emitTelemetry,
85
- Ta as getPanelExportFields,
86
- Za as isJsonValue,
87
- $a as jsonValuesEqual,
88
- Na as lineAdapter,
89
- Ja as lineRendererDefinition,
90
- La as metricAdapter,
91
- Ma as metricRendererDefinition,
92
- p as normalizeDatasetRows,
83
+ Ca as createTypeBoxRuntimeSchema,
84
+ p as dashboardConfigRuntimeSchema,
85
+ Ta as emitTelemetry,
86
+ xa as getPanelExportFields,
87
+ ae as isJsonValue,
88
+ Ia as isPanelExportEnabled,
89
+ ee as jsonValuesEqual,
90
+ La as lineAdapter,
91
+ Ma as lineRendererDefinition,
92
+ ja as metricAdapter,
93
+ Oa as metricRendererDefinition,
94
+ V as normalizeDatasetRows,
93
95
  P as parseDashboardConfig,
94
- ja as pieAdapter,
95
- Oa as pieRendererDefinition,
96
- Ia as readDashboardVariable,
96
+ Wa as pieAdapter,
97
+ Ha as pieRendererDefinition,
98
+ va as readDashboardVariable,
97
99
  A as readValueAtPath,
98
100
  B as registerStandardCore,
99
101
  T as resolveDataRequestInput,
100
- xa as restoreDashboardContextFromSearch,
101
- va as serializePanelCsv,
102
- ae as stableSerializeJson,
103
- Wa as tableAdapter,
104
- Ha as tableRendererDefinition,
105
- I as validateDashboardConfig,
106
- Qa as valueFormatter,
107
- Ua as wordCloudAdapter,
108
- ka as wordCloudRendererDefinition,
109
- za as writeDashboardVariable
102
+ za as restoreDashboardContextFromSearch,
103
+ qa as serializePanelCsv,
104
+ se as stableSerializeJson,
105
+ Ua as tableAdapter,
106
+ ka as tableRendererDefinition,
107
+ x as validateDashboardConfig,
108
+ Ya as valueFormatter,
109
+ Ga as wordCloudAdapter,
110
+ Ka as wordCloudRendererDefinition,
111
+ Fa as writeDashboardVariable
110
112
  };
111
113
  //# sourceMappingURL=index.js.map
@@ -2,12 +2,12 @@ var V = Object.defineProperty;
2
2
  var j = (e) => {
3
3
  throw TypeError(e);
4
4
  };
5
- var z = (e, r, t) => r in e ? V(e, r, { enumerable: !0, configurable: !0, writable: !0, value: t }) : e[r] = t;
6
- var m = (e, r, t) => z(e, typeof r != "symbol" ? r + "" : r, t), C = (e, r, t) => r.has(e) || j("Cannot " + t);
7
- var d = (e, r, t) => (C(e, r, "read from private field"), t ? t.call(e) : r.get(e)), w = (e, r, t) => r.has(e) ? j("Cannot add the same private member more than once") : r instanceof WeakSet ? r.add(e) : r.set(e, t);
8
- import { c as b, i as _, j as D } from "./serializable-DOOpLZyk.js";
9
- import { v as x } from "./value-formatter-D5QmLSMG.js";
10
- function N(e, r) {
5
+ var x = (e, r, t) => r in e ? V(e, r, { enumerable: !0, configurable: !0, writable: !0, value: t }) : e[r] = t;
6
+ var m = (e, r, t) => x(e, typeof r != "symbol" ? r + "" : r, t), z = (e, r, t) => r.has(e) || j("Cannot " + t);
7
+ var d = (e, r, t) => (z(e, r, "read from private field"), t ? t.call(e) : r.get(e)), w = (e, r, t) => r.has(e) ? j("Cannot add the same private member more than once") : r instanceof WeakSet ? r.add(e) : r.set(e, t);
8
+ import { c as p, i as _, j as C } from "./serializable-DOOpLZyk.js";
9
+ import { v as D } from "./value-formatter-D5QmLSMG.js";
10
+ function P(e, r) {
11
11
  try {
12
12
  e == null || e(Object.freeze({ ...r }));
13
13
  } catch {
@@ -28,11 +28,11 @@ function E(e, r) {
28
28
  throw new $("variable_not_found", r, `Dashboard variable not found: ${r}`);
29
29
  return t;
30
30
  }
31
- function P(e, r) {
31
+ function N(e, r) {
32
32
  const t = r.variables ?? {}, a = Object.fromEntries(
33
33
  (e.variables ?? []).map((s) => [
34
34
  s.id,
35
- b(
35
+ p(
36
36
  Object.prototype.hasOwnProperty.call(t, s.id) ? t[s.id] : s.defaultValue
37
37
  )
38
38
  ])
@@ -46,7 +46,7 @@ function P(e, r) {
46
46
  }
47
47
  function K(e, r, t) {
48
48
  const a = E(e, t);
49
- return b(
49
+ return p(
50
50
  Object.prototype.hasOwnProperty.call(r.variables, t) ? r.variables[t] : a.defaultValue
51
51
  );
52
52
  }
@@ -59,7 +59,7 @@ function A(e, r, t, a) {
59
59
  );
60
60
  return Object.freeze({
61
61
  ...r,
62
- variables: Object.freeze({ ...r.variables, [t]: b(a) })
62
+ variables: Object.freeze({ ...r.variables, [t]: p(a) })
63
63
  });
64
64
  }
65
65
  function O(e) {
@@ -104,7 +104,7 @@ function q(e, r) {
104
104
  }
105
105
  function M(e, r, t, a) {
106
106
  const s = new URLSearchParams(r), n = [];
107
- let i = P(e, t);
107
+ let i = N(e, t);
108
108
  for (const o of e.variables ?? []) {
109
109
  if (!o.urlKey || !s.has(o.urlKey))
110
110
  continue;
@@ -116,7 +116,7 @@ function M(e, r, t, a) {
116
116
  message: `Unable to decode URL variable ${o.id}. The default value was used.`,
117
117
  variableId: o.id,
118
118
  urlKey: o.urlKey
119
- }), N(a, {
119
+ }), P(a, {
120
120
  name: "variable_decode_error",
121
121
  dashboardId: e.id,
122
122
  errorCode: "variable_decode_error"
@@ -133,7 +133,7 @@ function T(e, r, t = "") {
133
133
  if (!n.urlKey)
134
134
  continue;
135
135
  const i = K(e, r, n.id);
136
- D(i, n.defaultValue) ? a.delete(n.urlKey) : a.set(n.urlKey, q(i, n));
136
+ C(i, n.defaultValue) ? a.delete(n.urlKey) : a.set(n.urlKey, q(i, n));
137
137
  }
138
138
  const s = a.toString();
139
139
  return s ? `?${s}` : "";
@@ -226,9 +226,9 @@ function G(e, r, t, a = {}) {
226
226
  i.map((u) => g(u.label)).join(","),
227
227
  ...e.rows.map(
228
228
  (u) => i.map((c) => {
229
- var p, v, F;
230
- const S = ((F = (v = (p = r.enhancement) == null ? void 0 : p.common) == null ? void 0 : v.formatOverrides) == null ? void 0 : F[c.key]) ?? c.format ?? U(c.dataType);
231
- return g(x.formatExport(u[c.key], S));
229
+ var b, v, F;
230
+ const S = ((F = (v = (b = r.enhancement) == null ? void 0 : b.common) == null ? void 0 : v.formatOverrides) == null ? void 0 : F[c.key]) ?? c.format ?? U(c.dataType);
231
+ return g(D.formatExport(u[c.key], S));
232
232
  }).join(",")
233
233
  )
234
234
  ];
@@ -237,18 +237,23 @@ function G(e, r, t, a = {}) {
237
237
  function H(e, r) {
238
238
  return `${`${e}-${r}`.replace(/[^A-Za-z0-9._-]+/g, "-").replace(/^-+|-+$/g, "") || "dashboard-panel"}.csv`;
239
239
  }
240
+ function Q(e, r, t) {
241
+ var a;
242
+ return r[t] && ((a = e.export) == null ? void 0 : a[t]) !== !1;
243
+ }
240
244
  export {
241
245
  $ as D,
242
246
  Z as P,
243
247
  y as R,
244
248
  H as a,
245
249
  T as b,
246
- P as c,
250
+ N as c,
247
251
  M as d,
248
- N as e,
252
+ P as e,
249
253
  J as g,
254
+ Q as i,
250
255
  K as r,
251
256
  G as s,
252
257
  A as w
253
258
  };
254
- //# sourceMappingURL=csv-Dyrr2yMA.js.map
259
+ //# sourceMappingURL=panel-export-Di_5Frul.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"panel-export-Di_5Frul.js","sources":["../src/core/telemetry/telemetry.ts","../src/core/variable/dashboard-context.ts","../src/core/variable/url-state.ts","../src/core/registry/plugin-registry.ts","../src/core/export/csv.ts","../src/core/export/panel-export.ts"],"sourcesContent":["export type VisualizationTelemetryEventName =\n | \"config_validated\"\n | \"request_started\"\n | \"request_succeeded\"\n | \"request_failed\"\n | \"request_cancelled\"\n | \"request_cache_hit\"\n | \"dataset_cache_hit\"\n | \"dataset_succeeded\"\n | \"dataset_failed\"\n | \"adapter_failed\"\n | \"renderer_failed\"\n | \"export_failed\"\n | \"variable_decode_error\";\n\nexport interface VisualizationTelemetryEvent {\n name: VisualizationTelemetryEventName;\n dashboardId: string;\n requestId?: string;\n datasetId?: string;\n panelId?: string;\n providerId?: string;\n operationId?: string;\n durationMs?: number;\n errorCode?: string;\n}\n\nexport type VisualizationTelemetrySink = (event: Readonly<VisualizationTelemetryEvent>) => void;\n\nexport function emitTelemetry(sink: VisualizationTelemetrySink | undefined, event: VisualizationTelemetryEvent): void {\n try {\n sink?.(Object.freeze({ ...event }));\n } catch {\n // Telemetry must never break dashboard execution.\n }\n}\n","import type { DashboardConfig } from \"../config/dashboard-config-schema\";\nimport { cloneJsonValue, isJsonValue, type JsonValue } from \"../config\";\n\nexport interface DashboardContext {\n dashboardId: string;\n variables: Readonly<Record<string, JsonValue>>;\n timezone: string;\n locale: string;\n}\n\nexport interface CreateDashboardContextOptions {\n timezone: string;\n locale: string;\n variables?: Readonly<Record<string, JsonValue>>;\n}\n\nexport class DashboardVariableError extends Error {\n readonly code: \"variable_not_found\" | \"variable_value_invalid\";\n readonly variableId: string;\n\n constructor(code: DashboardVariableError[\"code\"], variableId: string, message: string) {\n super(message);\n this.name = \"DashboardVariableError\";\n this.code = code;\n this.variableId = variableId;\n }\n}\n\nfunction findVariable(config: DashboardConfig, variableId: string) {\n const variable = config.variables?.find((candidate) => candidate.id === variableId);\n if (!variable) {\n throw new DashboardVariableError(\"variable_not_found\", variableId, `Dashboard variable not found: ${variableId}`);\n }\n return variable;\n}\n\nexport function createDashboardContext(\n config: DashboardConfig,\n options: CreateDashboardContextOptions\n): DashboardContext {\n const overrides = options.variables ?? {};\n const variables = Object.fromEntries(\n (config.variables ?? []).map((variable) => [\n variable.id,\n cloneJsonValue(\n Object.prototype.hasOwnProperty.call(overrides, variable.id) ? overrides[variable.id]! : variable.defaultValue\n )\n ])\n );\n\n return Object.freeze({\n dashboardId: config.id,\n variables: Object.freeze(variables),\n timezone: options.timezone,\n locale: options.locale\n });\n}\n\nexport function readDashboardVariable(\n config: DashboardConfig,\n context: DashboardContext,\n variableId: string\n): JsonValue {\n const variable = findVariable(config, variableId);\n return cloneJsonValue(\n Object.prototype.hasOwnProperty.call(context.variables, variableId)\n ? context.variables[variableId]!\n : variable.defaultValue\n );\n}\n\nexport function writeDashboardVariable(\n config: DashboardConfig,\n context: DashboardContext,\n variableId: string,\n value: JsonValue\n): DashboardContext {\n findVariable(config, variableId);\n if (!isJsonValue(value)) {\n throw new DashboardVariableError(\n \"variable_value_invalid\",\n variableId,\n `Dashboard variable value is not JSON serializable: ${variableId}`\n );\n }\n\n return Object.freeze({\n ...context,\n variables: Object.freeze({ ...context.variables, [variableId]: cloneJsonValue(value) })\n });\n}\n","import type { DashboardConfig, DashboardVariableConfig } from \"../config/dashboard-config-schema\";\nimport { isJsonValue, jsonValuesEqual, type JsonValue } from \"../config\";\nimport { emitTelemetry, type VisualizationTelemetrySink } from \"../telemetry\";\nimport {\n createDashboardContext,\n readDashboardVariable,\n writeDashboardVariable,\n type CreateDashboardContextOptions,\n type DashboardContext\n} from \"./dashboard-context\";\n\nexport interface VariableDiagnostic {\n level: \"warning\";\n code: \"variable_decode_error\";\n message: string;\n variableId: string;\n urlKey: string;\n}\n\nexport interface RestoreDashboardContextResult {\n context: DashboardContext;\n diagnostics: ReadonlyArray<VariableDiagnostic>;\n}\n\nfunction resolveCodec(variable: DashboardVariableConfig) {\n if (variable.urlCodec) {\n return variable.urlCodec;\n }\n if (Array.isArray(variable.defaultValue)) {\n if (variable.defaultValue.every((item) => typeof item === \"number\")) {\n return \"number-array\";\n }\n if (variable.defaultValue.every((item) => typeof item === \"string\")) {\n return \"string-array\";\n }\n return \"json\";\n }\n if (typeof variable.defaultValue === \"number\" || typeof variable.defaultValue === \"boolean\") {\n return typeof variable.defaultValue;\n }\n if (variable.defaultValue !== null && typeof variable.defaultValue === \"object\") {\n return \"json\";\n }\n return \"string\";\n}\n\nfunction decodeValue(rawValue: string, variable: DashboardVariableConfig): JsonValue | undefined {\n switch (resolveCodec(variable)) {\n case \"number\": {\n if (rawValue.trim() === \"\") return undefined;\n const value = Number(rawValue);\n return Number.isFinite(value) ? value : undefined;\n }\n case \"boolean\":\n return rawValue === \"true\" ? true : rawValue === \"false\" ? false : undefined;\n case \"string-array\":\n return rawValue ? rawValue.split(\",\") : [];\n case \"number-array\": {\n const values = rawValue ? rawValue.split(\",\").map(Number) : [];\n return values.every(Number.isFinite) ? values : undefined;\n }\n case \"json\":\n try {\n const value: unknown = JSON.parse(rawValue);\n return isJsonValue(value) ? value : undefined;\n } catch {\n return undefined;\n }\n default:\n return rawValue;\n }\n}\n\nfunction encodeValue(value: JsonValue, variable: DashboardVariableConfig): string {\n switch (resolveCodec(variable)) {\n case \"string-array\":\n case \"number-array\":\n return Array.isArray(value) ? value.join(\",\") : \"\";\n case \"json\":\n return JSON.stringify(value);\n default:\n return String(value ?? \"\");\n }\n}\n\nexport function restoreDashboardContextFromSearch(\n config: DashboardConfig,\n search: string,\n options: CreateDashboardContextOptions,\n telemetry?: VisualizationTelemetrySink\n): RestoreDashboardContextResult {\n const query = new URLSearchParams(search);\n const diagnostics: VariableDiagnostic[] = [];\n let context = createDashboardContext(config, options);\n\n for (const variable of config.variables ?? []) {\n if (!variable.urlKey || !query.has(variable.urlKey)) {\n continue;\n }\n\n const decoded = decodeValue(query.get(variable.urlKey) ?? \"\", variable);\n if (decoded === undefined) {\n diagnostics.push({\n level: \"warning\",\n code: \"variable_decode_error\",\n message: `Unable to decode URL variable ${variable.id}. The default value was used.`,\n variableId: variable.id,\n urlKey: variable.urlKey\n });\n emitTelemetry(telemetry, {\n name: \"variable_decode_error\",\n dashboardId: config.id,\n errorCode: \"variable_decode_error\"\n });\n continue;\n }\n\n context = writeDashboardVariable(config, context, variable.id, decoded);\n }\n\n return { context, diagnostics: Object.freeze(diagnostics) };\n}\n\nexport function buildDashboardSearch(config: DashboardConfig, context: DashboardContext, currentSearch = \"\"): string {\n const query = new URLSearchParams(currentSearch);\n\n for (const variable of config.variables ?? []) {\n if (!variable.urlKey) {\n continue;\n }\n\n const value = readDashboardVariable(config, context, variable.id);\n if (jsonValuesEqual(value, variable.defaultValue)) {\n query.delete(variable.urlKey);\n } else {\n query.set(variable.urlKey, encodeValue(value, variable));\n }\n }\n\n const value = query.toString();\n return value ? `?${value}` : \"\";\n}\n","export interface RegistryEntry {\n id: string;\n}\n\nexport interface ReadonlyRegistry<T extends RegistryEntry> {\n get(id: string): T | undefined;\n require(id: string): T;\n has(id: string): boolean;\n values(): ReadonlyArray<T>;\n}\n\nexport class RegistryError extends Error {\n readonly code: \"duplicate_registry_id\" | \"invalid_registry_id\" | \"registry_entry_not_found\";\n readonly registryName: string;\n readonly entryId: string;\n\n constructor(code: RegistryError[\"code\"], registryName: string, entryId: string, message: string) {\n super(message);\n this.name = \"RegistryError\";\n this.code = code;\n this.registryName = registryName;\n this.entryId = entryId;\n }\n}\n\nexport class PluginRegistry<T extends RegistryEntry> implements ReadonlyRegistry<T> {\n readonly #entries = new Map<string, T>();\n\n constructor(readonly name: string) {}\n\n register(entry: T): this {\n if (!entry.id.trim()) {\n throw new RegistryError(\"invalid_registry_id\", this.name, entry.id, `${this.name} entry ID cannot be empty.`);\n }\n if (this.#entries.has(entry.id)) {\n throw new RegistryError(\n \"duplicate_registry_id\",\n this.name,\n entry.id,\n `${this.name} entry is already registered: ${entry.id}`\n );\n }\n\n this.#entries.set(entry.id, entry);\n return this;\n }\n\n registerMany(entries: ReadonlyArray<T>): this {\n entries.forEach((entry) => this.register(entry));\n return this;\n }\n\n get(id: string): T | undefined {\n return this.#entries.get(id);\n }\n\n require(id: string): T {\n const entry = this.get(id);\n if (!entry) {\n throw new RegistryError(\"registry_entry_not_found\", this.name, id, `${this.name} entry is not registered: ${id}`);\n }\n return entry;\n }\n\n has(id: string): boolean {\n return this.#entries.has(id);\n }\n\n values(): ReadonlyArray<T> {\n return Array.from(this.#entries.values());\n }\n\n clear(): void {\n this.#entries.clear();\n }\n}\n","import type { DatasetResult } from \"../dataset\";\nimport { valueFormatter, type FormatterContext } from \"../formatter\";\nimport type { PanelBinding, PanelConfig, ValueFormat } from \"../config\";\n\nexport interface SerializePanelCsvOptions {\n includeBom?: boolean;\n lineEnding?: \"\\r\\n\" | \"\\n\";\n}\n\nfunction unique(values: ReadonlyArray<string | undefined>): string[] {\n return Array.from(new Set(values.filter((value): value is string => Boolean(value))));\n}\n\nexport function getPanelExportFields(binding: PanelBinding): string[] {\n switch (binding.type) {\n case \"metric\":\n return unique([binding.valueField, binding.compareField]);\n case \"line\":\n return unique([binding.xField, binding.seriesField, ...binding.yFields]);\n case \"bar\":\n return unique([binding.categoryField, binding.seriesField, ...binding.valueFields]);\n case \"pie\":\n return unique([binding.nameField, binding.valueField]);\n case \"table\":\n return unique(binding.columns);\n case \"wordCloud\":\n return unique([...binding.labelFields, binding.valueField, binding.semanticField]);\n case \"pivotTableS2\":\n return unique([...binding.rowFields, ...binding.columnFields, ...binding.valueFields]);\n }\n}\n\nfunction defaultFormat(dataType: DatasetResult[\"fields\"][number][\"dataType\"]): ValueFormat {\n if (dataType === \"date\") return { type: \"date\" };\n if (dataType === \"datetime\") return { type: \"datetime\" };\n if (dataType === \"number\") return { type: \"number\" };\n return { type: \"number\" };\n}\n\nfunction escapeCsv(value: string | number | boolean): string {\n const text = String(value);\n return /[\",\\r\\n]/.test(text) ? `\"${text.replace(/\"/g, '\"\"')}\"` : text;\n}\n\nexport function serializePanelCsv(\n dataset: DatasetResult,\n panel: Pick<PanelConfig, \"binding\" | \"enhancement\">,\n _context: FormatterContext,\n options: SerializePanelCsvOptions = {}\n): string {\n const fieldIds = getPanelExportFields(panel.binding);\n const fieldsById = new Map(dataset.fields.map((field) => [field.key, field]));\n const fields = fieldIds.map((fieldId) => {\n const field = fieldsById.get(fieldId);\n if (!field) throw new Error(`CSV export field not found in dataset ${dataset.datasetId}: ${fieldId}`);\n return field;\n });\n const lineEnding = options.lineEnding ?? \"\\r\\n\";\n const lines = [\n fields.map((field) => escapeCsv(field.label)).join(\",\"),\n ...dataset.rows.map((row) =>\n fields\n .map((field) => {\n const format =\n panel.enhancement?.common?.formatOverrides?.[field.key] ?? field.format ?? defaultFormat(field.dataType);\n return escapeCsv(valueFormatter.formatExport(row[field.key], format));\n })\n .join(\",\")\n )\n ];\n return `${options.includeBom === false ? \"\" : \"\\uFEFF\"}${lines.join(lineEnding)}`;\n}\n\nexport function createPanelCsvFilename(dashboardId: string, panelId: string): string {\n const safe = `${dashboardId}-${panelId}`.replace(/[^A-Za-z0-9._-]+/g, \"-\").replace(/^-+|-+$/g, \"\");\n return `${safe || \"dashboard-panel\"}.csv`;\n}\n","import type { RendererCapabilities } from \"../adapter\";\nimport type { PanelConfig, PanelExportConfig } from \"../config\";\n\nexport function isPanelExportEnabled(\n panel: Pick<PanelConfig, \"export\">,\n capabilities: Readonly<RendererCapabilities>,\n format: keyof PanelExportConfig\n): boolean {\n return capabilities[format] && panel.export?.[format] !== false;\n}\n"],"names":["emitTelemetry","sink","event","DashboardVariableError","code","variableId","message","__publicField","findVariable","config","variable","_a","candidate","createDashboardContext","options","overrides","variables","cloneJsonValue","readDashboardVariable","context","writeDashboardVariable","value","isJsonValue","resolveCodec","item","decodeValue","rawValue","values","encodeValue","restoreDashboardContextFromSearch","search","telemetry","query","diagnostics","decoded","buildDashboardSearch","currentSearch","jsonValuesEqual","RegistryError","registryName","entryId","PluginRegistry","name","__privateAdd","_entries","entry","__privateGet","entries","id","unique","getPanelExportFields","binding","defaultFormat","dataType","escapeCsv","text","serializePanelCsv","dataset","panel","_context","fieldIds","fieldsById","field","fields","fieldId","lineEnding","lines","row","format","_c","_b","valueFormatter","createPanelCsvFilename","dashboardId","panelId","isPanelExportEnabled","capabilities"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { w as a, h as i } from "../../standard-definitions-DHtaLAf1.js";
1
+ import { w as a, h as i } from "../../standard-definitions-hgJ-kOoz.js";
2
2
  const r = "wordCloud";
3
3
  async function d() {
4
4
  return (await import("../../WordCloudRenderer-7tzJz57a.js")).default;