Skip to content

Commit 977cc25

Browse files
feat(Charts): Added lib export per chart (#66)
1 parent f8424cf commit 977cc25

File tree

24 files changed

+122
-92
lines changed

24 files changed

+122
-92
lines changed

config/paths.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ const root = path.resolve(__dirname, '..');
44
const PATHS = {
55
root,
66
src: path.join(root, 'src'),
7+
build: path.join(root, 'build'),
78
test: path.join(root, 'test'),
89
shared: path.join(root, 'shared'),
910
coverage: path.join(root, 'coverage'),

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@
5454
"coveralls": "^3.0.3",
5555
"cross-env": "^5.2.0",
5656
"dedent": "^0.7.0",
57+
"deepmerge": "^4.0.0",
5758
"dotenv": "^8.0.0",
5859
"enzyme": "^3.9.0",
5960
"enzyme-adapter-react-16": "^1.12.1",

packages/base/package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,12 @@
1111
"directory": "packages/base"
1212
},
1313
"author": "SAP SE (https://www.sap.com)",
14+
"scripts": {
15+
"postbuild": "tsc ./src/polyfill/*.ts --outDir ../../build/node_modules/base/polyfill --skipLibCheck"
16+
},
1417
"license": "Apache-2.0",
1518
"dependencies": {
1619
"core-js": "^3.1.4",
17-
"deepmerge": "^3.2.0",
1820
"hoist-non-react-statics": "^3.3.0",
1921
"react-jss": "10.0.0-alpha.21",
2022
"tslib": "^1.9.3"

packages/charts/package.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,18 @@
1313
"author": "SAP SE (https://www.sap.com)",
1414
"license": "Apache-2.0",
1515
"private": false,
16+
"scripts": {
17+
"postbuild": "rollup -c"
18+
},
1619
"devDependencies": {
1720
"@types/chart.js": "^2.7.53"
1821
},
1922
"dependencies": {
2023
"@ui5/webcomponents-react-base": "0.4.2-rc.2",
2124
"chart.js": "^2.8.0",
2225
"chartjs-plugin-datalabels": "^0.6.0",
26+
"deepmerge": "^4.0.0",
2327
"get-best-contrast-color": "^0.3.1",
24-
"is-mergeable-object": "^1.1.0",
2528
"react-chartjs-2": "^2.7.6",
2629
"react-content-loader": "^4.2.1"
2730
}

packages/charts/rollup.config.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
const rollupConfigFactory = require('../../shared/rollup/configFactory');
2+
3+
const config = rollupConfigFactory('charts');
4+
module.exports = config;

packages/charts/src/components/MicroBarChart/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React, { CSSProperties, FC, forwardRef, Ref } from 'react';
1+
import React, { CSSProperties, forwardRef, Ref } from 'react';
22
// @ts-ignore
33
import { createUseStyles, useTheme } from 'react-jss';
44
import { CommonProps } from '../../interfaces/CommonProps';

packages/charts/src/components/RadarChart/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { useConsolidatedRef } from '@ui5/webcomponents-react-base';
2-
import React, { FC, forwardRef, Ref, RefObject, useCallback, useEffect, useRef, useMemo } from 'react';
2+
import React, { forwardRef, Ref, RefObject, useCallback, useEffect, useRef, useMemo } from 'react';
33
import { Radar } from 'react-chartjs-2';
44
import { useTheme } from 'react-jss';
55
import { ChartBaseProps } from '../../interfaces/ChartBaseProps';

packages/charts/src/index.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
// Library Export
2-
import { ColumnChart } from './components/ColumnChart';
3-
import { DonutChart } from './components/DonutChart';
4-
import { BarChart } from './components/BarChart';
5-
import { LineChart } from './components/LineChart';
6-
import { PieChart } from './components/PieChart';
7-
import { RadarChart } from './components/RadarChart';
8-
import { RadialChart } from './components/RadialChart';
9-
import { MicroBarChart } from './components/MicroBarChart';
2+
import { BarChart } from './lib/BarChart';
3+
import { ColumnChart } from './lib/ColumnChart';
4+
import { DonutChart } from './lib/DonutChart';
5+
import { LineChart } from './lib/LineChart';
6+
import { MicroBarChart } from './lib/MicroBarChart';
7+
import { PieChart } from './lib/PieChart';
8+
import { RadarChart } from './lib/RadarChart';
9+
import { RadialChart } from './lib/RadialChart';
1010

1111
export { ColumnChart, DonutChart, BarChart, LineChart, PieChart, RadarChart, RadialChart, MicroBarChart };

packages/charts/src/lib/BarChart.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
import { BarChart } from '../components/BarChart';
2+
3+
export { BarChart };
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
import { ColumnChart } from '../components/ColumnChart';
2+
3+
export { ColumnChart };

packages/charts/src/lib/DonutChart.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
import { DonutChart } from '../components/DonutChart';
2+
3+
export { DonutChart };

packages/charts/src/lib/LineChart.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
import { LineChart } from '../components/LineChart';
2+
3+
export { LineChart };
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
import { MicroBarChart } from '../components/MicroBarChart';
2+
3+
export { MicroBarChart };

packages/charts/src/lib/PieChart.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
import { PieChart } from '../components/PieChart';
2+
3+
export { PieChart };

packages/charts/src/lib/RadarChart.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
import { RadarChart } from '../components/RadarChart';
2+
3+
export { RadarChart };
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
import { RadialChart } from '../components/RadialChart';
2+
3+
export { RadialChart };

packages/docs/.storybook/config.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,6 @@ const themr = makeDecorator({
150150
parameterName: 'themr',
151151
skipIfNoParametersOrOptions: false,
152152
wrapper: (getStory, context) => {
153-
// debugger;
154153
return <ThemeProvider withToastContainer>{getStory(context)}</ThemeProvider>;
155154
}
156155
});

packages/main/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
"scripts": {
1717
"generateWebComponents": "ts-node -O '{\"module\": \"commonjs\"}' -r esm ./scripts/wrapperGeneration/generateWebComponentWrappers --onlyStopForMerge",
1818
"build": "webpack --config ./scripts/wrapperGeneration/webpack.config.js",
19+
"postbuild": "rollup -c rollup.config.js",
1920
"test:karma": "karma start ../../config/karma.conf.js",
2021
"test:karma:update": "cross-env UPDATE=1 yarn run test:karma"
2122
},

packages/main/rollup.config.js

Lines changed: 2 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -1,48 +1,3 @@
1-
const resolve = require('rollup-plugin-node-resolve');
2-
const commonjs = require('rollup-plugin-commonjs');
3-
const typescriptPlugin = require('rollup-plugin-typescript');
4-
const jsonPlugin = require('rollup-plugin-json');
5-
const postcss = require('rollup-plugin-postcss');
6-
const typescript = require('typescript');
7-
const path = require('path');
8-
const fs = require('fs');
9-
const pkg = require('./package.json');
10-
const PATHS = require('../../config/paths');
1+
const rollupConfigFactory = require('../../shared/rollup/configFactory');
112

12-
const LIB_BASE_PATH = path.resolve(PATHS.packages, 'main', 'src', 'lib');
13-
14-
const allLibFiles = fs.readdirSync(LIB_BASE_PATH).filter((file) => fs.statSync(`${LIB_BASE_PATH}/${file}`).isFile());
15-
16-
const plugins = [
17-
typescriptPlugin({
18-
typescript,
19-
importHelpers: true,
20-
declarationDir: path.join(PATHS.root, 'typings')
21-
}),
22-
resolve(),
23-
jsonPlugin(),
24-
postcss(),
25-
commonjs({
26-
namedExports: {
27-
'react-jss': ['ThemeProvider', 'jss', 'withTheme']
28-
}
29-
})
30-
];
31-
32-
const EXTERNAL_MODULE_REGEX = new RegExp(
33-
`${Object.keys(pkg.dependencies)
34-
.map((item) => item.replace('/', '/'))
35-
.join('|')}|react$|react-jss|react-dom$`
36-
);
37-
38-
module.exports = allLibFiles.map((file) => ({
39-
input: `${LIB_BASE_PATH}/${file}`,
40-
external: (id) => EXTERNAL_MODULE_REGEX.test(id),
41-
output: [
42-
{
43-
file: path.resolve(PATHS.root, 'build', 'node_modules', 'main', 'lib', file.replace(/\.ts$/, '.js')),
44-
format: 'es'
45-
}
46-
],
47-
plugins
48-
}));
3+
module.exports = rollupConfigFactory('main');

scripts/rollup/bundles.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ const bundles = [
3434
bundleTypes: [bundleTypes.NODE_DEV, bundleTypes.NODE_PROD, bundleTypes.NODE_ES_DEV, bundleTypes.NODE_ES_PROD],
3535
entry: 'charts',
3636
global: 'FioriForReactCharts',
37-
externals: ['react', 'react-dom']
37+
externals: ['react', 'react-jss']
3838
}
3939
];
4040

scripts/rollup/packaging.js

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,10 +44,7 @@ async function prepareNpmPackages() {
4444
const builtPackageFolders = readdirSync('build/node_modules').filter((dir) => dir.charAt(0) !== '.');
4545
await Promise.all(builtPackageFolders.map(prepareNpmPackage));
4646
// create main lib
47-
await asyncExecuteCommand(`node_modules/.bin/rollup -c packages/main/rollup.config.js`);
48-
await asyncExecuteCommand(
49-
`tsc packages/base/src/polyfill/*.ts --outDir build/node_modules/base/polyfill --skipLibCheck`
50-
);
47+
await asyncExecuteCommand(`node_modules/.bin/lerna run postbuild --stream`);
5148
}
5249

5350
module.exports = {

scripts/rollup/results.json

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,29 +4,29 @@
44
"filename": "charts.development.js",
55
"bundleType": "NODE_ES_DEV",
66
"packageName": "charts",
7-
"size": 70062,
8-
"gzip": 13371
7+
"size": 44289,
8+
"gzip": 7896
99
},
1010
{
1111
"filename": "charts.production.min.js",
1212
"bundleType": "NODE_ES_PROD",
1313
"packageName": "charts",
14-
"size": 70062,
15-
"gzip": 13371
14+
"size": 44185,
15+
"gzip": 7874
1616
},
1717
{
1818
"filename": "charts.development.js",
1919
"bundleType": "NODE_DEV",
2020
"packageName": "charts",
21-
"size": 70596,
22-
"gzip": 13381
21+
"size": 45112,
22+
"gzip": 7936
2323
},
2424
{
2525
"filename": "charts.production.min.js",
2626
"bundleType": "NODE_PROD",
2727
"packageName": "charts",
28-
"size": 35724,
29-
"gzip": 8896
28+
"size": 22556,
29+
"gzip": 6181
3030
},
3131
{
3232
"filename": "base.development.js",
@@ -60,29 +60,29 @@
6060
"filename": "main.development.js",
6161
"bundleType": "NODE_ES_DEV",
6262
"packageName": "main",
63-
"size": 180494,
64-
"gzip": 32621
63+
"size": 181071,
64+
"gzip": 32697
6565
},
6666
{
6767
"filename": "main.production.min.js",
6868
"bundleType": "NODE_ES_PROD",
6969
"packageName": "main",
70-
"size": 180494,
71-
"gzip": 32621
70+
"size": 181071,
71+
"gzip": 32697
7272
},
7373
{
7474
"filename": "main.development.js",
7575
"bundleType": "NODE_DEV",
7676
"packageName": "main",
77-
"size": 186027,
78-
"gzip": 32749
77+
"size": 186628,
78+
"gzip": 32823
7979
},
8080
{
8181
"filename": "main.production.min.js",
8282
"bundleType": "NODE_PROD",
8383
"packageName": "main",
84-
"size": 94897,
85-
"gzip": 25035
84+
"size": 95335,
85+
"gzip": 25068
8686
}
8787
]
8888
}

