diff --git a/pull/355/packages_terra-graphs-docs_src_terra-dev-site_graph_CoreConcepts_b_Reflow_e_graph_mdx.js b/pull/355/packages_terra-graphs-docs_src_terra-dev-site_graph_CoreConcepts_b_Reflow_e_graph_mdx.js
index e01a725a5..dbfbdb93f 100644
--- a/pull/355/packages_terra-graphs-docs_src_terra-dev-site_graph_CoreConcepts_b_Reflow_e_graph_mdx.js
+++ b/pull/355/packages_terra-graphs-docs_src_terra-dev-site_graph_CoreConcepts_b_Reflow_e_graph_mdx.js
@@ -35,7 +35,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
\*******************************************************************************************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ MDXContent; }\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var _mdx_js_react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @mdx-js/react */ \"./node_modules/@mdx-js/react/dist/cjs.js\");\n\n\nvar _excluded = [\"components\"];\n\n\n\n/* @jsxRuntime classic */\n/* @jsx mdx */\n\nvar layoutProps = {};\nvar MDXLayout = \"wrapper\";\nfunction MDXContent(_ref) {\n var components = _ref.components,\n props = (0,_babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_ref, _excluded);\n return (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_3__.mdx)(MDXLayout, (0,_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, layoutProps, props, {\n components: components,\n mdxType: \"MDXLayout\"\n }), (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_3__.mdx)(\"pre\", null, (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_3__.mdx)(\"code\", {\n parentName: \"pre\",\n \"className\": \"language-jsx\"\n }, \"import React, { useState } from 'react';\\nimport * as d3 from'd3-array';\\n\\nimport Button from 'terra-button';\\nimport Carbon from '@cerner/carbon-graphs';\\n\\n// graph configuration object\\n\\nconst graphConfig = {\\n bindTo: '#dynamic-data-update-example',\\n axis: {\\n x: {\\n label: 'x-axis',\\n lowerLimit: 80,\\n upperLimit: 280,\\n rangeRounding: false,\\n },\\n y: {\\n label: 'y-axis',\\n lowerLimit: -5,\\n upperLimit: 20,\\n },\\n },\\n allowCalibration: false,\\n};\\n\\n// graph dataset\\n\\nconst dataset1 = {\\n key: 'uid_1',\\n label: {\\n display: 'Dataset 1',\\n },\\n color: Carbon.helpers.COLORS.PINK,\\n values: [\\n { x: 87, y: -2 },\\n { x: 95, y: 1 },\\n { x: 103, y: -4 },\\n { x: 109, y: -2 },\\n { x: 128, y: 3 },\\n { x: 145, y: 28 },\\n { x: 151, y: 7 },\\n { x: 164, y: 10 },\\n { x: 177, y: 1 },\\n { x: 192, y: 6 },\\n { x: 203, y: -21 },\\n { x: 209, y: -3 },\\n { x: 246, y: 3 },\\n ],\\n};\\n\\n// Updated values for dataset 1\\n// Color, shape & label of the original dataset is retained if it is not updated\\nconst updatedDataset1 = {\\n key: 'uid_1',\\n values: [\\n { x: 81, y: 21 },\\n { x: 107, y: 6 },\\n { x: 109, y: 7 },\\n { x: 118, y: 5 },\\n { x: 117, y: 21 },\\n { x: 127, y: -20 },\\n { x: 137, y: -9 },\\n { x: 141, y: -6 },\\n { x: 144, y: 39 },\\n { x: 151, y: -14 },\\n { x: 156, y: -9 },\\n { x: 163, y: 4 },\\n { x: 164, y: 29 },\\n { x: 170, y: 30 },\\n { x: 172, y: 31 },\\n { x: 176, y: 34 },\\n { x: 185, y: 1 },\\n { x: 191, y: -2 },\\n { x: 193, y: 38 },\\n { x: 198, y: 40 },\\n ],\\n};\\n\\nconst getNewTicks = (currentLower, currentUpper, dataset) => {\\n const maxValue = Math.max(...dataset.values.map(value => value.y), currentUpper);\\n const minValue = Math.min(...dataset.values.map(value => value.y), currentLower);\\n\\n // add padding by using the nice function\\n const [newLower, newUpper] = d3.nice(minValue - 1, maxValue + 1, 10);\\n\\n // get new tick values\\n const ticksCount = 3;\\n const ticks = new Array().concat(d3.ticks(newLower, newUpper, ticksCount), [newLower, newUpper] );\\n\\n console.log(\\\"ticks\\\",ticks);\\n console.log(\\\"current min, max\\\",[minValue, maxValue]);\\n console.log(\\\"new min, max\\\", [newLower, newUpper]);\\n\\n return {\\n newLower,\\n newUpper,\\n ticks,\\n }\\n}\\n\\n// graph rendering\\nlet graph;\\nconst DynamicallyUpdatingDataExample = () => {\\n const [allowCalibrationStatus, SetAllowCalibrationStatus] = useState(graphConfig.allowCalibration.toString());\\n\\n // initial graph load\\n React.useEffect(() => {\\n graph = Carbon.api.graph(graphConfig);\\n graph.loadContent(Carbon.api.line(dataset1));\\n\\n const newTicks = getNewTicks(graph.config.axis.y.upperLimit, graph.config.axis.y.lowerLimit, dataset1);\\n\\n graph.config.axis.y.domain.lowerLimit = newTicks.newLower;\\n graph.config.axis.y.domain.upperLimit = newTicks.newUpper;\\n graph.config.axis.y.ticks.values = newTicks.ticks;\\n\\n graph.reflowMultipleDatasets();\\n\\n console.log(graph.config.axis.y.upperLimit)\\n\\n }, []);\\n\\n const handleClickToggleCalibration = () => {\\n graph.config.allowCalibration = !graph.config.allowCalibration;\\n SetAllowCalibrationStatus(graph.config.allowCalibration.toString());\\n\\n graph.reflowMultipleDatasets();\\n };\\n\\n // dynamically update graph data\\n const handleClickUpdateData = () => {\\n const newTicks = getNewTicks(graph.config.axis.y.lowerLimit, graph.config.axis.y.upperLimit, updatedDataset1);\\n\\n graph.config.axis.y.domain.lowerLimit = newTicks.newLower;\\n graph.config.axis.y.domain.upperLimit = newTicks.newUpper;\\n graph.config.axis.y.ticks.values = newTicks.ticks;\\n\\n graph.reflowMultipleDatasets({\\n panData: [updatedDataset1],\\n });\\n };\\n\\n // reset graph to it's original state\\n const handleClickReset = () => {\\n const newTicks = getNewTicks(graph.config.axis.y.lowerLimit, graph.config.axis.y.upperLimit, dataset1);\\n\\n graph.config.axis.y.domain.lowerLimit = newTicks.newLower;\\n graph.config.axis.y.domain.upperLimit = newTicks.newUpper;\\n graph.config.axis.y.ticks.values = newTicks.ticks;\\n\\n graph.reflowMultipleDatasets({\\n panData: [dataset1],\\n });\\n };\\n\\n return (\\n <>\\n \\n \\n \\n
\\n AllowCalibration:\\n {allowCalibrationStatus}\\n
\\n \\n >\\n );\\n};\\n\\nexport default DynamicallyUpdatingDataExample;\\n\\n\")));\n}\n;\nMDXContent.isMDXComponent = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9wYWNrYWdlcy90ZXJyYS1ncmFwaHMtZG9jcy9zcmMvdGVycmEtZGV2LXNpdGUvZ3JhcGgvQ29yZUNvbmNlcHRzLmIvZXhhbXBsZXMvcmVmbG93L0R5bmFtaWNhbGx5VXBkYXRpbmdEYXRhLmpzeD9kZXYtc2l0ZS1jb2RlYmxvY2siLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFDeUI7QUFDVTs7QUFFbkM7QUFDQTs7QUFJQSxJQUFNRSxXQUFXLEdBQUcsQ0FFcEIsQ0FBQztBQUNELElBQU1DLFNBQVMsR0FBRyxTQUFTO0FBQ1osU0FBU0MsVUFBVUEsQ0FBQUMsSUFBQSxFQUcvQjtFQUFBLElBRkRDLFVBQVUsR0FBQUQsSUFBQSxDQUFWQyxVQUFVO0lBQ1BDLEtBQUssR0FBQUMsMEZBQUEsQ0FBQUgsSUFBQSxFQUFBSSxTQUFBO0VBRVIsT0FBT1Isa0RBQUEsQ0FBQ0UsU0FBUyxFQUFBTywwRUFBQSxLQUFLUixXQUFXLEVBQU1LLEtBQUs7SUFBRUQsVUFBVSxFQUFFQSxVQUFXO0lBQUNLLE9BQU8sRUFBQztFQUFXLElBQ3ZGVixrREFBQSxjQUFLQSxrREFBQTtJQUFNVyxVQUFVLEVBQUMsS0FBSztJQUN2QixXQUFXLEVBQUU7RUFBYyx5bkpBNkszQixDQUFNLENBQ0MsQ0FBQztBQUNoQjtBQUNBO0FBQ0FSLFVBQVUsQ0FBQ1MsY0FBYyxHQUFHLElBQUkiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly90ZXJyYS1ncmFwaHMvLi9wYWNrYWdlcy90ZXJyYS1ncmFwaHMtZG9jcy9zcmMvdGVycmEtZGV2LXNpdGUvZ3JhcGgvQ29yZUNvbmNlcHRzLmIvZXhhbXBsZXMvcmVmbG93L0R5bmFtaWNhbGx5VXBkYXRpbmdEYXRhLmpzeD9jNjgwIl0sInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgbWR4IH0gZnJvbSAnQG1keC1qcy9yZWFjdCdcblxuLyogQGpzeFJ1bnRpbWUgY2xhc3NpYyAqL1xuLyogQGpzeCBtZHggKi9cblxuXG5cbmNvbnN0IGxheW91dFByb3BzID0ge1xuICBcbn07XG5jb25zdCBNRFhMYXlvdXQgPSBcIndyYXBwZXJcIlxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gTURYQ29udGVudCh7XG4gIGNvbXBvbmVudHMsXG4gIC4uLnByb3BzXG59KSB7XG4gIHJldHVybiA8TURYTGF5b3V0IHsuLi5sYXlvdXRQcm9wc30gey4uLnByb3BzfSBjb21wb25lbnRzPXtjb21wb25lbnRzfSBtZHhUeXBlPVwiTURYTGF5b3V0XCI+XG4gICAgPHByZT48Y29kZSBwYXJlbnROYW1lPVwicHJlXCIgey4uLntcbiAgICAgICAgXCJjbGFzc05hbWVcIjogXCJsYW5ndWFnZS1qc3hcIlxuICAgICAgfX0+e2BpbXBvcnQgUmVhY3QsIHsgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgKiBhcyBkMyBmcm9tJ2QzLWFycmF5JztcblxuaW1wb3J0IEJ1dHRvbiBmcm9tICd0ZXJyYS1idXR0b24nO1xuaW1wb3J0IENhcmJvbiBmcm9tICdAY2VybmVyL2NhcmJvbi1ncmFwaHMnO1xuXG4vLyAgZ3JhcGggY29uZmlndXJhdGlvbiBvYmplY3RcblxuY29uc3QgZ3JhcGhDb25maWcgPSB7XG4gIGJpbmRUbzogJyNkeW5hbWljLWRhdGEtdXBkYXRlLWV4YW1wbGUnLFxuICBheGlzOiB7XG4gICAgeDoge1xuICAgICAgbGFiZWw6ICd4LWF4aXMnLFxuICAgICAgbG93ZXJMaW1pdDogODAsXG4gICAgICB1cHBlckxpbWl0OiAyODAsXG4gICAgICByYW5nZVJvdW5kaW5nOiBmYWxzZSxcbiAgICB9LFxuICAgIHk6IHtcbiAgICAgIGxhYmVsOiAneS1heGlzJyxcbiAgICAgIGxvd2VyTGltaXQ6IC01LFxuICAgICAgdXBwZXJMaW1pdDogMjAsXG4gICAgfSxcbiAgfSxcbiAgYWxsb3dDYWxpYnJhdGlvbjogZmFsc2UsXG59O1xuXG4vLyAgZ3JhcGggZGF0YXNldFxuXG5jb25zdCBkYXRhc2V0MSA9IHtcbiAga2V5OiAndWlkXzEnLFxuICBsYWJlbDoge1xuICAgIGRpc3BsYXk6ICdEYXRhc2V0IDEnLFxuICB9LFxuICBjb2xvcjogQ2FyYm9uLmhlbHBlcnMuQ09MT1JTLlBJTkssXG4gIHZhbHVlczogW1xuICAgIHsgeDogODcsIHk6IC0yIH0sXG4gICAgeyB4OiA5NSwgeTogMSB9LFxuICAgIHsgeDogMTAzLCB5OiAtNCB9LFxuICAgIHsgeDogMTA5LCB5OiAtMiB9LFxuICAgIHsgeDogMTI4LCB5OiAzIH0sXG4gICAgeyB4OiAxNDUsIHk6IDI4IH0sXG4gICAgeyB4OiAxNTEsIHk6IDcgfSxcbiAgICB7IHg6IDE2NCwgeTogMTAgfSxcbiAgICB7IHg6IDE3NywgeTogMSB9LFxuICAgIHsgeDogMTkyLCB5OiA2IH0sXG4gICAgeyB4OiAyMDMsIHk6IC0yMSB9LFxuICAgIHsgeDogMjA5LCB5OiAtMyB9LFxuICAgIHsgeDogMjQ2LCB5OiAzIH0sXG4gIF0sXG59O1xuXG4vLyBVcGRhdGVkIHZhbHVlcyBmb3IgZGF0YXNldCAxXG4vLyBDb2xvciwgc2hhcGUgJiBsYWJlbCBvZiB0aGUgb3JpZ2luYWwgZGF0YXNldCBpcyByZXRhaW5lZCBpZiBpdCBpcyBub3QgdXBkYXRlZFxuY29uc3QgdXBkYXRlZERhdGFzZXQxID0ge1xuICBrZXk6ICd1aWRfMScsXG4gIHZhbHVlczogW1xuICAgIHsgeDogODEsIHk6IDIxIH0sXG4gICAgeyB4OiAxMDcsIHk6IDYgfSxcbiAgICB7IHg6IDEwOSwgeTogNyB9LFxuICAgIHsgeDogMTE4LCB5OiA1IH0sXG4gICAgeyB4OiAxMTcsIHk6IDIxIH0sXG4gICAgeyB4OiAxMjcsIHk6IC0yMCB9LFxuICAgIHsgeDogMTM3LCB5OiAtOSB9LFxuICAgIHsgeDogMTQxLCB5OiAtNiB9LFxuICAgIHsgeDogMTQ0LCB5OiAzOSB9LFxuICAgIHsgeDogMTUxLCB5OiAtMTQgfSxcbiAgICB7IHg6IDE1NiwgeTogLTkgfSxcbiAgICB7IHg6IDE2MywgeTogNCB9LFxuICAgIHsgeDogMTY0LCB5OiAyOSB9LFxuICAgIHsgeDogMTcwLCB5OiAzMCB9LFxuICAgIHsgeDogMTcyLCB5OiAzMSB9LFxuICAgIHsgeDogMTc2LCB5OiAzNCB9LFxuICAgIHsgeDogMTg1LCB5OiAxIH0sXG4gICAgeyB4OiAxOTEsIHk6IC0yIH0sXG4gICAgeyB4OiAxOTMsIHk6IDM4IH0sXG4gICAgeyB4OiAxOTgsIHk6IDQwIH0sXG4gIF0sXG59O1xuXG5jb25zdCBnZXROZXdUaWNrcyA9IChjdXJyZW50TG93ZXIsIGN1cnJlbnRVcHBlciwgZGF0YXNldCkgPT4ge1xuICBjb25zdCBtYXhWYWx1ZSA9IE1hdGgubWF4KC4uLmRhdGFzZXQudmFsdWVzLm1hcCh2YWx1ZSA9PiB2YWx1ZS55KSwgY3VycmVudFVwcGVyKTtcbiAgY29uc3QgbWluVmFsdWUgPSBNYXRoLm1pbiguLi5kYXRhc2V0LnZhbHVlcy5tYXAodmFsdWUgPT4gdmFsdWUueSksIGN1cnJlbnRMb3dlcik7XG5cbiAgLy8gYWRkIHBhZGRpbmcgYnkgdXNpbmcgdGhlIG5pY2UgZnVuY3Rpb25cbiAgY29uc3QgW25ld0xvd2VyLCBuZXdVcHBlcl0gPSBkMy5uaWNlKG1pblZhbHVlIC0gMSwgbWF4VmFsdWUgKyAxLCAxMCk7XG5cbiAgLy8gZ2V0IG5ldyB0aWNrIHZhbHVlc1xuICBjb25zdCB0aWNrc0NvdW50ID0gMztcbiAgY29uc3QgdGlja3MgPSBuZXcgQXJyYXkoKS5jb25jYXQoZDMudGlja3MobmV3TG93ZXIsIG5ld1VwcGVyLCB0aWNrc0NvdW50KSwgW25ld0xvd2VyLCBuZXdVcHBlcl0gKTtcblxuICBjb25zb2xlLmxvZyhcInRpY2tzXCIsdGlja3MpO1xuICBjb25zb2xlLmxvZyhcImN1cnJlbnQgbWluLCBtYXhcIixbbWluVmFsdWUsIG1heFZhbHVlXSk7XG4gIGNvbnNvbGUubG9nKFwibmV3IG1pbiwgbWF4XCIsIFtuZXdMb3dlciwgbmV3VXBwZXJdKTtcblxuICByZXR1cm4ge1xuICAgIG5ld0xvd2VyLFxuICAgIG5ld1VwcGVyLFxuICAgIHRpY2tzLFxuICB9XG59XG5cbi8vIGdyYXBoIHJlbmRlcmluZ1xubGV0IGdyYXBoO1xuY29uc3QgRHluYW1pY2FsbHlVcGRhdGluZ0RhdGFFeGFtcGxlID0gKCkgPT4ge1xuICBjb25zdCBbYWxsb3dDYWxpYnJhdGlvblN0YXR1cywgU2V0QWxsb3dDYWxpYnJhdGlvblN0YXR1c10gPSB1c2VTdGF0ZShncmFwaENvbmZpZy5hbGxvd0NhbGlicmF0aW9uLnRvU3RyaW5nKCkpO1xuXG4gIC8vIGluaXRpYWwgZ3JhcGggbG9hZFxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGdyYXBoID0gQ2FyYm9uLmFwaS5ncmFwaChncmFwaENvbmZpZyk7XG4gICAgZ3JhcGgubG9hZENvbnRlbnQoQ2FyYm9uLmFwaS5saW5lKGRhdGFzZXQxKSk7XG5cbiAgICBjb25zdCBuZXdUaWNrcyA9IGdldE5ld1RpY2tzKGdyYXBoLmNvbmZpZy5heGlzLnkudXBwZXJMaW1pdCwgZ3JhcGguY29uZmlnLmF4aXMueS5sb3dlckxpbWl0LCBkYXRhc2V0MSk7XG5cbiAgICBncmFwaC5jb25maWcuYXhpcy55LmRvbWFpbi5sb3dlckxpbWl0ID0gbmV3VGlja3MubmV3TG93ZXI7XG4gICAgZ3JhcGguY29uZmlnLmF4aXMueS5kb21haW4udXBwZXJMaW1pdCA9IG5ld1RpY2tzLm5ld1VwcGVyO1xuICAgIGdyYXBoLmNvbmZpZy5heGlzLnkudGlja3MudmFsdWVzID0gbmV3VGlja3MudGlja3M7XG5cbiAgICBncmFwaC5yZWZsb3dNdWx0aXBsZURhdGFzZXRzKCk7XG5cbiAgICBjb25zb2xlLmxvZyhncmFwaC5jb25maWcuYXhpcy55LnVwcGVyTGltaXQpXG5cbiAgfSwgW10pO1xuXG4gIGNvbnN0IGhhbmRsZUNsaWNrVG9nZ2xlQ2FsaWJyYXRpb24gPSAoKSA9PiB7XG4gICAgZ3JhcGguY29uZmlnLmFsbG93Q2FsaWJyYXRpb24gPSAhZ3JhcGguY29uZmlnLmFsbG93Q2FsaWJyYXRpb247XG4gICAgU2V0QWxsb3dDYWxpYnJhdGlvblN0YXR1cyhncmFwaC5jb25maWcuYWxsb3dDYWxpYnJhdGlvbi50b1N0cmluZygpKTtcblxuICAgIGdyYXBoLnJlZmxvd011bHRpcGxlRGF0YXNldHMoKTtcbiAgfTtcblxuICAvLyBkeW5hbWljYWxseSB1cGRhdGUgZ3JhcGggZGF0YVxuICBjb25zdCBoYW5kbGVDbGlja1VwZGF0ZURhdGEgPSAoKSA9PiB7XG4gICAgY29uc3QgbmV3VGlja3MgPSBnZXROZXdUaWNrcyhncmFwaC5jb25maWcuYXhpcy55Lmxvd2VyTGltaXQsIGdyYXBoLmNvbmZpZy5heGlzLnkudXBwZXJMaW1pdCwgdXBkYXRlZERhdGFzZXQxKTtcblxuICAgIGdyYXBoLmNvbmZpZy5heGlzLnkuZG9tYWluLmxvd2VyTGltaXQgPSBuZXdUaWNrcy5uZXdMb3dlcjtcbiAgICBncmFwaC5jb25maWcuYXhpcy55LmRvbWFpbi51cHBlckxpbWl0ID0gbmV3VGlja3MubmV3VXBwZXI7XG4gICAgZ3JhcGguY29uZmlnLmF4aXMueS50aWNrcy52YWx1ZXMgPSBuZXdUaWNrcy50aWNrcztcblxuICAgIGdyYXBoLnJlZmxvd011bHRpcGxlRGF0YXNldHMoe1xuICAgICAgcGFuRGF0YTogW3VwZGF0ZWREYXRhc2V0MV0sXG4gICAgfSk7XG4gIH07XG5cbiAgLy8gcmVzZXQgZ3JhcGggdG8gaXQncyBvcmlnaW5hbCBzdGF0ZVxuICBjb25zdCBoYW5kbGVDbGlja1Jlc2V0ID0gKCkgPT4ge1xuICAgIGNvbnN0IG5ld1RpY2tzID0gZ2V0TmV3VGlja3MoZ3JhcGguY29uZmlnLmF4aXMueS5sb3dlckxpbWl0LCBncmFwaC5jb25maWcuYXhpcy55LnVwcGVyTGltaXQsIGRhdGFzZXQxKTtcblxuICAgIGdyYXBoLmNvbmZpZy5heGlzLnkuZG9tYWluLmxvd2VyTGltaXQgPSBuZXdUaWNrcy5uZXdMb3dlcjtcbiAgICBncmFwaC5jb25maWcuYXhpcy55LmRvbWFpbi51cHBlckxpbWl0ID0gbmV3VGlja3MubmV3VXBwZXI7XG4gICAgZ3JhcGguY29uZmlnLmF4aXMueS50aWNrcy52YWx1ZXMgPSBuZXdUaWNrcy50aWNrcztcblxuICAgIGdyYXBoLnJlZmxvd011bHRpcGxlRGF0YXNldHMoe1xuICAgICAgcGFuRGF0YTogW2RhdGFzZXQxXSxcbiAgICB9KTtcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8QnV0dG9uIHRleHQ9XCJUb2dnbGUgQ2FsaWJyYXRpb25cIiBvbkNsaWNrPXtoYW5kbGVDbGlja1RvZ2dsZUNhbGlicmF0aW9ufSAvPlxuICAgICAgPEJ1dHRvbiB0ZXh0PVwiVXBkYXRlIERhdGFcIiBvbkNsaWNrPXtoYW5kbGVDbGlja1VwZGF0ZURhdGF9IC8+XG4gICAgICA8QnV0dG9uIHRleHQ9XCJSZXNldFwiIG9uQ2xpY2s9e2hhbmRsZUNsaWNrUmVzZXR9IC8+XG4gICAgICA8ZGl2PlxuICAgICAgICBBbGxvd0NhbGlicmF0aW9uOlxuICAgICAgICB7YWxsb3dDYWxpYnJhdGlvblN0YXR1c31cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBpZD1cImR5bmFtaWMtZGF0YS11cGRhdGUtZXhhbXBsZVwiIC8+XG4gICAgPC8+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBEeW5hbWljYWxseVVwZGF0aW5nRGF0YUV4YW1wbGU7XG5cbmB9PC9jb2RlPjwvcHJlPlxuICAgIDwvTURYTGF5b3V0Pjtcbn1cbjtcbk1EWENvbnRlbnQuaXNNRFhDb21wb25lbnQgPSB0cnVlOyJdLCJuYW1lcyI6WyJSZWFjdCIsIm1keCIsImxheW91dFByb3BzIiwiTURYTGF5b3V0IiwiTURYQ29udGVudCIsIl9yZWYiLCJjb21wb25lbnRzIiwicHJvcHMiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMiLCJfZXhjbHVkZWQiLCJfZXh0ZW5kcyIsIm1keFR5cGUiLCJwYXJlbnROYW1lIiwiaXNNRFhDb21wb25lbnQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./packages/terra-graphs-docs/src/terra-dev-site/graph/CoreConcepts.b/examples/reflow/DynamicallyUpdatingData.jsx?dev-site-codeblock\n");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ MDXContent; }\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var _mdx_js_react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @mdx-js/react */ \"./node_modules/@mdx-js/react/dist/cjs.js\");\n\n\nvar _excluded = [\"components\"];\n\n\n\n/* @jsxRuntime classic */\n/* @jsx mdx */\n\nvar layoutProps = {};\nvar MDXLayout = \"wrapper\";\nfunction MDXContent(_ref) {\n var components = _ref.components,\n props = (0,_babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_ref, _excluded);\n return (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_3__.mdx)(MDXLayout, (0,_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, layoutProps, props, {\n components: components,\n mdxType: \"MDXLayout\"\n }), (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_3__.mdx)(\"pre\", null, (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_3__.mdx)(\"code\", {\n parentName: \"pre\",\n \"className\": \"language-jsx\"\n }, \"import React, { useState } from 'react';\\nimport * as d3 from'd3-array';\\n\\nimport Button from 'terra-button';\\nimport Carbon from '@cerner/carbon-graphs';\\n\\n// graph configuration object\\n\\nconst graphConfig = {\\n bindTo: '#dynamic-data-update-example',\\n axis: {\\n x: {\\n label: 'x-axis',\\n lowerLimit: 80,\\n upperLimit: 280,\\n rangeRounding: false,\\n },\\n y: {\\n label: 'y-axis',\\n lowerLimit: -5,\\n upperLimit: 20,\\n },\\n },\\n allowCalibration: false,\\n};\\n\\n// graph dataset\\n\\nconst dataset1 = {\\n key: 'uid_1',\\n label: {\\n display: 'Dataset 1',\\n },\\n color: Carbon.helpers.COLORS.PINK,\\n values: [\\n { x: 87, y: -2 },\\n { x: 95, y: 1 },\\n { x: 103, y: -4 },\\n { x: 109, y: -2 },\\n { x: 128, y: 3 },\\n { x: 145, y: 28 },\\n { x: 151, y: 7 },\\n { x: 164, y: 10 },\\n { x: 177, y: 1 },\\n { x: 192, y: 6 },\\n { x: 203, y: -21 },\\n { x: 209, y: -3 },\\n { x: 246, y: 3 },\\n ],\\n};\\n\\n// Updated values for dataset 1\\n// Color, shape & label of the original dataset is retained if it is not updated\\nconst updatedDataset1 = {\\n key: 'uid_1',\\n values: [\\n { x: 81, y: 21 },\\n { x: 107, y: 6 },\\n { x: 109, y: 7 },\\n { x: 118, y: 5 },\\n { x: 117, y: 21 },\\n { x: 127, y: -20 },\\n { x: 137, y: -9 },\\n { x: 141, y: -6 },\\n { x: 144, y: 39 },\\n { x: 151, y: -14 },\\n { x: 156, y: -9 },\\n { x: 163, y: 4 },\\n { x: 164, y: 29 },\\n { x: 170, y: 30 },\\n { x: 172, y: 31 },\\n { x: 176, y: 34 },\\n { x: 185, y: 1 },\\n { x: 191, y: -2 },\\n { x: 193, y: 38 },\\n { x: 198, y: 40 },\\n ],\\n};\\n\\nconst getNewTicks = (currentLower, currentUpper, dataset) => {\\n const maxValue = Math.max(...dataset.values.map(value => value.y), currentUpper);\\n const minValue = Math.min(...dataset.values.map(value => value.y), currentLower);\\n\\n // add padding by using the nice function\\n const padding = Math.abs(minValue - maxValue) * 0.05;\\n const [newLower, newUpper] = d3.nice(minValue - padding, maxValue + padding, 10);\\n\\n // get new tick values\\n const ticksCount = 3;\\n const ticks = new Array().concat(d3.ticks(newLower, newUpper, ticksCount), [newLower, newUpper] );\\n\\n console.log(\\\"ticks\\\",ticks);\\n console.log(\\\"current min, max\\\",[minValue, maxValue]);\\n console.log(\\\"new min, max\\\", [newLower, newUpper]);\\n\\n return {\\n newLower,\\n newUpper,\\n ticks,\\n }\\n}\\n\\n// graph rendering\\nlet graph;\\nconst DynamicallyUpdatingDataExample = () => {\\n const [allowCalibrationStatus, SetAllowCalibrationStatus] = useState(graphConfig.allowCalibration.toString());\\n\\n // initial graph load\\n React.useEffect(() => {\\n graph = Carbon.api.graph(graphConfig);\\n graph.loadContent(Carbon.api.line(dataset1));\\n\\n const newTicks = getNewTicks(graph.config.axis.y.upperLimit, graph.config.axis.y.lowerLimit, dataset1);\\n\\n graph.config.axis.y.domain.lowerLimit = newTicks.newLower;\\n graph.config.axis.y.domain.upperLimit = newTicks.newUpper;\\n graph.config.axis.y.ticks.values = newTicks.ticks;\\n\\n graph.reflowMultipleDatasets();\\n\\n console.log(graph.config.axis.y.upperLimit)\\n\\n }, []);\\n\\n const handleClickToggleCalibration = () => {\\n graph.config.allowCalibration = !graph.config.allowCalibration;\\n SetAllowCalibrationStatus(graph.config.allowCalibration.toString());\\n\\n graph.reflowMultipleDatasets();\\n };\\n\\n // dynamically update graph data\\n const handleClickUpdateData = () => {\\n const newTicks = getNewTicks(graph.config.axis.y.lowerLimit, graph.config.axis.y.upperLimit, updatedDataset1);\\n\\n graph.config.axis.y.domain.lowerLimit = newTicks.newLower;\\n graph.config.axis.y.domain.upperLimit = newTicks.newUpper;\\n graph.config.axis.y.ticks.values = newTicks.ticks;\\n\\n graph.reflowMultipleDatasets({\\n panData: [updatedDataset1],\\n });\\n };\\n\\n // reset graph to it's original state\\n const handleClickReset = () => {\\n const newTicks = getNewTicks(graph.config.axis.y.lowerLimit, graph.config.axis.y.upperLimit, dataset1);\\n\\n graph.config.axis.y.domain.lowerLimit = newTicks.newLower;\\n graph.config.axis.y.domain.upperLimit = newTicks.newUpper;\\n graph.config.axis.y.ticks.values = newTicks.ticks;\\n\\n graph.reflowMultipleDatasets({\\n panData: [dataset1],\\n });\\n };\\n\\n return (\\n <>\\n \\n \\n \\n \\n AllowCalibration:\\n {allowCalibrationStatus}\\n
\\n \\n >\\n );\\n};\\n\\nexport default DynamicallyUpdatingDataExample;\\n\\n\")));\n}\n;\nMDXContent.isMDXComponent = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9wYWNrYWdlcy90ZXJyYS1ncmFwaHMtZG9jcy9zcmMvdGVycmEtZGV2LXNpdGUvZ3JhcGgvQ29yZUNvbmNlcHRzLmIvZXhhbXBsZXMvcmVmbG93L0R5bmFtaWNhbGx5VXBkYXRpbmdEYXRhLmpzeD9kZXYtc2l0ZS1jb2RlYmxvY2siLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFDeUI7QUFDVTs7QUFFbkM7QUFDQTs7QUFJQSxJQUFNRSxXQUFXLEdBQUcsQ0FFcEIsQ0FBQztBQUNELElBQU1DLFNBQVMsR0FBRyxTQUFTO0FBQ1osU0FBU0MsVUFBVUEsQ0FBQUMsSUFBQSxFQUcvQjtFQUFBLElBRkRDLFVBQVUsR0FBQUQsSUFBQSxDQUFWQyxVQUFVO0lBQ1BDLEtBQUssR0FBQUMsMEZBQUEsQ0FBQUgsSUFBQSxFQUFBSSxTQUFBO0VBRVIsT0FBT1Isa0RBQUEsQ0FBQ0UsU0FBUyxFQUFBTywwRUFBQSxLQUFLUixXQUFXLEVBQU1LLEtBQUs7SUFBRUQsVUFBVSxFQUFFQSxVQUFXO0lBQUNLLE9BQU8sRUFBQztFQUFXLElBQ3ZGVixrREFBQSxjQUFLQSxrREFBQTtJQUFNVyxVQUFVLEVBQUMsS0FBSztJQUN2QixXQUFXLEVBQUU7RUFBYyw4ckpBOEszQixDQUFNLENBQ0MsQ0FBQztBQUNoQjtBQUNBO0FBQ0FSLFVBQVUsQ0FBQ1MsY0FBYyxHQUFHLElBQUkiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly90ZXJyYS1ncmFwaHMvLi9wYWNrYWdlcy90ZXJyYS1ncmFwaHMtZG9jcy9zcmMvdGVycmEtZGV2LXNpdGUvZ3JhcGgvQ29yZUNvbmNlcHRzLmIvZXhhbXBsZXMvcmVmbG93L0R5bmFtaWNhbGx5VXBkYXRpbmdEYXRhLmpzeD9jNjgwIl0sInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgbWR4IH0gZnJvbSAnQG1keC1qcy9yZWFjdCdcblxuLyogQGpzeFJ1bnRpbWUgY2xhc3NpYyAqL1xuLyogQGpzeCBtZHggKi9cblxuXG5cbmNvbnN0IGxheW91dFByb3BzID0ge1xuICBcbn07XG5jb25zdCBNRFhMYXlvdXQgPSBcIndyYXBwZXJcIlxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gTURYQ29udGVudCh7XG4gIGNvbXBvbmVudHMsXG4gIC4uLnByb3BzXG59KSB7XG4gIHJldHVybiA8TURYTGF5b3V0IHsuLi5sYXlvdXRQcm9wc30gey4uLnByb3BzfSBjb21wb25lbnRzPXtjb21wb25lbnRzfSBtZHhUeXBlPVwiTURYTGF5b3V0XCI+XG4gICAgPHByZT48Y29kZSBwYXJlbnROYW1lPVwicHJlXCIgey4uLntcbiAgICAgICAgXCJjbGFzc05hbWVcIjogXCJsYW5ndWFnZS1qc3hcIlxuICAgICAgfX0+e2BpbXBvcnQgUmVhY3QsIHsgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgKiBhcyBkMyBmcm9tJ2QzLWFycmF5JztcblxuaW1wb3J0IEJ1dHRvbiBmcm9tICd0ZXJyYS1idXR0b24nO1xuaW1wb3J0IENhcmJvbiBmcm9tICdAY2VybmVyL2NhcmJvbi1ncmFwaHMnO1xuXG4vLyAgZ3JhcGggY29uZmlndXJhdGlvbiBvYmplY3RcblxuY29uc3QgZ3JhcGhDb25maWcgPSB7XG4gIGJpbmRUbzogJyNkeW5hbWljLWRhdGEtdXBkYXRlLWV4YW1wbGUnLFxuICBheGlzOiB7XG4gICAgeDoge1xuICAgICAgbGFiZWw6ICd4LWF4aXMnLFxuICAgICAgbG93ZXJMaW1pdDogODAsXG4gICAgICB1cHBlckxpbWl0OiAyODAsXG4gICAgICByYW5nZVJvdW5kaW5nOiBmYWxzZSxcbiAgICB9LFxuICAgIHk6IHtcbiAgICAgIGxhYmVsOiAneS1heGlzJyxcbiAgICAgIGxvd2VyTGltaXQ6IC01LFxuICAgICAgdXBwZXJMaW1pdDogMjAsXG4gICAgfSxcbiAgfSxcbiAgYWxsb3dDYWxpYnJhdGlvbjogZmFsc2UsXG59O1xuXG4vLyAgZ3JhcGggZGF0YXNldFxuXG5jb25zdCBkYXRhc2V0MSA9IHtcbiAga2V5OiAndWlkXzEnLFxuICBsYWJlbDoge1xuICAgIGRpc3BsYXk6ICdEYXRhc2V0IDEnLFxuICB9LFxuICBjb2xvcjogQ2FyYm9uLmhlbHBlcnMuQ09MT1JTLlBJTkssXG4gIHZhbHVlczogW1xuICAgIHsgeDogODcsIHk6IC0yIH0sXG4gICAgeyB4OiA5NSwgeTogMSB9LFxuICAgIHsgeDogMTAzLCB5OiAtNCB9LFxuICAgIHsgeDogMTA5LCB5OiAtMiB9LFxuICAgIHsgeDogMTI4LCB5OiAzIH0sXG4gICAgeyB4OiAxNDUsIHk6IDI4IH0sXG4gICAgeyB4OiAxNTEsIHk6IDcgfSxcbiAgICB7IHg6IDE2NCwgeTogMTAgfSxcbiAgICB7IHg6IDE3NywgeTogMSB9LFxuICAgIHsgeDogMTkyLCB5OiA2IH0sXG4gICAgeyB4OiAyMDMsIHk6IC0yMSB9LFxuICAgIHsgeDogMjA5LCB5OiAtMyB9LFxuICAgIHsgeDogMjQ2LCB5OiAzIH0sXG4gIF0sXG59O1xuXG4vLyBVcGRhdGVkIHZhbHVlcyBmb3IgZGF0YXNldCAxXG4vLyBDb2xvciwgc2hhcGUgJiBsYWJlbCBvZiB0aGUgb3JpZ2luYWwgZGF0YXNldCBpcyByZXRhaW5lZCBpZiBpdCBpcyBub3QgdXBkYXRlZFxuY29uc3QgdXBkYXRlZERhdGFzZXQxID0ge1xuICBrZXk6ICd1aWRfMScsXG4gIHZhbHVlczogW1xuICAgIHsgeDogODEsIHk6IDIxIH0sXG4gICAgeyB4OiAxMDcsIHk6IDYgfSxcbiAgICB7IHg6IDEwOSwgeTogNyB9LFxuICAgIHsgeDogMTE4LCB5OiA1IH0sXG4gICAgeyB4OiAxMTcsIHk6IDIxIH0sXG4gICAgeyB4OiAxMjcsIHk6IC0yMCB9LFxuICAgIHsgeDogMTM3LCB5OiAtOSB9LFxuICAgIHsgeDogMTQxLCB5OiAtNiB9LFxuICAgIHsgeDogMTQ0LCB5OiAzOSB9LFxuICAgIHsgeDogMTUxLCB5OiAtMTQgfSxcbiAgICB7IHg6IDE1NiwgeTogLTkgfSxcbiAgICB7IHg6IDE2MywgeTogNCB9LFxuICAgIHsgeDogMTY0LCB5OiAyOSB9LFxuICAgIHsgeDogMTcwLCB5OiAzMCB9LFxuICAgIHsgeDogMTcyLCB5OiAzMSB9LFxuICAgIHsgeDogMTc2LCB5OiAzNCB9LFxuICAgIHsgeDogMTg1LCB5OiAxIH0sXG4gICAgeyB4OiAxOTEsIHk6IC0yIH0sXG4gICAgeyB4OiAxOTMsIHk6IDM4IH0sXG4gICAgeyB4OiAxOTgsIHk6IDQwIH0sXG4gIF0sXG59O1xuXG5jb25zdCBnZXROZXdUaWNrcyA9IChjdXJyZW50TG93ZXIsIGN1cnJlbnRVcHBlciwgZGF0YXNldCkgPT4ge1xuICBjb25zdCBtYXhWYWx1ZSA9IE1hdGgubWF4KC4uLmRhdGFzZXQudmFsdWVzLm1hcCh2YWx1ZSA9PiB2YWx1ZS55KSwgY3VycmVudFVwcGVyKTtcbiAgY29uc3QgbWluVmFsdWUgPSBNYXRoLm1pbiguLi5kYXRhc2V0LnZhbHVlcy5tYXAodmFsdWUgPT4gdmFsdWUueSksIGN1cnJlbnRMb3dlcik7XG5cbiAgLy8gYWRkIHBhZGRpbmcgYnkgdXNpbmcgdGhlIG5pY2UgZnVuY3Rpb25cbiAgY29uc3QgcGFkZGluZyA9IE1hdGguYWJzKG1pblZhbHVlIC0gbWF4VmFsdWUpICogMC4wNTtcbiAgY29uc3QgW25ld0xvd2VyLCBuZXdVcHBlcl0gPSBkMy5uaWNlKG1pblZhbHVlIC0gcGFkZGluZywgbWF4VmFsdWUgKyBwYWRkaW5nLCAxMCk7XG5cbiAgLy8gZ2V0IG5ldyB0aWNrIHZhbHVlc1xuICBjb25zdCB0aWNrc0NvdW50ID0gMztcbiAgY29uc3QgdGlja3MgPSBuZXcgQXJyYXkoKS5jb25jYXQoZDMudGlja3MobmV3TG93ZXIsIG5ld1VwcGVyLCB0aWNrc0NvdW50KSwgW25ld0xvd2VyLCBuZXdVcHBlcl0gKTtcblxuICBjb25zb2xlLmxvZyhcInRpY2tzXCIsdGlja3MpO1xuICBjb25zb2xlLmxvZyhcImN1cnJlbnQgbWluLCBtYXhcIixbbWluVmFsdWUsIG1heFZhbHVlXSk7XG4gIGNvbnNvbGUubG9nKFwibmV3IG1pbiwgbWF4XCIsIFtuZXdMb3dlciwgbmV3VXBwZXJdKTtcblxuICByZXR1cm4ge1xuICAgIG5ld0xvd2VyLFxuICAgIG5ld1VwcGVyLFxuICAgIHRpY2tzLFxuICB9XG59XG5cbi8vIGdyYXBoIHJlbmRlcmluZ1xubGV0IGdyYXBoO1xuY29uc3QgRHluYW1pY2FsbHlVcGRhdGluZ0RhdGFFeGFtcGxlID0gKCkgPT4ge1xuICBjb25zdCBbYWxsb3dDYWxpYnJhdGlvblN0YXR1cywgU2V0QWxsb3dDYWxpYnJhdGlvblN0YXR1c10gPSB1c2VTdGF0ZShncmFwaENvbmZpZy5hbGxvd0NhbGlicmF0aW9uLnRvU3RyaW5nKCkpO1xuXG4gIC8vIGluaXRpYWwgZ3JhcGggbG9hZFxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGdyYXBoID0gQ2FyYm9uLmFwaS5ncmFwaChncmFwaENvbmZpZyk7XG4gICAgZ3JhcGgubG9hZENvbnRlbnQoQ2FyYm9uLmFwaS5saW5lKGRhdGFzZXQxKSk7XG5cbiAgICBjb25zdCBuZXdUaWNrcyA9IGdldE5ld1RpY2tzKGdyYXBoLmNvbmZpZy5heGlzLnkudXBwZXJMaW1pdCwgZ3JhcGguY29uZmlnLmF4aXMueS5sb3dlckxpbWl0LCBkYXRhc2V0MSk7XG5cbiAgICBncmFwaC5jb25maWcuYXhpcy55LmRvbWFpbi5sb3dlckxpbWl0ID0gbmV3VGlja3MubmV3TG93ZXI7XG4gICAgZ3JhcGguY29uZmlnLmF4aXMueS5kb21haW4udXBwZXJMaW1pdCA9IG5ld1RpY2tzLm5ld1VwcGVyO1xuICAgIGdyYXBoLmNvbmZpZy5heGlzLnkudGlja3MudmFsdWVzID0gbmV3VGlja3MudGlja3M7XG5cbiAgICBncmFwaC5yZWZsb3dNdWx0aXBsZURhdGFzZXRzKCk7XG5cbiAgICBjb25zb2xlLmxvZyhncmFwaC5jb25maWcuYXhpcy55LnVwcGVyTGltaXQpXG5cbiAgfSwgW10pO1xuXG4gIGNvbnN0IGhhbmRsZUNsaWNrVG9nZ2xlQ2FsaWJyYXRpb24gPSAoKSA9PiB7XG4gICAgZ3JhcGguY29uZmlnLmFsbG93Q2FsaWJyYXRpb24gPSAhZ3JhcGguY29uZmlnLmFsbG93Q2FsaWJyYXRpb247XG4gICAgU2V0QWxsb3dDYWxpYnJhdGlvblN0YXR1cyhncmFwaC5jb25maWcuYWxsb3dDYWxpYnJhdGlvbi50b1N0cmluZygpKTtcblxuICAgIGdyYXBoLnJlZmxvd011bHRpcGxlRGF0YXNldHMoKTtcbiAgfTtcblxuICAvLyBkeW5hbWljYWxseSB1cGRhdGUgZ3JhcGggZGF0YVxuICBjb25zdCBoYW5kbGVDbGlja1VwZGF0ZURhdGEgPSAoKSA9PiB7XG4gICAgY29uc3QgbmV3VGlja3MgPSBnZXROZXdUaWNrcyhncmFwaC5jb25maWcuYXhpcy55Lmxvd2VyTGltaXQsIGdyYXBoLmNvbmZpZy5heGlzLnkudXBwZXJMaW1pdCwgdXBkYXRlZERhdGFzZXQxKTtcblxuICAgIGdyYXBoLmNvbmZpZy5heGlzLnkuZG9tYWluLmxvd2VyTGltaXQgPSBuZXdUaWNrcy5uZXdMb3dlcjtcbiAgICBncmFwaC5jb25maWcuYXhpcy55LmRvbWFpbi51cHBlckxpbWl0ID0gbmV3VGlja3MubmV3VXBwZXI7XG4gICAgZ3JhcGguY29uZmlnLmF4aXMueS50aWNrcy52YWx1ZXMgPSBuZXdUaWNrcy50aWNrcztcblxuICAgIGdyYXBoLnJlZmxvd011bHRpcGxlRGF0YXNldHMoe1xuICAgICAgcGFuRGF0YTogW3VwZGF0ZWREYXRhc2V0MV0sXG4gICAgfSk7XG4gIH07XG5cbiAgLy8gcmVzZXQgZ3JhcGggdG8gaXQncyBvcmlnaW5hbCBzdGF0ZVxuICBjb25zdCBoYW5kbGVDbGlja1Jlc2V0ID0gKCkgPT4ge1xuICAgIGNvbnN0IG5ld1RpY2tzID0gZ2V0TmV3VGlja3MoZ3JhcGguY29uZmlnLmF4aXMueS5sb3dlckxpbWl0LCBncmFwaC5jb25maWcuYXhpcy55LnVwcGVyTGltaXQsIGRhdGFzZXQxKTtcblxuICAgIGdyYXBoLmNvbmZpZy5heGlzLnkuZG9tYWluLmxvd2VyTGltaXQgPSBuZXdUaWNrcy5uZXdMb3dlcjtcbiAgICBncmFwaC5jb25maWcuYXhpcy55LmRvbWFpbi51cHBlckxpbWl0ID0gbmV3VGlja3MubmV3VXBwZXI7XG4gICAgZ3JhcGguY29uZmlnLmF4aXMueS50aWNrcy52YWx1ZXMgPSBuZXdUaWNrcy50aWNrcztcblxuICAgIGdyYXBoLnJlZmxvd011bHRpcGxlRGF0YXNldHMoe1xuICAgICAgcGFuRGF0YTogW2RhdGFzZXQxXSxcbiAgICB9KTtcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8QnV0dG9uIHRleHQ9XCJUb2dnbGUgQ2FsaWJyYXRpb25cIiBvbkNsaWNrPXtoYW5kbGVDbGlja1RvZ2dsZUNhbGlicmF0aW9ufSAvPlxuICAgICAgPEJ1dHRvbiB0ZXh0PVwiVXBkYXRlIERhdGFcIiBvbkNsaWNrPXtoYW5kbGVDbGlja1VwZGF0ZURhdGF9IC8+XG4gICAgICA8QnV0dG9uIHRleHQ9XCJSZXNldFwiIG9uQ2xpY2s9e2hhbmRsZUNsaWNrUmVzZXR9IC8+XG4gICAgICA8ZGl2PlxuICAgICAgICBBbGxvd0NhbGlicmF0aW9uOlxuICAgICAgICB7YWxsb3dDYWxpYnJhdGlvblN0YXR1c31cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBpZD1cImR5bmFtaWMtZGF0YS11cGRhdGUtZXhhbXBsZVwiIC8+XG4gICAgPC8+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBEeW5hbWljYWxseVVwZGF0aW5nRGF0YUV4YW1wbGU7XG5cbmB9PC9jb2RlPjwvcHJlPlxuICAgIDwvTURYTGF5b3V0Pjtcbn1cbjtcbk1EWENvbnRlbnQuaXNNRFhDb21wb25lbnQgPSB0cnVlOyJdLCJuYW1lcyI6WyJSZWFjdCIsIm1keCIsImxheW91dFByb3BzIiwiTURYTGF5b3V0IiwiTURYQ29udGVudCIsIl9yZWYiLCJjb21wb25lbnRzIiwicHJvcHMiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMiLCJfZXhjbHVkZWQiLCJfZXh0ZW5kcyIsIm1keFR5cGUiLCJwYXJlbnROYW1lIiwiaXNNRFhDb21wb25lbnQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./packages/terra-graphs-docs/src/terra-dev-site/graph/CoreConcepts.b/examples/reflow/DynamicallyUpdatingData.jsx?dev-site-codeblock\n");
/***/ }),
@@ -115,7 +115,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _bab
\************************************************************************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ \"./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! d3-array */ \"./packages/terra-graphs-docs/node_modules/d3-array/src/nice.js\");\n/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! d3-array */ \"./packages/terra-graphs-docs/node_modules/d3-array/src/ticks.js\");\n/* harmony import */ var terra_button__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! terra-button */ \"./node_modules/terra-button/lib/Button.js\");\n/* harmony import */ var _cerner_carbon_graphs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @cerner/carbon-graphs */ \"./packages/carbon-graphs/src/index.js\");\n\n\n\n\n\n\n\n// graph configuration object\n\nvar graphConfig = {\n bindTo: '#dynamic-data-update-example',\n axis: {\n x: {\n label: 'x-axis',\n lowerLimit: 80,\n upperLimit: 280,\n rangeRounding: false\n },\n y: {\n label: 'y-axis',\n lowerLimit: -5,\n upperLimit: 20\n }\n },\n allowCalibration: false\n};\n\n// graph dataset\n\nvar dataset1 = {\n key: 'uid_1',\n label: {\n display: 'Dataset 1'\n },\n color: _cerner_carbon_graphs__WEBPACK_IMPORTED_MODULE_4__[\"default\"].helpers.COLORS.PINK,\n values: [{\n x: 87,\n y: -2\n }, {\n x: 95,\n y: 1\n }, {\n x: 103,\n y: -4\n }, {\n x: 109,\n y: -2\n }, {\n x: 128,\n y: 3\n }, {\n x: 145,\n y: 28\n }, {\n x: 151,\n y: 7\n }, {\n x: 164,\n y: 10\n }, {\n x: 177,\n y: 1\n }, {\n x: 192,\n y: 6\n }, {\n x: 203,\n y: -21\n }, {\n x: 209,\n y: -3\n }, {\n x: 246,\n y: 3\n }]\n};\n\n// Updated values for dataset 1\n// Color, shape & label of the original dataset is retained if it is not updated\nvar updatedDataset1 = {\n key: 'uid_1',\n values: [{\n x: 81,\n y: 21\n }, {\n x: 107,\n y: 6\n }, {\n x: 109,\n y: 7\n }, {\n x: 118,\n y: 5\n }, {\n x: 117,\n y: 21\n }, {\n x: 127,\n y: -20\n }, {\n x: 137,\n y: -9\n }, {\n x: 141,\n y: -6\n }, {\n x: 144,\n y: 39\n }, {\n x: 151,\n y: -14\n }, {\n x: 156,\n y: -9\n }, {\n x: 163,\n y: 4\n }, {\n x: 164,\n y: 29\n }, {\n x: 170,\n y: 30\n }, {\n x: 172,\n y: 31\n }, {\n x: 176,\n y: 34\n }, {\n x: 185,\n y: 1\n }, {\n x: 191,\n y: -2\n }, {\n x: 193,\n y: 38\n }, {\n x: 198,\n y: 40\n }]\n};\nvar getNewTicks = function getNewTicks(currentLower, currentUpper, dataset) {\n var maxValue = Math.max.apply(Math, (0,_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(dataset.values.map(function (value) {\n return value.y;\n })).concat([currentUpper]));\n var minValue = Math.min.apply(Math, (0,_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(dataset.values.map(function (value) {\n return value.y;\n })).concat([currentLower]));\n\n // add padding by using the nice function\n var _d3$nice = d3_array__WEBPACK_IMPORTED_MODULE_5__[\"default\"](minValue - 1, maxValue + 1, 10),\n _d3$nice2 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_d3$nice, 2),\n newLower = _d3$nice2[0],\n newUpper = _d3$nice2[1];\n\n // get new tick values\n var ticksCount = 3;\n var ticks = new Array().concat(d3_array__WEBPACK_IMPORTED_MODULE_6__[\"default\"](newLower, newUpper, ticksCount), [newLower, newUpper]);\n console.log(\"ticks\", ticks);\n console.log(\"current min, max\", [minValue, maxValue]);\n console.log(\"new min, max\", [newLower, newUpper]);\n return {\n newLower: newLower,\n newUpper: newUpper,\n ticks: ticks\n };\n};\n\n// graph rendering\nvar graph;\nvar DynamicallyUpdatingDataExample = function DynamicallyUpdatingDataExample() {\n var _useState = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(graphConfig.allowCalibration.toString()),\n _useState2 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_useState, 2),\n allowCalibrationStatus = _useState2[0],\n SetAllowCalibrationStatus = _useState2[1];\n\n // initial graph load\n react__WEBPACK_IMPORTED_MODULE_2__.useEffect(function () {\n graph = _cerner_carbon_graphs__WEBPACK_IMPORTED_MODULE_4__[\"default\"].api.graph(graphConfig);\n graph.loadContent(_cerner_carbon_graphs__WEBPACK_IMPORTED_MODULE_4__[\"default\"].api.line(dataset1));\n var newTicks = getNewTicks(graph.config.axis.y.upperLimit, graph.config.axis.y.lowerLimit, dataset1);\n graph.config.axis.y.domain.lowerLimit = newTicks.newLower;\n graph.config.axis.y.domain.upperLimit = newTicks.newUpper;\n graph.config.axis.y.ticks.values = newTicks.ticks;\n graph.reflowMultipleDatasets();\n console.log(graph.config.axis.y.upperLimit);\n }, []);\n var handleClickToggleCalibration = function handleClickToggleCalibration() {\n graph.config.allowCalibration = !graph.config.allowCalibration;\n SetAllowCalibrationStatus(graph.config.allowCalibration.toString());\n graph.reflowMultipleDatasets();\n };\n\n // dynamically update graph data\n var handleClickUpdateData = function handleClickUpdateData() {\n var newTicks = getNewTicks(graph.config.axis.y.lowerLimit, graph.config.axis.y.upperLimit, updatedDataset1);\n graph.config.axis.y.domain.lowerLimit = newTicks.newLower;\n graph.config.axis.y.domain.upperLimit = newTicks.newUpper;\n graph.config.axis.y.ticks.values = newTicks.ticks;\n graph.reflowMultipleDatasets({\n panData: [updatedDataset1]\n });\n };\n\n // reset graph to it's original state\n var handleClickReset = function handleClickReset() {\n var newTicks = getNewTicks(graph.config.axis.y.lowerLimit, graph.config.axis.y.upperLimit, dataset1);\n graph.config.axis.y.domain.lowerLimit = newTicks.newLower;\n graph.config.axis.y.domain.upperLimit = newTicks.newUpper;\n graph.config.axis.y.ticks.values = newTicks.ticks;\n graph.reflowMultipleDatasets({\n panData: [dataset1]\n });\n };\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement(react__WEBPACK_IMPORTED_MODULE_2__.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement(terra_button__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n text: \"Toggle Calibration\",\n onClick: handleClickToggleCalibration\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement(terra_button__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n text: \"Update Data\",\n onClick: handleClickUpdateData\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement(terra_button__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n text: \"Reset\",\n onClick: handleClickReset\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement(\"div\", null, \"AllowCalibration:\", allowCalibrationStatus), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement(\"div\", {\n id: \"dynamic-data-update-example\"\n }));\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (DynamicallyUpdatingDataExample);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9wYWNrYWdlcy90ZXJyYS1ncmFwaHMtZG9jcy9zcmMvdGVycmEtZGV2LXNpdGUvZ3JhcGgvQ29yZUNvbmNlcHRzLmIvZXhhbXBsZXMvcmVmbG93L0R5bmFtaWNhbGx5VXBkYXRpbmdEYXRhLmpzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQXdDO0FBQ1Y7QUFFSTtBQUNTOztBQUUzQzs7QUFFQSxJQUFNSyxXQUFXLEdBQUc7RUFDbEJDLE1BQU0sRUFBRSw4QkFBOEI7RUFDdENDLElBQUksRUFBRTtJQUNKQyxDQUFDLEVBQUU7TUFDREMsS0FBSyxFQUFFLFFBQVE7TUFDZkMsVUFBVSxFQUFFLEVBQUU7TUFDZEMsVUFBVSxFQUFFLEdBQUc7TUFDZkMsYUFBYSxFQUFFO0lBQ2pCLENBQUM7SUFDREMsQ0FBQyxFQUFFO01BQ0RKLEtBQUssRUFBRSxRQUFRO01BQ2ZDLFVBQVUsRUFBRSxDQUFDLENBQUM7TUFDZEMsVUFBVSxFQUFFO0lBQ2Q7RUFDRixDQUFDO0VBQ0RHLGdCQUFnQixFQUFFO0FBQ3BCLENBQUM7O0FBRUQ7O0FBRUEsSUFBTUMsUUFBUSxHQUFHO0VBQ2ZDLEdBQUcsRUFBRSxPQUFPO0VBQ1pQLEtBQUssRUFBRTtJQUNMUSxPQUFPLEVBQUU7RUFDWCxDQUFDO0VBQ0RDLEtBQUssRUFBRWQsNkRBQU0sQ0FBQ2UsT0FBTyxDQUFDQyxNQUFNLENBQUNDLElBQUk7RUFDakNDLE1BQU0sRUFBRSxDQUNOO0lBQUVkLENBQUMsRUFBRSxFQUFFO0lBQUVLLENBQUMsRUFBRSxDQUFDO0VBQUUsQ0FBQyxFQUNoQjtJQUFFTCxDQUFDLEVBQUUsRUFBRTtJQUFFSyxDQUFDLEVBQUU7RUFBRSxDQUFDLEVBQ2Y7SUFBRUwsQ0FBQyxFQUFFLEdBQUc7SUFBRUssQ0FBQyxFQUFFLENBQUM7RUFBRSxDQUFDLEVBQ2pCO0lBQUVMLENBQUMsRUFBRSxHQUFHO0lBQUVLLENBQUMsRUFBRSxDQUFDO0VBQUUsQ0FBQyxFQUNqQjtJQUFFTCxDQUFDLEVBQUUsR0FBRztJQUFFSyxDQUFDLEVBQUU7RUFBRSxDQUFDLEVBQ2hCO0lBQUVMLENBQUMsRUFBRSxHQUFHO0lBQUVLLENBQUMsRUFBRTtFQUFHLENBQUMsRUFDakI7SUFBRUwsQ0FBQyxFQUFFLEdBQUc7SUFBRUssQ0FBQyxFQUFFO0VBQUUsQ0FBQyxFQUNoQjtJQUFFTCxDQUFDLEVBQUUsR0FBRztJQUFFSyxDQUFDLEVBQUU7RUFBRyxDQUFDLEVBQ2pCO0lBQUVMLENBQUMsRUFBRSxHQUFHO0lBQUVLLENBQUMsRUFBRTtFQUFFLENBQUMsRUFDaEI7SUFBRUwsQ0FBQyxFQUFFLEdBQUc7SUFBRUssQ0FBQyxFQUFFO0VBQUUsQ0FBQyxFQUNoQjtJQUFFTCxDQUFDLEVBQUUsR0FBRztJQUFFSyxDQUFDLEVBQUUsQ0FBQztFQUFHLENBQUMsRUFDbEI7SUFBRUwsQ0FBQyxFQUFFLEdBQUc7SUFBRUssQ0FBQyxFQUFFLENBQUM7RUFBRSxDQUFDLEVBQ2pCO0lBQUVMLENBQUMsRUFBRSxHQUFHO0lBQUVLLENBQUMsRUFBRTtFQUFFLENBQUM7QUFFcEIsQ0FBQzs7QUFFRDtBQUNBO0FBQ0EsSUFBTVUsZUFBZSxHQUFHO0VBQ3RCUCxHQUFHLEVBQUUsT0FBTztFQUNaTSxNQUFNLEVBQUUsQ0FDTjtJQUFFZCxDQUFDLEVBQUUsRUFBRTtJQUFFSyxDQUFDLEVBQUU7RUFBRyxDQUFDLEVBQ2hCO0lBQUVMLENBQUMsRUFBRSxHQUFHO0lBQUVLLENBQUMsRUFBRTtFQUFFLENBQUMsRUFDaEI7SUFBRUwsQ0FBQyxFQUFFLEdBQUc7SUFBRUssQ0FBQyxFQUFFO0VBQUUsQ0FBQyxFQUNoQjtJQUFFTCxDQUFDLEVBQUUsR0FBRztJQUFFSyxDQUFDLEVBQUU7RUFBRSxDQUFDLEVBQ2hCO0lBQUVMLENBQUMsRUFBRSxHQUFHO0lBQUVLLENBQUMsRUFBRTtFQUFHLENBQUMsRUFDakI7SUFBRUwsQ0FBQyxFQUFFLEdBQUc7SUFBRUssQ0FBQyxFQUFFLENBQUM7RUFBRyxDQUFDLEVBQ2xCO0lBQUVMLENBQUMsRUFBRSxHQUFHO0lBQUVLLENBQUMsRUFBRSxD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QUMsZUFDbERuRSxnREFBQSxjQUFLLG1CQUVILEVBQUNzRCxzQkFDRSxDQUFDLGVBQ050RCxnREFBQTtJQUFLd0UsRUFBRSxFQUFDO0VBQTZCLENBQUUsQ0FDdkMsQ0FBQztBQUVQLENBQUM7QUFFRCwrREFBZXRCLDhCQUE4QiIsInNvdXJjZXMiOlsid2VicGFjazovL3RlcnJhLWdyYXBocy8uL3BhY2thZ2VzL3RlcnJhLWdyYXBocy1kb2NzL3NyYy90ZXJyYS1kZXYtc2l0ZS9ncmFwaC9Db3JlQ29uY2VwdHMuYi9leGFtcGxlcy9yZWZsb3cvRHluYW1pY2FsbHlVcGRhdGluZ0RhdGEuanN4P2M2ODAiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0ICogYXMgZDMgZnJvbSdkMy1hcnJheSc7XG5cbmltcG9ydCBCdXR0b24gZnJvbSAndGVycmEtYnV0dG9uJztcbmltcG9ydCBDYXJib24gZnJvbSAnQGNlcm5lci9jYXJib24tZ3JhcGhzJztcblxuLy8gIGdyYXBoIGNvbmZpZ3VyYXRpb24gb2JqZWN0XG5cbmNvbnN0IGdyYXBoQ29uZmlnID0ge1xuICBiaW5kVG86ICcjZHluYW1pYy1kYXRhLXVwZGF0ZS1leGFtcGxlJyxcbiAgYXhpczoge1xuICAgIHg6IHtcbiAgICAgIGxhYmVsOiAneC1heGlzJyxcbiAgICAgIGxvd2VyTGltaXQ6IDgwLFxuICAgICAgdXBwZXJMaW1pdDogMjgwLFxuICAgICAgcmFuZ2VSb3VuZGluZzogZmFsc2UsXG4gICAgfSxcbiAgICB5OiB7XG4gICAgICBsYWJlbDogJ3ktYXhpcycsXG4gICAgICBsb3dlckxpbWl0OiAtNSxcbiAgICAgIHVwcGVyTGltaXQ6IDIwLFxuICAgIH0sXG4gIH0sXG4gIGFsbG93Q2FsaWJyYXRpb246IGZhbHNlLFxufTtcblxuLy8gIGdyYXBoIGRhdGFzZXRcblxuY29uc3QgZGF0YXNldDEgPSB7XG4gIGtleTogJ3VpZF8xJyxcbiAgbGFiZWw6IHtcbiAgICBkaXNwbGF5OiAnRGF0YXNldCAxJyxcbiAgfSxcbiAgY29sb3I6IENhcmJvbi5oZWxwZXJzLkNPTE9SUy5QSU5LLFxuICB2YWx1ZXM6IFtcbiAgICB7IHg6IDg3LCB5OiAtMiB9LFxuICAgIHsgeDogOTUsIHk6IDEgfSxcbiAgICB7IHg6IDEwMywgeTogLTQgfSxcbiAgICB7IHg6IDEwOSwgeTogLTIgfSxcbiAgICB7IHg6IDEyOCwgeTogMyB9LFxuICAgIHsgeDogMTQ1LCB5OiAyOCB9LFxuICAgIHsgeDogMTUxLCB5OiA3IH0sXG4gICAgeyB4OiAxNjQsIHk6IDEwIH0sXG4gICAgeyB4OiAxNzcsIHk6IDEgfSxcbiAgICB7IHg6IDE5MiwgeTogNiB9LFxuICAgIHsgeDogMjAzLCB5OiAtMjEgfSxcbiAgICB7IHg6IDIwOSwgeTogLTMgfSxcbiAgICB7IHg6IDI0NiwgeTogMyB9LFxuICBdLFxufTtcblxuLy8gVXBkYXRlZCB2YWx1ZXMgZm9yIGRhdGFzZXQgMVxuLy8gQ29sb3IsIHNoYXBlICYgbGFiZWwgb2YgdGhlIG9yaWdpbmFsIGRhdGFzZXQgaXMgcmV0YWluZWQgaWYgaXQgaXMgbm90IHVwZGF0ZWRcbmNvbnN0IHVwZGF0ZWREYXRhc2V0MSA9IHtcbiAga2V5OiAndWlkXzEnLFxuICB2YWx1ZXM6IFtcbiAgICB7IHg6IDgxLCB5OiAyMSB9LFxuICAgIHsgeDogMTA3LCB5OiA2IH0sXG4gICAgeyB4OiAxMDksIHk6IDcgfSxcbiAgICB7IHg6IDExOCwgeTogNSB9LFxuICAgIHsgeDogMTE3LCB5OiAyMSB9LFxuICAgIHsgeDogMTI3LCB5OiAtMjAgfSxcbiAgICB7IHg6IDEzNywgeTogLTkgfSxcbiAgICB7IHg6IDE0MSwgeTogLTYgfSxcbiAgICB7IHg6IDE0NCwgeTogMzkgfSxcbiAgICB7IHg6IDE1MSwgeTogLTE0IH0sXG4gICAgeyB4OiAxNTYsIHk6IC05IH0sXG4gICAgeyB4OiAxNjMsIHk6IDQgfSxcbiAgICB7IHg6IDE2NCwgeTogMjkgfSxcbiAgICB7IHg6IDE3MCwgeTogMzAgfSxcbiAgICB7IHg6IDE3MiwgeTogMzEgfSxcbiAgICB7IHg6IDE3NiwgeTogMzQgfSxcbiAgICB7IHg6IDE4NSwgeTogMSB9LFxuICAgIHsgeDogMTkxLCB5OiAtMiB9LFxuICAgIHsgeDogMTkzLCB5OiAzOCB9LFxuICAgIHsgeDogMTk4LCB5OiA0MCB9LFxuICBdLFxufTtcblxuY29uc3QgZ2V0TmV3VGlja3MgPSAoY3VycmVudExvd2VyLCBjdXJyZW50VXBwZXIsIGRhdGFzZXQpID0+IHtcbiAgY29uc3QgbWF4VmFsdWUgPSBNYXRoLm1heCguLi5kYXRhc2V0LnZhbHVlcy5tYXAodmFsdWUgPT4gdmFsdWUueSksIGN1cnJlbnRVcHBlcik7XG4gIGNvbnN0IG1pblZhbHVlID0gTWF0aC5taW4oLi4uZGF0YXNldC52YWx1ZXMubWFwKHZhbHVlID0+IHZhbHVlLnkpLCBjdXJyZW50TG93ZXIpO1xuXG4gIC8vIGFkZCBwYWRkaW5nIGJ5IHVzaW5nIHRoZSBuaWNlIGZ1bmN0aW9uXG4gIGNvbnN0IFtuZXdMb3dlciwgbmV3VXBwZXJdID0gZDMubmljZShtaW5WYWx1ZSAtIDEsIG1heFZhbHVlICsgMSwgMTApO1xuXG4gIC8vIGdldCBuZXcgdGljayB2YWx1ZXNcbiAgY29uc3QgdGlja3NDb3VudCA9IDM7XG4gIGNvbnN0IHRpY2tzID0gbmV3IEFycmF5KCkuY29uY2F0KGQzLnRpY2tzKG5ld0xvd2VyLCBuZXdVcHBlciwgdGlja3NDb3VudCksIFtuZXdMb3dlciwgbmV3VXBwZXJdICk7XG5cbiAgY29uc29sZS5sb2coXCJ0aWNrc1wiLHRpY2tzKTtcbiAgY29uc29sZS5sb2coXCJjdXJyZW50IG1pbiwgbWF4XCIsW21pblZhbHVlLCBtYXhWYWx1ZV0pO1xuICBjb25zb2xlLmxvZyhcIm5ldyBtaW4sIG1heFwiLCBbbmV3TG93ZXIsIG5ld1VwcGVyXSk7XG5cbiAgcmV0dXJuIHtcbiAgICBuZXdMb3dlcixcbiAgICBuZXdVcHBlcixcbiAgICB0aWNrcyxcbiAgfVxufVxuXG4vLyBncmFwaCByZW5kZXJpbmdcbmxldCBncmFwaDtcbmNvbnN0IER5bmFtaWNhbGx5VXBkYXRpbmdEYXRhRXhhbXBsZSA9ICgpID0+IHtcbiAgY29uc3QgW2FsbG93Q2FsaWJyYXRpb25TdGF0dXMsIFNldEFsbG93Q2FsaWJyYXRpb25TdGF0dXNdID0gdXNlU3RhdGUoZ3JhcGhDb25maWcuYWxsb3dDYWxpYnJhdGlvbi50b1N0cmluZygpKTtcblxuICAvLyBpbml0aWFsIGdyYXBoIGxvYWRcbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBncmFwaCA9IENhcmJvbi5hcGkuZ3JhcGgoZ3JhcGhDb25maWcpO1xuICAgIGdyYXBoLmxvYWRDb250ZW50KENhcmJvbi5hcGkubGluZShkYXRhc2V0MSkpO1xuXG4gICAgY29uc3QgbmV3VGlja3MgPSBnZXROZXdUaWNrcyhncmFwaC5jb25maWcuYXhpcy55LnVwcGVyTGltaXQsIGdyYXBoLmNvbmZpZy5heGlzLnkubG93ZXJMaW1pdCwgZGF0YXNldDEpO1xuXG4gICAgZ3JhcGguY29uZmlnLmF4aXMueS5kb21haW4ubG93ZXJMaW1pdCA9IG5ld1RpY2tzLm5ld0xvd2VyO1xuICAgIGdyYXBoLmNvbmZpZy5heGlzLnkuZG9tYWluLnVwcGVyTGltaXQgPSBuZXdUaWNrcy5uZXdVcHBlcjtcbiAgICBncmFwaC5jb25maWcuYXhpcy55LnRpY2tzLnZhbHVlcyA9IG5ld1RpY2tzLnRpY2tzO1xuXG4gICAgZ3JhcGgucmVmbG93TXVsdGlwbGVEYXRhc2V0cygpO1xuXG4gICAgY29uc29sZS5sb2coZ3JhcGguY29uZmlnLmF4aXMueS51cHBlckxpbWl0KVxuXG4gIH0sIFtdKTtcblxuICBjb25zdCBoYW5kbGVDbGlja1RvZ2dsZUNhbGlicmF0aW9uID0gKCkgPT4ge1xuICAgIGdyYXBoLmNvbmZpZy5hbGxvd0NhbGlicmF0aW9uID0gIWdyYXBoLmNvbmZpZy5hbGxvd0NhbGlicmF0aW9uO1xuICAgIFNldEFsbG93Q2FsaWJyYXRpb25TdGF0dXMoZ3JhcGguY29uZmlnLmFsbG93Q2FsaWJyYXRpb24udG9TdHJpbmcoKSk7XG5cbiAgICBncmFwaC5yZWZsb3dNdWx0aXBsZURhdGFzZXRzKCk7XG4gIH07XG5cbiAgLy8gZHluYW1pY2FsbHkgdXBkYXRlIGdyYXBoIGRhdGFcbiAgY29uc3QgaGFuZGxlQ2xpY2tVcGRhdGVEYXRhID0gKCkgPT4ge1xuICAgIGNvbnN0IG5ld1RpY2tzID0gZ2V0TmV3VGlja3MoZ3JhcGguY29uZmlnLmF4aXMueS5sb3dlckxpbWl0LCBncmFwaC5jb25maWcuYXhpcy55LnVwcGVyTGltaXQsIHVwZGF0ZWREYXRhc2V0MSk7XG5cbiAgICBncmFwaC5jb25maWcuYXhpcy55LmRvbWFpbi5sb3dlckxpbWl0ID0gbmV3VGlja3MubmV3TG93ZXI7XG4gICAgZ3JhcGguY29uZmlnLmF4aXMueS5kb21haW4udXBwZXJMaW1pdCA9IG5ld1RpY2tzLm5ld1VwcGVyO1xuICAgIGdyYXBoLmNvbmZpZy5heGlzLnkudGlja3MudmFsdWVzID0gbmV3VGlja3MudGlja3M7XG5cbiAgICBncmFwaC5yZWZsb3dNdWx0aXBsZURhdGFzZXRzKHtcbiAgICAgIHBhbkRhdGE6IFt1cGRhdGVkRGF0YXNldDFdLFxuICAgIH0pO1xuICB9O1xuXG4gIC8vIHJlc2V0IGdyYXBoIHRvIGl0J3Mgb3JpZ2luYWwgc3RhdGVcbiAgY29uc3QgaGFuZGxlQ2xpY2tSZXNldCA9ICgpID0+IHtcbiAgICBjb25zdCBuZXdUaWNrcyA9IGdldE5ld1RpY2tzKGdyYXBoLmNvbmZpZy5heGlzLnkubG93ZXJMaW1pdCwgZ3JhcGguY29uZmlnLmF4aXMueS51cHBlckxpbWl0LCBkYXRhc2V0MSk7XG5cbiAgICBncmFwaC5jb25maWcuYXhpcy55LmRvbWFpbi5sb3dlckxpbWl0ID0gbmV3VGlja3MubmV3TG93ZXI7XG4gICAgZ3JhcGguY29uZmlnLmF4aXMueS5kb21haW4udXBwZXJMaW1pdCA9IG5ld1RpY2tzLm5ld1VwcGVyO1xuICAgIGdyYXBoLmNvbmZpZy5heGlzLnkudGlja3MudmFsdWVzID0gbmV3VGlja3MudGlja3M7XG5cbiAgICBncmFwaC5yZWZsb3dNdWx0aXBsZURhdGFzZXRzKHtcbiAgICAgIHBhbkRhdGE6IFtkYXRhc2V0MV0sXG4gICAgfSk7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPEJ1dHRvbiB0ZXh0PVwiVG9nZ2xlIENhbGlicmF0aW9uXCIgb25DbGljaz17aGFuZGxlQ2xpY2tUb2dnbGVDYWxpYnJhdGlvbn0gLz5cbiAgICAgIDxCdXR0b24gdGV4dD1cIlVwZGF0ZSBEYXRhXCIgb25DbGljaz17aGFuZGxlQ2xpY2tVcGRhdGVEYXRhfSAvPlxuICAgICAgPEJ1dHRvbiB0ZXh0PVwiUmVzZXRcIiBvbkNsaWNrPXtoYW5kbGVDbGlja1Jlc2V0fSAvPlxuICAgICAgPGRpdj5cbiAgICAgICAgQWxsb3dDYWxpYnJhdGlvbjpcbiAgICAgICAge2FsbG93Q2FsaWJyYXRpb25TdGF0dXN9XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgaWQ9XCJkeW5hbWljLWRhdGEtdXBkYXRlLWV4YW1wbGVcIiAvPlxuICAgIDwvPlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgRHluYW1pY2FsbHlVcGRhdGluZ0RhdGFFeGFtcGxlO1xuIl0sIm5hbWVzIjpbIlJlYWN0IiwidXNlU3RhdGUiLCJkMyIsIkJ1dHRvbiIsIkNhcmJvbiIsImdyYXBoQ29uZmlnIiwiYmluZFRvIiwiYXhpcyIsIngiLCJsYWJlbCIsImxvd2VyTGltaXQiLCJ1cHBlckxpbWl0IiwicmFuZ2VSb3VuZGluZyIsInkiLCJhbGxvd0NhbGlicmF0aW9uIiwiZGF0YXNldDEiLCJrZXkiLCJkaXNwbGF5IiwiY29sb3IiLCJoZWxwZXJzIiwiQ09MT1JTIiwiUElOSyIsInZhbHVlcyIsInVwZGF0ZWREYXRhc2V0MSIsImdldE5ld1RpY2tzIiwiY3VycmVudExvd2VyIiwiY3VycmVudFVwcGVyIiwiZGF0YXNldCIsIm1heFZhbHVlIiwiTWF0aCIsIm1heCIsImFwcGx5IiwiX3RvQ29uc3VtYWJsZUFycmF5IiwibWFwIiwidmFsdWUiLCJjb25jYXQiLCJtaW5WYWx1ZSIsIm1pbiIsIl9kMyRuaWNlIiwibmljZSIsIl9kMyRuaWNlMiIsIl9zbGljZWRUb0FycmF5IiwibmV3TG93ZXIiLCJuZXdVcHBlciIsInRpY2tzQ291bnQiLCJ0aWNrcyIsIkFycmF5IiwiY29uc29sZSIsImxvZyIsImdyYXBoIiwiRHluYW1pY2FsbHlVcGRhdGluZ0RhdGFFeGFtcGxlIiwiX3VzZVN0YXRlIiwidG9TdHJpbmciLCJfdXNlU3RhdGUyIiwiYWxsb3dDYWxpYnJhdGlvblN0YXR1cyIsIlNldEFsbG93Q2FsaWJyYXRpb25TdGF0dXMiLCJ1c2VFZmZlY3QiLCJhcGkiLCJsb2FkQ29udGVudCIsImxpbmUiLCJuZXdUaWNrcyIsImNvbmZpZyIsImRvbWFpbiIsInJlZmxvd011bHRpcGxlRGF0YXNldHMiLCJoYW5kbGVDbGlja1RvZ2dsZUNhbGlicmF0aW9uIiwiaGFuZGxlQ2xpY2tVcGRhdGVEYXRhIiwicGFuRGF0YSIsImhhbmRsZUNsaWNrUmVzZXQiLCJjcmVhdGVFbGVtZW50IiwiRnJhZ21lbnQiLCJ0ZXh0Iiwib25DbGljayIsImlkIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./packages/terra-graphs-docs/src/terra-dev-site/graph/CoreConcepts.b/examples/reflow/DynamicallyUpdatingData.jsx\n");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ \"./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! d3-array */ \"./packages/terra-graphs-docs/node_modules/d3-array/src/nice.js\");\n/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! d3-array */ \"./packages/terra-graphs-docs/node_modules/d3-array/src/ticks.js\");\n/* harmony import */ var terra_button__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! terra-button */ \"./node_modules/terra-button/lib/Button.js\");\n/* harmony import */ var _cerner_carbon_graphs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @cerner/carbon-graphs */ \"./packages/carbon-graphs/src/index.js\");\n\n\n\n\n\n\n\n// graph configuration object\n\nvar graphConfig = {\n bindTo: '#dynamic-data-update-example',\n axis: {\n x: {\n label: 'x-axis',\n lowerLimit: 80,\n upperLimit: 280,\n rangeRounding: false\n },\n y: {\n label: 'y-axis',\n lowerLimit: -5,\n upperLimit: 20\n }\n },\n allowCalibration: false\n};\n\n// graph dataset\n\nvar dataset1 = {\n key: 'uid_1',\n label: {\n display: 'Dataset 1'\n },\n color: _cerner_carbon_graphs__WEBPACK_IMPORTED_MODULE_4__[\"default\"].helpers.COLORS.PINK,\n values: [{\n x: 87,\n y: -2\n }, {\n x: 95,\n y: 1\n }, {\n x: 103,\n y: -4\n }, {\n x: 109,\n y: -2\n }, {\n x: 128,\n y: 3\n }, {\n x: 145,\n y: 28\n }, {\n x: 151,\n y: 7\n }, {\n x: 164,\n y: 10\n }, {\n x: 177,\n y: 1\n }, {\n x: 192,\n y: 6\n }, {\n x: 203,\n y: -21\n }, {\n x: 209,\n y: -3\n }, {\n x: 246,\n y: 3\n }]\n};\n\n// Updated values for dataset 1\n// Color, shape & label of the original dataset is retained if it is not updated\nvar updatedDataset1 = {\n key: 'uid_1',\n values: [{\n x: 81,\n y: 21\n }, {\n x: 107,\n y: 6\n }, {\n x: 109,\n y: 7\n }, {\n x: 118,\n y: 5\n }, {\n x: 117,\n y: 21\n }, {\n x: 127,\n y: -20\n }, {\n x: 137,\n y: -9\n }, {\n x: 141,\n y: -6\n }, {\n x: 144,\n y: 39\n }, {\n x: 151,\n y: -14\n }, {\n x: 156,\n y: -9\n }, {\n x: 163,\n y: 4\n }, {\n x: 164,\n y: 29\n }, {\n x: 170,\n y: 30\n }, {\n x: 172,\n y: 31\n }, {\n x: 176,\n y: 34\n }, {\n x: 185,\n y: 1\n }, {\n x: 191,\n y: -2\n }, {\n x: 193,\n y: 38\n }, {\n x: 198,\n y: 40\n }]\n};\nvar getNewTicks = function getNewTicks(currentLower, currentUpper, dataset) {\n var maxValue = Math.max.apply(Math, (0,_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(dataset.values.map(function (value) {\n return value.y;\n })).concat([currentUpper]));\n var minValue = Math.min.apply(Math, (0,_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(dataset.values.map(function (value) {\n return value.y;\n })).concat([currentLower]));\n\n // add padding by using the nice function\n var padding = Math.abs(minValue - maxValue) * 0.05;\n var _d3$nice = d3_array__WEBPACK_IMPORTED_MODULE_5__[\"default\"](minValue - padding, maxValue + padding, 10),\n _d3$nice2 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_d3$nice, 2),\n newLower = _d3$nice2[0],\n newUpper = _d3$nice2[1];\n\n // get new tick values\n var ticksCount = 3;\n var ticks = new Array().concat(d3_array__WEBPACK_IMPORTED_MODULE_6__[\"default\"](newLower, newUpper, ticksCount), [newLower, newUpper]);\n console.log(\"ticks\", ticks);\n console.log(\"current min, max\", [minValue, maxValue]);\n console.log(\"new min, max\", [newLower, newUpper]);\n return {\n newLower: newLower,\n newUpper: newUpper,\n ticks: ticks\n };\n};\n\n// graph rendering\nvar graph;\nvar DynamicallyUpdatingDataExample = function DynamicallyUpdatingDataExample() {\n var _useState = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(graphConfig.allowCalibration.toString()),\n _useState2 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_useState, 2),\n allowCalibrationStatus = _useState2[0],\n SetAllowCalibrationStatus = _useState2[1];\n\n // initial graph load\n react__WEBPACK_IMPORTED_MODULE_2__.useEffect(function () {\n graph = _cerner_carbon_graphs__WEBPACK_IMPORTED_MODULE_4__[\"default\"].api.graph(graphConfig);\n graph.loadContent(_cerner_carbon_graphs__WEBPACK_IMPORTED_MODULE_4__[\"default\"].api.line(dataset1));\n var newTicks = getNewTicks(graph.config.axis.y.upperLimit, graph.config.axis.y.lowerLimit, dataset1);\n graph.config.axis.y.domain.lowerLimit = newTicks.newLower;\n graph.config.axis.y.domain.upperLimit = newTicks.newUpper;\n graph.config.axis.y.ticks.values = newTicks.ticks;\n graph.reflowMultipleDatasets();\n console.log(graph.config.axis.y.upperLimit);\n }, []);\n var handleClickToggleCalibration = function handleClickToggleCalibration() {\n graph.config.allowCalibration = !graph.config.allowCalibration;\n SetAllowCalibrationStatus(graph.config.allowCalibration.toString());\n graph.reflowMultipleDatasets();\n };\n\n // dynamically update graph data\n var handleClickUpdateData = function handleClickUpdateData() {\n var newTicks = getNewTicks(graph.config.axis.y.lowerLimit, graph.config.axis.y.upperLimit, updatedDataset1);\n graph.config.axis.y.domain.lowerLimit = newTicks.newLower;\n graph.config.axis.y.domain.upperLimit = newTicks.newUpper;\n graph.config.axis.y.ticks.values = newTicks.ticks;\n graph.reflowMultipleDatasets({\n panData: [updatedDataset1]\n });\n };\n\n // reset graph to it's original state\n var handleClickReset = function handleClickReset() {\n var newTicks = getNewTicks(graph.config.axis.y.lowerLimit, graph.config.axis.y.upperLimit, dataset1);\n graph.config.axis.y.domain.lowerLimit = newTicks.newLower;\n graph.config.axis.y.domain.upperLimit = newTicks.newUpper;\n graph.config.axis.y.ticks.values = newTicks.ticks;\n graph.reflowMultipleDatasets({\n panData: [dataset1]\n });\n };\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement(react__WEBPACK_IMPORTED_MODULE_2__.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement(terra_button__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n text: \"Toggle Calibration\",\n onClick: handleClickToggleCalibration\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement(terra_button__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n text: \"Update Data\",\n onClick: handleClickUpdateData\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement(terra_button__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n text: \"Reset\",\n onClick: handleClickReset\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement(\"div\", null, \"AllowCalibration:\", allowCalibrationStatus), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement(\"div\", {\n id: \"dynamic-data-update-example\"\n }));\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (DynamicallyUpdatingDataExample);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9wYWNrYWdlcy90ZXJyYS1ncmFwaHMtZG9jcy9zcmMvdGVycmEtZGV2LXNpdGUvZ3JhcGgvQ29yZUNvbmNlcHRzLmIvZXhhbXBsZXMvcmVmbG93L0R5bmFtaWNhbGx5VXBkYXRpbmdEYXRhLmpzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQXdDO0FBQ1Y7QUFFSTtBQUNTOztBQUUzQzs7QUFFQSxJQUFNSyxXQUFXLEdBQUc7RUFDbEJDLE1BQU0sRUFBRSw4QkFBOEI7RUFDdENDLElBQUksRUFBRTtJQUNKQyxDQUFDLEVBQUU7TUFDREMsS0FBSyxFQUFFLFFBQVE7TUFDZkMsVUFBVSxFQUFFLEVBQUU7TUFDZEMsVUFBVSxFQUFFLEdBQUc7TUFDZkMsYUFBYSxFQUFFO0lBQ2pCLENBQUM7SUFDREMsQ0FBQyxFQUFFO01BQ0RKLEtBQUssRUFBRSxRQUFRO01BQ2ZDLFVBQVUsRUFBRSxDQUFDLENBQUM7TUFDZEMsVUFBVSxFQUFFO0lBQ2Q7RUFDRixDQUFDO0VBQ0RHLGdCQUFnQixFQUFFO0FBQ3BCLENBQUM7O0FBRUQ7O0FBRUEsSUFBTUMsUUFBUSxHQUFHO0VBQ2ZDLEdBQUcsRUFBRSxPQUFPO0VBQ1pQLEtBQUssRUFBRTtJQUNMUSxPQUFPLEVBQUU7RUFDWCxDQUFDO0VBQ0RDLEtBQUssRUFBRWQsNkRBQU0sQ0FBQ2UsT0FBTyxDQUFDQyxNQUFNLENBQUNDLElBQUk7RUFDakNDLE1BQU0sRUFBRSxDQUNOO0lBQUVkLENBQUMsRUFBRSxFQUFFO0lBQUVLLENBQUMsRUFBRSxDQUFDO0VBQUUsQ0FBQyxFQUNoQjtJQUFFTCxDQUFDLEVBQUUsRUFBRTtJQUFFSyxDQUFDLEVBQUU7RUFBRSxDQUFDLEVBQ2Y7SUFBRUwsQ0FBQyxFQUFFLEdBQUc7SUFBRUssQ0FBQyxFQUFFLENBQUM7RUFBRSxDQUFDLEVBQ2pCO0lBQUVMLENBQUMsRUFBRSxHQUFHO0lBQUVLLENBQUMsRUFBRSxDQUFDO0VBQUUsQ0FBQyxFQUNqQjtJQUFFTCxDQUFDLEVBQUUsR0FBRztJQUFFSyxDQUFDLEVBQUU7RUFBRSxDQUFDLEVBQ2hCO0lBQUVMLENBQUMsRUFBRSxHQUFHO0lBQUVLLENBQUMsRUFBRTtFQUFHLENBQUMsRUFDakI7SUFBRUwsQ0FBQyxFQUFFLEdBQUc7SUFBRUssQ0FBQyxFQUFFO0VBQUUsQ0FBQyxFQUNoQjtJQUFFTCxDQUFDLEVBQUUsR0FBRztJQUFFSyxDQUFDLEVBQUU7RUFBRyxDQUFDLEVBQ2pCO0lBQUVMLENBQUMsRUFBRSxHQUFHO0lBQUVLLENBQUMsRUFBRTtFQUFFLENBQUMsRUFDaEI7SUFBRUwsQ0FBQyxFQUFFLEdBQUc7SUFBRUssQ0FBQyxFQUFFO0VBQUUsQ0FBQyxFQUNoQjtJQUFFTCxDQUFDLEVBQUUsR0FBRztJQUFFSyxDQUFDLEVBQUUsQ0FBQztFQUFHLENBQUMsRUFDbEI7SUFBRUwsQ0FBQyxFQUFFLEdBQUc7SUFBRUssQ0FBQyxFQUFFLENBQUM7RUFBRSxDQUFDLEVBQ2pCO0lBQUVMLENBQUMsRUFBRSxHQUFHO0lBQUVLLENBQUMsRUFBRTtFQUFFLENBQUM7QUFFcEIsQ0FBQzs7QUFFRDtBQUNBO0FBQ0EsSUFBTVUsZUFBZSxHQUFHO0VBQ3RCUCxHQUFHLEVBQUUsT0FBTztFQUNaTSxNQUFNLEVBQUUsQ0FDTjtJQUFFZCxDQUFDLEVBQUUsRUFBRTtJQUFFSyxDQUFDLEVBQUU7RUFBRyxDQUFDLEVBQ2hCO0lBQUVMLENBQUMsRUFBRSxHQUFHO0lBQUVLLENBQUMsRUFBRTtFQUFFLENBQUMsRUFDaEI7SUFBRUwsQ0FBQyxFQUFFLEdBQUc7SUFBRUssQ0FBQyxFQUFFO0VBQUUsQ0FBQyxFQUNoQjtJQUFFTCxDQUFDLEVBQUUsR0FBRztJQUFFSyxDQUFDLEVBQUU7RUFBRSxDQUFDLEVBQ2hCO0lBQUVMLENBQUMsRUFBRSxHQUFHO0lBQUVLLENBQUMsRUFBRTtFQUFHLENBQUMsRUFDakI7SUFBRUwsQ0FBQyxFQUFFLEdBQUc7SUFBRUssQ0FBQyxFQUFFLENBQUM7RUFBRyxDQUFDLEVBQ2xCO0lBQUVMLENBQUMsRUFBRSxHQUFHO0lBQUVLLENBQUMsRUFBRSxD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ZUFDN0RuRSxnREFBQSxDQUFDRyxvREFBTTtJQUFDcUUsSUFBSSxFQUFDLE9BQU87SUFBQ0MsT0FBTyxFQUFFSjtFQUFpQixDQUFFLENBQUMsZUFDbERyRSxnREFBQSxjQUFLLG1CQUVILEVBQUN3RCxzQkFDRSxDQUFDLGVBQ054RCxnREFBQTtJQUFLMEUsRUFBRSxFQUFDO0VBQTZCLENBQUUsQ0FDdkMsQ0FBQztBQUVQLENBQUM7QUFFRCwrREFBZXRCLDhCQUE4QiIsInNvdXJjZXMiOlsid2VicGFjazovL3RlcnJhLWdyYXBocy8uL3BhY2thZ2VzL3RlcnJhLWdyYXBocy1kb2NzL3NyYy90ZXJyYS1kZXYtc2l0ZS9ncmFwaC9Db3JlQ29uY2VwdHMuYi9leGFtcGxlcy9yZWZsb3cvRHluYW1pY2FsbHlVcGRhdGluZ0RhdGEuanN4P2M2ODAiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0ICogYXMgZDMgZnJvbSdkMy1hcnJheSc7XG5cbmltcG9ydCBCdXR0b24gZnJvbSAndGVycmEtYnV0dG9uJztcbmltcG9ydCBDYXJib24gZnJvbSAnQGNlcm5lci9jYXJib24tZ3JhcGhzJztcblxuLy8gIGdyYXBoIGNvbmZpZ3VyYXRpb24gb2JqZWN0XG5cbmNvbnN0IGdyYXBoQ29uZmlnID0ge1xuICBiaW5kVG86ICcjZHluYW1pYy1kYXRhLXVwZGF0ZS1leGFtcGxlJyxcbiAgYXhpczoge1xuICAgIHg6IHtcbiAgICAgIGxhYmVsOiAneC1heGlzJyxcbiAgICAgIGxvd2VyTGltaXQ6IDgwLFxuICAgICAgdXBwZXJMaW1pdDogMjgwLFxuICAgICAgcmFuZ2VSb3VuZGluZzogZmFsc2UsXG4gICAgfSxcbiAgICB5OiB7XG4gICAgICBsYWJlbDogJ3ktYXhpcycsXG4gICAgICBsb3dlckxpbWl0OiAtNSxcbiAgICAgIHVwcGVyTGltaXQ6IDIwLFxuICAgIH0sXG4gIH0sXG4gIGFsbG93Q2FsaWJyYXRpb246IGZhbHNlLFxufTtcblxuLy8gIGdyYXBoIGRhdGFzZXRcblxuY29uc3QgZGF0YXNldDEgPSB7XG4gIGtleTogJ3VpZF8xJyxcbiAgbGFiZWw6IHtcbiAgICBkaXNwbGF5OiAnRGF0YXNldCAxJyxcbiAgfSxcbiAgY29sb3I6IENhcmJvbi5oZWxwZXJzLkNPTE9SUy5QSU5LLFxuICB2YWx1ZXM6IFtcbiAgICB7IHg6IDg3LCB5OiAtMiB9LFxuICAgIHsgeDogOTUsIHk6IDEgfSxcbiAgICB7IHg6IDEwMywgeTogLTQgfSxcbiAgICB7IHg6IDEwOSwgeTogLTIgfSxcbiAgICB7IHg6IDEyOCwgeTogMyB9LFxuICAgIHsgeDogMTQ1LCB5OiAyOCB9LFxuICAgIHsgeDogMTUxLCB5OiA3IH0sXG4gICAgeyB4OiAxNjQsIHk6IDEwIH0sXG4gICAgeyB4OiAxNzcsIHk6IDEgfSxcbiAgICB7IHg6IDE5MiwgeTogNiB9LFxuICAgIHsgeDogMjAzLCB5OiAtMjEgfSxcbiAgICB7IHg6IDIwOSwgeTogLTMgfSxcbiAgICB7IHg6IDI0NiwgeTogMyB9LFxuICBdLFxufTtcblxuLy8gVXBkYXRlZCB2YWx1ZXMgZm9yIGRhdGFzZXQgMVxuLy8gQ29sb3IsIHNoYXBlICYgbGFiZWwgb2YgdGhlIG9yaWdpbmFsIGRhdGFzZXQgaXMgcmV0YWluZWQgaWYgaXQgaXMgbm90IHVwZGF0ZWRcbmNvbnN0IHVwZGF0ZWREYXRhc2V0MSA9IHtcbiAga2V5OiAndWlkXzEnLFxuICB2YWx1ZXM6IFtcbiAgICB7IHg6IDgxLCB5OiAyMSB9LFxuICAgIHsgeDogMTA3LCB5OiA2IH0sXG4gICAgeyB4OiAxMDksIHk6IDcgfSxcbiAgICB7IHg6IDExOCwgeTogNSB9LFxuICAgIHsgeDogMTE3LCB5OiAyMSB9LFxuICAgIHsgeDogMTI3LCB5OiAtMjAgfSxcbiAgICB7IHg6IDEzNywgeTogLTkgfSxcbiAgICB7IHg6IDE0MSwgeTogLTYgfSxcbiAgICB7IHg6IDE0NCwgeTogMzkgfSxcbiAgICB7IHg6IDE1MSwgeTogLTE0IH0sXG4gICAgeyB4OiAxNTYsIHk6IC05IH0sXG4gICAgeyB4OiAxNjMsIHk6IDQgfSxcbiAgICB7IHg6IDE2NCwgeTogMjkgfSxcbiAgICB7IHg6IDE3MCwgeTogMzAgfSxcbiAgICB7IHg6IDE3MiwgeTogMzEgfSxcbiAgICB7IHg6IDE3NiwgeTogMzQgfSxcbiAgICB7IHg6IDE4NSwgeTogMSB9LFxuICAgIHsgeDogMTkxLCB5OiAtMiB9LFxuICAgIHsgeDogMTkzLCB5OiAzOCB9LFxuICAgIHsgeDogMTk4LCB5OiA0MCB9LFxuICBdLFxufTtcblxuY29uc3QgZ2V0TmV3VGlja3MgPSAoY3VycmVudExvd2VyLCBjdXJyZW50VXBwZXIsIGRhdGFzZXQpID0+IHtcbiAgY29uc3QgbWF4VmFsdWUgPSBNYXRoLm1heCguLi5kYXRhc2V0LnZhbHVlcy5tYXAodmFsdWUgPT4gdmFsdWUueSksIGN1cnJlbnRVcHBlcik7XG4gIGNvbnN0IG1pblZhbHVlID0gTWF0aC5taW4oLi4uZGF0YXNldC52YWx1ZXMubWFwKHZhbHVlID0+IHZhbHVlLnkpLCBjdXJyZW50TG93ZXIpO1xuXG4gIC8vIGFkZCBwYWRkaW5nIGJ5IHVzaW5nIHRoZSBuaWNlIGZ1bmN0aW9uXG4gIGNvbnN0IHBhZGRpbmcgPSBNYXRoLmFicyhtaW5WYWx1ZSAtIG1heFZhbHVlKSAqIDAuMDU7XG4gIGNvbnN0IFtuZXdMb3dlciwgbmV3VXBwZXJdID0gZDMubmljZShtaW5WYWx1ZSAtIHBhZGRpbmcsIG1heFZhbHVlICsgcGFkZGluZywgMTApO1xuXG4gIC8vIGdldCBuZXcgdGljayB2YWx1ZXNcbiAgY29uc3QgdGlja3NDb3VudCA9IDM7XG4gIGNvbnN0IHRpY2tzID0gbmV3IEFycmF5KCkuY29uY2F0KGQzLnRpY2tzKG5ld0xvd2VyLCBuZXdVcHBlciwgdGlja3NDb3VudCksIFtuZXdMb3dlciwgbmV3VXBwZXJdICk7XG5cbiAgY29uc29sZS5sb2coXCJ0aWNrc1wiLHRpY2tzKTtcbiAgY29uc29sZS5sb2coXCJjdXJyZW50IG1pbiwgbWF4XCIsW21pblZhbHVlLCBtYXhWYWx1ZV0pO1xuICBjb25zb2xlLmxvZyhcIm5ldyBtaW4sIG1heFwiLCBbbmV3TG93ZXIsIG5ld1VwcGVyXSk7XG5cbiAgcmV0dXJuIHtcbiAgICBuZXdMb3dlcixcbiAgICBuZXdVcHBlcixcbiAgICB0aWNrcyxcbiAgfVxufVxuXG4vLyBncmFwaCByZW5kZXJpbmdcbmxldCBncmFwaDtcbmNvbnN0IER5bmFtaWNhbGx5VXBkYXRpbmdEYXRhRXhhbXBsZSA9ICgpID0+IHtcbiAgY29uc3QgW2FsbG93Q2FsaWJyYXRpb25TdGF0dXMsIFNldEFsbG93Q2FsaWJyYXRpb25TdGF0dXNdID0gdXNlU3RhdGUoZ3JhcGhDb25maWcuYWxsb3dDYWxpYnJhdGlvbi50b1N0cmluZygpKTtcblxuICAvLyBpbml0aWFsIGdyYXBoIGxvYWRcbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBncmFwaCA9IENhcmJvbi5hcGkuZ3JhcGgoZ3JhcGhDb25maWcpO1xuICAgIGdyYXBoLmxvYWRDb250ZW50KENhcmJvbi5hcGkubGluZShkYXRhc2V0MSkpO1xuXG4gICAgY29uc3QgbmV3VGlja3MgPSBnZXROZXdUaWNrcyhncmFwaC5jb25maWcuYXhpcy55LnVwcGVyTGltaXQsIGdyYXBoLmNvbmZpZy5heGlzLnkubG93ZXJMaW1pdCwgZGF0YXNldDEpO1xuXG4gICAgZ3JhcGguY29uZmlnLmF4aXMueS5kb21haW4ubG93ZXJMaW1pdCA9IG5ld1RpY2tzLm5ld0xvd2VyO1xuICAgIGdyYXBoLmNvbmZpZy5heGlzLnkuZG9tYWluLnVwcGVyTGltaXQgPSBuZXdUaWNrcy5uZXdVcHBlcjtcbiAgICBncmFwaC5jb25maWcuYXhpcy55LnRpY2tzLnZhbHVlcyA9IG5ld1RpY2tzLnRpY2tzO1xuXG4gICAgZ3JhcGgucmVmbG93TXVsdGlwbGVEYXRhc2V0cygpO1xuXG4gICAgY29uc29sZS5sb2coZ3JhcGguY29uZmlnLmF4aXMueS51cHBlckxpbWl0KVxuXG4gIH0sIFtdKTtcblxuICBjb25zdCBoYW5kbGVDbGlja1RvZ2dsZUNhbGlicmF0aW9uID0gKCkgPT4ge1xuICAgIGdyYXBoLmNvbmZpZy5hbGxvd0NhbGlicmF0aW9uID0gIWdyYXBoLmNvbmZpZy5hbGxvd0NhbGlicmF0aW9uO1xuICAgIFNldEFsbG93Q2FsaWJyYXRpb25TdGF0dXMoZ3JhcGguY29uZmlnLmFsbG93Q2FsaWJyYXRpb24udG9TdHJpbmcoKSk7XG5cbiAgICBncmFwaC5yZWZsb3dNdWx0aXBsZURhdGFzZXRzKCk7XG4gIH07XG5cbiAgLy8gZHluYW1pY2FsbHkgdXBkYXRlIGdyYXBoIGRhdGFcbiAgY29uc3QgaGFuZGxlQ2xpY2tVcGRhdGVEYXRhID0gKCkgPT4ge1xuICAgIGNvbnN0IG5ld1RpY2tzID0gZ2V0TmV3VGlja3MoZ3JhcGguY29uZmlnLmF4aXMueS5sb3dlckxpbWl0LCBncmFwaC5jb25maWcuYXhpcy55LnVwcGVyTGltaXQsIHVwZGF0ZWREYXRhc2V0MSk7XG5cbiAgICBncmFwaC5jb25maWcuYXhpcy55LmRvbWFpbi5sb3dlckxpbWl0ID0gbmV3VGlja3MubmV3TG93ZXI7XG4gICAgZ3JhcGguY29uZmlnLmF4aXMueS5kb21haW4udXBwZXJMaW1pdCA9IG5ld1RpY2tzLm5ld1VwcGVyO1xuICAgIGdyYXBoLmNvbmZpZy5heGlzLnkudGlja3MudmFsdWVzID0gbmV3VGlja3MudGlja3M7XG5cbiAgICBncmFwaC5yZWZsb3dNdWx0aXBsZURhdGFzZXRzKHtcbiAgICAgIHBhbkRhdGE6IFt1cGRhdGVkRGF0YXNldDFdLFxuICAgIH0pO1xuICB9O1xuXG4gIC8vIHJlc2V0IGdyYXBoIHRvIGl0J3Mgb3JpZ2luYWwgc3RhdGVcbiAgY29uc3QgaGFuZGxlQ2xpY2tSZXNldCA9ICgpID0+IHtcbiAgICBjb25zdCBuZXdUaWNrcyA9IGdldE5ld1RpY2tzKGdyYXBoLmNvbmZpZy5heGlzLnkubG93ZXJMaW1pdCwgZ3JhcGguY29uZmlnLmF4aXMueS51cHBlckxpbWl0LCBkYXRhc2V0MSk7XG5cbiAgICBncmFwaC5jb25maWcuYXhpcy55LmRvbWFpbi5sb3dlckxpbWl0ID0gbmV3VGlja3MubmV3TG93ZXI7XG4gICAgZ3JhcGguY29uZmlnLmF4aXMueS5kb21haW4udXBwZXJMaW1pdCA9IG5ld1RpY2tzLm5ld1VwcGVyO1xuICAgIGdyYXBoLmNvbmZpZy5heGlzLnkudGlja3MudmFsdWVzID0gbmV3VGlja3MudGlja3M7XG5cbiAgICBncmFwaC5yZWZsb3dNdWx0aXBsZURhdGFzZXRzKHtcbiAgICAgIHBhbkRhdGE6IFtkYXRhc2V0MV0sXG4gICAgfSk7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPEJ1dHRvbiB0ZXh0PVwiVG9nZ2xlIENhbGlicmF0aW9uXCIgb25DbGljaz17aGFuZGxlQ2xpY2tUb2dnbGVDYWxpYnJhdGlvbn0gLz5cbiAgICAgIDxCdXR0b24gdGV4dD1cIlVwZGF0ZSBEYXRhXCIgb25DbGljaz17aGFuZGxlQ2xpY2tVcGRhdGVEYXRhfSAvPlxuICAgICAgPEJ1dHRvbiB0ZXh0PVwiUmVzZXRcIiBvbkNsaWNrPXtoYW5kbGVDbGlja1Jlc2V0fSAvPlxuICAgICAgPGRpdj5cbiAgICAgICAgQWxsb3dDYWxpYnJhdGlvbjpcbiAgICAgICAge2FsbG93Q2FsaWJyYXRpb25TdGF0dXN9XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgaWQ9XCJkeW5hbWljLWRhdGEtdXBkYXRlLWV4YW1wbGVcIiAvPlxuICAgIDwvPlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgRHluYW1pY2FsbHlVcGRhdGluZ0RhdGFFeGFtcGxlO1xuIl0sIm5hbWVzIjpbIlJlYWN0IiwidXNlU3RhdGUiLCJkMyIsIkJ1dHRvbiIsIkNhcmJvbiIsImdyYXBoQ29uZmlnIiwiYmluZFRvIiwiYXhpcyIsIngiLCJsYWJlbCIsImxvd2VyTGltaXQiLCJ1cHBlckxpbWl0IiwicmFuZ2VSb3VuZGluZyIsInkiLCJhbGxvd0NhbGlicmF0aW9uIiwiZGF0YXNldDEiLCJrZXkiLCJkaXNwbGF5IiwiY29sb3IiLCJoZWxwZXJzIiwiQ09MT1JTIiwiUElOSyIsInZhbHVlcyIsInVwZGF0ZWREYXRhc2V0MSIsImdldE5ld1RpY2tzIiwiY3VycmVudExvd2VyIiwiY3VycmVudFVwcGVyIiwiZGF0YXNldCIsIm1heFZhbHVlIiwiTWF0aCIsIm1heCIsImFwcGx5IiwiX3RvQ29uc3VtYWJsZUFycmF5IiwibWFwIiwidmFsdWUiLCJjb25jYXQiLCJtaW5WYWx1ZSIsIm1pbiIsInBhZGRpbmciLCJhYnMiLCJfZDMkbmljZSIsIm5pY2UiLCJfZDMkbmljZTIiLCJfc2xpY2VkVG9BcnJheSIsIm5ld0xvd2VyIiwibmV3VXBwZXIiLCJ0aWNrc0NvdW50IiwidGlja3MiLCJBcnJheSIsImNvbnNvbGUiLCJsb2ciLCJncmFwaCIsIkR5bmFtaWNhbGx5VXBkYXRpbmdEYXRhRXhhbXBsZSIsIl91c2VTdGF0ZSIsInRvU3RyaW5nIiwiX3VzZVN0YXRlMiIsImFsbG93Q2FsaWJyYXRpb25TdGF0dXMiLCJTZXRBbGxvd0NhbGlicmF0aW9uU3RhdHVzIiwidXNlRWZmZWN0IiwiYXBpIiwibG9hZENvbnRlbnQiLCJsaW5lIiwibmV3VGlja3MiLCJjb25maWciLCJkb21haW4iLCJyZWZsb3dNdWx0aXBsZURhdGFzZXRzIiwiaGFuZGxlQ2xpY2tUb2dnbGVDYWxpYnJhdGlvbiIsImhhbmRsZUNsaWNrVXBkYXRlRGF0YSIsInBhbkRhdGEiLCJoYW5kbGVDbGlja1Jlc2V0IiwiY3JlYXRlRWxlbWVudCIsIkZyYWdtZW50IiwidGV4dCIsIm9uQ2xpY2siLCJpZCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./packages/terra-graphs-docs/src/terra-dev-site/graph/CoreConcepts.b/examples/reflow/DynamicallyUpdatingData.jsx\n");
/***/ }),
diff --git a/pull/355/packages_terra-graphs-docs_src_terra-dev-site_test_general_reflow_DynamicallyUpdatingData_test_jsx.js b/pull/355/packages_terra-graphs-docs_src_terra-dev-site_test_general_reflow_DynamicallyUpdatingData_test_jsx.js
index b98dedaa5..a6eb72aa1 100644
--- a/pull/355/packages_terra-graphs-docs_src_terra-dev-site_test_general_reflow_DynamicallyUpdatingData_test_jsx.js
+++ b/pull/355/packages_terra-graphs-docs_src_terra-dev-site_test_general_reflow_DynamicallyUpdatingData_test_jsx.js
@@ -15,7 +15,7 @@
\************************************************************************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ \"./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! d3-array */ \"./packages/terra-graphs-docs/node_modules/d3-array/src/nice.js\");\n/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! d3-array */ \"./packages/terra-graphs-docs/node_modules/d3-array/src/ticks.js\");\n/* harmony import */ var terra_button__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! terra-button */ \"./node_modules/terra-button/lib/Button.js\");\n/* harmony import */ var _cerner_carbon_graphs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @cerner/carbon-graphs */ \"./packages/carbon-graphs/src/index.js\");\n\n\n\n\n\n\n\n// graph configuration object\n\nvar graphConfig = {\n bindTo: '#dynamic-data-update-example',\n axis: {\n x: {\n label: 'x-axis',\n lowerLimit: 80,\n upperLimit: 280,\n rangeRounding: false\n },\n y: {\n label: 'y-axis',\n lowerLimit: -5,\n upperLimit: 20\n }\n },\n allowCalibration: false\n};\n\n// graph dataset\n\nvar dataset1 = {\n key: 'uid_1',\n label: {\n display: 'Dataset 1'\n },\n color: _cerner_carbon_graphs__WEBPACK_IMPORTED_MODULE_4__[\"default\"].helpers.COLORS.PINK,\n values: [{\n x: 87,\n y: -2\n }, {\n x: 95,\n y: 1\n }, {\n x: 103,\n y: -4\n }, {\n x: 109,\n y: -2\n }, {\n x: 128,\n y: 3\n }, {\n x: 145,\n y: 28\n }, {\n x: 151,\n y: 7\n }, {\n x: 164,\n y: 10\n }, {\n x: 177,\n y: 1\n }, {\n x: 192,\n y: 6\n }, {\n x: 203,\n y: -21\n }, {\n x: 209,\n y: -3\n }, {\n x: 246,\n y: 3\n }]\n};\n\n// Updated values for dataset 1\n// Color, shape & label of the original dataset is retained if it is not updated\nvar updatedDataset1 = {\n key: 'uid_1',\n values: [{\n x: 81,\n y: 21\n }, {\n x: 107,\n y: 6\n }, {\n x: 109,\n y: 7\n }, {\n x: 118,\n y: 5\n }, {\n x: 117,\n y: 21\n }, {\n x: 127,\n y: -20\n }, {\n x: 137,\n y: -9\n }, {\n x: 141,\n y: -6\n }, {\n x: 144,\n y: 39\n }, {\n x: 151,\n y: -14\n }, {\n x: 156,\n y: -9\n }, {\n x: 163,\n y: 4\n }, {\n x: 164,\n y: 29\n }, {\n x: 170,\n y: 30\n }, {\n x: 172,\n y: 31\n }, {\n x: 176,\n y: 34\n }, {\n x: 185,\n y: 1\n }, {\n x: 191,\n y: -2\n }, {\n x: 193,\n y: 38\n }, {\n x: 198,\n y: 40\n }]\n};\nvar getNewTicks = function getNewTicks(currentLower, currentUpper, dataset) {\n var maxValue = Math.max.apply(Math, (0,_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(dataset.values.map(function (value) {\n return value.y;\n })).concat([currentUpper]));\n var minValue = Math.min.apply(Math, (0,_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(dataset.values.map(function (value) {\n return value.y;\n })).concat([currentLower]));\n\n // add padding by using the nice function\n var _d3$nice = d3_array__WEBPACK_IMPORTED_MODULE_5__[\"default\"](minValue - 1, maxValue + 1, 10),\n _d3$nice2 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_d3$nice, 2),\n newLower = _d3$nice2[0],\n newUpper = _d3$nice2[1];\n\n // get new tick values\n var ticksCount = 3;\n var ticks = new Array().concat(d3_array__WEBPACK_IMPORTED_MODULE_6__[\"default\"](newLower, newUpper, ticksCount), [newLower, newUpper]);\n console.log(\"ticks\", ticks);\n console.log(\"current min, max\", [minValue, maxValue]);\n console.log(\"new min, max\", [newLower, newUpper]);\n return {\n newLower: newLower,\n newUpper: newUpper,\n ticks: ticks\n };\n};\n\n// graph rendering\nvar graph;\nvar DynamicallyUpdatingDataExample = function DynamicallyUpdatingDataExample() {\n var _useState = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(graphConfig.allowCalibration.toString()),\n _useState2 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_useState, 2),\n allowCalibrationStatus = _useState2[0],\n SetAllowCalibrationStatus = _useState2[1];\n\n // initial graph load\n react__WEBPACK_IMPORTED_MODULE_2__.useEffect(function () {\n graph = _cerner_carbon_graphs__WEBPACK_IMPORTED_MODULE_4__[\"default\"].api.graph(graphConfig);\n graph.loadContent(_cerner_carbon_graphs__WEBPACK_IMPORTED_MODULE_4__[\"default\"].api.line(dataset1));\n var newTicks = getNewTicks(graph.config.axis.y.upperLimit, graph.config.axis.y.lowerLimit, dataset1);\n graph.config.axis.y.domain.lowerLimit = newTicks.newLower;\n graph.config.axis.y.domain.upperLimit = newTicks.newUpper;\n graph.config.axis.y.ticks.values = newTicks.ticks;\n graph.reflowMultipleDatasets();\n console.log(graph.config.axis.y.upperLimit);\n }, []);\n var handleClickToggleCalibration = function handleClickToggleCalibration() {\n graph.config.allowCalibration = !graph.config.allowCalibration;\n SetAllowCalibrationStatus(graph.config.allowCalibration.toString());\n graph.reflowMultipleDatasets();\n };\n\n // dynamically update graph data\n var handleClickUpdateData = function handleClickUpdateData() {\n var newTicks = getNewTicks(graph.config.axis.y.lowerLimit, graph.config.axis.y.upperLimit, updatedDataset1);\n graph.config.axis.y.domain.lowerLimit = newTicks.newLower;\n graph.config.axis.y.domain.upperLimit = newTicks.newUpper;\n graph.config.axis.y.ticks.values = newTicks.ticks;\n graph.reflowMultipleDatasets({\n panData: [updatedDataset1]\n });\n };\n\n // reset graph to it's original state\n var handleClickReset = function handleClickReset() {\n var newTicks = getNewTicks(graph.config.axis.y.lowerLimit, graph.config.axis.y.upperLimit, dataset1);\n graph.config.axis.y.domain.lowerLimit = newTicks.newLower;\n graph.config.axis.y.domain.upperLimit = newTicks.newUpper;\n graph.config.axis.y.ticks.values = newTicks.ticks;\n graph.reflowMultipleDatasets({\n panData: [dataset1]\n });\n };\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement(react__WEBPACK_IMPORTED_MODULE_2__.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement(terra_button__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n text: \"Toggle Calibration\",\n onClick: handleClickToggleCalibration\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement(terra_button__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n text: \"Update Data\",\n onClick: handleClickUpdateData\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement(terra_button__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n text: \"Reset\",\n onClick: handleClickReset\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement(\"div\", null, \"AllowCalibration:\", allowCalibrationStatus), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement(\"div\", {\n id: \"dynamic-data-update-example\"\n }));\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (DynamicallyUpdatingDataExample);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9wYWNrYWdlcy90ZXJyYS1ncmFwaHMtZG9jcy9zcmMvdGVycmEtZGV2LXNpdGUvZ3JhcGgvQ29yZUNvbmNlcHRzLmIvZXhhbXBsZXMvcmVmbG93L0R5bmFtaWNhbGx5VXBkYXRpbmdEYXRhLmpzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQXdDO0FBQ1Y7QUFFSTtBQUNTOztBQUUzQzs7QUFFQSxJQUFNSyxXQUFXLEdBQUc7RUFDbEJDLE1BQU0sRUFBRSw4QkFBOEI7RUFDdENDLElBQUksRUFBRTtJQUNKQyxDQUFDLEVBQUU7TUFDREMsS0FBSyxFQUFFLFFBQVE7TUFDZkMsVUFBVSxFQUFFLEVBQUU7TUFDZEMsVUFBVSxFQUFFLEdBQUc7TUFDZkMsYUFBYSxFQUFFO0lBQ2pCLENBQUM7SUFDREMsQ0FBQyxFQUFFO01BQ0RKLEtBQUssRUFBRSxRQUFRO01BQ2ZDLFVBQVUsRUFBRSxDQUFDLENBQUM7TUFDZEMsVUFBVSxFQUFFO0lBQ2Q7RUFDRixDQUFDO0VBQ0RHLGdCQUFnQixFQUFFO0FBQ3BCLENBQUM7O0FBRUQ7O0FBRUEsSUFBTUMsUUFBUSxHQUFHO0VBQ2ZDLEdBQUcsRUFBRSxPQUFPO0VBQ1pQLEtBQUssRUFBRTtJQUNMUSxPQUFPLEVBQUU7RUFDWCxDQUFDO0VBQ0RDLEtBQUssRUFBRWQsNkRBQU0sQ0FBQ2UsT0FBTyxDQUFDQyxNQUFNLENBQUNDLElBQUk7RUFDakNDLE1BQU0sRUFBRSxDQUNOO0lBQUVkLENBQUMsRUFBRSxFQUFFO0lBQUVLLENBQUMsRUFBRSxDQUFDO0VBQUUsQ0FBQyxFQUNoQjtJQUFFTCxDQUFDLEVBQUUsRUFBRTtJQUFFSyxDQUFDLEVBQUU7RUFBRSxDQUFDLEVBQ2Y7SUFBRUwsQ0FBQyxFQUFFLEdBQUc7SUFBRUssQ0FBQyxFQUFFLENBQUM7RUFBRSxDQUFDLEVBQ2pCO0lBQUVMLENBQUMsRUFBRSxHQUFHO0lBQUVLLENBQUMsRUFBRSxDQUFDO0VBQUUsQ0FBQyxFQUNqQjtJQUFFTCxDQUFDLEVBQUUsR0FBRztJQUFFSyxDQUFDLEVBQUU7RUFBRSxDQUFDLEVBQ2hCO0lBQUVMLENBQUMsRUFBRSxHQUFHO0lBQUVLLENBQUMsRUFBRTtFQUFHLENBQUMsRUFDakI7SUFBRUwsQ0FBQyxFQUFFLEdBQUc7SUFBRUssQ0FBQyxFQUFFO0VBQUUsQ0FBQyxFQUNoQjtJQUFFTCxDQUFDLEVBQUUsR0FBRztJQUFFSyxDQUFDLEVBQUU7RUFBRyxDQUFDLEVBQ2pCO0lBQUVMLENBQUMsRUFBRSxHQUFHO0lBQUVLLENBQUMsRUFBRTtFQUFFLENBQUMsRUFDaEI7SUFBRUwsQ0FBQyxFQUFFLEdBQUc7SUFBRUssQ0FBQyxFQUFFO0VBQUUsQ0FBQyxFQUNoQjtJQUFFTCxDQUFDLEVBQUUsR0FBRztJQUFFSyxDQUFDLEVBQUUsQ0FBQztFQUFHLENBQUMsRUFDbEI7SUFBRUwsQ0FBQyxFQUFFLEdBQUc7SUFBRUssQ0FBQyxFQUFFLENBQUM7RUFBRSxDQUFDLEVBQ2pCO0lBQUVMLENBQUMsRUFBRSxHQUFHO0lBQUVLLENBQUMsRUFBRTtFQUFFLENBQUM7QUFFcEIsQ0FBQzs7QUFFRDtBQUNBO0FBQ0EsSUFBTVUsZUFBZSxHQUFHO0VBQ3RCUCxHQUFHLEVBQUUsT0FBTztFQUNaTSxNQUFNLEVBQUUsQ0FDTjtJQUFFZCxDQUFDLEVBQUUsRUFBRTtJQUFFSyxDQUFDLEVBQUU7RUFBRyxDQUFDLEVBQ2hCO0lBQUVMLENBQUMsRUFBRSxHQUFHO0lBQUVLLENBQUMsRUFBRTtFQUFFLENBQUMsRUFDaEI7SUFBRUwsQ0FBQyxFQUFFLEdBQUc7SUFBRUssQ0FBQyxFQUFFO0VBQUUsQ0FBQyxFQUNoQjtJQUFFTCxDQUFDLEVBQUUsR0FBRztJQUFFSyxDQUFDLEVBQUU7RUFBRSxDQUFDLEVBQ2hCO0lBQUVMLENBQUMsRUFBRSxHQUFHO0lBQUVLLENBQUMsRUFBRTtFQUFHLENBQUMsRUFDakI7SUFBRUwsQ0FBQyxFQUFFLEdBQUc7SUFBRUssQ0FBQyxFQUFFLENBQUM7RUFBRyxDQUFDLEVBQ2xCO0lBQUVMLENBQUMsRUFBRSxHQUFHO0lBQUVLLENBQUMsRUFBRSxD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QUMsZUFDbERuRSxnREFBQSxjQUFLLG1CQUVILEVBQUNzRCxzQkFDRSxDQUFDLGVBQ050RCxnREFBQTtJQUFLd0UsRUFBRSxFQUFDO0VBQTZCLENBQUUsQ0FDdkMsQ0FBQztBQUVQLENBQUM7QUFFRCwrREFBZXRCLDhCQUE4QiIsInNvdXJjZXMiOlsid2VicGFjazovL3RlcnJhLWdyYXBocy8uL3BhY2thZ2VzL3RlcnJhLWdyYXBocy1kb2NzL3NyYy90ZXJyYS1kZXYtc2l0ZS9ncmFwaC9Db3JlQ29uY2VwdHMuYi9leGFtcGxlcy9yZWZsb3cvRHluYW1pY2FsbHlVcGRhdGluZ0RhdGEuanN4P2M2ODAiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0ICogYXMgZDMgZnJvbSdkMy1hcnJheSc7XG5cbmltcG9ydCBCdXR0b24gZnJvbSAndGVycmEtYnV0dG9uJztcbmltcG9ydCBDYXJib24gZnJvbSAnQGNlcm5lci9jYXJib24tZ3JhcGhzJztcblxuLy8gIGdyYXBoIGNvbmZpZ3VyYXRpb24gb2JqZWN0XG5cbmNvbnN0IGdyYXBoQ29uZmlnID0ge1xuICBiaW5kVG86ICcjZHluYW1pYy1kYXRhLXVwZGF0ZS1leGFtcGxlJyxcbiAgYXhpczoge1xuICAgIHg6IHtcbiAgICAgIGxhYmVsOiAneC1heGlzJyxcbiAgICAgIGxvd2VyTGltaXQ6IDgwLFxuICAgICAgdXBwZXJMaW1pdDogMjgwLFxuICAgICAgcmFuZ2VSb3VuZGluZzogZmFsc2UsXG4gICAgfSxcbiAgICB5OiB7XG4gICAgICBsYWJlbDogJ3ktYXhpcycsXG4gICAgICBsb3dlckxpbWl0OiAtNSxcbiAgICAgIHVwcGVyTGltaXQ6IDIwLFxuICAgIH0sXG4gIH0sXG4gIGFsbG93Q2FsaWJyYXRpb246IGZhbHNlLFxufTtcblxuLy8gIGdyYXBoIGRhdGFzZXRcblxuY29uc3QgZGF0YXNldDEgPSB7XG4gIGtleTogJ3VpZF8xJyxcbiAgbGFiZWw6IHtcbiAgICBkaXNwbGF5OiAnRGF0YXNldCAxJyxcbiAgfSxcbiAgY29sb3I6IENhcmJvbi5oZWxwZXJzLkNPTE9SUy5QSU5LLFxuICB2YWx1ZXM6IFtcbiAgICB7IHg6IDg3LCB5OiAtMiB9LFxuICAgIHsgeDogOTUsIHk6IDEgfSxcbiAgICB7IHg6IDEwMywgeTogLTQgfSxcbiAgICB7IHg6IDEwOSwgeTogLTIgfSxcbiAgICB7IHg6IDEyOCwgeTogMyB9LFxuICAgIHsgeDogMTQ1LCB5OiAyOCB9LFxuICAgIHsgeDogMTUxLCB5OiA3IH0sXG4gICAgeyB4OiAxNjQsIHk6IDEwIH0sXG4gICAgeyB4OiAxNzcsIHk6IDEgfSxcbiAgICB7IHg6IDE5MiwgeTogNiB9LFxuICAgIHsgeDogMjAzLCB5OiAtMjEgfSxcbiAgICB7IHg6IDIwOSwgeTogLTMgfSxcbiAgICB7IHg6IDI0NiwgeTogMyB9LFxuICBdLFxufTtcblxuLy8gVXBkYXRlZCB2YWx1ZXMgZm9yIGRhdGFzZXQgMVxuLy8gQ29sb3IsIHNoYXBlICYgbGFiZWwgb2YgdGhlIG9yaWdpbmFsIGRhdGFzZXQgaXMgcmV0YWluZWQgaWYgaXQgaXMgbm90IHVwZGF0ZWRcbmNvbnN0IHVwZGF0ZWREYXRhc2V0MSA9IHtcbiAga2V5OiAndWlkXzEnLFxuICB2YWx1ZXM6IFtcbiAgICB7IHg6IDgxLCB5OiAyMSB9LFxuICAgIHsgeDogMTA3LCB5OiA2IH0sXG4gICAgeyB4OiAxMDksIHk6IDcgfSxcbiAgICB7IHg6IDExOCwgeTogNSB9LFxuICAgIHsgeDogMTE3LCB5OiAyMSB9LFxuICAgIHsgeDogMTI3LCB5OiAtMjAgfSxcbiAgICB7IHg6IDEzNywgeTogLTkgfSxcbiAgICB7IHg6IDE0MSwgeTogLTYgfSxcbiAgICB7IHg6IDE0NCwgeTogMzkgfSxcbiAgICB7IHg6IDE1MSwgeTogLTE0IH0sXG4gICAgeyB4OiAxNTYsIHk6IC05IH0sXG4gICAgeyB4OiAxNjMsIHk6IDQgfSxcbiAgICB7IHg6IDE2NCwgeTogMjkgfSxcbiAgICB7IHg6IDE3MCwgeTogMzAgfSxcbiAgICB7IHg6IDE3MiwgeTogMzEgfSxcbiAgICB7IHg6IDE3NiwgeTogMzQgfSxcbiAgICB7IHg6IDE4NSwgeTogMSB9LFxuICAgIHsgeDogMTkxLCB5OiAtMiB9LFxuICAgIHsgeDogMTkzLCB5OiAzOCB9LFxuICAgIHsgeDogMTk4LCB5OiA0MCB9LFxuICBdLFxufTtcblxuY29uc3QgZ2V0TmV3VGlja3MgPSAoY3VycmVudExvd2VyLCBjdXJyZW50VXBwZXIsIGRhdGFzZXQpID0+IHtcbiAgY29uc3QgbWF4VmFsdWUgPSBNYXRoLm1heCguLi5kYXRhc2V0LnZhbHVlcy5tYXAodmFsdWUgPT4gdmFsdWUueSksIGN1cnJlbnRVcHBlcik7XG4gIGNvbnN0IG1pblZhbHVlID0gTWF0aC5taW4oLi4uZGF0YXNldC52YWx1ZXMubWFwKHZhbHVlID0+IHZhbHVlLnkpLCBjdXJyZW50TG93ZXIpO1xuXG4gIC8vIGFkZCBwYWRkaW5nIGJ5IHVzaW5nIHRoZSBuaWNlIGZ1bmN0aW9uXG4gIGNvbnN0IFtuZXdMb3dlciwgbmV3VXBwZXJdID0gZDMubmljZShtaW5WYWx1ZSAtIDEsIG1heFZhbHVlICsgMSwgMTApO1xuXG4gIC8vIGdldCBuZXcgdGljayB2YWx1ZXNcbiAgY29uc3QgdGlja3NDb3VudCA9IDM7XG4gIGNvbnN0IHRpY2tzID0gbmV3IEFycmF5KCkuY29uY2F0KGQzLnRpY2tzKG5ld0xvd2VyLCBuZXdVcHBlciwgdGlja3NDb3VudCksIFtuZXdMb3dlciwgbmV3VXBwZXJdICk7XG5cbiAgY29uc29sZS5sb2coXCJ0aWNrc1wiLHRpY2tzKTtcbiAgY29uc29sZS5sb2coXCJjdXJyZW50IG1pbiwgbWF4XCIsW21pblZhbHVlLCBtYXhWYWx1ZV0pO1xuICBjb25zb2xlLmxvZyhcIm5ldyBtaW4sIG1heFwiLCBbbmV3TG93ZXIsIG5ld1VwcGVyXSk7XG5cbiAgcmV0dXJuIHtcbiAgICBuZXdMb3dlcixcbiAgICBuZXdVcHBlcixcbiAgICB0aWNrcyxcbiAgfVxufVxuXG4vLyBncmFwaCByZW5kZXJpbmdcbmxldCBncmFwaDtcbmNvbnN0IER5bmFtaWNhbGx5VXBkYXRpbmdEYXRhRXhhbXBsZSA9ICgpID0+IHtcbiAgY29uc3QgW2FsbG93Q2FsaWJyYXRpb25TdGF0dXMsIFNldEFsbG93Q2FsaWJyYXRpb25TdGF0dXNdID0gdXNlU3RhdGUoZ3JhcGhDb25maWcuYWxsb3dDYWxpYnJhdGlvbi50b1N0cmluZygpKTtcblxuICAvLyBpbml0aWFsIGdyYXBoIGxvYWRcbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBncmFwaCA9IENhcmJvbi5hcGkuZ3JhcGgoZ3JhcGhDb25maWcpO1xuICAgIGdyYXBoLmxvYWRDb250ZW50KENhcmJvbi5hcGkubGluZShkYXRhc2V0MSkpO1xuXG4gICAgY29uc3QgbmV3VGlja3MgPSBnZXROZXdUaWNrcyhncmFwaC5jb25maWcuYXhpcy55LnVwcGVyTGltaXQsIGdyYXBoLmNvbmZpZy5heGlzLnkubG93ZXJMaW1pdCwgZGF0YXNldDEpO1xuXG4gICAgZ3JhcGguY29uZmlnLmF4aXMueS5kb21haW4ubG93ZXJMaW1pdCA9IG5ld1RpY2tzLm5ld0xvd2VyO1xuICAgIGdyYXBoLmNvbmZpZy5heGlzLnkuZG9tYWluLnVwcGVyTGltaXQgPSBuZXdUaWNrcy5uZXdVcHBlcjtcbiAgICBncmFwaC5jb25maWcuYXhpcy55LnRpY2tzLnZhbHVlcyA9IG5ld1RpY2tzLnRpY2tzO1xuXG4gICAgZ3JhcGgucmVmbG93TXVsdGlwbGVEYXRhc2V0cygpO1xuXG4gICAgY29uc29sZS5sb2coZ3JhcGguY29uZmlnLmF4aXMueS51cHBlckxpbWl0KVxuXG4gIH0sIFtdKTtcblxuICBjb25zdCBoYW5kbGVDbGlja1RvZ2dsZUNhbGlicmF0aW9uID0gKCkgPT4ge1xuICAgIGdyYXBoLmNvbmZpZy5hbGxvd0NhbGlicmF0aW9uID0gIWdyYXBoLmNvbmZpZy5hbGxvd0NhbGlicmF0aW9uO1xuICAgIFNldEFsbG93Q2FsaWJyYXRpb25TdGF0dXMoZ3JhcGguY29uZmlnLmFsbG93Q2FsaWJyYXRpb24udG9TdHJpbmcoKSk7XG5cbiAgICBncmFwaC5yZWZsb3dNdWx0aXBsZURhdGFzZXRzKCk7XG4gIH07XG5cbiAgLy8gZHluYW1pY2FsbHkgdXBkYXRlIGdyYXBoIGRhdGFcbiAgY29uc3QgaGFuZGxlQ2xpY2tVcGRhdGVEYXRhID0gKCkgPT4ge1xuICAgIGNvbnN0IG5ld1RpY2tzID0gZ2V0TmV3VGlja3MoZ3JhcGguY29uZmlnLmF4aXMueS5sb3dlckxpbWl0LCBncmFwaC5jb25maWcuYXhpcy55LnVwcGVyTGltaXQsIHVwZGF0ZWREYXRhc2V0MSk7XG5cbiAgICBncmFwaC5jb25maWcuYXhpcy55LmRvbWFpbi5sb3dlckxpbWl0ID0gbmV3VGlja3MubmV3TG93ZXI7XG4gICAgZ3JhcGguY29uZmlnLmF4aXMueS5kb21haW4udXBwZXJMaW1pdCA9IG5ld1RpY2tzLm5ld1VwcGVyO1xuICAgIGdyYXBoLmNvbmZpZy5heGlzLnkudGlja3MudmFsdWVzID0gbmV3VGlja3MudGlja3M7XG5cbiAgICBncmFwaC5yZWZsb3dNdWx0aXBsZURhdGFzZXRzKHtcbiAgICAgIHBhbkRhdGE6IFt1cGRhdGVkRGF0YXNldDFdLFxuICAgIH0pO1xuICB9O1xuXG4gIC8vIHJlc2V0IGdyYXBoIHRvIGl0J3Mgb3JpZ2luYWwgc3RhdGVcbiAgY29uc3QgaGFuZGxlQ2xpY2tSZXNldCA9ICgpID0+IHtcbiAgICBjb25zdCBuZXdUaWNrcyA9IGdldE5ld1RpY2tzKGdyYXBoLmNvbmZpZy5heGlzLnkubG93ZXJMaW1pdCwgZ3JhcGguY29uZmlnLmF4aXMueS51cHBlckxpbWl0LCBkYXRhc2V0MSk7XG5cbiAgICBncmFwaC5jb25maWcuYXhpcy55LmRvbWFpbi5sb3dlckxpbWl0ID0gbmV3VGlja3MubmV3TG93ZXI7XG4gICAgZ3JhcGguY29uZmlnLmF4aXMueS5kb21haW4udXBwZXJMaW1pdCA9IG5ld1RpY2tzLm5ld1VwcGVyO1xuICAgIGdyYXBoLmNvbmZpZy5heGlzLnkudGlja3MudmFsdWVzID0gbmV3VGlja3MudGlja3M7XG5cbiAgICBncmFwaC5yZWZsb3dNdWx0aXBsZURhdGFzZXRzKHtcbiAgICAgIHBhbkRhdGE6IFtkYXRhc2V0MV0sXG4gICAgfSk7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPEJ1dHRvbiB0ZXh0PVwiVG9nZ2xlIENhbGlicmF0aW9uXCIgb25DbGljaz17aGFuZGxlQ2xpY2tUb2dnbGVDYWxpYnJhdGlvbn0gLz5cbiAgICAgIDxCdXR0b24gdGV4dD1cIlVwZGF0ZSBEYXRhXCIgb25DbGljaz17aGFuZGxlQ2xpY2tVcGRhdGVEYXRhfSAvPlxuICAgICAgPEJ1dHRvbiB0ZXh0PVwiUmVzZXRcIiBvbkNsaWNrPXtoYW5kbGVDbGlja1Jlc2V0fSAvPlxuICAgICAgPGRpdj5cbiAgICAgICAgQWxsb3dDYWxpYnJhdGlvbjpcbiAgICAgICAge2FsbG93Q2FsaWJyYXRpb25TdGF0dXN9XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgaWQ9XCJkeW5hbWljLWRhdGEtdXBkYXRlLWV4YW1wbGVcIiAvPlxuICAgIDwvPlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgRHluYW1pY2FsbHlVcGRhdGluZ0RhdGFFeGFtcGxlO1xuIl0sIm5hbWVzIjpbIlJlYWN0IiwidXNlU3RhdGUiLCJkMyIsIkJ1dHRvbiIsIkNhcmJvbiIsImdyYXBoQ29uZmlnIiwiYmluZFRvIiwiYXhpcyIsIngiLCJsYWJlbCIsImxvd2VyTGltaXQiLCJ1cHBlckxpbWl0IiwicmFuZ2VSb3VuZGluZyIsInkiLCJhbGxvd0NhbGlicmF0aW9uIiwiZGF0YXNldDEiLCJrZXkiLCJkaXNwbGF5IiwiY29sb3IiLCJoZWxwZXJzIiwiQ09MT1JTIiwiUElOSyIsInZhbHVlcyIsInVwZGF0ZWREYXRhc2V0MSIsImdldE5ld1RpY2tzIiwiY3VycmVudExvd2VyIiwiY3VycmVudFVwcGVyIiwiZGF0YXNldCIsIm1heFZhbHVlIiwiTWF0aCIsIm1heCIsImFwcGx5IiwiX3RvQ29uc3VtYWJsZUFycmF5IiwibWFwIiwidmFsdWUiLCJjb25jYXQiLCJtaW5WYWx1ZSIsIm1pbiIsIl9kMyRuaWNlIiwibmljZSIsIl9kMyRuaWNlMiIsIl9zbGljZWRUb0FycmF5IiwibmV3TG93ZXIiLCJuZXdVcHBlciIsInRpY2tzQ291bnQiLCJ0aWNrcyIsIkFycmF5IiwiY29uc29sZSIsImxvZyIsImdyYXBoIiwiRHluYW1pY2FsbHlVcGRhdGluZ0RhdGFFeGFtcGxlIiwiX3VzZVN0YXRlIiwidG9TdHJpbmciLCJfdXNlU3RhdGUyIiwiYWxsb3dDYWxpYnJhdGlvblN0YXR1cyIsIlNldEFsbG93Q2FsaWJyYXRpb25TdGF0dXMiLCJ1c2VFZmZlY3QiLCJhcGkiLCJsb2FkQ29udGVudCIsImxpbmUiLCJuZXdUaWNrcyIsImNvbmZpZyIsImRvbWFpbiIsInJlZmxvd011bHRpcGxlRGF0YXNldHMiLCJoYW5kbGVDbGlja1RvZ2dsZUNhbGlicmF0aW9uIiwiaGFuZGxlQ2xpY2tVcGRhdGVEYXRhIiwicGFuRGF0YSIsImhhbmRsZUNsaWNrUmVzZXQiLCJjcmVhdGVFbGVtZW50IiwiRnJhZ21lbnQiLCJ0ZXh0Iiwib25DbGljayIsImlkIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./packages/terra-graphs-docs/src/terra-dev-site/graph/CoreConcepts.b/examples/reflow/DynamicallyUpdatingData.jsx\n");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ \"./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! d3-array */ \"./packages/terra-graphs-docs/node_modules/d3-array/src/nice.js\");\n/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! d3-array */ \"./packages/terra-graphs-docs/node_modules/d3-array/src/ticks.js\");\n/* harmony import */ var terra_button__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! terra-button */ \"./node_modules/terra-button/lib/Button.js\");\n/* harmony import */ var _cerner_carbon_graphs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @cerner/carbon-graphs */ \"./packages/carbon-graphs/src/index.js\");\n\n\n\n\n\n\n\n// graph configuration object\n\nvar graphConfig = {\n bindTo: '#dynamic-data-update-example',\n axis: {\n x: {\n label: 'x-axis',\n lowerLimit: 80,\n upperLimit: 280,\n rangeRounding: false\n },\n y: {\n label: 'y-axis',\n lowerLimit: -5,\n upperLimit: 20\n }\n },\n allowCalibration: false\n};\n\n// graph dataset\n\nvar dataset1 = {\n key: 'uid_1',\n label: {\n display: 'Dataset 1'\n },\n color: _cerner_carbon_graphs__WEBPACK_IMPORTED_MODULE_4__[\"default\"].helpers.COLORS.PINK,\n values: [{\n x: 87,\n y: -2\n }, {\n x: 95,\n y: 1\n }, {\n x: 103,\n y: -4\n }, {\n x: 109,\n y: -2\n }, {\n x: 128,\n y: 3\n }, {\n x: 145,\n y: 28\n }, {\n x: 151,\n y: 7\n }, {\n x: 164,\n y: 10\n }, {\n x: 177,\n y: 1\n }, {\n x: 192,\n y: 6\n }, {\n x: 203,\n y: -21\n }, {\n x: 209,\n y: -3\n }, {\n x: 246,\n y: 3\n }]\n};\n\n// Updated values for dataset 1\n// Color, shape & label of the original dataset is retained if it is not updated\nvar updatedDataset1 = {\n key: 'uid_1',\n values: [{\n x: 81,\n y: 21\n }, {\n x: 107,\n y: 6\n }, {\n x: 109,\n y: 7\n }, {\n x: 118,\n y: 5\n }, {\n x: 117,\n y: 21\n }, {\n x: 127,\n y: -20\n }, {\n x: 137,\n y: -9\n }, {\n x: 141,\n y: -6\n }, {\n x: 144,\n y: 39\n }, {\n x: 151,\n y: -14\n }, {\n x: 156,\n y: -9\n }, {\n x: 163,\n y: 4\n }, {\n x: 164,\n y: 29\n }, {\n x: 170,\n y: 30\n }, {\n x: 172,\n y: 31\n }, {\n x: 176,\n y: 34\n }, {\n x: 185,\n y: 1\n }, {\n x: 191,\n y: -2\n }, {\n x: 193,\n y: 38\n }, {\n x: 198,\n y: 40\n }]\n};\nvar getNewTicks = function getNewTicks(currentLower, currentUpper, dataset) {\n var maxValue = Math.max.apply(Math, (0,_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(dataset.values.map(function (value) {\n return value.y;\n })).concat([currentUpper]));\n var minValue = Math.min.apply(Math, (0,_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(dataset.values.map(function (value) {\n return value.y;\n })).concat([currentLower]));\n\n // add padding by using the nice function\n var padding = Math.abs(minValue - maxValue) * 0.05;\n var _d3$nice = d3_array__WEBPACK_IMPORTED_MODULE_5__[\"default\"](minValue - padding, maxValue + padding, 10),\n _d3$nice2 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_d3$nice, 2),\n newLower = _d3$nice2[0],\n newUpper = _d3$nice2[1];\n\n // get new tick values\n var ticksCount = 3;\n var ticks = new Array().concat(d3_array__WEBPACK_IMPORTED_MODULE_6__[\"default\"](newLower, newUpper, ticksCount), [newLower, newUpper]);\n console.log(\"ticks\", ticks);\n console.log(\"current min, max\", [minValue, maxValue]);\n console.log(\"new min, max\", [newLower, newUpper]);\n return {\n newLower: newLower,\n newUpper: newUpper,\n ticks: ticks\n };\n};\n\n// graph rendering\nvar graph;\nvar DynamicallyUpdatingDataExample = function DynamicallyUpdatingDataExample() {\n var _useState = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(graphConfig.allowCalibration.toString()),\n _useState2 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_useState, 2),\n allowCalibrationStatus = _useState2[0],\n SetAllowCalibrationStatus = _useState2[1];\n\n // initial graph load\n react__WEBPACK_IMPORTED_MODULE_2__.useEffect(function () {\n graph = _cerner_carbon_graphs__WEBPACK_IMPORTED_MODULE_4__[\"default\"].api.graph(graphConfig);\n graph.loadContent(_cerner_carbon_graphs__WEBPACK_IMPORTED_MODULE_4__[\"default\"].api.line(dataset1));\n var newTicks = getNewTicks(graph.config.axis.y.upperLimit, graph.config.axis.y.lowerLimit, dataset1);\n graph.config.axis.y.domain.lowerLimit = newTicks.newLower;\n graph.config.axis.y.domain.upperLimit = newTicks.newUpper;\n graph.config.axis.y.ticks.values = newTicks.ticks;\n graph.reflowMultipleDatasets();\n console.log(graph.config.axis.y.upperLimit);\n }, []);\n var handleClickToggleCalibration = function handleClickToggleCalibration() {\n graph.config.allowCalibration = !graph.config.allowCalibration;\n SetAllowCalibrationStatus(graph.config.allowCalibration.toString());\n graph.reflowMultipleDatasets();\n };\n\n // dynamically update graph data\n var handleClickUpdateData = function handleClickUpdateData() {\n var newTicks = getNewTicks(graph.config.axis.y.lowerLimit, graph.config.axis.y.upperLimit, updatedDataset1);\n graph.config.axis.y.domain.lowerLimit = newTicks.newLower;\n graph.config.axis.y.domain.upperLimit = newTicks.newUpper;\n graph.config.axis.y.ticks.values = newTicks.ticks;\n graph.reflowMultipleDatasets({\n panData: [updatedDataset1]\n });\n };\n\n // reset graph to it's original state\n var handleClickReset = function handleClickReset() {\n var newTicks = getNewTicks(graph.config.axis.y.lowerLimit, graph.config.axis.y.upperLimit, dataset1);\n graph.config.axis.y.domain.lowerLimit = newTicks.newLower;\n graph.config.axis.y.domain.upperLimit = newTicks.newUpper;\n graph.config.axis.y.ticks.values = newTicks.ticks;\n graph.reflowMultipleDatasets({\n panData: [dataset1]\n });\n };\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement(react__WEBPACK_IMPORTED_MODULE_2__.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement(terra_button__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n text: \"Toggle Calibration\",\n onClick: handleClickToggleCalibration\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement(terra_button__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n text: \"Update Data\",\n onClick: handleClickUpdateData\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement(terra_button__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n text: \"Reset\",\n onClick: handleClickReset\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement(\"div\", null, \"AllowCalibration:\", allowCalibrationStatus), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement(\"div\", {\n id: \"dynamic-data-update-example\"\n }));\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (DynamicallyUpdatingDataExample);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9wYWNrYWdlcy90ZXJyYS1ncmFwaHMtZG9jcy9zcmMvdGVycmEtZGV2LXNpdGUvZ3JhcGgvQ29yZUNvbmNlcHRzLmIvZXhhbXBsZXMvcmVmbG93L0R5bmFtaWNhbGx5VXBkYXRpbmdEYXRhLmpzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQXdDO0FBQ1Y7QUFFSTtBQUNTOztBQUUzQzs7QUFFQSxJQUFNSyxXQUFXLEdBQUc7RUFDbEJDLE1BQU0sRUFBRSw4QkFBOEI7RUFDdENDLElBQUksRUFBRTtJQUNKQyxDQUFDLEVBQUU7TUFDREMsS0FBSyxFQUFFLFFBQVE7TUFDZkMsVUFBVSxFQUFFLEVBQUU7TUFDZEMsVUFBVSxFQUFFLEdBQUc7TUFDZkMsYUFBYSxFQUFFO0lBQ2pCLENBQUM7SUFDREMsQ0FBQyxFQUFFO01BQ0RKLEtBQUssRUFBRSxRQUFRO01BQ2ZDLFVBQVUsRUFBRSxDQUFDLENBQUM7TUFDZEMsVUFBVSxFQUFFO0lBQ2Q7RUFDRixDQUFDO0VBQ0RHLGdCQUFnQixFQUFFO0FBQ3BCLENBQUM7O0FBRUQ7O0FBRUEsSUFBTUMsUUFBUSxHQUFHO0VBQ2ZDLEdBQUcsRUFBRSxPQUFPO0VBQ1pQLEtBQUssRUFBRTtJQUNMUSxPQUFPLEVBQUU7RUFDWCxDQUFDO0VBQ0RDLEtBQUssRUFBRWQsNkRBQU0sQ0FBQ2UsT0FBTyxDQUFDQyxNQUFNLENBQUNDLElBQUk7RUFDakNDLE1BQU0sRUFBRSxDQUNOO0lBQUVkLENBQUMsRUFBRSxFQUFFO0lBQUVLLENBQUMsRUFBRSxDQUFDO0VBQUUsQ0FBQyxFQUNoQjtJQUFFTCxDQUFDLEVBQUUsRUFBRTtJQUFFSyxDQUFDLEVBQUU7RUFBRSxDQUFDLEVBQ2Y7SUFBRUwsQ0FBQyxFQUFFLEdBQUc7SUFBRUssQ0FBQyxFQUFFLENBQUM7RUFBRSxDQUFDLEVBQ2pCO0lBQUVMLENBQUMsRUFBRSxHQUFHO0lBQUVLLENBQUMsRUFBRSxDQUFDO0VBQUUsQ0FBQyxFQUNqQjtJQUFFTCxDQUFDLEVBQUUsR0FBRztJQUFFSyxDQUFDLEVBQUU7RUFBRSxDQUFDLEVBQ2hCO0lBQUVMLENBQUMsRUFBRSxHQUFHO0lBQUVLLENBQUMsRUFBRTtFQUFHLENBQUMsRUFDakI7SUFBRUwsQ0FBQyxFQUFFLEdBQUc7SUFBRUssQ0FBQyxFQUFFO0VBQUUsQ0FBQyxFQUNoQjtJQUFFTCxDQUFDLEVBQUUsR0FBRztJQUFFSyxDQUFDLEVBQUU7RUFBRyxDQUFDLEVBQ2pCO0lBQUVMLENBQUMsRUFBRSxHQUFHO0lBQUVLLENBQUMsRUFBRTtFQUFFLENBQUMsRUFDaEI7SUFBRUwsQ0FBQyxFQUFFLEdBQUc7SUFBRUssQ0FBQyxFQUFFO0VBQUUsQ0FBQyxFQUNoQjtJQUFFTCxDQUFDLEVBQUUsR0FBRztJQUFFSyxDQUFDLEVBQUUsQ0FBQztFQUFHLENBQUMsRUFDbEI7SUFBRUwsQ0FBQyxFQUFFLEdBQUc7SUFBRUssQ0FBQyxFQUFFLENBQUM7RUFBRSxDQUFDLEVBQ2pCO0lBQUVMLENBQUMsRUFBRSxHQUFHO0lBQUVLLENBQUMsRUFBRTtFQUFFLENBQUM7QUFFcEIsQ0FBQzs7QUFFRDtBQUNBO0FBQ0EsSUFBTVUsZUFBZSxHQUFHO0VBQ3RCUCxHQUFHLEVBQUUsT0FBTztFQUNaTSxNQUFNLEVBQUUsQ0FDTjtJQUFFZCxDQUFDLEVBQUUsRUFBRTtJQUFFSyxDQUFDLEVBQUU7RUFBRyxDQUFDLEVBQ2hCO0lBQUVMLENBQUMsRUFBRSxHQUFHO0lBQUVLLENBQUMsRUFBRTtFQUFFLENBQUMsRUFDaEI7SUFBRUwsQ0FBQyxFQUFFLEdBQUc7SUFBRUssQ0FBQyxFQUFFO0VBQUUsQ0FBQyxFQUNoQjtJQUFFTCxDQUFDLEVBQUUsR0FBRztJQUFFSyxDQUFDLEVBQUU7RUFBRSxDQUFDLEVBQ2hCO0lBQUVMLENBQUMsRUFBRSxHQUFHO0lBQUVLLENBQUMsRUFBRTtFQUFHLENBQUMsRUFDakI7SUFBRUwsQ0FBQyxFQUFFLEdBQUc7SUFBRUssQ0FBQyxFQUFFLENBQUM7RUFBRyxDQUFDLEVBQ2xCO0lBQUVMLENBQUMsRUFBRSxHQUFHO0lBQUVLLENBQUMsRUFBRSxD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ZUFDN0RuRSxnREFBQSxDQUFDRyxvREFBTTtJQUFDcUUsSUFBSSxFQUFDLE9BQU87SUFBQ0MsT0FBTyxFQUFFSjtFQUFpQixDQUFFLENBQUMsZUFDbERyRSxnREFBQSxjQUFLLG1CQUVILEVBQUN3RCxzQkFDRSxDQUFDLGVBQ054RCxnREFBQTtJQUFLMEUsRUFBRSxFQUFDO0VBQTZCLENBQUUsQ0FDdkMsQ0FBQztBQUVQLENBQUM7QUFFRCwrREFBZXRCLDhCQUE4QiIsInNvdXJjZXMiOlsid2VicGFjazovL3RlcnJhLWdyYXBocy8uL3BhY2thZ2VzL3RlcnJhLWdyYXBocy1kb2NzL3NyYy90ZXJyYS1kZXYtc2l0ZS9ncmFwaC9Db3JlQ29uY2VwdHMuYi9leGFtcGxlcy9yZWZsb3cvRHluYW1pY2FsbHlVcGRhdGluZ0RhdGEuanN4P2M2ODAiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0ICogYXMgZDMgZnJvbSdkMy1hcnJheSc7XG5cbmltcG9ydCBCdXR0b24gZnJvbSAndGVycmEtYnV0dG9uJztcbmltcG9ydCBDYXJib24gZnJvbSAnQGNlcm5lci9jYXJib24tZ3JhcGhzJztcblxuLy8gIGdyYXBoIGNvbmZpZ3VyYXRpb24gb2JqZWN0XG5cbmNvbnN0IGdyYXBoQ29uZmlnID0ge1xuICBiaW5kVG86ICcjZHluYW1pYy1kYXRhLXVwZGF0ZS1leGFtcGxlJyxcbiAgYXhpczoge1xuICAgIHg6IHtcbiAgICAgIGxhYmVsOiAneC1heGlzJyxcbiAgICAgIGxvd2VyTGltaXQ6IDgwLFxuICAgICAgdXBwZXJMaW1pdDogMjgwLFxuICAgICAgcmFuZ2VSb3VuZGluZzogZmFsc2UsXG4gICAgfSxcbiAgICB5OiB7XG4gICAgICBsYWJlbDogJ3ktYXhpcycsXG4gICAgICBsb3dlckxpbWl0OiAtNSxcbiAgICAgIHVwcGVyTGltaXQ6IDIwLFxuICAgIH0sXG4gIH0sXG4gIGFsbG93Q2FsaWJyYXRpb246IGZhbHNlLFxufTtcblxuLy8gIGdyYXBoIGRhdGFzZXRcblxuY29uc3QgZGF0YXNldDEgPSB7XG4gIGtleTogJ3VpZF8xJyxcbiAgbGFiZWw6IHtcbiAgICBkaXNwbGF5OiAnRGF0YXNldCAxJyxcbiAgfSxcbiAgY29sb3I6IENhcmJvbi5oZWxwZXJzLkNPTE9SUy5QSU5LLFxuICB2YWx1ZXM6IFtcbiAgICB7IHg6IDg3LCB5OiAtMiB9LFxuICAgIHsgeDogOTUsIHk6IDEgfSxcbiAgICB7IHg6IDEwMywgeTogLTQgfSxcbiAgICB7IHg6IDEwOSwgeTogLTIgfSxcbiAgICB7IHg6IDEyOCwgeTogMyB9LFxuICAgIHsgeDogMTQ1LCB5OiAyOCB9LFxuICAgIHsgeDogMTUxLCB5OiA3IH0sXG4gICAgeyB4OiAxNjQsIHk6IDEwIH0sXG4gICAgeyB4OiAxNzcsIHk6IDEgfSxcbiAgICB7IHg6IDE5MiwgeTogNiB9LFxuICAgIHsgeDogMjAzLCB5OiAtMjEgfSxcbiAgICB7IHg6IDIwOSwgeTogLTMgfSxcbiAgICB7IHg6IDI0NiwgeTogMyB9LFxuICBdLFxufTtcblxuLy8gVXBkYXRlZCB2YWx1ZXMgZm9yIGRhdGFzZXQgMVxuLy8gQ29sb3IsIHNoYXBlICYgbGFiZWwgb2YgdGhlIG9yaWdpbmFsIGRhdGFzZXQgaXMgcmV0YWluZWQgaWYgaXQgaXMgbm90IHVwZGF0ZWRcbmNvbnN0IHVwZGF0ZWREYXRhc2V0MSA9IHtcbiAga2V5OiAndWlkXzEnLFxuICB2YWx1ZXM6IFtcbiAgICB7IHg6IDgxLCB5OiAyMSB9LFxuICAgIHsgeDogMTA3LCB5OiA2IH0sXG4gICAgeyB4OiAxMDksIHk6IDcgfSxcbiAgICB7IHg6IDExOCwgeTogNSB9LFxuICAgIHsgeDogMTE3LCB5OiAyMSB9LFxuICAgIHsgeDogMTI3LCB5OiAtMjAgfSxcbiAgICB7IHg6IDEzNywgeTogLTkgfSxcbiAgICB7IHg6IDE0MSwgeTogLTYgfSxcbiAgICB7IHg6IDE0NCwgeTogMzkgfSxcbiAgICB7IHg6IDE1MSwgeTogLTE0IH0sXG4gICAgeyB4OiAxNTYsIHk6IC05IH0sXG4gICAgeyB4OiAxNjMsIHk6IDQgfSxcbiAgICB7IHg6IDE2NCwgeTogMjkgfSxcbiAgICB7IHg6IDE3MCwgeTogMzAgfSxcbiAgICB7IHg6IDE3MiwgeTogMzEgfSxcbiAgICB7IHg6IDE3NiwgeTogMzQgfSxcbiAgICB7IHg6IDE4NSwgeTogMSB9LFxuICAgIHsgeDogMTkxLCB5OiAtMiB9LFxuICAgIHsgeDogMTkzLCB5OiAzOCB9LFxuICAgIHsgeDogMTk4LCB5OiA0MCB9LFxuICBdLFxufTtcblxuY29uc3QgZ2V0TmV3VGlja3MgPSAoY3VycmVudExvd2VyLCBjdXJyZW50VXBwZXIsIGRhdGFzZXQpID0+IHtcbiAgY29uc3QgbWF4VmFsdWUgPSBNYXRoLm1heCguLi5kYXRhc2V0LnZhbHVlcy5tYXAodmFsdWUgPT4gdmFsdWUueSksIGN1cnJlbnRVcHBlcik7XG4gIGNvbnN0IG1pblZhbHVlID0gTWF0aC5taW4oLi4uZGF0YXNldC52YWx1ZXMubWFwKHZhbHVlID0+IHZhbHVlLnkpLCBjdXJyZW50TG93ZXIpO1xuXG4gIC8vIGFkZCBwYWRkaW5nIGJ5IHVzaW5nIHRoZSBuaWNlIGZ1bmN0aW9uXG4gIGNvbnN0IHBhZGRpbmcgPSBNYXRoLmFicyhtaW5WYWx1ZSAtIG1heFZhbHVlKSAqIDAuMDU7XG4gIGNvbnN0IFtuZXdMb3dlciwgbmV3VXBwZXJdID0gZDMubmljZShtaW5WYWx1ZSAtIHBhZGRpbmcsIG1heFZhbHVlICsgcGFkZGluZywgMTApO1xuXG4gIC8vIGdldCBuZXcgdGljayB2YWx1ZXNcbiAgY29uc3QgdGlja3NDb3VudCA9IDM7XG4gIGNvbnN0IHRpY2tzID0gbmV3IEFycmF5KCkuY29uY2F0KGQzLnRpY2tzKG5ld0xvd2VyLCBuZXdVcHBlciwgdGlja3NDb3VudCksIFtuZXdMb3dlciwgbmV3VXBwZXJdICk7XG5cbiAgY29uc29sZS5sb2coXCJ0aWNrc1wiLHRpY2tzKTtcbiAgY29uc29sZS5sb2coXCJjdXJyZW50IG1pbiwgbWF4XCIsW21pblZhbHVlLCBtYXhWYWx1ZV0pO1xuICBjb25zb2xlLmxvZyhcIm5ldyBtaW4sIG1heFwiLCBbbmV3TG93ZXIsIG5ld1VwcGVyXSk7XG5cbiAgcmV0dXJuIHtcbiAgICBuZXdMb3dlcixcbiAgICBuZXdVcHBlcixcbiAgICB0aWNrcyxcbiAgfVxufVxuXG4vLyBncmFwaCByZW5kZXJpbmdcbmxldCBncmFwaDtcbmNvbnN0IER5bmFtaWNhbGx5VXBkYXRpbmdEYXRhRXhhbXBsZSA9ICgpID0+IHtcbiAgY29uc3QgW2FsbG93Q2FsaWJyYXRpb25TdGF0dXMsIFNldEFsbG93Q2FsaWJyYXRpb25TdGF0dXNdID0gdXNlU3RhdGUoZ3JhcGhDb25maWcuYWxsb3dDYWxpYnJhdGlvbi50b1N0cmluZygpKTtcblxuICAvLyBpbml0aWFsIGdyYXBoIGxvYWRcbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBncmFwaCA9IENhcmJvbi5hcGkuZ3JhcGgoZ3JhcGhDb25maWcpO1xuICAgIGdyYXBoLmxvYWRDb250ZW50KENhcmJvbi5hcGkubGluZShkYXRhc2V0MSkpO1xuXG4gICAgY29uc3QgbmV3VGlja3MgPSBnZXROZXdUaWNrcyhncmFwaC5jb25maWcuYXhpcy55LnVwcGVyTGltaXQsIGdyYXBoLmNvbmZpZy5heGlzLnkubG93ZXJMaW1pdCwgZGF0YXNldDEpO1xuXG4gICAgZ3JhcGguY29uZmlnLmF4aXMueS5kb21haW4ubG93ZXJMaW1pdCA9IG5ld1RpY2tzLm5ld0xvd2VyO1xuICAgIGdyYXBoLmNvbmZpZy5heGlzLnkuZG9tYWluLnVwcGVyTGltaXQgPSBuZXdUaWNrcy5uZXdVcHBlcjtcbiAgICBncmFwaC5jb25maWcuYXhpcy55LnRpY2tzLnZhbHVlcyA9IG5ld1RpY2tzLnRpY2tzO1xuXG4gICAgZ3JhcGgucmVmbG93TXVsdGlwbGVEYXRhc2V0cygpO1xuXG4gICAgY29uc29sZS5sb2coZ3JhcGguY29uZmlnLmF4aXMueS51cHBlckxpbWl0KVxuXG4gIH0sIFtdKTtcblxuICBjb25zdCBoYW5kbGVDbGlja1RvZ2dsZUNhbGlicmF0aW9uID0gKCkgPT4ge1xuICAgIGdyYXBoLmNvbmZpZy5hbGxvd0NhbGlicmF0aW9uID0gIWdyYXBoLmNvbmZpZy5hbGxvd0NhbGlicmF0aW9uO1xuICAgIFNldEFsbG93Q2FsaWJyYXRpb25TdGF0dXMoZ3JhcGguY29uZmlnLmFsbG93Q2FsaWJyYXRpb24udG9TdHJpbmcoKSk7XG5cbiAgICBncmFwaC5yZWZsb3dNdWx0aXBsZURhdGFzZXRzKCk7XG4gIH07XG5cbiAgLy8gZHluYW1pY2FsbHkgdXBkYXRlIGdyYXBoIGRhdGFcbiAgY29uc3QgaGFuZGxlQ2xpY2tVcGRhdGVEYXRhID0gKCkgPT4ge1xuICAgIGNvbnN0IG5ld1RpY2tzID0gZ2V0TmV3VGlja3MoZ3JhcGguY29uZmlnLmF4aXMueS5sb3dlckxpbWl0LCBncmFwaC5jb25maWcuYXhpcy55LnVwcGVyTGltaXQsIHVwZGF0ZWREYXRhc2V0MSk7XG5cbiAgICBncmFwaC5jb25maWcuYXhpcy55LmRvbWFpbi5sb3dlckxpbWl0ID0gbmV3VGlja3MubmV3TG93ZXI7XG4gICAgZ3JhcGguY29uZmlnLmF4aXMueS5kb21haW4udXBwZXJMaW1pdCA9IG5ld1RpY2tzLm5ld1VwcGVyO1xuICAgIGdyYXBoLmNvbmZpZy5heGlzLnkudGlja3MudmFsdWVzID0gbmV3VGlja3MudGlja3M7XG5cbiAgICBncmFwaC5yZWZsb3dNdWx0aXBsZURhdGFzZXRzKHtcbiAgICAgIHBhbkRhdGE6IFt1cGRhdGVkRGF0YXNldDFdLFxuICAgIH0pO1xuICB9O1xuXG4gIC8vIHJlc2V0IGdyYXBoIHRvIGl0J3Mgb3JpZ2luYWwgc3RhdGVcbiAgY29uc3QgaGFuZGxlQ2xpY2tSZXNldCA9ICgpID0+IHtcbiAgICBjb25zdCBuZXdUaWNrcyA9IGdldE5ld1RpY2tzKGdyYXBoLmNvbmZpZy5heGlzLnkubG93ZXJMaW1pdCwgZ3JhcGguY29uZmlnLmF4aXMueS51cHBlckxpbWl0LCBkYXRhc2V0MSk7XG5cbiAgICBncmFwaC5jb25maWcuYXhpcy55LmRvbWFpbi5sb3dlckxpbWl0ID0gbmV3VGlja3MubmV3TG93ZXI7XG4gICAgZ3JhcGguY29uZmlnLmF4aXMueS5kb21haW4udXBwZXJMaW1pdCA9IG5ld1RpY2tzLm5ld1VwcGVyO1xuICAgIGdyYXBoLmNvbmZpZy5heGlzLnkudGlja3MudmFsdWVzID0gbmV3VGlja3MudGlja3M7XG5cbiAgICBncmFwaC5yZWZsb3dNdWx0aXBsZURhdGFzZXRzKHtcbiAgICAgIHBhbkRhdGE6IFtkYXRhc2V0MV0sXG4gICAgfSk7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPEJ1dHRvbiB0ZXh0PVwiVG9nZ2xlIENhbGlicmF0aW9uXCIgb25DbGljaz17aGFuZGxlQ2xpY2tUb2dnbGVDYWxpYnJhdGlvbn0gLz5cbiAgICAgIDxCdXR0b24gdGV4dD1cIlVwZGF0ZSBEYXRhXCIgb25DbGljaz17aGFuZGxlQ2xpY2tVcGRhdGVEYXRhfSAvPlxuICAgICAgPEJ1dHRvbiB0ZXh0PVwiUmVzZXRcIiBvbkNsaWNrPXtoYW5kbGVDbGlja1Jlc2V0fSAvPlxuICAgICAgPGRpdj5cbiAgICAgICAgQWxsb3dDYWxpYnJhdGlvbjpcbiAgICAgICAge2FsbG93Q2FsaWJyYXRpb25TdGF0dXN9XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgaWQ9XCJkeW5hbWljLWRhdGEtdXBkYXRlLWV4YW1wbGVcIiAvPlxuICAgIDwvPlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgRHluYW1pY2FsbHlVcGRhdGluZ0RhdGFFeGFtcGxlO1xuIl0sIm5hbWVzIjpbIlJlYWN0IiwidXNlU3RhdGUiLCJkMyIsIkJ1dHRvbiIsIkNhcmJvbiIsImdyYXBoQ29uZmlnIiwiYmluZFRvIiwiYXhpcyIsIngiLCJsYWJlbCIsImxvd2VyTGltaXQiLCJ1cHBlckxpbWl0IiwicmFuZ2VSb3VuZGluZyIsInkiLCJhbGxvd0NhbGlicmF0aW9uIiwiZGF0YXNldDEiLCJrZXkiLCJkaXNwbGF5IiwiY29sb3IiLCJoZWxwZXJzIiwiQ09MT1JTIiwiUElOSyIsInZhbHVlcyIsInVwZGF0ZWREYXRhc2V0MSIsImdldE5ld1RpY2tzIiwiY3VycmVudExvd2VyIiwiY3VycmVudFVwcGVyIiwiZGF0YXNldCIsIm1heFZhbHVlIiwiTWF0aCIsIm1heCIsImFwcGx5IiwiX3RvQ29uc3VtYWJsZUFycmF5IiwibWFwIiwidmFsdWUiLCJjb25jYXQiLCJtaW5WYWx1ZSIsIm1pbiIsInBhZGRpbmciLCJhYnMiLCJfZDMkbmljZSIsIm5pY2UiLCJfZDMkbmljZTIiLCJfc2xpY2VkVG9BcnJheSIsIm5ld0xvd2VyIiwibmV3VXBwZXIiLCJ0aWNrc0NvdW50IiwidGlja3MiLCJBcnJheSIsImNvbnNvbGUiLCJsb2ciLCJncmFwaCIsIkR5bmFtaWNhbGx5VXBkYXRpbmdEYXRhRXhhbXBsZSIsIl91c2VTdGF0ZSIsInRvU3RyaW5nIiwiX3VzZVN0YXRlMiIsImFsbG93Q2FsaWJyYXRpb25TdGF0dXMiLCJTZXRBbGxvd0NhbGlicmF0aW9uU3RhdHVzIiwidXNlRWZmZWN0IiwiYXBpIiwibG9hZENvbnRlbnQiLCJsaW5lIiwibmV3VGlja3MiLCJjb25maWciLCJkb21haW4iLCJyZWZsb3dNdWx0aXBsZURhdGFzZXRzIiwiaGFuZGxlQ2xpY2tUb2dnbGVDYWxpYnJhdGlvbiIsImhhbmRsZUNsaWNrVXBkYXRlRGF0YSIsInBhbkRhdGEiLCJoYW5kbGVDbGlja1Jlc2V0IiwiY3JlYXRlRWxlbWVudCIsIkZyYWdtZW50IiwidGV4dCIsIm9uQ2xpY2siLCJpZCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./packages/terra-graphs-docs/src/terra-dev-site/graph/CoreConcepts.b/examples/reflow/DynamicallyUpdatingData.jsx\n");
/***/ }),