@ramathibodi/nuxt-commons 0.1.74 → 4.0.1

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 (243) hide show
  1. package/README.md +9 -2
  2. package/dist/module.json +4 -4
  3. package/dist/module.mjs +4 -4
  4. package/dist/runtime/bridges/authentication.d.ts +21 -0
  5. package/dist/runtime/bridges/authentication.js +20 -0
  6. package/dist/runtime/bridges/graphql.d.ts +17 -0
  7. package/dist/runtime/bridges/graphql.js +45 -0
  8. package/dist/runtime/components/Alert.d.vue.ts +3 -0
  9. package/dist/runtime/components/Alert.vue +17 -26
  10. package/dist/runtime/components/Alert.vue.d.ts +3 -0
  11. package/dist/runtime/components/BarcodeReader.d.vue.ts +9 -0
  12. package/dist/runtime/components/BarcodeReader.vue +56 -81
  13. package/dist/runtime/components/BarcodeReader.vue.d.ts +9 -0
  14. package/dist/runtime/components/ExportCSV.d.vue.ts +55 -0
  15. package/dist/runtime/components/ExportCSV.vue +39 -76
  16. package/dist/runtime/components/ExportCSV.vue.d.ts +55 -0
  17. package/dist/runtime/components/FileBtn.d.vue.ts +53 -0
  18. package/dist/runtime/components/FileBtn.vue +23 -50
  19. package/dist/runtime/components/FileBtn.vue.d.ts +53 -0
  20. package/dist/runtime/components/ImportCSV.d.vue.ts +52 -0
  21. package/dist/runtime/components/ImportCSV.vue +60 -111
  22. package/dist/runtime/components/ImportCSV.vue.d.ts +52 -0
  23. package/dist/runtime/components/MrzReader.d.vue.ts +19 -0
  24. package/dist/runtime/components/MrzReader.vue +69 -109
  25. package/dist/runtime/components/MrzReader.vue.d.ts +19 -0
  26. package/dist/runtime/components/SplitterPanel.d.vue.ts +15 -0
  27. package/dist/runtime/components/SplitterPanel.vue +18 -35
  28. package/dist/runtime/components/SplitterPanel.vue.d.ts +15 -0
  29. package/dist/runtime/components/TabsGroup.d.vue.ts +19 -0
  30. package/dist/runtime/components/TabsGroup.vue +8 -20
  31. package/dist/runtime/components/TabsGroup.vue.d.ts +19 -0
  32. package/dist/runtime/components/TextBarcode.d.vue.ts +12 -0
  33. package/dist/runtime/components/TextBarcode.vue +22 -45
  34. package/dist/runtime/components/TextBarcode.vue.d.ts +12 -0
  35. package/dist/runtime/components/device/IdCardButton.d.vue.ts +57 -0
  36. package/dist/runtime/components/device/IdCardButton.vue +30 -67
  37. package/dist/runtime/components/device/IdCardButton.vue.d.ts +57 -0
  38. package/dist/runtime/components/device/IdCardWebSocket.d.vue.ts +55 -0
  39. package/dist/runtime/components/device/IdCardWebSocket.vue +104 -165
  40. package/dist/runtime/components/device/IdCardWebSocket.vue.d.ts +55 -0
  41. package/dist/runtime/components/device/Scanner.d.vue.ts +66 -0
  42. package/dist/runtime/components/device/Scanner.vue +97 -178
  43. package/dist/runtime/components/device/Scanner.vue.d.ts +66 -0
  44. package/dist/runtime/components/dialog/Confirm.d.vue.ts +37 -0
  45. package/dist/runtime/components/dialog/Confirm.vue +30 -59
  46. package/dist/runtime/components/dialog/Confirm.vue.d.ts +37 -0
  47. package/dist/runtime/components/dialog/Host.d.vue.ts +9 -0
  48. package/dist/runtime/components/dialog/Host.vue +34 -57
  49. package/dist/runtime/components/dialog/Host.vue.d.ts +9 -0
  50. package/dist/runtime/components/dialog/Index.d.vue.ts +24 -0
  51. package/dist/runtime/components/dialog/Index.vue +20 -40
  52. package/dist/runtime/components/dialog/Index.vue.d.ts +24 -0
  53. package/dist/runtime/components/dialog/Loading.d.vue.ts +21 -0
  54. package/dist/runtime/components/dialog/Loading.vue +12 -29
  55. package/dist/runtime/components/dialog/Loading.vue.d.ts +21 -0
  56. package/dist/runtime/components/dialog/default/Confirm.d.vue.ts +40 -0
  57. package/dist/runtime/components/dialog/default/Confirm.vue +29 -62
  58. package/dist/runtime/components/dialog/default/Confirm.vue.d.ts +40 -0
  59. package/dist/runtime/components/dialog/default/Loading.d.vue.ts +23 -0
  60. package/dist/runtime/components/dialog/default/Loading.vue +12 -29
  61. package/dist/runtime/components/dialog/default/Loading.vue.d.ts +23 -0
  62. package/dist/runtime/components/dialog/default/Notify.d.vue.ts +23 -0
  63. package/dist/runtime/components/dialog/default/Notify.vue +19 -48
  64. package/dist/runtime/components/dialog/default/Notify.vue.d.ts +23 -0
  65. package/dist/runtime/components/dialog/default/Printing.d.vue.ts +21 -0
  66. package/dist/runtime/components/dialog/default/Printing.vue +13 -29
  67. package/dist/runtime/components/dialog/default/Printing.vue.d.ts +21 -0
  68. package/dist/runtime/components/dialog/default/VerifyUser.d.vue.ts +29 -0
  69. package/dist/runtime/components/dialog/default/VerifyUser.vue +44 -82
  70. package/dist/runtime/components/dialog/default/VerifyUser.vue.d.ts +29 -0
  71. package/dist/runtime/components/document/Form.d.vue.ts +9 -0
  72. package/dist/runtime/components/document/Form.vue +27 -42
  73. package/dist/runtime/components/document/Form.vue.d.ts +9 -0
  74. package/dist/runtime/components/document/TemplateBuilder.d.vue.ts +24 -0
  75. package/dist/runtime/components/document/TemplateBuilder.vue +154 -194
  76. package/dist/runtime/components/document/TemplateBuilder.vue.d.ts +24 -0
  77. package/dist/runtime/components/form/ActionPad.d.vue.ts +114 -0
  78. package/dist/runtime/components/form/ActionPad.vue +48 -85
  79. package/dist/runtime/components/form/ActionPad.vue.d.ts +114 -0
  80. package/dist/runtime/components/form/Birthdate.d.vue.ts +38 -0
  81. package/dist/runtime/components/form/Birthdate.vue +44 -76
  82. package/dist/runtime/components/form/Birthdate.vue.d.ts +38 -0
  83. package/dist/runtime/components/form/CheckboxGroup.d.vue.ts +41 -0
  84. package/dist/runtime/components/form/CheckboxGroup.vue +34 -64
  85. package/dist/runtime/components/form/CheckboxGroup.vue.d.ts +41 -0
  86. package/dist/runtime/components/form/CodeEditor.d.vue.ts +25 -0
  87. package/dist/runtime/components/form/CodeEditor.vue +18 -36
  88. package/dist/runtime/components/form/CodeEditor.vue.d.ts +25 -0
  89. package/dist/runtime/components/form/Date.d.vue.ts +86 -0
  90. package/dist/runtime/components/form/Date.vue +109 -162
  91. package/dist/runtime/components/form/Date.vue.d.ts +86 -0
  92. package/dist/runtime/components/form/DateTime.d.vue.ts +36 -0
  93. package/dist/runtime/components/form/DateTime.vue +94 -143
  94. package/dist/runtime/components/form/DateTime.vue.d.ts +36 -0
  95. package/dist/runtime/components/form/Dialog.d.vue.ts +69 -0
  96. package/dist/runtime/components/form/Dialog.vue +60 -96
  97. package/dist/runtime/components/form/Dialog.vue.d.ts +69 -0
  98. package/dist/runtime/components/form/EditPad.d.vue.ts +113 -0
  99. package/dist/runtime/components/form/EditPad.vue +49 -85
  100. package/dist/runtime/components/form/EditPad.vue.d.ts +113 -0
  101. package/dist/runtime/components/form/File.d.vue.ts +65 -0
  102. package/dist/runtime/components/form/File.vue +112 -186
  103. package/dist/runtime/components/form/File.vue.d.ts +65 -0
  104. package/dist/runtime/components/form/Hidden.d.vue.ts +12 -0
  105. package/dist/runtime/components/form/Hidden.vue +17 -34
  106. package/dist/runtime/components/form/Hidden.vue.d.ts +12 -0
  107. package/dist/runtime/components/form/Iterator.d.vue.ts +279 -0
  108. package/dist/runtime/components/form/Iterator.vue +162 -252
  109. package/dist/runtime/components/form/Iterator.vue.d.ts +279 -0
  110. package/dist/runtime/components/form/Login.d.vue.ts +32 -0
  111. package/dist/runtime/components/form/Login.vue +23 -55
  112. package/dist/runtime/components/form/Login.vue.d.ts +32 -0
  113. package/dist/runtime/components/form/Pad.d.vue.ts +674 -0
  114. package/dist/runtime/components/form/Pad.vue +166 -265
  115. package/dist/runtime/components/form/Pad.vue.d.ts +674 -0
  116. package/dist/runtime/components/form/SignPad.d.vue.ts +62 -0
  117. package/dist/runtime/components/form/SignPad.vue +80 -126
  118. package/dist/runtime/components/form/SignPad.vue.d.ts +62 -0
  119. package/dist/runtime/components/form/System.d.vue.ts +34 -0
  120. package/dist/runtime/components/form/System.vue +18 -32
  121. package/dist/runtime/components/form/System.vue.d.ts +34 -0
  122. package/dist/runtime/components/form/Table.d.vue.ts +221 -0
  123. package/dist/runtime/components/form/Table.vue +123 -182
  124. package/dist/runtime/components/form/Table.vue.d.ts +221 -0
  125. package/dist/runtime/components/form/TableData.d.vue.ts +102 -0
  126. package/dist/runtime/components/form/TableData.vue +109 -139
  127. package/dist/runtime/components/form/TableData.vue.d.ts +102 -0
  128. package/dist/runtime/components/form/Time.d.vue.ts +49 -0
  129. package/dist/runtime/components/form/Time.vue +64 -99
  130. package/dist/runtime/components/form/Time.vue.d.ts +49 -0
  131. package/dist/runtime/components/form/images/Capture.d.vue.ts +96 -0
  132. package/dist/runtime/components/form/images/Capture.vue +104 -147
  133. package/dist/runtime/components/form/images/Capture.vue.d.ts +96 -0
  134. package/dist/runtime/components/form/images/Edit.d.vue.ts +29 -0
  135. package/dist/runtime/components/form/images/Edit.vue +57 -81
  136. package/dist/runtime/components/form/images/Edit.vue.d.ts +29 -0
  137. package/dist/runtime/components/form/images/Field.d.vue.ts +27 -0
  138. package/dist/runtime/components/form/images/Field.vue +136 -205
  139. package/dist/runtime/components/form/images/Field.vue.d.ts +27 -0
  140. package/dist/runtime/components/form/images/Pad.d.vue.ts +13 -0
  141. package/dist/runtime/components/form/images/Pad.vue +23 -40
  142. package/dist/runtime/components/form/images/Pad.vue.d.ts +13 -0
  143. package/dist/runtime/components/label/Date.d.vue.ts +13 -0
  144. package/dist/runtime/components/label/Date.vue +13 -29
  145. package/dist/runtime/components/label/Date.vue.d.ts +13 -0
  146. package/dist/runtime/components/label/DateAgo.d.vue.ts +20 -0
  147. package/dist/runtime/components/label/DateAgo.vue +43 -75
  148. package/dist/runtime/components/label/DateAgo.vue.d.ts +20 -0
  149. package/dist/runtime/components/label/DateCount.d.vue.ts +22 -0
  150. package/dist/runtime/components/label/DateCount.vue +58 -105
  151. package/dist/runtime/components/label/DateCount.vue.d.ts +22 -0
  152. package/dist/runtime/components/label/Field.d.vue.ts +38 -0
  153. package/dist/runtime/components/label/Field.vue +18 -40
  154. package/dist/runtime/components/label/Field.vue.d.ts +38 -0
  155. package/dist/runtime/components/label/FormatMoney.d.vue.ts +12 -0
  156. package/dist/runtime/components/label/FormatMoney.vue +12 -28
  157. package/dist/runtime/components/label/FormatMoney.vue.d.ts +12 -0
  158. package/dist/runtime/components/label/Mask.d.vue.ts +10 -0
  159. package/dist/runtime/components/label/Mask.vue +21 -38
  160. package/dist/runtime/components/label/Mask.vue.d.ts +10 -0
  161. package/dist/runtime/components/label/Object.d.vue.ts +8 -0
  162. package/dist/runtime/components/label/Object.vue +10 -20
  163. package/dist/runtime/components/label/Object.vue.d.ts +8 -0
  164. package/dist/runtime/components/master/Autocomplete.d.vue.ts +70 -0
  165. package/dist/runtime/components/master/Autocomplete.vue +25 -34
  166. package/dist/runtime/components/master/Autocomplete.vue.d.ts +70 -0
  167. package/dist/runtime/components/master/Combobox.d.vue.ts +70 -0
  168. package/dist/runtime/components/master/Combobox.vue +26 -35
  169. package/dist/runtime/components/master/Combobox.vue.d.ts +70 -0
  170. package/dist/runtime/components/master/RadioGroup.d.vue.ts +51 -0
  171. package/dist/runtime/components/master/RadioGroup.vue +44 -59
  172. package/dist/runtime/components/master/RadioGroup.vue.d.ts +51 -0
  173. package/dist/runtime/components/master/Select.d.vue.ts +68 -0
  174. package/dist/runtime/components/master/Select.vue +25 -34
  175. package/dist/runtime/components/master/Select.vue.d.ts +68 -0
  176. package/dist/runtime/components/master/label.d.vue.ts +24 -0
  177. package/dist/runtime/components/master/label.vue +22 -42
  178. package/dist/runtime/components/master/label.vue.d.ts +24 -0
  179. package/dist/runtime/components/model/Autocomplete.d.vue.ts +82 -0
  180. package/dist/runtime/components/model/Autocomplete.vue +50 -49
  181. package/dist/runtime/components/model/Autocomplete.vue.d.ts +82 -0
  182. package/dist/runtime/components/model/Combobox.d.vue.ts +82 -0
  183. package/dist/runtime/components/model/Combobox.vue +51 -49
  184. package/dist/runtime/components/model/Combobox.vue.d.ts +82 -0
  185. package/dist/runtime/components/model/Pad.d.vue.ts +72 -0
  186. package/dist/runtime/components/model/Pad.vue +50 -65
  187. package/dist/runtime/components/model/Pad.vue.d.ts +72 -0
  188. package/dist/runtime/components/model/Select.d.vue.ts +72 -0
  189. package/dist/runtime/components/model/Select.vue +42 -44
  190. package/dist/runtime/components/model/Select.vue.d.ts +72 -0
  191. package/dist/runtime/components/model/Table.d.vue.ts +272 -0
  192. package/dist/runtime/components/model/Table.vue +121 -145
  193. package/dist/runtime/components/model/Table.vue.d.ts +272 -0
  194. package/dist/runtime/components/model/iterator.d.vue.ts +321 -0
  195. package/dist/runtime/components/model/iterator.vue +148 -183
  196. package/dist/runtime/components/model/iterator.vue.d.ts +321 -0
  197. package/dist/runtime/components/model/label.d.vue.ts +26 -0
  198. package/dist/runtime/components/model/label.vue +25 -43
  199. package/dist/runtime/components/model/label.vue.d.ts +26 -0
  200. package/dist/runtime/components/pdf/Print.d.vue.ts +17 -0
  201. package/dist/runtime/components/pdf/Print.vue +27 -50
  202. package/dist/runtime/components/pdf/Print.vue.d.ts +17 -0
  203. package/dist/runtime/components/pdf/View.d.vue.ts +52 -0
  204. package/dist/runtime/components/pdf/View.vue +58 -95
  205. package/dist/runtime/components/pdf/View.vue.d.ts +52 -0
  206. package/dist/runtime/composables/api.js +4 -2
  207. package/dist/runtime/composables/assetFile.js +4 -2
  208. package/dist/runtime/composables/dialog.d.ts +1 -1
  209. package/dist/runtime/composables/document/template.js +3 -3
  210. package/dist/runtime/composables/document/templateFormTable.js +1 -0
  211. package/dist/runtime/composables/graphql.d.ts +2 -2
  212. package/dist/runtime/composables/graphql.js +5 -5
  213. package/dist/runtime/composables/graphqlModel.d.ts +6 -6
  214. package/dist/runtime/composables/graphqlModelItem.d.ts +4 -4
  215. package/dist/runtime/composables/graphqlModelOperation.d.ts +6 -6
  216. package/dist/runtime/composables/graphqlModelOperation.js +2 -1
  217. package/dist/runtime/composables/graphqlOperation.js +5 -1
  218. package/dist/runtime/composables/hostAgentWs.d.ts +1 -1
  219. package/dist/runtime/composables/lookupListMaster.js +3 -3
  220. package/dist/runtime/composables/menu.js +2 -2
  221. package/dist/runtime/composables/userPermission.d.ts +1 -1
  222. package/dist/runtime/composables/utils/fuzzy.d.ts +2 -1
  223. package/dist/runtime/labs/Calendar.d.vue.ts +35 -0
  224. package/dist/runtime/labs/Calendar.vue +47 -75
  225. package/dist/runtime/labs/Calendar.vue.d.ts +35 -0
  226. package/dist/runtime/labs/form/EditMobile.d.vue.ts +12 -0
  227. package/dist/runtime/labs/form/EditMobile.vue +19 -36
  228. package/dist/runtime/labs/form/EditMobile.vue.d.ts +12 -0
  229. package/dist/runtime/labs/form/TextFieldMask.d.vue.ts +21 -0
  230. package/dist/runtime/labs/form/TextFieldMask.vue +19 -25
  231. package/dist/runtime/labs/form/TextFieldMask.vue.d.ts +21 -0
  232. package/dist/runtime/plugins/dialogManager.js +2 -2
  233. package/dist/runtime/plugins/permission.js +3 -3
  234. package/dist/runtime/types/bridge.d.ts +14 -0
  235. package/dist/runtime/utils/datetime.js +1 -1
  236. package/dist/types.d.mts +2 -6
  237. package/package.json +71 -59
  238. package/scripts/ci-release.mjs +125 -0
  239. package/scripts/release-version.mjs +68 -0
  240. package/scripts/release.mjs +49 -0
  241. package/dist/module.cjs +0 -5
  242. package/dist/module.d.ts +0 -8
  243. package/dist/types.d.ts +0 -7
