@deephaven/grid 1.15.2-alpha-fetch-variable-def.0 → 1.18.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/dist/DataBarCellRenderer.d.ts.map +1 -1
- package/dist/DataBarCellRenderer.js +4 -6
- package/dist/DataBarCellRenderer.js.map +1 -1
- package/dist/DataBarGridModel.d.ts +3 -0
- package/dist/DataBarGridModel.d.ts.map +1 -1
- package/dist/DataBarGridModel.js.map +1 -1
- package/dist/Grid.d.ts +1 -0
- package/dist/Grid.d.ts.map +1 -1
- package/dist/Grid.js +15 -5
- package/dist/Grid.js.map +1 -1
- package/dist/MockDataBarGridModel.d.ts.map +1 -1
- package/dist/MockDataBarGridModel.js +8 -0
- package/dist/MockDataBarGridModel.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataBarCellRenderer.d.ts","sourceRoot":"","sources":["../src/DataBarCellRenderer.ts"],"names":[],"mappings":"AAEA,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAG1C,OAAO,EACL,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACvB,MAAM,eAAe,CAAC;AAIvB,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AAEzC,UAAU,oBAAoB;IAC5B,kHAAkH;IAClH,QAAQ,EAAE,MAAM,CAAC;IACjB,6CAA6C;IAC7C,CAAC,EAAE,MAAM,CAAC;IACV,4CAA4C;IAC5C,CAAC,EAAE,MAAM,CAAC;IACV,oCAAoC;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,yCAAyC;IACzC,gBAAgB,EAAE,MAAM,CAAC;IACzB,0CAA0C;IAC1C,iBAAiB,EAAE,MAAM,CAAC;IAC1B,8EAA8E;IAC9E,eAAe,EAAE,MAAM,CAAC;IACxB,+BAA+B;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,kDAAkD;IAClD,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AACD,cAAM,mBAAoB,SAAQ,YAAY;IAC5C,MAAM,CAAC,WAAW,WACR,MAAM,UAAU,MAAM,EAAE,KAAG,cAAc,+CAAzC,MAAM,UAAU,MAAM,EAAE,KAAG,cAAc,EAiCjD;IAEF,eAAe,CACb,OAAO,EAAE,wBAAwB,EACjC,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,YAAY,EACpB,GAAG,EAAE,YAAY,GAChB,IAAI;
|
|
1
|
+
{"version":3,"file":"DataBarCellRenderer.d.ts","sourceRoot":"","sources":["../src/DataBarCellRenderer.ts"],"names":[],"mappings":"AAEA,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAG1C,OAAO,EACL,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACvB,MAAM,eAAe,CAAC;AAIvB,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AAEzC,UAAU,oBAAoB;IAC5B,kHAAkH;IAClH,QAAQ,EAAE,MAAM,CAAC;IACjB,6CAA6C;IAC7C,CAAC,EAAE,MAAM,CAAC;IACV,4CAA4C;IAC5C,CAAC,EAAE,MAAM,CAAC;IACV,oCAAoC;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,yCAAyC;IACzC,gBAAgB,EAAE,MAAM,CAAC;IACzB,0CAA0C;IAC1C,iBAAiB,EAAE,MAAM,CAAC;IAC1B,8EAA8E;IAC9E,eAAe,EAAE,MAAM,CAAC;IACxB,+BAA+B;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,kDAAkD;IAClD,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AACD,cAAM,mBAAoB,SAAQ,YAAY;IAC5C,MAAM,CAAC,WAAW,WACR,MAAM,UAAU,MAAM,EAAE,KAAG,cAAc,+CAAzC,MAAM,UAAU,MAAM,EAAE,KAAG,cAAc,EAiCjD;IAEF,eAAe,CACb,OAAO,EAAE,wBAAwB,EACjC,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,YAAY,EACpB,GAAG,EAAE,YAAY,GAChB,IAAI;IAwMP,uBAAuB,CACrB,OAAO,EAAE,wBAAwB,EACjC,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,YAAY,EACpB,GAAG,EAAE,YAAY,GAChB,oBAAoB;IAwOvB,cAAc,aACF,wBAAwB,QAAQ,MAAM,KAAG,MAAM,iDAA/C,wBAAwB,QAAQ,MAAM,KAAG,MAAM,EAGzD;IAEF;;OAEG;IACH,6BAA6B,aAEhB,wBAAwB,eACpB,SAAS,YAAY,EAAE,aACzB,iBAAiB,SACrB,SAAS,UACR,UAAU,KACjB,MAAM,iDALE,wBAAwB,eACpB,SAAS,YAAY,EAAE,aACzB,iBAAiB,SACrB,SAAS,UACR,UAAU,KACjB,MAAM,EAYT;CACH;AAED,eAAe,mBAAmB,CAAC"}
|
|
@@ -70,6 +70,7 @@ class DataBarCellRenderer extends CellRenderer {
|
|
|
70
70
|
columnMax,
|
|
71
71
|
axis,
|
|
72
72
|
color: dataBarColor,
|
|
73
|
+
textColor,
|
|
73
74
|
valuePlacement,
|
|
74
75
|
opacity,
|
|
75
76
|
markers,
|
|
@@ -92,12 +93,7 @@ class DataBarCellRenderer extends CellRenderer {
|
|
|
92
93
|
} = this.getDataBarRenderMetrics(context, state, column, row);
|
|
93
94
|
context.save();
|
|
94
95
|
context.textAlign = textAlign;
|
|
95
|
-
|
|
96
|
-
var color = value >= 0 ? dataBarColor[dataBarColor.length - 1] : dataBarColor[0];
|
|
97
|
-
context.fillStyle = color;
|
|
98
|
-
} else {
|
|
99
|
-
context.fillStyle = Array.isArray(dataBarColor) ? dataBarColor[0] : dataBarColor;
|
|
100
|
-
}
|
|
96
|
+
context.fillStyle = textColor;
|
|
101
97
|
context.textBaseline = 'middle';
|
|
102
98
|
context.font = theme.font;
|
|
103
99
|
if (valuePlacement !== 'hide') {
|
|
@@ -155,6 +151,8 @@ class DataBarCellRenderer extends CellRenderer {
|
|
|
155
151
|
context.restore(); // Restore gradient translate/scale
|
|
156
152
|
} else {
|
|
157
153
|
// Draw normal bar
|
|
154
|
+
var barColor = Array.isArray(dataBarColor) ? dataBarColor[0] : dataBarColor;
|
|
155
|
+
context.fillStyle = barColor;
|
|
158
156
|
context.beginPath();
|
|
159
157
|
context.roundRect(dataBarX, dataBarY, dataBarWidth, rowHeight, 1);
|
|
160
158
|
context.fill();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataBarCellRenderer.js","names":["getOrThrow","CellRenderer","isExpandableGridModel","isDataBarGridModel","GridColorUtils","GridUtils","memoizeClear","DataBarCellRenderer","constructor","arguments","_defineProperty","context","text","measureText","width","max","visibleRows","modelRows","model","column","widestValue","i","length","row","modelRow","textForCell","Math","getCachedWidth","drawCellContent","state","metrics","theme","modelColumns","allRowHeights","allRowYs","firstColumn","fontWidthsLower","fontWidthsUpper","isFirstColumn","rowHeight","modelColumn","rowY","textAlign","textAlignForCell","x","textX","y","textY","textWidth","getTextRenderMetrics","fontWidthLower","get","font","fontWidthUpper","truncationChar","truncationCharForCell","truncatedText","getCachedTruncatedString","columnMin","columnMax","axis","color","dataBarColor","valuePlacement","opacity","markers","direction","value","dataBarOptionsForCell","hasGradient","Array","isArray","maxWidth","dataBarX","dataBarY","zeroPosition","leftmostPosition","markerXs","totalValueRange","dataBarWidth","getDataBarRenderMetrics","save","fillStyle","textBaseline","fillText","hasRowDividers","gridRowColor","yOffset","beginPath","roundRect","clip","globalAlpha","gradientWidth","gradientX","round","abs","translate","scale","gradient","getGradient","fillRect","restore","fill","forEach","markerX","index","shouldRenderDashedLine","strokeStyle","zeroLineColor","setLineDash","moveTo","lineTo","stroke","hasExpandableRows","drawCellRowTreeMarker","Error","allColumnXs","allColumnWidths","cellHorizontalPadding","treeDepthIndent","treeHorizontalPadding","columnWidth","treeIndent","depthForRow","longestValueWidth","getCachedWidestValueForColumn","leftPadding","rightPadding","columnLongest","map","marker","markerValue","offset","rightmostPosition","colors","canvas","document","createElement","ctx","getContext","Number","isNaN","createLinearGradient","oklabColors","linearSRGBToOklab","hexToRgb","colorStop","colorChangeInterval","leftColorIndex","floor","lerpColor","addColorStop","rgbToHex","OklabToLinearSRGB","primitive"],"sources":["../src/DataBarCellRenderer.ts"],"sourcesContent":["/* eslint-disable class-methods-use-this */\nimport { getOrThrow } from '@deephaven/utils';\nimport CellRenderer from './CellRenderer';\nimport { isExpandableGridModel } from './ExpandableGridModel';\nimport { isDataBarGridModel } from './DataBarGridModel';\nimport {\n type ModelIndex,\n type VisibleIndex,\n type VisibleToModelMap,\n} from './GridMetrics';\nimport GridColorUtils from './GridColorUtils';\nimport GridUtils from './GridUtils';\nimport memoizeClear from './memoizeClear';\nimport { type GridRenderState } from './GridRendererTypes';\nimport type GridModel from './GridModel';\n\ninterface DataBarRenderMetrics {\n /** The total width the entire bar from the min to max value can take up (rightmostPosition - leftmostPosition) */\n maxWidth: number;\n /** The x coordinate of the bar (the left) */\n x: number;\n /** The y coordinate of the bar (the top) */\n y: number;\n /** The position of the zero line */\n zeroPosition: number;\n /** The position of the leftmost point */\n leftmostPosition: number;\n /** The position of the rightmost point */\n rightmostPosition: number;\n /** The range of values (e.g. max of 100 and min of -50 means range of 150) */\n totalValueRange: number;\n /** The width of the databar */\n dataBarWidth: number;\n /** The x coordinates of the markers (the left) */\n markerXs: number[];\n}\nclass DataBarCellRenderer extends CellRenderer {\n static getGradient = memoizeClear(\n (width: number, colors: string[]): CanvasGradient => {\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d');\n if (ctx == null) {\n throw new Error('Failed to create canvas context');\n }\n if (Number.isNaN(width)) {\n return ctx.createLinearGradient(0, 0, 0, 0);\n }\n const gradient = ctx.createLinearGradient(0, 0, width, 0);\n const oklabColors = colors.map(color =>\n GridColorUtils.linearSRGBToOklab(GridColorUtils.hexToRgb(color))\n );\n for (let i = 0; i < width; i += 1) {\n const colorStop = i / width;\n const colorChangeInterval = 1 / (colors.length - 1);\n const leftColorIndex = Math.floor(colorStop / colorChangeInterval);\n const color = GridColorUtils.lerpColor(\n oklabColors[leftColorIndex],\n oklabColors[leftColorIndex + 1],\n (colorStop % colorChangeInterval) / colorChangeInterval\n );\n gradient.addColorStop(\n i / width,\n GridColorUtils.rgbToHex(GridColorUtils.OklabToLinearSRGB(color))\n );\n }\n return gradient;\n },\n {\n max: 1000,\n primitive: true, // Stringify the arguments for memoization. Lets the color arrays be different arrays in memory, but still cache hit\n }\n );\n\n drawCellContent(\n context: CanvasRenderingContext2D,\n state: GridRenderState,\n column: VisibleIndex,\n row: VisibleIndex\n ): void {\n const { metrics, model, theme } = state;\n if (!isDataBarGridModel(model)) {\n return;\n }\n const {\n modelColumns,\n modelRows,\n allRowHeights,\n allRowYs,\n firstColumn,\n fontWidthsLower,\n fontWidthsUpper,\n } = metrics;\n\n const isFirstColumn = column === firstColumn;\n const rowHeight = getOrThrow(allRowHeights, row);\n const modelRow = getOrThrow(modelRows, row);\n const modelColumn = getOrThrow(modelColumns, column);\n const rowY = getOrThrow(allRowYs, row);\n const textAlign = model.textAlignForCell(modelColumn, modelRow);\n const text = model.textForCell(modelColumn, modelRow);\n const {\n x: textX,\n y: textY,\n width: textWidth,\n } = GridUtils.getTextRenderMetrics(state, column, row);\n\n const fontWidthLower = fontWidthsLower.get(context.font);\n const fontWidthUpper = fontWidthsUpper.get(context.font);\n const truncationChar = model.truncationCharForCell(modelColumn, modelRow);\n const truncatedText = this.getCachedTruncatedString(\n context,\n text,\n textWidth,\n fontWidthLower,\n fontWidthUpper,\n truncationChar\n );\n\n const {\n columnMin,\n columnMax,\n axis,\n color: dataBarColor,\n valuePlacement,\n opacity,\n markers,\n direction,\n value,\n } = model.dataBarOptionsForCell(modelColumn, modelRow, theme);\n\n const hasGradient = Array.isArray(dataBarColor) && dataBarColor.length > 1;\n if (columnMin == null || columnMax == null) {\n return;\n }\n\n const {\n maxWidth,\n x: dataBarX,\n y: dataBarY,\n zeroPosition,\n leftmostPosition,\n markerXs,\n totalValueRange,\n dataBarWidth,\n } = this.getDataBarRenderMetrics(context, state, column, row);\n\n context.save();\n context.textAlign = textAlign;\n if (hasGradient) {\n const color =\n value >= 0 ? dataBarColor[dataBarColor.length - 1] : dataBarColor[0];\n context.fillStyle = color;\n } else {\n context.fillStyle = Array.isArray(dataBarColor)\n ? dataBarColor[0]\n : dataBarColor;\n }\n context.textBaseline = 'middle';\n context.font = theme.font;\n\n if (valuePlacement !== 'hide') {\n context.fillText(truncatedText, textX, textY);\n }\n\n const hasRowDividers = theme.gridRowColor != null;\n const yOffset = hasRowDividers ? 2 : 1;\n\n context.save();\n context.beginPath();\n context.roundRect(\n dataBarX,\n rowY + yOffset, // yOffset includes 1px for top padding\n dataBarWidth,\n rowHeight - 1 - yOffset, // 1px for bottom padding\n 1\n );\n context.clip();\n context.globalAlpha = opacity;\n\n // Draw bar\n if (hasGradient) {\n // Draw gradient bar\n\n let gradientWidth = 0;\n let gradientX = 0;\n context.save();\n\n // Translate the context so its origin is at the start of the gradient\n // and increasing x value moves towards the end of the gradient.\n // For RTL, scale x by -1 to flip across the x-axis\n if (value < 0) {\n if (direction === 'LTR') {\n gradientWidth = Math.round(\n (Math.abs(columnMin) / totalValueRange) * maxWidth\n );\n gradientX = Math.round(leftmostPosition);\n context.translate(gradientX, 0);\n } else if (direction === 'RTL') {\n gradientWidth = Math.round(\n maxWidth - (Math.abs(columnMax) / totalValueRange) * maxWidth\n );\n gradientX = Math.round(zeroPosition);\n context.translate(gradientX + gradientWidth, 0);\n context.scale(-1, 1);\n }\n } else if (direction === 'LTR') {\n // Value is greater than or equal to 0\n gradientWidth =\n Math.round(\n maxWidth - (Math.abs(columnMin) / totalValueRange) * maxWidth\n ) - 1;\n gradientX = Math.round(zeroPosition);\n context.translate(gradientX, 0);\n } else if (direction === 'RTL') {\n // Value is greater than or equal to 0\n gradientWidth = Math.round(\n (Math.abs(columnMax) / totalValueRange) * maxWidth\n );\n gradientX = Math.round(leftmostPosition);\n context.translate(gradientX + gradientWidth, 0);\n context.scale(-1, 1);\n }\n\n const gradient = DataBarCellRenderer.getGradient(\n gradientWidth,\n dataBarColor\n );\n context.fillStyle = gradient;\n context.fillRect(0, dataBarY, gradientWidth, rowHeight);\n context.restore(); // Restore gradient translate/scale\n } else {\n // Draw normal bar\n context.beginPath();\n context.roundRect(dataBarX, dataBarY, dataBarWidth, rowHeight, 1);\n context.fill();\n }\n\n // Draw markers\n if (maxWidth > 0) {\n markerXs.forEach((markerX, index) => {\n context.fillStyle = markers[index].color;\n context.fillRect(markerX, dataBarY, 1, rowHeight);\n });\n }\n\n // restore clip\n context.restore();\n\n const shouldRenderDashedLine = !(\n axis === 'directional' &&\n ((valuePlacement === 'beside' &&\n textAlign === 'right' &&\n direction === 'LTR') ||\n (valuePlacement === 'beside' &&\n textAlign === 'left' &&\n direction === 'RTL') ||\n valuePlacement !== 'beside')\n );\n\n // Draw dashed line\n if (shouldRenderDashedLine) {\n context.strokeStyle = theme.zeroLineColor;\n context.beginPath();\n context.setLineDash([2, 1]);\n context.moveTo(zeroPosition, rowY);\n context.lineTo(zeroPosition, rowY + rowHeight);\n context.stroke();\n }\n\n context.restore();\n\n // Draw tree marker\n if (\n isFirstColumn &&\n isExpandableGridModel(model) &&\n model.hasExpandableRows\n ) {\n this.drawCellRowTreeMarker(context, state, row);\n }\n }\n\n getDataBarRenderMetrics(\n context: CanvasRenderingContext2D,\n state: GridRenderState,\n column: VisibleIndex,\n row: VisibleIndex\n ): DataBarRenderMetrics {\n const { metrics, model, theme } = state;\n if (!isDataBarGridModel(model)) {\n throw new Error('Grid model is not a data bar grid model');\n }\n const {\n firstColumn,\n allColumnXs,\n allColumnWidths,\n allRowYs,\n modelColumns,\n modelRows,\n visibleRows,\n } = metrics;\n const { cellHorizontalPadding, treeDepthIndent, treeHorizontalPadding } =\n theme;\n\n const modelColumn = getOrThrow(modelColumns, column);\n const modelRow = getOrThrow(modelRows, row);\n const x = getOrThrow(allColumnXs, column);\n const y = getOrThrow(allRowYs, row);\n const columnWidth = getOrThrow(allColumnWidths, column);\n const isFirstColumn = column === firstColumn;\n let treeIndent = 0;\n if (\n isExpandableGridModel(model) &&\n model.hasExpandableRows &&\n isFirstColumn\n ) {\n treeIndent =\n treeDepthIndent * (model.depthForRow(row) + 1) + treeHorizontalPadding;\n }\n\n const textAlign = model.textAlignForCell(modelColumn, modelRow);\n const {\n columnMin,\n columnMax,\n axis,\n valuePlacement,\n markers,\n direction,\n value,\n } = model.dataBarOptionsForCell(modelColumn, modelRow, theme);\n const longestValueWidth = this.getCachedWidestValueForColumn(\n context,\n visibleRows,\n modelRows,\n model,\n modelColumn\n );\n\n const leftPadding = 2;\n const rightPadding =\n valuePlacement === 'beside' && textAlign === 'right' ? 2 : 1;\n\n // The value of the total range (e.g. max - column)\n let totalValueRange = columnMax - columnMin;\n // If min and max are both positive or min and max are equal, the max length is columnMax\n if ((columnMax >= 0 && columnMin >= 0) || columnMin === columnMax) {\n totalValueRange = columnMax;\n } else if (columnMax <= 0 && columnMin <= 0) {\n // If min and max are both negative, the max length is the absolute value of columnMin\n totalValueRange = Math.abs(columnMin);\n }\n\n let maxWidth = columnWidth - treeIndent - rightPadding - leftPadding;\n if (valuePlacement === 'beside') {\n maxWidth = maxWidth - cellHorizontalPadding - longestValueWidth;\n }\n\n if (maxWidth < 0) {\n maxWidth = 0;\n }\n\n const columnLongest = Math.max(Math.abs(columnMin), Math.abs(columnMax));\n // If axis is proportional, totalValueRange is proportional to maxWidth\n let dataBarWidth = (Math.abs(value) / totalValueRange) * maxWidth;\n\n if (maxWidth === 0) {\n dataBarWidth = 0;\n } else if (axis === 'middle') {\n // The longest bar is proportional to half of the maxWidth\n dataBarWidth = (Math.abs(value) / columnLongest) * (maxWidth / 2);\n } else if (axis === 'directional') {\n // The longest bar is proportional to the maxWidth\n dataBarWidth = (Math.abs(value) / columnLongest) * maxWidth;\n }\n\n // Default: proportional, beside, LTR, right text align\n // All positions are assuming the left side is 0 and the right side is maxWidth\n let zeroPosition =\n columnMin >= 0 ? 0 : (Math.abs(columnMin) / totalValueRange) * maxWidth;\n let dataBarX =\n value >= 0\n ? zeroPosition\n : zeroPosition - (Math.abs(value) / totalValueRange) * maxWidth;\n let markerXs = markers.map(marker => {\n const { value: markerValue } = marker;\n const offset = (Math.abs(markerValue) / totalValueRange) * maxWidth;\n return markerValue >= 0 ? zeroPosition + offset : zeroPosition - offset;\n });\n let leftmostPosition =\n valuePlacement === 'beside' && textAlign === 'left'\n ? cellHorizontalPadding + longestValueWidth + leftPadding\n : leftPadding;\n let rightmostPosition =\n valuePlacement === 'beside' && textAlign === 'right'\n ? columnWidth - cellHorizontalPadding - longestValueWidth - rightPadding\n : rightPadding;\n\n // Proportional, RTL\n if (direction === 'RTL') {\n zeroPosition =\n columnMin >= 0\n ? columnWidth\n : columnWidth - (Math.abs(columnMin) / totalValueRange) * maxWidth;\n dataBarX =\n value >= 0\n ? zeroPosition - (value / totalValueRange) * maxWidth\n : zeroPosition;\n markerXs = markers.map(marker => {\n const { value: markerValue } = marker;\n return markerValue >= 0\n ? zeroPosition - (Math.abs(markerValue) / totalValueRange) * maxWidth\n : zeroPosition + (Math.abs(markerValue) / totalValueRange) * maxWidth;\n });\n }\n\n if (axis === 'middle') {\n zeroPosition = maxWidth / 2;\n if (direction === 'LTR') {\n // Middle, LTR\n dataBarX =\n value >= 0\n ? zeroPosition\n : zeroPosition - (Math.abs(value) / columnLongest) * (maxWidth / 2);\n markerXs = markers.map(marker => {\n const { value: markerValue } = marker;\n\n return markerValue >= 0\n ? zeroPosition +\n (Math.abs(markerValue) / columnLongest) * (maxWidth / 2)\n : zeroPosition -\n (Math.abs(markerValue) / columnLongest) * (maxWidth / 2);\n });\n } else if (direction === 'RTL') {\n // Middle, RTL\n dataBarX =\n value <= 0\n ? zeroPosition\n : zeroPosition - (Math.abs(value) / columnLongest) * (maxWidth / 2);\n markerXs = markers.map(marker => {\n const { value: markerValue } = marker;\n\n return markerValue <= 0\n ? zeroPosition +\n (Math.abs(markerValue) / columnLongest) * (maxWidth / 2)\n : zeroPosition -\n (Math.abs(markerValue) / columnLongest) * (maxWidth / 2);\n });\n }\n } else if (axis === 'directional') {\n if (direction === 'LTR') {\n // Directional, LTR\n zeroPosition = 0;\n dataBarX = zeroPosition;\n markerXs = markers.map(marker => {\n const { value: markerValue } = marker;\n\n return (\n zeroPosition + (Math.abs(markerValue) / columnLongest) * maxWidth\n );\n });\n } else if (direction === 'RTL') {\n // Directional, RTL\n zeroPosition = columnWidth;\n dataBarX = zeroPosition - (Math.abs(value) / columnLongest) * maxWidth;\n markerXs = markers.map(marker => {\n const { value: markerValue } = marker;\n\n return (\n zeroPosition - (Math.abs(markerValue) / columnLongest) * maxWidth\n );\n });\n }\n }\n\n // Offset all values by the actual x value and padding\n if (direction === 'LTR') {\n zeroPosition += x + leftPadding + treeIndent;\n dataBarX += x + leftPadding + treeIndent;\n markerXs = markerXs.map(\n markerX => markerX + x + leftPadding + treeIndent\n );\n\n if (valuePlacement === 'beside' && textAlign === 'left') {\n zeroPosition += longestValueWidth + cellHorizontalPadding;\n dataBarX += longestValueWidth + cellHorizontalPadding;\n markerXs = markerXs.map(\n markerX => markerX + longestValueWidth + cellHorizontalPadding\n );\n }\n } else if (direction === 'RTL') {\n zeroPosition = zeroPosition + x - rightPadding;\n dataBarX = dataBarX + x - rightPadding;\n markerXs = markerXs.map(markerX => markerX + x - rightPadding);\n\n if (valuePlacement === 'beside' && textAlign === 'right') {\n zeroPosition = zeroPosition - cellHorizontalPadding - longestValueWidth;\n dataBarX = dataBarX - cellHorizontalPadding - longestValueWidth;\n markerXs = markerXs.map(\n markerX => markerX - cellHorizontalPadding - longestValueWidth\n );\n }\n }\n\n leftmostPosition += x + treeIndent;\n rightmostPosition += x;\n\n return {\n maxWidth,\n x: dataBarX,\n y,\n zeroPosition,\n leftmostPosition,\n rightmostPosition,\n totalValueRange,\n dataBarWidth,\n markerXs,\n };\n }\n\n getCachedWidth = memoizeClear(\n (context: CanvasRenderingContext2D, text: string): number =>\n context.measureText(text).width,\n { max: 10000 }\n );\n\n /**\n * Returns the width of the widest value in pixels\n */\n getCachedWidestValueForColumn = memoizeClear(\n (\n context: CanvasRenderingContext2D,\n visibleRows: readonly VisibleIndex[],\n modelRows: VisibleToModelMap,\n model: GridModel,\n column: ModelIndex\n ): number => {\n let widestValue = 0;\n for (let i = 0; i < visibleRows.length; i += 1) {\n const row = visibleRows[i];\n const modelRow = getOrThrow(modelRows, row);\n const text = model.textForCell(column, modelRow);\n widestValue = Math.max(widestValue, this.getCachedWidth(context, text));\n }\n\n return widestValue;\n },\n { max: 1000 }\n );\n}\n\nexport default DataBarCellRenderer;\n"],"mappings":";;;AAAA;AACA,SAASA,UAAU,QAAQ,kBAAkB;AAAC,OACvCC,YAAY;AAAA,SACVC,qBAAqB;AAAA,SACrBC,kBAAkB;AAAA,OAMpBC,cAAc;AAAA,OACdC,SAAS;AAAA,OACTC,YAAY;AAwBnB,MAAMC,mBAAmB,SAASN,YAAY,CAAC;EAAAO,YAAA;IAAA,SAAAC,SAAA;IAAAC,eAAA,yBAke5BJ,YAAY,CAC3B,CAACK,OAAiC,EAAEC,IAAY,KAC9CD,OAAO,CAACE,WAAW,CAACD,IAAI,CAAC,CAACE,KAAK,EACjC;MAAEC,GAAG,EAAE;IAAM,CACf,CAAC;IAED;AACF;AACA;IAFEL,eAAA,wCAGgCJ,YAAY,CAC1C,CACEK,OAAiC,EACjCK,WAAoC,EACpCC,SAA4B,EAC5BC,KAAgB,EAChBC,MAAkB,KACP;MACX,IAAIC,WAAW,GAAG,CAAC;MACnB,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGL,WAAW,CAACM,MAAM,EAAED,CAAC,IAAI,CAAC,EAAE;QAC9C,IAAME,GAAG,GAAGP,WAAW,CAACK,CAAC,CAAC;QAC1B,IAAMG,QAAQ,GAAGxB,UAAU,CAACiB,SAAS,EAAEM,GAAG,CAAC;QAC3C,IAAMX,IAAI,GAAGM,KAAK,CAACO,WAAW,CAACN,MAAM,EAAEK,QAAQ,CAAC;QAChDJ,WAAW,GAAGM,IAAI,CAACX,GAAG,CAACK,WAAW,EAAE,IAAI,CAACO,cAAc,CAAChB,OAAO,EAAEC,IAAI,CAAC,CAAC;MACzE;MAEA,OAAOQ,WAAW;IACpB,CAAC,EACD;MAAEL,GAAG,EAAE;IAAK,CACd,CAAC;EAAA;EAzdDa,eAAeA,CACbjB,OAAiC,EACjCkB,KAAsB,EACtBV,MAAoB,EACpBI,GAAiB,EACX;IACN,IAAM;MAAEO,OAAO;MAAEZ,KAAK;MAAEa;IAAM,CAAC,GAAGF,KAAK;IACvC,IAAI,CAAC1B,kBAAkB,CAACe,KAAK,CAAC,EAAE;MAC9B;IACF;IACA,IAAM;MACJc,YAAY;MACZf,SAAS;MACTgB,aAAa;MACbC,QAAQ;MACRC,WAAW;MACXC,eAAe;MACfC;IACF,CAAC,GAAGP,OAAO;IAEX,IAAMQ,aAAa,GAAGnB,MAAM,KAAKgB,WAAW;IAC5C,IAAMI,SAAS,GAAGvC,UAAU,CAACiC,aAAa,EAAEV,GAAG,CAAC;IAChD,IAAMC,QAAQ,GAAGxB,UAAU,CAACiB,SAAS,EAAEM,GAAG,CAAC;IAC3C,IAAMiB,WAAW,GAAGxC,UAAU,CAACgC,YAAY,EAAEb,MAAM,CAAC;IACpD,IAAMsB,IAAI,GAAGzC,UAAU,CAACkC,QAAQ,EAAEX,GAAG,CAAC;IACtC,IAAMmB,SAAS,GAAGxB,KAAK,CAACyB,gBAAgB,CAACH,WAAW,EAAEhB,QAAQ,CAAC;IAC/D,IAAMZ,IAAI,GAAGM,KAAK,CAACO,WAAW,CAACe,WAAW,EAAEhB,QAAQ,CAAC;IACrD,IAAM;MACJoB,CAAC,EAAEC,KAAK;MACRC,CAAC,EAAEC,KAAK;MACRjC,KAAK,EAAEkC;IACT,CAAC,GAAG3C,SAAS,CAAC4C,oBAAoB,CAACpB,KAAK,EAAEV,MAAM,EAAEI,GAAG,CAAC;IAEtD,IAAM2B,cAAc,GAAGd,eAAe,CAACe,GAAG,CAACxC,OAAO,CAACyC,IAAI,CAAC;IACxD,IAAMC,cAAc,GAAGhB,eAAe,CAACc,GAAG,CAACxC,OAAO,CAACyC,IAAI,CAAC;IACxD,IAAME,cAAc,GAAGpC,KAAK,CAACqC,qBAAqB,CAACf,WAAW,EAAEhB,QAAQ,CAAC;IACzE,IAAMgC,aAAa,GAAG,IAAI,CAACC,wBAAwB,CACjD9C,OAAO,EACPC,IAAI,EACJoC,SAAS,EACTE,cAAc,EACdG,cAAc,EACdC,cACF,CAAC;IAED,IAAM;MACJI,SAAS;MACTC,SAAS;MACTC,IAAI;MACJC,KAAK,EAAEC,YAAY;MACnBC,cAAc;MACdC,OAAO;MACPC,OAAO;MACPC,SAAS;MACTC;IACF,CAAC,GAAGjD,KAAK,CAACkD,qBAAqB,CAAC5B,WAAW,EAAEhB,QAAQ,EAAEO,KAAK,CAAC;IAE7D,IAAMsC,WAAW,GAAGC,KAAK,CAACC,OAAO,CAACT,YAAY,CAAC,IAAIA,YAAY,CAACxC,MAAM,GAAG,CAAC;IAC1E,IAAIoC,SAAS,IAAI,IAAI,IAAIC,SAAS,IAAI,IAAI,EAAE;MAC1C;IACF;IAEA,IAAM;MACJa,QAAQ;MACR5B,CAAC,EAAE6B,QAAQ;MACX3B,CAAC,EAAE4B,QAAQ;MACXC,YAAY;MACZC,gBAAgB;MAChBC,QAAQ;MACRC,eAAe;MACfC;IACF,CAAC,GAAG,IAAI,CAACC,uBAAuB,CAACrE,OAAO,EAAEkB,KAAK,EAAEV,MAAM,EAAEI,GAAG,CAAC;IAE7DZ,OAAO,CAACsE,IAAI,CAAC,CAAC;IACdtE,OAAO,CAAC+B,SAAS,GAAGA,SAAS;IAC7B,IAAI2B,WAAW,EAAE;MACf,IAAMR,KAAK,GACTM,KAAK,IAAI,CAAC,GAAGL,YAAY,CAACA,YAAY,CAACxC,MAAM,GAAG,CAAC,CAAC,GAAGwC,YAAY,CAAC,CAAC,CAAC;MACtEnD,OAAO,CAACuE,SAAS,GAAGrB,KAAK;IAC3B,CAAC,MAAM;MACLlD,OAAO,CAACuE,SAAS,GAAGZ,KAAK,CAACC,OAAO,CAACT,YAAY,CAAC,GAC3CA,YAAY,CAAC,CAAC,CAAC,GACfA,YAAY;IAClB;IACAnD,OAAO,CAACwE,YAAY,GAAG,QAAQ;IAC/BxE,OAAO,CAACyC,IAAI,GAAGrB,KAAK,CAACqB,IAAI;IAEzB,IAAIW,cAAc,KAAK,MAAM,EAAE;MAC7BpD,OAAO,CAACyE,QAAQ,CAAC5B,aAAa,EAAEX,KAAK,EAAEE,KAAK,CAAC;IAC/C;IAEA,IAAMsC,cAAc,GAAGtD,KAAK,CAACuD,YAAY,IAAI,IAAI;IACjD,IAAMC,OAAO,GAAGF,cAAc,GAAG,CAAC,GAAG,CAAC;IAEtC1E,OAAO,CAACsE,IAAI,CAAC,CAAC;IACdtE,OAAO,CAAC6E,SAAS,CAAC,CAAC;IACnB7E,OAAO,CAAC8E,SAAS,CACfhB,QAAQ,EACRhC,IAAI,GAAG8C,OAAO;IAAE;IAChBR,YAAY,EACZxC,SAAS,GAAG,CAAC,GAAGgD,OAAO;IAAE;IACzB,CACF,CAAC;IACD5E,OAAO,CAAC+E,IAAI,CAAC,CAAC;IACd/E,OAAO,CAACgF,WAAW,GAAG3B,OAAO;;IAE7B;IACA,IAAIK,WAAW,EAAE;MACf;;MAEA,IAAIuB,aAAa,GAAG,CAAC;MACrB,IAAIC,SAAS,GAAG,CAAC;MACjBlF,OAAO,CAACsE,IAAI,CAAC,CAAC;;MAEd;MACA;MACA;MACA,IAAId,KAAK,GAAG,CAAC,EAAE;QACb,IAAID,SAAS,KAAK,KAAK,EAAE;UACvB0B,aAAa,GAAGlE,IAAI,CAACoE,KAAK,CACvBpE,IAAI,CAACqE,GAAG,CAACrC,SAAS,CAAC,GAAGoB,eAAe,GAAIN,QAC5C,CAAC;UACDqB,SAAS,GAAGnE,IAAI,CAACoE,KAAK,CAAClB,gBAAgB,CAAC;UACxCjE,OAAO,CAACqF,SAAS,CAACH,SAAS,EAAE,CAAC,CAAC;QACjC,CAAC,MAAM,IAAI3B,SAAS,KAAK,KAAK,EAAE;UAC9B0B,aAAa,GAAGlE,IAAI,CAACoE,KAAK,CACxBtB,QAAQ,GAAI9C,IAAI,CAACqE,GAAG,CAACpC,SAAS,CAAC,GAAGmB,eAAe,GAAIN,QACvD,CAAC;UACDqB,SAAS,GAAGnE,IAAI,CAACoE,KAAK,CAACnB,YAAY,CAAC;UACpChE,OAAO,CAACqF,SAAS,CAACH,SAAS,GAAGD,aAAa,EAAE,CAAC,CAAC;UAC/CjF,OAAO,CAACsF,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACtB;MACF,CAAC,MAAM,IAAI/B,SAAS,KAAK,KAAK,EAAE;QAC9B;QACA0B,aAAa,GACXlE,IAAI,CAACoE,KAAK,CACRtB,QAAQ,GAAI9C,IAAI,CAACqE,GAAG,CAACrC,SAAS,CAAC,GAAGoB,eAAe,GAAIN,QACvD,CAAC,GAAG,CAAC;QACPqB,SAAS,GAAGnE,IAAI,CAACoE,KAAK,CAACnB,YAAY,CAAC;QACpChE,OAAO,CAACqF,SAAS,CAACH,SAAS,EAAE,CAAC,CAAC;MACjC,CAAC,MAAM,IAAI3B,SAAS,KAAK,KAAK,EAAE;QAC9B;QACA0B,aAAa,GAAGlE,IAAI,CAACoE,KAAK,CACvBpE,IAAI,CAACqE,GAAG,CAACpC,SAAS,CAAC,GAAGmB,eAAe,GAAIN,QAC5C,CAAC;QACDqB,SAAS,GAAGnE,IAAI,CAACoE,KAAK,CAAClB,gBAAgB,CAAC;QACxCjE,OAAO,CAACqF,SAAS,CAACH,SAAS,GAAGD,aAAa,EAAE,CAAC,CAAC;QAC/CjF,OAAO,CAACsF,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;MACtB;MAEA,IAAMC,QAAQ,GAAG3F,mBAAmB,CAAC4F,WAAW,CAC9CP,aAAa,EACb9B,YACF,CAAC;MACDnD,OAAO,CAACuE,SAAS,GAAGgB,QAAQ;MAC5BvF,OAAO,CAACyF,QAAQ,CAAC,CAAC,EAAE1B,QAAQ,EAAEkB,aAAa,EAAErD,SAAS,CAAC;MACvD5B,OAAO,CAAC0F,OAAO,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC,MAAM;MACL;MACA1F,OAAO,CAAC6E,SAAS,CAAC,CAAC;MACnB7E,OAAO,CAAC8E,SAAS,CAAChB,QAAQ,EAAEC,QAAQ,EAAEK,YAAY,EAAExC,SAAS,EAAE,CAAC,CAAC;MACjE5B,OAAO,CAAC2F,IAAI,CAAC,CAAC;IAChB;;IAEA;IACA,IAAI9B,QAAQ,GAAG,CAAC,EAAE;MAChBK,QAAQ,CAAC0B,OAAO,CAAC,CAACC,OAAO,EAAEC,KAAK,KAAK;QACnC9F,OAAO,CAACuE,SAAS,GAAGjB,OAAO,CAACwC,KAAK,CAAC,CAAC5C,KAAK;QACxClD,OAAO,CAACyF,QAAQ,CAACI,OAAO,EAAE9B,QAAQ,EAAE,CAAC,EAAEnC,SAAS,CAAC;MACnD,CAAC,CAAC;IACJ;;IAEA;IACA5B,OAAO,CAAC0F,OAAO,CAAC,CAAC;IAEjB,IAAMK,sBAAsB,GAAG,EAC7B9C,IAAI,KAAK,aAAa,KACpBG,cAAc,KAAK,QAAQ,IAC3BrB,SAAS,KAAK,OAAO,IACrBwB,SAAS,KAAK,KAAK,IAClBH,cAAc,KAAK,QAAQ,IAC1BrB,SAAS,KAAK,MAAM,IACpBwB,SAAS,KAAK,KAAM,IACtBH,cAAc,KAAK,QAAQ,CAAC,CAC/B;;IAED;IACA,IAAI2C,sBAAsB,EAAE;MAC1B/F,OAAO,CAACgG,WAAW,GAAG5E,KAAK,CAAC6E,aAAa;MACzCjG,OAAO,CAAC6E,SAAS,CAAC,CAAC;MACnB7E,OAAO,CAACkG,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;MAC3BlG,OAAO,CAACmG,MAAM,CAACnC,YAAY,EAAElC,IAAI,CAAC;MAClC9B,OAAO,CAACoG,MAAM,CAACpC,YAAY,EAAElC,IAAI,GAAGF,SAAS,CAAC;MAC9C5B,OAAO,CAACqG,MAAM,CAAC,CAAC;IAClB;IAEArG,OAAO,CAAC0F,OAAO,CAAC,CAAC;;IAEjB;IACA,IACE/D,aAAa,IACbpC,qBAAqB,CAACgB,KAAK,CAAC,IAC5BA,KAAK,CAAC+F,iBAAiB,EACvB;MACA,IAAI,CAACC,qBAAqB,CAACvG,OAAO,EAAEkB,KAAK,EAAEN,GAAG,CAAC;IACjD;EACF;EAEAyD,uBAAuBA,CACrBrE,OAAiC,EACjCkB,KAAsB,EACtBV,MAAoB,EACpBI,GAAiB,EACK;IACtB,IAAM;MAAEO,OAAO;MAAEZ,KAAK;MAAEa;IAAM,CAAC,GAAGF,KAAK;IACvC,IAAI,CAAC1B,kBAAkB,CAACe,KAAK,CAAC,EAAE;MAC9B,MAAM,IAAIiG,KAAK,CAAC,yCAAyC,CAAC;IAC5D;IACA,IAAM;MACJhF,WAAW;MACXiF,WAAW;MACXC,eAAe;MACfnF,QAAQ;MACRF,YAAY;MACZf,SAAS;MACTD;IACF,CAAC,GAAGc,OAAO;IACX,IAAM;MAAEwF,qBAAqB;MAAEC,eAAe;MAAEC;IAAsB,CAAC,GACrEzF,KAAK;IAEP,IAAMS,WAAW,GAAGxC,UAAU,CAACgC,YAAY,EAAEb,MAAM,CAAC;IACpD,IAAMK,QAAQ,GAAGxB,UAAU,CAACiB,SAAS,EAAEM,GAAG,CAAC;IAC3C,IAAMqB,CAAC,GAAG5C,UAAU,CAACoH,WAAW,EAAEjG,MAAM,CAAC;IACzC,IAAM2B,CAAC,GAAG9C,UAAU,CAACkC,QAAQ,EAAEX,GAAG,CAAC;IACnC,IAAMkG,WAAW,GAAGzH,UAAU,CAACqH,eAAe,EAAElG,MAAM,CAAC;IACvD,IAAMmB,aAAa,GAAGnB,MAAM,KAAKgB,WAAW;IAC5C,IAAIuF,UAAU,GAAG,CAAC;IAClB,IACExH,qBAAqB,CAACgB,KAAK,CAAC,IAC5BA,KAAK,CAAC+F,iBAAiB,IACvB3E,aAAa,EACb;MACAoF,UAAU,GACRH,eAAe,IAAIrG,KAAK,CAACyG,WAAW,CAACpG,GAAG,CAAC,GAAG,CAAC,CAAC,GAAGiG,qBAAqB;IAC1E;IAEA,IAAM9E,SAAS,GAAGxB,KAAK,CAACyB,gBAAgB,CAACH,WAAW,EAAEhB,QAAQ,CAAC;IAC/D,IAAM;MACJkC,SAAS;MACTC,SAAS;MACTC,IAAI;MACJG,cAAc;MACdE,OAAO;MACPC,SAAS;MACTC;IACF,CAAC,GAAGjD,KAAK,CAACkD,qBAAqB,CAAC5B,WAAW,EAAEhB,QAAQ,EAAEO,KAAK,CAAC;IAC7D,IAAM6F,iBAAiB,GAAG,IAAI,CAACC,6BAA6B,CAC1DlH,OAAO,EACPK,WAAW,EACXC,SAAS,EACTC,KAAK,EACLsB,WACF,CAAC;IAED,IAAMsF,WAAW,GAAG,CAAC;IACrB,IAAMC,YAAY,GAChBhE,cAAc,KAAK,QAAQ,IAAIrB,SAAS,KAAK,OAAO,GAAG,CAAC,GAAG,CAAC;;IAE9D;IACA,IAAIoC,eAAe,GAAGnB,SAAS,GAAGD,SAAS;IAC3C;IACA,IAAKC,SAAS,IAAI,CAAC,IAAID,SAAS,IAAI,CAAC,IAAKA,SAAS,KAAKC,SAAS,EAAE;MACjEmB,eAAe,GAAGnB,SAAS;IAC7B,CAAC,MAAM,IAAIA,SAAS,IAAI,CAAC,IAAID,SAAS,IAAI,CAAC,EAAE;MAC3C;MACAoB,eAAe,GAAGpD,IAAI,CAACqE,GAAG,CAACrC,SAAS,CAAC;IACvC;IAEA,IAAIc,QAAQ,GAAGiD,WAAW,GAAGC,UAAU,GAAGK,YAAY,GAAGD,WAAW;IACpE,IAAI/D,cAAc,KAAK,QAAQ,EAAE;MAC/BS,QAAQ,GAAGA,QAAQ,GAAG8C,qBAAqB,GAAGM,iBAAiB;IACjE;IAEA,IAAIpD,QAAQ,GAAG,CAAC,EAAE;MAChBA,QAAQ,GAAG,CAAC;IACd;IAEA,IAAMwD,aAAa,GAAGtG,IAAI,CAACX,GAAG,CAACW,IAAI,CAACqE,GAAG,CAACrC,SAAS,CAAC,EAAEhC,IAAI,CAACqE,GAAG,CAACpC,SAAS,CAAC,CAAC;IACxE;IACA,IAAIoB,YAAY,GAAIrD,IAAI,CAACqE,GAAG,CAAC5B,KAAK,CAAC,GAAGW,eAAe,GAAIN,QAAQ;IAEjE,IAAIA,QAAQ,KAAK,CAAC,EAAE;MAClBO,YAAY,GAAG,CAAC;IAClB,CAAC,MAAM,IAAInB,IAAI,KAAK,QAAQ,EAAE;MAC5B;MACAmB,YAAY,GAAIrD,IAAI,CAACqE,GAAG,CAAC5B,KAAK,CAAC,GAAG6D,aAAa,IAAKxD,QAAQ,GAAG,CAAC,CAAC;IACnE,CAAC,MAAM,IAAIZ,IAAI,KAAK,aAAa,EAAE;MACjC;MACAmB,YAAY,GAAIrD,IAAI,CAACqE,GAAG,CAAC5B,KAAK,CAAC,GAAG6D,aAAa,GAAIxD,QAAQ;IAC7D;;IAEA;IACA;IACA,IAAIG,YAAY,GACdjB,SAAS,IAAI,CAAC,GAAG,CAAC,GAAIhC,IAAI,CAACqE,GAAG,CAACrC,SAAS,CAAC,GAAGoB,eAAe,GAAIN,QAAQ;IACzE,IAAIC,QAAQ,GACVN,KAAK,IAAI,CAAC,GACNQ,YAAY,GACZA,YAAY,GAAIjD,IAAI,CAACqE,GAAG,CAAC5B,KAAK,CAAC,GAAGW,eAAe,GAAIN,QAAQ;IACnE,IAAIK,QAAQ,GAAGZ,OAAO,CAACgE,GAAG,CAACC,MAAM,IAAI;MACnC,IAAM;QAAE/D,KAAK,EAAEgE;MAAY,CAAC,GAAGD,MAAM;MACrC,IAAME,MAAM,GAAI1G,IAAI,CAACqE,GAAG,CAACoC,WAAW,CAAC,GAAGrD,eAAe,GAAIN,QAAQ;MACnE,OAAO2D,WAAW,IAAI,CAAC,GAAGxD,YAAY,GAAGyD,MAAM,GAAGzD,YAAY,GAAGyD,MAAM;IACzE,CAAC,CAAC;IACF,IAAIxD,gBAAgB,GAClBb,cAAc,KAAK,QAAQ,IAAIrB,SAAS,KAAK,MAAM,GAC/C4E,qBAAqB,GAAGM,iBAAiB,GAAGE,WAAW,GACvDA,WAAW;IACjB,IAAIO,iBAAiB,GACnBtE,cAAc,KAAK,QAAQ,IAAIrB,SAAS,KAAK,OAAO,GAChD+E,WAAW,GAAGH,qBAAqB,GAAGM,iBAAiB,GAAGG,YAAY,GACtEA,YAAY;;IAElB;IACA,IAAI7D,SAAS,KAAK,KAAK,EAAE;MACvBS,YAAY,GACVjB,SAAS,IAAI,CAAC,GACV+D,WAAW,GACXA,WAAW,GAAI/F,IAAI,CAACqE,GAAG,CAACrC,SAAS,CAAC,GAAGoB,eAAe,GAAIN,QAAQ;MACtEC,QAAQ,GACNN,KAAK,IAAI,CAAC,GACNQ,YAAY,GAAIR,KAAK,GAAGW,eAAe,GAAIN,QAAQ,GACnDG,YAAY;MAClBE,QAAQ,GAAGZ,OAAO,CAACgE,GAAG,CAACC,MAAM,IAAI;QAC/B,IAAM;UAAE/D,KAAK,EAAEgE;QAAY,CAAC,GAAGD,MAAM;QACrC,OAAOC,WAAW,IAAI,CAAC,GACnBxD,YAAY,GAAIjD,IAAI,CAACqE,GAAG,CAACoC,WAAW,CAAC,GAAGrD,eAAe,GAAIN,QAAQ,GACnEG,YAAY,GAAIjD,IAAI,CAACqE,GAAG,CAACoC,WAAW,CAAC,GAAGrD,eAAe,GAAIN,QAAQ;MACzE,CAAC,CAAC;IACJ;IAEA,IAAIZ,IAAI,KAAK,QAAQ,EAAE;MACrBe,YAAY,GAAGH,QAAQ,GAAG,CAAC;MAC3B,IAAIN,SAAS,KAAK,KAAK,EAAE;QACvB;QACAO,QAAQ,GACNN,KAAK,IAAI,CAAC,GACNQ,YAAY,GACZA,YAAY,GAAIjD,IAAI,CAACqE,GAAG,CAAC5B,KAAK,CAAC,GAAG6D,aAAa,IAAKxD,QAAQ,GAAG,CAAC,CAAC;QACvEK,QAAQ,GAAGZ,OAAO,CAACgE,GAAG,CAACC,MAAM,IAAI;UAC/B,IAAM;YAAE/D,KAAK,EAAEgE;UAAY,CAAC,GAAGD,MAAM;UAErC,OAAOC,WAAW,IAAI,CAAC,GACnBxD,YAAY,GACTjD,IAAI,CAACqE,GAAG,CAACoC,WAAW,CAAC,GAAGH,aAAa,IAAKxD,QAAQ,GAAG,CAAC,CAAC,GAC1DG,YAAY,GACTjD,IAAI,CAACqE,GAAG,CAACoC,WAAW,CAAC,GAAGH,aAAa,IAAKxD,QAAQ,GAAG,CAAC,CAAC;QAChE,CAAC,CAAC;MACJ,CAAC,MAAM,IAAIN,SAAS,KAAK,KAAK,EAAE;QAC9B;QACAO,QAAQ,GACNN,KAAK,IAAI,CAAC,GACNQ,YAAY,GACZA,YAAY,GAAIjD,IAAI,CAACqE,GAAG,CAAC5B,KAAK,CAAC,GAAG6D,aAAa,IAAKxD,QAAQ,GAAG,CAAC,CAAC;QACvEK,QAAQ,GAAGZ,OAAO,CAACgE,GAAG,CAACC,MAAM,IAAI;UAC/B,IAAM;YAAE/D,KAAK,EAAEgE;UAAY,CAAC,GAAGD,MAAM;UAErC,OAAOC,WAAW,IAAI,CAAC,GACnBxD,YAAY,GACTjD,IAAI,CAACqE,GAAG,CAACoC,WAAW,CAAC,GAAGH,aAAa,IAAKxD,QAAQ,GAAG,CAAC,CAAC,GAC1DG,YAAY,GACTjD,IAAI,CAACqE,GAAG,CAACoC,WAAW,CAAC,GAAGH,aAAa,IAAKxD,QAAQ,GAAG,CAAC,CAAC;QAChE,CAAC,CAAC;MACJ;IACF,CAAC,MAAM,IAAIZ,IAAI,KAAK,aAAa,EAAE;MACjC,IAAIM,SAAS,KAAK,KAAK,EAAE;QACvB;QACAS,YAAY,GAAG,CAAC;QAChBF,QAAQ,GAAGE,YAAY;QACvBE,QAAQ,GAAGZ,OAAO,CAACgE,GAAG,CAACC,MAAM,IAAI;UAC/B,IAAM;YAAE/D,KAAK,EAAEgE;UAAY,CAAC,GAAGD,MAAM;UAErC,OACEvD,YAAY,GAAIjD,IAAI,CAACqE,GAAG,CAACoC,WAAW,CAAC,GAAGH,aAAa,GAAIxD,QAAQ;QAErE,CAAC,CAAC;MACJ,CAAC,MAAM,IAAIN,SAAS,KAAK,KAAK,EAAE;QAC9B;QACAS,YAAY,GAAG8C,WAAW;QAC1BhD,QAAQ,GAAGE,YAAY,GAAIjD,IAAI,CAACqE,GAAG,CAAC5B,KAAK,CAAC,GAAG6D,aAAa,GAAIxD,QAAQ;QACtEK,QAAQ,GAAGZ,OAAO,CAACgE,GAAG,CAACC,MAAM,IAAI;UAC/B,IAAM;YAAE/D,KAAK,EAAEgE;UAAY,CAAC,GAAGD,MAAM;UAErC,OACEvD,YAAY,GAAIjD,IAAI,CAACqE,GAAG,CAACoC,WAAW,CAAC,GAAGH,aAAa,GAAIxD,QAAQ;QAErE,CAAC,CAAC;MACJ;IACF;;IAEA;IACA,IAAIN,SAAS,KAAK,KAAK,EAAE;MACvBS,YAAY,IAAI/B,CAAC,GAAGkF,WAAW,GAAGJ,UAAU;MAC5CjD,QAAQ,IAAI7B,CAAC,GAAGkF,WAAW,GAAGJ,UAAU;MACxC7C,QAAQ,GAAGA,QAAQ,CAACoD,GAAG,CACrBzB,OAAO,IAAIA,OAAO,GAAG5D,CAAC,GAAGkF,WAAW,GAAGJ,UACzC,CAAC;MAED,IAAI3D,cAAc,KAAK,QAAQ,IAAIrB,SAAS,KAAK,MAAM,EAAE;QACvDiC,YAAY,IAAIiD,iBAAiB,GAAGN,qBAAqB;QACzD7C,QAAQ,IAAImD,iBAAiB,GAAGN,qBAAqB;QACrDzC,QAAQ,GAAGA,QAAQ,CAACoD,GAAG,CACrBzB,OAAO,IAAIA,OAAO,GAAGoB,iBAAiB,GAAGN,qBAC3C,CAAC;MACH;IACF,CAAC,MAAM,IAAIpD,SAAS,KAAK,KAAK,EAAE;MAC9BS,YAAY,GAAGA,YAAY,GAAG/B,CAAC,GAAGmF,YAAY;MAC9CtD,QAAQ,GAAGA,QAAQ,GAAG7B,CAAC,GAAGmF,YAAY;MACtClD,QAAQ,GAAGA,QAAQ,CAACoD,GAAG,CAACzB,OAAO,IAAIA,OAAO,GAAG5D,CAAC,GAAGmF,YAAY,CAAC;MAE9D,IAAIhE,cAAc,KAAK,QAAQ,IAAIrB,SAAS,KAAK,OAAO,EAAE;QACxDiC,YAAY,GAAGA,YAAY,GAAG2C,qBAAqB,GAAGM,iBAAiB;QACvEnD,QAAQ,GAAGA,QAAQ,GAAG6C,qBAAqB,GAAGM,iBAAiB;QAC/D/C,QAAQ,GAAGA,QAAQ,CAACoD,GAAG,CACrBzB,OAAO,IAAIA,OAAO,GAAGc,qBAAqB,GAAGM,iBAC/C,CAAC;MACH;IACF;IAEAhD,gBAAgB,IAAIhC,CAAC,GAAG8E,UAAU;IAClCW,iBAAiB,IAAIzF,CAAC;IAEtB,OAAO;MACL4B,QAAQ;MACR5B,CAAC,EAAE6B,QAAQ;MACX3B,CAAC;MACD6B,YAAY;MACZC,gBAAgB;MAChByD,iBAAiB;MACjBvD,eAAe;MACfC,YAAY;MACZF;IACF,CAAC;EACH;AA+BF;AAACnE,eAAA,CA/fKH,mBAAmB,iBACFD,YAAY,CAC/B,CAACQ,KAAa,EAAEwH,MAAgB,KAAqB;EACnD,IAAMC,MAAM,GAAGC,QAAQ,CAACC,aAAa,CAAC,QAAQ,CAAC;EAC/C,IAAMC,GAAG,GAAGH,MAAM,CAACI,UAAU,CAAC,IAAI,CAAC;EACnC,IAAID,GAAG,IAAI,IAAI,EAAE;IACf,MAAM,IAAIvB,KAAK,CAAC,iCAAiC,CAAC;EACpD;EACA,IAAIyB,MAAM,CAACC,KAAK,CAAC/H,KAAK,CAAC,EAAE;IACvB,OAAO4H,GAAG,CAACI,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;EAC7C;EACA,IAAM5C,QAAQ,GAAGwC,GAAG,CAACI,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAEhI,KAAK,EAAE,CAAC,CAAC;EACzD,IAAMiI,WAAW,GAAGT,MAAM,CAACL,GAAG,CAACpE,KAAK,IAClCzD,cAAc,CAAC4I,iBAAiB,CAAC5I,cAAc,CAAC6I,QAAQ,CAACpF,KAAK,CAAC,CACjE,CAAC;EACD,KAAK,IAAIxC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGP,KAAK,EAAEO,CAAC,IAAI,CAAC,EAAE;IACjC,IAAM6H,SAAS,GAAG7H,CAAC,GAAGP,KAAK;IAC3B,IAAMqI,mBAAmB,GAAG,CAAC,IAAIb,MAAM,CAAChH,MAAM,GAAG,CAAC,CAAC;IACnD,IAAM8H,cAAc,GAAG1H,IAAI,CAAC2H,KAAK,CAACH,SAAS,GAAGC,mBAAmB,CAAC;IAClE,IAAMtF,KAAK,GAAGzD,cAAc,CAACkJ,SAAS,CACpCP,WAAW,CAACK,cAAc,CAAC,EAC3BL,WAAW,CAACK,cAAc,GAAG,CAAC,CAAC,EAC9BF,SAAS,GAAGC,mBAAmB,GAAIA,mBACtC,CAAC;IACDjD,QAAQ,CAACqD,YAAY,CACnBlI,CAAC,GAAGP,KAAK,EACTV,cAAc,CAACoJ,QAAQ,CAACpJ,cAAc,CAACqJ,iBAAiB,CAAC5F,KAAK,CAAC,CACjE,CAAC;EACH;EACA,OAAOqC,QAAQ;AACjB,CAAC,EACD;EACEnF,GAAG,EAAE,IAAI;EACT2I,SAAS,EAAE,IAAI,CAAE;AACnB,CACF,CAAC;AA8dH,eAAenJ,mBAAmB","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"DataBarCellRenderer.js","names":["getOrThrow","CellRenderer","isExpandableGridModel","isDataBarGridModel","GridColorUtils","GridUtils","memoizeClear","DataBarCellRenderer","constructor","arguments","_defineProperty","context","text","measureText","width","max","visibleRows","modelRows","model","column","widestValue","i","length","row","modelRow","textForCell","Math","getCachedWidth","drawCellContent","state","metrics","theme","modelColumns","allRowHeights","allRowYs","firstColumn","fontWidthsLower","fontWidthsUpper","isFirstColumn","rowHeight","modelColumn","rowY","textAlign","textAlignForCell","x","textX","y","textY","textWidth","getTextRenderMetrics","fontWidthLower","get","font","fontWidthUpper","truncationChar","truncationCharForCell","truncatedText","getCachedTruncatedString","columnMin","columnMax","axis","color","dataBarColor","textColor","valuePlacement","opacity","markers","direction","value","dataBarOptionsForCell","hasGradient","Array","isArray","maxWidth","dataBarX","dataBarY","zeroPosition","leftmostPosition","markerXs","totalValueRange","dataBarWidth","getDataBarRenderMetrics","save","fillStyle","textBaseline","fillText","hasRowDividers","gridRowColor","yOffset","beginPath","roundRect","clip","globalAlpha","gradientWidth","gradientX","round","abs","translate","scale","gradient","getGradient","fillRect","restore","barColor","fill","forEach","markerX","index","shouldRenderDashedLine","strokeStyle","zeroLineColor","setLineDash","moveTo","lineTo","stroke","hasExpandableRows","drawCellRowTreeMarker","Error","allColumnXs","allColumnWidths","cellHorizontalPadding","treeDepthIndent","treeHorizontalPadding","columnWidth","treeIndent","depthForRow","longestValueWidth","getCachedWidestValueForColumn","leftPadding","rightPadding","columnLongest","map","marker","markerValue","offset","rightmostPosition","colors","canvas","document","createElement","ctx","getContext","Number","isNaN","createLinearGradient","oklabColors","linearSRGBToOklab","hexToRgb","colorStop","colorChangeInterval","leftColorIndex","floor","lerpColor","addColorStop","rgbToHex","OklabToLinearSRGB","primitive"],"sources":["../src/DataBarCellRenderer.ts"],"sourcesContent":["/* eslint-disable class-methods-use-this */\nimport { getOrThrow } from '@deephaven/utils';\nimport CellRenderer from './CellRenderer';\nimport { isExpandableGridModel } from './ExpandableGridModel';\nimport { isDataBarGridModel } from './DataBarGridModel';\nimport {\n type ModelIndex,\n type VisibleIndex,\n type VisibleToModelMap,\n} from './GridMetrics';\nimport GridColorUtils from './GridColorUtils';\nimport GridUtils from './GridUtils';\nimport memoizeClear from './memoizeClear';\nimport { type GridRenderState } from './GridRendererTypes';\nimport type GridModel from './GridModel';\n\ninterface DataBarRenderMetrics {\n /** The total width the entire bar from the min to max value can take up (rightmostPosition - leftmostPosition) */\n maxWidth: number;\n /** The x coordinate of the bar (the left) */\n x: number;\n /** The y coordinate of the bar (the top) */\n y: number;\n /** The position of the zero line */\n zeroPosition: number;\n /** The position of the leftmost point */\n leftmostPosition: number;\n /** The position of the rightmost point */\n rightmostPosition: number;\n /** The range of values (e.g. max of 100 and min of -50 means range of 150) */\n totalValueRange: number;\n /** The width of the databar */\n dataBarWidth: number;\n /** The x coordinates of the markers (the left) */\n markerXs: number[];\n}\nclass DataBarCellRenderer extends CellRenderer {\n static getGradient = memoizeClear(\n (width: number, colors: string[]): CanvasGradient => {\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d');\n if (ctx == null) {\n throw new Error('Failed to create canvas context');\n }\n if (Number.isNaN(width)) {\n return ctx.createLinearGradient(0, 0, 0, 0);\n }\n const gradient = ctx.createLinearGradient(0, 0, width, 0);\n const oklabColors = colors.map(color =>\n GridColorUtils.linearSRGBToOklab(GridColorUtils.hexToRgb(color))\n );\n for (let i = 0; i < width; i += 1) {\n const colorStop = i / width;\n const colorChangeInterval = 1 / (colors.length - 1);\n const leftColorIndex = Math.floor(colorStop / colorChangeInterval);\n const color = GridColorUtils.lerpColor(\n oklabColors[leftColorIndex],\n oklabColors[leftColorIndex + 1],\n (colorStop % colorChangeInterval) / colorChangeInterval\n );\n gradient.addColorStop(\n i / width,\n GridColorUtils.rgbToHex(GridColorUtils.OklabToLinearSRGB(color))\n );\n }\n return gradient;\n },\n {\n max: 1000,\n primitive: true, // Stringify the arguments for memoization. Lets the color arrays be different arrays in memory, but still cache hit\n }\n );\n\n drawCellContent(\n context: CanvasRenderingContext2D,\n state: GridRenderState,\n column: VisibleIndex,\n row: VisibleIndex\n ): void {\n const { metrics, model, theme } = state;\n if (!isDataBarGridModel(model)) {\n return;\n }\n const {\n modelColumns,\n modelRows,\n allRowHeights,\n allRowYs,\n firstColumn,\n fontWidthsLower,\n fontWidthsUpper,\n } = metrics;\n\n const isFirstColumn = column === firstColumn;\n const rowHeight = getOrThrow(allRowHeights, row);\n const modelRow = getOrThrow(modelRows, row);\n const modelColumn = getOrThrow(modelColumns, column);\n const rowY = getOrThrow(allRowYs, row);\n const textAlign = model.textAlignForCell(modelColumn, modelRow);\n const text = model.textForCell(modelColumn, modelRow);\n const {\n x: textX,\n y: textY,\n width: textWidth,\n } = GridUtils.getTextRenderMetrics(state, column, row);\n\n const fontWidthLower = fontWidthsLower.get(context.font);\n const fontWidthUpper = fontWidthsUpper.get(context.font);\n const truncationChar = model.truncationCharForCell(modelColumn, modelRow);\n const truncatedText = this.getCachedTruncatedString(\n context,\n text,\n textWidth,\n fontWidthLower,\n fontWidthUpper,\n truncationChar\n );\n\n const {\n columnMin,\n columnMax,\n axis,\n color: dataBarColor,\n textColor,\n valuePlacement,\n opacity,\n markers,\n direction,\n value,\n } = model.dataBarOptionsForCell(modelColumn, modelRow, theme);\n\n const hasGradient = Array.isArray(dataBarColor) && dataBarColor.length > 1;\n if (columnMin == null || columnMax == null) {\n return;\n }\n\n const {\n maxWidth,\n x: dataBarX,\n y: dataBarY,\n zeroPosition,\n leftmostPosition,\n markerXs,\n totalValueRange,\n dataBarWidth,\n } = this.getDataBarRenderMetrics(context, state, column, row);\n\n context.save();\n context.textAlign = textAlign;\n context.fillStyle = textColor;\n context.textBaseline = 'middle';\n context.font = theme.font;\n\n if (valuePlacement !== 'hide') {\n context.fillText(truncatedText, textX, textY);\n }\n\n const hasRowDividers = theme.gridRowColor != null;\n const yOffset = hasRowDividers ? 2 : 1;\n\n context.save();\n context.beginPath();\n context.roundRect(\n dataBarX,\n rowY + yOffset, // yOffset includes 1px for top padding\n dataBarWidth,\n rowHeight - 1 - yOffset, // 1px for bottom padding\n 1\n );\n context.clip();\n context.globalAlpha = opacity;\n\n // Draw bar\n if (hasGradient) {\n // Draw gradient bar\n\n let gradientWidth = 0;\n let gradientX = 0;\n context.save();\n\n // Translate the context so its origin is at the start of the gradient\n // and increasing x value moves towards the end of the gradient.\n // For RTL, scale x by -1 to flip across the x-axis\n if (value < 0) {\n if (direction === 'LTR') {\n gradientWidth = Math.round(\n (Math.abs(columnMin) / totalValueRange) * maxWidth\n );\n gradientX = Math.round(leftmostPosition);\n context.translate(gradientX, 0);\n } else if (direction === 'RTL') {\n gradientWidth = Math.round(\n maxWidth - (Math.abs(columnMax) / totalValueRange) * maxWidth\n );\n gradientX = Math.round(zeroPosition);\n context.translate(gradientX + gradientWidth, 0);\n context.scale(-1, 1);\n }\n } else if (direction === 'LTR') {\n // Value is greater than or equal to 0\n gradientWidth =\n Math.round(\n maxWidth - (Math.abs(columnMin) / totalValueRange) * maxWidth\n ) - 1;\n gradientX = Math.round(zeroPosition);\n context.translate(gradientX, 0);\n } else if (direction === 'RTL') {\n // Value is greater than or equal to 0\n gradientWidth = Math.round(\n (Math.abs(columnMax) / totalValueRange) * maxWidth\n );\n gradientX = Math.round(leftmostPosition);\n context.translate(gradientX + gradientWidth, 0);\n context.scale(-1, 1);\n }\n\n const gradient = DataBarCellRenderer.getGradient(\n gradientWidth,\n dataBarColor\n );\n context.fillStyle = gradient;\n context.fillRect(0, dataBarY, gradientWidth, rowHeight);\n context.restore(); // Restore gradient translate/scale\n } else {\n // Draw normal bar\n const barColor = Array.isArray(dataBarColor)\n ? dataBarColor[0]\n : dataBarColor;\n context.fillStyle = barColor;\n context.beginPath();\n context.roundRect(dataBarX, dataBarY, dataBarWidth, rowHeight, 1);\n context.fill();\n }\n\n // Draw markers\n if (maxWidth > 0) {\n markerXs.forEach((markerX, index) => {\n context.fillStyle = markers[index].color;\n context.fillRect(markerX, dataBarY, 1, rowHeight);\n });\n }\n\n // restore clip\n context.restore();\n\n const shouldRenderDashedLine = !(\n axis === 'directional' &&\n ((valuePlacement === 'beside' &&\n textAlign === 'right' &&\n direction === 'LTR') ||\n (valuePlacement === 'beside' &&\n textAlign === 'left' &&\n direction === 'RTL') ||\n valuePlacement !== 'beside')\n );\n\n // Draw dashed line\n if (shouldRenderDashedLine) {\n context.strokeStyle = theme.zeroLineColor;\n context.beginPath();\n context.setLineDash([2, 1]);\n context.moveTo(zeroPosition, rowY);\n context.lineTo(zeroPosition, rowY + rowHeight);\n context.stroke();\n }\n\n context.restore();\n\n // Draw tree marker\n if (\n isFirstColumn &&\n isExpandableGridModel(model) &&\n model.hasExpandableRows\n ) {\n this.drawCellRowTreeMarker(context, state, row);\n }\n }\n\n getDataBarRenderMetrics(\n context: CanvasRenderingContext2D,\n state: GridRenderState,\n column: VisibleIndex,\n row: VisibleIndex\n ): DataBarRenderMetrics {\n const { metrics, model, theme } = state;\n if (!isDataBarGridModel(model)) {\n throw new Error('Grid model is not a data bar grid model');\n }\n const {\n firstColumn,\n allColumnXs,\n allColumnWidths,\n allRowYs,\n modelColumns,\n modelRows,\n visibleRows,\n } = metrics;\n const { cellHorizontalPadding, treeDepthIndent, treeHorizontalPadding } =\n theme;\n\n const modelColumn = getOrThrow(modelColumns, column);\n const modelRow = getOrThrow(modelRows, row);\n const x = getOrThrow(allColumnXs, column);\n const y = getOrThrow(allRowYs, row);\n const columnWidth = getOrThrow(allColumnWidths, column);\n const isFirstColumn = column === firstColumn;\n let treeIndent = 0;\n if (\n isExpandableGridModel(model) &&\n model.hasExpandableRows &&\n isFirstColumn\n ) {\n treeIndent =\n treeDepthIndent * (model.depthForRow(row) + 1) + treeHorizontalPadding;\n }\n\n const textAlign = model.textAlignForCell(modelColumn, modelRow);\n const {\n columnMin,\n columnMax,\n axis,\n valuePlacement,\n markers,\n direction,\n value,\n } = model.dataBarOptionsForCell(modelColumn, modelRow, theme);\n const longestValueWidth = this.getCachedWidestValueForColumn(\n context,\n visibleRows,\n modelRows,\n model,\n modelColumn\n );\n\n const leftPadding = 2;\n const rightPadding =\n valuePlacement === 'beside' && textAlign === 'right' ? 2 : 1;\n\n // The value of the total range (e.g. max - column)\n let totalValueRange = columnMax - columnMin;\n // If min and max are both positive or min and max are equal, the max length is columnMax\n if ((columnMax >= 0 && columnMin >= 0) || columnMin === columnMax) {\n totalValueRange = columnMax;\n } else if (columnMax <= 0 && columnMin <= 0) {\n // If min and max are both negative, the max length is the absolute value of columnMin\n totalValueRange = Math.abs(columnMin);\n }\n\n let maxWidth = columnWidth - treeIndent - rightPadding - leftPadding;\n if (valuePlacement === 'beside') {\n maxWidth = maxWidth - cellHorizontalPadding - longestValueWidth;\n }\n\n if (maxWidth < 0) {\n maxWidth = 0;\n }\n\n const columnLongest = Math.max(Math.abs(columnMin), Math.abs(columnMax));\n // If axis is proportional, totalValueRange is proportional to maxWidth\n let dataBarWidth = (Math.abs(value) / totalValueRange) * maxWidth;\n\n if (maxWidth === 0) {\n dataBarWidth = 0;\n } else if (axis === 'middle') {\n // The longest bar is proportional to half of the maxWidth\n dataBarWidth = (Math.abs(value) / columnLongest) * (maxWidth / 2);\n } else if (axis === 'directional') {\n // The longest bar is proportional to the maxWidth\n dataBarWidth = (Math.abs(value) / columnLongest) * maxWidth;\n }\n\n // Default: proportional, beside, LTR, right text align\n // All positions are assuming the left side is 0 and the right side is maxWidth\n let zeroPosition =\n columnMin >= 0 ? 0 : (Math.abs(columnMin) / totalValueRange) * maxWidth;\n let dataBarX =\n value >= 0\n ? zeroPosition\n : zeroPosition - (Math.abs(value) / totalValueRange) * maxWidth;\n let markerXs = markers.map(marker => {\n const { value: markerValue } = marker;\n const offset = (Math.abs(markerValue) / totalValueRange) * maxWidth;\n return markerValue >= 0 ? zeroPosition + offset : zeroPosition - offset;\n });\n let leftmostPosition =\n valuePlacement === 'beside' && textAlign === 'left'\n ? cellHorizontalPadding + longestValueWidth + leftPadding\n : leftPadding;\n let rightmostPosition =\n valuePlacement === 'beside' && textAlign === 'right'\n ? columnWidth - cellHorizontalPadding - longestValueWidth - rightPadding\n : rightPadding;\n\n // Proportional, RTL\n if (direction === 'RTL') {\n zeroPosition =\n columnMin >= 0\n ? columnWidth\n : columnWidth - (Math.abs(columnMin) / totalValueRange) * maxWidth;\n dataBarX =\n value >= 0\n ? zeroPosition - (value / totalValueRange) * maxWidth\n : zeroPosition;\n markerXs = markers.map(marker => {\n const { value: markerValue } = marker;\n return markerValue >= 0\n ? zeroPosition - (Math.abs(markerValue) / totalValueRange) * maxWidth\n : zeroPosition + (Math.abs(markerValue) / totalValueRange) * maxWidth;\n });\n }\n\n if (axis === 'middle') {\n zeroPosition = maxWidth / 2;\n if (direction === 'LTR') {\n // Middle, LTR\n dataBarX =\n value >= 0\n ? zeroPosition\n : zeroPosition - (Math.abs(value) / columnLongest) * (maxWidth / 2);\n markerXs = markers.map(marker => {\n const { value: markerValue } = marker;\n\n return markerValue >= 0\n ? zeroPosition +\n (Math.abs(markerValue) / columnLongest) * (maxWidth / 2)\n : zeroPosition -\n (Math.abs(markerValue) / columnLongest) * (maxWidth / 2);\n });\n } else if (direction === 'RTL') {\n // Middle, RTL\n dataBarX =\n value <= 0\n ? zeroPosition\n : zeroPosition - (Math.abs(value) / columnLongest) * (maxWidth / 2);\n markerXs = markers.map(marker => {\n const { value: markerValue } = marker;\n\n return markerValue <= 0\n ? zeroPosition +\n (Math.abs(markerValue) / columnLongest) * (maxWidth / 2)\n : zeroPosition -\n (Math.abs(markerValue) / columnLongest) * (maxWidth / 2);\n });\n }\n } else if (axis === 'directional') {\n if (direction === 'LTR') {\n // Directional, LTR\n zeroPosition = 0;\n dataBarX = zeroPosition;\n markerXs = markers.map(marker => {\n const { value: markerValue } = marker;\n\n return (\n zeroPosition + (Math.abs(markerValue) / columnLongest) * maxWidth\n );\n });\n } else if (direction === 'RTL') {\n // Directional, RTL\n zeroPosition = columnWidth;\n dataBarX = zeroPosition - (Math.abs(value) / columnLongest) * maxWidth;\n markerXs = markers.map(marker => {\n const { value: markerValue } = marker;\n\n return (\n zeroPosition - (Math.abs(markerValue) / columnLongest) * maxWidth\n );\n });\n }\n }\n\n // Offset all values by the actual x value and padding\n if (direction === 'LTR') {\n zeroPosition += x + leftPadding + treeIndent;\n dataBarX += x + leftPadding + treeIndent;\n markerXs = markerXs.map(\n markerX => markerX + x + leftPadding + treeIndent\n );\n\n if (valuePlacement === 'beside' && textAlign === 'left') {\n zeroPosition += longestValueWidth + cellHorizontalPadding;\n dataBarX += longestValueWidth + cellHorizontalPadding;\n markerXs = markerXs.map(\n markerX => markerX + longestValueWidth + cellHorizontalPadding\n );\n }\n } else if (direction === 'RTL') {\n zeroPosition = zeroPosition + x - rightPadding;\n dataBarX = dataBarX + x - rightPadding;\n markerXs = markerXs.map(markerX => markerX + x - rightPadding);\n\n if (valuePlacement === 'beside' && textAlign === 'right') {\n zeroPosition = zeroPosition - cellHorizontalPadding - longestValueWidth;\n dataBarX = dataBarX - cellHorizontalPadding - longestValueWidth;\n markerXs = markerXs.map(\n markerX => markerX - cellHorizontalPadding - longestValueWidth\n );\n }\n }\n\n leftmostPosition += x + treeIndent;\n rightmostPosition += x;\n\n return {\n maxWidth,\n x: dataBarX,\n y,\n zeroPosition,\n leftmostPosition,\n rightmostPosition,\n totalValueRange,\n dataBarWidth,\n markerXs,\n };\n }\n\n getCachedWidth = memoizeClear(\n (context: CanvasRenderingContext2D, text: string): number =>\n context.measureText(text).width,\n { max: 10000 }\n );\n\n /**\n * Returns the width of the widest value in pixels\n */\n getCachedWidestValueForColumn = memoizeClear(\n (\n context: CanvasRenderingContext2D,\n visibleRows: readonly VisibleIndex[],\n modelRows: VisibleToModelMap,\n model: GridModel,\n column: ModelIndex\n ): number => {\n let widestValue = 0;\n for (let i = 0; i < visibleRows.length; i += 1) {\n const row = visibleRows[i];\n const modelRow = getOrThrow(modelRows, row);\n const text = model.textForCell(column, modelRow);\n widestValue = Math.max(widestValue, this.getCachedWidth(context, text));\n }\n\n return widestValue;\n },\n { max: 1000 }\n );\n}\n\nexport default DataBarCellRenderer;\n"],"mappings":";;;AAAA;AACA,SAASA,UAAU,QAAQ,kBAAkB;AAAC,OACvCC,YAAY;AAAA,SACVC,qBAAqB;AAAA,SACrBC,kBAAkB;AAAA,OAMpBC,cAAc;AAAA,OACdC,SAAS;AAAA,OACTC,YAAY;AAwBnB,MAAMC,mBAAmB,SAASN,YAAY,CAAC;EAAAO,YAAA;IAAA,SAAAC,SAAA;IAAAC,eAAA,yBA+d5BJ,YAAY,CAC3B,CAACK,OAAiC,EAAEC,IAAY,KAC9CD,OAAO,CAACE,WAAW,CAACD,IAAI,CAAC,CAACE,KAAK,EACjC;MAAEC,GAAG,EAAE;IAAM,CACf,CAAC;IAED;AACF;AACA;IAFEL,eAAA,wCAGgCJ,YAAY,CAC1C,CACEK,OAAiC,EACjCK,WAAoC,EACpCC,SAA4B,EAC5BC,KAAgB,EAChBC,MAAkB,KACP;MACX,IAAIC,WAAW,GAAG,CAAC;MACnB,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGL,WAAW,CAACM,MAAM,EAAED,CAAC,IAAI,CAAC,EAAE;QAC9C,IAAME,GAAG,GAAGP,WAAW,CAACK,CAAC,CAAC;QAC1B,IAAMG,QAAQ,GAAGxB,UAAU,CAACiB,SAAS,EAAEM,GAAG,CAAC;QAC3C,IAAMX,IAAI,GAAGM,KAAK,CAACO,WAAW,CAACN,MAAM,EAAEK,QAAQ,CAAC;QAChDJ,WAAW,GAAGM,IAAI,CAACX,GAAG,CAACK,WAAW,EAAE,IAAI,CAACO,cAAc,CAAChB,OAAO,EAAEC,IAAI,CAAC,CAAC;MACzE;MAEA,OAAOQ,WAAW;IACpB,CAAC,EACD;MAAEL,GAAG,EAAE;IAAK,CACd,CAAC;EAAA;EAtdDa,eAAeA,CACbjB,OAAiC,EACjCkB,KAAsB,EACtBV,MAAoB,EACpBI,GAAiB,EACX;IACN,IAAM;MAAEO,OAAO;MAAEZ,KAAK;MAAEa;IAAM,CAAC,GAAGF,KAAK;IACvC,IAAI,CAAC1B,kBAAkB,CAACe,KAAK,CAAC,EAAE;MAC9B;IACF;IACA,IAAM;MACJc,YAAY;MACZf,SAAS;MACTgB,aAAa;MACbC,QAAQ;MACRC,WAAW;MACXC,eAAe;MACfC;IACF,CAAC,GAAGP,OAAO;IAEX,IAAMQ,aAAa,GAAGnB,MAAM,KAAKgB,WAAW;IAC5C,IAAMI,SAAS,GAAGvC,UAAU,CAACiC,aAAa,EAAEV,GAAG,CAAC;IAChD,IAAMC,QAAQ,GAAGxB,UAAU,CAACiB,SAAS,EAAEM,GAAG,CAAC;IAC3C,IAAMiB,WAAW,GAAGxC,UAAU,CAACgC,YAAY,EAAEb,MAAM,CAAC;IACpD,IAAMsB,IAAI,GAAGzC,UAAU,CAACkC,QAAQ,EAAEX,GAAG,CAAC;IACtC,IAAMmB,SAAS,GAAGxB,KAAK,CAACyB,gBAAgB,CAACH,WAAW,EAAEhB,QAAQ,CAAC;IAC/D,IAAMZ,IAAI,GAAGM,KAAK,CAACO,WAAW,CAACe,WAAW,EAAEhB,QAAQ,CAAC;IACrD,IAAM;MACJoB,CAAC,EAAEC,KAAK;MACRC,CAAC,EAAEC,KAAK;MACRjC,KAAK,EAAEkC;IACT,CAAC,GAAG3C,SAAS,CAAC4C,oBAAoB,CAACpB,KAAK,EAAEV,MAAM,EAAEI,GAAG,CAAC;IAEtD,IAAM2B,cAAc,GAAGd,eAAe,CAACe,GAAG,CAACxC,OAAO,CAACyC,IAAI,CAAC;IACxD,IAAMC,cAAc,GAAGhB,eAAe,CAACc,GAAG,CAACxC,OAAO,CAACyC,IAAI,CAAC;IACxD,IAAME,cAAc,GAAGpC,KAAK,CAACqC,qBAAqB,CAACf,WAAW,EAAEhB,QAAQ,CAAC;IACzE,IAAMgC,aAAa,GAAG,IAAI,CAACC,wBAAwB,CACjD9C,OAAO,EACPC,IAAI,EACJoC,SAAS,EACTE,cAAc,EACdG,cAAc,EACdC,cACF,CAAC;IAED,IAAM;MACJI,SAAS;MACTC,SAAS;MACTC,IAAI;MACJC,KAAK,EAAEC,YAAY;MACnBC,SAAS;MACTC,cAAc;MACdC,OAAO;MACPC,OAAO;MACPC,SAAS;MACTC;IACF,CAAC,GAAGlD,KAAK,CAACmD,qBAAqB,CAAC7B,WAAW,EAAEhB,QAAQ,EAAEO,KAAK,CAAC;IAE7D,IAAMuC,WAAW,GAAGC,KAAK,CAACC,OAAO,CAACV,YAAY,CAAC,IAAIA,YAAY,CAACxC,MAAM,GAAG,CAAC;IAC1E,IAAIoC,SAAS,IAAI,IAAI,IAAIC,SAAS,IAAI,IAAI,EAAE;MAC1C;IACF;IAEA,IAAM;MACJc,QAAQ;MACR7B,CAAC,EAAE8B,QAAQ;MACX5B,CAAC,EAAE6B,QAAQ;MACXC,YAAY;MACZC,gBAAgB;MAChBC,QAAQ;MACRC,eAAe;MACfC;IACF,CAAC,GAAG,IAAI,CAACC,uBAAuB,CAACtE,OAAO,EAAEkB,KAAK,EAAEV,MAAM,EAAEI,GAAG,CAAC;IAE7DZ,OAAO,CAACuE,IAAI,CAAC,CAAC;IACdvE,OAAO,CAAC+B,SAAS,GAAGA,SAAS;IAC7B/B,OAAO,CAACwE,SAAS,GAAGpB,SAAS;IAC7BpD,OAAO,CAACyE,YAAY,GAAG,QAAQ;IAC/BzE,OAAO,CAACyC,IAAI,GAAGrB,KAAK,CAACqB,IAAI;IAEzB,IAAIY,cAAc,KAAK,MAAM,EAAE;MAC7BrD,OAAO,CAAC0E,QAAQ,CAAC7B,aAAa,EAAEX,KAAK,EAAEE,KAAK,CAAC;IAC/C;IAEA,IAAMuC,cAAc,GAAGvD,KAAK,CAACwD,YAAY,IAAI,IAAI;IACjD,IAAMC,OAAO,GAAGF,cAAc,GAAG,CAAC,GAAG,CAAC;IAEtC3E,OAAO,CAACuE,IAAI,CAAC,CAAC;IACdvE,OAAO,CAAC8E,SAAS,CAAC,CAAC;IACnB9E,OAAO,CAAC+E,SAAS,CACfhB,QAAQ,EACRjC,IAAI,GAAG+C,OAAO;IAAE;IAChBR,YAAY,EACZzC,SAAS,GAAG,CAAC,GAAGiD,OAAO;IAAE;IACzB,CACF,CAAC;IACD7E,OAAO,CAACgF,IAAI,CAAC,CAAC;IACdhF,OAAO,CAACiF,WAAW,GAAG3B,OAAO;;IAE7B;IACA,IAAIK,WAAW,EAAE;MACf;;MAEA,IAAIuB,aAAa,GAAG,CAAC;MACrB,IAAIC,SAAS,GAAG,CAAC;MACjBnF,OAAO,CAACuE,IAAI,CAAC,CAAC;;MAEd;MACA;MACA;MACA,IAAId,KAAK,GAAG,CAAC,EAAE;QACb,IAAID,SAAS,KAAK,KAAK,EAAE;UACvB0B,aAAa,GAAGnE,IAAI,CAACqE,KAAK,CACvBrE,IAAI,CAACsE,GAAG,CAACtC,SAAS,CAAC,GAAGqB,eAAe,GAAIN,QAC5C,CAAC;UACDqB,SAAS,GAAGpE,IAAI,CAACqE,KAAK,CAAClB,gBAAgB,CAAC;UACxClE,OAAO,CAACsF,SAAS,CAACH,SAAS,EAAE,CAAC,CAAC;QACjC,CAAC,MAAM,IAAI3B,SAAS,KAAK,KAAK,EAAE;UAC9B0B,aAAa,GAAGnE,IAAI,CAACqE,KAAK,CACxBtB,QAAQ,GAAI/C,IAAI,CAACsE,GAAG,CAACrC,SAAS,CAAC,GAAGoB,eAAe,GAAIN,QACvD,CAAC;UACDqB,SAAS,GAAGpE,IAAI,CAACqE,KAAK,CAACnB,YAAY,CAAC;UACpCjE,OAAO,CAACsF,SAAS,CAACH,SAAS,GAAGD,aAAa,EAAE,CAAC,CAAC;UAC/ClF,OAAO,CAACuF,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACtB;MACF,CAAC,MAAM,IAAI/B,SAAS,KAAK,KAAK,EAAE;QAC9B;QACA0B,aAAa,GACXnE,IAAI,CAACqE,KAAK,CACRtB,QAAQ,GAAI/C,IAAI,CAACsE,GAAG,CAACtC,SAAS,CAAC,GAAGqB,eAAe,GAAIN,QACvD,CAAC,GAAG,CAAC;QACPqB,SAAS,GAAGpE,IAAI,CAACqE,KAAK,CAACnB,YAAY,CAAC;QACpCjE,OAAO,CAACsF,SAAS,CAACH,SAAS,EAAE,CAAC,CAAC;MACjC,CAAC,MAAM,IAAI3B,SAAS,KAAK,KAAK,EAAE;QAC9B;QACA0B,aAAa,GAAGnE,IAAI,CAACqE,KAAK,CACvBrE,IAAI,CAACsE,GAAG,CAACrC,SAAS,CAAC,GAAGoB,eAAe,GAAIN,QAC5C,CAAC;QACDqB,SAAS,GAAGpE,IAAI,CAACqE,KAAK,CAAClB,gBAAgB,CAAC;QACxClE,OAAO,CAACsF,SAAS,CAACH,SAAS,GAAGD,aAAa,EAAE,CAAC,CAAC;QAC/ClF,OAAO,CAACuF,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;MACtB;MAEA,IAAMC,QAAQ,GAAG5F,mBAAmB,CAAC6F,WAAW,CAC9CP,aAAa,EACb/B,YACF,CAAC;MACDnD,OAAO,CAACwE,SAAS,GAAGgB,QAAQ;MAC5BxF,OAAO,CAAC0F,QAAQ,CAAC,CAAC,EAAE1B,QAAQ,EAAEkB,aAAa,EAAEtD,SAAS,CAAC;MACvD5B,OAAO,CAAC2F,OAAO,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC,MAAM;MACL;MACA,IAAMC,QAAQ,GAAGhC,KAAK,CAACC,OAAO,CAACV,YAAY,CAAC,GACxCA,YAAY,CAAC,CAAC,CAAC,GACfA,YAAY;MAChBnD,OAAO,CAACwE,SAAS,GAAGoB,QAAQ;MAC5B5F,OAAO,CAAC8E,SAAS,CAAC,CAAC;MACnB9E,OAAO,CAAC+E,SAAS,CAAChB,QAAQ,EAAEC,QAAQ,EAAEK,YAAY,EAAEzC,SAAS,EAAE,CAAC,CAAC;MACjE5B,OAAO,CAAC6F,IAAI,CAAC,CAAC;IAChB;;IAEA;IACA,IAAI/B,QAAQ,GAAG,CAAC,EAAE;MAChBK,QAAQ,CAAC2B,OAAO,CAAC,CAACC,OAAO,EAAEC,KAAK,KAAK;QACnChG,OAAO,CAACwE,SAAS,GAAGjB,OAAO,CAACyC,KAAK,CAAC,CAAC9C,KAAK;QACxClD,OAAO,CAAC0F,QAAQ,CAACK,OAAO,EAAE/B,QAAQ,EAAE,CAAC,EAAEpC,SAAS,CAAC;MACnD,CAAC,CAAC;IACJ;;IAEA;IACA5B,OAAO,CAAC2F,OAAO,CAAC,CAAC;IAEjB,IAAMM,sBAAsB,GAAG,EAC7BhD,IAAI,KAAK,aAAa,KACpBI,cAAc,KAAK,QAAQ,IAC3BtB,SAAS,KAAK,OAAO,IACrByB,SAAS,KAAK,KAAK,IAClBH,cAAc,KAAK,QAAQ,IAC1BtB,SAAS,KAAK,MAAM,IACpByB,SAAS,KAAK,KAAM,IACtBH,cAAc,KAAK,QAAQ,CAAC,CAC/B;;IAED;IACA,IAAI4C,sBAAsB,EAAE;MAC1BjG,OAAO,CAACkG,WAAW,GAAG9E,KAAK,CAAC+E,aAAa;MACzCnG,OAAO,CAAC8E,SAAS,CAAC,CAAC;MACnB9E,OAAO,CAACoG,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;MAC3BpG,OAAO,CAACqG,MAAM,CAACpC,YAAY,EAAEnC,IAAI,CAAC;MAClC9B,OAAO,CAACsG,MAAM,CAACrC,YAAY,EAAEnC,IAAI,GAAGF,SAAS,CAAC;MAC9C5B,OAAO,CAACuG,MAAM,CAAC,CAAC;IAClB;IAEAvG,OAAO,CAAC2F,OAAO,CAAC,CAAC;;IAEjB;IACA,IACEhE,aAAa,IACbpC,qBAAqB,CAACgB,KAAK,CAAC,IAC5BA,KAAK,CAACiG,iBAAiB,EACvB;MACA,IAAI,CAACC,qBAAqB,CAACzG,OAAO,EAAEkB,KAAK,EAAEN,GAAG,CAAC;IACjD;EACF;EAEA0D,uBAAuBA,CACrBtE,OAAiC,EACjCkB,KAAsB,EACtBV,MAAoB,EACpBI,GAAiB,EACK;IACtB,IAAM;MAAEO,OAAO;MAAEZ,KAAK;MAAEa;IAAM,CAAC,GAAGF,KAAK;IACvC,IAAI,CAAC1B,kBAAkB,CAACe,KAAK,CAAC,EAAE;MAC9B,MAAM,IAAImG,KAAK,CAAC,yCAAyC,CAAC;IAC5D;IACA,IAAM;MACJlF,WAAW;MACXmF,WAAW;MACXC,eAAe;MACfrF,QAAQ;MACRF,YAAY;MACZf,SAAS;MACTD;IACF,CAAC,GAAGc,OAAO;IACX,IAAM;MAAE0F,qBAAqB;MAAEC,eAAe;MAAEC;IAAsB,CAAC,GACrE3F,KAAK;IAEP,IAAMS,WAAW,GAAGxC,UAAU,CAACgC,YAAY,EAAEb,MAAM,CAAC;IACpD,IAAMK,QAAQ,GAAGxB,UAAU,CAACiB,SAAS,EAAEM,GAAG,CAAC;IAC3C,IAAMqB,CAAC,GAAG5C,UAAU,CAACsH,WAAW,EAAEnG,MAAM,CAAC;IACzC,IAAM2B,CAAC,GAAG9C,UAAU,CAACkC,QAAQ,EAAEX,GAAG,CAAC;IACnC,IAAMoG,WAAW,GAAG3H,UAAU,CAACuH,eAAe,EAAEpG,MAAM,CAAC;IACvD,IAAMmB,aAAa,GAAGnB,MAAM,KAAKgB,WAAW;IAC5C,IAAIyF,UAAU,GAAG,CAAC;IAClB,IACE1H,qBAAqB,CAACgB,KAAK,CAAC,IAC5BA,KAAK,CAACiG,iBAAiB,IACvB7E,aAAa,EACb;MACAsF,UAAU,GACRH,eAAe,IAAIvG,KAAK,CAAC2G,WAAW,CAACtG,GAAG,CAAC,GAAG,CAAC,CAAC,GAAGmG,qBAAqB;IAC1E;IAEA,IAAMhF,SAAS,GAAGxB,KAAK,CAACyB,gBAAgB,CAACH,WAAW,EAAEhB,QAAQ,CAAC;IAC/D,IAAM;MACJkC,SAAS;MACTC,SAAS;MACTC,IAAI;MACJI,cAAc;MACdE,OAAO;MACPC,SAAS;MACTC;IACF,CAAC,GAAGlD,KAAK,CAACmD,qBAAqB,CAAC7B,WAAW,EAAEhB,QAAQ,EAAEO,KAAK,CAAC;IAC7D,IAAM+F,iBAAiB,GAAG,IAAI,CAACC,6BAA6B,CAC1DpH,OAAO,EACPK,WAAW,EACXC,SAAS,EACTC,KAAK,EACLsB,WACF,CAAC;IAED,IAAMwF,WAAW,GAAG,CAAC;IACrB,IAAMC,YAAY,GAChBjE,cAAc,KAAK,QAAQ,IAAItB,SAAS,KAAK,OAAO,GAAG,CAAC,GAAG,CAAC;;IAE9D;IACA,IAAIqC,eAAe,GAAGpB,SAAS,GAAGD,SAAS;IAC3C;IACA,IAAKC,SAAS,IAAI,CAAC,IAAID,SAAS,IAAI,CAAC,IAAKA,SAAS,KAAKC,SAAS,EAAE;MACjEoB,eAAe,GAAGpB,SAAS;IAC7B,CAAC,MAAM,IAAIA,SAAS,IAAI,CAAC,IAAID,SAAS,IAAI,CAAC,EAAE;MAC3C;MACAqB,eAAe,GAAGrD,IAAI,CAACsE,GAAG,CAACtC,SAAS,CAAC;IACvC;IAEA,IAAIe,QAAQ,GAAGkD,WAAW,GAAGC,UAAU,GAAGK,YAAY,GAAGD,WAAW;IACpE,IAAIhE,cAAc,KAAK,QAAQ,EAAE;MAC/BS,QAAQ,GAAGA,QAAQ,GAAG+C,qBAAqB,GAAGM,iBAAiB;IACjE;IAEA,IAAIrD,QAAQ,GAAG,CAAC,EAAE;MAChBA,QAAQ,GAAG,CAAC;IACd;IAEA,IAAMyD,aAAa,GAAGxG,IAAI,CAACX,GAAG,CAACW,IAAI,CAACsE,GAAG,CAACtC,SAAS,CAAC,EAAEhC,IAAI,CAACsE,GAAG,CAACrC,SAAS,CAAC,CAAC;IACxE;IACA,IAAIqB,YAAY,GAAItD,IAAI,CAACsE,GAAG,CAAC5B,KAAK,CAAC,GAAGW,eAAe,GAAIN,QAAQ;IAEjE,IAAIA,QAAQ,KAAK,CAAC,EAAE;MAClBO,YAAY,GAAG,CAAC;IAClB,CAAC,MAAM,IAAIpB,IAAI,KAAK,QAAQ,EAAE;MAC5B;MACAoB,YAAY,GAAItD,IAAI,CAACsE,GAAG,CAAC5B,KAAK,CAAC,GAAG8D,aAAa,IAAKzD,QAAQ,GAAG,CAAC,CAAC;IACnE,CAAC,MAAM,IAAIb,IAAI,KAAK,aAAa,EAAE;MACjC;MACAoB,YAAY,GAAItD,IAAI,CAACsE,GAAG,CAAC5B,KAAK,CAAC,GAAG8D,aAAa,GAAIzD,QAAQ;IAC7D;;IAEA;IACA;IACA,IAAIG,YAAY,GACdlB,SAAS,IAAI,CAAC,GAAG,CAAC,GAAIhC,IAAI,CAACsE,GAAG,CAACtC,SAAS,CAAC,GAAGqB,eAAe,GAAIN,QAAQ;IACzE,IAAIC,QAAQ,GACVN,KAAK,IAAI,CAAC,GACNQ,YAAY,GACZA,YAAY,GAAIlD,IAAI,CAACsE,GAAG,CAAC5B,KAAK,CAAC,GAAGW,eAAe,GAAIN,QAAQ;IACnE,IAAIK,QAAQ,GAAGZ,OAAO,CAACiE,GAAG,CAACC,MAAM,IAAI;MACnC,IAAM;QAAEhE,KAAK,EAAEiE;MAAY,CAAC,GAAGD,MAAM;MACrC,IAAME,MAAM,GAAI5G,IAAI,CAACsE,GAAG,CAACqC,WAAW,CAAC,GAAGtD,eAAe,GAAIN,QAAQ;MACnE,OAAO4D,WAAW,IAAI,CAAC,GAAGzD,YAAY,GAAG0D,MAAM,GAAG1D,YAAY,GAAG0D,MAAM;IACzE,CAAC,CAAC;IACF,IAAIzD,gBAAgB,GAClBb,cAAc,KAAK,QAAQ,IAAItB,SAAS,KAAK,MAAM,GAC/C8E,qBAAqB,GAAGM,iBAAiB,GAAGE,WAAW,GACvDA,WAAW;IACjB,IAAIO,iBAAiB,GACnBvE,cAAc,KAAK,QAAQ,IAAItB,SAAS,KAAK,OAAO,GAChDiF,WAAW,GAAGH,qBAAqB,GAAGM,iBAAiB,GAAGG,YAAY,GACtEA,YAAY;;IAElB;IACA,IAAI9D,SAAS,KAAK,KAAK,EAAE;MACvBS,YAAY,GACVlB,SAAS,IAAI,CAAC,GACViE,WAAW,GACXA,WAAW,GAAIjG,IAAI,CAACsE,GAAG,CAACtC,SAAS,CAAC,GAAGqB,eAAe,GAAIN,QAAQ;MACtEC,QAAQ,GACNN,KAAK,IAAI,CAAC,GACNQ,YAAY,GAAIR,KAAK,GAAGW,eAAe,GAAIN,QAAQ,GACnDG,YAAY;MAClBE,QAAQ,GAAGZ,OAAO,CAACiE,GAAG,CAACC,MAAM,IAAI;QAC/B,IAAM;UAAEhE,KAAK,EAAEiE;QAAY,CAAC,GAAGD,MAAM;QACrC,OAAOC,WAAW,IAAI,CAAC,GACnBzD,YAAY,GAAIlD,IAAI,CAACsE,GAAG,CAACqC,WAAW,CAAC,GAAGtD,eAAe,GAAIN,QAAQ,GACnEG,YAAY,GAAIlD,IAAI,CAACsE,GAAG,CAACqC,WAAW,CAAC,GAAGtD,eAAe,GAAIN,QAAQ;MACzE,CAAC,CAAC;IACJ;IAEA,IAAIb,IAAI,KAAK,QAAQ,EAAE;MACrBgB,YAAY,GAAGH,QAAQ,GAAG,CAAC;MAC3B,IAAIN,SAAS,KAAK,KAAK,EAAE;QACvB;QACAO,QAAQ,GACNN,KAAK,IAAI,CAAC,GACNQ,YAAY,GACZA,YAAY,GAAIlD,IAAI,CAACsE,GAAG,CAAC5B,KAAK,CAAC,GAAG8D,aAAa,IAAKzD,QAAQ,GAAG,CAAC,CAAC;QACvEK,QAAQ,GAAGZ,OAAO,CAACiE,GAAG,CAACC,MAAM,IAAI;UAC/B,IAAM;YAAEhE,KAAK,EAAEiE;UAAY,CAAC,GAAGD,MAAM;UAErC,OAAOC,WAAW,IAAI,CAAC,GACnBzD,YAAY,GACTlD,IAAI,CAACsE,GAAG,CAACqC,WAAW,CAAC,GAAGH,aAAa,IAAKzD,QAAQ,GAAG,CAAC,CAAC,GAC1DG,YAAY,GACTlD,IAAI,CAACsE,GAAG,CAACqC,WAAW,CAAC,GAAGH,aAAa,IAAKzD,QAAQ,GAAG,CAAC,CAAC;QAChE,CAAC,CAAC;MACJ,CAAC,MAAM,IAAIN,SAAS,KAAK,KAAK,EAAE;QAC9B;QACAO,QAAQ,GACNN,KAAK,IAAI,CAAC,GACNQ,YAAY,GACZA,YAAY,GAAIlD,IAAI,CAACsE,GAAG,CAAC5B,KAAK,CAAC,GAAG8D,aAAa,IAAKzD,QAAQ,GAAG,CAAC,CAAC;QACvEK,QAAQ,GAAGZ,OAAO,CAACiE,GAAG,CAACC,MAAM,IAAI;UAC/B,IAAM;YAAEhE,KAAK,EAAEiE;UAAY,CAAC,GAAGD,MAAM;UAErC,OAAOC,WAAW,IAAI,CAAC,GACnBzD,YAAY,GACTlD,IAAI,CAACsE,GAAG,CAACqC,WAAW,CAAC,GAAGH,aAAa,IAAKzD,QAAQ,GAAG,CAAC,CAAC,GAC1DG,YAAY,GACTlD,IAAI,CAACsE,GAAG,CAACqC,WAAW,CAAC,GAAGH,aAAa,IAAKzD,QAAQ,GAAG,CAAC,CAAC;QAChE,CAAC,CAAC;MACJ;IACF,CAAC,MAAM,IAAIb,IAAI,KAAK,aAAa,EAAE;MACjC,IAAIO,SAAS,KAAK,KAAK,EAAE;QACvB;QACAS,YAAY,GAAG,CAAC;QAChBF,QAAQ,GAAGE,YAAY;QACvBE,QAAQ,GAAGZ,OAAO,CAACiE,GAAG,CAACC,MAAM,IAAI;UAC/B,IAAM;YAAEhE,KAAK,EAAEiE;UAAY,CAAC,GAAGD,MAAM;UAErC,OACExD,YAAY,GAAIlD,IAAI,CAACsE,GAAG,CAACqC,WAAW,CAAC,GAAGH,aAAa,GAAIzD,QAAQ;QAErE,CAAC,CAAC;MACJ,CAAC,MAAM,IAAIN,SAAS,KAAK,KAAK,EAAE;QAC9B;QACAS,YAAY,GAAG+C,WAAW;QAC1BjD,QAAQ,GAAGE,YAAY,GAAIlD,IAAI,CAACsE,GAAG,CAAC5B,KAAK,CAAC,GAAG8D,aAAa,GAAIzD,QAAQ;QACtEK,QAAQ,GAAGZ,OAAO,CAACiE,GAAG,CAACC,MAAM,IAAI;UAC/B,IAAM;YAAEhE,KAAK,EAAEiE;UAAY,CAAC,GAAGD,MAAM;UAErC,OACExD,YAAY,GAAIlD,IAAI,CAACsE,GAAG,CAACqC,WAAW,CAAC,GAAGH,aAAa,GAAIzD,QAAQ;QAErE,CAAC,CAAC;MACJ;IACF;;IAEA;IACA,IAAIN,SAAS,KAAK,KAAK,EAAE;MACvBS,YAAY,IAAIhC,CAAC,GAAGoF,WAAW,GAAGJ,UAAU;MAC5ClD,QAAQ,IAAI9B,CAAC,GAAGoF,WAAW,GAAGJ,UAAU;MACxC9C,QAAQ,GAAGA,QAAQ,CAACqD,GAAG,CACrBzB,OAAO,IAAIA,OAAO,GAAG9D,CAAC,GAAGoF,WAAW,GAAGJ,UACzC,CAAC;MAED,IAAI5D,cAAc,KAAK,QAAQ,IAAItB,SAAS,KAAK,MAAM,EAAE;QACvDkC,YAAY,IAAIkD,iBAAiB,GAAGN,qBAAqB;QACzD9C,QAAQ,IAAIoD,iBAAiB,GAAGN,qBAAqB;QACrD1C,QAAQ,GAAGA,QAAQ,CAACqD,GAAG,CACrBzB,OAAO,IAAIA,OAAO,GAAGoB,iBAAiB,GAAGN,qBAC3C,CAAC;MACH;IACF,CAAC,MAAM,IAAIrD,SAAS,KAAK,KAAK,EAAE;MAC9BS,YAAY,GAAGA,YAAY,GAAGhC,CAAC,GAAGqF,YAAY;MAC9CvD,QAAQ,GAAGA,QAAQ,GAAG9B,CAAC,GAAGqF,YAAY;MACtCnD,QAAQ,GAAGA,QAAQ,CAACqD,GAAG,CAACzB,OAAO,IAAIA,OAAO,GAAG9D,CAAC,GAAGqF,YAAY,CAAC;MAE9D,IAAIjE,cAAc,KAAK,QAAQ,IAAItB,SAAS,KAAK,OAAO,EAAE;QACxDkC,YAAY,GAAGA,YAAY,GAAG4C,qBAAqB,GAAGM,iBAAiB;QACvEpD,QAAQ,GAAGA,QAAQ,GAAG8C,qBAAqB,GAAGM,iBAAiB;QAC/DhD,QAAQ,GAAGA,QAAQ,CAACqD,GAAG,CACrBzB,OAAO,IAAIA,OAAO,GAAGc,qBAAqB,GAAGM,iBAC/C,CAAC;MACH;IACF;IAEAjD,gBAAgB,IAAIjC,CAAC,GAAGgF,UAAU;IAClCW,iBAAiB,IAAI3F,CAAC;IAEtB,OAAO;MACL6B,QAAQ;MACR7B,CAAC,EAAE8B,QAAQ;MACX5B,CAAC;MACD8B,YAAY;MACZC,gBAAgB;MAChB0D,iBAAiB;MACjBxD,eAAe;MACfC,YAAY;MACZF;IACF,CAAC;EACH;AA+BF;AAACpE,eAAA,CA5fKH,mBAAmB,iBACFD,YAAY,CAC/B,CAACQ,KAAa,EAAE0H,MAAgB,KAAqB;EACnD,IAAMC,MAAM,GAAGC,QAAQ,CAACC,aAAa,CAAC,QAAQ,CAAC;EAC/C,IAAMC,GAAG,GAAGH,MAAM,CAACI,UAAU,CAAC,IAAI,CAAC;EACnC,IAAID,GAAG,IAAI,IAAI,EAAE;IACf,MAAM,IAAIvB,KAAK,CAAC,iCAAiC,CAAC;EACpD;EACA,IAAIyB,MAAM,CAACC,KAAK,CAACjI,KAAK,CAAC,EAAE;IACvB,OAAO8H,GAAG,CAACI,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;EAC7C;EACA,IAAM7C,QAAQ,GAAGyC,GAAG,CAACI,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAElI,KAAK,EAAE,CAAC,CAAC;EACzD,IAAMmI,WAAW,GAAGT,MAAM,CAACL,GAAG,CAACtE,KAAK,IAClCzD,cAAc,CAAC8I,iBAAiB,CAAC9I,cAAc,CAAC+I,QAAQ,CAACtF,KAAK,CAAC,CACjE,CAAC;EACD,KAAK,IAAIxC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGP,KAAK,EAAEO,CAAC,IAAI,CAAC,EAAE;IACjC,IAAM+H,SAAS,GAAG/H,CAAC,GAAGP,KAAK;IAC3B,IAAMuI,mBAAmB,GAAG,CAAC,IAAIb,MAAM,CAAClH,MAAM,GAAG,CAAC,CAAC;IACnD,IAAMgI,cAAc,GAAG5H,IAAI,CAAC6H,KAAK,CAACH,SAAS,GAAGC,mBAAmB,CAAC;IAClE,IAAMxF,KAAK,GAAGzD,cAAc,CAACoJ,SAAS,CACpCP,WAAW,CAACK,cAAc,CAAC,EAC3BL,WAAW,CAACK,cAAc,GAAG,CAAC,CAAC,EAC9BF,SAAS,GAAGC,mBAAmB,GAAIA,mBACtC,CAAC;IACDlD,QAAQ,CAACsD,YAAY,CACnBpI,CAAC,GAAGP,KAAK,EACTV,cAAc,CAACsJ,QAAQ,CAACtJ,cAAc,CAACuJ,iBAAiB,CAAC9F,KAAK,CAAC,CACjE,CAAC;EACH;EACA,OAAOsC,QAAQ;AACjB,CAAC,EACD;EACEpF,GAAG,EAAE,IAAI;EACT6I,SAAS,EAAE,IAAI,CAAE;AACnB,CACF,CAAC;AA2dH,eAAerJ,mBAAmB","ignoreList":[]}
|
|
@@ -33,7 +33,10 @@ export interface DataBarOptions {
|
|
|
33
33
|
columnMin: number;
|
|
34
34
|
columnMax: number;
|
|
35
35
|
axis: AxisOption;
|
|
36
|
+
/** The color of the databar. An array of colors produces a gradient. */
|
|
36
37
|
color: GridColor | GridColor[];
|
|
38
|
+
/** The text color of the cell. */
|
|
39
|
+
textColor: GridColor;
|
|
37
40
|
valuePlacement: ValuePlacementOption;
|
|
38
41
|
opacity: number;
|
|
39
42
|
markers: Marker[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataBarGridModel.d.ts","sourceRoot":"","sources":["../src/DataBarGridModel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,IAAI,aAAa,EAAE,MAAM,aAAa,CAAC;AAE9E,MAAM,MAAM,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AACtD,MAAM,MAAM,UAAU,GAAG,cAAc,GAAG,QAAQ,GAAG,aAAa,CAAC;AACnE,MAAM,MAAM,oBAAoB,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;AACjE,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,KAAK,CAAC;AAC5C,2DAA2D;AAC3D,MAAM,MAAM,aAAa,GAAG,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;AACxD;;;GAGG;AACH,MAAM,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,EAAE,SAAS,GAAG,SAAS,EAAE,CAAC,CAAC;AAChE,sEAAsE;AACtE,MAAM,MAAM,iBAAiB,GAAG,GAAG,CAAC,UAAU,EAAE,oBAAoB,CAAC,CAAC;AACtE,uDAAuD;AACvD,MAAM,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AACjD,yDAAyD;AACzD,MAAM,MAAM,YAAY,GAAG,GAAG,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;AAC5D,8DAA8D;AAC9D,MAAM,MAAM,gBAAgB,GAAG,GAAG,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;AAChE,0DAA0D;AAC1D,MAAM,MAAM,SAAS,GAAG,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;AAClD,wDAAwD;AACxD,MAAM,MAAM,WAAW,GAAG,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AAEnD,MAAM,MAAM,MAAM,GAAG,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAE7C,MAAM,MAAM,MAAM,GAAG,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAE7C,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,SAAS,GAAG,SAAS,EAAE,CAAC;IAC/B,cAAc,EAAE,oBAAoB,CAAC;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,eAAe,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,SAAS,GACf,KAAK,IAAI,gBAAgB,CAE3B;AAED,MAAM,WAAW,gBAAiB,SAAQ,SAAS;IACjD,qBAAqB,EAAE,CACrB,MAAM,EAAE,UAAU,EAClB,GAAG,EAAE,UAAU,EACf,KAAK,EAAE,aAAa,KACjB,cAAc,CAAC;CACrB"}
|
|
1
|
+
{"version":3,"file":"DataBarGridModel.d.ts","sourceRoot":"","sources":["../src/DataBarGridModel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,IAAI,aAAa,EAAE,MAAM,aAAa,CAAC;AAE9E,MAAM,MAAM,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AACtD,MAAM,MAAM,UAAU,GAAG,cAAc,GAAG,QAAQ,GAAG,aAAa,CAAC;AACnE,MAAM,MAAM,oBAAoB,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;AACjE,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,KAAK,CAAC;AAC5C,2DAA2D;AAC3D,MAAM,MAAM,aAAa,GAAG,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;AACxD;;;GAGG;AACH,MAAM,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,EAAE,SAAS,GAAG,SAAS,EAAE,CAAC,CAAC;AAChE,sEAAsE;AACtE,MAAM,MAAM,iBAAiB,GAAG,GAAG,CAAC,UAAU,EAAE,oBAAoB,CAAC,CAAC;AACtE,uDAAuD;AACvD,MAAM,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AACjD,yDAAyD;AACzD,MAAM,MAAM,YAAY,GAAG,GAAG,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;AAC5D,8DAA8D;AAC9D,MAAM,MAAM,gBAAgB,GAAG,GAAG,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;AAChE,0DAA0D;AAC1D,MAAM,MAAM,SAAS,GAAG,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;AAClD,wDAAwD;AACxD,MAAM,MAAM,WAAW,GAAG,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AAEnD,MAAM,MAAM,MAAM,GAAG,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAE7C,MAAM,MAAM,MAAM,GAAG,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAE7C,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,UAAU,CAAC;IACjB,wEAAwE;IACxE,KAAK,EAAE,SAAS,GAAG,SAAS,EAAE,CAAC;IAC/B,kCAAkC;IAClC,SAAS,EAAE,SAAS,CAAC;IACrB,cAAc,EAAE,oBAAoB,CAAC;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,eAAe,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,SAAS,GACf,KAAK,IAAI,gBAAgB,CAE3B;AAED,MAAM,WAAW,gBAAiB,SAAQ,SAAS;IACjD,qBAAqB,EAAE,CACrB,MAAM,EAAE,UAAU,EAClB,GAAG,EAAE,UAAU,EACf,KAAK,EAAE,aAAa,KACjB,cAAc,CAAC;CACrB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataBarGridModel.js","names":["isDataBarGridModel","model","dataBarOptionsForCell","undefined"],"sources":["../src/DataBarGridModel.ts"],"sourcesContent":["import { type ModelIndex } from './GridMetrics';\nimport type GridModel from './GridModel';\nimport { type GridColor, type GridTheme as GridThemeType } from './GridTheme';\n\nexport type Marker = { value: number; color: string };\nexport type AxisOption = 'proportional' | 'middle' | 'directional';\nexport type ValuePlacementOption = 'beside' | 'overlap' | 'hide';\nexport type DirectionOption = 'LTR' | 'RTL';\n/** Map from ModelIndex to the axis option of the column */\nexport type ColumnAxisMap = Map<ModelIndex, AxisOption>;\n/** Map from ModelIndex to a color or an array of colors\n * If given an array, then the bar will be a gradient\n * The colors should be given left to right (e.g. it should be like ['yellow', 'green'] for positive color and ['red', 'yellow'] for negative color)\n */\nexport type ColorMap = Map<ModelIndex, GridColor | GridColor[]>;\n/** Map from ModelIndex to the value placement option of the column */\nexport type ValuePlacementMap = Map<ModelIndex, ValuePlacementOption>;\n/** Map from ModelIndex to the opacity of the column */\nexport type OpacityMap = Map<ModelIndex, number>;\n/** Map from ModelIndex to the direction of the column */\nexport type DirectionMap = Map<ModelIndex, DirectionOption>;\n/** Map from ModelIndex to the text alignment of the column */\nexport type TextAlignmentMap = Map<ModelIndex, CanvasTextAlign>;\n/** Map from column to the columns its markers are from */\nexport type MarkerMap = Map<ModelIndex, Marker[]>;\n/** Map from column to whether the bar has a gradient */\nexport type GradientMap = Map<ModelIndex, boolean>;\n// Map from ModelIndex to the minimum number in the column\nexport type MinMap = Map<ModelIndex, number>;\n// Map from ModelIndex to the maximum number in the column\nexport type MaxMap = Map<ModelIndex, number>;\n\nexport interface DataBarOptions {\n columnMin: number;\n columnMax: number;\n axis: AxisOption;\n color: GridColor | GridColor[];\n valuePlacement: ValuePlacementOption;\n opacity: number;\n markers: Marker[];\n direction: DirectionOption;\n value: number;\n}\n\nexport function isDataBarGridModel(\n model: GridModel\n): model is DataBarGridModel {\n return (model as DataBarGridModel)?.dataBarOptionsForCell !== undefined;\n}\n\nexport interface DataBarGridModel extends GridModel {\n dataBarOptionsForCell: (\n column: ModelIndex,\n row: ModelIndex,\n theme: GridThemeType\n ) => DataBarOptions;\n}\n"],"mappings":"AAQA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;
|
|
1
|
+
{"version":3,"file":"DataBarGridModel.js","names":["isDataBarGridModel","model","dataBarOptionsForCell","undefined"],"sources":["../src/DataBarGridModel.ts"],"sourcesContent":["import { type ModelIndex } from './GridMetrics';\nimport type GridModel from './GridModel';\nimport { type GridColor, type GridTheme as GridThemeType } from './GridTheme';\n\nexport type Marker = { value: number; color: string };\nexport type AxisOption = 'proportional' | 'middle' | 'directional';\nexport type ValuePlacementOption = 'beside' | 'overlap' | 'hide';\nexport type DirectionOption = 'LTR' | 'RTL';\n/** Map from ModelIndex to the axis option of the column */\nexport type ColumnAxisMap = Map<ModelIndex, AxisOption>;\n/** Map from ModelIndex to a color or an array of colors\n * If given an array, then the bar will be a gradient\n * The colors should be given left to right (e.g. it should be like ['yellow', 'green'] for positive color and ['red', 'yellow'] for negative color)\n */\nexport type ColorMap = Map<ModelIndex, GridColor | GridColor[]>;\n/** Map from ModelIndex to the value placement option of the column */\nexport type ValuePlacementMap = Map<ModelIndex, ValuePlacementOption>;\n/** Map from ModelIndex to the opacity of the column */\nexport type OpacityMap = Map<ModelIndex, number>;\n/** Map from ModelIndex to the direction of the column */\nexport type DirectionMap = Map<ModelIndex, DirectionOption>;\n/** Map from ModelIndex to the text alignment of the column */\nexport type TextAlignmentMap = Map<ModelIndex, CanvasTextAlign>;\n/** Map from column to the columns its markers are from */\nexport type MarkerMap = Map<ModelIndex, Marker[]>;\n/** Map from column to whether the bar has a gradient */\nexport type GradientMap = Map<ModelIndex, boolean>;\n// Map from ModelIndex to the minimum number in the column\nexport type MinMap = Map<ModelIndex, number>;\n// Map from ModelIndex to the maximum number in the column\nexport type MaxMap = Map<ModelIndex, number>;\n\nexport interface DataBarOptions {\n columnMin: number;\n columnMax: number;\n axis: AxisOption;\n /** The color of the databar. An array of colors produces a gradient. */\n color: GridColor | GridColor[];\n /** The text color of the cell. */\n textColor: GridColor;\n valuePlacement: ValuePlacementOption;\n opacity: number;\n markers: Marker[];\n direction: DirectionOption;\n value: number;\n}\n\nexport function isDataBarGridModel(\n model: GridModel\n): model is DataBarGridModel {\n return (model as DataBarGridModel)?.dataBarOptionsForCell !== undefined;\n}\n\nexport interface DataBarGridModel extends GridModel {\n dataBarOptionsForCell: (\n column: ModelIndex,\n row: ModelIndex,\n theme: GridThemeType\n ) => DataBarOptions;\n}\n"],"mappings":"AAQA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAkBA,OAAO,SAASA,kBAAkBA,CAChCC,KAAgB,EACW;EAC3B,OAAO,CAACA,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAuBC,qBAAqB,MAAKC,SAAS;AACzE","ignoreList":[]}
|
package/dist/Grid.d.ts
CHANGED
|
@@ -225,6 +225,7 @@ declare class Grid extends PureComponent<GridProps, GridState> {
|
|
|
225
225
|
metrics: GridMetrics | null;
|
|
226
226
|
renderState: GridRenderState;
|
|
227
227
|
documentCursor: string | null;
|
|
228
|
+
hasAddedBlockEvents: boolean;
|
|
228
229
|
dragTimer: ReturnType<typeof setTimeout> | null;
|
|
229
230
|
keyHandlers: readonly KeyHandler[];
|
|
230
231
|
mouseHandlers: readonly GridMouseHandler[];
|
package/dist/Grid.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Grid.d.ts","sourceRoot":"","sources":["../src/Grid.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Grid.d.ts","sourceRoot":"","sources":["../src/Grid.tsx"],"names":[],"mappings":"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"}
|
package/dist/Grid.js
CHANGED
|
@@ -94,6 +94,9 @@ class Grid extends PureComponent {
|
|
|
94
94
|
// Note: on document, not body so that cursor styling can be combined with
|
|
95
95
|
// blocked pointer events that would otherwise prevent cursor styling from showing
|
|
96
96
|
_defineProperty(this, "documentCursor", void 0);
|
|
97
|
+
// Track if this Grid instance added the grid-block-events class
|
|
98
|
+
// Used to ensure only the Grid that added the class removes it
|
|
99
|
+
_defineProperty(this, "hasAddedBlockEvents", void 0);
|
|
97
100
|
_defineProperty(this, "dragTimer", void 0);
|
|
98
101
|
_defineProperty(this, "keyHandlers", void 0);
|
|
99
102
|
_defineProperty(this, "mouseHandlers", void 0);
|
|
@@ -140,6 +143,7 @@ class Grid extends PureComponent {
|
|
|
140
143
|
// Note: on document, not body so that cursor styling can be combined with
|
|
141
144
|
// blocked pointer events that would otherwise prevent cursor styling from showing
|
|
142
145
|
this.documentCursor = null;
|
|
146
|
+
this.hasAddedBlockEvents = false;
|
|
143
147
|
this.dragTimer = null;
|
|
144
148
|
|
|
145
149
|
// specify handler ordering, such that any extensions can insert handlers in between
|
|
@@ -1377,13 +1381,19 @@ class Grid extends PureComponent {
|
|
|
1377
1381
|
document.documentElement.classList.add(this.documentCursor);
|
|
1378
1382
|
}
|
|
1379
1383
|
document.documentElement.classList.add('grid-block-events');
|
|
1384
|
+
this.hasAddedBlockEvents = true;
|
|
1380
1385
|
}
|
|
1381
1386
|
removeDocumentCursor() {
|
|
1382
1387
|
if (this.documentCursor != null) {
|
|
1383
1388
|
document.documentElement.classList.remove(this.documentCursor);
|
|
1384
|
-
document.documentElement.classList.remove('grid-block-events');
|
|
1385
1389
|
this.documentCursor = null;
|
|
1386
1390
|
}
|
|
1391
|
+
// Only remove grid-block-events if this Grid instance added it
|
|
1392
|
+
// This prevents one Grid from removing the class on unmount while another Grid is still dragging
|
|
1393
|
+
if (this.hasAddedBlockEvents) {
|
|
1394
|
+
document.documentElement.classList.remove('grid-block-events');
|
|
1395
|
+
this.hasAddedBlockEvents = false;
|
|
1396
|
+
}
|
|
1387
1397
|
}
|
|
1388
1398
|
startDragTimer(event) {
|
|
1389
1399
|
this.stopDragTimer();
|
|
@@ -1583,21 +1593,21 @@ class Grid extends PureComponent {
|
|
|
1583
1593
|
this.stopDragTimer();
|
|
1584
1594
|
}
|
|
1585
1595
|
handleMouseUp(event) {
|
|
1586
|
-
// Ignore
|
|
1596
|
+
// Ignore non-left click while dragging to allow drag to continue
|
|
1587
1597
|
var {
|
|
1588
1598
|
isDragging
|
|
1589
1599
|
} = this.state;
|
|
1590
|
-
if (isDragging && event.button
|
|
1600
|
+
if (isDragging && event.button !== 0) {
|
|
1591
1601
|
return;
|
|
1592
1602
|
}
|
|
1593
1603
|
window.removeEventListener('mousemove', this.handleMouseDrag, true);
|
|
1594
1604
|
window.removeEventListener('mouseup', this.handleMouseUp, true);
|
|
1605
|
+
this.stopDragTimer();
|
|
1606
|
+
this.removeDocumentCursor();
|
|
1595
1607
|
if (event.button != null && event.button !== 0) {
|
|
1596
1608
|
return;
|
|
1597
1609
|
}
|
|
1598
1610
|
this.notifyMouseHandlers('onUp', event, false);
|
|
1599
|
-
this.stopDragTimer();
|
|
1600
|
-
this.removeDocumentCursor();
|
|
1601
1611
|
}
|
|
1602
1612
|
handleResize() {
|
|
1603
1613
|
/**
|