graphql-form 0.0.9 → 0.0.12

Sign up to get free protection for your applications and to get access to all the features.
package/lib/models.d.ts CHANGED
@@ -15,7 +15,12 @@ export declare type SavedWidgets = {
15
15
  export declare type SavedForms = {
16
16
  [selector: string]: FormObject;
17
17
  };
18
- export declare type ReturnedDictType = Record<string, unknown> | undefined;
18
+ export declare type ReturnedDictType = any;
19
+ export declare type WidgetVariantType = {
20
+ name: string;
21
+ widget: string;
22
+ data: ReturnedDictType;
23
+ };
19
24
  export declare type PassedFormProps<WidgetData = ReturnedDictType> = {
20
25
  f: ParserField;
21
26
  nodes: ParserField[];
@@ -25,6 +30,7 @@ export declare type PassedFormProps<WidgetData = ReturnedDictType> = {
25
30
  required?: boolean;
26
31
  runQuery: (q: string) => Promise<ReturnedDictType>;
27
32
  widgetComponents: WidgetType[];
33
+ widgetVariants?: WidgetVariantType[];
28
34
  currentPath: string;
29
35
  widgets?: SavedWidgets;
30
36
  widgetData?: WidgetData;
@@ -53,12 +59,13 @@ export declare type FormDisplayerProps = Omit<PassedFormProps, 'formObject' | 'o
53
59
  onChange: (o: FormFile, query: string) => void;
54
60
  };
55
61
  export declare type FormLibraryProps = Omit<FormDisplayerProps, 'required' | 'components'>;
56
- export declare type CastToWidgetSettingsPassedForm<WidgetData = ReturnedDictType> = PassedFormProps<Partial<WidgetData>> & {
62
+ export declare type CastToWidgetSettingsPassedForm<WidgetData = ReturnedDictType> = Partial<PassedFormProps<Partial<WidgetData>>> & {
57
63
  widgetSettingsChange: (data: WidgetData) => void;
58
64
  };
59
65
  export declare type WidgetType = {
60
66
  Component: React.FC<PassedFormProps>;
61
67
  Settings: React.FC<CastToWidgetSettingsPassedForm> | undefined;
68
+ Description?: React.FC;
62
69
  requirements: (props: PassedFormProps) => boolean;
63
70
  props?: ReturnedDictType;
64
71
  name: string;
@@ -18,8 +18,8 @@ exports.Fields = void 0;
18
18
  var graphql_js_tree_1 = require("graphql-js-tree");
19
19
  var react_1 = __importDefault(require("react"));
20
20
  var Fields = function (props) {
21
- var _a;
22
- var nodes = props.nodes, widgetComponents = props.widgetComponents, f = props.f, widgets = props.widgets, _b = props.components, ArrayField = _b.ArrayField, ObjectField = _b.ObjectField;
21
+ var _a, _b;
22
+ var nodes = props.nodes, widgetComponents = props.widgetComponents, f = props.f, widgets = props.widgets, widgetVariants = props.widgetVariants, _c = props.components, ArrayField = _c.ArrayField, ObjectField = _c.ObjectField;
23
23
  var seekNode = nodes.find(function (n) { return n.name === (0, graphql_js_tree_1.getTypeName)(f.type.fieldType); });
24
24
  var isInput = (seekNode === null || seekNode === void 0 ? void 0 : seekNode.data.type) === graphql_js_tree_1.TypeDefinition.InputObjectTypeDefinition;
25
25
  if (f.data.type === graphql_js_tree_1.TypeSystemDefinition.FieldDefinition) {
@@ -35,7 +35,15 @@ var Fields = function (props) {
35
35
  if (widget) {
36
36
  var WidgetComponent = (_a = widgetComponents.find(function (wc) { return wc.name === widget.widget; })) === null || _a === void 0 ? void 0 : _a.Component;
37
37
  if (!WidgetComponent) {
38
- return react_1.default.createElement(react_1.default.Fragment, null);
38
+ var widgetVariant_1 = widgetVariants === null || widgetVariants === void 0 ? void 0 : widgetVariants.find(function (wv) { return wv.name === widget.widget; });
39
+ if (!widgetVariant_1) {
40
+ return react_1.default.createElement(react_1.default.Fragment, null);
41
+ }
42
+ var WidgetComponent_1 = (_b = widgetComponents.find(function (wc) { return wc.name === widgetVariant_1.widget; })) === null || _b === void 0 ? void 0 : _b.Component;
43
+ if (!WidgetComponent_1) {
44
+ return react_1.default.createElement(react_1.default.Fragment, null);
45
+ }
46
+ return (react_1.default.createElement(WidgetComponent_1, __assign({}, props, { widgetData: __assign({ widget: widgetVariant_1.widget }, widgetVariant_1.data) })));
39
47
  }
40
48
  return react_1.default.createElement(WidgetComponent, __assign({}, props, { widgetData: widget }));
41
49
  }
@@ -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":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "graphql-form",
3
- "version": "0.0.9",
3
+ "version": "0.0.12",
4
4
  "description": "Easy form creation with GraphQL Editor and React",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {
package/src/models.ts CHANGED
@@ -16,8 +16,14 @@ export type SavedWidgets = {
16
16
  export type SavedForms = {
17
17
  [selector: string]: FormObject;
18
18
  };
19
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
20
+ export type ReturnedDictType = any;
19
21
 
20
- export type ReturnedDictType = Record<string, unknown> | undefined;
22
+ export type WidgetVariantType = {
23
+ name: string;
24
+ widget: string;
25
+ data: ReturnedDictType;
26
+ };
21
27
 
22
28
  export type PassedFormProps<WidgetData = ReturnedDictType> = {
23
29
  f: ParserField;
@@ -28,6 +34,7 @@ export type PassedFormProps<WidgetData = ReturnedDictType> = {
28
34
  required?: boolean;
29
35
  runQuery: (q: string) => Promise<ReturnedDictType>;
30
36
  widgetComponents: WidgetType[];
37
+ widgetVariants?: WidgetVariantType[];
31
38
  currentPath: string;
32
39
  widgets?: SavedWidgets;
33
40
  widgetData?: WidgetData;
@@ -66,13 +73,16 @@ export type FormDisplayerProps = Omit<
66
73
 
67
74
  export type FormLibraryProps = Omit<FormDisplayerProps, 'required' | 'components'>;
68
75
 
69
- export type CastToWidgetSettingsPassedForm<WidgetData = ReturnedDictType> = PassedFormProps<Partial<WidgetData>> & {
76
+ export type CastToWidgetSettingsPassedForm<WidgetData = ReturnedDictType> = Partial<
77
+ PassedFormProps<Partial<WidgetData>>
78
+ > & {
70
79
  widgetSettingsChange: (data: WidgetData) => void;
71
80
  };
72
81
 
73
82
  export type WidgetType = {
74
83
  Component: React.FC<PassedFormProps>;
75
84
  Settings: React.FC<CastToWidgetSettingsPassedForm> | undefined;
85
+ Description?: React.FC;
76
86
  requirements: (props: PassedFormProps) => boolean;
77
87
  props?: ReturnedDictType;
78
88
  name: string;
@@ -8,6 +8,7 @@ export const Fields: React.FC<PassedFormProps> = (props) => {
8
8
  widgetComponents,
9
9
  f,
10
10
  widgets,
11
+ widgetVariants,
11
12
  components: { ArrayField, ObjectField },
12
13
  } = props;
13
14
  const seekNode = nodes.find((n) => n.name === getTypeName(f.type.fieldType));
@@ -25,7 +26,23 @@ export const Fields: React.FC<PassedFormProps> = (props) => {
25
26
  if (widget) {
26
27
  const WidgetComponent = widgetComponents.find((wc) => wc.name === widget.widget)?.Component;
27
28
  if (!WidgetComponent) {
28
- return <></>;
29
+ const widgetVariant = widgetVariants?.find((wv) => wv.name === widget.widget);
30
+ if (!widgetVariant) {
31
+ return <></>;
32
+ }
33
+ const WidgetComponent = widgetComponents.find((wc) => wc.name === widgetVariant.widget)?.Component;
34
+ if (!WidgetComponent) {
35
+ return <></>;
36
+ }
37
+ return (
38
+ <WidgetComponent
39
+ {...props}
40
+ widgetData={{
41
+ widget: widgetVariant.widget,
42
+ ...widgetVariant.data,
43
+ }}
44
+ />
45
+ );
29
46
  }
30
47
  return <WidgetComponent {...props} widgetData={widget} />;
31
48
  }