@@ -0,0 +1,55 @@
1
+ import { VBtn } from 'vuetify/components/VBtn';
2
+ interface ExportButtonProps extends /* @vue-ignore */ InstanceType<typeof VBtn['$props']> {
3
+ fileName?: string;
4
+ sheetName?: string;
5
+ modelValue?: object[];
6
+ stringFields?: Array<string>;
7
+ tooltip?: string | Record<string, any> | undefined;
8
+ }
9
+ declare var __VLS_12: never, __VLS_13: {};
10
+ type __VLS_Slots = {} & {
11
+ [K in NonNullable<typeof __VLS_12>]?: (props: typeof __VLS_13) => any;
12
+ };
13
+ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<ExportButtonProps>, {
14
+ fileName: string;
15
+ sheetName: string;
16
+ stringFields: () => never[];
17
+ tooltip: () => {
18
+ text: string;
19
+ location: string;
20
+ };
21
+ }>>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<ExportButtonProps>, {
22
+ fileName: string;
23
+ sheetName: string;
24
+ stringFields: () => never[];
25
+ tooltip: () => {
26
+ text: string;
27
+ location: string;
28
+ };
29
+ }>>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
30
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
31
+ declare const _default: typeof __VLS_export;
32
+ export default _default;
33
+ type __VLS_TypePropsToOption<T> = {
34
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
35
+ type: import('vue').PropType<Required<T>[K]>;
36
+ } : {
37
+ type: import('vue').PropType<T[K]>;
38
+ required: true;
39
+ };
40
+ };
41
+ type __VLS_WithDefaults<P, D> = {
42
+ [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_PrettifyLocal<P[K] & {
43
+ default: D[K];
44
+ }> : P[K];
45
+ };
46
+ type __VLS_WithSlots<T, S> = T & {
47
+ new (): {
48
+ $slots: S;
49
+ };
50
+ };
51
+ type __VLS_PrettifyLocal<T> = (T extends any ? {
52
+ [K in keyof T]: T[K];
53
+ } : {
54
+ [K in keyof T as K]: T[K];
55
+ }) & {};
@@ -0,0 +1,53 @@
1
+ import { VBtn } from 'vuetify/components/VBtn';
2
+ interface Props extends /* @vue-ignore */ InstanceType<typeof VBtn['$props']> {
3
+ accept?: string;
4
+ multiple?: boolean;
5
+ iconOnly?: boolean;
6
+ modelValue?: File | File[] | undefined;
7
+ tooltip?: string | Record<string, any> | undefined;
8
+ }
9
+ declare var __VLS_11: never, __VLS_12: {};
10
+ type __VLS_Slots = {} & {
11
+ [K in NonNullable<typeof __VLS_11>]?: (props: typeof __VLS_12) => any;
12
+ };
13
+ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<Props>, {
14
+ multiple: boolean;
15
+ accept: string;
16
+ tooltip: string;
17
+ }>>, {
18
+ reset: () => void;
19
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
20
+ "update:modelValue": (value: File | File[] | undefined) => any;
21
+ }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<Props>, {
22
+ multiple: boolean;
23
+ accept: string;
24
+ tooltip: string;
25
+ }>>> & Readonly<{
26
+ "onUpdate:modelValue"?: ((value: File | File[] | undefined) => any) | undefined;
27
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
28
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
29
+ declare const _default: typeof __VLS_export;
30
+ export default _default;
31
+ type __VLS_TypePropsToOption<T> = {
32
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
33
+ type: import('vue').PropType<Required<T>[K]>;
34
+ } : {
35
+ type: import('vue').PropType<T[K]>;
36
+ required: true;
37
+ };
38
+ };
39
+ type __VLS_WithDefaults<P, D> = {
40
+ [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_PrettifyLocal<P[K] & {
41
+ default: D[K];
42
+ }> : P[K];
43
+ };
44
+ type __VLS_WithSlots<T, S> = T & {
45
+ new (): {
46
+ $slots: S;
47
+ };
48
+ };
49
+ type __VLS_PrettifyLocal<T> = (T extends any ? {
50
+ [K in keyof T]: T[K];
51
+ } : {
52
+ [K in keyof T as K]: T[K];
53
+ }) & {};
@@ -1,54 +1,27 @@
1
- <script lang="ts" setup>
2
- /**
3
- * FileBtn wraps file selection behavior into a reusable button interface that works with form and upload flows.
4
- * This doc block is consumed by vue-docgen for generated API documentation.
5
- */
6
- import {ref} from 'vue'
7
- import {VBtn} from 'vuetify/components/VBtn'
8
-
9
- interface Props extends /* @vue-ignore */ InstanceType<typeof VBtn['$props']> {
10
- accept?: string // Accepted file MIME types or extensions for file selection.
11
- multiple?: boolean // Allows selecting or uploading more than one file.
12
- iconOnly?: boolean // icon name/class used in UI rendering
13
- modelValue?: File | File[] | undefined // Bound value for v-model synchronization with the parent component.
14
- tooltip?: string | Record<string,any> | undefined // Tooltip text or config object shown for the action control.
15
- }
16
-
17
- /**
18
- * Public props accepted by FileBtn.
19
- * Document each prop field with intent, defaults, and side effects for clear generated docs.
20
- */
21
- const props = withDefaults(defineProps<Props>(), {
22
- multiple: false,
23
- accept: '*',
24
- tooltip: 'Upload File',
25
- })
26
-
27
- /**
28
- * Custom events emitted by FileBtn.
29
- * Parents can listen to these events to react to user actions and internal state changes.
30
- */
31
- const emit = defineEmits<{
32
- (event: 'update:modelValue', value: File | File[] | undefined): void
33
- }>()
34
-
35
- const fileInput = ref<HTMLInputElement>()
36
- const files = ref<File | File[]>()
37
-
1
+ <script setup>
2
+ import { ref } from "vue";
3
+ import { VBtn } from "vuetify/components/VBtn";
4
+ const props = defineProps({
5
+ accept: { type: String, required: false, default: "*" },
6
+ multiple: { type: Boolean, required: false, default: false },
7
+ iconOnly: { type: Boolean, required: false },
8
+ modelValue: { type: null, required: false },
9
+ tooltip: { type: null, required: false, default: "Upload File" }
10
+ });
11
+ const emit = defineEmits(["update:modelValue"]);
12
+ const fileInput = ref();
13
+ const files = ref();
38
14
  const openFileInput = () => {
39
- fileInput.value?.click()
40
- }
41
-
15
+ fileInput.value?.click();
16
+ };
42
17
  const reset = () => {
43
- files.value = undefined
44
- }
45
-
18
+ files.value = void 0;
19
+ };
46
20
  const emitFiles = () => {
47
- emit('update:modelValue', files.value)
48
- files.value = []
49
- }
50
-
51
- defineExpose({ reset })
21
+ emit("update:modelValue", files.value);
22
+ files.value = [];
23
+ };
24
+ defineExpose({ reset });
52
25
  </script>
