@fewangsit/wangsvue-gsts 1.0.0-alpha.9 → 2.0.0-alpha.10

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 (232) hide show
  1. package/animation/index.d.ts +44 -0
  2. package/{components/approverinfo/ApproverInfo.vue.d.ts → approverinfo/index.d.ts} +4 -0
  3. package/assets/scanner.worker-Bk2e5hSA.js.map +1 -0
  4. package/{components/badge/Badge.vue.d.ts → badge/index.d.ts} +10 -2
  5. package/{components/badgegroup/BadgeGroup.vue.d.ts → badgegroup/index.d.ts} +19 -9
  6. package/{components/badgegrouptree/BadgeGroupTree.vue.d.ts → badgegrouptree/index.d.ts} +2 -3
  7. package/{components/basecomponent → basecomponent}/index.d.ts +0 -1
  8. package/{components/basetree/BaseTree.vue.d.ts → basetree/index.d.ts} +37 -4
  9. package/breadcrumb/index.d.ts +42 -0
  10. package/breadcrumb/store/index.d.ts +8 -0
  11. package/{components/button/Button.vue.d.ts → button/index.d.ts} +18 -7
  12. package/{components/buttonbulkaction/ButtonBulkAction.vue.d.ts → buttonbulkaction/index.d.ts} +11 -4
  13. package/buttoncopy/index.d.ts +26 -0
  14. package/{components/buttondownload/ButtonDownload.vue.d.ts → buttondownload/index.d.ts} +37 -3
  15. package/buttonfilter/index.d.ts +23 -0
  16. package/{components/buttonradio/ButtonRadio.vue.d.ts → buttonradio/index.d.ts} +3 -2
  17. package/buttonscan/index.d.ts +215 -0
  18. package/{components/buttonsearch/ButtonSearch.vue.d.ts → buttonsearch/index.d.ts} +6 -5
  19. package/buttonsearchbyscan/index.d.ts +51 -0
  20. package/{components/buttonselecttree/ButtonSelectTree.vue.d.ts → buttonselecttree/index.d.ts} +33 -14
  21. package/buttonsync/index.d.ts +22 -0
  22. package/buttontoggle/index.d.ts +27 -0
  23. package/{components/calendar/Calendar.vue.d.ts → calendar/index.d.ts} +44 -7
  24. package/{components/card/Card.vue.d.ts → card/index.d.ts} +3 -3
  25. package/carousel/index.d.ts +28 -0
  26. package/{components/changelog/Changelog.vue.d.ts → changelog/index.d.ts} +8 -4
  27. package/{components/changelogpage/ChangelogPage.vue.d.ts → changelogpage/index.d.ts} +9 -4
  28. package/{components/checkbox/Checkbox.vue.d.ts → checkbox/index.d.ts} +3 -2
  29. package/components.d.ts +66 -0
  30. package/config/defaultProps.d.ts +1 -1
  31. package/config/index.d.ts +1 -1
  32. package/config/locale.d.ts +1 -1
  33. package/{components/customcolumn/CustomColumn.vue.d.ts → customcolumn/index.d.ts} +18 -2
  34. package/datatable/index.d.ts +913 -0
  35. package/dial-codes-DGcGIlbX.js +5 -0
  36. package/dial-codes-DGcGIlbX.js.map +1 -0
  37. package/{components/dialog/Dialog.vue.d.ts → dialog/index.d.ts} +6 -6
  38. package/{components/dialogconfirm/DialogConfirm.vue.d.ts → dialogconfirm/index.d.ts} +9 -4
  39. package/{components/dialogform/DialogForm.vue.d.ts → dialogform/index.d.ts} +16 -36
  40. package/{components/dialogselecttree/DialogSelectTree.vue.d.ts → dialogselecttree/index.d.ts} +55 -14
  41. package/directives/focus.d.ts +1 -1
  42. package/directives/index.d.ts +1 -0
  43. package/directives/tooltip.d.ts +1 -0
  44. package/{components/dropdown/Dropdown.vue.d.ts → dropdown/index.d.ts} +44 -7
  45. package/{components/editor/Editor.vue.d.ts → editor/index.d.ts} +9 -1
  46. package/event-bus/index.d.ts +59 -48
  47. package/event-bus/mitt.d.ts +29 -14
  48. package/{components/fieldwrapper/FieldWrapper.vue.d.ts → fieldwrapper/index.d.ts} +32 -2
  49. package/{components/fileupload/FileUpload.vue.d.ts → fileupload/index.d.ts} +25 -8
  50. package/filtercontainer/index.d.ts +233 -0
  51. package/{components/form/Form.vue.d.ts → form/index.d.ts} +16 -3
  52. package/{components/icon/Icon.vue.d.ts → icon/index.d.ts} +76 -56
  53. package/{components/image/Image.vue.d.ts → image/index.d.ts} +35 -9
  54. package/{components/imagecompressor/ImageCompressor.vue.d.ts → imagecompressor/index.d.ts} +43 -3
  55. package/{components/inlinemessage/InlineMessage.vue.d.ts → inlinemessage/index.d.ts} +4 -1
  56. package/{components/inputbadge/InputBadge.vue.d.ts → inputbadge/index.d.ts} +37 -4
  57. package/inputcurrency/helpers/index.d.ts +8 -0
  58. package/{components/inputcurrency/InputCurrency.vue.d.ts → inputcurrency/index.d.ts} +5 -35
  59. package/inputemail/index.d.ts +30 -0
  60. package/{components/inputnumber/InputNumber.vue.d.ts → inputnumber/index.d.ts} +12 -10
  61. package/inputotp/index.d.ts +3 -0
  62. package/inputpassword/index.d.ts +73 -0
  63. package/{components/inputphonenumber/InputPhoneNumber.vue.d.ts → inputphonenumber/index.d.ts} +14 -9
  64. package/{components/inputrangenumber/InputRangeNumber.vue.d.ts → inputrangenumber/index.d.ts} +26 -11
  65. package/{components/inputtext/InputText.vue.d.ts → inputtext/index.d.ts} +9 -7
  66. package/inputurl/index.d.ts +38 -0
  67. package/invisiblefield/index.d.ts +39 -0
  68. package/languageswitcher/index.d.ts +15 -0
  69. package/{components/litedropdown/LiteDropdown.vue.d.ts → litedropdown/index.d.ts} +6 -4
  70. package/{components/loading/Loading.vue.d.ts → loading/index.d.ts} +3 -3
  71. package/{components/loading/store/loading.store.d.ts → loading/store/index.d.ts} +3 -3
  72. package/loading-page-CoC9UhfC.js +1 -0
  73. package/loading-page-CoC9UhfC.js.map +1 -0
  74. package/loading-page-CoXtqoc9.js +1 -0
  75. package/loading-page-CoXtqoc9.js.map +1 -0
  76. package/loading-page-dark-e0SrRAHc.js +5 -0
  77. package/loading-page-dark-e0SrRAHc.js.map +1 -0
  78. package/loading-page-f8D03l3G.js +1 -0
  79. package/loading-page-f8D03l3G.js.map +1 -0
  80. package/loading-plane-CoXtqoc9.js +1 -0
  81. package/loading-plane-CoXtqoc9.js.map +1 -0
  82. package/loading-table-ByUoWqUo.js +1 -0
  83. package/loading-table-ByUoWqUo.js.map +1 -0
  84. package/loading-table-BygEMzFM.js +1 -0
  85. package/loading-table-BygEMzFM.js.map +1 -0
  86. package/loading-table-D9bw9OcI.js +5 -0
  87. package/loading-table-D9bw9OcI.js.map +1 -0
  88. package/loading-table-dark-BGh0tAPM.js +5 -0
  89. package/loading-table-dark-BGh0tAPM.js.map +1 -0
  90. package/mcp/components.json +4767 -0
  91. package/mcp/components.summary.txt +24 -0
  92. package/mcp/main.js +16996 -0
  93. package/mcp/package.json +28 -0
  94. package/mcp/skills/api-service-generator/SKILL.md +93 -0
  95. package/mcp/skills/committing-changes/SKILL.md +38 -0
  96. package/mcp/skills/figma-datatable-generator/SKILL.md +93 -0
  97. package/mcp/skills/figma-to-code/SKILL.md +117 -0
  98. package/mcp/skills/import-validator/SKILL.md +54 -0
  99. package/mcp/skills/wangsvue-code-review/SKILL.md +70 -0
  100. package/mcp/skills/wangsvue-workflow/SKILL.md +91 -0
  101. package/{components/menu/Menu.vue.d.ts → menu/index.d.ts} +5 -4
  102. package/menuitem/index.d.ts +34 -0
  103. package/{components/multiselect/MultiSelect.vue.d.ts → multiselect/index.d.ts} +36 -6
  104. package/no-data-CTKux8RI.js +1 -0
  105. package/no-data-CTKux8RI.js.map +1 -0
  106. package/no-data-DLHO1L_u.js +1 -0
  107. package/no-data-DLHO1L_u.js.map +1 -0
  108. package/no-data-dark-nK4e4RAM.js +5 -0
  109. package/no-data-dark-nK4e4RAM.js.map +1 -0
  110. package/no-data-g0dJCy2p.js +1 -0
  111. package/no-data-g0dJCy2p.js.map +1 -0
  112. package/{components/overlaypanel/OverlayPanel.vue.d.ts → overlaypanel/index.d.ts} +4 -23
  113. package/package.json +27 -9
  114. package/paginator/index.d.ts +291 -0
  115. package/{components/passthrough → passthrough}/index.d.ts +0 -1
  116. package/plugins/WangsVue.d.ts +275 -98
  117. package/plugins/basei18n.d.ts +103 -0
  118. package/plugins/formValidation.d.ts +16 -6
  119. package/scan-qr-C6V4afHJ.js +5 -0
  120. package/scan-qr-C6V4afHJ.js.map +1 -0
  121. package/stats.html +4949 -0
  122. package/style.css +1 -1
  123. package/tabmenu/index.d.ts +104 -0
  124. package/tagtype/index.d.ts +33 -0
  125. package/{components/textarea/Textarea.vue.d.ts → textarea/index.d.ts} +16 -9
  126. package/{components/timeline/Timeline.vue.d.ts → timeline/index.d.ts} +42 -7
  127. package/{components/toast/Toast.vue.d.ts → toast/index.d.ts} +72 -71
  128. package/toast/service/index.d.ts +1 -0
  129. package/{components/toggleswitch/ToggleSwitch.vue.d.ts → toggleswitch/index.d.ts} +3 -2
  130. package/{components/tree → tree}/helpers/filterNodeKeys.helper.d.ts +8 -2
  131. package/tree/helpers/flattenTreeNodeChildren.helper.d.ts +8 -0
  132. package/{components/tree/Tree.vue.d.ts → tree/index.d.ts} +20 -12
  133. package/{components/ts-helpers.d.ts → ts-helpers.d.ts} +8 -1
  134. package/{components/username/UserName.vue.d.ts → username/index.d.ts} +14 -10
  135. package/utils/baseToast.util.d.ts +57 -0
  136. package/utils/cookie.util.d.ts +18 -0
  137. package/utils/date.util.d.ts +86 -23
  138. package/utils/exportToExcel.util.d.ts +19 -16
  139. package/utils/getStatusSeverity.util.d.ts +10 -3
  140. package/utils/index.d.ts +20 -17
  141. package/utils/object.util.d.ts +27 -2
  142. package/utils/role.util.d.ts +5 -1
  143. package/utils/textFormatter.util.d.ts +15 -3
  144. package/utils/toast.util.d.ts +2 -2
  145. package/utils/xlsx.util.d.ts +24 -0
  146. package/validatormessage/index.d.ts +23 -0
  147. package/wangsvue-gsts.d.ts +31 -0
  148. package/wangsvue-gsts.es.js +55418 -125996
  149. package/wangsvue-gsts.es.js.map +1 -0
  150. package/wangsvue-gsts.system.js +20 -422
  151. package/wangsvue-gsts.system.js.map +1 -0
  152. package/assets/json/currencies.json.d.ts +0 -1068
  153. package/assets/json/languages.json.d.ts +0 -180
  154. package/build-entry.d.ts +0 -14
  155. package/components/animation/Animation.vue.d.ts +0 -24
  156. package/components/basetree/TreeNode.vue.d.ts +0 -35
  157. package/components/breadcrumb/Breadcrumb.vue.d.ts +0 -26
  158. package/components/buttonImportExcel/ButtonImportExcel.vue.d.ts +0 -26
  159. package/components/buttonfilter/ButtonFilter.vue.d.ts +0 -12
  160. package/components/buttonsplit/ButtonSplit.d.ts +0 -350
  161. package/components/buttonsplit/ButtonSplit.vue.d.ts +0 -34
  162. package/components/buttontoggle/ButtonToggle.vue.d.ts +0 -18
  163. package/components/calendar/BaseCalendar.vue.d.ts +0 -83
  164. package/components/changelogpage/ChangelogFilter.vue.d.ts +0 -16
  165. package/components/codesnippet/CodeSnippet.vue.d.ts +0 -14
  166. package/components/datatable/DataTable.vue.d.ts +0 -704
  167. package/components/datatable/MultiRow.vue.d.ts +0 -16
  168. package/components/datatable/helpers/adjustMenuPosition.helper.d.ts +0 -1
  169. package/components/datatable/helpers/filter.helper.d.ts +0 -28
  170. package/components/datatable/helpers/index.d.ts +0 -3
  171. package/components/datatable/helpers/readConfig.helper.d.ts +0 -2
  172. package/components/datatable/store/dataTable.store.d.ts +0 -22
  173. package/components/editor/CodeSnippetAdapter.vue.d.ts +0 -92
  174. package/components/editor/EditorButton.vue.d.ts +0 -15
  175. package/components/editor/MentionList.vue.d.ts +0 -35
  176. package/components/editor/MentionSection.vue.d.ts +0 -92
  177. package/components/editor/codeSnippetExtension.d.ts +0 -3
  178. package/components/editor/mentionSectionExtension.d.ts +0 -3
  179. package/components/editor/suggestion.d.ts +0 -2
  180. package/components/filtercontainer/FilterContainer.vue.d.ts +0 -141
  181. package/components/filtercontainer/helpers/applyFilter.helper.d.ts +0 -3
  182. package/components/filtercontainer/helpers/formatDateTimeRange.helper.d.ts +0 -7
  183. package/components/filtercontainer/helpers/getOption.helper.d.ts +0 -3
  184. package/components/gallerypreview/GalleryPreview.vue.d.ts +0 -31
  185. package/components/helpers/convertToArrayClass.helper.d.ts +0 -2
  186. package/components/helpers/index.d.ts +0 -2
  187. package/components/helpers/label.d.ts +0 -15
  188. package/components/imagecompressor/BackgroundImageCropper.vue.d.ts +0 -36
  189. package/components/imagecompressor/ImageInputInfo.vue.d.ts +0 -30
  190. package/components/index.d.ts +0 -66
  191. package/components/inputcurrency/helpers/currency.helper.d.ts +0 -4
  192. package/components/inputemail/InputEmail.vue.d.ts +0 -25
  193. package/components/inputgroup/InputGroup.vue.d.ts +0 -141
  194. package/components/inputpassword/InputPassword.vue.d.ts +0 -32
  195. package/components/inputphonenumber/helpers/getUserLocation.helper.d.ts +0 -8
  196. package/components/inputurl/InputURL.vue.d.ts +0 -39
  197. package/components/invisiblefield/InvisibleField.vue.d.ts +0 -36
  198. package/components/languagedropdown/LanguageDropdown.vue.d.ts +0 -58
  199. package/components/languagedropdown/LanguageDropdownOption.vue.d.ts +0 -18
  200. package/components/menu/helpers/filterMenu.helper.d.ts +0 -12
  201. package/components/menu/helpers/index.d.ts +0 -1
  202. package/components/menuitem/MenuItem.vue.d.ts +0 -19
  203. package/components/menuitem/index.d.ts +0 -104
  204. package/components/progressbar/ProgressBar.vue.d.ts +0 -72
  205. package/components/quickfilter/QuickFilter.vue.d.ts +0 -25
  206. package/components/tabmenu/TabMenu.vue.d.ts +0 -288
  207. package/components/tagtype/TagType.vue.d.ts +0 -22
  208. package/components/timeline/TimelineContentByType.vue.d.ts +0 -16
  209. package/components/tooltipspan/TooltipSpan.vue.d.ts +0 -20
  210. package/components/tree/helpers/flattenTreeNodeChildren.helper.d.ts +0 -6
  211. package/components/tree/helpers/index.d.ts +0 -3
  212. package/components/treesearchinput/TreeSearchInput.vue.d.ts +0 -16
  213. package/components/usergroup/UserGroup.vue.d.ts +0 -57
  214. package/components/validatormessage/ValidatorMessage.vue.d.ts +0 -12
  215. package/loading-page-BrQattYE.js +0 -1
  216. package/loading-page-CgfbWppy.js +0 -1
  217. package/loading-page-DbLuqCHa.js +0 -1
  218. package/loading-plane-CgfbWppy.js +0 -1
  219. package/loading-table-Bb2MtjdD.js +0 -4
  220. package/loading-table-Br25QIny.js +0 -1
  221. package/loading-table-BzrSQlA0.js +0 -1
  222. package/loading-table-chOgXi94.js +0 -1
  223. package/main.d.ts +0 -2
  224. package/no-data-Cgze_Rvp.js +0 -1
  225. package/no-data-Dep79CBh.js +0 -1
  226. package/no-data-y1X5WtcQ.js +0 -1
  227. package/plugins/translation.d.ts +0 -37
  228. package/types/options.type.d.ts +0 -16
  229. package/utils/filterOptions.util.d.ts +0 -3
  230. package/utils/genPlaceholder.util.d.ts +0 -8
  231. package/utils/getAttachmentIcon.util.d.ts +0 -8
  232. package/utils/mergePropsWithDefaults.util.d.ts +0 -20