shared/rollup/configFactory.js

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
const resolve = require('rollup-plugin-node-resolve');
2+
const commonjs = require('rollup-plugin-commonjs');
3+
const typescriptPlugin = require('rollup-plugin-typescript');
4+
const jsonPlugin = require('rollup-plugin-json');
5+
const postcss = require('rollup-plugin-postcss');
6+
const typescript = require('typescript');
7+
const path = require('path');
8+
const fs = require('fs');
9+
const PATHS = require('../../config/paths');
10+
11+
const rollupConfigFactory = (pkgName) => {
12+
const LIB_BASE_PATH = path.resolve(PATHS.packages, pkgName, 'src', 'lib');
13+
14+
const allLibFiles = fs.readdirSync(LIB_BASE_PATH).filter((file) => fs.statSync(`${LIB_BASE_PATH}/${file}`).isFile());
15+
16+
const plugins = [
17+
typescriptPlugin({
18+
typescript,
19+
tsconfig: path.resolve(PATHS.root, 'tsconfig.json'),
20+
importHelpers: true,
21+
declarationDir: path.join(PATHS.root, 'typings')
22+
}),
23+
resolve(),
24+
jsonPlugin(),
25+
postcss(),
26+
commonjs({
27+
namedExports: {
28+
'react-jss': ['ThemeProvider', 'jss', 'withTheme']
29+
}
30+
})
31+
];
32+
33+
const pkg = require(path.resolve(PATHS.packages, pkgName, 'package.json'));
34+
const EXTERNAL_MODULE_REGEX = new RegExp(
35+
`${Object.keys(pkg.dependencies)
36+
.map((item) => item.replace('/', '/'))
37+
.join('|')}|react$|react-jss|react-dom$`
38+
);
39+
40+
return allLibFiles.map((file) => ({
41+
input: `${LIB_BASE_PATH}/${file}`,
42+
external: (id) => EXTERNAL_MODULE_REGEX.test(id),
43+
output: [
44+
{
45+
file: path.resolve(PATHS.build, 'node_modules', pkgName, 'lib', file.replace(/\.ts$/, '.js')),
46+
format: 'es'
47+
}
48+
],
49+
plugins
50+
}));
51+
};
52+
53+
module.exports = rollupConfigFactory;

