@embeddable.com/remarkable-pro 0.0.12 → 0.0.14
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 +3 -3
- package/dist/BarChartDefaultPro.js +3 -3
- package/dist/BarChartGroupedHorizontalPro.js +3 -3
- package/dist/BarChartGroupedPro.js +3 -3
- package/dist/BarChartStackedHorizontalPro.js +3 -3
- package/dist/BarChartStackedPro.js +3 -3
- package/dist/{ChartCard-F1fMKsD4.js → ChartCard-DaUtlchs.js} +3 -3
- package/dist/{ChartCard-F1fMKsD4.js.map → ChartCard-DaUtlchs.js.map} +1 -1
- package/dist/{Color.type.emb-BmenseN6.js → Color.type.emb-DFhAaPXz.js} +2 -2
- package/dist/{Color.type.emb-BmenseN6.js.map → Color.type.emb-DFhAaPXz.js.map} +1 -1
- package/dist/ColorEditor.js +2 -2
- package/dist/{ComparisonPeriod.type.emb-Bp4VzSqq.js → ComparisonPeriod.type.emb-C-YdNTEB.js} +2 -2
- package/dist/{ComparisonPeriod.type.emb-Bp4VzSqq.js.map → ComparisonPeriod.type.emb-C-YdNTEB.js.map} +1 -1
- package/dist/ComparisonPeriodSelectFieldPro.js +4 -4
- package/dist/DateRangePickerCustomPro.js +3 -3
- package/dist/DateRangeSelectFieldPro.js +3 -3
- package/dist/DonutChartPro.js +3 -3
- package/dist/DonutLabelChartPro.js +3 -3
- package/dist/{EditorCard-CXmogrdI.js → EditorCard-DXQeyo3r.js} +3 -3
- package/dist/{EditorCard-CXmogrdI.js.map → EditorCard-DXQeyo3r.js.map} +1 -1
- package/dist/HeatMapPro.js +4 -4
- package/dist/KpiChartNumberComparisonPro.js +4 -4
- package/dist/KpiChartNumberPro.js +3 -3
- package/dist/LineChartComparisonDefaultPro.js +5 -5
- package/dist/LineChartDefaultPro.js +4 -4
- package/dist/LineChartGroupedPro.js +3 -3
- package/dist/MultiSelectFieldPro.js +3 -3
- package/dist/PieChartPro.js +3 -3
- package/dist/PivotTablePro.js +3 -3
- package/dist/SingleSelectFieldPro.js +3 -3
- package/dist/TableChartPaginated.js +3 -3
- package/dist/{bars.utils-g15uj8cH.js → bars.utils-BOaMUmRC.js} +4 -4
- package/dist/{bars.utils-g15uj8cH.js.map → bars.utils-BOaMUmRC.js.map} +1 -1
- package/dist/charts.fillGaps.hooks-zCMYcjxz.js +65 -0
- package/dist/charts.fillGaps.hooks-zCMYcjxz.js.map +1 -0
- package/dist/{charts.utils-WjKhtDzm.js → charts.utils-QEdmPKTi.js} +1864 -1784
- package/dist/charts.utils-QEdmPKTi.js.map +1 -0
- package/dist/{component.constants-5pSEkTqN.js → component.constants-DJqBv0qe.js} +2 -2
- package/dist/{component.constants-5pSEkTqN.js.map → component.constants-DJqBv0qe.js.map} +1 -1
- package/dist/components/charts/charts.fillGaps.hooks.d.ts.map +1 -1
- package/dist/components/charts/lines/LineChartComparisonDefaultPro/index.d.ts.map +1 -1
- package/dist/embeddable-components.json +12 -12
- package/dist/embeddable-theme-0137e.js +3330 -3250
- package/dist/{formatter.utils-CU02gBE5.js → formatter.utils-BRMB8qAc.js} +2 -2
- package/dist/{formatter.utils-CU02gBE5.js.map → formatter.utils-BRMB8qAc.js.map} +1 -1
- package/dist/{index-DUn23CxN.js → index-9xeta4is.js} +5 -5
- package/dist/{index-DUn23CxN.js.map → index-9xeta4is.js.map} +1 -1
- package/dist/{index-CIy-fCZE.js → index-BIiign0L.js} +8506 -8505
- package/dist/{index-CIy-fCZE.js.map → index-BIiign0L.js.map} +1 -1
- package/dist/{index-JRFQo8DK.js → index-Ba6ziHiQ.js} +4 -4
- package/dist/{index-JRFQo8DK.js.map → index-Ba6ziHiQ.js.map} +1 -1
- package/dist/{index-BsOU6A4h.js → index-BbypzboN.js} +5 -5
- package/dist/{index-BsOU6A4h.js.map → index-BbypzboN.js.map} +1 -1
- package/dist/{index-B524G8aR.js → index-BcipgJ0R.js} +5 -5
- package/dist/{index-B524G8aR.js.map → index-BcipgJ0R.js.map} +1 -1
- package/dist/{index-a51EknRg.js → index-Bege60LS.js} +6 -6
- package/dist/{index-a51EknRg.js.map → index-Bege60LS.js.map} +1 -1
- package/dist/{index-1KmRpcj0.js → index-BpTn16mw.js} +53 -49
- package/dist/{index-1KmRpcj0.js.map → index-BpTn16mw.js.map} +1 -1
- package/dist/{index-DDx1tSTE.js → index-BqgkyNm8.js} +6 -6
- package/dist/{index-DDx1tSTE.js.map → index-BqgkyNm8.js.map} +1 -1
- package/dist/{index-BvBc86AB.js → index-BvAMg9p7.js} +6 -6
- package/dist/{index-BvBc86AB.js.map → index-BvAMg9p7.js.map} +1 -1
- package/dist/{index-FjCFm3BI.js → index-CVv-xIyp.js} +5 -5
- package/dist/{index-FjCFm3BI.js.map → index-CVv-xIyp.js.map} +1 -1
- package/dist/{index-DZlowRxA.js → index-CYfKRRhL.js} +4 -4
- package/dist/{index-DZlowRxA.js.map → index-CYfKRRhL.js.map} +1 -1
- package/dist/{index-VMsVpFuu.js → index-CfpIN_sB.js} +6 -6
- package/dist/{index-VMsVpFuu.js.map → index-CfpIN_sB.js.map} +1 -1
- package/dist/{index-D67Dqwl6.js → index-CnbSiVWn.js} +6 -6
- package/dist/{index-D67Dqwl6.js.map → index-CnbSiVWn.js.map} +1 -1
- package/dist/{index-B_zyCSBJ.js → index-CrFZJTR2.js} +6 -6
- package/dist/{index-B_zyCSBJ.js.map → index-CrFZJTR2.js.map} +1 -1
- package/dist/{index-6ZmZRk63.js → index-DBFwmzJQ.js} +5 -5
- package/dist/{index-6ZmZRk63.js.map → index-DBFwmzJQ.js.map} +1 -1
- package/dist/{index-By4dAXWS.js → index-DD28i12d.js} +6 -6
- package/dist/{index-By4dAXWS.js.map → index-DD28i12d.js.map} +1 -1
- package/dist/{index-33BWxRVA.js → index-DD5t0omh.js} +5 -5
- package/dist/{index-33BWxRVA.js.map → index-DD5t0omh.js.map} +1 -1
- package/dist/{index-DjX_tMRT.js → index-DkbXF0dN.js} +6 -6
- package/dist/{index-DjX_tMRT.js.map → index-DkbXF0dN.js.map} +1 -1
- package/dist/{index-Bz-jqsH6.js → index-DlkwNVQ_.js} +6 -6
- package/dist/{index-Bz-jqsH6.js.map → index-DlkwNVQ_.js.map} +1 -1
- package/dist/{index-D8Z7FVYE.js → index-Drxp0RBw.js} +6 -6
- package/dist/{index-D8Z7FVYE.js.map → index-Drxp0RBw.js.map} +1 -1
- package/dist/{index-CuRuDELE.js → index-QLS7PLnH.js} +6 -6
- package/dist/{index-CuRuDELE.js.map → index-QLS7PLnH.js.map} +1 -1
- package/dist/{index-C58x29od.js → index-fHVbX-W0.js} +6 -6
- package/dist/{index-C58x29od.js.map → index-fHVbX-W0.js.map} +1 -1
- package/dist/index.js +29 -29
- package/dist/{pies.utils-ZhJMIog5.js → pies.utils-P0szT8UT.js} +5 -5
- package/dist/{pies.utils-ZhJMIog5.js.map → pies.utils-P0szT8UT.js.map} +1 -1
- package/dist/remarkable-pro.css +1 -1
- package/dist/theme/defaults/defaults.ComparisonPeriods.constants.d.ts +1 -1
- package/dist/theme/defaults/defaults.ComparisonPeriods.constants.d.ts.map +1 -1
- package/dist/theme/i18n/translations/de.d.ts.map +1 -1
- package/dist/theme/i18n/translations/en.d.ts.map +1 -1
- package/dist/{timeRange.utils-CNktS9Lb.js → timeRange.utils-CgLgHA94.js} +2 -2
- package/dist/{timeRange.utils-CNktS9Lb.js.map → timeRange.utils-CgLgHA94.js.map} +1 -1
- package/package.json +2 -2
- package/dist/charts.fillGaps.hooks-Dd-VYdOE.js +0 -66
- package/dist/charts.fillGaps.hooks-Dd-VYdOE.js.map +0 -1
- package/dist/charts.utils-WjKhtDzm.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $ as i } from "./component.constants-
|
|
1
|
+
import { $ as i } from "./component.constants-DJqBv0qe.js";
|
|
2
2
|
const f = (o, t, s) => {
|
|
3
3
|
var d;
|
|
4
4
|
if (!o || !t)
|
|
@@ -17,4 +17,4 @@ export {
|
|
|
17
17
|
v as a,
|
|
18
18
|
f as g
|
|
19
19
|
};
|
|
20
|
-
//# sourceMappingURL=timeRange.utils-
|
|
20
|
+
//# sourceMappingURL=timeRange.utils-CgLgHA94.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timeRange.utils-
|
|
1
|
+
{"version":3,"file":"timeRange.utils-CgLgHA94.js","sources":["../src/components/utils/timeRange.utils.ts"],"sourcesContent":["import { TimeRange } from '@embeddable.com/core';\nimport { Theme } from '../../theme/theme.types';\nimport { resolveI18nString } from '../component.utils';\n\nexport const getComparisonPeriodDateRange = (\n primaryDateRange: TimeRange,\n comparisonPeriod: string | undefined,\n theme: Theme,\n): TimeRange => {\n if (!primaryDateRange || !comparisonPeriod) {\n return undefined;\n }\n\n const primaryDateRangeRange = primaryDateRange?.relativeTimeString\n ? theme.defaults.dateRangesOptions\n .find((option) => option.value === primaryDateRange?.relativeTimeString)\n ?.getRange()\n : primaryDateRange;\n\n const comparisonPeriodOption = theme.defaults.comparisonPeriodsOptions.find(\n (option) => option.value === comparisonPeriod,\n );\n\n return comparisonPeriodOption?.getRange(primaryDateRangeRange);\n};\n\nexport const getComparisonPeriodLabel = (\n comparisonPeriod: string | undefined,\n theme: Theme,\n): string => {\n const option = theme.defaults.comparisonPeriodsOptions.find(\n (option) => option.value === comparisonPeriod,\n );\n return option ? resolveI18nString(option.label) : '';\n};\n"],"names":["getComparisonPeriodDateRange","primaryDateRange","comparisonPeriod","theme","primaryDateRangeRange","_a","option","comparisonPeriodOption","getComparisonPeriodLabel","resolveI18nString"],"mappings":";AAIO,MAAMA,IAA+B,CAC1CC,GACAC,GACAC,MACc;;AACd,MAAI,CAACF,KAAoB,CAACC;AACxB;AAGF,QAAME,IAAwBH,KAAA,QAAAA,EAAkB,sBAC5CI,IAAAF,EAAM,SAAS,kBACZ,KAAK,CAACG,MAAWA,EAAO,WAAUL,KAAA,gBAAAA,EAAkB,mBAAkB,MADzE,gBAAAI,EAEI,aACJJ,GAEEM,IAAyBJ,EAAM,SAAS,yBAAyB;AAAA,IACrE,CAACG,MAAWA,EAAO,UAAUJ;AAAA,EAAA;AAG/B,SAAOK,KAAA,gBAAAA,EAAwB,SAASH;AAC1C,GAEaI,IAA2B,CACtCN,GACAC,MACW;AACX,QAAMG,IAASH,EAAM,SAAS,yBAAyB;AAAA,IACrD,CAACG,MAAWA,EAAO,UAAUJ;AAAA,EAAA;AAE/B,SAAOI,IAASG,EAAkBH,EAAO,KAAK,IAAI;AACpD;"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@embeddable.com/remarkable-pro",
|
|
3
3
|
"author": "embeddable (https://embeddable.com)",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.14",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "https://github.com/embeddable-hq/remarkable-pro"
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
"@changesets/cli": "^2.29.6",
|
|
60
60
|
"@embeddable.com/core": "^2.13.2",
|
|
61
61
|
"@embeddable.com/react": "^2.12.2",
|
|
62
|
-
"@embeddable.com/remarkable-ui": "^2.0.
|
|
62
|
+
"@embeddable.com/remarkable-ui": "^2.0.19",
|
|
63
63
|
"@tabler/icons-react": "^3.34.1",
|
|
64
64
|
"chart.js": "^4.5.0",
|
|
65
65
|
"chartjs-plugin-datalabels": "^2.2.0",
|
|
@@ -1,66 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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]}
|