@duke333/builder-ui 0.1.1 → 0.1.4
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/README.md +38 -120
- package/dist/BuilderAdminPages-Buy2nvjs.d.ts +592 -0
- package/dist/admin/index.d.ts +7 -590
- package/dist/admin/index.js +39 -21
- package/dist/admin/index.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +61 -36
- package/dist/index.js.map +1 -1
- package/dist/integration/index.d.ts +27 -2
- package/dist/integration/index.js +1843 -11
- package/dist/integration/index.js.map +1 -1
- package/package.json +17 -1
|
@@ -0,0 +1,592 @@
|
|
|
1
|
+
import * as react from 'react';
|
|
2
|
+
import { ReactNode } from 'react';
|
|
3
|
+
import { BuilderApiContracts } from './api/index.js';
|
|
4
|
+
import { BuilderHooks } from './hooks/index.js';
|
|
5
|
+
import { UseFormReturn, UseFieldArrayReturn, Resolver } from 'react-hook-form';
|
|
6
|
+
|
|
7
|
+
declare const BUILDER_EDITOR_NONE_VALUE = "__none";
|
|
8
|
+
type BuilderEditorSelectOption = {
|
|
9
|
+
label: string;
|
|
10
|
+
value: string;
|
|
11
|
+
};
|
|
12
|
+
type BuilderEditorDbTable<TFieldType extends string = string> = {
|
|
13
|
+
name: string;
|
|
14
|
+
label?: string;
|
|
15
|
+
lookupColumns?: Array<{
|
|
16
|
+
name: string;
|
|
17
|
+
label: string;
|
|
18
|
+
}>;
|
|
19
|
+
columns: Array<{
|
|
20
|
+
name: string;
|
|
21
|
+
label: string;
|
|
22
|
+
fieldType: TFieldType;
|
|
23
|
+
nullable: boolean;
|
|
24
|
+
dataType: string;
|
|
25
|
+
sortable: boolean;
|
|
26
|
+
}>;
|
|
27
|
+
};
|
|
28
|
+
type BuilderEditorSource = {
|
|
29
|
+
type: "dbTable";
|
|
30
|
+
tableName: string;
|
|
31
|
+
} | {
|
|
32
|
+
type: "apiEndpoint";
|
|
33
|
+
basePath: string;
|
|
34
|
+
} | null;
|
|
35
|
+
type BuilderEditorTrigger<TEvent extends string> = {
|
|
36
|
+
event: TEvent;
|
|
37
|
+
action: string;
|
|
38
|
+
enabled: boolean;
|
|
39
|
+
blocking: boolean;
|
|
40
|
+
config: Record<string, unknown>;
|
|
41
|
+
};
|
|
42
|
+
type BuilderEditorField<TFieldType extends string> = {
|
|
43
|
+
key: string;
|
|
44
|
+
label: string;
|
|
45
|
+
type: TFieldType;
|
|
46
|
+
required: boolean;
|
|
47
|
+
hidden?: boolean;
|
|
48
|
+
disabled?: boolean;
|
|
49
|
+
placeholder?: string;
|
|
50
|
+
description?: string;
|
|
51
|
+
options?: BuilderEditorSelectOption[];
|
|
52
|
+
optionsSource?: {
|
|
53
|
+
type: "dbTable";
|
|
54
|
+
tableName: string;
|
|
55
|
+
valueField: string;
|
|
56
|
+
labelField: string;
|
|
57
|
+
searchFields?: string[];
|
|
58
|
+
filterBy?: {
|
|
59
|
+
field: string;
|
|
60
|
+
valueFromField: string;
|
|
61
|
+
};
|
|
62
|
+
} | undefined;
|
|
63
|
+
triggers?: BuilderEditorFieldTrigger[];
|
|
64
|
+
};
|
|
65
|
+
type BuilderEditorSubform = {
|
|
66
|
+
key: string;
|
|
67
|
+
label: string;
|
|
68
|
+
viewId: string;
|
|
69
|
+
parentField: string;
|
|
70
|
+
childField: string;
|
|
71
|
+
buttonLabel?: string;
|
|
72
|
+
icon?: string;
|
|
73
|
+
};
|
|
74
|
+
type BuilderEditorFormLayoutField = {
|
|
75
|
+
key: string;
|
|
76
|
+
span?: number;
|
|
77
|
+
};
|
|
78
|
+
type BuilderEditorFormLayoutGroup = {
|
|
79
|
+
id: string;
|
|
80
|
+
title?: string | null;
|
|
81
|
+
columns?: 6 | 8 | 12;
|
|
82
|
+
fields?: BuilderEditorFormLayoutField[];
|
|
83
|
+
};
|
|
84
|
+
type BuilderEditorFormLayout = {
|
|
85
|
+
groups?: BuilderEditorFormLayoutGroup[];
|
|
86
|
+
};
|
|
87
|
+
type BuilderEditorColumn = {
|
|
88
|
+
key: string;
|
|
89
|
+
label: string;
|
|
90
|
+
sortable: boolean;
|
|
91
|
+
align: "left" | "right";
|
|
92
|
+
};
|
|
93
|
+
type BuilderFormEditorEntity<TFieldType extends string = string, TTriggerEvent extends string = string> = {
|
|
94
|
+
title: string;
|
|
95
|
+
description: string | null;
|
|
96
|
+
version: number;
|
|
97
|
+
source: BuilderEditorSource;
|
|
98
|
+
schema: {
|
|
99
|
+
fields: BuilderEditorField<TFieldType>[];
|
|
100
|
+
layout?: BuilderEditorFormLayout;
|
|
101
|
+
subforms?: BuilderEditorSubform[];
|
|
102
|
+
};
|
|
103
|
+
triggers: BuilderEditorTrigger<TTriggerEvent>[];
|
|
104
|
+
};
|
|
105
|
+
type BuilderListEditorEntity<TTriggerEvent extends string = string> = {
|
|
106
|
+
title: string;
|
|
107
|
+
description: string | null;
|
|
108
|
+
version: number;
|
|
109
|
+
source: BuilderEditorSource;
|
|
110
|
+
schema: {
|
|
111
|
+
columns: BuilderEditorColumn[];
|
|
112
|
+
};
|
|
113
|
+
triggers: BuilderEditorTrigger<TTriggerEvent>[];
|
|
114
|
+
};
|
|
115
|
+
type BuilderFormEditorFieldValues<TFieldType extends string = string> = {
|
|
116
|
+
key: string;
|
|
117
|
+
label: string;
|
|
118
|
+
type: TFieldType;
|
|
119
|
+
required: boolean;
|
|
120
|
+
hidden: boolean;
|
|
121
|
+
disabled: boolean;
|
|
122
|
+
placeholder?: string;
|
|
123
|
+
optionsText?: string;
|
|
124
|
+
optionsMode: "static" | "table";
|
|
125
|
+
optionsTable: string;
|
|
126
|
+
optionsValueField: string;
|
|
127
|
+
optionsLabelField: string;
|
|
128
|
+
optionsSearchFieldsText?: string;
|
|
129
|
+
optionsDependsOn?: string;
|
|
130
|
+
optionsFilterField?: string;
|
|
131
|
+
triggers: BuilderEditorFieldTriggerValues[];
|
|
132
|
+
};
|
|
133
|
+
type BuilderFormEditorSubformValues = {
|
|
134
|
+
key: string;
|
|
135
|
+
label: string;
|
|
136
|
+
viewId: string;
|
|
137
|
+
parentField: string;
|
|
138
|
+
childField: string;
|
|
139
|
+
buttonLabel?: string;
|
|
140
|
+
icon?: string;
|
|
141
|
+
};
|
|
142
|
+
type BuilderFormEditorLayoutFieldValues = {
|
|
143
|
+
key: string;
|
|
144
|
+
span: number;
|
|
145
|
+
};
|
|
146
|
+
type BuilderFormEditorLayoutGroupValues = {
|
|
147
|
+
id: string;
|
|
148
|
+
title: string;
|
|
149
|
+
columns: 6 | 8 | 12;
|
|
150
|
+
fields: BuilderFormEditorLayoutFieldValues[];
|
|
151
|
+
};
|
|
152
|
+
type BuilderEditorTriggerValues<TEvent extends string = string> = {
|
|
153
|
+
event: TEvent;
|
|
154
|
+
route: string;
|
|
155
|
+
enabled: boolean;
|
|
156
|
+
blocking: boolean;
|
|
157
|
+
};
|
|
158
|
+
type BuilderEditorFieldTrigger = {
|
|
159
|
+
event: string;
|
|
160
|
+
action: string;
|
|
161
|
+
enabled: boolean;
|
|
162
|
+
debounceMs: number;
|
|
163
|
+
config: Record<string, unknown>;
|
|
164
|
+
};
|
|
165
|
+
type BuilderEditorFieldTriggerValues = {
|
|
166
|
+
event: string;
|
|
167
|
+
action: string;
|
|
168
|
+
enabled: boolean;
|
|
169
|
+
debounceMs: number;
|
|
170
|
+
};
|
|
171
|
+
type BuilderFormEditorValues<TFieldType extends string = string, TTriggerEvent extends string = string> = {
|
|
172
|
+
title: string;
|
|
173
|
+
description?: string;
|
|
174
|
+
sourceType: "none" | "dbTable" | "apiEndpoint";
|
|
175
|
+
sourceTable: string;
|
|
176
|
+
apiBasePath?: string;
|
|
177
|
+
fields: BuilderFormEditorFieldValues<TFieldType>[];
|
|
178
|
+
layoutGroups: BuilderFormEditorLayoutGroupValues[];
|
|
179
|
+
subforms?: BuilderFormEditorSubformValues[];
|
|
180
|
+
triggers: BuilderEditorTriggerValues<TTriggerEvent>[];
|
|
181
|
+
version: number;
|
|
182
|
+
};
|
|
183
|
+
type BuilderListEditorColumnValues = {
|
|
184
|
+
key: string;
|
|
185
|
+
label: string;
|
|
186
|
+
sortable: boolean;
|
|
187
|
+
align: "left" | "right";
|
|
188
|
+
};
|
|
189
|
+
type BuilderListEditorValues<TTriggerEvent extends string = string> = {
|
|
190
|
+
title: string;
|
|
191
|
+
description?: string;
|
|
192
|
+
sourceType: "none" | "dbTable" | "apiEndpoint";
|
|
193
|
+
sourceTable: string;
|
|
194
|
+
apiBasePath?: string;
|
|
195
|
+
columns: BuilderListEditorColumnValues[];
|
|
196
|
+
triggers: BuilderEditorTriggerValues<TTriggerEvent>[];
|
|
197
|
+
version: number;
|
|
198
|
+
};
|
|
199
|
+
type BuilderViewEditorEntity<TTrigger = unknown> = {
|
|
200
|
+
title: string;
|
|
201
|
+
description: string | null;
|
|
202
|
+
formId: string | null;
|
|
203
|
+
listId: string | null;
|
|
204
|
+
permissionRead?: string | null;
|
|
205
|
+
permissionWrite?: string | null;
|
|
206
|
+
triggers: TTrigger[];
|
|
207
|
+
version: number;
|
|
208
|
+
};
|
|
209
|
+
type BuilderViewEditorValues = {
|
|
210
|
+
title: string;
|
|
211
|
+
description?: string;
|
|
212
|
+
formId: string;
|
|
213
|
+
listId: string;
|
|
214
|
+
permissionRead: string;
|
|
215
|
+
permissionWrite: string;
|
|
216
|
+
triggersText?: string;
|
|
217
|
+
version: number;
|
|
218
|
+
};
|
|
219
|
+
declare function builderEditorOptionsToText(options?: BuilderEditorSelectOption[]): string;
|
|
220
|
+
declare function builderEditorTextToOptions(value?: string): BuilderEditorSelectOption[] | undefined;
|
|
221
|
+
declare function builderEditorSearchFieldsToText(fields?: string[]): string;
|
|
222
|
+
declare function builderEditorTextToSearchFields(value?: string): string[] | undefined;
|
|
223
|
+
declare function getBuilderEditorTriggerRoute(config: Record<string, unknown>): string;
|
|
224
|
+
declare function builderFormEditorDefaultSpan<TFieldType extends string>(field: BuilderFormEditorFieldValues<TFieldType>): 6 | 12;
|
|
225
|
+
declare function builderFormEditorDefaultLayoutGroups<TFieldType extends string>(fields: BuilderFormEditorFieldValues<TFieldType>[], subforms?: BuilderFormEditorSubformValues[]): BuilderFormEditorLayoutGroupValues[];
|
|
226
|
+
declare function builderFormEditorValuesFromEntity<TFieldType extends string, TTriggerEvent extends string>(form: BuilderFormEditorEntity<TFieldType, TTriggerEvent> | null, emptyValues: BuilderFormEditorValues<TFieldType, TTriggerEvent>): BuilderFormEditorValues<TFieldType, TTriggerEvent>;
|
|
227
|
+
declare function builderListEditorValuesFromEntity<TTriggerEvent extends string>(list: BuilderListEditorEntity<TTriggerEvent> | null, emptyValues: BuilderListEditorValues<TTriggerEvent>): BuilderListEditorValues<TTriggerEvent>;
|
|
228
|
+
declare function builderViewEditorValuesFromEntity<TTrigger>(view: BuilderViewEditorEntity<TTrigger> | null, emptyValues: BuilderViewEditorValues, defaultPermission?: string): BuilderViewEditorValues;
|
|
229
|
+
declare function builderFormEditorFieldsFromTable<TFieldType extends string>(table: BuilderEditorDbTable<TFieldType>): BuilderFormEditorFieldValues<TFieldType>[];
|
|
230
|
+
declare function builderListEditorColumnsFromTable<TFieldType extends string>(table: BuilderEditorDbTable<TFieldType>): BuilderListEditorColumnValues[];
|
|
231
|
+
declare function builderFormEditorInputFromValues<TFieldType extends string, TTriggerEvent extends string>(values: BuilderFormEditorValues<TFieldType, TTriggerEvent>): {
|
|
232
|
+
title: string;
|
|
233
|
+
description: string | null;
|
|
234
|
+
source: {
|
|
235
|
+
type: "dbTable";
|
|
236
|
+
tableName: string;
|
|
237
|
+
basePath?: undefined;
|
|
238
|
+
} | {
|
|
239
|
+
type: "apiEndpoint";
|
|
240
|
+
basePath: string;
|
|
241
|
+
tableName?: undefined;
|
|
242
|
+
} | null;
|
|
243
|
+
schema: {
|
|
244
|
+
fields: {
|
|
245
|
+
key: string;
|
|
246
|
+
label: string;
|
|
247
|
+
type: TFieldType;
|
|
248
|
+
required: boolean;
|
|
249
|
+
hidden: boolean;
|
|
250
|
+
disabled: boolean;
|
|
251
|
+
placeholder: string;
|
|
252
|
+
options: BuilderEditorSelectOption[] | undefined;
|
|
253
|
+
optionsSource: {
|
|
254
|
+
type: "dbTable";
|
|
255
|
+
tableName: string;
|
|
256
|
+
valueField: string;
|
|
257
|
+
labelField: string;
|
|
258
|
+
searchFields: string[] | undefined;
|
|
259
|
+
filterBy: {
|
|
260
|
+
field: string;
|
|
261
|
+
valueFromField: string;
|
|
262
|
+
} | undefined;
|
|
263
|
+
} | undefined;
|
|
264
|
+
triggers: {
|
|
265
|
+
event: string;
|
|
266
|
+
action: string;
|
|
267
|
+
enabled: boolean;
|
|
268
|
+
debounceMs: number;
|
|
269
|
+
config: {};
|
|
270
|
+
}[];
|
|
271
|
+
}[];
|
|
272
|
+
layout: {
|
|
273
|
+
groups: BuilderFormEditorLayoutGroupValues[];
|
|
274
|
+
};
|
|
275
|
+
subforms: {
|
|
276
|
+
key: string;
|
|
277
|
+
label: string;
|
|
278
|
+
viewId: string;
|
|
279
|
+
parentField: string;
|
|
280
|
+
childField: string;
|
|
281
|
+
buttonLabel: string | undefined;
|
|
282
|
+
icon: string | undefined;
|
|
283
|
+
}[];
|
|
284
|
+
};
|
|
285
|
+
triggers: {
|
|
286
|
+
event: TTriggerEvent;
|
|
287
|
+
action: "callApi";
|
|
288
|
+
enabled: boolean;
|
|
289
|
+
blocking: boolean;
|
|
290
|
+
config: {
|
|
291
|
+
route: string;
|
|
292
|
+
};
|
|
293
|
+
}[];
|
|
294
|
+
version: number;
|
|
295
|
+
};
|
|
296
|
+
declare function builderListEditorInputFromValues<TTriggerEvent extends string>(values: BuilderListEditorValues<TTriggerEvent>): {
|
|
297
|
+
title: string;
|
|
298
|
+
description: string | null;
|
|
299
|
+
source: {
|
|
300
|
+
type: "dbTable";
|
|
301
|
+
tableName: string;
|
|
302
|
+
basePath?: undefined;
|
|
303
|
+
} | {
|
|
304
|
+
type: "apiEndpoint";
|
|
305
|
+
basePath: string;
|
|
306
|
+
tableName?: undefined;
|
|
307
|
+
} | null;
|
|
308
|
+
schema: {
|
|
309
|
+
columns: BuilderListEditorColumnValues[];
|
|
310
|
+
};
|
|
311
|
+
triggers: {
|
|
312
|
+
event: TTriggerEvent;
|
|
313
|
+
action: "callApi";
|
|
314
|
+
enabled: boolean;
|
|
315
|
+
blocking: boolean;
|
|
316
|
+
config: {
|
|
317
|
+
route: string;
|
|
318
|
+
};
|
|
319
|
+
}[];
|
|
320
|
+
version: number;
|
|
321
|
+
};
|
|
322
|
+
declare function builderViewEditorInputFromValues<TTrigger>(values: BuilderViewEditorValues, parseTriggers: (value: string) => TTrigger[]): {
|
|
323
|
+
title: string;
|
|
324
|
+
description: string | null;
|
|
325
|
+
formId: string | null;
|
|
326
|
+
listId: string | null;
|
|
327
|
+
permissionRead: string | null;
|
|
328
|
+
permissionWrite: string | null;
|
|
329
|
+
triggers: TTrigger[];
|
|
330
|
+
version: number;
|
|
331
|
+
};
|
|
332
|
+
|
|
333
|
+
type BuilderEditorEntity = {
|
|
334
|
+
id: string;
|
|
335
|
+
};
|
|
336
|
+
type BuilderEditorQuery<TEntity> = {
|
|
337
|
+
data?: TEntity;
|
|
338
|
+
isPending: boolean;
|
|
339
|
+
isError: boolean;
|
|
340
|
+
};
|
|
341
|
+
type BuilderEditorListQuery<TItem> = {
|
|
342
|
+
data?: TItem[];
|
|
343
|
+
};
|
|
344
|
+
type BuilderEditorSaveMutation<TInput, TEntity> = {
|
|
345
|
+
mutateAsync(args: {
|
|
346
|
+
id?: string;
|
|
347
|
+
input: TInput;
|
|
348
|
+
}): Promise<TEntity>;
|
|
349
|
+
isPending: boolean;
|
|
350
|
+
};
|
|
351
|
+
type BuilderEditorNotifications = {
|
|
352
|
+
success(message: string): void;
|
|
353
|
+
error(error: unknown): void;
|
|
354
|
+
};
|
|
355
|
+
type BuilderEditorLabels = {
|
|
356
|
+
created: string;
|
|
357
|
+
saved: string;
|
|
358
|
+
};
|
|
359
|
+
type BuilderEditorStateLabels = {
|
|
360
|
+
loading: string;
|
|
361
|
+
error: string;
|
|
362
|
+
};
|
|
363
|
+
type BuilderFormEditorBodyProps<TFieldType extends string, TTriggerEvent extends string> = {
|
|
364
|
+
formId?: string;
|
|
365
|
+
form: UseFormReturn<BuilderFormEditorValues<TFieldType, TTriggerEvent>>;
|
|
366
|
+
fieldArray: UseFieldArrayReturn<BuilderFormEditorValues<TFieldType, TTriggerEvent>, "fields">;
|
|
367
|
+
subformArray: UseFieldArrayReturn<BuilderFormEditorValues<TFieldType, TTriggerEvent>, "subforms">;
|
|
368
|
+
triggerArray: UseFieldArrayReturn<BuilderFormEditorValues<TFieldType, TTriggerEvent>, "triggers">;
|
|
369
|
+
fields: BuilderFormEditorFieldValues<TFieldType>[];
|
|
370
|
+
subforms: BuilderFormEditorSubformValues[];
|
|
371
|
+
sourceType: BuilderFormEditorValues<TFieldType, TTriggerEvent>["sourceType"];
|
|
372
|
+
sourceTable: string;
|
|
373
|
+
tables: BuilderEditorDbTable<TFieldType>[];
|
|
374
|
+
emptyField: BuilderFormEditorFieldValues<TFieldType>;
|
|
375
|
+
emptyTrigger: BuilderEditorTriggerValues<TTriggerEvent>;
|
|
376
|
+
isSaving: boolean;
|
|
377
|
+
importFieldsFromTable(): void;
|
|
378
|
+
};
|
|
379
|
+
type BuilderListEditorBodyProps<TTriggerEvent extends string> = {
|
|
380
|
+
listId?: string;
|
|
381
|
+
form: UseFormReturn<BuilderListEditorValues<TTriggerEvent>>;
|
|
382
|
+
columnArray: UseFieldArrayReturn<BuilderListEditorValues<TTriggerEvent>, "columns">;
|
|
383
|
+
triggerArray: UseFieldArrayReturn<BuilderListEditorValues<TTriggerEvent>, "triggers">;
|
|
384
|
+
sourceType: BuilderListEditorValues<TTriggerEvent>["sourceType"];
|
|
385
|
+
sourceTable: string;
|
|
386
|
+
tables: BuilderEditorDbTable[];
|
|
387
|
+
emptyColumn: BuilderListEditorColumnValues;
|
|
388
|
+
emptyTrigger: BuilderEditorTriggerValues<TTriggerEvent>;
|
|
389
|
+
isSaving: boolean;
|
|
390
|
+
importColumnsFromTable(): void;
|
|
391
|
+
};
|
|
392
|
+
type BuilderFormEditorPageDependencies<TEntity extends BuilderEditorEntity & BuilderFormEditorEntity<TFieldType, TTriggerEvent>, TInput, TFieldType extends string, TTriggerEvent extends string> = {
|
|
393
|
+
emptyValues: BuilderFormEditorValues<TFieldType, TTriggerEvent>;
|
|
394
|
+
emptyField: BuilderFormEditorFieldValues<TFieldType>;
|
|
395
|
+
emptyTrigger: BuilderEditorTriggerValues<TTriggerEvent>;
|
|
396
|
+
resolver?: Resolver<BuilderFormEditorValues<TFieldType, TTriggerEvent>>;
|
|
397
|
+
labels: BuilderEditorLabels;
|
|
398
|
+
states: BuilderEditorStateLabels;
|
|
399
|
+
hooks: {
|
|
400
|
+
useEntity(id?: string): BuilderEditorQuery<TEntity>;
|
|
401
|
+
useTables(): BuilderEditorListQuery<BuilderEditorDbTable<TFieldType>>;
|
|
402
|
+
useSave(): BuilderEditorSaveMutation<TInput, TEntity>;
|
|
403
|
+
};
|
|
404
|
+
buildInput(values: BuilderFormEditorValues<TFieldType, TTriggerEvent>): TInput;
|
|
405
|
+
navigateAfterCreate(entity: TEntity): void;
|
|
406
|
+
notifications: BuilderEditorNotifications;
|
|
407
|
+
Body(props: BuilderFormEditorBodyProps<TFieldType, TTriggerEvent>): ReactNode;
|
|
408
|
+
};
|
|
409
|
+
type BuilderListEditorPageDependencies<TEntity extends BuilderEditorEntity & BuilderListEditorEntity<TTriggerEvent>, TInput, TTriggerEvent extends string> = {
|
|
410
|
+
emptyValues: BuilderListEditorValues<TTriggerEvent>;
|
|
411
|
+
emptyColumn: BuilderListEditorColumnValues;
|
|
412
|
+
emptyTrigger: BuilderEditorTriggerValues<TTriggerEvent>;
|
|
413
|
+
resolver?: Resolver<BuilderListEditorValues<TTriggerEvent>>;
|
|
414
|
+
labels: BuilderEditorLabels;
|
|
415
|
+
states: BuilderEditorStateLabels;
|
|
416
|
+
hooks: {
|
|
417
|
+
useEntity(id?: string): BuilderEditorQuery<TEntity>;
|
|
418
|
+
useTables(): BuilderEditorListQuery<BuilderEditorDbTable>;
|
|
419
|
+
useSave(): BuilderEditorSaveMutation<TInput, TEntity>;
|
|
420
|
+
};
|
|
421
|
+
buildInput(values: BuilderListEditorValues<TTriggerEvent>): TInput;
|
|
422
|
+
navigateAfterCreate(entity: TEntity): void;
|
|
423
|
+
notifications: BuilderEditorNotifications;
|
|
424
|
+
Body(props: BuilderListEditorBodyProps<TTriggerEvent>): ReactNode;
|
|
425
|
+
};
|
|
426
|
+
declare function createBuilderFormEditorPageComponent<TEntity extends BuilderEditorEntity & BuilderFormEditorEntity<TFieldType, TTriggerEvent>, TInput, TFieldType extends string, TTriggerEvent extends string>(deps: BuilderFormEditorPageDependencies<TEntity, TInput, TFieldType, TTriggerEvent>): ({ formId }: {
|
|
427
|
+
formId?: string;
|
|
428
|
+
}) => react.JSX.Element;
|
|
429
|
+
declare function createBuilderListEditorPageComponent<TEntity extends BuilderEditorEntity & BuilderListEditorEntity<TTriggerEvent>, TInput, TTriggerEvent extends string>(deps: BuilderListEditorPageDependencies<TEntity, TInput, TTriggerEvent>): ({ listId }: {
|
|
430
|
+
listId?: string;
|
|
431
|
+
}) => react.JSX.Element;
|
|
432
|
+
|
|
433
|
+
type BuilderDefaultOption = {
|
|
434
|
+
value: string;
|
|
435
|
+
label: string;
|
|
436
|
+
};
|
|
437
|
+
type BuilderDefaultFormEditorBodyOptions = {
|
|
438
|
+
backHref: string;
|
|
439
|
+
fieldTypeOptions: BuilderDefaultOption[];
|
|
440
|
+
formTriggerEventOptions: BuilderDefaultOption[];
|
|
441
|
+
fieldTriggerEventOptions: BuilderDefaultOption[];
|
|
442
|
+
};
|
|
443
|
+
type BuilderDefaultListEditorBodyOptions = {
|
|
444
|
+
backHref: string;
|
|
445
|
+
listTriggerEventOptions: BuilderDefaultOption[];
|
|
446
|
+
};
|
|
447
|
+
declare function createBuilderDefaultFormEditorBody<TFieldType extends string, TTriggerEvent extends string>(options: BuilderDefaultFormEditorBodyOptions): ({ formId, form, fieldArray, subformArray, triggerArray, fields, sourceType, sourceTable, tables, emptyField, emptyTrigger, isSaving, importFieldsFromTable, }: BuilderFormEditorBodyProps<TFieldType, TTriggerEvent>) => react.JSX.Element;
|
|
448
|
+
declare function createBuilderDefaultListEditorBody<TTriggerEvent extends string>(options: BuilderDefaultListEditorBodyOptions): ({ listId, form, columnArray, triggerArray, sourceType, sourceTable, tables, emptyColumn, emptyTrigger, isSaving, importColumnsFromTable, }: BuilderListEditorBodyProps<TTriggerEvent>) => react.JSX.Element;
|
|
449
|
+
|
|
450
|
+
type BuilderDefaultEntity = {
|
|
451
|
+
id: string;
|
|
452
|
+
title: string;
|
|
453
|
+
description?: string | null;
|
|
454
|
+
};
|
|
455
|
+
type BuilderDefaultEntityManagerLabels<TEntity extends BuilderDefaultEntity> = {
|
|
456
|
+
title: string;
|
|
457
|
+
description: string;
|
|
458
|
+
searchPlaceholder: string;
|
|
459
|
+
emptyTitle: string;
|
|
460
|
+
emptyDescription: string;
|
|
461
|
+
addLabel: string;
|
|
462
|
+
editLabel: string;
|
|
463
|
+
replicateLabel: string;
|
|
464
|
+
deleteLabel: string;
|
|
465
|
+
runtimeLabel: string;
|
|
466
|
+
deleteConfirm(entity: TEntity): string;
|
|
467
|
+
replicatePrompt(entity: TEntity): string;
|
|
468
|
+
replicateDefaultTitle(entity: TEntity): string;
|
|
469
|
+
};
|
|
470
|
+
type BuilderDefaultEntityListResult<TEntity> = {
|
|
471
|
+
items: TEntity[];
|
|
472
|
+
total: number;
|
|
473
|
+
};
|
|
474
|
+
type BuilderDefaultEntityQueryResult<TEntity> = {
|
|
475
|
+
data?: BuilderDefaultEntityListResult<TEntity>;
|
|
476
|
+
isPending: boolean;
|
|
477
|
+
isError?: boolean;
|
|
478
|
+
};
|
|
479
|
+
type BuilderDefaultEntityMutation<TInput> = {
|
|
480
|
+
mutateAsync(input: TInput): Promise<unknown>;
|
|
481
|
+
isPending?: boolean;
|
|
482
|
+
};
|
|
483
|
+
type BuilderDefaultEntityManagerState = {
|
|
484
|
+
page: number;
|
|
485
|
+
pageSize: number;
|
|
486
|
+
search: string;
|
|
487
|
+
};
|
|
488
|
+
type BuilderDefaultEntityManagerDependencies<TEntity extends BuilderDefaultEntity, TQuery> = {
|
|
489
|
+
labels: BuilderDefaultEntityManagerLabels<TEntity>;
|
|
490
|
+
createHref?: string;
|
|
491
|
+
editHref(entity: TEntity): string;
|
|
492
|
+
runtimeHref?: (entity: TEntity) => string;
|
|
493
|
+
getDetail?: (entity: TEntity) => string;
|
|
494
|
+
buildQuery(state: BuilderDefaultEntityManagerState): TQuery;
|
|
495
|
+
hooks: {
|
|
496
|
+
useEntities(query: TQuery): BuilderDefaultEntityQueryResult<TEntity>;
|
|
497
|
+
useDelete(): BuilderDefaultEntityMutation<string>;
|
|
498
|
+
useReplicate(): BuilderDefaultEntityMutation<{
|
|
499
|
+
id: string;
|
|
500
|
+
input: {
|
|
501
|
+
title?: string;
|
|
502
|
+
};
|
|
503
|
+
}>;
|
|
504
|
+
};
|
|
505
|
+
};
|
|
506
|
+
declare function createBuilderDefaultEntityManagerComponent<TEntity extends BuilderDefaultEntity, TQuery>(deps: BuilderDefaultEntityManagerDependencies<TEntity, TQuery>): () => react.JSX.Element;
|
|
507
|
+
|
|
508
|
+
type BuilderAdminEntity = BuilderDefaultEntity & {
|
|
509
|
+
key?: string;
|
|
510
|
+
};
|
|
511
|
+
type BuilderAdminListResponse<TEntity extends BuilderAdminEntity> = {
|
|
512
|
+
items: TEntity[];
|
|
513
|
+
total: number;
|
|
514
|
+
};
|
|
515
|
+
type BuilderAdminListQuery = {
|
|
516
|
+
page?: number;
|
|
517
|
+
pageSize?: number;
|
|
518
|
+
search?: string;
|
|
519
|
+
};
|
|
520
|
+
type BuilderAdminPageContracts = BuilderApiContracts & {
|
|
521
|
+
BuilderDbTable: BuilderEditorDbTable<string>;
|
|
522
|
+
BuilderForm: BuilderAdminEntity & BuilderFormEditorEntity<string, string>;
|
|
523
|
+
BuilderList: BuilderAdminEntity & BuilderListEditorEntity<string>;
|
|
524
|
+
BuilderView: BuilderAdminEntity & BuilderViewEditorEntity<unknown>;
|
|
525
|
+
ListBuilderFormsQuery: BuilderAdminListQuery;
|
|
526
|
+
ListBuilderListsQuery: BuilderAdminListQuery;
|
|
527
|
+
ListBuilderViewsQuery: BuilderAdminListQuery;
|
|
528
|
+
ListBuilderFormsResponse: BuilderAdminListResponse<BuilderAdminEntity>;
|
|
529
|
+
ListBuilderListsResponse: BuilderAdminListResponse<BuilderAdminEntity>;
|
|
530
|
+
ListBuilderViewsResponse: BuilderAdminListResponse<BuilderAdminEntity>;
|
|
531
|
+
};
|
|
532
|
+
type BuilderAdminPagesRoutes = {
|
|
533
|
+
adminBasePath?: string;
|
|
534
|
+
runtimeBasePath?: string;
|
|
535
|
+
formsPath?: string;
|
|
536
|
+
newFormPath?: string;
|
|
537
|
+
editFormPath?: (id: string) => string;
|
|
538
|
+
runtimeFormPath?: (id: string) => string;
|
|
539
|
+
listsPath?: string;
|
|
540
|
+
newListPath?: string;
|
|
541
|
+
editListPath?: (id: string) => string;
|
|
542
|
+
runtimeListPath?: (id: string) => string;
|
|
543
|
+
viewsPath?: string;
|
|
544
|
+
newViewPath?: string;
|
|
545
|
+
editViewPath?: (id: string) => string;
|
|
546
|
+
runtimeViewPath?: (id: string) => string;
|
|
547
|
+
};
|
|
548
|
+
type BuilderAdminPagesOptions<C extends BuilderAdminPageContracts> = {
|
|
549
|
+
hooks: BuilderHooks<C>;
|
|
550
|
+
routes?: BuilderAdminPagesRoutes;
|
|
551
|
+
fieldTypeOptions?: BuilderDefaultOption[];
|
|
552
|
+
formTriggerEventOptions?: BuilderDefaultOption[];
|
|
553
|
+
listTriggerEventOptions?: BuilderDefaultOption[];
|
|
554
|
+
fieldTriggerEventOptions?: BuilderDefaultOption[];
|
|
555
|
+
permissionOptions?: BuilderDefaultOption[];
|
|
556
|
+
defaultPermission?: string;
|
|
557
|
+
notifySuccess?(message: string): void;
|
|
558
|
+
notifyError?(error: unknown): void;
|
|
559
|
+
parseViewTriggers?(value: string): unknown[];
|
|
560
|
+
};
|
|
561
|
+
declare function createBuilderAdminPages<C extends BuilderAdminPageContracts>({ hooks, routes, fieldTypeOptions, formTriggerEventOptions, listTriggerEventOptions, fieldTriggerEventOptions, permissionOptions, defaultPermission, notifySuccess, notifyError, parseViewTriggers, }: BuilderAdminPagesOptions<C>): {
|
|
562
|
+
AdminHomePage: () => react.JSX.Element;
|
|
563
|
+
AdminFormsPage: () => react.JSX.Element;
|
|
564
|
+
AdminNewFormPage: () => react.JSX.Element;
|
|
565
|
+
AdminEditFormPage: ({ formId }: {
|
|
566
|
+
formId?: string;
|
|
567
|
+
}) => react.JSX.Element;
|
|
568
|
+
AdminListsPage: () => react.JSX.Element;
|
|
569
|
+
AdminNewListPage: () => react.JSX.Element;
|
|
570
|
+
AdminEditListPage: ({ listId }: {
|
|
571
|
+
listId?: string;
|
|
572
|
+
}) => react.JSX.Element;
|
|
573
|
+
AdminViewsPage: () => react.JSX.Element;
|
|
574
|
+
AdminNewViewPage: () => react.JSX.Element;
|
|
575
|
+
AdminEditViewPage: ({ viewId }: {
|
|
576
|
+
viewId?: string;
|
|
577
|
+
}) => react.JSX.Element;
|
|
578
|
+
routes: {
|
|
579
|
+
adminBasePath: string;
|
|
580
|
+
formsPath: string;
|
|
581
|
+
newFormPath: string;
|
|
582
|
+
editFormPath: (id: string) => string;
|
|
583
|
+
listsPath: string;
|
|
584
|
+
newListPath: string;
|
|
585
|
+
editListPath: (id: string) => string;
|
|
586
|
+
viewsPath: string;
|
|
587
|
+
newViewPath: string;
|
|
588
|
+
editViewPath: (id: string) => string;
|
|
589
|
+
};
|
|
590
|
+
};
|
|
591
|
+
|
|
592
|
+
export { type BuilderViewEditorEntity as A, BUILDER_EDITOR_NONE_VALUE as B, type BuilderViewEditorValues as C, builderEditorOptionsToText as D, builderEditorSearchFieldsToText as E, builderEditorTextToOptions as F, builderEditorTextToSearchFields as G, builderFormEditorFieldsFromTable as H, builderFormEditorInputFromValues as I, builderFormEditorValuesFromEntity as J, builderListEditorColumnsFromTable as K, builderListEditorInputFromValues as L, builderListEditorValuesFromEntity as M, builderViewEditorInputFromValues as N, builderViewEditorValuesFromEntity as O, createBuilderAdminPages as P, createBuilderDefaultEntityManagerComponent as Q, createBuilderDefaultFormEditorBody as R, createBuilderDefaultListEditorBody as S, createBuilderFormEditorPageComponent as T, createBuilderListEditorPageComponent as U, getBuilderEditorTriggerRoute as V, type BuilderFormEditorLayoutGroupValues as W, type BuilderFormEditorSubformValues as X, builderFormEditorDefaultLayoutGroups as Y, builderFormEditorDefaultSpan as Z, type BuilderAdminPageContracts as a, type BuilderAdminPagesOptions as b, type BuilderAdminPagesRoutes as c, type BuilderDefaultEntity as d, type BuilderDefaultEntityListResult as e, type BuilderDefaultEntityManagerDependencies as f, type BuilderDefaultEntityManagerLabels as g, type BuilderDefaultEntityManagerState as h, type BuilderDefaultEntityMutation as i, type BuilderDefaultEntityQueryResult as j, type BuilderDefaultFormEditorBodyOptions as k, type BuilderDefaultListEditorBodyOptions as l, type BuilderDefaultOption as m, type BuilderEditorDbTable as n, type BuilderEditorSelectOption as o, type BuilderEditorTriggerValues as p, type BuilderFormEditorBodyProps as q, type BuilderFormEditorEntity as r, type BuilderFormEditorFieldValues as s, type BuilderFormEditorPageDependencies as t, type BuilderFormEditorValues as u, type BuilderListEditorBodyProps as v, type BuilderListEditorColumnValues as w, type BuilderListEditorEntity as x, type BuilderListEditorPageDependencies as y, type BuilderListEditorValues as z };
|