@contentful/field-editor-json 3.1.7 → 3.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/JsonEditor.js +194 -0
- package/dist/cjs/JsonEditorField.js +127 -0
- package/dist/cjs/JsonEditorToolbar.js +106 -0
- package/dist/cjs/JsonInvalidStatus.js +67 -0
- package/dist/cjs/index.js +16 -0
- package/dist/cjs/types.js +4 -0
- package/dist/cjs/utils.js +58 -0
- package/dist/esm/JsonEditor.js +140 -0
- package/dist/esm/JsonEditorField.js +73 -0
- package/dist/esm/JsonEditorToolbar.js +52 -0
- package/dist/esm/JsonInvalidStatus.js +13 -0
- package/dist/esm/index.js +2 -0
- package/dist/esm/types.js +1 -0
- package/dist/esm/utils.js +37 -0
- package/dist/{JsonEditor.d.ts → types/JsonEditor.d.ts} +13 -13
- package/dist/{JsonEditorField.d.ts → types/JsonEditorField.d.ts} +8 -8
- package/dist/{JsonEditorToolbar.d.ts → types/JsonEditorToolbar.d.ts} +9 -9
- package/dist/types/JsonInvalidStatus.d.ts +2 -0
- package/dist/{index.d.ts → types/index.d.ts} +2 -2
- package/dist/types/types.d.ts +7 -0
- package/dist/{utils.d.ts → types/utils.d.ts} +7 -7
- package/package.json +23 -9
- package/CHANGELOG.md +0 -284
- package/dist/JsonInvalidStatus.d.ts +0 -2
- package/dist/field-editor-json.cjs.development.js +0 -364
- package/dist/field-editor-json.cjs.development.js.map +0 -1
- package/dist/field-editor-json.cjs.production.min.js +0 -2
- package/dist/field-editor-json.cjs.production.min.js.map +0 -1
- package/dist/field-editor-json.esm.js +0 -357
- package/dist/field-editor-json.esm.js.map +0 -1
- package/dist/index.js +0 -8
- package/dist/types.d.ts +0 -7
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "default", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return JsonEditor;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _react = _interop_require_wildcard(require("react"));
|
|
12
|
+
const _fieldeditorshared = require("@contentful/field-editor-shared");
|
|
13
|
+
const _deepequal = _interop_require_default(require("deep-equal"));
|
|
14
|
+
const _throttle = _interop_require_default(require("lodash/throttle"));
|
|
15
|
+
const _JsonEditorField = require("./JsonEditorField");
|
|
16
|
+
const _JsonEditorToolbar = require("./JsonEditorToolbar");
|
|
17
|
+
const _JsonInvalidStatus = require("./JsonInvalidStatus");
|
|
18
|
+
const _utils = require("./utils");
|
|
19
|
+
function _define_property(obj, key, value) {
|
|
20
|
+
if (key in obj) {
|
|
21
|
+
Object.defineProperty(obj, key, {
|
|
22
|
+
value: value,
|
|
23
|
+
enumerable: true,
|
|
24
|
+
configurable: true,
|
|
25
|
+
writable: true
|
|
26
|
+
});
|
|
27
|
+
} else {
|
|
28
|
+
obj[key] = value;
|
|
29
|
+
}
|
|
30
|
+
return obj;
|
|
31
|
+
}
|
|
32
|
+
function _interop_require_default(obj) {
|
|
33
|
+
return obj && obj.__esModule ? obj : {
|
|
34
|
+
default: obj
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
function _getRequireWildcardCache(nodeInterop) {
|
|
38
|
+
if (typeof WeakMap !== "function") return null;
|
|
39
|
+
var cacheBabelInterop = new WeakMap();
|
|
40
|
+
var cacheNodeInterop = new WeakMap();
|
|
41
|
+
return (_getRequireWildcardCache = function(nodeInterop) {
|
|
42
|
+
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
|
43
|
+
})(nodeInterop);
|
|
44
|
+
}
|
|
45
|
+
function _interop_require_wildcard(obj, nodeInterop) {
|
|
46
|
+
if (!nodeInterop && obj && obj.__esModule) {
|
|
47
|
+
return obj;
|
|
48
|
+
}
|
|
49
|
+
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
|
|
50
|
+
return {
|
|
51
|
+
default: obj
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
var cache = _getRequireWildcardCache(nodeInterop);
|
|
55
|
+
if (cache && cache.has(obj)) {
|
|
56
|
+
return cache.get(obj);
|
|
57
|
+
}
|
|
58
|
+
var newObj = {};
|
|
59
|
+
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
60
|
+
for(var key in obj){
|
|
61
|
+
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
62
|
+
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
|
|
63
|
+
if (desc && (desc.get || desc.set)) {
|
|
64
|
+
Object.defineProperty(newObj, key, desc);
|
|
65
|
+
} else {
|
|
66
|
+
newObj[key] = obj[key];
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
newObj.default = obj;
|
|
71
|
+
if (cache) {
|
|
72
|
+
cache.set(obj, newObj);
|
|
73
|
+
}
|
|
74
|
+
return newObj;
|
|
75
|
+
}
|
|
76
|
+
var _React_Component;
|
|
77
|
+
class ConnectedJsonEditor extends (_React_Component = _react.Component) {
|
|
78
|
+
render() {
|
|
79
|
+
return _react.createElement("div", {
|
|
80
|
+
"data-test-id": "json-editor"
|
|
81
|
+
}, _react.createElement(_JsonEditorToolbar.JsonEditorToolbar, {
|
|
82
|
+
isRedoDisabled: this.props.disabled || this.state.redoStack.length === 0,
|
|
83
|
+
isUndoDisabled: this.props.disabled || this.state.undoStack.length === 0,
|
|
84
|
+
onUndo: this.onUndo,
|
|
85
|
+
onRedo: this.onRedo
|
|
86
|
+
}), _react.createElement(_JsonEditorField.JsonEditorField, {
|
|
87
|
+
value: this.state.value,
|
|
88
|
+
onChange: this.onChange,
|
|
89
|
+
isDisabled: this.props.disabled
|
|
90
|
+
}), !this.state.isValidJson && _react.createElement(_JsonInvalidStatus.JsonInvalidStatus, null));
|
|
91
|
+
}
|
|
92
|
+
constructor(props){
|
|
93
|
+
super(props);
|
|
94
|
+
_define_property(this, "setValidJson", (value)=>{
|
|
95
|
+
this.setState({
|
|
96
|
+
isValidJson: value
|
|
97
|
+
});
|
|
98
|
+
});
|
|
99
|
+
_define_property(this, "pushUndo", (0, _throttle.default)((value)=>{
|
|
100
|
+
this.setState((state)=>({
|
|
101
|
+
undoStack: [
|
|
102
|
+
...state.undoStack,
|
|
103
|
+
value
|
|
104
|
+
]
|
|
105
|
+
}));
|
|
106
|
+
}, 400));
|
|
107
|
+
_define_property(this, "onChange", (value)=>{
|
|
108
|
+
const parsed = (0, _utils.parseJSON)(value);
|
|
109
|
+
if (value !== this.state.lastUndo) {
|
|
110
|
+
this.pushUndo(this.state.value);
|
|
111
|
+
}
|
|
112
|
+
this.setState({
|
|
113
|
+
value,
|
|
114
|
+
isValidJson: parsed.valid
|
|
115
|
+
});
|
|
116
|
+
if (parsed.valid) {
|
|
117
|
+
this.props.setValue(parsed.value);
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
_define_property(this, "onUndo", ()=>{
|
|
121
|
+
const undoStack = this.state.undoStack;
|
|
122
|
+
if (undoStack.length === 0) {
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
const value = undoStack.pop() || '';
|
|
126
|
+
const parsedValue = (0, _utils.parseJSON)(value);
|
|
127
|
+
this.setState((state)=>({
|
|
128
|
+
...state,
|
|
129
|
+
value,
|
|
130
|
+
isValidJson: parsedValue.valid,
|
|
131
|
+
undoStack,
|
|
132
|
+
redoStack: [
|
|
133
|
+
...state.redoStack,
|
|
134
|
+
state.value
|
|
135
|
+
],
|
|
136
|
+
lastUndo: value
|
|
137
|
+
}), ()=>{
|
|
138
|
+
if (parsedValue.valid) {
|
|
139
|
+
this.props.setValue(parsedValue.value);
|
|
140
|
+
}
|
|
141
|
+
});
|
|
142
|
+
});
|
|
143
|
+
_define_property(this, "onRedo", ()=>{
|
|
144
|
+
const redoStack = [
|
|
145
|
+
...this.state.redoStack
|
|
146
|
+
];
|
|
147
|
+
if (redoStack.length === 0) {
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
const value = redoStack.pop() || '';
|
|
151
|
+
const parsedValue = (0, _utils.parseJSON)(value);
|
|
152
|
+
this.setState((state)=>({
|
|
153
|
+
...state,
|
|
154
|
+
value,
|
|
155
|
+
isValidJson: parsedValue.valid,
|
|
156
|
+
redoStack,
|
|
157
|
+
undoStack: [
|
|
158
|
+
...state.undoStack,
|
|
159
|
+
state.value
|
|
160
|
+
]
|
|
161
|
+
}), ()=>{
|
|
162
|
+
if (parsedValue.valid) {
|
|
163
|
+
this.props.setValue(parsedValue.value);
|
|
164
|
+
}
|
|
165
|
+
});
|
|
166
|
+
});
|
|
167
|
+
this.state = {
|
|
168
|
+
value: (0, _utils.stringifyJSON)(props.initialValue),
|
|
169
|
+
isValidJson: true,
|
|
170
|
+
undoStack: [],
|
|
171
|
+
redoStack: [],
|
|
172
|
+
lastUndo: ''
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
_define_property(ConnectedJsonEditor, "defaultProps", {
|
|
177
|
+
isInitiallyDisabled: true
|
|
178
|
+
});
|
|
179
|
+
function JsonEditor(props) {
|
|
180
|
+
return _react.createElement(_fieldeditorshared.FieldConnector, {
|
|
181
|
+
field: props.field,
|
|
182
|
+
isInitiallyDisabled: props.isInitiallyDisabled,
|
|
183
|
+
isEqualValues: (value1, value2)=>{
|
|
184
|
+
return (0, _deepequal.default)(value1, value2);
|
|
185
|
+
}
|
|
186
|
+
}, ({ value , disabled , setValue , externalReset })=>{
|
|
187
|
+
return _react.createElement(ConnectedJsonEditor, {
|
|
188
|
+
key: `json-editor-${externalReset}`,
|
|
189
|
+
initialValue: value,
|
|
190
|
+
disabled: disabled,
|
|
191
|
+
setValue: setValue
|
|
192
|
+
});
|
|
193
|
+
});
|
|
194
|
+
}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "JsonEditorField", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return JsonEditorField;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _react = _interop_require_wildcard(require("react"));
|
|
12
|
+
const _langjson = require("@codemirror/lang-json");
|
|
13
|
+
const _view = require("@codemirror/view");
|
|
14
|
+
const _f36tokens = _interop_require_default(require("@contentful/f36-tokens"));
|
|
15
|
+
const _reactcodemirror = _interop_require_default(require("@uiw/react-codemirror"));
|
|
16
|
+
const _emotion = require("emotion");
|
|
17
|
+
function _interop_require_default(obj) {
|
|
18
|
+
return obj && obj.__esModule ? obj : {
|
|
19
|
+
default: obj
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
function _getRequireWildcardCache(nodeInterop) {
|
|
23
|
+
if (typeof WeakMap !== "function") return null;
|
|
24
|
+
var cacheBabelInterop = new WeakMap();
|
|
25
|
+
var cacheNodeInterop = new WeakMap();
|
|
26
|
+
return (_getRequireWildcardCache = function(nodeInterop) {
|
|
27
|
+
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
|
28
|
+
})(nodeInterop);
|
|
29
|
+
}
|
|
30
|
+
function _interop_require_wildcard(obj, nodeInterop) {
|
|
31
|
+
if (!nodeInterop && obj && obj.__esModule) {
|
|
32
|
+
return obj;
|
|
33
|
+
}
|
|
34
|
+
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
|
|
35
|
+
return {
|
|
36
|
+
default: obj
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
var cache = _getRequireWildcardCache(nodeInterop);
|
|
40
|
+
if (cache && cache.has(obj)) {
|
|
41
|
+
return cache.get(obj);
|
|
42
|
+
}
|
|
43
|
+
var newObj = {};
|
|
44
|
+
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
45
|
+
for(var key in obj){
|
|
46
|
+
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
47
|
+
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
|
|
48
|
+
if (desc && (desc.get || desc.set)) {
|
|
49
|
+
Object.defineProperty(newObj, key, desc);
|
|
50
|
+
} else {
|
|
51
|
+
newObj[key] = obj[key];
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
newObj.default = obj;
|
|
56
|
+
if (cache) {
|
|
57
|
+
cache.set(obj, newObj);
|
|
58
|
+
}
|
|
59
|
+
return newObj;
|
|
60
|
+
}
|
|
61
|
+
const styles = {
|
|
62
|
+
root: (0, _emotion.css)({
|
|
63
|
+
cursor: 'text',
|
|
64
|
+
padding: _f36tokens.default.spacingS,
|
|
65
|
+
border: `1px solid ${_f36tokens.default.gray200}`,
|
|
66
|
+
borderTop: 'none',
|
|
67
|
+
borderBottomLeftRadius: _f36tokens.default.borderRadiusSmall,
|
|
68
|
+
borderBottomRightRadius: _f36tokens.default.borderRadiusSmall,
|
|
69
|
+
fontSize: _f36tokens.default.fontSizeM,
|
|
70
|
+
'.cm-editor': {
|
|
71
|
+
color: _f36tokens.default.gray900,
|
|
72
|
+
'&.cm-focused': {
|
|
73
|
+
outline: 'none'
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
'.cm-scroller': {
|
|
77
|
+
fontFamily: _f36tokens.default.fontStackMonospace,
|
|
78
|
+
minHeight: '6rem'
|
|
79
|
+
},
|
|
80
|
+
'&.disabled': {
|
|
81
|
+
cursor: 'auto',
|
|
82
|
+
'.cm-scroller ': {
|
|
83
|
+
minHeight: '6rem',
|
|
84
|
+
backgroundColor: _f36tokens.default.gray100,
|
|
85
|
+
cursor: 'not-allowed'
|
|
86
|
+
},
|
|
87
|
+
'.cm-editor': {
|
|
88
|
+
border: `1px solid ${_f36tokens.default.gray200}`
|
|
89
|
+
},
|
|
90
|
+
'.cm-line': {
|
|
91
|
+
cursor: 'not-allowed'
|
|
92
|
+
},
|
|
93
|
+
'.cm-lines': {
|
|
94
|
+
cursor: 'not-allowed'
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
})
|
|
98
|
+
};
|
|
99
|
+
function JsonEditorField(props) {
|
|
100
|
+
return _react.createElement("div", {
|
|
101
|
+
className: (0, _emotion.cx)(styles.root, {
|
|
102
|
+
disabled: props.isDisabled
|
|
103
|
+
}),
|
|
104
|
+
"data-test-id": "json-editor-code-mirror"
|
|
105
|
+
}, _react.createElement(_reactcodemirror.default, {
|
|
106
|
+
value: props.value,
|
|
107
|
+
onChange: props.onChange,
|
|
108
|
+
theme: "light",
|
|
109
|
+
extensions: [
|
|
110
|
+
(0, _langjson.json)(),
|
|
111
|
+
_view.EditorView.lineWrapping
|
|
112
|
+
],
|
|
113
|
+
basicSetup: {
|
|
114
|
+
closeBrackets: false,
|
|
115
|
+
lineNumbers: false,
|
|
116
|
+
highlightActiveLineGutter: false,
|
|
117
|
+
searchKeymap: false,
|
|
118
|
+
highlightActiveLine: false,
|
|
119
|
+
foldGutter: false,
|
|
120
|
+
bracketMatching: false,
|
|
121
|
+
syntaxHighlighting: false
|
|
122
|
+
},
|
|
123
|
+
width: "100%",
|
|
124
|
+
editable: !props.isDisabled,
|
|
125
|
+
indentWithTab: true
|
|
126
|
+
}));
|
|
127
|
+
}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "JsonEditorToolbar", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return JsonEditorToolbar;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _react = _interop_require_wildcard(require("react"));
|
|
12
|
+
const _f36components = require("@contentful/f36-components");
|
|
13
|
+
const _f36tokens = _interop_require_default(require("@contentful/f36-tokens"));
|
|
14
|
+
const _emotion = require("emotion");
|
|
15
|
+
function _interop_require_default(obj) {
|
|
16
|
+
return obj && obj.__esModule ? obj : {
|
|
17
|
+
default: obj
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
function _getRequireWildcardCache(nodeInterop) {
|
|
21
|
+
if (typeof WeakMap !== "function") return null;
|
|
22
|
+
var cacheBabelInterop = new WeakMap();
|
|
23
|
+
var cacheNodeInterop = new WeakMap();
|
|
24
|
+
return (_getRequireWildcardCache = function(nodeInterop) {
|
|
25
|
+
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
|
26
|
+
})(nodeInterop);
|
|
27
|
+
}
|
|
28
|
+
function _interop_require_wildcard(obj, nodeInterop) {
|
|
29
|
+
if (!nodeInterop && obj && obj.__esModule) {
|
|
30
|
+
return obj;
|
|
31
|
+
}
|
|
32
|
+
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
|
|
33
|
+
return {
|
|
34
|
+
default: obj
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
var cache = _getRequireWildcardCache(nodeInterop);
|
|
38
|
+
if (cache && cache.has(obj)) {
|
|
39
|
+
return cache.get(obj);
|
|
40
|
+
}
|
|
41
|
+
var newObj = {};
|
|
42
|
+
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
43
|
+
for(var key in obj){
|
|
44
|
+
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
45
|
+
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
|
|
46
|
+
if (desc && (desc.get || desc.set)) {
|
|
47
|
+
Object.defineProperty(newObj, key, desc);
|
|
48
|
+
} else {
|
|
49
|
+
newObj[key] = obj[key];
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
newObj.default = obj;
|
|
54
|
+
if (cache) {
|
|
55
|
+
cache.set(obj, newObj);
|
|
56
|
+
}
|
|
57
|
+
return newObj;
|
|
58
|
+
}
|
|
59
|
+
const styles = {
|
|
60
|
+
toolbar: (0, _emotion.css)({
|
|
61
|
+
display: 'flex',
|
|
62
|
+
alignItems: 'center',
|
|
63
|
+
padding: _f36tokens.default.spacingXs,
|
|
64
|
+
justifyContent: 'space-between',
|
|
65
|
+
backgroundColor: _f36tokens.default.gray100,
|
|
66
|
+
border: `1px solid ${_f36tokens.default.gray200}`,
|
|
67
|
+
borderTopLeftRadius: _f36tokens.default.borderRadiusSmall,
|
|
68
|
+
borderTopRightRadius: _f36tokens.default.borderRadiusSmall,
|
|
69
|
+
borderBottom: 'none'
|
|
70
|
+
}),
|
|
71
|
+
title: (0, _emotion.css)({
|
|
72
|
+
fontFamily: _f36tokens.default.fontStackPrimary,
|
|
73
|
+
fontSize: _f36tokens.default.fontSizeM,
|
|
74
|
+
color: _f36tokens.default.gray600
|
|
75
|
+
}),
|
|
76
|
+
actions: (0, _emotion.css)({
|
|
77
|
+
button: {
|
|
78
|
+
marginLeft: _f36tokens.default.spacingS
|
|
79
|
+
}
|
|
80
|
+
})
|
|
81
|
+
};
|
|
82
|
+
function JsonEditorToolbar(props) {
|
|
83
|
+
return _react.createElement("div", {
|
|
84
|
+
className: styles.toolbar
|
|
85
|
+
}, _react.createElement("div", {
|
|
86
|
+
className: styles.title
|
|
87
|
+
}, "JSON Editor"), _react.createElement("div", {
|
|
88
|
+
className: styles.actions
|
|
89
|
+
}, _react.createElement(_f36components.Button, {
|
|
90
|
+
variant: "secondary",
|
|
91
|
+
size: "small",
|
|
92
|
+
isDisabled: props.isUndoDisabled,
|
|
93
|
+
testId: "json-editor-undo",
|
|
94
|
+
onClick: ()=>{
|
|
95
|
+
props.onUndo();
|
|
96
|
+
}
|
|
97
|
+
}, "Undo"), _react.createElement(_f36components.Button, {
|
|
98
|
+
variant: "secondary",
|
|
99
|
+
size: "small",
|
|
100
|
+
isDisabled: props.isRedoDisabled,
|
|
101
|
+
testId: "json-editor-redo",
|
|
102
|
+
onClick: ()=>{
|
|
103
|
+
props.onRedo();
|
|
104
|
+
}
|
|
105
|
+
}, "Redo")));
|
|
106
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "JsonInvalidStatus", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return JsonInvalidStatus;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _react = _interop_require_wildcard(require("react"));
|
|
12
|
+
const _f36components = require("@contentful/f36-components");
|
|
13
|
+
const _f36tokens = _interop_require_default(require("@contentful/f36-tokens"));
|
|
14
|
+
const _emotion = require("emotion");
|
|
15
|
+
function _interop_require_default(obj) {
|
|
16
|
+
return obj && obj.__esModule ? obj : {
|
|
17
|
+
default: obj
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
function _getRequireWildcardCache(nodeInterop) {
|
|
21
|
+
if (typeof WeakMap !== "function") return null;
|
|
22
|
+
var cacheBabelInterop = new WeakMap();
|
|
23
|
+
var cacheNodeInterop = new WeakMap();
|
|
24
|
+
return (_getRequireWildcardCache = function(nodeInterop) {
|
|
25
|
+
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
|
26
|
+
})(nodeInterop);
|
|
27
|
+
}
|
|
28
|
+
function _interop_require_wildcard(obj, nodeInterop) {
|
|
29
|
+
if (!nodeInterop && obj && obj.__esModule) {
|
|
30
|
+
return obj;
|
|
31
|
+
}
|
|
32
|
+
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
|
|
33
|
+
return {
|
|
34
|
+
default: obj
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
var cache = _getRequireWildcardCache(nodeInterop);
|
|
38
|
+
if (cache && cache.has(obj)) {
|
|
39
|
+
return cache.get(obj);
|
|
40
|
+
}
|
|
41
|
+
var newObj = {};
|
|
42
|
+
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
43
|
+
for(var key in obj){
|
|
44
|
+
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
45
|
+
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
|
|
46
|
+
if (desc && (desc.get || desc.set)) {
|
|
47
|
+
Object.defineProperty(newObj, key, desc);
|
|
48
|
+
} else {
|
|
49
|
+
newObj[key] = obj[key];
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
newObj.default = obj;
|
|
54
|
+
if (cache) {
|
|
55
|
+
cache.set(obj, newObj);
|
|
56
|
+
}
|
|
57
|
+
return newObj;
|
|
58
|
+
}
|
|
59
|
+
function JsonInvalidStatus() {
|
|
60
|
+
return _react.createElement("div", {
|
|
61
|
+
role: "status",
|
|
62
|
+
"data-test-id": "json-editor.invalid-json",
|
|
63
|
+
className: (0, _emotion.css)({
|
|
64
|
+
marginTop: _f36tokens.default.spacingS
|
|
65
|
+
})
|
|
66
|
+
}, _react.createElement(_f36components.ValidationMessage, null, "This is not valid JSON"));
|
|
67
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "JsonEditor", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return _JsonEditor.default;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _JsonEditor = _interop_require_default(require("./JsonEditor"));
|
|
12
|
+
function _interop_require_default(obj) {
|
|
13
|
+
return obj && obj.__esModule ? obj : {
|
|
14
|
+
default: obj
|
|
15
|
+
};
|
|
16
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
function _export(target, all) {
|
|
6
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: all[name]
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
_export(exports, {
|
|
12
|
+
stringifyJSON: function() {
|
|
13
|
+
return stringifyJSON;
|
|
14
|
+
},
|
|
15
|
+
isValidJson: function() {
|
|
16
|
+
return isValidJson;
|
|
17
|
+
},
|
|
18
|
+
parseJSON: function() {
|
|
19
|
+
return parseJSON;
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
function stringifyJSON(obj) {
|
|
23
|
+
if (obj === null || obj === undefined) {
|
|
24
|
+
return '';
|
|
25
|
+
} else {
|
|
26
|
+
return JSON.stringify(obj, null, 4);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
function isValidJson(str) {
|
|
30
|
+
let parsed;
|
|
31
|
+
try {
|
|
32
|
+
parsed = JSON.parse(str);
|
|
33
|
+
} catch (e) {
|
|
34
|
+
return false;
|
|
35
|
+
}
|
|
36
|
+
if (typeof parsed !== 'object') {
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
return true;
|
|
40
|
+
}
|
|
41
|
+
function parseJSON(str) {
|
|
42
|
+
if (str === '') {
|
|
43
|
+
return {
|
|
44
|
+
value: undefined,
|
|
45
|
+
valid: true
|
|
46
|
+
};
|
|
47
|
+
} else if (isValidJson(str)) {
|
|
48
|
+
return {
|
|
49
|
+
value: JSON.parse(str),
|
|
50
|
+
valid: true
|
|
51
|
+
};
|
|
52
|
+
} else {
|
|
53
|
+
return {
|
|
54
|
+
value: undefined,
|
|
55
|
+
valid: false
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
}
|