graphql-form-mui 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- package/Readme.md +3 -0
- package/lib/components/ArrayField.d.ts +6 -0
- package/lib/components/ArrayField.js +64 -0
- package/lib/components/ArrayField.js.map +1 -0
- package/lib/components/BooleanField.d.ts +4 -0
- package/lib/components/BooleanField.js +27 -0
- package/lib/components/BooleanField.js.map +1 -0
- package/lib/components/EnumField.d.ts +4 -0
- package/lib/components/EnumField.js +38 -0
- package/lib/components/EnumField.js.map +1 -0
- package/lib/components/FormField.d.ts +4 -0
- package/lib/components/FormField.js +12 -0
- package/lib/components/FormField.js.map +1 -0
- package/lib/components/FormLabel.d.ts +4 -0
- package/lib/components/FormLabel.js +12 -0
- package/lib/components/FormLabel.js.map +1 -0
- package/lib/components/NullField.d.ts +3 -0
- package/lib/components/NullField.js +8 -0
- package/lib/components/NullField.js.map +1 -0
- package/lib/components/NumberField.d.ts +4 -0
- package/lib/components/NumberField.js +22 -0
- package/lib/components/NumberField.js.map +1 -0
- package/lib/components/ObjectField.d.ts +4 -0
- package/lib/components/ObjectField.js +37 -0
- package/lib/components/ObjectField.js.map +1 -0
- package/lib/components/UniversalField.d.ts +4 -0
- package/lib/components/UniversalField.js +22 -0
- package/lib/components/UniversalField.js.map +1 -0
- package/lib/index.d.ts +4 -0
- package/lib/index.js +42 -0
- package/lib/index.js.map +1 -0
- package/package.json +36 -0
- package/src/components/ArrayField.tsx +111 -0
- package/src/components/BooleanField.tsx +24 -0
- package/src/components/EnumField.tsx +31 -0
- package/src/components/FormField.tsx +5 -0
- package/src/components/FormLabel.tsx +9 -0
- package/src/components/NullField.tsx +2 -0
- package/src/components/NumberField.tsx +15 -0
- package/src/components/ObjectField.tsx +41 -0
- package/src/components/UniversalField.tsx +14 -0
- package/src/index.tsx +32 -0
- package/tsconfig.build.json +36 -0
- package/tsconfig.json +20 -0
package/Readme.md
ADDED
@@ -0,0 +1,64 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
3
|
+
__assign = Object.assign || function(t) {
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
5
|
+
s = arguments[i];
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
7
|
+
t[p] = s[p];
|
8
|
+
}
|
9
|
+
return t;
|
10
|
+
};
|
11
|
+
return __assign.apply(this, arguments);
|
12
|
+
};
|
13
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
14
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
15
|
+
};
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
17
|
+
var material_1 = require("@mui/material");
|
18
|
+
var graphql_form_1 = require("graphql-form");
|
19
|
+
var graphql_js_tree_1 = require("graphql-js-tree");
|
20
|
+
var react_1 = __importDefault(require("react"));
|
21
|
+
var icons_material_1 = require("@mui/icons-material");
|
22
|
+
var ArrayField = function (props) {
|
23
|
+
var formObject = props.formObject, onChange = props.onChange, f = props.f;
|
24
|
+
formObject.value || (formObject.value = []);
|
25
|
+
if (f.type.fieldType.type !== graphql_js_tree_1.Options.array) {
|
26
|
+
throw new Error('Invalid Array node');
|
27
|
+
}
|
28
|
+
var nodeWithoutArray = __assign(__assign({}, f), { type: __assign(__assign({}, f.type), { fieldType: __assign({}, f.type.fieldType.nest) }) });
|
29
|
+
var formValuePointer = formObject.value;
|
30
|
+
return (react_1.default.createElement(material_1.Stack, null,
|
31
|
+
formValuePointer.map(function (v, i, all) {
|
32
|
+
formValuePointer[i] || (formValuePointer[i] = { node: nodeWithoutArray });
|
33
|
+
return (react_1.default.createElement(material_1.Stack, { key: f.name + i },
|
34
|
+
react_1.default.createElement(graphql_form_1.Renderer, __assign({ key: i }, props, { f: __assign(__assign({}, nodeWithoutArray), { name: "".concat(nodeWithoutArray.name, "[").concat(i, "]") }), onChange: function (e) {
|
35
|
+
formValuePointer[i] = e;
|
36
|
+
onChange(__assign(__assign({}, formObject), { value: formValuePointer }));
|
37
|
+
}, formObject: v }),
|
38
|
+
react_1.default.createElement(material_1.Stack, { direction: "row" },
|
39
|
+
react_1.default.createElement(material_1.IconButton, { onClick: function () {
|
40
|
+
onChange(__assign(__assign({}, formObject), { value: formValuePointer.filter(function (_, index) { return i !== index; }) }));
|
41
|
+
} },
|
42
|
+
react_1.default.createElement(icons_material_1.Close, null)),
|
43
|
+
i !== 0 && (react_1.default.createElement(material_1.IconButton, { onClick: function () {
|
44
|
+
var switched = v;
|
45
|
+
formValuePointer[i] = formValuePointer[i - 1];
|
46
|
+
formValuePointer[i - 1] = switched;
|
47
|
+
onChange(__assign(__assign({}, formObject), { value: formValuePointer }));
|
48
|
+
} },
|
49
|
+
react_1.default.createElement(icons_material_1.ArrowUpward, null))),
|
50
|
+
i !== all.length - 1 && (react_1.default.createElement(material_1.IconButton, { onClick: function () {
|
51
|
+
var switched = v;
|
52
|
+
formValuePointer[i] = formValuePointer[i + 1];
|
53
|
+
formValuePointer[i + 1] = switched;
|
54
|
+
onChange(__assign(__assign({}, formObject), { value: formValuePointer }));
|
55
|
+
} },
|
56
|
+
react_1.default.createElement(icons_material_1.ArrowDownward, null)))))));
|
57
|
+
}),
|
58
|
+
react_1.default.createElement(material_1.Button, { onClick: function () {
|
59
|
+
formValuePointer.push({});
|
60
|
+
onChange(__assign(__assign({}, formObject), { value: formValuePointer }));
|
61
|
+
}, endIcon: react_1.default.createElement(icons_material_1.PlusOne, null) }, "Add ".concat(f.name))));
|
62
|
+
};
|
63
|
+
exports.default = ArrayField;
|
64
|
+
//# sourceMappingURL=ArrayField.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"ArrayField.js","sourceRoot":"","sources":["../../src/components/ArrayField.tsx"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,27 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
3
|
+
__assign = Object.assign || function(t) {
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
5
|
+
s = arguments[i];
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
7
|
+
t[p] = s[p];
|
8
|
+
}
|
9
|
+
return t;
|
10
|
+
};
|
11
|
+
return __assign.apply(this, arguments);
|
12
|
+
};
|
13
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
14
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
15
|
+
};
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
17
|
+
var material_1 = require("@mui/material");
|
18
|
+
var react_1 = __importDefault(require("react"));
|
19
|
+
exports.default = (function (_a) {
|
20
|
+
var f = _a.f, formObject = _a.formObject, onChange = _a.onChange;
|
21
|
+
var value = formObject.value;
|
22
|
+
return (react_1.default.createElement(material_1.FormGroup, null,
|
23
|
+
react_1.default.createElement(material_1.FormControlLabel, { control: react_1.default.createElement(material_1.Checkbox, { value: value, onChange: function () {
|
24
|
+
return onChange(__assign(__assign({}, formObject), { value: value === true ? undefined : true }));
|
25
|
+
} }), label: f.name })));
|
26
|
+
});
|
27
|
+
//# sourceMappingURL=BooleanField.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"BooleanField.js","sourceRoot":"","sources":["../../src/components/BooleanField.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAsE;AAEtE,gDAA0B;AAC1B,mBAAe,UAAC,EAA4C;QAA1C,CAAC,OAAA,EAAE,UAAU,gBAAA,EAAE,QAAQ,cAAA;IACrC,IAAM,KAAK,GAAG,UAAU,CAAC,KAA4B,CAAC;IACtD,OAAO,CACH,8BAAC,oBAAS;QACN,8BAAC,2BAAgB,IACb,OAAO,EACH,8BAAC,mBAAQ,IACL,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE;oBACN,OAAA,QAAQ,uBACD,UAAU,KACb,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAC1C;gBAHF,CAGE,GAER,EAEN,KAAK,EAAE,CAAC,CAAC,IAAI,GACf,CACM,CACf,CAAC;AACN,CAAC,EAAC"}
|
@@ -0,0 +1,38 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
3
|
+
__assign = Object.assign || function(t) {
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
5
|
+
s = arguments[i];
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
7
|
+
t[p] = s[p];
|
8
|
+
}
|
9
|
+
return t;
|
10
|
+
};
|
11
|
+
return __assign.apply(this, arguments);
|
12
|
+
};
|
13
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
14
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
15
|
+
};
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
17
|
+
var material_1 = require("@mui/material");
|
18
|
+
var graphql_js_tree_1 = require("graphql-js-tree");
|
19
|
+
var react_1 = __importDefault(require("react"));
|
20
|
+
exports.default = (function (_a) {
|
21
|
+
var _b;
|
22
|
+
var nodes = _a.nodes, onChange = _a.onChange, formObject = _a.formObject, f = _a.f;
|
23
|
+
var seekNode = nodes.find(function (n) { return n.name === (0, graphql_js_tree_1.getTypeName)(f.type.fieldType); });
|
24
|
+
if (!seekNode) {
|
25
|
+
throw new Error('Invalid enum field');
|
26
|
+
}
|
27
|
+
var options = ((_b = seekNode.args) === null || _b === void 0 ? void 0 : _b.map(function (_a) {
|
28
|
+
var label = _a.name;
|
29
|
+
return ({
|
30
|
+
label: label,
|
31
|
+
value: label,
|
32
|
+
});
|
33
|
+
})) || [];
|
34
|
+
return (react_1.default.createElement(material_1.Select, { placeholder: f.name, value: formObject.value, onChange: function (e) {
|
35
|
+
onChange(__assign(__assign({}, formObject), { value: e.target.value }));
|
36
|
+
} }, options.map(function (o) { return (react_1.default.createElement(material_1.MenuItem, { value: o.value }, o.label)); })));
|
37
|
+
});
|
38
|
+
//# sourceMappingURL=EnumField.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"EnumField.js","sourceRoot":"","sources":["../../src/components/EnumField.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAiD;AAEjD,mDAA8C;AAC9C,gDAA0B;AAC1B,mBAAe,UAAC,EAAmD;;QAAjD,KAAK,WAAA,EAAE,QAAQ,cAAA,EAAE,UAAU,gBAAA,EAAE,CAAC,OAAA;IAC5C,IAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,IAAI,KAAK,IAAA,6BAAW,EAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAxC,CAAwC,CAAC,CAAC;IAC7E,IAAI,CAAC,QAAQ,EAAE;QACX,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;KACzC;IACD,IAAM,OAAO,GACT,CAAA,MAAA,QAAQ,CAAC,IAAI,0CAAE,GAAG,CAAC,UAAC,EAAe;YAAP,KAAK,UAAA;QAAO,OAAA,CAAC;YACrC,KAAK,OAAA;YACL,KAAK,EAAE,KAAK;SACf,CAAC;IAHsC,CAGtC,CAAC,KAAI,EAAE,CAAC;IACd,OAAO,CACH,8BAAC,iBAAM,IACH,WAAW,EAAE,CAAC,CAAC,IAAI,EACnB,KAAK,EAAE,UAAU,CAAC,KAA2B,EAC7C,QAAQ,EAAE,UAAC,CAAC;YACR,QAAQ,uBACD,UAAU,KACb,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,IACvB,CAAC;QACP,CAAC,IAEA,OAAO,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,CAChB,8BAAC,mBAAQ,IAAC,KAAK,EAAE,CAAC,CAAC,KAAK,IAAG,CAAC,CAAC,KAAK,CAAY,CACjD,EAFmB,CAEnB,CAAC,CACG,CACZ,CAAC;AACN,CAAC,EAAC"}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
+
};
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
+
var react_1 = __importDefault(require("react"));
|
7
|
+
var FormField = function (_a) {
|
8
|
+
var children = _a.children;
|
9
|
+
return react_1.default.createElement("div", null, children);
|
10
|
+
};
|
11
|
+
exports.default = FormField;
|
12
|
+
//# sourceMappingURL=FormField.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"FormField.js","sourceRoot":"","sources":["../../src/components/FormField.tsx"],"names":[],"mappings":";;;;;AACA,gDAA0B;AAC1B,IAAM,SAAS,GAA8B,UAAC,EAAY;QAAV,QAAQ,cAAA;IAAO,OAAA,2CAAM,QAAQ,CAAO;AAArB,CAAqB,CAAC;AAErF,kBAAe,SAAS,CAAC"}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
+
};
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
+
var react_1 = __importDefault(require("react"));
|
7
|
+
var FormLabel = function (props) { return (react_1.default.createElement("div", null,
|
8
|
+
props.f.name,
|
9
|
+
" ",
|
10
|
+
props.children)); };
|
11
|
+
exports.default = FormLabel;
|
12
|
+
//# sourceMappingURL=FormLabel.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"FormLabel.js","sourceRoot":"","sources":["../../src/components/FormLabel.tsx"],"names":[],"mappings":";;;;;AACA,gDAA0B;AAC1B,IAAM,SAAS,GAA8B,UAAC,KAAK,IAAK,OAAA,CACpD;IACK,KAAK,CAAC,CAAC,CAAC,IAAI;;IAAG,KAAK,CAAC,QAAQ,CAC5B,CACT,EAJuD,CAIvD,CAAC;AAEF,kBAAe,SAAS,CAAC"}
|
@@ -0,0 +1,8 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
+
};
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
+
var react_1 = __importDefault(require("react"));
|
7
|
+
exports.default = (function () { return react_1.default.createElement("div", null, "No value"); });
|
8
|
+
//# sourceMappingURL=NullField.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"NullField.js","sourceRoot":"","sources":["../../src/components/NullField.tsx"],"names":[],"mappings":";;;;;AAAA,gDAA0B;AAC1B,mBAAe,cAAM,OAAA,sDAAmB,EAAnB,CAAmB,EAAC"}
|
@@ -0,0 +1,22 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
3
|
+
__assign = Object.assign || function(t) {
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
5
|
+
s = arguments[i];
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
7
|
+
t[p] = s[p];
|
8
|
+
}
|
9
|
+
return t;
|
10
|
+
};
|
11
|
+
return __assign.apply(this, arguments);
|
12
|
+
};
|
13
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
14
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
15
|
+
};
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
17
|
+
var material_1 = require("@mui/material");
|
18
|
+
var react_1 = __importDefault(require("react"));
|
19
|
+
exports.default = (function (props) { return (react_1.default.createElement(material_1.TextField, { type: "number", value: props.formObject.value || '', onChange: function (e) {
|
20
|
+
props.onChange(__assign(__assign({}, props.formObject), { value: e.target.value }));
|
21
|
+
} })); });
|
22
|
+
//# sourceMappingURL=NumberField.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"NumberField.js","sourceRoot":"","sources":["../../src/components/NumberField.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAA0C;AAE1C,gDAA0B;AAC1B,mBAAe,UAAC,KAAsB,IAAK,OAAA,CACvC,8BAAC,oBAAS,IACN,IAAI,EAAC,QAAQ,EACb,KAAK,EAAG,KAAK,CAAC,UAAU,CAAC,KAA4B,IAAI,EAAE,EAC3D,QAAQ,EAAE,UAAC,CAAC;QACR,KAAK,CAAC,QAAQ,uBACP,KAAK,CAAC,UAAU,KACnB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,IACvB,CAAC;IACP,CAAC,GACH,CACL,EAX0C,CAW1C,EAAC"}
|
@@ -0,0 +1,37 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
3
|
+
__assign = Object.assign || function(t) {
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
5
|
+
s = arguments[i];
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
7
|
+
t[p] = s[p];
|
8
|
+
}
|
9
|
+
return t;
|
10
|
+
};
|
11
|
+
return __assign.apply(this, arguments);
|
12
|
+
};
|
13
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
14
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
15
|
+
};
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
17
|
+
var material_1 = require("@mui/material");
|
18
|
+
var graphql_form_1 = require("graphql-form");
|
19
|
+
var react_1 = __importDefault(require("react"));
|
20
|
+
var ObjectField = function (props) {
|
21
|
+
var _a;
|
22
|
+
var formObject = props.formObject, f = props.f;
|
23
|
+
formObject.value || (formObject.value = {});
|
24
|
+
var fV = formObject.value;
|
25
|
+
return (react_1.default.createElement(material_1.Stack, { pl: 4 }, (_a = f.args) === null || _a === void 0 ? void 0 : _a.sort(function (a, b) {
|
26
|
+
return b.name > a.name ? -1 : 1;
|
27
|
+
}).map(function (a) {
|
28
|
+
var _a;
|
29
|
+
fV[_a = a.name] || (fV[_a] = { node: a });
|
30
|
+
return (react_1.default.createElement(graphql_form_1.Renderer, __assign({}, props, { currentPath: "".concat(props.currentPath, ".").concat(a.name), key: a.name, formObject: fV[a.name], required: false, onChange: function (fv) {
|
31
|
+
var _a;
|
32
|
+
props.onChange(__assign(__assign({}, formObject), { value: __assign(__assign({}, fV), (_a = {}, _a[a.name] = fv, _a)) }));
|
33
|
+
}, f: a, children: undefined })));
|
34
|
+
})));
|
35
|
+
};
|
36
|
+
exports.default = ObjectField;
|
37
|
+
//# sourceMappingURL=ObjectField.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"ObjectField.js","sourceRoot":"","sources":["../../src/components/ObjectField.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAsC;AACtC,6CAAqE;AACrE,gDAA0B;AAE1B,IAAM,WAAW,GAA8B,UAAC,KAAK;;IACzC,IAAA,UAAU,GAAQ,KAAK,WAAb,EAAE,CAAC,GAAK,KAAK,EAAV,CAAW;IAChC,UAAU,CAAC,KAAK,KAAhB,UAAU,CAAC,KAAK,GAAK,EAAE,EAAC;IACxB,IAAM,EAAE,GAAG,UAAU,CAAC,KAAoC,CAAC;IAC3D,OAAO,CACH,8BAAC,gBAAK,IAAC,EAAE,EAAE,CAAC,IACP,MAAA,CAAC,CAAC,IAAI,0CACD,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC;QACR,OAAO,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC,EACA,GAAG,CAAC,UAAC,CAAC;;QACH,EAAE,MAAC,CAAC,CAAC,IAAI,MAAT,EAAE,OAAa,EAAE,IAAI,EAAE,CAAC,EAAE,EAAC;QAC3B,OAAO,CACH,8BAAC,uBAAQ,eACD,KAAK,IACT,WAAW,EAAE,UAAG,KAAK,CAAC,WAAW,cAAI,CAAC,CAAC,IAAI,CAAE,EAC7C,GAAG,EAAE,CAAC,CAAC,IAAI,EACX,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EACtB,QAAQ,EAAE,KAAK,EACf,QAAQ,EAAE,UAAC,EAAE;;gBACT,KAAK,CAAC,QAAQ,uBACP,UAAU,KACb,KAAK,wBACE,EAAE,gBACJ,CAAC,CAAC,IAAI,IAAG,EAAE,UAElB,CAAC;YACP,CAAC,EACD,CAAC,EAAE,CAAC,EACJ,QAAQ,EAAE,SAAS,IACrB,CACL,CAAC;IACN,CAAC,CAAC,CACF,CACX,CAAC;AACN,CAAC,CAAC;AACF,kBAAe,WAAW,CAAC"}
|
@@ -0,0 +1,22 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
3
|
+
__assign = Object.assign || function(t) {
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
5
|
+
s = arguments[i];
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
7
|
+
t[p] = s[p];
|
8
|
+
}
|
9
|
+
return t;
|
10
|
+
};
|
11
|
+
return __assign.apply(this, arguments);
|
12
|
+
};
|
13
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
14
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
15
|
+
};
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
17
|
+
var material_1 = require("@mui/material");
|
18
|
+
var react_1 = __importDefault(require("react"));
|
19
|
+
exports.default = (function (props) { return (react_1.default.createElement(material_1.TextField, { value: props.formObject.value || '', onChange: function (e) {
|
20
|
+
props.onChange(__assign(__assign({}, props.formObject), { value: e.target.value }));
|
21
|
+
} })); });
|
22
|
+
//# sourceMappingURL=UniversalField.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"UniversalField.js","sourceRoot":"","sources":["../../src/components/UniversalField.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAA0C;AAE1C,gDAA0B;AAC1B,mBAAe,UAAC,KAAsB,IAAK,OAAA,CACvC,8BAAC,oBAAS,IACN,KAAK,EAAG,KAAK,CAAC,UAAU,CAAC,KAA4B,IAAI,EAAE,EAC3D,QAAQ,EAAE,UAAC,CAAC;QACR,KAAK,CAAC,QAAQ,uBACP,KAAK,CAAC,UAAU,KACnB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,IACvB,CAAC;IACP,CAAC,GACH,CACL,EAV0C,CAU1C,EAAC"}
|
package/lib/index.d.ts
ADDED
package/lib/index.js
ADDED
@@ -0,0 +1,42 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
3
|
+
__assign = Object.assign || function(t) {
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
5
|
+
s = arguments[i];
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
7
|
+
t[p] = s[p];
|
8
|
+
}
|
9
|
+
return t;
|
10
|
+
};
|
11
|
+
return __assign.apply(this, arguments);
|
12
|
+
};
|
13
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
14
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
15
|
+
};
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
17
|
+
var ArrayField_1 = __importDefault(require("./components/ArrayField"));
|
18
|
+
var BooleanField_1 = __importDefault(require("./components/BooleanField"));
|
19
|
+
var EnumField_1 = __importDefault(require("./components/EnumField"));
|
20
|
+
var FormField_1 = __importDefault(require("./components/FormField"));
|
21
|
+
var FormLabel_1 = __importDefault(require("./components/FormLabel"));
|
22
|
+
var NullField_1 = __importDefault(require("./components/NullField"));
|
23
|
+
var NumberField_1 = __importDefault(require("./components/NumberField"));
|
24
|
+
var ObjectField_1 = __importDefault(require("./components/ObjectField"));
|
25
|
+
var UniversalField_1 = __importDefault(require("./components/UniversalField"));
|
26
|
+
var graphql_form_1 = require("graphql-form");
|
27
|
+
var react_1 = __importDefault(require("react"));
|
28
|
+
var MuiForm = function (props) {
|
29
|
+
return (react_1.default.createElement(graphql_form_1.FormDisplayer, __assign({}, props, { components: {
|
30
|
+
ArrayField: ArrayField_1.default,
|
31
|
+
BooleanField: BooleanField_1.default,
|
32
|
+
EnumField: EnumField_1.default,
|
33
|
+
FormField: FormField_1.default,
|
34
|
+
FormLabel: FormLabel_1.default,
|
35
|
+
NullField: NullField_1.default,
|
36
|
+
NumberField: NumberField_1.default,
|
37
|
+
ObjectField: ObjectField_1.default,
|
38
|
+
UniversalField: UniversalField_1.default,
|
39
|
+
} })));
|
40
|
+
};
|
41
|
+
exports.default = MuiForm;
|
42
|
+
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uEAAiD;AACjD,2EAAqD;AACrD,qEAA+C;AAC/C,qEAA+C;AAC/C,qEAA+C;AAC/C,qEAA+C;AAC/C,yEAAmD;AACnD,yEAAmD;AACnD,+EAAyD;AACzD,6CAA+D;AAC/D,gDAA0B;AAE1B,IAAM,OAAO,GAA+B,UAAC,KAAK;IAC9C,OAAO,CACH,8BAAC,4BAAa,eACN,KAAK,IACT,UAAU,EAAE;YACR,UAAU,EAAE,oBAAU;YACtB,YAAY,EAAE,sBAAY;YAC1B,SAAS,EAAE,mBAAS;YACpB,SAAS,EAAE,mBAAS;YACpB,SAAS,EAAE,mBAAS;YACpB,SAAS,EAAE,mBAAS;YACpB,WAAW,EAAE,qBAAW;YACxB,WAAW,EAAE,qBAAW;YACxB,cAAc,EAAE,wBAAc;SACjC,IACH,CACL,CAAC;AACN,CAAC,CAAC;AAEF,kBAAe,OAAO,CAAC"}
|
package/package.json
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
{
|
2
|
+
"name": "graphql-form-mui",
|
3
|
+
"version": "0.0.2",
|
4
|
+
"description": "Easy form creation with GraphQL Editor and React",
|
5
|
+
"main": "lib/index.js",
|
6
|
+
"scripts": {
|
7
|
+
"test": "jest",
|
8
|
+
"test:watch": "jest --watch",
|
9
|
+
"build": "ttsc --build tsconfig.build.json",
|
10
|
+
"start": "ttsc --build tsconfig.build.json --watch",
|
11
|
+
"lint": "eslint '*/**/*.{js,ts,tsx}' --quiet --fix"
|
12
|
+
},
|
13
|
+
"types": "lib/index.d.ts",
|
14
|
+
"private": false,
|
15
|
+
"publishConfig": {
|
16
|
+
"access": "public"
|
17
|
+
},
|
18
|
+
"repository": {
|
19
|
+
"type": "git",
|
20
|
+
"url": "git+https://github.com/graphql-editor/graphql-form.git"
|
21
|
+
},
|
22
|
+
"author": "Aexol <aexol@aexol.com> (http://aexol.com)",
|
23
|
+
"license": "MIT",
|
24
|
+
"homepage": "https://form.graphqleditor.com",
|
25
|
+
"peerDependencies": {
|
26
|
+
"graphql-form": "*",
|
27
|
+
"react": ">=16.8.0",
|
28
|
+
"react-dom": ">=16.8.0"
|
29
|
+
},
|
30
|
+
"dependencies": {
|
31
|
+
"@emotion/react": "^11.9.0",
|
32
|
+
"@emotion/styled": "^11.8.1",
|
33
|
+
"@mui/icons-material": "^5.8.0",
|
34
|
+
"@mui/material": "^5.8.0"
|
35
|
+
}
|
36
|
+
}
|
@@ -0,0 +1,111 @@
|
|
1
|
+
import { Button, IconButton, Stack } from '@mui/material';
|
2
|
+
import { FormObject, FormValue, PassedFormProps, Renderer } from 'graphql-form';
|
3
|
+
import { Options, ParserField } from 'graphql-js-tree';
|
4
|
+
import React from 'react';
|
5
|
+
import { ArrowDownward, ArrowUpward, Close, PlusOne } from '@mui/icons-material';
|
6
|
+
|
7
|
+
const ArrayField: React.FC<
|
8
|
+
PassedFormProps & {
|
9
|
+
open?: boolean;
|
10
|
+
}
|
11
|
+
> = (props) => {
|
12
|
+
const { formObject, onChange, f } = props;
|
13
|
+
formObject.value ||= [];
|
14
|
+
if (f.type.fieldType.type !== Options.array) {
|
15
|
+
throw new Error('Invalid Array node');
|
16
|
+
}
|
17
|
+
const nodeWithoutArray: ParserField = {
|
18
|
+
...f,
|
19
|
+
type: {
|
20
|
+
...f.type,
|
21
|
+
fieldType: {
|
22
|
+
...f.type.fieldType.nest,
|
23
|
+
},
|
24
|
+
},
|
25
|
+
};
|
26
|
+
const formValuePointer = formObject.value as Array<FormValue>;
|
27
|
+
return (
|
28
|
+
<Stack>
|
29
|
+
{formValuePointer.map((v, i: number, all) => {
|
30
|
+
formValuePointer[i] ||= { node: nodeWithoutArray };
|
31
|
+
return (
|
32
|
+
<Stack key={f.name + i}>
|
33
|
+
<Renderer
|
34
|
+
key={i}
|
35
|
+
{...props}
|
36
|
+
f={{
|
37
|
+
...nodeWithoutArray,
|
38
|
+
name: `${nodeWithoutArray.name}[${i}]`,
|
39
|
+
}}
|
40
|
+
onChange={(e) => {
|
41
|
+
formValuePointer[i] = e;
|
42
|
+
onChange({
|
43
|
+
...formObject,
|
44
|
+
value: formValuePointer,
|
45
|
+
});
|
46
|
+
}}
|
47
|
+
formObject={v as FormObject}
|
48
|
+
>
|
49
|
+
<Stack direction="row">
|
50
|
+
<IconButton
|
51
|
+
onClick={() => {
|
52
|
+
onChange({
|
53
|
+
...formObject,
|
54
|
+
value: formValuePointer.filter((_, index) => i !== index),
|
55
|
+
});
|
56
|
+
}}
|
57
|
+
>
|
58
|
+
<Close />
|
59
|
+
</IconButton>
|
60
|
+
{i !== 0 && (
|
61
|
+
<IconButton
|
62
|
+
onClick={() => {
|
63
|
+
const switched = v;
|
64
|
+
formValuePointer[i] = formValuePointer[i - 1];
|
65
|
+
formValuePointer[i - 1] = switched;
|
66
|
+
onChange({
|
67
|
+
...formObject,
|
68
|
+
value: formValuePointer,
|
69
|
+
});
|
70
|
+
}}
|
71
|
+
>
|
72
|
+
<ArrowUpward />
|
73
|
+
</IconButton>
|
74
|
+
)}
|
75
|
+
{i !== all.length - 1 && (
|
76
|
+
<IconButton
|
77
|
+
onClick={() => {
|
78
|
+
const switched = v;
|
79
|
+
formValuePointer[i] = formValuePointer[i + 1];
|
80
|
+
formValuePointer[i + 1] = switched;
|
81
|
+
onChange({
|
82
|
+
...formObject,
|
83
|
+
value: formValuePointer,
|
84
|
+
});
|
85
|
+
}}
|
86
|
+
>
|
87
|
+
<ArrowDownward />
|
88
|
+
</IconButton>
|
89
|
+
)}
|
90
|
+
</Stack>
|
91
|
+
</Renderer>
|
92
|
+
</Stack>
|
93
|
+
);
|
94
|
+
})}
|
95
|
+
|
96
|
+
<Button
|
97
|
+
onClick={() => {
|
98
|
+
formValuePointer.push({});
|
99
|
+
onChange({
|
100
|
+
...formObject,
|
101
|
+
value: formValuePointer,
|
102
|
+
});
|
103
|
+
}}
|
104
|
+
endIcon={<PlusOne />}
|
105
|
+
>
|
106
|
+
{`Add ${f.name}`}
|
107
|
+
</Button>
|
108
|
+
</Stack>
|
109
|
+
);
|
110
|
+
};
|
111
|
+
export default ArrayField;
|
@@ -0,0 +1,24 @@
|
|
1
|
+
import { Checkbox, FormControlLabel, FormGroup } from '@mui/material';
|
2
|
+
import { PassedFormProps } from 'graphql-form';
|
3
|
+
import React from 'react';
|
4
|
+
export default ({ f, formObject, onChange }: PassedFormProps) => {
|
5
|
+
const value = formObject.value as boolean | undefined;
|
6
|
+
return (
|
7
|
+
<FormGroup>
|
8
|
+
<FormControlLabel
|
9
|
+
control={
|
10
|
+
<Checkbox
|
11
|
+
value={value}
|
12
|
+
onChange={() =>
|
13
|
+
onChange({
|
14
|
+
...formObject,
|
15
|
+
value: value === true ? undefined : true,
|
16
|
+
})
|
17
|
+
}
|
18
|
+
/>
|
19
|
+
}
|
20
|
+
label={f.name}
|
21
|
+
/>
|
22
|
+
</FormGroup>
|
23
|
+
);
|
24
|
+
};
|
@@ -0,0 +1,31 @@
|
|
1
|
+
import { MenuItem, Select } from '@mui/material';
|
2
|
+
import { PassedFormProps } from 'graphql-form';
|
3
|
+
import { getTypeName } from 'graphql-js-tree';
|
4
|
+
import React from 'react';
|
5
|
+
export default ({ nodes, onChange, formObject, f }: PassedFormProps) => {
|
6
|
+
const seekNode = nodes.find((n) => n.name === getTypeName(f.type.fieldType));
|
7
|
+
if (!seekNode) {
|
8
|
+
throw new Error('Invalid enum field');
|
9
|
+
}
|
10
|
+
const options =
|
11
|
+
seekNode.args?.map(({ name: label }) => ({
|
12
|
+
label,
|
13
|
+
value: label,
|
14
|
+
})) || [];
|
15
|
+
return (
|
16
|
+
<Select
|
17
|
+
placeholder={f.name}
|
18
|
+
value={formObject.value as string | undefined}
|
19
|
+
onChange={(e) => {
|
20
|
+
onChange({
|
21
|
+
...formObject,
|
22
|
+
value: e.target.value,
|
23
|
+
});
|
24
|
+
}}
|
25
|
+
>
|
26
|
+
{options.map((o) => (
|
27
|
+
<MenuItem value={o.value}>{o.label}</MenuItem>
|
28
|
+
))}
|
29
|
+
</Select>
|
30
|
+
);
|
31
|
+
};
|
@@ -0,0 +1,15 @@
|
|
1
|
+
import { TextField } from '@mui/material';
|
2
|
+
import { PassedFormProps } from 'graphql-form';
|
3
|
+
import React from 'react';
|
4
|
+
export default (props: PassedFormProps) => (
|
5
|
+
<TextField
|
6
|
+
type="number"
|
7
|
+
value={(props.formObject.value as string | undefined) || ''}
|
8
|
+
onChange={(e) => {
|
9
|
+
props.onChange({
|
10
|
+
...props.formObject,
|
11
|
+
value: e.target.value,
|
12
|
+
});
|
13
|
+
}}
|
14
|
+
/>
|
15
|
+
);
|
@@ -0,0 +1,41 @@
|
|
1
|
+
import { Stack } from '@mui/material';
|
2
|
+
import { PassedFormProps, FormObject, Renderer } from 'graphql-form';
|
3
|
+
import React from 'react';
|
4
|
+
|
5
|
+
const ObjectField: React.FC<PassedFormProps> = (props) => {
|
6
|
+
const { formObject, f } = props;
|
7
|
+
formObject.value ||= {};
|
8
|
+
const fV = formObject.value as { [x: string]: FormObject };
|
9
|
+
return (
|
10
|
+
<Stack pl={4}>
|
11
|
+
{f.args
|
12
|
+
?.sort((a, b) => {
|
13
|
+
return b.name > a.name ? -1 : 1;
|
14
|
+
})
|
15
|
+
.map((a) => {
|
16
|
+
fV[a.name] ||= { node: a };
|
17
|
+
return (
|
18
|
+
<Renderer
|
19
|
+
{...props}
|
20
|
+
currentPath={`${props.currentPath}.${a.name}`}
|
21
|
+
key={a.name}
|
22
|
+
formObject={fV[a.name]}
|
23
|
+
required={false}
|
24
|
+
onChange={(fv) => {
|
25
|
+
props.onChange({
|
26
|
+
...formObject,
|
27
|
+
value: {
|
28
|
+
...fV,
|
29
|
+
[a.name]: fv,
|
30
|
+
},
|
31
|
+
});
|
32
|
+
}}
|
33
|
+
f={a}
|
34
|
+
children={undefined}
|
35
|
+
/>
|
36
|
+
);
|
37
|
+
})}
|
38
|
+
</Stack>
|
39
|
+
);
|
40
|
+
};
|
41
|
+
export default ObjectField;
|
@@ -0,0 +1,14 @@
|
|
1
|
+
import { TextField } from '@mui/material';
|
2
|
+
import { PassedFormProps } from 'graphql-form';
|
3
|
+
import React from 'react';
|
4
|
+
export default (props: PassedFormProps) => (
|
5
|
+
<TextField
|
6
|
+
value={(props.formObject.value as string | undefined) || ''}
|
7
|
+
onChange={(e) => {
|
8
|
+
props.onChange({
|
9
|
+
...props.formObject,
|
10
|
+
value: e.target.value,
|
11
|
+
});
|
12
|
+
}}
|
13
|
+
/>
|
14
|
+
);
|
package/src/index.tsx
ADDED
@@ -0,0 +1,32 @@
|
|
1
|
+
import ArrayField from '@/components/ArrayField';
|
2
|
+
import BooleanField from '@/components/BooleanField';
|
3
|
+
import EnumField from '@/components/EnumField';
|
4
|
+
import FormField from '@/components/FormField';
|
5
|
+
import FormLabel from '@/components/FormLabel';
|
6
|
+
import NullField from '@/components/NullField';
|
7
|
+
import NumberField from '@/components/NumberField';
|
8
|
+
import ObjectField from '@/components/ObjectField';
|
9
|
+
import UniversalField from '@/components/UniversalField';
|
10
|
+
import { FormDisplayer, FormLibraryProps } from 'graphql-form';
|
11
|
+
import React from 'react';
|
12
|
+
|
13
|
+
const MuiForm: React.FC<FormLibraryProps> = (props) => {
|
14
|
+
return (
|
15
|
+
<FormDisplayer
|
16
|
+
{...props}
|
17
|
+
components={{
|
18
|
+
ArrayField: ArrayField,
|
19
|
+
BooleanField: BooleanField,
|
20
|
+
EnumField: EnumField,
|
21
|
+
FormField: FormField,
|
22
|
+
FormLabel: FormLabel,
|
23
|
+
NullField: NullField,
|
24
|
+
NumberField: NumberField,
|
25
|
+
ObjectField: ObjectField,
|
26
|
+
UniversalField: UniversalField,
|
27
|
+
}}
|
28
|
+
/>
|
29
|
+
);
|
30
|
+
};
|
31
|
+
|
32
|
+
export default MuiForm;
|
@@ -0,0 +1,36 @@
|
|
1
|
+
{
|
2
|
+
"compilerOptions": {
|
3
|
+
"target": "es5" /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */,
|
4
|
+
"module": "commonjs" /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */,
|
5
|
+
"jsx": "react" /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */,
|
6
|
+
"declaration": true /* Generates corresponding '.d.ts' file. */,
|
7
|
+
|
8
|
+
"sourceMap": true /* Generates corresponding '.map' file. */,
|
9
|
+
|
10
|
+
"outDir": "./lib" /* Redirect output structure to the directory. */,
|
11
|
+
"rootDir": "./src" /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */,
|
12
|
+
|
13
|
+
"isolatedModules": true /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */,
|
14
|
+
|
15
|
+
"strict": true /* Enable all strict type-checking options. */,
|
16
|
+
|
17
|
+
"baseUrl": "./src" /* Base directory to resolve non-absolute module names. */,
|
18
|
+
"paths": {
|
19
|
+
"@/*": ["./*"]
|
20
|
+
} /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */,
|
21
|
+
|
22
|
+
"esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */,
|
23
|
+
"skipLibCheck": true /* Skip type checking of declaration files. */,
|
24
|
+
"forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */,
|
25
|
+
"plugins": [
|
26
|
+
{
|
27
|
+
"transform": "typescript-transform-paths"
|
28
|
+
},
|
29
|
+
{
|
30
|
+
"transform": "typescript-transform-paths",
|
31
|
+
"afterDeclarations": true
|
32
|
+
}
|
33
|
+
]
|
34
|
+
},
|
35
|
+
"exclude": ["**/__tests__/*", "**/__sandbox__/*", "./lib", "node_modules"]
|
36
|
+
}
|
package/tsconfig.json
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
{
|
2
|
+
"compilerOptions": {
|
3
|
+
"target": "es5" /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */,
|
4
|
+
"module": "commonjs" /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */,
|
5
|
+
"jsx": "react" /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */,
|
6
|
+
"sourceMap": true /* Generates corresponding '.map' file. */,
|
7
|
+
"rootDir": "./src" /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */,
|
8
|
+
"isolatedModules": true /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */,
|
9
|
+
"strict": true /* Enable all strict type-checking options. */,
|
10
|
+
"baseUrl": "./src" /* Base directory to resolve non-absolute module names. */,
|
11
|
+
"outDir": "./lib",
|
12
|
+
"paths": {
|
13
|
+
"@/*": ["./*"]
|
14
|
+
} /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */,
|
15
|
+
"esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */,
|
16
|
+
"skipLibCheck": true /* Skip type checking of declaration files. */,
|
17
|
+
"forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */,
|
18
|
+
"composite": true
|
19
|
+
}
|
20
|
+
}
|