@@ -0,0 +1,215 @@
1
+ /* eslint-disable @typescript-eslint/no-unused-vars */
2
+ import { ButtonProps } from '../button';
3
+ import {
4
+ ClassComponent,
5
+ GlobalComponentConstructor,
6
+ HintedString,
7
+ } from '../ts-helpers.d';
8
+
9
+ import { WangsIcons } from '../icon';
10
+
11
+ export type ScannerErrorCode =
12
+ | 'DRIVER_NOT_FOUND'
13
+ | 'DEVICE_NOT_CONNECTED'
14
+ | 'DEVICE_DISCONNECTED'
15
+ | 'NOT_SUPPORTED_SYSTEM'
16
+ | 'HARDWARE_NOT_SYNCHRONIZED';
17
+
18
+ export type ScannerErrorMessage = {
19
+ title: string;
20
+ detail: string;
21
+ };
22
+
23
+ export type ScannerOption = Partial<Device> & {
24
+ label: string;
25
+ device: Device | undefined;
26
+ };
27
+
28
+ export type Device = {
29
+ jenisDevice: string;
30
+ serialNumber: string;
31
+ API: string;
32
+ rfidScan: boolean;
33
+ qrScan: boolean;
34
+ name: string;
35
+ };
36
+
37
+ export type RegisteredDevice = {
38
+ _id: string;
39
+ imageSmall: string;
40
+ imageBig: string;
41
+ serialNumber: string;
42
+ status: string;
43
+ lastReportDate: string;
44
+ createdAt: string;
45
+ updatedAt: string;
46
+ group: null;
47
+ name: string;
48
+ };
49
+
50
+ export type DeviceList = Device[];
51
+
52
+ export interface ButtonScanProps extends Omit<ButtonProps, 'type'> {
53
+ /**
54
+ * Set custom button label.
55
+ *
56
+ * @default Scan Type
57
+ */
58
+ label?: string;
59
+ /**
60
+ * Set custom button icon.
61
+ *
62
+ * @default 'qr' | 'rfid'
63
+ */
64
+ icon?: WangsIcons;
65
+ /**
66
+ * Scpecify the scan type
67
+ */
68
+ type?: 'RFID' | 'QR';
69
+ /**
70
+ * Automatically switch between RFID and QR scan types during the scanning process.
71
+ * This allows the scan type to change dynamically based on the validation of the scanned code.
72
+ *
73
+ * The scan type will alternate between RFID and QR based on the validation result:
74
+ * - If the current scan is valid, it proceeds with the next scan type.
75
+ * - If the scan is invalid, it will re-scan using the previous scan type.
76
+ *
77
+ * This behavior continues in a loop until a stop condition is met, typically triggered by the parent component.
78
+ *
79
+ * Note: Only work with single Scan
80
+ *
81
+ * @default false
82
+ * @type {boolean}
83
+ *
84
+ * @example
85
+ * // Example usage in a component:
86
+ * <Button :auto-switch="true" />
87
+ *
88
+ * In this case, scanning will automatically switch between RFID and QR based on the validation results.
89
+ */
90
+ autoSwitch?: boolean;
91
+
92
+ /**
93
+ * Do validation when a tag is scanned, if valid, it will emits scan, otherwise re-scanning.
94
+ * when need to show toast on validation failed, set the toast group to `scan-error-validation`
95
+ *
96
+ * @param type
97
+ * @param code
98
+ * @param serialNumber
99
+ * @returns
100
+ */
101
+ scanValidation?: (
102
+ type: 'RFID' | 'QR',
103
+ code: string,
104
+ serialNumber: string,
105
+ ) => Promise<boolean>;
106
+
107
+ /**
108
+ * The value of the input (tag).
109
+ *
110
+ * @deprecated use `onScan` instead.
111
+ */
112
+ modelValue?: string;
113
+ /**
114
+ * Whether the scanner is in bulk mode.
115
+ *
116
+ * @toto add support bulk scan
117
+ */
118
+ bulk?: boolean;
119
+ /**
120
+ * The id of the button element.
121
+ */
122
+ id?: string;
123
+ /**
124
+ * Wether the button should be disabled.
125
+ */
126
+ disabled?: boolean;
127
+ /**
128
+ * Whether the scanner is a powerbank.
129
+ *
130
+ * @deprecated
131
+ */
132
+ powerbank?: boolean;
133
+ /**
134
+ * Display the label only (wihout icon).
135
+ *
136
+ * @default false
137
+ */
138
+ labelOnly?: boolean;
139
+ /**
140
+ * Add a border class without a background initially.
141
+ * @default false
142
+ */
143
+ outlined?: boolean | undefined;
144
+ /**
145
+ * Defines the style of the button.
146
+ */
147
+ severity?:
148
+ | HintedString<
149
+ | 'secondary'
150
+ | 'success'
151
+ | 'info'
152
+ | 'warning'
153
+ | 'help'
154
+ | 'danger'
155
+ | 'contrast'
156
+ >
157
+ | undefined;
158
+ /**
159
+ * Defines the size of the button.
160
+ *
161
+ * @default to undefined / normal
162
+ */
163
+ size?: 'small' | 'large';
164
+ }
165
+
166
+ export type ButtonScanEmits = {
167
+ 'update:modelValue': [tag: string];
168
+ 'connect': [];
169
+ 'connected': [device?: Device];
170
+ 'scan': [tag: string, deviceSerialNumber: string];
171
+ 'stop': [];
172
+ 'error': [error: unknown | Event];
173
+ 'beforeStartScan': [];
174
+ };
175
+
176
+ export interface ButtonScanExposes {
177
+ onBeforeStartScan: () => void;
178
+ startScan: () => void;
179
+ /**
180
+ * Method to stop the scan process.
181
+ */
182
+ stopScan: (afterScan?: boolean) => void;
183
+ }
184
+
185
+ /**
186
+ * **WangsVue - ButtonScan**
187
+ *
188
+ * _ButtonScan is component for scanning RFID or QR Tag._
189
+ *
190
+ * --- ---
191
+ * ![TSVue](https://ik.imagekit.io/kurniadev/TS-HEAD-BLACK.png)
192
+ *
193
+ * @group Component
194
+ */
195
+ declare class ButtonScan
196
+ extends ClassComponent<ButtonScanProps, unknown, ButtonScanEmits>
197
+ implements ButtonScanExposes
198
+ {
199
+ onBeforeStartScan: () => void;
200
+ startScan: () => void;
201
+ stopScan: (afterScan?: boolean) => void;
202
+ }
203
+
204
+ declare module '@vue/runtime-core' {
205
+ interface GlobalComponents {
206
+ ButtonScan: GlobalComponentConstructor<ButtonScan>;
207
+ }
208
+ }
209
+
210
+ interface Window {
211
+ scannerWorker: Worker;
212
+ toastGroups: string[] | undefined;
213
+ }
214
+
215
+ export default ButtonScan;
@@ -1,4 +1,4 @@
1
- import { DefineComponent } from 'vue';
1
+ import { ClassComponent } from '../ts-helpers.d';
2
2
 