yarn.lock

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5773,16 +5773,11 @@ deep-object-diff@^1.1.0:
57735773
resolved "https://registry.yarnpkg.com/deep-object-diff/-/deep-object-diff-1.1.0.tgz#d6fabf476c2ed1751fc94d5ca693d2ed8c18bc5a"
57745774
integrity sha512-b+QLs5vHgS+IoSNcUE4n9HP2NwcHj7aqnJWsjPtuG75Rh5TOaGt0OjAYInh77d5T16V5cRDC+Pw/6ZZZiETBGw==
57755775

5776-
5776+
[email protected], deepmerge@^4.0.0:
57775777
version "4.0.0"
57785778
resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.0.0.tgz#3e3110ca29205f120d7cb064960a39c3d2087c09"
57795779
integrity sha512-YZ1rOP5+kHor4hMAH+HRQnBQHg+wvS1un1hAOuIcxcBy0hzcUf6Jg2a1w65kpoOUnurOfZbERwjI1TfZxNjcww==
57805780

5781-
deepmerge@^3.2.0:
5782-
version "3.3.0"
5783-
resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-3.3.0.tgz#d3c47fd6f3a93d517b14426b0628a17b0125f5f7"
5784-
integrity sha512-GRQOafGHwMHpjPx9iCvTgpu9NojZ49q794EEL94JVEw6VaeA8XTUyBKvAkOOjBX9oJNiV6G3P+T+tihFjo2TqA==
5785-
57865781
default-require-extensions@^2.0.0:
57875782
version "2.0.0"
57885783
resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-2.0.0.tgz#f5f8fbb18a7d6d50b21f641f649ebb522cfe24f7"
@@ -8516,11 +8511,6 @@ is-in-browser@^1.0.2, is-in-browser@^1.1.3:
85168511
resolved "https://registry.yarnpkg.com/is-in-browser/-/is-in-browser-1.1.3.tgz#56ff4db683a078c6082eb95dad7dc62e1d04f835"
85178512
integrity sha1-Vv9NtoOgeMYILrldrX3GLh0E+DU=
85188513

8519-
is-mergeable-object@^1.1.0:
8520-
version "1.1.1"
8521-
resolved "https://registry.yarnpkg.com/is-mergeable-object/-/is-mergeable-object-1.1.1.tgz#faaa3ed1cfce87d6f7d2f5885e92cc30af3e2ebf"
8522-
integrity sha512-CPduJfuGg8h8vW74WOxHtHmtQutyQBzR+3MjQ6iDHIYdbOnm1YC7jv43SqCoU8OPGTJD4nibmiryA4kmogbGrA==
8523-
85248514
is-module@^1.0.0:
85258515
version "1.0.0"
85268516
resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591"

0 commit comments

Comments
 (0)