graphql-form 0.0.26 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,5 @@
1
+ import { PassedFormProps } from "../models";
2
+ import React from 'react';
3
+ export declare const InjectedValue: React.FC<PassedFormProps<{
4
+ value: any;
5
+ }>>;
@@ -0,0 +1,49 @@
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 __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ var desc = Object.getOwnPropertyDescriptor(m, k);
16
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
+ desc = { enumerable: true, get: function() { return m[k]; } };
18
+ }
19
+ Object.defineProperty(o, k2, desc);
20
+ }) : (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ o[k2] = m[k];
23
+ }));
24
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
26
+ }) : function(o, v) {
27
+ o["default"] = v;
28
+ });
29
+ var __importStar = (this && this.__importStar) || function (mod) {
30
+ if (mod && mod.__esModule) return mod;
31
+ var result = {};
32
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
+ __setModuleDefault(result, mod);
34
+ return result;
35
+ };
36
+ Object.defineProperty(exports, "__esModule", { value: true });
37
+ exports.InjectedValue = void 0;
38
+ var react_1 = __importStar(require("react"));
39
+ var InjectedValue = function (props) {
40
+ var value = (props.widgetData || {}).value;
41
+ (0, react_1.useEffect)(function () {
42
+ if (value === props.formObject.value)
43
+ return;
44
+ props.onChange(__assign(__assign({}, props.formObject), { value: value }));
45
+ }, [value]);
46
+ return react_1.default.createElement(react_1.default.Fragment, null);
47
+ };
48
+ exports.InjectedValue = InjectedValue;
49
+ //# sourceMappingURL=InjectedValue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InjectedValue.js","sourceRoot":"","sources":["../../src/BuiltInFields/InjectedValue.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,6CAAyC;AAElC,IAAM,aAAa,GAA8C,UAAC,KAAK;IAClE,IAAA,KAAK,GAAK,CAAA,KAAK,CAAC,UAAU,IAAI,EAAE,CAAA,MAA3B,CAA4B;IACzC,IAAA,iBAAS,EAAC;QACN,IAAI,KAAK,KAAK,KAAK,CAAC,UAAU,CAAC,KAAK;YAAE,OAAO;QAC7C,KAAK,CAAC,QAAQ,uBACP,KAAK,CAAC,UAAU,KACnB,KAAK,OAAA,IACP,CAAC;IACP,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACZ,OAAO,6DAAK,CAAC;AACjB,CAAC,CAAC;AAVW,QAAA,aAAa,iBAUxB"}
@@ -10,6 +10,29 @@ var __assign = (this && this.__assign) || function () {
10
10
  };
11
11
  return __assign.apply(this, arguments);
12
12
  };
13
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ var desc = Object.getOwnPropertyDescriptor(m, k);
16
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
+ desc = { enumerable: true, get: function() { return m[k]; } };
18
+ }
19
+ Object.defineProperty(o, k2, desc);
20
+ }) : (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ o[k2] = m[k];
23
+ }));
24
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
26
+ }) : function(o, v) {
27
+ o["default"] = v;
28
+ });
29
+ var __importStar = (this && this.__importStar) || function (mod) {
30
+ if (mod && mod.__esModule) return mod;
31
+ var result = {};
32
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
+ __setModuleDefault(result, mod);
34
+ return result;
35
+ };
13
36
  var __rest = (this && this.__rest) || function (s, e) {
14
37
  var t = {};
15
38
  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
@@ -21,32 +44,32 @@ var __rest = (this && this.__rest) || function (s, e) {
21
44
  }
22
45
  return t;
23
46
  };
24
- var __importDefault = (this && this.__importDefault) || function (mod) {
25
- return (mod && mod.__esModule) ? mod : { "default": mod };
26
- };
27
47
  Object.defineProperty(exports, "__esModule", { value: true });
28
48
  exports.FormBuilder = void 0;
29
49
  var FormToCode_1 = require("./FormToCode");
30
50
  var renderer_1 = require("./renderer");
31
51
  var graphql_js_tree_1 = require("graphql-js-tree");
