@ramathibodi/nuxt-commons 0.1.73 → 0.1.75

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 (111) hide show
  1. package/README.md +115 -96
  2. package/dist/module.json +1 -1
  3. package/dist/module.mjs +1 -0
  4. package/dist/runtime/components/Alert.vue +58 -54
  5. package/dist/runtime/components/BarcodeReader.vue +130 -122
  6. package/dist/runtime/components/ExportCSV.vue +110 -102
  7. package/dist/runtime/components/FileBtn.vue +79 -67
  8. package/dist/runtime/components/ImportCSV.vue +151 -139
  9. package/dist/runtime/components/MrzReader.vue +168 -0
  10. package/dist/runtime/components/SplitterPanel.vue +67 -59
  11. package/dist/runtime/components/TabsGroup.vue +39 -31
  12. package/dist/runtime/components/TextBarcode.vue +66 -54
  13. package/dist/runtime/components/device/IdCardButton.vue +95 -83
  14. package/dist/runtime/components/device/IdCardWebSocket.vue +207 -195
  15. package/dist/runtime/components/device/Scanner.vue +350 -338
  16. package/dist/runtime/components/dialog/Confirm.vue +112 -100
  17. package/dist/runtime/components/dialog/Host.vue +88 -84
  18. package/dist/runtime/components/dialog/Index.vue +84 -72
  19. package/dist/runtime/components/dialog/Loading.vue +51 -39
  20. package/dist/runtime/components/dialog/default/Confirm.vue +112 -100
  21. package/dist/runtime/components/dialog/default/Loading.vue +60 -48
  22. package/dist/runtime/components/dialog/default/Notify.vue +82 -70
  23. package/dist/runtime/components/dialog/default/Printing.vue +46 -34
  24. package/dist/runtime/components/dialog/default/VerifyUser.vue +144 -132
  25. package/dist/runtime/components/document/Form.vue +50 -42
  26. package/dist/runtime/components/document/TemplateBuilder.vue +536 -524
  27. package/dist/runtime/components/form/ActionPad.vue +156 -144
  28. package/dist/runtime/components/form/Birthdate.vue +116 -104
  29. package/dist/runtime/components/form/CheckboxGroup.vue +99 -87
  30. package/dist/runtime/components/form/CodeEditor.vue +45 -37
  31. package/dist/runtime/components/form/Date.vue +270 -258
  32. package/dist/runtime/components/form/DateTime.vue +220 -208
  33. package/dist/runtime/components/form/Dialog.vue +178 -166
  34. package/dist/runtime/components/form/EditPad.vue +157 -145
  35. package/dist/runtime/components/form/File.vue +295 -283
  36. package/dist/runtime/components/form/Hidden.vue +44 -32
  37. package/dist/runtime/components/form/Iterator.vue +538 -526
  38. package/dist/runtime/components/form/Login.vue +143 -131
  39. package/dist/runtime/components/form/Pad.vue +399 -387
  40. package/dist/runtime/components/form/SignPad.vue +226 -218
  41. package/dist/runtime/components/form/System.vue +34 -26
  42. package/dist/runtime/components/form/Table.vue +391 -379
  43. package/dist/runtime/components/form/TableData.vue +236 -224
  44. package/dist/runtime/components/form/Time.vue +177 -165
  45. package/dist/runtime/components/form/images/Capture.vue +245 -237
  46. package/dist/runtime/components/form/images/Edit.vue +133 -121
  47. package/dist/runtime/components/form/images/Field.vue +331 -320
  48. package/dist/runtime/components/form/images/Pad.vue +54 -42
  49. package/dist/runtime/components/label/Date.vue +37 -29
  50. package/dist/runtime/components/label/DateAgo.vue +102 -94
  51. package/dist/runtime/components/label/DateCount.vue +152 -144
  52. package/dist/runtime/components/label/Field.vue +111 -103
  53. package/dist/runtime/components/label/FormatMoney.vue +37 -29
  54. package/dist/runtime/components/label/Mask.vue +46 -38
  55. package/dist/runtime/components/label/Object.vue +21 -13
  56. package/dist/runtime/components/master/Autocomplete.vue +89 -81
  57. package/dist/runtime/components/master/Combobox.vue +88 -80
  58. package/dist/runtime/components/master/RadioGroup.vue +90 -78
  59. package/dist/runtime/components/master/Select.vue +70 -62
  60. package/dist/runtime/components/master/label.vue +55 -47
  61. package/dist/runtime/components/model/Autocomplete.vue +91 -79
  62. package/dist/runtime/components/model/Combobox.vue +90 -78
  63. package/dist/runtime/components/model/Pad.vue +114 -102
  64. package/dist/runtime/components/model/Select.vue +78 -72
  65. package/dist/runtime/components/model/Table.vue +370 -358
  66. package/dist/runtime/components/model/iterator.vue +497 -489
  67. package/dist/runtime/components/model/label.vue +58 -50
  68. package/dist/runtime/components/pdf/Print.vue +75 -63
  69. package/dist/runtime/components/pdf/View.vue +146 -134
  70. package/dist/runtime/composables/alert.d.ts +4 -0
  71. package/dist/runtime/composables/api.d.ts +4 -0
  72. package/dist/runtime/composables/dialog.d.ts +1 -1
  73. package/dist/runtime/composables/document/templateFormHidden.d.ts +4 -0
  74. package/dist/runtime/composables/graphql.d.ts +1 -1
  75. package/dist/runtime/composables/graphqlModel.d.ts +9 -9
  76. package/dist/runtime/composables/graphqlModelItem.d.ts +7 -7
  77. package/dist/runtime/composables/graphqlModelOperation.d.ts +6 -6
  78. package/dist/runtime/composables/localStorageModel.d.ts +4 -0
  79. package/dist/runtime/composables/lookupList.d.ts +4 -0
  80. package/dist/runtime/composables/menu.d.ts +4 -0
  81. package/dist/runtime/composables/useMrzReader.d.ts +48 -0
  82. package/dist/runtime/composables/useMrzReader.js +423 -0
  83. package/dist/runtime/composables/useTesseract.d.ts +16 -0
  84. package/dist/runtime/composables/useTesseract.js +45 -0
  85. package/dist/runtime/composables/userPermission.d.ts +1 -1
  86. package/dist/runtime/labs/Calendar.vue +99 -99
  87. package/dist/runtime/labs/form/EditMobile.vue +152 -152
  88. package/dist/runtime/labs/form/TextFieldMask.vue +43 -43
  89. package/dist/runtime/plugins/clientConfig.d.ts +1 -1
  90. package/dist/runtime/plugins/default.d.ts +1 -1
  91. package/dist/runtime/plugins/dialogManager.d.ts +1 -1
  92. package/dist/runtime/plugins/permission.d.ts +1 -1
  93. package/dist/runtime/types/alert.d.ts +11 -11
  94. package/dist/runtime/types/clientConfig.d.ts +13 -13
  95. package/dist/runtime/types/dialogManager.d.ts +35 -35
  96. package/dist/runtime/types/formDialog.d.ts +5 -5
  97. package/dist/runtime/types/graphqlOperation.d.ts +23 -23
  98. package/dist/runtime/types/menu.d.ts +31 -31
  99. package/dist/runtime/types/modules.d.ts +7 -7
  100. package/dist/runtime/types/permission.d.ts +13 -13
  101. package/dist/runtime/utils/asset.d.ts +2 -0
  102. package/dist/runtime/utils/asset.js +49 -0
  103. package/package.json +131 -122
  104. package/scripts/enrich-vue-docs-from-ai.mjs +197 -0
  105. package/scripts/generate-ai-summary.mjs +321 -0
  106. package/scripts/generate-composables-md.mjs +129 -0
  107. package/scripts/postInstall.cjs +70 -70
  108. package/templates/.codegen/codegen.ts +32 -32
  109. package/templates/.codegen/plugin-schema-object.js +161 -161
  110. package/templates/public/tesseract/mrz.traineddata.gz +0 -0
  111. package/templates/public/tesseract/ocrb.traineddata.gz +0 -0
