zeus-form 0.1.4 → 0.1.6

Sign up to get free protection for your applications and to get access to all the features.
package/lib/models.d.ts CHANGED
@@ -58,12 +58,15 @@ export declare type FormFile = {
58
58
  widgets?: SavedWidgets;
59
59
  forms?: SavedForms;
60
60
  };
61
- export declare type InputFormProps<InputZeusType> = Omit<PassedFormProps, 'formObject' | 'onChange' | 'f' | 'currentPath' | 'changeWidget' | 'widgets' | 'nodes' | 'formFile' | 'runQuery' | 'override'> & {
61
+ export declare type InputFormProps<InputZeusType> = Omit<PassedFormProps, 'formObject' | 'onChange' | 'f' | 'currentPath' | 'nodes' | 'override' | 'widgets'> & {
62
62
  schema: string;
63
63
  inputName: string;
64
64
  override?: Partial<InputZeusType>;
65
65
  basicErrorMessages: Record<Errs, string>;
66
66
  values: Partial<InputZeusType>;
67
+ widgets?: {
68
+ [P in keyof Partial<InputZeusType>]: WidgetSavedData;
69
+ };
67
70
  onChange: (o: Partial<InputZeusType>, errors?: Record<string, string>) => void;
68
71
  };
69
72
  export declare type InputFormLibraryProps<T> = Omit<InputFormProps<T>, 'required' | 'components'>;
@@ -1,6 +1,6 @@
1
- import { Errs, FormObject, FormValue, PassedFormProps } from "./models";
1
+ import { Errs, FormObject, FormValue, PassedFormProps, WidgetSavedData } from "./models";
2
2
  export declare const getWidgetFromProps: (props: PassedFormProps) => {
3
- data: import("./models").WidgetSavedData | undefined;
3
+ data: WidgetSavedData;
4
4
  widget: import("./models").WidgetType;
5
5
  } | undefined;
6
6
  export declare const getErrorFromProps: (props: PassedFormProps) => string | undefined;
package/lib/outsideUse.js CHANGED
@@ -4,16 +4,29 @@ exports.validateForm = exports.validateValue = exports.getErrorFromProps = expor
4
4
  var models_1 = require("./models");
5
5
  var graphql_js_tree_1 = require("graphql-js-tree");
6
6
  var getWidgetFromProps = function (props) {
7
- var _a;
8
- var w = (_a = props.widgets) === null || _a === void 0 ? void 0 : _a[props.currentPath];
9
- var FoundBasicWidget = props.widgetComponents.find(function (wc) { return wc.name === (w === null || w === void 0 ? void 0 : w.widget); });
10
- if (!FoundBasicWidget) {
7
+ var widgets = props.widgets;
8
+ if (!widgets)
11
9
  return;
10
+ var p = props.currentPath.split('.').slice(1);
11
+ if (p.length > 0) {
12
+ var w_1;
13
+ for (var _i = 0, p_1 = p; _i < p_1.length; _i++) {
14
+ var pathPart = p_1[_i];
15
+ if (widgets[pathPart]) {
16
+ w_1 = widgets[pathPart];
17
+ break;
18
+ }
19
+ }
20
+ var FoundBasicWidget = props.widgetComponents.find(function (wc) { return wc.name === (w_1 === null || w_1 === void 0 ? void 0 : w_1.widget); });
21
+ if (!FoundBasicWidget) {
22
+ return;
23
+ }
24
+ return {
25
+ data: w_1,
26
+ widget: FoundBasicWidget,
27
+ };
12
28
  }
13
- return {
14
- data: w,
15
- widget: FoundBasicWidget,
16
- };
29
+ return;
17
30
  };
18
31
  exports.getWidgetFromProps = getWidgetFromProps;
19
32
  var getErrorFromProps = function (props) {
@@ -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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"}
@@ -20,6 +20,11 @@ var graphql_js_tree_1 = require("graphql-js-tree");
20
20
  var react_1 = __importDefault(require("react"));
21
21
  var Fields = function (props) {
22
22
  var nodes = props.nodes, f = props.f, _a = props.components, ArrayField = _a.ArrayField, ObjectField = _a.ObjectField;
23
+ var w = (0, outsideUse_1.getWidgetFromProps)(props);
24
+ if (w) {
25
+ var data = w.data, Component = w.widget.Component;
26
+ return react_1.default.createElement(Component, __assign({}, props, { widgetData: data }));
27
+ }
23
28
  var seekNode = nodes.find(function (n) { return n.name === (0, graphql_js_tree_1.getTypeName)(f.type.fieldType); });
24
29
  var isInput = f.data.type === graphql_js_tree_1.TypeDefinition.InputObjectTypeDefinition;
25
30
  if (isInput) {
@@ -32,11 +37,6 @@ var Fields = function (props) {
32
37
  if (isFieldInput) {
33
38
  return react_1.default.createElement(ObjectField, __assign({}, props, { f: seekNode }));
34
39
  }
35
- var w = (0, outsideUse_1.getWidgetFromProps)(props);
36
- if (w) {
37
- var data = w.data, Component = w.widget.Component;
38
- return react_1.default.createElement(Component, __assign({}, props, { widgetData: data }));
39
- }
40
40
  return react_1.default.createElement(ScalarField, __assign({}, props));
41
41
  };
42
42
  exports.Fields = Fields;
@@ -1 +1 @@
1
- {"version":3,"file":"fields.js","sourceRoot":"","sources":["../../src/renderer/fields.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fields.js","sourceRoot":"","sources":["../../src/renderer/fields.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,4CAAkD;AAClD,mDAAoF;AACpF,gDAA0B;AAEnB,IAAM,MAAM,GAA8B,UAAC,KAAK;IAE/C,IAAA,KAAK,GAGL,KAAK,MAHA,EACL,CAAC,GAED,KAAK,EAFJ,EACD,KACA,KAAK,WADkC,EAAzB,UAAU,gBAAA,EAAE,WAAW,iBAAE,CACjC;IACV,IAAM,CAAC,GAAG,IAAA,+BAAkB,EAAC,KAAK,CAAC,CAAC;IACpC,IAAI,CAAC,EAAE;QAEC,IAAA,IAAI,GAEJ,CAAC,KAFG,EACM,SAAS,GACnB,CAAC,iBADkB,CACjB;QACN,OAAO,8BAAC,SAAS,eAAK,KAAK,IAAE,UAAU,EAAE,IAAI,IAAI,CAAC;KACrD;IACD,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,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,gCAAc,CAAC,yBAAyB,CAAC;IACzE,IAAI,OAAO,EAAE;QACT,OAAO,8BAAC,WAAW,eAAK,KAAK,EAAI,CAAC;KACrC;IACD,IAAM,YAAY,GAAG,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,CAAC,IAAI,MAAK,gCAAc,CAAC,yBAAyB,CAAC;IACtF,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,yBAAO,CAAC,KAAK,EAAE;QACzC,OAAO,8BAAC,UAAU,eAAK,KAAK,EAAI,CAAC;KACpC;IACD,IAAI,YAAY,EAAE;QACd,OAAO,8BAAC,WAAW,eAAK,KAAK,IAAE,CAAC,EAAE,QAAQ,IAAI,CAAC;KAClD;IACD,OAAO,8BAAC,WAAW,eAAK,KAAK,EAAI,CAAC;AACtC,CAAC,CAAC;AA3BW,QAAA,MAAM,UA2BjB;AACF,IAAM,WAAW,GAA8B,UAAC,KAAK;IAE7C,IAAA,CAAC,GAID,KAAK,EAJJ,EACD,KAAK,GAGL,KAAK,MAHA,EACL,QAAQ,GAER,KAAK,SAFG,EACR,KACA,KAAK,WAD+D,EAAtD,YAAY,kBAAA,EAAE,WAAW,iBAAA,EAAE,SAAS,eAAA,EAAE,cAAc,oBAAE,CAC9D;IACV,IAAM,QAAQ,GAAG,IAAA,6BAAW,EAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC/C,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,IACI,QAAQ,KAAK,6BAAW,CAAC,MAAM;QAC/B,QAAQ,KAAK,6BAAW,CAAC,EAAE;QAC3B,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,CAAC,IAAI,MAAK,gCAAc,CAAC,oBAAoB,EAC7D;QACE,OAAO,8BAAC,cAAc,eAAK,KAAK,EAAI,CAAC;KACxC;IAED,IAAI,QAAQ,KAAK,6BAAW,CAAC,KAAK,IAAI,QAAQ,KAAK,6BAAW,CAAC,GAAG,EAAE;QAChE,OAAO,8BAAC,WAAW,eAAK,KAAK,EAAI,CAAC;KACrC;IACD,IAAI,QAAQ,KAAK,6BAAW,CAAC,OAAO,EAAE;QAClC,OAAO,8BAAC,YAAY,eAAK,KAAK,EAAI,CAAC;KACtC;IACD,IAAI,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,CAAC,IAAI,MAAK,gCAAc,CAAC,kBAAkB,EAAE;QAC3D,OAAO,8BAAC,SAAS,eAAK,KAAK,EAAI,CAAC;KACnC;IACD,OAAO,8DAAG,QAAQ,CAAI,CAAC;AAC3B,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zeus-form",
3
- "version": "0.1.4",
3
+ "version": "0.1.6",
4
4
  "description": "Easy form creation with GraphQL Editor and React",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {
@@ -22,12 +22,11 @@
22
22
  "author": "Aexol <aexol@aexol.com> (http://aexol.com)",
23
23
  "license": "MIT",
24
24
  "homepage": "https://form.graphqleditor.com",
25
- "devDependencies": {},
26
25
  "peerDependencies": {
27
26
  "react": ">=18",
28
27
  "react-dom": ">=18"
29
28
  },
30
29
  "dependencies": {
31
- "graphql-js-tree": "^0.1.1"
30
+ "graphql-js-tree": "^0.2.5"
32
31
  }
33
32
  }
@@ -1,40 +1,44 @@
1
1
  import { FormObject } from '@/models';
2
- import { Options, ParserField, TypeDefinition } from 'graphql-js-tree';
2
+ import { createParserField, Options, ParserField, TypeDefinition } from 'graphql-js-tree';
3
3
 
4
4
  // Global Arrange
5
- export const typeNode: ParserField = {
5
+ export const typeNode: ParserField = createParserField({
6
6
  name: 'Type',
7
7
  args: [],
8
8
  data: { type: TypeDefinition.ObjectTypeDefinition },
9
9
  directives: [],
10
10
  interfaces: [],
11
11
  type: { fieldType: { name: 'type', type: Options.name } },
12
- };
12
+ });
13
13
 
14
- export const inputNode: ParserField = {
14
+ export const inputNode: ParserField = createParserField({
15
15
  name: 'Input',
16
16
  args: [],
17
17
  data: { type: TypeDefinition.InputObjectTypeDefinition },
18
18
  directives: [],
19
19
  interfaces: [],
20
20
  type: { fieldType: { name: 'type', type: Options.name } },
21
- };
21
+ });
22
22
 
23
- export const nodeWithArgs: ParserField = {
23
+ export const nodeWithArgs: ParserField = createParserField({
24
24
  name: 'Root',
25
25
  args: [typeNode, inputNode],
26
26
  data: { type: TypeDefinition.ObjectTypeDefinition },
27
27
  directives: [],
28
28
  interfaces: [],
29
29
  type: { fieldType: { name: 'type', type: Options.name } },
30
- };
30
+ });
31
31
 
32
32
  export const singleNode: ParserField[] = [typeNode];
33
33
  export const nodes: ParserField[] = [typeNode, inputNode, nodeWithArgs];
34
34
 
35
- export const fields: Record<string, FormObject> = { test: { node: typeNode, value: 5 } };
36
- export const extenedFields: Record<string, FormObject> = { testInput: { node: inputNode, value: fields } };
37
- export const fieldsNodeWithArgs: Record<string, FormObject> = { testInput: { node: nodeWithArgs, value: fields } };
35
+ export const fields: Record<string, FormObject> = { test: { __form__node: typeNode, __form__value: 5 } };
36
+ export const extenedFields: Record<string, FormObject> = {
37
+ testInput: { __form__node: inputNode, __form__value: fields },
38
+ };
39
+ export const fieldsNodeWithArgs: Record<string, FormObject> = {
40
+ testInput: { __form__node: nodeWithArgs, __form__value: fields },
41
+ };
38
42
  export const fieldsNodeWithArgsWithInput: Record<string, FormObject> = {
39
- testInput: { node: nodeWithArgs, value: extenedFields },
43
+ testInput: { __form__node: nodeWithArgs, __form__value: extenedFields },
40
44
  };
package/src/models.ts CHANGED
@@ -66,22 +66,16 @@ export type FormFile = {
66
66
 
67
67
  export type InputFormProps<InputZeusType> = Omit<
68
68
  PassedFormProps,
69
- | 'formObject'
70
- | 'onChange'
71
- | 'f'
72
- | 'currentPath'
73
- | 'changeWidget'
74
- | 'widgets'
75
- | 'nodes'
76
- | 'formFile'
77
- | 'runQuery'
78
- | 'override'
69
+ 'formObject' | 'onChange' | 'f' | 'currentPath' | 'nodes' | 'override' | 'widgets'
79
70
  > & {
80
71
  schema: string;
81
72
  inputName: string;
82
73
  override?: Partial<InputZeusType>;
83
74
  basicErrorMessages: Record<Errs, string>;
84
75
  values: Partial<InputZeusType>;
76
+ widgets?: {
77
+ [P in keyof Partial<InputZeusType>]: WidgetSavedData;
78
+ };
85
79
  onChange: (o: Partial<InputZeusType>, errors?: Record<string, string>) => void;
86
80
  };
87
81
  export type InputFormLibraryProps<T> = Omit<InputFormProps<T>, 'required' | 'components'>;
@@ -1,16 +1,28 @@
1
- import { Errs, FormObject, FormValue, PassedFormProps } from '@/models';
1
+ import { Errs, FormObject, FormValue, PassedFormProps, WidgetSavedData } from '@/models';
2
2
  import { getTypeName, Options, ScalarTypes, ValueDefinition } from 'graphql-js-tree';
3
3
 
4
4
  export const getWidgetFromProps = (props: PassedFormProps) => {
5
- const w = props.widgets?.[props.currentPath];
6
- const FoundBasicWidget = props.widgetComponents.find((wc) => wc.name === w?.widget);
7
- if (!FoundBasicWidget) {
8
- return;
5
+ const { widgets } = props;
6
+ if (!widgets) return;
7
+ const p = props.currentPath.split('.').slice(1);
8
+ if (p.length > 0) {
9
+ let w: WidgetSavedData | undefined;
10
+ for (const pathPart of p) {
11
+ if (widgets[pathPart]) {
12
+ w = widgets[pathPart];
13
+ break;
14
+ }
15
+ }
16
+ const FoundBasicWidget = props.widgetComponents.find((wc) => wc.name === w?.widget);
17
+ if (!FoundBasicWidget) {
18
+ return;
19
+ }
20
+ return {
21
+ data: w as WidgetSavedData,
22
+ widget: FoundBasicWidget,
23
+ };
9
24
  }
10
- return {
11
- data: w,
12
- widget: FoundBasicWidget,
13
- };
25
+ return;
14
26
  };
15
27
  export const getErrorFromProps = (props: PassedFormProps) => {
16
28
  return props.errors?.[props.currentPath];
@@ -9,6 +9,14 @@ export const Fields: React.FC<PassedFormProps> = (props) => {
9
9
  f,
10
10
  components: { ArrayField, ObjectField },
11
11
  } = props;
12
+ const w = getWidgetFromProps(props);
13
+ if (w) {
14
+ const {
15
+ data,
16
+ widget: { Component },
17
+ } = w;
18
+ return <Component {...props} widgetData={data} />;
19
+ }
12
20
  const seekNode = nodes.find((n) => n.name === getTypeName(f.type.fieldType));
13
21
  const isInput = f.data.type === TypeDefinition.InputObjectTypeDefinition;
14
22
  if (isInput) {
@@ -21,14 +29,6 @@ export const Fields: React.FC<PassedFormProps> = (props) => {
21
29
  if (isFieldInput) {
22
30
  return <ObjectField {...props} f={seekNode} />;
23
31
  }
24
- const w = getWidgetFromProps(props);
25
- if (w) {
26
- const {
27
- data,
28
- widget: { Component },
29
- } = w;
30
- return <Component {...props} widgetData={data} />;
31
- }
32
32
  return <ScalarField {...props} />;
33
33
  };
34
34
  const ScalarField: React.FC<PassedFormProps> = (props) => {