Skip to content

Commit e102762

Browse files
authored
Merge pull request #553 from data-driven-forms/merge-ts-beta
Merge ts beta
2 parents 0304273 + ba13bda commit e102762

File tree

151 files changed

+2766
-93
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

151 files changed

+2766
-93
lines changed

babel.config.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ const camelToSnake = (string) => {
77
};
88

99
module.exports = {
10-
presets: ["@babel/preset-env", "@babel/preset-react"],
10+
presets: ["@babel/preset-env", "@babel/preset-react", "@babel/preset-typescript"],
1111
plugins: ["@babel/plugin-transform-runtime", "@babel/plugin-syntax-dynamic-import", "lodash", "@babel/plugin-proposal-class-properties" ],
1212
env: {
1313
cjs: {

package.json

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
"private": true,
99
"scripts": {
1010
"bootstrap": "lerna bootstrap",
11-
"build": "lerna run build --ignore @data-driven-forms/react-renderer-demo",
11+
"build": "lerna run build --concurrency 1 --ignore @data-driven-forms/react-renderer-demo",
1212
"vendor": "lerna run vendor",
1313
"test": "jest --coverage",
1414
"test:ci": "jest --coverage --runInBand",
@@ -17,6 +17,7 @@
1717
"codecov": "codecov",
1818
"start-demo": "lerna run start --scope=@data-driven-forms/react-render-demo",
1919
"lint": "yarn eslint .",
20+
"lint:ts": "tslint -c ./tslint.json 'packages/**/*.d.ts'",
2021
"generate-template": "node ./scripts/generate-mapper.js"
2122
},
2223
"workspaces": [
@@ -40,14 +41,20 @@
4041
},
4142
"devDependencies": {
4243
"@babel/plugin-transform-runtime": "^7.9.0",
44+
"@babel/preset-typescript": "^7.9.0",
4345
"@khala/commit-analyzer-wildcard": "^2.4.1",
4446
"@khala/npm-release-monorepo": "^2.4.1",
4547
"@khala/wildcard-release-notes": "^2.4.1",
48+
"@rollup/plugin-typescript": "^4.1.2",
4649
"@semantic-release/git": "^8.0.0",
4750
"@semantic-release/github": "^5.5.5",
4851
"@semantic-release/npm": "^5.1.4",
52+
"@types/react": "^16.9.35",
53+
"@types/react-dom": "^16.9.8",
54+
"@typescript-eslint/eslint-plugin": "^3.0.0",
4955
"atob-lite": "^2.0.0",
5056
"babel-plugin-transform-imports": "^2.0.0",
57+
"dtslint": "^3.6.4",
5158
"eslint": "^6.8.0",
5259
"eslint-config-i-am-meticulous": "^12.0.0",
5360
"eslint-config-prettier": "^6.10.0",
@@ -68,7 +75,13 @@
6875
"prettier": "^1.19.1",
6976
"replace-in-file": "^6.0.0",
7077
"semantic-release": "^16.0.4",
71-
"terser-webpack-plugin": "^1.3.0"
78+
"source-map-loader": "^0.2.4",
79+
"strip-ansi": "^6.0.0",
80+
"terser-webpack-plugin": "^1.3.0",
81+
"ts-loader": "^7.0.5",
82+
"tslint": "^6.1.2",
83+
"tslint-config-prettier": "^1.18.0",
84+
"typescript": "^3.9.3"
7285
},
7386
"release": {
7487
"monorepo": "./packages",

packages/blueprint-component-mapper/config/webpack.config.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,20 @@ const resolve = require('path').resolve;
44
const merge = require('webpack-merge');
55

66
const commonConfig = {
7+
devtool: "source-map",
78
module: {
89
rules: [{
910
test: /\.(js|jsx)$/,
1011
exclude: /node_modules/,
1112
use: {
1213
loader: 'babel-loader',
1314
},
15+
}, {
16+
test: /\.(ts|tsx)$/,
17+
exclude: /node_modules/,
18+
use: {
19+
loader: 'ts-loader',
20+
},
1421
}, {
1522
test: /\.(sa|sc|c)ss$/,
1623
use: [ 'style-loader', 'css-loader', 'sass-loader', 'resolve-url-loader' ],

packages/blueprint-component-mapper/package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,18 @@
44
"description": "Blueprint component mapper for data-driven-forms.",
55
"main": "dist/cjs/index.js",
66
"module": "dist/esm/index.js",
7+
"typings": "dist/cjs/index.d.ts",
78
"files": [
89
"dist/"
910
],
1011
"license": "Apache-2.0",
1112
"scripts": {
1213
"start": "webpack-dev-server --env dev --config ./config/webpack.config.js --open --hot",
13-
"build": "yarn build:cjs && yarn build:esm && yarn build:umd",
14+
"build": "yarn build:cjs && yarn build:esm && yarn build:umd && yarn build:typings",
1415
"build:cjs": "BABEL_ENV=cjs rollup -c ./rollup.config.js --format=cjs --environment FORMAT:cjs",
1516
"build:esm": "BABEL_ENV=esm rollup -c ./rollup.config.js --format=esm --environment FORMAT:esm",
1617
"build:umd": "rollup -c ./rollup.config.js --format=umd --environment FORMAT:umd",
18+
"build:typings": "node ../../scripts/copy-files.js",
1719
"release": "semantic-release"
1820
},
1921
"repository": "[email protected]:data-driven-forms/react-forms.git",
@@ -31,7 +33,6 @@
3133
"@blueprintjs/core": "^3.26.1",
3234
"@blueprintjs/datetime": "^3.17.0",
3335
"@blueprintjs/select": "^3.12.3",
34-
"@data-driven-forms/react-form-renderer": "*",
3536
"babel-core": "^7.0.0-bridge.0",
3637
"babel-eslint": "9.x",
3738
"babel-jest": "^23.6.0",
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import { UseFieldApiComponentConfig, AnyObject } from "@data-driven-forms/react-form-renderer";
2+
import { ReactNode } from "react";
3+
import { ICheckboxProps } from '@blueprintjs/core';
4+
import { FormGroupProps } from "./form-group";
5+
6+
export interface CheckboxOption extends AnyObject {
7+
value?: any;
8+
label: ReactNode;
9+
}
10+
11+
interface InternalCheckboxProps extends ICheckboxProps {
12+
options?: CheckboxOption[];
13+
}
14+
15+
export type CheckboxProps = InternalCheckboxProps & FormGroupProps & UseFieldApiComponentConfig;
16+
17+
declare const Checkbox: React.ComponentType<CheckboxProps>;
18+
19+
export default Checkbox;
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
import { ComponentTypes } from '@data-driven-forms/react-form-renderer';
2+
3+
interface Components {
4+
TextField: React.ComponentType;
5+
Textarea: React.ComponentType;
6+
Select: React.ComponentType;
7+
Checkbox: React.ComponentType;
8+
Radio: React.ComponentType;
9+
Switch: React.ComponentType;
10+
DatePicker: React.ComponentType;
11+
TimePicker: React.ComponentType;
12+
PlainText: React.ComponentType;
13+
SubForm: React.ComponentType;
14+
Wizard: React.ComponentType;
15+
DualListSelect: React.ComponentType;
16+
Slider: React.ComponentType;
17+
}
18+
19+
interface componentMapper {
20+
[ComponentTypes.TEXT_FIELD]: React.ComponentType;
21+
[ComponentTypes.TEXTAREA]: React.ComponentType;
22+
[ComponentTypes.SELECT]: React.ComponentType;
23+
[ComponentTypes.CHECKBOX]: React.ComponentType;
24+
[ComponentTypes.SUB_FORM]: React.ComponentType;
25+
[ComponentTypes.RADIO]: React.ComponentType;
26+
[ComponentTypes.TABS]: React.ComponentType;
27+
[ComponentTypes.DATE_PICKER]: React.ComponentType;
28+
[ComponentTypes.TIME_PICKER]: React.ComponentType;
29+
[ComponentTypes.SWITCH]: React.ComponentType;
30+
[ComponentTypes.PLAIN_TEXT]: React.ComponentType;
31+
[ComponentTypes.WIZARD]: React.ComponentType;
32+
[ComponentTypes.FIELD_ARRAY]: React.ComponentType;
33+
[ComponentTypes.DUAL_LIST_SELECT]: React.ComponentType;
34+
[ComponentTypes.SLIDER]: React.ComponentType;
35+
}
36+
37+
declare const componentMapper: componentMapper;
38+
39+
export const components: Components;
40+
41+
export default componentMapper;

packages/blueprint-component-mapper/src/files/component-mapper.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,5 +46,6 @@ export const components = {
4646
Switch,
4747
PlainText,
4848
DualListSelect,
49-
Slider
49+
Slider,
50+
Wizard
5051
};
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import { FormGroupProps } from "./form-group";
2+
import { UseFieldApiComponentConfig } from "@data-driven-forms/react-form-renderer";
3+
import { IDatePickerProps } from '@blueprintjs/datetime';
4+
import { IPopoverProps, IButtonProps } from "@blueprintjs/core";
5+
6+
export interface DatePickerValueRenderer {
7+
(value?: string | Date): string;
8+
}
9+
10+
interface InternalDatePickerProps extends IDatePickerProps {
11+
disabled?: boolean;
12+
valueRenderer?: DatePickerValueRenderer;
13+
PopoverProps?: IPopoverProps;
14+
ButtonProps: IButtonProps;
15+
}
16+
17+
export type DatePickerProps = InternalDatePickerProps & FormGroupProps & UseFieldApiComponentConfig;
18+
19+
declare const DatePicker: React.ComponentType<DatePickerProps>;
20+
21+
export default DatePicker;

packages/blueprint-component-mapper/src/files/date-picker.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import { DatePicker as BDatePicker } from '@blueprintjs/datetime';
77
import FormGroupWrapper from './form-group';
88
import propsCatcher from '../common/props-catcher';
99

10-
const DatePicker = ({ input, className, disabled, placeholder, valueRenderer, PopoverProps, ButtonProps, ...props }) => (
10+
const DatePicker = ({ input, disabled, placeholder, valueRenderer, PopoverProps, ButtonProps, ...props }) => (
1111
<Popover disabled={disabled} {...PopoverProps}>
1212
<Button text={input.value ? valueRenderer(input.value) : placeholder} disabled={disabled} {...ButtonProps} />
1313
<BDatePicker id={input.name} {...propsCatcher(props)} {...input} value={input.value || null} />
@@ -21,7 +21,6 @@ DatePicker.defaultProps = {
2121

2222
DatePicker.propTypes = {
2323
input: PropTypes.object,
24-
className: PropTypes.string,
2524
disabled: PropTypes.bool,
2625
placeholder: PropTypes.node,
2726
valueRenderer: PropTypes.func,
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
import { FormGroupProps } from "./form-group";
2+
import { UseFieldApiComponentConfig, AnyObject } from "@data-driven-forms/react-form-renderer";
3+
import { ReactNode } from "react";
4+
import { IButtonGroupProps, IButtonProps, IControlGroupProps, IInputGroupProps, IMenuProps, IMenuItemProps } from "@blueprintjs/core";
5+
6+
export interface DualListSelectValue extends AnyObject {
7+
value?: any;
8+
label: ReactNode;
9+
}
10+
11+
interface InternalDualListSelectProps {
12+
leftTitle?: ReactNode;
13+
rightTitle?: ReactNode;
14+
moveLeftTitle?: ReactNode;
15+
moveRightTitle?: ReactNode;
16+
allToLeft?: boolean;
17+
allToRight?: boolean;
18+
validateOnMount?: boolean;
19+
moveAllLeftTitle?: ReactNode;
20+
moveAllRightTitle?: ReactNode;
21+
noValueTitle?: ReactNode;
22+
noOptionsTitle?: ReactNode;
23+
filterOptionsTitle?: ReactNode;
24+
filterValueTitle?: ReactNode;
25+
filterValueText?: ReactNode;
26+
filterOptionsText?: ReactNode;
27+
leftValues?: DualListSelectValue[];
28+
rightValues?: DualListSelectValue[];
29+
WrapperProps?: React.HTMLProps<HTMLDivElement>;
30+
LeftWrapperProps?: React.HTMLProps<HTMLDivElement>;
31+
RightWrapperProps?: React.HTMLProps<HTMLDivElement>;
32+
ButtonGroupProps?: IButtonGroupProps;
33+
ToRightButtonProps?: IButtonProps;
34+
AllToRightButtonProps?: IButtonProps;
35+
AllToLeftButtonProps?: IButtonProps;
36+
ToLeftButtonProps?: IButtonProps;
37+
LeftControlGroupProps?: IControlGroupProps;
38+
LeftInputGroupProps?: IInputGroupProps;
39+
LeftButtonProps?: IButtonProps;
40+
RightControlGroupProps?: IControlGroupProps;
41+
RightInputGroupProps?: IInputGroupProps;
42+
RightButtonProps?: IButtonProps;
43+
LeftMenuProps?: IMenuProps;
44+
LeftMenuItemProps?: IMenuItemProps;
45+
RightMenuProps?: IMenuProps;
46+
RightMenuItemProps?: IMenuItemProps;
47+
}
48+
49+
export type DualListSelectProps = InternalDualListSelectProps & FormGroupProps & UseFieldApiComponentConfig;
50+
51+
declare const DualListSelect: React.ComponentType<DualListSelectProps>;
52+
53+
export default DualListSelect;

0 commit comments

Comments
 (0)