@splunk/react-visualizations 25.7.1 → 25.8.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/Area.js +30 -56
- package/Area.js.map +1 -1
- package/Bar.js +26 -52
- package/Bar.js.map +1 -1
- package/Bubble.js +28 -54
- package/Bubble.js.map +1 -1
- package/Column.js +35 -62
- package/Column.js.map +1 -1
- package/FillerGauge.js +0 -2
- package/FillerGauge.js.map +1 -1
- package/GeoJsonChoropleth.js +89 -451
- package/GeoJsonChoropleth.js.map +1 -1
- package/Line.js +30 -56
- package/Line.js.map +1 -1
- package/MarkerGauge.js +0 -2
- package/MarkerGauge.js.map +1 -1
- package/Pie.js +23 -43
- package/Pie.js.map +1 -1
- package/Punchcard.js +3 -6
- package/Punchcard.js.map +1 -1
- package/Scatter.js +26 -52
- package/Scatter.js.map +1 -1
- package/SingleValue.js +13 -29
- package/SingleValue.js.map +1 -1
- package/SingleValueIcon.js +13 -30
- package/SingleValueIcon.js.map +1 -1
- package/SingleValueRadial.js +134 -182
- package/SingleValueRadial.js.map +1 -1
- package/SvgChoropleth.js +21 -69
- package/SvgChoropleth.js.map +1 -1
- package/SvgChoroplethDynamic.js +2 -11
- package/SvgChoroplethDynamic.js.map +1 -1
- package/common/Charting.js +36 -118
- package/common/Charting.js.map +1 -1
- package/common/ChartingApi.js +5 -15
- package/common/ChartingApi.js.map +1 -1
- package/common/EventsDoc.js +20 -61
- package/common/EventsDoc.js.map +1 -1
- package/common/OptionsDoc.js +5 -11
- package/common/OptionsDoc.js.map +1 -1
- package/common/props.js +0 -3
- package/common/props.js.map +1 -1
- package/package.json +9 -9
- package/utils/numberUtils.js +4 -4
- package/utils/numberUtils.js.map +1 -1
- package/utils/propUtils.js +2 -2
- package/utils/propUtils.js.map +1 -1
- package/utils/seriesUtils.js +0 -1
- package/utils/seriesUtils.js.map +1 -1
package/SingleValueRadial.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///external \"prop-types\"","webpack:///external \"react\"","webpack:///external \"@splunk/visualizations-shared/SanitizeProps\"","webpack:///external \"@babel/runtime/helpers/extends\"","webpack:///external \"@babel/runtime/helpers/defineProperty\"","webpack:///external \"styled-components\"","webpack:///external \"lodash/omit\"","webpack:///external \"lodash/isEmpty\"","webpack:///external \"@splunk/visualizations/common/utils/singleValueUtils\"","webpack:///./src/utils/propUtils.js","webpack:///external \"@splunk/themes/variables\"","webpack:///external \"@splunk/themes/pick\"","webpack:///external \"@splunk/visualizations-shared/colorConstants\"","webpack:///external \"@splunk/ui-utils/i18n\"","webpack:///external \"@splunk/visualizations-shared/Message\"","webpack:///external \"@splunk/visualizations/SingleValueBasic\"","webpack:///external \"lodash/pick\"","webpack:///external \"@splunk/visualizations-shared/style\"","webpack:///external \"@splunk/visualizations-shared/SizeAwareWrapper\"","webpack:///./src/visualizations/SingleValueRadial/src/components/RadialGraph.jsx","webpack:///./src/visualizations/SingleValueRadial/src/utils/displayUtils.js","webpack:///./src/visualizations/SingleValueRadial/src/components/RadialLayout.jsx","webpack:///./src/visualizations/SingleValueRadial/src/components/SingleValueRadial.jsx","webpack:///./src/visualizations/SingleValueRadial/SingleValueRadial.jsx"],"names":["propsConvert","newProps","Object","key","propsMapping","oldProps","propsDeprecate","omit","RadialGraph","progress","size","strokeWidth","backgroundColor","RADIAL_BACKGROUND_COLOR","progressColor","RADIAL_STROKE_COLOR","normalizedSize","normalizedRadius","circumference","Math","bgCircleOffset","progress80","progressWidth","strokeDashoffset","T","string","VALID_TREND_POSITIONS","MAJOR_FONT_THRESHOLD","TREND_FONT_THRESHOLD","DEFAULT_RADIAL_STROKE_WIDTH","SMALL_RADIAL_STROKE_WIDTH","getRadialColors","backgroundEnabled","getGraphColors","defaultColors","customColorFormatter","background","lighten","stroke","darken","getGraphSize","width","height","underLabel","getValueContentSize","graphSize","radialStrokeWidth","diameter","getRadialStrokeWidth","isValidPosition","computeTrendIndicatorPosition","trendIndicatorPosition","majorTextFontSize","trendTextFontSize","position","showTrendPositionStandard","showTrendIndicator","showTrendPositionBelow","showTrendPositionOutside","getRadialProgress","Number","majorValue","PositionDiv","styled","props","Column","Row","Square","UnderLabelContainer","renderIsolateTrend","trendText","trendColor","contentSize","getTrendFontSize","spaceRatio","number","RadialContent","majorColor","majorText","majorValueTitle","trendPosition","unit","unitPosition","underLabelColor","underLabelFontSize","onValueClick","showRadialGraph","radialBackgroundColor","radialStrokeColor","trendComponent","basicSingleValues","radialGraph","underLabelComponent","outsideComponent","belowTrendComponent","textAlign","SingleValueBasic","Container","toDimension","pick","VizStyleWrapper","dataTestKey","SingleValueRadial","style","majorFontSize","majorValueField","trendValue","trendFontSize","numberPrecision","shouldUseThousandSeparators","shouldAbbreviateTrendValue","defaultFontColor","enterprise","dark","variables","light","prisma","defaultBlockFontColor","computeColors","radialColors","handleValueClick","useCallback","handleValueClickCallback","renderVisualization","containerWidth","containerHeight","_","trendDisplay","valueContentSize","getUnderLabelHeight","toRemoveList","value","computeSingleValueContent","contentWidth","contentHeight","smallVizProps","isEmpty","shouldShowTrend","func","withTheme","deltaValue","deltaColor","deltaFontSize","useTrendUnits","useThousandSeparators","deprecatedProps","ReactSingleValueRadial","trendDisplayMode","withSanitizedProps"],"mappings":"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","file":"SingleValueRadial.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 71);\n","module.exports = require(\"prop-types\");","module.exports = require(\"react\");","module.exports = require(\"@splunk/visualizations-shared/SanitizeProps\");","module.exports = require(\"@babel/runtime/helpers/extends\");","module.exports = require(\"@babel/runtime/helpers/defineProperty\");","module.exports = require(\"styled-components\");","module.exports = require(\"lodash/omit\");","module.exports = require(\"lodash/isEmpty\");","module.exports = require(\"@splunk/visualizations/common/utils/singleValueUtils\");","import omit from 'lodash/omit';\n\n/**\n * convert the old props to new props for pure visualization based on propsMapping\n * @param {Object} oldProps props used by react visualizations\n * @param {Object} propsMapping\n * @return {Object} newprops props used by pure visualizations\n */\nexport const propsConvert = (oldProps, propsMapping) => {\n const newProps = {};\n Object.keys(oldProps).forEach(propKey => {\n const key = propsMapping[propKey] || propKey;\n newProps[key] = oldProps[propKey];\n });\n return newProps;\n};\n\n/**\n * omit the deprecated props for pure visualization\n * @param {Object} props props used by react visualizations\n * @param {Array} deprecatedProps\n * @return {Object} newprops props used by pure visualizations\n */\nexport const propsDeprecate = (props, deprecatedProps) => omit(props, deprecatedProps);\n","module.exports = require(\"@splunk/themes/variables\");","module.exports = require(\"@splunk/themes/pick\");","module.exports = require(\"@splunk/visualizations-shared/colorConstants\");","module.exports = require(\"@splunk/ui-utils/i18n\");","module.exports = require(\"@splunk/visualizations-shared/Message\");","module.exports = require(\"@splunk/visualizations/SingleValueBasic\");","module.exports = require(\"lodash/pick\");","module.exports = require(\"@splunk/visualizations-shared/style\");","module.exports = require(\"@splunk/visualizations-shared/SizeAwareWrapper\");","// this is a copy of RadialGraph.jsx @ 23.5.0 before the design changes to PureSingleValueRadial were rolled out\nimport React from 'react';\nimport T from 'prop-types';\nimport { RADIAL_BACKGROUND_COLOR, RADIAL_STROKE_COLOR } from '@splunk/visualizations-shared/colorConstants';\n\nconst RadialGraph = ({\n progress,\n size = 200,\n strokeWidth,\n backgroundColor = RADIAL_BACKGROUND_COLOR,\n progressColor = RADIAL_STROKE_COLOR,\n}) => {\n const normalizedSize = size / 2;\n const normalizedRadius = normalizedSize - strokeWidth * 2;\n const circumference = normalizedRadius * 2 * Math.PI;\n const bgCircleOffset = 0.8 * circumference;\n\n const progress80 = (progress / 100) * 80;\n\n const progressWidth = (progress80 / 100) * circumference;\n\n // Offset the start of the circle to a position that makes the arc look evenly spaced\n // with the opening at the bottom\n // We use 80% of a circle (288deg), half on each side of \"0\" (144deg)\n // SVG starts drawing (0deg) at the 3 o'clock position, so add another 90 to offset this (234deg)\n // This means the arc length that we offset is 2 * PI * r * 234/360 or ...\n const strokeDashoffset = circumference * 0.65;\n\n return (\n <svg height={normalizedSize * 2} width={normalizedSize * 2}>\n <g>\n <circle\n data-test=\"background-radial\"\n stroke={backgroundColor}\n fill=\"transparent\"\n strokeWidth={strokeWidth}\n strokeDasharray={`${bgCircleOffset} ${circumference - bgCircleOffset}`}\n style={{ strokeDashoffset }}\n r={normalizedRadius}\n cx={normalizedSize}\n cy={normalizedSize}\n />\n <circle\n data-test=\"progress-radial\"\n stroke={progressColor}\n fill=\"transparent\"\n strokeWidth={strokeWidth}\n strokeDasharray={`${progressWidth} ${circumference - progressWidth}`}\n style={{ strokeDashoffset }}\n r={normalizedRadius}\n cx={normalizedSize}\n cy={normalizedSize}\n />\n </g>\n </svg>\n );\n};\n\nRadialGraph.propTypes = {\n progress: T.number,\n size: T.number,\n strokeWidth: T.number,\n backgroundColor: T.string,\n progressColor: T.string,\n};\n\nRadialGraph.defaultProps = {\n progress: 0,\n strokeWidth: 12,\n};\n\nexport default RadialGraph;\n","// this is a copy of displayUtils.js @ 23.5.0 before the design changes to PureSingleValueRadial were rolled out\nimport { RADIAL_SEVERITY_COLORS } from '@splunk/visualizations-shared/colorConstants';\nimport {\n DEFAULT_FONT,\n getGraphColors,\n lighten,\n darken,\n} from '@splunk/visualizations/common/utils/singleValueUtils';\n\nexport const VALID_TREND_POSITIONS = ['standard', 'below', 'outside'];\nexport const MAJOR_FONT_THRESHOLD = 25;\nexport const TREND_FONT_THRESHOLD = 12;\nexport const DEFAULT_RADIAL_STROKE_WIDTH = 12;\nexport const SMALL_RADIAL_STROKE_WIDTH = 6;\n\n/**\n * Get the colors for a radial graph based on severity\n * @method getRadialColors\n * @param {Object} props\n * @param {Bool} props.backgroundEnabled\n * @param {String} props.backgroundColor\n * @returns {Object} { background, stroke } colors\n */\nexport const getRadialColors = ({ backgroundEnabled, backgroundColor }) =>\n getGraphColors({\n backgroundEnabled,\n backgroundColor,\n defaultColors: RADIAL_SEVERITY_COLORS,\n customColorFormatter: color => ({ background: lighten(color), stroke: darken(color) }),\n });\n\n/**\n * Figure out the diameter of the graph\n * @method getGraphSize\n * @param {Object} props\n * @param {Number} props.width // Width of the container\n * @param {Number} props.height // Height of the container\n * @param {Number} props.underLabel // Underlabel if present\n * @returns {Number} diameter of the graph\n */\nexport const getGraphSize = ({ width, height, underLabel }) => {\n let size = Math.min(width, height);\n\n if (underLabel) {\n size -= DEFAULT_FONT;\n }\n\n return size;\n};\n\n/**\n * Get the maximum size of the container that holds the graph text\n * @method getValueContentSize\n * @param {Object} props\n * @param {Number} props.graphSize\n * @param {Number} props.radialStrokeWidth // Stroke width of the graph\n * @returns {Number} content size for showing major and trend values in radial graph\n */\nexport const getValueContentSize = ({ graphSize, radialStrokeWidth }) => {\n // Account for the graph's stroke width\n const diameter = graphSize - radialStrokeWidth;\n // Use pythagoreum theorum with circle diameter\n // to calculate the size of the sides of the square inside the circle\n return Math.floor(Math.sqrt(diameter ** 2 / 2));\n};\n\n/*\n * @method getRadialStrokeWidth\n * @param {Number} graphSize\n * @returns {Number} radial stroke width\n */\nexport const getRadialStrokeWidth = graphSize =>\n graphSize >= 90 ? DEFAULT_RADIAL_STROKE_WIDTH : SMALL_RADIAL_STROKE_WIDTH;\n\n/*\n * @method isValidPosition\n * @param {String} position\n * @returns {Bool}\n */\nexport const isValidPosition = position => VALID_TREND_POSITIONS.indexOf(position) > -1;\n\n/**\n * Compute the trend indicator position based on font size of major and trend value\n * @method computeTrendIndicatorPosition\n * @param {Object} props\n * @param {String} props.trendIndicatorPosition\n * @param {Number} props.majorTextFontSize\n * @param {Number} props.trendTextFontSize\n * @returns {String} trend indicator position in radial graph\n */\nexport const computeTrendIndicatorPosition = ({\n trendIndicatorPosition,\n majorTextFontSize,\n trendTextFontSize,\n}) => {\n let position = trendIndicatorPosition;\n\n if (!isValidPosition(position)) {\n position = 'standard';\n }\n\n if (\n position !== 'outside' &&\n (trendTextFontSize < TREND_FONT_THRESHOLD || majorTextFontSize < MAJOR_FONT_THRESHOLD)\n ) {\n position = 'below';\n }\n return position;\n};\n\n/*\n * @method showTrendPositionStandard\n * @param {Object} props\n * @param {Bool} props.showTrendIndicator\n * @param {String} props.position\n * @returns {Bool}\n */\nexport const showTrendPositionStandard = ({ showTrendIndicator, position }) =>\n showTrendIndicator && position === 'standard';\n\n/*\n * @method showTrendPositionBelow\n * @param {Object} props\n * @param {Bool} props.showTrendIndicator\n * @param {String} props.position\n * @returns {Bool}\n */\nexport const showTrendPositionBelow = ({ showTrendIndicator, position }) =>\n showTrendIndicator && position === 'below';\n\n/*\n * @method showTrendPositionOutside\n * @param {Object} props\n * @param {Bool} props.showTrendIndicator\n * @param {String} props.position\n * @returns {Bool}\n */\nexport const showTrendPositionOutside = ({ showTrendIndicator, position }) =>\n showTrendIndicator && position === 'outside';\n\n/*\n * todo: need handle max and min\n * @method getRadialProgress\n * @param {Number} majorValue\n * @returns {Number} progress bar in radial graph\n */\nexport const getRadialProgress = majorValue =>\n Number.isNaN(Number(majorValue)) ? 0 : (majorValue / Math.max(majorValue, 100)) * 100;\n","// this is a copy of RadialLayout.jsx @ 23.5.0 before the design changes to PureSingleValueRadial were rolled out\nimport React from 'react';\nimport T from 'prop-types';\nimport styled from 'styled-components';\nimport SingleValueBasic, { SingleValueTrendValue } from '@splunk/visualizations/SingleValueBasic';\nimport { getTrendFontSize } from '@splunk/visualizations/common/utils/singleValueUtils';\nimport RadialGraph from './RadialGraph';\nimport {\n showTrendPositionStandard,\n showTrendPositionBelow,\n showTrendPositionOutside,\n} from '../utils/displayUtils';\n\nconst PositionDiv = styled.div`\n position: absolute;\n ${props => (props.bottom ? '' : 'top: 0')};\n bottom: ${props => props.bottom || 0}px;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: ${props => props.align || 'center'};\n justify-content: center;\n`;\n\nconst Column = styled.div`\n display: flex;\n flex-direction: column;\n align-items: ${props => props.align || 'center'};\n justify-content: ${props => props.align || 'center'};\n`;\nconst Row = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n`;\n\nconst Square = styled.div`\n position: relative;\n margin: 0 auto;\n width: ${props => props.size}px;\n height: ${props => props.size}px;\n`;\n\nconst UnderLabelContainer = styled.div`\n color: ${props => props.color};\n margin-top: ${props => (props.size && `-${props.size * 0.1}px`) || 0};\n font-size: ${props => props.size || 12}px;\n`;\n\n/**\n * Render the trend indicator\n * @method renderTrendValue\n * @returns {Object}\n * @private\n */\n\nconst renderIsolateTrend = ({ trendText, trendColor, contentSize }) => {\n const trendTextFontSize = getTrendFontSize({\n width: contentSize / 2,\n height: contentSize / 4,\n trendText,\n spaceRatio: 1,\n });\n\n return (\n <SingleValueTrendValue\n fontSize={trendTextFontSize}\n color={trendColor}\n value={trendText}\n text={trendText}\n />\n );\n};\n\nrenderIsolateTrend.propTypes = {\n trendText: T.string,\n trendColor: T.string,\n contentSize: T.number,\n};\n\nconst RadialContent = ({ ...props }) => {\n const {\n majorColor,\n majorText,\n majorTextFontSize,\n majorValueTitle,\n trendColor,\n trendText,\n trendTextFontSize,\n showTrendIndicator,\n trendPosition,\n unit,\n unitPosition,\n underLabelColor,\n underLabelFontSize,\n underLabel,\n onValueClick,\n contentSize,\n showRadialGraph,\n graphSize,\n progress,\n radialBackgroundColor,\n radialStrokeColor,\n radialStrokeWidth,\n } = props;\n\n // for trend position below and outside\n const trendComponent = renderIsolateTrend({ trendText, trendColor, contentSize });\n\n const basicSingleValues = (\n <SingleValueBasic\n majorColor={majorColor}\n majorText={majorText}\n majorTextFontSize={majorTextFontSize}\n majorValueTitle={majorValueTitle}\n trendColor={trendColor}\n trendText={trendText}\n trendTextFontSize={trendTextFontSize}\n showTrendIndicator={showTrendPositionStandard({ showTrendIndicator, position: trendPosition })}\n unit={unit}\n unitPosition={unitPosition}\n onValueClick={onValueClick}\n />\n );\n const radialGraph = showRadialGraph ? (\n <RadialGraph\n size={graphSize}\n progress={progress}\n backgroundColor={radialBackgroundColor}\n progressColor={radialStrokeColor}\n strokeWidth={radialStrokeWidth}\n />\n ) : null;\n\n const underLabelComponent = underLabel ? (\n <UnderLabelContainer data-test=\"underLabel\" color={underLabelColor} size={underLabelFontSize}>\n {underLabel}\n </UnderLabelContainer>\n ) : null;\n\n const outsideComponent = showTrendPositionOutside({ showTrendIndicator, position: trendPosition }) ? (\n <Column align=\"end\" data-test=\"trend-position-outside\">\n {trendComponent}\n {underLabelComponent}\n </Column>\n ) : null;\n\n const belowTrendComponent = showTrendPositionBelow({ showTrendIndicator, position: trendPosition }) ? (\n <PositionDiv\n data-test=\"trend-position-below\"\n align=\"flex-end\"\n bottom={graphSize * 0.1}\n style={{ textAlign: 'center' }}\n >\n {trendComponent}\n </PositionDiv>\n ) : null;\n\n return (\n <Row>\n <Column>\n <Square size={graphSize}>\n {radialGraph}\n {belowTrendComponent}\n <PositionDiv>{basicSingleValues}</PositionDiv>\n </Square>\n {trendPosition !== 'outside' && underLabelComponent}\n </Column>\n {outsideComponent}\n </Row>\n );\n};\n\nRadialContent.propTypes = {\n ...SingleValueBasic.propTypes,\n trendPosition: T.string,\n contentSize: T.number,\n showRadialGraph: T.bool,\n graphSize: T.number,\n progress: T.number,\n radialBackgroundColor: T.string,\n radialStrokeColor: T.string,\n radialStrokeWidth: T.number,\n};\n\nexport default RadialContent;\n","// this is a copy of SingleValueRadial.jsx @ 23.5.0 before the design changes to PureSingleValueRadial were rolled out\nimport React, { useCallback } from 'react';\nimport T from 'prop-types';\nimport pickFromTheme from '@splunk/themes/pick';\nimport variables from '@splunk/themes/variables';\nimport styled, { withTheme } from 'styled-components';\nimport pick from 'lodash/pick';\nimport isEmpty from 'lodash/isEmpty';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport { toDimension } from '@splunk/visualizations-shared/style';\nimport SizeAwareWrapper from '@splunk/visualizations-shared/SizeAwareWrapper';\nimport Message from '@splunk/visualizations-shared/Message';\nimport {\n computeColors,\n computeSingleValueContent,\n getUnderLabelHeight,\n shouldShowTrend,\n handleValueClickCallback,\n} from '@splunk/visualizations/common/utils/singleValueUtils';\nimport RadialLayout from './RadialLayout';\nimport {\n getGraphSize,\n getValueContentSize,\n getRadialProgress,\n getRadialStrokeWidth,\n computeTrendIndicatorPosition,\n getRadialColors,\n} from '../utils/displayUtils';\n\nconst Container = styled.div`\n overflow: hidden;\n ${props => toDimension(pick(props, ['width', 'height']))};\n`;\n\nconst VizStyleWrapper = styled.div.attrs(({ dataTestKey }) => ({\n 'data-test': dataTestKey,\n}))`\n display: flex;\n justify-content: center;\n flex-direction: column;\n width: 100%;\n height: 100%;\n background-color: ${props => props.backgroundColor};\n`;\n\nVizStyleWrapper.displayName = 'VizStyleWrapper';\n\nconst SingleValueRadial = ({ ...props }) => {\n const {\n width,\n height = 250,\n style,\n majorFontSize,\n majorValue,\n majorValueField,\n trendValue,\n trendFontSize,\n unitPosition,\n numberPrecision,\n shouldUseThousandSeparators,\n shouldAbbreviateTrendValue,\n trendIndicatorPosition = 'standard',\n onValueClick,\n } = props;\n\n // calculate colors\n const defaultColors = {\n defaultFontColor: pickFromTheme({\n enterprise: {\n dark: variables.textColor(props),\n light: variables.gray20(props),\n },\n prisma: variables.contentColorActive(props),\n })(props),\n defaultBlockFontColor: pickFromTheme({\n enterprise: variables.white(props),\n prisma: variables.contentColorActive(props),\n })(props),\n };\n const { backgroundEnabled, backgroundColor, majorColor, trendColor, underLabelColor } = computeColors(\n props,\n defaultColors\n );\n\n const radialColors = getRadialColors({ backgroundEnabled, backgroundColor });\n const radialBackgroundColor = props.radialBackgroundColor || radialColors.background;\n const radialStrokeColor = props.radialStrokeColor || radialColors.stroke;\n\n const handleValueClick = useCallback(\n ev => handleValueClickCallback(ev, majorValue, majorValueField, trendValue, onValueClick),\n [onValueClick, majorValue, majorValueField, trendValue]\n );\n\n const renderVisualization = ({ width: containerWidth, height: containerHeight }) => {\n if (containerWidth < 35 || containerHeight < 35) {\n return (\n <Message\n width={containerWidth}\n height={containerHeight}\n message={_('Too small to render content')}\n level=\"info\"\n />\n );\n }\n\n // will update later based on text size\n let { trendDisplay, unit, underLabel } = props;\n let showRadialGraph = true;\n\n // calculate radial graph, major and trend content, and underlabel size\n const graphSize = getGraphSize({ width: containerWidth, height: containerHeight, underLabel });\n const radialStrokeWidth = getRadialStrokeWidth(graphSize);\n const valueContentSize = getValueContentSize({ graphSize, radialStrokeWidth });\n const underLabelFontSize = getUnderLabelHeight(graphSize * 0.1);\n\n // calculate major and trend text\n const toRemoveList = [\n { key: 'underLabel', value: '' },\n { key: 'showRadialGraph', value: false },\n { key: 'trendDisplay', value: 'off' },\n { key: 'unit', value: '' },\n ];\n const {\n majorText,\n trendText,\n majorTextFontSize,\n trendTextFontSize,\n majorValueTitle,\n smallVizProps,\n } = computeSingleValueContent({\n majorValue,\n trendValue,\n majorFontSize,\n trendFontSize,\n trendDisplay,\n contentWidth: valueContentSize,\n contentHeight: valueContentSize,\n containerWidth,\n containerHeight,\n unit,\n numberPrecision,\n shouldUseThousandSeparators,\n shouldAbbreviateTrendValue,\n toRemoveList,\n });\n if (!isEmpty(smallVizProps)) {\n ({ underLabel, showRadialGraph, trendDisplay, unit } = smallVizProps);\n }\n\n // calculate trend position\n const position = computeTrendIndicatorPosition({\n trendIndicatorPosition,\n majorTextFontSize,\n trendTextFontSize,\n });\n\n // calculate radial\n const progress = getRadialProgress(majorValue);\n\n return (\n <VizStyleWrapper\n backgroundColor={backgroundColor}\n style={style}\n dataTestKey=\"SingleValueRadialWrapper\"\n >\n <RadialLayout\n data-test=\"RadialLayout\"\n majorColor={majorColor}\n majorText={majorText}\n majorTextFontSize={majorTextFontSize}\n majorValueTitle={majorValueTitle}\n trendColor={trendColor}\n trendText={trendText}\n trendTextFontSize={trendTextFontSize}\n showTrendIndicator={shouldShowTrend(trendDisplay)}\n trendPosition={position}\n unit={unit}\n unitPosition={unitPosition}\n underLabelColor={underLabelColor}\n underLabelFontSize={underLabelFontSize}\n underLabel={underLabel}\n onValueClick={handleValueClick}\n contentSize={valueContentSize * 0.7}\n showRadialGraph={showRadialGraph}\n graphSize={graphSize}\n progress={progress}\n radialBackgroundColor={radialBackgroundColor}\n radialStrokeColor={radialStrokeColor}\n radialStrokeWidth={radialStrokeWidth}\n />\n </VizStyleWrapper>\n );\n };\n\n return (\n <Container width={width} height={height}>\n <SizeAwareWrapper>\n {containerDimension => renderVisualization(containerDimension)}\n </SizeAwareWrapper>\n </Container>\n );\n};\n\nSingleValueRadial.propTypes = {\n width: T.oneOfType([T.string, T.number]),\n height: T.oneOfType([T.string, T.number]),\n style: T.object,\n majorValue: T.oneOfType([T.string, T.number]),\n majorValueField: T.string,\n majorColor: T.string,\n majorFontSize: T.number,\n trendValue: T.oneOfType([T.string, T.number]),\n trendColor: T.string,\n trendFontSize: T.number,\n trendDisplay: T.string,\n trendIndicatorPosition: T.oneOf(['standard', 'below', 'outside']),\n shouldAbbreviateTrendValue: T.bool,\n backgroundColor: T.string,\n unit: T.string,\n unitPosition: T.string,\n underLabel: T.string,\n numberPrecision: T.number,\n shouldUseThousandSeparators: T.bool,\n radialBackgroundColor: T.string,\n radialStrokeColor: T.string,\n onValueClick: T.func,\n};\n\nSingleValueRadial.defaultProps = {\n width: '100%',\n height: 250,\n majorValue: 'N/A',\n majorValueField: '',\n trendDisplay: 'absolute',\n trendIndicatorPosition: 'standard',\n shouldAbbreviateTrendValue: false,\n unitPosition: 'after',\n numberPrecision: 0,\n shouldUseThousandSeparators: true,\n onValueClick: () => {},\n};\n\nexport default withTheme(SingleValueRadial);\n","import React from 'react';\nimport T from 'prop-types';\nimport { withSanitizedProps } from '@splunk/visualizations-shared/SanitizeProps';\nimport PureSingleValueRadial from './src/components/SingleValueRadial';\nimport { propsConvert, propsDeprecate } from '../../utils/propUtils';\n\n// This propsMapping is for React SingleValue to use PureSingleValue.\nconst propsMapping = {\n value: 'majorValue',\n deltaValue: 'trendValue',\n deltaColor: 'trendColor',\n deltaFontSize: 'trendFontSize',\n useTrendUnits: 'shouldAbbreviateTrendValue',\n useThousandSeparators: 'shouldUseThousandSeparators',\n};\n\nconst deprecatedProps = ['showTrendIndicator', 'trendDisplayMode'];\n\nconst ReactSingleValueRadial = ({ ...props }) => {\n let newProps = propsConvert(props, propsMapping);\n // change props\n const trendDisplay = newProps.showTrendIndicator ? newProps.trendDisplayMode : 'off';\n newProps = {\n ...propsDeprecate(newProps, deprecatedProps),\n trendDisplay,\n };\n return <PureSingleValueRadial {...newProps} />;\n};\n\nReactSingleValueRadial.propTypes = {\n width: T.oneOfType([T.string, T.number]),\n height: T.oneOfType([T.string, T.number]),\n style: T.object,\n value: T.oneOfType([T.string, T.number]),\n majorColor: T.string,\n majorFontSize: T.number,\n deltaValue: T.oneOfType([T.string, T.number]),\n deltaColor: T.string,\n deltaFontSize: T.number,\n trendDisplayMode: T.string,\n trendIndicatorPosition: T.oneOf(['standard', 'below', 'outside']),\n useTrendUnits: T.bool,\n showTrendIndicator: T.bool,\n backgroundColor: T.string,\n unit: T.string,\n unitPosition: T.string,\n underLabel: T.string,\n numberPrecision: T.number,\n useThousandSeparators: T.bool,\n radialBackgroundColor: T.string,\n radialStrokeColor: T.string,\n onValueClick: T.func,\n};\n\nReactSingleValueRadial.defaultProps = {\n width: '100%',\n height: 250,\n trendDisplayMode: 'absolute',\n trendIndicatorPosition: 'standard',\n useTrendUnits: false,\n showTrendIndicator: true,\n unitPosition: 'after',\n numberPrecision: 0,\n useThousandSeparators: true,\n onValueClick: () => {},\n};\n\nexport default withSanitizedProps(ReactSingleValueRadial);\n"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///external \"prop-types\"","webpack:///external \"react\"","webpack:///external \"@splunk/visualizations-shared/SanitizeProps\"","webpack:///external \"@babel/runtime/helpers/extends\"","webpack:///external \"@babel/runtime/helpers/defineProperty\"","webpack:///external \"styled-components\"","webpack:///external \"lodash/omit\"","webpack:///external \"lodash/isEmpty\"","webpack:///external \"@splunk/visualizations/common/utils/singleValueUtils\"","webpack:///./src/utils/propUtils.js","webpack:///external \"@splunk/themes/variables\"","webpack:///external \"@splunk/themes/pick\"","webpack:///external \"@splunk/visualizations-shared/colorConstants\"","webpack:///external \"@splunk/ui-utils/i18n\"","webpack:///external \"@splunk/visualizations-shared/Message\"","webpack:///external \"@splunk/visualizations/SingleValueBasic\"","webpack:///external \"lodash/pick\"","webpack:///external \"@splunk/visualizations-shared/style\"","webpack:///external \"@splunk/visualizations-shared/SizeAwareWrapper\"","webpack:///./src/visualizations/SingleValueRadial/src/components/RadialGraph.jsx","webpack:///./src/visualizations/SingleValueRadial/src/utils/displayUtils.js","webpack:///./src/visualizations/SingleValueRadial/src/components/RadialLayout.jsx","webpack:///./src/visualizations/SingleValueRadial/src/components/SingleValueRadial.jsx","webpack:///./src/visualizations/SingleValueRadial/SingleValueRadial.jsx"],"names":["propsConvert","oldProps","propsMapping","newProps","Object","keys","forEach","propKey","key","propsDeprecate","props","deprecatedProps","omit","RadialGraph","_ref","progress","_ref$size","size","strokeWidth","_ref$backgroundColor","backgroundColor","RADIAL_BACKGROUND_COLOR","_ref$progressColor","progressColor","RADIAL_STROKE_COLOR","normalizedSize","normalizedRadius","circumference","Math","PI","bgCircleOffset","progress80","progressWidth","strokeDashoffset","React","createElement","height","width","stroke","fill","strokeDasharray","concat","style","r","cx","cy","propTypes","T","number","string","defaultProps","VALID_TREND_POSITIONS","MAJOR_FONT_THRESHOLD","TREND_FONT_THRESHOLD","DEFAULT_RADIAL_STROKE_WIDTH","SMALL_RADIAL_STROKE_WIDTH","getRadialColors","backgroundEnabled","getGraphColors","defaultColors","RADIAL_SEVERITY_COLORS","customColorFormatter","color","background","lighten","darken","getGraphSize","_ref2","underLabel","min","DEFAULT_FONT","getValueContentSize","_ref3","graphSize","radialStrokeWidth","diameter","floor","sqrt","pow","getRadialStrokeWidth","isValidPosition","position","indexOf","computeTrendIndicatorPosition","_ref4","trendIndicatorPosition","majorTextFontSize","trendTextFontSize","showTrendPositionStandard","_ref5","showTrendIndicator","showTrendPositionBelow","_ref6","showTrendPositionOutside","_ref7","getRadialProgress","majorValue","Number","isNaN","max","PositionDiv","styled","div","withConfig","displayName","componentId","bottom","align","Column","Row","Square","UnderLabelContainer","renderIsolateTrend","trendText","trendColor","contentSize","getTrendFontSize","spaceRatio","SingleValueTrendValue","fontSize","value","text","RadialContent","_extends","majorColor","majorText","majorValueTitle","trendPosition","unit","unitPosition","underLabelColor","underLabelFontSize","onValueClick","showRadialGraph","radialBackgroundColor","radialStrokeColor","trendComponent","basicSingleValues","SingleValueBasic","radialGraph","underLabelComponent","outsideComponent","belowTrendComponent","textAlign","_objectSpread","bool","Container","toDimension","pick","VizStyleWrapper","attrs","dataTestKey","SingleValueRadial","_props$height","majorFontSize","majorValueField","trendValue","trendFontSize","numberPrecision","shouldUseThousandSeparators","shouldAbbreviateTrendValue","_props$trendIndicator","defaultFontColor","pickFromTheme","enterprise","dark","variables","textColor","light","gray20","prisma","contentColorActive","defaultBlockFontColor","white","_computeColors","computeColors","radialColors","handleValueClick","useCallback","ev","handleValueClickCallback","renderVisualization","containerWidth","containerHeight","Message","message","_","level","trendDisplay","valueContentSize","getUnderLabelHeight","toRemoveList","_computeSingleValueCo","computeSingleValueContent","contentWidth","contentHeight","smallVizProps","isEmpty","RadialLayout","shouldShowTrend","SizeAwareWrapper","containerDimension","oneOfType","object","oneOf","func","withTheme","deltaValue","deltaColor","deltaFontSize","useTrendUnits","useThousandSeparators","ReactSingleValueRadial","trendDisplayMode","PureSingleValueRadial","withSanitizedProps"],"mappings":"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","file":"SingleValueRadial.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 71);\n","module.exports = require(\"prop-types\");","module.exports = require(\"react\");","module.exports = require(\"@splunk/visualizations-shared/SanitizeProps\");","module.exports = require(\"@babel/runtime/helpers/extends\");","module.exports = require(\"@babel/runtime/helpers/defineProperty\");","module.exports = require(\"styled-components\");","module.exports = require(\"lodash/omit\");","module.exports = require(\"lodash/isEmpty\");","module.exports = require(\"@splunk/visualizations/common/utils/singleValueUtils\");","import omit from 'lodash/omit';\n\n/**\n * convert the old props to new props for pure visualization based on propsMapping\n * @param {Object} oldProps props used by react visualizations\n * @param {Object} propsMapping\n * @return {Object} newprops props used by pure visualizations\n */\nexport const propsConvert = (oldProps, propsMapping) => {\n const newProps = {};\n Object.keys(oldProps).forEach(propKey => {\n const key = propsMapping[propKey] || propKey;\n newProps[key] = oldProps[propKey];\n });\n return newProps;\n};\n\n/**\n * omit the deprecated props for pure visualization\n * @param {Object} props props used by react visualizations\n * @param {Array} deprecatedProps\n * @return {Object} newprops props used by pure visualizations\n */\nexport const propsDeprecate = (props, deprecatedProps) => omit(props, deprecatedProps);\n","module.exports = require(\"@splunk/themes/variables\");","module.exports = require(\"@splunk/themes/pick\");","module.exports = require(\"@splunk/visualizations-shared/colorConstants\");","module.exports = require(\"@splunk/ui-utils/i18n\");","module.exports = require(\"@splunk/visualizations-shared/Message\");","module.exports = require(\"@splunk/visualizations/SingleValueBasic\");","module.exports = require(\"lodash/pick\");","module.exports = require(\"@splunk/visualizations-shared/style\");","module.exports = require(\"@splunk/visualizations-shared/SizeAwareWrapper\");","// this is a copy of RadialGraph.jsx @ 23.5.0 before the design changes to PureSingleValueRadial were rolled out\nimport React from 'react';\nimport T from 'prop-types';\nimport { RADIAL_BACKGROUND_COLOR, RADIAL_STROKE_COLOR } from '@splunk/visualizations-shared/colorConstants';\n\nconst RadialGraph = ({\n progress,\n size = 200,\n strokeWidth,\n backgroundColor = RADIAL_BACKGROUND_COLOR,\n progressColor = RADIAL_STROKE_COLOR,\n}) => {\n const normalizedSize = size / 2;\n const normalizedRadius = normalizedSize - strokeWidth * 2;\n const circumference = normalizedRadius * 2 * Math.PI;\n const bgCircleOffset = 0.8 * circumference;\n\n const progress80 = (progress / 100) * 80;\n\n const progressWidth = (progress80 / 100) * circumference;\n\n // Offset the start of the circle to a position that makes the arc look evenly spaced\n // with the opening at the bottom\n // We use 80% of a circle (288deg), half on each side of \"0\" (144deg)\n // SVG starts drawing (0deg) at the 3 o'clock position, so add another 90 to offset this (234deg)\n // This means the arc length that we offset is 2 * PI * r * 234/360 or ...\n const strokeDashoffset = circumference * 0.65;\n\n return (\n <svg height={normalizedSize * 2} width={normalizedSize * 2}>\n <g>\n <circle\n data-test=\"background-radial\"\n stroke={backgroundColor}\n fill=\"transparent\"\n strokeWidth={strokeWidth}\n strokeDasharray={`${bgCircleOffset} ${circumference - bgCircleOffset}`}\n style={{ strokeDashoffset }}\n r={normalizedRadius}\n cx={normalizedSize}\n cy={normalizedSize}\n />\n <circle\n data-test=\"progress-radial\"\n stroke={progressColor}\n fill=\"transparent\"\n strokeWidth={strokeWidth}\n strokeDasharray={`${progressWidth} ${circumference - progressWidth}`}\n style={{ strokeDashoffset }}\n r={normalizedRadius}\n cx={normalizedSize}\n cy={normalizedSize}\n />\n </g>\n </svg>\n );\n};\n\nRadialGraph.propTypes = {\n progress: T.number,\n size: T.number,\n strokeWidth: T.number,\n backgroundColor: T.string,\n progressColor: T.string,\n};\n\nRadialGraph.defaultProps = {\n progress: 0,\n strokeWidth: 12,\n};\n\nexport default RadialGraph;\n","// this is a copy of displayUtils.js @ 23.5.0 before the design changes to PureSingleValueRadial were rolled out\nimport { RADIAL_SEVERITY_COLORS } from '@splunk/visualizations-shared/colorConstants';\nimport {\n DEFAULT_FONT,\n getGraphColors,\n lighten,\n darken,\n} from '@splunk/visualizations/common/utils/singleValueUtils';\n\nexport const VALID_TREND_POSITIONS = ['standard', 'below', 'outside'];\nexport const MAJOR_FONT_THRESHOLD = 25;\nexport const TREND_FONT_THRESHOLD = 12;\nexport const DEFAULT_RADIAL_STROKE_WIDTH = 12;\nexport const SMALL_RADIAL_STROKE_WIDTH = 6;\n\n/**\n * Get the colors for a radial graph based on severity\n * @method getRadialColors\n * @param {Object} props\n * @param {Bool} props.backgroundEnabled\n * @param {String} props.backgroundColor\n * @returns {Object} { background, stroke } colors\n */\nexport const getRadialColors = ({ backgroundEnabled, backgroundColor }) =>\n getGraphColors({\n backgroundEnabled,\n backgroundColor,\n defaultColors: RADIAL_SEVERITY_COLORS,\n customColorFormatter: color => ({ background: lighten(color), stroke: darken(color) }),\n });\n\n/**\n * Figure out the diameter of the graph\n * @method getGraphSize\n * @param {Object} props\n * @param {Number} props.width // Width of the container\n * @param {Number} props.height // Height of the container\n * @param {Number} props.underLabel // Underlabel if present\n * @returns {Number} diameter of the graph\n */\nexport const getGraphSize = ({ width, height, underLabel }) => {\n let size = Math.min(width, height);\n\n if (underLabel) {\n size -= DEFAULT_FONT;\n }\n\n return size;\n};\n\n/**\n * Get the maximum size of the container that holds the graph text\n * @method getValueContentSize\n * @param {Object} props\n * @param {Number} props.graphSize\n * @param {Number} props.radialStrokeWidth // Stroke width of the graph\n * @returns {Number} content size for showing major and trend values in radial graph\n */\nexport const getValueContentSize = ({ graphSize, radialStrokeWidth }) => {\n // Account for the graph's stroke width\n const diameter = graphSize - radialStrokeWidth;\n // Use pythagoreum theorum with circle diameter\n // to calculate the size of the sides of the square inside the circle\n return Math.floor(Math.sqrt(diameter ** 2 / 2));\n};\n\n/*\n * @method getRadialStrokeWidth\n * @param {Number} graphSize\n * @returns {Number} radial stroke width\n */\nexport const getRadialStrokeWidth = graphSize =>\n graphSize >= 90 ? DEFAULT_RADIAL_STROKE_WIDTH : SMALL_RADIAL_STROKE_WIDTH;\n\n/*\n * @method isValidPosition\n * @param {String} position\n * @returns {Bool}\n */\nexport const isValidPosition = position => VALID_TREND_POSITIONS.indexOf(position) > -1;\n\n/**\n * Compute the trend indicator position based on font size of major and trend value\n * @method computeTrendIndicatorPosition\n * @param {Object} props\n * @param {String} props.trendIndicatorPosition\n * @param {Number} props.majorTextFontSize\n * @param {Number} props.trendTextFontSize\n * @returns {String} trend indicator position in radial graph\n */\nexport const computeTrendIndicatorPosition = ({\n trendIndicatorPosition,\n majorTextFontSize,\n trendTextFontSize,\n}) => {\n let position = trendIndicatorPosition;\n\n if (!isValidPosition(position)) {\n position = 'standard';\n }\n\n if (\n position !== 'outside' &&\n (trendTextFontSize < TREND_FONT_THRESHOLD || majorTextFontSize < MAJOR_FONT_THRESHOLD)\n ) {\n position = 'below';\n }\n return position;\n};\n\n/*\n * @method showTrendPositionStandard\n * @param {Object} props\n * @param {Bool} props.showTrendIndicator\n * @param {String} props.position\n * @returns {Bool}\n */\nexport const showTrendPositionStandard = ({ showTrendIndicator, position }) =>\n showTrendIndicator && position === 'standard';\n\n/*\n * @method showTrendPositionBelow\n * @param {Object} props\n * @param {Bool} props.showTrendIndicator\n * @param {String} props.position\n * @returns {Bool}\n */\nexport const showTrendPositionBelow = ({ showTrendIndicator, position }) =>\n showTrendIndicator && position === 'below';\n\n/*\n * @method showTrendPositionOutside\n * @param {Object} props\n * @param {Bool} props.showTrendIndicator\n * @param {String} props.position\n * @returns {Bool}\n */\nexport const showTrendPositionOutside = ({ showTrendIndicator, position }) =>\n showTrendIndicator && position === 'outside';\n\n/*\n * todo: need handle max and min\n * @method getRadialProgress\n * @param {Number} majorValue\n * @returns {Number} progress bar in radial graph\n */\nexport const getRadialProgress = majorValue =>\n Number.isNaN(Number(majorValue)) ? 0 : (majorValue / Math.max(majorValue, 100)) * 100;\n","// this is a copy of RadialLayout.jsx @ 23.5.0 before the design changes to PureSingleValueRadial were rolled out\nimport React from 'react';\nimport T from 'prop-types';\nimport styled from 'styled-components';\nimport SingleValueBasic, { SingleValueTrendValue } from '@splunk/visualizations/SingleValueBasic';\nimport { getTrendFontSize } from '@splunk/visualizations/common/utils/singleValueUtils';\nimport RadialGraph from './RadialGraph';\nimport {\n showTrendPositionStandard,\n showTrendPositionBelow,\n showTrendPositionOutside,\n} from '../utils/displayUtils';\n\nconst PositionDiv = styled.div`\n position: absolute;\n ${props => (props.bottom ? '' : 'top: 0')};\n bottom: ${props => props.bottom || 0}px;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: ${props => props.align || 'center'};\n justify-content: center;\n`;\n\nconst Column = styled.div`\n display: flex;\n flex-direction: column;\n align-items: ${props => props.align || 'center'};\n justify-content: ${props => props.align || 'center'};\n`;\nconst Row = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n`;\n\nconst Square = styled.div`\n position: relative;\n margin: 0 auto;\n width: ${props => props.size}px;\n height: ${props => props.size}px;\n`;\n\nconst UnderLabelContainer = styled.div`\n color: ${props => props.color};\n margin-top: ${props => (props.size && `-${props.size * 0.1}px`) || 0};\n font-size: ${props => props.size || 12}px;\n`;\n\n/**\n * Render the trend indicator\n * @method renderTrendValue\n * @returns {Object}\n * @private\n */\n\nconst renderIsolateTrend = ({ trendText, trendColor, contentSize }) => {\n const trendTextFontSize = getTrendFontSize({\n width: contentSize / 2,\n height: contentSize / 4,\n trendText,\n spaceRatio: 1,\n });\n\n return (\n <SingleValueTrendValue\n fontSize={trendTextFontSize}\n color={trendColor}\n value={trendText}\n text={trendText}\n />\n );\n};\n\nrenderIsolateTrend.propTypes = {\n trendText: T.string,\n trendColor: T.string,\n contentSize: T.number,\n};\n\nconst RadialContent = ({ ...props }) => {\n const {\n majorColor,\n majorText,\n majorTextFontSize,\n majorValueTitle,\n trendColor,\n trendText,\n trendTextFontSize,\n showTrendIndicator,\n trendPosition,\n unit,\n unitPosition,\n underLabelColor,\n underLabelFontSize,\n underLabel,\n onValueClick,\n contentSize,\n showRadialGraph,\n graphSize,\n progress,\n radialBackgroundColor,\n radialStrokeColor,\n radialStrokeWidth,\n } = props;\n\n // for trend position below and outside\n const trendComponent = renderIsolateTrend({ trendText, trendColor, contentSize });\n\n const basicSingleValues = (\n <SingleValueBasic\n majorColor={majorColor}\n majorText={majorText}\n majorTextFontSize={majorTextFontSize}\n majorValueTitle={majorValueTitle}\n trendColor={trendColor}\n trendText={trendText}\n trendTextFontSize={trendTextFontSize}\n showTrendIndicator={showTrendPositionStandard({ showTrendIndicator, position: trendPosition })}\n unit={unit}\n unitPosition={unitPosition}\n onValueClick={onValueClick}\n />\n );\n const radialGraph = showRadialGraph ? (\n <RadialGraph\n size={graphSize}\n progress={progress}\n backgroundColor={radialBackgroundColor}\n progressColor={radialStrokeColor}\n strokeWidth={radialStrokeWidth}\n />\n ) : null;\n\n const underLabelComponent = underLabel ? (\n <UnderLabelContainer data-test=\"underLabel\" color={underLabelColor} size={underLabelFontSize}>\n {underLabel}\n </UnderLabelContainer>\n ) : null;\n\n const outsideComponent = showTrendPositionOutside({ showTrendIndicator, position: trendPosition }) ? (\n <Column align=\"end\" data-test=\"trend-position-outside\">\n {trendComponent}\n {underLabelComponent}\n </Column>\n ) : null;\n\n const belowTrendComponent = showTrendPositionBelow({ showTrendIndicator, position: trendPosition }) ? (\n <PositionDiv\n data-test=\"trend-position-below\"\n align=\"flex-end\"\n bottom={graphSize * 0.1}\n style={{ textAlign: 'center' }}\n >\n {trendComponent}\n </PositionDiv>\n ) : null;\n\n return (\n <Row>\n <Column>\n <Square size={graphSize}>\n {radialGraph}\n {belowTrendComponent}\n <PositionDiv>{basicSingleValues}</PositionDiv>\n </Square>\n {trendPosition !== 'outside' && underLabelComponent}\n </Column>\n {outsideComponent}\n </Row>\n );\n};\n\nRadialContent.propTypes = {\n ...SingleValueBasic.propTypes,\n trendPosition: T.string,\n contentSize: T.number,\n showRadialGraph: T.bool,\n graphSize: T.number,\n progress: T.number,\n radialBackgroundColor: T.string,\n radialStrokeColor: T.string,\n radialStrokeWidth: T.number,\n};\n\nexport default RadialContent;\n","// this is a copy of SingleValueRadial.jsx @ 23.5.0 before the design changes to PureSingleValueRadial were rolled out\nimport React, { useCallback } from 'react';\nimport T from 'prop-types';\nimport pickFromTheme from '@splunk/themes/pick';\nimport variables from '@splunk/themes/variables';\nimport styled, { withTheme } from 'styled-components';\nimport pick from 'lodash/pick';\nimport isEmpty from 'lodash/isEmpty';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport { toDimension } from '@splunk/visualizations-shared/style';\nimport SizeAwareWrapper from '@splunk/visualizations-shared/SizeAwareWrapper';\nimport Message from '@splunk/visualizations-shared/Message';\nimport {\n computeColors,\n computeSingleValueContent,\n getUnderLabelHeight,\n shouldShowTrend,\n handleValueClickCallback,\n} from '@splunk/visualizations/common/utils/singleValueUtils';\nimport RadialLayout from './RadialLayout';\nimport {\n getGraphSize,\n getValueContentSize,\n getRadialProgress,\n getRadialStrokeWidth,\n computeTrendIndicatorPosition,\n getRadialColors,\n} from '../utils/displayUtils';\n\nconst Container = styled.div`\n overflow: hidden;\n ${props => toDimension(pick(props, ['width', 'height']))};\n`;\n\nconst VizStyleWrapper = styled.div.attrs(({ dataTestKey }) => ({\n 'data-test': dataTestKey,\n}))`\n display: flex;\n justify-content: center;\n flex-direction: column;\n width: 100%;\n height: 100%;\n background-color: ${props => props.backgroundColor};\n`;\n\nVizStyleWrapper.displayName = 'VizStyleWrapper';\n\nconst SingleValueRadial = ({ ...props }) => {\n const {\n width,\n height = 250,\n style,\n majorFontSize,\n majorValue,\n majorValueField,\n trendValue,\n trendFontSize,\n unitPosition,\n numberPrecision,\n shouldUseThousandSeparators,\n shouldAbbreviateTrendValue,\n trendIndicatorPosition = 'standard',\n onValueClick,\n } = props;\n\n // calculate colors\n const defaultColors = {\n defaultFontColor: pickFromTheme({\n enterprise: {\n dark: variables.textColor(props),\n light: variables.gray20(props),\n },\n prisma: variables.contentColorActive(props),\n })(props),\n defaultBlockFontColor: pickFromTheme({\n enterprise: variables.white(props),\n prisma: variables.contentColorActive(props),\n })(props),\n };\n const { backgroundEnabled, backgroundColor, majorColor, trendColor, underLabelColor } = computeColors(\n props,\n defaultColors\n );\n\n const radialColors = getRadialColors({ backgroundEnabled, backgroundColor });\n const radialBackgroundColor = props.radialBackgroundColor || radialColors.background;\n const radialStrokeColor = props.radialStrokeColor || radialColors.stroke;\n\n const handleValueClick = useCallback(\n ev => handleValueClickCallback(ev, majorValue, majorValueField, trendValue, onValueClick),\n [onValueClick, majorValue, majorValueField, trendValue]\n );\n\n const renderVisualization = ({ width: containerWidth, height: containerHeight }) => {\n if (containerWidth < 35 || containerHeight < 35) {\n return (\n <Message\n width={containerWidth}\n height={containerHeight}\n message={_('Too small to render content')}\n level=\"info\"\n />\n );\n }\n\n // will update later based on text size\n let { trendDisplay, unit, underLabel } = props;\n let showRadialGraph = true;\n\n // calculate radial graph, major and trend content, and underlabel size\n const graphSize = getGraphSize({ width: containerWidth, height: containerHeight, underLabel });\n const radialStrokeWidth = getRadialStrokeWidth(graphSize);\n const valueContentSize = getValueContentSize({ graphSize, radialStrokeWidth });\n const underLabelFontSize = getUnderLabelHeight(graphSize * 0.1);\n\n // calculate major and trend text\n const toRemoveList = [\n { key: 'underLabel', value: '' },\n { key: 'showRadialGraph', value: false },\n { key: 'trendDisplay', value: 'off' },\n { key: 'unit', value: '' },\n ];\n const {\n majorText,\n trendText,\n majorTextFontSize,\n trendTextFontSize,\n majorValueTitle,\n smallVizProps,\n } = computeSingleValueContent({\n majorValue,\n trendValue,\n majorFontSize,\n trendFontSize,\n trendDisplay,\n contentWidth: valueContentSize,\n contentHeight: valueContentSize,\n containerWidth,\n containerHeight,\n unit,\n numberPrecision,\n shouldUseThousandSeparators,\n shouldAbbreviateTrendValue,\n toRemoveList,\n });\n if (!isEmpty(smallVizProps)) {\n ({ underLabel, showRadialGraph, trendDisplay, unit } = smallVizProps);\n }\n\n // calculate trend position\n const position = computeTrendIndicatorPosition({\n trendIndicatorPosition,\n majorTextFontSize,\n trendTextFontSize,\n });\n\n // calculate radial\n const progress = getRadialProgress(majorValue);\n\n return (\n <VizStyleWrapper\n backgroundColor={backgroundColor}\n style={style}\n dataTestKey=\"SingleValueRadialWrapper\"\n >\n <RadialLayout\n data-test=\"RadialLayout\"\n majorColor={majorColor}\n majorText={majorText}\n majorTextFontSize={majorTextFontSize}\n majorValueTitle={majorValueTitle}\n trendColor={trendColor}\n trendText={trendText}\n trendTextFontSize={trendTextFontSize}\n showTrendIndicator={shouldShowTrend(trendDisplay)}\n trendPosition={position}\n unit={unit}\n unitPosition={unitPosition}\n underLabelColor={underLabelColor}\n underLabelFontSize={underLabelFontSize}\n underLabel={underLabel}\n onValueClick={handleValueClick}\n contentSize={valueContentSize * 0.7}\n showRadialGraph={showRadialGraph}\n graphSize={graphSize}\n progress={progress}\n radialBackgroundColor={radialBackgroundColor}\n radialStrokeColor={radialStrokeColor}\n radialStrokeWidth={radialStrokeWidth}\n />\n </VizStyleWrapper>\n );\n };\n\n return (\n <Container width={width} height={height}>\n <SizeAwareWrapper>\n {containerDimension => renderVisualization(containerDimension)}\n </SizeAwareWrapper>\n </Container>\n );\n};\n\nSingleValueRadial.propTypes = {\n width: T.oneOfType([T.string, T.number]),\n height: T.oneOfType([T.string, T.number]),\n style: T.object,\n majorValue: T.oneOfType([T.string, T.number]),\n majorValueField: T.string,\n majorColor: T.string,\n majorFontSize: T.number,\n trendValue: T.oneOfType([T.string, T.number]),\n trendColor: T.string,\n trendFontSize: T.number,\n trendDisplay: T.string,\n trendIndicatorPosition: T.oneOf(['standard', 'below', 'outside']),\n shouldAbbreviateTrendValue: T.bool,\n backgroundColor: T.string,\n unit: T.string,\n unitPosition: T.string,\n underLabel: T.string,\n numberPrecision: T.number,\n shouldUseThousandSeparators: T.bool,\n radialBackgroundColor: T.string,\n radialStrokeColor: T.string,\n onValueClick: T.func,\n};\n\nSingleValueRadial.defaultProps = {\n width: '100%',\n height: 250,\n majorValue: 'N/A',\n majorValueField: '',\n trendDisplay: 'absolute',\n trendIndicatorPosition: 'standard',\n shouldAbbreviateTrendValue: false,\n unitPosition: 'after',\n numberPrecision: 0,\n shouldUseThousandSeparators: true,\n onValueClick: () => {},\n};\n\nexport default withTheme(SingleValueRadial);\n","import React from 'react';\nimport T from 'prop-types';\nimport { withSanitizedProps } from '@splunk/visualizations-shared/SanitizeProps';\nimport PureSingleValueRadial from './src/components/SingleValueRadial';\nimport { propsConvert, propsDeprecate } from '../../utils/propUtils';\n\n// This propsMapping is for React SingleValue to use PureSingleValue.\nconst propsMapping = {\n value: 'majorValue',\n deltaValue: 'trendValue',\n deltaColor: 'trendColor',\n deltaFontSize: 'trendFontSize',\n useTrendUnits: 'shouldAbbreviateTrendValue',\n useThousandSeparators: 'shouldUseThousandSeparators',\n};\n\nconst deprecatedProps = ['showTrendIndicator', 'trendDisplayMode'];\n\nconst ReactSingleValueRadial = ({ ...props }) => {\n let newProps = propsConvert(props, propsMapping);\n // change props\n const trendDisplay = newProps.showTrendIndicator ? newProps.trendDisplayMode : 'off';\n newProps = {\n ...propsDeprecate(newProps, deprecatedProps),\n trendDisplay,\n };\n return <PureSingleValueRadial {...newProps} />;\n};\n\nReactSingleValueRadial.propTypes = {\n width: T.oneOfType([T.string, T.number]),\n height: T.oneOfType([T.string, T.number]),\n style: T.object,\n value: T.oneOfType([T.string, T.number]),\n majorColor: T.string,\n majorFontSize: T.number,\n deltaValue: T.oneOfType([T.string, T.number]),\n deltaColor: T.string,\n deltaFontSize: T.number,\n trendDisplayMode: T.string,\n trendIndicatorPosition: T.oneOf(['standard', 'below', 'outside']),\n useTrendUnits: T.bool,\n showTrendIndicator: T.bool,\n backgroundColor: T.string,\n unit: T.string,\n unitPosition: T.string,\n underLabel: T.string,\n numberPrecision: T.number,\n useThousandSeparators: T.bool,\n radialBackgroundColor: T.string,\n radialStrokeColor: T.string,\n onValueClick: T.func,\n};\n\nReactSingleValueRadial.defaultProps = {\n width: '100%',\n height: 250,\n trendDisplayMode: 'absolute',\n trendIndicatorPosition: 'standard',\n useTrendUnits: false,\n showTrendIndicator: true,\n unitPosition: 'after',\n numberPrecision: 0,\n useThousandSeparators: true,\n onValueClick: () => {},\n};\n\nexport default withSanitizedProps(ReactSingleValueRadial);\n"],"sourceRoot":""}
|
package/SvgChoropleth.js
CHANGED
|
@@ -148,31 +148,20 @@ module.exports = require("@babel/runtime/helpers/getPrototypeOf");
|
|
|
148
148
|
|
|
149
149
|
|
|
150
150
|
var _classCallCheck = __webpack_require__(17);
|
|
151
|
-
|
|
152
151
|
var _createClass = __webpack_require__(16);
|
|
153
|
-
|
|
154
152
|
var _inherits = __webpack_require__(23);
|
|
155
|
-
|
|
156
153
|
var _possibleConstructorReturn = __webpack_require__(24);
|
|
157
|
-
|
|
158
154
|
var _getPrototypeOf = __webpack_require__(25);
|
|
159
|
-
|
|
160
155
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
161
|
-
|
|
162
156
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
163
|
-
|
|
164
157
|
Object.defineProperty(exports, "__esModule", {
|
|
165
158
|
value: true
|
|
166
159
|
});
|
|
167
160
|
exports.DATA_ATTRIBUTE = void 0;
|
|
168
161
|
/* eslint-disable no-param-reassign */
|
|
169
|
-
|
|
170
162
|
var React = __webpack_require__(1);
|
|
171
|
-
|
|
172
163
|
var lodash_1 = __webpack_require__(21);
|
|
173
|
-
|
|
174
164
|
var styled_components_1 = __webpack_require__(7);
|
|
175
|
-
|
|
176
165
|
exports.DATA_ATTRIBUTE = 'data-value';
|
|
177
166
|
var StyledSvgChoropleth = styled_components_1.default.div.withConfig({
|
|
178
167
|
displayName: "SvgChoropleth__StyledSvgChoropleth",
|
|
@@ -180,24 +169,17 @@ var StyledSvgChoropleth = styled_components_1.default.div.withConfig({
|
|
|
180
169
|
})(["display:flex;flex-direction:column;position:relative;background-color:", ";"], function (props) {
|
|
181
170
|
return props.backgroundColor;
|
|
182
171
|
});
|
|
183
|
-
|
|
184
172
|
var SvgChoropleth = /*#__PURE__*/function (_React$Component) {
|
|
185
173
|
_inherits(SvgChoropleth, _React$Component);
|
|
186
|
-
|
|
187
174
|
var _super = _createSuper(SvgChoropleth);
|
|
188
|
-
|
|
189
175
|
function SvgChoropleth(props) {
|
|
190
176
|
var _this;
|
|
191
|
-
|
|
192
177
|
_classCallCheck(this, SvgChoropleth);
|
|
193
|
-
|
|
194
178
|
_this = _super.call(this, props);
|
|
195
179
|
_this.containerRef = React.createRef();
|
|
196
180
|
_this.highlightedCountry = null;
|
|
197
|
-
|
|
198
181
|
_this.getLocalCoords = function (clientX, clientY) {
|
|
199
182
|
var rect = _this.containerRef.current.getBoundingClientRect();
|
|
200
|
-
|
|
201
183
|
var physX = rect.left;
|
|
202
184
|
var physY = rect.top;
|
|
203
185
|
return {
|
|
@@ -205,40 +187,31 @@ var SvgChoropleth = /*#__PURE__*/function (_React$Component) {
|
|
|
205
187
|
y: clientY - physY
|
|
206
188
|
};
|
|
207
189
|
};
|
|
208
|
-
|
|
209
190
|
_this.handleMapClick = function (event) {
|
|
210
191
|
var clientX = event.clientX,
|
|
211
|
-
|
|
212
|
-
|
|
192
|
+
clientY = event.clientY;
|
|
213
193
|
var pos = _this.getLocalCoords(clientX, clientY);
|
|
214
|
-
|
|
215
194
|
var _this$props = _this.props,
|
|
216
|
-
|
|
217
|
-
|
|
195
|
+
featureCollection = _this$props.featureCollection,
|
|
196
|
+
onClick = _this$props.onClick;
|
|
218
197
|
var clickedCoords = featureCollection.transformation.transformBack(pos);
|
|
219
198
|
var feature = event.target;
|
|
220
199
|
var wholeFeature = feature.id ? feature : feature.parentNode;
|
|
221
|
-
|
|
222
200
|
if (onClick) {
|
|
223
201
|
onClick(clickedCoords, wholeFeature.id);
|
|
224
202
|
}
|
|
225
203
|
};
|
|
226
|
-
|
|
227
204
|
_this.handleFeatureEnter = function (ev) {
|
|
228
205
|
var feature = ev.target;
|
|
229
|
-
|
|
230
206
|
if (!feature.id && !feature.ownerSVGElement) {
|
|
231
207
|
return;
|
|
232
208
|
}
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
209
|
+
var wholeFeature = feature.id ? feature : feature.parentNode;
|
|
210
|
+
// remove the highlighted country IF we are entering a different country
|
|
236
211
|
if (_this.highlightedCountry && wholeFeature.id !== _this.highlightedCountry.id) {
|
|
237
212
|
_this.unHighlightCountry();
|
|
238
213
|
}
|
|
239
|
-
|
|
240
214
|
_this.highlightCountry(wholeFeature);
|
|
241
|
-
|
|
242
215
|
if (_this.props.onFeatureHover) {
|
|
243
216
|
_this.props.onFeatureHover({
|
|
244
217
|
featureId: wholeFeature.id,
|
|
@@ -247,24 +220,19 @@ var SvgChoropleth = /*#__PURE__*/function (_React$Component) {
|
|
|
247
220
|
});
|
|
248
221
|
}
|
|
249
222
|
};
|
|
250
|
-
|
|
251
223
|
_this.handleFeatureLeave = function (ev) {
|
|
252
224
|
var feature = ev.target;
|
|
253
|
-
|
|
254
225
|
if (!feature.id && !feature.ownerSVGElement) {
|
|
255
226
|
return;
|
|
256
|
-
}
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
227
|
+
}
|
|
228
|
+
// 'wholeFeature' means the SVG <g> (group) of multipolygon features
|
|
229
|
+
var wholeFeature = feature.id ? feature : feature.parentNode;
|
|
230
|
+
// handling feature leaving should always only deal with the highlighted feature
|
|
261
231
|
if (wholeFeature !== _this.highlightedCountry) {
|
|
262
232
|
return;
|
|
263
233
|
}
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
234
|
+
_this.unHighlightCountry();
|
|
235
|
+
// wholeFeature.style.stroke = this.lastFeatureStroke;
|
|
268
236
|
if (_this.props.onFeatureHover) {
|
|
269
237
|
_this.props.onFeatureHover({
|
|
270
238
|
featureId: null,
|
|
@@ -273,33 +241,28 @@ var SvgChoropleth = /*#__PURE__*/function (_React$Component) {
|
|
|
273
241
|
});
|
|
274
242
|
}
|
|
275
243
|
};
|
|
276
|
-
|
|
277
244
|
_this.registerSvg = function (el) {
|
|
278
245
|
if (!el) return;
|
|
279
246
|
_this.svgDom = el;
|
|
280
247
|
var _this$props2 = _this.props,
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
248
|
+
_this$props2$selector = _this$props2.selector,
|
|
249
|
+
selector = _this$props2$selector === void 0 ? '.feature' : _this$props2$selector,
|
|
250
|
+
strokeColor = _this$props2.strokeColor,
|
|
251
|
+
fillColor = _this$props2.fillColor;
|
|
285
252
|
_this.svgDom.onmouseover = _this.handleFeatureEnter;
|
|
286
253
|
_this.svgDom.onmouseout = _this.handleFeatureLeave;
|
|
287
|
-
|
|
288
254
|
_this.svgDom.querySelectorAll(selector).forEach(function (node) {
|
|
289
255
|
node.style.stroke = strokeColor;
|
|
290
256
|
node.style.fill = fillColor;
|
|
291
257
|
});
|
|
292
|
-
|
|
293
258
|
_this.updateSvg(_this.props);
|
|
294
259
|
};
|
|
295
|
-
|
|
296
260
|
var featureCollection = props.featureCollection;
|
|
297
261
|
_this.state = {
|
|
298
262
|
svgNode: featureCollection.getSvgNode(_this.registerSvg)
|
|
299
263
|
};
|
|
300
264
|
return _this;
|
|
301
265
|
}
|
|
302
|
-
|
|
303
266
|
_createClass(SvgChoropleth, [{
|
|
304
267
|
key: "shouldComponentUpdate",
|
|
305
268
|
value: function shouldComponentUpdate(nextProps, nextState) {
|
|
@@ -319,8 +282,8 @@ var SvgChoropleth = /*#__PURE__*/function (_React$Component) {
|
|
|
319
282
|
this.updateSvg(this.props);
|
|
320
283
|
}
|
|
321
284
|
}
|
|
322
|
-
}
|
|
323
|
-
|
|
285
|
+
}
|
|
286
|
+
// allows a provided alias like 'US-CA' to get mapped to 'California' which is the element id for the SVG shape
|
|
324
287
|
}, {
|
|
325
288
|
key: "getFeatureId",
|
|
326
289
|
value: function getFeatureId(alias) {
|
|
@@ -334,7 +297,6 @@ var SvgChoropleth = /*#__PURE__*/function (_React$Component) {
|
|
|
334
297
|
* So the highlight for South Africa will not cover up Lesotho.
|
|
335
298
|
* @param {SVGElement} el
|
|
336
299
|
*/
|
|
337
|
-
|
|
338
300
|
}, {
|
|
339
301
|
key: "highlightCountry",
|
|
340
302
|
value: function highlightCountry(el) {
|
|
@@ -356,31 +318,25 @@ var SvgChoropleth = /*#__PURE__*/function (_React$Component) {
|
|
|
356
318
|
if (this.highlightedCountry) {
|
|
357
319
|
this.svgDom.removeChild(this.highlightedCountry);
|
|
358
320
|
}
|
|
359
|
-
|
|
360
321
|
this.highlightedCountry = null;
|
|
361
322
|
}
|
|
362
323
|
}, {
|
|
363
324
|
key: "updateSvg",
|
|
364
325
|
value: function updateSvg(props) {
|
|
365
326
|
var _this2 = this;
|
|
366
|
-
|
|
367
327
|
if (!this.svgDom) {
|
|
368
328
|
return;
|
|
369
329
|
}
|
|
370
|
-
|
|
371
330
|
var _props$selector = props.selector,
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
331
|
+
selector = _props$selector === void 0 ? '.feature' : _props$selector,
|
|
332
|
+
fillColor = props.fillColor,
|
|
333
|
+
data = props.data;
|
|
376
334
|
if (!data) {
|
|
377
335
|
return;
|
|
378
336
|
}
|
|
379
|
-
|
|
380
337
|
var dataHashMap = {};
|
|
381
338
|
data.featureIDs.forEach(function (alias, index) {
|
|
382
339
|
var featureId = _this2.getFeatureId(alias);
|
|
383
|
-
|
|
384
340
|
dataHashMap[featureId] = {
|
|
385
341
|
fill: data.fill[index],
|
|
386
342
|
value: data.values[index]
|
|
@@ -390,7 +346,6 @@ var SvgChoropleth = /*#__PURE__*/function (_React$Component) {
|
|
|
390
346
|
var nodeData = dataHashMap[node.id];
|
|
391
347
|
node.style.fill = lodash_1.get(nodeData, 'fill') || fillColor;
|
|
392
348
|
var value = lodash_1.get(nodeData, 'value');
|
|
393
|
-
|
|
394
349
|
if (value) {
|
|
395
350
|
node.setAttribute(exports.DATA_ATTRIBUTE, value);
|
|
396
351
|
} else {
|
|
@@ -402,8 +357,7 @@ var SvgChoropleth = /*#__PURE__*/function (_React$Component) {
|
|
|
402
357
|
key: "render",
|
|
403
358
|
value: function render() {
|
|
404
359
|
var _this$props$backgroun = this.props.backgroundColor,
|
|
405
|
-
|
|
406
|
-
|
|
360
|
+
backgroundColor = _this$props$backgroun === void 0 ? 'transparent' : _this$props$backgroun; // note: for some reason, onclick event can't be triggered on dashboard. So change it to onMouseDown
|
|
407
361
|
return React.createElement(StyledSvgChoropleth, {
|
|
408
362
|
"data-test": "styled-svg-choropleth",
|
|
409
363
|
backgroundColor: backgroundColor,
|
|
@@ -412,10 +366,8 @@ var SvgChoropleth = /*#__PURE__*/function (_React$Component) {
|
|
|
412
366
|
}, this.state.svgNode);
|
|
413
367
|
}
|
|
414
368
|
}]);
|
|
415
|
-
|
|
416
369
|
return SvgChoropleth;
|
|
417
370
|
}(React.Component);
|
|
418
|
-
|
|
419
371
|
exports.default = SvgChoropleth;
|
|
420
372
|
|
|
421
373
|
/***/ }),
|
package/SvgChoropleth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///external \"react\"","webpack:///external \"@babel/runtime/helpers/createClass\"","webpack:///external \"@babel/runtime/helpers/classCallCheck\"","webpack:///external \"lodash\"","webpack:///external \"@babel/runtime/helpers/inherits\"","webpack:///external \"@babel/runtime/helpers/possibleConstructorReturn\"","webpack:///external \"@babel/runtime/helpers/getPrototypeOf\"","webpack:///./src/visualizations/SvgChoropleth/SvgChoropleth.tsx","webpack:///external \"styled-components\""],"names":[],"mappings":"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","file":"SvgChoropleth.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 36);\n","module.exports = require(\"react\");","module.exports = require(\"@babel/runtime/helpers/createClass\");","module.exports = require(\"@babel/runtime/helpers/classCallCheck\");","module.exports = require(\"lodash\");","module.exports = require(\"@babel/runtime/helpers/inherits\");","module.exports = require(\"@babel/runtime/helpers/possibleConstructorReturn\");","module.exports = require(\"@babel/runtime/helpers/getPrototypeOf\");","/* eslint-disable no-param-reassign */\nimport * as React from 'react';\nimport { get, isEqual } from 'lodash';\nimport styled from 'styled-components';\nimport { ISvgFeatureCollection } from './src/utils/ISvgFeatureCollection';\nimport { DataPoint } from './src/utils/ICoordinateTransformation';\n\nexport const DATA_ATTRIBUTE = 'data-value';\n\nexport interface SvgChoroplethProps {\n featureCollection: ISvgFeatureCollection;\n data: { featureIDs: string[]; fill: string[]; values: any[] };\n fillColor: string;\n strokeColor: string;\n strokeHighlightColor?: string;\n backgroundColor?: string;\n selector: string;\n onFeatureHover: (params: { featureId: string; value: any; label?: string }) => void;\n onClick?: (sourceCoordinates: DataPoint, featureId: string) => void;\n}\n\nexport interface SvgChoroplethState {\n svgNode: React.ReactNode;\n}\n\nexport { GeoFeatureGroup } from './src/utils/GeoTypes';\n\ninterface StyledSvgChoroplethProps {\n readonly backgroundColor: string;\n}\n\nconst StyledSvgChoropleth = styled.div<StyledSvgChoroplethProps>`\n display: flex;\n flex-direction: column;\n position: relative;\n background-color: ${(props): string => props.backgroundColor};\n`;\n\nexport default class SvgChoropleth extends React.Component<SvgChoroplethProps, SvgChoroplethState> {\n containerRef: React.RefObject<HTMLDivElement> = React.createRef();\n\n // lastFeatureStroke: string;\n svgDom: SVGElement;\n\n highlightedCountry: SVGElement = null;\n\n constructor(props: SvgChoroplethProps) {\n super(props);\n const { featureCollection } = props;\n this.state = { svgNode: featureCollection.getSvgNode(this.registerSvg) };\n }\n\n shouldComponentUpdate(nextProps: Readonly<SvgChoroplethProps>, nextState: SvgChoroplethState): boolean {\n const shouldUpdate =\n !isEqual(nextState.svgNode, this.state.svgNode) || !isEqual(nextProps, this.props);\n return shouldUpdate;\n }\n\n componentDidUpdate(prevProps): void {\n if (this.props !== prevProps) {\n if (prevProps.featureCollection !== this.props.featureCollection) {\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState({\n svgNode: this.props.featureCollection.getSvgNode(this.registerSvg),\n });\n } else {\n this.updateSvg(this.props);\n }\n }\n }\n\n getLocalCoords = (clientX: number, clientY: number): { x: number; y: number } => {\n const rect = this.containerRef.current.getBoundingClientRect();\n const physX = rect.left;\n const physY = rect.top;\n return { x: clientX - physX, y: clientY - physY };\n };\n\n handleMapClick = (event: React.MouseEvent<HTMLInputElement>): void => {\n const { clientX, clientY } = event;\n const pos = this.getLocalCoords(clientX, clientY);\n const { featureCollection, onClick } = this.props;\n const clickedCoords: DataPoint = featureCollection.transformation.transformBack(pos);\n const feature: SVGSVGElement = event.target as SVGSVGElement;\n const wholeFeature: SVGElement = feature.id ? feature : (feature.parentNode as SVGElement);\n if (onClick) {\n onClick(clickedCoords, wholeFeature.id);\n }\n };\n\n handleFeatureEnter = (ev: MouseEvent): void => {\n const feature: SVGSVGElement = ev.target as SVGSVGElement;\n\n if (!feature.id && !feature.ownerSVGElement) {\n return;\n }\n\n const wholeFeature: SVGElement = feature.id ? feature : (feature.parentNode as SVGElement);\n // remove the highlighted country IF we are entering a different country\n if (this.highlightedCountry && wholeFeature.id !== this.highlightedCountry.id) {\n this.unHighlightCountry();\n }\n this.highlightCountry(wholeFeature);\n\n if (this.props.onFeatureHover) {\n this.props.onFeatureHover({\n featureId: wholeFeature.id,\n label: wholeFeature.getAttribute('label_en'),\n value: wholeFeature.getAttribute(DATA_ATTRIBUTE),\n });\n }\n };\n\n handleFeatureLeave = (ev: MouseEvent): void => {\n const feature: SVGSVGElement = ev.target as SVGSVGElement;\n\n if (!feature.id && !feature.ownerSVGElement) {\n return;\n }\n\n // 'wholeFeature' means the SVG <g> (group) of multipolygon features\n const wholeFeature: SVGElement = feature.id ? feature : (feature.parentNode as SVGElement);\n // handling feature leaving should always only deal with the highlighted feature\n if (wholeFeature !== this.highlightedCountry) {\n return;\n }\n this.unHighlightCountry();\n // wholeFeature.style.stroke = this.lastFeatureStroke;\n\n if (this.props.onFeatureHover) {\n this.props.onFeatureHover({ featureId: null, value: null, label: null });\n }\n };\n\n // allows a provided alias like 'US-CA' to get mapped to 'California' which is the element id for the SVG shape\n private getFeatureId(alias: string): string {\n return this.props.featureCollection.resolveAlias(alias);\n }\n\n registerSvg = (el: SVGSVGElement): void => {\n if (!el) return;\n\n this.svgDom = el;\n\n const { selector = '.feature', strokeColor, fillColor } = this.props;\n\n this.svgDom.onmouseover = this.handleFeatureEnter;\n this.svgDom.onmouseout = this.handleFeatureLeave;\n\n this.svgDom.querySelectorAll(selector).forEach((node: HTMLElement): void => {\n node.style.stroke = strokeColor;\n node.style.fill = fillColor;\n });\n\n this.updateSvg(this.props);\n };\n\n /**\n * this method renders a copy of the polygon on top of all the others, with a highlighted boundary.\n * Technically we don't render in on top of ALL the others. There are three totally landlocked countries,\n * the first of which in our geojson file is Lesotho. These are also the last three countries in the geojson\n * file. So when we insert the highlight shape into the dom, we inert it *before* these three countries.\n * So the highlight for South Africa will not cover up Lesotho.\n * @param {SVGElement} el\n */\n highlightCountry(el: SVGElement): void {\n if (this.highlightedCountry) {\n return; // do not add more than one hovered element at a time\n }\n\n const firstLandlockedCountry = this.svgDom.querySelector(`#Lesotho`);\n const parent = el.parentNode;\n const clone: SVGElement = el.cloneNode(true) as SVGElement;\n const strokeColor = this.props.strokeHighlightColor || '#000';\n clone.style.stroke = strokeColor;\n this.highlightedCountry = clone;\n\n parent.insertBefore(clone, firstLandlockedCountry);\n }\n\n unHighlightCountry(): void {\n if (this.highlightedCountry) {\n this.svgDom.removeChild(this.highlightedCountry);\n }\n this.highlightedCountry = null;\n }\n\n updateSvg(props: SvgChoroplethProps): void {\n if (!this.svgDom) {\n return;\n }\n\n const { selector = '.feature', fillColor, data } = props;\n\n if (!data) {\n return;\n }\n const dataHashMap = {};\n\n data.featureIDs.forEach((alias, index): void => {\n const featureId = this.getFeatureId(alias);\n dataHashMap[featureId] = { fill: data.fill[index], value: data.values[index] };\n });\n this.svgDom.querySelectorAll(selector).forEach((node: HTMLElement): void => {\n const nodeData = dataHashMap[node.id];\n node.style.fill = get(nodeData, 'fill') || fillColor;\n const value = get(nodeData, 'value');\n if (value) {\n node.setAttribute(DATA_ATTRIBUTE, value);\n } else {\n node.removeAttribute(DATA_ATTRIBUTE);\n }\n });\n }\n\n render(): JSX.Element {\n const { backgroundColor = 'transparent' } = this.props;\n // note: for some reason, onclick event can't be triggered on dashboard. So change it to onMouseDown\n return (\n <StyledSvgChoropleth\n data-test=\"styled-svg-choropleth\"\n backgroundColor={backgroundColor}\n onMouseDown={this.handleMapClick}\n ref={this.containerRef}\n >\n {this.state.svgNode}\n </StyledSvgChoropleth>\n );\n }\n}\n","module.exports = require(\"styled-components\");"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///external \"react\"","webpack:///external \"@babel/runtime/helpers/createClass\"","webpack:///external \"@babel/runtime/helpers/classCallCheck\"","webpack:///external \"lodash\"","webpack:///external \"@babel/runtime/helpers/inherits\"","webpack:///external \"@babel/runtime/helpers/possibleConstructorReturn\"","webpack:///external \"@babel/runtime/helpers/getPrototypeOf\"","webpack:///./src/visualizations/SvgChoropleth/SvgChoropleth.tsx","webpack:///external \"styled-components\""],"names":["React","require","lodash_1","styled_components_1","exports","DATA_ATTRIBUTE","StyledSvgChoropleth","default","div","withConfig","displayName","componentId","props","backgroundColor","SvgChoropleth","_React$Component","_inherits","_super","_createSuper","_this","_classCallCheck","call","containerRef","createRef","highlightedCountry","getLocalCoords","clientX","clientY","rect","current","getBoundingClientRect","physX","left","physY","top","x","y","handleMapClick","event","pos","_this$props","featureCollection","onClick","clickedCoords","transformation","transformBack","feature","target","wholeFeature","id","parentNode","handleFeatureEnter","ev","ownerSVGElement","unHighlightCountry","highlightCountry","onFeatureHover","featureId","label","getAttribute","value","handleFeatureLeave","registerSvg","el","svgDom","_this$props2","_this$props2$selector","selector","strokeColor","fillColor","onmouseover","onmouseout","querySelectorAll","forEach","node","style","stroke","fill","updateSvg","state","svgNode","getSvgNode","_createClass","key","shouldComponentUpdate","nextProps","nextState","shouldUpdate","isEqual","componentDidUpdate","prevProps","setState","getFeatureId","alias","resolveAlias","firstLandlockedCountry","querySelector","parent","clone","cloneNode","strokeHighlightColor","insertBefore","removeChild","_this2","_props$selector","data","dataHashMap","featureIDs","index","values","nodeData","get","setAttribute","removeAttribute","render","_this$props$backgroun","createElement","onMouseDown","ref","Component"],"mappings":"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","file":"SvgChoropleth.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 36);\n","module.exports = require(\"react\");","module.exports = require(\"@babel/runtime/helpers/createClass\");","module.exports = require(\"@babel/runtime/helpers/classCallCheck\");","module.exports = require(\"lodash\");","module.exports = require(\"@babel/runtime/helpers/inherits\");","module.exports = require(\"@babel/runtime/helpers/possibleConstructorReturn\");","module.exports = require(\"@babel/runtime/helpers/getPrototypeOf\");","/* eslint-disable no-param-reassign */\nimport * as React from 'react';\nimport { get, isEqual } from 'lodash';\nimport styled from 'styled-components';\nimport { ISvgFeatureCollection } from './src/utils/ISvgFeatureCollection';\nimport { DataPoint } from './src/utils/ICoordinateTransformation';\n\nexport const DATA_ATTRIBUTE = 'data-value';\n\nexport interface SvgChoroplethProps {\n featureCollection: ISvgFeatureCollection;\n data: { featureIDs: string[]; fill: string[]; values: any[] };\n fillColor: string;\n strokeColor: string;\n strokeHighlightColor?: string;\n backgroundColor?: string;\n selector: string;\n onFeatureHover: (params: { featureId: string; value: any; label?: string }) => void;\n onClick?: (sourceCoordinates: DataPoint, featureId: string) => void;\n}\n\nexport interface SvgChoroplethState {\n svgNode: React.ReactNode;\n}\n\nexport { GeoFeatureGroup } from './src/utils/GeoTypes';\n\ninterface StyledSvgChoroplethProps {\n readonly backgroundColor: string;\n}\n\nconst StyledSvgChoropleth = styled.div<StyledSvgChoroplethProps>`\n display: flex;\n flex-direction: column;\n position: relative;\n background-color: ${(props): string => props.backgroundColor};\n`;\n\nexport default class SvgChoropleth extends React.Component<SvgChoroplethProps, SvgChoroplethState> {\n containerRef: React.RefObject<HTMLDivElement> = React.createRef();\n\n // lastFeatureStroke: string;\n svgDom: SVGElement;\n\n highlightedCountry: SVGElement = null;\n\n constructor(props: SvgChoroplethProps) {\n super(props);\n const { featureCollection } = props;\n this.state = { svgNode: featureCollection.getSvgNode(this.registerSvg) };\n }\n\n shouldComponentUpdate(nextProps: Readonly<SvgChoroplethProps>, nextState: SvgChoroplethState): boolean {\n const shouldUpdate =\n !isEqual(nextState.svgNode, this.state.svgNode) || !isEqual(nextProps, this.props);\n return shouldUpdate;\n }\n\n componentDidUpdate(prevProps): void {\n if (this.props !== prevProps) {\n if (prevProps.featureCollection !== this.props.featureCollection) {\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState({\n svgNode: this.props.featureCollection.getSvgNode(this.registerSvg),\n });\n } else {\n this.updateSvg(this.props);\n }\n }\n }\n\n getLocalCoords = (clientX: number, clientY: number): { x: number; y: number } => {\n const rect = this.containerRef.current.getBoundingClientRect();\n const physX = rect.left;\n const physY = rect.top;\n return { x: clientX - physX, y: clientY - physY };\n };\n\n handleMapClick = (event: React.MouseEvent<HTMLInputElement>): void => {\n const { clientX, clientY } = event;\n const pos = this.getLocalCoords(clientX, clientY);\n const { featureCollection, onClick } = this.props;\n const clickedCoords: DataPoint = featureCollection.transformation.transformBack(pos);\n const feature: SVGSVGElement = event.target as SVGSVGElement;\n const wholeFeature: SVGElement = feature.id ? feature : (feature.parentNode as SVGElement);\n if (onClick) {\n onClick(clickedCoords, wholeFeature.id);\n }\n };\n\n handleFeatureEnter = (ev: MouseEvent): void => {\n const feature: SVGSVGElement = ev.target as SVGSVGElement;\n\n if (!feature.id && !feature.ownerSVGElement) {\n return;\n }\n\n const wholeFeature: SVGElement = feature.id ? feature : (feature.parentNode as SVGElement);\n // remove the highlighted country IF we are entering a different country\n if (this.highlightedCountry && wholeFeature.id !== this.highlightedCountry.id) {\n this.unHighlightCountry();\n }\n this.highlightCountry(wholeFeature);\n\n if (this.props.onFeatureHover) {\n this.props.onFeatureHover({\n featureId: wholeFeature.id,\n label: wholeFeature.getAttribute('label_en'),\n value: wholeFeature.getAttribute(DATA_ATTRIBUTE),\n });\n }\n };\n\n handleFeatureLeave = (ev: MouseEvent): void => {\n const feature: SVGSVGElement = ev.target as SVGSVGElement;\n\n if (!feature.id && !feature.ownerSVGElement) {\n return;\n }\n\n // 'wholeFeature' means the SVG <g> (group) of multipolygon features\n const wholeFeature: SVGElement = feature.id ? feature : (feature.parentNode as SVGElement);\n // handling feature leaving should always only deal with the highlighted feature\n if (wholeFeature !== this.highlightedCountry) {\n return;\n }\n this.unHighlightCountry();\n // wholeFeature.style.stroke = this.lastFeatureStroke;\n\n if (this.props.onFeatureHover) {\n this.props.onFeatureHover({ featureId: null, value: null, label: null });\n }\n };\n\n // allows a provided alias like 'US-CA' to get mapped to 'California' which is the element id for the SVG shape\n private getFeatureId(alias: string): string {\n return this.props.featureCollection.resolveAlias(alias);\n }\n\n registerSvg = (el: SVGSVGElement): void => {\n if (!el) return;\n\n this.svgDom = el;\n\n const { selector = '.feature', strokeColor, fillColor } = this.props;\n\n this.svgDom.onmouseover = this.handleFeatureEnter;\n this.svgDom.onmouseout = this.handleFeatureLeave;\n\n this.svgDom.querySelectorAll(selector).forEach((node: HTMLElement): void => {\n node.style.stroke = strokeColor;\n node.style.fill = fillColor;\n });\n\n this.updateSvg(this.props);\n };\n\n /**\n * this method renders a copy of the polygon on top of all the others, with a highlighted boundary.\n * Technically we don't render in on top of ALL the others. There are three totally landlocked countries,\n * the first of which in our geojson file is Lesotho. These are also the last three countries in the geojson\n * file. So when we insert the highlight shape into the dom, we inert it *before* these three countries.\n * So the highlight for South Africa will not cover up Lesotho.\n * @param {SVGElement} el\n */\n highlightCountry(el: SVGElement): void {\n if (this.highlightedCountry) {\n return; // do not add more than one hovered element at a time\n }\n\n const firstLandlockedCountry = this.svgDom.querySelector(`#Lesotho`);\n const parent = el.parentNode;\n const clone: SVGElement = el.cloneNode(true) as SVGElement;\n const strokeColor = this.props.strokeHighlightColor || '#000';\n clone.style.stroke = strokeColor;\n this.highlightedCountry = clone;\n\n parent.insertBefore(clone, firstLandlockedCountry);\n }\n\n unHighlightCountry(): void {\n if (this.highlightedCountry) {\n this.svgDom.removeChild(this.highlightedCountry);\n }\n this.highlightedCountry = null;\n }\n\n updateSvg(props: SvgChoroplethProps): void {\n if (!this.svgDom) {\n return;\n }\n\n const { selector = '.feature', fillColor, data } = props;\n\n if (!data) {\n return;\n }\n const dataHashMap = {};\n\n data.featureIDs.forEach((alias, index): void => {\n const featureId = this.getFeatureId(alias);\n dataHashMap[featureId] = { fill: data.fill[index], value: data.values[index] };\n });\n this.svgDom.querySelectorAll(selector).forEach((node: HTMLElement): void => {\n const nodeData = dataHashMap[node.id];\n node.style.fill = get(nodeData, 'fill') || fillColor;\n const value = get(nodeData, 'value');\n if (value) {\n node.setAttribute(DATA_ATTRIBUTE, value);\n } else {\n node.removeAttribute(DATA_ATTRIBUTE);\n }\n });\n }\n\n render(): JSX.Element {\n const { backgroundColor = 'transparent' } = this.props;\n // note: for some reason, onclick event can't be triggered on dashboard. So change it to onMouseDown\n return (\n <StyledSvgChoropleth\n data-test=\"styled-svg-choropleth\"\n backgroundColor={backgroundColor}\n onMouseDown={this.handleMapClick}\n ref={this.containerRef}\n >\n {this.state.svgNode}\n </StyledSvgChoropleth>\n );\n }\n}\n","module.exports = require(\"styled-components\");"],"sourceRoot":""}
|