diff --git a/ES6/README.md b/ES6/README.md index 7ac1f1d..78c5949 100644 --- a/ES6/README.md +++ b/ES6/README.md @@ -21,7 +21,7 @@ Table of contents: ## Prerequisites -- [Node.js 14 or later](https://nodejs.org/en/) +- [Node.js 20.19+ or 22.12+](https://nodejs.org/en/) ## Installation diff --git a/ES6/package.json b/ES6/package.json index 491efb3..ec20171 100644 --- a/ES6/package.json +++ b/ES6/package.json @@ -10,23 +10,23 @@ "preview": "vite preview" }, "dependencies": { - "@amcharts/amcharts4": "^4.10.36", - "@amcharts/amcharts5": "^5.4.1", - "highcharts": "^11.1.0", - "react": "^19.0.0", - "react-dom": "^19.0.0", + "@amcharts/amcharts4": "^4.10.40", + "@amcharts/amcharts5": "^5.13.4", + "highcharts-react-official": "^3.2.2", + "react": "^19.1.1", + "react-dom": "^19.1.1", "react-flexmonster": "latest", - "react-router-dom": "^6.14.2" + "react-router-dom": "^7.7.1" }, "devDependencies": { - "@types/react": "^19.0.0", - "@types/react-dom": "^19.0.0", - "@vitejs/plugin-react": "^4.0.3", - "eslint": "^8.45.0", - "eslint-plugin-react": "^7.32.2", - "eslint-plugin-react-hooks": "^4.6.0", - "eslint-plugin-react-refresh": "^0.4.3", - "express": "^4.18.2", - "vite": "^4.4.5" + "@types/react": "^19.1.9", + "@types/react-dom": "^19.1.7", + "@vitejs/plugin-react": "^4.7.0", + "eslint": "^9.32.0", + "eslint-plugin-react": "^7.37.5", + "eslint-plugin-react-hooks": "^5.2.0", + "eslint-plugin-react-refresh": "^0.4.20", + "express": "^5.1.0", + "vite": "^7.0.6" } } diff --git a/ES6/src/App.css b/ES6/src/App.css index a0f3dc6..c58cc4e 100644 --- a/ES6/src/App.css +++ b/ES6/src/App.css @@ -31,7 +31,7 @@ body { } .chart-container { - margin-top: 70px; + margin-top: 50px; } .first-description-block { @@ -78,6 +78,7 @@ body { margin: 5px 5px 5px 0; position: relative; width: auto; + appearance: none; -webkit-appearance: none; -moz-appearance: none; -webkit-box-sizing: border-box; diff --git a/ES6/src/components/ReactFlexmonsterExamples/CustomizingGrid.jsx b/ES6/src/components/ReactFlexmonsterExamples/CustomizingGrid.jsx index 0fc608a..4594490 100644 --- a/ES6/src/components/ReactFlexmonsterExamples/CustomizingGrid.jsx +++ b/ES6/src/components/ReactFlexmonsterExamples/CustomizingGrid.jsx @@ -1,86 +1,81 @@ -import React, { useRef } from "react"; +import { useRef } from "react"; import * as FlexmonsterReact from "react-flexmonster"; import ToggleButton from "../UIElements/ToggleButton"; function CustomizingGrid() { - const pivotRef = useRef(null); + const pivotRef = useRef(null); - const customizeCellFunction = (cell, data) => { - if (data.measure && data.measure.uniqueName === "Price") { - let backgroundColor = "#00A45A"; - let textShadowColor = "#095231"; - let borderColor = "#009552"; - cell.style["background-color"] = backgroundColor; - cell.style["color"] = "white"; - cell.style["font-weight"] = "bold"; - cell.style["text-shadow"] = `0px 2px 3px ${textShadowColor}`; - cell.style["border-bottom"] = `1px solid ${borderColor}`; - cell.style["border-right"] = `1px solid ${borderColor}`; - } - }; + const customizeCellFunction = (cell, data) => { + if (data.measure && data.measure.uniqueName === "Price") { + let backgroundColor = "#00A45A"; + let textShadowColor = "#095231"; + let borderColor = "#009552"; + cell.style["background-color"] = backgroundColor; + cell.style["color"] = "white"; + cell.style["font-weight"] = "bold"; + cell.style["text-shadow"] = `0px 2px 3px ${textShadowColor}`; + cell.style["border-bottom"] = `1px solid ${borderColor}`; + cell.style["border-right"] = `1px solid ${borderColor}`; + } + }; - const controllCustomization = (isCustomized) => { - isCustomized ? applyCustomization() : removeCustomization(); - }; + const toggleCustomization = (isCustomized) => { + isCustomized ? applyCustomization() : removeCustomization(); + }; - const removeCustomization = () => { - pivotRef.current.flexmonster.customizeCell(null); - }; + const removeCustomization = () => { + pivotRef.current.flexmonster.customizeCell(null); + }; - const applyCustomization = () => { - //running grid customization using "customizeCellFunction" - pivotRef.current.flexmonster.customizeCell(customizeCellFunction); - }; + const applyCustomization = () => { + pivotRef.current.flexmonster.customizeCell(customizeCellFunction); + }; - return ( - <> -
- Style the grid by adding links, applying custom CSS, or formatting the - cells. Check our docs for details:{" "} - - Customizing the grid - - . -
-- In this demo, the Price measure is customized. -
-+ Style the grid by adding links, applying custom CSS, or formatting the + cells. Check our docs for details:{" "} + Customizing the grid cells. +
++ In this demo, the Price measure is customized. +
+You can add, remove, and update the Toolbar tabs.
-In this demo, we’ve removed all the tabs and added a custom New Tab. - See our docs to learn more about the Toolbar and its - customization: Customizing the Toolbar. -
-You can add, remove, and update the Toolbar tabs.
++ In this demo, we've removed all the tabs and added a custom New Tab. + See our docs to learn more about the Toolbar and its customization:{" "} + Customizing the Toolbar. +
++ Perform an action (for example, click on a grid cell) to trigger a{" "} + Flexmonster event. Scroll down to the log output to see which events get triggered. +
+- Perform an action (for example, click on a grid cell) to trigger a{" "} - - Flexmonster event - - . Scroll down to the log output to see which events get triggered. -
-Flexmonster is a fast and powerful JavaScript pivot grid for data visualization and reporting.
++ With Flexmonster, you can create reports based on many data sources, including JSON, CSV, MongoDB, + and SQL databases. Our component is easy to customize and configure, so it can be seamlessly integrated into any project. +
++ Visit{" "} + our documentation for step-by-step guidance on Flexmonster. +
+Flexmonster is a fast and powerful JavaScript pivot grid for data visualization and reporting.
-With Flexmonster, you can create reports based on many data sources, including JSON, CSV, MongoDB, and SQL - databases. - Our component is easy to customize and configure, so it can be seamlessly integrated into any project. -
-Visit our documentation for step-by-step guidance on - Flexmonster.
-- This demo shows how to refresh the data at runtime and keep the slice, - options, and formatting the same. -
-- Try it yourself: configure the component as you wish and click the{" "} - UPDATE DATA button. -
-- Learn more about updating the data in{" "} - - our documentation - - . -
-This demo shows how to refresh the data at runtime and keep the slice, options, and formatting the same.
++ Try it yourself: configure the component as you wish and click the UPDATE DATA button. +
++ Learn more about updating the data in{" "} + our documentation. +
++ Flexmonster provides{" "} + API calls for interacting with the component. As an example, we've added + the toggle buttons below. Use them to switch between the views or make Flexmonster read-only. +
+- Flexmonster provides - API calls - for interacting with the component. As an example, we've added the - toggle buttons below. Use them to switch between the views or make - Flexmonster read-only. -
-- Extend Flexmonster’s visualization functionality by integrating - with the amCharts library:{' '} - - Integration with amCharts - - . -
-+ Extend Flexmonster's visualization functionality by integrating with the amCharts library:{" "} + Integration with amCharts. +
+- Extend Flexmonster’s visualization functionality by integrating - with the amCharts library:{' '} - - Integration with amCharts - - . -
-+ Extend Flexmonster's visualization functionality by integrating with the amCharts library:{" "} + Integration with amCharts. +
+- Integrate Flexmonster with Highcharts and see your data from a new - perspective: - Integration with Highcharts - - . -
-+ Integrate Flexmonster with Highcharts and see your data from a new perspective:{" "} + Integration with Highcharts. +
+- Style the grid by adding links, applying custom CSS, or formatting the - cells. Check our docs for details:{" "} - - Customizing the grid - - . -
-- In this demo, the Price measure is customized. -
-+ Style the grid by adding links, applying custom CSS, or formatting the cells. Check our docs for details:{" "} + Customizing the grid cells. +
++ In this demo, the Price measure is customized. +
+You can add, remove, and update the Toolbar tabs.
++ In this demo, we've removed all the tabs and added a custom New Tab. See our docs to learn more about the Toolbar and its + customization:{" "} + Customizing the Toolbar. +
+You can add, remove, and update the Toolbar tabs.
-In this demo, we’ve removed all the tabs and added a custom New Tab. - See our docs to learn more about the Toolbar and its - customization: Customizing the Toolbar. -
-- Perform an action (for example, click on a grid cell) to trigger a Flexmonster event - . Scroll down to the log output to see which events get triggered. -
-+ Perform an action (for example, click on a grid cell) to trigger a{" "} + Flexmonster event. Scroll down to the log output to see which events get triggered. +
+Flexmonster is a fast and powerful JavaScript pivot grid for data visualization and reporting.
-With Flexmonster, you can create reports based on many data sources, including JSON, CSV, MongoDB, and SQL - databases. - Our component is easy to customize and configure, so it can be seamlessly integrated into any project. -
-Visit our documentation for step-by-step guidance on - Flexmonster.
-Flexmonster is a fast and powerful JavaScript pivot grid for data visualization and reporting.
++ With Flexmonster, you can create reports based on many data sources, including JSON, CSV, MongoDB, and SQL databases. Our component is easy + to customize and configure, so it can be seamlessly integrated into any project. +
++ Visit{" "} + our documentation for step-by-step guidance on Flexmonster. +
+- This demo shows how to refresh the data at runtime and keep the slice, options, and formatting the same. -
-Try it yourself: configure the component as you wish and click the UPDATE DATA button.
-Learn more about updating the data - in our documentation. -
-This demo shows how to refresh the data at runtime and keep the slice, options, and formatting the same.
++ Try it yourself: configure the component as you wish and click the UPDATE DATA button. +
++ Learn more about updating the data in{" "} + our documentation. +
+- Flexmonster provides API calls for - interacting with the component. - As an example, we've added the toggle buttons below. Use them to switch between the views or make Flexmonster read-only. -
-+ Flexmonster provides{" "} + API calls for interacting with the component. As an example, we've added the toggle buttons below. Use them to switch between the views or make + Flexmonster read-only. +
+- Extend Flexmonster’s visualization functionality by integrating - with the amCharts library:{' '} - - Integration with amCharts - - . -
-+ Extend Flexmonster's visualization functionality by integrating with the amCharts library:{" "} + Integration with amCharts. +
+Extend Flexmonster’s visualization functionality by integrating with the amCharts - library: Integration with amCharts. -
-+ Extend Flexmonster's visualization functionality by integrating with the amCharts library:{" "} + Integration with amCharts. +
+Integrate Flexmonster with Highcharts and see your data from a new - perspective: Integration with Highcharts. -
-+ Integrate Flexmonster with Highcharts and see your data from a new perspective:{" "} + Integration with Highcharts. +
+- Style the grid by adding links, applying custom CSS, or formatting the - cells. Check our docs for details:{" "} - - Customizing the grid - - . -
-- In this demo, the Price measure is customized. -
-+ Style the grid by adding links, applying custom CSS, or formatting the + cells. Check our docs for details:{" "} + Customizing the grid cells. +
++ In this demo, the Price measure is customized. +
+You can add, remove, and update the Toolbar tabs.
-In this demo, we’ve removed all the tabs and added a custom New Tab. - See our docs to learn more about the Toolbar and its - customization: Customizing the Toolbar. -
-You can add, remove, and update the Toolbar tabs.
++ In this demo, we've removed all the tabs and added a custom New Tab. + See our docs to learn more about the Toolbar and its customization:{" "} + Customizing the Toolbar. +
+- Perform an action (for example, click on a grid cell) to trigger a{" "} - - Flexmonster event - - . Scroll down to the log output to see which events get triggered. -
-+ Perform an action (for example, click on a grid cell) to trigger a{" "} + Flexmonster event. Scroll down to the log output to see which events get triggered. +
+Flexmonster is a fast and powerful JavaScript pivot grid for data visualization and reporting.
-With Flexmonster, you can create reports based on many data sources, including JSON, CSV, MongoDB, and SQL - databases. - Our component is easy to customize and configure, so it can be seamlessly integrated into any project. -
-Visit our documentation for step-by-step guidance on - Flexmonster.
-Flexmonster is a fast and powerful JavaScript pivot grid for data visualization and reporting.
++ With Flexmonster, you can create reports based on many data sources, including JSON, CSV, MongoDB, and SQL databases. + Our component is easy to customize and configure, so it can be seamlessly integrated into any project. +
++ Visit{" "} + our documentation for step-by-step guidance on Flexmonster. +
+- This demo shows how to refresh the data at runtime and keep the slice, options, and formatting the same. -
-Try it yourself: configure the component as you wish and click the UPDATE DATA button.
-Learn more about updating the data - in our documentation. -
-This demo shows how to refresh the data at runtime and keep the slice, options, and formatting the same.
++ Try it yourself: configure the component as you wish and click the UPDATE DATA button. +
++ Learn more about updating the data in{" "} + our documentation. +
+- Flexmonster provides - API calls - for interacting with the component. As an example, we've added the - toggle buttons below. Use them to switch between the views or make - Flexmonster read-only. + >API calls for interacting with the component. As an example, we've added the toggle buttons below. + Use them to switch between the views or make Flexmonster read-only.
- Extend Flexmonster’s visualization functionality by integrating - with the amCharts library:{' '} - - Integration with amCharts - - . -
-+ Extend Flexmonster's visualization functionality by integrating with the amCharts library:{" "} + Integration with amCharts. +
+Extend Flexmonster’s visualization functionality by integrating with the amCharts - library: Integration with amCharts. -
-+ Extend Flexmonster's visualization functionality by integrating with the amCharts library:{" "} + Integration with amCharts. +
+- Integrate Flexmonster with Highcharts and see your data from a new - perspective:{' '} + Integrate Flexmonster with Highcharts and see your data from a new perspective:{" "} - Integration with Highcharts - - . + >Integration with Highcharts.