@fewangsit/wangsvue-gsts 1.0.0-alpha.26 → 1.0.0-alpha.28

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 (144) hide show
  1. package/components/animation/Animation.vue.d.ts +8 -0
  2. package/components/badge/Badge.vue.d.ts +9 -11
  3. package/components/badgegroup/BadgeGroup.vue.d.ts +6 -23
  4. package/components/badgegrouptree/BadgeGroupTree.vue.d.ts +5 -3
  5. package/components/basetree/BaseTree.vue.d.ts +7 -2
  6. package/components/button/Button.vue.d.ts +8 -12
  7. package/components/buttonImportExcel/ButtonImportExcel.vue.d.ts +1 -1
  8. package/components/buttonbulkaction/ButtonBulkAction.vue.d.ts +1 -0
  9. package/components/buttondownload/ButtonDownload.vue.d.ts +31 -0
  10. package/components/buttonradio/ButtonRadio.vue.d.ts +2 -1
  11. package/components/buttonscan/ButtonScan.vue.d.ts +2 -1
  12. package/components/buttonsearchbyscan/ButtonSearchByScan.vue.d.ts +46 -0
  13. package/components/buttonselecttree/ButtonSelectTree.vue.d.ts +11 -1
  14. package/components/buttonsplit/ButtonSplit.vue.d.ts +10 -7
  15. package/components/buttonsync/ButtonSync.vue.d.ts +1 -1
  16. package/components/buttontoggle/ButtonToggle.vue.d.ts +1 -0
  17. package/components/calendar/Calendar.vue.d.ts +27 -4
  18. package/components/card/Card.vue.d.ts +2 -1
  19. package/components/carousel/Carousel.vue.d.ts +28 -0
  20. package/components/changelog/Changelog.vue.d.ts +7 -3
  21. package/components/changelogpage/ChangelogPage.vue.d.ts +9 -2
  22. package/components/checkbox/Checkbox.vue.d.ts +2 -1
  23. package/components/customcolumn/CustomColumn.vue.d.ts +1 -1
  24. package/components/datatable/DataTable.vue.d.ts +12 -2
  25. package/components/dialog/Dialog.vue.d.ts +5 -4
  26. package/components/dialogconfirm/DialogConfirm.vue.d.ts +8 -8
  27. package/components/dialogform/DialogForm.vue.d.ts +4 -3
  28. package/components/dialogselecttree/DialogSelectTree.vue.d.ts +14 -3
  29. package/components/dropdown/Dropdown.vue.d.ts +21 -2
  30. package/components/editor/Editor.vue.d.ts +2 -1
  31. package/components/fieldwrapper/FieldWrapper.vue.d.ts +19 -2
  32. package/components/fileupload/FileUpload.vue.d.ts +2 -1
  33. package/components/filtercontainer/FilterContainer.vue.d.ts +103 -67
  34. package/components/form/Form.vue.d.ts +5 -2
  35. package/components/icon/Icon.vue.d.ts +4 -1
  36. package/components/image/Image.vue.d.ts +9 -1
  37. package/components/imagecompressor/ImageCompressor.vue.d.ts +9 -1
  38. package/components/index.d.ts +25 -28
  39. package/components/inlinemessage/InlineMessage.vue.d.ts +1 -1
  40. package/components/inputbadge/InputBadge.vue.d.ts +1 -1
  41. package/components/inputcurrency/InputCurrency.vue.d.ts +1 -1
  42. package/components/inputcurrency/helpers/currency.helper.d.ts +5 -1
  43. package/components/inputemail/InputEmail.vue.d.ts +1 -0
  44. package/components/inputnumber/InputNumber.vue.d.ts +6 -0
  45. package/components/inputotp/InputOtp.vue.d.ts +3 -0
  46. package/components/inputpassword/InputPassword.vue.d.ts +1 -0
  47. package/components/inputrangenumber/InputRangeNumber.vue.d.ts +1 -0
  48. package/components/inputtext/InputText.vue.d.ts +2 -1
  49. package/components/inputurl/InputURL.vue.d.ts +3 -1
  50. package/components/invisiblefield/InvisibleField.vue.d.ts +1 -1
  51. package/components/languagedropdown/LanguageDropdown.vue.d.ts +2 -1
  52. package/components/languageswitcher/LanguageSwitcher.vue.d.ts +1 -1
  53. package/components/litedropdown/LiteDropdown.vue.d.ts +3 -1
  54. package/components/loading/store/loading.store.d.ts +3 -3
  55. package/components/menu/Menu.vue.d.ts +3 -2
  56. package/components/multiselect/MultiSelect.vue.d.ts +2 -1
  57. package/components/overlaypanel/OverlayPanel.vue.d.ts +2 -1
  58. package/components/paginator/Paginator.vue.d.ts +285 -0
  59. package/components/tabmenu/TabMenu.vue.d.ts +7 -191
  60. package/components/tagtype/TagType.vue.d.ts +6 -1
  61. package/components/textarea/Textarea.vue.d.ts +2 -1
  62. package/components/timeline/Timeline.vue.d.ts +22 -3
  63. package/components/toast/Toast.vue.d.ts +3 -2
  64. package/components/toggleswitch/ToggleSwitch.vue.d.ts +2 -1
  65. package/components/tree/Tree.vue.d.ts +8 -2
  66. package/components/tree/helpers/filterNodeKeys.helper.d.ts +8 -2
  67. package/components/tree/helpers/flattenTreeNodeChildren.helper.d.ts +3 -1
  68. package/components/ts-helpers.d.ts +8 -0
  69. package/components/username/UserName.vue.d.ts +14 -4
  70. package/config/defaultProps.d.ts +1 -1
  71. package/config/index.d.ts +1 -1
  72. package/config/locale.d.ts +1 -1
  73. package/directives/focus.d.ts +1 -1
  74. package/event-bus/index.d.ts +59 -53
  75. package/event-bus/mitt.d.ts +29 -14
  76. package/main.d.ts +31 -2
  77. package/package.json +17 -6
  78. package/plugins/WangsVue.d.ts +276 -214
  79. package/plugins/formValidation.d.ts +16 -6
  80. package/plugins/i18n.d.ts +88 -79
  81. package/stats.html +4949 -0
  82. package/style.css +3 -1
  83. package/utils/date.util.d.ts +64 -31
  84. package/utils/exportToExcel.util.d.ts +23 -16
  85. package/utils/getStatusSeverity.util.d.ts +10 -3
  86. package/utils/index.d.ts +15 -20
  87. package/utils/object.util.d.ts +14 -3
  88. package/utils/role.util.d.ts +5 -1
  89. package/utils/textFormatter.util.d.ts +15 -3
  90. package/utils/toast.util.d.ts +119 -3
  91. package/utils/xlsx.util.d.ts +19 -0
  92. package/wangsvue-gsts.js +53136 -0
  93. package/wangsvue-gsts.system.js +93 -265
  94. package/assets/json/currencies.json.d.ts +0 -1068
  95. package/build-entry.d.ts +0 -14
  96. package/components/buttonscan/helpers/getErrorCode.helper.d.ts +0 -3
  97. package/components/buttonscan/helpers/index.d.ts +0 -1
  98. package/components/buttonscan/workers/scanner.worker.d.ts +0 -1
  99. package/components/calendar/BaseCalendar.vue.d.ts +0 -89
  100. package/components/changelogpage/ChangelogFilter.vue.d.ts +0 -16
  101. package/components/codesnippet/CodeSnippet.vue.d.ts +0 -14
  102. package/components/customcolumn/ColumnList.vue.d.ts +0 -27
  103. package/components/customcolumn/helpers/setVisibilityColumn.helper.d.ts +0 -12
  104. package/components/datatable/MultiRow.vue.d.ts +0 -16
  105. package/components/datatable/helpers/adjustMenuPosition.helper.d.ts +0 -1
  106. package/components/datatable/helpers/filter.helper.d.ts +0 -28
  107. package/components/datatable/helpers/index.d.ts +0 -3
  108. package/components/datatable/helpers/readConfig.helper.d.ts +0 -2
  109. package/components/datatable/store/dataTable.store.d.ts +0 -22
  110. package/components/editor/CodeSnippetAdapter.vue.d.ts +0 -92
  111. package/components/editor/EditorButton.vue.d.ts +0 -15
  112. package/components/editor/MentionList.vue.d.ts +0 -35
  113. package/components/editor/MentionSection.vue.d.ts +0 -92
  114. package/components/editor/codeSnippetExtension.d.ts +0 -3
  115. package/components/editor/mentionSectionExtension.d.ts +0 -3
  116. package/components/editor/suggestion.d.ts +0 -2
  117. package/components/filtercontainer/helpers/applyFilter.helper.d.ts +0 -5
  118. package/components/filtercontainer/helpers/formatDateTimeRange.helper.d.ts +0 -7
  119. package/components/filtercontainer/helpers/getOption.helper.d.ts +0 -3
  120. package/components/gallerypreview/GalleryPreview.vue.d.ts +0 -31
  121. package/components/hardwaresync/store/device.store.d.ts +0 -36
  122. package/components/helpers/convertToArrayClass.helper.d.ts +0 -2
  123. package/components/helpers/index.d.ts +0 -2
  124. package/components/helpers/label.d.ts +0 -15
  125. package/components/imagecompressor/BackgroundImageCropper.vue.d.ts +0 -36
  126. package/components/imagecompressor/ImageInputInfo.vue.d.ts +0 -32
  127. package/components/inputgroup/InputGroup.vue.d.ts +0 -141
  128. package/components/inputphonenumber/helpers/getUserLocation.helper.d.ts +0 -8
  129. package/components/languagedropdown/LanguageDropdownOption.vue.d.ts +0 -18
  130. package/components/menu/helpers/filterMenu.helper.d.ts +0 -12
  131. package/components/menu/helpers/index.d.ts +0 -1
  132. package/components/menuitem/MenuItem.vue.d.ts +0 -19
  133. package/components/progressbar/ProgressBar.vue.d.ts +0 -72
  134. package/components/quickfilter/QuickFilter.vue.d.ts +0 -25
  135. package/components/timeline/TimelineContentByType.vue.d.ts +0 -16
  136. package/components/tooltipspan/TooltipSpan.vue.d.ts +0 -20
  137. package/components/tree/helpers/index.d.ts +0 -3
  138. package/components/usergroup/UserGroup.vue.d.ts +0 -57
  139. package/utils/addAttachment.util.d.ts +0 -43
  140. package/utils/filterOptions.util.d.ts +0 -3
  141. package/utils/genPlaceholder.util.d.ts +0 -8
  142. package/utils/getAttachmentIcon.util.d.ts +0 -8
  143. package/utils/mergePropsWithDefaults.util.d.ts +0 -20
  144. package/wangsvue-gsts.es.js +0 -133833
