@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,113 @@
1
+ import FormPadComponent from './Pad.vue.js';
2
+ interface Props extends /* @vue-ignore */ InstanceType<typeof FormPadComponent['$props']> {
3
+ title?: string;
4
+ initialData?: object;
5
+ formData?: object;
6
+ saveCaption?: string;
7
+ cancelCaption?: string;
8
+ readonly?: boolean;
9
+ showTitle?: boolean;
10
+ skipValidation?: boolean;
11
+ }
12
+ declare function save(): void;
13
+ declare function cancel(): void;
14
+ declare var __VLS_14: {
15
+ operation: {
16
+ isDataChange: boolean;
17
+ isCreating: boolean;
18
+ isSaving: boolean;
19
+ save: typeof save;
20
+ cancel: typeof cancel;
21
+ };
22
+ }, __VLS_22: {
23
+ operation: {
24
+ isDataChange: boolean;
25
+ isCreating: boolean;
26
+ isSaving: boolean;
27
+ save: typeof save;
28
+ cancel: typeof cancel;
29
+ };
30
+ }, __VLS_39: any, __VLS_47: {
31
+ operation: {
32
+ isDataChange: boolean;
33
+ isCreating: boolean;
34
+ isSaving: boolean;
35
+ save: typeof save;
36
+ cancel: typeof cancel;
37
+ };
38
+ };
39
+ type __VLS_Slots = {} & {
40
+ titleToolbar?: (props: typeof __VLS_14) => any;
41
+ } & {
42
+ title?: (props: typeof __VLS_22) => any;
43
+ } & {
44
+ default?: (props: typeof __VLS_39) => any;
45
+ } & {
46
+ action?: (props: typeof __VLS_47) => any;
47
+ };
48
+ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<Props>, {
49
+ saveCaption: string;
50
+ cancelCaption: string;
51
+ readonly: boolean;
52
+ showTitle: boolean;
53
+ skipValidation: boolean;
54
+ }>>, {
55
+ operation: import("vue").Ref<{
56
+ isDataChange: boolean;
57
+ isCreating: boolean;
58
+ isSaving: boolean;
59
+ save: typeof save;
60
+ cancel: typeof cancel;
61
+ }, {
62
+ isDataChange: import("vue").ComputedRef<boolean>;
63
+ isCreating: import("vue").ComputedRef<boolean>;
64
+ isSaving: import("vue").Ref<boolean, boolean>;
65
+ save: typeof save;
66
+ cancel: typeof cancel;
67
+ } | {
68
+ isDataChange: boolean;
69
+ isCreating: boolean;
70
+ isSaving: boolean;
71
+ save: typeof save;
72
+ cancel: typeof cancel;
73
+ }>;
74
+ formPad: import("vue").Ref<any, any>;
75
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
76
+ update: (...args: any[]) => void;
77
+ create: (...args: any[]) => void;
78
+ }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<Props>, {
79
+ saveCaption: string;
80
+ cancelCaption: string;
81
+ readonly: boolean;
82
+ showTitle: boolean;
83
+ skipValidation: boolean;
84
+ }>>> & Readonly<{
85
+ onUpdate?: ((...args: any[]) => any) | undefined;
86
+ onCreate?: ((...args: any[]) => any) | undefined;
87
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
88
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
89
+ declare const _default: typeof __VLS_export;
90
+ export default _default;
91
+ type __VLS_TypePropsToOption<T> = {
92
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
93
+ type: import('vue').PropType<Required<T>[K]>;
94
+ } : {
95
+ type: import('vue').PropType<T[K]>;
96
+ required: true;
97
+ };
98
+ };
99
+ type __VLS_WithDefaults<P, D> = {
100
+ [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_PrettifyLocal<P[K] & {
101
+ default: D[K];
102
+ }> : P[K];
103
+ };
104
+ type __VLS_WithSlots<T, S> = T & {
105
+ new (): {
106
+ $slots: S;
107
+ };
108
+ };
109
+ type __VLS_PrettifyLocal<T> = (T extends any ? {
110
+ [K in keyof T]: T[K];
111
+ } : {
112
+ [K in keyof T as K]: T[K];
113
+ }) & {};
@@ -1,104 +1,68 @@
1
- <script lang="ts" setup>
2
- /**
3
- * FormEditPad is a schema-driven form field component that binds model data, renders field UI, and emits normalized updates.
4
- * This doc block is consumed by vue-docgen for generated API documentation.
5
- */
6
- import {computed, defineExpose, ref, watchEffect} from 'vue'
7
- import {cloneDeep, isEqual} from 'lodash-es'
8
- import type {FormDialogCallback} from '../../types/formDialog'
9
- import FormPadComponent from './Pad.vue'
10
-
11
- interface Props extends /* @vue-ignore */ InstanceType<typeof FormPadComponent['$props']> {
12
- title?: string // Title text displayed in the component header or dialog.
13
- initialData?: object // Initial form/object values used when creating a new record.
14
- formData?: object // Configuration option used by EditPad.
15
- saveCaption?: string // Label text for the save/confirm action button.
16
- cancelCaption?: string // Label text for the cancel action button.
17
- readonly?: boolean // renders as read-only while keeping value visible
18
- showTitle?: boolean // Shows or hides the component title/header area.
19
- skipValidation?: boolean // Skips form validation before emitting save actions.
20
- }
21
-
22
- /**
23
- * Public props accepted by FormEditPad.
24
- * Document each prop field with intent, defaults, and side effects for clear generated docs.
25
- */
26
- const props = withDefaults(defineProps<Props>(), {
27
- saveCaption: 'บันทึก',
28
- cancelCaption: 'ยกเลิก',
29
- readonly: false,
30
- showTitle: false,
31
- skipValidation:false
32
- })
33
-
34
- const isSaving = ref<boolean>(false)
35
- const formPadRef = ref()
36
- const formData = ref<object>({})
37
- const formDataOriginalValue = ref<object>()
38
-
39
- /**
40
- * Custom events emitted by FormEditPad.
41
- * Parents can listen to these events to react to user actions and internal state changes.
42
- */
43
- const emit = defineEmits(['create', 'update'])
44
-
1
+ <script setup>
2
+ import { computed, ref, watchEffect } from "vue";
3
+ import { cloneDeep, isEqual } from "lodash-es";
4
+ import FormPadComponent from "./Pad.vue";
5
+ const props = defineProps({
6
+ title: { type: String, required: false },
7
+ initialData: { type: Object, required: false },
8
+ formData: { type: Object, required: false },
9
+ saveCaption: { type: String, required: false, default: "\u0E1A\u0E31\u0E19\u0E17\u0E36\u0E01" },
10
+ cancelCaption: { type: String, required: false, default: "\u0E22\u0E01\u0E40\u0E25\u0E34\u0E01" },
11
+ readonly: { type: Boolean, required: false, default: false },
12
+ showTitle: { type: Boolean, required: false, default: false },
13
+ skipValidation: { type: Boolean, required: false, default: false }
14
+ });
15
+ const isSaving = ref(false);
16
+ const formPadRef = ref();
17
+ const formData = ref({});
18
+ const formDataOriginalValue = ref();
19
+ const emit = defineEmits(["create", "update"]);
45
20
  function save() {
46
21
  if (props.skipValidation || formPadRef.value?.isValid) {
47
- isSaving.value = true
48
- emit((isCreating.value) ? 'create' : 'update', cloneDeep(formData.value), callback)
22
+ isSaving.value = true;
23
+ emit(isCreating.value ? "create" : "update", cloneDeep(formData.value), callback);
49
24
  }
50
25
  }
51
-
52
26
  function cancel() {
53
- reset()
27
+ reset();
54
28
  }
55
-
56
29
  function reset() {
57
- formDataOriginalValue.value = undefined
58
- formPadRef.value?.reset()
59
- loadFormData()
30
+ formDataOriginalValue.value = void 0;
31
+ formPadRef.value?.reset();
32
+ loadFormData();
60
33
  }
61
-
62
- const callback: FormDialogCallback = {
63
- done: function () {
64
- isSaving.value = false
34
+ const callback = {
35
+ done: function() {
36
+ isSaving.value = false;
65
37
  },
66
- error: function () {
67
- isSaving.value = false
38
+ error: function() {
39
+ isSaving.value = false;
68
40
  },
69
- setData: function (item: object) {
70
- formData.value = cloneDeep(item)
71
- formDataOriginalValue.value = cloneDeep(item)
41
+ setData: function(item) {
42
+ formData.value = cloneDeep(item);
43
+ formDataOriginalValue.value = cloneDeep(item);
72
44
  }
73
- }
74
-
45
+ };
75
46
  const isDataChange = computed(() => {
76
- return !((isCreating.value) ? isEqual(formData.value, createOriginalValue.value) : isEqual(formData.value, formDataOriginalValue.value))
77
- })
78
-
47
+ return !(isCreating.value ? isEqual(formData.value, createOriginalValue.value) : isEqual(formData.value, formDataOriginalValue.value));
48
+ });
79
49
  const isCreating = computed(() => {
80
- return !props.formData
81
- })
82
-
50
+ return !props.formData;
51
+ });
83
52
  const createOriginalValue = computed(() => {
84
- return Object.assign({}, props.initialData)
85
- })
86
-
53
+ return Object.assign({}, props.initialData);
54
+ });
87
55
  const loadFormData = () => {
88
56
  if (props.formData) {
89
- formData.value = cloneDeep(props.formData)
90
- formDataOriginalValue.value = cloneDeep(props.formData)
91
- }
92
- else {
93
- formData.value = Object.assign({}, cloneDeep(props.initialData))
57
+ formData.value = cloneDeep(props.formData);
58
+ formDataOriginalValue.value = cloneDeep(props.formData);
59
+ } else {
60
+ formData.value = Object.assign({}, cloneDeep(props.initialData));
94
61
  }
95
- }
96
-
97
- const operation = ref({ isDataChange, isCreating, isSaving, save, cancel })
98
-
99
- watchEffect(loadFormData)
100
-
101
- defineExpose({operation,formPad:formPadRef})
62
+ };
63
+ const operation = ref({ isDataChange, isCreating, isSaving, save, cancel });
64
+ watchEffect(loadFormData);
65
+ defineExpose({ operation, formPad: formPadRef });
102
66
  </script>
