@sisense/sdk-ui 2.3.0 → 2.4.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 (72) hide show
  1. package/dist/ai.cjs +17 -16
  2. package/dist/ai.js +767 -670
  3. package/dist/analytics-composer.cjs +1 -1
  4. package/dist/analytics-composer.js +4 -4
  5. package/dist/{derive-chart-family-DeTlU_Wm.cjs → derive-chart-family-Cqw-HJq1.cjs} +9 -9
  6. package/dist/{derive-chart-family-BtTi3OxL.js → derive-chart-family-woVAnbRi.js} +6914 -6864
  7. package/dist/{dimensions-Xxab6o5s.js → dimensions-BHdLQaOB.js} +1 -1
  8. package/dist/{dimensions-DpBTdNJ_.cjs → dimensions-oGJ_aWd5.cjs} +1 -1
  9. package/dist/index.cjs +20 -20
  10. package/dist/index.js +7758 -7446
  11. package/dist/index.umd.js +296 -295
  12. package/dist/packages/sdk-ui/src/ai/api/types.d.ts +1 -1
  13. package/dist/packages/sdk-ui/src/ai/common/icon-button.d.ts +1 -1
  14. package/dist/packages/sdk-ui/src/analytics-composer/types.d.ts +2 -2
  15. package/dist/packages/sdk-ui/src/api/rest-api.d.ts +9 -4
  16. package/dist/packages/sdk-ui/src/app/client-application.d.ts +1 -1
  17. package/dist/packages/sdk-ui/src/common/components/button.d.ts +1 -0
  18. package/dist/packages/sdk-ui/src/common/components/menu/context-menu/context-menu.d.ts +1 -1
  19. package/dist/packages/sdk-ui/src/common/components/menu/context-menu/menu.d.ts +4 -2
  20. package/dist/packages/sdk-ui/src/common/components/menu/menu-button.d.ts +8 -0
  21. package/dist/packages/sdk-ui/src/common/components/menu/types.d.ts +3 -1
  22. package/dist/packages/sdk-ui/src/common/components/popper.d.ts +6 -1
  23. package/dist/packages/sdk-ui/src/common/hooks/use-defaults.d.ts +1 -2
  24. package/dist/packages/sdk-ui/src/common/icons/drag-handle-icon.d.ts +3 -0
  25. package/dist/packages/sdk-ui/src/custom-widgets-provider/custom-widgets-context.d.ts +8 -0
  26. package/dist/packages/sdk-ui/src/custom-widgets-provider/custom-widgets-provider-adapter.d.ts +17 -0
  27. package/dist/packages/sdk-ui/src/custom-widgets-provider/custom-widgets-provider.d.ts +9 -0
  28. package/dist/packages/sdk-ui/src/custom-widgets-provider/index.d.ts +6 -0
  29. package/dist/packages/sdk-ui/src/custom-widgets-provider/types.d.ts +19 -0
  30. package/dist/packages/sdk-ui/src/custom-widgets-provider/use-custom-widgets.d.ts +25 -0
  31. package/dist/packages/sdk-ui/src/custom-widgets-provider/use-execute-custom-widget-query.d.ts +35 -0
  32. package/dist/packages/sdk-ui/src/dashboard/components/editable-layout/components/draggable-widget-wrapper.d.ts +12 -3
  33. package/dist/packages/sdk-ui/src/dashboard/components/editable-layout/editable-layout.d.ts +12 -1
  34. package/dist/packages/sdk-ui/src/dashboard/components/editable-layout/helpers.d.ts +57 -1
  35. package/dist/packages/sdk-ui/src/dashboard/components/editable-layout/utils.d.ts +13 -0
  36. package/dist/packages/sdk-ui/src/dashboard/constants.d.ts +11 -3
  37. package/dist/packages/sdk-ui/src/dashboard/dashboard.d.ts +11 -1
  38. package/dist/packages/sdk-ui/src/dashboard/index.d.ts +1 -1
  39. package/dist/packages/sdk-ui/src/dashboard/types.d.ts +72 -21
  40. package/dist/packages/sdk-ui/src/dashboard/use-dashboard-theme.d.ts +10 -0
  41. package/dist/packages/sdk-ui/src/filters/components/filters-panel/filters-panel.d.ts +35 -4
  42. package/dist/packages/sdk-ui/src/filters/hooks/index.d.ts +1 -1
  43. package/dist/packages/sdk-ui/src/filters/hooks/use-get-filter-members.d.ts +62 -24
  44. package/dist/packages/sdk-ui/src/index.d.ts +5 -5
  45. package/dist/packages/sdk-ui/src/indicator-canvas.d.ts +2 -0
  46. package/dist/packages/sdk-ui/src/models/dashboard/get-dashboard-model.d.ts +7 -0
  47. package/dist/packages/sdk-ui/src/models/dashboard/use-dashboard-model/use-dashboard-model-reducer.d.ts +21 -4
  48. package/dist/packages/sdk-ui/src/models/dashboard/use-dashboard-model/use-dashboard-model.d.ts +1 -1
  49. package/dist/packages/sdk-ui/src/models/dashboard/use-dashboard-model/use-dashboard-persistence.d.ts +8 -1
  50. package/dist/packages/sdk-ui/src/models/widget/types.d.ts +1 -1
  51. package/dist/packages/sdk-ui/src/models/widget/widget-model-translator.d.ts +3 -3
  52. package/dist/packages/sdk-ui/src/models/widget/widget-model.d.ts +3 -3
  53. package/dist/packages/sdk-ui/src/props.d.ts +52 -11
  54. package/dist/packages/sdk-ui/src/translation/resources/en.d.ts +7 -2
  55. package/dist/packages/sdk-ui/src/translation/resources/index.d.ts +14 -4
  56. package/dist/packages/sdk-ui/src/types.d.ts +59 -5
  57. package/dist/packages/sdk-ui/src/widget-by-id/types.d.ts +2 -2
  58. package/dist/packages/sdk-ui/src/widget-by-id/utils.d.ts +6 -6
  59. package/dist/packages/sdk-ui/src/widgets/common/drilldown-breadcrumbs/styled-buttons.d.ts +2 -2
  60. package/dist/packages/sdk-ui/src/widgets/custom-widget.d.ts +8 -0
  61. package/dist/{use-common-filters-B2N7j9H-.cjs → use-common-filters-B2TXBt4b.cjs} +62 -62
  62. package/dist/{use-common-filters-BC4Vg9wu.js → use-common-filters-B3lFbmtY.js} +3792 -3850
  63. package/dist/{widget-composer-Bj5DrCSm.js → widget-composer-BCNu5BzM.js} +12 -12
  64. package/dist/{widget-composer-DjREvygd.cjs → widget-composer-DheWJukc.cjs} +2 -2
  65. package/package.json +7 -7
  66. package/dist/packages/sdk-ui/src/plugins-provider/custom-plugins-provider.d.ts +0 -19
  67. package/dist/packages/sdk-ui/src/plugins-provider/index.d.ts +0 -2
  68. package/dist/packages/sdk-ui/src/plugins-provider/plugins-context.d.ts +0 -9
  69. package/dist/packages/sdk-ui/src/plugins-provider/plugins-provider.d.ts +0 -18
  70. package/dist/packages/sdk-ui/src/plugins-provider/types.d.ts +0 -23
  71. package/dist/packages/sdk-ui/src/plugins-provider/use-execute-plugin-query.d.ts +0 -24
  72. package/dist/packages/sdk-ui/src/widgets/plugin-widget.d.ts +0 -8