32
- var react_1 = __importDefault(require("react"));
52
+ var react_1 = __importStar(require("react"));
33
53
  var FormBuilder = function (_a) {
34
- var formFile = _a.formFile, onChange = _a.onChange, props = __rest(_a, ["formFile", "onChange"]);
54
+ var formFile = _a.formFile, onChange = _a.onChange, schema = _a.schema, props = __rest(_a, ["formFile", "onChange", "schema"]);
35
55
  var _b = formFile.widgets, widgets = _b === void 0 ? {} : _b, _c = formFile.forms, forms = _c === void 0 ? {} : _c;
36
56
  var formFields = Object.fromEntries(Object.entries(forms).filter(function (_a) {
37
57
  var _b;
38
58
  var v = _a[1];
39
59
  return !!((_b = v.node.args) === null || _b === void 0 ? void 0 : _b.length) && v.node.data.type === graphql_js_tree_1.TypeSystemDefinition.FieldDefinition;
40
60
  }));
61
+ var nodes = (0, react_1.useMemo)(function () {
62
+ return graphql_js_tree_1.Parser.parse(schema).nodes;
63
+ }, [schema]);
41
64
  return (react_1.default.createElement(react_1.default.Fragment, null, Object.keys(formFields).map(function (key) {
42
- return (react_1.default.createElement(renderer_1.Renderer, __assign({}, props, { key: key, changeWidget: function (widgetData, path) {
65
+ return (react_1.default.createElement(renderer_1.Renderer, __assign({}, props, { key: key, nodes: nodes, changeWidget: function (widgetData, path) {
43
66
  var _a;
44
- var query = (0, FormToCode_1.formToGql)({ fields: forms, nodes: props.nodes });
67
+ var query = (0, FormToCode_1.formToGql)({ fields: forms, nodes: nodes });
45
68
  onChange(__assign(__assign({}, formFile), { widgets: __assign(__assign({}, widgets), (_a = {}, _a[path] = widgetData, _a)) }), query);
46
69
  }, widgets: widgets, currentPath: key, formObject: formFields[key], onChange: function (changedForm) {
47
70
  var _a;
48
71
  var updatedFile = __assign(__assign({}, formFile), { forms: __assign(__assign({}, forms), (_a = {}, _a[key] = changedForm, _a)) });
49
- var query = (0, FormToCode_1.formToGql)({ fields: updatedFile.forms, nodes: props.nodes });
72
+ var query = (0, FormToCode_1.formToGql)({ fields: updatedFile.forms, nodes: nodes });
50
73
  onChange(updatedFile, query);
51
74
  }, f: formFields[key].node })));
52
75
  })));
@@ -1 +1 @@
1
- {"version":3,"file":"FormBuilder.js","sourceRoot":"","sources":["../src/FormBuilder.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAAyC;AAEzC,uCAAsC;AACtC,mDAAuD;AACvD,gDAA0B;AAEnB,IAAM,WAAW,GAA+B,UAAC,EAAgC;IAA9B,IAAA,QAAQ,cAAA,EAAE,QAAQ,cAAA,EAAK,KAAK,cAA9B,wBAAgC,CAAF;IAC1E,IAAA,KAA6B,QAAQ,QAAzB,EAAZ,OAAO,mBAAG,EAAE,KAAA,EAAE,KAAe,QAAQ,MAAb,EAAV,KAAK,mBAAG,EAAE,KAAA,CAAc;IAC9C,IAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CACjC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CACxB,UAAC,EAAK;;YAAF,CAAC,QAAA;QAAM,OAAA,CAAC,CAAC,CAAA,MAAA,CAAC,CAAC,IAAI,CAAC,IAAI,0CAAE,MAAM,CAAA,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,sCAAoB,CAAC,eAAe,CAAA;KAAA,CAChG,CACJ,CAAC;IACF,OAAO,CACH,8DACK,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,UAAC,GAAG;QAC7B,OAAO,CACH,8BAAC,mBAAQ,eACD,KAAK,IACT,GAAG,EAAE,GAAG,EACR,YAAY,EAAE,UAAC,UAAU,EAAE,IAAI;;gBAC3B,IAAM,KAAK,GAAG,IAAA,sBAAS,EAAC,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;gBAC/D,QAAQ,uBAEG,QAAQ,KACX,OAAO,wBACA,OAAO,gBACT,IAAI,IAAG,UAAU,WAG1B,KAAK,CACR,CAAC;YACN,CAAC,EACD,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,GAAG,EAChB,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,EAC3B,QAAQ,EAAE,UAAC,WAAuB;;gBAC9B,IAAM,WAAW,yBACV,QAAQ,KACX,KAAK,wBACE,KAAK,gBACP,GAAG,IAAG,WAAW,SAEzB,CAAC;gBACF,IAAM,KAAK,GAAG,IAAA,sBAAS,EAAC,EAAE,MAAM,EAAE,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;gBAC3E,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;YACjC,CAAC,EACD,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,IACzB,CACL,CAAC;IACN,CAAC,CAAC,CACH,CACN,CAAC;AACN,CAAC,CAAC;AA/CW,QAAA,WAAW,eA+CtB"}
1
+ {"version":3,"file":"FormBuilder.js","sourceRoot":"","sources":["../src/FormBuilder.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAAyC;AAEzC,uCAAsC;AACtC,mDAA+D;AAC/D,6CAAuC;AAEhC,IAAM,WAAW,GAA+B,UAAC,EAAwC;IAAtC,IAAA,QAAQ,cAAA,EAAE,QAAQ,cAAA,EAAE,MAAM,YAAA,EAAK,KAAK,cAAtC,kCAAwC,CAAF;IAClF,IAAA,KAA6B,QAAQ,QAAzB,EAAZ,OAAO,mBAAG,EAAE,KAAA,EAAE,KAAe,QAAQ,MAAb,EAAV,KAAK,mBAAG,EAAE,KAAA,CAAc;IAC9C,IAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CACjC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CACxB,UAAC,EAAK;;YAAF,CAAC,QAAA;QAAM,OAAA,CAAC,CAAC,CAAA,MAAA,CAAC,CAAC,IAAI,CAAC,IAAI,0CAAE,MAAM,CAAA,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,sCAAoB,CAAC,eAAe,CAAA;KAAA,CAChG,CACJ,CAAC;IACF,IAAM,KAAK,GAAG,IAAA,eAAO,EAAC;QAClB,OAAO,wBAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC;IACtC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IACb,OAAO,CACH,8DACK,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,UAAC,GAAG;QAC7B,OAAO,CACH,8BAAC,mBAAQ,eACD,KAAK,IACT,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,UAAC,UAAU,EAAE,IAAI;;gBAC3B,IAAM,KAAK,GAAG,IAAA,sBAAS,EAAC,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,OAAA,EAAE,CAAC,CAAC;gBAClD,QAAQ,uBAEG,QAAQ,KACX,OAAO,wBACA,OAAO,gBACT,IAAI,IAAG,UAAU,WAG1B,KAAK,CACR,CAAC;YACN,CAAC,EACD,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,GAAG,EAChB,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,EAC3B,QAAQ,EAAE,UAAC,WAAuB;;gBAC9B,IAAM,WAAW,yBACV,QAAQ,KACX,KAAK,wBACE,KAAK,gBACP,GAAG,IAAG,WAAW,SAEzB,CAAC;gBACF,IAAM,KAAK,GAAG,IAAA,sBAAS,EAAC,EAAE,MAAM,EAAE,WAAW,CAAC,KAAK,EAAE,KAAK,OAAA,EAAE,CAAC,CAAC;gBAC9D,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;YACjC,CAAC,EACD,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,IACzB,CACL,CAAC;IACN,CAAC,CAAC,CACH,CACN,CAAC;AACN,CAAC,CAAC;AAnDW,QAAA,WAAW,eAmDtB"}
@@ -10,6 +10,29 @@ var __assign = (this && this.__assign) || function () {
10
10
  };
11
11
  return __assign.apply(this, arguments);
12
12
  };
13
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ var desc = Object.getOwnPropertyDescriptor(m, k);
16
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
+ desc = { enumerable: true, get: function() { return m[k]; } };
18
+ }
19
+ Object.defineProperty(o, k2, desc);
20
+ }) : (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ o[k2] = m[k];
23
+ }));
24
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
26
+ }) : function(o, v) {
27
+ o["default"] = v;
28
+ });
29
+ var __importStar = (this && this.__importStar) || function (mod) {
30
+ if (mod && mod.__esModule) return mod;
31
+ var result = {};
32
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
+ __setModuleDefault(result, mod);
34
+ return result;
35
+ };
13
36
  var __rest = (this && this.__rest) || function (s, e) {
14
37
  var t = {};
15
38
  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
@@ -21,30 +44,30 @@ var __rest = (this && this.__rest) || function (s, e) {
21
44
  }
22
45
  return t;
23
46
  };
24
- var __importDefault = (this && this.__importDefault) || function (mod) {
25
- return (mod && mod.__esModule) ? mod : { "default": mod };
26
- };
27
47
  Object.defineProperty(exports, "__esModule", { value: true });
28
48
  exports.FormDisplayer = void 0;
29
49
  var FormToCode_1 = require("./FormToCode");
30
50
  var renderer_1 = require("./renderer");
31
51
  var graphql_js_tree_1 = require("graphql-js-tree");