@@ -1,36 +1,36 @@
1
- export interface DialogPlugin {
2
- open: (component: any,props?: Record<string, any>) => Promise<any>
3
- openPromise: (component: any, promiseInput: Promise<any> | (() => any | Promise<any>) | (Promise<any> | (() => any | Promise<any>))[], props?: Record<string, any>) => Promise<any | any[]>
4
- confirm: (props?: Record<string, any>) => Promise<boolean>
5
- notify: (props?: Record<string, any>) => Promise<boolean>
6
- verifyUser: (props?: Record<string, any>) => Promise<boolean>
7
- loading: <T>(promiseInput: Promise<any> | (() => any | Promise<any>) | (Promise<any> | (() => any | Promise<any>))[],props?: Record<string, any>) => Promise<any | any[]>
8
- printing: <T>(promiseInput: Promise<any> | (() => any | Promise<any>) | (Promise<any> | (() => any | Promise<any>))[],props?: Record<string, any>) => Promise<any | any[]>
9
- setDialogHost: (openFn: DialogOpenFn,closeFn: DialogCloseFn) => void
10
- setDialogComponents: (components:object) => void
11
- }
12
-
13
- export interface DialogOpenResult<T = any> {
14
- id: number
15
- promise: Promise<T>
16
- closeInstance: (value?: T) => void
17
- rejectInstance: (value?: T) => void
18
- }
19
-
20
- export interface DialogOpenFn {
21
- (component: any, props?: Record<string, any>): DialogOpenResult
22
- }
23
-
24
- export interface DialogCloseFn {
25
- (id: number, value?: any): void
26
- }
27
-
28
- declare module '#app' {
29
- interface NuxtApp {
30
- $dialog: DialogPlugin
31
- }
32
-
33
- interface RuntimeNuxtApp {
34
- $dialog: DialogPlugin
35
- }
1
+ export interface DialogPlugin {
2
+ open: (component: any,props?: Record<string, any>) => Promise<any>
3
+ openPromise: (component: any, promiseInput: Promise<any> | (() => any | Promise<any>) | (Promise<any> | (() => any | Promise<any>))[], props?: Record<string, any>) => Promise<any | any[]>
4
+ confirm: (props?: Record<string, any>) => Promise<boolean>
5
+ notify: (props?: Record<string, any>) => Promise<boolean>
6
+ verifyUser: (props?: Record<string, any>) => Promise<boolean>
7
+ loading: <T>(promiseInput: Promise<any> | (() => any | Promise<any>) | (Promise<any> | (() => any | Promise<any>))[],props?: Record<string, any>) => Promise<any | any[]>
8
+ printing: <T>(promiseInput: Promise<any> | (() => any | Promise<any>) | (Promise<any> | (() => any | Promise<any>))[],props?: Record<string, any>) => Promise<any | any[]>
9
+ setDialogHost: (openFn: DialogOpenFn,closeFn: DialogCloseFn) => void
10
+ setDialogComponents: (components:object) => void
11
+ }
12
+
13
+ export interface DialogOpenResult<T = any> {
14
+ id: number
15
+ promise: Promise<T>
16
+ closeInstance: (value?: T) => void
17
+ rejectInstance: (value?: T) => void
18
+ }
19
+
20
+ export interface DialogOpenFn {
21
+ (component: any, props?: Record<string, any>): DialogOpenResult
22
+ }
23
+
24
+ export interface DialogCloseFn {
25
+ (id: number, value?: any): void
26
+ }
27
+
28
+ declare module '#app' {
29
+ interface NuxtApp {
30
+ $dialog: DialogPlugin
31
+ }
32
+
33
+ interface RuntimeNuxtApp {
34
+ $dialog: DialogPlugin
35
+ }
36
36
  }
@@ -1,5 +1,5 @@
1
- export interface FormDialogCallback {
2
- done: Function
3
- error: Function
4
- setData?: Function
5
- }
1
+ export interface FormDialogCallback {
2
+ done: Function
3
+ error: Function
4
+ setData?: Function
5
+ }
@@ -1,23 +1,23 @@
1
- export interface graphqlVariable {
2
- name: string
3
- list?: boolean
4
- required?: boolean
5
- type?: string
6
- value?: any
7
- }
8
- export interface graphqlOperationObject<T, U> {
9
- variables?: graphqlVariable[]
10
- fields?: graphqlTypeObject
11
- operationType: 'Query' | 'Mutation'
12
- name: string
13
- call: (fields?: Array<string | Object>, variables?: U, cache?: boolean | number) => Promise<T>
14
- }
15
-
16
- export interface graphqlTypeObject {
17
- fields: string[]
18
- relations: graphqlVariable[]
19
- }
20
-
21
- export interface graphqlInputObject {
22
- variables: graphqlVariable[]
23
- }
1
+ export interface graphqlVariable {
2
+ name: string
3
+ list?: boolean
4
+ required?: boolean
5
+ type?: string
6
+ value?: any
7
+ }
8
+ export interface graphqlOperationObject<T, U> {
9
+ variables?: graphqlVariable[]
10
+ fields?: graphqlTypeObject
11
+ operationType: 'Query' | 'Mutation'
12
+ name: string
13
+ call: (fields?: Array<string | Object>, variables?: U, cache?: boolean | number) => Promise<T>
14
+ }
15
+
16
+ export interface graphqlTypeObject {
17
+ fields: string[]
18
+ relations: graphqlVariable[]
19
+ }
20
+
21
+ export interface graphqlInputObject {
22
+ variables: graphqlVariable[]
23
+ }
@@ -1,31 +1,31 @@
1
- declare module '#app' {
2
- interface PageMeta {
3
- menuItem?: MenuMeta
4
- }
5
- }
6
-
7
- declare global {
8
- interface MenuMeta {
9
- title: string
10
- icon: string
11
- role?: string
12
- image?: string
13
- active?: boolean
14
- }
15
-
16
- interface MenuItem {
17
- title: string
18
- icon: string
19
- role: string
20
- link: any
21
- menuItems: Array<MenuItem>
22
- active: boolean
23
- name: string
24
- image?: string
25
- }
26
- }
27
-
28
- export type MenuMeta = globalThis.MenuMeta
29
- export type MenuItem = globalThis.MenuItem
30
-
31
- export {}
1
+ declare module '#app' {
2
+ interface PageMeta {
3
+ menuItem?: MenuMeta
4
+ }
5
+ }
6
+
7
+ declare global {
8
+ interface MenuMeta {
9
+ title: string
10
+ icon: string
11
+ role?: string
12
+ image?: string
13
+ active?: boolean
14
+ }
15
+
16
+ interface MenuItem {
17
+ title: string
18
+ icon: string
19
+ role: string
20
+ link: any
21
+ menuItems: Array<MenuItem>
22
+ active: boolean
23
+ name: string
24
+ image?: string
25
+ }
26
+ }
27
+
28
+ export type MenuMeta = globalThis.MenuMeta
29
+ export type MenuItem = globalThis.MenuItem
30
+
31
+ export {}
@@ -1,7 +1,7 @@
1
- declare module 'painterro';
2
- declare module '@zxing/browser'
3
- declare module 'vue-signature-pad'
4
- declare module 'accounting'
5
- declare module 'pdf-vue3'
6
- declare module 'prettier'
7
- declare module 'prettier/plugins/html'
1
+ declare module 'painterro';
2
+ declare module '@zxing/browser'
3
+ declare module 'vue-signature-pad'
4
+ declare module 'accounting'
5
+ declare module 'pdf-vue3'
6
+ declare module 'prettier'
7
+ declare module 'prettier/plugins/html'
@@ -1,14 +1,14 @@
1
- export interface PermissionPlugin {
2
- check: (permission: string | string[] | null | undefined) => boolean
3
- checkAll: (permission: string | string[] | null | undefined) => boolean
4
- }
5
-
6
- declare module '#app' {
7
- interface NuxtApp {
8
- $permission: PermissionPlugin
9
- }
10
-
11
- interface RuntimeNuxtApp {
12
- $permission: PermissionPlugin
13
- }
1
+ export interface PermissionPlugin {
2
+ check: (permission: string | string[] | null | undefined) => boolean
3
+ checkAll: (permission: string | string[] | null | undefined) => boolean
4
+ }
5
+
6
+ declare module '#app' {
7
+ interface NuxtApp {
8
+ $permission: PermissionPlugin
9
+ }
10
+
11
+ interface RuntimeNuxtApp {
12
+ $permission: PermissionPlugin
13
+ }
14
14
  }
@@ -0,0 +1,2 @@
1
+ export declare const encryptAssetToken: (assetId: string | number) => string;
2
+ export declare const assetUrl: (assetId: string | number) => string;
@@ -0,0 +1,49 @@
1
+ import { useRuntimeConfig } from "#imports";
2
+ const resolveAssetBaseUrl = () => {
3
+ const config = useRuntimeConfig();
4
+ const raw = String(config?.public?.ASSET_URL ?? "/asset/").trim();
5
+ if (raw === "") {
6
+ return "/asset";
7
+ }
8
+ return raw.replace(/\/+$/g, "");
9
+ };
10
+ const xorObfuscate = (input, key) => {
11
+ if (key.length === 0) {
12
+ return input;
13
+ }
14
+ let output = "";
15
+ for (let i = 0; i < input.length; i++) {
16
+ output += String.fromCharCode(input.charCodeAt(i) ^ key.charCodeAt(i % key.length));
17
+ }
18
+ return output;
19
+ };
20
+ const toBase64UrlString = (value) => {
21
+ return btoa(value).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/g, "");
22
+ };
23
+ const generateRandomKey = (length = 12) => {
24
+ const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
25
+ const bytes = new Uint8Array(length);
26
+ if (typeof crypto !== "undefined" && typeof crypto.getRandomValues === "function") {
27
+ crypto.getRandomValues(bytes);
28
+ } else {
29
+ for (let i = 0; i < length; i++) {
30
+ bytes[i] = Math.floor(Math.random() * 256);
31
+ }
32
+ }
33
+ let key = "";
34
+ for (let i = 0; i < length; i++) {
35
+ key += chars[bytes[i] % chars.length];
36
+ }
37
+ return key;
38
+ };
39
+ export const encryptAssetToken = (assetId) => {
40
+ const timestamp = Date.now();
41
+ const payload = `${timestamp}|${assetId}`;
42
+ const key = generateRandomKey();
43
+ const encryptedPayload = toBase64UrlString(xorObfuscate(payload, key));
44
+ return toBase64UrlString(`${key}|${encryptedPayload}`);
45
+ };
46
+ export const assetUrl = (assetId) => {
47
+ const token = encryptAssetToken(assetId);
48
+ return `${resolveAssetBaseUrl()}/${token}`;
49
+ };
package/package.json CHANGED
@@ -1,122 +1,131 @@
1
- {
2
- "name": "@ramathibodi/nuxt-commons",
3
- "version": "0.1.73",
4
- "description": "Ramathibodi Nuxt modules for common components",
5
- "repository": {
6
- "type": "git",
7
- "url": "https://gitlab.rama.mahidol.ac.th/ramacare/frontend/rama-modules.git"
8
- },
9
- "license": "MIT",
10
- "type": "module",
11
- "exports": {
12
- ".": {
13
- "types": "./dist/types.d.ts",
14
- "import": "./dist/module.mjs",
15
- "require": "./dist/module.cjs"
16
- },
17
- "./utils/*": {
18
- "default": "./dist/runtime/utils/*.js",
19
- "types": "./dist/runtime/utils/*.d.ts"
20
- },
21
- "./composables/*": {
22
- "default": "./dist/runtime/composables/*.js",
23
- "types": "./dist/runtime/composables/*.d.ts"
24
- },
25
- "./composables/*/*": {
26
- "default": "./dist/runtime/composables/*/*.js",
27
- "types": "./dist/runtime/composables/*/*.d.ts"
28
- },
29
- "./components/*": "./dist/runtime/components/*.vue",
30
- "./components/*/*": "./dist/runtime/components/*/*.vue",
31
- "./lab/*": "./dist/runtime/labs/*.vue",
32
- "./lab/*/*": "./dist/runtime/labs/*/*.vue"
33
- },
34
- "main": "./dist/module.cjs",
35
- "types": "./dist/types.d.ts",
36
- "files": [
37
- "dist",
38
- "scripts",
39
- "templates"
40
- ],
41
- "scripts": {
42
- "prepack": "nuxt-module-build build",
43
- "dev": "nuxi dev playground",
44
- "dev:build": "nuxi build playground",
45
- "dev:prepare": "nuxt-module-build build --stub && nuxt-module-build prepare && nuxi prepare playground",
46
- "release": "npm run lint && npm run test && npm run prepack && changelogen --release && npm publish && git push --follow-tags",
47
- "lint": "eslint .",
48
- "lint:fix": "eslint . --fix",
49
- "test": "vitest run",
50
- "test:watch": "vitest watch",
51
- "postinstall": "node scripts/postInstall.cjs"
52
- },
53
- "dependencies": {
54
- "@codemirror/lang-html": "^6.4.9",
55
- "@codemirror/lang-javascript": "^6.2.3",
56
- "@codemirror/lang-vue": "^0.1.3",
57
- "@codemirror/theme-one-dark": "^6.1.2",
58
- "@fortawesome/fontawesome-free": "^6.7.2",
59
- "@fullcalendar/core": "^6.1.17",
60
- "@fullcalendar/daygrid": "^6.1.17",
61
- "@fullcalendar/interaction": "^6.1.17",
62
- "@fullcalendar/list": "^6.1.17",
63
- "@fullcalendar/multimonth": "^6.1.17",
64
- "@fullcalendar/timegrid": "^6.1.17",
65
- "@fullcalendar/vue3": "^6.1.17",
66
- "@graphql-codegen/add": "^5.0.3",
67
- "@graphql-codegen/cli": "^5.0.5",
68
- "@graphql-codegen/plugin-helpers": "^5.1.0",
69
- "@graphql-codegen/typescript": "^4.1.6",
70
- "@mdi/font": "^7.4.47",
71
- "@nuxt/kit": "^3.16.2",
72
- "@nuxtjs/apollo": "5.0.0-alpha.14",
73
- "@thumbmarkjs/thumbmarkjs": "^1.6.1",
74
- "@vue/apollo-composable": "^4.2.2",
75
- "@vuepic/vue-datepicker": "^7.4.1",
76
- "@vueuse/integrations": "^11.3.0",
77
- "@zxing/browser": "^0.1.5",
78
- "cropperjs": "^1.6.2",
79
- "currency.js": "^2.0.4",
80
- "exif-rotate-js": "^1.5.0",
81
- "fuse.js": "^7.1.0",
82
- "gql-query-builder": "^3.8.0",
83
- "graphql": "^16.10.0",
84
- "localstorage-slim": "^2.7.1",
85
- "lodash": "^4.17.21",
86
- "luxon": "^3.6.1",
87
- "maska": "^2.1.11",
88
- "p-limit": "^6.2.0",
89
- "painterro": "^1.2.87",
90
- "pdf-vue3": "^1.0.12",
91
- "prettier": "3.3.2",
92
- "print-js": "^1.6.0",
93
- "uid": "^2.0.2",
94
- "vue": "^3.5.13",
95
- "vue-codemirror": "^6.1.1",
96
- "vue-json-pretty": "^2.5.0",
97
- "vue-signature-pad": "^3.0.2",
98
- "vuetify": "^3.8.0",
99
- "xlsx": "https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz"
100
- },
101
- "devDependencies": {
102
- "@nuxt/devtools": "^1.7.0",
103
- "@nuxt/eslint-config": "^0.5.7",
104
- "@nuxt/module-builder": "^0.8.4",
105
- "@nuxt/schema": "^3.16.2",
106
- "@nuxt/test-utils": "^3.17.2",
107
- "@types/crypto-js": "^4.2.2",
108
- "@types/lodash": "^4.17.16",
109
- "@types/luxon": "^3.6.2",
110
- "@types/node": "^18.19.86",
111
- "@vueuse/core": "^10.11.1",
112
- "@vueuse/nuxt": "^10.11.1",
113
- "changelogen": "^0.5.7",
114
- "eslint": "^9.23.0",
115
- "nuxt": "^3.16.2",
116
- "nuxt-lodash": "^2.5.3",
117
- "sass": "^1.86.3",
118
- "typescript": "^5.8.2",
119
- "vitest": "^1.6.1",
120
- "vue-tsc": "^2.2.10"
121
- }
122
- }
1
+ {
2
+ "name": "@ramathibodi/nuxt-commons",
3
+ "version": "0.1.75",
4
+ "description": "Ramathibodi Nuxt modules for common components",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "https://gitlab.rama.mahidol.ac.th/ramacare/frontend/rama-modules.git"
8
+ },
9
+ "license": "MIT",
10
+ "type": "module",
11
+ "exports": {
12
+ ".": {
13
+ "types": "./dist/types.d.ts",
14
+ "import": "./dist/module.mjs",
15
+ "require": "./dist/module.cjs"
16
+ },
17
+ "./utils/*": {
18
+ "default": "./dist/runtime/utils/*.js",
19
+ "types": "./dist/runtime/utils/*.d.ts"
20
+ },
21
+ "./composables/*": {
22
+ "default": "./dist/runtime/composables/*.js",
23
+ "types": "./dist/runtime/composables/*.d.ts"
24
+ },
25
+ "./composables/*/*": {
26
+ "default": "./dist/runtime/composables/*/*.js",
27
+ "types": "./dist/runtime/composables/*/*.d.ts"
28
+ },
29
+ "./components/*": "./dist/runtime/components/*.vue",
30
+ "./components/*/*": "./dist/runtime/components/*/*.vue",
31
+ "./lab/*": "./dist/runtime/labs/*.vue",
32
+ "./lab/*/*": "./dist/runtime/labs/*/*.vue"
33
+ },
34
+ "main": "./dist/module.cjs",
35
+ "types": "./dist/types.d.ts",
36
+ "files": [
37
+ "dist",
38
+ "scripts",
39
+ "templates"
40
+ ],
41
+ "scripts": {
42
+ "prepack": "nuxt-module-build build",
43
+ "dev": "nuxi dev playground",
44
+ "dev:build": "nuxi build playground",
45
+ "dev:prepare": "nuxt-module-build build --stub && nuxt-module-build prepare && nuxi prepare playground",
46
+ "docs:api:components": "vue-docgen -c docs/vue-docgen.config.cjs && npm run docs:ai:summary && node scripts/enrich-vue-docs-from-ai.mjs",
47
+ "docs:api:composables": "typedoc --options docs/typedoc.json",
48
+ "docs:api:composables:md": "npm run docs:ai:summary && node scripts/generate-composables-md.mjs",
49
+ "docs:api": "npm run docs:api:components && npm run docs:api:composables",
50
+ "docs:ai:summary": "node scripts/generate-ai-summary.mjs",
51
+ "release": "npm run lint && npm run test && npm run prepack && changelogen --release && npm publish && git push --follow-tags",
52
+ "lint": "eslint .",
53
+ "lint:fix": "eslint . --fix",
54
+ "test": "vitest run",
55
+ "test:watch": "vitest watch",
56
+ "postinstall": "node scripts/postInstall.cjs"
57
+ },
58
+ "dependencies": {
59
+ "@codemirror/lang-html": "^6.4.9",
60
+ "@codemirror/lang-javascript": "^6.2.3",
61
+ "@codemirror/lang-vue": "^0.1.3",
62
+ "@codemirror/theme-one-dark": "^6.1.2",
63
+ "@fortawesome/fontawesome-free": "^6.7.2",
64
+ "@fullcalendar/core": "^6.1.17",
65
+ "@fullcalendar/daygrid": "^6.1.17",
66
+ "@fullcalendar/interaction": "^6.1.17",
67
+ "@fullcalendar/list": "^6.1.17",
68
+ "@fullcalendar/multimonth": "^6.1.17",
69
+ "@fullcalendar/timegrid": "^6.1.17",
70
+ "@fullcalendar/vue3": "^6.1.17",
71
+ "@graphql-codegen/add": "^5.0.3",
72
+ "@graphql-codegen/cli": "^5.0.5",
73
+ "@graphql-codegen/plugin-helpers": "^5.1.0",
74
+ "@graphql-codegen/typescript": "^4.1.6",
75
+ "@mdi/font": "^7.4.47",
76
+ "@nuxt/kit": "^3.16.2",
77
+ "@nuxtjs/apollo": "5.0.0-alpha.14",
78
+ "@techstark/opencv-js": "^4.11.0-release.1",
79
+ "@thumbmarkjs/thumbmarkjs": "^1.6.1",
80
+ "@vue/apollo-composable": "^4.2.2",
81
+ "@vuepic/vue-datepicker": "^7.4.1",
82
+ "@vueuse/integrations": "^11.3.0",
83
+ "@zxing/browser": "^0.1.5",
84
+ "cropperjs": "^1.6.2",
85
+ "currency.js": "^2.0.4",
86
+ "exif-rotate-js": "^1.5.0",
87
+ "fuse.js": "^7.1.0",
88
+ "gql-query-builder": "^3.8.0",
89
+ "graphql": "^16.10.0",
90
+ "localstorage-slim": "^2.7.1",
91
+ "lodash": "4.17.23",
92
+ "luxon": "^3.6.1",
93
+ "maska": "^2.1.11",
94
+ "p-limit": "^6.2.0",
95
+ "painterro": "^1.2.87",
96
+ "pdf-vue3": "^1.0.12",
97
+ "prettier": "3.3.2",
98
+ "print-js": "^1.6.0",
99
+ "uid": "^2.0.2",
100
+ "tesseract.js": "^6.0.1",
101
+ "vue": "^3.5.13",
102
+ "vue-codemirror": "^6.1.1",
103
+ "vue-json-pretty": "^2.5.0",
104
+ "vue-signature-pad": "^3.0.2",
105
+ "vuetify": "^3.8.0",
106
+ "xlsx": "https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz"
107
+ },
108
+ "devDependencies": {
109
+ "@nuxt/devtools": "^1.7.0",
110
+ "@nuxt/eslint-config": "^0.5.7",
111
+ "@nuxt/module-builder": "^0.8.4",
112
+ "@nuxt/schema": "^3.16.2",
113
+ "@nuxt/test-utils": "^3.17.2",
114
+ "@types/crypto-js": "^4.2.2",
115
+ "@types/lodash": "^4.17.16",
116
+ "@types/luxon": "^3.6.2",
117
+ "@types/node": "^18.19.86",
118
+ "@vueuse/core": "^10.11.1",
119
+ "@vueuse/nuxt": "^10.11.1",
120
+ "changelogen": "^0.5.7",
121
+ "eslint": "9.26.0",
122
+ "nuxt": "^3.16.2",
123
+ "nuxt-lodash": "^2.5.3",
124
+ "sass": "^1.86.3",
125
+ "typedoc": "^0.27.9",
126
+ "typescript": "^5.8.2",
127
+ "vitest": "^1.6.1",
128
+ "vue-docgen-cli": "^4.79.0",
129
+ "vue-tsc": "^2.2.10"
130
+ }
131
+ }