@fewangsit/wangsvue 1.5.178

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 (235) hide show
  1. package/assets/json/currencies.json.d.ts +1068 -0
  2. package/assets/json/emoji-by-group.json.d.ts +15629 -0
  3. package/assets/lottie/loading-plane.lottie +0 -0
  4. package/assets/lottie/loading-table.lottie +0 -0
  5. package/assets/lottie/no-data.lottie +0 -0
  6. package/build-entry.d.ts +12 -0
  7. package/components/animation/Animation.vue.d.ts +21 -0
  8. package/components/approverinfo/ApproverInfo.vue.d.ts +52 -0
  9. package/components/badge/Badge.vue.d.ts +57 -0
  10. package/components/badgegroup/BadgeGroup.vue.d.ts +33 -0
  11. package/components/breadcrumb/Breadcrumb.vue.d.ts +27 -0
  12. package/components/button/Button.vue.d.ts +186 -0
  13. package/components/buttonbulkaction/ButtonBulkAction.vue.d.ts +70 -0
  14. package/components/buttondownload/ButtonDownload.vue.d.ts +46 -0
  15. package/components/buttonfilter/ButtonFilter.vue.d.ts +13 -0
  16. package/components/buttonradio/ButtonRadio.vue.d.ts +219 -0
  17. package/components/buttonsearch/ButtonSearch.vue.d.ts +35 -0
  18. package/components/buttontoggle/ButtonToggle.vue.d.ts +22 -0
  19. package/components/calendar/Calendar.vue.d.ts +134 -0
  20. package/components/card/Card.vue.d.ts +128 -0
  21. package/components/changelog/Changelog.vue.d.ts +165 -0
  22. package/components/changelogpage/ChangelogFilter.vue.d.ts +16 -0
  23. package/components/changelogpage/ChangelogPage.vue.d.ts +180 -0
  24. package/components/checkbox/Checkbox.vue.d.ts +312 -0
  25. package/components/codesnippet/CodeSnippet.vue.d.ts +13 -0
  26. package/components/comment/Comment.vue.d.ts +180 -0
  27. package/components/comment/CommentBlock.vue.d.ts +35 -0
  28. package/components/customcolumn/CustomColumn.vue.d.ts +32 -0
  29. package/components/datatable/DataTable.vue.d.ts +659 -0
  30. package/components/datatable/MultiRow.vue.d.ts +16 -0
  31. package/components/datatable/helpers/adjustMenuPosition.helper.d.ts +1 -0
  32. package/components/datatable/helpers/filter.helper.d.ts +28 -0
  33. package/components/datatable/helpers/index.d.ts +3 -0
  34. package/components/datatable/helpers/readConfig.helper.d.ts +2 -0
  35. package/components/datatable/store/dataTable.store.d.ts +22 -0
  36. package/components/detailmember/DetailMember.vue.d.ts +79 -0
  37. package/components/detailmember/DetailMemberAdmin.vue.d.ts +18 -0
  38. package/components/detailmember/DetailMemberLeader.vue.d.ts +15 -0
  39. package/components/detailmember/DetailMemberLog.vue.d.ts +15 -0
  40. package/components/detailmember/DialogMemberAdmin.vue.d.ts +23 -0
  41. package/components/detailsprint/DetailSprint.vue.d.ts +89 -0
  42. package/components/detailsprint/DialogAddPbi.vue.d.ts +24 -0
  43. package/components/detailsprint/DialogConfirmSprint.vue.d.ts +24 -0
  44. package/components/detailsprint/SprintSummary.vue.d.ts +15 -0
  45. package/components/detailsprint/helpers/updateSprintStatus.util.d.ts +3 -0
  46. package/components/detailsprint/options/quickFilterFields.d.ts +3 -0
  47. package/components/dialog/Dialog.vue.d.ts +451 -0
  48. package/components/dialogAdjustmentTask/DialogAdjustmentTask.vue.d.ts +158 -0
  49. package/components/dialogAdjustmentTask/DialogAdjustmentTaskHeader.vue.d.ts +27 -0
  50. package/components/dialogAdjustmentTask/common/TaskDependency.vue.d.ts +12 -0
  51. package/components/dialogAdjustmentTask/common/TaskStatusBadge.vue.d.ts +16 -0
  52. package/components/dialogAdjustmentTask/options/dialogAdjustmentTaskBulkAction.d.ts +3 -0
  53. package/components/dialogAdjustmentTask/options/dialogAdjustmentTaskSingleAction.d.ts +3 -0
  54. package/components/dialogAdjustmentTask/options/dialogAdjustmentTaskTableColumn.d.ts +2 -0
  55. package/components/dialogconfirm/DialogConfirm.vue.d.ts +136 -0
  56. package/components/dialogdetailpbi/AssignMember.vue.d.ts +23 -0
  57. package/components/dialogdetailpbi/DialogDetailPbi.vue.d.ts +120 -0
  58. package/components/dialogdetailpbi/TaskDetailPbi.vue.d.ts +29 -0
  59. package/components/dialogdetailpbi/TaskDetailUnassignedPbi.vue.d.ts +23 -0
  60. package/components/dialogdetailpbi/options/memberFilterFields.d.ts +2 -0
  61. package/components/dialogdetailpbi/options/taskQuickFilterFields.d.ts +3 -0
  62. package/components/dialogform/DialogForm.vue.d.ts +256 -0
  63. package/components/dialogimprovementtask/DialogImprovementTask.vue.d.ts +24 -0
  64. package/components/dialogreportbug/DialogReportBug.vue.d.ts +25 -0
  65. package/components/dialogreportbug/imageData.json.d.ts +28 -0
  66. package/components/dropdown/Dropdown.vue.d.ts +182 -0
  67. package/components/editor/CodeSnippetAdapter.vue.d.ts +68 -0
  68. package/components/editor/Editor.vue.d.ts +192 -0
  69. package/components/editor/EditorButton.vue.d.ts +15 -0
  70. package/components/editor/MentionList.vue.d.ts +35 -0
  71. package/components/editor/MentionSection.vue.d.ts +68 -0
  72. package/components/editor/codeSnippetExtension.d.ts +3 -0
  73. package/components/editor/mentionSectionExtension.d.ts +3 -0
  74. package/components/editor/suggestion.d.ts +2 -0
  75. package/components/fieldwrapper/FieldWrapper.vue.d.ts +15 -0
  76. package/components/fileupload/FileUpload.vue.d.ts +151 -0
  77. package/components/filtercontainer/FilterContainer.vue.d.ts +109 -0
  78. package/components/filtercontainer/helpers/applyFilter.helper.d.ts +3 -0
  79. package/components/filtercontainer/helpers/getOption.helper.d.ts +3 -0
  80. package/components/form/Form.vue.d.ts +207 -0
  81. package/components/helpers/convertToArrayClass.helper.d.ts +2 -0
  82. package/components/helpers/index.d.ts +2 -0
  83. package/components/icon/Icon.vue.d.ts +215 -0
  84. package/components/image/Image.vue.d.ts +370 -0
  85. package/components/imagecompressor/BackgroundImageCropper.vue.d.ts +36 -0
  86. package/components/imagecompressor/ImageCompressor.vue.d.ts +192 -0
  87. package/components/imagecompressor/ImageInputInfo.vue.d.ts +30 -0
  88. package/components/index.d.ts +123 -0
  89. package/components/inputbadge/InputBadge.vue.d.ts +118 -0
  90. package/components/inputcurrency/InputCurrency.vue.d.ts +132 -0
  91. package/components/inputcurrency/helpers/currency.helper.d.ts +4 -0
  92. package/components/inputemail/InputEmail.vue.d.ts +26 -0
  93. package/components/inputgroup/InputGroup.vue.d.ts +131 -0
  94. package/components/inputinitialname/InputInitialName.vue.d.ts +118 -0
  95. package/components/inputnumber/InputNumber.vue.d.ts +222 -0
  96. package/components/inputpassword/InputPassword.vue.d.ts +33 -0
  97. package/components/inputphonenumber/InputPhoneNumber.vue.d.ts +96 -0
  98. package/components/inputphonenumber/helpers/getUserLocation.helper.d.ts +8 -0
  99. package/components/inputrangenumber/InputRangeNumber.vue.d.ts +98 -0
  100. package/components/inputrepositoryname/InputRepositoryName.vue.d.ts +87 -0
  101. package/components/inputtext/InputText.vue.d.ts +226 -0
  102. package/components/inputurl/InputURL.vue.d.ts +99 -0
  103. package/components/invisiblefield/InvisibleField.vue.d.ts +36 -0
  104. package/components/litedropdown/LiteDropdown.vue.d.ts +97 -0
  105. package/components/loading/Loading.vue.d.ts +34 -0
  106. package/components/loading/store/loading.store.d.ts +8 -0
  107. package/components/menu/Menu.vue.d.ts +369 -0
  108. package/components/menu/helpers/filterMenu.helper.d.ts +10 -0
  109. package/components/menu/helpers/index.d.ts +1 -0
  110. package/components/menuitem/index.d.ts +93 -0
  111. package/components/multiselect/MultiSelect.vue.d.ts +169 -0
  112. package/components/notificationitem/NotificationItem.vue.d.ts +108 -0
  113. package/components/notificationitem/helpers/goToDetail.helper.d.ts +6 -0
  114. package/components/overlaypanel/OverlayPanel.vue.d.ts +292 -0
  115. package/components/pdfviewer/PDFViewer.vue.d.ts +28 -0
  116. package/components/progressbar/ProgressBar.vue.d.ts +73 -0
  117. package/components/quickfilter/QuickFilter.vue.d.ts +17 -0
  118. package/components/summaryaccordion/SummaryAccordion.vue.d.ts +123 -0
  119. package/components/tabmenu/TabMenu.vue.d.ts +275 -0
  120. package/components/taskdetail/TaskDetail.vue.d.ts +83 -0
  121. package/components/taskdetail/blocks/Tabs/DescriptionTab.vue.d.ts +2 -0
  122. package/components/taskdetail/blocks/Tabs/EventLogTab.vue.d.ts +2 -0
  123. package/components/taskdetail/blocks/Tabs/InfoTaskTab.vue.d.ts +2 -0
  124. package/components/taskdetail/blocks/Tabs/ReviewTab.vue.d.ts +2 -0
  125. package/components/taskdetail/blocks/common/AttachmentThumbnail.vue.d.ts +18 -0
  126. package/components/taskdetail/blocks/common/DialogAddAttachment.vue.d.ts +32 -0
  127. package/components/taskdetail/blocks/common/DialogAssignMember.vue.d.ts +30 -0
  128. package/components/taskdetail/blocks/common/DialogConfirmApproval.vue.d.ts +26 -0
  129. package/components/taskdetail/blocks/common/DialogConfirmDeleteTask.vue.d.ts +28 -0
  130. package/components/taskdetail/blocks/common/DialogConfirmEdit.vue.d.ts +24 -0
  131. package/components/taskdetail/blocks/common/DialogConfirmFinishTask.vue.d.ts +24 -0
  132. package/components/taskdetail/blocks/common/DialogPriorityValue.vue.d.ts +21 -0
  133. package/components/taskdetail/blocks/common/DialogSetDuration.vue.d.ts +18 -0
  134. package/components/taskdetail/blocks/common/InputAdditional.vue.d.ts +28 -0
  135. package/components/taskdetail/blocks/common/Legend.vue.d.ts +79 -0
  136. package/components/taskdetail/blocks/common/SonarQubeSummary.vue.d.ts +17 -0
  137. package/components/taskdetail/blocks/common/TaskMore.vue.d.ts +16 -0
  138. package/components/taskdetail/blocks/sections/API/API.vue.d.ts +2 -0
  139. package/components/taskdetail/blocks/sections/API/APIItem.vue.d.ts +28 -0
  140. package/components/taskdetail/blocks/sections/API/DialogAddEditApi.vue.d.ts +25 -0
  141. package/components/taskdetail/blocks/sections/API/DialogTestApi.vue.d.ts +22 -0
  142. package/components/taskdetail/blocks/sections/API/IsRequiredText.vue.d.ts +15 -0
  143. package/components/taskdetail/blocks/sections/API/TestApi/options/keyValueTableColumn.d.ts +2 -0
  144. package/components/taskdetail/blocks/sections/API/ValueFormDataInput.vue.d.ts +37 -0
  145. package/components/taskdetail/blocks/sections/Attachment/Attachment.vue.d.ts +2 -0
  146. package/components/taskdetail/blocks/sections/Attachment/AttachmentChangelog.vue.d.ts +18 -0
  147. package/components/taskdetail/blocks/sections/Attachment/AttachmentItem.vue.d.ts +65 -0
  148. package/components/taskdetail/blocks/sections/Checklist/Checklist.vue.d.ts +20 -0
  149. package/components/taskdetail/blocks/sections/Checklist/ChecklistChangelog.vue.d.ts +18 -0
  150. package/components/taskdetail/blocks/sections/Checklist/DialogAddChecklist.vue.d.ts +32 -0
  151. package/components/taskdetail/blocks/sections/Checklist/DialogConfirmChecklist.vue.d.ts +26 -0
  152. package/components/taskdetail/blocks/sections/Checklist/DialogDetailChecklistTemplate.vue.d.ts +18 -0
  153. package/components/taskdetail/blocks/sections/Checklist/DialogSaveChecklistTemplate.vue.d.ts +22 -0
  154. package/components/taskdetail/blocks/sections/Description/Description.vue.d.ts +2 -0
  155. package/components/taskdetail/blocks/sections/Review/DialogFinishReview.vue.d.ts +26 -0
  156. package/components/taskdetail/blocks/sections/Review/DialogReviewLeader.vue.d.ts +25 -0
  157. package/components/taskdetail/blocks/sections/Review/ReviewItem.vue.d.ts +16 -0
  158. package/components/taskdetail/blocks/sections/TaskDependency/DialogCustomDependency.vue.d.ts +20 -0
  159. package/components/taskdetail/blocks/sections/TaskDependency/TaskDependency.vue.d.ts +2 -0
  160. package/components/taskdetail/blocks/sections/TaskLink/DialogSetTaskLink.vue.d.ts +40 -0
  161. package/components/taskdetail/blocks/sections/TaskLink/TaskLink.vue.d.ts +2 -0
  162. package/components/taskdetail/blocks/sections/TaskLink/TaskLinkChangelog.vue.d.ts +22 -0
  163. package/components/taskdetail/blocks/sections/TaskList/LegendList.vue.d.ts +55 -0
  164. package/components/taskdetail/blocks/sections/TaskList/TaskList.vue.d.ts +15 -0
  165. package/components/taskdetail/blocks/sections/Ticket/Ticket.vue.d.ts +2 -0
  166. package/components/tasktable/DependencyCol.vue.d.ts +16 -0
  167. package/components/tasktable/DialogConfirmDeleteTaskPermanently.vue.d.ts +24 -0
  168. package/components/tasktable/DialogConfirmRestoreTask.vue.d.ts +24 -0
  169. package/components/tasktable/DialogSelectProject.vue.d.ts +20 -0
  170. package/components/tasktable/TaskTable.vue.d.ts +82 -0
  171. package/components/textarea/Textarea.vue.d.ts +121 -0
  172. package/components/timeline/Timeline.vue.d.ts +116 -0
  173. package/components/timeline/TimelineContentByType.vue.d.ts +16 -0
  174. package/components/toast/Toast.vue.d.ts +354 -0
  175. package/components/tooltipspan/TooltipSpan.vue.d.ts +21 -0
  176. package/components/ts-helpers.d.ts +62 -0
  177. package/components/usergroup/UserGroup.vue.d.ts +58 -0
  178. package/components/username/UserName.vue.d.ts +62 -0
  179. package/components/validatormessage/ValidatorMessage.vue.d.ts +13 -0
  180. package/components/workcalendar/WorkCalendar.vue.d.ts +55 -0
  181. package/directives/focus.d.ts +7 -0
  182. package/directives/index.d.ts +1 -0
  183. package/dto/member.dto.d.ts +65 -0
  184. package/dto/task.dto.d.ts +86 -0
  185. package/dto/taskApi.dto.d.ts +20 -0
  186. package/dto/taskAttachment.dto.d.ts +11 -0
  187. package/dto/taskChecklist.dto.d.ts +39 -0
  188. package/dto/taskDependency.dto.d.ts +9 -0
  189. package/event-bus/index.d.ts +47 -0
  190. package/event-bus/mitt.d.ts +21 -0
  191. package/index.d.ts +2 -0
  192. package/main.d.ts +2 -0
  193. package/package.json +16 -0
  194. package/plugins/formValidation.d.ts +10 -0
  195. package/services/calendar.service.d.ts +9 -0
  196. package/services/dataManager.service.d.ts +5 -0
  197. package/services/sonarQube.service.d.ts +10 -0
  198. package/style.css +13 -0
  199. package/types/member.type.d.ts +72 -0
  200. package/types/options.type.d.ts +14 -0
  201. package/types/project.type.d.ts +64 -0
  202. package/types/projectApproval.type.d.ts +3 -0
  203. package/types/projectModule.type.d.ts +6 -0
  204. package/types/projectProcess.type.d.ts +17 -0
  205. package/types/projectQc.type.d.ts +52 -0
  206. package/types/projectSubmodule.type.d.ts +14 -0
  207. package/types/queryParamsStringfy.type.d.ts +3 -0
  208. package/types/roleDetailAccess.type.d.ts +17 -0
  209. package/types/subModule.type.d.ts +4 -0
  210. package/types/task.type.d.ts +256 -0
  211. package/types/team.type.d.ts +4 -0
  212. package/types/ticket.type.d.ts +13 -0
  213. package/types/user.type.d.ts +19 -0
  214. package/types/wangsStatus.type.d.ts +8 -0
  215. package/utils/convertJsonImage.util.d.ts +3 -0
  216. package/utils/date.util.d.ts +17 -0
  217. package/utils/exportToExcel.util.d.ts +20 -0
  218. package/utils/filterOptions.util.d.ts +3 -0
  219. package/utils/genPlaceholder.util.d.ts +3 -0
  220. package/utils/getAttachmentIcon.util.d.ts +8 -0
  221. package/utils/getProjectPermission.util.d.ts +4 -0
  222. package/utils/getSalesRole.util.d.ts +30 -0
  223. package/utils/getUser.util.d.ts +3 -0
  224. package/utils/getUserType.util.d.ts +2 -0
  225. package/utils/index.d.ts +9 -0
  226. package/utils/isIntersect.d.ts +2 -0
  227. package/utils/object.util.d.ts +2 -0
  228. package/utils/queryParamsStringfy.util.d.ts +7 -0
  229. package/utils/role.util.d.ts +2 -0
  230. package/utils/statusSeverity.util.d.ts +3 -0
  231. package/utils/textFormatter.util.d.ts +4 -0
  232. package/utils/toast.util.d.ts +36 -0
  233. package/utils/translation.util.d.ts +15 -0
  234. package/wangsvue.es.js +152940 -0
  235. package/wangsvue.system.js +467 -0
