@fieldia/vue 0.10.0 → 0.12.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 +151 -5
- package/src/lib/fieldia-form.d.ts +151 -5
- package/src/lib/fieldia-form.js +50 -3
- package/src/lib/fieldia-form.js.map +1 -1
- package/src/lib/fieldia-form.mjs +50 -3
- 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.12.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.12.0",
|
|
25
|
+
"@fieldia/viewer": "0.12.0",
|
|
26
|
+
"@fieldia/widgets": "0.12.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, FormUser, 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';
|
|
@@ -40,6 +40,16 @@ export declare const FieldiaForm: import("vue").DefineComponent<import("vue").Ex
|
|
|
40
40
|
type: PropType<RecordId | null>;
|
|
41
41
|
default: null;
|
|
42
42
|
};
|
|
43
|
+
/** The person using the form: what `user` reads, and the roles that show parts. */
|
|
44
|
+
user: {
|
|
45
|
+
type: PropType<FormUser>;
|
|
46
|
+
default: undefined;
|
|
47
|
+
};
|
|
48
|
+
/** Values the app passes in, as Flectra's context: what conditions and filters read as `context`. */
|
|
49
|
+
context: {
|
|
50
|
+
type: PropType<ViewerOptions["context"]>;
|
|
51
|
+
default: undefined;
|
|
52
|
+
};
|
|
43
53
|
values: {
|
|
44
54
|
type: PropType<Values>;
|
|
45
55
|
default: undefined;
|
|
@@ -94,6 +104,11 @@ export declare const FieldiaForm: import("vue").DefineComponent<import("vue").Ex
|
|
|
94
104
|
type: PropType<PreferenceStore>;
|
|
95
105
|
default: undefined;
|
|
96
106
|
};
|
|
107
|
+
/** The app's pages: a saved form placed in the page by its id, a link's record by its model. */
|
|
108
|
+
pages: {
|
|
109
|
+
type: PropType<ViewerOptions["pages"]>;
|
|
110
|
+
default: undefined;
|
|
111
|
+
};
|
|
97
112
|
relatedPages: {
|
|
98
113
|
type: PropType<ViewerOptions["relatedPages"]>;
|
|
99
114
|
default: undefined;
|
|
@@ -126,13 +141,57 @@ export declare const FieldiaForm: import("vue").DefineComponent<import("vue").Ex
|
|
|
126
141
|
type: PropType<ViewerOptions["translate"]>;
|
|
127
142
|
default: undefined;
|
|
128
143
|
};
|
|
144
|
+
/**
|
|
145
|
+
* A button's app action, or a `call` step: `@action="…"` as before, and what
|
|
146
|
+
* it returns — values, words, a page to open, a stop — the form takes. A
|
|
147
|
+
* prop rather than an event, so its answer comes back.
|
|
148
|
+
*/
|
|
149
|
+
onAction: {
|
|
150
|
+
type: PropType<OnAction>;
|
|
151
|
+
default: undefined;
|
|
152
|
+
};
|
|
153
|
+
/** Your own way to open a page a step asks for; undefined lets the viewer open it. */
|
|
154
|
+
onOpen: {
|
|
155
|
+
type: PropType<ViewerOptions["onOpen"]>;
|
|
156
|
+
default: undefined;
|
|
157
|
+
};
|
|
158
|
+
/** Any of the viewer's host done your own way: words said, a question asked, a page opened, a tab shown. */
|
|
159
|
+
host: {
|
|
160
|
+
type: PropType<ViewerOptions["host"]>;
|
|
161
|
+
default: undefined;
|
|
162
|
+
};
|
|
163
|
+
/** The records round this one, for the pager over it: their ids, or how many, where this one is, and the id at a place. */
|
|
164
|
+
records: {
|
|
165
|
+
type: PropType<ViewerOptions["records"]>;
|
|
166
|
+
default: undefined;
|
|
167
|
+
};
|
|
168
|
+
/** The trail to this record, for the breadcrumbs over it. */
|
|
169
|
+
breadcrumbs: {
|
|
170
|
+
type: PropType<ViewerOptions["breadcrumbs"]>;
|
|
171
|
+
default: undefined;
|
|
172
|
+
};
|
|
129
173
|
}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
130
174
|
[key: string]: any;
|
|
131
175
|
}>[], {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
132
176
|
ready: (_handle: ViewerHandle) => true;
|
|
133
|
-
action: (_request: ActionRequest) => true;
|
|
134
177
|
/** A list's row was opened: the app shows the record. */
|
|
135
178
|
openRecord: (_id: RecordId) => true;
|
|
179
|
+
/** A field was written — `by` a person, a step or the app. */
|
|
180
|
+
change: (_event: FormEvents["change"]) => true;
|
|
181
|
+
/** A record was saved. */
|
|
182
|
+
save: (_event: FormEvents["save"]) => true;
|
|
183
|
+
/** A page of responses sent its answers. */
|
|
184
|
+
send: (_event: FormEvents["send"]) => true;
|
|
185
|
+
/** A wizard's step was entered. */
|
|
186
|
+
step: (_event: FormEvents["step"]) => true;
|
|
187
|
+
/** A run of steps ended — a button's, a moment's — and how. */
|
|
188
|
+
run: (_event: FormEvents["run"]) => true;
|
|
189
|
+
/** The form has its values: a record loaded — the pager moved on, a copy shown — or a new one. */
|
|
190
|
+
record: (_event: FormEvents["open"]) => true;
|
|
191
|
+
/** The record was archived or brought back, copied, or deleted, by a step such as the gear menu's. */
|
|
192
|
+
archive: (_event: FormEvents["archive"]) => true;
|
|
193
|
+
duplicate: (_event: FormEvents["duplicate"]) => true;
|
|
194
|
+
delete: (_event: FormEvents["delete"]) => true;
|
|
136
195
|
}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
137
196
|
page: {
|
|
138
197
|
type: PropType<Page>;
|
|
@@ -150,6 +209,16 @@ export declare const FieldiaForm: import("vue").DefineComponent<import("vue").Ex
|
|
|
150
209
|
type: PropType<RecordId | null>;
|
|
151
210
|
default: null;
|
|
152
211
|
};
|
|
212
|
+
/** The person using the form: what `user` reads, and the roles that show parts. */
|
|
213
|
+
user: {
|
|
214
|
+
type: PropType<FormUser>;
|
|
215
|
+
default: undefined;
|
|
216
|
+
};
|
|
217
|
+
/** Values the app passes in, as Flectra's context: what conditions and filters read as `context`. */
|
|
218
|
+
context: {
|
|
219
|
+
type: PropType<ViewerOptions["context"]>;
|
|
220
|
+
default: undefined;
|
|
221
|
+
};
|
|
153
222
|
values: {
|
|
154
223
|
type: PropType<Values>;
|
|
155
224
|
default: undefined;
|
|
@@ -204,6 +273,11 @@ export declare const FieldiaForm: import("vue").DefineComponent<import("vue").Ex
|
|
|
204
273
|
type: PropType<PreferenceStore>;
|
|
205
274
|
default: undefined;
|
|
206
275
|
};
|
|
276
|
+
/** The app's pages: a saved form placed in the page by its id, a link's record by its model. */
|
|
277
|
+
pages: {
|
|
278
|
+
type: PropType<ViewerOptions["pages"]>;
|
|
279
|
+
default: undefined;
|
|
280
|
+
};
|
|
207
281
|
relatedPages: {
|
|
208
282
|
type: PropType<ViewerOptions["relatedPages"]>;
|
|
209
283
|
default: undefined;
|
|
@@ -236,16 +310,83 @@ export declare const FieldiaForm: import("vue").DefineComponent<import("vue").Ex
|
|
|
236
310
|
type: PropType<ViewerOptions["translate"]>;
|
|
237
311
|
default: undefined;
|
|
238
312
|
};
|
|
313
|
+
/**
|
|
314
|
+
* A button's app action, or a `call` step: `@action="…"` as before, and what
|
|
315
|
+
* it returns — values, words, a page to open, a stop — the form takes. A
|
|
316
|
+
* prop rather than an event, so its answer comes back.
|
|
317
|
+
*/
|
|
318
|
+
onAction: {
|
|
319
|
+
type: PropType<OnAction>;
|
|
320
|
+
default: undefined;
|
|
321
|
+
};
|
|
322
|
+
/** Your own way to open a page a step asks for; undefined lets the viewer open it. */
|
|
323
|
+
onOpen: {
|
|
324
|
+
type: PropType<ViewerOptions["onOpen"]>;
|
|
325
|
+
default: undefined;
|
|
326
|
+
};
|
|
327
|
+
/** Any of the viewer's host done your own way: words said, a question asked, a page opened, a tab shown. */
|
|
328
|
+
host: {
|
|
329
|
+
type: PropType<ViewerOptions["host"]>;
|
|
330
|
+
default: undefined;
|
|
331
|
+
};
|
|
332
|
+
/** The records round this one, for the pager over it: their ids, or how many, where this one is, and the id at a place. */
|
|
333
|
+
records: {
|
|
334
|
+
type: PropType<ViewerOptions["records"]>;
|
|
335
|
+
default: undefined;
|
|
336
|
+
};
|
|
337
|
+
/** The trail to this record, for the breadcrumbs over it. */
|
|
338
|
+
breadcrumbs: {
|
|
339
|
+
type: PropType<ViewerOptions["breadcrumbs"]>;
|
|
340
|
+
default: undefined;
|
|
341
|
+
};
|
|
239
342
|
}>> & Readonly<{
|
|
343
|
+
onRecord?: ((_event: {
|
|
344
|
+
recordId: RecordId | null;
|
|
345
|
+
values: Readonly<Values>;
|
|
346
|
+
}) => any) | undefined;
|
|
347
|
+
onChange?: ((_event: {
|
|
348
|
+
field: string;
|
|
349
|
+
value: Value;
|
|
350
|
+
values: Readonly<Values>;
|
|
351
|
+
by: import("@fieldia/core").ChangeBy;
|
|
352
|
+
}) => any) | undefined;
|
|
353
|
+
onSave?: ((_event: {
|
|
354
|
+
recordId: RecordId | null;
|
|
355
|
+
values: Readonly<Values>;
|
|
356
|
+
}) => any) | undefined;
|
|
357
|
+
onSend?: ((_event: {
|
|
358
|
+
values: Values;
|
|
359
|
+
}) => any) | undefined;
|
|
360
|
+
onStep?: ((_event: {
|
|
361
|
+
step: string;
|
|
362
|
+
}) => any) | undefined;
|
|
363
|
+
onRun?: ((_event: {
|
|
364
|
+
id: string;
|
|
365
|
+
steps: readonly import("@fieldia/core").ActionStep[];
|
|
366
|
+
result: import("@fieldia/core").RunResult;
|
|
367
|
+
}) => any) | undefined;
|
|
368
|
+
onArchive?: ((_event: {
|
|
369
|
+
recordId: RecordId;
|
|
370
|
+
archived: boolean;
|
|
371
|
+
}) => any) | undefined;
|
|
372
|
+
onDuplicate?: ((_event: {
|
|
373
|
+
from: RecordId;
|
|
374
|
+
recordId: RecordId;
|
|
375
|
+
}) => any) | undefined;
|
|
376
|
+
onDelete?: ((_event: {
|
|
377
|
+
recordId: RecordId;
|
|
378
|
+
}) => any) | undefined;
|
|
240
379
|
onReady?: ((_handle: ViewerHandle) => any) | undefined;
|
|
241
|
-
onAction?: ((_request: ActionRequest) => any) | undefined;
|
|
242
380
|
onOpenRecord?: ((_id: RecordId) => any) | undefined;
|
|
243
381
|
}>, {
|
|
244
382
|
values: Values;
|
|
245
383
|
readonly: boolean;
|
|
246
|
-
|
|
384
|
+
context: Readonly<Record<string, import("@fieldia/core").JsonValue>> | undefined;
|
|
385
|
+
host: Partial<import("@fieldia/core").ActionHost> | undefined;
|
|
247
386
|
dataSource: DataSource;
|
|
248
387
|
recordId: RecordId | null;
|
|
388
|
+
onAction: OnAction;
|
|
389
|
+
confirm: (message: string) => Promise<boolean>;
|
|
249
390
|
drafts: {
|
|
250
391
|
store: DraftStore;
|
|
251
392
|
restore?: "auto" | "ask";
|
|
@@ -255,6 +396,9 @@ export declare const FieldiaForm: import("vue").DefineComponent<import("vue").Ex
|
|
|
255
396
|
delayMs: number;
|
|
256
397
|
};
|
|
257
398
|
scheduler: Scheduler;
|
|
399
|
+
user: FormUser;
|
|
400
|
+
pages: import("@fieldia/viewer").PageFinder | undefined;
|
|
401
|
+
relatedPages: Record<string, Page> | ((model: string) => Page | null | undefined) | undefined;
|
|
258
402
|
icons: Readonly<Record<string, string>> | undefined;
|
|
259
403
|
keys: {
|
|
260
404
|
saveWithCtrlEnter?: boolean;
|
|
@@ -262,6 +406,9 @@ export declare const FieldiaForm: import("vue").DefineComponent<import("vue").Ex
|
|
|
262
406
|
} | undefined;
|
|
263
407
|
saveStatus: "inline" | "toast" | "bar" | undefined;
|
|
264
408
|
translate: ((text: string) => string) | undefined;
|
|
409
|
+
onOpen: ((request: import("@fieldia/core").OpenRequest) => Promise<import("@fieldia/core").OpenResult> | undefined) | undefined;
|
|
410
|
+
records: readonly RecordId[] | import("@fieldia/viewer").RecordPager | undefined;
|
|
411
|
+
breadcrumbs: readonly import("@fieldia/viewer").Breadcrumb[] | undefined;
|
|
265
412
|
form: Form;
|
|
266
413
|
skin: Skin;
|
|
267
414
|
dir: "ltr" | "rtl";
|
|
@@ -269,7 +416,6 @@ export declare const FieldiaForm: import("vue").DefineComponent<import("vue").Ex
|
|
|
269
416
|
labels: Partial<ViewerLabels>;
|
|
270
417
|
widgets: Record<string, WidgetFactory>;
|
|
271
418
|
fieldTypes: Record<string, Component>;
|
|
272
|
-
confirm: (message: string) => Promise<boolean>;
|
|
273
419
|
preferences: PreferenceStore;
|
|
274
420
|
showValid: boolean;
|
|
275
421
|
editSwitch: boolean;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { DataSource, DraftStore, Field, FieldNode, Form, FormEvents, FormState, FormUser, 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';
|
|
@@ -40,6 +40,16 @@ export declare const FieldiaForm: import("vue").DefineComponent<import("vue").Ex
|
|
|
40
40
|
type: PropType<RecordId | null>;
|
|
41
41
|
default: null;
|
|
42
42
|
};
|
|
43
|
+
/** The person using the form: what `user` reads, and the roles that show parts. */
|
|
44
|
+
user: {
|
|
45
|
+
type: PropType<FormUser>;
|
|
46
|
+
default: undefined;
|
|
47
|
+
};
|
|
48
|
+
/** Values the app passes in, as Flectra's context: what conditions and filters read as `context`. */
|
|
49
|
+
context: {
|
|
50
|
+
type: PropType<ViewerOptions["context"]>;
|
|
51
|
+
default: undefined;
|
|
52
|
+
};
|
|
43
53
|
values: {
|
|
44
54
|
type: PropType<Values>;
|
|
45
55
|
default: undefined;
|
|
@@ -94,6 +104,11 @@ export declare const FieldiaForm: import("vue").DefineComponent<import("vue").Ex
|
|
|
94
104
|
type: PropType<PreferenceStore>;
|
|
95
105
|
default: undefined;
|
|
96
106
|
};
|
|
107
|
+
/** The app's pages: a saved form placed in the page by its id, a link's record by its model. */
|
|
108
|
+
pages: {
|
|
109
|
+
type: PropType<ViewerOptions["pages"]>;
|
|
110
|
+
default: undefined;
|
|
111
|
+
};
|
|
97
112
|
relatedPages: {
|
|
98
113
|
type: PropType<ViewerOptions["relatedPages"]>;
|
|
99
114
|
default: undefined;
|
|
@@ -126,13 +141,57 @@ export declare const FieldiaForm: import("vue").DefineComponent<import("vue").Ex
|
|
|
126
141
|
type: PropType<ViewerOptions["translate"]>;
|
|
127
142
|
default: undefined;
|
|
128
143
|
};
|
|
144
|
+
/**
|
|
145
|
+
* A button's app action, or a `call` step: `@action="…"` as before, and what
|
|
146
|
+
* it returns — values, words, a page to open, a stop — the form takes. A
|
|
147
|
+
* prop rather than an event, so its answer comes back.
|
|
148
|
+
*/
|
|
149
|
+
onAction: {
|
|
150
|
+
type: PropType<OnAction>;
|
|
151
|
+
default: undefined;
|
|
152
|
+
};
|
|
153
|
+
/** Your own way to open a page a step asks for; undefined lets the viewer open it. */
|
|
154
|
+
onOpen: {
|
|
155
|
+
type: PropType<ViewerOptions["onOpen"]>;
|
|
156
|
+
default: undefined;
|
|
157
|
+
};
|
|
158
|
+
/** Any of the viewer's host done your own way: words said, a question asked, a page opened, a tab shown. */
|
|
159
|
+
host: {
|
|
160
|
+
type: PropType<ViewerOptions["host"]>;
|
|
161
|
+
default: undefined;
|
|
162
|
+
};
|
|
163
|
+
/** The records round this one, for the pager over it: their ids, or how many, where this one is, and the id at a place. */
|
|
164
|
+
records: {
|
|
165
|
+
type: PropType<ViewerOptions["records"]>;
|
|
166
|
+
default: undefined;
|
|
167
|
+
};
|
|
168
|
+
/** The trail to this record, for the breadcrumbs over it. */
|
|
169
|
+
breadcrumbs: {
|
|
170
|
+
type: PropType<ViewerOptions["breadcrumbs"]>;
|
|
171
|
+
default: undefined;
|
|
172
|
+
};
|
|
129
173
|
}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
130
174
|
[key: string]: any;
|
|
131
175
|
}>[], {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
132
176
|
ready: (_handle: ViewerHandle) => true;
|
|
133
|
-
action: (_request: ActionRequest) => true;
|
|
134
177
|
/** A list's row was opened: the app shows the record. */
|
|
135
178
|
openRecord: (_id: RecordId) => true;
|
|
179
|
+
/** A field was written — `by` a person, a step or the app. */
|
|
180
|
+
change: (_event: FormEvents["change"]) => true;
|
|
181
|
+
/** A record was saved. */
|
|
182
|
+
save: (_event: FormEvents["save"]) => true;
|
|
183
|
+
/** A page of responses sent its answers. */
|
|
184
|
+
send: (_event: FormEvents["send"]) => true;
|
|
185
|
+
/** A wizard's step was entered. */
|
|
186
|
+
step: (_event: FormEvents["step"]) => true;
|
|
187
|
+
/** A run of steps ended — a button's, a moment's — and how. */
|
|
188
|
+
run: (_event: FormEvents["run"]) => true;
|
|
189
|
+
/** The form has its values: a record loaded — the pager moved on, a copy shown — or a new one. */
|
|
190
|
+
record: (_event: FormEvents["open"]) => true;
|
|
191
|
+
/** The record was archived or brought back, copied, or deleted, by a step such as the gear menu's. */
|
|
192
|
+
archive: (_event: FormEvents["archive"]) => true;
|
|
193
|
+
duplicate: (_event: FormEvents["duplicate"]) => true;
|
|
194
|
+
delete: (_event: FormEvents["delete"]) => true;
|
|
136
195
|
}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
137
196
|
page: {
|
|
138
197
|
type: PropType<Page>;
|
|
@@ -150,6 +209,16 @@ export declare const FieldiaForm: import("vue").DefineComponent<import("vue").Ex
|
|
|
150
209
|
type: PropType<RecordId | null>;
|
|
151
210
|
default: null;
|
|
152
211
|
};
|
|
212
|
+
/** The person using the form: what `user` reads, and the roles that show parts. */
|
|
213
|
+
user: {
|
|
214
|
+
type: PropType<FormUser>;
|
|
215
|
+
default: undefined;
|
|
216
|
+
};
|
|
217
|
+
/** Values the app passes in, as Flectra's context: what conditions and filters read as `context`. */
|
|
218
|
+
context: {
|
|
219
|
+
type: PropType<ViewerOptions["context"]>;
|
|
220
|
+
default: undefined;
|
|
221
|
+
};
|
|
153
222
|
values: {
|
|
154
223
|
type: PropType<Values>;
|
|
155
224
|
default: undefined;
|
|
@@ -204,6 +273,11 @@ export declare const FieldiaForm: import("vue").DefineComponent<import("vue").Ex
|
|
|
204
273
|
type: PropType<PreferenceStore>;
|
|
205
274
|
default: undefined;
|
|
206
275
|
};
|
|
276
|
+
/** The app's pages: a saved form placed in the page by its id, a link's record by its model. */
|
|
277
|
+
pages: {
|
|
278
|
+
type: PropType<ViewerOptions["pages"]>;
|
|
279
|
+
default: undefined;
|
|
280
|
+
};
|
|
207
281
|
relatedPages: {
|
|
208
282
|
type: PropType<ViewerOptions["relatedPages"]>;
|
|
209
283
|
default: undefined;
|
|
@@ -236,16 +310,83 @@ export declare const FieldiaForm: import("vue").DefineComponent<import("vue").Ex
|
|
|
236
310
|
type: PropType<ViewerOptions["translate"]>;
|
|
237
311
|
default: undefined;
|
|
238
312
|
};
|
|
313
|
+
/**
|
|
314
|
+
* A button's app action, or a `call` step: `@action="…"` as before, and what
|
|
315
|
+
* it returns — values, words, a page to open, a stop — the form takes. A
|
|
316
|
+
* prop rather than an event, so its answer comes back.
|
|
317
|
+
*/
|
|
318
|
+
onAction: {
|
|
319
|
+
type: PropType<OnAction>;
|
|
320
|
+
default: undefined;
|
|
321
|
+
};
|
|
322
|
+
/** Your own way to open a page a step asks for; undefined lets the viewer open it. */
|
|
323
|
+
onOpen: {
|
|
324
|
+
type: PropType<ViewerOptions["onOpen"]>;
|
|
325
|
+
default: undefined;
|
|
326
|
+
};
|
|
327
|
+
/** Any of the viewer's host done your own way: words said, a question asked, a page opened, a tab shown. */
|
|
328
|
+
host: {
|
|
329
|
+
type: PropType<ViewerOptions["host"]>;
|
|
330
|
+
default: undefined;
|
|
331
|
+
};
|
|
332
|
+
/** The records round this one, for the pager over it: their ids, or how many, where this one is, and the id at a place. */
|
|
333
|
+
records: {
|
|
334
|
+
type: PropType<ViewerOptions["records"]>;
|
|
335
|
+
default: undefined;
|
|
336
|
+
};
|
|
337
|
+
/** The trail to this record, for the breadcrumbs over it. */
|
|
338
|
+
breadcrumbs: {
|
|
339
|
+
type: PropType<ViewerOptions["breadcrumbs"]>;
|
|
340
|
+
default: undefined;
|
|
341
|
+
};
|
|
239
342
|
}>> & Readonly<{
|
|
343
|
+
onRecord?: ((_event: {
|
|
344
|
+
recordId: RecordId | null;
|
|
345
|
+
values: Readonly<Values>;
|
|
346
|
+
}) => any) | undefined;
|
|
347
|
+
onChange?: ((_event: {
|
|
348
|
+
field: string;
|
|
349
|
+
value: Value;
|
|
350
|
+
values: Readonly<Values>;
|
|
351
|
+
by: import("@fieldia/core").ChangeBy;
|
|
352
|
+
}) => any) | undefined;
|
|
353
|
+
onSave?: ((_event: {
|
|
354
|
+
recordId: RecordId | null;
|
|
355
|
+
values: Readonly<Values>;
|
|
356
|
+
}) => any) | undefined;
|
|
357
|
+
onSend?: ((_event: {
|
|
358
|
+
values: Values;
|
|
359
|
+
}) => any) | undefined;
|
|
360
|
+
onStep?: ((_event: {
|
|
361
|
+
step: string;
|
|
362
|
+
}) => any) | undefined;
|
|
363
|
+
onRun?: ((_event: {
|
|
364
|
+
id: string;
|
|
365
|
+
steps: readonly import("@fieldia/core").ActionStep[];
|
|
366
|
+
result: import("@fieldia/core").RunResult;
|
|
367
|
+
}) => any) | undefined;
|
|
368
|
+
onArchive?: ((_event: {
|
|
369
|
+
recordId: RecordId;
|
|
370
|
+
archived: boolean;
|
|
371
|
+
}) => any) | undefined;
|
|
372
|
+
onDuplicate?: ((_event: {
|
|
373
|
+
from: RecordId;
|
|
374
|
+
recordId: RecordId;
|
|
375
|
+
}) => any) | undefined;
|
|
376
|
+
onDelete?: ((_event: {
|
|
377
|
+
recordId: RecordId;
|
|
378
|
+
}) => any) | undefined;
|
|
240
379
|
onReady?: ((_handle: ViewerHandle) => any) | undefined;
|
|
241
|
-
onAction?: ((_request: ActionRequest) => any) | undefined;
|
|
242
380
|
onOpenRecord?: ((_id: RecordId) => any) | undefined;
|
|
243
381
|
}>, {
|
|
244
382
|
values: Values;
|
|
245
383
|
readonly: boolean;
|
|
246
|
-
|
|
384
|
+
context: Readonly<Record<string, import("@fieldia/core").JsonValue>> | undefined;
|
|
385
|
+
host: Partial<import("@fieldia/core").ActionHost> | undefined;
|
|
247
386
|
dataSource: DataSource;
|
|
248
387
|
recordId: RecordId | null;
|
|
388
|
+
onAction: OnAction;
|
|
389
|
+
confirm: (message: string) => Promise<boolean>;
|
|
249
390
|
drafts: {
|
|
250
391
|
store: DraftStore;
|
|
251
392
|
restore?: "auto" | "ask";
|
|
@@ -255,6 +396,9 @@ export declare const FieldiaForm: import("vue").DefineComponent<import("vue").Ex
|
|
|
255
396
|
delayMs: number;
|
|
256
397
|
};
|
|
257
398
|
scheduler: Scheduler;
|
|
399
|
+
user: FormUser;
|
|
400
|
+
pages: import("@fieldia/viewer").PageFinder | undefined;
|
|
401
|
+
relatedPages: Record<string, Page> | ((model: string) => Page | null | undefined) | undefined;
|
|
258
402
|
icons: Readonly<Record<string, string>> | undefined;
|
|
259
403
|
keys: {
|
|
260
404
|
saveWithCtrlEnter?: boolean;
|
|
@@ -262,6 +406,9 @@ export declare const FieldiaForm: import("vue").DefineComponent<import("vue").Ex
|
|
|
262
406
|
} | undefined;
|
|
263
407
|
saveStatus: "inline" | "toast" | "bar" | undefined;
|
|
264
408
|
translate: ((text: string) => string) | undefined;
|
|
409
|
+
onOpen: ((request: import("@fieldia/core").OpenRequest) => Promise<import("@fieldia/core").OpenResult> | undefined) | undefined;
|
|
410
|
+
records: readonly RecordId[] | import("@fieldia/viewer").RecordPager | undefined;
|
|
411
|
+
breadcrumbs: readonly import("@fieldia/viewer").Breadcrumb[] | undefined;
|
|
265
412
|
form: Form;
|
|
266
413
|
skin: Skin;
|
|
267
414
|
dir: "ltr" | "rtl";
|
|
@@ -269,7 +416,6 @@ export declare const FieldiaForm: import("vue").DefineComponent<import("vue").Ex
|
|
|
269
416
|
labels: Partial<ViewerLabels>;
|
|
270
417
|
widgets: Record<string, WidgetFactory>;
|
|
271
418
|
fieldTypes: Record<string, Component>;
|
|
272
|
-
confirm: (message: string) => Promise<boolean>;
|
|
273
419
|
preferences: PreferenceStore;
|
|
274
420
|
showValid: boolean;
|
|
275
421
|
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', 'archive', 'duplicate', 'delete'];
|
|
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',
|
|
@@ -20,6 +22,10 @@ exports.FieldiaForm = (0, vue_1.defineComponent)({
|
|
|
20
22
|
form: { type: Object, default: undefined },
|
|
21
23
|
dataSource: { type: Object, default: undefined },
|
|
22
24
|
recordId: { type: [String, Number], default: null },
|
|
25
|
+
/** The person using the form: what `user` reads, and the roles that show parts. */
|
|
26
|
+
user: { type: Object, default: undefined },
|
|
27
|
+
/** Values the app passes in, as Flectra's context: what conditions and filters read as `context`. */
|
|
28
|
+
context: { type: Object, default: undefined },
|
|
23
29
|
values: { type: Object, default: undefined },
|
|
24
30
|
skin: { type: String, default: 'underline' },
|
|
25
31
|
dir: { type: String, default: undefined },
|
|
@@ -32,6 +38,8 @@ exports.FieldiaForm = (0, vue_1.defineComponent)({
|
|
|
32
38
|
scheduler: { type: Object, default: undefined },
|
|
33
39
|
confirm: { type: Function, default: undefined },
|
|
34
40
|
preferences: { type: Object, default: undefined },
|
|
41
|
+
/** The app's pages: a saved form placed in the page by its id, a link's record by its model. */
|
|
42
|
+
pages: { type: [Object, Function], default: undefined },
|
|
35
43
|
relatedPages: { type: [Object, Function], default: undefined },
|
|
36
44
|
icons: { type: Object, default: undefined },
|
|
37
45
|
keys: { type: Object, default: undefined },
|
|
@@ -40,12 +48,41 @@ exports.FieldiaForm = (0, vue_1.defineComponent)({
|
|
|
40
48
|
readonly: { type: Boolean, default: false },
|
|
41
49
|
editSwitch: { type: Boolean, default: false },
|
|
42
50
|
translate: { type: Function, default: undefined },
|
|
51
|
+
/**
|
|
52
|
+
* A button's app action, or a `call` step: `@action="…"` as before, and what
|
|
53
|
+
* it returns — values, words, a page to open, a stop — the form takes. A
|
|
54
|
+
* prop rather than an event, so its answer comes back.
|
|
55
|
+
*/
|
|
56
|
+
onAction: { type: Function, default: undefined },
|
|
57
|
+
/** Your own way to open a page a step asks for; undefined lets the viewer open it. */
|
|
58
|
+
onOpen: { type: Function, default: undefined },
|
|
59
|
+
/** Any of the viewer's host done your own way: words said, a question asked, a page opened, a tab shown. */
|
|
60
|
+
host: { type: Object, default: undefined },
|
|
61
|
+
/** The records round this one, for the pager over it: their ids, or how many, where this one is, and the id at a place. */
|
|
62
|
+
records: { type: [Array, Object], default: undefined },
|
|
63
|
+
/** The trail to this record, for the breadcrumbs over it. */
|
|
64
|
+
breadcrumbs: { type: Array, default: undefined },
|
|
43
65
|
},
|
|
44
66
|
emits: {
|
|
45
67
|
ready: (_handle) => true,
|
|
46
|
-
action: (_request) => true,
|
|
47
68
|
/** A list's row was opened: the app shows the record. */
|
|
48
69
|
openRecord: (_id) => true,
|
|
70
|
+
/** A field was written — `by` a person, a step or the app. */
|
|
71
|
+
change: (_event) => true,
|
|
72
|
+
/** A record was saved. */
|
|
73
|
+
save: (_event) => true,
|
|
74
|
+
/** A page of responses sent its answers. */
|
|
75
|
+
send: (_event) => true,
|
|
76
|
+
/** A wizard's step was entered. */
|
|
77
|
+
step: (_event) => true,
|
|
78
|
+
/** A run of steps ended — a button's, a moment's — and how. */
|
|
79
|
+
run: (_event) => true,
|
|
80
|
+
/** The form has its values: a record loaded — the pager moved on, a copy shown — or a new one. */
|
|
81
|
+
record: (_event) => true,
|
|
82
|
+
/** The record was archived or brought back, copied, or deleted, by a step such as the gear menu's. */
|
|
83
|
+
archive: (_event) => true,
|
|
84
|
+
duplicate: (_event) => true,
|
|
85
|
+
delete: (_event) => true,
|
|
49
86
|
},
|
|
50
87
|
setup(props, { slots, emit, expose }) {
|
|
51
88
|
const host = (0, vue_1.ref)();
|
|
@@ -100,6 +137,8 @@ exports.FieldiaForm = (0, vue_1.defineComponent)({
|
|
|
100
137
|
form: props.form,
|
|
101
138
|
dataSource: props.dataSource,
|
|
102
139
|
recordId: props.recordId,
|
|
140
|
+
user: props.user,
|
|
141
|
+
context: props.context ? (0, vue_1.toRaw)(props.context) : undefined,
|
|
103
142
|
values: props.values,
|
|
104
143
|
skin: props.skin,
|
|
105
144
|
dir: props.dir,
|
|
@@ -113,6 +152,7 @@ exports.FieldiaForm = (0, vue_1.defineComponent)({
|
|
|
113
152
|
confirm: props.confirm,
|
|
114
153
|
// The app's own store, not Vue's reactive copy of it.
|
|
115
154
|
preferences: props.preferences ? (0, vue_1.toRaw)(props.preferences) : undefined,
|
|
155
|
+
pages: props.pages ? (0, vue_1.toRaw)(props.pages) : undefined,
|
|
116
156
|
relatedPages: props.relatedPages ? (0, vue_1.toRaw)(props.relatedPages) : undefined,
|
|
117
157
|
icons: props.icons ? (0, vue_1.toRaw)(props.icons) : undefined,
|
|
118
158
|
keys: props.keys ? (0, vue_1.toRaw)(props.keys) : undefined,
|
|
@@ -121,9 +161,16 @@ exports.FieldiaForm = (0, vue_1.defineComponent)({
|
|
|
121
161
|
readonly: props.readonly,
|
|
122
162
|
editSwitch: props.editSwitch,
|
|
123
163
|
translate: props.translate,
|
|
124
|
-
onAction: (request) =>
|
|
164
|
+
onAction: (request) => props.onAction?.(request),
|
|
165
|
+
onOpen: props.onOpen,
|
|
166
|
+
host: props.host ? (0, vue_1.toRaw)(props.host) : undefined,
|
|
125
167
|
onOpenRecord: (id) => emit('openRecord', id),
|
|
168
|
+
records: props.records ? (0, vue_1.toRaw)(props.records) : undefined,
|
|
169
|
+
breadcrumbs: props.breadcrumbs ? (0, vue_1.toRaw)(props.breadcrumbs) : undefined,
|
|
126
170
|
});
|
|
171
|
+
for (const event of EVENTS)
|
|
172
|
+
handle.on(event, (payload) => emit(event, payload));
|
|
173
|
+
handle.on('open', (payload) => emit('record', payload));
|
|
127
174
|
portals.value = found;
|
|
128
175
|
emit('ready', handle);
|
|
129
176
|
}
|
|
@@ -134,7 +181,7 @@ exports.FieldiaForm = (0, vue_1.defineComponent)({
|
|
|
134
181
|
}
|
|
135
182
|
(0, vue_1.onMounted)(mount);
|
|
136
183
|
(0, vue_1.onBeforeUnmount)(unmount);
|
|
137
|
-
(0, vue_1.watch)(() => [props.page, props.form, props.dataSource, props.recordId, props.dir, props.locale, JSON.stringify(props.labels ?? {})], () => {
|
|
184
|
+
(0, vue_1.watch)(() => [props.page, props.form, props.dataSource, props.recordId, JSON.stringify(props.user ?? null), JSON.stringify(props.context ?? null), props.dir, props.locale, JSON.stringify(props.labels ?? {})], () => {
|
|
138
185
|
unmount();
|
|
139
186
|
mount();
|
|
140
187
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fieldia-form.js","sourceRoot":"","sources":["../../../../../libs/vue/src/lib/fieldia-form.ts"],"names":[],"mappings":"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
|
|
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', 'archive', 'duplicate', 'delete'];
|
|
11
13
|
const EMPTY_STATE = { value: undefined, values: {}, readonly: false, required: false, invalid: false };
|
|
12
14
|
export const FieldiaForm = defineComponent({
|
|
13
15
|
name: 'FieldiaForm',
|
|
@@ -16,6 +18,10 @@ export const FieldiaForm = defineComponent({
|
|
|
16
18
|
form: { type: Object, default: undefined },
|
|
17
19
|
dataSource: { type: Object, default: undefined },
|
|
18
20
|
recordId: { type: [String, Number], default: null },
|
|
21
|
+
/** The person using the form: what `user` reads, and the roles that show parts. */
|
|
22
|
+
user: { type: Object, default: undefined },
|
|
23
|
+
/** Values the app passes in, as Flectra's context: what conditions and filters read as `context`. */
|
|
24
|
+
context: { type: Object, default: undefined },
|
|
19
25
|
values: { type: Object, default: undefined },
|
|
20
26
|
skin: { type: String, default: 'underline' },
|
|
21
27
|
dir: { type: String, default: undefined },
|
|
@@ -28,6 +34,8 @@ export const FieldiaForm = defineComponent({
|
|
|
28
34
|
scheduler: { type: Object, default: undefined },
|
|
29
35
|
confirm: { type: Function, default: undefined },
|
|
30
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 },
|
|
31
39
|
relatedPages: { type: [Object, Function], default: undefined },
|
|
32
40
|
icons: { type: Object, default: undefined },
|
|
33
41
|
keys: { type: Object, default: undefined },
|
|
@@ -36,12 +44,41 @@ export const FieldiaForm = defineComponent({
|
|
|
36
44
|
readonly: { type: Boolean, default: false },
|
|
37
45
|
editSwitch: { type: Boolean, default: false },
|
|
38
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 },
|
|
57
|
+
/** The records round this one, for the pager over it: their ids, or how many, where this one is, and the id at a place. */
|
|
58
|
+
records: { type: [Array, Object], default: undefined },
|
|
59
|
+
/** The trail to this record, for the breadcrumbs over it. */
|
|
60
|
+
breadcrumbs: { type: Array, default: undefined },
|
|
39
61
|
},
|
|
40
62
|
emits: {
|
|
41
63
|
ready: (_handle) => true,
|
|
42
|
-
action: (_request) => true,
|
|
43
64
|
/** A list's row was opened: the app shows the record. */
|
|
44
65
|
openRecord: (_id) => true,
|
|
66
|
+
/** A field was written — `by` a person, a step or the app. */
|
|
67
|
+
change: (_event) => true,
|
|
68
|
+
/** A record was saved. */
|
|
69
|
+
save: (_event) => true,
|
|
70
|
+
/** A page of responses sent its answers. */
|
|
71
|
+
send: (_event) => true,
|
|
72
|
+
/** A wizard's step was entered. */
|
|
73
|
+
step: (_event) => true,
|
|
74
|
+
/** A run of steps ended — a button's, a moment's — and how. */
|
|
75
|
+
run: (_event) => true,
|
|
76
|
+
/** The form has its values: a record loaded — the pager moved on, a copy shown — or a new one. */
|
|
77
|
+
record: (_event) => true,
|
|
78
|
+
/** The record was archived or brought back, copied, or deleted, by a step such as the gear menu's. */
|
|
79
|
+
archive: (_event) => true,
|
|
80
|
+
duplicate: (_event) => true,
|
|
81
|
+
delete: (_event) => true,
|
|
45
82
|
},
|
|
46
83
|
setup(props, { slots, emit, expose }) {
|
|
47
84
|
const host = ref();
|
|
@@ -96,6 +133,8 @@ export const FieldiaForm = defineComponent({
|
|
|
96
133
|
form: props.form,
|
|
97
134
|
dataSource: props.dataSource,
|
|
98
135
|
recordId: props.recordId,
|
|
136
|
+
user: props.user,
|
|
137
|
+
context: props.context ? toRaw(props.context) : undefined,
|
|
99
138
|
values: props.values,
|
|
100
139
|
skin: props.skin,
|
|
101
140
|
dir: props.dir,
|
|
@@ -109,6 +148,7 @@ export const FieldiaForm = defineComponent({
|
|
|
109
148
|
confirm: props.confirm,
|
|
110
149
|
// The app's own store, not Vue's reactive copy of it.
|
|
111
150
|
preferences: props.preferences ? toRaw(props.preferences) : undefined,
|
|
151
|
+
pages: props.pages ? toRaw(props.pages) : undefined,
|
|
112
152
|
relatedPages: props.relatedPages ? toRaw(props.relatedPages) : undefined,
|
|
113
153
|
icons: props.icons ? toRaw(props.icons) : undefined,
|
|
114
154
|
keys: props.keys ? toRaw(props.keys) : undefined,
|
|
@@ -117,9 +157,16 @@ export const FieldiaForm = defineComponent({
|
|
|
117
157
|
readonly: props.readonly,
|
|
118
158
|
editSwitch: props.editSwitch,
|
|
119
159
|
translate: props.translate,
|
|
120
|
-
onAction: (request) =>
|
|
160
|
+
onAction: (request) => props.onAction?.(request),
|
|
161
|
+
onOpen: props.onOpen,
|
|
162
|
+
host: props.host ? toRaw(props.host) : undefined,
|
|
121
163
|
onOpenRecord: (id) => emit('openRecord', id),
|
|
164
|
+
records: props.records ? toRaw(props.records) : undefined,
|
|
165
|
+
breadcrumbs: props.breadcrumbs ? toRaw(props.breadcrumbs) : undefined,
|
|
122
166
|
});
|
|
167
|
+
for (const event of EVENTS)
|
|
168
|
+
handle.on(event, (payload) => emit(event, payload));
|
|
169
|
+
handle.on('open', (payload) => emit('record', payload));
|
|
123
170
|
portals.value = found;
|
|
124
171
|
emit('ready', handle);
|
|
125
172
|
}
|
|
@@ -130,7 +177,7 @@ export const FieldiaForm = defineComponent({
|
|
|
130
177
|
}
|
|
131
178
|
onMounted(mount);
|
|
132
179
|
onBeforeUnmount(unmount);
|
|
133
|
-
watch(() => [props.page, props.form, props.dataSource, props.recordId, props.dir, props.locale, JSON.stringify(props.labels ?? {})], () => {
|
|
180
|
+
watch(() => [props.page, props.form, props.dataSource, props.recordId, JSON.stringify(props.user ?? null), JSON.stringify(props.context ?? null), props.dir, props.locale, JSON.stringify(props.labels ?? {})], () => {
|
|
134
181
|
unmount();
|
|
135
182
|
mount();
|
|
136
183
|
});
|
|
@@ -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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"}
|