@uniquedj95/vform 3.2.0 → 3.4.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.
Files changed (47) hide show
  1. package/README.md +347 -37
  2. package/dist/components/inputs/BaseInput.vue.d.ts.map +1 -1
  3. package/dist/components/inputs/CheckboxInput.vue.d.ts +1 -1
  4. package/dist/components/inputs/CheckboxInput.vue.d.ts.map +1 -1
  5. package/dist/components/inputs/DateInput.vue.d.ts.map +1 -1
  6. package/dist/components/inputs/EmailInput.vue.d.ts +3 -3
  7. package/dist/components/inputs/EmailInput.vue.d.ts.map +1 -1
  8. package/dist/components/inputs/NumberInput.vue.d.ts +3 -3
  9. package/dist/components/inputs/NumberInput.vue.d.ts.map +1 -1
  10. package/dist/components/inputs/PasswordInput.vue.d.ts +3 -3
  11. package/dist/components/inputs/PasswordInput.vue.d.ts.map +1 -1
  12. package/dist/components/inputs/RadioInput.vue.d.ts.map +1 -1
  13. package/dist/components/inputs/RepeatInput.vue.d.ts +1 -1
  14. package/dist/components/inputs/RepeatInput.vue.d.ts.map +1 -1
  15. package/dist/components/inputs/SelectInput.vue.d.ts +1 -7
  16. package/dist/components/inputs/SelectInput.vue.d.ts.map +1 -1
  17. package/dist/components/inputs/TextAreaInput.vue.d.ts +1 -1
  18. package/dist/components/inputs/TextAreaInput.vue.d.ts.map +1 -1
  19. package/dist/components/inputs/TextInput.vue.d.ts +3 -3
  20. package/dist/components/inputs/TextInput.vue.d.ts.map +1 -1
  21. package/dist/components/shared/InputLabel.vue.d.ts.map +1 -1
  22. package/dist/components/shared/StepIndicator.vue.d.ts +18 -0
  23. package/dist/components/shared/StepIndicator.vue.d.ts.map +1 -0
  24. package/dist/components/vForm.vue.d.ts +21 -7
  25. package/dist/components/vForm.vue.d.ts.map +1 -1
  26. package/dist/composables/useDataTransformation.d.ts +1 -1
  27. package/dist/composables/useDataTransformation.d.ts.map +1 -1
  28. package/dist/composables/useDependentOptions.d.ts.map +1 -1
  29. package/dist/composables/useInputProps.d.ts.map +1 -1
  30. package/dist/composables/useInputValidation.d.ts.map +1 -1
  31. package/dist/composables/useLabelTemplate.d.ts.map +1 -1
  32. package/dist/composables/useMultiStepForm.d.ts +27 -0
  33. package/dist/composables/useMultiStepForm.d.ts.map +1 -0
  34. package/dist/index.cjs.js +1 -1
  35. package/dist/index.cjs.js.map +1 -1
  36. package/dist/index.d.ts +1 -0
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.es.js +1040 -635
  39. package/dist/index.es.js.map +1 -1
  40. package/dist/index.umd.js +1 -1
  41. package/dist/index.umd.js.map +1 -1
  42. package/dist/types/index.d.ts +93 -2
  43. package/dist/types/index.d.ts.map +1 -1
  44. package/dist/utils/index.d.ts +7 -1
  45. package/dist/utils/index.d.ts.map +1 -1
  46. package/dist/vform.css +1 -1
  47. package/package.json +5 -1
package/README.md CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  A dynamic form builder for Vue.js with Ionic components
8
8
 
