@milaboratories/miplots4 1.2.0 → 1.2.1
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/bubble/BubbleSettingsImpl.d.ts +3 -0
- package/dist/bubble/BubbleSettingsImpl.d.ts.map +1 -1
- package/dist/bubble/BubbleSettingsImpl.js +4 -1
- package/dist/bubble/BubbleSettingsImpl.js.map +1 -1
- package/dist/bubble/ChartRenderer.d.ts +2 -12
- package/dist/bubble/ChartRenderer.d.ts.map +1 -1
- package/dist/bubble/ChartRenderer.js +13 -13
- package/dist/bubble/ChartRenderer.js.map +1 -1
- package/dist/bubble/getGroupedCellsData.d.ts +1 -1
- package/dist/bubble/getGroupedCellsData.d.ts.map +1 -1
- package/dist/bubble/getGroupedCellsData.js +20 -14
- package/dist/bubble/getGroupedCellsData.js.map +1 -1
- package/dist/bubble/index.d.ts.map +1 -1
- package/dist/bubble/index.js +6 -10
- package/dist/bubble/index.js.map +1 -1
- package/dist/heatmap/ChartRenderer.d.ts +2 -12
- package/dist/heatmap/ChartRenderer.d.ts.map +1 -1
- package/dist/heatmap/ChartRenderer.js +26 -26
- package/dist/heatmap/ChartRenderer.js.map +1 -1
- package/dist/heatmap/HeatmapSettingsImpl.d.ts +3 -0
- package/dist/heatmap/HeatmapSettingsImpl.d.ts.map +1 -1
- package/dist/heatmap/HeatmapSettingsImpl.js +5 -2
- package/dist/heatmap/HeatmapSettingsImpl.js.map +1 -1
- package/dist/heatmap/fillCellsData.d.ts +6 -1
- package/dist/heatmap/fillCellsData.d.ts.map +1 -1
- package/dist/heatmap/fillCellsData.js +135 -96
- package/dist/heatmap/fillCellsData.js.map +1 -1
- package/dist/heatmap/getCells.d.ts +4 -1
- package/dist/heatmap/getCells.d.ts.map +1 -1
- package/dist/heatmap/getCells.js +19 -16
- package/dist/heatmap/getCells.js.map +1 -1
- package/dist/heatmap/index.d.ts.map +1 -1
- package/dist/heatmap/index.js +32 -34
- package/dist/heatmap/index.js.map +1 -1
- package/dist/types/bubble.d.ts +89 -0
- package/dist/types/bubble.d.ts.map +1 -1
- package/dist/types/bubble.js +3 -0
- package/dist/types/bubble.js.map +1 -1
- package/dist/types/heatmap.d.ts +89 -0
- package/dist/types/heatmap.d.ts.map +1 -1
- package/dist/types/heatmap.js +3 -0
- package/dist/types/heatmap.js.map +1 -1
- package/dist/utils/intersect.d.ts +2 -0
- package/dist/utils/intersect.d.ts.map +1 -0
- package/dist/utils/intersect.js +8 -0
- package/dist/utils/intersect.js.map +1 -0
- package/package.json +1 -1
package/dist/heatmap/getCells.js
CHANGED
|
@@ -24,9 +24,9 @@ function t() {
|
|
|
24
24
|
facets: {}
|
|
25
25
|
};
|
|
26
26
|
}
|
|
27
|
-
function n({ data: n, xColumn: r, yColumn: i, valueColumns: a, facetBy: o, xGroupBy: s, yGroupBy: c,
|
|
28
|
-
let
|
|
29
|
-
return e(
|
|
27
|
+
function n({ data: n, xColumn: r, yColumn: i, valueColumns: a, facetBy: o, xGroupBy: s, yGroupBy: c, xSortBy: l, ySortBy: u, facetSettings: d, annotations: f, dendrogramX: p, dendrogramY: m, normalization: h, NAValueAs: g, transform: _, keysOrder: v, xAxis: y, yAxis: b, aggregation: x, showEmptyRows: S = !1, showEmptyColumns: C = !1 }) {
|
|
28
|
+
let w = t();
|
|
29
|
+
return e(w, {
|
|
30
30
|
data: n,
|
|
31
31
|
xColumn: r,
|
|
32
32
|
yColumn: i,
|
|
@@ -34,19 +34,22 @@ function n({ data: n, xColumn: r, yColumn: i, valueColumns: a, facetBy: o, xGrou
|
|
|
34
34
|
facetBy: o,
|
|
35
35
|
xGroupBy: s,
|
|
36
36
|
yGroupBy: c,
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
37
|
+
xSortBy: l,
|
|
38
|
+
ySortBy: u,
|
|
39
|
+
facetSettings: d,
|
|
40
|
+
annotations: f,
|
|
41
|
+
dendrogramX: p,
|
|
42
|
+
dendrogramY: m,
|
|
43
|
+
normalizationBySource: { dataSource: h },
|
|
44
|
+
NAValueAs: g,
|
|
45
|
+
transformBySource: { dataSource: _ },
|
|
46
|
+
keysOrder: v,
|
|
47
|
+
xAxis: y,
|
|
48
|
+
yAxis: b,
|
|
49
|
+
aggregation: x,
|
|
50
|
+
showEmptyRows: S,
|
|
51
|
+
showEmptyColumns: C
|
|
52
|
+
}), w;
|
|
50
53
|
}
|
|
51
54
|
export { n as getCells };
|
|
52
55
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getCells.js","names":[],"sources":["../../src/heatmap/getCells.ts"],"sourcesContent":["import type { DataFrame } from '../DataFrame';\nimport type { ColumnName } from '../types';\nimport type { HeatmapSettingsImpl } from './HeatmapSettingsImpl';\nimport type { Cell, GroupedCellsData } from './fillCellsData';\nimport { fillCellsData } from './fillCellsData';\n\nexport type CellHeatmap = Cell<'dataSource'>\nexport type GroupedCellsHeatmap = GroupedCellsData<'dataSource'>;\n\nexport function createEmptyGroupedCells(): GroupedCellsHeatmap {\n return {\n meta: {\n valueSources: ['dataSource'],\n facetKeys: [],\n xKeys: [],\n yKeys: [],\n xGroupKeys: [],\n yGroupKeys: [],\n xKeysByGroups: {},\n yKeysByGroups: {},\n xLabels: {},\n yLabels: {},\n xGroupLabels: {},\n yGroupLabels: {},\n xDataByKeys: {},\n yDataByKeys: {},\n facetKeyValues: {},\n xGroupKeyValues: {},\n yGroupKeyValues: {},\n valueExtent: { dataSource: [Infinity, -Infinity] },\n },\n facets: {},\n };\n}\n\nexport function getCells({\n data,\n xColumn,\n yColumn,\n valueColumns,\n facetBy,\n xGroupBy,\n yGroupBy,\n facetSettings,\n annotations,\n dendrogramX,\n dendrogramY,\n normalization,\n NAValueAs,\n keysOrder,\n xAxis,\n yAxis,\n aggregation,\n showEmptyRows = false,\n showEmptyColumns = false,\n}: {\n data: DataFrame;\n xColumn: ColumnName;\n yColumn: ColumnName;\n valueColumns: Record<string, ColumnName>;\n facetBy: ColumnName[];\n xGroupBy: ColumnName[];\n yGroupBy: ColumnName[];\n facetSettings: HeatmapSettingsImpl['facetSettings'];\n annotations: HeatmapSettingsImpl['annotations'];\n dendrogramX: HeatmapSettingsImpl['dendrogramX'];\n dendrogramY: HeatmapSettingsImpl['dendrogramY'];\n normalization: HeatmapSettingsImpl['normalization'];\n NAValueAs: HeatmapSettingsImpl['NAValueAs'];\n keysOrder: HeatmapSettingsImpl['keysOrder'];\n xAxis: HeatmapSettingsImpl['chartSettings']['xAxis'];\n yAxis: HeatmapSettingsImpl['chartSettings']['yAxis'];\n aggregation: HeatmapSettingsImpl['aggregation'];\n showEmptyRows?: boolean;\n showEmptyColumns?: boolean;\n}): GroupedCellsHeatmap {\n const result: GroupedCellsHeatmap = createEmptyGroupedCells();\n fillCellsData(result, {\n data,\n xColumn, yColumn, valueColumns,\n facetBy, xGroupBy, yGroupBy,\n facetSettings,\n annotations,\n dendrogramX, dendrogramY,\n normalizationBySource: { dataSource: normalization },\n NAValueAs,\n keysOrder,\n xAxis,\n yAxis,\n aggregation,\n showEmptyRows,\n showEmptyColumns,\n });\n return result;\n}\n"],"mappings":";AASA,SAAgB,IAA+C;AAC3D,QAAO;EACH,MAAM;GACF,cAAc,CAAC,aAAa;GAC5B,WAAW,EAAE;GACb,OAAO,EAAE;GACT,OAAO,EAAE;GACT,YAAY,EAAE;GACd,YAAY,EAAE;GACd,eAAe,EAAE;GACjB,eAAe,EAAE;GACjB,SAAS,EAAE;GACX,SAAS,EAAE;GACX,cAAc,EAAE;GAChB,cAAc,EAAE;GAChB,aAAa,EAAE;GACf,aAAa,EAAE;GACf,gBAAgB,EAAE;GAClB,iBAAiB,EAAE;GACnB,iBAAiB,EAAE;GACnB,aAAa,EAAE,YAAY,CAAC,UAAU,UAAU,EAAE;GACrD;EACD,QAAQ,EAAE;EACb;;AAGL,SAAgB,EAAS,EACrB,SACA,YACA,YACA,iBACA,YACA,aACA,aACA,kBACA,gBACA,gBACA,gBACA,kBACA,cACA,cACA,UACA,UACA,gBACA,mBAAgB,IAChB,sBAAmB,
|
|
1
|
+
{"version":3,"file":"getCells.js","names":[],"sources":["../../src/heatmap/getCells.ts"],"sourcesContent":["import type { DataFrame } from '../DataFrame';\nimport type { ColumnName } from '../types';\nimport type { HeatmapSettingsImpl } from './HeatmapSettingsImpl';\nimport type { Cell, GroupedCellsData } from './fillCellsData';\nimport { fillCellsData } from './fillCellsData';\n\nexport type CellHeatmap = Cell<'dataSource'>\nexport type GroupedCellsHeatmap = GroupedCellsData<'dataSource'>;\n\nexport function createEmptyGroupedCells(): GroupedCellsHeatmap {\n return {\n meta: {\n valueSources: ['dataSource'],\n facetKeys: [],\n xKeys: [],\n yKeys: [],\n xGroupKeys: [],\n yGroupKeys: [],\n xKeysByGroups: {},\n yKeysByGroups: {},\n xLabels: {},\n yLabels: {},\n xGroupLabels: {},\n yGroupLabels: {},\n xDataByKeys: {},\n yDataByKeys: {},\n facetKeyValues: {},\n xGroupKeyValues: {},\n yGroupKeyValues: {},\n valueExtent: { dataSource: [Infinity, -Infinity] },\n },\n facets: {},\n };\n}\n\nexport function getCells({\n data,\n xColumn,\n yColumn,\n valueColumns,\n facetBy,\n xGroupBy,\n yGroupBy,\n xSortBy,\n ySortBy,\n facetSettings,\n annotations,\n dendrogramX,\n dendrogramY,\n normalization,\n NAValueAs,\n transform,\n keysOrder,\n xAxis,\n yAxis,\n aggregation,\n showEmptyRows = false,\n showEmptyColumns = false,\n}: {\n data: DataFrame;\n xColumn: ColumnName;\n yColumn: ColumnName;\n valueColumns: Record<string, ColumnName>;\n facetBy: ColumnName[];\n xGroupBy: ColumnName[];\n yGroupBy: ColumnName[];\n xSortBy: ColumnName[];\n ySortBy: ColumnName[];\n facetSettings: HeatmapSettingsImpl['facetSettings'];\n annotations: HeatmapSettingsImpl['annotations'];\n dendrogramX: HeatmapSettingsImpl['dendrogramX'];\n dendrogramY: HeatmapSettingsImpl['dendrogramY'];\n normalization: HeatmapSettingsImpl['normalization'];\n NAValueAs: HeatmapSettingsImpl['NAValueAs'];\n transform: HeatmapSettingsImpl['transform'];\n keysOrder: HeatmapSettingsImpl['keysOrder'];\n xAxis: HeatmapSettingsImpl['chartSettings']['xAxis'];\n yAxis: HeatmapSettingsImpl['chartSettings']['yAxis'];\n aggregation: HeatmapSettingsImpl['aggregation'];\n showEmptyRows?: boolean;\n showEmptyColumns?: boolean;\n}): GroupedCellsHeatmap {\n const result: GroupedCellsHeatmap = createEmptyGroupedCells();\n fillCellsData(result, {\n data,\n xColumn, yColumn, valueColumns,\n facetBy, xGroupBy, yGroupBy,\n xSortBy, ySortBy,\n facetSettings,\n annotations,\n dendrogramX, dendrogramY,\n normalizationBySource: { dataSource: normalization },\n NAValueAs,\n transformBySource: { dataSource: transform },\n keysOrder,\n xAxis,\n yAxis,\n aggregation,\n showEmptyRows,\n showEmptyColumns,\n });\n return result;\n}\n"],"mappings":";AASA,SAAgB,IAA+C;AAC3D,QAAO;EACH,MAAM;GACF,cAAc,CAAC,aAAa;GAC5B,WAAW,EAAE;GACb,OAAO,EAAE;GACT,OAAO,EAAE;GACT,YAAY,EAAE;GACd,YAAY,EAAE;GACd,eAAe,EAAE;GACjB,eAAe,EAAE;GACjB,SAAS,EAAE;GACX,SAAS,EAAE;GACX,cAAc,EAAE;GAChB,cAAc,EAAE;GAChB,aAAa,EAAE;GACf,aAAa,EAAE;GACf,gBAAgB,EAAE;GAClB,iBAAiB,EAAE;GACnB,iBAAiB,EAAE;GACnB,aAAa,EAAE,YAAY,CAAC,UAAU,UAAU,EAAE;GACrD;EACD,QAAQ,EAAE;EACb;;AAGL,SAAgB,EAAS,EACrB,SACA,YACA,YACA,iBACA,YACA,aACA,aACA,YACA,YACA,kBACA,gBACA,gBACA,gBACA,kBACA,cACA,cACA,cACA,UACA,UACA,gBACA,mBAAgB,IAChB,sBAAmB,MAwBC;CACpB,IAAM,IAA8B,GAAyB;AAmB7D,QAlBA,EAAc,GAAQ;EAClB;EACA;EAAS;EAAS;EAClB;EAAS;EAAU;EACnB;EAAS;EACT;EACA;EACA;EAAa;EACb,uBAAuB,EAAE,YAAY,GAAe;EACpD;EACA,mBAAmB,EAAE,YAAY,GAAW;EAC5C;EACA;EACA;EACA;EACA;EACA;EACH,CAAC,EACK"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/heatmap/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAmB,KAAK,SAAS,EAAuB,KAAK,oBAAoB,EAAE,KAAK,eAAe,EAAe,MAAM,UAAU,CAAC;AAE9I,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAK5D,qBAAa,YAAa,SAAQ,aAAa;IAC3C,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,aAAa,gBAAuB;IAEpC,mBAAmB,EAAE,CAAC,CAAC,EAAC,OAAO,KAAK,IAAI,CAAQ;IAChD,eAAe,EAAE,CAAC,CAAC,EAAC,OAAO,KAAK,IAAI,CAAQ;IAE5C,cAAc,EAAE;QACZ,gBAAgB,EAAE,mBAAmB,CAAC;QACtC,eAAe,EAAE,eAAe,CAAC;QACjC,cAAc,EAAE,SAAS,EAAE,CAAC;KAC/B,GAAG,IAAI,CAAQ;IAEhB,gCAAgC,UAAS;gBAE7B,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,aAAa,CAAC,EAAC,oBAAoB;IAU3F,KAAK,CAAC,IAAI,EAAE,WAAW;IAgBvB,OAAO;IAIP,qBAAqB,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe;IA0BhE,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO;IAIhD,MAAM,IAAI,MAAM;IAKhB,mCAAmC,CAAC,YAAY,EAAE,mBAAmB,EAAE,QAAQ,EAAE,mBAAmB;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/heatmap/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAmB,KAAK,SAAS,EAAuB,KAAK,oBAAoB,EAAE,KAAK,eAAe,EAAe,MAAM,UAAU,CAAC;AAE9I,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAK5D,qBAAa,YAAa,SAAQ,aAAa;IAC3C,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,aAAa,gBAAuB;IAEpC,mBAAmB,EAAE,CAAC,CAAC,EAAC,OAAO,KAAK,IAAI,CAAQ;IAChD,eAAe,EAAE,CAAC,CAAC,EAAC,OAAO,KAAK,IAAI,CAAQ;IAE5C,cAAc,EAAE;QACZ,gBAAgB,EAAE,mBAAmB,CAAC;QACtC,eAAe,EAAE,eAAe,CAAC;QACjC,cAAc,EAAE,SAAS,EAAE,CAAC;KAC/B,GAAG,IAAI,CAAQ;IAEhB,gCAAgC,UAAS;gBAE7B,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,aAAa,CAAC,EAAC,oBAAoB;IAU3F,KAAK,CAAC,IAAI,EAAE,WAAW;IAgBvB,OAAO;IAIP,qBAAqB,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe;IA0BhE,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO;IAIhD,MAAM,IAAI,MAAM;IAKhB,mCAAmC,CAAC,YAAY,EAAE,mBAAmB,EAAE,QAAQ,EAAE,mBAAmB;IA4EpG,+BAA+B,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS;IAU9D,WAAW;IAwEjB,gBAAgB;IAIhB,YAAY;CAsCf"}
|
package/dist/heatmap/index.js
CHANGED
|
@@ -45,50 +45,53 @@ var d = class extends e {
|
|
|
45
45
|
return this._updateChart(), u(this.chartRenderer.component);
|
|
46
46
|
}
|
|
47
47
|
_needUpdateCalculatedDataBySettings(e, t) {
|
|
48
|
-
let { xColumn: n, yColumn: a, valueColumn: o, xGroupBy: s, yGroupBy: c,
|
|
49
|
-
function
|
|
48
|
+
let { xColumn: n, yColumn: a, valueColumn: o, xGroupBy: s, yGroupBy: c, xSortBy: l, ySortBy: u, facetBy: d, annotations: f, chartSettings: p, facetSettings: m, dendrogramX: h, dendrogramY: g, normalization: _, aggregation: v, NAValueAs: y, transform: b } = t, x = Object.values(e.dendrogramX?.aes || {}).filter(r), S = Object.values(h?.aes || {}).filter(r), C = Object.values(e.dendrogramY?.aes || {}).filter(r), w = Object.values(g?.aes || {}).filter(r);
|
|
49
|
+
function T(e, t) {
|
|
50
50
|
return e.length !== t.length || e.some((e, n) => e.value !== t[n].value);
|
|
51
51
|
}
|
|
52
|
-
return e.xColumn.value !== n.value || e.yColumn.value !== a.value || e.valueColumn.value !== o.value ||
|
|
52
|
+
return e.xColumn.value !== n.value || e.yColumn.value !== a.value || e.valueColumn.value !== o.value || T(e.xGroupBy, s) || T(e.yGroupBy, c) || T(e.xSortBy, l) || T(e.ySortBy, u) || e.chartSettings.xAxis.sorting !== p.xAxis.sorting || e.chartSettings.yAxis.sorting !== p.yAxis.sorting || T(e.facetBy, d) || T(e.annotations.map((e) => e.valueColumn), f.map((e) => e.valueColumn)) || T(x, S) || T(C, w) || (t.dendrogramX || e.dendrogramX) && (e.dendrogramX?.distance !== t.dendrogramX?.distance || e.dendrogramX?.linkage !== t.dendrogramX?.linkage) || (t.dendrogramY || e.dendrogramY) && (e.dendrogramY?.distance !== t.dendrogramY?.distance || e.dendrogramY?.linkage !== t.dendrogramY?.linkage) || e.chartSettings.valueType !== p.valueType || e.facetSettings.sharedX !== m.sharedX || e.facetSettings.sharedY !== m.sharedY || i(e.facetSettings?.order ?? [], t.facetSettings?.order ?? []) || e.normalization?.method !== _?.method || e.normalization?.direction !== _?.direction || e.transform !== b || e.NAValueAs !== y || e.aggregation?.method !== v?.method || e.aggregation?.x !== v?.x || e.aggregation?.y !== v?.y || e.showEmptyRows !== t.showEmptyRows || e.showEmptyColumns !== t.showEmptyColumns;
|
|
53
53
|
}
|
|
54
54
|
_needUpdateCalculatedDataByData(e, t) {
|
|
55
55
|
let n = Object.keys(e.data), r = Object.keys(t.data);
|
|
56
56
|
return e.id !== t.id || n.length !== r.length || n.some((n) => e.data[n].length !== t.data[n]?.length);
|
|
57
57
|
}
|
|
58
58
|
async _updateData() {
|
|
59
|
-
let { xColumn: e, yColumn: t, valueColumn: n, xGroupBy: r, yGroupBy: i,
|
|
59
|
+
let { xColumn: e, yColumn: t, valueColumn: n, xGroupBy: r, yGroupBy: i, xSortBy: a, ySortBy: c, facetBy: l, chartSettings: u, facetSettings: d, annotations: f, dendrogramX: p, dendrogramY: m, normalization: h, NAValueAs: g, transform: _, keysOrder: v, aggregation: y, showEmptyRows: b, showEmptyColumns: x } = this.settings, S = o({
|
|
60
60
|
data: this.data,
|
|
61
61
|
xColumn: e,
|
|
62
62
|
yColumn: t,
|
|
63
63
|
valueColumns: { dataSource: n },
|
|
64
|
-
facetBy:
|
|
64
|
+
facetBy: l,
|
|
65
65
|
xGroupBy: r,
|
|
66
66
|
yGroupBy: i,
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
67
|
+
xSortBy: a,
|
|
68
|
+
ySortBy: c,
|
|
69
|
+
facetSettings: d,
|
|
70
|
+
annotations: f,
|
|
71
|
+
dendrogramX: p,
|
|
72
|
+
dendrogramY: m,
|
|
73
|
+
normalization: h,
|
|
74
|
+
NAValueAs: g,
|
|
75
|
+
transform: _,
|
|
76
|
+
keysOrder: v,
|
|
77
|
+
xAxis: u.xAxis,
|
|
78
|
+
yAxis: u.yAxis,
|
|
79
|
+
aggregation: y,
|
|
80
|
+
showEmptyRows: b,
|
|
81
|
+
showEmptyColumns: x
|
|
82
|
+
}), C = u.valueType === "discrete" ? this.data.getColumnCategories(n.value) : [];
|
|
83
|
+
if (p && d.sharedX && l.length > 0) throw Error("Dendrogram on X axis is not available with shared by facets X axis");
|
|
84
|
+
if (m && d.sharedY && l.length > 0) throw Error("Dendrogram on Y axis is not available with shared by facets Y axis");
|
|
82
85
|
this.clusteringCalculationsInProgress = !0, this.onLoadingChange(!0);
|
|
83
|
-
let
|
|
84
|
-
groupedCellsData:
|
|
85
|
-
dendrogramX:
|
|
86
|
-
dendrogramY:
|
|
86
|
+
let w = await s({
|
|
87
|
+
groupedCellsData: S,
|
|
88
|
+
dendrogramX: p,
|
|
89
|
+
dendrogramY: m
|
|
87
90
|
});
|
|
88
91
|
this.clusteringCalculationsInProgress = !1, this.onLoadingChange(!1), this.calculatedData = {
|
|
89
|
-
groupedCellsData:
|
|
90
|
-
dendrogramsData:
|
|
91
|
-
cellUniqValues:
|
|
92
|
+
groupedCellsData: S,
|
|
93
|
+
dendrogramsData: w,
|
|
94
|
+
cellUniqValues: C
|
|
92
95
|
}, this._updateChart();
|
|
93
96
|
}
|
|
94
97
|
_updateAesInData() {
|
|
@@ -96,13 +99,8 @@ var d = class extends e {
|
|
|
96
99
|
}
|
|
97
100
|
_updateChart() {
|
|
98
101
|
if (!this.calculatedData || this.clusteringCalculationsInProgress) return;
|
|
99
|
-
let { id: e, valueColumn: t, chartSettings: n, facetSettings: r, aes: i, annotations: a, dendrogramX: o, dendrogramY: s, inheritedDendrogramAes: c, normalization: l
|
|
100
|
-
|
|
101
|
-
y: u[f.value]?.length > 0,
|
|
102
|
-
xGroup: p.some((e) => u[e.value]?.length > 0),
|
|
103
|
-
yGroup: m.some((e) => u[e.value]?.length > 0)
|
|
104
|
-
}, g = this.data.columnNames.length ? this.data.getColumn(this.data.columnNames[0]).length : 0, _ = this.settings.cellsRenderingMode ?? (g > 5e5 ? "canvas" : "svg");
|
|
105
|
-
this.chartRenderer.render(this.data, e, n, r, i, this.calculatedData.groupedCellsData, a, t, o, s, this.calculatedData.dendrogramsData, c, this.calculatedData.cellUniqValues, l, this.onTooltipHintSwitch, h, _);
|
|
102
|
+
let { id: e, valueColumn: t, chartSettings: n, facetSettings: r, aes: i, annotations: a, dendrogramX: o, dendrogramY: s, inheritedDendrogramAes: c, normalization: l } = this.settings, u = this.data.columnNames.length ? this.data.getColumn(this.data.columnNames[0]).length : 0, d = this.settings.cellsRenderingMode ?? (u > 5e5 ? "canvas" : "svg");
|
|
103
|
+
this.chartRenderer.render(this.data, e, n, r, i, this.calculatedData.groupedCellsData, a, t, o, s, this.calculatedData.dendrogramsData, c, this.calculatedData.cellUniqValues, l, this.onTooltipHintSwitch, d);
|
|
106
104
|
}
|
|
107
105
|
};
|
|
108
106
|
export { d as ChartHeatmap };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../src/heatmap/index.ts"],"sourcesContent":["import { renderToString } from 'react-dom/server.browser';\nimport { AbstractChart } from '../AbstractChart';\nimport type { DataFrame } from '../DataFrame';\nimport { type ColumnName, type DataValue, getUnknownErrorInfo, type HeatmapEventHandlers, type HeatmapSettings, isErrorInfo } from '../types';\nimport { isColumnName } from '../utils';\nimport ChartRenderer from './ChartRenderer';\nimport type { GroupedCellsHeatmap } from './getCells';\nimport { getCells } from './getCells';\nimport type { DendrogramsData } from './getDendrograms';\nimport { getDendrograms } from './getDendrograms';\nimport { HeatmapSettingsImpl } from './HeatmapSettingsImpl';\nimport { MAX_SVG_RENDERED_CELLS_COUNT } from './constants';\nimport { noop } from 'lodash';\nimport { arraysAreDifferent } from '../utils/arraysAreDifferent';\n\nexport class ChartHeatmap extends AbstractChart {\n settings: HeatmapSettingsImpl;\n chartRenderer = new ChartRenderer();\n\n onTooltipHintSwitch: (v:boolean) => void = noop;\n onLoadingChange: (v:boolean) => void = noop;\n\n calculatedData: {\n groupedCellsData: GroupedCellsHeatmap;\n dendrogramsData: DendrogramsData;\n cellUniqValues: DataValue[];\n } | null = null;\n\n clusteringCalculationsInProgress = false;\n\n constructor(data: DataFrame, settings: HeatmapSettings, eventHandlers?:HeatmapEventHandlers) {\n super(data, settings);\n\n this.settings = new HeatmapSettingsImpl(settings);\n if (eventHandlers) {\n this.onTooltipHintSwitch = eventHandlers.onTooltipHintSwitch ?? noop;\n this.onLoadingChange = eventHandlers.onLoadingChange ?? noop;\n }\n }\n\n mount(node: HTMLElement) {\n try {\n this.chartRenderer.init(node);\n this._updateData();\n this.hasError = false;\n this.errorInfo = null;\n } catch (err) {\n this.hasError = true;\n if (err instanceof Error) {\n this.errorInfo = isErrorInfo(err.cause) ? err.cause : getUnknownErrorInfo(err);\n this.chartRenderer.renderError(err.message as string);\n console.error(err);\n }\n }\n }\n\n unmount() {\n this.chartRenderer.clear();\n }\n\n updateSettingsAndData(data: DataFrame, settings: HeatmapSettings) {\n try {\n const previousSettings = this.settings;\n const previousData = this.data;\n this.settings = new HeatmapSettingsImpl(settings);\n this.data = data;\n if (\n this._needUpdateCalculatedDataBySettings(previousSettings, this.settings) ||\n this._needUpdateCalculatedDataByData(previousData, this.data)\n ) {\n this._updateData();\n } else {\n this._updateAesInData();\n }\n this.hasError = false;\n this.errorInfo = null;\n } catch (err) {\n this.hasError = true;\n if (err instanceof Error) {\n this.errorInfo = isErrorInfo(err.cause) ? err.cause : getUnknownErrorInfo(err);\n this.chartRenderer.renderError(err.message as string);\n console.error(err);\n }\n }\n }\n\n updateChartState(_field: string, _value: unknown) {\n console.warn('no chart state for heatmap');\n }\n\n export(): string {\n this._updateChart();\n return renderToString(this.chartRenderer.component);\n }\n\n _needUpdateCalculatedDataBySettings(prevSettings: HeatmapSettingsImpl, settings: HeatmapSettingsImpl) {\n const {\n xColumn,\n yColumn,\n valueColumn,\n xGroupBy,\n yGroupBy,\n facetBy,\n annotations,\n chartSettings,\n facetSettings,\n dendrogramX,\n dendrogramY,\n normalization,\n aggregation,\n NAValueAs,\n } = settings;\n\n const prevDendrogramXColumns: ColumnName[] = Object.values(prevSettings.dendrogramX?.aes || {}).filter(\n isColumnName\n );\n const currentDendrogramXColumns: ColumnName[] = Object.values(dendrogramX?.aes || {}).filter(isColumnName);\n const prevDendrogramYColumns: ColumnName[] = Object.values(prevSettings.dendrogramY?.aes || {}).filter(\n isColumnName\n );\n const currentDendrogramYColumns: ColumnName[] = Object.values(dendrogramY?.aes || {}).filter(isColumnName);\n\n function compareColumnGroups(columns1: ColumnName[], columns2: ColumnName[]) {\n return (\n columns1.length !== columns2.length ||\n columns1.some((column, idx) => column.value !== columns2[idx].value)\n );\n }\n\n return (\n prevSettings.xColumn.value !== xColumn.value ||\n prevSettings.yColumn.value !== yColumn.value ||\n prevSettings.valueColumn.value !== valueColumn.value ||\n compareColumnGroups(prevSettings.xGroupBy, xGroupBy) ||\n compareColumnGroups(prevSettings.yGroupBy, yGroupBy) ||\n compareColumnGroups(prevSettings.facetBy, facetBy) ||\n compareColumnGroups(\n prevSettings.annotations.map(a => a.valueColumn),\n annotations.map(a => a.valueColumn)\n ) ||\n compareColumnGroups(prevDendrogramXColumns, currentDendrogramXColumns) ||\n compareColumnGroups(prevDendrogramYColumns, currentDendrogramYColumns) ||\n ((settings.dendrogramX || prevSettings.dendrogramX) &&\n (prevSettings.dendrogramX?.distance !== settings.dendrogramX?.distance ||\n prevSettings.dendrogramX?.linkage !== settings.dendrogramX?.linkage)) ||\n ((settings.dendrogramY || prevSettings.dendrogramY) &&\n (prevSettings.dendrogramY?.distance !== settings.dendrogramY?.distance ||\n prevSettings.dendrogramY?.linkage !== settings.dendrogramY?.linkage)) ||\n prevSettings.chartSettings.valueType !== chartSettings.valueType ||\n prevSettings.facetSettings.sharedX !== facetSettings.sharedX ||\n prevSettings.facetSettings.sharedY !== facetSettings.sharedY ||\n arraysAreDifferent(prevSettings.facetSettings?.order ?? [], settings.facetSettings?.order ?? []) ||\n prevSettings.normalization?.method !== normalization?.method ||\n prevSettings.normalization?.direction !== normalization?.direction ||\n prevSettings.NAValueAs !== NAValueAs ||\n prevSettings.aggregation?.method !== aggregation?.method ||\n prevSettings.aggregation?.x !== aggregation?.x ||\n prevSettings.aggregation?.y !== aggregation?.y ||\n prevSettings.showEmptyRows !== settings.showEmptyRows ||\n prevSettings.showEmptyColumns !== settings.showEmptyColumns\n );\n }\n\n _needUpdateCalculatedDataByData(prevData: DataFrame, data: DataFrame) {\n const prevKeys = Object.keys(prevData.data);\n const keys = Object.keys(data.data);\n return (\n prevData.id !== data.id ||\n prevKeys.length !== keys.length ||\n prevKeys.some(key => prevData.data[key].length !== data.data[key]?.length)\n );\n }\n\n async _updateData() {\n const {\n xColumn,\n yColumn,\n valueColumn,\n xGroupBy,\n yGroupBy,\n facetBy,\n chartSettings,\n facetSettings,\n annotations,\n dendrogramX,\n dendrogramY,\n normalization,\n NAValueAs,\n keysOrder,\n aggregation,\n showEmptyRows,\n showEmptyColumns,\n } = this.settings;\n\n const groupedCellsData = getCells({\n data: this.data,\n xColumn,\n yColumn,\n valueColumns: { dataSource: valueColumn },\n facetBy,\n xGroupBy,\n yGroupBy,\n facetSettings,\n annotations,\n dendrogramX,\n dendrogramY,\n normalization,\n NAValueAs,\n keysOrder,\n xAxis: chartSettings.xAxis,\n yAxis: chartSettings.yAxis,\n aggregation,\n showEmptyRows,\n showEmptyColumns,\n });\n\n const cellUniqValues = chartSettings.valueType === 'discrete' ? this.data.getColumnCategories(valueColumn.value) : [];\n \n if (dendrogramX && facetSettings.sharedX && facetBy.length > 0) {\n throw Error('Dendrogram on X axis is not available with shared by facets X axis');\n }\n if (dendrogramY && facetSettings.sharedY && facetBy.length > 0) {\n throw Error('Dendrogram on Y axis is not available with shared by facets Y axis');\n }\n this.clusteringCalculationsInProgress = true;\n this.onLoadingChange(true);\n const dendrogramsData = await getDendrograms({ groupedCellsData, dendrogramX, dendrogramY });\n this.clusteringCalculationsInProgress = false;\n this.onLoadingChange(false);\n\n this.calculatedData = {\n groupedCellsData,\n dendrogramsData,\n cellUniqValues,\n };\n \n this._updateChart();\n }\n\n _updateAesInData() {\n this._updateChart();\n }\n\n _updateChart() {\n if (!this.calculatedData || this.clusteringCalculationsInProgress) {\n return;\n }\n const {\n id,\n valueColumn,\n chartSettings,\n facetSettings,\n aes,\n annotations,\n dendrogramX,\n dendrogramY,\n inheritedDendrogramAes,\n normalization,\n keysOrder,\n xColumn,\n yColumn,\n xGroupBy,\n yGroupBy,\n } = this.settings;\n const customOrder = {\n x: keysOrder[xColumn.value]?.length > 0,\n y: keysOrder[yColumn.value]?.length > 0,\n xGroup: xGroupBy.some((v) => keysOrder[v.value]?.length > 0),\n yGroup: yGroupBy.some((v) => keysOrder[v.value]?.length > 0),\n };\n const dataSize = this.data.columnNames.length ? this.data.getColumn(this.data.columnNames[0]).length : 0;\n const cellsRenderingMode = this.settings.cellsRenderingMode ?? (dataSize > MAX_SVG_RENDERED_CELLS_COUNT ? 'canvas' : 'svg');\n \n this.chartRenderer.render(\n this.data,\n id,\n chartSettings,\n facetSettings,\n aes,\n this.calculatedData.groupedCellsData,\n annotations,\n valueColumn,\n dendrogramX,\n dendrogramY,\n this.calculatedData.dendrogramsData,\n inheritedDendrogramAes,\n this.calculatedData.cellUniqValues,\n normalization,\n this.onTooltipHintSwitch,\n customOrder,\n cellsRenderingMode\n );\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../src/heatmap/index.ts"],"sourcesContent":["import { renderToString } from 'react-dom/server.browser';\nimport { AbstractChart } from '../AbstractChart';\nimport type { DataFrame } from '../DataFrame';\nimport { type ColumnName, type DataValue, getUnknownErrorInfo, type HeatmapEventHandlers, type HeatmapSettings, isErrorInfo } from '../types';\nimport { isColumnName } from '../utils';\nimport ChartRenderer from './ChartRenderer';\nimport type { GroupedCellsHeatmap } from './getCells';\nimport { getCells } from './getCells';\nimport type { DendrogramsData } from './getDendrograms';\nimport { getDendrograms } from './getDendrograms';\nimport { HeatmapSettingsImpl } from './HeatmapSettingsImpl';\nimport { MAX_SVG_RENDERED_CELLS_COUNT } from './constants';\nimport { noop } from 'lodash';\nimport { arraysAreDifferent } from '../utils/arraysAreDifferent';\n\nexport class ChartHeatmap extends AbstractChart {\n settings: HeatmapSettingsImpl;\n chartRenderer = new ChartRenderer();\n\n onTooltipHintSwitch: (v:boolean) => void = noop;\n onLoadingChange: (v:boolean) => void = noop;\n\n calculatedData: {\n groupedCellsData: GroupedCellsHeatmap;\n dendrogramsData: DendrogramsData;\n cellUniqValues: DataValue[];\n } | null = null;\n\n clusteringCalculationsInProgress = false;\n\n constructor(data: DataFrame, settings: HeatmapSettings, eventHandlers?:HeatmapEventHandlers) {\n super(data, settings);\n\n this.settings = new HeatmapSettingsImpl(settings);\n if (eventHandlers) {\n this.onTooltipHintSwitch = eventHandlers.onTooltipHintSwitch ?? noop;\n this.onLoadingChange = eventHandlers.onLoadingChange ?? noop;\n }\n }\n\n mount(node: HTMLElement) {\n try {\n this.chartRenderer.init(node);\n this._updateData();\n this.hasError = false;\n this.errorInfo = null;\n } catch (err) {\n this.hasError = true;\n if (err instanceof Error) {\n this.errorInfo = isErrorInfo(err.cause) ? err.cause : getUnknownErrorInfo(err);\n this.chartRenderer.renderError(err.message as string);\n console.error(err);\n }\n }\n }\n\n unmount() {\n this.chartRenderer.clear();\n }\n\n updateSettingsAndData(data: DataFrame, settings: HeatmapSettings) {\n try {\n const previousSettings = this.settings;\n const previousData = this.data;\n this.settings = new HeatmapSettingsImpl(settings);\n this.data = data;\n if (\n this._needUpdateCalculatedDataBySettings(previousSettings, this.settings) ||\n this._needUpdateCalculatedDataByData(previousData, this.data)\n ) {\n this._updateData();\n } else {\n this._updateAesInData();\n }\n this.hasError = false;\n this.errorInfo = null;\n } catch (err) {\n this.hasError = true;\n if (err instanceof Error) {\n this.errorInfo = isErrorInfo(err.cause) ? err.cause : getUnknownErrorInfo(err);\n this.chartRenderer.renderError(err.message as string);\n console.error(err);\n }\n }\n }\n\n updateChartState(_field: string, _value: unknown) {\n console.warn('no chart state for heatmap');\n }\n\n export(): string {\n this._updateChart();\n return renderToString(this.chartRenderer.component);\n }\n\n _needUpdateCalculatedDataBySettings(prevSettings: HeatmapSettingsImpl, settings: HeatmapSettingsImpl) {\n const {\n xColumn,\n yColumn,\n valueColumn,\n xGroupBy,\n yGroupBy,\n xSortBy,\n ySortBy,\n facetBy,\n annotations,\n chartSettings,\n facetSettings,\n dendrogramX,\n dendrogramY,\n normalization,\n aggregation,\n NAValueAs,\n transform,\n } = settings;\n\n const prevDendrogramXColumns: ColumnName[] = Object.values(prevSettings.dendrogramX?.aes || {}).filter(\n isColumnName\n );\n const currentDendrogramXColumns: ColumnName[] = Object.values(dendrogramX?.aes || {}).filter(isColumnName);\n const prevDendrogramYColumns: ColumnName[] = Object.values(prevSettings.dendrogramY?.aes || {}).filter(\n isColumnName\n );\n const currentDendrogramYColumns: ColumnName[] = Object.values(dendrogramY?.aes || {}).filter(isColumnName);\n\n function compareColumnGroups(columns1: ColumnName[], columns2: ColumnName[]) {\n return (\n columns1.length !== columns2.length ||\n columns1.some((column, idx) => column.value !== columns2[idx].value)\n );\n }\n\n return (\n prevSettings.xColumn.value !== xColumn.value ||\n prevSettings.yColumn.value !== yColumn.value ||\n prevSettings.valueColumn.value !== valueColumn.value ||\n compareColumnGroups(prevSettings.xGroupBy, xGroupBy) ||\n compareColumnGroups(prevSettings.yGroupBy, yGroupBy) ||\n compareColumnGroups(prevSettings.xSortBy, xSortBy) ||\n compareColumnGroups(prevSettings.ySortBy, ySortBy) ||\n prevSettings.chartSettings.xAxis.sorting !== chartSettings.xAxis.sorting ||\n prevSettings.chartSettings.yAxis.sorting !== chartSettings.yAxis.sorting ||\n compareColumnGroups(prevSettings.facetBy, facetBy) ||\n compareColumnGroups(\n prevSettings.annotations.map(a => a.valueColumn),\n annotations.map(a => a.valueColumn)\n ) ||\n compareColumnGroups(prevDendrogramXColumns, currentDendrogramXColumns) ||\n compareColumnGroups(prevDendrogramYColumns, currentDendrogramYColumns) ||\n ((settings.dendrogramX || prevSettings.dendrogramX) &&\n (prevSettings.dendrogramX?.distance !== settings.dendrogramX?.distance ||\n prevSettings.dendrogramX?.linkage !== settings.dendrogramX?.linkage)) ||\n ((settings.dendrogramY || prevSettings.dendrogramY) &&\n (prevSettings.dendrogramY?.distance !== settings.dendrogramY?.distance ||\n prevSettings.dendrogramY?.linkage !== settings.dendrogramY?.linkage)) ||\n prevSettings.chartSettings.valueType !== chartSettings.valueType ||\n prevSettings.facetSettings.sharedX !== facetSettings.sharedX ||\n prevSettings.facetSettings.sharedY !== facetSettings.sharedY ||\n arraysAreDifferent(prevSettings.facetSettings?.order ?? [], settings.facetSettings?.order ?? []) ||\n prevSettings.normalization?.method !== normalization?.method ||\n prevSettings.normalization?.direction !== normalization?.direction ||\n prevSettings.transform !== transform ||\n prevSettings.NAValueAs !== NAValueAs ||\n prevSettings.aggregation?.method !== aggregation?.method ||\n prevSettings.aggregation?.x !== aggregation?.x ||\n prevSettings.aggregation?.y !== aggregation?.y ||\n prevSettings.showEmptyRows !== settings.showEmptyRows ||\n prevSettings.showEmptyColumns !== settings.showEmptyColumns\n );\n }\n\n _needUpdateCalculatedDataByData(prevData: DataFrame, data: DataFrame) {\n const prevKeys = Object.keys(prevData.data);\n const keys = Object.keys(data.data);\n return (\n prevData.id !== data.id ||\n prevKeys.length !== keys.length ||\n prevKeys.some(key => prevData.data[key].length !== data.data[key]?.length)\n );\n }\n\n async _updateData() {\n const {\n xColumn,\n yColumn,\n valueColumn,\n xGroupBy,\n yGroupBy,\n xSortBy,\n ySortBy,\n facetBy,\n chartSettings,\n facetSettings,\n annotations,\n dendrogramX,\n dendrogramY,\n normalization,\n NAValueAs,\n transform,\n keysOrder,\n aggregation,\n showEmptyRows,\n showEmptyColumns,\n } = this.settings;\n\n const groupedCellsData = getCells({\n data: this.data,\n xColumn,\n yColumn,\n valueColumns: { dataSource: valueColumn },\n facetBy,\n xGroupBy,\n yGroupBy,\n xSortBy,\n ySortBy,\n facetSettings,\n annotations,\n dendrogramX,\n dendrogramY,\n normalization,\n NAValueAs,\n transform,\n keysOrder,\n xAxis: chartSettings.xAxis,\n yAxis: chartSettings.yAxis,\n aggregation,\n showEmptyRows,\n showEmptyColumns,\n });\n\n const cellUniqValues = chartSettings.valueType === 'discrete' ? this.data.getColumnCategories(valueColumn.value) : [];\n \n if (dendrogramX && facetSettings.sharedX && facetBy.length > 0) {\n throw Error('Dendrogram on X axis is not available with shared by facets X axis');\n }\n if (dendrogramY && facetSettings.sharedY && facetBy.length > 0) {\n throw Error('Dendrogram on Y axis is not available with shared by facets Y axis');\n }\n this.clusteringCalculationsInProgress = true;\n this.onLoadingChange(true);\n const dendrogramsData = await getDendrograms({ groupedCellsData, dendrogramX, dendrogramY });\n this.clusteringCalculationsInProgress = false;\n this.onLoadingChange(false);\n\n this.calculatedData = {\n groupedCellsData,\n dendrogramsData,\n cellUniqValues,\n };\n \n this._updateChart();\n }\n\n _updateAesInData() {\n this._updateChart();\n }\n\n _updateChart() {\n if (!this.calculatedData || this.clusteringCalculationsInProgress) {\n return;\n }\n const {\n id,\n valueColumn,\n chartSettings,\n facetSettings,\n aes,\n annotations,\n dendrogramX,\n dendrogramY,\n inheritedDendrogramAes,\n normalization,\n } = this.settings;\n const dataSize = this.data.columnNames.length ? this.data.getColumn(this.data.columnNames[0]).length : 0;\n const cellsRenderingMode = this.settings.cellsRenderingMode ?? (dataSize > MAX_SVG_RENDERED_CELLS_COUNT ? 'canvas' : 'svg');\n\n this.chartRenderer.render(\n this.data,\n id,\n chartSettings,\n facetSettings,\n aes,\n this.calculatedData.groupedCellsData,\n annotations,\n valueColumn,\n dendrogramX,\n dendrogramY,\n this.calculatedData.dendrogramsData,\n inheritedDendrogramAes,\n this.calculatedData.cellUniqValues,\n normalization,\n this.onTooltipHintSwitch,\n cellsRenderingMode\n );\n }\n}\n"],"mappings":"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"}
|
package/dist/types/bubble.d.ts
CHANGED
|
@@ -207,6 +207,57 @@ export declare const BubblesSettingsSchema: z.ZodObject<{
|
|
|
207
207
|
valueLabelsMap?: Record<string, string> | undefined;
|
|
208
208
|
nullValueLabel?: string | undefined;
|
|
209
209
|
}>, "many">>;
|
|
210
|
+
xSortBy: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
211
|
+
type: z.ZodLiteral<"column">;
|
|
212
|
+
value: z.ZodString;
|
|
213
|
+
format: z.ZodOptional<z.ZodString>;
|
|
214
|
+
label: z.ZodOptional<z.ZodString>;
|
|
215
|
+
valueLabels: z.ZodOptional<z.ZodString>;
|
|
216
|
+
valueLabelsMap: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
217
|
+
nullValueLabel: z.ZodOptional<z.ZodString>;
|
|
218
|
+
}, "strip", z.ZodTypeAny, {
|
|
219
|
+
type: "column";
|
|
220
|
+
value: string;
|
|
221
|
+
format?: string | undefined;
|
|
222
|
+
label?: string | undefined;
|
|
223
|
+
valueLabels?: string | undefined;
|
|
224
|
+
valueLabelsMap?: Record<string, string> | undefined;
|
|
225
|
+
nullValueLabel?: string | undefined;
|
|
226
|
+
}, {
|
|
227
|
+
type: "column";
|
|
228
|
+
value: string;
|
|
229
|
+
format?: string | undefined;
|
|
230
|
+
label?: string | undefined;
|
|
231
|
+
valueLabels?: string | undefined;
|
|
232
|
+
valueLabelsMap?: Record<string, string> | undefined;
|
|
233
|
+
nullValueLabel?: string | undefined;
|
|
234
|
+
}>, "many">>;
|
|
235
|
+
ySortBy: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
236
|
+
type: z.ZodLiteral<"column">;
|
|
237
|
+
value: z.ZodString;
|
|
238
|
+
format: z.ZodOptional<z.ZodString>;
|
|
239
|
+
label: z.ZodOptional<z.ZodString>;
|
|
240
|
+
valueLabels: z.ZodOptional<z.ZodString>;
|
|
241
|
+
valueLabelsMap: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
242
|
+
nullValueLabel: z.ZodOptional<z.ZodString>;
|
|
243
|
+
}, "strip", z.ZodTypeAny, {
|
|
244
|
+
type: "column";
|
|
245
|
+
value: string;
|
|
246
|
+
format?: string | undefined;
|
|
247
|
+
label?: string | undefined;
|
|
248
|
+
valueLabels?: string | undefined;
|
|
249
|
+
valueLabelsMap?: Record<string, string> | undefined;
|
|
250
|
+
nullValueLabel?: string | undefined;
|
|
251
|
+
}, {
|
|
252
|
+
type: "column";
|
|
253
|
+
value: string;
|
|
254
|
+
format?: string | undefined;
|
|
255
|
+
label?: string | undefined;
|
|
256
|
+
valueLabels?: string | undefined;
|
|
257
|
+
valueLabelsMap?: Record<string, string> | undefined;
|
|
258
|
+
nullValueLabel?: string | undefined;
|
|
259
|
+
}>, "many">>;
|
|
260
|
+
transform: z.ZodOptional<z.ZodEnum<["log"]>>;
|
|
210
261
|
keysOrder: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString, "many">>>;
|
|
211
262
|
normalization: z.ZodOptional<z.ZodObject<{
|
|
212
263
|
direction: z.ZodEnum<["row", "column"]>;
|
|
@@ -508,6 +559,25 @@ export declare const BubblesSettingsSchema: z.ZodObject<{
|
|
|
508
559
|
valueLabelsMap?: Record<string, string> | undefined;
|
|
509
560
|
nullValueLabel?: string | undefined;
|
|
510
561
|
}[] | undefined;
|
|
562
|
+
xSortBy?: {
|
|
563
|
+
type: "column";
|
|
564
|
+
value: string;
|
|
565
|
+
format?: string | undefined;
|
|
566
|
+
label?: string | undefined;
|
|
567
|
+
valueLabels?: string | undefined;
|
|
568
|
+
valueLabelsMap?: Record<string, string> | undefined;
|
|
569
|
+
nullValueLabel?: string | undefined;
|
|
570
|
+
}[] | undefined;
|
|
571
|
+
ySortBy?: {
|
|
572
|
+
type: "column";
|
|
573
|
+
value: string;
|
|
574
|
+
format?: string | undefined;
|
|
575
|
+
label?: string | undefined;
|
|
576
|
+
valueLabels?: string | undefined;
|
|
577
|
+
valueLabelsMap?: Record<string, string> | undefined;
|
|
578
|
+
nullValueLabel?: string | undefined;
|
|
579
|
+
}[] | undefined;
|
|
580
|
+
transform?: "log" | undefined;
|
|
511
581
|
keysOrder?: Record<string, string[]> | undefined;
|
|
512
582
|
normalization?: {
|
|
513
583
|
direction: "column" | "row";
|
|
@@ -647,6 +717,25 @@ export declare const BubblesSettingsSchema: z.ZodObject<{
|
|
|
647
717
|
valueLabelsMap?: Record<string, string> | undefined;
|
|
648
718
|
nullValueLabel?: string | undefined;
|
|
649
719
|
}[] | undefined;
|
|
720
|
+
xSortBy?: {
|
|
721
|
+
type: "column";
|
|
722
|
+
value: string;
|
|
723
|
+
format?: string | undefined;
|
|
724
|
+
label?: string | undefined;
|
|
725
|
+
valueLabels?: string | undefined;
|
|
726
|
+
valueLabelsMap?: Record<string, string> | undefined;
|
|
727
|
+
nullValueLabel?: string | undefined;
|
|
728
|
+
}[] | undefined;
|
|
729
|
+
ySortBy?: {
|
|
730
|
+
type: "column";
|
|
731
|
+
value: string;
|
|
732
|
+
format?: string | undefined;
|
|
733
|
+
label?: string | undefined;
|
|
734
|
+
valueLabels?: string | undefined;
|
|
735
|
+
valueLabelsMap?: Record<string, string> | undefined;
|
|
736
|
+
nullValueLabel?: string | undefined;
|
|
737
|
+
}[] | undefined;
|
|
738
|
+
transform?: "log" | undefined;
|
|
650
739
|
keysOrder?: Record<string, string[]> | undefined;
|
|
651
740
|
normalization?: {
|
|
652
741
|
direction: "column" | "row";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bubble.d.ts","sourceRoot":"","sources":["../../src/types/bubble.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAYxB,eAAO,MAAM,qBAAqB
|
|
1
|
+
{"version":3,"file":"bubble.d.ts","sourceRoot":"","sources":["../../src/types/bubble.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAYxB,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyEhC,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC"}
|
package/dist/types/bubble.js
CHANGED
|
@@ -39,6 +39,9 @@ const c = o.object({
|
|
|
39
39
|
yColumn: t,
|
|
40
40
|
xGroupBy: o.optional(o.array(t)),
|
|
41
41
|
yGroupBy: o.optional(o.array(t)),
|
|
42
|
+
xSortBy: o.optional(o.array(t)),
|
|
43
|
+
ySortBy: o.optional(o.array(t)),
|
|
44
|
+
transform: o.optional(o.enum(["log"])),
|
|
42
45
|
keysOrder: o.optional(o.record(o.string(), o.array(o.string()))),
|
|
43
46
|
normalization: o.optional(o.object({
|
|
44
47
|
direction: o.enum(["row", "column"]),
|
package/dist/types/bubble.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bubble.js","names":[],"sources":["../../src/types/bubble.ts"],"sourcesContent":["import {\n AggregationMethodSchema,\n ColumnNameSchema,\n FrameTypeSchema,\n LegendPositionSchema,\n TitlePositionSchema,\n TooltipSettingsSchema,\n} from './common';\nimport { z } from 'zod';\n\nconst axisCommonSchema = {\n title: z.optional(z.string()),\n showTicks: z.optional(z.boolean()),\n showTitle: z.optional(z.boolean()),\n showAxisLabels: z.optional(z.boolean()),\n axisLabelsAngle: z.optional(z.union([z.literal(0), z.literal(45), z.literal(90)])),\n};\n\n//const InheritAesSchema = z.object({type: z.literal('grouping'), value: z.string()}); // link to aes mapped to column\n\nexport const BubblesSettingsSchema = z.object({\n type: z.literal('bubble'),\n title: z.object({\n name: z.string(),\n show: z.optional(z.boolean()),\n position: z.optional(TitlePositionSchema),\n }),\n size: z.optional(\n z.object({\n width: z.optional(z.number()),\n height: z.optional(z.number()),\n cellSize: z.optional(z.number())\n })\n ),\n legend: z.optional(\n z.object({\n show: z.optional(z.boolean()),\n position: z.optional(LegendPositionSchema),\n })\n ),\n frame: z.optional(z.object({ type: z.optional(FrameTypeSchema) })),\n facetSettings: z.optional(\n z.object({\n nRows: z.optional(z.number()),\n nCols: z.optional(z.number()),\n order: z.optional(z.array(z.string())),\n })\n ),\n valueSize: ColumnNameSchema,\n valueColor: ColumnNameSchema,\n xColumn: ColumnNameSchema,\n yColumn: ColumnNameSchema,\n xGroupBy: z.optional(z.array(ColumnNameSchema)),\n yGroupBy: z.optional(z.array(ColumnNameSchema)),\n keysOrder: z.optional( // x, y, grouping, facet keys in user's order\n z.record(z.string(), z.array(z.string()))\n ),\n normalization: z.optional(z.object({\n direction: z.enum(['row', 'column']),\n method: z.enum(['standardScaling', 'meanNormalization']),\n colorRange: z.optional(z.array(z.number())),\n sizeRange: z.optional(z.array(z.number())),\n })),\n aggregation: z.optional(z.object({\n x: z.optional(z.boolean()),\n y: z.optional(z.boolean()),\n method: z.optional(AggregationMethodSchema),\n })),\n xAxis: z.optional(z.object({\n ...axisCommonSchema,\n sorting: z.optional(z.enum(['asc', 'desc'])),\n position: z.optional(z.enum(['top', 'bottom'])),\n })),\n yAxis: z.optional(z.object({\n ...axisCommonSchema,\n sorting: z.optional(z.enum(['asc', 'desc'])),\n position: z.optional(z.enum(['left', 'right'])),\n })),\n facetBy: z.optional(z.array(ColumnNameSchema)),\n aes: z.optional(z.object({\n colorsList: z.optional(z.array(z.string())),\n minRadius: z.optional(z.number()),\n maxRadius: z.optional(z.number()),\n cellStrokeColor: z.optional(z.string()),\n emptyCellColor: z.optional(z.string()),\n })),\n tooltips: z.optional(TooltipSettingsSchema),\n NAValueAs: z.optional(z.union([z.number(), z.null()])),\n showEmptyRows: z.optional(z.boolean()),\n showEmptyColumns: z.optional(z.boolean()),\n});\n\nexport type BubbleSettings = z.infer<typeof BubblesSettingsSchema>;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bubble.js","names":[],"sources":["../../src/types/bubble.ts"],"sourcesContent":["import {\n AggregationMethodSchema,\n ColumnNameSchema,\n FrameTypeSchema,\n LegendPositionSchema,\n TitlePositionSchema,\n TooltipSettingsSchema,\n} from './common';\nimport { z } from 'zod';\n\nconst axisCommonSchema = {\n title: z.optional(z.string()),\n showTicks: z.optional(z.boolean()),\n showTitle: z.optional(z.boolean()),\n showAxisLabels: z.optional(z.boolean()),\n axisLabelsAngle: z.optional(z.union([z.literal(0), z.literal(45), z.literal(90)])),\n};\n\n//const InheritAesSchema = z.object({type: z.literal('grouping'), value: z.string()}); // link to aes mapped to column\n\nexport const BubblesSettingsSchema = z.object({\n type: z.literal('bubble'),\n title: z.object({\n name: z.string(),\n show: z.optional(z.boolean()),\n position: z.optional(TitlePositionSchema),\n }),\n size: z.optional(\n z.object({\n width: z.optional(z.number()),\n height: z.optional(z.number()),\n cellSize: z.optional(z.number())\n })\n ),\n legend: z.optional(\n z.object({\n show: z.optional(z.boolean()),\n position: z.optional(LegendPositionSchema),\n })\n ),\n frame: z.optional(z.object({ type: z.optional(FrameTypeSchema) })),\n facetSettings: z.optional(\n z.object({\n nRows: z.optional(z.number()),\n nCols: z.optional(z.number()),\n order: z.optional(z.array(z.string())),\n })\n ),\n valueSize: ColumnNameSchema,\n valueColor: ColumnNameSchema,\n xColumn: ColumnNameSchema,\n yColumn: ColumnNameSchema,\n xGroupBy: z.optional(z.array(ColumnNameSchema)),\n yGroupBy: z.optional(z.array(ColumnNameSchema)),\n xSortBy: z.optional(z.array(ColumnNameSchema)),\n ySortBy: z.optional(z.array(ColumnNameSchema)),\n transform: z.optional(z.enum(['log'])),\n keysOrder: z.optional( // x, y, grouping, facet keys in user's order\n z.record(z.string(), z.array(z.string()))\n ),\n normalization: z.optional(z.object({\n direction: z.enum(['row', 'column']),\n method: z.enum(['standardScaling', 'meanNormalization']),\n colorRange: z.optional(z.array(z.number())),\n sizeRange: z.optional(z.array(z.number())),\n })),\n aggregation: z.optional(z.object({\n x: z.optional(z.boolean()),\n y: z.optional(z.boolean()),\n method: z.optional(AggregationMethodSchema),\n })),\n xAxis: z.optional(z.object({\n ...axisCommonSchema,\n sorting: z.optional(z.enum(['asc', 'desc'])),\n position: z.optional(z.enum(['top', 'bottom'])),\n })),\n yAxis: z.optional(z.object({\n ...axisCommonSchema,\n sorting: z.optional(z.enum(['asc', 'desc'])),\n position: z.optional(z.enum(['left', 'right'])),\n })),\n facetBy: z.optional(z.array(ColumnNameSchema)),\n aes: z.optional(z.object({\n colorsList: z.optional(z.array(z.string())),\n minRadius: z.optional(z.number()),\n maxRadius: z.optional(z.number()),\n cellStrokeColor: z.optional(z.string()),\n emptyCellColor: z.optional(z.string()),\n })),\n tooltips: z.optional(TooltipSettingsSchema),\n NAValueAs: z.optional(z.union([z.number(), z.null()])),\n showEmptyRows: z.optional(z.boolean()),\n showEmptyColumns: z.optional(z.boolean()),\n});\n\nexport type BubbleSettings = z.infer<typeof BubblesSettingsSchema>;\n"],"mappings":"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"}
|
package/dist/types/heatmap.d.ts
CHANGED
|
@@ -320,6 +320,56 @@ export declare const HeatmapSettingsSchema: z.ZodObject<{
|
|
|
320
320
|
valueLabelsMap?: Record<string, string> | undefined;
|
|
321
321
|
nullValueLabel?: string | undefined;
|
|
322
322
|
}>, "many">>;
|
|
323
|
+
xSortBy: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
324
|
+
type: z.ZodLiteral<"column">;
|
|
325
|
+
value: z.ZodString;
|
|
326
|
+
format: z.ZodOptional<z.ZodString>;
|
|
327
|
+
label: z.ZodOptional<z.ZodString>;
|
|
328
|
+
valueLabels: z.ZodOptional<z.ZodString>;
|
|
329
|
+
valueLabelsMap: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
330
|
+
nullValueLabel: z.ZodOptional<z.ZodString>;
|
|
331
|
+
}, "strip", z.ZodTypeAny, {
|
|
332
|
+
type: "column";
|
|
333
|
+
value: string;
|
|
334
|
+
format?: string | undefined;
|
|
335
|
+
label?: string | undefined;
|
|
336
|
+
valueLabels?: string | undefined;
|
|
337
|
+
valueLabelsMap?: Record<string, string> | undefined;
|
|
338
|
+
nullValueLabel?: string | undefined;
|
|
339
|
+
}, {
|
|
340
|
+
type: "column";
|
|
341
|
+
value: string;
|
|
342
|
+
format?: string | undefined;
|
|
343
|
+
label?: string | undefined;
|
|
344
|
+
valueLabels?: string | undefined;
|
|
345
|
+
valueLabelsMap?: Record<string, string> | undefined;
|
|
346
|
+
nullValueLabel?: string | undefined;
|
|
347
|
+
}>, "many">>;
|
|
348
|
+
ySortBy: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
349
|
+
type: z.ZodLiteral<"column">;
|
|
350
|
+
value: z.ZodString;
|
|
351
|
+
format: z.ZodOptional<z.ZodString>;
|
|
352
|
+
label: z.ZodOptional<z.ZodString>;
|
|
353
|
+
valueLabels: z.ZodOptional<z.ZodString>;
|
|
354
|
+
valueLabelsMap: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
355
|
+
nullValueLabel: z.ZodOptional<z.ZodString>;
|
|
356
|
+
}, "strip", z.ZodTypeAny, {
|
|
357
|
+
type: "column";
|
|
358
|
+
value: string;
|
|
359
|
+
format?: string | undefined;
|
|
360
|
+
label?: string | undefined;
|
|
361
|
+
valueLabels?: string | undefined;
|
|
362
|
+
valueLabelsMap?: Record<string, string> | undefined;
|
|
363
|
+
nullValueLabel?: string | undefined;
|
|
364
|
+
}, {
|
|
365
|
+
type: "column";
|
|
366
|
+
value: string;
|
|
367
|
+
format?: string | undefined;
|
|
368
|
+
label?: string | undefined;
|
|
369
|
+
valueLabels?: string | undefined;
|
|
370
|
+
valueLabelsMap?: Record<string, string> | undefined;
|
|
371
|
+
nullValueLabel?: string | undefined;
|
|
372
|
+
}>, "many">>;
|
|
323
373
|
facetBy: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
324
374
|
type: z.ZodLiteral<"column">;
|
|
325
375
|
value: z.ZodString;
|
|
@@ -346,6 +396,7 @@ export declare const HeatmapSettingsSchema: z.ZodObject<{
|
|
|
346
396
|
nullValueLabel?: string | undefined;
|
|
347
397
|
}>, "many">>;
|
|
348
398
|
keysOrder: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString, "many">>>;
|
|
399
|
+
transform: z.ZodOptional<z.ZodEnum<["log"]>>;
|
|
349
400
|
normalization: z.ZodOptional<z.ZodObject<{
|
|
350
401
|
direction: z.ZodEnum<["row", "column"]>;
|
|
351
402
|
method: z.ZodEnum<["standardScaling", "meanNormalization"]>;
|
|
@@ -1495,6 +1546,25 @@ export declare const HeatmapSettingsSchema: z.ZodObject<{
|
|
|
1495
1546
|
valueLabelsMap?: Record<string, string> | undefined;
|
|
1496
1547
|
nullValueLabel?: string | undefined;
|
|
1497
1548
|
}[] | undefined;
|
|
1549
|
+
xSortBy?: {
|
|
1550
|
+
type: "column";
|
|
1551
|
+
value: string;
|
|
1552
|
+
format?: string | undefined;
|
|
1553
|
+
label?: string | undefined;
|
|
1554
|
+
valueLabels?: string | undefined;
|
|
1555
|
+
valueLabelsMap?: Record<string, string> | undefined;
|
|
1556
|
+
nullValueLabel?: string | undefined;
|
|
1557
|
+
}[] | undefined;
|
|
1558
|
+
ySortBy?: {
|
|
1559
|
+
type: "column";
|
|
1560
|
+
value: string;
|
|
1561
|
+
format?: string | undefined;
|
|
1562
|
+
label?: string | undefined;
|
|
1563
|
+
valueLabels?: string | undefined;
|
|
1564
|
+
valueLabelsMap?: Record<string, string> | undefined;
|
|
1565
|
+
nullValueLabel?: string | undefined;
|
|
1566
|
+
}[] | undefined;
|
|
1567
|
+
transform?: "log" | undefined;
|
|
1498
1568
|
keysOrder?: Record<string, string[]> | undefined;
|
|
1499
1569
|
normalization?: {
|
|
1500
1570
|
direction: "column" | "row";
|
|
@@ -1814,6 +1884,25 @@ export declare const HeatmapSettingsSchema: z.ZodObject<{
|
|
|
1814
1884
|
valueLabelsMap?: Record<string, string> | undefined;
|
|
1815
1885
|
nullValueLabel?: string | undefined;
|
|
1816
1886
|
}[] | undefined;
|
|
1887
|
+
xSortBy?: {
|
|
1888
|
+
type: "column";
|
|
1889
|
+
value: string;
|
|
1890
|
+
format?: string | undefined;
|
|
1891
|
+
label?: string | undefined;
|
|
1892
|
+
valueLabels?: string | undefined;
|
|
1893
|
+
valueLabelsMap?: Record<string, string> | undefined;
|
|
1894
|
+
nullValueLabel?: string | undefined;
|
|
1895
|
+
}[] | undefined;
|
|
1896
|
+
ySortBy?: {
|
|
1897
|
+
type: "column";
|
|
1898
|
+
value: string;
|
|
1899
|
+
format?: string | undefined;
|
|
1900
|
+
label?: string | undefined;
|
|
1901
|
+
valueLabels?: string | undefined;
|
|
1902
|
+
valueLabelsMap?: Record<string, string> | undefined;
|
|
1903
|
+
nullValueLabel?: string | undefined;
|
|
1904
|
+
}[] | undefined;
|
|
1905
|
+
transform?: "log" | undefined;
|
|
1817
1906
|
keysOrder?: Record<string, string[]> | undefined;
|
|
1818
1907
|
normalization?: {
|
|
1819
1908
|
direction: "column" | "row";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"heatmap.d.ts","sourceRoot":"","sources":["../../src/types/heatmap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAgCxB,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAAG,kBAAkB,CAAC;AAClE,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,CAAC;AAKlE,MAAM,MAAM,sBAAsB,GAAG,KAAK,GAAG,QAAQ,CAAC;AACtD,MAAM,MAAM,mBAAmB,GAAG,iBAAiB,GAAG,mBAAmB,CAAC;AAqC1E,eAAO,MAAM,qBAAqB
|
|
1
|
+
{"version":3,"file":"heatmap.d.ts","sourceRoot":"","sources":["../../src/types/heatmap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAgCxB,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAAG,kBAAkB,CAAC;AAClE,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,CAAC;AAKlE,MAAM,MAAM,sBAAsB,GAAG,KAAK,GAAG,QAAQ,CAAC;AACtD,MAAM,MAAM,mBAAmB,GAAG,iBAAiB,GAAG,mBAAmB,CAAC;AAqC1E,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqFhC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC"}
|
package/dist/types/heatmap.js
CHANGED
|
@@ -100,8 +100,11 @@ const y = c.object({
|
|
|
100
100
|
valueColumn: n,
|
|
101
101
|
xGroupBy: c.optional(c.array(n)),
|
|
102
102
|
yGroupBy: c.optional(c.array(n)),
|
|
103
|
+
xSortBy: c.optional(c.array(n)),
|
|
104
|
+
ySortBy: c.optional(c.array(n)),
|
|
103
105
|
facetBy: c.optional(c.array(n)),
|
|
104
106
|
keysOrder: c.optional(c.record(c.string(), c.array(c.string()))),
|
|
107
|
+
transform: c.optional(c.enum(["log"])),
|
|
105
108
|
normalization: c.optional(c.object({
|
|
106
109
|
direction: c.enum(["row", "column"]),
|
|
107
110
|
method: c.enum(["standardScaling", "meanNormalization"]),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"heatmap.js","names":[],"sources":["../../src/types/heatmap.ts"],"sourcesContent":["import { z } from 'zod';\nimport {\n AesRecordSchema,\n AggregationMethodSchema,\n ColumnNameSchema,\n LegendPositionSchema,\n LineShapeSchema,\n PointShapeSchema,\n TitlePositionSchema,\n TooltipSettingsSchema\n} from './common';\n\nconst ValueTypeSchema = z.enum(['discrete', 'continuous']);\n\nconst HeatmapAnnotationSchema = z.object({\n valueColumn: ColumnNameSchema,\n type: ValueTypeSchema,\n showTitle: z.optional(z.boolean()),\n colors: z.optional(z.array(z.string()))\n});\n\nconst HeatmapAnnotationXSchema = HeatmapAnnotationSchema.extend({\n axis: z.literal('x'),\n position: z.optional(z.enum(['top', 'bottom'])),\n titlePosition: z.optional(z.enum(['left', 'right'])),\n});\nconst HeatmapAnnotationYSchema = HeatmapAnnotationSchema.extend({\n axis: z.literal('y'),\n position: z.optional(z.enum(['left', 'right'])),\n titlePosition: z.optional(z.enum(['top', 'bottom'])),\n});\n\nexport type DendrogramDistance = 'euclidean' | 'squaredEuclidean';\nexport type DendrogramLinkage = 'average' | 'complete' | 'single';\n\nconst DendrogramDistanceSchema = z.enum(['euclidean', 'squaredEuclidean']);\nconst DendrogramLinkageSchema = z.enum(['average', 'complete', 'single']);\n\nexport type NormalizationDirection = 'row' | 'column';\nexport type NormalizationMethod = 'standardScaling' | 'meanNormalization';\n\nconst DendrogramSchema = z.object({\n size: z.optional(z.number()),\n distance: z.optional(DendrogramDistanceSchema),\n linkage: z.optional(DendrogramLinkageSchema),\n showNodes: z.optional(z.boolean()),\n edgeInheritance: z.optional(z.enum(['up', 'down'])),\n fillNA: z.optional(z.number()),\n hidden: z.optional(z.boolean()),\n aes: z.optional(z.object({\n lineColor: z.optional(z.union([z.string(), ColumnNameSchema])),\n dotFill: z.optional(z.union([z.string(), ColumnNameSchema])),\n dotShape: z.optional(z.union([PointShapeSchema, ColumnNameSchema])),\n dotSize: z.optional(z.union([z.number(), ColumnNameSchema])),\n lineShape: z.optional(z.union([LineShapeSchema, ColumnNameSchema])),\n lineWidth: z.optional(z.union([z.number(), ColumnNameSchema])),\n }))\n});\n\nconst DendrogramXSchema = DendrogramSchema.extend({\n position: z.optional(z.enum(['top', 'bottom']))\n});\nconst DendrogramYSchema = DendrogramSchema.extend({\n position: z.optional(z.enum(['left', 'right']))\n});\n\nconst axisCommonSchema = {\n title: z.optional(z.string()),\n showTicks: z.optional(z.boolean()),\n showTitle: z.optional(z.boolean()),\n showAxisLabels: z.optional(z.boolean()),\n showGroupLabels: z.optional(z.boolean()),\n axisLabelsAngle: z.optional(z.union([z.literal(0), z.literal(45), z.literal(90)])),\n groupLabelsAngle: z.optional(z.union([z.literal(0), z.literal(45), z.literal(90)])),\n};\n\nexport const HeatmapSettingsSchema = z.object({\n type: z.literal('heatmap'),\n title: z.object({\n name: z.string(),\n show: z.optional(z.boolean()),\n position: z.optional(TitlePositionSchema),\n }),\n tooltips: z.optional(TooltipSettingsSchema),\n valueType: z.optional(ValueTypeSchema),\n size: z.optional(\n z.object({\n width: z.optional(z.number()),\n height: z.optional(z.number()),\n cellWidth: z.optional(z.number()),\n cellHeight: z.optional(z.number()),\n outerOffset: z.optional(z.number()),\n innerOffset: z.optional(z.number())\n })\n ),\n legend: z.optional(\n z.object({\n show: z.optional(z.boolean()),\n position: z.optional(LegendPositionSchema),\n })\n ),\n frame: z.optional(z.object({type: z.optional(z.enum(['full', 'groups', 'none']))})),\n xAxis: z.optional(z.object({\n ...axisCommonSchema,\n sorting: z.optional(z.enum(['asc', 'desc'])),\n position: z.optional(z.enum(['top', 'bottom'])),\n groupingPosition: z.optional(z.enum(['top', 'bottom'])),\n })),\n yAxis: z.optional(z.object({\n ...axisCommonSchema,\n sorting: z.optional(z.enum(['asc', 'desc'])),\n position: z.optional(z.enum(['left', 'right'])),\n groupingPosition: z.optional(z.enum(['left', 'right'])),\n })),\n facetSettings: z.optional(z.object({\n sharedX: z.optional(z.boolean()),\n sharedY: z.optional(z.boolean()),\n nRows: z.optional(z.number()),\n nCols: z.optional(z.number()),\n order: z.optional(z.array(z.string())),\n })),\n xColumn: ColumnNameSchema,\n yColumn: ColumnNameSchema,\n valueColumn: ColumnNameSchema,\n xGroupBy: z.optional(z.array(ColumnNameSchema)),\n yGroupBy: z.optional(z.array(ColumnNameSchema)),\n facetBy: z.optional(z.array(ColumnNameSchema)),\n keysOrder: z.optional( // x, y, grouping, facet keys in user's order\n z.record(z.string(), z.array(z.string()))\n ),\n normalization: z.optional(z.object({\n direction: z.enum(['row', 'column']),\n method: z.enum(['standardScaling', 'meanNormalization']),\n colorRange: z.optional(z.array(z.number()))\n })),\n aggregation: z.optional(z.object({\n x: z.optional(z.boolean()),\n y: z.optional(z.boolean()),\n method: z.optional(AggregationMethodSchema),\n })),\n annotations: z.optional(z.array(z.union([HeatmapAnnotationXSchema, HeatmapAnnotationYSchema]))),\n dendrogramX: z.optional(DendrogramXSchema),\n dendrogramY: z.optional(DendrogramYSchema),\n inheritedDendrogramAes: z.optional(z.record(z.string(), AesRecordSchema)),\n NAValueAs: z.optional(z.union([z.number(), z.null()])),\n showEmptyRows: z.optional(z.boolean()),\n showEmptyColumns: z.optional(z.boolean()),\n cellsRenderingMode: z.optional(z.enum(['svg', 'canvas'])),\n aes: z.optional(z.object({\n colorsList: z.optional(z.array(z.string())),\n colorsMap: z.optional(z.record(z.string())),\n valueColors: z.optional(z.array(z.string())),\n valuesByColors: z.optional(z.array(z.number())),\n cellStrokeColor: z.optional(z.string()),\n emptyCellColor: z.optional(z.string()),\n groupGap: z.optional(z.number()),\n cellGap: z.optional(z.number()),\n }))\n});\n\nexport type HeatmapSettings = z.infer<typeof HeatmapSettingsSchema>;\n\n"],"mappings":";;AAYA,IAAM,IAAkB,EAAE,KAAK,CAAC,YAAY,aAAa,CAAC,EAEpD,IAA0B,EAAE,OAAO;CACrC,aAAa;CACb,MAAM;CACN,WAAW,EAAE,SAAS,EAAE,SAAS,CAAC;CAClC,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;CAC1C,CAAC,EAEI,IAA2B,EAAwB,OAAO;CAC5D,MAAM,EAAE,QAAQ,IAAI;CACpB,UAAU,EAAE,SAAS,EAAE,KAAK,CAAC,OAAO,SAAS,CAAC,CAAC;CAC/C,eAAe,EAAE,SAAS,EAAE,KAAK,CAAC,QAAQ,QAAQ,CAAC,CAAC;CACvD,CAAC,EACI,IAA2B,EAAwB,OAAO;CAC5D,MAAM,EAAE,QAAQ,IAAI;CACpB,UAAU,EAAE,SAAS,EAAE,KAAK,CAAC,QAAQ,QAAQ,CAAC,CAAC;CAC/C,eAAe,EAAE,SAAS,EAAE,KAAK,CAAC,OAAO,SAAS,CAAC,CAAC;CACvD,CAAC,EAKI,IAA2B,EAAE,KAAK,CAAC,aAAa,mBAAmB,CAAC,EACpE,IAA0B,EAAE,KAAK;CAAC;CAAW;CAAY;CAAS,CAAC,EAKnE,IAAmB,EAAE,OAAO;CAC9B,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC;CAC5B,UAAU,EAAE,SAAS,EAAyB;CAC9C,SAAS,EAAE,SAAS,EAAwB;CAC5C,WAAW,EAAE,SAAS,EAAE,SAAS,CAAC;CAClC,iBAAiB,EAAE,SAAS,EAAE,KAAK,CAAC,MAAM,OAAO,CAAC,CAAC;CACnD,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC;CAC9B,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC;CAC/B,KAAK,EAAE,SAAS,EAAE,OAAO;EACrB,WAAW,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAiB,CAAC,CAAC;EAC9D,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAiB,CAAC,CAAC;EAC5D,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC,GAAkB,EAAiB,CAAC,CAAC;EACnE,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAiB,CAAC,CAAC;EAC5D,WAAW,EAAE,SAAS,EAAE,MAAM,CAAC,GAAiB,EAAiB,CAAC,CAAC;EACnE,WAAW,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAiB,CAAC,CAAC;EACjE,CAAC,CAAC;CACN,CAAC,EAEI,IAAoB,EAAiB,OAAO,EAC9C,UAAU,EAAE,SAAS,EAAE,KAAK,CAAC,OAAO,SAAS,CAAC,CAAC,EAClD,CAAC,EACI,IAAoB,EAAiB,OAAO,EAC9C,UAAU,EAAE,SAAS,EAAE,KAAK,CAAC,QAAQ,QAAQ,CAAC,CAAC,EAClD,CAAC,EAEI,IAAmB;CACrB,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC;CAC7B,WAAW,EAAE,SAAS,EAAE,SAAS,CAAC;CAClC,WAAW,EAAE,SAAS,EAAE,SAAS,CAAC;CAClC,gBAAgB,EAAE,SAAS,EAAE,SAAS,CAAC;CACvC,iBAAiB,EAAE,SAAS,EAAE,SAAS,CAAC;CACxC,iBAAiB,EAAE,SAAS,EAAE,MAAM;EAAC,EAAE,QAAQ,EAAE;EAAE,EAAE,QAAQ,GAAG;EAAE,EAAE,QAAQ,GAAG;EAAC,CAAC,CAAC;CAClF,kBAAkB,EAAE,SAAS,EAAE,MAAM;EAAC,EAAE,QAAQ,EAAE;EAAE,EAAE,QAAQ,GAAG;EAAE,EAAE,QAAQ,GAAG;EAAC,CAAC,CAAC;CACtF;AAED,MAAa,IAAwB,EAAE,OAAO;CAC1C,MAAM,EAAE,QAAQ,UAAU;CAC1B,OAAO,EAAE,OAAO;EACZ,MAAM,EAAE,QAAQ;EAChB,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC;EAC7B,UAAU,EAAE,SAAS,EAAoB;EAC5C,CAAC;CACF,UAAU,EAAE,SAAS,EAAsB;CAC3C,WAAW,EAAE,SAAS,EAAgB;CACtC,MAAM,EAAE,SACJ,EAAE,OAAO;EACL,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC;EAC7B,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC;EAC9B,WAAW,EAAE,SAAS,EAAE,QAAQ,CAAC;EACjC,YAAY,EAAE,SAAS,EAAE,QAAQ,CAAC;EAClC,aAAa,EAAE,SAAS,EAAE,QAAQ,CAAC;EACnC,aAAa,EAAE,SAAS,EAAE,QAAQ,CAAC;EACtC,CAAC,CACL;CACD,QAAQ,EAAE,SACN,EAAE,OAAO;EACL,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC;EAC7B,UAAU,EAAE,SAAS,EAAqB;EAC7C,CAAC,CACL;CACD,OAAO,EAAE,SAAS,EAAE,OAAO,EAAC,MAAM,EAAE,SAAS,EAAE,KAAK;EAAC;EAAQ;EAAU;EAAO,CAAC,CAAC,EAAC,CAAC,CAAC;CACnF,OAAO,EAAE,SAAS,EAAE,OAAO;EACvB,GAAG;EACH,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;EAC5C,UAAU,EAAE,SAAS,EAAE,KAAK,CAAC,OAAO,SAAS,CAAC,CAAC;EAC/C,kBAAkB,EAAE,SAAS,EAAE,KAAK,CAAC,OAAO,SAAS,CAAC,CAAC;EAC1D,CAAC,CAAC;CACH,OAAO,EAAE,SAAS,EAAE,OAAO;EACvB,GAAG;EACH,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;EAC5C,UAAU,EAAE,SAAS,EAAE,KAAK,CAAC,QAAQ,QAAQ,CAAC,CAAC;EAC/C,kBAAkB,EAAE,SAAS,EAAE,KAAK,CAAC,QAAQ,QAAQ,CAAC,CAAC;EAC1D,CAAC,CAAC;CACH,eAAe,EAAE,SAAS,EAAE,OAAO;EAC/B,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;EAChC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;EAChC,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC;EAC7B,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC;EAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;EACzC,CAAC,CAAC;CACH,SAAS;CACT,SAAS;CACT,aAAa;CACb,UAAU,EAAE,SAAS,EAAE,MAAM,EAAiB,CAAC;CAC/C,UAAU,EAAE,SAAS,EAAE,MAAM,EAAiB,CAAC;CAC/C,SAAS,EAAE,SAAS,EAAE,MAAM,EAAiB,CAAC;CAC9C,WAAW,EAAE,SACT,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAC5C;CACD,eAAe,EAAE,SAAS,EAAE,OAAO;EAC/B,WAAW,EAAE,KAAK,CAAC,OAAO,SAAS,CAAC;EACpC,QAAQ,EAAE,KAAK,CAAC,mBAAmB,oBAAoB,CAAC;EACxD,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;EAC9C,CAAC,CAAC;CACH,aAAa,EAAE,SAAS,EAAE,OAAO;EAC7B,GAAG,EAAE,SAAS,EAAE,SAAS,CAAC;EAC1B,GAAG,EAAE,SAAS,EAAE,SAAS,CAAC;EAC1B,QAAQ,EAAE,SAAS,EAAwB;EAC9C,CAAC,CAAC;CACH,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,GAA0B,EAAyB,CAAC,CAAC,CAAC;CAC/F,aAAa,EAAE,SAAS,EAAkB;CAC1C,aAAa,EAAE,SAAS,EAAkB;CAC1C,wBAAwB,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAgB,CAAC;CACzE,WAAW,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;CACtD,eAAe,EAAE,SAAS,EAAE,SAAS,CAAC;CACtC,kBAAkB,EAAE,SAAS,EAAE,SAAS,CAAC;CACzC,oBAAoB,EAAE,SAAS,EAAE,KAAK,CAAC,OAAO,SAAS,CAAC,CAAC;CACzD,KAAK,EAAE,SAAS,EAAE,OAAO;EACrB,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;EAC3C,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;EAC3C,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;EAC5C,gBAAgB,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;EAC/C,iBAAiB,EAAE,SAAS,EAAE,QAAQ,CAAC;EACvC,gBAAgB,EAAE,SAAS,EAAE,QAAQ,CAAC;EACtC,UAAU,EAAE,SAAS,EAAE,QAAQ,CAAC;EAChC,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC;EAClC,CAAC,CAAC;CACN,CAAC"}
|
|
1
|
+
{"version":3,"file":"heatmap.js","names":[],"sources":["../../src/types/heatmap.ts"],"sourcesContent":["import { z } from 'zod';\nimport {\n AesRecordSchema,\n AggregationMethodSchema,\n ColumnNameSchema,\n LegendPositionSchema,\n LineShapeSchema,\n PointShapeSchema,\n TitlePositionSchema,\n TooltipSettingsSchema\n} from './common';\n\nconst ValueTypeSchema = z.enum(['discrete', 'continuous']);\n\nconst HeatmapAnnotationSchema = z.object({\n valueColumn: ColumnNameSchema,\n type: ValueTypeSchema,\n showTitle: z.optional(z.boolean()),\n colors: z.optional(z.array(z.string()))\n});\n\nconst HeatmapAnnotationXSchema = HeatmapAnnotationSchema.extend({\n axis: z.literal('x'),\n position: z.optional(z.enum(['top', 'bottom'])),\n titlePosition: z.optional(z.enum(['left', 'right'])),\n});\nconst HeatmapAnnotationYSchema = HeatmapAnnotationSchema.extend({\n axis: z.literal('y'),\n position: z.optional(z.enum(['left', 'right'])),\n titlePosition: z.optional(z.enum(['top', 'bottom'])),\n});\n\nexport type DendrogramDistance = 'euclidean' | 'squaredEuclidean';\nexport type DendrogramLinkage = 'average' | 'complete' | 'single';\n\nconst DendrogramDistanceSchema = z.enum(['euclidean', 'squaredEuclidean']);\nconst DendrogramLinkageSchema = z.enum(['average', 'complete', 'single']);\n\nexport type NormalizationDirection = 'row' | 'column';\nexport type NormalizationMethod = 'standardScaling' | 'meanNormalization';\n\nconst DendrogramSchema = z.object({\n size: z.optional(z.number()),\n distance: z.optional(DendrogramDistanceSchema),\n linkage: z.optional(DendrogramLinkageSchema),\n showNodes: z.optional(z.boolean()),\n edgeInheritance: z.optional(z.enum(['up', 'down'])),\n fillNA: z.optional(z.number()),\n hidden: z.optional(z.boolean()),\n aes: z.optional(z.object({\n lineColor: z.optional(z.union([z.string(), ColumnNameSchema])),\n dotFill: z.optional(z.union([z.string(), ColumnNameSchema])),\n dotShape: z.optional(z.union([PointShapeSchema, ColumnNameSchema])),\n dotSize: z.optional(z.union([z.number(), ColumnNameSchema])),\n lineShape: z.optional(z.union([LineShapeSchema, ColumnNameSchema])),\n lineWidth: z.optional(z.union([z.number(), ColumnNameSchema])),\n }))\n});\n\nconst DendrogramXSchema = DendrogramSchema.extend({\n position: z.optional(z.enum(['top', 'bottom']))\n});\nconst DendrogramYSchema = DendrogramSchema.extend({\n position: z.optional(z.enum(['left', 'right']))\n});\n\nconst axisCommonSchema = {\n title: z.optional(z.string()),\n showTicks: z.optional(z.boolean()),\n showTitle: z.optional(z.boolean()),\n showAxisLabels: z.optional(z.boolean()),\n showGroupLabels: z.optional(z.boolean()),\n axisLabelsAngle: z.optional(z.union([z.literal(0), z.literal(45), z.literal(90)])),\n groupLabelsAngle: z.optional(z.union([z.literal(0), z.literal(45), z.literal(90)])),\n};\n\nexport const HeatmapSettingsSchema = z.object({\n type: z.literal('heatmap'),\n title: z.object({\n name: z.string(),\n show: z.optional(z.boolean()),\n position: z.optional(TitlePositionSchema),\n }),\n tooltips: z.optional(TooltipSettingsSchema),\n valueType: z.optional(ValueTypeSchema),\n size: z.optional(\n z.object({\n width: z.optional(z.number()),\n height: z.optional(z.number()),\n cellWidth: z.optional(z.number()),\n cellHeight: z.optional(z.number()),\n outerOffset: z.optional(z.number()),\n innerOffset: z.optional(z.number())\n })\n ),\n legend: z.optional(\n z.object({\n show: z.optional(z.boolean()),\n position: z.optional(LegendPositionSchema),\n })\n ),\n frame: z.optional(z.object({type: z.optional(z.enum(['full', 'groups', 'none']))})),\n xAxis: z.optional(z.object({\n ...axisCommonSchema,\n sorting: z.optional(z.enum(['asc', 'desc'])),\n position: z.optional(z.enum(['top', 'bottom'])),\n groupingPosition: z.optional(z.enum(['top', 'bottom'])),\n })),\n yAxis: z.optional(z.object({\n ...axisCommonSchema,\n sorting: z.optional(z.enum(['asc', 'desc'])),\n position: z.optional(z.enum(['left', 'right'])),\n groupingPosition: z.optional(z.enum(['left', 'right'])),\n })),\n facetSettings: z.optional(z.object({\n sharedX: z.optional(z.boolean()),\n sharedY: z.optional(z.boolean()),\n nRows: z.optional(z.number()),\n nCols: z.optional(z.number()),\n order: z.optional(z.array(z.string())),\n })),\n xColumn: ColumnNameSchema,\n yColumn: ColumnNameSchema,\n valueColumn: ColumnNameSchema,\n xGroupBy: z.optional(z.array(ColumnNameSchema)),\n yGroupBy: z.optional(z.array(ColumnNameSchema)),\n xSortBy: z.optional(z.array(ColumnNameSchema)),\n ySortBy: z.optional(z.array(ColumnNameSchema)),\n facetBy: z.optional(z.array(ColumnNameSchema)),\n keysOrder: z.optional( // x, y, grouping, facet keys in user's order\n z.record(z.string(), z.array(z.string()))\n ),\n transform: z.optional(z.enum(['log'])),\n normalization: z.optional(z.object({\n direction: z.enum(['row', 'column']),\n method: z.enum(['standardScaling', 'meanNormalization']),\n colorRange: z.optional(z.array(z.number()))\n })),\n aggregation: z.optional(z.object({\n x: z.optional(z.boolean()),\n y: z.optional(z.boolean()),\n method: z.optional(AggregationMethodSchema),\n })),\n annotations: z.optional(z.array(z.union([HeatmapAnnotationXSchema, HeatmapAnnotationYSchema]))),\n dendrogramX: z.optional(DendrogramXSchema),\n dendrogramY: z.optional(DendrogramYSchema),\n inheritedDendrogramAes: z.optional(z.record(z.string(), AesRecordSchema)),\n NAValueAs: z.optional(z.union([z.number(), z.null()])),\n showEmptyRows: z.optional(z.boolean()),\n showEmptyColumns: z.optional(z.boolean()),\n cellsRenderingMode: z.optional(z.enum(['svg', 'canvas'])),\n aes: z.optional(z.object({\n colorsList: z.optional(z.array(z.string())),\n colorsMap: z.optional(z.record(z.string())),\n valueColors: z.optional(z.array(z.string())),\n valuesByColors: z.optional(z.array(z.number())),\n cellStrokeColor: z.optional(z.string()),\n emptyCellColor: z.optional(z.string()),\n groupGap: z.optional(z.number()),\n cellGap: z.optional(z.number()),\n }))\n});\n\nexport type HeatmapSettings = z.infer<typeof HeatmapSettingsSchema>;\n\n"],"mappings":"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"}
|