@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 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. MIT licensed.
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.10.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.10.0",
25
- "@fieldia/viewer": "0.10.0",
26
- "@fieldia/widgets": "0.10.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 { ActionRequest, DataSource, DraftStore, Field, FieldNode, Form, FormState, Locale, Page, RecordId, Scheduler, Value, Values } from '@fieldia/core';
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
- relatedPages: Record<string, Page> | ((model: string) => Page | null | undefined) | undefined;
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 { ActionRequest, DataSource, DraftStore, Field, FieldNode, Form, FormState, Locale, Page, RecordId, Scheduler, Value, Values } from '@fieldia/core';
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
- relatedPages: Record<string, Page> | ((model: string) => Page | null | undefined) | undefined;
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;
@@ -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) => emit('action', 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":";;;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,0DAA0D;AAC1D,MAAM,MAAM,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,CAAU,CAAC;AAEpG,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,mFAAmF;QACnF,IAAI,EAAE,EAAE,IAAI,EAAE,MAA4B,EAAE,OAAO,EAAE,SAAS,EAAE;QAChE,qGAAqG;QACrG,OAAO,EAAE,EAAE,IAAI,EAAE,MAA4C,EAAE,OAAO,EAAE,SAAS,EAAE;QACnF,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,gGAAgG;QAChG,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAqC,EAAE,OAAO,EAAE,SAAS,EAAE;QAC3F,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;QACzF;;;;WAIG;QACH,QAAQ,EAAE,EAAE,IAAI,EAAE,QAA8B,EAAE,OAAO,EAAE,SAAS,EAAE;QACtE,sFAAsF;QACtF,MAAM,EAAE,EAAE,IAAI,EAAE,QAA6C,EAAE,OAAO,EAAE,SAAS,EAAE;QACnF,4GAA4G;QAC5G,IAAI,EAAE,EAAE,IAAI,EAAE,MAAyC,EAAE,OAAO,EAAE,SAAS,EAAE;QAC7E,2HAA2H;QAC3H,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,CAAuC,EAAE,OAAO,EAAE,SAAS,EAAE;QAC5F,6DAA6D;QAC7D,WAAW,EAAE,EAAE,IAAI,EAAE,KAA+C,EAAE,OAAO,EAAE,SAAS,EAAE;KAC3F;IACD,KAAK,EAAE;QACL,KAAK,EAAE,CAAC,OAAqB,EAAE,EAAE,CAAC,IAAI;QACtC,yDAAyD;QACzD,UAAU,EAAE,CAAC,GAAa,EAAE,EAAE,CAAC,IAAI;QACnC,8DAA8D;QAC9D,MAAM,EAAE,CAAC,MAA4B,EAAE,EAAE,CAAC,IAAI;QAC9C,0BAA0B;QAC1B,IAAI,EAAE,CAAC,MAA0B,EAAE,EAAE,CAAC,IAAI;QAC1C,4CAA4C;QAC5C,IAAI,EAAE,CAAC,MAA0B,EAAE,EAAE,CAAC,IAAI;QAC1C,mCAAmC;QACnC,IAAI,EAAE,CAAC,MAA0B,EAAE,EAAE,CAAC,IAAI;QAC1C,+DAA+D;QAC/D,GAAG,EAAE,CAAC,MAAyB,EAAE,EAAE,CAAC,IAAI;QACxC,kGAAkG;QAClG,MAAM,EAAE,CAAC,MAA0B,EAAE,EAAE,CAAC,IAAI;QAC5C,sGAAsG;QACtG,OAAO,EAAE,CAAC,MAA6B,EAAE,EAAE,CAAC,IAAI;QAChD,SAAS,EAAE,CAAC,MAA+B,EAAE,EAAE,CAAC,IAAI;QACpD,MAAM,EAAE,CAAC,MAA4B,EAAE,EAAE,CAAC,IAAI;KAC/C;IACD,KAAK,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE;QAClC,MAAM,IAAI,GAAG,IAAA,SAAG,GAAe,CAAC;QAChC,MAAM,OAAO,GAAG,IAAA,gBAAU,EAAW,EAAE,CAAC,CAAC;QACzC,IAAI,MAAM,GAAwB,IAAI,CAAC;QAEvC,SAAS,KAAK;YACZ,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC;YAC3B,IAAI,CAAC,OAAO;gBAAE,OAAO;YACrB,MAAM,KAAK,GAAa,EAAE,CAAC;YAE3B,MAAM,OAAO,GAAkC,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;YACpE,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC;gBACtD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,OAAsB,EAAE,EAAE;oBACxC,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;oBAClD,GAAG,CAAC,SAAS,GAAG,WAAW,CAAC;oBAC5B,MAAM,KAAK,GAAG,IAAA,gBAAU,EAAc,WAAW,CAAC,CAAC;oBACnD,KAAK,CAAC,IAAI,CAAC;wBACT,GAAG,EAAE,SAAS,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE;wBAC/B,OAAO,EAAE,GAAG;wBACZ,MAAM,EAAE,GAAG,EAAE;4BACX,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC;4BAC1C,OAAO,SAAS;gCACd,CAAC,CAAC,IAAA,OAAC,EAAC,SAAS,EAAE;oCACX,GAAG,KAAK,CAAC,KAAK;oCACd,IAAI,EAAE,OAAO,CAAC,IAAI;oCAClB,KAAK,EAAE,OAAO,CAAC,KAAK;oCACpB,IAAI,EAAE,OAAO,CAAC,IAAI;oCAClB,EAAE,EAAE,OAAO,CAAC,EAAE;oCACd,IAAI,EAAE,OAAO,CAAC,IAAI;oCAClB,QAAQ,EAAE,CAAC,KAAY,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;iCACvE,CAAC;gCACJ,CAAC,CAAC,IAAI,CAAC;wBACX,CAAC;qBACF,CAAC,CAAC;oBACH,OAAO;wBACL,OAAO,EAAE,GAAG;wBACZ,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;wBACtC,KAAK,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,aAAa,CAAc,6CAA6C,CAAC,EAAE,KAAK,EAAE;qBACpG,CAAC;gBACJ,CAAC,CAAC;YACJ,CAAC;YAED,MAAM,aAAa,GAAiC,EAAE,CAAC;YACvD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtC,IAAI,IAAI,KAAK,SAAS;oBAAE,SAAS;gBACjC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE;oBACrC,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,QAAQ,IAAI,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC/H,CAAC,CAAC;YACJ,CAAC;YAED,MAAM,GAAG,IAAA,oBAAW,EAAC,OAAO,EAAE;gBAC5B,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAA,WAAK,EAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;gBACzD,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,GAAG,EAAE,KAAK,CAAC,GAAG;gBACd,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,OAAO;gBACP,KAAK,EAAE,aAAa;gBACpB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,sDAAsD;gBACtD,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,IAAA,WAAK,EAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS;gBACrE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAA,WAAK,EAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;gBACnD,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,IAAA,WAAK,EAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS;gBACxE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAA,WAAK,EAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;gBACnD,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,WAAK,EAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;gBAChD,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC;gBAChD,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,WAAK,EAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;gBAChD,YAAY,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;gBAC5C,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAA,WAAK,EAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;gBACzD,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,IAAA,WAAK,EAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS;aACtE,CAAC,CAAC;YACH,KAAK,MAAM,KAAK,IAAI,MAAM;gBAAE,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,CAAE,IAAkD,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;YAC/H,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;YACxD,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACxB,CAAC;QAED,SAAS,OAAO;YACd,MAAM,EAAE,OAAO,EAAE,CAAC;YAClB,MAAM,GAAG,IAAI,CAAC;YACd,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC;QACrB,CAAC;QAED,IAAA,eAAS,EAAC,KAAK,CAAC,CAAC;QACjB,IAAA,qBAAe,EAAC,OAAO,CAAC,CAAC;QACzB,IAAA,WAAK,EACH,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,EACxM,GAAG,EAAE;YACH,OAAO,EAAE,CAAC;YACV,KAAK,EAAE,CAAC;QACV,CAAC,CACF,CAAC;QACF,IAAA,WAAK,EACH,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,EAChB,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,IAAI,WAAW,CAAC,CAC/C,CAAC;QACF,IAAA,WAAK,EACH,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,EACpB,CAAC,QAAQ,EAAE,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,CAC5C,CAAC;QACF,MAAM,CAAC;YACL,IAAI,MAAM;gBACR,OAAO,MAAM,CAAC;YAChB,CAAC;SACF,CAAC,CAAC;QAEH,OAAO,GAAG,EAAE,CAAC;YACX,IAAA,OAAC,EAAC,KAAK,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;YACvB,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAA,OAAC,EAAC,cAAQ,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;SAC1G,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
@@ -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) => emit('action', 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":"AACA,OAAO,EAAE,WAAW,EAA0F,MAAM,iBAAiB,CAAC;AAEtI,OAAO,EACL,eAAe,EACf,eAAe,EACf,CAAC,EACD,eAAe,EACf,SAAS,EACT,cAAc,EACd,GAAG,EACH,UAAU,EACV,QAAQ,EACR,KAAK,EACL,KAAK,GAKN,MAAM,KAAK,CAAC;AAuBb,4DAA4D;AAC5D,MAAM,UAAU,YAAY,CAAC,IAAU;IACrC,MAAM,KAAK,GAAG,UAAU,CAAC,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,eAAe,EAAE;QAAE,cAAc,CAAC,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;AAEpH,MAAM,CAAC,MAAM,WAAW,GAAG,eAAe,CAAC;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;KAC1F;IACD,KAAK,EAAE;QACL,KAAK,EAAE,CAAC,OAAqB,EAAE,EAAE,CAAC,IAAI;QACtC,MAAM,EAAE,CAAC,QAAuB,EAAE,EAAE,CAAC,IAAI;QACzC,yDAAyD;QACzD,UAAU,EAAE,CAAC,GAAa,EAAE,EAAE,CAAC,IAAI;KACpC;IACD,KAAK,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE;QAClC,MAAM,IAAI,GAAG,GAAG,EAAe,CAAC;QAChC,MAAM,OAAO,GAAG,UAAU,CAAW,EAAE,CAAC,CAAC;QACzC,IAAI,MAAM,GAAwB,IAAI,CAAC;QAEvC,SAAS,KAAK;YACZ,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC;YAC3B,IAAI,CAAC,OAAO;gBAAE,OAAO;YACrB,MAAM,KAAK,GAAa,EAAE,CAAC;YAE3B,MAAM,OAAO,GAAkC,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;YACpE,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC;gBACtD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,OAAsB,EAAE,EAAE;oBACxC,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;oBAClD,GAAG,CAAC,SAAS,GAAG,WAAW,CAAC;oBAC5B,MAAM,KAAK,GAAG,UAAU,CAAc,WAAW,CAAC,CAAC;oBACnD,KAAK,CAAC,IAAI,CAAC;wBACT,GAAG,EAAE,SAAS,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE;wBAC/B,OAAO,EAAE,GAAG;wBACZ,MAAM,EAAE,GAAG,EAAE;4BACX,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC;4BAC1C,OAAO,SAAS;gCACd,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE;oCACX,GAAG,KAAK,CAAC,KAAK;oCACd,IAAI,EAAE,OAAO,CAAC,IAAI;oCAClB,KAAK,EAAE,OAAO,CAAC,KAAK;oCACpB,IAAI,EAAE,OAAO,CAAC,IAAI;oCAClB,EAAE,EAAE,OAAO,CAAC,EAAE;oCACd,IAAI,EAAE,OAAO,CAAC,IAAI;oCAClB,QAAQ,EAAE,CAAC,KAAY,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;iCACvE,CAAC;gCACJ,CAAC,CAAC,IAAI,CAAC;wBACX,CAAC;qBACF,CAAC,CAAC;oBACH,OAAO;wBACL,OAAO,EAAE,GAAG;wBACZ,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;wBACtC,KAAK,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,aAAa,CAAc,6CAA6C,CAAC,EAAE,KAAK,EAAE;qBACpG,CAAC;gBACJ,CAAC,CAAC;YACJ,CAAC;YAED,MAAM,aAAa,GAAiC,EAAE,CAAC;YACvD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtC,IAAI,IAAI,KAAK,SAAS;oBAAE,SAAS;gBACjC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE;oBACrC,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,QAAQ,IAAI,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC/H,CAAC,CAAC;YACJ,CAAC;YAED,MAAM,GAAG,WAAW,CAAC,OAAO,EAAE;gBAC5B,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,GAAG,EAAE,KAAK,CAAC,GAAG;gBACd,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,OAAO;gBACP,KAAK,EAAE,aAAa;gBACpB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,sDAAsD;gBACtD,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS;gBACrE,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS;gBACxE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;gBACnD,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;gBAChD,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC;gBAC9C,YAAY,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;aAC7C,CAAC,CAAC;YACH,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACxB,CAAC;QAED,SAAS,OAAO;YACd,MAAM,EAAE,OAAO,EAAE,CAAC;YAClB,MAAM,GAAG,IAAI,CAAC;YACd,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC;QACrB,CAAC;QAED,SAAS,CAAC,KAAK,CAAC,CAAC;QACjB,eAAe,CAAC,OAAO,CAAC,CAAC;QACzB,KAAK,CACH,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,EAC7H,GAAG,EAAE;YACH,OAAO,EAAE,CAAC;YACV,KAAK,EAAE,CAAC;QACV,CAAC,CACF,CAAC;QACF,KAAK,CACH,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,EAChB,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,IAAI,WAAW,CAAC,CAC/C,CAAC;QACF,KAAK,CACH,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,EACpB,CAAC,QAAQ,EAAE,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,CAC5C,CAAC;QACF,MAAM,CAAC;YACL,IAAI,MAAM;gBACR,OAAO,MAAM,CAAC;YAChB,CAAC;SACF,CAAC,CAAC;QAEH,OAAO,GAAG,EAAE,CAAC;YACX,CAAC,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;YACvB,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;SAC1G,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"fieldia-form.mjs","sourceRoot":"","sources":["../../../../../libs/vue/src/lib/fieldia-form.ts"],"names":[],"mappings":"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"}