Skip to content

Commit b939ee4

Browse files
committed
merging-master
2 parents e5330e0 + 831b37f commit b939ee4

File tree

12 files changed

+26063
-10060
lines changed

12 files changed

+26063
-10060
lines changed

demo/dist/main.js

Lines changed: 16076 additions & 7 deletions
Large diffs are not rendered by default.

dev-server/dist/index.html

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -4,29 +4,29 @@
44
<title>react-json-view</title>
55
<meta charset="UTF-8">
66
<!--[if lt IE 9]>
7-
<script>
8-
(function(){
7+
<script>
8+
(function(){
99
var ef = function(){};
1010
window.console = window.console || {log:ef,warn:ef,error:ef,dir:ef};
11-
}());
12-
</script>
13-
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js"></script>
14-
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv-printshiv.min.js"></script>
15-
<script src="//cdnjs.cloudflare.com/ajax/libs/es5-shim/3.4.0/es5-shim.js"></script>
16-
<script src="//cdnjs.cloudflare.com/ajax/libs/es5-shim/3.4.0/es5-sham.js"></script>
11+
}());
12+
</script>
13+
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js"></script>
14+
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv-printshiv.min.js"></script>
15+
<script src="//cdnjs.cloudflare.com/ajax/libs/es5-shim/3.4.0/es5-shim.js"></script>
16+
<script src="//cdnjs.cloudflare.com/ajax/libs/es5-shim/3.4.0/es5-sham.js"></script>
1717
<![endif]-->
18-
<script src="https://unpkg.com/react@15/dist/react.js"></script>
19-
<script src="https://unpkg.com/react-dom@15/dist/react-dom.js"></script>
18+
<script crossorigin src="https://unpkg.com/react@16/umd/react.production.min.js"></script>
19+
<script crossorigin src="https://unpkg.com/react-dom@16/umd/react-dom.production.min.js"></script>
2020
<style>
21-
.react-json-view {
22-
padding: 4px 6px;
23-
border-radius: 3px;
24-
/*display: inline-block;*/
25-
}
21+
.react-json-view {
22+
padding: 4px 6px;
23+
border-radius: 3px;
24+
/*display: inline-block;*/
25+
}
2626
</style>
2727
</head>
2828
<body>
29-
<div id="app-container"></div>
30-
<script type="text/javascript" src="./main.js"></script>
29+
<div id="app-container"></div>
30+
<script type="text/javascript" src="./main.js"></script>
3131
</body>
32-
</html>
32+
</html>

package-lock.json