9
- [![Version](https://img.shields.io/badge/version-3.2.0-blue.svg)](https://github.com/uniquedj95/vform/releases)
9
+ [![Version](https://img.shields.io/badge/version-3.4.0-blue.svg)](https://github.com/uniquedj95/vform/releases)
10
10
  [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
11
11
  [![Vue Version](https://img.shields.io/badge/vue-3.5+-brightgreen.svg)](https://vuejs.org/)
12
12
  [![TypeScript](https://img.shields.io/badge/TypeScript-5.5-blue)](https://www.typescriptlang.org/)
@@ -20,22 +20,28 @@ A dynamic form builder for Vue.js with Ionic components
20
20
  ## Table of Contents
21
21
 
22
22
  - [Overview](#overview)
23
+ - [Demo](#demo)
23
24
  - [Features](#features)
24
25
  - [Installation](#installation)
25
26
  - [Usage](#usage)
26
27
  - [Schema Structure](#schema-structure)
27
28
  - [Example Schema](#example-schema)
28
29
  - [Field Configuration Options](#field-configuration-options)
30
+ - [Multi-Step Forms](#multi-step-forms)
31
+ - [Basic Multi-Step Setup](#basic-multi-step-setup)
32
+ - [Step Configuration](#step-configuration)
33
+ - [Step Indicator Positioning](#step-indicator-positioning)
34
+ - [Step Validation](#step-validation)
29
35
  - [Form Events](#form-events)
30
36
  - [Form Methods](#form-methods)
31
37
  - [Input Dependencies](#input-dependencies)
32
38
  - [Dynamic Options](#dynamic-options)
39
+ - [Resetting Dependent Fields](#resetting-dependent-fields)
33
40
  - [Advanced Components](#advanced-components)
34
41
  - [SelectInput](#selectinput)
35
42
  - [Custom Buttons](#custom-buttons)
36
43
  - [RepeatInput](#repeatinput)
37
44
  - [Option Descriptions](#option-descriptions)
38
- - [Date Pattern Formatting](#date-pattern-formatting)
39
45
  - [Issue Reporting and Feedback](#issue-reporting-and-feedback)
40
46
  - [Contributors](#contributors)
41
47
 
@@ -43,16 +49,51 @@ A dynamic form builder for Vue.js with Ionic components
43
49
 
44
50
  vForm is a Vue.js component that dynamically generates forms based on a provided schema. It leverages Ionic components for a responsive and mobile-friendly design, supporting complex forms with conditional rendering and validation logic. It provides a robust and flexible form-building solution for Vue.js applications, allowing for a high degree of customization and control over the form behavior and appearance.
45
51
 
52
+ ## Demo
53
+
54
+ Explore all VForm features with our comprehensive interactive demo:
55
+
56
+ ```bash
57
+ # Clone the repository
58
+ git clone https://github.com/uniquedj95/vform.git
59
+ cd vform
60
+
61
+ # Setup and run the demo
62
+ npm run demo:setup
63
+ npm run demo:dev
64
+ ```
65
+
66
+ The demo showcases:
67
+
68
+ - **Basic Forms**: All input types and basic functionality
69
+ - **Multi-Step Forms**: Step indicators, validation, and smart navigation
70
+ - **Advanced Features**: Masking, computed fields, custom buttons
71
+ - **Validation Examples**: Custom validators and error handling
72
+ - **Dependent Fields**: Dynamic field behavior and cascading options
73
+ - **Custom Styles**: Theming and visual customization
74
+
75
+ Visit the displayed URL (usually `http://localhost:3000`) to explore the interactive examples.
76
+
77
+ ### Development Workflow
78
+
79
+ When working on the library and wanting to test changes in the demo:
80
+
81
+ ```bash
82
+ # Update demo with latest library changes
83
+ npm run demo:update
84
+ ```
85
+
46
86
  ## Features
47
87
 
88
+ - **Multi-Step Forms**: Create guided, step-by-step forms with configurable step indicators, validation, and smart navigation.
48
89
  - **Dynamic Form Generation**: Create forms dynamically based on a schema definition.
49
90
  - **Conditional Field Rendering**: Fields can be shown or hidden based on other form values.
50
91
  - **Dependent Options**: Load options for select inputs based on the values of other fields.
51
92
  - **Responsive Grid Layout**: Utilizes Ionic Grid for a responsive design that works across different screen sizes.
52
- - **Enhanced Date Input Field**: Custom date formatting and handling with integrated date picker.
93
+ - **Enhanced Date Input Field**: Built-in date and datetime picker support with Ionic components.
53
94
  - **Multiple Selection Interfaces**: Three different interfaces for select inputs (popover, action sheet, alert).
54
95
  - **Repeatable Field Groups**: Create dynamic, repeatable sets of form fields.
55
- - **Advanced Validation**: Built-in validation with support for custom validation functions.
96
+ - **Advanced Validation**: Built-in validation with support for custom validation functions and step-by-step validation.
56
97
  - **Computed Values**: Generate and transform values based on other form fields.
57
98
  - **Customizable Styling**: Control appearance with flexible styling options.
58
99
  - **Form Actions**: Customizable buttons with support for additional custom actions.
@@ -299,7 +340,216 @@ The following input types are supported:
299
340
  | ---------- | ------------ | ------------------------------------- |
300
341
  | `children` | `FormSchema` | Schema for the repeatable field group |
301
342
 
302
- ### Form Events
343
+ ## Multi-Step Forms
344
+
345
+ vForm supports multi-step forms with configurable step indicators, validation, and smart navigation. Multi-step forms break complex forms into manageable sections, improving user experience and data collection.
346
+
347
+ ### Basic Multi-Step Setup
348
+
349
+ To create a multi-step form, define a `multiStepConfig` prop:
350
+
351
+ ```vue
352
+ <template>
353
+ <v-form
354
+ :schema="formSchema"
355
+ :multi-step-config="multiStepConfig"
356
+ @submit="handleSubmit"
357
+ @step-change="handleStepChange"
358
+ />
359
+ </template>
360
+
361
+ <script setup lang="ts">
362
+ import { reactive } from 'vue';
363
+ import { FormSchema, MultiStepConfig } from '@uniquedj95/vform';
364
+
365
+ const formSchema = reactive<FormSchema>({
366
+ // Personal Information Step
367
+ firstName: {
368
+ type: 'TextInput',
369
+ label: 'First Name',
370
+ required: true,
371
+ },
372
+ lastName: {
373
+ type: 'TextInput',
374
+ label: 'Last Name',
375
+ required: true,
376
+ },
377
+ // Contact Information Step
378
+ email: {
379
+ type: 'EmailInput',
380
+ label: 'Email',
381
+ required: true,
382
+ },
383
+ phone: {
384
+ type: 'TextInput',
385
+ label: 'Phone Number',
386
+ },
387
+ // Review Step
388
+ comments: {
389
+ type: 'TextAreaInput',
390
+ label: 'Additional Comments',
391
+ },
392
+ });
393
+
394
+ const multiStepConfig: MultiStepConfig = {
395
+ steps: [
396
+ {
397
+ id: 'personal',
398
+ title: 'Personal Information',
399
+ subtitle: 'Basic details about you',
400
+ schema: {
401
+ firstName: formSchema.firstName,
402
+ lastName: formSchema.lastName,
403
+ },
404
+ },
405
+ {
406
+ id: 'contact',
407
+ title: 'Contact Details',
408
+ subtitle: 'How we can reach you',
409
+ schema: {
410
+ email: formSchema.email,
411
+ phone: formSchema.phone,
412
+ },
413
+ },
414
+ {
415
+ id: 'review',
416
+ title: 'Review & Submit',
417
+ subtitle: 'Final review of your information',
418
+ schema: {
419
+ comments: formSchema.comments,
420
+ },
421
+ },
422
+ ],
423
+ stepPosition: 'top',
424
+ showProgress: true,
425
+ allowStepNavigation: true,
426
+ };
427
+
428
+ function handleSubmit(allData: FormData, perStepData: MultiStepFormData) {
429
+ console.log('All form data:', allData);
430
+ console.log('Per-step data:', perStepData);
431
+ }
432
+
433
+ function handleStepChange(stepIndex: number, stepId: string) {
434
+ console.log(`Moved to step ${stepIndex + 1}: ${stepId}`);
435
+ }
436
+ </script>
437
+ ```
438
+
439
+ ### Step Configuration
440
+
441
+ Each step in the multi-step configuration supports the following properties:
442
+
443
+ | Property | Type | Description | Required |
444
+ | ------------ | ------------ | --------------------------------------------- | -------- |
445
+ | `id` | `string` | Unique identifier for the step | Yes |
446
+ | `title` | `string` | Display title for the step | Yes |
447
+ | `subtitle` | `string` | Optional subtitle/description for the step | No |
448
+ | `schema` | `FormSchema` | Schema object containing fields for this step | Yes |
449
+ | `validation` | `function` | Custom validation function for the step | No |
450
+
451
+ ### Step Indicator Positioning
452
+
453
+ The step indicator can be positioned in four different locations:
454
+
455
+ ```typescript
456
+ const multiStepConfig: MultiStepConfig = {
457
+ stepPosition: 'top', // Above the form content (default)
458
+ // stepPosition: 'bottom', // Below the form content
459
+ // stepPosition: 'left', // Left side of the form content
460
+ // stepPosition: 'right', // Right side of the form content
461
+ // ... other config
462
+ };
463
+ ```
464
+
465
+ #### Position Behaviors
466
+
467
+ - **Top/Bottom**: Step indicators display horizontally with connecting lines
468
+ - **Left**: Step indicators display vertically with titles to the right of numbered markers
469
+ - **Right**: Step indicators display vertically with titles to the left of numbered markers
470
+
471
+ ### Step Validation
472
+
473
+ Multi-step forms include built-in validation that prevents users from proceeding to the next step until the current step is valid:
474
+
475
+ - **Next Step**: Validates all fields in the current step before advancing
476
+ - **Step Navigation**: When clicking step indicators, validates current step if moving forward
477
+ - **Submit**: Validates all steps before final submission
478
+
479
+ ```typescript
480
+ const multiStepConfig: MultiStepConfig = {
481
+ steps: [
482
+ {
483
+ id: 'personal',
484
+ title: 'Personal Information',
485
+ schema: {
486
+ /* fields */
487
+ },
488
+ // Optional custom validation for this step
489
+ validation: async (stepData, computedData) => {
490
+ const errors: string[] = [];
491
+
492
+ // Custom validation logic
493
+ if (stepData.firstName && stepData.lastName && stepData.firstName === stepData.lastName) {
494
+ errors.push('First and last name cannot be the same');
495
+ }
496
+
497
+ return errors;
498
+ },
499
+ },
500
+ // ... other steps
501
+ ],
502
+ // ... other config
503
+ };
504
+ ```
505
+
506
+ ### Multi-Step Configuration Options
507
+
508
+ | Property | Type | Description | Default |
509
+ | --------------------- | ---------------------------------------- | --------------------------------------------- | -------- |
510
+ | `steps` | `FormStep[]` | Array of step configurations | Required |
511
+ | `stepPosition` | `'top' \| 'bottom' \| 'left' \| 'right'` | Position of the step indicator | `'top'` |
512
+ | `showProgress` | `boolean` | Show progress bar and step counter | `true` |
513
+ | `allowStepNavigation` | `boolean` | Allow clicking on step indicators to navigate | `false` |
514
+
515
+ ### Multi-Step Events
516
+
517
+ | Event | Description | Signature |
518
+ | ------------- | ----------------------------------------- | --------------------------------------------------------------- |
519
+ | `step-change` | Emitted when user navigates between steps | `(stepIndex: number, stepId: string) => void` |
520
+ | `submit` | Emitted when multi-step form is submitted | `(allData: FormData, multiStepData: MultiStepFormData) => void` |
521
+
522
+ The `submit` event provides both the combined data from all steps and the per-step data structure:
523
+
524
+ ```typescript
525
+ // Combined data from all steps
526
+ allData: FormData = {
527
+ firstName: 'John',
528
+ lastName: 'Doe',
529
+ email: 'john@example.com',
530
+ // ...
531
+ };
532
+
533
+ // Per-step data structure
534
+ multiStepData: MultiStepFormData = {
535
+ steps: {
536
+ personal: { firstName: 'John', lastName: 'Doe' },
537
+ contact: { email: 'john@example.com', phone: '...' },
538
+ review: { comments: '...' },
539
+ },
540
+ computedSteps: {
541
+ /* computed values per step */
542
+ },
543
+ allFormData: {
544
+ /* same as allData */
545
+ },
546
+ allComputedData: {
547
+ /* all computed values */
548
+ },
549
+ };
550
+ ```
551
+
552
+ ## Form Events
303
553
 
304
554
  | Event | Description | Signature |
305
555
  | -------- | ---------------------------------------------------------------- | -------------------------------------------------------------- |
@@ -391,6 +641,80 @@ An input can also depend on multiple other inputs:
391
641
 
392
642
  For more details and examples, see the [Dependencies Documentation](./docs/DEPENDENCIES.md).
393
643
 
644
+ #### Resetting Dependent Fields
645
+
646
+ When a dependency changes, you often want to reset the dependent field's value to prevent invalid combinations (e.g., when changing from "USA" to "Canada", the previously selected "California" state should be cleared).
647
+
648
+ **Method 1: Automatic Reset (Built-in)**
649
+
650
+ The SelectInput component automatically detects dependency changes and resets the field value when using the `dependsOn` property:
651
+
652
+ ```javascript
653
+ const formSchema = {
654
+ country: {
655
+ type: 'SelectInput',
656
+ label: 'Country',
657
+ options: [
658
+ { label: 'United States', value: 'us' },
659
+ { label: 'Canada', value: 'ca' },
660
+ ],
661
+ },
662
+ state: {
663
+ type: 'SelectInput',
664
+ label: 'State/Province',
665
+ dependsOn: 'country',
666
+ options: (filter, dependencyValues) => {
667
+ const country = dependencyValues?.country?.value;
668
+ return getStatesForCountry(country);
669
+ },
670
+ },
671
+ };
672
+ ```
673
+
674
+ When the country changes, the state field automatically resets to empty and reloads options.
675
+
676
+ **Method 2: Manual Reset (Workaround)**
677
+
678
+ If the automatic reset doesn't work as expected, you can manually reset dependent fields using the `onChange` callback:
679
+
680
+ ```javascript
681
+ {
682
+ country: {
683
+ type: 'SelectInput',
684
+ label: 'Country',
685
+ options: [...],
686
+ onChange: (value, schema) => {
687
+ // Manual reset as workaround
688
+ schema.state.value = '';
689
+ return value;
690
+ },
691
+ }
692
+ }
693
+ ```
694
+
695
+ **Method 3: Multiple Field Reset**
696
+
697
+ You can reset multiple dependent fields at once using onChange:
698
+
699
+ ```javascript
700
+ {
701
+ country: {
702
+ type: 'SelectInput',
703
+ label: 'Country',
704
+ options: [...],
705
+ onChange: (value, schema) => {
706
+ // Reset all location-dependent fields
707
+ schema.state.value = '';
708
+ schema.city.value = '';
709
+ schema.zipCode.value = '';
710
+ return value;
711
+ },
712
+ }
713
+ }
714
+ ```
715
+
716
+ **Note:** Use the onChange approach as a workaround when the automatic reset doesn't work properly, or when you need to reset multiple fields or perform additional logic when dependencies change.
717
+
394
718
  ### Advanced Components
395
719
 
396
720
  #### SelectInput
@@ -500,40 +824,21 @@ When using SelectInput or CheckboxInput, you can add descriptions to options:
500
824
  }
501
825
  ```
502
826
 
503
- #### Date Pattern Formatting
504
-
505
- The DateInput component supports various date pattern formats:
506
-
507
- | Pattern | Description | Example |
508
- | ------- | ----------------------------------------------- | ----------------------- |
509
- | DD | Day of the month, two digits with leading zeros | 01 to 31 |
510
- | D | Day of the month without leading zeros | 1 to 31 |
511
- | MMM | Month name, abbreviated | Jan, Feb, Mar, etc. |
512
- | MMMM | Month name, full | January, February, etc. |
513
- | MM | Month as a number, with leading zeros | 01 to 12 |
514
- | M | Month as a number, without leading zeros | 1 to 12 |
515
- | YYYY | Year, four digits | 2025 |
516
- | YY | Year, two digits | 25 |
517
- | HH | Hour, two digits with leading zeros (24-hour) | 00 to 23 |
518
- | mm | Minutes, two digits with leading zeros | 00 to 59 |
519
- | ss | Seconds, two digits with leading zeros | 00 to 59 |
520
-
521
- Example: `DD/MMM/YYYY HH:mm:ss` would format as `07/Jun/2025 14:30:00`
522
-
523
827
  ### Form Props
524
828
 
525
- | Property | Type | Description | Default |
526
- | ------------------ | ------------------------------ | ---------------------------------------------------------------------- | ---------- |
527
- | `schema` | `FormSchema` | The schema object defining the form structure and field configurations | _Required_ |
528
- | `showLabels` | `boolean` | Determines if labels are displayed for each field | `true` |
529
- | `showClearButton` | `boolean` | Controls the visibility of the clear/reset button | `true` |
530
- | `showCancelButton` | `boolean` | Controls the visibility of the cancel button | `true` |
531
- | `buttonPlacement` | `'start' \| 'middle' \| 'end'` | Specifies the alignment of action buttons within the form | `'start'` |
532
- | `submitButtonText` | `string` | Custom text for the submit button | `"Submit"` |
533
- | `clearButtonText` | `string` | Custom text for the clear/reset button | `"Reset"` |
534
- | `cancelButtonText` | `string` | Custom text for the cancel button | `"Cancel"` |
535
- | `hideButtons` | `boolean` | When true, hides all action buttons | `false` |
536
- | `customButtons` | `Array<CustomButton>` | Array of custom buttons to add to the form | `[]` |
829
+ | Property | Type | Description | Default |
830
+ | ------------------ | ------------------------------ | ---------------------------------------------------------------------- | ----------- |
831
+ | `schema` | `FormSchema` | The schema object defining the form structure and field configurations | _Required_ |
832
+ | `multiStepConfig` | `MultiStepConfig` | Configuration for multi-step forms (optional) | `undefined` |
833
+ | `showLabels` | `boolean` | Determines if labels are displayed for each field | `true` |
834
+ | `showClearButton` | `boolean` | Controls the visibility of the clear/reset button | `true` |
835
+ | `showCancelButton` | `boolean` | Controls the visibility of the cancel button | `true` |
836
+ | `buttonPlacement` | `'start' \| 'middle' \| 'end'` | Specifies the alignment of action buttons within the form | `'start'` |
837
+ | `submitButtonText` | `string` | Custom text for the submit button | `"Submit"` |
838
+ | `clearButtonText` | `string` | Custom text for the clear/reset button | `"Reset"` |
839
+ | `cancelButtonText` | `string` | Custom text for the cancel button | `"Cancel"` |
840
+ | `hideButtons` | `boolean` | When true, hides all action buttons | `false` |
841
+ | `customButtons` | `Array<CustomButton>` | Array of custom buttons to add to the form | `[]` |
537
842
 
538
843
  ## Issue Reporting and Feedback
539
844
 
@@ -567,6 +872,11 @@ import {
567
872
  FormOptions,
568
873
  GridSize,
569
874
  CustomButton,
875
+ // Multi-step types
876
+ MultiStepConfig,
877
+ MultiStepFormData,
878
+ FormStep,
879
+ StepPosition,
570
880
  } from '@uniquedj95/vform';
571
881
  ```
572
882
 
@@ -1 +1 @@
1
- {"version":3,"file":"BaseInput.vue.d.ts","sourceRoot":"","sources":["../../../src/components/inputs/BaseInput.vue"],"names":[],"mappings":"AA8BA;AAyEA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAMpE,KAAK,WAAW,GAAG;IAAE,MAAM,CAAC,EAAE,UAAU,CAAC;IAAC,IAAI,CAAC,EAAE,cAAc,CAAA;CAAE,CAAC;AAElE,QAAA,MAAM,KAAK,iEAAoE,CAAC;AAwChF,KAAK,iBAAiB,GAAG;IACzB,UAAU,CAAC,EAAE,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC;CAClC,GAAG,WAAW,CAAC;;;;;;;;;;;;;;;;;;;;AA8JhB,wBAUG"}
1
+ {"version":3,"file":"BaseInput.vue.d.ts","sourceRoot":"","sources":["../../../src/components/inputs/BaseInput.vue"],"names":[],"mappings":"AA8BA;AAyEA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAMhE,KAAK,WAAW,GAAG;IAAE,MAAM,CAAC,EAAE,UAAU,CAAC;IAAC,IAAI,CAAC,EAAE,cAAc,CAAA;CAAE,CAAC;AAElE,QAAA,MAAM,KAAK,iEAAoE,CAAC;AAwChF,KAAK,iBAAiB,GAAG;IACzB,UAAU,CAAC,EAAE,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC;CAClC,GAAG,WAAW,CAAC;;;;;;;;;;;;;;;;;;;;AA8JhB,wBAUG"}
@@ -1,4 +1,4 @@
1
- import { FormField, FormSchema } from 'types';
1
+ import { FormField, FormSchema } from '../../types';
2
2
  type __VLS_Props = {
3
3
  schema?: FormSchema;
4
4
  };
@@ -1 +1 @@
1
- {"version":3,"file":"CheckboxInput.vue.d.ts","sourceRoot":"","sources":["../../../src/components/inputs/CheckboxInput.vue"],"names":[],"mappings":"AAcA;AAuDA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAK9C,KAAK,WAAW,GAAG;IAAE,MAAM,CAAC,EAAE,UAAU,CAAA;CAAE,CAAC;AAE3C,QAAA,MAAM,KAAK,iEAAoE,CAAC;AAYhF,iBAAS,OAAO,SAIf;AAsBD,KAAK,iBAAiB,GAAG;IACzB,UAAU,CAAC,EAAE,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC;CAClC,GAAG,WAAW,CAAC;;;;;;;;;;;;;;;;;;;AAmFhB,wBAUG"}
1
+ {"version":3,"file":"CheckboxInput.vue.d.ts","sourceRoot":"","sources":["../../../src/components/inputs/CheckboxInput.vue"],"names":[],"mappings":"AAcA;AAuDA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAKhD,KAAK,WAAW,GAAG;IAAE,MAAM,CAAC,EAAE,UAAU,CAAA;CAAE,CAAC;AAE3C,QAAA,MAAM,KAAK,iEAAoE,CAAC;AAYhF,iBAAS,OAAO,SAIf;AAsBD,KAAK,iBAAiB,GAAG;IACzB,UAAU,CAAC,EAAE,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC;CAClC,GAAG,WAAW,CAAC;;;;;;;;;;;;;;;;;;;AAmFhB,wBAUG"}
@@ -1 +1 @@
1
- {"version":3,"file":"DateInput.vue.d.ts","sourceRoot":"","sources":["../../../src/components/inputs/DateInput.vue"],"names":[],"mappings":"AAQA;AA0BA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAIzD,KAAK,WAAW,GAAG;IAAE,MAAM,CAAC,EAAE,UAAU,CAAA;CAAE,CAAC;AAE3C,QAAA,MAAM,KAAK,iEAAoE,CAAC;AAkBhF,KAAK,iBAAiB,GAAG;IACzB,UAAU,CAAC,EAAE,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC;CAClC,GAAG,WAAW,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4DhB,wBAUG"}
1
+ {"version":3,"file":"DateInput.vue.d.ts","sourceRoot":"","sources":["../../../src/components/inputs/DateInput.vue"],"names":[],"mappings":"AAQA;AA0BA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAIrD,KAAK,WAAW,GAAG;IAAE,MAAM,CAAC,EAAE,UAAU,CAAA;CAAE,CAAC;AAE3C,QAAA,MAAM,KAAK,iEAAoE,CAAC;AAkBhF,KAAK,iBAAiB,GAAG;IACzB,UAAU,CAAC,EAAE,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC;CAClC,GAAG,WAAW,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4DhB,wBAUG"}
@@ -1,4 +1,4 @@
1
- import { FormField, FormSchema } from 'types';
1
+ import { FormField, FormSchema } from '../../types';
2
2
  type __VLS_Props = {
3
3
  schema?: FormSchema;
4
4
  };
@@ -19,7 +19,7 @@ declare const _default: import('vue').DefineComponent<__VLS_PublicProps, {
19
19
  modelValue?: FormField;
20
20
  } & {
21
21
  schema?: FormSchema;
22
- type?: import('types').BaseFieldTypes;
22
+ type?: import('../../types').BaseFieldTypes;
23
23
  }> & Readonly<{
24
24
  "onUpdate:modelValue"?: ((value: FormField) => any) | undefined;
25
25
  }>, {
@@ -49,7 +49,7 @@ declare const _default: import('vue').DefineComponent<__VLS_PublicProps, {
49
49
  modelValue?: FormField;
50
50
  } & {
51
51
  schema?: FormSchema;
52
- type?: import('types').BaseFieldTypes;
52
+ type?: import('../../types').BaseFieldTypes;
53
53
  }> & Readonly<{
54
54
  "onUpdate:modelValue"?: ((value: FormField) => any) | undefined;
55
55
  }>, {
@@ -1 +1 @@
1
- {"version":3,"file":"EmailInput.vue.d.ts","sourceRoot":"","sources":["../../../src/components/inputs/EmailInput.vue"],"names":[],"mappings":"AAGA;AAsBA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAG9C,KAAK,WAAW,GAAG;IAAE,MAAM,CAAC,EAAE,UAAU,CAAA;CAAE,CAAC;AAE3C,QAAA,MAAM,KAAK,iEAAoE,CAAC;AAkBhF,KAAK,iBAAiB,GAAG;IACzB,UAAU,CAAC,EAAE,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC;CAClC,GAAG,WAAW,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4DhB,wBAUG"}
1
+ {"version":3,"file":"EmailInput.vue.d.ts","sourceRoot":"","sources":["../../../src/components/inputs/EmailInput.vue"],"names":[],"mappings":"AAGA;AAsBA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGhD,KAAK,WAAW,GAAG;IAAE,MAAM,CAAC,EAAE,UAAU,CAAA;CAAE,CAAC;AAE3C,QAAA,MAAM,KAAK,iEAAoE,CAAC;AAkBhF,KAAK,iBAAiB,GAAG;IACzB,UAAU,CAAC,EAAE,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC;CAClC,GAAG,WAAW,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4DhB,wBAUG"}
@@ -1,4 +1,4 @@
1
- import { FormField, FormSchema } from 'types';
1
+ import { FormField, FormSchema } from '../../types';
2
2
  type __VLS_Props = {
3
3
  schema?: FormSchema;
4
4
  };
@@ -19,7 +19,7 @@ declare const _default: import('vue').DefineComponent<__VLS_PublicProps, {
19
19
  modelValue?: FormField;
20
20
  } & {
21
21
  schema?: FormSchema;
22
- type?: import('types').BaseFieldTypes;
22
+ type?: import('../../types').BaseFieldTypes;
23
23
  }> & Readonly<{
24
24
  "onUpdate:modelValue"?: ((value: FormField) => any) | undefined;
25
25
  }>, {
@@ -49,7 +49,7 @@ declare const _default: import('vue').DefineComponent<__VLS_PublicProps, {
49
49
  modelValue?: FormField;
50
50
  } & {
51
51
  schema?: FormSchema;
52
- type?: import('types').BaseFieldTypes;
52
+ type?: import('../../types').BaseFieldTypes;
53
53
  }> & Readonly<{
54
54
  "onUpdate:modelValue"?: ((value: FormField) => any) | undefined;
55
55
  }>, {
@@ -1 +1 @@
1
- {"version":3,"file":"NumberInput.vue.d.ts","sourceRoot":"","sources":["../../../src/components/inputs/NumberInput.vue"],"names":[],"mappings":"AAGA;AAsBA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAG9C,KAAK,WAAW,GAAG;IAAE,MAAM,CAAC,EAAE,UAAU,CAAA;CAAE,CAAC;AAE3C,QAAA,MAAM,KAAK,iEAAoE,CAAC;AAkBhF,KAAK,iBAAiB,GAAG;IACzB,UAAU,CAAC,EAAE,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC;CAClC,GAAG,WAAW,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4DhB,wBAUG"}
1
+ {"version":3,"file":"NumberInput.vue.d.ts","sourceRoot":"","sources":["../../../src/components/inputs/NumberInput.vue"],"names":[],"mappings":"AAGA;AAsBA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGhD,KAAK,WAAW,GAAG;IAAE,MAAM,CAAC,EAAE,UAAU,CAAA;CAAE,CAAC;AAE3C,QAAA,MAAM,KAAK,iEAAoE,CAAC;AAkBhF,KAAK,iBAAiB,GAAG;IACzB,UAAU,CAAC,EAAE,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC;CAClC,GAAG,WAAW,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4DhB,wBAUG"}
@@ -1,4 +1,4 @@
1
- import { FormField, FormSchema } from 'types';
1
+ import { FormField, FormSchema } from '../../types';
2
2
  type __VLS_Props = {
3
3
  schema?: FormSchema;
4
4
  };
@@ -19,7 +19,7 @@ declare const _default: import('vue').DefineComponent<__VLS_PublicProps, {
19
19
  modelValue?: FormField;
20
20
  } & {
21
21
  schema?: FormSchema;
22
- type?: import('types').BaseFieldTypes;
22
+ type?: import('../../types').BaseFieldTypes;
23
23
  }> & Readonly<{
24
24
  "onUpdate:modelValue"?: ((value: FormField) => any) | undefined;
25
25
  }>, {
@@ -49,7 +49,7 @@ declare const _default: import('vue').DefineComponent<__VLS_PublicProps, {
49
49
  modelValue?: FormField;
50
50
  } & {
51
51
  schema?: FormSchema;
52
- type?: import('types').BaseFieldTypes;
52
+ type?: import('../../types').BaseFieldTypes;
53
53
  }> & Readonly<{
54
54
  "onUpdate:modelValue"?: ((value: FormField) => any) | undefined;
55
55
  }>, {
@@ -1 +1 @@
1
- {"version":3,"file":"PasswordInput.vue.d.ts","sourceRoot":"","sources":["../../../src/components/inputs/PasswordInput.vue"],"names":[],"mappings":"AAGA;AAsBA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAG9C,KAAK,WAAW,GAAG;IAAE,MAAM,CAAC,EAAE,UAAU,CAAA;CAAE,CAAC;AAE3C,QAAA,MAAM,KAAK,iEAAoE,CAAC;AAkBhF,KAAK,iBAAiB,GAAG;IACzB,UAAU,CAAC,EAAE,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC;CAClC,GAAG,WAAW,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4DhB,wBAUG"}
1
+ {"version":3,"file":"PasswordInput.vue.d.ts","sourceRoot":"","sources":["../../../src/components/inputs/PasswordInput.vue"],"names":[],"mappings":"AAGA;AAsBA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGhD,KAAK,WAAW,GAAG;IAAE,MAAM,CAAC,EAAE,UAAU,CAAA;CAAE,CAAC;AAE3C,QAAA,MAAM,KAAK,iEAAoE,CAAC;AAkBhF,KAAK,iBAAiB,GAAG;IACzB,UAAU,CAAC,EAAE,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC;CAClC,GAAG,WAAW,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4DhB,wBAUG"}
@@ -1 +1 @@
1
- {"version":3,"file":"RadioInput.vue.d.ts","sourceRoot":"","sources":["../../../src/components/inputs/RadioInput.vue"],"names":[],"mappings":"AA0BA;AAkFA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAU,MAAM,aAAa,CAAC;AAK5D,KAAK,WAAW,GAAG;IAAE,MAAM,CAAC,EAAE,UAAU,CAAA;CAAE,CAAC;AAE3C,QAAA,MAAM,KAAK,iEAAoE,CAAC;AAYhF,iBAAS,OAAO,SAIf;AAqCD,KAAK,iBAAiB,GAAG;IACzB,UAAU,CAAC,EAAE,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC;CAClC,GAAG,WAAW,CAAC;;;;;;;;;;;;;;;;;;;AAiHhB,wBAUG"}
1
+ {"version":3,"file":"RadioInput.vue.d.ts","sourceRoot":"","sources":["../../../src/components/inputs/RadioInput.vue"],"names":[],"mappings":"AA0BA;AAkFA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAU,MAAM,SAAS,CAAC;AAKxD,KAAK,WAAW,GAAG;IAAE,MAAM,CAAC,EAAE,UAAU,CAAA;CAAE,CAAC;AAE3C,QAAA,MAAM,KAAK,iEAAoE,CAAC;AAYhF,iBAAS,OAAO,SAIf;AAqCD,KAAK,iBAAiB,GAAG;IACzB,UAAU,CAAC,EAAE,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC;CAClC,GAAG,WAAW,CAAC;;;;;;;;;;;;;;;;;;;AAiHhB,wBAUG"}
@@ -1,4 +1,4 @@
1
- import { ComputedData, FormData, FormField, FormSchema } from 'types';
1
+ import { ComputedData, FormData, FormField, FormSchema } from '../../types';
2
2
  interface PropsI {
3
3
  schema?: FormSchema;
4
4
  data: FormData;
@@ -1 +1 @@
1
- {"version":3,"file":"RepeatInput.vue.d.ts","sourceRoot":"","sources":["../../../src/components/inputs/RepeatInput.vue"],"names":[],"mappings":"AAoCA;AAwHA,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAU,MAAM,OAAO,CAAC;AAO9E,UAAU,MAAM;IACd,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,IAAI,EAAE,QAAQ,CAAC;IACf,YAAY,EAAE,YAAY,CAAC;CAC5B;AAED,KAAK,WAAW,GAAG,MAAM,CAAC;AAE1B,QAAA,MAAM,KAAK,iEAAoE,CAAC;AAwChF,iBAAS,OAAO,SAEf;AAED,iBAAS,SAAS,aAEjB;AAED,iBAAe,aAAa,kBAE3B;AAiBD,KAAK,iBAAiB,GAAG;IACzB,UAAU,CAAC,EAAE,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC;CAClC,GAAG,WAAW,CAAC;;;;;;;;;;;;AAyLhB,wBASG"}
1
+ {"version":3,"file":"RepeatInput.vue.d.ts","sourceRoot":"","sources":["../../../src/components/inputs/RepeatInput.vue"],"names":[],"mappings":"AAoCA;AAwHA,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAU,MAAM,SAAS,CAAC;AAOhF,UAAU,MAAM;IACd,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,IAAI,EAAE,QAAQ,CAAC;IACf,YAAY,EAAE,YAAY,CAAC;CAC5B;AAED,KAAK,WAAW,GAAG,MAAM,CAAC;AAE1B,QAAA,MAAM,KAAK,iEAAoE,CAAC;AAwChF,iBAAS,OAAO,SAEf;AAED,iBAAS,SAAS,aAEjB;AAED,iBAAe,aAAa,kBAE3B;AAiBD,KAAK,iBAAiB,GAAG;IACzB,UAAU,CAAC,EAAE,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC;CAClC,GAAG,WAAW,CAAC;;;;;;;;;;;;AAyLhB,wBASG"}
@@ -1,15 +1,10 @@
1
1
  import { PropType } from 'vue';
2
- import { FormSchema, BaseFieldTypes, FormField, Option, FormValue } from '../../types';
3
- interface DependencyManager {
4
- registerDependency: (fieldId: string, dependsOn: string[], loader: (filter?: string, dependencyValues?: Record<string, FormValue>) => Promise<Option[]>) => void;
5
- updateOptions: (fieldId: string, filterValue?: string) => void;
6
- }
2
+ import { FormSchema, BaseFieldTypes, FormField } from '../../types';
7
3
  declare function onReset(): void;
8
4
  declare function onValueUpdate(evt?: any): Promise<void>;
9
5
  declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
10
6
  schema: PropType<FormSchema>;
11
7
  type: PropType<BaseFieldTypes>;
12
- dependencyManager: PropType<DependencyManager>;
13
8
  formId: StringConstructor;
14
9
  modelValue: {
15
10
  type: PropType<FormField>;
@@ -23,7 +18,6 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
23
18
  }, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
24
19
  schema: PropType<FormSchema>;
25
20
  type: PropType<BaseFieldTypes>;
26
- dependencyManager: PropType<DependencyManager>;
27
21
  formId: StringConstructor;
28
22
  modelValue: {
29
23
  type: PropType<FormField>;
@@ -1 +1 @@
1
- {"version":3,"file":"SelectInput.vue.d.ts","sourceRoot":"","sources":["../../../src/components/inputs/SelectInput.vue"],"names":[],"mappings":"AAiDA;AAgbA,OAAO,EAAiB,QAAQ,EAA6C,MAAM,KAAK,CAAC;AAEzF,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAiBvF,UAAU,iBAAiB;IACzB,kBAAkB,EAAE,CAClB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EAAE,EACnB,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,KACzF,IAAI,CAAC;IACV,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CAChE;AAsCD,iBAAS,OAAO,SAMf;AA6ID,iBAAe,aAAa,CAAC,GAAG,CAAC,EAAE,GAAG,iBAgBrC;;YA0ZmB,QAAQ,CAAC,UAAU,CAAC;UACtB,QAAQ,CAAC,cAAc,CAAC;uBACX,QAAQ,CAAC,iBAAiB,CAAC;;;;;;;;;;;;YAFtC,QAAQ,CAAC,UAAU,CAAC;UACtB,QAAQ,CAAC,cAAc,CAAC;uBACX,QAAQ,CAAC,iBAAiB,CAAC;;;;;;;;;;;;;;;;;;AAZ1D,wBAkBG"}
1
+ {"version":3,"file":"SelectInput.vue.d.ts","sourceRoot":"","sources":["../../../src/components/inputs/SelectInput.vue"],"names":[],"mappings":"AAiDA;AA0aA,OAAO,EAAiB,QAAQ,EAA6C,MAAM,KAAK,CAAC;AAEzF,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,SAAS,EAAU,MAAM,SAAS,CAAC;AAmFxE,iBAAS,OAAO,SAMf;AA6ID,iBAAe,aAAa,CAAC,GAAG,CAAC,EAAE,GAAG,iBAgBrC;;YA8XmB,QAAQ,CAAC,UAAU,CAAC;UACtB,QAAQ,CAAC,cAAc,CAAC;;;;;;;;;;;;YADtB,QAAQ,CAAC,UAAU,CAAC;UACtB,QAAQ,CAAC,cAAc,CAAC;;;;;;;;;;;;;;;;;;AAX1C,wBAiBG"}
@@ -1,4 +1,4 @@
1
- import { FormField, FormSchema } from 'types';
1
+ import { FormField, FormSchema } from '../../types';
2
2
  type __VLS_Props = {
3
3
  schema?: FormSchema;
4
4
  };
@@ -1 +1 @@
1
- {"version":3,"file":"TextAreaInput.vue.d.ts","sourceRoot":"","sources":["../../../src/components/inputs/TextAreaInput.vue"],"names":[],"mappings":"AA4BA;AAgEA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAK9C,KAAK,WAAW,GAAG;IAAE,MAAM,CAAC,EAAE,UAAU,CAAA;CAAE,CAAC;AAE3C,QAAA,MAAM,KAAK,iEAAoE,CAAC;AAiChF,KAAK,iBAAiB,GAAG;IACzB,UAAU,CAAC,EAAE,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC;CAClC,GAAG,WAAW,CAAC;;;;;;;;;;;;;;;;;;;AAuHhB,wBAUG"}
1
+ {"version":3,"file":"TextAreaInput.vue.d.ts","sourceRoot":"","sources":["../../../src/components/inputs/TextAreaInput.vue"],"names":[],"mappings":"AA4BA;AAgEA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAKhD,KAAK,WAAW,GAAG;IAAE,MAAM,CAAC,EAAE,UAAU,CAAA;CAAE,CAAC;AAE3C,QAAA,MAAM,KAAK,iEAAoE,CAAC;AAiChF,KAAK,iBAAiB,GAAG;IACzB,UAAU,CAAC,EAAE,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC;CAClC,GAAG,WAAW,CAAC;;;;;;;;;;;;;;;;;;;AAuHhB,wBAUG"}