@mui/x-charts-premium 9.0.4 → 9.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/BarChartPremium/BarChartPremium.js +2 -1183
- package/BarChartPremium/BarChartPremium.mjs +2 -1183
- package/BarChartPremium/RangeBar/seriesConfig/seriesProcessor.js +2 -0
- package/BarChartPremium/RangeBar/seriesConfig/seriesProcessor.mjs +2 -0
- package/CHANGELOG.md +133 -0
- package/CandlestickChart/CandlestickChart.d.mts +2 -2
- package/CandlestickChart/CandlestickChart.d.ts +2 -2
- package/CandlestickChart/CandlestickChart.js +2 -1183
- package/CandlestickChart/CandlestickChart.mjs +2 -1183
- package/CandlestickChart/CandlestickWebGLProgram.d.mts +6 -11
- package/CandlestickChart/CandlestickWebGLProgram.d.ts +6 -11
- package/CandlestickChart/CandlestickWebGLProgram.js +136 -121
- package/CandlestickChart/CandlestickWebGLProgram.mjs +137 -122
- package/CandlestickChart/useCandlestickPlotData.d.mts +2 -2
- package/CandlestickChart/useCandlestickPlotData.d.ts +2 -2
- package/CandlestickChart/useCandlestickPlotData.js +121 -61
- package/CandlestickChart/useCandlestickPlotData.mjs +122 -61
- package/ChartsAxisHighlightValue/index.d.mts +1 -0
- package/ChartsAxisHighlightValue/index.d.ts +1 -0
- package/ChartsAxisHighlightValue/index.js +16 -0
- package/ChartsAxisHighlightValue/index.mjs +2 -0
- package/ChartsDataProviderPremium/ChartsDataProviderPremium.js +2 -2
- package/ChartsDataProviderPremium/ChartsDataProviderPremium.mjs +2 -2
- package/ChartsRadialAxisHighlight/index.d.mts +1 -0
- package/ChartsRadialAxisHighlight/index.d.ts +1 -0
- package/ChartsRadialAxisHighlight/index.js +16 -0
- package/ChartsRadialAxisHighlight/index.mjs +2 -0
- package/ChartsRadialDataProviderPremium/ChartsRadialDataProviderPremium.js +2 -2
- package/ChartsRadialDataProviderPremium/ChartsRadialDataProviderPremium.mjs +2 -2
- package/HeatmapPremium/HeatmapPremium.js +2 -155
- package/HeatmapPremium/HeatmapPremium.mjs +2 -155
- package/HeatmapPremium/webgl/HeatmapWebGLPlot.js +19 -112
- package/HeatmapPremium/webgl/HeatmapWebGLPlot.mjs +19 -111
- package/HeatmapPremium/webgl/HeatmapWebGLProgram.d.mts +24 -0
- package/HeatmapPremium/webgl/HeatmapWebGLProgram.d.ts +24 -0
- package/HeatmapPremium/webgl/HeatmapWebGLProgram.js +132 -0
- package/HeatmapPremium/webgl/HeatmapWebGLProgram.mjs +125 -0
- package/HeatmapPremium/webgl/useHeatmapPlotData.d.mts +3 -3
- package/HeatmapPremium/webgl/useHeatmapPlotData.d.ts +3 -3
- package/HeatmapPremium/webgl/useHeatmapPlotData.js +78 -26
- package/HeatmapPremium/webgl/useHeatmapPlotData.mjs +80 -26
- package/LICENSE +3 -1
- package/RadialBarChart/RadialBarChart.d.mts +60 -0
- package/RadialBarChart/RadialBarChart.d.ts +60 -0
- package/RadialBarChart/RadialBarChart.js +298 -0
- package/RadialBarChart/RadialBarChart.mjs +292 -0
- package/RadialBarChart/RadialBarChart.plugins.d.mts +4 -0
- package/RadialBarChart/RadialBarChart.plugins.d.ts +4 -0
- package/RadialBarChart/RadialBarChart.plugins.js +9 -0
- package/RadialBarChart/RadialBarChart.plugins.mjs +3 -0
- package/RadialBarChart/RadialBarElement.d.mts +16 -0
- package/RadialBarChart/RadialBarElement.d.ts +16 -0
- package/RadialBarChart/RadialBarElement.js +54 -0
- package/RadialBarChart/RadialBarElement.mjs +48 -0
- package/RadialBarChart/RadialBarPlot.d.mts +21 -0
- package/RadialBarChart/RadialBarPlot.d.ts +21 -0
- package/RadialBarChart/RadialBarPlot.js +85 -0
- package/RadialBarChart/RadialBarPlot.mjs +79 -0
- package/RadialBarChart/index.d.mts +3 -0
- package/RadialBarChart/index.d.ts +3 -0
- package/RadialBarChart/index.js +39 -0
- package/RadialBarChart/index.mjs +3 -0
- package/RadialBarChart/radialBarClasses.d.mts +15 -0
- package/RadialBarChart/radialBarClasses.d.ts +15 -0
- package/RadialBarChart/radialBarClasses.js +26 -0
- package/RadialBarChart/radialBarClasses.mjs +18 -0
- package/RadialBarChart/seriesConfig/seriesProcessor.js +4 -0
- package/RadialBarChart/seriesConfig/seriesProcessor.mjs +4 -0
- package/RadialBarChart/useRadialBarChartProps.d.mts +28 -0
- package/RadialBarChart/useRadialBarChartProps.d.ts +28 -0
- package/RadialBarChart/useRadialBarChartProps.js +100 -0
- package/RadialBarChart/useRadialBarChartProps.mjs +93 -0
- package/RadialBarChart/useRadialBarPlotData.d.mts +23 -0
- package/RadialBarChart/useRadialBarPlotData.d.ts +23 -0
- package/RadialBarChart/useRadialBarPlotData.js +94 -0
- package/RadialBarChart/useRadialBarPlotData.mjs +87 -0
- package/RadialLineChart/RadialArea.js +13 -1
- package/RadialLineChart/RadialArea.mjs +13 -1
- package/RadialLineChart/RadialLine.js +13 -1
- package/RadialLineChart/RadialLine.mjs +13 -1
- package/RadialLineChart/RadialLineChart.d.mts +11 -3
- package/RadialLineChart/RadialLineChart.d.ts +11 -3
- package/RadialLineChart/RadialLineChart.js +24 -673
- package/RadialLineChart/RadialLineChart.mjs +24 -673
- package/RadialLineChart/RadialLineHighlightElement.d.mts +15 -0
- package/RadialLineChart/RadialLineHighlightElement.d.ts +15 -0
- package/RadialLineChart/RadialLineHighlightElement.js +46 -0
- package/RadialLineChart/RadialLineHighlightElement.mjs +39 -0
- package/RadialLineChart/RadialLineHighlightPlot.d.mts +23 -0
- package/RadialLineChart/RadialLineHighlightPlot.d.ts +23 -0
- package/RadialLineChart/RadialLineHighlightPlot.js +92 -0
- package/RadialLineChart/RadialLineHighlightPlot.mjs +86 -0
- package/RadialLineChart/RadialMarkPlot.js +17 -2
- package/RadialLineChart/RadialMarkPlot.mjs +17 -2
- package/RadialLineChart/index.d.mts +3 -1
- package/RadialLineChart/index.d.ts +3 -1
- package/RadialLineChart/index.js +22 -0
- package/RadialLineChart/index.mjs +3 -1
- package/RadialLineChart/radialLineClasses.d.mts +3 -1
- package/RadialLineChart/radialLineClasses.d.ts +3 -1
- package/RadialLineChart/radialLineClasses.js +2 -1
- package/RadialLineChart/radialLineClasses.mjs +2 -1
- package/RadialLineChart/seriesConfig/getItemAtPosition.d.mts +6 -0
- package/RadialLineChart/seriesConfig/getItemAtPosition.d.ts +6 -0
- package/RadialLineChart/seriesConfig/getItemAtPosition.js +353 -0
- package/RadialLineChart/seriesConfig/getItemAtPosition.mjs +348 -0
- package/RadialLineChart/seriesConfig/getSeriesWithDefaultValues.js +2 -1
- package/RadialLineChart/seriesConfig/getSeriesWithDefaultValues.mjs +2 -1
- package/RadialLineChart/seriesConfig/index.js +2 -1
- package/RadialLineChart/seriesConfig/index.mjs +2 -1
- package/RadialLineChart/seriesConfig/seriesProcessor.js +4 -0
- package/RadialLineChart/seriesConfig/seriesProcessor.mjs +4 -0
- package/RadialLineChart/useRadialLineChartProps.d.mts +2 -0
- package/RadialLineChart/useRadialLineChartProps.d.ts +2 -0
- package/RadialLineChart/useRadialLineChartProps.js +16 -8
- package/RadialLineChart/useRadialLineChartProps.mjs +16 -8
- package/RadialLineChart/useRadialLinePlotData.js +2 -1
- package/RadialLineChart/useRadialLinePlotData.mjs +3 -2
- package/ScatterChartPremium/ScatterChartPremium.d.mts +25 -0
- package/ScatterChartPremium/ScatterChartPremium.d.ts +25 -0
- package/ScatterChartPremium/ScatterChartPremium.js +507 -0
- package/ScatterChartPremium/ScatterChartPremium.mjs +501 -0
- package/ScatterChartPremium/ScatterChartPremium.plugins.d.mts +3 -0
- package/ScatterChartPremium/ScatterChartPremium.plugins.d.ts +3 -0
- package/ScatterChartPremium/ScatterChartPremium.plugins.js +8 -0
- package/ScatterChartPremium/ScatterChartPremium.plugins.mjs +2 -0
- package/ScatterChartPremium/ScatterPlotPremium.d.mts +14 -0
- package/ScatterChartPremium/ScatterPlotPremium.d.ts +14 -0
- package/ScatterChartPremium/ScatterPlotPremium.js +28 -0
- package/ScatterChartPremium/ScatterPlotPremium.mjs +21 -0
- package/ScatterChartPremium/index.d.mts +3 -0
- package/ScatterChartPremium/index.d.ts +3 -0
- package/ScatterChartPremium/index.js +26 -0
- package/ScatterChartPremium/index.mjs +3 -0
- package/ScatterChartPremium/webgl/ScatterWebGLPlot.d.mts +4 -0
- package/ScatterChartPremium/webgl/ScatterWebGLPlot.d.ts +4 -0
- package/ScatterChartPremium/webgl/ScatterWebGLPlot.js +70 -0
- package/ScatterChartPremium/webgl/ScatterWebGLPlot.mjs +65 -0
- package/ScatterChartPremium/webgl/ScatterWebGLProgram.d.mts +18 -0
- package/ScatterChartPremium/webgl/ScatterWebGLProgram.d.ts +18 -0
- package/ScatterChartPremium/webgl/ScatterWebGLProgram.js +129 -0
- package/ScatterChartPremium/webgl/ScatterWebGLProgram.mjs +122 -0
- package/ScatterChartPremium/webgl/shaders.d.mts +2 -0
- package/ScatterChartPremium/webgl/shaders.d.ts +2 -0
- package/ScatterChartPremium/webgl/shaders.js +57 -0
- package/ScatterChartPremium/webgl/shaders.mjs +51 -0
- package/ScatterChartPremium/webgl/useScatterWebGLPlotData.d.mts +7 -0
- package/ScatterChartPremium/webgl/useScatterWebGLPlotData.d.ts +7 -0
- package/ScatterChartPremium/webgl/useScatterWebGLPlotData.js +140 -0
- package/ScatterChartPremium/webgl/useScatterWebGLPlotData.mjs +134 -0
- package/index.d.mts +3 -1
- package/index.d.ts +3 -1
- package/index.js +25 -1
- package/index.mjs +4 -2
- package/internals/index.d.mts +1 -0
- package/internals/index.d.ts +1 -0
- package/internals/index.js +13 -0
- package/internals/index.mjs +1 -0
- package/models/seriesType/radialLine.d.mts +7 -1
- package/models/seriesType/radialLine.d.ts +7 -1
- package/package.json +184 -114
- package/plugins/selectors/useChartCandlestickPosition.selectors.d.mts +1 -1
- package/plugins/selectors/useChartCandlestickPosition.selectors.d.ts +1 -1
- package/utils/webgl/parseColor.d.mts +2 -1
- package/utils/webgl/parseColor.d.ts +2 -1
- package/utils/webgl/parseColor.js +8 -7
- package/utils/webgl/parseColor.mjs +8 -7
- package/utils/webgl/utils.d.mts +13 -0
- package/utils/webgl/utils.d.ts +13 -0
- package/utils/webgl/utils.js +29 -0
- package/utils/webgl/utils.mjs +27 -0
|
@@ -284,166 +284,13 @@ process.env.NODE_ENV !== "production" ? HeatmapPremium.propTypes = {
|
|
|
284
284
|
* If not provided, a default axis config is used.
|
|
285
285
|
* An array of [[AxisConfig]] objects.
|
|
286
286
|
*/
|
|
287
|
-
xAxis: _propTypes.default.arrayOf(_propTypes.default.
|
|
288
|
-
axis: _propTypes.default.oneOf(['x']),
|
|
289
|
-
barGapRatio: _propTypes.default.number,
|
|
290
|
-
categoryGapRatio: _propTypes.default.number,
|
|
291
|
-
classes: _propTypes.default.object,
|
|
292
|
-
className: _propTypes.default.string,
|
|
293
|
-
colorMap: _propTypes.default.oneOfType([_propTypes.default.shape({
|
|
294
|
-
colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
|
|
295
|
-
type: _propTypes.default.oneOf(['ordinal']).isRequired,
|
|
296
|
-
unknownColor: _propTypes.default.string,
|
|
297
|
-
values: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number, _propTypes.default.string]).isRequired)
|
|
298
|
-
}), _propTypes.default.shape({
|
|
299
|
-
color: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.string.isRequired), _propTypes.default.func]).isRequired,
|
|
300
|
-
max: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
|
|
301
|
-
min: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
|
|
302
|
-
type: _propTypes.default.oneOf(['continuous']).isRequired
|
|
303
|
-
}), _propTypes.default.shape({
|
|
304
|
-
colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
|
|
305
|
-
thresholds: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]).isRequired).isRequired,
|
|
306
|
-
type: _propTypes.default.oneOf(['piecewise']).isRequired
|
|
307
|
-
})]),
|
|
308
|
-
data: _propTypes.default.array,
|
|
309
|
-
dataKey: _propTypes.default.string,
|
|
310
|
-
disableLine: _propTypes.default.bool,
|
|
311
|
-
disableTicks: _propTypes.default.bool,
|
|
312
|
-
domainLimit: _propTypes.default.oneOfType([_propTypes.default.oneOf(['nice', 'strict']), _propTypes.default.func]),
|
|
313
|
-
groups: _propTypes.default.arrayOf(_propTypes.default.shape({
|
|
314
|
-
getValue: _propTypes.default.func.isRequired,
|
|
315
|
-
tickLabelStyle: _propTypes.default.object,
|
|
316
|
-
tickSize: _propTypes.default.number
|
|
317
|
-
})),
|
|
318
|
-
height: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.number]),
|
|
319
|
-
hideTooltip: _propTypes.default.bool,
|
|
320
|
-
id: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
|
|
321
|
-
ignoreTooltip: _propTypes.default.bool,
|
|
322
|
-
label: _propTypes.default.string,
|
|
323
|
-
labelStyle: _propTypes.default.object,
|
|
324
|
-
offset: _propTypes.default.number,
|
|
325
|
-
ordinalTimeTicks: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf(['biweekly', 'days', 'hours', 'months', 'quarterly', 'weeks', 'years']), _propTypes.default.shape({
|
|
326
|
-
format: _propTypes.default.func.isRequired,
|
|
327
|
-
getTickNumber: _propTypes.default.func.isRequired,
|
|
328
|
-
isTick: _propTypes.default.func.isRequired
|
|
329
|
-
})]).isRequired),
|
|
330
|
-
position: _propTypes.default.oneOf(['bottom', 'none', 'top']),
|
|
331
|
-
reverse: _propTypes.default.bool,
|
|
332
|
-
scaleType: _propTypes.default.oneOf(['band']),
|
|
333
|
-
slotProps: _propTypes.default.object,
|
|
334
|
-
slots: _propTypes.default.object,
|
|
335
|
-
sx: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object, _propTypes.default.bool])), _propTypes.default.func, _propTypes.default.object]),
|
|
336
|
-
tickInterval: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.array, _propTypes.default.func]),
|
|
337
|
-
tickLabelInterval: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.func]),
|
|
338
|
-
tickLabelMinGap: _propTypes.default.number,
|
|
339
|
-
tickLabelPlacement: _propTypes.default.oneOf(['middle', 'tick']),
|
|
340
|
-
tickLabelStyle: _propTypes.default.object,
|
|
341
|
-
tickMaxStep: _propTypes.default.number,
|
|
342
|
-
tickMinStep: _propTypes.default.number,
|
|
343
|
-
tickNumber: _propTypes.default.number,
|
|
344
|
-
tickPlacement: _propTypes.default.oneOf(['end', 'extremities', 'middle', 'start']),
|
|
345
|
-
tickSize: _propTypes.default.number,
|
|
346
|
-
tickSpacing: _propTypes.default.number,
|
|
347
|
-
valueFormatter: _propTypes.default.func,
|
|
348
|
-
valueGetter: _propTypes.default.func,
|
|
349
|
-
zoom: _propTypes.default.oneOfType([_propTypes.default.shape({
|
|
350
|
-
filterMode: _propTypes.default.oneOf(['discard', 'keep']),
|
|
351
|
-
maxEnd: _propTypes.default.number,
|
|
352
|
-
maxSpan: _propTypes.default.number,
|
|
353
|
-
minSpan: _propTypes.default.number,
|
|
354
|
-
minStart: _propTypes.default.number,
|
|
355
|
-
panning: _propTypes.default.bool,
|
|
356
|
-
slider: _propTypes.default.shape({
|
|
357
|
-
enabled: _propTypes.default.bool,
|
|
358
|
-
preview: _propTypes.default.oneOfType([_propTypes.default.object, _propTypes.default.bool]),
|
|
359
|
-
showTooltip: _propTypes.default.oneOf(['always', 'hover', 'never']),
|
|
360
|
-
size: _propTypes.default.number
|
|
361
|
-
}),
|
|
362
|
-
step: _propTypes.default.number
|
|
363
|
-
}), _propTypes.default.bool])
|
|
364
|
-
})).isRequired,
|
|
287
|
+
xAxis: _propTypes.default.arrayOf(_propTypes.default.object).isRequired,
|
|
365
288
|
/**
|
|
366
289
|
* The configuration of the y-axes.
|
|
367
290
|
* If not provided, a default axis config is used.
|
|
368
291
|
* An array of [[AxisConfig]] objects.
|
|
369
292
|
*/
|
|
370
|
-
yAxis: _propTypes.default.arrayOf(_propTypes.default.
|
|
371
|
-
axis: _propTypes.default.oneOf(['y']),
|
|
372
|
-
barGapRatio: _propTypes.default.number,
|
|
373
|
-
categoryGapRatio: _propTypes.default.number,
|
|
374
|
-
classes: _propTypes.default.object,
|
|
375
|
-
className: _propTypes.default.string,
|
|
376
|
-
colorMap: _propTypes.default.oneOfType([_propTypes.default.shape({
|
|
377
|
-
colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
|
|
378
|
-
type: _propTypes.default.oneOf(['ordinal']).isRequired,
|
|
379
|
-
unknownColor: _propTypes.default.string,
|
|
380
|
-
values: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number, _propTypes.default.string]).isRequired)
|
|
381
|
-
}), _propTypes.default.shape({
|
|
382
|
-
color: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.string.isRequired), _propTypes.default.func]).isRequired,
|
|
383
|
-
max: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
|
|
384
|
-
min: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
|
|
385
|
-
type: _propTypes.default.oneOf(['continuous']).isRequired
|
|
386
|
-
}), _propTypes.default.shape({
|
|
387
|
-
colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
|
|
388
|
-
thresholds: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]).isRequired).isRequired,
|
|
389
|
-
type: _propTypes.default.oneOf(['piecewise']).isRequired
|
|
390
|
-
})]),
|
|
391
|
-
data: _propTypes.default.array,
|
|
392
|
-
dataKey: _propTypes.default.string,
|
|
393
|
-
disableLine: _propTypes.default.bool,
|
|
394
|
-
disableTicks: _propTypes.default.bool,
|
|
395
|
-
domainLimit: _propTypes.default.oneOfType([_propTypes.default.oneOf(['nice', 'strict']), _propTypes.default.func]),
|
|
396
|
-
groups: _propTypes.default.arrayOf(_propTypes.default.shape({
|
|
397
|
-
getValue: _propTypes.default.func.isRequired,
|
|
398
|
-
tickLabelStyle: _propTypes.default.object,
|
|
399
|
-
tickSize: _propTypes.default.number
|
|
400
|
-
})),
|
|
401
|
-
hideTooltip: _propTypes.default.bool,
|
|
402
|
-
id: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
|
|
403
|
-
ignoreTooltip: _propTypes.default.bool,
|
|
404
|
-
label: _propTypes.default.string,
|
|
405
|
-
labelStyle: _propTypes.default.object,
|
|
406
|
-
offset: _propTypes.default.number,
|
|
407
|
-
ordinalTimeTicks: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf(['biweekly', 'days', 'hours', 'months', 'quarterly', 'weeks', 'years']), _propTypes.default.shape({
|
|
408
|
-
format: _propTypes.default.func.isRequired,
|
|
409
|
-
getTickNumber: _propTypes.default.func.isRequired,
|
|
410
|
-
isTick: _propTypes.default.func.isRequired
|
|
411
|
-
})]).isRequired),
|
|
412
|
-
position: _propTypes.default.oneOf(['left', 'none', 'right']),
|
|
413
|
-
reverse: _propTypes.default.bool,
|
|
414
|
-
scaleType: _propTypes.default.oneOf(['band']),
|
|
415
|
-
slotProps: _propTypes.default.object,
|
|
416
|
-
slots: _propTypes.default.object,
|
|
417
|
-
sx: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object, _propTypes.default.bool])), _propTypes.default.func, _propTypes.default.object]),
|
|
418
|
-
tickInterval: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.array, _propTypes.default.func]),
|
|
419
|
-
tickLabelInterval: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.func]),
|
|
420
|
-
tickLabelPlacement: _propTypes.default.oneOf(['middle', 'tick']),
|
|
421
|
-
tickLabelStyle: _propTypes.default.object,
|
|
422
|
-
tickMaxStep: _propTypes.default.number,
|
|
423
|
-
tickMinStep: _propTypes.default.number,
|
|
424
|
-
tickNumber: _propTypes.default.number,
|
|
425
|
-
tickPlacement: _propTypes.default.oneOf(['end', 'extremities', 'middle', 'start']),
|
|
426
|
-
tickSize: _propTypes.default.number,
|
|
427
|
-
tickSpacing: _propTypes.default.number,
|
|
428
|
-
valueFormatter: _propTypes.default.func,
|
|
429
|
-
valueGetter: _propTypes.default.func,
|
|
430
|
-
width: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.number]),
|
|
431
|
-
zoom: _propTypes.default.oneOfType([_propTypes.default.shape({
|
|
432
|
-
filterMode: _propTypes.default.oneOf(['discard', 'keep']),
|
|
433
|
-
maxEnd: _propTypes.default.number,
|
|
434
|
-
maxSpan: _propTypes.default.number,
|
|
435
|
-
minSpan: _propTypes.default.number,
|
|
436
|
-
minStart: _propTypes.default.number,
|
|
437
|
-
panning: _propTypes.default.bool,
|
|
438
|
-
slider: _propTypes.default.shape({
|
|
439
|
-
enabled: _propTypes.default.bool,
|
|
440
|
-
preview: _propTypes.default.oneOfType([_propTypes.default.object, _propTypes.default.bool]),
|
|
441
|
-
showTooltip: _propTypes.default.oneOf(['always', 'hover', 'never']),
|
|
442
|
-
size: _propTypes.default.number
|
|
443
|
-
}),
|
|
444
|
-
step: _propTypes.default.number
|
|
445
|
-
}), _propTypes.default.bool])
|
|
446
|
-
})).isRequired,
|
|
293
|
+
yAxis: _propTypes.default.arrayOf(_propTypes.default.object).isRequired,
|
|
447
294
|
/**
|
|
448
295
|
* The configuration of the z-axes.
|
|
449
296
|
*/
|
|
@@ -277,166 +277,13 @@ process.env.NODE_ENV !== "production" ? HeatmapPremium.propTypes = {
|
|
|
277
277
|
* If not provided, a default axis config is used.
|
|
278
278
|
* An array of [[AxisConfig]] objects.
|
|
279
279
|
*/
|
|
280
|
-
xAxis: PropTypes.arrayOf(PropTypes.
|
|
281
|
-
axis: PropTypes.oneOf(['x']),
|
|
282
|
-
barGapRatio: PropTypes.number,
|
|
283
|
-
categoryGapRatio: PropTypes.number,
|
|
284
|
-
classes: PropTypes.object,
|
|
285
|
-
className: PropTypes.string,
|
|
286
|
-
colorMap: PropTypes.oneOfType([PropTypes.shape({
|
|
287
|
-
colors: PropTypes.arrayOf(PropTypes.string).isRequired,
|
|
288
|
-
type: PropTypes.oneOf(['ordinal']).isRequired,
|
|
289
|
-
unknownColor: PropTypes.string,
|
|
290
|
-
values: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number, PropTypes.string]).isRequired)
|
|
291
|
-
}), PropTypes.shape({
|
|
292
|
-
color: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string.isRequired), PropTypes.func]).isRequired,
|
|
293
|
-
max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
|
|
294
|
-
min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
|
|
295
|
-
type: PropTypes.oneOf(['continuous']).isRequired
|
|
296
|
-
}), PropTypes.shape({
|
|
297
|
-
colors: PropTypes.arrayOf(PropTypes.string).isRequired,
|
|
298
|
-
thresholds: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]).isRequired).isRequired,
|
|
299
|
-
type: PropTypes.oneOf(['piecewise']).isRequired
|
|
300
|
-
})]),
|
|
301
|
-
data: PropTypes.array,
|
|
302
|
-
dataKey: PropTypes.string,
|
|
303
|
-
disableLine: PropTypes.bool,
|
|
304
|
-
disableTicks: PropTypes.bool,
|
|
305
|
-
domainLimit: PropTypes.oneOfType([PropTypes.oneOf(['nice', 'strict']), PropTypes.func]),
|
|
306
|
-
groups: PropTypes.arrayOf(PropTypes.shape({
|
|
307
|
-
getValue: PropTypes.func.isRequired,
|
|
308
|
-
tickLabelStyle: PropTypes.object,
|
|
309
|
-
tickSize: PropTypes.number
|
|
310
|
-
})),
|
|
311
|
-
height: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number]),
|
|
312
|
-
hideTooltip: PropTypes.bool,
|
|
313
|
-
id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
|
|
314
|
-
ignoreTooltip: PropTypes.bool,
|
|
315
|
-
label: PropTypes.string,
|
|
316
|
-
labelStyle: PropTypes.object,
|
|
317
|
-
offset: PropTypes.number,
|
|
318
|
-
ordinalTimeTicks: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.oneOf(['biweekly', 'days', 'hours', 'months', 'quarterly', 'weeks', 'years']), PropTypes.shape({
|
|
319
|
-
format: PropTypes.func.isRequired,
|
|
320
|
-
getTickNumber: PropTypes.func.isRequired,
|
|
321
|
-
isTick: PropTypes.func.isRequired
|
|
322
|
-
})]).isRequired),
|
|
323
|
-
position: PropTypes.oneOf(['bottom', 'none', 'top']),
|
|
324
|
-
reverse: PropTypes.bool,
|
|
325
|
-
scaleType: PropTypes.oneOf(['band']),
|
|
326
|
-
slotProps: PropTypes.object,
|
|
327
|
-
slots: PropTypes.object,
|
|
328
|
-
sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
|
|
329
|
-
tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
|
|
330
|
-
tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
|
|
331
|
-
tickLabelMinGap: PropTypes.number,
|
|
332
|
-
tickLabelPlacement: PropTypes.oneOf(['middle', 'tick']),
|
|
333
|
-
tickLabelStyle: PropTypes.object,
|
|
334
|
-
tickMaxStep: PropTypes.number,
|
|
335
|
-
tickMinStep: PropTypes.number,
|
|
336
|
-
tickNumber: PropTypes.number,
|
|
337
|
-
tickPlacement: PropTypes.oneOf(['end', 'extremities', 'middle', 'start']),
|
|
338
|
-
tickSize: PropTypes.number,
|
|
339
|
-
tickSpacing: PropTypes.number,
|
|
340
|
-
valueFormatter: PropTypes.func,
|
|
341
|
-
valueGetter: PropTypes.func,
|
|
342
|
-
zoom: PropTypes.oneOfType([PropTypes.shape({
|
|
343
|
-
filterMode: PropTypes.oneOf(['discard', 'keep']),
|
|
344
|
-
maxEnd: PropTypes.number,
|
|
345
|
-
maxSpan: PropTypes.number,
|
|
346
|
-
minSpan: PropTypes.number,
|
|
347
|
-
minStart: PropTypes.number,
|
|
348
|
-
panning: PropTypes.bool,
|
|
349
|
-
slider: PropTypes.shape({
|
|
350
|
-
enabled: PropTypes.bool,
|
|
351
|
-
preview: PropTypes.oneOfType([PropTypes.object, PropTypes.bool]),
|
|
352
|
-
showTooltip: PropTypes.oneOf(['always', 'hover', 'never']),
|
|
353
|
-
size: PropTypes.number
|
|
354
|
-
}),
|
|
355
|
-
step: PropTypes.number
|
|
356
|
-
}), PropTypes.bool])
|
|
357
|
-
})).isRequired,
|
|
280
|
+
xAxis: PropTypes.arrayOf(PropTypes.object).isRequired,
|
|
358
281
|
/**
|
|
359
282
|
* The configuration of the y-axes.
|
|
360
283
|
* If not provided, a default axis config is used.
|
|
361
284
|
* An array of [[AxisConfig]] objects.
|
|
362
285
|
*/
|
|
363
|
-
yAxis: PropTypes.arrayOf(PropTypes.
|
|
364
|
-
axis: PropTypes.oneOf(['y']),
|
|
365
|
-
barGapRatio: PropTypes.number,
|
|
366
|
-
categoryGapRatio: PropTypes.number,
|
|
367
|
-
classes: PropTypes.object,
|
|
368
|
-
className: PropTypes.string,
|
|
369
|
-
colorMap: PropTypes.oneOfType([PropTypes.shape({
|
|
370
|
-
colors: PropTypes.arrayOf(PropTypes.string).isRequired,
|
|
371
|
-
type: PropTypes.oneOf(['ordinal']).isRequired,
|
|
372
|
-
unknownColor: PropTypes.string,
|
|
373
|
-
values: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number, PropTypes.string]).isRequired)
|
|
374
|
-
}), PropTypes.shape({
|
|
375
|
-
color: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string.isRequired), PropTypes.func]).isRequired,
|
|
376
|
-
max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
|
|
377
|
-
min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
|
|
378
|
-
type: PropTypes.oneOf(['continuous']).isRequired
|
|
379
|
-
}), PropTypes.shape({
|
|
380
|
-
colors: PropTypes.arrayOf(PropTypes.string).isRequired,
|
|
381
|
-
thresholds: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]).isRequired).isRequired,
|
|
382
|
-
type: PropTypes.oneOf(['piecewise']).isRequired
|
|
383
|
-
})]),
|
|
384
|
-
data: PropTypes.array,
|
|
385
|
-
dataKey: PropTypes.string,
|
|
386
|
-
disableLine: PropTypes.bool,
|
|
387
|
-
disableTicks: PropTypes.bool,
|
|
388
|
-
domainLimit: PropTypes.oneOfType([PropTypes.oneOf(['nice', 'strict']), PropTypes.func]),
|
|
389
|
-
groups: PropTypes.arrayOf(PropTypes.shape({
|
|
390
|
-
getValue: PropTypes.func.isRequired,
|
|
391
|
-
tickLabelStyle: PropTypes.object,
|
|
392
|
-
tickSize: PropTypes.number
|
|
393
|
-
})),
|
|
394
|
-
hideTooltip: PropTypes.bool,
|
|
395
|
-
id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
|
|
396
|
-
ignoreTooltip: PropTypes.bool,
|
|
397
|
-
label: PropTypes.string,
|
|
398
|
-
labelStyle: PropTypes.object,
|
|
399
|
-
offset: PropTypes.number,
|
|
400
|
-
ordinalTimeTicks: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.oneOf(['biweekly', 'days', 'hours', 'months', 'quarterly', 'weeks', 'years']), PropTypes.shape({
|
|
401
|
-
format: PropTypes.func.isRequired,
|
|
402
|
-
getTickNumber: PropTypes.func.isRequired,
|
|
403
|
-
isTick: PropTypes.func.isRequired
|
|
404
|
-
})]).isRequired),
|
|
405
|
-
position: PropTypes.oneOf(['left', 'none', 'right']),
|
|
406
|
-
reverse: PropTypes.bool,
|
|
407
|
-
scaleType: PropTypes.oneOf(['band']),
|
|
408
|
-
slotProps: PropTypes.object,
|
|
409
|
-
slots: PropTypes.object,
|
|
410
|
-
sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
|
|
411
|
-
tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
|
|
412
|
-
tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
|
|
413
|
-
tickLabelPlacement: PropTypes.oneOf(['middle', 'tick']),
|
|
414
|
-
tickLabelStyle: PropTypes.object,
|
|
415
|
-
tickMaxStep: PropTypes.number,
|
|
416
|
-
tickMinStep: PropTypes.number,
|
|
417
|
-
tickNumber: PropTypes.number,
|
|
418
|
-
tickPlacement: PropTypes.oneOf(['end', 'extremities', 'middle', 'start']),
|
|
419
|
-
tickSize: PropTypes.number,
|
|
420
|
-
tickSpacing: PropTypes.number,
|
|
421
|
-
valueFormatter: PropTypes.func,
|
|
422
|
-
valueGetter: PropTypes.func,
|
|
423
|
-
width: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number]),
|
|
424
|
-
zoom: PropTypes.oneOfType([PropTypes.shape({
|
|
425
|
-
filterMode: PropTypes.oneOf(['discard', 'keep']),
|
|
426
|
-
maxEnd: PropTypes.number,
|
|
427
|
-
maxSpan: PropTypes.number,
|
|
428
|
-
minSpan: PropTypes.number,
|
|
429
|
-
minStart: PropTypes.number,
|
|
430
|
-
panning: PropTypes.bool,
|
|
431
|
-
slider: PropTypes.shape({
|
|
432
|
-
enabled: PropTypes.bool,
|
|
433
|
-
preview: PropTypes.oneOfType([PropTypes.object, PropTypes.bool]),
|
|
434
|
-
showTooltip: PropTypes.oneOf(['always', 'hover', 'never']),
|
|
435
|
-
size: PropTypes.number
|
|
436
|
-
}),
|
|
437
|
-
step: PropTypes.number
|
|
438
|
-
}), PropTypes.bool])
|
|
439
|
-
})).isRequired,
|
|
286
|
+
yAxis: PropTypes.arrayOf(PropTypes.object).isRequired,
|
|
440
287
|
/**
|
|
441
288
|
* The configuration of the z-axes.
|
|
442
289
|
*/
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
'use client';
|
|
3
3
|
|
|
4
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
5
4
|
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
6
5
|
Object.defineProperty(exports, "__esModule", {
|
|
7
6
|
value: true
|
|
@@ -9,11 +8,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
9
8
|
exports.HeatmapWebGLPlot = HeatmapWebGLPlot;
|
|
10
9
|
var React = _interopRequireWildcard(require("react"));
|
|
11
10
|
var _hooks = require("@mui/x-charts/hooks");
|
|
12
|
-
var _useEventCallback = _interopRequireDefault(require("@mui/utils/useEventCallback"));
|
|
13
11
|
var _ChartsWebGLContext = require("../../ChartsWebGLLayer/ChartsWebGLContext");
|
|
14
12
|
var _hooks2 = require("../../hooks");
|
|
15
|
-
var
|
|
16
|
-
var _utils = require("../../utils/webgl/utils");
|
|
13
|
+
var _HeatmapWebGLProgram = require("./HeatmapWebGLProgram");
|
|
17
14
|
var _useHeatmapPlotData = require("./useHeatmapPlotData");
|
|
18
15
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
19
16
|
function HeatmapWebGLPlot({
|
|
@@ -44,135 +41,45 @@ function HeatmapWebGLPlotImpl(props) {
|
|
|
44
41
|
const drawingArea = (0, _hooks.useDrawingArea)();
|
|
45
42
|
const xScale = (0, _hooks.useXScale)();
|
|
46
43
|
const yScale = (0, _hooks.useYScale)();
|
|
47
|
-
const [
|
|
48
|
-
const [program] = React.useState(() => {
|
|
49
|
-
const p = gl.createProgram();
|
|
50
|
-
gl.attachShader(p, vertexShader);
|
|
51
|
-
return p;
|
|
52
|
-
});
|
|
53
|
-
const [quadBuffer] = React.useState(() => (0, _utils.uploadQuadBuffer)(gl));
|
|
44
|
+
const [program, setProgram] = React.useState(null);
|
|
54
45
|
const dataLength = series.data.length;
|
|
55
46
|
const drawRef = React.useRef(null);
|
|
56
47
|
React.useEffect(() => {
|
|
57
48
|
drawRef.current = () => {
|
|
58
|
-
|
|
49
|
+
program?.render(dataLength);
|
|
59
50
|
};
|
|
60
|
-
}, [
|
|
51
|
+
}, [program, dataLength]);
|
|
61
52
|
React.useEffect(() => {
|
|
62
53
|
const unregister = registerDraw(drawRef);
|
|
63
54
|
return unregister;
|
|
64
55
|
}, [registerDraw]);
|
|
65
56
|
React.useEffect(() => {
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
57
|
+
const prog = new _HeatmapWebGLProgram.HeatmapWebGLProgram(gl);
|
|
58
|
+
setProgram(prog);
|
|
59
|
+
return () => {
|
|
60
|
+
prog.dispose();
|
|
61
|
+
};
|
|
70
62
|
}, [gl]);
|
|
71
63
|
const width = xScale.bandwidth();
|
|
72
64
|
const height = yScale.bandwidth();
|
|
73
|
-
|
|
74
|
-
// A border radius cannot be larger than half the width or height of the rectangle
|
|
65
|
+
/* A border radius cannot be larger than half the width or height of the rectangle. */
|
|
75
66
|
const seriesBorderRadius = Math.min(borderRadius ?? 0, width / 2, height / 2);
|
|
76
|
-
const lastSeriesBorderRadiusRef = React.useRef(seriesBorderRadius > 0 ? 0 : 1);
|
|
77
|
-
const setupResolutionUniform = React.useCallback(() => {
|
|
78
|
-
gl.uniform2f(gl.getUniformLocation(program, 'u_resolution'), drawingArea.width, drawingArea.height);
|
|
79
|
-
}, [drawingArea.height, drawingArea.width, gl, program]);
|
|
80
|
-
const setupBorderRadiusUniform = React.useCallback(() => {
|
|
81
|
-
gl.uniform1f(gl.getUniformLocation(program, 'u_borderRadius'), seriesBorderRadius);
|
|
82
|
-
}, [gl, program, seriesBorderRadius]);
|
|
83
|
-
const setupRectDimensionsUniform = React.useCallback(() => {
|
|
84
|
-
gl.uniform2f(gl.getUniformLocation(program, 'u_dimensions'), width, height);
|
|
85
|
-
}, [gl, height, program, width]);
|
|
86
|
-
const setupUniformsEvent = (0, _useEventCallback.default)(() => {
|
|
87
|
-
(0, _utils.bindQuadBuffer)(gl, program, quadBuffer);
|
|
88
|
-
setupBorderRadiusUniform();
|
|
89
|
-
setupResolutionUniform();
|
|
90
|
-
setupRectDimensionsUniform();
|
|
91
|
-
});
|
|
92
|
-
const plotData = (0, _useHeatmapPlotData.useHeatmapPlotData)(drawingArea, series, xScale, yScale);
|
|
93
|
-
const setupAttributes = React.useCallback(() => {
|
|
94
|
-
const {
|
|
95
|
-
centers,
|
|
96
|
-
colors,
|
|
97
|
-
saturations
|
|
98
|
-
} = plotData;
|
|
99
|
-
|
|
100
|
-
// Upload rectangle centers
|
|
101
|
-
const centerBuffer = gl.createBuffer();
|
|
102
|
-
gl.bindBuffer(gl.ARRAY_BUFFER, centerBuffer);
|
|
103
|
-
gl.bufferData(gl.ARRAY_BUFFER, centers, gl.STATIC_DRAW);
|
|
104
|
-
const aCenter = gl.getAttribLocation(program, 'a_center');
|
|
105
|
-
gl.enableVertexAttribArray(aCenter);
|
|
106
|
-
gl.vertexAttribPointer(aCenter, 2, gl.FLOAT, false, 0, 0);
|
|
107
|
-
|
|
108
|
-
// This makes the attribute instanced (one value per rectangle, not per vertex)
|
|
109
|
-
gl.vertexAttribDivisor(aCenter, 1);
|
|
110
|
-
|
|
111
|
-
// Upload colors
|
|
112
|
-
const colorBuffer = gl.createBuffer();
|
|
113
|
-
gl.bindBuffer(gl.ARRAY_BUFFER, colorBuffer);
|
|
114
|
-
gl.bufferData(gl.ARRAY_BUFFER, colors, gl.STATIC_DRAW);
|
|
115
|
-
const aColor = gl.getAttribLocation(program, 'a_color');
|
|
116
|
-
gl.enableVertexAttribArray(aColor);
|
|
117
|
-
gl.vertexAttribPointer(aColor, 4, gl.FLOAT, false, 0, 0);
|
|
118
|
-
gl.vertexAttribDivisor(aColor, 1);
|
|
119
|
-
|
|
120
|
-
// Upload saturations
|
|
121
|
-
const saturationBuffer = gl.createBuffer();
|
|
122
|
-
gl.bindBuffer(gl.ARRAY_BUFFER, saturationBuffer);
|
|
123
|
-
gl.bufferData(gl.ARRAY_BUFFER, saturations, gl.STATIC_DRAW);
|
|
124
|
-
const aSaturation = gl.getAttribLocation(program, 'a_saturation');
|
|
125
|
-
gl.enableVertexAttribArray(aSaturation);
|
|
126
|
-
gl.vertexAttribPointer(aSaturation, 1, gl.FLOAT, false, 0, 0);
|
|
127
|
-
gl.vertexAttribDivisor(aSaturation, 1);
|
|
128
|
-
}, [gl, plotData, program]);
|
|
129
|
-
const setupAttributesEvent = (0, _useEventCallback.default)(() => setupAttributes());
|
|
130
67
|
React.useEffect(() => {
|
|
131
|
-
|
|
132
|
-
lastSeriesBorderRadiusRef.current = seriesBorderRadius;
|
|
133
|
-
if (shouldAttachNewShader) {
|
|
134
|
-
const shaderSource = seriesBorderRadius > 0 ? _shaders.heatmapFragmentShaderSourceWithBorderRadius : _shaders.heatmapFragmentShaderSourceNoBorderRadius;
|
|
135
|
-
gl.getAttachedShaders(program)?.forEach(shader => {
|
|
136
|
-
const shaderType = gl.getShaderParameter(shader, gl.SHADER_TYPE);
|
|
137
|
-
if (shaderType === gl.FRAGMENT_SHADER) {
|
|
138
|
-
gl.detachShader(program, shader);
|
|
139
|
-
gl.deleteShader(shader);
|
|
140
|
-
}
|
|
141
|
-
});
|
|
142
|
-
const fragmentShader = (0, _utils.attachShader)(gl, program, shaderSource, gl.FRAGMENT_SHADER);
|
|
143
|
-
gl.linkProgram(program);
|
|
144
|
-
|
|
145
|
-
// https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API/WebGL_best_practices#dont_check_shader_compile_status_unless_linking_fails
|
|
146
|
-
if (!gl.getProgramParameter(program, gl.LINK_STATUS)) {
|
|
147
|
-
console.error(`Program linking failed: ${gl.getProgramInfoLog(program)}`);
|
|
148
|
-
console.error(`Vertex shader info-log: ${gl.getShaderInfoLog(vertexShader)}`);
|
|
149
|
-
console.error(`Fragment shader info-log: ${gl.getShaderInfoLog(fragmentShader)}`);
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
// Not a hook
|
|
153
|
-
// eslint-disable-next-line react-compiler/react-compiler
|
|
154
|
-
gl.useProgram(program);
|
|
155
|
-
(0, _utils.logWebGLErrors)(gl);
|
|
156
|
-
setupUniformsEvent();
|
|
157
|
-
setupAttributesEvent();
|
|
158
|
-
} else {
|
|
159
|
-
setupBorderRadiusUniform();
|
|
160
|
-
}
|
|
68
|
+
program?.setResolution(drawingArea.width, drawingArea.height);
|
|
161
69
|
requestRender();
|
|
162
|
-
}, [
|
|
163
|
-
// We use the event callback versions here because we only want this effect to trigger when the border radius changes
|
|
164
|
-
setupAttributesEvent, setupUniformsEvent, vertexShader]);
|
|
70
|
+
}, [drawingArea.height, drawingArea.width, program, requestRender]);
|
|
165
71
|
React.useEffect(() => {
|
|
166
|
-
|
|
72
|
+
program?.setRectDimensions(width, height);
|
|
167
73
|
requestRender();
|
|
168
|
-
}, [
|
|
74
|
+
}, [width, height, program, requestRender]);
|
|
169
75
|
React.useEffect(() => {
|
|
170
|
-
|
|
76
|
+
program?.setBorderRadius(seriesBorderRadius);
|
|
171
77
|
requestRender();
|
|
172
|
-
}, [
|
|
78
|
+
}, [seriesBorderRadius, program, requestRender]);
|
|
79
|
+
const plotData = (0, _useHeatmapPlotData.useHeatmapPlotData)(drawingArea, series, xScale, yScale);
|
|
173
80
|
React.useEffect(() => {
|
|
174
|
-
|
|
81
|
+
program?.plot(plotData);
|
|
175
82
|
requestRender();
|
|
176
|
-
}, [
|
|
83
|
+
}, [plotData, program, requestRender]);
|
|
177
84
|
return null;
|
|
178
85
|
}
|