3
3
  export interface ButtonSearchLocaleConfig {
4
4
  searchPlaceholder?: string;
@@ -26,13 +26,14 @@ export interface ButtonSearchProps {
26
26
  * _Search button with searchbox for table._
27
27
  *
28
28
  * --- ---
29
- * ![WangsVue](https://www.wangs.id/wp-content/uploads/2023/12/cropped-Logo_Wangsid-removebg-preview-192x192.png)
29
+ * ![WangsVue](https://www.wangsit.id/wp-content/uploads/2023/12/cropped-Logo_Wangsid-removebg-preview-192x192.png)
30
30
  *
31
31
  * @group form
32
32
  */
33
- declare const ButtonSearch: DefineComponent<
33
+ declare class ButtonSearch extends ClassComponent<
34
34
  ButtonSearchProps,
35
- ButtonSearchEmits
36
- >;
35
+ ButtonSearchEmits,
36
+ unknown
37
+ > {}
37
38
 
38
39
  export default ButtonSearch;
@@ -0,0 +1,51 @@
1
+ import { ButtonScanProps } from '../buttonscan';
2
+ import { WangsIcons } from '../icon';
3
+ import { ClassComponent } from '../ts-helpers.d';
4
+
5
+ export type ScanPayload = {
6
+ type: 'RFID' | 'QR';
7
+ code: string;
8
+ device: string; // Serial Number
9
+ };
10
+
11
+ export type ButtonSearchByScanEmits = {
12
+ scan: [payload: ScanPayload];
13
+ };
14
+
15
+ export interface ButtonSearchByScanProps {
16
+ /**
17
+ * The button label.
18
+ *
19
+ * @default 'Search by Scan'
20
+ */
21
+ label?: string;
22
+ /**
23
+ * The button icon.
24
+ */
25
+ icon?: WangsIcons;
26
+ /**
27
+ * The datatable tablename which handles the search by scan.
28
+ *
29
+ * @default 'datatable' - default DataTable tablename
30
+ */
31
+ tableName?: string;
32
+ bulk?: boolean;
33
+ scanValidation?: ButtonScanProps['scanValidation'];
34
+ }
35
+
36
+ export interface ButtonSearchByScanExposes {
37
+ stopScan: (afterScan?: boolean) => void;
38
+ }
39
+
40
+ declare class ButtonSearchByScan
41
+ extends ClassComponent<
42
+ ButtonSearchByScanProps,
43
+ ButtonSearchByScanEmits,
44
+ unknown
45
+ >
46
+ implements ButtonSearchByScanExposes
47
+ {
48
+ stopScan: (afterScan?: boolean) => void;
49
+ }
50
+
51
+ export default ButtonSearchByScan;
@@ -1,8 +1,10 @@
1
- import { ClassComponent, GlobalComponentConstructor } from '../ts-helpers';
2
- import { TreeNode } from '../basetree/BaseTree.vue.d';
3
- import { ShortFetchResponse } from '../datatable/DataTable.vue.d';
1
+ import { ShallowRef, Slot } from 'vue';
4
2
 
5
- export type KeysModelValue = number[] | undefined;
3
+ import { TreeNode } from '../basetree';
4
+ import { QueryParams, ShortFetchListResponse } from '../datatable';
5
+ import { ClassComponent, GlobalComponentConstructor } from '../ts-helpers.d';
6
+
7
+ export type KeysModelValue = string[] | number[] | undefined;
6
8
  export type NodeModelValue =
7
9
  | number
8
10
  | TreeNode
@@ -74,7 +76,9 @@ export interface ButtonSelectTreeProps {
74
76
 
75
77
  fetchTree?: (
76
78
  type: 'group' | 'category',
77
- ) => Promise<ShortFetchResponse<TreeNode> | undefined>;
79
+ params?: QueryParams,
80
+ ) => Promise<ShortFetchListResponse<TreeNode> | undefined>;
81
+ params?: QueryParams;
78
82
  /**
79
83
  * Specify wether the all tree node should be auto checked once it rendered.
80
84
  * @default false
@@ -83,22 +87,31 @@ export interface ButtonSelectTreeProps {
83
87
  /**
84
88
  * A list of node keys that should be disabled along with their children.
85
89
  */
86
- disableKeys?: number[];
90
+ disableKeys?: string[] | number[];
87
91
  /**
88
92
  * A list of node keys that should be disabled, affecting only the specified nodes and not their children.
89
93
  */
90
- exactDisableKeys?: number[];
94
+ exactDisableKeys?: string[] | number[];
91
95
  /**
92
96
  * Disable the Select button
93
97
  */
94
98
  disabled?: boolean;
95
- exactDisableKey?: number;
99
+ exactDisableKey?: string | number;
96
100
  /**
97
101
  * Disable node 'All' selection
98
102
  */
99
103
  disableNodeAll?: boolean;
104
+
100
105
  /**
101
- * For checkbox selection, old behavior is preventing select if there is no node selected.
106
+ * A function to determine when the node should be disabled,
107
+ * When true, it will disabled selection on current node and all level childrend
108
+ *
109
+ * @return true to disabled
110
+ */
111
+ disableNodeWhen?: (node: TreeNode) => boolean;
112
+
113
+ /**
114
+ * Old behavior is preventing select if there is no node selected.
102
115
  *
103
116
  * This props comes to make options, wether the selection can be empty or not.
104
117
  * @default true
@@ -142,7 +155,7 @@ export interface ButtonSelectTreeProps {
142
155
  /**
143
156
  * Defines the group tree to disable excluded keys
144
157
  */
145
- excludedKeys?: number[];
158
+ excludedKeys?: string[];
146
159
  /**
147
160
  * Define wether single selection can be edited or readonly
148
161
  * @default true
@@ -168,8 +181,12 @@ export type ButtonSelectTreeEmits = {
168
181
  'reset': [];
169
182
  };
170
183
 
184
+ export interface ButtonSelectTreeSlots {
185
+ treenode: Slot<{ node: TreeNode }>;
186
+ }
187
+
171
188
  /**
172
- * **TSVue v2 - ButtonSelectTree**
189
+ * **WangsVue - ButtonSelectTree**
173
190
  *
174
191
  * _ButtonSelectTree handles select tree dialog and field validaion._
175
192
  *
@@ -180,9 +197,11 @@ export type ButtonSelectTreeEmits = {
180
197
  */
181
198
  declare class ButtonSelectTree extends ClassComponent<
182
199
  ButtonSelectTreeProps,
183
- unknown,
184
- ButtonSelectTreeProps
185
- > {}
200
+ ButtonSelectTreeSlots,
201
+ ButtonSelectTreeEmits
202
+ > {
203
+ dialogTreeKey: ShallowRef<number>;
204
+ }
186
205
 
187
206
  declare module '@vue/runtime-core' {
188
207
  interface GlobalComponents {
@@ -0,0 +1,22 @@
1
+ import { ClassComponent } from '../ts-helpers.d';
2
+
3
+ export interface ButtonSyncProps {
4
+ /**
5
+ * Defines no scan buttons in hardware sync dialog footer.
6
+ */
7
+ withoutScanBtn?: boolean;
8
+ }
9
+
10
+ declare class ButtonSync extends ClassComponent<
11
+ ButtonSyncProps,
12
+ unknown,
13
+ unknown
14
+ > {}
15
+
16
+ declare module 'vue' {
17
+ export interface GlobalComponents {
18
+ ButtonSync: typeof ButtonSync;
19
+ }
20
+ }
21
+
22
+ export default ButtonSync;
@@ -0,0 +1,27 @@
1
+ import { ToggleSwitchEmits, ToggleSwitchProps } from '../toggleswitch';
2
+ import { ClassComponent, GlobalComponentConstructor } from '../ts-helpers.d';
3
+
4
+ export type ButtonToggleProps = ToggleSwitchProps & {};
5
+ export type ButtonToggleEmits = ToggleSwitchEmits & {};
6
+
7
+ /**
8
+ * **WangsVue - ButtonToggle**
9
+ *
10
+ * _ButtonToggle component._
11
+ *
12
+ * @deprecated Use ToggleSwitch component instead.
13
+ * @group components
14
+ */
15
+ declare class ButtonToggle extends ClassComponent<
16
+ ButtonToggleProps,
17
+ unknown,
18
+ ButtonToggleEmits
19
+ > {}
20
+
21
+ declare module '@vue/runtime-core' {
22
+ interface GlobalComponents {
23
+ ButtonToggle: GlobalComponentConstructor<ButtonToggle>;
24
+ }
25
+ }
26
+
27
+ export default ButtonToggle;
@@ -1,6 +1,7 @@
1
- import { TransitionProps } from 'vue';
2
- import { CustomValidation } from '../form/Form.vue.d';
3
- import { ClassComponent } from '../ts-helpers';
1
+ import { Slot, TransitionProps } from 'vue';
2
+
3
+ import { CustomValidation } from '../form';
4
+ import { ClassComponent } from '../ts-helpers.d';
4
5
 
5
6
  export interface CalendarLocaleConfig {
6
7
  defaultPlaceholder: string;
@@ -321,6 +322,11 @@ export interface CalendarProps {
321
322
  */
322
323
  readonly?: boolean;
323
324
 
325
+ /**
326
+ * The class name of the overlay element.
327
+ */
328
+ overlayClass?: string;
329
+
324
330
  /**
325
331
  * Identifier of the underlying input element.
326
332
  */
@@ -337,14 +343,14 @@ export interface CalendarProps {
337
343
  * @default 'single'
338
344
  * @deprecated use selectionMode
339
345
  */
340
- mode?: 'range' | 'single';
346
+ mode?: 'range' | 'single' | 'multiple';
341
347
 
342
348
  /**
343
349
  * Whether single date or date range model value.
344
350
  *
345
351
  * @default 'single'
346
352
  */
347
- selectionMode?: 'range' | 'single';
353
+ selectionMode?: 'range' | 'single' | 'multiple';
348
354
 
349
355
  /**
350
356
  * Whether to hide the overlay on date selection when showTime is enabled.
@@ -469,6 +475,16 @@ export interface CalendarProps {
469
475
  */
470
476
  useTimeFormat?: boolean;
471
477
 
478
+ /**
479
+ * Only allow weekdays to be selected.
480
+ */
481
+ onlyWeekdays?: boolean;
482
+
483
+ /**
484
+ * Exclude certain dates from selection.
485
+ */
486
+ excludeDates?: Date[];
487
+
472
488
  /**
473
489
  * The minimum selectable date.
474
490
  */
@@ -495,6 +511,15 @@ export interface CalendarProps {
495
511
  * @todo Support number, currently only support 'current'
496
512
  */
497
513
  maxMonth?: 'current' | number | undefined;
514
+ /**
515
+ * When using range selection mode, selecting only the "start date" (without an "end date") will, by default, return a range ending 24 hours later.
516
+ * Enabling this prop will instead return the exact dates selected, without adding an extra day.
517
+ *
518
+ * @example Selecting dates from the 1st to the 5th will return an array of epoch timestamps for each day: [1st, 2nd, 3rd, 4th, 5th].
519
+ * @default false
520
+ * @requires selectionMode = 'range'
521
+ */
522
+ exactSelection?: boolean;
498
523
  }
499
524
 
500
525
  /**
@@ -542,19 +567,31 @@ export type CalendarEmits = {
542
567
  'dateSelect': [date: Date | Date[]];
543
568
  };
544
569
 
570
+ export interface CalendarSlots {
571
+ /**
572
+ * Slot for custom root input element
573
+ */
574
+ 'default': Slot<{ onClick: (event: Event) => void }>;
575
+
576
+ /**
577
+ * Slot for additional content in overlay
578
+ */
579
+ 'addon-overlay': Slot;
580
+ }
581
+
545
582
  /**
546
583
  * **WangsVue - Calendar**
547
584
  *
548
585
  * _Handle input date with form validation._
549
586
  *
550
587
  * --- ---
551
- * ![WangsVue](https://www.wangs.id/wp-content/uploads/2023/12/cropped-Logo_Wangsid-removebg-preview-192x192.png)
588
+ * ![WangsVue](https://www.wangsit.id/wp-content/uploads/2023/12/cropped-Logo_Wangsid-removebg-preview-192x192.png)
552
589
  *
553
590
  * @group form
554
591
  */
555
592
  declare class Calendar extends ClassComponent<
556
593
  CalendarProps,
557
- unknown,
594
+ CalendarSlots,
558
595
  CalendarEmits
559
596
  > {}
560
597
 
@@ -1,4 +1,3 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
1
  /**
3
2
  *
4
3
  * Card is a flexible container component.
@@ -7,13 +6,14 @@
7
6
  *
8
7
  */
9
8
  import { VNode } from 'vue';
9
+
10
10
  import { ComponentHooks } from '../basecomponent';
11
11
  import { PassThroughOptions } from '../passthrough';
12
12
  import {
13
13
  ClassComponent,
14
14
  GlobalComponentConstructor,
15
15
  PassThrough,
16
- } from '../ts-helpers';
16
+ } from '../ts-helpers.d';
17
17
 
18
18
  export declare type CardPassThroughOptionType =
19
19
  | CardPassThroughAttributes
@@ -124,7 +124,7 @@ export interface CardSlots {
124
124
  * _Card is a flexible container component._
125
125
  *
126
126
  * --- ---
127
- * ![WangsVue](https://www.wangs.id/wp-content/uploads/2023/12/cropped-Logo_Wangsid-removebg-preview-192x192.png)
127
+ * ![WangsVue](https://www.wangsit.id/wp-content/uploads/2023/12/cropped-Logo_Wangsid-removebg-preview-192x192.png)
128
128
  *
129
129
  * @group Component
130
130
  */
@@ -0,0 +1,28 @@
1
+ import { ImageGallery } from '../image';
2
+ import { ClassComponent } from '../ts-helpers.d';
3
+
4
+ export interface CarouselProps {
5
+ /**
6
+ * An array of image object to be displayed.
7
+ */
8
+ value: ImageGallery[] | undefined;
9
+ }
10
+
11
+ /**
12
+ * **WangsVue - Carousel**
13
+ *
14
+ * _Carousel is a component for displaying a collection of images or content in a sliding or rotating fashion.
15
+ * You can navigate through the items using the provided next and previous functions._
16
+ *
17
+ * --- ---
18
+ * ![TSVue](https://ik.imagekit.io/kurniadev/TS-HEAD-BLACK.png)
19
+ *
20
+ * @group components
21
+ */
22
+ declare class Carousel extends ClassComponent<
23
+ CarouselProps,
24
+ unknown,
25
+ unknown
26
+ > {}
27
+
28
+ export default Carousel;
@@ -1,8 +1,12 @@
1
- import { ClassComponent, GlobalComponentConstructor, HintedString } from '../.././components/ts-helpers';
2
- import { TableColumn } from '../.././components/datatable/DataTable.vue.d';
3
- import { FilterField } from '../.././components/filtercontainer/FilterContainer.vue.d';
4
1
  import { ChangelogFilterQuery } from '@tagsamurai/acts-api-services/src/dto/changelog.dto';
5
2
 
3
+ import { TableColumn } from '../datatable';
4
+ import { FilterField } from '../filtercontainer';
5
+ import {
6
+ ClassComponent,
7
+ GlobalComponentConstructor,
8
+ HintedString,
9
+ } from '../ts-helpers.d';
6
10
 
7
11
  export type ChangelogTemplateColumn = { index: number; column: TableColumn };
8
12
  export type ChangelogTemplateFilter = { index: number; filter: FilterField };
@@ -139,7 +143,7 @@ export type ChangelogEmits = {
139
143
  * You need to install vee-validate while using this component._
140
144
  *
141
145
  * --- ---
142
- * ![WangsVue](https://www.wangs.id/wp-content/uploads/2023/12/cropped-Logo_Wangsid-removebg-preview-192x192.png)
146
+ * ![WangsVue](https://www.wangsit.id/wp-content/uploads/2023/12/cropped-Logo_Wangsid-removebg-preview-192x192.png)
143
147
  *
144
148
  * @group components
145
149
  */
@@ -1,7 +1,12 @@
1
- import { ClassComponent, GlobalComponentConstructor } from '../.././components/ts-helpers';
2
- import { ChangelogDefaultField, ChangelogTemplateColumn, ChangelogTemplateFilter } from '../changelog/Changelog.vue.d';
3
- import { ChangelogFilterQuery } from '@tagsamurai/acts-api-services/src/dto/changelog.dto';
1
+ import { ChangelogFilterQuery } from '@tagsamurai/fats-api-services/src/dto/changelog.dto';
4
2
 
3
+ import { ClassComponent, GlobalComponentConstructor } from '../ts-helpers.d';
4
+
5
+ import {
6
+ ChangelogDefaultField,
7
+ ChangelogTemplateColumn,
8
+ ChangelogTemplateFilter,
9
+ } from '../changelog';
5
10
 
6
11
  /**
7
12
  * Props for Changelog component
@@ -105,7 +110,7 @@ export type ChangelogPageEmits = {
105
110
  * You need to install vee-validate while using this component._
106
111
  *
107
112
  * --- ---
108
- * ![WangsVue](https://www.wangs.id/wp-content/uploads/2023/12/cropped-Logo_Wangsid-removebg-preview-192x192.png)
113
+ * ![WangsVue](https://www.wangsit.id/wp-content/uploads/2023/12/cropped-Logo_Wangsid-removebg-preview-192x192.png)
109
114
  *
110
115
  * @group components
111
116
  */
@@ -6,13 +6,14 @@
6
6
  *
7
7
  */
8
8
  import { VNode } from 'vue';
9
+
9
10
  import { ComponentHooks } from '../basecomponent';
10
11
  import { PassThroughOptions } from '../passthrough';
11
12
  import {
12
13
  ClassComponent,
13
14
  GlobalComponentConstructor,
14
15
  PassThrough,
15
- } from '../ts-helpers';
16
+ } from '../ts-helpers.d';
16
17
 
17
18
  export declare type CheckboxPassThroughOptionType =
18
19
  | CheckboxPassThroughAttributes
@@ -309,7 +310,7 @@ export type CheckboxEmits = {
309
310
  * Checkbox is an extension to checkbox element with label and info tooltip.
310
311
  *
311
312
  * --- ---
312
- * ![WangsVue](https://www.wangs.id/wp-content/uploads/2023/12/cropped-Logo_Wangsid-removebg-preview-192x192.png)
313
+ * ![WangsVue](https://www.wangsit.id/wp-content/uploads/2023/12/cropped-Logo_Wangsid-removebg-preview-192x192.png)
313
314
  *
314
315
  * @group Component
315
316
  *