@embeddable.com/remarkable-pro 0.0.6 → 0.0.8

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 (67) hide show
  1. package/dist/BarChartDefaultHorizontalPro.js +1 -1
  2. package/dist/BarChartDefaultPro.js +1 -1
  3. package/dist/BarChartGroupedHorizontalPro.js +1 -1
  4. package/dist/BarChartGroupedPro.js +1 -1
  5. package/dist/BarChartStackedHorizontalPro.js +1 -1
  6. package/dist/BarChartStackedPro.js +1 -1
  7. package/dist/{ChartCard-hWESZ2Ps.js → ChartCard-DbWy6Y6D.js} +39 -36
  8. package/dist/{ChartCard-hWESZ2Ps.js.map → ChartCard-DbWy6Y6D.js.map} +1 -1
  9. package/dist/DonutChartPro.js +1 -1
  10. package/dist/DonutLabelChartPro.js +1 -1
  11. package/dist/HeatMapPro.js +1 -1
  12. package/dist/KpiChartNumberComparisonPro.js +1 -1
  13. package/dist/KpiChartNumberPro.js +1 -1
  14. package/dist/LineChartComparisonDefaultPro.js +1 -1
  15. package/dist/LineChartDefaultPro.js +1 -1
  16. package/dist/LineChartGroupedPro.js +1 -1
  17. package/dist/PieChartPro.js +1 -1
  18. package/dist/PivotTablePro.js +1 -1
  19. package/dist/TableChartPaginated.js +50 -43
  20. package/dist/TableChartPaginated.js.map +1 -1
  21. package/dist/charts.fillGaps.hooks-Dd-VYdOE.js +66 -0
  22. package/dist/charts.fillGaps.hooks-Dd-VYdOE.js.map +1 -0
  23. package/dist/components/charts/charts.fillGaps.hooks.d.ts.map +1 -1
  24. package/dist/components/charts/shared/ChartCard/ChartCard.d.ts.map +1 -1
  25. package/dist/components/charts/tables/TableChartPaginated/index.d.ts +8 -6
  26. package/dist/components/charts/tables/TableChartPaginated/index.d.ts.map +1 -1
  27. package/dist/embeddable-components.json +12 -12
  28. package/dist/{index-BxkGSCbn.js → index-BANAOc5o.js} +3 -3
  29. package/dist/{index-BxkGSCbn.js.map → index-BANAOc5o.js.map} +1 -1
  30. package/dist/{index-BbEkJ2Zk.js → index-BFslD2mO.js} +2 -2
  31. package/dist/{index-BbEkJ2Zk.js.map → index-BFslD2mO.js.map} +1 -1
  32. package/dist/{index-B2-si8wa.js → index-BNMJTgo_.js} +3 -3
  33. package/dist/{index-B2-si8wa.js.map → index-BNMJTgo_.js.map} +1 -1
  34. package/dist/{index-CZ9yuIpZ.js → index-BSWbd7z_.js} +3 -3
  35. package/dist/{index-CZ9yuIpZ.js.map → index-BSWbd7z_.js.map} +1 -1
  36. package/dist/{index-DSAnOSq9.js → index-BzzDZ7Wg.js} +3 -3
  37. package/dist/{index-DSAnOSq9.js.map → index-BzzDZ7Wg.js.map} +1 -1
  38. package/dist/{index-BPkkRwcA.js → index-CC_OkY5h.js} +3 -3
  39. package/dist/{index-BPkkRwcA.js.map → index-CC_OkY5h.js.map} +1 -1
  40. package/dist/{index-CGLsIs8j.js → index-CGOYyhMg.js} +2 -2
  41. package/dist/{index-CGLsIs8j.js.map → index-CGOYyhMg.js.map} +1 -1
  42. package/dist/{index-DZypsIb4.js → index-CIrFPmqW.js} +2 -2
  43. package/dist/{index-DZypsIb4.js.map → index-CIrFPmqW.js.map} +1 -1
  44. package/dist/index-CLN53xva.js +161 -0
  45. package/dist/index-CLN53xva.js.map +1 -0
  46. package/dist/{index-YMH6QSSf.js → index-CVTxkwt-.js} +3 -3
  47. package/dist/{index-YMH6QSSf.js.map → index-CVTxkwt-.js.map} +1 -1
  48. package/dist/{index-CEyir5HV.js → index-Ci7quilT.js} +3 -3
  49. package/dist/{index-CEyir5HV.js.map → index-Ci7quilT.js.map} +1 -1
  50. package/dist/{index-uFQScwgQ.js → index-DfMuZY6D.js} +3 -3
  51. package/dist/{index-uFQScwgQ.js.map → index-DfMuZY6D.js.map} +1 -1
  52. package/dist/{index-C4uAHg_1.js → index-Dj2GCs_C.js} +2 -2
  53. package/dist/{index-C4uAHg_1.js.map → index-Dj2GCs_C.js.map} +1 -1
  54. package/dist/{index-CA0eQwx6.js → index-DsuuGokg.js} +3 -3
  55. package/dist/{index-CA0eQwx6.js.map → index-DsuuGokg.js.map} +1 -1
  56. package/dist/{index-B-x3eR8s.js → index-YDGm7Lqn.js} +3 -3
  57. package/dist/{index-B-x3eR8s.js.map → index-YDGm7Lqn.js.map} +1 -1
  58. package/dist/{index-DYa6RC1f.js → index-lk-Z0NGN.js} +3 -3
  59. package/dist/{index-DYa6RC1f.js.map → index-lk-Z0NGN.js.map} +1 -1
  60. package/dist/{index-CvhDbU54.js → index-xD9YxZRB.js} +2 -2
  61. package/dist/{index-CvhDbU54.js.map → index-xD9YxZRB.js.map} +1 -1
  62. package/dist/index.js +18 -18
  63. package/package.json +5 -1
  64. package/dist/charts.fillGaps.hooks-YayOXVmt.js +0 -65
  65. package/dist/charts.fillGaps.hooks-YayOXVmt.js.map +0 -1
  66. package/dist/index-CMy4Riwi.js +0 -152
  67. package/dist/index-CMy4Riwi.js.map +0 -1
@@ -1,6 +1,6 @@
1
1
  import { V as e, l as s } from "./index-CK9V-wz1.js";
2
2
  import { defineComponent as o } from "@embeddable.com/react";
3
- import { B as r } from "./index-DSAnOSq9.js";
3
+ import { B as r } from "./index-BzzDZ7Wg.js";
4
4
  import { v as i, E as t, z as l, F as n, G as m, I as x, J as u, K as d, M as c, N as f, O as h, R as p, U as D, V as b, X as B } from "./component.constants-Dhb2rtRh.js";
