graphql-form 0.0.10 → 0.0.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 
     | 
    
         
             
                        ) : (
         
     |