@@ -1,8 +1,9 @@
1
1
  import { GenericObject } from 'vee-validate';
2
2
  import { Slot } from 'vue';
3
+
3
4
  import FormInstance, { FormPayload, FormProps } from '../form/Form.vue.d';
4
5
  import { WangsIcons } from '../icon/Icon.vue.d';
5
- import { ClassComponent, GlobalComponentConstructor } from '../ts-helpers';
6
+ import { ClassComponent, GlobalComponentConstructor } from '../ts-helpers.d';
6
7
 
7
8
  export type DialogFormValue =
8
9
  | string
@@ -85,7 +86,7 @@ export interface DialogFormProps extends FormProps {
85
86
  * @default 260
86
87
  */
87
88
  asideRightWidth?: number;
88
- class?: string | string[];
89
+ class?: string | string[] | object[];
89
90
 
90
91
  /**
91
92
  * Custom button cancel label.
@@ -117,7 +118,7 @@ export interface DialogFormProps extends FormProps {
117
118
  /**
118
119
  * @deprecated
119
120
  */
120
- contentClass?: string | string[];
121
+ contentClass?: string | string[] | object[];
121
122
 
122
123
  /**
123
124
  * Show Date time on header.
@@ -1,9 +1,11 @@
1
- import { TreeSelectionKeys } from 'primevue/tree';
1
+ import { Slot } from 'vue';
2
+
2
3
  import { TreeNode } from '../basetree/BaseTree.vue.d';
3
4
  import { QueryParams, ShortFetchResponse } from '../datatable/DataTable.vue.d';
4
- import { ClassComponent, GlobalComponentConstructor } from '../ts-helpers';
5
5
  import TreeInstance, { TreeProps } from '../tree/Tree.vue.d';
6
- import { Slot } from 'vue';
6
+ import { ClassComponent, GlobalComponentConstructor } from '../ts-helpers.d';
7
+
8
+ import { TreeSelectionKeys } from 'primevue/tree';
7
9
 
8
10
  export interface DialogSelectTreeProps
9
11
  extends Omit<TreeProps, 'type' | 'filter'> {
@@ -57,6 +59,15 @@ export interface DialogSelectTreeProps
57
59
  * A list of node keys that should be disabled, affecting only the specified nodes and not their children.
58
60
  */
59
61
  exactDisableKeys?: number[];
62
+
63
+ /**
64
+ * A function to determine when the node should be disabled,
65
+ * When true, it will disabled selection on current node and all level childrend
66
+ *
67
+ * @return true to disabled
68
+ */
69
+ disableNodeWhen?: (node: TreeNode) => boolean;
70
+
60
71
  /**
61
72
  * Defines the tree is readonly and disabled.
62
73
  */
@@ -1,9 +1,11 @@
1
1
  import { Slot } from 'vue';
2
- import { CustomValidation } from '../form/Form.vue.d';
3
- import { ClassComponent, GlobalComponentConstructor } from '../ts-helpers';
2
+
4
3
  import { BadgeProps } from '../../components/badge/Badge.vue.d';
5
4
  import { WangsIcons } from '../../components/icon/Icon.vue.d';
6
5
 
6
+ import { CustomValidation } from '../form/Form.vue.d';
7
+ import { ClassComponent, GlobalComponentConstructor } from '../ts-helpers.d';
8
+
7
9
  export type OptionValue = string | number | boolean | Record<string, any>;
8
10
 
9
11
  export type Option = {
@@ -96,6 +98,11 @@ export interface DropdownProps {
96
98
  */
97
99
  allowNullOption?: boolean;
98
100
 
101
+ /**
102
+ * If the same option is selected again, the option is unselected.
103
+ */
104
+ unselectOnReselect?: boolean;
105
+
99
106
  /**
100
107
  * Specify the property name of option to be used as label.
101
108
  *
@@ -218,6 +225,13 @@ export interface DropdownProps {
218
225
  * @default 'Search'
219
226
  */
220
227
  filterPlaceholder?: string;
228
+
229
+ /**
230
+ * To determine whether dropdown panel width should fit its max content or not
231
+ *
232
+ * @default false
233
+ */
234
+ panelMaxContent?: boolean;
221
235
  }
222
236
 
223
237
  export interface DropdownSlots {
@@ -240,6 +254,11 @@ export type DropdownEmits = {
240
254
  * Emits when overlay shown.
241
255
  */
242
256
  'show': [];
257
+
258
+ /**
259
+ * Emits when the Field Info icon is clicked.
260
+ */
261
+ 'fieldInfoClick': [];
243
262
  };
244
263
 
245
264
  /**
@@ -1,5 +1,6 @@
1
1
  import { EditorEvents } from '@tiptap/vue-3';
2
- import { ClassComponent } from '../ts-helpers';
2
+
3
+ import { ClassComponent } from '../ts-helpers.d';
3
4
 
4
5
  export interface EditorProps {
5
6
  /**
@@ -1,4 +1,6 @@
1
- import { DefineComponent } from 'vue';
1
+ import { Slot } from 'vue';
2
+
3
+ import { ClassComponent } from '../ts-helpers';
2
4
 
3
5
  export interface FieldWrapperLocaleConfig {
4
6
  /**
@@ -64,6 +66,21 @@ export interface FieldWrapperProps {
64
66
  tooltipPos?: 'top' | 'right' | 'bottom' | 'left';
65
67
  }
66
68
 
67
- declare const FieldWrapper: DefineComponent<FieldWrapperProps>;
69
+ export interface FieldWrapperSlots {
70
+ 'label-addon': Slot;
71
+ }
72
+
73
+ declare class FieldWrapper extends ClassComponent<
74
+ FieldWrapperProps,
75
+ FieldWrapperSlots,
76
+ unknown
77
+ > {}
78
+
79
+ export type FieldWrapperEmits = {
80
+ /**
81
+ * Emitted when the information (tooltip) is clicked.
82
+ */
83
+ infoClick: [];
84
+ };
68
85
 
69
86
  export default FieldWrapper;
@@ -2,8 +2,9 @@ import {
2
2
  FileUploadErrorEvent,
3
3
  FileUploadUploadEvent,
4
4
  } from 'primevue/fileupload';
5
+
5
6
  import { CustomValidation } from '../form/Form.vue.d';
6
- import { ClassComponent, GlobalComponentConstructor } from '../ts-helpers';
7
+ import { ClassComponent, GlobalComponentConstructor } from '../ts-helpers.d';
7
8
 
8
9
  export type InputErrorCodes = 'FILE_SIZE_TOO_LARGE';
9
10
 
@@ -1,10 +1,17 @@
1
+ import { AxiosResponse } from 'axios';
1
2
  import { DefineComponent, Slot } from 'vue';
3
+
4
+ import {
5
+ DropdownProps,
6
+ Option,
7
+ } from '../../components/dropdown/Dropdown.vue.d';
8
+
9
+ import { ButtonSelectTreeProps } from '../buttonselecttree/ButtonSelectTree.vue.d';
2
10
  import { CalendarProps } from '../calendar/Calendar.vue.d';
3
11
  import { QueryParams } from '../datatable/DataTable.vue.d';
4
- import { DropdownProps, Option } from '../../components/dropdown/Dropdown.vue.d';
5
12
  import { InputRangeNumberProps } from '../inputrangenumber/InputRangeNumber.vue.d';
6
13
  import { MultiSelectProps } from '../multiselect/MultiSelect.vue.d';
7
- import { ButtonSelectTreeProps } from '../buttonselecttree/ButtonSelectTree.vue.d';
14
+ import { StringKeyOf, TypeError } from '../ts-helpers';
8
15
 
9
16
  export type FilterMatchMode =
10
17
  | 'CONTAINS'
@@ -18,66 +25,76 @@ export type FilterMatchMode =
18
25
  | 'BETWEEN'
19
26
  | 'DATE_BETWEEN';
20
27
 
21
- // More specific filter field types
22
- export interface MultiSelectFilterField extends MultiSelectProps {
23
- type: 'multiselect';
28
+ type BaseSelectField<OptionsQueryParams extends QueryParams> = {
24
29
  /**
25
- * The name of the field this filter applies to.
30
+ * Represents a function type for fetching options based on query parameters.
26
31
  *
27
- * When using a static filter, it also specifies the field in the data to be used for generating unique options.
28
- * For example, if filtering by a user's full name, the field could be 'user.fullName', which will extract
29
- * unique full names from the table data and use them as filter options.
30
- */
31
- field: string;
32
- optionField?: string; // @example - actionOptions
33
- params?: QueryParams; // Additional QueryParams for the fetchOptionFn
34
- fetchOptionFn?:
35
- | ((args?: any) => Option[] | undefined) // Sync function to fetch options
36
- | ((args?: any) => Promise<Option[] | undefined>); // Async function
37
- }
38
-
39
- export interface DropdownFilterField extends DropdownProps {
40
- type: 'dropdown';
41
- /**
42
- * The name of the field this filter applies to.
32
+ * @template T - The type of query parameters, extending `QueryParams`. Defaults to `any`.
43
33
  *
44
- * When using a static filter, it also specifies the field in the data to be used for generating unique options.
45
- * For example, if filtering by a user's full name, the field could be 'user.fullName', which will extract
46
- * unique full names from the table data and use them as filter options.
47
- */
48
- field: string;
49
- optionField?: string; // @example - actionOptions
50
- params?: QueryParams; // Additional QueryParams for the fetchOptionFn
51
- fetchOptionFn?:
52
- | ((args?: any) => Option[] | undefined) // Sync function to fetch options
53
- | ((args?: any) => Promise<Option[]> | undefined); // Async function
54
- }
55
-
56
- export interface RangeNumberFilterField extends InputRangeNumberProps {
57
- type: 'rangenumber';
58
- /**
59
- * Specify min and max field
34
+ * This function can have one of the following signatures:
35
+ * - A synchronous function that takes query parameters and returns an array of `Option` objects.
36
+ * - An asynchronous function that takes query parameters and returns a `Promise` resolving to an array of `Option` objects.
37
+ * - An asynchronous function that takes query parameters and returns a `Promise` resolving to an `AxiosResponse` containing a `FetchOptionResponse` object.
60
38
  *
61
- * @example ['minAge', 'maxAge']
39
+ * @param args - The query parameters of type `T` used to fetch the options.
40
+ * @returns One of the following:
41
+ * - An array of `Option` objects.
42
+ * - A `Promise` resolving to an array of `Option` objects.
43
+ * - A `Promise` resolving to an `AxiosResponse` containing a `FetchOptionResponse` object.
62
44
  */
63
- fields?: string[];
45
+ fetchOptionFn?(
46
+ args: OptionsQueryParams,
47
+ ): Option[] | Promise<Option[]> | Promise<AxiosResponse<FetchOptionResponse>>;
64
48
 
65
- /**
66
- * Specify single field for both min and max input.
67
- * The value will be a number array.
68
- *
69
- * Prever use this property when you are working with Static Filtering
70
- *
71
- * @example value: [1000,5000] or equal to 'value.0': 1000 & 'value.1': 5000
72
- */
73
- field?: string;
74
- tooltip?: string;
49
+ optionField?: keyof OptionsQueryParams; // @example - actionOptions
50
+ params?: OptionsQueryParams; // Additional QueryParams for the fetchOptionFn
51
+ };
52
+
53
+ export interface MultiSelectFilterField<OptionsQueryParams extends QueryParams>
54
+ extends BaseSelectField<OptionsQueryParams>,
55
+ MultiSelectProps {
56
+ type: 'multiselect';
57
+ }
58
+
59
+ export interface DropdownFilterField<OptionsQueryParams extends QueryParams>
60
+ extends BaseSelectField<OptionsQueryParams>,
61
+ DropdownProps {
62
+ type: 'dropdown';
75
63
  }
76
64
 
77
- export interface ButtonSelectTreeFilterField
78
- extends Omit<ButtonSelectTreeProps, 'type' | 'label' | 'fieldLabel'> {
65
+ type RangeNumberFilterField<Field extends string> =
66
+ | (InputRangeNumberProps & {
67
+ type: 'rangenumber';
68
+ /**
69
+ * Specify min and max field
70
+ *
71
+ * @example ['minAge', 'maxAge']
72
+ */
73
+ fields: [Field, Field];
74
+ field?: TypeError<'`field` must not be specified when using `fields` property'>;
75
+ tooltip?: string;
76
+ })
77
+ | (InputRangeNumberProps & {
78
+ type: 'rangenumber';
79
+ /**
80
+ * Specify single field for both min and max input.
81
+ * The value will be a number array.
82
+ *
83
+ * Prefer using this property when working with Static Filtering
84
+ *
85
+ * @example value: [1000, 5000] or equivalent to 'value.0': 1000 & 'value.1': 5000
86
+ */
87
+ field: Field;
88
+ fields?: TypeError<'`fields` must not be specified when using `field` property'>;
89
+ tooltip?: string;
90
+ });
91
+
92
+ export interface ButtonSelectTreeFilterField<
93
+ Field extends string,
94
+ Params = QueryParams,
95
+ > extends Omit<ButtonSelectTreeProps, 'type' | 'label' | 'fieldLabel'> {
79
96
  type: 'group' | 'category';
80
- field: string; // The name of the field this filter applies to
97
+ field: Field; // The name of the field this filter applies to
81
98
  /**
82
99
  * The field label.
83
100
  */
@@ -87,22 +104,46 @@ export interface ButtonSelectTreeFilterField
87
104
  * @default to Select Group|Category
88
105
  */
89
106
  buttonLabel?: string;
90
- params?: QueryParams; // Override QueryParams for the fetchTree
107
+ params?: Params; // Override QueryParams for the fetchTree
91
108
  }
92
109
 
93
110
  export interface CalendarFilterField extends CalendarProps {
94
111
  type: 'calendar';
95
- field: string;
96
112
  }
97
113
 
98
- export type AdditionalFilterField = ButtonSelectTreeFilterField;
114
+ export type AdditionalFilterField<Field extends string = string> =
115
+ ButtonSelectTreeFilterField<Field>;
99
116
 
100
- export type FilterField =
101
- | AdditionalFilterField
102
- | MultiSelectFilterField
103
- | DropdownFilterField
104
- | RangeNumberFilterField
105
- | CalendarFilterField;
117
+ export type BaseFilterField<Params extends QueryParams = QueryParams> = {
118
+ /**
119
+ * Filter field visibility
120
+ *
121
+ * You dont need manually filter, this component already handle it.
122
+ */
123
+ visible?: boolean;
124
+ /**
125
+ * The name of the field this filter applies to.
126
+ *
127
+ * When using a static filter, it also specifies the field in the data to be used for generating unique options.
128
+ * For example, if filtering by a user's full name, the field could be 'user.fullName', which will extract
129
+ * unique full names from the table data and use them as filter options.
130
+ */
131
+ field: keyof Params;
132
+ };
133
+
134
+ export type FilterField<
135
+ Params extends QueryParams = QueryParams,
136
+ OptionsQueryParams extends QueryParams = QueryParams,
137
+ > =
138
+ | (BaseFilterField<Params> &
139
+ (
140
+ | AdditionalFilterField<StringKeyOf<Params>>
141
+ | MultiSelectFilterField<OptionsQueryParams>
142
+ | DropdownFilterField<OptionsQueryParams>
143
+ | CalendarFilterField
144
+ ))
145
+ | (Omit<BaseFilterField<Params>, 'field'> &
146
+ RangeNumberFilterField<StringKeyOf<Params>>);
106
147
 
107
148
  export type FilterOptions<Opt = Record<string, boolean>> = Record<
108
149
  keyof Opt,
@@ -145,11 +186,6 @@ export interface FilterContainerProps {
145
186
  * Slots for FilterContainer component
146
187
  */
147
188
  export type FilterContainerSlots = {
148
- /**
149
- * @deprecated Please use props.fields instead
150
- */
151
- default: Slot;
152
-
153
189
  /**
154
190
  * Additional template for field.
155
191
  */
@@ -5,12 +5,13 @@ import {
5
5
  MaybeArray,
6
6
  } from 'vee-validate';
7
7
  import { Ref, Slot } from 'vue';
8
+
8
9
  import {
9
10
  ClassComponent,
10
11
  GlobalComponentConstructor,
11
- Nullable,
12
12
  HintedString,
13
- } from '../ts-helpers';
13
+ Nullable,
14
+ } from '../ts-helpers.d';
14
15
 
15
16
  export type Condition =
16
17
  | 'empty'
@@ -305,6 +306,8 @@ declare class Form extends ClassComponent<FormProps, FormSlots, FormEmits> {
305
306
  * The form values
306
307
  */
307
308
  values: GenericObject;
309
+
310
+ isSubmitClicked: boolean;
308
311
  }
309
312
 
310
313
  declare module '@vue/runtime-core' {
@@ -1,4 +1,4 @@
1
- import { ClassComponent, GlobalComponentConstructor } from '../ts-helpers';
1
+ import { ClassComponent, GlobalComponentConstructor } from '../ts-helpers.d';
2
2
 
3
3
  export type WangsIconseverities =
4
4
  | 'danger'
@@ -101,6 +101,7 @@ export type WangsIcons =
101
101
  | 'file-user'
102
102
  | 'filter-fill'
103
103
  | 'filter'
104
+ | 'fingerprint-line'
104
105
  | 'folder'
105
106
  | 'folder-add-line'
106
107
  | 'gate'
@@ -124,6 +125,7 @@ export type WangsIcons =
124
125
  | 'link-unlink-m'
125
126
  | 'list-settings'
126
127
  | 'loader-4'
128
+ | 'lock-line'
127
129
  | 'logout-box-r'
128
130
  | 'mail-open'
129
131
  | 'mail-send'
@@ -132,6 +134,7 @@ export type WangsIcons =
132
134
  | 'map-pin'
133
135
  | 'menu'
134
136
  | 'menu-unfold'
137
+ | 'mind-map'
135
138
  | 'minus'
136
139
  | 'money-cny-box'
137
140
  | 'money-dollar-circle'
@@ -9,13 +9,14 @@
9
9
  *
10
10
  */
11
11
  import { TransitionProps, VNode } from 'vue';
12
+
12
13
  import { ComponentHooks } from '../basecomponent';
13
14
  import { PassThroughOptions } from '../passthrough';
14
15
  import {
15
16
  ClassComponent,
16
17
  GlobalComponentConstructor,
17
18
  PassThrough,
18
- } from '../ts-helpers';
19
+ } from '../ts-helpers.d';
19
20
 
20
21
  export declare type ImagePassThroughOptionType =
21
22
  | ImagePassThroughAttributes
@@ -195,6 +196,13 @@ export interface ImageProps {
195
196
  * The thumbnail image.
196
197
  */
197
198
  src?: string | Blob;
199
+
200
+ /**
201
+ * Wether use preview full image functionality
202
+ *
203
+ * @default true
204
+ */
205
+ preview?: boolean;
198
206
  /**
199
207
  * The thumbnail image width.
200
208
  *
@@ -1,5 +1,5 @@
1
1
  import { CustomValidation } from '../form/Form.vue.d';
2
- import { ClassComponent, GlobalComponentConstructor } from '../ts-helpers';
2
+ import { ClassComponent, GlobalComponentConstructor } from '../ts-helpers.d';
3
3
 
4
4
  export interface ImageCompressorLocaleConfig {
5
5
  cropDialogHeader: string;
@@ -168,6 +168,10 @@ export interface ImageCompressorProps {
168
168
  * @default 'webp'
169
169
  */
170
170
  fileType?: 'webp' | 'jpeg' | 'jpg';
171
+ /**
172
+ * @default normal
173
+ */
174
+ type?: 'inline-table' | 'normal';
171
175
  }
172
176
 
173
177
  export interface ImageCompressorSlots {
@@ -184,6 +188,10 @@ export type ImageCompressorEmits = {
184
188
  */
185
189
  'applyProp': [];
186
190
  'update:defaultImage': [index?: number];
191
+ /**
192
+ * Emits on every changes in `field.value`
193
+ */
194
+ 'update:fieldValue': [value?: File[] | File];
187
195
  /**
188
196
  * On delete button clicked.
189
197
  *
@@ -1,69 +1,66 @@
1
- export * from '.././components';
2
- export { default as Animation } from './animation/Animation.vue';
3
1
  export { default as ApproverInfo } from './approverinfo/ApproverInfo.vue';
4
- export { default as Badge } from './badge/Badge.vue';
5
- export { default as BadgeGroup } from './badgegroup/BadgeGroup.vue';
6
- export { default as BadgeGroupTree } from './badgegrouptree/BadgeGroupTree.vue';
7
- export { default as BaseTree } from '.././components/basetree/BaseTree.vue';
2
+ export { default as BaseTree } from './basetree/BaseTree.vue';
8
3
  export { default as Breadcrumb } from './breadcrumb/Breadcrumb.vue';
9
- export { default as Button } from './button/Button.vue';
10
4
  export { default as ButtonBulkAction } from './buttonbulkaction/ButtonBulkAction.vue';
11
5
  export { default as ButtonCopy } from './buttoncopy/ButtonCopy.vue';
12
6
  export { default as ButtonDownload } from './buttondownload/ButtonDownload.vue';
13
7
  export { default as ButtonFilter } from './buttonfilter/ButtonFilter.vue';
14
- export { default as ButtonImportExcel } from './buttonImportExcel/ButtonImportExcel.vue';
15
8
  export { default as ButtonRadio } from './buttonradio/ButtonRadio.vue';
16
- export { default as ButtonScan } from '.././components/buttonscan/ButtonScan.vue';
9
+ export { default as ButtonScan } from './buttonscan/ButtonScan.vue';
10
+ export { default as ButtonSearchByScan } from './buttonsearchbyscan/ButtonSearchByScan.vue';
17
11
  export { default as ButtonSearch } from './buttonsearch/ButtonSearch.vue';
18
- export { default as ButtonSelectTree } from '.././components/buttonselecttree/ButtonSelectTree.vue';
19
- export { default as ButtonSplit } from './buttonsplit/ButtonSplit.vue';
20
- export { default as ButtonSync } from '.././components/buttonsync/ButtonSync.vue';
12
+ export { default as ButtonSelectTree } from './buttonselecttree/ButtonSelectTree.vue';
13
+ export { default as ButtonSync } from './buttonsync/ButtonSync.vue';
21
14
  export { default as ButtonToggle } from './buttontoggle/ButtonToggle.vue';
22
- export { default as Calendar } from '.././components/calendar/Calendar.vue';
15
+ export { default as Calendar } from './calendar/Calendar.vue';
23
16
  export { default as Card } from './card/Card.vue';
24
- export { default as Changelog } from './changelog/Changelog.vue';
25
- export { default as ChangelogPage } from './changelogpage/ChangelogPage.vue';
17
+ export { default as Carousel } from './carousel/Carousel.vue';
26
18
  export { default as Checkbox } from './checkbox/Checkbox.vue';
27
- export { default as CodeSnippet } from './codesnippet/CodeSnippet.vue';
19
+ export { default as CustomColumn } from './customcolumn/CustomColumn.vue';
28
20
  export { default as DataTable } from './datatable/DataTable.vue';
29
21
  export { default as Dialog } from './dialog/Dialog.vue';
30
- export { default as DialogConfirm } from './dialogconfirm/DialogConfirm.vue';
31
22
  export { default as DialogForm } from './dialogform/DialogForm.vue';
32
- export { default as DialogSelectTree } from '.././components/dialogselecttree/DialogSelectTree.vue';
23
+ export { default as DialogSelectTree } from './dialogselecttree/DialogSelectTree.vue';
33
24
  export { default as Dropdown } from './dropdown/Dropdown.vue';
34
- export { default as Editor } from './editor/Editor.vue';
35
25
  export { default as FileUpload } from './fileupload/FileUpload.vue';
36
- export { default as FilterContainer } from './filtercontainer/FilterContainer.vue';
37
26
  export { default as Form } from './form/Form.vue';
38
27
  export { default as Icon } from './icon/Icon.vue';
39
28
  export { default as Image } from './image/Image.vue';
40
29
  export { default as ImageCompressor } from './imagecompressor/ImageCompressor.vue';
41
- export { default as InlineMessage } from '.././components/inlinemessage/InlineMessage.vue';
30
+ export { default as InlineMessage } from './inlinemessage/InlineMessage.vue';
42
31
  export { default as InputBadge } from './inputbadge/InputBadge.vue';
43
32
  export { default as InputCurrency } from './inputcurrency/InputCurrency.vue';
44
33
  export { default as InputEmail } from './inputemail/InputEmail.vue';
45
34
  export { default as InputNumber } from './inputnumber/InputNumber.vue';
35
+ export { default as InputOtp } from './inputotp/InputOtp.vue';
46
36
  export { default as InputPassword } from './inputpassword/InputPassword.vue';
47
37
  export { default as InputPhoneNumber } from './inputphonenumber/InputPhoneNumber.vue';
48
38
  export { default as InputRangeNumber } from './inputrangenumber/InputRangeNumber.vue';
49
39
  export { default as InputText } from './inputtext/InputText.vue';
50
40
  export { default as InputURL } from './inputurl/InputURL.vue';
51
41
  export { default as InvisibleField } from './invisiblefield/InvisibleField.vue';
52
- export { default as LanguageDropdown } from './languagedropdown/LanguageDropdown.vue';
53
42
  export { default as LiteDropdown } from './litedropdown/LiteDropdown.vue';
43
+ export { default as LanguageSwitcher } from './languageswitcher/LanguageSwitcher.vue';
54
44
  export { default as Loading } from './loading/Loading.vue';
55
45
  export { default as Menu } from './menu/Menu.vue';
56
46
  export { default as MultiSelect } from './multiselect/MultiSelect.vue';
57
47
  export { default as OverlayPanel } from './overlaypanel/OverlayPanel.vue';
58
- export { default as ProgressBar } from './progressbar/ProgressBar.vue';
59
- export { default as QuickFilter } from './quickfilter/QuickFilter.vue';
48
+ export { default as Paginator } from './paginator/Paginator.vue';
60
49
  export { default as TabMenu } from './tabmenu/TabMenu.vue';
61
- export { default as TagType } from '.././components/tagtype/TagType.vue';
50
+ export { default as TagType } from './tagtype/TagType.vue';
62
51
  export { default as Textarea } from './textarea/Textarea.vue';
63
52
  export { default as Timeline } from './timeline/Timeline.vue';
64
53
  export { default as Toast } from './toast/Toast.vue';
65
54
  export { default as ToggleSwitch } from './toggleswitch/ToggleSwitch.vue';
66
- export { default as TooltipSpan } from './tooltipspan/TooltipSpan.vue';
67
- export { default as Tree } from '.././components/tree/Tree.vue';
68
- export { default as UserGroup } from './usergroup/UserGroup.vue';
55
+ export { default as Tree } from './tree/Tree.vue';
69
56
  export { default as UserName } from './username/UserName.vue';
57
+ export { default as ValidatorMessage } from './validatormessage/ValidatorMessage.vue';
58
+
59
+ export { default as Badge } from './badge/Badge.vue';
60
+ export { default as BadgeGroup } from './badgegroup/BadgeGroup.vue';
61
+ export { default as BadgeGroupTree } from './badgegrouptree/BadgeGroupTree.vue';
62
+ export { default as Button } from './button/Button.vue';
63
+ export { default as Changelog } from './changelog/Changelog.vue';
64
+ export { default as ChangelogPage } from './changelogpage/ChangelogPage.vue';
65
+ export { default as DialogConfirm } from './dialogconfirm/DialogConfirm.vue';
66
+ export { default as FilterContainer } from './filtercontainer/FilterContainer.vue';
@@ -6,7 +6,7 @@
6
6
  *
7
7
  */
8
8
  import { ComponentHooks } from '../basecomponent';
9
- import { ClassComponent, GlobalComponentConstructor } from '../ts-helpers';
9
+ import { ClassComponent, GlobalComponentConstructor } from '../ts-helpers.d';
10
10
 
11
11
  export declare type InlineMessagePassThroughOptionType =
12
12
  | InlineMessagePassThroughAttributes
@@ -1,5 +1,5 @@
1
1
  import { CustomValidation } from '../form/Form.vue.d';
2
- import { ClassComponent, GlobalComponentConstructor } from '../ts-helpers';
2
+ import { ClassComponent, GlobalComponentConstructor } from '../ts-helpers.d';
3
3
 
4
4
  /**
5
5
  * InputBadge component props
@@ -1,5 +1,5 @@
1
1
  import { CustomValidation } from '../form/Form.vue.d';
2
- import { ClassComponent, GlobalComponentConstructor } from '../ts-helpers';
2
+ import { ClassComponent, GlobalComponentConstructor } from '../ts-helpers.d';
3
3
 
4
4
  export type CurrencyFormat = {
5
5
  name?: string;
@@ -1,4 +1,8 @@
1
1
  import { CurrencyFormat } from '../InputCurrency.vue.d';
2
2
  declare const getCurrency: (code?: string) => CurrencyFormat;
3
- declare const formatCurrency: (value?: number | string | null, currency?: string, prefix?: boolean) => string;
3
+ declare const formatCurrency: (
4
+ value?: number | string | null,
5
+ currency?: string,
6
+ prefix?: boolean,
7
+ ) => string;
4
8
  export { getCurrency, formatCurrency };
@@ -1,4 +1,5 @@
1
1
  import { DefineComponent } from 'vue';
2
+
2
3
  import { InputTextEmits, InputTextProps } from '../inputtext/InputText.vue.d';
3
4
 
4
5
  /**
@@ -1,4 +1,5 @@
1
1
  import { DefineComponent, Slot } from 'vue';
2
+
2
3
  import { CustomValidation } from '../form/Form.vue.d';
3
4
 
4
5
  export type InputNumberEvent = number | string | undefined;
@@ -261,6 +262,11 @@ export type InputNumberEmits = {
261
262
  export interface InputNumberSlots {
262
263
  'addon-left': Slot;
263
264
  'addon-right': Slot;
265
+ /**
266
+ * Slot for content in the right side of field label
267
+ */
268
+ 'field-label-addon': Slot;
269
+ 'validatormessage': Slot;
264
270
  }
265
271
 
266
272
  /**
@@ -0,0 +1,3 @@
1
+ import { WangsInputOtp } from '@wangs-ui/vue';
2
+
3
+ export default WangsInputOtp;