5
5
  const C = {
6
6
  name: "BarChartDefaultHorizontalPro",
@@ -1,6 +1,6 @@
1
1
  import { V as e, l as s } from "./index-CK9V-wz1.js";
2
2
  import { defineComponent as r } from "@embeddable.com/react";
3
- import { B as i } from "./index-uFQScwgQ.js";
3
+ import { B as i } from "./index-DfMuZY6D.js";
4
4
  import { v as t, E as o, z as l, F as n, G as m, I as x, J as u, K as d, M as c, N as f, O as h, P as p, S as D, T as b, W as B } from "./component.constants-Dhb2rtRh.js";
5
5
  const C = {
6
6
  name: "BarChartDefaultPro",
@@ -1,6 +1,6 @@
1
1
  import { V as e, l as s } from "./index-CK9V-wz1.js";
2
2
  import { defineComponent as o } from "@embeddable.com/react";
3
- import { B as i } from "./index-B2-si8wa.js";
3
+ import { B as i } from "./index-BNMJTgo_.js";
4
4
  import { v as r, D as n, z as l, w as t, F as m, G as u, H as p, I as d, J as x, K as g, M as c, N as V, O as b, R as h, U as B, V as D } from "./component.constants-Dhb2rtRh.js";
5
5
  const C = {
6
6
  name: "BarChartGroupedHorizontalPro",
@@ -1,6 +1,6 @@
1
1
  import { V as a, l as s } from "./index-CK9V-wz1.js";
2
2
  import { defineComponent as i } from "@embeddable.com/react";
3
- import { B as r } from "./index-BxkGSCbn.js";
3
+ import { B as r } from "./index-BANAOc5o.js";
4
4
  import { v as o, D as n, z as l, w as t, F as m, G as u, H as p, I as d, J as x, K as g, M as c, N as b, O as V, P as h, S as B, T as D } from "./component.constants-Dhb2rtRh.js";
5
5
  const C = {
6
6
  name: "BarChartGroupedPro",
@@ -1,6 +1,6 @@
1
1
  import { V as e, l as s } from "./index-CK9V-wz1.js";
2
2
  import { defineComponent as i } from "@embeddable.com/react";
3
- import { B as o } from "./index-B-x3eR8s.js";
3
+ import { B as o } from "./index-YDGm7Lqn.js";
4
4
  import { v as r, D as l, z as n, w as t, F as m, G as u, H as d, I as x, J as c, K as p, M as g, N as b, O as V, R as h, U as B, V as D, L as C } from "./component.constants-Dhb2rtRh.js";
5
5
  const f = {
6
6
  name: "BarChartStackedHorizontalPro",
@@ -1,6 +1,6 @@
1
1
  import { V as e, l as s } from "./index-CK9V-wz1.js";
2
2
  import { defineComponent as i } from "@embeddable.com/react";
3
- import { B as o } from "./index-CZ9yuIpZ.js";
3
+ import { B as o } from "./index-BSWbd7z_.js";
4
4
  import { v as r, D as l, z as n, w as t, F as m, G as u, H as d, I as x, J as c, K as p, M as g, N as b, O as h, P as V, S as B, T as D, L as C } from "./component.constants-Dhb2rtRh.js";
5
5
  const f = {
6
6
  name: "BarChartStackedPro",
@@ -80,45 +80,48 @@ const G = (s) => {
80
80
  message: m.t("charts.emptyMessage")
81
81
  }
82
82
  );
83
- return /* @__PURE__ */ t.jsxs(N, { className: o.chartCard, ...c, children: [
84
- /* @__PURE__ */ t.jsx(
85
- k,
86
- {
87
- title: s,
88
- subtitle: a,
89
- rightContent: /* @__PURE__ */ t.jsxs("div", { className: o.chartCardRightContent, children: [
90
- /* @__PURE__ */ t.jsx(
91
- "div",
92
- {
93
- className: x(o.fixedContent, C ? o.loading : o.hidden),
94
- children: /* @__PURE__ */ t.jsx(p, {})
95
- }
96
- ),
97
- /* @__PURE__ */ t.jsx(
98
- "div",
99
- {
100
- className: x(o.fixedContent, C ? o.hidden : o.visible),
101
- children: /* @__PURE__ */ t.jsx(
102
- G,
103
- {
104
- title: s,
105
- containerRef: h,
106
- data: e == null ? void 0 : e.data,
107
- dimensionsAndMeasures: d,
108
- onCustomDownload: c.onCustomDownload
109
- }
110
- )
111
- }
112
- )
113
- ] })
114
- }
115
- ),
116
- /* @__PURE__ */ t.jsx(M, { ref: c.onCustomDownload ? n : h, children: y() })
117
- ] });
83
+ return (
84
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
85
+ /* @__PURE__ */ t.jsxs(N, { className: o.chartCard, ...c, children: [
86
+ /* @__PURE__ */ t.jsx(
87
+ k,
88
+ {
89
+ title: s,
90
+ subtitle: a,
91
+ rightContent: /* @__PURE__ */ t.jsxs("div", { className: o.chartCardRightContent, children: [
92
+ /* @__PURE__ */ t.jsx(
93
+ "div",
94
+ {
95
+ className: x(o.fixedContent, C ? o.loading : o.hidden),
96
+ children: /* @__PURE__ */ t.jsx(p, {})
97
+ }
98
+ ),
99
+ /* @__PURE__ */ t.jsx(
100
+ "div",
101
+ {
102
+ className: x(o.fixedContent, C ? o.hidden : o.visible),
103
+ children: /* @__PURE__ */ t.jsx(
104
+ G,
105
+ {
106
+ title: s,
107
+ containerRef: h,
108
+ data: e == null ? void 0 : e.data,
109
+ dimensionsAndMeasures: d,
110
+ onCustomDownload: c.onCustomDownload
111
+ }
112
+ )
113
+ }
114
+ )
115
+ ] })
116
+ }
117
+ ),
118
+ /* @__PURE__ */ t.jsx(M, { ref: c.onCustomDownload ? n : h, children: y() })
119
+ ] })
120
+ );
118
121
  }
119
122
  );
120
123
  J.displayName = "ChartCard";
121
124
  export {
122
125
  J as C
123
126
  };
124
- //# sourceMappingURL=ChartCard-hWESZ2Ps.js.map
127
+ //# sourceMappingURL=ChartCard-DbWy6Y6D.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChartCard-hWESZ2Ps.js","sources":["../node_modules/@tabler/icons-react/dist/esm/icons/IconDotsVertical.mjs","../src/components/charts/shared/ChartCard/ChartCardLoading/ChartCardLoading.tsx","../src/components/charts/shared/ChartCard/ChartCardMenuPro/ChartCardMenuPro.tsx","../src/components/charts/shared/ChartCard/ChartCard.tsx"],"sourcesContent":["/**\n * @license @tabler/icons-react v3.35.0 - MIT\n *\n * This source code is licensed under the MIT license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createReactComponent from '../createReactComponent.mjs';\n\nconst __iconNode = [[\"path\", { \"d\": \"M12 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0\", \"key\": \"svg-0\" }], [\"path\", { \"d\": \"M12 19m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0\", \"key\": \"svg-1\" }], [\"path\", { \"d\": \"M12 5m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0\", \"key\": \"svg-2\" }]];\nconst IconDotsVertical = createReactComponent(\"outline\", \"dots-vertical\", \"DotsVertical\", __iconNode);\n\nexport { __iconNode, IconDotsVertical as default };\n//# sourceMappingURL=IconDotsVertical.mjs.map\n","import { IconLoader2 } from '@tabler/icons-react';\nimport styles from './ChartCardLoading.module.css';\n\nexport const ChartCardLoading = () => <IconLoader2 className={styles.loading} />;\n","import { IconDotsVertical } from '@tabler/icons-react';\nimport React from 'react';\nimport { useTheme } from '@embeddable.com/react';\nimport { ChartCardLoading } from '../ChartCardLoading/ChartCardLoading';\nimport { i18n, i18nSetup } from '../../../../../theme/i18n/i18n';\nimport { Theme } from '../../../../../theme/theme.types';\nimport {\n Dropdown,\n ActionIcon,\n SelectFieldContent,\n SelectListOption,\n} from '@embeddable.com/remarkable-ui';\nimport styles from './ChartCardMenuPro.module.css';\nimport { ChartCardMenuOptionOnClickProps } from '../../../../../theme/defaults/defaults.ChartCardMenu.constants';\n\ntype InlineSvgFromDataProps = React.HTMLAttributes<HTMLSpanElement> & {\n src: string;\n};\n\nexport function InlineSvgFromData({ src, className, ...rest }: InlineSvgFromDataProps) {\n // Remove prefix and URL-decode the SVG markup\n const svgMarkup = decodeURIComponent(src.replace(/^data:image\\/svg\\+xml,/, ''));\n\n return <div className={className} {...rest} dangerouslySetInnerHTML={{ __html: svgMarkup }} />;\n}\n\ntype ChartCardMenuProProps = Omit<ChartCardMenuOptionOnClickProps, 'theme'>;\n\nexport const ChartCardMenuPro: React.FC<ChartCardMenuProProps> = (props) => {\n const theme: Theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const [isLoading, setIsLoading] = React.useState(false);\n\n const options = theme.defaults.chartMenuOptions ?? [];\n\n if (options.length === 0) {\n return null;\n }\n\n const startAction = (onClick: () => void | Promise<void>) => {\n setTimeout(() => {\n Promise.resolve(onClick()).finally(() => setIsLoading(false));\n }, 100);\n };\n\n const handleExport = (onClick: (props: ChartCardMenuOptionOnClickProps) => void) => {\n setIsLoading(true);\n if (props.onCustomDownload) {\n props.onCustomDownload((args) => startAction(() => onClick(args)));\n return;\n }\n startAction(() => onClick({ ...props, theme }));\n };\n\n return (\n <Dropdown\n side=\"bottom\"\n align=\"end\"\n triggerComponent={isLoading ? <ChartCardLoading /> : <ActionIcon icon={IconDotsVertical} />}\n >\n <SelectFieldContent className={styles.list} autoFocus>\n {options.map((option, index) => {\n const label = i18n.t(option.labelKey);\n\n return (\n <SelectListOption\n key={index}\n label={label}\n onClick={() => handleExport(option.onClick)}\n startIcon={option.iconSrc ? <InlineSvgFromData src={option.iconSrc} /> : undefined}\n />\n );\n })}\n </SelectFieldContent>\n </Dropdown>\n );\n};\n","import React, { CSSProperties, useRef } from 'react';\nimport { IconAlertCircle } from '@tabler/icons-react';\nimport {\n Card,\n CardContent,\n CardFeedback,\n CardHeader,\n Skeleton,\n} from '@embeddable.com/remarkable-ui';\nimport styles from './ChartCard.module.css';\nimport { DataResponse, Dimension, Measure } from '@embeddable.com/core';\nimport { useTheme } from '@embeddable.com/react';\nimport { ChartCardLoading } from './ChartCardLoading/ChartCardLoading';\nimport { ChartCardMenuPro } from './ChartCardMenuPro/ChartCardMenuPro';\nimport { Theme } from '../../../../theme/theme.types';\nimport { i18n, i18nSetup } from '../../../../theme/i18n/i18n';\nimport clsx from 'clsx';\nimport { ChartCardMenuOptionOnClickProps } from '../../../../theme/defaults/defaults.ChartCardMenu.constants';\n\ntype ChartCardProps = {\n title: string;\n subtitle?: string;\n children: React.ReactNode;\n data: DataResponse;\n isLoading?: boolean;\n errorMessage?: string;\n style?: CSSProperties;\n dimensionsAndMeasures?: (Dimension | Measure)[];\n onCustomDownload?: (props: (props: ChartCardMenuOptionOnClickProps) => void) => void;\n};\n\nexport const ChartCard = React.forwardRef<HTMLDivElement, ChartCardProps>(\n (\n { title, subtitle, children, data, errorMessage, dimensionsAndMeasures = [], ...props },\n ref,\n ) => {\n const theme: Theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const chartRef = useRef<HTMLDivElement>(null);\n\n const hasData = Boolean(data?.data && data.data?.length > 0);\n\n const isLoading = !data || data?.isLoading;\n\n const getDisplay = () => {\n if (isLoading && !hasData) {\n return <Skeleton />;\n }\n\n if (errorMessage) {\n return (\n <CardFeedback\n variant=\"error\"\n icon={IconAlertCircle}\n title={i18n.t('charts.errorTitle')}\n message={errorMessage}\n />\n );\n }\n\n if (!hasData) {\n return (\n <CardFeedback\n title={i18n.t('charts.emptyTitle')}\n message={i18n.t('charts.emptyMessage')}\n />\n );\n }\n\n return children;\n };\n\n return (\n <Card className={styles.chartCard} {...props}>\n <CardHeader\n title={title}\n subtitle={subtitle}\n rightContent={\n <div className={styles.chartCardRightContent}>\n <div\n className={clsx(styles.fixedContent, isLoading ? styles.loading : styles.hidden)}\n >\n <ChartCardLoading />\n </div>\n <div\n className={clsx(styles.fixedContent, isLoading ? styles.hidden : styles.visible)}\n >\n <ChartCardMenuPro\n title={title}\n containerRef={chartRef}\n data={data?.data}\n dimensionsAndMeasures={dimensionsAndMeasures}\n onCustomDownload={props.onCustomDownload}\n />\n </div>\n </div>\n }\n />\n\n <CardContent ref={props.onCustomDownload ? ref : chartRef}>{getDisplay()}</CardContent>\n </Card>\n );\n },\n);\n\nChartCard.displayName = 'ChartCard';\n"],"names":["__iconNode","IconDotsVertical","createReactComponent","ChartCardLoading","jsx","IconLoader2","styles","InlineSvgFromData","src","className","rest","svgMarkup","ChartCardMenuPro","props","theme","useTheme","i18nSetup","isLoading","setIsLoading","React","options","startAction","onClick","handleExport","args","Dropdown","ActionIcon","SelectFieldContent","option","index","label","i18n","SelectListOption","ChartCard","title","subtitle","children","data","errorMessage","dimensionsAndMeasures","ref","chartRef","useRef","hasData","_a","getDisplay","Skeleton","CardFeedback","IconAlertCircle","Card","CardHeader","jsxs","clsx","CardContent"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"ChartCard-DbWy6Y6D.js","sources":["../node_modules/@tabler/icons-react/dist/esm/icons/IconDotsVertical.mjs","../src/components/charts/shared/ChartCard/ChartCardLoading/ChartCardLoading.tsx","../src/components/charts/shared/ChartCard/ChartCardMenuPro/ChartCardMenuPro.tsx","../src/components/charts/shared/ChartCard/ChartCard.tsx"],"sourcesContent":["/**\n * @license @tabler/icons-react v3.35.0 - MIT\n *\n * This source code is licensed under the MIT license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createReactComponent from '../createReactComponent.mjs';\n\nconst __iconNode = [[\"path\", { \"d\": \"M12 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0\", \"key\": \"svg-0\" }], [\"path\", { \"d\": \"M12 19m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0\", \"key\": \"svg-1\" }], [\"path\", { \"d\": \"M12 5m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0\", \"key\": \"svg-2\" }]];\nconst IconDotsVertical = createReactComponent(\"outline\", \"dots-vertical\", \"DotsVertical\", __iconNode);\n\nexport { __iconNode, IconDotsVertical as default };\n//# sourceMappingURL=IconDotsVertical.mjs.map\n","import { IconLoader2 } from '@tabler/icons-react';\nimport styles from './ChartCardLoading.module.css';\n\nexport const ChartCardLoading = () => <IconLoader2 className={styles.loading} />;\n","import { IconDotsVertical } from '@tabler/icons-react';\nimport React from 'react';\nimport { useTheme } from '@embeddable.com/react';\nimport { ChartCardLoading } from '../ChartCardLoading/ChartCardLoading';\nimport { i18n, i18nSetup } from '../../../../../theme/i18n/i18n';\nimport { Theme } from '../../../../../theme/theme.types';\nimport {\n Dropdown,\n ActionIcon,\n SelectFieldContent,\n SelectListOption,\n} from '@embeddable.com/remarkable-ui';\nimport styles from './ChartCardMenuPro.module.css';\nimport { ChartCardMenuOptionOnClickProps } from '../../../../../theme/defaults/defaults.ChartCardMenu.constants';\n\ntype InlineSvgFromDataProps = React.HTMLAttributes<HTMLSpanElement> & {\n src: string;\n};\n\nexport function InlineSvgFromData({ src, className, ...rest }: InlineSvgFromDataProps) {\n // Remove prefix and URL-decode the SVG markup\n const svgMarkup = decodeURIComponent(src.replace(/^data:image\\/svg\\+xml,/, ''));\n\n return <div className={className} {...rest} dangerouslySetInnerHTML={{ __html: svgMarkup }} />;\n}\n\ntype ChartCardMenuProProps = Omit<ChartCardMenuOptionOnClickProps, 'theme'>;\n\nexport const ChartCardMenuPro: React.FC<ChartCardMenuProProps> = (props) => {\n const theme: Theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const [isLoading, setIsLoading] = React.useState(false);\n\n const options = theme.defaults.chartMenuOptions ?? [];\n\n if (options.length === 0) {\n return null;\n }\n\n const startAction = (onClick: () => void | Promise<void>) => {\n setTimeout(() => {\n Promise.resolve(onClick()).finally(() => setIsLoading(false));\n }, 100);\n };\n\n const handleExport = (onClick: (props: ChartCardMenuOptionOnClickProps) => void) => {\n setIsLoading(true);\n if (props.onCustomDownload) {\n props.onCustomDownload((args) => startAction(() => onClick(args)));\n return;\n }\n startAction(() => onClick({ ...props, theme }));\n };\n\n return (\n <Dropdown\n side=\"bottom\"\n align=\"end\"\n triggerComponent={isLoading ? <ChartCardLoading /> : <ActionIcon icon={IconDotsVertical} />}\n >\n <SelectFieldContent className={styles.list} autoFocus>\n {options.map((option, index) => {\n const label = i18n.t(option.labelKey);\n\n return (\n <SelectListOption\n key={index}\n label={label}\n onClick={() => handleExport(option.onClick)}\n startIcon={option.iconSrc ? <InlineSvgFromData src={option.iconSrc} /> : undefined}\n />\n );\n })}\n </SelectFieldContent>\n </Dropdown>\n );\n};\n","import React, { CSSProperties, useRef } from 'react';\nimport { IconAlertCircle } from '@tabler/icons-react';\nimport {\n Card,\n CardContent,\n CardFeedback,\n CardHeader,\n Skeleton,\n} from '@embeddable.com/remarkable-ui';\nimport styles from './ChartCard.module.css';\nimport { DataResponse, Dimension, Measure } from '@embeddable.com/core';\nimport { useTheme } from '@embeddable.com/react';\nimport { ChartCardLoading } from './ChartCardLoading/ChartCardLoading';\nimport { ChartCardMenuPro } from './ChartCardMenuPro/ChartCardMenuPro';\nimport { Theme } from '../../../../theme/theme.types';\nimport { i18n, i18nSetup } from '../../../../theme/i18n/i18n';\nimport clsx from 'clsx';\nimport { ChartCardMenuOptionOnClickProps } from '../../../../theme/defaults/defaults.ChartCardMenu.constants';\n\ntype ChartCardProps = {\n title: string;\n subtitle?: string;\n children: React.ReactNode;\n data: DataResponse;\n isLoading?: boolean;\n errorMessage?: string;\n style?: CSSProperties;\n dimensionsAndMeasures?: (Dimension | Measure)[];\n onCustomDownload?: (props: (props: ChartCardMenuOptionOnClickProps) => void) => void;\n};\n\nexport const ChartCard = React.forwardRef<HTMLDivElement, ChartCardProps>(\n (\n { title, subtitle, children, data, errorMessage, dimensionsAndMeasures = [], ...props },\n ref,\n ) => {\n const theme: Theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const chartRef = useRef<HTMLDivElement>(null);\n\n const hasData = Boolean(data?.data && data.data?.length > 0);\n\n const isLoading = !data || data?.isLoading;\n\n const getDisplay = () => {\n if (isLoading && !hasData) {\n return <Skeleton />;\n }\n\n if (errorMessage) {\n return (\n <CardFeedback\n variant=\"error\"\n icon={IconAlertCircle}\n title={i18n.t('charts.errorTitle')}\n message={errorMessage}\n />\n );\n }\n\n if (!hasData) {\n return (\n <CardFeedback\n title={i18n.t('charts.emptyTitle')}\n message={i18n.t('charts.emptyMessage')}\n />\n );\n }\n\n return children;\n };\n\n return (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n <Card className={styles.chartCard} {...(props as any)}>\n <CardHeader\n title={title}\n subtitle={subtitle}\n rightContent={\n <div className={styles.chartCardRightContent}>\n <div\n className={clsx(styles.fixedContent, isLoading ? styles.loading : styles.hidden)}\n >\n <ChartCardLoading />\n </div>\n <div\n className={clsx(styles.fixedContent, isLoading ? styles.hidden : styles.visible)}\n >\n <ChartCardMenuPro\n title={title}\n containerRef={chartRef}\n data={data?.data}\n dimensionsAndMeasures={dimensionsAndMeasures}\n onCustomDownload={props.onCustomDownload}\n />\n </div>\n </div>\n }\n />\n\n <CardContent ref={props.onCustomDownload ? ref : chartRef}>{getDisplay()}</CardContent>\n </Card>\n );\n },\n);\n\nChartCard.displayName = 'ChartCard';\n"],"names":["__iconNode","IconDotsVertical","createReactComponent","ChartCardLoading","jsx","IconLoader2","styles","InlineSvgFromData","src","className","rest","svgMarkup","ChartCardMenuPro","props","theme","useTheme","i18nSetup","isLoading","setIsLoading","React","options","startAction","onClick","handleExport","args","Dropdown","ActionIcon","SelectFieldContent","option","index","label","i18n","SelectListOption","ChartCard","title","subtitle","children","data","errorMessage","dimensionsAndMeasures","ref","chartRef","useRef","hasData","_a","getDisplay","Skeleton","CardFeedback","IconAlertCircle","Card","CardHeader","jsxs","clsx","CardContent"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1,6 +1,6 @@
1
1
  import { V as a, l as s } from "./index-CK9V-wz1.js";
2
2
  import { defineComponent as t } from "@embeddable.com/react";
3
- import { D as o } from "./index-BbEkJ2Zk.js";
3
+ import { D as o } from "./index-BFslD2mO.js";
4
4
  import { v as n, D as r, w as i, F as m, G as l, I as d, Z as u, J as p, K as c } from "./component.constants-Dhb2rtRh.js";
5
5
  const C = {
6
6
  name: "DonutChartPro",
@@ -1,4 +1,4 @@
1
- import { D as n } from "./index-CGLsIs8j.js";
1
+ import { D as n } from "./index-CGOYyhMg.js";
2
2
  import { V as s, l as a } from "./index-CK9V-wz1.js";
3
3
  import { defineComponent as r } from "@embeddable.com/react";
4
4
  import { v as o, D as t, w as l, F as i, G as m, I as d, Z as u, J as b, K as c } from "./component.constants-Dhb2rtRh.js";
@@ -1,6 +1,6 @@
1
1
  import { l } from "./index-CK9V-wz1.js";
2
2
  import { defineComponent as n } from "@embeddable.com/react";
3
- import { H as i } from "./index-CA0eQwx6.js";
3
+ import { H as i } from "./index-DsuuGokg.js";
4
4
  import { v as m, D as s, z as t, F as u, G as d, d as a, g as p, c as r, H as g } from "./component.constants-Dhb2rtRh.js";
5
5
  import { C as o } from "./Color.type.emb-CWTlQmpX.js";
6
6
  const c = {
@@ -1,6 +1,6 @@
1
1
  import { defineComponent as m } from "@embeddable.com/react";
2
2
  import { v as l, D as s, y as p, b as c, F as g, G as C, g as o, c as r } from "./component.constants-Dhb2rtRh.js";
3
- import { K as d } from "./index-C4uAHg_1.js";
3
+ import { K as d } from "./index-Dj2GCs_C.js";
4
4
  import { l as i } from "./index-CK9V-wz1.js";
5
5
  import { C as y } from "./ComparisonPeriod.type.emb-A4w1cgoZ.js";
6
6
  const D = {
@@ -1,6 +1,6 @@
1
1
  import { defineComponent as r } from "@embeddable.com/react";
2
2
  import { v as a, D as t, F as o, G as m, c as s } from "./component.constants-Dhb2rtRh.js";
3
- import { K as i } from "./index-DZypsIb4.js";
3
+ import { K as i } from "./index-CIrFPmqW.js";
4
4
  import { l as p } from "./index-CK9V-wz1.js";
5
5
  const n = {
6
6
  name: "KpiChartNumberPro",
@@ -1,6 +1,6 @@
1
1
  import { defineComponent as p } from "@embeddable.com/react";
2
2
  import { v as c, E as n, g as o, w as d, b as g, y, F as u, G as x, I as C, J as f, K as D, M as b, N as h, O as R, P as L, S as v, T as A, H as P } from "./component.constants-Dhb2rtRh.js";
3
- import { L as T } from "./index-CEyir5HV.js";
3
+ import { L as T } from "./index-Ci7quilT.js";
4
4
  import { V, l as s } from "./index-CK9V-wz1.js";
5
5
  import { C as w } from "./ComparisonPeriod.type.emb-A4w1cgoZ.js";
6
6
  import { C as l } from "./Color.type.emb-CWTlQmpX.js";
@@ -1,6 +1,6 @@
1
1
  import { defineComponent as i } from "@embeddable.com/react";
2
2
  import { v as l, E as s, g as a, z as n, F as t, G as o, I as r, J as m, K as u, M as d, N as c, O as p, P as x, S as L, T as f, H as C } from "./component.constants-Dhb2rtRh.js";
3
- import { L as h } from "./index-YMH6QSSf.js";
3
+ import { L as h } from "./index-CVTxkwt-.js";
4
4
  import { V as b, l as g } from "./index-CK9V-wz1.js";
5
5
  import { C as A } from "./Color.type.emb-CWTlQmpX.js";
6
6
  const D = {
@@ -1,6 +1,6 @@
1
1
  import { defineComponent as n } from "@embeddable.com/react";
2
2
  import { v as o, D as a, g as i, z as l, w as r, F as t, G as m, H as u, I as p, J as d, K as g, M as x, N as c, O as L, P as b, S as V, T as h } from "./component.constants-Dhb2rtRh.js";
3
- import { L as C } from "./index-BPkkRwcA.js";
3
+ import { L as C } from "./index-CC_OkY5h.js";
4
4
  import { V as s, l as D } from "./index-CK9V-wz1.js";
5
5
  const f = {
6
6
  name: "LineChartGroupedPro",
@@ -1,6 +1,6 @@
1
1
  import { V as a, l as s } from "./index-CK9V-wz1.js";
2
2
  import { defineComponent as t } from "@embeddable.com/react";
3
- import { P as o } from "./index-CvhDbU54.js";
3
+ import { P as o } from "./index-xD9YxZRB.js";
4
4
  import { v as i, D as n, w as r, F as m, G as l, I as d, Z as p, J as c, K as u } from "./component.constants-Dhb2rtRh.js";
5
5
  const C = {
6
6
  name: "PieChartPro",
@@ -1,6 +1,6 @@
1
1
  import { l as t } from "./index-CK9V-wz1.js";
2
2
  import { defineComponent as n } from "@embeddable.com/react";
3
- import { P as i } from "./index-DYa6RC1f.js";
3
+ import { P as i } from "./index-lk-Z0NGN.js";
4
4
  import { v as m, E as o, k as a, z as l, F as r, G as u, d, c as s, H as b } from "./component.constants-Dhb2rtRh.js";
5
5
  const c = {
6
6
  name: "PivotTablePro",
@@ -1,25 +1,25 @@
1
- import { V as t, l, m as u } from "./index-CK9V-wz1.js";
1
+ import { V as u, l as i, m as t } from "./index-CK9V-wz1.js";
2
2
  import { defineComponent as g } from "@embeddable.com/react";
3
- import { T as p } from "./index-CMy4Riwi.js";
4
- import { v as D, C as r, s as b, e as f, F as C, G as w, g as A, d as M, H as k, x as h } from "./component.constants-Dhb2rtRh.js";
5
- const v = {
3
+ import { T as f } from "./index-CLN53xva.js";
4
+ import { v as p, C as d, s as D, e as b, F as C, G as w, g as A, d as R, H as h, x as M } from "./component.constants-Dhb2rtRh.js";
5
+ const k = {
6
6
  name: "TableChartPaginated",
7
7
  label: "Table Chart - Paginated",
8
8
  category: "Table Charts",
9
9
  inputs: [
10
- D,
10
+ p,
11
11
  {
12
- ...r,
12
+ ...d,
13
13
  label: "Columns",
14
- inputs: [...r.inputs, b, f]
14
+ inputs: [...d.inputs, D, b]
15
15
  },
16
16
  C,
17
17
  w,
18
18
  { ...A, name: "showIndex", label: "Show Index Column", defaultValue: !0 },
19
- { ...M, name: "displayNullAs", label: "Display null as" },
20
- { ...k, label: "Max Results to Download" },
19
+ { ...R, name: "displayNullAs", label: "Display null as" },
20
+ { ...h, label: "Max Results to Download" },
21
21
  {
22
- ...h,
22
+ ...M,
23
23
  label: "Dimension to set on click",
24
24
  name: "clickDimension",
25
25
  category: "Data Mapping for Interactions",
@@ -39,62 +39,69 @@ const v = {
39
39
  ]
40
40
  }
41
41
  ]
42
- }, R = {
42
+ }, v = {
43
43
  page: 0,
44
44
  pageSize: void 0,
45
45
  sort: void 0,
46
- isLoadingDownloadData: !1
47
- }, I = g(p, v, {
46
+ isLoadingDownloadData: !1,
47
+ hasTotalResults: !1
48
+ }, I = g(f, k, {
48
49
  /* @ts-expect-error - to be fixed in @embeddable.com/react */
49
- props: (n, [e, d]) => {
50
- const a = n.dimensionsAndMeasures.find(
51
- (i) => {
52
- var o;
53
- return i.name === ((o = e == null ? void 0 : e.sort) == null ? void 0 : o.id);
50
+ props: (o, [e, m]) => {
51
+ const s = o.dimensionsAndMeasures.find(
52
+ (a) => {
53
+ var n;
54
+ return a.name === ((n = e == null ? void 0 : e.sort) == null ? void 0 : n.id);
54
55
  }
55
- ), s = a && (e != null && e.sort) ? [
56
+ ), l = s && (e != null && e.sort) ? [
56
57
  {
57
- property: a,
58
+ property: s,
58
59
  direction: e.sort.direction
59
60
  }
60
- ] : [], m = n.dimensionsAndMeasures.some(
61
- (i) => {
62
- var o;
63
- return i.name === ((o = n.clickDimension) == null ? void 0 : o.name);
61
+ ] : [], c = o.dimensionsAndMeasures.some(
62
+ (a) => {
63
+ var n;
64
+ return a.name === ((n = o.clickDimension) == null ? void 0 : n.name);
64
65
  }
65
- ), c = [
66
- ...n.dimensionsAndMeasures,
67
- m ? [] : n.clickDimension
66
+ ), r = [
67
+ ...o.dimensionsAndMeasures,
68
+ c ? [] : o.clickDimension
68
69
  ];
69
70
  return {
70
- ...n,
71
- state: u(R, e ?? {}),
71
+ ...o,
72
+ state: t(v, e ?? {}),
72
73
  // Merge with default state
73
- setState: d,
74
- results: e != null && e.pageSize ? l({
75
- from: n.dataset,
76
- select: c,
74
+ setState: m,
75
+ results: e != null && e.pageSize ? i({
76
+ from: o.dataset,
77
+ select: r,
77
78
  offset: e.page * e.pageSize,
78
79
  limit: e.pageSize,
79
- countRows: !0,
80
- orderBy: s
80
+ orderBy: l
81
81
  }) : void 0,
82
- allResults: e != null && e.isLoadingDownloadData ? l({
83
- from: n.dataset,
84
- select: n.dimensionsAndMeasures,
85
- orderBy: s,
86
- limit: n.maxResults
82
+ totalResults: e != null && e.hasTotalResults ? void 0 : i({
83
+ from: o.dataset,
84
+ select: r,
85
+ offset: 0,
86
+ limit: 0,
87
+ countRows: !0
88
+ }),
89
+ allResults: e != null && e.isLoadingDownloadData ? i({
90
+ from: o.dataset,
91
+ select: o.dimensionsAndMeasures,
92
+ orderBy: l,
93
+ limit: o.maxResults
87
94
  }) : void 0
88
95
  };
89
96
  },
90
97
  events: {
91
- onRowClicked: (n) => ({
92
- rowDimensionValue: n !== void 0 ? n : t.noFilter()
98
+ onRowClicked: (o) => ({
99
+ rowDimensionValue: o !== void 0 ? o : u.noFilter()
93
100
  })
94
101
  }
95
102
  });
96
103
  export {
97
104
  I as default,
98
- v as meta
105
+ k as meta
99
106
  };
100
107
  //# sourceMappingURL=TableChartPaginated.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TableChartPaginated.js","sources":["../src/components/charts/tables/TableChartPaginated/TableChartPaginated.emb.ts"],"sourcesContent":["import { loadData, OrderBy, Value } from '@embeddable.com/core';\nimport { defineComponent, EmbeddedComponentMeta, Inputs } from '@embeddable.com/react';\nimport TablePaginatedChart, {\n TableChartPaginatedProOnRowClickArg,\n TableChartPaginatedProState,\n} from './index';\nimport {\n dataset,\n description,\n title,\n dimensionsAndMeasures,\n subInputWidth,\n subInputAlign,\n genericBoolean,\n genericString,\n maxResults,\n dimensionSimple,\n} from '../../../component.constants';\nimport { mergician } from 'mergician';\n\nexport const meta = {\n name: 'TableChartPaginated',\n label: 'Table Chart - Paginated',\n category: 'Table Charts',\n inputs: [\n dataset,\n {\n ...dimensionsAndMeasures,\n label: 'Columns',\n inputs: [...dimensionsAndMeasures.inputs, subInputWidth, subInputAlign],\n },\n title,\n description,\n\n { ...genericBoolean, name: 'showIndex', label: 'Show Index Column', defaultValue: true },\n { ...genericString, name: 'displayNullAs', label: 'Display null as' },\n { ...maxResults, label: 'Max Results to Download' },\n {\n ...dimensionSimple,\n label: 'Dimension to set on click',\n name: 'clickDimension',\n category: 'Data Mapping for Interactions',\n required: false,\n },\n ],\n events: [\n {\n name: 'onRowClicked',\n label: 'A row is clicked',\n properties: [\n {\n name: 'rowDimensionValue',\n label: 'Clicked Row Dimension Value',\n type: 'string',\n },\n ],\n },\n ],\n} as const satisfies EmbeddedComponentMeta;\n\nconst defaultState: TableChartPaginatedProState = {\n page: 0,\n pageSize: undefined,\n sort: undefined,\n isLoadingDownloadData: false,\n};\n\nexport default defineComponent(TablePaginatedChart, meta, {\n /* @ts-expect-error - to be fixed in @embeddable.com/react */\n props: (\n inputs: Inputs<typeof meta>,\n [state, setState]: [TableChartPaginatedProState, (state: TableChartPaginatedProState) => void],\n ) => {\n const orderDimensionAndMeasure = inputs.dimensionsAndMeasures.find(\n (x) => x.name === state?.sort?.id,\n );\n\n const orderBy: OrderBy[] =\n orderDimensionAndMeasure && state?.sort\n ? [\n {\n property: orderDimensionAndMeasure,\n direction: state.sort.direction,\n },\n ]\n : [];\n\n const clickDimensionInDimensionsAndMeasures = inputs.dimensionsAndMeasures.some(\n (dimOrMeas) => dimOrMeas.name === inputs.clickDimension?.name,\n );\n\n const dimensionsAndMeasuresToLoad = [\n ...inputs.dimensionsAndMeasures,\n clickDimensionInDimensionsAndMeasures ? [] : inputs.clickDimension,\n ];\n\n return {\n ...inputs,\n\n state: mergician(defaultState, state ?? {}), // Merge with default state\n setState,\n\n results: state?.pageSize\n ? loadData({\n from: inputs.dataset,\n select: dimensionsAndMeasuresToLoad,\n offset: state.page * state.pageSize,\n limit: state.pageSize,\n countRows: true,\n orderBy,\n })\n : undefined,\n allResults: state?.isLoadingDownloadData\n ? loadData({\n from: inputs.dataset,\n select: inputs.dimensionsAndMeasures,\n orderBy,\n limit: inputs.maxResults,\n })\n : undefined,\n };\n },\n events: {\n onRowClicked: (rowDimensionValue: TableChartPaginatedProOnRowClickArg) => {\n return {\n rowDimensionValue: rowDimensionValue !== undefined ? rowDimensionValue : Value.noFilter(),\n };\n },\n },\n});\n"],"names":["meta","dataset","dimensionsAndMeasures","subInputWidth","subInputAlign","title","description","genericBoolean","genericString","maxResults","dimensionSimple","defaultState","TableChartPaginated_emb","defineComponent","TablePaginatedChart","inputs","state","setState","orderDimensionAndMeasure","x","_a","orderBy","clickDimensionInDimensionsAndMeasures","dimOrMeas","dimensionsAndMeasuresToLoad","mergician","loadData","rowDimensionValue","Value"],"mappings":";;;;AAoBO,MAAMA,IAAO;AAAA,EAClB,MAAM;AAAA,EACN,OAAO;AAAA,EACP,UAAU;AAAA,EACV,QAAQ;AAAA,IACNC;AAAA,IACA;AAAA,MACE,GAAGC;AAAA,MACH,OAAO;AAAA,MACP,QAAQ,CAAC,GAAGA,EAAsB,QAAQC,GAAeC,CAAa;AAAA,IAAA;AAAA,IAExEC;AAAA,IACAC;AAAA,IAEA,EAAE,GAAGC,GAAgB,MAAM,aAAa,OAAO,qBAAqB,cAAc,GAAA;AAAA,IAClF,EAAE,GAAGC,GAAe,MAAM,iBAAiB,OAAO,kBAAA;AAAA,IAClD,EAAE,GAAGC,GAAY,OAAO,0BAAA;AAAA,IACxB;AAAA,MACE,GAAGC;AAAA,MACH,OAAO;AAAA,MACP,MAAM;AAAA,MACN,UAAU;AAAA,MACV,UAAU;AAAA,IAAA;AAAA,EACZ;AAAA,EAEF,QAAQ;AAAA,IACN;AAAA,MACE,MAAM;AAAA,MACN,OAAO;AAAA,MACP,YAAY;AAAA,QACV;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,QAAA;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAEJ,GAEMC,IAA4C;AAAA,EAChD,MAAM;AAAA,EACN,UAAU;AAAA,EACV,MAAM;AAAA,EACN,uBAAuB;AACzB,GAEAC,IAAeC,EAAgBC,GAAqBd,GAAM;AAAA;AAAA,EAExD,OAAO,CACLe,GACA,CAACC,GAAOC,CAAQ,MACb;AACH,UAAMC,IAA2BH,EAAO,sBAAsB;AAAA,MAC5D,CAACI,MAAA;;AAAM,eAAAA,EAAE,WAASC,IAAAJ,KAAA,gBAAAA,EAAO,SAAP,gBAAAI,EAAa;AAAA;AAAA,IAAA,GAG3BC,IACJH,MAA4BF,KAAA,QAAAA,EAAO,QAC/B;AAAA,MACE;AAAA,QACE,UAAUE;AAAA,QACV,WAAWF,EAAM,KAAK;AAAA,MAAA;AAAA,IACxB,IAEF,CAAA,GAEAM,IAAwCP,EAAO,sBAAsB;AAAA,MACzE,CAACQ,MAAA;;AAAc,eAAAA,EAAU,WAASH,IAAAL,EAAO,mBAAP,gBAAAK,EAAuB;AAAA;AAAA,IAAA,GAGrDI,IAA8B;AAAA,MAClC,GAAGT,EAAO;AAAA,MACVO,IAAwC,CAAA,IAAKP,EAAO;AAAA,IAAA;AAGtD,WAAO;AAAA,MACL,GAAGA;AAAA,MAEH,OAAOU,EAAUd,GAAcK,KAAS,CAAA,CAAE;AAAA;AAAA,MAC1C,UAAAC;AAAA,MAEA,SAASD,KAAA,QAAAA,EAAO,WACZU,EAAS;AAAA,QACP,MAAMX,EAAO;AAAA,QACb,QAAQS;AAAA,QACR,QAAQR,EAAM,OAAOA,EAAM;AAAA,QAC3B,OAAOA,EAAM;AAAA,QACb,WAAW;AAAA,QACX,SAAAK;AAAA,MAAA,CACD,IACD;AAAA,MACJ,YAAYL,KAAA,QAAAA,EAAO,wBACfU,EAAS;AAAA,QACP,MAAMX,EAAO;AAAA,QACb,QAAQA,EAAO;AAAA,QACf,SAAAM;AAAA,QACA,OAAON,EAAO;AAAA,MAAA,CACf,IACD;AAAA,IAAA;AAAA,EAER;AAAA,EACA,QAAQ;AAAA,IACN,cAAc,CAACY,OACN;AAAA,MACL,mBAAmBA,MAAsB,SAAYA,IAAoBC,EAAM,SAAA;AAAA,IAAS;AAAA,EAE5F;AAEJ,CAAC;"}
1
+ {"version":3,"file":"TableChartPaginated.js","sources":["../src/components/charts/tables/TableChartPaginated/TableChartPaginated.emb.ts"],"sourcesContent":["import { loadData, OrderBy, Value } from '@embeddable.com/core';\nimport { defineComponent, EmbeddedComponentMeta, Inputs } from '@embeddable.com/react';\nimport TablePaginatedChart, {\n TableChartPaginatedProOnRowClickArg,\n TableChartPaginatedProState,\n} from './index';\nimport {\n dataset,\n description,\n title,\n dimensionsAndMeasures,\n subInputWidth,\n subInputAlign,\n genericBoolean,\n genericString,\n maxResults,\n dimensionSimple,\n} from '../../../component.constants';\nimport { mergician } from 'mergician';\n\nexport const meta = {\n name: 'TableChartPaginated',\n label: 'Table Chart - Paginated',\n category: 'Table Charts',\n inputs: [\n dataset,\n {\n ...dimensionsAndMeasures,\n label: 'Columns',\n inputs: [...dimensionsAndMeasures.inputs, subInputWidth, subInputAlign],\n },\n title,\n description,\n\n { ...genericBoolean, name: 'showIndex', label: 'Show Index Column', defaultValue: true },\n { ...genericString, name: 'displayNullAs', label: 'Display null as' },\n { ...maxResults, label: 'Max Results to Download' },\n {\n ...dimensionSimple,\n label: 'Dimension to set on click',\n name: 'clickDimension',\n category: 'Data Mapping for Interactions',\n required: false,\n },\n ],\n events: [\n {\n name: 'onRowClicked',\n label: 'A row is clicked',\n properties: [\n {\n name: 'rowDimensionValue',\n label: 'Clicked Row Dimension Value',\n type: 'string',\n },\n ],\n },\n ],\n} as const satisfies EmbeddedComponentMeta;\n\nconst defaultState: TableChartPaginatedProState = {\n page: 0,\n pageSize: undefined,\n sort: undefined,\n isLoadingDownloadData: false,\n hasTotalResults: false,\n};\n\nexport default defineComponent(TablePaginatedChart, meta, {\n /* @ts-expect-error - to be fixed in @embeddable.com/react */\n props: (\n inputs: Inputs<typeof meta>,\n [state, setState]: [TableChartPaginatedProState, (state: TableChartPaginatedProState) => void],\n ) => {\n const orderDimensionAndMeasure = inputs.dimensionsAndMeasures.find(\n (x) => x.name === state?.sort?.id,\n );\n\n const orderBy: OrderBy[] =\n orderDimensionAndMeasure && state?.sort\n ? [\n {\n property: orderDimensionAndMeasure,\n direction: state.sort.direction,\n },\n ]\n : [];\n\n const clickDimensionInDimensionsAndMeasures = inputs.dimensionsAndMeasures.some(\n (dimOrMeas) => dimOrMeas.name === inputs.clickDimension?.name,\n );\n\n const dimensionsAndMeasuresToLoad = [\n ...inputs.dimensionsAndMeasures,\n clickDimensionInDimensionsAndMeasures ? [] : inputs.clickDimension,\n ];\n\n return {\n ...inputs,\n\n state: mergician(defaultState, state ?? {}), // Merge with default state\n setState,\n\n results: state?.pageSize\n ? loadData({\n from: inputs.dataset,\n select: dimensionsAndMeasuresToLoad,\n offset: state.page * state.pageSize,\n limit: state.pageSize,\n orderBy,\n })\n : undefined,\n totalResults: !state?.hasTotalResults\n ? loadData({\n from: inputs.dataset,\n select: dimensionsAndMeasuresToLoad,\n offset: 0,\n limit: 0,\n countRows: true,\n })\n : undefined,\n allResults: state?.isLoadingDownloadData\n ? loadData({\n from: inputs.dataset,\n select: inputs.dimensionsAndMeasures,\n orderBy,\n limit: inputs.maxResults,\n })\n : undefined,\n };\n },\n events: {\n onRowClicked: (rowDimensionValue: TableChartPaginatedProOnRowClickArg) => {\n return {\n rowDimensionValue: rowDimensionValue !== undefined ? rowDimensionValue : Value.noFilter(),\n };\n },\n },\n});\n"],"names":["meta","dataset","dimensionsAndMeasures","subInputWidth","subInputAlign","title","description","genericBoolean","genericString","maxResults","dimensionSimple","defaultState","TableChartPaginated_emb","defineComponent","TablePaginatedChart","inputs","state","setState","orderDimensionAndMeasure","x","_a","orderBy","clickDimensionInDimensionsAndMeasures","dimOrMeas","dimensionsAndMeasuresToLoad","mergician","loadData","rowDimensionValue","Value"],"mappings":";;;;AAoBO,MAAMA,IAAO;AAAA,EAClB,MAAM;AAAA,EACN,OAAO;AAAA,EACP,UAAU;AAAA,EACV,QAAQ;AAAA,IACNC;AAAA,IACA;AAAA,MACE,GAAGC;AAAA,MACH,OAAO;AAAA,MACP,QAAQ,CAAC,GAAGA,EAAsB,QAAQC,GAAeC,CAAa;AAAA,IAAA;AAAA,IAExEC;AAAA,IACAC;AAAA,IAEA,EAAE,GAAGC,GAAgB,MAAM,aAAa,OAAO,qBAAqB,cAAc,GAAA;AAAA,IAClF,EAAE,GAAGC,GAAe,MAAM,iBAAiB,OAAO,kBAAA;AAAA,IAClD,EAAE,GAAGC,GAAY,OAAO,0BAAA;AAAA,IACxB;AAAA,MACE,GAAGC;AAAA,MACH,OAAO;AAAA,MACP,MAAM;AAAA,MACN,UAAU;AAAA,MACV,UAAU;AAAA,IAAA;AAAA,EACZ;AAAA,EAEF,QAAQ;AAAA,IACN;AAAA,MACE,MAAM;AAAA,MACN,OAAO;AAAA,MACP,YAAY;AAAA,QACV;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,QAAA;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAEJ,GAEMC,IAA4C;AAAA,EAChD,MAAM;AAAA,EACN,UAAU;AAAA,EACV,MAAM;AAAA,EACN,uBAAuB;AAAA,EACvB,iBAAiB;AACnB,GAEAC,IAAeC,EAAgBC,GAAqBd,GAAM;AAAA;AAAA,EAExD,OAAO,CACLe,GACA,CAACC,GAAOC,CAAQ,MACb;AACH,UAAMC,IAA2BH,EAAO,sBAAsB;AAAA,MAC5D,CAACI,MAAA;;AAAM,eAAAA,EAAE,WAASC,IAAAJ,KAAA,gBAAAA,EAAO,SAAP,gBAAAI,EAAa;AAAA;AAAA,IAAA,GAG3BC,IACJH,MAA4BF,KAAA,QAAAA,EAAO,QAC/B;AAAA,MACE;AAAA,QACE,UAAUE;AAAA,QACV,WAAWF,EAAM,KAAK;AAAA,MAAA;AAAA,IACxB,IAEF,CAAA,GAEAM,IAAwCP,EAAO,sBAAsB;AAAA,MACzE,CAACQ,MAAA;;AAAc,eAAAA,EAAU,WAASH,IAAAL,EAAO,mBAAP,gBAAAK,EAAuB;AAAA;AAAA,IAAA,GAGrDI,IAA8B;AAAA,MAClC,GAAGT,EAAO;AAAA,MACVO,IAAwC,CAAA,IAAKP,EAAO;AAAA,IAAA;AAGtD,WAAO;AAAA,MACL,GAAGA;AAAA,MAEH,OAAOU,EAAUd,GAAcK,KAAS,CAAA,CAAE;AAAA;AAAA,MAC1C,UAAAC;AAAA,MAEA,SAASD,KAAA,QAAAA,EAAO,WACZU,EAAS;AAAA,QACP,MAAMX,EAAO;AAAA,QACb,QAAQS;AAAA,QACR,QAAQR,EAAM,OAAOA,EAAM;AAAA,QAC3B,OAAOA,EAAM;AAAA,QACb,SAAAK;AAAA,MAAA,CACD,IACD;AAAA,MACJ,cAAeL,KAAA,QAAAA,EAAO,kBAQlB,SAPAU,EAAS;AAAA,QACP,MAAMX,EAAO;AAAA,QACb,QAAQS;AAAA,QACR,QAAQ;AAAA,QACR,OAAO;AAAA,QACP,WAAW;AAAA,MAAA,CACZ;AAAA,MAEL,YAAYR,KAAA,QAAAA,EAAO,wBACfU,EAAS;AAAA,QACP,MAAMX,EAAO;AAAA,QACb,QAAQA,EAAO;AAAA,QACf,SAAAM;AAAA,QACA,OAAON,EAAO;AAAA,MAAA,CACf,IACD;AAAA,IAAA;AAAA,EAER;AAAA,EACA,QAAQ;AAAA,IACN,cAAc,CAACY,OACN;AAAA,MACL,mBAAmBA,MAAsB,SAAYA,IAAoBC,EAAM,SAAA;AAAA,IAAS;AAAA,EAE5F;AAEJ,CAAC;"}
@@ -0,0 +1,66 @@
1
+ import { g as B, d as s, u as E } from "./utc-B2gCnkBk.js";
2
+ import { i as F, q as M } from "./quarterOfYear-wgcl4CRi.js";
3
+ import { useTheme as W } from "@embeddable.com/react";
4
+ import { useMemo as Z } from "react";
5
+ var S = { exports: {} }, b = S.exports, j;
6
+ function C() {
7
+ return j || (j = 1, (function(O, h) {
8
+ (function(e, t) {
9
+ O.exports = t();
10
+ })(b, (function() {
11
+ return function(e, t) {
12
+ t.prototype.isSameOrBefore = function(f, o) {
13
+ return this.isSame(f, o) || this.isBefore(f, o);
14
+ };
15
+ };
16
+ }));
17
+ })(S)), S.exports;
18
+ }
19
+ var G = C();
20
+ const L = /* @__PURE__ */ B(G);
21
+ s.extend(E);
22
+ s.extend(F);
23
+ s.extend(L);
24
+ s.extend(M);
25
+ function D(O) {
26
+ const h = W(), { results: e, dimension: t, orderDirection: f = "asc", externalDateBounds: o } = O;
27
+ return Z(() => {
28
+ var k, q, I, R, V, w, $;
29
+ const m = (k = t.inputs) == null ? void 0 : k.granularity, n = t.name, a = (q = t.inputs) == null ? void 0 : q.dateBounds;
30
+ if (!m || !n || e != null && e.isLoading || ((I = e == null ? void 0 : e.data) == null ? void 0 : I.length) === 0)
31
+ return e;
32
+ const c = a != null && a.relativeTimeString ? (R = h.defaults.dateRangesOptions.find((r) => r.value === (a == null ? void 0 : a.relativeTimeString))) == null ? void 0 : R.getRange() : a;
33
+ if (t.nativeType !== "time") return e;
34
+ const u = [...(e == null ? void 0 : e.data) ?? []].sort((r, i) => {
35
+ const l = r[n], p = i[n];
36
+ return l == null ? 1 : p == null ? -1 : s.utc(l).diff(s.utc(p));
37
+ }), x = s.utc(
38
+ (o == null ? void 0 : o.from) ?? (c == null ? void 0 : c.from) ?? ((V = u[0]) == null ? void 0 : V[n])
39
+ ), y = s.utc(
40
+ (o == null ? void 0 : o.to) ?? (c == null ? void 0 : c.to) ?? ((w = u[u.length - 1]) == null ? void 0 : w[n]) ?? (($ = [...u].reverse().find((r) => (r == null ? void 0 : r[n]) != null)) == null ? void 0 : $[n])
41
+ );
42
+ if (!x.isValid() || !y.isValid())
43
+ return { ...e, data: [] };
44
+ const v = /* @__PURE__ */ new Map();
45
+ for (const r of u) {
46
+ const i = r[n];
47
+ if (i == null) continue;
48
+ const l = s.utc(i).toISOString().split("Z")[0], p = v.get(l) ?? [];
49
+ p.push(r), v.set(l, p);
50
+ }
51
+ const d = [];
52
+ let g = x.startOf(m === "week" ? "isoWeek" : m);
53
+ for (; g.isSameOrBefore(y); ) {
54
+ const r = g.toISOString().split("Z")[0], i = v.get(r);
55
+ i && i.length > 0 ? d.push(...i) : d.push({ [n]: r }), g = g.add(1, m);
56
+ }
57
+ return f === "desc" && d.reverse(), {
58
+ ...e,
59
+ data: d
60
+ };
61
+ }, [e, t, f, h]);
62
+ }
63
+ export {
64
+ D as u
65
+ };
66
+ //# sourceMappingURL=charts.fillGaps.hooks-Dd-VYdOE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"charts.fillGaps.hooks-Dd-VYdOE.js","sources":["../node_modules/dayjs/plugin/isSameOrBefore.js","../src/components/charts/charts.fillGaps.hooks.ts"],"sourcesContent":["!function(e,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isSameOrBefore=i()}(this,(function(){\"use strict\";return function(e,i){i.prototype.isSameOrBefore=function(e,i){return this.isSame(e,i)||this.isBefore(e,i)}}}));","import { DataResponse, Dimension, TimeRange } from '@embeddable.com/core';\nimport dayjs, { QUnitType } from 'dayjs';\nimport isoWeek from 'dayjs/plugin/isoWeek.js';\nimport utc from 'dayjs/plugin/utc.js';\nimport isSameOrBefore from 'dayjs/plugin/isSameOrBefore.js';\nimport { Theme } from '../../theme/theme.types';\nimport { useTheme } from '@embeddable.com/react';\nimport { useMemo } from 'react';\nimport quarterOfYear from 'dayjs/plugin/quarterOfYear.js';\n\ndayjs.extend(utc);\ndayjs.extend(isoWeek);\ndayjs.extend(isSameOrBefore);\ndayjs.extend(quarterOfYear);\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype DataRecord = { [key: string]: any };\n\ntype UseFillGapsProps = {\n results: DataResponse | undefined;\n dimension: Dimension;\n orderDirection?: 'asc' | 'desc';\n externalDateBounds?: TimeRange;\n};\n\nexport function useFillGaps(props: UseFillGapsProps): DataResponse {\n const theme = useTheme() as Theme;\n const { results, dimension, orderDirection = 'asc', externalDateBounds } = props;\n\n const processed = useMemo(() => {\n const granularity = dimension.inputs?.granularity;\n const dimensionName = dimension.name;\n const dateBoundsTmp: TimeRange = dimension.inputs?.dateBounds;\n\n if (!granularity || !dimensionName || results?.isLoading || results?.data?.length === 0)\n return results;\n\n const dateBounds = dateBoundsTmp?.relativeTimeString\n ? theme.defaults.dateRangesOptions\n .find((option) => option.value === dateBoundsTmp?.relativeTimeString)\n ?.getRange()\n : dateBoundsTmp;\n\n if (dimension.nativeType !== 'time') return results;\n\n const sortedResults = [...(results?.data ?? [])].sort((a, b) => {\n const aVal = a[dimensionName];\n const bVal = b[dimensionName];\n if (aVal == null) return 1;\n if (bVal == null) return -1;\n return dayjs.utc(aVal).diff(dayjs.utc(bVal));\n });\n\n // Determine the full date range even if data is empty\n const from = dayjs.utc(\n externalDateBounds?.from ?? dateBounds?.from ?? sortedResults[0]?.[dimensionName],\n );\n\n const to = dayjs.utc(\n externalDateBounds?.to ??\n dateBounds?.to ??\n sortedResults[sortedResults.length - 1]?.[dimensionName] ??\n [...sortedResults].reverse().find((item) => item?.[dimensionName] != null)?.[dimensionName],\n );\n\n // If we *still* don’t have valid date bounds, bail out safely\n if (!from.isValid() || !to.isValid()) {\n return { ...results, data: [] };\n }\n\n const recordsByDate = new Map<string, DataRecord[]>();\n for (const record of sortedResults) {\n const value = record[dimensionName];\n if (value == null) continue;\n const key = dayjs.utc(value).toISOString().split('Z')[0]!;\n const arr = recordsByDate.get(key) ?? [];\n arr.push(record);\n recordsByDate.set(key, arr);\n }\n\n const filled: DataRecord[] = [];\n let current = from.startOf((granularity === 'week' ? 'isoWeek' : granularity) as QUnitType);\n\n while (current.isSameOrBefore(to)) {\n const key = current.toISOString().split('Z')[0]!;\n const records = recordsByDate.get(key);\n\n if (records && records.length > 0) {\n filled.push(...records);\n } else {\n filled.push({ [dimensionName]: key });\n }\n\n current = current.add(1, granularity as QUnitType);\n }\n\n if (orderDirection === 'desc') {\n filled.reverse();\n }\n\n return {\n ...results,\n data: filled,\n };\n }, [results, dimension, orderDirection, theme]);\n\n return processed as DataResponse;\n}\n"],"names":["i","module","this","e","dayjs","utc","isoWeek","isSameOrBefore","quarterOfYear","useFillGaps","props","theme","useTheme","results","dimension","orderDirection","externalDateBounds","useMemo","granularity","_a","dimensionName","dateBoundsTmp","_b","_c","dateBounds","_d","option","sortedResults","a","b","aVal","bVal","from","_e","to","_f","_g","item","recordsByDate","record","value","key","arr","filled","current","records"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1 +1 @@
1
- {"version":3,"file":"charts.fillGaps.hooks.d.ts","sourceRoot":"","sources":["../../../src/components/charts/charts.fillGaps.hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAkB1E,KAAK,gBAAgB,GAAG;IACtB,OAAO,EAAE,YAAY,GAAG,SAAS,CAAC;IAClC,SAAS,EAAE,SAAS,CAAC;IACrB,cAAc,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IAChC,kBAAkB,CAAC,EAAE,SAAS,CAAC;CAChC,CAAC;AAEF,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,YAAY,CAiFjE"}
1
+ {"version":3,"file":"charts.fillGaps.hooks.d.ts","sourceRoot":"","sources":["../../../src/components/charts/charts.fillGaps.hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAkB1E,KAAK,gBAAgB,GAAG;IACtB,OAAO,EAAE,YAAY,GAAG,SAAS,CAAC;IAClC,SAAS,EAAE,SAAS,CAAC;IACrB,cAAc,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IAChC,kBAAkB,CAAC,EAAE,SAAS,CAAC;CAChC,CAAC;AAEF,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,YAAY,CAkFjE"}
@@ -1 +1 @@
1
- {"version":3,"file":"ChartCard.d.ts","sourceRoot":"","sources":["../../../../../src/components/charts/shared/ChartCard/ChartCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAU,MAAM,OAAO,CAAC;AAUrD,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAOxE,OAAO,EAAE,+BAA+B,EAAE,MAAM,6DAA6D,CAAC;AAE9G,KAAK,cAAc,GAAG;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,IAAI,EAAE,YAAY,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,qBAAqB,CAAC,EAAE,CAAC,SAAS,GAAG,OAAO,CAAC,EAAE,CAAC;IAChD,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,+BAA+B,KAAK,IAAI,KAAK,IAAI,CAAC;CACtF,CAAC;AAEF,eAAO,MAAM,SAAS,uFAyErB,CAAC"}
1
+ {"version":3,"file":"ChartCard.d.ts","sourceRoot":"","sources":["../../../../../src/components/charts/shared/ChartCard/ChartCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAU,MAAM,OAAO,CAAC;AAUrD,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAOxE,OAAO,EAAE,+BAA+B,EAAE,MAAM,6DAA6D,CAAC;AAE9G,KAAK,cAAc,GAAG;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,IAAI,EAAE,YAAY,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,qBAAqB,CAAC,EAAE,CAAC,SAAS,GAAG,OAAO,CAAC,EAAE,CAAC;IAChD,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,+BAA+B,KAAK,IAAI,KAAK,IAAI,CAAC;CACtF,CAAC;AAEF,eAAO,MAAM,SAAS,uFA0ErB,CAAC"}
@@ -8,20 +8,22 @@ export type TableChartPaginatedProState = {
8
8
  direction: OrderDirection;
9
9
  } | undefined;
10
10
  isLoadingDownloadData: boolean;
11
+ hasTotalResults: boolean;
11
12
  };
12
13
  type TableChartPaginatedProProps = {
13
- embeddableState: TableChartPaginatedProState;
14
- title: string;
14
+ allResults?: DataResponse;
15
+ clickDimension?: Dimension;
15
16
  description: string;
17
+ dimensionsAndMeasures: DimensionOrMeasure[];
16
18
  displayNullAs?: string;
19
+ embeddableState: TableChartPaginatedProState;
17
20
  results: DataResponse;
18
- dimensionsAndMeasures: DimensionOrMeasure[];
19
21
  showIndex: boolean;
20
- allResults?: DataResponse;
21
- clickDimension?: Dimension;
22
22
  state: TableChartPaginatedProState;
23
- setState: React.Dispatch<React.SetStateAction<TableChartPaginatedProState>>;
23
+ title: string;
24
+ totalResults?: DataResponse;
24
25
  onRowClicked: (rowDimensionValue: TableChartPaginatedProOnRowClickArg) => void;
26
+ setState: React.Dispatch<React.SetStateAction<TableChartPaginatedProState>>;
25
27
  };
26
28
  declare const TableChartPaginatedPro: (props: TableChartPaginatedProProps) => import("react/jsx-runtime").JSX.Element;
27
29
  export default TableChartPaginatedPro;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/charts/tables/TableChartPaginated/index.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAkCnG,MAAM,MAAM,mCAAmC,GAAG,MAAM,GAAG,IAAI,CAAC;AAChE,MAAM,MAAM,2BAA2B,GAAG;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,cAAc,CAAA;KAAE,GAAG,SAAS,CAAC;IAC7D,qBAAqB,EAAE,OAAO,CAAC;CAChC,CAAC;AAEF,KAAK,2BAA2B,GAAG;IACjC,eAAe,EAAE,2BAA2B,CAAC;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,YAAY,CAAC;IACtB,qBAAqB,EAAE,kBAAkB,EAAE,CAAC;IAC5C,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,YAAY,CAAC;IAC1B,cAAc,CAAC,EAAE,SAAS,CAAC;IAC3B,KAAK,EAAE,2BAA2B,CAAC;IACnC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,2BAA2B,CAAC,CAAC,CAAC;IAC5E,YAAY,EAAE,CAAC,iBAAiB,EAAE,mCAAmC,KAAK,IAAI,CAAC;CAChF,CAAC;AAEF,QAAA,MAAM,sBAAsB,GAAI,OAAO,2BAA2B,4CAyIjE,CAAC;AAEF,eAAe,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/charts/tables/TableChartPaginated/index.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAkCnG,MAAM,MAAM,mCAAmC,GAAG,MAAM,GAAG,IAAI,CAAC;AAChE,MAAM,MAAM,2BAA2B,GAAG;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,cAAc,CAAA;KAAE,GAAG,SAAS,CAAC;IAC7D,qBAAqB,EAAE,OAAO,CAAC;IAC/B,eAAe,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEF,KAAK,2BAA2B,GAAG;IACjC,UAAU,CAAC,EAAE,YAAY,CAAC;IAC1B,cAAc,CAAC,EAAE,SAAS,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,qBAAqB,EAAE,kBAAkB,EAAE,CAAC;IAC5C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,2BAA2B,CAAC;IAC7C,OAAO,EAAE,YAAY,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,2BAA2B,CAAC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,YAAY,EAAE,CAAC,iBAAiB,EAAE,mCAAmC,KAAK,IAAI,CAAC;IAC/E,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,2BAA2B,CAAC,CAAC,CAAC;CAC7E,CAAC;AAEF,QAAA,MAAM,sBAAsB,GAAI,OAAO,2BAA2B,4CAmJjE,CAAC;AAEF,eAAe,sBAAsB,CAAC"}