@react-typed-forms/schemas 3.0.0-dev.100
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/.rush/temp/package-deps_build.json +13 -0
- package/.rush/temp/shrinkwrap-deps.json +25 -0
- package/lib/controlRender.d.ts +95 -0
- package/lib/controlRender.js +230 -0
- package/lib/hooks.d.ts +9 -0
- package/lib/hooks.js +93 -0
- package/lib/index.d.ts +4 -0
- package/lib/index.js +20 -0
- package/lib/schemaBuilder.d.ts +107 -0
- package/lib/schemaBuilder.js +82 -0
- package/lib/types.d.ts +199 -0
- package/lib/types.js +73 -0
- package/package.json +42 -0
- package/schemas.build.log +2 -0
- package/src/controlRender.tsx +498 -0
- package/src/hooks.ts +167 -0
- package/src/index.ts +4 -0
- package/src/schemaBuilder.ts +167 -0
- package/src/types.ts +245 -0
- package/tsconfig.json +20 -0
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.defaultCompoundField = exports.defaultScalarField = exports.compoundField = exports.boolField = exports.intField = exports.makeCompoundField = exports.makeScalarField = exports.withScalarOptions = exports.stringOptionsField = exports.stringField = exports.buildSchema = void 0;
|
|
4
|
+
const types_1 = require("./types");
|
|
5
|
+
function buildSchema(def) {
|
|
6
|
+
return Object.entries(def).map((x) => x[1](x[0]));
|
|
7
|
+
}
|
|
8
|
+
exports.buildSchema = buildSchema;
|
|
9
|
+
function stringField(displayName, options) {
|
|
10
|
+
return makeScalarField(Object.assign({ type: types_1.FieldType.String, displayName }, options));
|
|
11
|
+
}
|
|
12
|
+
exports.stringField = stringField;
|
|
13
|
+
function stringOptionsField(displayName, ...options) {
|
|
14
|
+
return makeScalarField({
|
|
15
|
+
type: types_1.FieldType.String,
|
|
16
|
+
displayName,
|
|
17
|
+
restrictions: { options },
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
exports.stringOptionsField = stringOptionsField;
|
|
21
|
+
function withScalarOptions(options, v) {
|
|
22
|
+
return (n) => (Object.assign(Object.assign({}, v(n)), options));
|
|
23
|
+
}
|
|
24
|
+
exports.withScalarOptions = withScalarOptions;
|
|
25
|
+
function makeScalarField(options) {
|
|
26
|
+
return (n) => (Object.assign(Object.assign({}, defaultScalarField(n, n)), options));
|
|
27
|
+
}
|
|
28
|
+
exports.makeScalarField = makeScalarField;
|
|
29
|
+
function makeCompoundField(options) {
|
|
30
|
+
return (n) => (Object.assign(Object.assign({}, defaultCompoundField(n, n, false)), options));
|
|
31
|
+
}
|
|
32
|
+
exports.makeCompoundField = makeCompoundField;
|
|
33
|
+
function intField(displayName, options) {
|
|
34
|
+
return makeScalarField(Object.assign({ type: types_1.FieldType.Int, displayName }, options));
|
|
35
|
+
}
|
|
36
|
+
exports.intField = intField;
|
|
37
|
+
function boolField(displayName, options) {
|
|
38
|
+
return makeScalarField(Object.assign({ type: types_1.FieldType.Bool, displayName }, options));
|
|
39
|
+
}
|
|
40
|
+
exports.boolField = boolField;
|
|
41
|
+
function compoundField(displayName, fields, other) {
|
|
42
|
+
return (field) => (Object.assign(Object.assign(Object.assign({}, defaultCompoundField(field, displayName, false)), other), { children: fields }));
|
|
43
|
+
}
|
|
44
|
+
exports.compoundField = compoundField;
|
|
45
|
+
function defaultScalarField(field, displayName) {
|
|
46
|
+
return {
|
|
47
|
+
restrictions: {
|
|
48
|
+
options: [],
|
|
49
|
+
},
|
|
50
|
+
tags: [],
|
|
51
|
+
field,
|
|
52
|
+
displayName,
|
|
53
|
+
type: types_1.FieldType.String,
|
|
54
|
+
collection: false,
|
|
55
|
+
searchable: false,
|
|
56
|
+
schemaType: types_1.SchemaFieldType.Scalar,
|
|
57
|
+
system: false,
|
|
58
|
+
entityRefType: "",
|
|
59
|
+
parentField: "",
|
|
60
|
+
required: false,
|
|
61
|
+
defaultValue: undefined,
|
|
62
|
+
onlyForTypes: [],
|
|
63
|
+
isTypeField: false,
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
exports.defaultScalarField = defaultScalarField;
|
|
67
|
+
function defaultCompoundField(field, displayName, collection) {
|
|
68
|
+
return {
|
|
69
|
+
tags: [],
|
|
70
|
+
field,
|
|
71
|
+
displayName,
|
|
72
|
+
type: types_1.FieldType.Compound,
|
|
73
|
+
collection,
|
|
74
|
+
schemaType: types_1.SchemaFieldType.Compound,
|
|
75
|
+
system: false,
|
|
76
|
+
treeChildren: false,
|
|
77
|
+
children: [],
|
|
78
|
+
onlyForTypes: [],
|
|
79
|
+
required: true,
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
exports.defaultCompoundField = defaultCompoundField;
|
package/lib/types.d.ts
ADDED
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
export interface SchemaField {
|
|
2
|
+
schemaType: SchemaFieldType;
|
|
3
|
+
field: string;
|
|
4
|
+
displayName: string;
|
|
5
|
+
type: FieldType;
|
|
6
|
+
tags: string[];
|
|
7
|
+
system: boolean;
|
|
8
|
+
collection: boolean;
|
|
9
|
+
onlyForTypes: string[];
|
|
10
|
+
required: boolean;
|
|
11
|
+
}
|
|
12
|
+
export declare enum SchemaFieldType {
|
|
13
|
+
Scalar = "Scalar",
|
|
14
|
+
Compound = "Compound"
|
|
15
|
+
}
|
|
16
|
+
export declare enum FieldType {
|
|
17
|
+
String = "String",
|
|
18
|
+
Bool = "Bool",
|
|
19
|
+
Int = "Int",
|
|
20
|
+
Date = "Date",
|
|
21
|
+
DateTime = "DateTime",
|
|
22
|
+
Double = "Double",
|
|
23
|
+
EntityRef = "EntityRef",
|
|
24
|
+
Compound = "Compound",
|
|
25
|
+
AutoId = "AutoId",
|
|
26
|
+
Image = "Image"
|
|
27
|
+
}
|
|
28
|
+
export interface ScalarField extends SchemaField {
|
|
29
|
+
entityRefType: string;
|
|
30
|
+
parentField: string;
|
|
31
|
+
searchable: boolean;
|
|
32
|
+
defaultValue: any;
|
|
33
|
+
isTypeField: boolean;
|
|
34
|
+
restrictions: SchemaRestrictions | undefined;
|
|
35
|
+
}
|
|
36
|
+
export interface SchemaRestrictions {
|
|
37
|
+
options: FieldOption[] | undefined;
|
|
38
|
+
}
|
|
39
|
+
export interface FieldOption {
|
|
40
|
+
name: string;
|
|
41
|
+
value: any;
|
|
42
|
+
}
|
|
43
|
+
export interface CompoundField extends SchemaField {
|
|
44
|
+
children: SchemaField[];
|
|
45
|
+
treeChildren: boolean;
|
|
46
|
+
}
|
|
47
|
+
export type AnyControlDefinition = DataControlDefinition | GroupedControlsDefinition | ActionControlDefinition | DisplayControlDefinition;
|
|
48
|
+
export interface ControlDefinition {
|
|
49
|
+
type: string;
|
|
50
|
+
title?: string;
|
|
51
|
+
dynamic?: DynamicProperty[];
|
|
52
|
+
adornments?: ControlAdornment[];
|
|
53
|
+
}
|
|
54
|
+
export declare enum ControlDefinitionType {
|
|
55
|
+
Data = "Data",
|
|
56
|
+
Group = "Group",
|
|
57
|
+
Display = "Display",
|
|
58
|
+
Action = "Action"
|
|
59
|
+
}
|
|
60
|
+
export interface DynamicProperty {
|
|
61
|
+
type: DynamicPropertyType;
|
|
62
|
+
expr: EntityExpression;
|
|
63
|
+
}
|
|
64
|
+
export declare enum DynamicPropertyType {
|
|
65
|
+
Visible = "Visible",
|
|
66
|
+
DefaultValue = "DefaultValue"
|
|
67
|
+
}
|
|
68
|
+
export interface EntityExpression {
|
|
69
|
+
type: ExpressionType;
|
|
70
|
+
}
|
|
71
|
+
export declare enum ExpressionType {
|
|
72
|
+
Jsonata = "Jsonata",
|
|
73
|
+
FieldValue = "FieldValue",
|
|
74
|
+
UserMatch = "UserMatch"
|
|
75
|
+
}
|
|
76
|
+
export interface JsonataExpression extends EntityExpression {
|
|
77
|
+
expression: string;
|
|
78
|
+
}
|
|
79
|
+
export interface FieldValueExpression extends EntityExpression {
|
|
80
|
+
field: string;
|
|
81
|
+
value: any;
|
|
82
|
+
}
|
|
83
|
+
export interface UserMatchExpression extends EntityExpression {
|
|
84
|
+
userMatch: string;
|
|
85
|
+
}
|
|
86
|
+
export interface ControlAdornment {
|
|
87
|
+
type: ControlAdornmentType;
|
|
88
|
+
}
|
|
89
|
+
export declare enum ControlAdornmentType {
|
|
90
|
+
Tooltip = "Tooltip",
|
|
91
|
+
Accordion = "Accordion"
|
|
92
|
+
}
|
|
93
|
+
export interface TooltipAdornment extends ControlAdornment {
|
|
94
|
+
tooltip: string;
|
|
95
|
+
}
|
|
96
|
+
export interface AccordionAdornment extends ControlAdornment {
|
|
97
|
+
title: string;
|
|
98
|
+
defaultExpanded: boolean;
|
|
99
|
+
}
|
|
100
|
+
export interface DataControlDefinition extends ControlDefinition {
|
|
101
|
+
type: ControlDefinitionType.Data;
|
|
102
|
+
field: string;
|
|
103
|
+
required?: boolean;
|
|
104
|
+
renderOptions: RenderOptions;
|
|
105
|
+
defaultValue?: any;
|
|
106
|
+
readonly?: boolean;
|
|
107
|
+
}
|
|
108
|
+
export interface RenderOptions {
|
|
109
|
+
type: DataRenderType;
|
|
110
|
+
}
|
|
111
|
+
export declare enum DataRenderType {
|
|
112
|
+
Standard = "Standard",
|
|
113
|
+
Radio = "Radio",
|
|
114
|
+
HtmlEditor = "HtmlEditor",
|
|
115
|
+
IconList = "IconList",
|
|
116
|
+
CheckList = "CheckList",
|
|
117
|
+
UserSelection = "UserSelection",
|
|
118
|
+
Synchronised = "Synchronised",
|
|
119
|
+
IconSelector = "IconSelector",
|
|
120
|
+
DateTime = "DateTime"
|
|
121
|
+
}
|
|
122
|
+
export interface RadioButtonRenderOptions extends RenderOptions {
|
|
123
|
+
}
|
|
124
|
+
export interface StandardRenderer extends RenderOptions {
|
|
125
|
+
}
|
|
126
|
+
export interface HtmlEditorRenderOptions extends RenderOptions {
|
|
127
|
+
allowImages: boolean;
|
|
128
|
+
}
|
|
129
|
+
export interface DateTimeRenderOptions extends RenderOptions {
|
|
130
|
+
format?: string;
|
|
131
|
+
}
|
|
132
|
+
export interface IconListRenderOptions extends RenderOptions {
|
|
133
|
+
iconMappings: IconMapping[];
|
|
134
|
+
}
|
|
135
|
+
export interface IconMapping {
|
|
136
|
+
value: string;
|
|
137
|
+
materialIcon: string | undefined;
|
|
138
|
+
}
|
|
139
|
+
export interface CheckListRenderOptions extends RenderOptions {
|
|
140
|
+
}
|
|
141
|
+
export interface SynchronisedRenderOptions extends RenderOptions {
|
|
142
|
+
fieldToSync: string;
|
|
143
|
+
syncType: SyncTextType;
|
|
144
|
+
}
|
|
145
|
+
export declare enum SyncTextType {
|
|
146
|
+
Camel = "Camel",
|
|
147
|
+
Snake = "Snake",
|
|
148
|
+
Pascal = "Pascal"
|
|
149
|
+
}
|
|
150
|
+
export interface UserSelectionRenderOptions extends RenderOptions {
|
|
151
|
+
noGroups: boolean;
|
|
152
|
+
noUsers: boolean;
|
|
153
|
+
}
|
|
154
|
+
export interface IconSelectionRenderOptions extends RenderOptions {
|
|
155
|
+
}
|
|
156
|
+
export interface GroupedControlsDefinition extends ControlDefinition {
|
|
157
|
+
type: ControlDefinitionType.Group;
|
|
158
|
+
children: AnyControlDefinition[];
|
|
159
|
+
compoundField?: string;
|
|
160
|
+
groupOptions: GroupRenderOptions;
|
|
161
|
+
}
|
|
162
|
+
export interface GroupRenderOptions {
|
|
163
|
+
type: GroupRenderType;
|
|
164
|
+
hideTitle?: boolean;
|
|
165
|
+
}
|
|
166
|
+
export declare enum GroupRenderType {
|
|
167
|
+
Standard = "Standard",
|
|
168
|
+
Grid = "Grid",
|
|
169
|
+
GroupElement = "GroupElement"
|
|
170
|
+
}
|
|
171
|
+
export interface StandardGroupRenderer extends GroupRenderOptions {
|
|
172
|
+
}
|
|
173
|
+
export interface GroupElementRenderer extends GroupRenderOptions {
|
|
174
|
+
value: any;
|
|
175
|
+
}
|
|
176
|
+
export interface GridRenderer extends GroupRenderOptions {
|
|
177
|
+
columns: number | undefined;
|
|
178
|
+
}
|
|
179
|
+
export interface DisplayControlDefinition extends ControlDefinition {
|
|
180
|
+
type: ControlDefinitionType.Display;
|
|
181
|
+
displayData: DisplayData;
|
|
182
|
+
}
|
|
183
|
+
export interface DisplayData {
|
|
184
|
+
type: DisplayDataType;
|
|
185
|
+
}
|
|
186
|
+
export declare enum DisplayDataType {
|
|
187
|
+
Text = "Text",
|
|
188
|
+
Html = "Html"
|
|
189
|
+
}
|
|
190
|
+
export interface TextDisplay extends DisplayData {
|
|
191
|
+
text: string;
|
|
192
|
+
}
|
|
193
|
+
export interface HtmlDisplay extends DisplayData {
|
|
194
|
+
html: string;
|
|
195
|
+
}
|
|
196
|
+
export interface ActionControlDefinition extends ControlDefinition {
|
|
197
|
+
type: ControlDefinitionType.Action;
|
|
198
|
+
actionId: string;
|
|
199
|
+
}
|
package/lib/types.js
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DisplayDataType = exports.GroupRenderType = exports.SyncTextType = exports.DataRenderType = exports.ControlAdornmentType = exports.ExpressionType = exports.DynamicPropertyType = exports.ControlDefinitionType = exports.FieldType = exports.SchemaFieldType = void 0;
|
|
4
|
+
var SchemaFieldType;
|
|
5
|
+
(function (SchemaFieldType) {
|
|
6
|
+
SchemaFieldType["Scalar"] = "Scalar";
|
|
7
|
+
SchemaFieldType["Compound"] = "Compound";
|
|
8
|
+
})(SchemaFieldType = exports.SchemaFieldType || (exports.SchemaFieldType = {}));
|
|
9
|
+
var FieldType;
|
|
10
|
+
(function (FieldType) {
|
|
11
|
+
FieldType["String"] = "String";
|
|
12
|
+
FieldType["Bool"] = "Bool";
|
|
13
|
+
FieldType["Int"] = "Int";
|
|
14
|
+
FieldType["Date"] = "Date";
|
|
15
|
+
FieldType["DateTime"] = "DateTime";
|
|
16
|
+
FieldType["Double"] = "Double";
|
|
17
|
+
FieldType["EntityRef"] = "EntityRef";
|
|
18
|
+
FieldType["Compound"] = "Compound";
|
|
19
|
+
FieldType["AutoId"] = "AutoId";
|
|
20
|
+
FieldType["Image"] = "Image";
|
|
21
|
+
})(FieldType = exports.FieldType || (exports.FieldType = {}));
|
|
22
|
+
var ControlDefinitionType;
|
|
23
|
+
(function (ControlDefinitionType) {
|
|
24
|
+
ControlDefinitionType["Data"] = "Data";
|
|
25
|
+
ControlDefinitionType["Group"] = "Group";
|
|
26
|
+
ControlDefinitionType["Display"] = "Display";
|
|
27
|
+
ControlDefinitionType["Action"] = "Action";
|
|
28
|
+
})(ControlDefinitionType = exports.ControlDefinitionType || (exports.ControlDefinitionType = {}));
|
|
29
|
+
var DynamicPropertyType;
|
|
30
|
+
(function (DynamicPropertyType) {
|
|
31
|
+
DynamicPropertyType["Visible"] = "Visible";
|
|
32
|
+
DynamicPropertyType["DefaultValue"] = "DefaultValue";
|
|
33
|
+
})(DynamicPropertyType = exports.DynamicPropertyType || (exports.DynamicPropertyType = {}));
|
|
34
|
+
var ExpressionType;
|
|
35
|
+
(function (ExpressionType) {
|
|
36
|
+
ExpressionType["Jsonata"] = "Jsonata";
|
|
37
|
+
ExpressionType["FieldValue"] = "FieldValue";
|
|
38
|
+
ExpressionType["UserMatch"] = "UserMatch";
|
|
39
|
+
})(ExpressionType = exports.ExpressionType || (exports.ExpressionType = {}));
|
|
40
|
+
var ControlAdornmentType;
|
|
41
|
+
(function (ControlAdornmentType) {
|
|
42
|
+
ControlAdornmentType["Tooltip"] = "Tooltip";
|
|
43
|
+
ControlAdornmentType["Accordion"] = "Accordion";
|
|
44
|
+
})(ControlAdornmentType = exports.ControlAdornmentType || (exports.ControlAdornmentType = {}));
|
|
45
|
+
var DataRenderType;
|
|
46
|
+
(function (DataRenderType) {
|
|
47
|
+
DataRenderType["Standard"] = "Standard";
|
|
48
|
+
DataRenderType["Radio"] = "Radio";
|
|
49
|
+
DataRenderType["HtmlEditor"] = "HtmlEditor";
|
|
50
|
+
DataRenderType["IconList"] = "IconList";
|
|
51
|
+
DataRenderType["CheckList"] = "CheckList";
|
|
52
|
+
DataRenderType["UserSelection"] = "UserSelection";
|
|
53
|
+
DataRenderType["Synchronised"] = "Synchronised";
|
|
54
|
+
DataRenderType["IconSelector"] = "IconSelector";
|
|
55
|
+
DataRenderType["DateTime"] = "DateTime";
|
|
56
|
+
})(DataRenderType = exports.DataRenderType || (exports.DataRenderType = {}));
|
|
57
|
+
var SyncTextType;
|
|
58
|
+
(function (SyncTextType) {
|
|
59
|
+
SyncTextType["Camel"] = "Camel";
|
|
60
|
+
SyncTextType["Snake"] = "Snake";
|
|
61
|
+
SyncTextType["Pascal"] = "Pascal";
|
|
62
|
+
})(SyncTextType = exports.SyncTextType || (exports.SyncTextType = {}));
|
|
63
|
+
var GroupRenderType;
|
|
64
|
+
(function (GroupRenderType) {
|
|
65
|
+
GroupRenderType["Standard"] = "Standard";
|
|
66
|
+
GroupRenderType["Grid"] = "Grid";
|
|
67
|
+
GroupRenderType["GroupElement"] = "GroupElement";
|
|
68
|
+
})(GroupRenderType = exports.GroupRenderType || (exports.GroupRenderType = {}));
|
|
69
|
+
var DisplayDataType;
|
|
70
|
+
(function (DisplayDataType) {
|
|
71
|
+
DisplayDataType["Text"] = "Text";
|
|
72
|
+
DisplayDataType["Html"] = "Html";
|
|
73
|
+
})(DisplayDataType = exports.DisplayDataType || (exports.DisplayDataType = {}));
|
package/package.json
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@react-typed-forms/schemas",
|
|
3
|
+
"version": "3.0.0-dev.100",
|
|
4
|
+
"description": "",
|
|
5
|
+
"main": "lib/index.js",
|
|
6
|
+
"types": "lib/index.d.ts",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "git+https://github.com/doolse/react-typed-forms.git"
|
|
10
|
+
},
|
|
11
|
+
"author": "Jolse Maginnis",
|
|
12
|
+
"license": "ISC",
|
|
13
|
+
"bugs": {
|
|
14
|
+
"url": "https://github.com/doolse/react-typed-forms/issues"
|
|
15
|
+
},
|
|
16
|
+
"homepage": "https://github.com/doolse/react-typed-forms#readme",
|
|
17
|
+
"publishConfig": {
|
|
18
|
+
"access": "public"
|
|
19
|
+
},
|
|
20
|
+
"keywords": [
|
|
21
|
+
"react",
|
|
22
|
+
"typescript",
|
|
23
|
+
"forms",
|
|
24
|
+
"material-ui"
|
|
25
|
+
],
|
|
26
|
+
"dependencies": {
|
|
27
|
+
"@react-typed-forms/core": "3.0.0-dev.100"
|
|
28
|
+
},
|
|
29
|
+
"devDependencies": {
|
|
30
|
+
"@types/react": "^18.0.22",
|
|
31
|
+
"nswag": "^13.18.2",
|
|
32
|
+
"react": "^18.2.0",
|
|
33
|
+
"react-dom": "^18.2.0",
|
|
34
|
+
"rimraf": "^3.0.2"
|
|
35
|
+
},
|
|
36
|
+
"gitHead": "698e16cd3ab31b7dd0528fc76536f4d3205ce8c6",
|
|
37
|
+
"scripts": {
|
|
38
|
+
"build": "rimraf ./lib/ && tsc",
|
|
39
|
+
"watch": "tsc -w",
|
|
40
|
+
"gencode": "nswag swagger2tsclient /input:http://localhost:5216/swagger/v1/swagger.json /runtime:Net60 /output:src/types.ts /GenerateClientClasses:false /MarkOptionalProperties:false /Template:Fetch /TypeStyle:Interface /DateTimeType:string"
|
|
41
|
+
}
|
|
42
|
+
}
|