@fieldia/vue 0.10.0 → 0.11.0
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 +22 -1
- package/package.json +4 -4
- package/src/lib/fieldia-form.d.mts +86 -5
- package/src/lib/fieldia-form.d.ts +86 -5
- package/src/lib/fieldia-form.js +30 -2
- package/src/lib/fieldia-form.js.map +1 -1
- package/src/lib/fieldia-form.mjs +30 -2
- package/src/lib/fieldia-form.mjs.map +1 -1
package/README.md
CHANGED
|
@@ -23,4 +23,25 @@ const dataSource = createMemoryDataSource();
|
|
|
23
23
|
|
|
24
24
|
Custom fields can be Vue components (`fieldTypes`), slot content goes in named
|
|
25
25
|
slots, and `useFormState(form)` gives you a form's state as a ref. A list page
|
|
26
|
-
opens a row through the `@open-record` event.
|
|
26
|
+
opens a row through the `@open-record` event.
|
|
27
|
+
|
|
28
|
+
The form's events are emitted — `change`, `save`, `send`, `step`, `run` — and
|
|
29
|
+
`@action`'s handler may answer a button or a `call` step (it is the `onAction`
|
|
30
|
+
prop, so what it returns comes back):
|
|
31
|
+
|
|
32
|
+
```vue
|
|
33
|
+
<FieldiaForm
|
|
34
|
+
:page="page"
|
|
35
|
+
:data-source="dataSource"
|
|
36
|
+
:pages="pages"
|
|
37
|
+
@action="({ action, values }) => (action === 'check_stock' ? { values: { price: priceOf(values.product) } } : undefined)"
|
|
38
|
+
@change="({ field, value, by }) => {}"
|
|
39
|
+
@save="({ recordId, values }) => {}"
|
|
40
|
+
@send="({ values }) => {}"
|
|
41
|
+
@step="({ step }) => {}"
|
|
42
|
+
@run="({ id, result }) => {}"
|
|
43
|
+
/>
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
`host` and `on-open` are the viewer's own options (see `@fieldia/viewer`); the
|
|
47
|
+
handle from `@ready` has `on`, `setValues` and `run`. MIT licensed.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fieldia/vue",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.11.0",
|
|
4
4
|
"description": "Vue binding for Fieldia: <FieldiaForm> over the plain-DOM viewer, with custom fields as Vue components and slots as Vue slots.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://fieldia.dev",
|
|
@@ -21,9 +21,9 @@
|
|
|
21
21
|
"./package.json": "./package.json"
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@fieldia/core": "0.
|
|
25
|
-
"@fieldia/viewer": "0.
|
|
26
|
-
"@fieldia/widgets": "0.
|
|
24
|
+
"@fieldia/core": "0.11.0",
|
|
25
|
+
"@fieldia/viewer": "0.11.0",
|
|
26
|
+
"@fieldia/widgets": "0.11.0",
|
|
27
27
|
"tslib": "^2.8.1"
|
|
28
28
|
},
|
|
29
29
|
"sideEffects": false,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { DataSource, DraftStore, Field, FieldNode, Form, FormEvents, FormState, Locale, OnAction, Page, RecordId, Scheduler, Value, Values } from '@fieldia/core';
|
|
2
2
|
import { type Skin, type ViewerHandle, type ViewerLabels, type ViewerOptions } from '@fieldia/viewer';
|
|
3
3
|
import type { PreferenceStore, WidgetFactory, WidgetState } from '@fieldia/widgets';
|
|
4
4
|
import { type Component, type PropType, type ShallowRef } from 'vue';
|
|
@@ -94,6 +94,11 @@ export declare const FieldiaForm: import("vue").DefineComponent<import("vue").Ex
|
|
|
94
94
|
type: PropType<PreferenceStore>;
|
|
95
95
|
default: undefined;
|
|
96
96
|
};
|
|
97
|
+
/** The app's pages: a saved form placed in the page by its id, a link's record by its model. */
|
|
98
|
+
pages: {
|
|
99
|
+
type: PropType<ViewerOptions["pages"]>;
|
|
100
|
+
default: undefined;
|
|
101
|
+
};
|
|
97
102
|
relatedPages: {
|
|
98
103
|
type: PropType<ViewerOptions["relatedPages"]>;
|
|
99
104
|
default: undefined;
|
|
@@ -126,13 +131,41 @@ export declare const FieldiaForm: import("vue").DefineComponent<import("vue").Ex
|
|
|
126
131
|
type: PropType<ViewerOptions["translate"]>;
|
|
127
132
|
default: undefined;
|
|
128
133
|
};
|
|
134
|
+
/**
|
|
135
|
+
* A button's app action, or a `call` step: `@action="…"` as before, and what
|
|
136
|
+
* it returns — values, words, a page to open, a stop — the form takes. A
|
|
137
|
+
* prop rather than an event, so its answer comes back.
|
|
138
|
+
*/
|
|
139
|
+
onAction: {
|
|
140
|
+
type: PropType<OnAction>;
|
|
141
|
+
default: undefined;
|
|
142
|
+
};
|
|
143
|
+
/** Your own way to open a page a step asks for; undefined lets the viewer open it. */
|
|
144
|
+
onOpen: {
|
|
145
|
+
type: PropType<ViewerOptions["onOpen"]>;
|
|
146
|
+
default: undefined;
|
|
147
|
+
};
|
|
148
|
+
/** Any of the viewer's host done your own way: words said, a question asked, a page opened, a tab shown. */
|
|
149
|
+
host: {
|
|
150
|
+
type: PropType<ViewerOptions["host"]>;
|
|
151
|
+
default: undefined;
|
|
152
|
+
};
|
|
129
153
|
}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
130
154
|
[key: string]: any;
|
|
131
155
|
}>[], {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
132
156
|
ready: (_handle: ViewerHandle) => true;
|
|
133
|
-
action: (_request: ActionRequest) => true;
|
|
134
157
|
/** A list's row was opened: the app shows the record. */
|
|
135
158
|
openRecord: (_id: RecordId) => true;
|
|
159
|
+
/** A field was written — `by` a person, a step or the app. */
|
|
160
|
+
change: (_event: FormEvents["change"]) => true;
|
|
161
|
+
/** A record was saved. */
|
|
162
|
+
save: (_event: FormEvents["save"]) => true;
|
|
163
|
+
/** A page of responses sent its answers. */
|
|
164
|
+
send: (_event: FormEvents["send"]) => true;
|
|
165
|
+
/** A wizard's step was entered. */
|
|
166
|
+
step: (_event: FormEvents["step"]) => true;
|
|
167
|
+
/** A run of steps ended — a button's, a moment's — and how. */
|
|
168
|
+
run: (_event: FormEvents["run"]) => true;
|
|
136
169
|
}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
137
170
|
page: {
|
|
138
171
|
type: PropType<Page>;
|
|
@@ -204,6 +237,11 @@ export declare const FieldiaForm: import("vue").DefineComponent<import("vue").Ex
|
|
|
204
237
|
type: PropType<PreferenceStore>;
|
|
205
238
|
default: undefined;
|
|
206
239
|
};
|
|
240
|
+
/** The app's pages: a saved form placed in the page by its id, a link's record by its model. */
|
|
241
|
+
pages: {
|
|
242
|
+
type: PropType<ViewerOptions["pages"]>;
|
|
243
|
+
default: undefined;
|
|
244
|
+
};
|
|
207
245
|
relatedPages: {
|
|
208
246
|
type: PropType<ViewerOptions["relatedPages"]>;
|
|
209
247
|
default: undefined;
|
|
@@ -236,16 +274,58 @@ export declare const FieldiaForm: import("vue").DefineComponent<import("vue").Ex
|
|
|
236
274
|
type: PropType<ViewerOptions["translate"]>;
|
|
237
275
|
default: undefined;
|
|
238
276
|
};
|
|
277
|
+
/**
|
|
278
|
+
* A button's app action, or a `call` step: `@action="…"` as before, and what
|
|
279
|
+
* it returns — values, words, a page to open, a stop — the form takes. A
|
|
280
|
+
* prop rather than an event, so its answer comes back.
|
|
281
|
+
*/
|
|
282
|
+
onAction: {
|
|
283
|
+
type: PropType<OnAction>;
|
|
284
|
+
default: undefined;
|
|
285
|
+
};
|
|
286
|
+
/** Your own way to open a page a step asks for; undefined lets the viewer open it. */
|
|
287
|
+
onOpen: {
|
|
288
|
+
type: PropType<ViewerOptions["onOpen"]>;
|
|
289
|
+
default: undefined;
|
|
290
|
+
};
|
|
291
|
+
/** Any of the viewer's host done your own way: words said, a question asked, a page opened, a tab shown. */
|
|
292
|
+
host: {
|
|
293
|
+
type: PropType<ViewerOptions["host"]>;
|
|
294
|
+
default: undefined;
|
|
295
|
+
};
|
|
239
296
|
}>> & Readonly<{
|
|
297
|
+
onChange?: ((_event: {
|
|
298
|
+
field: string;
|
|
299
|
+
value: Value;
|
|
300
|
+
values: Readonly<Values>;
|
|
301
|
+
by: import("@fieldia/core").ChangeBy;
|
|
302
|
+
}) => any) | undefined;
|
|
303
|
+
onSave?: ((_event: {
|
|
304
|
+
recordId: RecordId | null;
|
|
305
|
+
values: Readonly<Values>;
|
|
306
|
+
}) => any) | undefined;
|
|
307
|
+
onSend?: ((_event: {
|
|
308
|
+
values: Values;
|
|
309
|
+
}) => any) | undefined;
|
|
310
|
+
onStep?: ((_event: {
|
|
311
|
+
step: string;
|
|
312
|
+
}) => any) | undefined;
|
|
313
|
+
onRun?: ((_event: {
|
|
314
|
+
id: string;
|
|
315
|
+
steps: readonly import("@fieldia/core").ActionStep[];
|
|
316
|
+
result: import("@fieldia/core").RunResult;
|
|
317
|
+
}) => any) | undefined;
|
|
240
318
|
onReady?: ((_handle: ViewerHandle) => any) | undefined;
|
|
241
|
-
onAction?: ((_request: ActionRequest) => any) | undefined;
|
|
242
319
|
onOpenRecord?: ((_id: RecordId) => any) | undefined;
|
|
243
320
|
}>, {
|
|
244
321
|
values: Values;
|
|
245
322
|
readonly: boolean;
|
|
246
|
-
|
|
323
|
+
pages: import("@fieldia/viewer").PageFinder | undefined;
|
|
324
|
+
host: Partial<import("@fieldia/core").ActionHost> | undefined;
|
|
247
325
|
dataSource: DataSource;
|
|
248
326
|
recordId: RecordId | null;
|
|
327
|
+
onAction: OnAction;
|
|
328
|
+
confirm: (message: string) => Promise<boolean>;
|
|
249
329
|
drafts: {
|
|
250
330
|
store: DraftStore;
|
|
251
331
|
restore?: "auto" | "ask";
|
|
@@ -255,6 +335,7 @@ export declare const FieldiaForm: import("vue").DefineComponent<import("vue").Ex
|
|
|
255
335
|
delayMs: number;
|
|
256
336
|
};
|
|
257
337
|
scheduler: Scheduler;
|
|
338
|
+
relatedPages: Record<string, Page> | ((model: string) => Page | null | undefined) | undefined;
|
|
258
339
|
icons: Readonly<Record<string, string>> | undefined;
|
|
259
340
|
keys: {
|
|
260
341
|
saveWithCtrlEnter?: boolean;
|
|
@@ -262,6 +343,7 @@ export declare const FieldiaForm: import("vue").DefineComponent<import("vue").Ex
|
|
|
262
343
|
} | undefined;
|
|
263
344
|
saveStatus: "inline" | "toast" | "bar" | undefined;
|
|
264
345
|
translate: ((text: string) => string) | undefined;
|
|
346
|
+
onOpen: ((request: import("@fieldia/core").OpenRequest) => Promise<import("@fieldia/core").OpenResult> | undefined) | undefined;
|
|
265
347
|
form: Form;
|
|
266
348
|
skin: Skin;
|
|
267
349
|
dir: "ltr" | "rtl";
|
|
@@ -269,7 +351,6 @@ export declare const FieldiaForm: import("vue").DefineComponent<import("vue").Ex
|
|
|
269
351
|
labels: Partial<ViewerLabels>;
|
|
270
352
|
widgets: Record<string, WidgetFactory>;
|
|
271
353
|
fieldTypes: Record<string, Component>;
|
|
272
|
-
confirm: (message: string) => Promise<boolean>;
|
|
273
354
|
preferences: PreferenceStore;
|
|
274
355
|
showValid: boolean;
|
|
275
356
|
editSwitch: boolean;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { DataSource, DraftStore, Field, FieldNode, Form, FormEvents, FormState, Locale, OnAction, Page, RecordId, Scheduler, Value, Values } from '@fieldia/core';
|
|
2
2
|
import { type Skin, type ViewerHandle, type ViewerLabels, type ViewerOptions } from '@fieldia/viewer';
|
|
3
3
|
import type { PreferenceStore, WidgetFactory, WidgetState } from '@fieldia/widgets';
|
|
4
4
|
import { type Component, type PropType, type ShallowRef } from 'vue';
|
|
@@ -94,6 +94,11 @@ export declare const FieldiaForm: import("vue").DefineComponent<import("vue").Ex
|
|
|
94
94
|
type: PropType<PreferenceStore>;
|
|
95
95
|
default: undefined;
|
|
96
96
|
};
|
|
97
|
+
/** The app's pages: a saved form placed in the page by its id, a link's record by its model. */
|
|
98
|
+
pages: {
|
|
99
|
+
type: PropType<ViewerOptions["pages"]>;
|
|
100
|
+
default: undefined;
|
|
101
|
+
};
|
|
97
102
|
relatedPages: {
|
|
98
103
|
type: PropType<ViewerOptions["relatedPages"]>;
|
|
99
104
|
default: undefined;
|
|
@@ -126,13 +131,41 @@ export declare const FieldiaForm: import("vue").DefineComponent<import("vue").Ex
|
|
|
126
131
|
type: PropType<ViewerOptions["translate"]>;
|
|
127
132
|
default: undefined;
|
|
128
133
|
};
|
|
134
|
+
/**
|
|
135
|
+
* A button's app action, or a `call` step: `@action="…"` as before, and what
|
|
136
|
+
* it returns — values, words, a page to open, a stop — the form takes. A
|
|
137
|
+
* prop rather than an event, so its answer comes back.
|
|
138
|
+
*/
|
|
139
|
+
onAction: {
|
|
140
|
+
type: PropType<OnAction>;
|
|
141
|
+
default: undefined;
|
|
142
|
+
};
|
|
143
|
+
/** Your own way to open a page a step asks for; undefined lets the viewer open it. */
|
|
144
|
+
onOpen: {
|
|
145
|
+
type: PropType<ViewerOptions["onOpen"]>;
|
|
146
|
+
default: undefined;
|
|
147
|
+
};
|
|
148
|
+
/** Any of the viewer's host done your own way: words said, a question asked, a page opened, a tab shown. */
|
|
149
|
+
host: {
|
|
150
|
+
type: PropType<ViewerOptions["host"]>;
|
|
151
|
+
default: undefined;
|
|
152
|
+
};
|
|
129
153
|
}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
130
154
|
[key: string]: any;
|
|
131
155
|
}>[], {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
132
156
|
ready: (_handle: ViewerHandle) => true;
|
|
133
|
-
action: (_request: ActionRequest) => true;
|
|
134
157
|
/** A list's row was opened: the app shows the record. */
|
|
135
158
|
openRecord: (_id: RecordId) => true;
|
|
159
|
+
/** A field was written — `by` a person, a step or the app. */
|
|
160
|
+
change: (_event: FormEvents["change"]) => true;
|
|
161
|
+
/** A record was saved. */
|
|
162
|
+
save: (_event: FormEvents["save"]) => true;
|
|
163
|
+
/** A page of responses sent its answers. */
|
|
164
|
+
send: (_event: FormEvents["send"]) => true;
|
|
165
|
+
/** A wizard's step was entered. */
|
|
166
|
+
step: (_event: FormEvents["step"]) => true;
|
|
167
|
+
/** A run of steps ended — a button's, a moment's — and how. */
|
|
168
|
+
run: (_event: FormEvents["run"]) => true;
|
|
136
169
|
}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
137
170
|
page: {
|
|
138
171
|
type: PropType<Page>;
|
|
@@ -204,6 +237,11 @@ export declare const FieldiaForm: import("vue").DefineComponent<import("vue").Ex
|
|
|
204
237
|
type: PropType<PreferenceStore>;
|
|
205
238
|
default: undefined;
|
|
206
239
|
};
|
|
240
|
+
/** The app's pages: a saved form placed in the page by its id, a link's record by its model. */
|
|
241
|
+
pages: {
|
|
242
|
+
type: PropType<ViewerOptions["pages"]>;
|
|
243
|
+
default: undefined;
|
|
244
|
+
};
|
|
207
245
|
relatedPages: {
|
|
208
246
|
type: PropType<ViewerOptions["relatedPages"]>;
|
|
209
247
|
default: undefined;
|
|
@@ -236,16 +274,58 @@ export declare const FieldiaForm: import("vue").DefineComponent<import("vue").Ex
|
|
|
236
274
|
type: PropType<ViewerOptions["translate"]>;
|
|
237
275
|
default: undefined;
|
|
238
276
|
};
|
|
277
|
+
/**
|
|
278
|
+
* A button's app action, or a `call` step: `@action="…"` as before, and what
|
|
279
|
+
* it returns — values, words, a page to open, a stop — the form takes. A
|
|
280
|
+
* prop rather than an event, so its answer comes back.
|
|
281
|
+
*/
|
|
282
|
+
onAction: {
|
|
283
|
+
type: PropType<OnAction>;
|
|
284
|
+
default: undefined;
|
|
285
|
+
};
|
|
286
|
+
/** Your own way to open a page a step asks for; undefined lets the viewer open it. */
|
|
287
|
+
onOpen: {
|
|
288
|
+
type: PropType<ViewerOptions["onOpen"]>;
|
|
289
|
+
default: undefined;
|
|
290
|
+
};
|
|
291
|
+
/** Any of the viewer's host done your own way: words said, a question asked, a page opened, a tab shown. */
|
|
292
|
+
host: {
|
|
293
|
+
type: PropType<ViewerOptions["host"]>;
|
|
294
|
+
default: undefined;
|
|
295
|
+
};
|
|
239
296
|
}>> & Readonly<{
|
|
297
|
+
onChange?: ((_event: {
|
|
298
|
+
field: string;
|
|
299
|
+
value: Value;
|
|
300
|
+
values: Readonly<Values>;
|
|
301
|
+
by: import("@fieldia/core").ChangeBy;
|
|
302
|
+
}) => any) | undefined;
|
|
303
|
+
onSave?: ((_event: {
|
|
304
|
+
recordId: RecordId | null;
|
|
305
|
+
values: Readonly<Values>;
|
|
306
|
+
}) => any) | undefined;
|
|
307
|
+
onSend?: ((_event: {
|
|
308
|
+
values: Values;
|
|
309
|
+
}) => any) | undefined;
|
|
310
|
+
onStep?: ((_event: {
|
|
311
|
+
step: string;
|
|
312
|
+
}) => any) | undefined;
|
|
313
|
+
onRun?: ((_event: {
|
|
314
|
+
id: string;
|
|
315
|
+
steps: readonly import("@fieldia/core").ActionStep[];
|
|
316
|
+
result: import("@fieldia/core").RunResult;
|
|
317
|
+
}) => any) | undefined;
|
|
240
318
|
onReady?: ((_handle: ViewerHandle) => any) | undefined;
|
|
241
|
-
onAction?: ((_request: ActionRequest) => any) | undefined;
|
|
242
319
|
onOpenRecord?: ((_id: RecordId) => any) | undefined;
|
|
243
320
|
}>, {
|
|
244
321
|
values: Values;
|
|
245
322
|
readonly: boolean;
|
|
246
|
-
|
|
323
|
+
pages: import("@fieldia/viewer").PageFinder | undefined;
|
|
324
|
+
host: Partial<import("@fieldia/core").ActionHost> | undefined;
|
|
247
325
|
dataSource: DataSource;
|
|
248
326
|
recordId: RecordId | null;
|
|
327
|
+
onAction: OnAction;
|
|
328
|
+
confirm: (message: string) => Promise<boolean>;
|
|
249
329
|
drafts: {
|
|
250
330
|
store: DraftStore;
|
|
251
331
|
restore?: "auto" | "ask";
|
|
@@ -255,6 +335,7 @@ export declare const FieldiaForm: import("vue").DefineComponent<import("vue").Ex
|
|
|
255
335
|
delayMs: number;
|
|
256
336
|
};
|
|
257
337
|
scheduler: Scheduler;
|
|
338
|
+
relatedPages: Record<string, Page> | ((model: string) => Page | null | undefined) | undefined;
|
|
258
339
|
icons: Readonly<Record<string, string>> | undefined;
|
|
259
340
|
keys: {
|
|
260
341
|
saveWithCtrlEnter?: boolean;
|
|
@@ -262,6 +343,7 @@ export declare const FieldiaForm: import("vue").DefineComponent<import("vue").Ex
|
|
|
262
343
|
} | undefined;
|
|
263
344
|
saveStatus: "inline" | "toast" | "bar" | undefined;
|
|
264
345
|
translate: ((text: string) => string) | undefined;
|
|
346
|
+
onOpen: ((request: import("@fieldia/core").OpenRequest) => Promise<import("@fieldia/core").OpenResult> | undefined) | undefined;
|
|
265
347
|
form: Form;
|
|
266
348
|
skin: Skin;
|
|
267
349
|
dir: "ltr" | "rtl";
|
|
@@ -269,7 +351,6 @@ export declare const FieldiaForm: import("vue").DefineComponent<import("vue").Ex
|
|
|
269
351
|
labels: Partial<ViewerLabels>;
|
|
270
352
|
widgets: Record<string, WidgetFactory>;
|
|
271
353
|
fieldTypes: Record<string, Component>;
|
|
272
|
-
confirm: (message: string) => Promise<boolean>;
|
|
273
354
|
preferences: PreferenceStore;
|
|
274
355
|
showValid: boolean;
|
|
275
356
|
editSwitch: boolean;
|
package/src/lib/fieldia-form.js
CHANGED
|
@@ -12,6 +12,8 @@ function useFormState(form) {
|
|
|
12
12
|
(0, vue_1.onScopeDispose)(leave);
|
|
13
13
|
return state;
|
|
14
14
|
}
|
|
15
|
+
/** The form's events, each emitted under its own name. */
|
|
16
|
+
const EVENTS = ['change', 'save', 'send', 'step', 'run'];
|
|
15
17
|
const EMPTY_STATE = { value: undefined, values: {}, readonly: false, required: false, invalid: false };
|
|
16
18
|
exports.FieldiaForm = (0, vue_1.defineComponent)({
|
|
17
19
|
name: 'FieldiaForm',
|
|
@@ -32,6 +34,8 @@ exports.FieldiaForm = (0, vue_1.defineComponent)({
|
|
|
32
34
|
scheduler: { type: Object, default: undefined },
|
|
33
35
|
confirm: { type: Function, default: undefined },
|
|
34
36
|
preferences: { type: Object, default: undefined },
|
|
37
|
+
/** The app's pages: a saved form placed in the page by its id, a link's record by its model. */
|
|
38
|
+
pages: { type: [Object, Function], default: undefined },
|
|
35
39
|
relatedPages: { type: [Object, Function], default: undefined },
|
|
36
40
|
icons: { type: Object, default: undefined },
|
|
37
41
|
keys: { type: Object, default: undefined },
|
|
@@ -40,12 +44,31 @@ exports.FieldiaForm = (0, vue_1.defineComponent)({
|
|
|
40
44
|
readonly: { type: Boolean, default: false },
|
|
41
45
|
editSwitch: { type: Boolean, default: false },
|
|
42
46
|
translate: { type: Function, default: undefined },
|
|
47
|
+
/**
|
|
48
|
+
* A button's app action, or a `call` step: `@action="…"` as before, and what
|
|
49
|
+
* it returns — values, words, a page to open, a stop — the form takes. A
|
|
50
|
+
* prop rather than an event, so its answer comes back.
|
|
51
|
+
*/
|
|
52
|
+
onAction: { type: Function, default: undefined },
|
|
53
|
+
/** Your own way to open a page a step asks for; undefined lets the viewer open it. */
|
|
54
|
+
onOpen: { type: Function, default: undefined },
|
|
55
|
+
/** Any of the viewer's host done your own way: words said, a question asked, a page opened, a tab shown. */
|
|
56
|
+
host: { type: Object, default: undefined },
|
|
43
57
|
},
|
|
44
58
|
emits: {
|
|
45
59
|
ready: (_handle) => true,
|
|
46
|
-
action: (_request) => true,
|
|
47
60
|
/** A list's row was opened: the app shows the record. */
|
|
48
61
|
openRecord: (_id) => true,
|
|
62
|
+
/** A field was written — `by` a person, a step or the app. */
|
|
63
|
+
change: (_event) => true,
|
|
64
|
+
/** A record was saved. */
|
|
65
|
+
save: (_event) => true,
|
|
66
|
+
/** A page of responses sent its answers. */
|
|
67
|
+
send: (_event) => true,
|
|
68
|
+
/** A wizard's step was entered. */
|
|
69
|
+
step: (_event) => true,
|
|
70
|
+
/** A run of steps ended — a button's, a moment's — and how. */
|
|
71
|
+
run: (_event) => true,
|
|
49
72
|
},
|
|
50
73
|
setup(props, { slots, emit, expose }) {
|
|
51
74
|
const host = (0, vue_1.ref)();
|
|
@@ -113,6 +136,7 @@ exports.FieldiaForm = (0, vue_1.defineComponent)({
|
|
|
113
136
|
confirm: props.confirm,
|
|
114
137
|
// The app's own store, not Vue's reactive copy of it.
|
|
115
138
|
preferences: props.preferences ? (0, vue_1.toRaw)(props.preferences) : undefined,
|
|
139
|
+
pages: props.pages ? (0, vue_1.toRaw)(props.pages) : undefined,
|
|
116
140
|
relatedPages: props.relatedPages ? (0, vue_1.toRaw)(props.relatedPages) : undefined,
|
|
117
141
|
icons: props.icons ? (0, vue_1.toRaw)(props.icons) : undefined,
|
|
118
142
|
keys: props.keys ? (0, vue_1.toRaw)(props.keys) : undefined,
|
|
@@ -121,9 +145,13 @@ exports.FieldiaForm = (0, vue_1.defineComponent)({
|
|
|
121
145
|
readonly: props.readonly,
|
|
122
146
|
editSwitch: props.editSwitch,
|
|
123
147
|
translate: props.translate,
|
|
124
|
-
onAction: (request) =>
|
|
148
|
+
onAction: (request) => props.onAction?.(request),
|
|
149
|
+
onOpen: props.onOpen,
|
|
150
|
+
host: props.host ? (0, vue_1.toRaw)(props.host) : undefined,
|
|
125
151
|
onOpenRecord: (id) => emit('openRecord', id),
|
|
126
152
|
});
|
|
153
|
+
for (const event of EVENTS)
|
|
154
|
+
handle.on(event, (payload) => emit(event, payload));
|
|
127
155
|
portals.value = found;
|
|
128
156
|
emit('ready', handle);
|
|
129
157
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fieldia-form.js","sourceRoot":"","sources":["../../../../../libs/vue/src/lib/fieldia-form.ts"],"names":[],"mappings":";;;AA2CA,oCAKC;AA/CD,4CAAsI;AAEtI,6BAgBa;AAuBb,4DAA4D;AAC5D,SAAgB,YAAY,CAAC,IAAU;IACrC,MAAM,KAAK,GAAG,IAAA,gBAAU,EAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC;IAC7D,IAAI,IAAA,qBAAe,GAAE;QAAE,IAAA,oBAAc,EAAC,KAAK,CAAC,CAAC;IAC7C,OAAO,KAAK,CAAC;AACf,CAAC;AAQD,MAAM,WAAW,GAAgB,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAEvG,QAAA,WAAW,GAAG,IAAA,qBAAe,EAAC;IACzC,IAAI,EAAE,aAAa;IACnB,KAAK,EAAE;QACL,IAAI,EAAE,EAAE,IAAI,EAAE,MAAwB,EAAE,QAAQ,EAAE,IAAI,EAAE;QACxD,IAAI,EAAE,EAAE,IAAI,EAAE,MAAwB,EAAE,OAAO,EAAE,SAAS,EAAE;QAC5D,UAAU,EAAE,EAAE,IAAI,EAAE,MAA8B,EAAE,OAAO,EAAE,SAAS,EAAE;QACxE,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAA8B,EAAE,OAAO,EAAE,IAAI,EAAE;QAChF,MAAM,EAAE,EAAE,IAAI,EAAE,MAA0B,EAAE,OAAO,EAAE,SAAS,EAAE;QAChE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAwB,EAAE,OAAO,EAAE,WAAW,EAAE;QAC9D,GAAG,EAAE,EAAE,IAAI,EAAE,MAAiC,EAAE,OAAO,EAAE,SAAS,EAAE;QACpE,MAAM,EAAE,EAAE,IAAI,EAAE,MAA0B,EAAE,OAAO,EAAE,SAAS,EAAE;QAChE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAyC,EAAE,OAAO,EAAE,SAAS,EAAE;QAC/E,OAAO,EAAE,EAAE,IAAI,EAAE,MAAiD,EAAE,OAAO,EAAE,SAAS,EAAE;QACxF,UAAU,EAAE,EAAE,IAAI,EAAE,MAA6C,EAAE,OAAO,EAAE,SAAS,EAAE;QACvF,MAAM,EAAE,EAAE,IAAI,EAAE,MAAqF,EAAE,OAAO,EAAE,SAAS,EAAE;QAC3H,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAuC,EAAE,OAAO,EAAE,SAAS,EAAE;QAC/E,SAAS,EAAE,EAAE,IAAI,EAAE,MAA6B,EAAE,OAAO,EAAE,SAAS,EAAE;QACtE,OAAO,EAAE,EAAE,IAAI,EAAE,QAA2D,EAAE,OAAO,EAAE,SAAS,EAAE;QAClG,WAAW,EAAE,EAAE,IAAI,EAAE,MAAmC,EAAE,OAAO,EAAE,SAAS,EAAE;QAC9E,YAAY,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,CAA4C,EAAE,OAAO,EAAE,SAAS,EAAE;QACzG,KAAK,EAAE,EAAE,IAAI,EAAE,MAA0C,EAAE,OAAO,EAAE,SAAS,EAAE;QAC/E,IAAI,EAAE,EAAE,IAAI,EAAE,MAAyC,EAAE,OAAO,EAAE,SAAS,EAAE;QAC7E,SAAS,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE;QAC5C,UAAU,EAAE,EAAE,IAAI,EAAE,MAA+C,EAAE,OAAO,EAAE,SAAS,EAAE;QACzF,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE;QAC3C,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE;QAC7C,SAAS,EAAE,EAAE,IAAI,EAAE,QAAgD,EAAE,OAAO,EAAE,SAAS,EAAE;
|
|
1
|
+
{"version":3,"file":"fieldia-form.js","sourceRoot":"","sources":["../../../../../libs/vue/src/lib/fieldia-form.ts"],"names":[],"mappings":"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"}
|
package/src/lib/fieldia-form.mjs
CHANGED
|
@@ -8,6 +8,8 @@ export function useFormState(form) {
|
|
|
8
8
|
onScopeDispose(leave);
|
|
9
9
|
return state;
|
|
10
10
|
}
|
|
11
|
+
/** The form's events, each emitted under its own name. */
|
|
12
|
+
const EVENTS = ['change', 'save', 'send', 'step', 'run'];
|
|
11
13
|
const EMPTY_STATE = { value: undefined, values: {}, readonly: false, required: false, invalid: false };
|
|
12
14
|
export const FieldiaForm = defineComponent({
|
|
13
15
|
name: 'FieldiaForm',
|
|
@@ -28,6 +30,8 @@ export const FieldiaForm = defineComponent({
|
|
|
28
30
|
scheduler: { type: Object, default: undefined },
|
|
29
31
|
confirm: { type: Function, default: undefined },
|
|
30
32
|
preferences: { type: Object, default: undefined },
|
|
33
|
+
/** The app's pages: a saved form placed in the page by its id, a link's record by its model. */
|
|
34
|
+
pages: { type: [Object, Function], default: undefined },
|
|
31
35
|
relatedPages: { type: [Object, Function], default: undefined },
|
|
32
36
|
icons: { type: Object, default: undefined },
|
|
33
37
|
keys: { type: Object, default: undefined },
|
|
@@ -36,12 +40,31 @@ export const FieldiaForm = defineComponent({
|
|
|
36
40
|
readonly: { type: Boolean, default: false },
|
|
37
41
|
editSwitch: { type: Boolean, default: false },
|
|
38
42
|
translate: { type: Function, default: undefined },
|
|
43
|
+
/**
|
|
44
|
+
* A button's app action, or a `call` step: `@action="…"` as before, and what
|
|
45
|
+
* it returns — values, words, a page to open, a stop — the form takes. A
|
|
46
|
+
* prop rather than an event, so its answer comes back.
|
|
47
|
+
*/
|
|
48
|
+
onAction: { type: Function, default: undefined },
|
|
49
|
+
/** Your own way to open a page a step asks for; undefined lets the viewer open it. */
|
|
50
|
+
onOpen: { type: Function, default: undefined },
|
|
51
|
+
/** Any of the viewer's host done your own way: words said, a question asked, a page opened, a tab shown. */
|
|
52
|
+
host: { type: Object, default: undefined },
|
|
39
53
|
},
|
|
40
54
|
emits: {
|
|
41
55
|
ready: (_handle) => true,
|
|
42
|
-
action: (_request) => true,
|
|
43
56
|
/** A list's row was opened: the app shows the record. */
|
|
44
57
|
openRecord: (_id) => true,
|
|
58
|
+
/** A field was written — `by` a person, a step or the app. */
|
|
59
|
+
change: (_event) => true,
|
|
60
|
+
/** A record was saved. */
|
|
61
|
+
save: (_event) => true,
|
|
62
|
+
/** A page of responses sent its answers. */
|
|
63
|
+
send: (_event) => true,
|
|
64
|
+
/** A wizard's step was entered. */
|
|
65
|
+
step: (_event) => true,
|
|
66
|
+
/** A run of steps ended — a button's, a moment's — and how. */
|
|
67
|
+
run: (_event) => true,
|
|
45
68
|
},
|
|
46
69
|
setup(props, { slots, emit, expose }) {
|
|
47
70
|
const host = ref();
|
|
@@ -109,6 +132,7 @@ export const FieldiaForm = defineComponent({
|
|
|
109
132
|
confirm: props.confirm,
|
|
110
133
|
// The app's own store, not Vue's reactive copy of it.
|
|
111
134
|
preferences: props.preferences ? toRaw(props.preferences) : undefined,
|
|
135
|
+
pages: props.pages ? toRaw(props.pages) : undefined,
|
|
112
136
|
relatedPages: props.relatedPages ? toRaw(props.relatedPages) : undefined,
|
|
113
137
|
icons: props.icons ? toRaw(props.icons) : undefined,
|
|
114
138
|
keys: props.keys ? toRaw(props.keys) : undefined,
|
|
@@ -117,9 +141,13 @@ export const FieldiaForm = defineComponent({
|
|
|
117
141
|
readonly: props.readonly,
|
|
118
142
|
editSwitch: props.editSwitch,
|
|
119
143
|
translate: props.translate,
|
|
120
|
-
onAction: (request) =>
|
|
144
|
+
onAction: (request) => props.onAction?.(request),
|
|
145
|
+
onOpen: props.onOpen,
|
|
146
|
+
host: props.host ? toRaw(props.host) : undefined,
|
|
121
147
|
onOpenRecord: (id) => emit('openRecord', id),
|
|
122
148
|
});
|
|
149
|
+
for (const event of EVENTS)
|
|
150
|
+
handle.on(event, (payload) => emit(event, payload));
|
|
123
151
|
portals.value = found;
|
|
124
152
|
emit('ready', handle);
|
|
125
153
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fieldia-form.mjs","sourceRoot":"","sources":["../../../../../libs/vue/src/lib/fieldia-form.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"fieldia-form.mjs","sourceRoot":"","sources":["../../../../../libs/vue/src/lib/fieldia-form.ts"],"names":[],"mappings":"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"}
|