@@ -10,7 +10,7 @@ var $ = (t, e, r) => e in t ? tt(t, e, { enumerable: !0, configurable: !0, writa
10
10
  at.call(e, r) && $(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, aW as mt, aV as gt, aG as M, ao as yt, n as I, e5 as ft, a8 as ht, bG as P, e6 as St } from "./derive-chart-family-BtTi3OxL.js";
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";
14
14
  class J extends N {
15
15
  constructor(e, r) {
16
16
  var i;
@@ -120,7 +120,7 @@ function h(t) {
120
120
  var e;
121
121
  return "column" in t && ((e = t.column) == null ? void 0 : e.expression) && /\(.*\)/.test(t.column.expression);
122
122
  }
123
- function L(t) {
123
+ function P(t) {
124
124
  const e = "measures" in t && c(t.measures) || "values" in t && c(t.values);
125
125
  return Et(t) ? "values" in t.dataOptions && c(t.dataOptions.values) : "chartType" in t ? t.chartType === "indicator" ? "value" in t.dataOptions && c(t.dataOptions.value) || "secondary" in t.dataOptions && c(t.dataOptions.secondary) : t.chartType === "table" ? !("columns" in t.dataOptions) || !c(t.dataOptions.columns) ? !1 : t.dataOptions.columns.some((i) => h(i)) : t.chartType === "boxplot" ? !1 : t.chartType === "scatter" ? "x" in t.dataOptions && t.dataOptions.x !== void 0 && h(t.dataOptions.x) || "y" in t.dataOptions && t.dataOptions.y !== void 0 && h(t.dataOptions.y) || "size" in t.dataOptions && t.dataOptions.size !== void 0 : t.chartType === "scattermap" ? "colorBy" in t.dataOptions && t.dataOptions.colorBy !== void 0 && h(t.dataOptions.colorBy) || "details" in t.dataOptions && t.dataOptions.details !== void 0 && h(t.dataOptions.details) || "size" in t.dataOptions && t.dataOptions.size !== void 0 && h(t.dataOptions.size) : t.chartType === "areamap" ? "geo" in t.dataOptions && c(t.dataOptions.geo) && "color" in t.dataOptions && c(t.dataOptions.color) : "value" in t.dataOptions && c(t.dataOptions.value) : e;
126
126
  }
@@ -695,7 +695,7 @@ import { DashboardById } from '@sisense/sdk-ui-vue';
695
695
  ].includes(typeof s) || s === null ? i += `${a}: ${s}` : typeof s == "string" ? i += `${a}: '${O(s)}'` : i += `${a}: ${s}`, i += `,${E}`;
696
696
  }), i += " ".repeat(e), i += "}"), i;
697
697
  };
