@sisense/sdk-ui 2.4.0 → 2.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/dist/ai.cjs +1 -1
  2. package/dist/ai.js +4 -4
  3. package/dist/analytics-composer.cjs +1 -1
  4. package/dist/analytics-composer.js +4 -4
  5. package/dist/{derive-chart-family-Cqw-HJq1.cjs → derive-chart-family-Cjjn5U5S.cjs} +83 -83
  6. package/dist/{derive-chart-family-woVAnbRi.js → derive-chart-family-ci86jmVk.js} +2117 -2116
  7. package/dist/{dimensions-oGJ_aWd5.cjs → dimensions-COtPNdpu.cjs} +1 -1
  8. package/dist/{dimensions-BHdLQaOB.js → dimensions-wzj4u0MX.js} +1 -1
  9. package/dist/index.cjs +17 -17
  10. package/dist/index.js +7119 -6835
  11. package/dist/index.umd.js +311 -311
  12. package/dist/packages/sdk-ui/src/analytics-composer/common/utils.d.ts +18 -0
  13. package/dist/packages/sdk-ui/src/api/types/dashboard-dto.d.ts +4 -0
  14. package/dist/packages/sdk-ui/src/app/client-application.d.ts +25 -6
  15. package/dist/packages/sdk-ui/src/chart/advanced-chart.d.ts +1 -1
  16. package/dist/packages/sdk-ui/src/chart-data-options/types.d.ts +8 -0
  17. package/dist/packages/sdk-ui/src/chart-data-options/utils.d.ts +8 -1
  18. package/dist/packages/sdk-ui/src/common/components/modal/index.d.ts +1 -1
  19. package/dist/packages/sdk-ui/src/common/components/modal/modal-context.d.ts +0 -6
  20. package/dist/packages/sdk-ui/src/common/hooks/use-modal.d.ts +14 -0
  21. package/dist/packages/sdk-ui/src/common/icons/jtd-jumpable-icon.d.ts +1 -0
  22. package/dist/packages/sdk-ui/src/dashboard/components/editable-layout/components/resizable-columns.d.ts +7 -3
  23. package/dist/packages/sdk-ui/src/dashboard/components/editable-layout/const.d.ts +2 -2
  24. package/dist/packages/sdk-ui/src/dashboard/components/editable-layout/helpers.d.ts +6 -0
  25. package/dist/packages/sdk-ui/src/dashboard/components/jtd-dashboard.d.ts +2 -2
  26. package/dist/packages/sdk-ui/src/dashboard/hooks/jtd/index.d.ts +5 -0
  27. package/dist/packages/sdk-ui/src/dashboard/hooks/jtd/jtd-filters.d.ts +95 -0
  28. package/dist/packages/sdk-ui/src/dashboard/hooks/jtd/jtd-handlers.d.ts +46 -0
  29. package/dist/packages/sdk-ui/src/dashboard/hooks/jtd/jtd-menu.d.ts +47 -0
  30. package/dist/packages/sdk-ui/src/dashboard/hooks/jtd/jtd-types.d.ts +93 -0
  31. package/dist/packages/sdk-ui/src/dashboard/hooks/jtd/jtd-widget-transforms.d.ts +48 -0
  32. package/dist/packages/sdk-ui/src/dashboard/hooks/use-jtd.d.ts +1 -92
  33. package/dist/packages/sdk-ui/src/filters/components/filter-editor-popover/sections/utils.d.ts +8 -0
  34. package/dist/packages/sdk-ui/src/models/dashboard/types.d.ts +18 -2
  35. package/dist/packages/sdk-ui/src/pivot-table/formatters/header-cell-formatters/header-cell-value-formatter.d.ts +2 -2
  36. package/dist/packages/sdk-ui/src/translation/resources/en.d.ts +1 -0
  37. package/dist/packages/sdk-ui/src/translation/resources/index.d.ts +2 -0
  38. package/dist/packages/sdk-ui/src/utils/parseISOWithTimezoneCheck.d.ts +9 -0
  39. package/dist/packages/sdk-ui/src/widget-by-id/types.d.ts +9 -9
  40. package/dist/{use-common-filters-B3lFbmtY.js → use-common-filters-BTk7vuUo.js} +3930 -3886
  41. package/dist/{use-common-filters-B2TXBt4b.cjs → use-common-filters-Bf8KKBN2.cjs} +77 -77
  42. package/dist/{widget-composer-BCNu5BzM.js → widget-composer-BtqAxkpr.js} +110 -92
  43. package/dist/{widget-composer-DheWJukc.cjs → widget-composer-CJDaEkCY.cjs} +7 -7
  44. package/package.json +7 -7
@@ -1,16 +1,16 @@
1
1
  var tt = Object.defineProperty, et = Object.defineProperties;
2
2
  var rt = Object.getOwnPropertyDescriptors;
3
- var j = Object.getOwnPropertySymbols;
3
+ var W = Object.getOwnPropertySymbols;
4
4
  var it = Object.prototype.hasOwnProperty, at = Object.prototype.propertyIsEnumerable;
