zeus-form 0.1.3 → 0.1.5
Sign up to get free protection for your applications and to get access to all the features.
- package/lib/models.d.ts +4 -2
- package/lib/outsideUse.d.ts +2 -2
- package/lib/outsideUse.js +21 -8
- package/lib/outsideUse.js.map +1 -1
- package/lib/renderer/fields.js +5 -5
- package/lib/renderer/fields.js.map +1 -1
- package/lib/renderer/index.js +2 -2
- package/lib/renderer/index.js.map +1 -1
- package/package.json +1 -1
- package/src/models.ts +4 -2
- package/src/outsideUse.tsx +21 -9
- package/src/renderer/fields.tsx +8 -8
- package/src/renderer/index.tsx +2 -7
package/lib/models.d.ts
CHANGED
@@ -50,7 +50,6 @@ export declare type PassedFormProps<WidgetData = ReturnedDictType> = {
|
|
50
50
|
UniversalField: FieldComponent;
|
51
51
|
NumberField: FieldComponent;
|
52
52
|
EnumField: FieldComponent;
|
53
|
-
NullField: FieldComponent;
|
54
53
|
FormLabel: FormLabelProps;
|
55
54
|
FormField: FieldComponent;
|
56
55
|
};
|
@@ -59,12 +58,15 @@ export declare type FormFile = {
|
|
59
58
|
widgets?: SavedWidgets;
|
60
59
|
forms?: SavedForms;
|
61
60
|
};
|
62
|
-
export declare type InputFormProps<InputZeusType> = Omit<PassedFormProps, 'formObject' | 'onChange' | 'f' | 'currentPath' | '
|
61
|
+
export declare type InputFormProps<InputZeusType> = Omit<PassedFormProps, 'formObject' | 'onChange' | 'f' | 'currentPath' | 'nodes' | 'override' | 'widgets'> & {
|
63
62
|
schema: string;
|
64
63
|
inputName: string;
|
65
64
|
override?: Partial<InputZeusType>;
|
66
65
|
basicErrorMessages: Record<Errs, string>;
|
67
66
|
values: Partial<InputZeusType>;
|
67
|
+
widgets?: {
|
68
|
+
[P in keyof Partial<InputZeusType>]: WidgetSavedData;
|
69
|
+
};
|
68
70
|
onChange: (o: Partial<InputZeusType>, errors?: Record<string, string>) => void;
|
69
71
|
};
|
70
72
|
export declare type InputFormLibraryProps<T> = Omit<InputFormProps<T>, 'required' | 'components'>;
|
package/lib/outsideUse.d.ts
CHANGED
@@ -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:
|
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
|
8
|
-
|
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) {
|
package/lib/outsideUse.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"outsideUse.js","sourceRoot":"","sources":["../src/outsideUse.tsx"],"names":[],"mappings":";;;AAAA,
|
1
|
+
{"version":3,"file":"outsideUse.js","sourceRoot":"","sources":["../src/outsideUse.tsx"],"names":[],"mappings":"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"}
|
package/lib/renderer/fields.js
CHANGED
@@ -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":";;;;;;;;;;;;;;;;;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,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,
|
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,7 +50,7 @@ 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 f = props.f, nodes = props.nodes, override = props.override, currentPath = props.currentPath, _a = props.components, FormLabel = _a.FormLabel, FormField = _a.FormField;
|
54
54
|
var children = props.children, allProps = __rest(props, ["children"]);
|
55
55
|
var seekNode = nodes.find(function (n) { return n.name === (0, graphql_js_tree_1.getTypeName)(f.type.fieldType); });
|
56
56
|
var isInput = (seekNode === null || seekNode === void 0 ? void 0 : seekNode.data.type) === graphql_js_tree_1.TypeDefinition.InputObjectTypeDefinition;
|
@@ -72,7 +72,7 @@ var Renderer = function (props) {
|
|
72
72
|
}
|
73
73
|
return (react_1.default.createElement(FormField, __assign({}, allProps),
|
74
74
|
react_1.default.createElement(FormLabel, __assign({}, allProps, { open: open, setOpen: setOpen, children: children })),
|
75
|
-
|
75
|
+
(!isInput || open) && react_1.default.createElement(fields_1.Fields, __assign({}, allProps))));
|
76
76
|
};
|
77
77
|
exports.Renderer = Renderer;
|
78
78
|
//# sourceMappingURL=index.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/renderer/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,mCAA2C;AAC3C,mDAAuE;AACvE,6CAAwC;AAEjC,IAAM,QAAQ,GAA8B,UAAC,KAAK;IAEjD,IAAA,
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/renderer/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,mCAA2C;AAC3C,mDAAuE;AACvE,6CAAwC;AAEjC,IAAM,QAAQ,GAA8B,UAAC,KAAK;IAEjD,IAAA,CAAC,GAKD,KAAK,EALJ,EACD,KAAK,GAIL,KAAK,MAJA,EACL,QAAQ,GAGR,KAAK,SAHG,EACR,WAAW,GAEX,KAAK,YAFM,EACX,KACA,KAAK,WAD+B,EAAtB,SAAS,eAAA,EAAE,SAAS,eAAE,CAC9B;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;IAC3E,IAAA,KAAkB,IAAA,gBAAQ,EAAC,KAAK,CAAC,QAAQ,CAAC,EAAzC,IAAI,QAAA,EAAE,OAAO,QAA4B,CAAC;IACjD,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,IAAI,QAAQ,EAAE;QACV,IAAM,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1C,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;YACd,IAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC,UAAC,CAAC,EAAE,CAAC;gBAC5B,IAAI,CAAC,CAAC;oBAAE,OAAO;gBACf,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YAChB,CAAC,EAAE,QAAQ,CAAC,CAAC;YACb,IAAI,SAAS;gBAAE,OAAO,IAAI,CAAC;SAC9B;KACJ;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,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,8BAAC,eAAM,eAAK,QAAQ,EAAI,CACvC,CACf,CAAC;AACN,CAAC,CAAC;AAxCW,QAAA,QAAQ,YAwCnB"}
|
package/package.json
CHANGED
package/src/models.ts
CHANGED
@@ -55,7 +55,6 @@ export type PassedFormProps<WidgetData = ReturnedDictType> = {
|
|
55
55
|
UniversalField: FieldComponent;
|
56
56
|
NumberField: FieldComponent;
|
57
57
|
EnumField: FieldComponent;
|
58
|
-
NullField: FieldComponent;
|
59
58
|
FormLabel: FormLabelProps;
|
60
59
|
FormField: FieldComponent;
|
61
60
|
};
|
@@ -67,13 +66,16 @@ export type FormFile = {
|
|
67
66
|
|
68
67
|
export type InputFormProps<InputZeusType> = Omit<
|
69
68
|
PassedFormProps,
|
70
|
-
'formObject' | 'onChange' | 'f' | 'currentPath' | '
|
69
|
+
'formObject' | 'onChange' | 'f' | 'currentPath' | 'nodes' | 'override' | 'widgets'
|
71
70
|
> & {
|
72
71
|
schema: string;
|
73
72
|
inputName: string;
|
74
73
|
override?: Partial<InputZeusType>;
|
75
74
|
basicErrorMessages: Record<Errs, string>;
|
76
75
|
values: Partial<InputZeusType>;
|
76
|
+
widgets?: {
|
77
|
+
[P in keyof Partial<InputZeusType>]: WidgetSavedData;
|
78
|
+
};
|
77
79
|
onChange: (o: Partial<InputZeusType>, errors?: Record<string, string>) => void;
|
78
80
|
};
|
79
81
|
export type InputFormLibraryProps<T> = Omit<InputFormProps<T>, 'required' | 'components'>;
|
package/src/outsideUse.tsx
CHANGED
@@ -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
|
6
|
-
|
7
|
-
|
8
|
-
|
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];
|
package/src/renderer/fields.tsx
CHANGED
@@ -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) => {
|
package/src/renderer/index.tsx
CHANGED
@@ -5,12 +5,11 @@ import React, { useState } from 'react';
|
|
5
5
|
|
6
6
|
export const Renderer: React.FC<PassedFormProps> = (props) => {
|
7
7
|
const {
|
8
|
-
formObject,
|
9
8
|
f,
|
10
9
|
nodes,
|
11
10
|
override,
|
12
11
|
currentPath,
|
13
|
-
components: {
|
12
|
+
components: { FormLabel, FormField },
|
14
13
|
} = props;
|
15
14
|
const { children, ...allProps } = props;
|
16
15
|
const seekNode = nodes.find((n) => n.name === getTypeName(f.type.fieldType));
|
@@ -41,11 +40,7 @@ export const Renderer: React.FC<PassedFormProps> = (props) => {
|
|
41
40
|
return (
|
42
41
|
<FormField {...allProps}>
|
43
42
|
<FormLabel {...allProps} open={open} setOpen={setOpen} children={children} />
|
44
|
-
{
|
45
|
-
<NullField {...allProps} />
|
46
|
-
) : (
|
47
|
-
<>{(!isInput || open) && <Fields {...allProps} />}</>
|
48
|
-
)}
|
43
|
+
{(!isInput || open) && <Fields {...allProps} />}
|
49
44
|
</FormField>
|
50
45
|
);
|
51
46
|
};
|