53
26
 
54
27
  <template>
@@ -58,13 +31,13 @@ defineExpose({ reset })
58
31
  v-tooltip="tooltip"
59
32
  >
60
33
  <template
61
- v-for="(_, name, index) in ($slots as {})"
34
+ v-for="(_, name, index) in $slots"
62
35
  :key="index"
63
36
  #[name]="slotData"
64
37
  >
65
38
  <slot
66
39
  :name="name"
67
- v-bind="((slotData || {}) as object)"
40
+ v-bind="slotData || {}"
68
41
  />
69
42
  </template>
70
43
  </v-btn>
@@ -0,0 +1,53 @@
1
+ import { VBtn } from 'vuetify/components/VBtn';
2
+ interface Props extends /* @vue-ignore */ InstanceType<typeof VBtn['$props']> {
3
+ accept?: string;
4
+ multiple?: boolean;
5
+ iconOnly?: boolean;
6
+ modelValue?: File | File[] | undefined;
7
+ tooltip?: string | Record<string, any> | undefined;
8
+ }
9
+ declare var __VLS_11: never, __VLS_12: {};
10
+ type __VLS_Slots = {} & {
11
+ [K in NonNullable<typeof __VLS_11>]?: (props: typeof __VLS_12) => any;
12
+ };
13
+ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<Props>, {
14
+ multiple: boolean;
15
+ accept: string;
16
+ tooltip: string;
17
+ }>>, {
18
+ reset: () => void;
19
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
20
+ "update:modelValue": (value: File | File[] | undefined) => any;
21
+ }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<Props>, {
22
+ multiple: boolean;
23
+ accept: string;
24
+ tooltip: string;
25
+ }>>> & Readonly<{
26
+ "onUpdate:modelValue"?: ((value: File | File[] | undefined) => any) | undefined;
27
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
28
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
29
+ declare const _default: typeof __VLS_export;
30
+ export default _default;
31
+ type __VLS_TypePropsToOption<T> = {
32
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
33
+ type: import('vue').PropType<Required<T>[K]>;
34
+ } : {
35
+ type: import('vue').PropType<T[K]>;
36
+ required: true;
37
+ };
38
+ };
39
+ type __VLS_WithDefaults<P, D> = {
40
+ [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_PrettifyLocal<P[K] & {
41
+ default: D[K];
42
+ }> : P[K];
43
+ };
44
+ type __VLS_WithSlots<T, S> = T & {
45
+ new (): {
46
+ $slots: S;
47
+ };
48
+ };
49
+ type __VLS_PrettifyLocal<T> = (T extends any ? {
50
+ [K in keyof T]: T[K];
51
+ } : {
52
+ [K in keyof T as K]: T[K];
53
+ }) & {};
@@ -0,0 +1,52 @@
1
+ import { VBtn } from 'vuetify/components/VBtn';
2
+ interface ImportButtonProps extends /* @vue-ignore */ InstanceType<typeof VBtn['$props']> {
3
+ stringFields?: Array<string>;
4
+ tooltip?: string | Record<string, any> | undefined;
5
+ }
6
+ declare var __VLS_13: never, __VLS_14: {};
7
+ type __VLS_Slots = {} & {
8
+ [K in NonNullable<typeof __VLS_13>]?: (props: typeof __VLS_14) => any;
9
+ };
10
+ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<ImportButtonProps>, {
11
+ stringFields: () => never[];
12
+ tooltip: () => {
13
+ text: string;
14
+ location: string;
15
+ };
16
+ }>>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
17
+ import: (value: object[]) => any;
18
+ }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<ImportButtonProps>, {
19
+ stringFields: () => never[];
20
+ tooltip: () => {
21
+ text: string;
22
+ location: string;
23
+ };
24
+ }>>> & Readonly<{
25
+ onImport?: ((value: object[]) => any) | undefined;
26
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
27
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
28
+ declare const _default: typeof __VLS_export;
29
+ export default _default;
30
+ type __VLS_TypePropsToOption<T> = {
31
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
32
+ type: import('vue').PropType<Required<T>[K]>;
33
+ } : {
34
+ type: import('vue').PropType<T[K]>;
35
+ required: true;
36
+ };
37
+ };
38
+ type __VLS_WithDefaults<P, D> = {
39
+ [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_PrettifyLocal<P[K] & {
40
+ default: D[K];
41
+ }> : P[K];
42
+ };
43
+ type __VLS_WithSlots<T, S> = T & {
44
+ new (): {
45
+ $slots: S;
46
+ };
47
+ };
48
+ type __VLS_PrettifyLocal<T> = (T extends any ? {
49
+ [K in keyof T]: T[K];
50
+ } : {
51
+ [K in keyof T as K]: T[K];
52
+ }) & {};
@@ -1,128 +1,77 @@
1
- <script lang="ts" setup>
2
- /**
3
- * ImportCSV imports spreadsheet rows, maps nested object keys, and emits normalized records for downstream processing.
4
- * This doc block is consumed by vue-docgen for generated API documentation.
5
- */
6
- import * as XLSX from 'xlsx'
7
- import { ref } from 'vue'
8
- import { useAlert } from '../composables/alert'
9
- import { VBtn } from 'vuetify/components/VBtn'
10
-
11
- interface ImportButtonProps extends /* @vue-ignore */ InstanceType<typeof VBtn['$props']> {
12
- stringFields?: Array<string> // Field paths that must stay as string values (no nested object conversion).
13
- tooltip?: string | Record<string,any> | undefined // Tooltip text or config object shown for the action control.
14
- }
15
-
16
- /**
17
- * Public props accepted by ImportCSV.
18
- * Document each prop field with intent, defaults, and side effects for clear generated docs.
19
- */
20
- const props = withDefaults(defineProps<ImportButtonProps>(), {
21
- stringFields: ()=>[],
22
- tooltip: ()=>({text: 'Import', location: 'bottom'}),
23
- })
24
-
25
- const alert = useAlert()
26
- /**
27
- * Custom events emitted by ImportCSV.
28
- * Parents can listen to these events to react to user actions and internal state changes.
29
- */
30
- const emit = defineEmits<{
31
- (e: 'import', value: object[]): void
32
- }>()
33
-
34
- const loading = ref(false)
35
- const fileBtnRef = ref()
36
-
37
- function uploadedFile(files: File[] | File | undefined) {
38
- if (!files) return
39
-
1
+ <script setup>
2
+ import * as XLSX from "xlsx";
3
+ import { ref } from "vue";
4
+ import { useAlert } from "../composables/alert";
5
+ import { VBtn } from "vuetify/components/VBtn";
6
+ const props = defineProps({
7
+ stringFields: { type: Array, required: false, default: () => [] },
8
+ tooltip: { type: null, required: false, default: () => ({ text: "Import", location: "bottom" }) }
9
+ });
10
+ const alert = useAlert();
11
+ const emit = defineEmits(["import"]);
12
+ const loading = ref(false);
13
+ const fileBtnRef = ref();
14
+ function uploadedFile(files) {
15
+ if (!files) return;
40
16
  if (Array.isArray(files) && files.length != 1) {
41
- alert?.addAlert({ message: 'Please select a single file for import', alertType: 'error' })
42
- return
17
+ alert?.addAlert({ message: "Please select a single file for import", alertType: "error" });
18
+ return;
43
19
  }
44
-
45
- if (Array.isArray(files)) files = files[0]
46
-
47
- const fileExtension = files.name.slice(files.name.lastIndexOf('.')).toLowerCase()
48
- if (!['.xlsx', '.csv'].includes(fileExtension)) {
49
- alert?.addAlert({ message: `Please upload a file with .csv or .xlsx extension only (${files.name})`, alertType: 'error' })
50
- return
20
+ if (Array.isArray(files)) files = files[0];
21
+ const fileExtension = files.name.slice(files.name.lastIndexOf(".")).toLowerCase();
22
+ if (![".xlsx", ".csv"].includes(fileExtension)) {
23
+ alert?.addAlert({ message: `Please upload a file with .csv or .xlsx extension only (${files.name})`, alertType: "error" });
24
+ return;
51
25
  }
52
-
53
- const reader = new FileReader()
54
- reader.onload = (e: ProgressEvent<FileReader>) => {
55
- const workbook = XLSX.read(e.target?.result)
26
+ const reader = new FileReader();
27
+ reader.onload = (e) => {
28
+ const workbook = XLSX.read(e.target?.result);
56
29
  const parsedData = parseAndAggregateColumns(
57
- XLSX.utils.sheet_to_json(workbook.Sheets[workbook.SheetNames[0]])
58
- )
59
- emit('import', parsedData)
60
- loading.value = false
61
- fileBtnRef.value.reset()
62
- }
63
- loading.value = true
64
- reader.readAsArrayBuffer(files)
30
+ XLSX.utils.sheet_to_json(workbook.Sheets[workbook.SheetNames[0]])
31
+ );
32
+ emit("import", parsedData);
33
+ loading.value = false;
34
+ fileBtnRef.value.reset();
35
+ };
36
+ loading.value = true;
37
+ reader.readAsArrayBuffer(files);
65
38
  }
66
-
67
- /**
68
- * Recursively aggregates nested columns and properties.
69
- * @param items - Array of data from the Excel sheet
70
- */
71
- const parseAndAggregateColumns = (items: any[]) => {
72
- return items.map((item: any) => {
73
- const aggregatedItem: any = {}
74
-
39
+ const parseAndAggregateColumns = (items) => {
40
+ return items.map((item) => {
41
+ const aggregatedItem = {};
75
42
  for (const key in item) {
76
- if (key.includes('.')) {
77
- // Extract root key and subKey
78
- const [rootKey, ...subKeys] = key.split('.')
79
-
80
- // Recursively aggregate subKeys
81
- aggregatedItem[rootKey] = aggregatedItem[rootKey] || {}
82
- assignNestedValue(aggregatedItem[rootKey], subKeys, parseIfJson(item[key]))
43
+ if (key.includes(".")) {
44
+ const [rootKey, ...subKeys] = key.split(".");
45
+ aggregatedItem[rootKey] = aggregatedItem[rootKey] || {};
46
+ assignNestedValue(aggregatedItem[rootKey], subKeys, parseIfJson(item[key]));
83
47
  } else {
84
- // Directly assign root-level properties
85
- if (props.stringFields.includes(key)) aggregatedItem[key] = item[key]
86
- else aggregatedItem[key] = parseIfJson(item[key])
48
+ if (props.stringFields.includes(key)) aggregatedItem[key] = item[key];
49
+ else aggregatedItem[key] = parseIfJson(item[key]);
87
50
  }
88
51
  }
89
-
90
- return aggregatedItem
91
- })
92
- }
93
-
94
- /**
95
- * Recursively assigns a value to a nested key structure.
96
- * @param obj - The object to assign to
97
- * @param keys - Array of keys leading to the final property
98
- * @param value - The value to assign
99
- */
100
- const assignNestedValue = (obj: any, keys: string[], value: any) => {
101
- const [currentKey, ...remainingKeys] = keys
52
+ return aggregatedItem;
53
+ });
54
+ };
55
+ const assignNestedValue = (obj, keys, value) => {
56
+ const [currentKey, ...remainingKeys] = keys;
102
57
  if (remainingKeys.length === 0) {
103
- obj[currentKey] = value
58
+ obj[currentKey] = value;
104
59
  } else {
105
- obj[currentKey] = obj[currentKey] || {}
106
- assignNestedValue(obj[currentKey], remainingKeys, value)
60
+ obj[currentKey] = obj[currentKey] || {};
61
+ assignNestedValue(obj[currentKey], remainingKeys, value);
107
62
  }
108
- }
109
-
110
- /**
111
- * Attempt to parse a value as JSON or array.
112
- * @param value - The value to parse
113
- */
114
- const parseIfJson = (value: any) => {
115
- if (typeof value === 'string') {
63
+ };
64
+ const parseIfJson = (value) => {
65
+ if (typeof value === "string") {
116
66
  try {
117
- let parsedValue = JSON.parse(value)
118
- return (parsedValue==value) ? value : parsedValue
67
+ let parsedValue = JSON.parse(value);
68
+ return parsedValue == value ? value : parsedValue;
119
69
  } catch {
120
- // If parsing fails, return the original value
121
- return value
70
+ return value;
122
71
  }
123
72
  }
124
- return value
125
- }
73
+ return value;
74
+ };
126
75
  </script>
127
76
 
128
77
  <template>
@@ -138,13 +87,13 @@ const parseIfJson = (value: any) => {
138
87
  :tooltip="props.tooltip"
139
88
  >
140
89
  <template
141
- v-for="(_, name, index) in ($slots as {})"
90
+ v-for="(_, name, index) in $slots"
142
91
  :key="index"
143
92
  #[name]="slotData"
144
93
  >
145
94
  <slot
146
95
  :name="name"
147
- v-bind="((slotData || {}) as object)"
96
+ v-bind="slotData || {}"
148
97
  />
149
98
  </template>
150
99
  </FileBtn>
@@ -0,0 +1,52 @@
1
+ import { VBtn } from 'vuetify/components/VBtn';
2
+ interface ImportButtonProps extends /* @vue-ignore */ InstanceType<typeof VBtn['$props']> {
3
+ stringFields?: Array<string>;
4
+ tooltip?: string | Record<string, any> | undefined;
5
+ }
6
+ declare var __VLS_13: never, __VLS_14: {};
7
+ type __VLS_Slots = {} & {
8
+ [K in NonNullable<typeof __VLS_13>]?: (props: typeof __VLS_14) => any;
9
+ };
10
+ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<ImportButtonProps>, {
11
+ stringFields: () => never[];
12
+ tooltip: () => {
13
+ text: string;
14
+ location: string;
15
+ };
16
+ }>>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
17
+ import: (value: object[]) => any;
18
+ }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<ImportButtonProps>, {
19
+ stringFields: () => never[];
20
+ tooltip: () => {
21
+ text: string;
22
+ location: string;
23
+ };
24
+ }>>> & Readonly<{
25
+ onImport?: ((value: object[]) => any) | undefined;
26
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
27
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
28
+ declare const _default: typeof __VLS_export;
29
+ export default _default;
30
+ type __VLS_TypePropsToOption<T> = {
31
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
32
+ type: import('vue').PropType<Required<T>[K]>;
33
+ } : {
34
+ type: import('vue').PropType<T[K]>;
35
+ required: true;
36
+ };
37
+ };
38
+ type __VLS_WithDefaults<P, D> = {
39
+ [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_PrettifyLocal<P[K] & {
40
+ default: D[K];
41
+ }> : P[K];
42
+ };
43
+ type __VLS_WithSlots<T, S> = T & {
44
+ new (): {
45
+ $slots: S;
46
+ };
47
+ };
48
+ type __VLS_PrettifyLocal<T> = (T extends any ? {
49
+ [K in keyof T]: T[K];
50
+ } : {
51
+ [K in keyof T as K]: T[K];
52
+ }) & {};
@@ -0,0 +1,19 @@
1
+ import { type MrzResult } from '../composables/useMrzReader.js';
2
+ interface Props {
3
+ intervalMs?: number;
4
+ scaleFactor?: number;
5
+ useOpenCv?: boolean;
6
+ }
7
+ declare const __VLS_export: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
8
+ error: (error: unknown) => any;
9
+ decode: (value: MrzResult) => any;
10
+ }, string, import("vue").PublicProps, Readonly<Props> & Readonly<{
11
+ onError?: ((error: unknown) => any) | undefined;
12
+ onDecode?: ((value: MrzResult) => any) | undefined;
13
+ }>, {
14
+ intervalMs: number;
15
+ scaleFactor: number;
16
+ useOpenCv: boolean;
17
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
18
+ declare const _default: typeof __VLS_export;
19
+ export default _default;