graphql-form 0.0.10 → 0.0.13
Sign up to get free protection for your applications and to get access to all the features.
- package/lib/models.d.ts +8 -1
- package/lib/renderer/fields.js +11 -3
- package/lib/renderer/fields.js.map +1 -1
- package/lib/renderer/index.js +5 -3
- package/lib/renderer/index.js.map +1 -1
- package/package.json +1 -1
- package/src/models.ts +11 -2
- package/src/renderer/fields.tsx +18 -1
- package/src/renderer/index.tsx +3 -1
package/lib/models.d.ts
CHANGED
@@ -7,6 +7,7 @@ export declare type FormLabelProps = React.FC<PassedFormProps & {
|
|
7
7
|
}>;
|
8
8
|
export declare type WidgetSavedData = {
|
9
9
|
widget: string;
|
10
|
+
hideLabel?: boolean;
|
10
11
|
[x: string]: unknown;
|
11
12
|
};
|
12
13
|
export declare type SavedWidgets = {
|
@@ -16,6 +17,11 @@ export declare type SavedForms = {
|
|
16
17
|
[selector: string]: FormObject;
|
17
18
|
};
|
18
19
|
export declare type ReturnedDictType = any;
|
20
|
+
export declare type WidgetVariantType = {
|
21
|
+
name: string;
|
22
|
+
widget: string;
|
23
|
+
data: ReturnedDictType;
|
24
|
+
};
|
19
25
|
export declare type PassedFormProps<WidgetData = ReturnedDictType> = {
|
20
26
|
f: ParserField;
|
21
27
|
nodes: ParserField[];
|
@@ -25,6 +31,7 @@ export declare type PassedFormProps<WidgetData = ReturnedDictType> = {
|
|
25
31
|
required?: boolean;
|
26
32
|
runQuery: (q: string) => Promise<ReturnedDictType>;
|
27
33
|
widgetComponents: WidgetType[];
|
34
|
+
widgetVariants?: WidgetVariantType[];
|
28
35
|
currentPath: string;
|
29
36
|
widgets?: SavedWidgets;
|
30
37
|
widgetData?: WidgetData;
|
@@ -53,7 +60,7 @@ export declare type FormDisplayerProps = Omit<PassedFormProps, 'formObject' | 'o
|
|
53
60
|
onChange: (o: FormFile, query: string) => void;
|
54
61
|
};
|
55
62
|
export declare type FormLibraryProps = Omit<FormDisplayerProps, 'required' | 'components'>;
|
56
|
-
export declare type CastToWidgetSettingsPassedForm<WidgetData = ReturnedDictType> = PassedFormProps<Partial<WidgetData
|
63
|
+
export declare type CastToWidgetSettingsPassedForm<WidgetData = ReturnedDictType> = Partial<PassedFormProps<Partial<WidgetData>>> & {
|
57
64
|
widgetSettingsChange: (data: WidgetData) => void;
|
58
65
|
};
|
59
66
|
export declare type WidgetType = {
|
package/lib/renderer/fields.js
CHANGED
@@ -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,
|
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
|
-
|
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":";;;;;;;;;;;;;;;;;AACA,mDAA0G;AAC1G,gDAA0B;AAEnB,IAAM,MAAM,GAA8B,UAAC,KAAK;;IAE/C,IAAA,KAAK,
|
1
|
+
{"version":3,"file":"fields.js","sourceRoot":"","sources":["../../src/renderer/fields.tsx"],"names":[],"mappings":"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"}
|
package/lib/renderer/index.js
CHANGED
@@ -50,17 +50,19 @@ var fields_1 = require("./fields");
|
|
50
50
|
var graphql_js_tree_1 = require("graphql-js-tree");
|
51
51
|
var react_1 = __importStar(require("react"));
|
52
52
|
var Renderer = function (props) {
|
53
|
-
var
|
53
|
+
var _a;
|
54
|
+
var formObject = props.formObject, f = props.f, nodes = props.nodes, widgets = props.widgets, _b = props.components, NullField = _b.NullField, FormLabel = _b.FormLabel, FormField = _b.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;
|
57
58
|
var canBeOpened = props.f.data.type === graphql_js_tree_1.TypeSystemDefinition.FieldDefinition || isInput;
|
58
|
-
var
|
59
|
+
var _c = (0, react_1.useState)(props.f.data.type === graphql_js_tree_1.TypeSystemDefinition.FieldDefinition || props.required), open = _c[0], setOpen = _c[1];
|
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 showLabel = !((_a = widgets === null || widgets === void 0 ? void 0 : widgets[props.currentPath]) === null || _a === void 0 ? void 0 : _a.hideLabel);
|
62
64
|
return (react_1.default.createElement(FormField, __assign({}, allProps),
|
63
|
-
react_1.default.createElement(FormLabel, __assign({}, allProps, { open: open, setOpen: setOpen, children: children })),
|
65
|
+
showLabel && react_1.default.createElement(FormLabel, __assign({}, allProps, { open: open, setOpen: setOpen, children: children })),
|
64
66
|
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))))));
|
65
67
|
};
|
66
68
|
exports.Renderer = Renderer;
|
@@ -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
|
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,GAKV,KAAK,WALK,EACV,CAAC,GAID,KAAK,EAJJ,EACD,KAAK,GAGL,KAAK,MAHA,EACL,OAAO,GAEP,KAAK,QAFE,EACP,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,SAAS,GAAG,CAAC,CAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,KAAK,CAAC,WAAW,CAAC,0CAAE,SAAS,CAAA,CAAC;IAC3D,OAAO,CACH,8BAAC,SAAS,eAAK,QAAQ;QAClB,SAAS,IAAI,8BAAC,SAAS,eAAK,QAAQ,IAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,IAAI;QAC1F,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;AApCW,QAAA,QAAQ,YAoCnB"}
|
package/package.json
CHANGED
package/src/models.ts
CHANGED
@@ -7,6 +7,7 @@ export type FormLabelProps = React.FC<PassedFormProps & { open?: boolean; setOpe
|
|
7
7
|
|
8
8
|
export type WidgetSavedData = {
|
9
9
|
widget: string;
|
10
|
+
hideLabel?: boolean;
|
10
11
|
[x: string]: unknown;
|
11
12
|
};
|
12
13
|
|
@@ -16,10 +17,15 @@ export type SavedWidgets = {
|
|
16
17
|
export type SavedForms = {
|
17
18
|
[selector: string]: FormObject;
|
18
19
|
};
|
19
|
-
|
20
20
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
21
21
|
export type ReturnedDictType = any;
|
22
22
|
|
23
|
+
export type WidgetVariantType = {
|
24
|
+
name: string;
|
25
|
+
widget: string;
|
26
|
+
data: ReturnedDictType;
|
27
|
+
};
|
28
|
+
|
23
29
|
export type PassedFormProps<WidgetData = ReturnedDictType> = {
|
24
30
|
f: ParserField;
|
25
31
|
nodes: ParserField[];
|
@@ -29,6 +35,7 @@ export type PassedFormProps<WidgetData = ReturnedDictType> = {
|
|
29
35
|
required?: boolean;
|
30
36
|
runQuery: (q: string) => Promise<ReturnedDictType>;
|
31
37
|
widgetComponents: WidgetType[];
|
38
|
+
widgetVariants?: WidgetVariantType[];
|
32
39
|
currentPath: string;
|
33
40
|
widgets?: SavedWidgets;
|
34
41
|
widgetData?: WidgetData;
|
@@ -67,7 +74,9 @@ export type FormDisplayerProps = Omit<
|
|
67
74
|
|
68
75
|
export type FormLibraryProps = Omit<FormDisplayerProps, 'required' | 'components'>;
|
69
76
|
|
70
|
-
export type CastToWidgetSettingsPassedForm<WidgetData = ReturnedDictType> =
|
77
|
+
export type CastToWidgetSettingsPassedForm<WidgetData = ReturnedDictType> = Partial<
|
78
|
+
PassedFormProps<Partial<WidgetData>>
|
79
|
+
> & {
|
71
80
|
widgetSettingsChange: (data: WidgetData) => void;
|
72
81
|
};
|
73
82
|
|
package/src/renderer/fields.tsx
CHANGED
@@ -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
|
-
|
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
|
}
|
package/src/renderer/index.tsx
CHANGED
@@ -8,6 +8,7 @@ export const Renderer: React.FC<PassedFormProps> = (props) => {
|
|
8
8
|
formObject,
|
9
9
|
f,
|
10
10
|
nodes,
|
11
|
+
widgets,
|
11
12
|
components: { NullField, FormLabel, FormField },
|
12
13
|
} = props;
|
13
14
|
const { children, ...allProps } = props;
|
@@ -27,9 +28,10 @@ export const Renderer: React.FC<PassedFormProps> = (props) => {
|
|
27
28
|
/>
|
28
29
|
);
|
29
30
|
}
|
31
|
+
const showLabel = !widgets?.[props.currentPath]?.hideLabel;
|
30
32
|
return (
|
31
33
|
<FormField {...allProps}>
|
32
|
-
<FormLabel {...allProps} open={open} setOpen={setOpen} children={children} />
|
34
|
+
{showLabel && <FormLabel {...allProps} open={open} setOpen={setOpen} children={children} />}
|
33
35
|
{formObject.value === null ? (
|
34
36
|
<NullField {...allProps} />
|
35
37
|
) : (
|