@@ -0,0 +1,151 @@
1
+ import { FileUploadErrorEvent, FileUploadUploadEvent } from 'primevue/fileupload';
2
+ import { CustomValidation } from '../form/Form.vue.d';
3
+ import { ClassComponent, GlobalComponentConstructor } from '../ts-helpers';
4
+
5
+
6
+ export type InputErrorCodes = 'FILE_SIZE_TOO_LARGE';
7
+
8
+ /**
9
+ * Defines valid properties in FileUpload component.
10
+ */
11
+ export type FileUploadProps = {
12
+ /**
13
+ * Pattern to restrict the allowed file types such as 'image/*'.
14
+ */
15
+ accept?: string | undefined;
16
+ /**
17
+ * Disables the upload functionality.
18
+ * @defaultValue false
19
+ */
20
+ disabled?: boolean | undefined;
21
+ /**
22
+ * Maximum file size allowed in bytes.
23
+ */
24
+ maxFileSize?: number | undefined;
25
+ /**
26
+ * Props to determine whether file upload support multiple files or not
27
+ *
28
+ * @default false
29
+ */
30
+ multiple?: boolean;
31
+ /**
32
+ * Message of the invalid fize size.
33
+ * - Use {0} to get the file's name
34
+ * - Use {1} to get the max file size
35
+ * - Use {2} to get the accepted file types from props.accept
36
+ * - Use {2.1} to get the accepted file types from props.fileExtensions
37
+ * @defaultValue {0}: Invalid file size, file size should be smaller than {1}.
38
+ */
39
+ invalidFileSizeMessage?: string | undefined;
40
+ /**
41
+ * Message of the invalid fize type.
42
+ * - Use {0} to get the file's name
43
+ * - Use {1} to get the max file size
44
+ * - Use {2} to get the accepted file types
45
+ * - Use {2.1} to get the accepted file types from props.fileExtensions
46
+ * @defaultValue '{0}: Invalid file type, allowed file types: {2}'
47
+ */
48
+ invalidFileTypeMessage?: string | undefined;
49
+ /**
50
+ * Label of the file upload.
51
+ * @defaultValue 'Upload File'
52
+ */
53
+ label?: string | undefined;
54
+ /**
55
+ * Whether to use an upload button.
56
+ * @defaultValue true
57
+ */
58
+ withUpload?: boolean | undefined;
59
+ /**
60
+ * Label of the upload button.
61
+ * @defaultValue 'Upload'.
62
+ */
63
+ uploadLabel?: string | undefined;
64
+ /**
65
+ * Placeholder of the file upload.
66
+ * @defaultValue 'Select File'
67
+ */
68
+ placeholder?: string | undefined;
69
+ /**
70
+ * File extensions to display the accepted extensions.
71
+ */
72
+ fileExtensions?: string | undefined;
73
+ /**
74
+ * The note about the requirements of file for being uploaded.
75
+ *
76
+ * Placed at the bottom right of input.
77
+ */
78
+ fileRequirements?: string | undefined;
79
+ /**
80
+ * The function to be called after the upload button is clicked. (Must be used when withUpload is true)
81
+ */
82
+ uploadFunction?: (files: File[]) => Promise<void>;
83
+ /**
84
+ * Whether the input should be validated with vee-validator or not.
85
+ * If you use this component within form input, you need to set this props as true.
86
+ */
87
+ useValidator?: boolean;
88
+ /**
89
+ * This prop is required if you use this component in a form input.
90
+ * Specify the unique field name, match with your needs for API request.
91
+ *
92
+ * @default 'fileUpload'
93
+ */
94
+ fieldName?: string;
95
+ /**
96
+ * Whether this input field is required or not.
97
+ */
98
+ mandatory?: boolean;
99
+ /**
100
+ * Whether show toast error message on invalid file input
101
+ *
102
+ * @default true;
103
+ */
104
+ useErrorToast?: boolean;
105
+ /**
106
+ * Set custom validator message.
107
+ * Will be show if invalid="true"
108
+ */
109
+ validatorMessage?: string | CustomValidation;
110
+ /**
111
+ * Classes for validator message in input field.
112
+ */
113
+ validatorMessageClass?: string;
114
+ };
115
+
116
+ export type FileUploadEmits = {
117
+ /**
118
+ * Callback to invoke when file upload is complete.
119
+ */
120
+ upload: [event: FileUploadUploadEvent];
121
+ /**
122
+ * Callback to invoke if file upload fails.
123
+ */
124
+ error: [event: FileUploadErrorEvent | InputErrorCodes];
125
+ };
126
+
127
+ /**
128
+ * **WangsVue - FileUpload**
129
+ *
130
+ * _FileUpload is an advanced uploader with dragdrop support, multi file uploads, auto uploading, progress tracking and validations._
131
+ *
132
+ * [Live Demo](https://fewangsit.github.io/wangsvue/button)
133
+ * --- ---
134
+ * ![WangsVue](https://www.wangs.id/wp-content/uploads/2023/12/cropped-Logo_Wangsid-removebg-preview-192x192.png)
135
+ *
136
+ * @group Component
137
+ *
138
+ */
139
+ declare class FileUpload extends ClassComponent<
140
+ FileUploadProps,
141
+ null,
142
+ FileUploadEmits
143
+ > {}
144
+
145
+ declare module '@vue/runtime-core' {
146
+ interface GlobalComponents {
147
+ FileUpload: GlobalComponentConstructor<FileUpload>;
148
+ }
149
+ }
150
+
151
+ export default FileUpload;
@@ -0,0 +1,109 @@
1
+ import { MultiSelectOption } from '../../types/options.type';
2
+ import { DefineComponent, Slot } from 'vue';
3
+ import { CalendarProps } from '../calendar/Calendar.vue.d';
4
+ import { QueryParams } from '../datatable/DataTable.vue.d';
5
+ import { DropdownProps } from '../dropdown/Dropdown.vue.d';
6
+ import { InputRangeNumberProps } from '../inputrangenumber/InputRangeNumber.vue.d';
7
+ import { MultiSelectProps } from '../multiselect/MultiSelect.vue.d';
8
+
9
+
10
+ // More specific filter field types
11
+ export interface MultiSelectFilterField extends MultiSelectProps {
12
+ type: 'multiselect';
13
+ field: string; // The name of the field this filter applies to
14
+ fetchOptionFn?:
15
+ | ((args?: any) => MultiSelectOption[]) // Sync function to fetch options
16
+ | ((args?: any) => Promise<MultiSelectOption[]>); // Async function
17
+ }
18
+
19
+ export interface DropdownFilterField extends DropdownProps {
20
+ type: 'dropdown';
21
+ field: string; // The name of the field this filter applies to
22
+ fetchOptionFn?:
23
+ | ((args?: any) => MultiSelectOption[]) // Sync function to fetch options
24
+ | ((args?: any) => Promise<MultiSelectOption[]>); // Async function
25
+ }
26
+
27
+ export interface RangeNumberFilterField extends InputRangeNumberProps {
28
+ type: 'rangenumber';
29
+ /**
30
+ * Specify min and max field
31
+ *
32
+ * @example ['minAge', 'maxAge']
33
+ */
34
+ fields: string[];
35
+ tooltip?: string;
36
+ }
37
+
38
+ export interface CalendarFilterField extends CalendarProps {
39
+ type: 'calendar';
40
+ field: string;
41
+ }
42
+
43
+ export type FilterField =
44
+ | MultiSelectFilterField
45
+ | DropdownFilterField
46
+ | RangeNumberFilterField
47
+ | CalendarFilterField;
48
+
49
+ export type FilterOptions<Opt = Record<string, boolean>> = Record<
50
+ keyof Opt,
51
+ MultiSelectOption[]
52
+ >;
53
+
54
+ export type LoadingFilters = Record<string, boolean>;
55
+
56
+ export type FetchOptionResponse<Opt = Record<string, boolean>> = {
57
+ message: string;
58
+ data: FilterOptions<Opt>;
59
+ };
60
+
61
+ export interface FilterContainerProps {
62
+ /**
63
+ * Specify the table name integrated with this filter.
64
+ *
65
+ * @default datatable - the default table name
66
+ */
67
+ tableName?: string;
68
+ /**
69
+ * Set the fields count in a row
70
+ *
71
+ * @default 4 grid columns
72
+ */
73
+ fieldsPerRow?: number;
74
+ fields: FilterField[];
75
+ }
76
+
77
+ /**
78
+ * Slots for FilterContainer component
79
+ */
80
+ export type FilterContainerSlots = {
81
+ /**
82
+ * @deprecated Please use props.fields instead
83
+ */
84
+ default: Slot;
85
+ };
86
+
87
+ export type FilterContainerEmits = {
88
+ apply: [filter: QueryParams];
89
+ };
90
+
91
+ /**
92
+ * **WangsVue - FilterContainer**
93
+ *
94
+ * _FilterContainer is a component for generating a dynamic grid-based layout for any count of filter fields.
95
+ * It calculates the number of children in the container and sets their grid area style dynamically.
96
+ *
97
+ * The grid layout is determined by the row and column position, which are incremented based on the child count.
98
+ * If the child count is odd and the child is the last one (which is Buttons Action),
99
+ * it is placed in the 4th column._
100
+ *
101
+ * @group components
102
+ */
103
+ declare const FilterContainer: DefineComponent<
104
+ FilterContainerProps,
105
+ FilterContainerEmits,
106
+ FilterContainerSlots
107
+ >;
108
+
109
+ export default FilterContainer;
@@ -0,0 +1,3 @@
1
+ import { GenericObject } from 'vee-validate';
2
+ declare const applyFilter: (values: GenericObject, tableName: string, emit?: (...args: any[]) => any) => void;
3
+ export default applyFilter;
@@ -0,0 +1,3 @@
1
+ import { FilterOptions, LoadingFilters, MultiSelectFilterField } from '../FilterContainer.vue.d';
2
+ declare const getOptions: (fn: MultiSelectFilterField["fetchOptionFn"], field: string, filterOption: FilterOptions, loading: LoadingFilters) => Promise<void>;
3
+ export default getOptions;
@@ -0,0 +1,207 @@
1
+ import { FieldContext, FieldState, GenericObject } from 'vee-validate';
2
+ import { Ref, Slot } from 'vue';
3
+ import { CheckboxModelValue } from '../checkbox/Checkbox.vue.d';
4
+ import { ClassComponent, GlobalComponentConstructor, Nullable, HintedString } from '../ts-helpers';
5
+
6
+
7
+ export type Condition =
8
+ | 'empty'
9
+ | 'exceed'
10
+ | 'invalidFormat'
11
+ | 'exist'
12
+ | 'mismatch';
13
+
14
+ export type CustomValidation = Partial<Record<Condition, string>>;
15
+
16
+ type FieldValue =
17
+ | Nullable<string>
18
+ | Nullable<number>
19
+ | string
20
+ | string[]
21
+ | number
22
+ | number[]
23
+ | boolean
24
+ | undefined
25
+ | null
26
+ | object;
27
+
28
+ export type FieldValidation<T = FieldValue | undefined> =
29
+ | {
30
+ value: T;
31
+ errorMessage?: Ref<string | undefined>;
32
+ setErrors?: (errors?: string | string[]) => void;
33
+ handleReset?: () => void;
34
+ validate?: () => void;
35
+ }
36
+ | (Omit<FieldContext, 'value'> & {
37
+ value: T;
38
+ });
39
+
40
+ export type FormValue = Record<string, unknown> | Record<string, unknown>[];
41
+
42
+ /**
43
+ * Generic form payload, able to receive types from outside
44
+ */
45
+ export type FormPayload<FormValuesType = Record<string, FormValue>> = {
46
+ stayAfterSubmit: boolean;
47
+ formValues: FormValuesType;
48
+ };
49
+
50
+ /**
51
+ * Props for Form component
52
+ */
53
+ export interface FormProps {
54
+ /**
55
+ * The template for form buttons.
56
+ */
57
+ buttonsTemplate?: ('clear' | 'submit' | 'cancel')[];
58
+ /**
59
+ * Custom button cancel label.
60
+ */
61
+ cancelBtnLabel?: string;
62
+ /**
63
+ * Custom button clear label.
64
+ */
65
+ clearBtnLabel?: string;
66
+ /**
67
+ * The number of columns per row.
68
+ * @default 1;
69
+ */
70
+ columnPerRow?: number;
71
+ /**
72
+ * Determines whether form footer should be hidden or not
73
+ */
74
+ hideFooter?: boolean;
75
+ /**
76
+ * Determines if the stay checkbox should be hidden.
77
+ */
78
+ hideStayCheckbox?: boolean;
79
+ /**
80
+ * Invalid form state.
81
+ */
82
+ invalid?: boolean;
83
+ /**
84
+ * Prevent form resets after submitted. Default behaviour is form resetted after submit.
85
+ *
86
+ * @default true
87
+ */
88
+ resetAfterSubmit?: boolean;
89
+ /**
90
+ * Custom button submit label.
91
+ */
92
+ submitBtnLabel?: string;
93
+ /**
94
+ * Custom label for stay checkbox.
95
+ */
96
+ stayCheckboxLabel?: string;
97
+ /**
98
+ * Custom submit form validator message.
99
+ */
100
+ validatorMessage?: string;
101
+ /**
102
+ * Defines the style of the cancel button.
103
+ */
104
+ cancelBtnSeverity?: HintedString<
105
+ | 'secondary'
106
+ | 'success'
107
+ | 'info'
108
+ | 'warning'
109
+ | 'help'
110
+ | 'danger'
111
+ | 'contrast'
112
+ >;
113
+ /**
114
+ * Defines the style of the submit button.
115
+ */
116
+ submitBtnSeverity?: HintedString<
117
+ | 'secondary'
118
+ | 'success'
119
+ | 'info'
120
+ | 'warning'
121
+ | 'help'
122
+ | 'danger'
123
+ | 'contrast'
124
+ >;
125
+ }
126
+
127
+ /**
128
+ * Slots for Form component
129
+ */
130
+ export interface FormSlots {
131
+ /**
132
+ * The fields slot for the form. Here is where you can put your form fields.
133
+ */
134
+ fields: Slot<{ formValues: GenericObject; key?: number }>;
135
+ }
136
+
137
+ /**
138
+ * Emits for Form component
139
+ */
140
+ export type FormEmits = {
141
+ /**
142
+ * Emitted when button template `Cancel` clicked (doesn't matter its label)
143
+ */
144
+ cancel: [];
145
+ /**
146
+ * Emitted when button template `Clear` clicked (doesn't matter its label)
147
+ */
148
+ clear: [];
149
+ /**
150
+ * Emitted when button template `Submit` clicked (doesn't matter its label)
151
+ */
152
+ submit: [values: FormPayload];
153
+ };
154
+
155
+ /**
156
+ * **WangsVue - Form**
157
+ *
158
+ * _Form is a component for creating forms with validation on submit using vee-validate.
159
+ * You need to install vee-validate while using this component._
160
+ *
161
+ * --- ---
162
+ * ![WangsVue](https://www.wangs.id/wp-content/uploads/2023/12/cropped-Logo_Wangsid-removebg-preview-192x192.png)
163
+ *
164
+ * @group components
165
+ */
166
+ declare class Form extends ClassComponent<FormProps, FormSlots, FormEmits> {
167
+ /**
168
+ * Exposed errors of form
169
+ */
170
+ errors: Partial<Record<string, string>>;
171
+ /**
172
+ * The ref of form element.
173
+ */
174
+ formElement: HTMLFormElement;
175
+ /**
176
+ * Whether to show validator or not
177
+ */
178
+ showValidator: boolean;
179
+ /**
180
+ * Whether to keep the dialog remains visible or not after submit.
181
+ */
182
+ stayAfterSubmit: CheckboxModelValue;
183
+ /**
184
+ * Exposed function to clears the form fields.
185
+ */
186
+ clearField: () => void;
187
+ /**
188
+ * Exposed function to clears the specific field.
189
+ */
190
+ resetField: (field: string, state?: Partial<FieldState>) => void;
191
+ /**
192
+ * Exposed function that handle submit inside form component
193
+ */
194
+ submit: (e?: Event | undefined) => Promise<void | undefined>;
195
+ /**
196
+ * Exposed function to set the outer fields wrapper height.
197
+ */
198
+ setOuterFieldsWrapperHeight: () => void;
199
+ }
200
+
201
+ declare module '@vue/runtime-core' {
202
+ interface GlobalComponents {
203
+ Form: GlobalComponentConstructor<Form>;
204
+ }
205
+ }
206
+
207
+ export default Form;
@@ -0,0 +1,2 @@
1
+ declare const convertToArrayClass: (classes?: string | string[]) => string[];
2
+ export default convertToArrayClass;
@@ -0,0 +1,2 @@
1
+ import { default as toArrayClass } from './convertToArrayClass.helper';
2
+ export { toArrayClass };
@@ -0,0 +1,215 @@
1
+ export type WangsIconseverities =
2
+ | 'danger'
3
+ | 'info'
4
+ | 'warning'
5
+ | 'primary'
6
+ | 'success'
7
+ | 'secondary';
8
+
9
+ /**
10
+ * List of all available icons.
11
+ */
12
+ export type WangsIcons =
13
+ | 'add'
14
+ | 'arrow-down'
15
+ | 'arrow-drop-down'
16
+ | 'arrow-go-back'
17
+ | 'arrow-up-s'
18
+ | 'arrow-up-down'
19
+ | 'arrow-left'
20
+ | 'arrow-left-double'
21
+ | 'arrow-left-right'
22
+ | 'arrow-right'
23
+ | 'arrow-right-double'
24
+ | 'arrow-right-fill'
25
+ | 'asset-view'
26
+ | 'assignment'
27
+ | 'attachment-2'
28
+ | 'audit'
29
+ | 'barricade-line'
30
+ | 'bell'
31
+ | 'bell-alert'
32
+ | 'borrow'
33
+ | 'building'
34
+ | 'building-4'
35
+ | 'calculator'
36
+ | 'calendar'
37
+ | 'calendar-todo'
38
+ | 'chat'
39
+ | 'chat-check'
40
+ | 'change-tag'
41
+ | 'check'
42
+ | 'check-double-fill'
43
+ | 'checkbox-circle'
44
+ | 'checkbox-circle-fill'
45
+ | 'checkbox-blank-circle'
46
+ | 'close'
47
+ | 'close-circle'
48
+ | 'close-circle-fill'
49
+ | 'cloud-line'
50
+ | 'coins'
51
+ | 'completion'
52
+ | 'dashboard'
53
+ | 'database'
54
+ | 'delete-back'
55
+ | 'delete-bin'
56
+ | 'delete-bin-7'
57
+ | 'device'
58
+ | 'disposal'
59
+ | 'download'
60
+ | 'dropbox'
61
+ | 'dragable-menu'
62
+ | 'edit'
63
+ | 'ellipsis-h'
64
+ | 'emotion-happy-fill'
65
+ | 'emotion-unhappy-fill'
66
+ | 'error'
67
+ | 'error-fill'
68
+ | 'exchange'
69
+ | 'extension-borrow'
70
+ | 'eye'
71
+ | 'eye-off'
72
+ | 'flag'
73
+ | 'file-add'
74
+ | 'file-copy'
75
+ | 'file-copy-2-line'
76
+ | 'file-edit'
77
+ | 'file-history'
78
+ | 'file-history-fill'
79
+ | 'file-info'
80
+ | 'files'
81
+ | 'file-list-2'
82
+ | 'file-list'
83
+ | 'file-settings'
84
+ | 'file-shield-line'
85
+ | 'file-shield-2'
86
+ | 'file-up'
87
+ | 'filter-fill'
88
+ | 'filter'
89
+ | 'folder'
90
+ | 'group'
91
+ | 'hand-coin'
92
+ | 'handheld'
93
+ | 'history'
94
+ | 'image-add'
95
+ | 'indeterminate-circle-fill'
96
+ | 'info'
97
+ | 'information-line'
98
+ | 'list-check'
99
+ | 'link'
100
+ | 'luggage-cart'
101
+ | 'csv'
102
+ | 'xls'
103
+ | 'doc'
104
+ | 'data'
105
+ | 'line-chart'
106
+ | 'link-unlink-m'
107
+ | 'list-settings'
108
+ | 'loader-4'
109
+ | 'logout-box-r'
110
+ | 'mail-open'
111
+ | 'mail-send'
112
+ | 'map-2'
113
+ | 'map-pin'
114
+ | 'menu'
115
+ | 'menu-unfold'
116
+ | 'money-cny-box'
117
+ | 'more'
118
+ | 'move-to'
119
+ | 'node-tree'
120
+ | 'note'
121
+ | 'notification'
122
+ | 'pdf'
123
+ | 'pair-tag'
124
+ | 'pencil'
125
+ | 'phone'
126
+ | 'printer'
127
+ | 'printer-cloud'
128
+ | 'price-tag-3'
129
+ | 'profile'
130
+ | 'qr'
131
+ | 'qr-scan'
132
+ | 'refresh'
133
+ | 'replace-tag'
134
+ | 'report-tag'
135
+ | 'repair-ticketing'
136
+ | 'rfid'
137
+ | 'round-keyboard-arrow-left'
138
+ | 'round-keyboard-arrow-right'
139
+ | 'round-keyboard-double-arrow-left'
140
+ | 'round-keyboard-double-arrow-right'
141
+ | 'search'
142
+ | 'search-line'
143
+ | 'search-eye'
144
+ | 'send-plane-line'
145
+ | 'settings'
146
+ | 'shopping-cart-2'
147
+ | 'smartphone'
148
+ | 'sort-asc'
149
+ | 'sort-desc'
150
+ | 'spinner'
151
+ | 'stack'
152
+ | 'star'
153
+ | 'store'
154
+ | 'subtract'
155
+ | 'time'
156
+ | 'ticket'
157
+ | 'tools'
158
+ | 'tracking'
159
+ | 'unassign'
160
+ | 'upload-2'
161
+ | 'upload-cloud-2'
162
+ | 'user'
163
+ | 'user-add'
164
+ | 'user-follow'
165
+ | 'user-received-2-line'
166
+ | 'user-search'
167
+ | 'user-settings'
168
+ | 'user-shared-2-line'
169
+ | 'user-star'
170
+ | 'user-unfollow'
171
+ | 'verification'
172
+ | 'team'
173
+ | 'mail'
174
+ | 'timer'
175
+ | 'format-clear'
176
+ | 'code-line'
177
+ | 'link-m'
178
+ | 'list-ordered'
179
+ | 'bold'
180
+ | 'italic'
181
+ | 'underline'
182
+ | 'list-unordered'
183
+ | 'external-link'
184
+ | 'whatsapp'
185
+ | 'chat-1-line'
186
+ | 'attachment-2'
187
+ | 'save'
188
+ | 'chat-new-line'
189
+ | 'code-box-line'
190
+ | 'file-chart-line'
191
+ | 'bar-chart-line'
192
+ | 'bug-2-line'
193
+ | 'run-line'
194
+ | 'user-unfollow-line'
195
+ | 'archive-line'
196
+ | 'shield-user-line'
197
+ | 'emotion-happy-line'
198
+ | 'list-settings-line'
199
+ | 'timer-line'
200
+ | 'star-fill';
201
+
202
+ export interface IconProps {
203
+ icon: WangsIcons;
204
+ severity?: WangsIconseverities;
205
+ /**
206
+ * Show info on hover.
207
+ */
208
+ info?: string;
209
+ /**
210
+ * Set the position of tooltip.
211
+ */
212
+ tooltipPos?: 'top' | 'right' | 'bottom' | 'left';
213
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
214
+ class?: any;
215
+ }