Flexmonster Software License Agreement (“Agreement”) has been revised and is effective as of January 8, 2025.
The following modifications were made:
The modified version of Agreement is available here.
Downloading, installing, and/or continuing to use Flexmonster Software after January 8, 2025, constitutes Licensee’s acceptance of the terms and conditions of the modified version of Agreement. If Licensee does not agree to any of these terms and conditions, they must cease using Flexmonster Software and must not download, install, use, access, or continue to access Flexmonster Software. By continuing to use Flexmonster Software or renewing the license or maintenance after the effective date of these modifications to Agreement, Licensee accepts and agrees to be bound by the terms and conditions of the modified Agreement.
This guide will help you migrate from WebDataRocks to Flexmonster in your Angular project.
The migration process is simple: Flexmonster is embedded in an Angular application similarly to WebDataRocks, so the code you’ve created around the WebDataRocks component will require only minor changes.
Flexmonster CLI is the most convenient way to work with Flexmonster Pivot. Install the CLI globally using npm:
npm install -g flexmonster-cli
As a result, a new flexmonster
command will be available in the console. Learn more about Flexmonster CLI.
Get Flexmonster for Angular by running the following command inside your project:
flexmonster add ngx-flexmonster
This command downloads the ngx-flexmonster wrapper to node_modules/
and adds it as a dependency to package.json
.
Note This wrapper is Ivy-compatible and works only with Angular 14 and later. If you want to use Flexmonster in Angular 5 through 15, install the ng-flexmonster wrapper.
In the component where WebDataRocks is imported (e.g., src/app/app.component.ts
), replace WebdatarocksPivotModule
with FlexmonsterPivotModule
:
import { Component } from "@angular/core";
import { WebdatarocksPivotModule } from "@webdatarocks/ngx-webdatarocks";
@Component({
selector: "app-root",
standalone: true,
imports: [WebdatarocksPivotModule],
templateUrl: "./app.component.html",
styleUrl: "./app.component.css"
})
export class AppComponent {
// ...
}
import { Component } from "@angular/core";
import { FlexmonsterPivotModule } from "ngx-flexmonster";
@Component({
selector: "app-root",
standalone: true,
imports: [FlexmonsterPivotModule],
templateUrl: "./app.component.html",
styleUrl: "./app.component.css"
})
export class AppComponent {
// ...
}
If you are using NgModules
instead of component imports
, replace WebdatarocksPivotModule
in the NgModule
(e.g., src/app/app.module.ts
):
import { WebdatarocksPivotModule } from "@webdatarocks/ngx-webdatarocks";
@NgModule({
// ...
imports: [
WebdatarocksPivotModule,
// Other imports
],
// ...
})
import { FlexmonsterPivotModule } from "ngx-flexmonster";
@NgModule({
// ...
imports: [
FlexmonsterPivotModule,
// Other imports
],
// ...
})
Open the CSS file with WebDataRocks styles (e.g., src/styles.css
) and replace them with Flexmonster styles:
@import "@webdatarocks/webdatarocks/webdatarocks.min.css";
@import "flexmonster/flexmonster.min.css";
Note If you were using one of WebDataRocks’ predefined themes, replace it with a corresponding Flexmonster theme:
<link rel="stylesheet" type="text/css"
href="theme/lightblue/webdatarocks.min.css" />
<link rel="stylesheet" type="text/css"
href="/theme/lightblue/flexmonster.min.css" />
In every HTML file containing the pivot table (e.g., src/app/app.component.html
), replace the <app-wbr-pivot>
tag with the <fm-pivot>
tag, which creates the FlexmonsterPivot
component instance:
<app-wbr-pivot
[toolbar]="true">
</app-wbr-pivot>
<fm-pivot
[toolbar]="true">
</fm-pivot>
Note You need to change only the tag. Its attributes may stay the same.
FlexmonsterPivot
has more input properties than WebdatarocksComponent
. Learn more about the FlexmonsterPivot component and its properties.
WebDataRocks API is supported in Flexmonster, so you can continue using the methods and events you’ve used in your project. In every .component.ts
file with code for WebDataRocks (e.g., app.component.ts
), follow the steps below to migrate to Flexmonster API.
Replace FlexmonsterPivot
with WebdatarocksComponent
:
import { Component, ViewChild } from "@angular/core";
import { WebdatarocksPivotModule, WebdatarocksComponent } from "@webdatarocks/ngx-webdatarocks";
import { Component, ViewChild } from "@angular/core";
import { FlexmonsterPivotModule, FlexmonsterPivot } from "ngx-flexmonster";
The reference injected with @ViewChild is needed to use Flexmonster methods and events.
To update the reference, change WebdatarocksComponent
to FlexmonsterPivot
:
@ViewChild("pivot") pivot: WebdatarocksComponent;
@ViewChild("pivot") pivot: FlexmonsterPivot;
Flexmonster supports all WebDataRocks methods and provides additional ones. See the full list of Flexmonster methods.
To start using Flexmonster methods, you need to:
this.pivot.webDataRocks.setReport(this.report);
this.pivot.flexmonster.setReport(this.report);
Flexmonster supports all WebDataRocks events and provides additional ones. See the full list of Flexmonster events.
Since all WebDataRocks events are available in Flexmonster, there is no need to update event names in your code. However, some Flexmonster events have slightly different signatures. Check them out in the API Reference.
Note If you subscribe to events through the on()
and off()
methods, ensure you have changed the WebDataRocks instance to the Flexmonster instance when calling these methods.
Objects are passed as parameters to methods and event handlers. All WebDataRocks objects are available in Flexmonster.
To replace WebDataRocks objects with Flexmonster objects, you need to:
WebDataRocks
to Flexmonster
. For example:customizeCellFunction(cell: WebDataRocks.CellBuilder,
data: WebDataRocks.CellData) {
// Function body
}
customizeCellFunction(cell: Flexmonster.CellBuilder,
data: Flexmonster.CellData) {
// Function body
}
If your WebDataRocks component was translated into a different language, replace the WebDataRocks localization file with the corresponding Flexmonster file:
report: {
// Other report configurations
localization: "https://cdn.webdatarocks.com/loc/es.json"
}
report: {
// Other report configurations
localization: "https://cdn.flexmonster.com/loc/es.json"
}
Learn more about localizing Flexmonster.
If you integrated with a 3rd party charting library, replace WebDataRocks Connector with the corresponding Flexmonster Connector. For example:
import "@webdatarocks/webdatarocks/webdatarocks.amcharts.js";
import "flexmonster/lib/flexmonster.amcharts.js";
You also need to set a license key for Flexmonster. If you don't have a license key, contact our team and request a special trial key.
To use a WebDataRocks report in Flexmonster, you need to make one minor change. The rest of the report will be converted automatically upon loading it in Flexmonster.
To update your report, change "uniqueName": "Measures"
to "uniqueName": "[Measures]"
in the slice:
Uninstall WebDataRocks by running the following command inside your project: Run your application from the console: Go to the page with the pivot table, then click on the grid and press The migration is complete. If you run into any issues during the migration, visit our troubleshooting page. With Flexmonster, you can connect to JSON/CSV files, SQL and MongoDB databases, Elasticsearch, and Microsoft Analysis Services. See the full list of supported data sources. Flexmonster also offers features that are not available in WebDataRocks:WebDataRocks
"slice": {
"rows": [
{
// ...
},
{
"uniqueName": "Measures"
}
],
// Other properties
}
Flexmonster
"slice": {
"rows": [
{
// ...
},
{
"uniqueName": "[Measures]"
}
],
// Other properties
}
Step 10. Uninstall WebDataRocks
npm uninstall @webdatarocks/ngx-webdatarocks
Step 11. Run the application
ng serve --open
Ctrl + Alt + i
(Option + Control + i
on macOS). You should see Flexmonster's licensing pop-up window; this would mean that WebDataRocks is successfully replaced by Flexmonster.Troubleshooting
What's next?