103
67
 
104
68
  <template>
@@ -107,7 +71,7 @@ defineExpose({operation,formPad:formPadRef})
107
71
  <slot name="titleToolbar" :operation="operation">
108
72
  <VToolbarTitle>
109
73
  <slot name="title" :operation="operation">
110
- {{ (isCreating) ? "New" : "Edit" }} {{ title }}
74
+ {{ isCreating ? "New" : "Edit" }} {{ title }}
111
75
  </slot>
112
76
  </VToolbarTitle>
113
77
  </slot>
@@ -0,0 +1,113 @@
1
+ import FormPadComponent from './Pad.vue.js';
2
+ interface Props extends /* @vue-ignore */ InstanceType<typeof FormPadComponent['$props']> {
3
+ title?: string;
4
+ initialData?: object;
5
+ formData?: object;
6
+ saveCaption?: string;
7
+ cancelCaption?: string;
8
+ readonly?: boolean;
9
+ showTitle?: boolean;
10
+ skipValidation?: boolean;
11
+ }
12
+ declare function save(): void;
13
+ declare function cancel(): void;
14
+ declare var __VLS_14: {
15
+ operation: {
16
+ isDataChange: boolean;
17
+ isCreating: boolean;
18
+ isSaving: boolean;
19
+ save: typeof save;
20
+ cancel: typeof cancel;
21
+ };
22
+ }, __VLS_22: {
23
+ operation: {
24
+ isDataChange: boolean;
25
+ isCreating: boolean;
26
+ isSaving: boolean;
27
+ save: typeof save;
28
+ cancel: typeof cancel;
29
+ };
30
+ }, __VLS_39: any, __VLS_47: {
31
+ operation: {
32
+ isDataChange: boolean;
33
+ isCreating: boolean;
34
+ isSaving: boolean;
35
+ save: typeof save;
36
+ cancel: typeof cancel;
37
+ };
38
+ };
39
+ type __VLS_Slots = {} & {
40
+ titleToolbar?: (props: typeof __VLS_14) => any;
41
+ } & {
42
+ title?: (props: typeof __VLS_22) => any;
43
+ } & {
44
+ default?: (props: typeof __VLS_39) => any;
45
+ } & {
46
+ action?: (props: typeof __VLS_47) => any;
47
+ };
48
+ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<Props>, {
49
+ saveCaption: string;
50
+ cancelCaption: string;
51
+ readonly: boolean;
52
+ showTitle: boolean;
53
+ skipValidation: boolean;
54
+ }>>, {
55
+ operation: import("vue").Ref<{
56
+ isDataChange: boolean;
57
+ isCreating: boolean;
58
+ isSaving: boolean;
59
+ save: typeof save;
60
+ cancel: typeof cancel;
61
+ }, {
62
+ isDataChange: import("vue").ComputedRef<boolean>;
63
+ isCreating: import("vue").ComputedRef<boolean>;
64
+ isSaving: import("vue").Ref<boolean, boolean>;
65
+ save: typeof save;
66
+ cancel: typeof cancel;
67
+ } | {
68
+ isDataChange: boolean;
69
+ isCreating: boolean;
70
+ isSaving: boolean;
71
+ save: typeof save;
72
+ cancel: typeof cancel;
73
+ }>;
74
+ formPad: import("vue").Ref<any, any>;
75
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
76
+ update: (...args: any[]) => void;
77
+ create: (...args: any[]) => void;
78
+ }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<Props>, {
79
+ saveCaption: string;
80
+ cancelCaption: string;
81
+ readonly: boolean;
82
+ showTitle: boolean;
83
+ skipValidation: boolean;
84
+ }>>> & Readonly<{
85
+ onUpdate?: ((...args: any[]) => any) | undefined;
86
+ onCreate?: ((...args: any[]) => any) | undefined;
87
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
88
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
89
+ declare const _default: typeof __VLS_export;
90
+ export default _default;
91
+ type __VLS_TypePropsToOption<T> = {
92
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
93
+ type: import('vue').PropType<Required<T>[K]>;
94
+ } : {
95
+ type: import('vue').PropType<T[K]>;
96
+ required: true;
97
+ };
98
+ };
99
+ type __VLS_WithDefaults<P, D> = {
100
+ [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_PrettifyLocal<P[K] & {
101
+ default: D[K];
102
+ }> : P[K];
103
+ };
104
+ type __VLS_WithSlots<T, S> = T & {
105
+ new (): {
106
+ $slots: S;
107
+ };
108
+ };
109
+ type __VLS_PrettifyLocal<T> = (T extends any ? {
110
+ [K in keyof T]: T[K];
111
+ } : {
112
+ [K in keyof T as K]: T[K];
113
+ }) & {};
@@ -0,0 +1,65 @@
1
+ import { VTextField } from 'vuetify/components/VTextField';
2
+ import { type Base64File } from '../../composables/assetFile.js';
3
+ interface Props extends /* @vue-ignore */ InstanceType<typeof VTextField['$props']> {
4
+ accept?: string;
5
+ multiple?: boolean;
6
+ maxSize?: number;
7
+ modelValue?: Base64File | Base64File[] | null;
8
+ downloadable?: boolean;
9
+ autoHydrate?: boolean;
10
+ }
11
+ declare var __VLS_17: {
12
+ item: {
13
+ fileName: string;
14
+ originalFileName?: string | undefined;
15
+ fileType?: string | undefined;
16
+ id?: number | undefined;
17
+ base64String?: string | undefined;
18
+ };
19
+ };
20
+ type __VLS_Slots = {} & {
21
+ download?: (props: typeof __VLS_17) => any;
22
+ };
23
+ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<Props>, {
24
+ accept: string;
25
+ multiple: boolean;
26
+ maxSize: number;
27
+ downloadable: boolean;
28
+ autoHydrate: boolean;
29
+ }>>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
30
+ "update:modelValue": (value: Base64File | Base64File[] | null) => any;
31
+ }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<Props>, {
32
+ accept: string;
33
+ multiple: boolean;
34
+ maxSize: number;
35
+ downloadable: boolean;
36
+ autoHydrate: boolean;
37
+ }>>> & Readonly<{
38
+ "onUpdate:modelValue"?: ((value: Base64File | Base64File[] | null) => any) | undefined;
39
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
40
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
41
+ declare const _default: typeof __VLS_export;
42
+ export default _default;
43
+ type __VLS_TypePropsToOption<T> = {
44
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
45
+ type: import('vue').PropType<Required<T>[K]>;
46
+ } : {
47
+ type: import('vue').PropType<T[K]>;
48
+ required: true;
49
+ };
50
+ };
51
+ type __VLS_WithDefaults<P, D> = {
52
+ [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_PrettifyLocal<P[K] & {
53
+ default: D[K];
54
+ }> : P[K];
55
+ };
56
+ type __VLS_WithSlots<T, S> = T & {
57
+ new (): {
58
+ $slots: S;
59
+ };
60
+ };
61
+ type __VLS_PrettifyLocal<T> = (T extends any ? {
62
+ [K in keyof T]: T[K];
63
+ } : {
64
+ [K in keyof T as K]: T[K];
65
+ }) & {};