@embeddable.com/remarkable-pro 0.1.31 → 0.1.32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/BarChartDefaultHorizontalPro.js +1 -1
- package/dist/BarChartDefaultPro.js +1 -1
- package/dist/BarChartGroupedHorizontalPro.js +1 -1
- package/dist/BarChartGroupedPro.js +1 -1
- package/dist/BarChartStackedHorizontalPro.js +1 -1
- package/dist/BarChartStackedPro.js +1 -1
- package/dist/ComparisonPeriodSelectFieldPro.js +1 -1
- package/dist/DateRangePickerCustomPro.js +1 -1
- package/dist/DateRangeSelectFieldPro.js +1 -1
- package/dist/{DimensionAndMeasureSingleSelectField-ClbFwtXO.js → DimensionAndMeasureSingleSelectField-BsBSTKKc.js} +2 -2
- package/dist/{DimensionAndMeasureSingleSelectField-ClbFwtXO.js.map → DimensionAndMeasureSingleSelectField-BsBSTKKc.js.map} +1 -1
- package/dist/DimensionMeasureMultiSelectFieldPro.js +1 -1
- package/dist/DimensionSingleSelectFieldPro.js +1 -1
- package/dist/DonutChartPro.js +1 -1
- package/dist/DonutLabelChartPro.js +1 -1
- package/dist/FilterBuilderPro.js +3 -3
- package/dist/{GranularitySelectField-Di0ay_uj.js → GranularitySelectField-DBaZn-Me.js} +2 -2
- package/dist/{GranularitySelectField-Di0ay_uj.js.map → GranularitySelectField-DBaZn-Me.js.map} +1 -1
- package/dist/GranularitySelectFieldPro.js +1 -1
- package/dist/HeatMapPro.js +1 -1
- package/dist/HorizontalDividerPro.js +1 -1
- package/dist/KpiChartNumberComparisonPro.js +1 -1
- package/dist/KpiChartNumberPro.js +1 -1
- package/dist/LineChartComparisonDefaultPro.js +1 -1
- package/dist/LineChartDefaultPro.js +1 -1
- package/dist/LineChartGroupedPro.js +1 -1
- package/dist/MarkdownPro.js +1 -1
- package/dist/MeasureMultiSelectFieldPro.js +1 -1
- package/dist/MeasureSingleSelectFieldPro.js +1 -1
- package/dist/MultiSelectFieldPro.js +1 -1
- package/dist/PieChartPro.js +1 -1
- package/dist/PivotTablePro.js +1 -1
- package/dist/SingleSelectFieldPro.js +1 -1
- package/dist/TableChartPaginated.js +1 -1
- package/dist/TableScrollable.js +1 -1
- package/dist/TextFieldPro.js +1 -1
- package/dist/bars.loadData.utils-FxKnljYM.js +116 -0
- package/dist/bars.loadData.utils-FxKnljYM.js.map +1 -0
- package/dist/bars.utils-jD7h2lii.js +159 -0
- package/dist/bars.utils-jD7h2lii.js.map +1 -0
- package/dist/{charts.fillGaps.hooks-DDOGO5JR.js → charts.fillGaps.hooks-CvKhAwUj.js} +2 -2
- package/dist/{charts.fillGaps.hooks-DDOGO5JR.js.map → charts.fillGaps.hooks-CvKhAwUj.js.map} +1 -1
- package/dist/{charts.utils-ZAdb7oJ-.js → charts.utils-N3kN-XFw.js} +2 -2
- package/dist/{charts.utils-ZAdb7oJ-.js.map → charts.utils-N3kN-XFw.js.map} +1 -1
- package/dist/{component.inputs.constants-C-vfrygQ.js → component.inputs.constants-C7tJAhsQ.js} +236 -193
- package/dist/component.inputs.constants-C7tJAhsQ.js.map +1 -0
- package/dist/components/charts/bars/BarChartGroupedHorizontalPro/BarChartGroupedHorizontalPro.emb.d.ts +11 -0
- package/dist/components/charts/bars/BarChartGroupedHorizontalPro/BarChartGroupedHorizontalPro.emb.d.ts.map +1 -1
- package/dist/components/charts/bars/BarChartGroupedHorizontalPro/definition.d.ts +37 -11
- package/dist/components/charts/bars/BarChartGroupedHorizontalPro/definition.d.ts.map +1 -1
- package/dist/components/charts/bars/BarChartGroupedHorizontalPro/index.d.ts +5 -1
- package/dist/components/charts/bars/BarChartGroupedHorizontalPro/index.d.ts.map +1 -1
- package/dist/components/charts/bars/BarChartGroupedPro/BarChartGroupedPro.emb.d.ts +11 -0
- package/dist/components/charts/bars/BarChartGroupedPro/BarChartGroupedPro.emb.d.ts.map +1 -1
- package/dist/components/charts/bars/BarChartGroupedPro/definition.d.ts +37 -11
- package/dist/components/charts/bars/BarChartGroupedPro/definition.d.ts.map +1 -1
- package/dist/components/charts/bars/BarChartGroupedPro/index.d.ts +5 -1
- package/dist/components/charts/bars/BarChartGroupedPro/index.d.ts.map +1 -1
- package/dist/components/charts/bars/BarChartStackedHorizontalPro/BarChartStackedHorizontalPro.emb.d.ts +11 -0
- package/dist/components/charts/bars/BarChartStackedHorizontalPro/BarChartStackedHorizontalPro.emb.d.ts.map +1 -1
- package/dist/components/charts/bars/BarChartStackedHorizontalPro/definition.d.ts +37 -11
- package/dist/components/charts/bars/BarChartStackedHorizontalPro/definition.d.ts.map +1 -1
- package/dist/components/charts/bars/BarChartStackedHorizontalPro/index.d.ts +5 -1
- package/dist/components/charts/bars/BarChartStackedHorizontalPro/index.d.ts.map +1 -1
- package/dist/components/charts/bars/BarChartStackedPro/BarChartStackedPro.emb.d.ts +11 -0
- package/dist/components/charts/bars/BarChartStackedPro/BarChartStackedPro.emb.d.ts.map +1 -1
- package/dist/components/charts/bars/BarChartStackedPro/definition.d.ts +37 -11
- package/dist/components/charts/bars/BarChartStackedPro/definition.d.ts.map +1 -1
- package/dist/components/charts/bars/BarChartStackedPro/index.d.ts +5 -1
- package/dist/components/charts/bars/BarChartStackedPro/index.d.ts.map +1 -1
- package/dist/components/charts/bars/bars.hooks.d.ts +8 -0
- package/dist/components/charts/bars/bars.hooks.d.ts.map +1 -0
- package/dist/components/charts/bars/bars.hooks.test.d.ts +2 -0
- package/dist/components/charts/bars/bars.hooks.test.d.ts.map +1 -0
- package/dist/components/charts/bars/bars.loadData.utils.d.ts +47 -0
- package/dist/components/charts/bars/bars.loadData.utils.d.ts.map +1 -0
- package/dist/components/charts/bars/bars.loadData.utils.test.d.ts +2 -0
- package/dist/components/charts/bars/bars.loadData.utils.test.d.ts.map +1 -0
- package/dist/components/charts/bars/bars.utils.d.ts +1 -0
- package/dist/components/charts/bars/bars.utils.d.ts.map +1 -1
- package/dist/components/component.inputs.constants.d.ts +26 -0
- package/dist/components/component.inputs.constants.d.ts.map +1 -1
- package/dist/components/types/SortDirection.type.emb.d.ts +9 -0
- package/dist/components/types/SortDirection.type.emb.d.ts.map +1 -0
- package/dist/definition-2JaSZCXp.js +206 -0
- package/dist/definition-2JaSZCXp.js.map +1 -0
- package/dist/{definition-5a__Y0lx.js → definition-B2mKjUhy.js} +4 -4
- package/dist/{definition-5a__Y0lx.js.map → definition-B2mKjUhy.js.map} +1 -1
- package/dist/definition-B5l2-yZu.js +204 -0
- package/dist/definition-B5l2-yZu.js.map +1 -0
- package/dist/{definition-ChFv8Vq8.js → definition-B6Jm5skX.js} +2 -2
- package/dist/{definition-ChFv8Vq8.js.map → definition-B6Jm5skX.js.map} +1 -1
- package/dist/{definition-DM13nXMm.js → definition-B9bfDi7Q.js} +3 -3
- package/dist/{definition-DM13nXMm.js.map → definition-B9bfDi7Q.js.map} +1 -1
- package/dist/{definition-DRFMnEQh.js → definition-BCbRycZt.js} +3 -3
- package/dist/{definition-DRFMnEQh.js.map → definition-BCbRycZt.js.map} +1 -1
- package/dist/{definition-B9E-HZdm.js → definition-BIk4lZdI.js} +3 -3
- package/dist/{definition-B9E-HZdm.js.map → definition-BIk4lZdI.js.map} +1 -1
- package/dist/{definition-D1wwcuOy.js → definition-BKcHxtMp.js} +3 -3
- package/dist/{definition-D1wwcuOy.js.map → definition-BKcHxtMp.js.map} +1 -1
- package/dist/{definition-Bhvd22lu.js → definition-Bdwvh471.js} +2 -2
- package/dist/{definition-Bhvd22lu.js.map → definition-Bdwvh471.js.map} +1 -1
- package/dist/{definition-mtzDmBoh.js → definition-Bn3Fi9C4.js} +5 -5
- package/dist/{definition-mtzDmBoh.js.map → definition-Bn3Fi9C4.js.map} +1 -1
- package/dist/{definition-CzAzy1Hk.js → definition-BqIza8Nx.js} +3 -3
- package/dist/{definition-CzAzy1Hk.js.map → definition-BqIza8Nx.js.map} +1 -1
- package/dist/{definition-5T5HRGnj.js → definition-BrVG5pTw.js} +5 -5
- package/dist/{definition-5T5HRGnj.js.map → definition-BrVG5pTw.js.map} +1 -1
- package/dist/{definition-DSAR_Bsa.js → definition-C8DCZNOR.js} +3 -3
- package/dist/{definition-DSAR_Bsa.js.map → definition-C8DCZNOR.js.map} +1 -1
- package/dist/{definition-Di3x_6Rh.js → definition-CN6Ieeer.js} +5 -5
- package/dist/{definition-Di3x_6Rh.js.map → definition-CN6Ieeer.js.map} +1 -1
- package/dist/{definition-DsDQF6Da.js → definition-CbkzLjXK.js} +3 -3
- package/dist/{definition-DsDQF6Da.js.map → definition-CbkzLjXK.js.map} +1 -1
- package/dist/{definition-wDuSjm3O.js → definition-Cgq79V22.js} +3 -3
- package/dist/{definition-wDuSjm3O.js.map → definition-Cgq79V22.js.map} +1 -1
- package/dist/{definition-CWVSN9UB.js → definition-CkVv7VMQ.js} +4 -4
- package/dist/{definition-CWVSN9UB.js.map → definition-CkVv7VMQ.js.map} +1 -1
- package/dist/{definition-FEz36Zkx.js → definition-Cx1UPIho.js} +3 -3
- package/dist/{definition-FEz36Zkx.js.map → definition-Cx1UPIho.js.map} +1 -1
- package/dist/{definition-Cl_4hkGI.js → definition-D4-0-tXB.js} +3 -3
- package/dist/{definition-Cl_4hkGI.js.map → definition-D4-0-tXB.js.map} +1 -1
- package/dist/{definition-CV2xoi69.js → definition-DFoesKHP.js} +2 -2
- package/dist/{definition-CV2xoi69.js.map → definition-DFoesKHP.js.map} +1 -1
- package/dist/{definition-CBevT5lk.js → definition-Dh9UNSfZ.js} +2 -2
- package/dist/{definition-CBevT5lk.js.map → definition-Dh9UNSfZ.js.map} +1 -1
- package/dist/{definition-xGVDcBlW.js → definition-Dizabfqb.js} +5 -5
- package/dist/{definition-xGVDcBlW.js.map → definition-Dizabfqb.js.map} +1 -1
- package/dist/definition-DnWIyPun.js +203 -0
- package/dist/definition-DnWIyPun.js.map +1 -0
- package/dist/definition-DynupxEC.js +205 -0
- package/dist/definition-DynupxEC.js.map +1 -0
- package/dist/{definition-BKX3li26.js → definition-EqCeNipq.js} +3 -3
- package/dist/{definition-BKX3li26.js.map → definition-EqCeNipq.js.map} +1 -1
- package/dist/{definition-DpFvucVl.js → definition-SCQMKDEM.js} +4 -4
- package/dist/{definition-DpFvucVl.js.map → definition-SCQMKDEM.js.map} +1 -1
- package/dist/{definition-DxkipQYz.js → definition-bvWr0LdF.js} +2 -2
- package/dist/{definition-DxkipQYz.js.map → definition-bvWr0LdF.js.map} +1 -1
- package/dist/{definition-Bdcy082b.js → definition-ngOUqoDo.js} +3 -3
- package/dist/{definition-Bdcy082b.js.map → definition-ngOUqoDo.js.map} +1 -1
- package/dist/{definition-C8CAdqhV.js → definition-oe6halnQ.js} +2 -2
- package/dist/{definition-C8CAdqhV.js.map → definition-oe6halnQ.js.map} +1 -1
- package/dist/{definition-C4aPFAKq.js → definition-pNCrIBqW.js} +5 -5
- package/dist/{definition-C4aPFAKq.js.map → definition-pNCrIBqW.js.map} +1 -1
- package/dist/{definition-Cxji761B.js → definition-v66e9pZV.js} +3 -3
- package/dist/{definition-Cxji761B.js.map → definition-v66e9pZV.js.map} +1 -1
- package/dist/{dimensionsAndMeasures.utils-x51eIYbW.js → dimensionsAndMeasures.utils-DtUfSnpA.js} +2 -2
- package/dist/{dimensionsAndMeasures.utils-x51eIYbW.js.map → dimensionsAndMeasures.utils-DtUfSnpA.js.map} +1 -1
- package/dist/embeddable-components.json +42 -42
- package/dist/{embeddable-types-671f4.js → embeddable-types-4089f.js} +55 -43
- package/dist/embeddable-types.js.map +1 -1
- package/dist/{formatter.utils-DXI8s5Y5.js → formatter.utils-BLaKKpAa.js} +2 -2
- package/dist/{formatter.utils-DXI8s5Y5.js.map → formatter.utils-BLaKKpAa.js.map} +1 -1
- package/dist/{granularity.utils-DYOJiFaK.js → granularity.utils-Hj10GihD.js} +2 -2
- package/dist/{granularity.utils-DYOJiFaK.js.map → granularity.utils-Hj10GihD.js.map} +1 -1
- package/dist/index.js +42 -42
- package/dist/{pies.utils-4osQ9x_J.js → pies.utils-BlPQ76Jf.js} +3 -3
- package/dist/{pies.utils-4osQ9x_J.js.map → pies.utils-BlPQ76Jf.js.map} +1 -1
- package/dist/{tables.utils-BpqebRcu.js → tables.utils-BF3qUwBS.js} +3 -3
- package/dist/{tables.utils-BpqebRcu.js.map → tables.utils-BF3qUwBS.js.map} +1 -1
- package/package.json +1 -1
- package/dist/bars.utils-B8_oDn4j.js +0 -157
- package/dist/bars.utils-B8_oDn4j.js.map +0 -1
- package/dist/component.inputs.constants-C-vfrygQ.js.map +0 -1
- package/dist/definition-BtJ2IsdK.js +0 -174
- package/dist/definition-BtJ2IsdK.js.map +0 -1
- package/dist/definition-Bxj6nf61.js +0 -170
- package/dist/definition-Bxj6nf61.js.map +0 -1
- package/dist/definition-DETLn9Wn.js +0 -172
- package/dist/definition-DETLn9Wn.js.map +0 -1
- package/dist/definition-j7sh3jCh.js +0 -172
- package/dist/definition-j7sh3jCh.js.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { j as h, S } from "./index-CJYh9LRs.js";
|
|
2
2
|
import { useTheme as d } from "@embeddable.com/react";
|
|
3
3
|
import { useState as p, useEffect as g } from "react";
|
|
4
|
-
import { g as A } from "./dimensionsAndMeasures.utils-
|
|
4
|
+
import { g as A } from "./dimensionsAndMeasures.utils-DtUfSnpA.js";
|
|
5
5
|
const j = (i) => {
|
|
6
6
|
const r = d(), [c, l] = p(""), { selectedValue: n, options: e, clearable: t, placeholder: m, onChange: o } = i, u = (a) => {
|
|
7
7
|
const s = e.find((f) => f.name === a);
|
|
@@ -32,4 +32,4 @@ const j = (i) => {
|
|
|
32
32
|
export {
|
|
33
33
|
j as D
|
|
34
34
|
};
|
|
35
|
-
//# sourceMappingURL=DimensionAndMeasureSingleSelectField-
|
|
35
|
+
//# sourceMappingURL=DimensionAndMeasureSingleSelectField-BsBSTKKc.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DimensionAndMeasureSingleSelectField-
|
|
1
|
+
{"version":3,"file":"DimensionAndMeasureSingleSelectField-BsBSTKKc.js","sources":["../src/components/editors/shared/DimensionAndMeasureSingleSelectField/DimensionAndMeasureSingleSelectField.tsx"],"sourcesContent":["import { useTheme } from '@embeddable.com/react';\nimport { Theme } from '../../../../theme/theme.types';\nimport { useEffect, useState } from 'react';\nimport { SingleSelectField } from '@embeddable.com/remarkable-ui';\nimport { getDimensionAndMeasureOptions } from '../../utils/dimensionsAndMeasures.utils';\nimport { Dimension, Measure } from '@embeddable.com/core';\n\nexport type DimensionAndMeasureSingleSelectFieldProps<T> = {\n selectedValue?: T;\n options: T[];\n placeholder?: string;\n clearable?: boolean;\n onChange: (value: T | undefined) => void;\n};\n\nexport const DimensionAndMeasureSingleSelectField = <T extends Dimension | Measure>(\n props: DimensionAndMeasureSingleSelectFieldProps<T>,\n) => {\n const theme = useTheme() as Theme;\n\n const [searchValue, setSearchValue] = useState<string>('');\n\n const { selectedValue, options, clearable, placeholder, onChange } = props;\n\n const handleChange = (newValue: string | null) => {\n const newSelection = options.find((option) => option.name === newValue);\n onChange(newSelection);\n };\n\n // Auto-select first dimensionOrMeasure when is not clearable and there is no selection\n useEffect(() => {\n const autoSelectActive = !clearable && !selectedValue;\n\n if (!autoSelectActive) return;\n\n const firstDimension = options?.[0];\n\n if (firstDimension) {\n onChange(firstDimension);\n }\n }, [clearable, selectedValue, options, onChange]);\n\n return (\n <SingleSelectField\n searchable\n clearable={clearable}\n placeholder={placeholder}\n value={selectedValue?.name}\n onChange={handleChange}\n onSearch={setSearchValue}\n options={getDimensionAndMeasureOptions({\n dimensionsAndMeasures: options,\n searchValue,\n theme,\n })}\n avoidCollisions={false}\n />\n );\n};\n"],"names":["DimensionAndMeasureSingleSelectField","props","theme","useTheme","searchValue","setSearchValue","useState","selectedValue","options","clearable","placeholder","onChange","handleChange","newValue","newSelection","option","useEffect","firstDimension","jsx","SingleSelectField","getDimensionAndMeasureOptions"],"mappings":";;;;AAeO,MAAMA,IAAuC,CAClDC,MACG;AACH,QAAMC,IAAQC,EAAA,GAER,CAACC,GAAaC,CAAc,IAAIC,EAAiB,EAAE,GAEnD,EAAE,eAAAC,GAAe,SAAAC,GAAS,WAAAC,GAAW,aAAAC,GAAa,UAAAC,MAAaV,GAE/DW,IAAe,CAACC,MAA4B;AAChD,UAAMC,IAAeN,EAAQ,KAAK,CAACO,MAAWA,EAAO,SAASF,CAAQ;AACtE,IAAAF,EAASG,CAAY;AAAA,EACvB;AAGA,SAAAE,EAAU,MAAM;AAGd,QAAI,EAFqB,CAACP,KAAa,CAACF,GAEjB;AAEvB,UAAMU,IAAiBT,KAAA,gBAAAA,EAAU;AAEjC,IAAIS,KACFN,EAASM,CAAc;AAAA,EAE3B,GAAG,CAACR,GAAWF,GAAeC,GAASG,CAAQ,CAAC,GAG9CO,gBAAAA,EAAAA;AAAAA,IAACC;AAAA,IAAA;AAAA,MACC,YAAU;AAAA,MACV,WAAAV;AAAA,MACA,aAAAC;AAAA,MACA,OAAOH,KAAA,gBAAAA,EAAe;AAAA,MACtB,UAAUK;AAAA,MACV,UAAUP;AAAA,MACV,SAASe,EAA8B;AAAA,QACrC,uBAAuBZ;AAAA,QACvB,aAAAJ;AAAA,QACA,OAAAF;AAAA,MAAA,CACD;AAAA,MACD,iBAAiB;AAAA,IAAA;AAAA,EAAA;AAGvB;"}
|
package/dist/DonutChartPro.js
CHANGED
package/dist/FilterBuilderPro.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { useTheme as fe, definePreview as ge, defineComponent as he } from "@embeddable.com/react";
|
|
2
2
|
import { c as ve, u as Q, j as o, N as S, F as v, M as Be, S as P, I as Oe, a as Z, b as _e, d as Ne, e as Fe, A as Ce, V as be, l as je } from "./index-CJYh9LRs.js";
|
|
3
3
|
import xe, { useState as A, useRef as L, useEffect as x, useCallback as ye } from "react";
|
|
4
|
-
import { g as W } from "./dimensionsAndMeasures.utils-
|
|
4
|
+
import { g as W } from "./dimensionsAndMeasures.utils-DtUfSnpA.js";
|
|
5
5
|
import { i as m, a as Me, r as Te } from "./component.utils-Dua9clQJ.js";
|
|
6
|
-
import { g as Se } from "./formatter.utils-
|
|
6
|
+
import { g as Se } from "./formatter.utils-BLaKKpAa.js";
|
|
7
7
|
import { E as Ae } from "./EditorCard-BABTQLwW.js";
|
|
8
|
-
import { i as D } from "./component.inputs.constants-
|
|
8
|
+
import { i as D } from "./component.inputs.constants-C7tJAhsQ.js";
|
|
9
9
|
/**
|
|
10
10
|
* @license @tabler/icons-react v3.41.1 - MIT
|
|
11
11
|
*
|
|
@@ -2,7 +2,7 @@ import { j as g, S as E } from "./index-CJYh9LRs.js";
|
|
|
2
2
|
import { useMemo as F, useEffect as d } from "react";
|
|
3
3
|
import { useTheme as C } from "@embeddable.com/react";
|
|
4
4
|
import { b as G, a as N } from "./component.utils-Dua9clQJ.js";
|
|
5
|
-
import { d as w } from "./component.inputs.constants-
|
|
5
|
+
import { d as w } from "./component.inputs.constants-C7tJAhsQ.js";
|
|
6
6
|
const D = 1, v = 100, x = () => w.map((e) => ({
|
|
7
7
|
...e,
|
|
8
8
|
label: G(e.label)
|
|
@@ -105,4 +105,4 @@ export {
|
|
|
105
105
|
p as b,
|
|
106
106
|
A as g
|
|
107
107
|
};
|
|
108
|
-
//# sourceMappingURL=GranularitySelectField-
|
|
108
|
+
//# sourceMappingURL=GranularitySelectField-DBaZn-Me.js.map
|
package/dist/{GranularitySelectField-Di0ay_uj.js.map → GranularitySelectField-DBaZn-Me.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GranularitySelectField-Di0ay_uj.js","sources":["../src/components/editors/shared/GranularitySelectField/GranularitySelectField.utils.ts","../src/components/editors/shared/GranularitySelectField/GranularitySelectField.tsx"],"sourcesContent":["import { SelectListOptionProps } from '@embeddable.com/remarkable-ui';\nimport { Granularity, TimeRange } from '@embeddable.com/core';\nimport {\n defaultGranularitySelectFieldOptions,\n TGranularityValue,\n} from '../../../../theme/defaults/defaults.GranularityOptions.constants';\nimport { resolveI18nString } from '../../../component.utils';\n\nconst DEFAULT_MIN_BUCKETS = 1;\nconst DEFAULT_MAX_BUCKETS = 100;\n\nexport const getGranularitySelectFieldOptions = (): SelectListOptionProps[] => {\n return defaultGranularitySelectFieldOptions.map((opt) => ({\n ...opt,\n label: resolveI18nString(opt.label),\n }));\n};\n\n// Convert possibly-string timestamps to Date safely.\nconst toDate = (d: unknown): Date | null => {\n if (d instanceof Date) return Number.isNaN(d.getTime()) ? null : d;\n if (typeof d === 'string' || typeof d === 'number') {\n const parsed = new Date(d);\n return Number.isNaN(parsed.getTime()) ? null : parsed;\n }\n return null;\n};\n\n// Inclusive end -> Exclusive end helper (only used for sub-day diffs)\nconst toExclusiveEnd = (endInclusive: Date): Date => new Date(endInclusive.getTime() + 1);\n\nconst bucketCountByUnit = (start: Date, endExclusive: Date, unitMs: number): number => {\n return (endExclusive.getTime() - start.getTime()) / unitMs;\n};\n\n// Bucket counting (treat end as INCLUSIVE)\nfunction bucketCount(start: Date, endInclusive: Date, granularity: Granularity): number {\n if (start > endInclusive) return 0;\n\n switch (granularity) {\n case 'second':\n return bucketCountByUnit(start, toExclusiveEnd(endInclusive), 1000);\n\n case 'minute':\n return bucketCountByUnit(start, toExclusiveEnd(endInclusive), 60 * 1000);\n\n case 'hour':\n return bucketCountByUnit(start, toExclusiveEnd(endInclusive), 60 * 60 * 1000);\n\n case 'day':\n return bucketCountByUnit(start, toExclusiveEnd(endInclusive), 24 * 60 * 60 * 1000);\n\n case 'week':\n return bucketCountByUnit(start, toExclusiveEnd(endInclusive), 7 * 24 * 60 * 60 * 1000);\n\n case 'month':\n return bucketCountByUnit(start, toExclusiveEnd(endInclusive), 28 * 24 * 60 * 60 * 1000); // shortest month\n\n case 'quarter':\n return bucketCountByUnit(start, toExclusiveEnd(endInclusive), 90 * 24 * 60 * 60 * 1000); // shortest quarter\n\n case 'year':\n return bucketCountByUnit(start, toExclusiveEnd(endInclusive), 365 * 24 * 60 * 60 * 1000); // shortest year\n }\n}\n\nconst isGranularityValid = (\n start: Date,\n endInclusive: Date,\n granularity: TGranularityValue,\n): boolean => {\n const buckets = bucketCount(start, endInclusive, granularity);\n return buckets >= DEFAULT_MIN_BUCKETS && buckets <= DEFAULT_MAX_BUCKETS;\n};\n\nexport const getAvailableGranularityOptionsFromTimeRange = (\n timeRange: TimeRange,\n allOptions: SelectListOptionProps[],\n): SelectListOptionProps[] => {\n if (!timeRange) return allOptions;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const from = toDate((timeRange as any)?.from);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const to = toDate((timeRange as any)?.to);\n\n // If we can’t parse range, don’t hide anything (fail open)\n if (!from || !to) return allOptions;\n\n const validSet = new Set<TGranularityValue>();\n\n for (const opt of allOptions) {\n const g = opt.value as TGranularityValue;\n if (isGranularityValid(from, to, g)) {\n validSet.add(g);\n }\n }\n\n // preserve original UI ordering\n return allOptions.filter((opt) => validSet.has(opt.value as TGranularityValue));\n};\n\nexport const getSafeSelection = (\n availableOptions: SelectListOptionProps[],\n granularity?: Granularity,\n): Granularity | undefined => {\n if (!granularity) {\n return undefined;\n }\n\n if (availableOptions.some((opt) => opt.value === granularity)) {\n return granularity;\n }\n\n const optionToSelect = availableOptions.length > 2 ? 1 : 0;\n\n return availableOptions[optionToSelect]?.value as Granularity;\n};\n","import { useEffect, useMemo } from 'react';\nimport { useTheme } from '@embeddable.com/react';\nimport { SingleSelectField, SingleSelectFieldProps } from '@embeddable.com/remarkable-ui';\nimport { Granularity, TimeRange } from '@embeddable.com/core';\nimport { Theme } from '../../../../theme/theme.types';\nimport { i18nSetup } from '../../../../theme/i18n/i18n';\nimport {\n getAvailableGranularityOptionsFromTimeRange,\n getGranularitySelectFieldOptions,\n getSafeSelection,\n} from './GranularitySelectField.utils';\nimport { TGranularityValue } from '../../../../theme/defaults/defaults.GranularityOptions.constants';\nimport { ChartCardHeaderProps } from '../../../charts/shared/ChartCard/ChartCard';\n\nexport type GranularitySelectFieldProps = {\n onChange: (newGranularity: Granularity) => void;\n primaryTimeRange?: TimeRange;\n granularity?: TGranularityValue;\n granularities?: TGranularityValue[];\n} & ChartCardHeaderProps &\n Pick<SingleSelectFieldProps<string>, 'variant' | 'side' | 'align' | 'clearable' | 'placeholder'>;\n\nexport const GranularitySelectField = (props: GranularitySelectFieldProps) => {\n const theme: Theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const {\n granularity,\n granularities,\n clearable,\n placeholder,\n primaryTimeRange,\n variant,\n side,\n align,\n onChange,\n } = props;\n\n const granularitySelectFieldOptions = getGranularitySelectFieldOptions();\n\n const availableOptions = useMemo(() => {\n return getAvailableGranularityOptionsFromTimeRange(\n primaryTimeRange,\n granularitySelectFieldOptions.filter((opt) =>\n granularities?.includes(opt.value as TGranularityValue),\n ),\n );\n }, [primaryTimeRange, granularities]);\n\n useEffect(() => {\n if (granularity) {\n // Selected granularity is not available\n // Select 1st available option when number of options is =< 2\n // Select 2nd option to avoid when number of options > 2\n if (!availableOptions.some((opt) => opt.value === granularity)) {\n const newGranularity = getSafeSelection(availableOptions, granularity);\n if (newGranularity) {\n onChange(newGranularity as Granularity);\n }\n }\n }\n }, [availableOptions, granularity, onChange]);\n\n const safeValue = getSafeSelection(availableOptions, granularity);\n\n return (\n <SingleSelectField\n variant={variant}\n clearable={clearable}\n placeholder={placeholder}\n value={safeValue}\n options={availableOptions}\n onChange={(newValue) => onChange(newValue as Granularity)}\n avoidCollisions={false}\n side={side}\n align={align}\n />\n );\n};\n"],"names":["DEFAULT_MIN_BUCKETS","DEFAULT_MAX_BUCKETS","getGranularitySelectFieldOptions","defaultGranularitySelectFieldOptions","opt","resolveI18nString","toDate","d","parsed","toExclusiveEnd","endInclusive","bucketCountByUnit","start","endExclusive","unitMs","bucketCount","granularity","isGranularityValid","buckets","getAvailableGranularityOptionsFromTimeRange","timeRange","allOptions","from","to","validSet","g","getSafeSelection","availableOptions","optionToSelect","_a","GranularitySelectField","props","theme","useTheme","i18nSetup","granularities","clearable","placeholder","primaryTimeRange","variant","side","align","onChange","granularitySelectFieldOptions","useMemo","useEffect","newGranularity","safeValue","jsx","SingleSelectField","newValue"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"GranularitySelectField-DBaZn-Me.js","sources":["../src/components/editors/shared/GranularitySelectField/GranularitySelectField.utils.ts","../src/components/editors/shared/GranularitySelectField/GranularitySelectField.tsx"],"sourcesContent":["import { SelectListOptionProps } from '@embeddable.com/remarkable-ui';\nimport { Granularity, TimeRange } from '@embeddable.com/core';\nimport {\n defaultGranularitySelectFieldOptions,\n TGranularityValue,\n} from '../../../../theme/defaults/defaults.GranularityOptions.constants';\nimport { resolveI18nString } from '../../../component.utils';\n\nconst DEFAULT_MIN_BUCKETS = 1;\nconst DEFAULT_MAX_BUCKETS = 100;\n\nexport const getGranularitySelectFieldOptions = (): SelectListOptionProps[] => {\n return defaultGranularitySelectFieldOptions.map((opt) => ({\n ...opt,\n label: resolveI18nString(opt.label),\n }));\n};\n\n// Convert possibly-string timestamps to Date safely.\nconst toDate = (d: unknown): Date | null => {\n if (d instanceof Date) return Number.isNaN(d.getTime()) ? null : d;\n if (typeof d === 'string' || typeof d === 'number') {\n const parsed = new Date(d);\n return Number.isNaN(parsed.getTime()) ? null : parsed;\n }\n return null;\n};\n\n// Inclusive end -> Exclusive end helper (only used for sub-day diffs)\nconst toExclusiveEnd = (endInclusive: Date): Date => new Date(endInclusive.getTime() + 1);\n\nconst bucketCountByUnit = (start: Date, endExclusive: Date, unitMs: number): number => {\n return (endExclusive.getTime() - start.getTime()) / unitMs;\n};\n\n// Bucket counting (treat end as INCLUSIVE)\nfunction bucketCount(start: Date, endInclusive: Date, granularity: Granularity): number {\n if (start > endInclusive) return 0;\n\n switch (granularity) {\n case 'second':\n return bucketCountByUnit(start, toExclusiveEnd(endInclusive), 1000);\n\n case 'minute':\n return bucketCountByUnit(start, toExclusiveEnd(endInclusive), 60 * 1000);\n\n case 'hour':\n return bucketCountByUnit(start, toExclusiveEnd(endInclusive), 60 * 60 * 1000);\n\n case 'day':\n return bucketCountByUnit(start, toExclusiveEnd(endInclusive), 24 * 60 * 60 * 1000);\n\n case 'week':\n return bucketCountByUnit(start, toExclusiveEnd(endInclusive), 7 * 24 * 60 * 60 * 1000);\n\n case 'month':\n return bucketCountByUnit(start, toExclusiveEnd(endInclusive), 28 * 24 * 60 * 60 * 1000); // shortest month\n\n case 'quarter':\n return bucketCountByUnit(start, toExclusiveEnd(endInclusive), 90 * 24 * 60 * 60 * 1000); // shortest quarter\n\n case 'year':\n return bucketCountByUnit(start, toExclusiveEnd(endInclusive), 365 * 24 * 60 * 60 * 1000); // shortest year\n }\n}\n\nconst isGranularityValid = (\n start: Date,\n endInclusive: Date,\n granularity: TGranularityValue,\n): boolean => {\n const buckets = bucketCount(start, endInclusive, granularity);\n return buckets >= DEFAULT_MIN_BUCKETS && buckets <= DEFAULT_MAX_BUCKETS;\n};\n\nexport const getAvailableGranularityOptionsFromTimeRange = (\n timeRange: TimeRange,\n allOptions: SelectListOptionProps[],\n): SelectListOptionProps[] => {\n if (!timeRange) return allOptions;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const from = toDate((timeRange as any)?.from);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const to = toDate((timeRange as any)?.to);\n\n // If we can’t parse range, don’t hide anything (fail open)\n if (!from || !to) return allOptions;\n\n const validSet = new Set<TGranularityValue>();\n\n for (const opt of allOptions) {\n const g = opt.value as TGranularityValue;\n if (isGranularityValid(from, to, g)) {\n validSet.add(g);\n }\n }\n\n // preserve original UI ordering\n return allOptions.filter((opt) => validSet.has(opt.value as TGranularityValue));\n};\n\nexport const getSafeSelection = (\n availableOptions: SelectListOptionProps[],\n granularity?: Granularity,\n): Granularity | undefined => {\n if (!granularity) {\n return undefined;\n }\n\n if (availableOptions.some((opt) => opt.value === granularity)) {\n return granularity;\n }\n\n const optionToSelect = availableOptions.length > 2 ? 1 : 0;\n\n return availableOptions[optionToSelect]?.value as Granularity;\n};\n","import { useEffect, useMemo } from 'react';\nimport { useTheme } from '@embeddable.com/react';\nimport { SingleSelectField, SingleSelectFieldProps } from '@embeddable.com/remarkable-ui';\nimport { Granularity, TimeRange } from '@embeddable.com/core';\nimport { Theme } from '../../../../theme/theme.types';\nimport { i18nSetup } from '../../../../theme/i18n/i18n';\nimport {\n getAvailableGranularityOptionsFromTimeRange,\n getGranularitySelectFieldOptions,\n getSafeSelection,\n} from './GranularitySelectField.utils';\nimport { TGranularityValue } from '../../../../theme/defaults/defaults.GranularityOptions.constants';\nimport { ChartCardHeaderProps } from '../../../charts/shared/ChartCard/ChartCard';\n\nexport type GranularitySelectFieldProps = {\n onChange: (newGranularity: Granularity) => void;\n primaryTimeRange?: TimeRange;\n granularity?: TGranularityValue;\n granularities?: TGranularityValue[];\n} & ChartCardHeaderProps &\n Pick<SingleSelectFieldProps<string>, 'variant' | 'side' | 'align' | 'clearable' | 'placeholder'>;\n\nexport const GranularitySelectField = (props: GranularitySelectFieldProps) => {\n const theme: Theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const {\n granularity,\n granularities,\n clearable,\n placeholder,\n primaryTimeRange,\n variant,\n side,\n align,\n onChange,\n } = props;\n\n const granularitySelectFieldOptions = getGranularitySelectFieldOptions();\n\n const availableOptions = useMemo(() => {\n return getAvailableGranularityOptionsFromTimeRange(\n primaryTimeRange,\n granularitySelectFieldOptions.filter((opt) =>\n granularities?.includes(opt.value as TGranularityValue),\n ),\n );\n }, [primaryTimeRange, granularities]);\n\n useEffect(() => {\n if (granularity) {\n // Selected granularity is not available\n // Select 1st available option when number of options is =< 2\n // Select 2nd option to avoid when number of options > 2\n if (!availableOptions.some((opt) => opt.value === granularity)) {\n const newGranularity = getSafeSelection(availableOptions, granularity);\n if (newGranularity) {\n onChange(newGranularity as Granularity);\n }\n }\n }\n }, [availableOptions, granularity, onChange]);\n\n const safeValue = getSafeSelection(availableOptions, granularity);\n\n return (\n <SingleSelectField\n variant={variant}\n clearable={clearable}\n placeholder={placeholder}\n value={safeValue}\n options={availableOptions}\n onChange={(newValue) => onChange(newValue as Granularity)}\n avoidCollisions={false}\n side={side}\n align={align}\n />\n );\n};\n"],"names":["DEFAULT_MIN_BUCKETS","DEFAULT_MAX_BUCKETS","getGranularitySelectFieldOptions","defaultGranularitySelectFieldOptions","opt","resolveI18nString","toDate","d","parsed","toExclusiveEnd","endInclusive","bucketCountByUnit","start","endExclusive","unitMs","bucketCount","granularity","isGranularityValid","buckets","getAvailableGranularityOptionsFromTimeRange","timeRange","allOptions","from","to","validSet","g","getSafeSelection","availableOptions","optionToSelect","_a","GranularitySelectField","props","theme","useTheme","i18nSetup","granularities","clearable","placeholder","primaryTimeRange","variant","side","align","onChange","granularitySelectFieldOptions","useMemo","useEffect","newGranularity","safeValue","jsx","SingleSelectField","newValue"],"mappings":"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"}
|
package/dist/HeatMapPro.js
CHANGED
package/dist/MarkdownPro.js
CHANGED
package/dist/PieChartPro.js
CHANGED
package/dist/PivotTablePro.js
CHANGED
package/dist/TableScrollable.js
CHANGED
package/dist/TextFieldPro.js
CHANGED
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { useEffect as h } from "react";
|
|
2
|
+
import { l } from "./index-CJYh9LRs.js";
|
|
3
|
+
import { g as A } from "./granularity.utils-Hj10GihD.js";
|
|
4
|
+
import { g as p, S as v } from "./component.inputs.constants-C7tJAhsQ.js";
|
|
5
|
+
function K(t) {
|
|
6
|
+
const { resultsAxisOrder: e, axisDimension: r, setAxisOrderAndCacheKey: n, axisOrderCacheKey: o } = t;
|
|
7
|
+
h(() => {
|
|
8
|
+
if (!n || !(e != null && e.data) || e.isLoading || !o)
|
|
9
|
+
return;
|
|
10
|
+
const s = e.data.map((i) => i[r.name]).filter((i) => i != null);
|
|
11
|
+
n(s, o);
|
|
12
|
+
}, [e]);
|
|
13
|
+
}
|
|
14
|
+
const u = (t) => typeof t == "number" && Number.isInteger(t) && t > 0 ? t : void 0, c = (t, e) => !!(p(t) || u(e)), D = { data: [], isLoading: !1 }, g = ({
|
|
15
|
+
dataset: t,
|
|
16
|
+
axis: e,
|
|
17
|
+
measure: r,
|
|
18
|
+
sortDirection: n,
|
|
19
|
+
limit: o
|
|
20
|
+
}) => ({
|
|
21
|
+
from: t,
|
|
22
|
+
select: [e, r],
|
|
23
|
+
orderBy: [
|
|
24
|
+
{
|
|
25
|
+
property: r,
|
|
26
|
+
direction: p(n) ?? v.desc
|
|
27
|
+
}
|
|
28
|
+
],
|
|
29
|
+
limit: u(o)
|
|
30
|
+
}), L = ({
|
|
31
|
+
dataset: t,
|
|
32
|
+
axis: e,
|
|
33
|
+
measure: r,
|
|
34
|
+
limitTopAxis: n,
|
|
35
|
+
sortDirection: o
|
|
36
|
+
}) => {
|
|
37
|
+
if (c(o, n))
|
|
38
|
+
return l(
|
|
39
|
+
g({
|
|
40
|
+
dataset: t,
|
|
41
|
+
axis: e,
|
|
42
|
+
measure: r,
|
|
43
|
+
sortDirection: o,
|
|
44
|
+
limit: n
|
|
45
|
+
})
|
|
46
|
+
);
|
|
47
|
+
}, R = ({
|
|
48
|
+
dataset: t,
|
|
49
|
+
axis: e,
|
|
50
|
+
measure: r,
|
|
51
|
+
sortDirection: n,
|
|
52
|
+
limit: o
|
|
53
|
+
}) => {
|
|
54
|
+
if (c(n, o))
|
|
55
|
+
return JSON.stringify(
|
|
56
|
+
g({ dataset: t, axis: e, measure: r, sortDirection: n, limit: o })
|
|
57
|
+
);
|
|
58
|
+
}, b = (t, e) => {
|
|
59
|
+
if (!(t == null || t !== (e == null ? void 0 : e.axisOrderCacheKey)))
|
|
60
|
+
return e == null ? void 0 : e.axisOrder;
|
|
61
|
+
}, m = ({
|
|
62
|
+
dataset: t,
|
|
63
|
+
axis: e,
|
|
64
|
+
groupBy: r,
|
|
65
|
+
measure: n,
|
|
66
|
+
limit: o,
|
|
67
|
+
axisOrder: s
|
|
68
|
+
}) => {
|
|
69
|
+
const i = {
|
|
70
|
+
from: t,
|
|
71
|
+
select: [e, r, n],
|
|
72
|
+
limit: u(o)
|
|
73
|
+
};
|
|
74
|
+
return s != null && s.length && (i.filters = [{ property: e, operator: "equals", value: s }]), i;
|
|
75
|
+
}, E = ({
|
|
76
|
+
dataset: t,
|
|
77
|
+
axis: e,
|
|
78
|
+
groupBy: r,
|
|
79
|
+
measure: n,
|
|
80
|
+
granularity: o,
|
|
81
|
+
sortDirection: s,
|
|
82
|
+
limitTopAxis: i,
|
|
83
|
+
maxResults: f,
|
|
84
|
+
axisOrder: a
|
|
85
|
+
}) => {
|
|
86
|
+
const y = c(s, i), d = A(e, o);
|
|
87
|
+
if (!y)
|
|
88
|
+
return l(
|
|
89
|
+
m({
|
|
90
|
+
dataset: t,
|
|
91
|
+
axis: d,
|
|
92
|
+
groupBy: r,
|
|
93
|
+
measure: n,
|
|
94
|
+
limit: f
|
|
95
|
+
})
|
|
96
|
+
);
|
|
97
|
+
if (a != null)
|
|
98
|
+
return a != null && a.length ? l(
|
|
99
|
+
m({
|
|
100
|
+
dataset: t,
|
|
101
|
+
axis: d,
|
|
102
|
+
groupBy: r,
|
|
103
|
+
measure: n,
|
|
104
|
+
limit: f,
|
|
105
|
+
axisOrder: a
|
|
106
|
+
})
|
|
107
|
+
) : D;
|
|
108
|
+
};
|
|
109
|
+
export {
|
|
110
|
+
b as a,
|
|
111
|
+
L as b,
|
|
112
|
+
R as g,
|
|
113
|
+
E as l,
|
|
114
|
+
K as u
|
|
115
|
+
};
|
|
116
|
+
//# sourceMappingURL=bars.loadData.utils-FxKnljYM.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bars.loadData.utils-FxKnljYM.js","sources":["../src/components/charts/bars/bars.hooks.ts","../src/components/charts/bars/bars.loadData.utils.ts"],"sourcesContent":["import { useEffect } from 'react';\nimport { DataResponse, Dimension } from '@embeddable.com/core';\n\nexport function useUpdateAxisOrderAndCacheKey(opts: {\n resultsAxisOrder?: DataResponse;\n axisDimension: Dimension;\n setAxisOrderAndCacheKey?: (values: string[], cacheKey: string) => void;\n axisOrderCacheKey?: string;\n}): void {\n const { resultsAxisOrder, axisDimension, setAxisOrderAndCacheKey, axisOrderCacheKey } = opts;\n\n useEffect(() => {\n if (\n !setAxisOrderAndCacheKey ||\n !resultsAxisOrder?.data ||\n resultsAxisOrder.isLoading ||\n !axisOrderCacheKey\n )\n return;\n\n const values = resultsAxisOrder.data\n .map((d) => d[axisDimension.name])\n .filter((v): v is string => v != null);\n\n setAxisOrderAndCacheKey(values, axisOrderCacheKey);\n // eslint-disable-next-line react-hooks/exhaustive-deps -- setAxisOrderAndCacheKey is recreated each render; other deps always change together with resultsAxisOrder\n }, [resultsAxisOrder]);\n}\n","import {\n DataResponse,\n Dataset,\n Dimension,\n Granularity,\n loadData,\n LoadDataRequest,\n Measure,\n OrderDirection,\n} from '@embeddable.com/core';\nimport { getDimensionWithGranularity } from '../utils/granularity.utils';\nimport {\n getSortDirectionValue,\n SortDirectionTypeOptions,\n} from '../../types/SortDirection.type.emb';\n\nexport const getLimit = (limit?: number): number | undefined =>\n typeof limit === 'number' && Number.isInteger(limit) && limit > 0 ? limit : undefined;\n\nexport const shouldGetTopItems = (sortDirection?: OrderDirection, limit?: number): boolean =>\n Boolean(getSortDirectionValue(sortDirection) || getLimit(limit));\n\nconst EMPTY_RESULTS = { data: [], isLoading: false } as DataResponse;\n\n// ---- Axis Order ----\n\ntype LoadDataResultsAxisOrderArgs = {\n dataset: Dataset;\n axis: Dimension;\n measure: Measure;\n sortDirection?: OrderDirection;\n limit?: number;\n};\n\nexport const loadDataResultsAxisOrderArgs = ({\n dataset,\n axis,\n measure,\n sortDirection,\n limit,\n}: LoadDataResultsAxisOrderArgs): LoadDataRequest => {\n return {\n from: dataset,\n select: [axis, measure],\n orderBy: [\n {\n property: measure,\n direction: getSortDirectionValue(sortDirection) ?? SortDirectionTypeOptions.desc,\n },\n ],\n limit: getLimit(limit),\n };\n};\n\ntype LoadDataResultsAxisOrder = {\n dataset: Dataset;\n axis: Dimension;\n measure: Measure;\n limitTopAxis?: number;\n sortDirection?: OrderDirection;\n};\n\nexport const loadDataResultsAxisOrder = ({\n dataset,\n axis,\n measure,\n limitTopAxis,\n sortDirection,\n}: LoadDataResultsAxisOrder): DataResponse | undefined => {\n const needsTopItems = shouldGetTopItems(sortDirection, limitTopAxis);\n\n if (!needsTopItems) return undefined;\n\n return loadData(\n loadDataResultsAxisOrderArgs({\n dataset,\n axis,\n measure,\n sortDirection,\n limit: limitTopAxis,\n }),\n );\n};\n\nexport const getAxisOrderCacheKey = ({\n dataset,\n axis,\n measure,\n sortDirection,\n limit,\n}: LoadDataResultsAxisOrderArgs): string | undefined => {\n if (!shouldGetTopItems(sortDirection, limit)) return undefined;\n return JSON.stringify(\n loadDataResultsAxisOrderArgs({ dataset, axis, measure, sortDirection, limit }),\n );\n};\n\nexport const getCachedAxisOrder = (\n axisOrderCacheKey: string | undefined,\n state: { axisOrderCacheKey?: string; axisOrder?: string[] } | undefined,\n): string[] | undefined => {\n if (axisOrderCacheKey == null || axisOrderCacheKey !== state?.axisOrderCacheKey) return undefined;\n return state?.axisOrder;\n};\n\n// ---- Results ----\n\ntype LoadDataResultsArgs = {\n dataset: Dataset;\n axis: Dimension;\n groupBy: Dimension;\n measure: Measure;\n limit?: number;\n axisOrder?: string[];\n};\n\nexport const loadDataResultsArgs = ({\n dataset,\n axis,\n groupBy,\n measure,\n limit,\n axisOrder,\n}: LoadDataResultsArgs): LoadDataRequest => {\n const request: LoadDataRequest = {\n from: dataset,\n select: [axis, groupBy, measure],\n limit: getLimit(limit),\n };\n if (axisOrder?.length) {\n request['filters'] = [{ property: axis, operator: 'equals', value: axisOrder }];\n }\n return request;\n};\n\ntype LoadDataResults = {\n dataset: Dataset;\n axis: Dimension;\n groupBy: Dimension;\n measure: Measure;\n granularity?: Granularity;\n sortDirection?: OrderDirection;\n limitTopAxis?: number;\n maxResults?: number;\n axisOrder?: string[];\n};\n\nexport const loadDataResults = ({\n dataset,\n axis,\n groupBy,\n measure,\n granularity,\n sortDirection,\n limitTopAxis,\n maxResults,\n axisOrder,\n}: LoadDataResults): DataResponse | undefined => {\n const needsTopItems = shouldGetTopItems(sortDirection, limitTopAxis);\n const axisWithGranularity = getDimensionWithGranularity(axis, granularity);\n if (!needsTopItems) {\n return loadData(\n loadDataResultsArgs({\n dataset,\n axis: axisWithGranularity,\n groupBy,\n measure,\n limit: maxResults,\n }),\n );\n }\n if (axisOrder == null) return undefined;\n if (!axisOrder?.length) return EMPTY_RESULTS;\n return loadData(\n loadDataResultsArgs({\n dataset,\n axis: axisWithGranularity,\n groupBy,\n measure,\n limit: maxResults,\n axisOrder,\n }),\n );\n};\n"],"names":["useUpdateAxisOrderAndCacheKey","opts","resultsAxisOrder","axisDimension","setAxisOrderAndCacheKey","axisOrderCacheKey","useEffect","values","d","v","getLimit","limit","shouldGetTopItems","sortDirection","getSortDirectionValue","EMPTY_RESULTS","loadDataResultsAxisOrderArgs","dataset","axis","measure","SortDirectionTypeOptions","loadDataResultsAxisOrder","limitTopAxis","loadData","getAxisOrderCacheKey","getCachedAxisOrder","state","loadDataResultsArgs","groupBy","axisOrder","request","loadDataResults","granularity","maxResults","needsTopItems","axisWithGranularity","getDimensionWithGranularity"],"mappings":"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"}
|