Lines changed: 9895 additions & 9970 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -22,37 +22,39 @@
2222
"babel-preset-stage-0": "^6.24.1",
2323
"chai": "^4.1.2",
2424
"coveralls": "^3.0.1",
25-
"css-loader": "^0.28.11",
25+
"css-loader": "^4.2.2",
2626
"enzyme": "^3.2.0",
2727
"enzyme-adapter-react-16": "^1.1.1",
2828
"eslint": "^5.0.1",
2929
"eslint-plugin-babel": "^5.1.0",
3030
"eslint-plugin-react": "^7.10.0",
3131
"html-webpack-plugin": "2.30.1",
3232
"ignore-styles": "^5.0.1",
33-
"istanbul": "^0.4.5",
34-
"jsdom": "^11.11.0",
33+
"jsdom": "^16.4.0",
3534
"mocha": "^4.0.1",
3635
"moment": "^2.22.2",
37-
"node": "8.4.0",
38-
"node-sass": "^4.9.0",
39-
"nyc": "^11.9.0",
36+
"node": "^10.18.0",
37+
"node-sass": "^4.14.1",
38+
"npm-check": "^5.9.2",
39+
"nyc": "^15.1.0",
4040
"react": "^16.4.0",
4141
"react-dom": "^16.4.0",
4242
"react-github-button": "^0.1.11",
43-
"react-hot-loader": "^3.0.0-beta.6",
43+
"react-hot-loader": "^4.12.21",
4444
"react-select": "^1.1.0",
4545
"react-test-renderer": "^16.4.0",
46-
"sass-loader": "^6.0.7",
46+
"sass-loader": "^10.0.1",
4747
"sinon": "^4.5.0",
48-
"style-loader": "^0.18.2",
49-
"webpack": "^3.12.0",
50-
"webpack-bundle-size-analyzer": "^2.7.0",
51-
"webpack-dev-server": "^2.11.2"
48+
"style-loader": "^1.2.1",
49+
"webpack": "^4.44.1",
50+
"webpack-bundle-analyzer": "^3.8.0",
51+
"webpack-bundle-size-analyzer": "^3.1.0",
52+
"webpack-cli": "^3.3.12",
53+
"webpack-dev-server": "^3.11.0"
5254
},
5355
"peerDependencies": {
54-
"react": "^17.0.0 || ^16.0.0 || ^15.5.4",
55-
"react-dom": "^17.0.0 || ^16.0.0 || ^15.5.4"
56+
"react": "^17.0.0 || ^16.3.0 || ^15.5.4",
57+
"react-dom": "^17.0.0 || ^16.3.0 || ^15.5.4"
5658
},
5759
"scripts": {
5860
"build": "webpack --config webpack/webpack.config.js -p --display-error-details --progress --optimize-minimize",
@@ -67,7 +69,8 @@
6769
"test:coverage": "nyc report --reporter=text-lcov | coveralls",
6870
"test:watch": "nyc mocha -w test/**/*-test.js",
6971
"lint": "./node_modules/.bin/eslint src",
70-
"lint-fixup": "./node_modules/.bin/eslint src --ext .js,.jsx --fix"
72+
"lint-fixup": "./node_modules/.bin/eslint src --ext .js,.jsx --fix",
73+
"upgrade-interactive": "npm-check --update"
7174
},
7275
"repository": {
7376
"type": "git",

src/js/components/CopyToClipboard.js

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ export default class extends React.PureComponent {
8888
}
8989

9090
render() {
91-
const { src, theme, hidden } = this.props;
91+
const { src, theme, hidden, rowHovered } = this.props;
9292
let style = Theme(theme, 'copy-to-clipboard').style;
9393
let display = 'inline';
9494

@@ -97,7 +97,12 @@ export default class extends React.PureComponent {
9797
}
9898

9999
return (
100-
<span class="copy-to-clipboard-container" title="Copy to clipboard">
100+
<span className="copy-to-clipboard-container"
101+
title="Copy to clipboard"
102+
style={{
103+
verticalAlign: 'top',
104+
display: rowHovered ? 'inline-block' : 'none'
105+
}}>
101106
<span
102107
style={{
103108
...style,

src/js/components/DataTypes/Object.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,8 @@ class RjvObject extends React.PureComponent {
5757
),
5858
object_type: props.type === 'array' ? 'array' : 'object',
5959
parent_type: props.type === 'array' ? 'array' : 'object',
60-
size
60+
size,
61+
hovered: false
6162
};
6263
return state;
6364
}
@@ -126,8 +127,8 @@ class RjvObject extends React.PureComponent {
126127

127128
getObjectMetaData = src => {
128129
const { rjvId, theme } = this.props;
129-
const { size } = this.state;
130-
return <VariableMeta size={size} {...this.props} />;
130+
const { size, hovered } = this.state;
131+
return <VariableMeta rowHovered={hovered} size={size} {...this.props} />;
131132
}
132133

133134
getBraceStart(object_type, expanded) {
@@ -199,6 +200,8 @@ class RjvObject extends React.PureComponent {
199200
return (
200201
<div
201202
class="object-key-val"
203+
onMouseEnter={() => this.setState({...this.state, hovered: true})}
204+
onMouseLeave={() => this.setState({...this.state, hovered: false})}
202205
{...Theme(theme, jsvRoot ? 'jsv-root' : 'objectKeyVal', styles)}
203206
>
204207
{this.getBraceStart(object_type, expanded)}

src/js/components/VariableEditor.js

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ class VariableEditor extends React.PureComponent {
3333
this.state = {
3434
editMode: false,
3535
editValue: '',
36+
hovered: false,
3637
renameKey: false,
3738
parsedInput: {
3839
type: false,
@@ -63,6 +64,8 @@ class VariableEditor extends React.PureComponent {
6364
{...Theme(theme, 'objectKeyVal', {
6465
paddingLeft: indentWidth * singleIndent
6566
})}
67+
onMouseEnter={() => this.setState({...this.state, hovered: true})}
68+
onMouseLeave={() => this.setState({...this.state, hovered: false})}
6669
class="variable-row"
6770
key={variable.name}
6871
>
@@ -116,6 +119,7 @@ class VariableEditor extends React.PureComponent {
116119
</div>
117120
{enableClipboard ? (
118121
<CopyToClipboard
122+
rowHovered={this.state.hovered}
119123
hidden={editMode}
120124
src={variable.value}
121125
clickCallback={enableClipboard}
@@ -136,7 +140,11 @@ class VariableEditor extends React.PureComponent {
136140
const { variable, theme } = this.props;
137141

138142
return (
139-
<div class="click-to-edit" style={{ verticalAlign: 'top' }}>
143+
<div class="click-to-edit"
144+
style={{
145+
verticalAlign: 'top',
146+
display: this.state.hovered ? "inline-block" : "none"
147+
}}>
140148
<Edit
141149
class="click-to-edit-icon"
142150
{...Theme(theme, 'editVarIcon')}
@@ -167,7 +175,11 @@ class VariableEditor extends React.PureComponent {
167175
const { variable, namespace, theme, rjvId } = this.props;
168176

169177
return (
170-
<div class="click-to-remove" style={{ verticalAlign: 'top' }}>
178+
<div class="click-to-remove"
179+
style={{
180+
verticalAlign: 'top',
181+
display: this.state.hovered ? "inline-block" : "none"
182+
}}>
171183
<Remove
172184
class="click-to-remove-icon"
173185
{...Theme(theme, 'removeVarIcon')}

src/js/components/VariableMeta.js

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -26,15 +26,18 @@ export default class extends React.PureComponent {
2626
}
2727
}
2828

29-
getAddAttribute = () => {
29+
getAddAttribute = (rowHovered) => {
3030
const {
3131
theme, namespace, name, src, rjvId, depth
3232
} = this.props;
3333

3434
return (
3535
<span
3636
class="click-to-add"
37-
style={{verticalAlign: 'top'}}>
37+
style={{
38+
verticalAlign: 'top',
39+
display: rowHovered ? 'inline-block' : 'none'
40+
}}>
3841
<Add
3942
class="click-to-add-icon"
4043
{...Theme(theme, 'addVarIcon')}
@@ -70,7 +73,7 @@ export default class extends React.PureComponent {
7073
);
7174
}
7275

73-
getRemoveObject = () => {
76+
getRemoveObject = (rowHovered) => {
7477
const {
7578
theme, hover, namespace, name, src, rjvId
7679
} = this.props;
@@ -80,7 +83,10 @@ export default class extends React.PureComponent {
8083
return;
8184
}
8285
return (
83-
<span class="click-to-remove" >
86+
<span class="click-to-remove"
87+
style={{
88+
display: rowHovered ? 'inline-block' : 'none'
89+
}}>
8490
<Remove
8591
class="click-to-remove-icon"
8692
{...Theme(theme, 'removeVarIcon')}
@@ -108,7 +114,8 @@ export default class extends React.PureComponent {
108114
onAdd,
109115
enableClipboard,
110116
src,
111-
namespace
117+
namespace,
118+
rowHovered,
112119
} = this.props;
113120
return (
114121
<div
@@ -123,13 +130,14 @@ export default class extends React.PureComponent {
123130
{/* copy to clipboard icon */}
124131
{enableClipboard
125132
? (<CopyToClipboard
133+
rowHovered={rowHovered}
126134
clickCallback={enableClipboard}
127135
{...{src, theme, namespace}} />)
128136
: null
129137
}
130138
{/* copy add/remove icons */}
131-
{onAdd !== false ? this.getAddAttribute() : null}
132-
{onDelete !== false ? this.getRemoveObject() : null}
139+
{onAdd !== false ? this.getAddAttribute(rowHovered) : null}
140+
{onDelete !== false ? this.getRemoveObject(rowHovered) : null}
133141
</div>
134142
);
135143
}

src/js/index.js

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,6 @@ import ObjectAttributes from './stores/ObjectAttributes';
99
//global theme
1010
import Theme from './themes/getStyle';
1111

12-
//some style behavior requires css
13-
import './../style/scss/global.scss';
14-
1512
//forward src through to JsonObject component
1613
class ReactJsonView extends React.PureComponent {
1714

webpack/webpack.config-demo.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,10 @@ const config = {
2121
library: "reactJsonView",
2222
libraryTarget: "umd"
2323
},
24-
plugins: [new webpack.optimize.UglifyJsPlugin()],
24+
plugins: [],
25+
optimization: {
26+
minimize: false
27+
},
2528
resolve: {
2629
extensions: [".js", ".json", ".css", ".scss"]
2730
},

0 commit comments

Comments
 (0)