5
- var $ = (t, e, r) => e in t ? tt(t, e, { enumerable: !0, configurable: !0, writable: !0, value: r }) : t[e] = r, o = (t, e) => {
5
+ var j = (t, e, r) => e in t ? tt(t, e, { enumerable: !0, configurable: !0, writable: !0, value: r }) : t[e] = r, o = (t, e) => {
6
6
  for (var r in e || (e = {}))
7
- it.call(e, r) && $(t, r, e[r]);
8
- if (j)
9
- for (var r of j(e))
10
- at.call(e, r) && $(t, r, e[r]);
7
+ it.call(e, r) && j(t, r, e[r]);
8
+ if (W)
9
+ for (var r of W(e))
10
+ at.call(e, r) && j(t, r, e[r]);
11
11
  return t;
12
12
  }, u = (t, e) => et(t, rt(e));
13
- import { dW as N, w as st, e0 as nt, ap as ot, e1 as lt, e2 as dt, m as C, T as S, e3 as ct, aP as _, dI as ut, e4 as O, dY as z, ay as pt, b0 as mt, a$ as gt, aG as M, ao as yt, n as I, e5 as ft, a8 as ht, bI as L, e6 as St } from "./derive-chart-family-woVAnbRi.js";
13
+ import { dV as N, w as st, d$ as nt, ap as ot, e0 as lt, e1 as dt, m as C, T as S, e2 as ct, aP as _, dH as ut, e3 as O, dX as z, ay as pt, b0 as mt, a$ as gt, aG as M, ao as yt, n as I, e4 as ft, a8 as ht, bI as L, e5 as St } from "./derive-chart-family-ci86jmVk.js";
14
14
  class J extends N {
15
15
  constructor(e, r) {
16
16
  var i;
@@ -39,7 +39,7 @@ function Tt(t) {
39
39
  var e;
40
40
  return new J(t, (e = Ot[t.jaql.datatype]) !== null && e !== void 0 ? e : "numeric");
41
41
  }
42
- function Y(t) {
42
+ function K(t) {
43
43
  const { jaql: e } = t;
44
44
  if (e.formula)
45
45
  return nt(e);
@@ -63,7 +63,7 @@ function Y(t) {
63
63
  dataSource: e.datasource
64
64
  }) : Tt(t);
65
65
  }
66
- const ie = {
66
+ const ae = {
67
67
  jaql: {
68
68
  datasource: {
69
69
  title: "",
@@ -73,23 +73,23 @@ const ie = {
73
73
  },
74
74
  queryTitle: "",
75
75
  chartRecommendations: {}
76
- }, ae = {
76
+ }, se = {
77
77
  model: "",
78
78
  metadata: [],
79
79
  chart: {},
80
80
  queryTitle: ""
81
- }, se = (t) => "widgetProps" in t, bt = (t) => "dashboardOid" in t && "widgetOid" in t, ne = (t) => "dashboardProps" in t, oe = (t) => "dashboardOid" in t;
81
+ }, ne = (t) => "widgetProps" in t, bt = (t) => "dashboardOid" in t && "widgetOid" in t, oe = (t) => "dashboardProps" in t, le = (t) => "dashboardOid" in t;
82
82
  function vt(t) {
83
83
  return t.replace(/\s+/g, "-").replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase();
84
84
  }
85
- function le(t) {
85
+ function de(t) {
86
86
  return t.charAt(0).toUpperCase() + t.slice(1);
87
87
  }
88
- function de(t) {
88
+ function ce(t) {
89
89
  const e = /\[(.+?)\s\(Calendar\)\]/;
90
90
  return t.replace(e, "[$1]").trim();
91
91
  }
92
- function ce(t) {
92
+ function ue(t) {
93
93
  if (t)
94
94
  if (t.metadata) {
95
95
  if (!t.model)
@@ -141,7 +141,18 @@ function Dt(t) {
141
141
  return e.join(`
142
142
  `);
143
143
  }
144
- const wt = {
144
+ function wt(t) {
145
+ const e = (i) => /^[$A-Z_][0-9A-Z_$]*$/i.test(i);
146
+ if ("composeCode" in t)
147
+ return t;
148
+ const r = {};
149
+ for (const [i, a] of Object.entries(t)) {
150
+ const s = e(i) ? i : `"${i}"`;
151
+ r[s] = a;
152
+ }
153
+ return r;
154
+ }
155
+ const Ct = {
145
156
  react: {
146
157
  baseChartTmpl: `import { {{componentString}} } from '@sisense/sdk-ui';
147
158
  {{extraImportsString}}
@@ -600,10 +611,10 @@ import { DashboardById } from '@sisense/sdk-ui-vue';
600
611
  </template>`,
601
612
  dashboardTmpl: "/** COMING SOON */"
602
613
  }
603
- }, K = (t, e) => wt[e][t].replace(/{{(.*?)Tmpl}}/g, (i, a) => K(`${a}Tmpl`, e)), Ct = (t, e) => t.replace(/{{(.*?)}}/g, (r, i) => i in e ? e[i] : (console.warn(`Placeholder ${i} not found in data`), r)), q = (t, e, r = "react") => {
604
- const i = K(t, r);
605
- return Dt(Ct(i, e));
606
- }, It = () => Object.values(ut).map((e) => _.aggregationToJAQL(e)).join("|"), V = (t) => {
614
+ }, Y = (t, e) => Ct[e][t].replace(/{{(.*?)Tmpl}}/g, (i, a) => Y(`${a}Tmpl`, e)), It = (t, e) => t.replace(/{{(.*?)}}/g, (r, i) => i in e ? e[i] : (console.warn(`Placeholder ${i} not found in data`), r)), q = (t, e, r = "react") => {
615
+ const i = Y(t, r);
616
+ return Dt(It(i, e));
617
+ }, Mt = () => Object.values(ut).map((e) => _.aggregationToJAQL(e)).join("|"), V = (t) => {
607
618
  const { formula: e, context: r, filter: i } = t;
608
619
  if (!r || !e)
609
620
  return t;
@@ -613,7 +624,7 @@ import { DashboardById } from '@sisense/sdk-ui-vue';
613
624
  const s = a[0];
614
625
  if (typeof s != "string")
615
626
  return t;
616
- const n = r[`${s}`], m = It(), l = new RegExp(`^\\s*(${m})\\(\\[\\w+\\]\\)$`), y = e.match(l);
627
+ const n = r[`${s}`], m = Mt(), l = new RegExp(`^\\s*(${m})\\(\\[\\w+\\]\\)$`), y = e.match(l);
617
628
  if (y && e.includes(s)) {
618
629
  const d = y[1];
619
630
  return o({
@@ -637,7 +648,7 @@ import { DashboardById } from '@sisense/sdk-ui-vue';
637
648
  }), e.context = r;
638
649
  }
639
650
  return e;
640
- }, Mt = (t) => {
651
+ }, qt = (t) => {
641
652
  var i;
642
653
  const e = t;
643
654
  if (e.panel !== "scope")
@@ -646,9 +657,9 @@ import { DashboardById } from '@sisense/sdk-ui-vue';
646
657
  return (i = r.filter) != null && i.by && (r.filter.by = V(r.filter.by)), u(o({}, e), {
647
658
  jaql: r
648
659
  });
649
- }, qt = (t) => {
660
+ }, $t = (t) => {
650
661
  let e = t;
651
- e = Mt(e);
662
+ e = qt(e);
652
663
  const { jaql: r, measure: i, by: a } = e;
653
664
  return o(o(u(o({}, e), {
654
665
  jaql: D(r)
@@ -658,14 +669,14 @@ import { DashboardById } from '@sisense/sdk-ui-vue';
658
669
  measure: D(i)
659
670
  } : {});
660
671
  }, w = 6, E = `
661
- `, W = "UNKNOWN", Wt = (t, e) => {
672
+ `, $ = "UNKNOWN", Wt = (t, e) => {
662
673
  let r = "";
663
674
  return r += `measureFactory.customFormula(
664
675
  `, r += " ".repeat(e), r += ` '${O(t.title)}',
665
676
  `, r += " ".repeat(e), r += ` '${t.formula}',
666
677
  `, r += " ".repeat(e), r += ` {
667
678
  `, Object.entries(t.context).forEach(([i, a]) => {
668
- const s = z(a.table || W, a.column || W, void 0, "DM");
679
+ const s = z(a.table || $, a.column || $, void 0, "DM");
669
680
  r += " ".repeat(e), r += ` '${i.slice(1, -1)}': ${s},
670
681
  `;
671
682
  }), r += " ".repeat(e), r += ` }
@@ -673,8 +684,8 @@ import { DashboardById } from '@sisense/sdk-ui-vue';
673
684
  }, jt = (t) => {
674
685
  const { level: e, table: r, column: i, agg: a, title: s } = t;
675
686
  let n;
676
- return r && i && (n = z(r, i, e, "DM")), a && r && i && s && (n = `measureFactory.${_.aggregationFromJAQL(a)}(${n}, '${O(s)}')`), n || W;
677
- }, $t = (t, e) => {
687
+ return r && i && (n = z(r, i, e, "DM")), a && r && i && s && (n = `measureFactory.${_.aggregationFromJAQL(a)}(${n}, '${O(s)}')`), n || $;
688
+ }, Lt = (t, e) => {
678
689
  const r = t.jaql(!1).jaql;
679
690
  return "formula" in r ? Wt(r, e) : jt(r);
680
691
  }, p = (t, e = 0, r = !1) => {
@@ -683,33 +694,40 @@ import { DashboardById } from '@sisense/sdk-ui-vue';
683
694
  if (typeof t == "string")
684
695
  return `'${O(t)}'`;
685
696
  if (t instanceof J)
686
- return $t(t, e);
697
+ return Lt(t, e);
687
698
  if (t instanceof N)
688
699
  return t.composeCode || "";
689
700
  let i = "";
690
701
  return Array.isArray(t) ? i += `[${t.map((a) => p(a, e + 2))}${t.length ? E + " ".repeat(e + 2) : ""}]` : (i += `{${E}`, Object.entries(t).forEach(([a, s]) => {
691
- r && typeof a == "string" && (a = `'${O(a)}'`), i += " ".repeat(e + 2), Array.isArray(s) ? i += `${a}: [${s.map((n) => p(n, e + 4, r))}${s.length ? E + " ".repeat(e + 2) : ""}]` : typeof s == "object" && s !== null ? i += `${a}: ${p(s, e + 2, r)}` : [
692
- "number",
693
- "boolean",
694
- "undefined"
695
- ].includes(typeof s) || s === null ? i += `${a}: ${s}` : typeof s == "string" ? i += `${a}: '${O(s)}'` : i += `${a}: ${s}`, i += `,${E}`;
702
+ if (r && typeof a == "string" && (a = `'${O(a)}'`), i += " ".repeat(e + 2), Array.isArray(s))
703
+ i += `${a}: [${s.map((n) => p(n, e + 4, r))}${s.length ? E + " ".repeat(e + 2) : ""}]`;
704
+ else if (typeof s == "object" && s !== null) {
705
+ const n = Array.isArray(s) ? s : wt(s);
706
+ i += `${a}: ${p(n, e + 2, r)}`;
707
+ } else
708
+ [
709
+ "number",
710
+ "boolean",
711
+ "undefined"
712
+ ].includes(typeof s) || s === null ? i += `${a}: ${s}` : typeof s == "string" ? i += `${a}: '${O(s)}'` : i += `${a}: ${s}`;
713
+ i += `,${E}`;
696
714
  }), i += " ".repeat(e), i += "}"), i;
697
715
  };
698
- function Lt(t) {
716
+ function Pt(t) {
699
717
  return p(t, w);
700
718
  }
701
- function Q(t, e = "data-source-placeholder") {
719
+ function A(t, e = "data-source-placeholder") {
702
720
  if (!t)
703
721
  return e;
704
722
  const r = typeof t == "object" && "title" in t ? t.title : t;
705
723
  return vt(r);
706
724
  }
707
- function A(t, e = !0) {
725
+ function Q(t, e = !0) {
708
726
  const r = [];
709
727
  return e && r.push("measureFactory"), c(t) && r.push("filterFactory"), r.length > 0 ? `import { ${r.join(", ")} } from '@sisense/sdk-data';` : "";
710
728
  }
711
729
  const k = `
712
- `, Pt = (t, e) => {
730
+ `, At = (t, e) => {
713
731
  if (t.composeCode)
714
732
  return `${k}${" ".repeat(e)}${t.composeCode}`;
715
733
  const r = t.jaql().jaql;
@@ -718,31 +736,31 @@ const k = `
718
736
  if (!t)
719
737
  return "";
720
738
  let r = "";
721
- return r += `[${t.map((i) => Pt(i, e + 2))}${t.length ? `
739
+ return r += `[${t.map((i) => At(i, e + 2))}${t.length ? `
722
740
  ` + " ".repeat(e + 2) : ""}]`, r;
723
- }, B = (t) => t ? Array.isArray(t) ? Qt(t, 6) : "/** Filter relations not supported yet */" : "[]", At = [
741
+ }, B = (t) => t ? Array.isArray(t) ? Qt(t, 6) : "/** Filter relations not supported yet */" : "[]", kt = [
724
742
  "executeQueryByWidgetIdTmpl",
725
743
  "widgetByIdTmpl"
726
- ], kt = "chartWidgetTmpl", Bt = "pivotTableWidgetTmpl", Rt = (t) => t, Ft = ({ dashboardOid: t, widgetOid: e, uiFramework: r = "react", chartType: i = "table", includeChart: a = !0 }) => {
744
+ ], Bt = "chartWidgetTmpl", Rt = "pivotTableWidgetTmpl", Ft = (t) => t, Nt = ({ dashboardOid: t, widgetOid: e, uiFramework: r = "react", chartType: i = "table", includeChart: a = !0 }) => {
727
745
  U(i);
728
746
  const s = {
729
747
  dashboardOid: t,
730
748
  widgetOid: e
731
- }, n = At[Number(a)];
749
+ }, n = kt[Number(a)];
732
750
  return q(n, s, r);
733
- }, Nt = (t, e, r) => {
751
+ }, _t = (t, e, r) => {
734
752
  if (pt(t)) {
735
753
  U(t.chartType);
736
754
  const i = P(t), a = {
737
755
  idString: t.id,
738
756
  widgetTypeString: "chart",
739
757
  titleString: t.title,
740
- dataSourceString: Q(t.dataSource),
741
- chartTypeString: Rt(t.chartType),
742
- dataOptionsString: Lt(t.dataOptions),
758
+ dataSourceString: A(t.dataSource),
759
+ chartTypeString: Ft(t.chartType),
760
+ dataOptionsString: Pt(t.dataOptions),
743
761
  filtersString: B(t.filters),
744
762
  componentString: "ChartWidget",
745
- extraImportsString: A(t.filters || [], i),
763
+ extraImportsString: Q(t.filters || [], i),
746
764
  styleOptionsString: p(t.styleOptions || {}, w),
747
765
  drilldownOptionsString: p(t.drilldownOptions || {}, w)
748
766
  };
@@ -753,11 +771,11 @@ const k = `
753
771
  idString: t.id,
754
772
  widgetTypeString: "pivot",
755
773
  titleString: t.title,
756
- dataSourceString: Q(t.dataSource),
774
+ dataSourceString: A(t.dataSource),
757
775
  dataOptionsString: p(t.dataOptions),
758
776
  filtersString: B(t.filters),
759
777
  componentString: "PivotTableWidget",
760
- extraImportsString: A(t.filters || [], i),
778
+ extraImportsString: Q(t.filters || [], i),
761
779
  styleOptionsString: p(t.styleOptions || {}, w)
762
780
  };
763
781
  return q(r.pivot, a, e);
@@ -765,18 +783,18 @@ const k = `
765
783
  if (gt(t))
766
784
  return "/** Custom widget code not supported yet */";
767
785
  throw new S("errors.otherWidgetTypesNotSupported");
768
- }, _t = ({ widgetProps: t, uiFramework: e = "react" }) => Nt(t, e, {
769
- chart: kt,
770
- pivot: Bt
771
- }), ue = (t) => "chartType" in t.chartRecommendations ? t.chartRecommendations : {
786
+ }, zt = ({ widgetProps: t, uiFramework: e = "react" }) => _t(t, e, {
787
+ chart: Bt,
788
+ pivot: Rt
789
+ }), pe = (t) => "chartType" in t.chartRecommendations ? t.chartRecommendations : {
772
790
  chartType: "table",
773
791
  chartFamily: "table",
774
792
  axesMapping: {}
775
- }, zt = (t) => ({
793
+ }, Jt = (t) => ({
776
794
  dataOptions: {
777
- columns: t.map(Y)
795
+ columns: t.map(K)
778
796
  }
779
- }), Jt = Object.freeze({
797
+ }), Kt = Object.freeze({
780
798
  convolution: {
781
799
  enabled: !0,
782
800
  selectedConvolutionType: "bySlicesCount",
@@ -802,7 +820,7 @@ const k = `
802
820
  pie: "pie/donut",
803
821
  bar: "bar/stacked",
804
822
  column: "column/stackedcolumn"
805
- }), Yt = (t, e, r) => {
823
+ }), Ut = (t, e, r) => {
806
824
  const i = t.reduce((s, n) => (s[n.jaql.title] = n, s), {}), a = Object.entries(r).reduce((s, n) => {
807
825
  const [m, l] = n;
808
826
  return s[`${m}`] = Array.isArray(l) ? l.map((y) => {
@@ -817,7 +835,7 @@ const k = `
817
835
  name: d.column.name
818
836
  }
819
837
  };
820
- const f = Y(g);
838
+ const f = K(g);
821
839
  if (g.panel === "measures")
822
840
  return u(o({}, d), {
823
841
  column: f
@@ -856,7 +874,7 @@ const k = `
856
874
  s !== "geo" && (a[`${s}`] = a[`${s}`][0]);
857
875
  }), a;
858
876
  case "table":
859
- return Object.keys(a).length === 0 ? zt(t).dataOptions : a;
877
+ return Object.keys(a).length === 0 ? Jt(t).dataOptions : a;
860
878
  case "boxplot":
861
879
  case "areamap":
862
880
  case "indicator":
@@ -866,9 +884,9 @@ const k = `
866
884
  }, F = (t, e) => {
867
885
  var r, i, a, s;
868
886
  return e === "x" ? (i = (r = t.category) != null ? r : t.x) == null ? void 0 : i.map((n) => M(n).column.name).join(", ") : (s = (a = t.value) != null ? a : t.y) == null ? void 0 : s.map((n) => M(n).column.name).join(", ");
869
- }, Ut = (t, e, r, i) => {
887
+ }, Yt = (t, e, r, i) => {
870
888
  let a;
871
- return i && t in R ? a = I(I(Jt, {
889
+ return i && t in R ? a = I(I(Kt, {
872
890
  subtype: R[`${t}`]
873
891
  }), {
874
892
  legend: {
@@ -888,17 +906,17 @@ const k = `
888
906
  }
889
907
  }
890
908
  }, r) : a = I(ft(), r), a;
891
- }, Kt = (t, e, r = !0) => {
892
- const { chartFamily: i, chartType: a, axesMapping: s = {}, styleOptions: n = {} } = e, m = Yt(t, i, s), l = Ut(a, s, n, r);
909
+ }, Vt = (t, e, r = !0) => {
910
+ const { chartFamily: i, chartType: a, axesMapping: s = {}, styleOptions: n = {} } = e, m = Ut(t, i, s), l = Yt(a, s, n, r);
893
911
  return {
894
912
  dataOptions: m,
895
913
  chartStyleOptions: l
896
914
  };
897
- }, Vt = (t) => "chartType" in t ? t : {
915
+ }, Ht = (t) => "chartType" in t ? t : {
898
916
  chartType: "table",
899
917
  chartFamily: "table",
900
918
  axesMapping: {}
901
- }, Gt = (t) => t.map((e) => ht(e.jaql)), Ht = (t) => t.reduce((e, r) => {
919
+ }, Gt = (t) => t.map((e) => ht(e.jaql)), Zt = (t) => t.reduce((e, r) => {
902
920
  if ((r.panel === "scope" || r.jaql.filter) && e.metadataFilters.push(L(r)), r.panel !== "scope") {
903
921
  const i = L(r);
904
922
  delete i.jaql.filter, e.metadataColumns.push(i);
@@ -912,61 +930,61 @@ const k = `
912
930
  try {
913
931
  const { useCustomizedStyleOptions: r = !1 } = e || {}, { jaql: i, chartRecommendations: a, queryTitle: s } = t, { metadata: n, datasource: m } = i, l = u(o({}, m), {
914
932
  type: m.type || "elasticube"
915
- }), y = St(l), d = n.map((x) => qt(x)).map((x) => u(o({}, x), {
933
+ }), y = St(l), d = n.map((x) => $t(x)).map((x) => u(o({}, x), {
916
934
  jaql: u(o({}, x.jaql), {
917
935
  datasource: y
918
936
  })
919
- })), g = Vt(a), f = g.chartType.toLowerCase(), T = {
937
+ })), g = Ht(a), f = g.chartType.toLowerCase(), T = {
920
938
  cornerRadius: "Small",
921
939
  header: {
922
940
  // remove info button and render empty toolbar instead
923
941
  renderToolbar: () => null
924
942
  }
925
- }, { metadataColumns: b, metadataFilters: v } = Ht(d), G = Gt(v), { dataOptions: H, chartStyleOptions: X } = Kt(b, g, r), Z = o(o({}, X), T);
943
+ }, { metadataColumns: b, metadataFilters: v } = Zt(d), H = Gt(v), { dataOptions: G, chartStyleOptions: Z } = Vt(b, g, r), X = o(o({}, Z), T);
926
944
  return {
927
945
  widgetType: "chart",
928
946
  id: s,
929
947
  title: s,
930
948
  chartType: f,
931
949
  dataSource: l,
932
- dataOptions: H,
933
- filters: G,
934
- styleOptions: Z
950
+ dataOptions: G,
951
+ filters: H,
952
+ styleOptions: X
935
953
  };
936
954
  } catch (r) {
937
955
  console.error(r);
938
956
  return;
939
957
  }
940
- }, Zt = (t, e) => Xt(t, e), te = (t) => bt(t) ? Ft(t) : _t(t), pe = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
958
+ }, te = (t, e) => Xt(t, e), ee = (t) => bt(t) ? Nt(t) : zt(t), me = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
941
959
  __proto__: null,
942
- toWidgetCode: te,
943
- toWidgetProps: Zt
960
+ toWidgetCode: ee,
961
+ toWidgetProps: te
944
962
  }, Symbol.toStringTag, { value: "Module" }));
945
963
  export {
946
964
  w as C,
947
- ae as E,
965
+ se as E,
948
966
  J,
949
967
  q as a,
950
968
  P as b,
951
- le as c,
952
- Q as d,
969
+ de as c,
970
+ A as d,
953
971
  B as e,
954
- A as f,
955
- Nt as g,
972
+ Q as f,
973
+ _t as g,
956
974
  p as h,
957
- oe as i,
958
- ie as j,
959
- se as k,
975
+ le as i,
976
+ ae as j,
977
+ ne as k,
960
978
  bt as l,
961
- ne as m,
962
- qt as n,
963
- ue as o,
964
- Ct as p,
965
- Yt as q,
966
- Ut as r,
967
- de as s,
968
- Zt as t,
969
- Kt as u,
970
- ce as v,
971
- pe as w
979
+ oe as m,
980
+ $t as n,
981
+ pe as o,
982
+ It as p,
983
+ Ut as q,
984
+ Yt as r,
985
+ ce as s,
986
+ te as t,
987
+ Vt as u,
988
+ ue as v,
989
+ me as w
972
990
  };
@@ -1,6 +1,6 @@
1
- "use strict";var tt=Object.defineProperty,et=Object.defineProperties;var rt=Object.getOwnPropertyDescriptors;var j=Object.getOwnPropertySymbols;var it=Object.prototype.hasOwnProperty,at=Object.prototype.propertyIsEnumerable;var $=(t,e,r)=>e in t?tt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,l=(t,e)=>{for(var r in e||(e={}))it.call(e,r)&&$(t,r,e[r]);if(j)for(var r of j(e))at.call(e,r)&&$(t,r,e[r]);return t},m=(t,e)=>et(t,rt(e));const n=require("./derive-chart-family-Cqw-HJq1.cjs");class P extends n.DimensionalElement{constructor(e,r){var i;super((i=e.jaql.title)!==null&&i!==void 0?i:"",r),this.expression=e.jaql.dim||e.jaql.formula,this.metadataItem=e,e.jaql.agg?this.aggregation=e.jaql.agg:delete this.aggregation,e.jaql.formula?this.formula=e.jaql.formula:delete this.formula,e.jaql.sort?this.sortType=n.getSortType(e.jaql.sort):delete this.sortType,this.skipValidation=!0}get id(){return this.expression}jaql(e){return e===!0?this.metadataItem.jaql:this.metadataItem}serialize(){const e=super.serialize();return e.__serializable="JaqlElement",e.metadataItem=this.metadataItem,e.type=this.type,e}}const st={text:n.MetadataTypes.TextAttribute,numeric:n.MetadataTypes.NumericAttribute,datetime:n.MetadataTypes.DateLevel};function nt(t){var e;return new P(t,(e=st[t.jaql.datatype])!==null&&e!==void 0?e:"numeric")}function B(t){const{jaql:e}=t;if(e.formula)return n.createCalculatedMeasureHelper(e);const r=n.DimensionalLevelAttribute.translateJaqlToGranularity(e);return"agg"in e&&e.dim&&e.datatype?n.createMeasureHelper({expression:e.dim,dataType:e.datatype,agg:e.agg||"",granularity:r,format:void 0,sort:e.sort,title:e.title,dataSource:e.datasource}):e.dim&&e.datatype?n.createAttributeHelper({expression:e.dim,dataType:e.datatype,granularity:r,sort:e.sort,title:e.title,panel:t.panel,dataSource:e.datasource}):nt(t)}const ot={jaql:{datasource:{title:"",type:"elasticube"},metadata:[]},queryTitle:"",chartRecommendations:{}},lt={model:"",metadata:[],chart:{},queryTitle:""},dt=t=>"widgetProps"in t,R=t=>"dashboardOid"in t&&"widgetOid"in t,ct=t=>"dashboardProps"in t,ut=t=>"dashboardOid"in t;function pt(t){return t.replace(/\s+/g,"-").replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}function mt(t){return t.charAt(0).toUpperCase()+t.slice(1)}function gt(t){const e=/\[(.+?)\s\(Calendar\)\]/;return t.replace(e,"[$1]").trim()}function yt(t){if(t)if(t.metadata){if(!t.model)throw new n.TranslatableError("errors.missingModelTitle")}else throw new n.TranslatableError("errors.missingMetadata");else throw new n.TranslatableError("errors.emptyModel");return t}function ft(t){return!t||!t.jaql.datasource.title||!t.jaql.metadata.length}function k(t){if(![...n.ALL_CHART_TYPES,"pivot","pivot2"].includes(t))throw new n.TranslatableError("errors.chartTypeNotSupported",{chartType:t})}function ht(t){return"widgetType"in t&&t.widgetType==="pivot"}function S(t){var e;return"column"in t&&((e=t.column)==null?void 0:e.expression)&&/\(.*\)/.test(t.column.expression)}function w(t){const e="measures"in t&&u(t.measures)||"values"in t&&u(t.values);return ht(t)?"values"in t.dataOptions&&u(t.dataOptions.values):"chartType"in t?t.chartType==="indicator"?"value"in t.dataOptions&&u(t.dataOptions.value)||"secondary"in t.dataOptions&&u(t.dataOptions.secondary):t.chartType==="table"?!("columns"in t.dataOptions)||!u(t.dataOptions.columns)?!1:t.dataOptions.columns.some(i=>S(i)):t.chartType==="boxplot"?!1:t.chartType==="scatter"?"x"in t.dataOptions&&t.dataOptions.x!==void 0&&S(t.dataOptions.x)||"y"in t.dataOptions&&t.dataOptions.y!==void 0&&S(t.dataOptions.y)||"size"in t.dataOptions&&t.dataOptions.size!==void 0:t.chartType==="scattermap"?"colorBy"in t.dataOptions&&t.dataOptions.colorBy!==void 0&&S(t.dataOptions.colorBy)||"details"in t.dataOptions&&t.dataOptions.details!==void 0&&S(t.dataOptions.details)||"size"in t.dataOptions&&t.dataOptions.size!==void 0&&S(t.dataOptions.size):t.chartType==="areamap"?"geo"in t.dataOptions&&u(t.dataOptions.geo)&&"color"in t.dataOptions&&u(t.dataOptions.color):"value"in t.dataOptions&&u(t.dataOptions.value):e}function u(t){return Array.isArray(t)&&t.length>0}function St(t){const e=t.split(`
1
+ "use strict";var tt=Object.defineProperty,et=Object.defineProperties;var rt=Object.getOwnPropertyDescriptors;var $=Object.getOwnPropertySymbols;var it=Object.prototype.hasOwnProperty,at=Object.prototype.propertyIsEnumerable;var j=(t,e,r)=>e in t?tt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,l=(t,e)=>{for(var r in e||(e={}))it.call(e,r)&&j(t,r,e[r]);if($)for(var r of $(e))at.call(e,r)&&j(t,r,e[r]);return t},m=(t,e)=>et(t,rt(e));const n=require("./derive-chart-family-Cjjn5U5S.cjs");class P extends n.DimensionalElement{constructor(e,r){var i;super((i=e.jaql.title)!==null&&i!==void 0?i:"",r),this.expression=e.jaql.dim||e.jaql.formula,this.metadataItem=e,e.jaql.agg?this.aggregation=e.jaql.agg:delete this.aggregation,e.jaql.formula?this.formula=e.jaql.formula:delete this.formula,e.jaql.sort?this.sortType=n.getSortType(e.jaql.sort):delete this.sortType,this.skipValidation=!0}get id(){return this.expression}jaql(e){return e===!0?this.metadataItem.jaql:this.metadataItem}serialize(){const e=super.serialize();return e.__serializable="JaqlElement",e.metadataItem=this.metadataItem,e.type=this.type,e}}const st={text:n.MetadataTypes.TextAttribute,numeric:n.MetadataTypes.NumericAttribute,datetime:n.MetadataTypes.DateLevel};function nt(t){var e;return new P(t,(e=st[t.jaql.datatype])!==null&&e!==void 0?e:"numeric")}function B(t){const{jaql:e}=t;if(e.formula)return n.createCalculatedMeasureHelper(e);const r=n.DimensionalLevelAttribute.translateJaqlToGranularity(e);return"agg"in e&&e.dim&&e.datatype?n.createMeasureHelper({expression:e.dim,dataType:e.datatype,agg:e.agg||"",granularity:r,format:void 0,sort:e.sort,title:e.title,dataSource:e.datasource}):e.dim&&e.datatype?n.createAttributeHelper({expression:e.dim,dataType:e.datatype,granularity:r,sort:e.sort,title:e.title,panel:t.panel,dataSource:e.datasource}):nt(t)}const ot={jaql:{datasource:{title:"",type:"elasticube"},metadata:[]},queryTitle:"",chartRecommendations:{}},lt={model:"",metadata:[],chart:{},queryTitle:""},dt=t=>"widgetProps"in t,R=t=>"dashboardOid"in t&&"widgetOid"in t,ct=t=>"dashboardProps"in t,ut=t=>"dashboardOid"in t;function pt(t){return t.replace(/\s+/g,"-").replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}function mt(t){return t.charAt(0).toUpperCase()+t.slice(1)}function gt(t){const e=/\[(.+?)\s\(Calendar\)\]/;return t.replace(e,"[$1]").trim()}function yt(t){if(t)if(t.metadata){if(!t.model)throw new n.TranslatableError("errors.missingModelTitle")}else throw new n.TranslatableError("errors.missingMetadata");else throw new n.TranslatableError("errors.emptyModel");return t}function ft(t){return!t||!t.jaql.datasource.title||!t.jaql.metadata.length}function _(t){if(![...n.ALL_CHART_TYPES,"pivot","pivot2"].includes(t))throw new n.TranslatableError("errors.chartTypeNotSupported",{chartType:t})}function ht(t){return"widgetType"in t&&t.widgetType==="pivot"}function S(t){var e;return"column"in t&&((e=t.column)==null?void 0:e.expression)&&/\(.*\)/.test(t.column.expression)}function w(t){const e="measures"in t&&u(t.measures)||"values"in t&&u(t.values);return ht(t)?"values"in t.dataOptions&&u(t.dataOptions.values):"chartType"in t?t.chartType==="indicator"?"value"in t.dataOptions&&u(t.dataOptions.value)||"secondary"in t.dataOptions&&u(t.dataOptions.secondary):t.chartType==="table"?!("columns"in t.dataOptions)||!u(t.dataOptions.columns)?!1:t.dataOptions.columns.some(i=>S(i)):t.chartType==="boxplot"?!1:t.chartType==="scatter"?"x"in t.dataOptions&&t.dataOptions.x!==void 0&&S(t.dataOptions.x)||"y"in t.dataOptions&&t.dataOptions.y!==void 0&&S(t.dataOptions.y)||"size"in t.dataOptions&&t.dataOptions.size!==void 0:t.chartType==="scattermap"?"colorBy"in t.dataOptions&&t.dataOptions.colorBy!==void 0&&S(t.dataOptions.colorBy)||"details"in t.dataOptions&&t.dataOptions.details!==void 0&&S(t.dataOptions.details)||"size"in t.dataOptions&&t.dataOptions.size!==void 0&&S(t.dataOptions.size):t.chartType==="areamap"?"geo"in t.dataOptions&&u(t.dataOptions.geo)&&"color"in t.dataOptions&&u(t.dataOptions.color):"value"in t.dataOptions&&u(t.dataOptions.value):e}function u(t){return Array.isArray(t)&&t.length>0}function St(t){const e=t.split(`
2
2
  `);for(let r=0;r<e.length-1;r++)if(e[r].trim()===""){const i=e[r+1].trim();if(i.startsWith("import *")||i.startsWith("import {")){e.splice(r,1);break}}return e.join(`
3
- `)}const Ot={react:{baseChartTmpl:`import { {{componentString}} } from '@sisense/sdk-ui';
3
+ `)}function Ot(t){const e=i=>/^[$A-Z_][0-9A-Z_$]*$/i.test(i);if("composeCode"in t)return t;const r={};for(const[i,a]of Object.entries(t)){const s=e(i)?i:`"${i}"`;r[s]=a}return r}const Tt={react:{baseChartTmpl:`import { {{componentString}} } from '@sisense/sdk-ui';
4
4
  {{extraImportsString}}
5
5
  import * as DM from './{{dataSourceString}}'; // generated with @sisense/sdk-cli
6
6
 
@@ -416,13 +416,13 @@ import { DashboardById } from '@sisense/sdk-ui-vue';
416
416
  <\/script>
417
417
  <template>
418
418
  <DashboardById :dashboardOid="'{{dashboardOid}}'" />
419
- </template>`,dashboardTmpl:"/** COMING SOON */"}},F=(t,e)=>Ot[e][t].replace(/{{(.*?)Tmpl}}/g,(i,a)=>F(`${a}Tmpl`,e)),_=(t,e)=>t.replace(/{{(.*?)}}/g,(r,i)=>i in e?e[i]:(console.warn(`Placeholder ${i} not found in data`),r)),C=(t,e,r="react")=>{const i=F(t,r);return St(_(i,e))},Tt=()=>Object.values(n.AggregationTypes).map(e=>n.DimensionalBaseMeasure.aggregationToJAQL(e)).join("|"),N=t=>{const{formula:e,context:r,filter:i}=t;if(!r||!e)return t;const a=Object.keys(r);if(a.length!==1)return t;const s=a[0];if(typeof s!="string")return t;const o=r[`${s}`],g=Tt(),d=new RegExp(`^\\s*(${g})\\(\\[\\w+\\]\\)$`),f=e.match(d);if(f&&e.includes(s)){const c=f[1];return l({dim:o.dim,table:o.table,column:o.column,datatype:o.datatype,agg:c,title:t.title},i?{filter:l({},i)}:{})}return t},D=t=>{let e=t;if("formula"in t&&(e=N(t)),"context"in e){const r=l({},e.context);Object.keys(r).forEach(i=>{r[`${i}`]=D(r[`${i}`])}),e.context=r}return e},bt=t=>{var i;const e=t;if(e.panel!=="scope")return e;const{jaql:r}=e;return(i=r.filter)!=null&&i.by&&(r.filter.by=N(r.filter.by)),m(l({},e),{jaql:r})},z=t=>{let e=t;e=bt(e);const{jaql:r,measure:i,by:a}=e;return l(l(m(l({},e),{jaql:D(r)}),a?{by:D(a)}:{}),i?{measure:D(i)}:{})},O=6,x=`
420
- `,M="UNKNOWN",vt=(t,e)=>{let r="";return r+=`measureFactory.customFormula(
419
+ </template>`,dashboardTmpl:"/** COMING SOON */"}},k=(t,e)=>Tt[e][t].replace(/{{(.*?)Tmpl}}/g,(i,a)=>k(`${a}Tmpl`,e)),F=(t,e)=>t.replace(/{{(.*?)}}/g,(r,i)=>i in e?e[i]:(console.warn(`Placeholder ${i} not found in data`),r)),C=(t,e,r="react")=>{const i=k(t,r);return St(F(i,e))},bt=()=>Object.values(n.AggregationTypes).map(e=>n.DimensionalBaseMeasure.aggregationToJAQL(e)).join("|"),N=t=>{const{formula:e,context:r,filter:i}=t;if(!r||!e)return t;const a=Object.keys(r);if(a.length!==1)return t;const s=a[0];if(typeof s!="string")return t;const o=r[`${s}`],g=bt(),d=new RegExp(`^\\s*(${g})\\(\\[\\w+\\]\\)$`),f=e.match(d);if(f&&e.includes(s)){const c=f[1];return l({dim:o.dim,table:o.table,column:o.column,datatype:o.datatype,agg:c,title:t.title},i?{filter:l({},i)}:{})}return t},D=t=>{let e=t;if("formula"in t&&(e=N(t)),"context"in e){const r=l({},e.context);Object.keys(r).forEach(i=>{r[`${i}`]=D(r[`${i}`])}),e.context=r}return e},vt=t=>{var i;const e=t;if(e.panel!=="scope")return e;const{jaql:r}=e;return(i=r.filter)!=null&&i.by&&(r.filter.by=N(r.filter.by)),m(l({},e),{jaql:r})},z=t=>{let e=t;e=vt(e);const{jaql:r,measure:i,by:a}=e;return l(l(m(l({},e),{jaql:D(r)}),a?{by:D(a)}:{}),i?{measure:D(i)}:{})},O=6,x=`
420
+ `,M="UNKNOWN",Et=(t,e)=>{let r="";return r+=`measureFactory.customFormula(
421
421
  `,r+=" ".repeat(e),r+=` '${n.escapeSingleQuotes(t.title)}',
422
422
  `,r+=" ".repeat(e),r+=` '${t.formula}',
423
423
  `,r+=" ".repeat(e),r+=` {
424
424
  `,Object.entries(t.context).forEach(([i,a])=>{const s=n.normalizeAttributeName(a.table||M,a.column||M,void 0,"DM");r+=" ".repeat(e),r+=` '${i.slice(1,-1)}': ${s},
425
425
  `}),r+=" ".repeat(e),r+=` }
426
- `,r+=" ".repeat(e),r+=")",r},Et=t=>{const{level:e,table:r,column:i,agg:a,title:s}=t;let o;return r&&i&&(o=n.normalizeAttributeName(r,i,e,"DM")),a&&r&&i&&s&&(o=`measureFactory.${n.DimensionalBaseMeasure.aggregationFromJAQL(a)}(${o}, '${n.escapeSingleQuotes(s)}')`),o||M},xt=(t,e)=>{const r=t.jaql(!1).jaql;return"formula"in r?vt(r,e):Et(r)},p=(t,e=0,r=!1)=>{if(!t)return"";if(typeof t=="string")return`'${n.escapeSingleQuotes(t)}'`;if(t instanceof P)return xt(t,e);if(t instanceof n.DimensionalElement)return t.composeCode||"";let i="";return Array.isArray(t)?i+=`[${t.map(a=>p(a,e+2))}${t.length?x+" ".repeat(e+2):""}]`:(i+=`{${x}`,Object.entries(t).forEach(([a,s])=>{r&&typeof a=="string"&&(a=`'${n.escapeSingleQuotes(a)}'`),i+=" ".repeat(e+2),Array.isArray(s)?i+=`${a}: [${s.map(o=>p(o,e+4,r))}${s.length?x+" ".repeat(e+2):""}]`:typeof s=="object"&&s!==null?i+=`${a}: ${p(s,e+2,r)}`:["number","boolean","undefined"].includes(typeof s)||s===null?i+=`${a}: ${s}`:typeof s=="string"?i+=`${a}: '${n.escapeSingleQuotes(s)}'`:i+=`${a}: ${s}`,i+=`,${x}`}),i+=" ".repeat(e),i+="}"),i};function Dt(t){return p(t,O)}function I(t,e="data-source-placeholder"){if(!t)return e;const r=typeof t=="object"&&"title"in t?t.title:t;return pt(r)}function W(t,e=!0){const r=[];return e&&r.push("measureFactory"),u(t)&&r.push("filterFactory"),r.length>0?`import { ${r.join(", ")} } from '@sisense/sdk-data';`:""}const L=`
427
- `,Ct=(t,e)=>{if(t.composeCode)return`${L}${" ".repeat(e)}${t.composeCode}`;const r=t.jaql().jaql;return`${L}${" ".repeat(e)}filterFactory.customFilter(${p(r,e,!0)})`},wt=(t,e=0)=>{if(!t)return"";let r="";return r+=`[${t.map(i=>Ct(i,e+2))}${t.length?`
428
- `+" ".repeat(e+2):""}]`,r},q=t=>t?Array.isArray(t)?wt(t,6):"/** Filter relations not supported yet */":"[]",Mt=["executeQueryByWidgetIdTmpl","widgetByIdTmpl"],It="chartWidgetTmpl",Wt="pivotTableWidgetTmpl",qt=t=>t,Pt=({dashboardOid:t,widgetOid:e,uiFramework:r="react",chartType:i="table",includeChart:a=!0})=>{k(i);const s={dashboardOid:t,widgetOid:e},o=Mt[Number(a)];return C(o,s,r)},Y=(t,e,r)=>{if(n.isChartWidgetProps(t)){k(t.chartType);const i=w(t),a={idString:t.id,widgetTypeString:"chart",titleString:t.title,dataSourceString:I(t.dataSource),chartTypeString:qt(t.chartType),dataOptionsString:Dt(t.dataOptions),filtersString:q(t.filters),componentString:"ChartWidget",extraImportsString:W(t.filters||[],i),styleOptionsString:p(t.styleOptions||{},O),drilldownOptionsString:p(t.drilldownOptions||{},O)};return C(r.chart,a,e)}if(n.isPivotTableWidgetProps(t)){const i=w(t),a={idString:t.id,widgetTypeString:"pivot",titleString:t.title,dataSourceString:I(t.dataSource),dataOptionsString:p(t.dataOptions),filtersString:q(t.filters),componentString:"PivotTableWidget",extraImportsString:W(t.filters||[],i),styleOptionsString:p(t.styleOptions||{},O)};return C(r.pivot,a,e)}if(n.isCustomWidgetProps(t))return"/** Custom widget code not supported yet */";throw new n.TranslatableError("errors.otherWidgetTypesNotSupported")},jt=({widgetProps:t,uiFramework:e="react"})=>Y(t,e,{chart:It,pivot:Wt}),$t=t=>"chartType"in t.chartRecommendations?t.chartRecommendations:{chartType:"table",chartFamily:"table",axesMapping:{}},Lt=t=>({dataOptions:{columns:t.map(B)}}),Qt=Object.freeze({convolution:{enabled:!0,selectedConvolutionType:"bySlicesCount",independentSlicesCount:7},lineWidth:{width:"bold"},markers:{enabled:!1},legend:{enabled:!1},yAxis:{gridLines:!1},xAxis:{gridLines:!1}}),Q=Object.freeze({line:"line/spline",pie:"pie/donut",bar:"bar/stacked",column:"column/stackedcolumn"}),J=(t,e,r)=>{const i=t.reduce((s,o)=>(s[o.jaql.title]=o,s),{}),a=Object.entries(r).reduce((s,o)=>{const[g,d]=o;return s[`${g}`]=Array.isArray(d)?d.map(f=>{var T,b;const c=n.normalizeAnyColumn(f);delete c.enabled;const y=i[c.column.name];if(!y)return{column:{type:"",name:c.column.name}};const h=B(y);if(y.panel==="measures")return m(l({},c),{column:h});if(n.isDatetime(h.type)){const v=(b=(T=y.format)==null?void 0:T.mask)==null?void 0:b[y.jaql.level];if(v)return m(l({},c),{column:h,dateFormat:v})}return m(l({},c),{column:h})}):d,s},{});switch(e){case"cartesian":return l({category:[],value:[],breakBy:[]},a);case"categorical":return l({category:[],value:[]},a);case"scatter":return Object.keys(a).forEach(s=>{a[`${s}`]=a[`${s}`][0]}),a;case"scattermap":return Object.keys(a).forEach(s=>{s!=="geo"&&(a[`${s}`]=a[`${s}`][0])}),a;case"table":return Object.keys(a).length===0?Lt(t).dataOptions:a;case"boxplot":case"areamap":case"indicator":default:return a}},A=(t,e)=>{var r,i,a,s;return e==="x"?(i=(r=t.category)!=null?r:t.x)==null?void 0:i.map(o=>n.normalizeAnyColumn(o).column.name).join(", "):(s=(a=t.value)!=null?a:t.y)==null?void 0:s.map(o=>n.normalizeAnyColumn(o).column.name).join(", ")},U=(t,e,r,i)=>{let a;return i&&t in Q?a=n.merge(n.merge(Qt,{subtype:Q[`${t}`]}),{legend:{enabled:!0,position:"right"},yAxis:{title:{enabled:!0,text:A(e,"y")}},xAxis:{title:{enabled:!0,text:A(e,"x")}}},r):a=n.merge(n.getDefaultStyleOptions(),r),a},K=(t,e,r=!0)=>{const{chartFamily:i,chartType:a,axesMapping:s={},styleOptions:o={}}=e,g=J(t,i,s),d=U(a,s,o,r);return{dataOptions:g,chartStyleOptions:d}},At=t=>"chartType"in t?t:{chartType:"table",chartFamily:"table",axesMapping:{}},Bt=t=>t.map(e=>n.createFilterFromJaql(e.jaql)),Rt=t=>t.reduce((e,r)=>{if((r.panel==="scope"||r.jaql.filter)&&e.metadataFilters.push(n.cloneDeep(r)),r.panel!=="scope"){const i=n.cloneDeep(r);delete i.jaql.filter,e.metadataColumns.push(i)}return e},{metadataColumns:[],metadataFilters:[]}),kt=(t,e)=>{if(!ft(t))try{const{useCustomizedStyleOptions:r=!1}=e||{},{jaql:i,chartRecommendations:a,queryTitle:s}=t,{metadata:o,datasource:g}=i,d=m(l({},g),{type:g.type||"elasticube"}),f=n.convertJaqlDataSourceForDto(d),c=o.map(E=>z(E)).map(E=>m(l({},E),{jaql:m(l({},E.jaql),{datasource:f})})),y=At(a),h=y.chartType.toLowerCase(),T={cornerRadius:"Small",header:{renderToolbar:()=>null}},{metadataColumns:b,metadataFilters:v}=Rt(c),H=Bt(v),{dataOptions:G,chartStyleOptions:X}=K(b,y,r),Z=l(l({},X),T);return{widgetType:"chart",id:s,title:s,chartType:h,dataSource:d,dataOptions:G,filters:H,styleOptions:Z}}catch(r){console.error(r);return}},V=(t,e)=>kt(t,e),Ft=t=>R(t)?Pt(t):jt(t),_t=Object.freeze(Object.defineProperty({__proto__:null,toWidgetCode:Ft,toWidgetProps:V},Symbol.toStringTag,{value:"Module"}));exports.CODE_TEMPLATES_INDENT=O;exports.EMPTY_EXPANDED_QUERY_MODEL=ot;exports.EMPTY_SIMPLE_QUERY_MODEL=lt;exports.JaqlElement=P;exports.capitalizeFirstLetter=mt;exports.checkIfMeasuresExist=w;exports.generateCode=C;exports.getChartDataOptions=J;exports.getChartOptions=K;exports.getChartRecommendationsOrDefault=$t;exports.getChartStyleOptions=U;exports.getWidgetCode=Y;exports.isByIdDashboardCodeParams=ut;exports.isByIdWidgetCodeParams=R;exports.isClientSideDashboardCodeParams=ct;exports.isClientSideWidgetCodeParams=dt;exports.populatePlaceholders=_;exports.sanitizeDimensionId=gt;exports.simplifyMetadataItem=z;exports.stringifyDataSource=I;exports.stringifyExtraImports=W;exports.stringifyFilters=q;exports.stringifyProps=p;exports.toWidgetProps=V;exports.validateQueryModel=yt;exports.widgetComposer=_t;
426
+ `,r+=" ".repeat(e),r+=")",r},xt=t=>{const{level:e,table:r,column:i,agg:a,title:s}=t;let o;return r&&i&&(o=n.normalizeAttributeName(r,i,e,"DM")),a&&r&&i&&s&&(o=`measureFactory.${n.DimensionalBaseMeasure.aggregationFromJAQL(a)}(${o}, '${n.escapeSingleQuotes(s)}')`),o||M},Dt=(t,e)=>{const r=t.jaql(!1).jaql;return"formula"in r?Et(r,e):xt(r)},p=(t,e=0,r=!1)=>{if(!t)return"";if(typeof t=="string")return`'${n.escapeSingleQuotes(t)}'`;if(t instanceof P)return Dt(t,e);if(t instanceof n.DimensionalElement)return t.composeCode||"";let i="";return Array.isArray(t)?i+=`[${t.map(a=>p(a,e+2))}${t.length?x+" ".repeat(e+2):""}]`:(i+=`{${x}`,Object.entries(t).forEach(([a,s])=>{if(r&&typeof a=="string"&&(a=`'${n.escapeSingleQuotes(a)}'`),i+=" ".repeat(e+2),Array.isArray(s))i+=`${a}: [${s.map(o=>p(o,e+4,r))}${s.length?x+" ".repeat(e+2):""}]`;else if(typeof s=="object"&&s!==null){const o=Array.isArray(s)?s:Ot(s);i+=`${a}: ${p(o,e+2,r)}`}else["number","boolean","undefined"].includes(typeof s)||s===null?i+=`${a}: ${s}`:typeof s=="string"?i+=`${a}: '${n.escapeSingleQuotes(s)}'`:i+=`${a}: ${s}`;i+=`,${x}`}),i+=" ".repeat(e),i+="}"),i};function Ct(t){return p(t,O)}function I(t,e="data-source-placeholder"){if(!t)return e;const r=typeof t=="object"&&"title"in t?t.title:t;return pt(r)}function q(t,e=!0){const r=[];return e&&r.push("measureFactory"),u(t)&&r.push("filterFactory"),r.length>0?`import { ${r.join(", ")} } from '@sisense/sdk-data';`:""}const L=`
427
+ `,wt=(t,e)=>{if(t.composeCode)return`${L}${" ".repeat(e)}${t.composeCode}`;const r=t.jaql().jaql;return`${L}${" ".repeat(e)}filterFactory.customFilter(${p(r,e,!0)})`},Mt=(t,e=0)=>{if(!t)return"";let r="";return r+=`[${t.map(i=>wt(i,e+2))}${t.length?`
428
+ `+" ".repeat(e+2):""}]`,r},W=t=>t?Array.isArray(t)?Mt(t,6):"/** Filter relations not supported yet */":"[]",It=["executeQueryByWidgetIdTmpl","widgetByIdTmpl"],qt="chartWidgetTmpl",Wt="pivotTableWidgetTmpl",Pt=t=>t,$t=({dashboardOid:t,widgetOid:e,uiFramework:r="react",chartType:i="table",includeChart:a=!0})=>{_(i);const s={dashboardOid:t,widgetOid:e},o=It[Number(a)];return C(o,s,r)},Y=(t,e,r)=>{if(n.isChartWidgetProps(t)){_(t.chartType);const i=w(t),a={idString:t.id,widgetTypeString:"chart",titleString:t.title,dataSourceString:I(t.dataSource),chartTypeString:Pt(t.chartType),dataOptionsString:Ct(t.dataOptions),filtersString:W(t.filters),componentString:"ChartWidget",extraImportsString:q(t.filters||[],i),styleOptionsString:p(t.styleOptions||{},O),drilldownOptionsString:p(t.drilldownOptions||{},O)};return C(r.chart,a,e)}if(n.isPivotTableWidgetProps(t)){const i=w(t),a={idString:t.id,widgetTypeString:"pivot",titleString:t.title,dataSourceString:I(t.dataSource),dataOptionsString:p(t.dataOptions),filtersString:W(t.filters),componentString:"PivotTableWidget",extraImportsString:q(t.filters||[],i),styleOptionsString:p(t.styleOptions||{},O)};return C(r.pivot,a,e)}if(n.isCustomWidgetProps(t))return"/** Custom widget code not supported yet */";throw new n.TranslatableError("errors.otherWidgetTypesNotSupported")},jt=({widgetProps:t,uiFramework:e="react"})=>Y(t,e,{chart:qt,pivot:Wt}),Lt=t=>"chartType"in t.chartRecommendations?t.chartRecommendations:{chartType:"table",chartFamily:"table",axesMapping:{}},Qt=t=>({dataOptions:{columns:t.map(B)}}),At=Object.freeze({convolution:{enabled:!0,selectedConvolutionType:"bySlicesCount",independentSlicesCount:7},lineWidth:{width:"bold"},markers:{enabled:!1},legend:{enabled:!1},yAxis:{gridLines:!1},xAxis:{gridLines:!1}}),Q=Object.freeze({line:"line/spline",pie:"pie/donut",bar:"bar/stacked",column:"column/stackedcolumn"}),J=(t,e,r)=>{const i=t.reduce((s,o)=>(s[o.jaql.title]=o,s),{}),a=Object.entries(r).reduce((s,o)=>{const[g,d]=o;return s[`${g}`]=Array.isArray(d)?d.map(f=>{var T,b;const c=n.normalizeAnyColumn(f);delete c.enabled;const y=i[c.column.name];if(!y)return{column:{type:"",name:c.column.name}};const h=B(y);if(y.panel==="measures")return m(l({},c),{column:h});if(n.isDatetime(h.type)){const v=(b=(T=y.format)==null?void 0:T.mask)==null?void 0:b[y.jaql.level];if(v)return m(l({},c),{column:h,dateFormat:v})}return m(l({},c),{column:h})}):d,s},{});switch(e){case"cartesian":return l({category:[],value:[],breakBy:[]},a);case"categorical":return l({category:[],value:[]},a);case"scatter":return Object.keys(a).forEach(s=>{a[`${s}`]=a[`${s}`][0]}),a;case"scattermap":return Object.keys(a).forEach(s=>{s!=="geo"&&(a[`${s}`]=a[`${s}`][0])}),a;case"table":return Object.keys(a).length===0?Qt(t).dataOptions:a;case"boxplot":case"areamap":case"indicator":default:return a}},A=(t,e)=>{var r,i,a,s;return e==="x"?(i=(r=t.category)!=null?r:t.x)==null?void 0:i.map(o=>n.normalizeAnyColumn(o).column.name).join(", "):(s=(a=t.value)!=null?a:t.y)==null?void 0:s.map(o=>n.normalizeAnyColumn(o).column.name).join(", ")},U=(t,e,r,i)=>{let a;return i&&t in Q?a=n.merge(n.merge(At,{subtype:Q[`${t}`]}),{legend:{enabled:!0,position:"right"},yAxis:{title:{enabled:!0,text:A(e,"y")}},xAxis:{title:{enabled:!0,text:A(e,"x")}}},r):a=n.merge(n.getDefaultStyleOptions(),r),a},K=(t,e,r=!0)=>{const{chartFamily:i,chartType:a,axesMapping:s={},styleOptions:o={}}=e,g=J(t,i,s),d=U(a,s,o,r);return{dataOptions:g,chartStyleOptions:d}},Bt=t=>"chartType"in t?t:{chartType:"table",chartFamily:"table",axesMapping:{}},Rt=t=>t.map(e=>n.createFilterFromJaql(e.jaql)),_t=t=>t.reduce((e,r)=>{if((r.panel==="scope"||r.jaql.filter)&&e.metadataFilters.push(n.cloneDeep(r)),r.panel!=="scope"){const i=n.cloneDeep(r);delete i.jaql.filter,e.metadataColumns.push(i)}return e},{metadataColumns:[],metadataFilters:[]}),kt=(t,e)=>{if(!ft(t))try{const{useCustomizedStyleOptions:r=!1}=e||{},{jaql:i,chartRecommendations:a,queryTitle:s}=t,{metadata:o,datasource:g}=i,d=m(l({},g),{type:g.type||"elasticube"}),f=n.convertJaqlDataSourceForDto(d),c=o.map(E=>z(E)).map(E=>m(l({},E),{jaql:m(l({},E.jaql),{datasource:f})})),y=Bt(a),h=y.chartType.toLowerCase(),T={cornerRadius:"Small",header:{renderToolbar:()=>null}},{metadataColumns:b,metadataFilters:v}=_t(c),H=Rt(v),{dataOptions:G,chartStyleOptions:Z}=K(b,y,r),X=l(l({},Z),T);return{widgetType:"chart",id:s,title:s,chartType:h,dataSource:d,dataOptions:G,filters:H,styleOptions:X}}catch(r){console.error(r);return}},V=(t,e)=>kt(t,e),Ft=t=>R(t)?$t(t):jt(t),Nt=Object.freeze(Object.defineProperty({__proto__:null,toWidgetCode:Ft,toWidgetProps:V},Symbol.toStringTag,{value:"Module"}));exports.CODE_TEMPLATES_INDENT=O;exports.EMPTY_EXPANDED_QUERY_MODEL=ot;exports.EMPTY_SIMPLE_QUERY_MODEL=lt;exports.JaqlElement=P;exports.capitalizeFirstLetter=mt;exports.checkIfMeasuresExist=w;exports.generateCode=C;exports.getChartDataOptions=J;exports.getChartOptions=K;exports.getChartRecommendationsOrDefault=Lt;exports.getChartStyleOptions=U;exports.getWidgetCode=Y;exports.isByIdDashboardCodeParams=ut;exports.isByIdWidgetCodeParams=R;exports.isClientSideDashboardCodeParams=ct;exports.isClientSideWidgetCodeParams=dt;exports.populatePlaceholders=F;exports.sanitizeDimensionId=gt;exports.simplifyMetadataItem=z;exports.stringifyDataSource=I;exports.stringifyExtraImports=q;exports.stringifyFilters=W;exports.stringifyProps=p;exports.toWidgetProps=V;exports.validateQueryModel=yt;exports.widgetComposer=Nt;
package/package.json CHANGED
@@ -11,7 +11,7 @@
11
11
  "Sisense",
12
12
  "Compose SDK"
13
13
  ],
14
- "version": "2.4.0",
14
+ "version": "2.5.0",
15
15
  "type": "module",
16
16
  "exports": {
17
17
  ".": {
@@ -57,12 +57,12 @@
57
57
  "@emotion/styled": "^11.14.0",
58
58
  "@mui/material": "^6.4.11",
59
59
  "@mui/system": "^6.4.11",
60
- "@sisense/sdk-common": "2.4.0",
61
- "@sisense/sdk-data": "2.4.0",
62
- "@sisense/sdk-pivot-client": "2.4.0",
63
- "@sisense/sdk-query-client": "2.4.0",
64
- "@sisense/sdk-rest-client": "2.4.0",
65
- "@sisense/sdk-tracking": "2.4.0",
60
+ "@sisense/sdk-common": "2.5.0",
61
+ "@sisense/sdk-data": "2.5.0",
62
+ "@sisense/sdk-pivot-client": "2.5.0",
63
+ "@sisense/sdk-query-client": "2.5.0",
64
+ "@sisense/sdk-rest-client": "2.5.0",
65
+ "@sisense/sdk-tracking": "2.5.0",
66
66
  "@sisense/sisense-charts": "5.1.1",
67
67
  "@tanstack/react-query": "4.36.1",
68
68
  "classnames": "^2.3.2",