32
- var react_1 = __importDefault(require("react"));
52
+ var react_1 = __importStar(require("react"));
33
53
  var FormDisplayer = function (_a) {
34
- var formFile = _a.formFile, onChange = _a.onChange, props = __rest(_a, ["formFile", "onChange"]);
54
+ var formFile = _a.formFile, onChange = _a.onChange, schema = _a.schema, props = __rest(_a, ["formFile", "onChange", "schema"]);
35
55
  var _b = formFile.widgets, widgets = _b === void 0 ? {} : _b, _c = formFile.forms, forms = _c === void 0 ? {} : _c;
36
56
  var formFields = Object.fromEntries(Object.entries(forms).filter(function (_a) {
37
57
  var _b;
38
58
  var v = _a[1];
39
59
  return !!((_b = v.node.args) === null || _b === void 0 ? void 0 : _b.length) && v.node.data.type === graphql_js_tree_1.TypeSystemDefinition.FieldDefinition;
40
60
  }));
61
+ var nodes = (0, react_1.useMemo)(function () {
62
+ return graphql_js_tree_1.Parser.parse(schema).nodes;
63
+ }, [schema]);
41
64
  return (react_1.default.createElement(react_1.default.Fragment, null, Object.keys(formFields).map(function (key) {
42
- return (react_1.default.createElement(renderer_1.Renderer, __assign({}, props, { key: key, widgets: widgets, changeWidget: function () {
65
+ return (react_1.default.createElement(renderer_1.Renderer, __assign({}, props, { nodes: nodes, key: key, widgets: widgets, changeWidget: function () {
43
66
  return;
44
67
  }, currentPath: key, formObject: formFields[key], onChange: function (changedForm) {
45
68
  var _a;
46
69
  var updatedFile = __assign(__assign({}, formFile), { forms: __assign(__assign({}, forms), (_a = {}, _a[key] = changedForm, _a)) });
47
- var query = (0, FormToCode_1.formToGql)({ fields: updatedFile.forms, nodes: props.nodes });
70
+ var query = (0, FormToCode_1.formToGql)({ fields: updatedFile.forms, nodes: nodes });
48
71
  onChange(updatedFile, query);
49
72
  }, f: formFields[key].node })));
50
73
  })));
@@ -1 +1 @@
1
- {"version":3,"file":"FormDisplayer.js","sourceRoot":"","sources":["../src/FormDisplayer.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAAyC;AAEzC,uCAAsC;AACtC,mDAAuD;AACvD,gDAA0B;AAEnB,IAAM,aAAa,GAAiC,UAAC,EAAgC;IAA9B,IAAA,QAAQ,cAAA,EAAE,QAAQ,cAAA,EAAK,KAAK,cAA9B,wBAAgC,CAAF;IAC9E,IAAA,KAA6B,QAAQ,QAAzB,EAAZ,OAAO,mBAAG,EAAE,KAAA,EAAE,KAAe,QAAQ,MAAb,EAAV,KAAK,mBAAG,EAAE,KAAA,CAAc;IAC9C,IAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CACjC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CACxB,UAAC,EAAK;;YAAF,CAAC,QAAA;QAAM,OAAA,CAAC,CAAC,CAAA,MAAA,CAAC,CAAC,IAAI,CAAC,IAAI,0CAAE,MAAM,CAAA,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,sCAAoB,CAAC,eAAe,CAAA;KAAA,CAChG,CACJ,CAAC;IACF,OAAO,CACH,8DACK,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,UAAC,GAAG;QAC7B,OAAO,CACH,8BAAC,mBAAQ,eACD,KAAK,IACT,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE;gBACV,OAAO;YACX,CAAC,EACD,WAAW,EAAE,GAAG,EAChB,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,EAC3B,QAAQ,EAAE,UAAC,WAAuB;;gBAC9B,IAAM,WAAW,yBACV,QAAQ,KACX,KAAK,wBACE,KAAK,gBACP,GAAG,IAAG,WAAW,SAEzB,CAAC;gBACF,IAAM,KAAK,GAAG,IAAA,sBAAS,EAAC,EAAE,MAAM,EAAE,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;gBAC3E,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;YACjC,CAAC,EACD,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,IACzB,CACL,CAAC;IACN,CAAC,CAAC,CACH,CACN,CAAC;AACN,CAAC,CAAC;AArCW,QAAA,aAAa,iBAqCxB"}
1
+ {"version":3,"file":"FormDisplayer.js","sourceRoot":"","sources":["../src/FormDisplayer.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAAyC;AAEzC,uCAAsC;AACtC,mDAA+D;AAC/D,6CAAuC;AAEhC,IAAM,aAAa,GAAiC,UAAC,EAAwC;IAAtC,IAAA,QAAQ,cAAA,EAAE,QAAQ,cAAA,EAAE,MAAM,YAAA,EAAK,KAAK,cAAtC,kCAAwC,CAAF;IACtF,IAAA,KAA6B,QAAQ,QAAzB,EAAZ,OAAO,mBAAG,EAAE,KAAA,EAAE,KAAe,QAAQ,MAAb,EAAV,KAAK,mBAAG,EAAE,KAAA,CAAc;IAC9C,IAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CACjC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CACxB,UAAC,EAAK;;YAAF,CAAC,QAAA;QAAM,OAAA,CAAC,CAAC,CAAA,MAAA,CAAC,CAAC,IAAI,CAAC,IAAI,0CAAE,MAAM,CAAA,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,sCAAoB,CAAC,eAAe,CAAA;KAAA,CAChG,CACJ,CAAC;IACF,IAAM,KAAK,GAAG,IAAA,eAAO,EAAC;QAClB,OAAO,wBAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC;IACtC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IACb,OAAO,CACH,8DACK,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,UAAC,GAAG;QAC7B,OAAO,CACH,8BAAC,mBAAQ,eACD,KAAK,IACT,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE;gBACV,OAAO;YACX,CAAC,EACD,WAAW,EAAE,GAAG,EAChB,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,EAC3B,QAAQ,EAAE,UAAC,WAAuB;;gBAC9B,IAAM,WAAW,yBACV,QAAQ,KACX,KAAK,wBACE,KAAK,gBACP,GAAG,IAAG,WAAW,SAEzB,CAAC;gBACF,IAAM,KAAK,GAAG,IAAA,sBAAS,EAAC,EAAE,MAAM,EAAE,WAAW,CAAC,KAAK,EAAE,KAAK,OAAA,EAAE,CAAC,CAAC;gBAC9D,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;YACjC,CAAC,EACD,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,IACzB,CACL,CAAC;IACN,CAAC,CAAC,CACH,CACN,CAAC;AACN,CAAC,CAAC;AAzCW,QAAA,aAAa,iBAyCxB"}
package/lib/models.d.ts CHANGED
@@ -39,6 +39,7 @@ export declare type PassedFormProps<WidgetData = ReturnedDictType> = {
39
39
  widgetComponents: WidgetType[];
40
40
  widgetVariants?: WidgetVariantType[];
41
41
  currentPath: string;
42
+ presetValues?: Record<string, any>;
42
43
  widgets?: SavedWidgets;
43
44
  widgetData?: WidgetData;
44
45
  errors?: Errors;
@@ -58,12 +59,14 @@ export declare type FormFile = {
58
59
  widgets?: SavedWidgets;
59
60
  forms?: SavedForms;
60
61
  };
61
- export declare type FormBuilderProps = Omit<PassedFormProps, 'formObject' | 'onChange' | 'f' | 'currentPath' | 'changeWidget' | 'widgets'> & {
62
+ export declare type FormBuilderProps = Omit<PassedFormProps, 'formObject' | 'onChange' | 'f' | 'currentPath' | 'changeWidget' | 'widgets' | 'nodes'> & {
62
63
  formFile: FormFile;
64
+ schema: string;
63
65
  onChange: (o: FormFile, query: string) => void;
64
66
  };
65
- export declare type FormDisplayerProps = Omit<PassedFormProps, 'formObject' | 'onChange' | 'f' | 'currentPath' | 'changeWidget' | 'widgets'> & {
67
+ export declare type FormDisplayerProps = Omit<PassedFormProps, 'formObject' | 'onChange' | 'f' | 'currentPath' | 'changeWidget' | 'widgets' | 'nodes'> & {
66
68
  formFile: FormFile;
69
+ schema: string;
67
70
  onChange: (o: FormFile, query: string) => void;
68
71
  };
69
72
  export declare type FormLibraryProps = Omit<FormDisplayerProps, 'required' | 'components'>;
@@ -1,11 +1,11 @@
1
- import { Errs, FormFile, FormObject, FormValue, PassedFormProps } from "./models";
2
- import { ParserField } from 'graphql-js-tree';
1
+ import { Errs, FormFile, FormValue, PassedFormProps } from "./models";
3
2
  export declare const getWidgetFromProps: (props: PassedFormProps) => {
4
3
  data: any;
5
4
  widget: import("./models").WidgetType;
6
5
  } | undefined;
7
6
  export declare const getErrorFromProps: (props: PassedFormProps) => string | undefined;
8
- export declare const validateValue: (f: FormValue, nodes: ParserField[], path: string, pushErrors: (path: string, value: Errs) => void) => void;
9
- export declare const validateForm: (v: FormFile, nodes: ParserField[], errors: Record<Errs, string>) => Record<string, string>;
10
- export declare const eraseValue: (f: FormObject, nodes: ParserField[]) => FormObject;
11
- export declare const eraseForm: (v: FormFile, nodes: ParserField[]) => FormFile;
7
+ export declare const graphqlFormUtils: (schema: string) => {
8
+ eraseForm: (v: FormFile) => FormFile;
9
+ validateForm: (v: FormFile, errors: Record<Errs, string>) => Record<string, string>;
10
+ validateValue: (f: FormValue, path: string, pushErrors: (path: string, value: Errs) => void) => void;
11
+ };
package/lib/outsideUse.js CHANGED
@@ -11,7 +11,7 @@ var __assign = (this && this.__assign) || function () {
11
11
  return __assign.apply(this, arguments);
12
12
  };
13
13
  Object.defineProperty(exports, "__esModule", { value: true });
14
- exports.eraseForm = exports.eraseValue = exports.validateForm = exports.validateValue = exports.getErrorFromProps = exports.getWidgetFromProps = void 0;
14
+ exports.graphqlFormUtils = exports.getErrorFromProps = exports.getWidgetFromProps = void 0;
15
15
  var models_1 = require("./models");
16
16
  var graphql_js_tree_1 = require("graphql-js-tree");
17
17
  var getWidgetFromProps = function (props) {
@@ -43,102 +43,105 @@ var getErrorFromProps = function (props) {
43
43
  return (_a = props.errors) === null || _a === void 0 ? void 0 : _a[props.currentPath];
44
44
  };
45
45
  exports.getErrorFromProps = getErrorFromProps;
46
- var validateValue = function (f, nodes, path, pushErrors) {
47
- if (f === null ||
48
- typeof f === 'string' ||
49
- typeof f === 'boolean' ||
50
- typeof f === 'number' ||
51
- typeof f === 'undefined') {
52
- return;
53
- }
54
- if ('node' in f &&
55
- typeof f.node === 'object' &&
56
- f.node !== null &&
57
- 'args' in f.node &&
58
- 'data' in f.node &&
59
- typeof f.node.data === 'object' &&
60
- !!f.node.data &&
61
- 'type' in f.node.data &&
62
- 'directives' in f.node) {
63
- var _a = f, node = _a.node, value = _a.value;
64
- console.log("Validating ".concat(node.name), node);
65
- if (node.data.type === graphql_js_tree_1.ValueDefinition.InputValueDefinition) {
66
- if (node.type.fieldType.type === graphql_js_tree_1.Options.required &&
67
- (0, graphql_js_tree_1.getTypeName)(node.type.fieldType) !== graphql_js_tree_1.ScalarTypes.Boolean) {
68
- if (typeof value === 'undefined' || value === '') {
69
- pushErrors(path, models_1.Errs.REQUIRED);
70
- }
71
- if (Array.isArray(value)) {
72
- for (var _i = 0, value_1 = value; _i < value_1.length; _i++) {
73
- var v = value_1[_i];
74
- console.log(v);
75
- (0, exports.validateValue)(v, nodes, path, pushErrors);
46
+ var graphqlFormUtils = function (schema) {
47
+ var nodes = graphql_js_tree_1.Parser.parse(schema).nodes;
48
+ var validateValue = function (f, path, pushErrors) {
49
+ if (f === null ||
50
+ typeof f === 'string' ||
51
+ typeof f === 'boolean' ||
52
+ typeof f === 'number' ||
53
+ typeof f === 'undefined') {
54
+ return;
55
+ }
56
+ if ('node' in f &&
57
+ typeof f.node === 'object' &&
58
+ f.node !== null &&
59
+ 'args' in f.node &&
60
+ 'data' in f.node &&
61
+ typeof f.node.data === 'object' &&
62
+ !!f.node.data &&
63
+ 'type' in f.node.data &&
64
+ 'directives' in f.node) {
65
+ var _a = f, node = _a.node, value = _a.value;
66
+ if (node.data.type === graphql_js_tree_1.ValueDefinition.InputValueDefinition) {
67
+ if (node.type.fieldType.type === graphql_js_tree_1.Options.required &&
68
+ (0, graphql_js_tree_1.getTypeName)(node.type.fieldType) !== graphql_js_tree_1.ScalarTypes.Boolean) {
69
+ if (typeof value === 'undefined' || value === '') {
70
+ pushErrors(path, models_1.Errs.REQUIRED);
71
+ }
72
+ if (Array.isArray(value)) {
73
+ for (var _i = 0, value_1 = value; _i < value_1.length; _i++) {
74
+ var v = value_1[_i];
75
+ validateValue(v, path, pushErrors);
76
+ }
76
77
  }
77
78
  }
78
79
  }
79
80
  }
80
- }
81
- if ('value' in f && !!f.value) {
82
- var value = f.value;
83
- if (Array.isArray(value)) {
84
- value.map(function (vv) { return (0, exports.validateValue)(vv, nodes, path, pushErrors); });
85
- return;
81
+ if ('value' in f && !!f.value) {
82
+ var value = f.value;
83
+ if (Array.isArray(value)) {
84
+ value.map(function (vv) { return validateValue(vv, path, pushErrors); });
85
+ return;
86
+ }
87
+ if (typeof value === 'object' && !!value) {
88
+ Object.entries(value).forEach(function (_a) {
89
+ var k = _a[0], v = _a[1];
90
+ return validateValue(v, "".concat(path, ".").concat(k), pushErrors);
91
+ });
92
+ return;
93
+ }
86
94
  }
87
- if (typeof value === 'object' && !!value) {
88
- Object.entries(value).forEach(function (_a) {
89
- var k = _a[0], v = _a[1];
90
- return (0, exports.validateValue)(v, nodes, "".concat(path, ".").concat(k), pushErrors);
95
+ return;
96
+ };
97
+ var validateForm = function (v, errors) {
98
+ var errorDict = {};
99
+ if (!v.forms)
100
+ return errorDict;
101
+ Object.entries(v.forms).forEach(function (_a) {
102
+ var k = _a[0], val = _a[1];
103
+ validateValue(val, k, function (p, err) {
104
+ errorDict[p] = errors[err];
91
105
  });
92
- return;
93
- }
94
- }
95
- return;
96
- };
97
- exports.validateValue = validateValue;
98
- var validateForm = function (v, nodes, errors) {
99
- var errorDict = {};
100
- if (!v.forms)
101
- return errorDict;
102
- Object.entries(v.forms).forEach(function (_a) {
103
- var k = _a[0], val = _a[1];
104
- (0, exports.validateValue)(val, nodes, k, function (p, err) {
105
- errorDict[p] = errors[err];
106
106
  });
107
- });
108
- return errorDict;
109
- };
110
- exports.validateForm = validateForm;
111
- var eraseValue = function (f, nodes) {
112
- var value = f.value, node = f.node;
113
- var seekNode = nodes.find(function (n) { return n.name === (0, graphql_js_tree_1.getTypeName)(node.type.fieldType); });
114
- if (!seekNode ||
115
- (seekNode === null || seekNode === void 0 ? void 0 : seekNode.data.type) === graphql_js_tree_1.TypeDefinition.EnumTypeDefinition ||
116
- (seekNode === null || seekNode === void 0 ? void 0 : seekNode.data.type) === graphql_js_tree_1.TypeDefinition.ScalarTypeDefinition) {
107
+ return errorDict;
108
+ };
109
+ var eraseValue = function (f) {
110
+ var value = f.value, node = f.node;
111
+ var seekNode = nodes.find(function (n) { return n.name === (0, graphql_js_tree_1.getTypeName)(node.type.fieldType); });
112
+ if (!seekNode ||
113
+ (seekNode === null || seekNode === void 0 ? void 0 : seekNode.data.type) === graphql_js_tree_1.TypeDefinition.EnumTypeDefinition ||
114
+ (seekNode === null || seekNode === void 0 ? void 0 : seekNode.data.type) === graphql_js_tree_1.TypeDefinition.ScalarTypeDefinition) {
115
+ return __assign(__assign({}, f), { value: undefined });
116
+ }
117
+ if ((seekNode || node.data.type === graphql_js_tree_1.TypeSystemDefinition.FieldDefinition) && value) {
118
+ return __assign(__assign({}, f), { value: Object.fromEntries(Object.entries(value).map(function (_a) {
119
+ var k = _a[0], v = _a[1];
120
+ return [k, eraseValue(v)];
121
+ })) });
122
+ }
117
123
  return __assign(__assign({}, f), { value: undefined });
118
- }
119
- if ((seekNode || node.data.type === graphql_js_tree_1.TypeSystemDefinition.FieldDefinition) && value) {
120
- return __assign(__assign({}, f), { value: Object.fromEntries(Object.entries(value).map(function (_a) {
121
- var k = _a[0], v = _a[1];
122
- return [k, (0, exports.eraseValue)(v, nodes)];
123
- })) });
124
- }
125
- return __assign(__assign({}, f), { value: undefined });
126
- };
127
- exports.eraseValue = eraseValue;
128
- var eraseForm = function (v, nodes) {
129
- if (!v.forms)
130
- return v;
131
- var forms = Object.entries(v.forms)
132
- .map(function (_a) {
133
- var k = _a[0], val = _a[1];
134
- return [k, (0, exports.eraseValue)(val, nodes)];
135
- })
136
- .reduce(function (a, _a) {
137
- var _b;
138
- var k = _a[0], val = _a[1];
139
- return (__assign(__assign({}, a), (_b = {}, _b[k] = val, _b)));
140
- }, {});
141
- return __assign(__assign({}, v), { forms: forms });
124
+ };
125
+ var eraseForm = function (v) {
126
+ if (!v.forms)
127
+ return v;
128
+ var forms = Object.entries(v.forms)
129
+ .map(function (_a) {
130
+ var k = _a[0], val = _a[1];
131
+ return [k, eraseValue(val)];
132
+ })
133
+ .reduce(function (a, _a) {
134
+ var _b;
135
+ var k = _a[0], val = _a[1];
136
+ return (__assign(__assign({}, a), (_b = {}, _b[k] = val, _b)));
137
+ }, {});
138
+ return __assign(__assign({}, v), { forms: forms });
139
+ };
140
+ return {
141
+ eraseForm: eraseForm,
142
+ validateForm: validateForm,
143
+ validateValue: validateValue,
144
+ };
142
145
  };
143
- exports.eraseForm = eraseForm;
146
+ exports.graphqlFormUtils = graphqlFormUtils;
144
147
  //# sourceMappingURL=outsideUse.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"outsideUse.js","sourceRoot":"","sources":["../src/outsideUse.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"outsideUse.js","sourceRoot":"","sources":["../src/outsideUse.tsx"],"names":[],"mappings":"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"}
@@ -46,11 +46,12 @@ var __rest = (this && this.__rest) || function (s, e) {
46
46
  };
47
47
  Object.defineProperty(exports, "__esModule", { value: true });
48
48
  exports.Renderer = void 0;
49
+ var InjectedValue_1 = require("../BuiltInFields/InjectedValue");
49
50
  var fields_1 = require("./fields");
50
51
  var graphql_js_tree_1 = require("graphql-js-tree");
51
52
  var react_1 = __importStar(require("react"));
52
53
  var Renderer = function (props) {
53
- var formObject = props.formObject, f = props.f, nodes = props.nodes, _a = props.components, NullField = _a.NullField, FormLabel = _a.FormLabel, FormField = _a.FormField;
54
+ var formObject = props.formObject, f = props.f, nodes = props.nodes, constants = props.presetValues, _a = props.components, NullField = _a.NullField, FormLabel = _a.FormLabel, FormField = _a.FormField;
54
55
  var children = props.children, allProps = __rest(props, ["children"]);
55
56
  var seekNode = nodes.find(function (n) { return n.name === (0, graphql_js_tree_1.getTypeName)(f.type.fieldType); });
56
57
  var isInput = (seekNode === null || seekNode === void 0 ? void 0 : seekNode.data.type) === graphql_js_tree_1.TypeDefinition.InputObjectTypeDefinition;
@@ -59,6 +60,12 @@ var Renderer = function (props) {
59
60
  if (f.type.fieldType.type === graphql_js_tree_1.Options.required) {
60
61
  return (react_1.default.createElement(exports.Renderer, __assign({}, props, { f: __assign(__assign({}, f), { type: __assign(__assign({}, f.type), { fieldType: __assign({}, f.type.fieldType.nest) }) }), required: true })));
61
62
  }
63
+ var hasOverride = constants === null || constants === void 0 ? void 0 : constants[props.currentPath];
64
+ if (hasOverride) {
65
+ return (react_1.default.createElement(InjectedValue_1.InjectedValue, __assign({}, props, { widgetData: {
66
+ value: hasOverride,
67
+ } })));
68
+ }
62
69
  return (react_1.default.createElement(FormField, __assign({}, allProps),
63
70
  react_1.default.createElement(FormLabel, __assign({}, allProps, { open: open, setOpen: setOpen, children: children })),
64
71
  formObject.value === null ? (react_1.default.createElement(NullField, __assign({}, allProps))) : (react_1.default.createElement(react_1.default.Fragment, null, (!canBeOpened || open) && react_1.default.createElement(fields_1.Fields, __assign({}, allProps))))));
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/renderer/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,mCAA2C;AAC3C,mDAA6F;AAC7F,6CAAwC;AAEjC,IAAM,QAAQ,GAA8B,UAAC,KAAK;IAEjD,IAAA,UAAU,GAIV,KAAK,WAJK,EACV,CAAC,GAGD,KAAK,EAHJ,EACD,KAAK,GAEL,KAAK,MAFA,EACL,KACA,KAAK,WAD0C,EAAjC,SAAS,eAAA,EAAE,SAAS,eAAA,EAAE,SAAS,eAAE,CACzC;IACF,IAAA,QAAQ,GAAkB,KAAK,SAAvB,EAAK,QAAQ,UAAK,KAAK,EAAjC,YAAyB,CAAF,CAAW;IACxC,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,IAAM,OAAO,GAAG,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,CAAC,IAAI,MAAK,gCAAc,CAAC,yBAAyB,CAAC;IACjF,IAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,sCAAoB,CAAC,eAAe,IAAI,OAAO,CAAC;IACpF,IAAA,KAAkB,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,sCAAoB,CAAC,eAAe,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAvG,IAAI,QAAA,EAAE,OAAO,QAA0F,CAAC;IAC/G,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,yBAAO,CAAC,QAAQ,EAAE;QAC5C,OAAO,CACH,8BAAC,gBAAQ,eACD,KAAK,IACT,CAAC,wBACM,CAAC,KACJ,IAAI,wBAAO,CAAC,CAAC,IAAI,KAAE,SAAS,eAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,SAE5D,QAAQ,EAAE,IAAI,IAChB,CACL,CAAC;KACL;IACD,OAAO,CACH,8BAAC,SAAS,eAAK,QAAQ;QACnB,8BAAC,SAAS,eAAK,QAAQ,IAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,IAAI;QAC5E,UAAU,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,CACzB,8BAAC,SAAS,eAAK,QAAQ,EAAI,CAC9B,CAAC,CAAC,CAAC,CACA,8DAAG,CAAC,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,8BAAC,eAAM,eAAK,QAAQ,EAAI,CAAI,CAC5D,CACO,CACf,CAAC;AACN,CAAC,CAAC;AAlCW,QAAA,QAAQ,YAkCnB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/renderer/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gEAA8D;AAE9D,mCAA2C;AAC3C,mDAA6F;AAC7F,6CAAwC;AAEjC,IAAM,QAAQ,GAA8B,UAAC,KAAK;IAEjD,IAAA,UAAU,GAKV,KAAK,WALK,EACV,CAAC,GAID,KAAK,EAJJ,EACD,KAAK,GAGL,KAAK,MAHA,EACS,SAAS,GAEvB,KAAK,aAFkB,EACvB,KACA,KAAK,WAD0C,EAAjC,SAAS,eAAA,EAAE,SAAS,eAAA,EAAE,SAAS,eAAE,CACzC;IACF,IAAA,QAAQ,GAAkB,KAAK,SAAvB,EAAK,QAAQ,UAAK,KAAK,EAAjC,YAAyB,CAAF,CAAW;IACxC,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,IAAM,OAAO,GAAG,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,CAAC,IAAI,MAAK,gCAAc,CAAC,yBAAyB,CAAC;IACjF,IAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,sCAAoB,CAAC,eAAe,IAAI,OAAO,CAAC;IACpF,IAAA,KAAkB,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,sCAAoB,CAAC,eAAe,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAvG,IAAI,QAAA,EAAE,OAAO,QAA0F,CAAC;IAC/G,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,yBAAO,CAAC,QAAQ,EAAE;QAC5C,OAAO,CACH,8BAAC,gBAAQ,eACD,KAAK,IACT,CAAC,wBACM,CAAC,KACJ,IAAI,wBAAO,CAAC,CAAC,IAAI,KAAE,SAAS,eAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,SAE5D,QAAQ,EAAE,IAAI,IAChB,CACL,CAAC;KACL;IACD,IAAM,WAAW,GAAG,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAG,KAAK,CAAC,WAAW,CAAC,CAAC;IACnD,IAAI,WAAW,EAAE;QACb,OAAO,CACH,8BAAC,6BAAa,eACN,KAAK,IACT,UAAU,EAAE;gBACR,KAAK,EAAE,WAAW;aACrB,IACH,CACL,CAAC;KACL;IACD,OAAO,CACH,8BAAC,SAAS,eAAK,QAAQ;QACnB,8BAAC,SAAS,eAAK,QAAQ,IAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,IAAI;QAC5E,UAAU,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,CACzB,8BAAC,SAAS,eAAK,QAAQ,EAAI,CAC9B,CAAC,CAAC,CAAC,CACA,8DAAG,CAAC,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,8BAAC,eAAM,eAAK,QAAQ,EAAI,CAAI,CAC5D,CACO,CACf,CAAC;AACN,CAAC,CAAC;AA9CW,QAAA,QAAQ,YA8CnB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "graphql-form",
3
- "version": "0.0.26",
3
+ "version": "0.1.0",
4
4
  "description": "Easy form creation with GraphQL Editor and React",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {
@@ -0,0 +1,14 @@
1
+ import { PassedFormProps } from '@/models';
2
+ import React, { useEffect } from 'react';
3
+
4
+ export const InjectedValue: React.FC<PassedFormProps<{ value: any }>> = (props) => {
5
+ const { value } = props.widgetData || {};
6
+ useEffect(() => {
7
+ if (value === props.formObject.value) return;
8
+ props.onChange({
9
+ ...props.formObject,
10
+ value,
11
+ });
12
+ }, [value]);
13
+ return <></>;
14
+ };
@@ -1,16 +1,19 @@
1
1
  import { formToGql } from '@/FormToCode';
2
2
  import { FormBuilderProps, FormObject } from '@/models';
3
3
  import { Renderer } from '@/renderer';
4
- import { TypeSystemDefinition } from 'graphql-js-tree';
5
- import React from 'react';
4
+ import { Parser, TypeSystemDefinition } from 'graphql-js-tree';
5
+ import React, { useMemo } from 'react';
6
6
 
7
- export const FormBuilder: React.FC<FormBuilderProps> = ({ formFile, onChange, ...props }) => {
7
+ export const FormBuilder: React.FC<FormBuilderProps> = ({ formFile, onChange, schema, ...props }) => {
8
8
  const { widgets = {}, forms = {} } = formFile;
9
9
  const formFields = Object.fromEntries(
10
10
  Object.entries(forms).filter(
11
11
  ([, v]) => !!v.node.args?.length && v.node.data.type === TypeSystemDefinition.FieldDefinition,
12
12
  ),
13
13
  );
14
+ const nodes = useMemo(() => {
15
+ return Parser.parse(schema).nodes;
16
+ }, [schema]);
14
17
  return (
15
18
  <>
16
19
  {Object.keys(formFields).map((key) => {
@@ -18,8 +21,9 @@ export const FormBuilder: React.FC<FormBuilderProps> = ({ formFile, onChange, ..
18
21
  <Renderer
19
22
  {...props}
20
23
  key={key}
24
+ nodes={nodes}
21
25
  changeWidget={(widgetData, path) => {
22
- const query = formToGql({ fields: forms, nodes: props.nodes });
26
+ const query = formToGql({ fields: forms, nodes });
23
27
  onChange(
24
28
  {
25
29
  ...formFile,
@@ -42,7 +46,7 @@ export const FormBuilder: React.FC<FormBuilderProps> = ({ formFile, onChange, ..
42
46
  [key]: changedForm,
43
47
  },
44
48
  };
45
- const query = formToGql({ fields: updatedFile.forms, nodes: props.nodes });
49
+ const query = formToGql({ fields: updatedFile.forms, nodes });
46
50
  onChange(updatedFile, query);
47
51
  }}
48
52
  f={formFields[key].node}
@@ -1,22 +1,26 @@
1
1
  import { formToGql } from '@/FormToCode';
2
2
  import { FormDisplayerProps, FormObject } from '@/models';
3
3
  import { Renderer } from '@/renderer';
4
- import { TypeSystemDefinition } from 'graphql-js-tree';
5
- import React from 'react';
4
+ import { Parser, TypeSystemDefinition } from 'graphql-js-tree';
5
+ import React, { useMemo } from 'react';
6
6
 
7
- export const FormDisplayer: React.FC<FormDisplayerProps> = ({ formFile, onChange, ...props }) => {
7
+ export const FormDisplayer: React.FC<FormDisplayerProps> = ({ formFile, onChange, schema, ...props }) => {
8
8
  const { widgets = {}, forms = {} } = formFile;
9
9
  const formFields = Object.fromEntries(
10
10
  Object.entries(forms).filter(
11
11
  ([, v]) => !!v.node.args?.length && v.node.data.type === TypeSystemDefinition.FieldDefinition,
12
12
  ),
13
13
  );
14
+ const nodes = useMemo(() => {
15
+ return Parser.parse(schema).nodes;
16
+ }, [schema]);
14
17
  return (
15
18
  <>
16
19
  {Object.keys(formFields).map((key) => {
17
20
  return (
18
21
  <Renderer
19
22
  {...props}
23
+ nodes={nodes}
20
24
  key={key}
21
25
  widgets={widgets}
22
26
  changeWidget={() => {
@@ -32,7 +36,7 @@ export const FormDisplayer: React.FC<FormDisplayerProps> = ({ formFile, onChange
32
36
  [key]: changedForm,
33
37
  },
34
38
  };
35
- const query = formToGql({ fields: updatedFile.forms, nodes: props.nodes });
39
+ const query = formToGql({ fields: updatedFile.forms, nodes });
36
40
  onChange(updatedFile, query);
37
41
  }}
38
42
  f={formFields[key].node}
package/src/models.ts CHANGED
@@ -46,6 +46,7 @@ export type PassedFormProps<WidgetData = ReturnedDictType> = {
46
46
  widgetComponents: WidgetType[];
47
47
  widgetVariants?: WidgetVariantType[];
48
48
  currentPath: string;
49
+ presetValues?: Record<string, any>;
49
50
  widgets?: SavedWidgets;
50
51
  widgetData?: WidgetData;
51
52
  errors?: Errors;
@@ -68,17 +69,19 @@ export type FormFile = {
68
69
 
69
70
  export type FormBuilderProps = Omit<
70
71
  PassedFormProps,
71
- 'formObject' | 'onChange' | 'f' | 'currentPath' | 'changeWidget' | 'widgets'
72
+ 'formObject' | 'onChange' | 'f' | 'currentPath' | 'changeWidget' | 'widgets' | 'nodes'
72
73
  > & {
73
74
  formFile: FormFile;
75
+ schema: string;
74
76
  onChange: (o: FormFile, query: string) => void;
75
77
  };
76
78
 
77
79
  export type FormDisplayerProps = Omit<
78
80
  PassedFormProps,
79
- 'formObject' | 'onChange' | 'f' | 'currentPath' | 'changeWidget' | 'widgets'
81
+ 'formObject' | 'onChange' | 'f' | 'currentPath' | 'changeWidget' | 'widgets' | 'nodes'
80
82
  > & {
81
83
  formFile: FormFile;
84
+ schema: string;
82
85
  onChange: (o: FormFile, query: string) => void;
83
86
  };
84
87
 
@@ -2,7 +2,7 @@ import { Errs, FormFile, FormObject, FormValue, PassedFormProps } from '@/models
2
2
  import {
3
3
  getTypeName,
4
4
  Options,
5
- ParserField,
5
+ Parser,
6
6
  ScalarTypes,
7
7
  TypeDefinition,
8
8
  TypeSystemDefinition,
@@ -38,119 +38,119 @@ export const getErrorFromProps = (props: PassedFormProps) => {
38
38
  return props.errors?.[props.currentPath];
39
39
  };
40
40
 
41
- export const validateValue = (
42
- f: FormValue,
43
- nodes: ParserField[],
44
- path: string,
45
- pushErrors: (path: string, value: Errs) => void,
46
- ) => {
47
- if (
48
- f === null ||
49
- typeof f === 'string' ||
50
- typeof f === 'boolean' ||
51
- typeof f === 'number' ||
52
- typeof f === 'undefined'
53
- ) {
54
- return;
55
- }
56
- if (
57
- 'node' in f &&
58
- typeof f.node === 'object' &&
59
- f.node !== null &&
60
- 'args' in f.node &&
61
- 'data' in f.node &&
62
- typeof f.node.data === 'object' &&
63
- !!f.node.data &&
64
- 'type' in f.node.data &&
65
- 'directives' in f.node
66
- ) {
67
- const { node, value } = f as FormObject;
68
- console.log(`Validating ${node.name}`, node);
69
- if (node.data.type === ValueDefinition.InputValueDefinition) {
70
- if (
71
- node.type.fieldType.type === Options.required &&
72
- getTypeName(node.type.fieldType) !== ScalarTypes.Boolean
73
- ) {
74
- if (typeof value === 'undefined' || value === '') {
75
- pushErrors(path, Errs.REQUIRED);
76
- }
77
- if (Array.isArray(value)) {
78
- for (const v of value) {
79
- console.log(v);
80
- validateValue(v, nodes, path, pushErrors);
41
+ export const graphqlFormUtils = (schema: string) => {
42
+ const nodes = Parser.parse(schema).nodes;
43
+
44
+ const validateValue = (f: FormValue, path: string, pushErrors: (path: string, value: Errs) => void) => {
45
+ if (
46
+ f === null ||
47
+ typeof f === 'string' ||
48
+ typeof f === 'boolean' ||
49
+ typeof f === 'number' ||
50
+ typeof f === 'undefined'
51
+ ) {
52
+ return;
53
+ }
54
+ if (
55
+ 'node' in f &&
56
+ typeof f.node === 'object' &&
57
+ f.node !== null &&
58
+ 'args' in f.node &&
59
+ 'data' in f.node &&
60
+ typeof f.node.data === 'object' &&
61
+ !!f.node.data &&
62
+ 'type' in f.node.data &&
63
+ 'directives' in f.node
64
+ ) {
65
+ const { node, value } = f as FormObject;
66
+ if (node.data.type === ValueDefinition.InputValueDefinition) {
67
+ if (
68
+ node.type.fieldType.type === Options.required &&
69
+ getTypeName(node.type.fieldType) !== ScalarTypes.Boolean
70
+ ) {
71
+ if (typeof value === 'undefined' || value === '') {
72
+ pushErrors(path, Errs.REQUIRED);
73
+ }
74
+ if (Array.isArray(value)) {
75
+ for (const v of value) {
76
+ validateValue(v, path, pushErrors);
77
+ }
81
78
  }
82
79
  }
83
80
  }
84
81
  }
85
- }
86
- if ('value' in f && !!f.value) {
87
- const { value } = f;
88
- if (Array.isArray(value)) {
89
- value.map((vv) => validateValue(vv, nodes, path, pushErrors));
90
- return;
91
- }
92
- if (typeof value === 'object' && !!value) {
93
- Object.entries(value).forEach(([k, v]) =>
94
- validateValue(v as FormObject, nodes, `${path}.${k}`, pushErrors),
95
- );
96
- return;
82
+ if ('value' in f && !!f.value) {
83
+ const { value } = f;
84
+ if (Array.isArray(value)) {
85
+ value.map((vv) => validateValue(vv, path, pushErrors));
86
+ return;
87
+ }
88
+ if (typeof value === 'object' && !!value) {
89
+ Object.entries(value).forEach(([k, v]) => validateValue(v as FormObject, `${path}.${k}`, pushErrors));
90
+ return;
91
+ }
97
92
  }
98
- }
99
- return;
100
- };
93
+ return;
94
+ };
101
95
 
102
- export const validateForm = (v: FormFile, nodes: ParserField[], errors: Record<Errs, string>) => {
103
- const errorDict: Record<string, string> = {};
104
- if (!v.forms) return errorDict;
105
- Object.entries(v.forms).forEach(([k, val]) => {
106
- validateValue(val, nodes, k, (p, err) => {
107
- errorDict[p] = errors[err];
96
+ const validateForm = (v: FormFile, errors: Record<Errs, string>) => {
97
+ const errorDict: Record<string, string> = {};
98
+ if (!v.forms) return errorDict;
99
+ Object.entries(v.forms).forEach(([k, val]) => {
100
+ validateValue(val, k, (p, err) => {
101
+ errorDict[p] = errors[err];
102
+ });
108
103
  });
109
- });
110
- return errorDict;
111
- };
104
+ return errorDict;
105
+ };
112
106
 
113
- export const eraseValue = (f: FormObject, nodes: ParserField[]): FormObject => {
114
- const { value, node } = f;
107
+ const eraseValue = (f: FormObject): FormObject => {
108
+ const { value, node } = f;
115
109
 
116
- const seekNode = nodes.find((n) => n.name === getTypeName(node.type.fieldType));
117
- if (
118
- !seekNode ||
119
- seekNode?.data.type === TypeDefinition.EnumTypeDefinition ||
120
- seekNode?.data.type === TypeDefinition.ScalarTypeDefinition
121
- ) {
110
+ const seekNode = nodes.find((n) => n.name === getTypeName(node.type.fieldType));
111
+ if (
112
+ !seekNode ||
113
+ seekNode?.data.type === TypeDefinition.EnumTypeDefinition ||
114
+ seekNode?.data.type === TypeDefinition.ScalarTypeDefinition
115
+ ) {
116
+ return {
117
+ ...f,
118
+ value: undefined,
119
+ };
120
+ }
121
+ if ((seekNode || node.data.type === TypeSystemDefinition.FieldDefinition) && value) {
122
+ return {
123
+ ...f,
124
+ value: Object.fromEntries(Object.entries(value).map(([k, v]) => [k, eraseValue(v as FormObject)])),
125
+ };
126
+ }
122
127
  return {
123
128
  ...f,
124
129
  value: undefined,
125
130
  };
126
- }
127
- if ((seekNode || node.data.type === TypeSystemDefinition.FieldDefinition) && value) {
131
+ };
132
+
133
+ const eraseForm = (v: FormFile) => {
134
+ if (!v.forms) return v;
135
+ const forms = Object.entries(v.forms)
136
+ .map(([k, val]) => {
137
+ return [k, eraseValue(val)] as const;
138
+ })
139
+ .reduce(
140
+ (a, [k, val]) => ({
141
+ ...a,
142
+ [k]: val,
143
+ }),
144
+ {} as FormFile['forms'],
145
+ );
128
146
  return {
129
- ...f,
130
- value: Object.fromEntries(Object.entries(value).map(([k, v]) => [k, eraseValue(v as FormObject, nodes)])),
147
+ ...v,
148
+ forms,
131
149
  };
132
- }
133
- return {
134
- ...f,
135
- value: undefined,
136
150
  };
137
- };
138
-
139
- export const eraseForm = (v: FormFile, nodes: ParserField[]) => {
140
- if (!v.forms) return v;
141
- const forms = Object.entries(v.forms)
142
- .map(([k, val]) => {
143
- return [k, eraseValue(val, nodes)] as const;
144
- })
145
- .reduce(
146
- (a, [k, val]) => ({
147
- ...a,
148
- [k]: val,
149
- }),
150
- {} as FormFile['forms'],
151
- );
152
151
  return {
153
- ...v,
154
- forms,
152
+ eraseForm,
153
+ validateForm,
154
+ validateValue,
155
155
  };
156
156
  };
@@ -1,3 +1,4 @@
1
+ import { InjectedValue } from '@/BuiltInFields/InjectedValue';
1
2
  import { PassedFormProps } from '@/models';
2
3
  import { Fields } from '@/renderer/fields';
3
4
  import { TypeSystemDefinition, Options, getTypeName, TypeDefinition } from 'graphql-js-tree';
@@ -8,6 +9,7 @@ export const Renderer: React.FC<PassedFormProps> = (props) => {
8
9
  formObject,
9
10
  f,
10
11
  nodes,
12
+ presetValues: constants,
11
13
  components: { NullField, FormLabel, FormField },
12
14
  } = props;
13
15
  const { children, ...allProps } = props;
@@ -27,6 +29,17 @@ export const Renderer: React.FC<PassedFormProps> = (props) => {
27
29
  />
28
30
  );
29
31
  }
32
+ const hasOverride = constants?.[props.currentPath];
33
+ if (hasOverride) {
34
+ return (
35
+ <InjectedValue
36
+ {...props}
37
+ widgetData={{
38
+ value: hasOverride,
39
+ }}
40
+ />
41
+ );
42
+ }
30
43
  return (
31
44
  <FormField {...allProps}>
32
45
  <FormLabel {...allProps} open={open} setOpen={setOpen} children={children} />