698
- function Pt(t) {
698
+ function Lt(t) {
699
699
  return p(t, w);
700
700
  }
701
701
  function Q(t, e = "data-source-placeholder") {
@@ -709,7 +709,7 @@ function A(t, e = !0) {
709
709
  return e && r.push("measureFactory"), c(t) && r.push("filterFactory"), r.length > 0 ? `import { ${r.join(", ")} } from '@sisense/sdk-data';` : "";
710
710
  }
711
711
  const k = `
712
- `, Lt = (t, e) => {
712
+ `, Pt = (t, e) => {
713
713
  if (t.composeCode)
714
714
  return `${k}${" ".repeat(e)}${t.composeCode}`;
715
715
  const r = t.jaql().jaql;
@@ -718,7 +718,7 @@ const k = `
718
718
  if (!t)
719
719
  return "";
720
720
  let r = "";
721
- return r += `[${t.map((i) => Lt(i, e + 2))}${t.length ? `
721
+ return r += `[${t.map((i) => Pt(i, e + 2))}${t.length ? `
722
722
  ` + " ".repeat(e + 2) : ""}]`, r;
723
723
  }, B = (t) => t ? Array.isArray(t) ? Qt(t, 6) : "/** Filter relations not supported yet */" : "[]", At = [
724
724
  "executeQueryByWidgetIdTmpl",
@@ -733,13 +733,13 @@ const k = `
733
733
  }, Nt = (t, e, r) => {
734
734
  if (pt(t)) {
735
735
  U(t.chartType);
736
- const i = L(t), a = {
736
+ const i = P(t), a = {
737
737
  idString: t.id,
738
738
  widgetTypeString: "chart",
739
739
  titleString: t.title,
740
740
  dataSourceString: Q(t.dataSource),
741
741
  chartTypeString: Rt(t.chartType),
742
- dataOptionsString: Pt(t.dataOptions),
742
+ dataOptionsString: Lt(t.dataOptions),
743
743
  filtersString: B(t.filters),
744
744
  componentString: "ChartWidget",
745
745
  extraImportsString: A(t.filters || [], i),
@@ -749,7 +749,7 @@ const k = `
749
749
  return q(r.chart, a, e);
750
750
  }
751
751
  if (mt(t)) {
752
- const i = L(t), a = {
752
+ const i = P(t), a = {
753
753
  idString: t.id,
754
754
  widgetTypeString: "pivot",
755
755
  titleString: t.title,
@@ -763,7 +763,7 @@ const k = `
763
763
  return q(r.pivot, a, e);
764
764
  }
765
765
  if (gt(t))
766
- return "/** Plugin widget code not supported yet */";
766
+ return "/** Custom widget code not supported yet */";
767
767
  throw new S("errors.otherWidgetTypesNotSupported");
768
768
  }, _t = ({ widgetProps: t, uiFramework: e = "react" }) => Nt(t, e, {
769
769
  chart: kt,
@@ -899,8 +899,8 @@ const k = `
899
899
  chartFamily: "table",
900
900
  axesMapping: {}
901
901
  }, Gt = (t) => t.map((e) => ht(e.jaql)), Ht = (t) => t.reduce((e, r) => {
902
- if ((r.panel === "scope" || r.jaql.filter) && e.metadataFilters.push(P(r)), r.panel !== "scope") {
903
- const i = P(r);
902
+ if ((r.panel === "scope" || r.jaql.filter) && e.metadataFilters.push(L(r)), r.panel !== "scope") {
903
+ const i = L(r);
904
904
  delete i.jaql.filter, e.metadataColumns.push(i);
905
905
  }
906
906
  return e;
@@ -947,7 +947,7 @@ export {
947
947
  ae as E,
948
948
  J,
949
949
  q as a,
950
- L as b,
950
+ P as b,
951
951
  le as c,
952
952
  Q as d,
953
953
  B as e,
@@ -1,4 +1,4 @@
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-DeTlU_Wm.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 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(`
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
3
  `)}const Ot={react:{baseChartTmpl:`import { {{componentString}} } from '@sisense/sdk-ui';
4
4
  {{extraImportsString}}
@@ -425,4 +425,4 @@ import { DashboardById } from '@sisense/sdk-ui-vue';
425
425
  `}),r+=" ".repeat(e),r+=` }
426
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
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.isPluginWidgetProps(t))return"/** Plugin 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;
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;
package/package.json CHANGED
@@ -11,7 +11,7 @@
11
11
  "Sisense",
12
12
  "Compose SDK"
13
13
  ],
14
- "version": "2.3.0",
14
+ "version": "2.4.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.3.0",
61
- "@sisense/sdk-data": "2.3.0",
62
- "@sisense/sdk-pivot-client": "2.3.0",
63
- "@sisense/sdk-query-client": "2.3.0",
64
- "@sisense/sdk-rest-client": "2.3.0",
65
- "@sisense/sdk-tracking": "2.3.0",
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",
66
66
  "@sisense/sisense-charts": "5.1.1",
67
67
  "@tanstack/react-query": "4.36.1",
68
68
  "classnames": "^2.3.2",
@@ -1,19 +0,0 @@
1
- import { PropsWithChildren } from 'react';
2
- import { PluginComponent, PluginComponentProps } from './types';
3
- import { CustomContextProviderProps } from '../types';
4
- /** @internal */
5
- export type CustomPluginsProviderProps = CustomContextProviderProps<CustomPluginsContext<PluginComponentProps>>;
6
- /** @internal */
7
- export type CustomPluginsContext<T = PluginComponentProps> = {
8
- pluginMap: Map<string, PluginComponent<T>>;
9
- registerPlugin: (pluginType: string, plugin: PluginComponent<T>) => void;
10
- getPlugin: (pluginType: string) => PluginComponent<T> | undefined;
11
- };
12
- /**
13
- * Custom Plugin Provider component that allows passing external plugins context.
14
- *
15
- * Note: it is designed to serve as a bridge for passing pre-initialized plugin data between an external wrapper and child React components.
16
- *
17
- * @internal
18
- */
19
- export declare const CustomPluginsProvider: React.FC<PropsWithChildren<CustomPluginsProviderProps>>;
@@ -1,2 +0,0 @@
1
- export * from './plugins-provider';
2
- export * from './plugins-context';
@@ -1,9 +0,0 @@
1
- /// <reference types="react" />
2
- import { PluginComponent, PluginComponentProps } from './types';
3
- type PluginsContextType<T extends PluginComponentProps = PluginComponentProps> = {
4
- plugins: Map<string, PluginComponent<T>>;
5
- registerPlugin: <T>(pluginType: string, plugin: PluginComponent<T>) => void;
6
- getPlugin: (pluginType: string) => PluginComponent<T> | undefined;
7
- };
8
- export declare const PluginsContext: import("react").Context<PluginsContextType<PluginComponentProps<import("..").GenericDataOptions, any>>>;
9
- export {};
@@ -1,18 +0,0 @@
1
- import { ReactNode } from 'react';
2
- import { PluginComponent } from './types';
3
- /**
4
- * Plugin Provider component that allows registering and accessing plugins.
5
- *
6
- * @internal
7
- */
8
- export declare const PluginsProvider: React.FC<{
9
- children: ReactNode;
10
- }>;
11
- /**
12
- * @internal
13
- */
14
- export declare const usePlugins: () => {
15
- plugins: Map<string, PluginComponent<import("./types").PluginComponentProps<import("..").GenericDataOptions, any>>>;
16
- registerPlugin: <T>(pluginType: string, plugin: PluginComponent<T>) => void;
17
- getPlugin: (pluginType: string) => PluginComponent<import("./types").PluginComponentProps<import("..").GenericDataOptions, any>> | undefined;
18
- };
@@ -1,23 +0,0 @@
1
- import { ReactNode } from 'react';
2
- import { DataSource, Filter, FilterRelations } from '@sisense/sdk-data';
3
- import { GenericDataOptions } from '../types';
4
- /**
5
- * Props passed to a user-defined widget component.
6
- *
7
- * @alpha
8
- */
9
- export interface PluginComponentProps<DataOptions = GenericDataOptions, StyleOptions = any> {
10
- dataSource?: DataSource;
11
- dataOptions: DataOptions;
12
- styleOptions: StyleOptions;
13
- filters?: Filter[] | FilterRelations;
14
- highlights?: Filter[];
15
- description?: string;
16
- }
17
- /**
18
- * A user-defined widget component. This is can be specified when registering a
19
- * plugin with `registerPlugin` from the `usePlugins` hook.
20
- *
21
- * @alpha
22
- */
23
- export type PluginComponent<Props = PluginComponentProps> = (props: Props) => ReactNode;
@@ -1,24 +0,0 @@
1
- import { Attribute, Measure, QueryResultData } from '@sisense/sdk-data';
2
- import { GenericDataOptions } from '../types';
3
- import { PluginComponentProps } from './types';
4
- /**
5
- * Utility function for converting data options to parameters for executing a query.
6
- *
7
- * @group Dashboards
8
- * @alpha
9
- */
10
- export declare function extractDimensionsAndMeasures(dataOptions: GenericDataOptions): {
11
- dimensions: Attribute[];
12
- measures: Measure[];
13
- };
14
- /**
15
- * React hook that takes a plugin component's props and executes a data query.
16
- *
17
- * @group Dashboards
18
- * @alpha
19
- */
20
- export declare function useExecutePluginQuery({ dataSource, dataOptions, filters, highlights, }: PluginComponentProps): {
21
- data: QueryResultData | undefined;
22
- isLoading: boolean;
23
- isError: boolean;
24
- };
@@ -1,8 +0,0 @@
1
- /// <reference types="react" />
2
- import { PluginWidgetProps } from '../props';
3
- /**
4
- * Component that renders a plugin widget.
5
- *
6
- * @internal
7
- */
8
- export declare const PluginWidget: React.FC<PluginWidgetProps>;