@udhuong/admin-core 0.1.7 → 0.2.0

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 (97) hide show
  1. package/dist/client/components/media/FolderTree.d.ts +13 -0
  2. package/dist/client/components/media/FolderTree.d.ts.map +1 -0
  3. package/dist/client/components/media/FolderTree.js +50 -0
  4. package/dist/client/components/media/FolderTree.js.map +1 -0
  5. package/dist/client/components/media/MediaBrowser.d.ts +8 -0
  6. package/dist/client/components/media/MediaBrowser.d.ts.map +1 -0
  7. package/dist/client/components/media/MediaBrowser.js +210 -0
  8. package/dist/client/components/media/MediaBrowser.js.map +1 -0
  9. package/dist/client/components/media/MediaGrid.d.ts +11 -0
  10. package/dist/client/components/media/MediaGrid.d.ts.map +1 -0
  11. package/dist/client/components/media/MediaGrid.js +67 -0
  12. package/dist/client/components/media/MediaGrid.js.map +1 -0
  13. package/dist/client/components/media/MediaPicker.d.ts +12 -0
  14. package/dist/client/components/media/MediaPicker.d.ts.map +1 -0
  15. package/dist/client/components/media/MediaPicker.js +154 -0
  16. package/dist/client/components/media/MediaPicker.js.map +1 -0
  17. package/dist/client/components/media/MediaUpload.d.ts +9 -0
  18. package/dist/client/components/media/MediaUpload.d.ts.map +1 -0
  19. package/dist/client/components/media/MediaUpload.js +98 -0
  20. package/dist/client/components/media/MediaUpload.js.map +1 -0
  21. package/dist/client/components/media/index.d.ts +6 -0
  22. package/dist/client/components/media/index.d.ts.map +1 -0
  23. package/dist/client/components/media/index.js +6 -0
  24. package/dist/client/components/media/index.js.map +1 -0
  25. package/dist/client/constants/api-routes.d.ts +9 -0
  26. package/dist/client/constants/api-routes.d.ts.map +1 -1
  27. package/dist/client/constants/api-routes.js +10 -0
  28. package/dist/client/constants/api-routes.js.map +1 -1
  29. package/dist/client/index.d.ts +5 -1
  30. package/dist/client/index.d.ts.map +1 -1
  31. package/dist/client/index.js +6 -1
  32. package/dist/client/index.js.map +1 -1
  33. package/dist/client/lib/ckeditor-upload-adapter.d.ts +8 -0
  34. package/dist/client/lib/ckeditor-upload-adapter.d.ts.map +1 -0
  35. package/dist/client/lib/ckeditor-upload-adapter.js +75 -0
  36. package/dist/client/lib/ckeditor-upload-adapter.js.map +1 -0
  37. package/dist/client/pages/MediaPage.d.ts +2 -0
  38. package/dist/client/pages/MediaPage.d.ts.map +1 -0
  39. package/dist/client/pages/MediaPage.js +303 -0
  40. package/dist/client/pages/MediaPage.js.map +1 -0
  41. package/dist/client/pages/PermissionsPage.d.ts.map +1 -1
  42. package/dist/client/pages/PermissionsPage.js +59 -25
  43. package/dist/client/pages/PermissionsPage.js.map +1 -1
  44. package/dist/client/pages/RolesPage.d.ts.map +1 -1
  45. package/dist/client/pages/RolesPage.js +128 -35
  46. package/dist/client/pages/RolesPage.js.map +1 -1
  47. package/dist/client/pages/index.d.ts +1 -0
  48. package/dist/client/pages/index.d.ts.map +1 -1
  49. package/dist/client/pages/index.js +1 -0
  50. package/dist/client/pages/index.js.map +1 -1
  51. package/dist/client/types/media.d.ts +57 -0
  52. package/dist/client/types/media.d.ts.map +1 -0
  53. package/dist/client/types/media.js +10 -0
  54. package/dist/client/types/media.js.map +1 -0
  55. package/dist/server/admin-core-options.interface.d.ts +13 -0
  56. package/dist/server/admin-core-options.interface.d.ts.map +1 -1
  57. package/dist/server/admin-core-options.interface.js.map +1 -1
  58. package/dist/server/admin-core.module.d.ts.map +1 -1
  59. package/dist/server/admin-core.module.js +9 -1
  60. package/dist/server/admin-core.module.js.map +1 -1
  61. package/dist/server/index.d.ts +7 -1
  62. package/dist/server/index.d.ts.map +1 -1
  63. package/dist/server/index.js +19 -1
  64. package/dist/server/index.js.map +1 -1
  65. package/dist/server/media/application/services/media.service.d.ts +134 -0
  66. package/dist/server/media/application/services/media.service.d.ts.map +1 -0
  67. package/dist/server/media/application/services/media.service.js +357 -0
  68. package/dist/server/media/application/services/media.service.js.map +1 -0
  69. package/dist/server/media/application/services/minio.service.d.ts +24 -0
  70. package/dist/server/media/application/services/minio.service.d.ts.map +1 -0
  71. package/dist/server/media/application/services/minio.service.js +175 -0
  72. package/dist/server/media/application/services/minio.service.js.map +1 -0
  73. package/dist/server/media/domain/enums/media-type.enum.d.ts +15 -0
  74. package/dist/server/media/domain/enums/media-type.enum.d.ts.map +1 -0
  75. package/dist/server/media/domain/enums/media-type.enum.js +19 -0
  76. package/dist/server/media/domain/enums/media-type.enum.js.map +1 -0
  77. package/dist/server/media/infrastructure/persistence/entities/media.entity.d.ts +30 -0
  78. package/dist/server/media/infrastructure/persistence/entities/media.entity.d.ts.map +1 -0
  79. package/dist/server/media/infrastructure/persistence/entities/media.entity.js +149 -0
  80. package/dist/server/media/infrastructure/persistence/entities/media.entity.js.map +1 -0
  81. package/dist/server/media/media.module.d.ts +3 -0
  82. package/dist/server/media/media.module.d.ts.map +1 -0
  83. package/dist/server/media/media.module.js +27 -0
  84. package/dist/server/media/media.module.js.map +1 -0
  85. package/dist/server/media/presentation/controllers/media.controller.d.ts +62 -0
  86. package/dist/server/media/presentation/controllers/media.controller.d.ts.map +1 -0
  87. package/dist/server/media/presentation/controllers/media.controller.js +185 -0
  88. package/dist/server/media/presentation/controllers/media.controller.js.map +1 -0
  89. package/dist/server/media/presentation/dto/media.dto.d.ts +38 -0
  90. package/dist/server/media/presentation/dto/media.dto.d.ts.map +1 -0
  91. package/dist/server/media/presentation/dto/media.dto.js +184 -0
  92. package/dist/server/media/presentation/dto/media.dto.js.map +1 -0
  93. package/dist/server/shared/permissions.d.ts +24 -0
  94. package/dist/server/shared/permissions.d.ts.map +1 -1
  95. package/dist/server/shared/permissions.js +24 -0
  96. package/dist/server/shared/permissions.js.map +1 -1
  97. package/package.json +11 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MediaPicker.js","sourceRoot":"","sources":["../../../../src/client/components/media/MediaPicker.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ interface MediaUploadProps {
2
+ folderId?: number;
3
+ onUploadComplete?: () => void;
4
+ maxFiles?: number;
5
+ folderName?: string;
6
+ }
7
+ export declare function MediaUpload({ folderId, onUploadComplete, maxFiles, folderName, }: MediaUploadProps): import("react/jsx-runtime").JSX.Element;
8
+ export {};
9
+ //# sourceMappingURL=MediaUpload.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MediaUpload.d.ts","sourceRoot":"","sources":["../../../../src/client/components/media/MediaUpload.tsx"],"names":[],"mappings":"AAQA,UAAU,gBAAgB;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,WAAW,CAAC,EAC1B,QAAQ,EACR,gBAAgB,EAChB,QAAa,EACb,UAAU,GACX,EAAE,gBAAgB,2CAgNlB"}
@@ -0,0 +1,98 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useState, useCallback } from 'react';
4
+ import { useDropzone } from 'react-dropzone';
5
+ import { Upload, X, Image, File, Film, Music } from 'lucide-react';
6
+ import { getApiClient } from '../../auth/api-client';
7
+ import { CORE_API_ROUTES } from '../../constants/api-routes';
8
+ export function MediaUpload({ folderId, onUploadComplete, maxFiles = 10, folderName, }) {
9
+ const apiClient = getApiClient();
10
+ const [uploading, setUploading] = useState(false);
11
+ const [uploadProgress, setUploadProgress] = useState(0);
12
+ const [files, setFiles] = useState([]);
13
+ const [error, setError] = useState(null);
14
+ const [success, setSuccess] = useState(null);
15
+ const onDrop = useCallback((acceptedFiles) => {
16
+ setFiles((prev) => [...prev, ...acceptedFiles].slice(0, maxFiles));
17
+ setError(null); // Reset error when new files are added
18
+ setSuccess(null); // Reset success message
19
+ }, [maxFiles]);
20
+ const { getRootProps, getInputProps, isDragActive } = useDropzone({
21
+ onDrop,
22
+ maxFiles,
23
+ accept: {
24
+ 'image/*': ['.png', '.jpg', '.jpeg', '.gif', '.webp', '.svg'],
25
+ 'video/*': ['.mp4', '.webm', '.mov'],
26
+ 'audio/*': ['.mp3', '.wav', '.ogg'],
27
+ 'application/pdf': ['.pdf'],
28
+ 'application/msword': ['.doc'],
29
+ 'application/vnd.openxmlformats-officedocument.wordprocessingml.document': [
30
+ '.docx',
31
+ ],
32
+ },
33
+ });
34
+ const removeFile = (index) => {
35
+ setFiles((prev) => prev.filter((_, i) => i !== index));
36
+ };
37
+ const uploadFiles = async () => {
38
+ if (files.length === 0)
39
+ return;
40
+ setUploading(true);
41
+ setUploadProgress(0);
42
+ setError(null);
43
+ try {
44
+ const formData = new FormData();
45
+ files.forEach((file) => {
46
+ formData.append('files', file);
47
+ });
48
+ // Only append folderId if it exists
49
+ if (folderId !== undefined) {
50
+ formData.append('folderId', folderId.toString());
51
+ }
52
+ const response = await apiClient.post(CORE_API_ROUTES.MEDIA.UPLOAD, formData, {
53
+ timeout: 30000, // 30 second timeout
54
+ onUploadProgress: (progressEvent) => {
55
+ const progress = progressEvent.total
56
+ ? Math.round((progressEvent.loaded * 100) / progressEvent.total)
57
+ : 0;
58
+ setUploadProgress(progress);
59
+ },
60
+ });
61
+ setFiles([]);
62
+ setSuccess(`Successfully uploaded ${files.length} file${files.length > 1 ? 's' : ''}!`);
63
+ // Clear success message after 3 seconds
64
+ setTimeout(() => setSuccess(null), 3000);
65
+ onUploadComplete?.();
66
+ }
67
+ catch (error) {
68
+ console.error('Upload error:', error);
69
+ const errorMessage = error.response?.data?.message || error.message || 'Error uploading files';
70
+ setError(errorMessage);
71
+ }
72
+ finally {
73
+ setUploading(false);
74
+ setUploadProgress(0);
75
+ }
76
+ };
77
+ const getFileIcon = (file) => {
78
+ if (file.type.startsWith('image/'))
79
+ return _jsx(Image, { className: "w-8 h-8" });
80
+ if (file.type.startsWith('video/'))
81
+ return _jsx(Film, { className: "w-8 h-8" });
82
+ if (file.type.startsWith('audio/'))
83
+ return _jsx(Music, { className: "w-8 h-8" });
84
+ return _jsx(File, { className: "w-8 h-8" });
85
+ };
86
+ const formatFileSize = (bytes) => {
87
+ if (bytes === 0)
88
+ return '0 Bytes';
89
+ const k = 1024;
90
+ const sizes = ['Bytes', 'KB', 'MB', 'GB'];
91
+ const i = Math.floor(Math.log(bytes) / Math.log(k));
92
+ return Math.round(bytes / Math.pow(k, i) * 100) / 100 + ' ' + sizes[i];
93
+ };
94
+ return (_jsxs("div", { className: "space-y-4", children: [_jsxs("div", { className: "text-sm text-base-content/60", children: [_jsx("span", { className: "font-medium", children: "Upload to:" }), ' ', folderId ? (_jsxs("span", { className: "text-primary", children: ["\uD83D\uDCC1 ", folderName || 'Selected Folder'] })) : (_jsx("span", { className: "text-base-content/60", children: "\uD83D\uDCC2 Unorganized" }))] }), error && (_jsx("div", { className: "p-3 bg-error/10 border border-error/20 rounded-lg", children: _jsx("p", { className: "text-sm text-error", children: error }) })), success && (_jsx("div", { className: "p-3 bg-success/10 border border-success/20 rounded-lg", children: _jsx("p", { className: "text-sm text-success", children: success }) })), _jsxs("div", { ...getRootProps(), className: `border-2 border-dashed rounded-lg p-8 text-center cursor-pointer transition-colors ${isDragActive
95
+ ? 'border-primary bg-primary/5'
96
+ : 'border-base-300 hover:border-base-content/40'}`, children: [_jsx("input", { ...getInputProps() }), _jsx(Upload, { className: "w-12 h-12 mx-auto mb-4 text-base-content/40" }), isDragActive ? (_jsx("p", { className: "text-primary", children: "Drop the files here..." })) : (_jsxs("div", { children: [_jsx("p", { className: "text-base-content/60 mb-2", children: "Drag & drop files here, or click to select files" }), _jsxs("p", { className: "text-sm text-base-content/60", children: ["Maximum ", maxFiles, " files"] })] }))] }), files.length > 0 && (_jsxs("div", { className: "space-y-2", children: [_jsxs("h3", { className: "font-medium text-sm text-base-content", children: ["Selected Files (", files.length, ")"] }), _jsx("div", { className: "space-y-2 max-h-64 overflow-y-auto", children: files.map((file, index) => (_jsxs("div", { className: "flex items-center gap-3 p-3 bg-base-200 rounded-lg", children: [_jsx("div", { className: "text-base-content/60", children: getFileIcon(file) }), _jsxs("div", { className: "flex-1 min-w-0", children: [_jsx("p", { className: "text-sm font-medium text-base-content truncate", children: file.name }), _jsx("p", { className: "text-xs text-base-content/60", children: formatFileSize(file.size) })] }), _jsx("button", { type: "button", onClick: () => removeFile(index), className: "text-error hover:text-error/80", disabled: uploading, children: _jsx(X, { className: "w-5 h-5" }) })] }, index))) }), uploading && (_jsxs("div", { className: "space-y-2", children: [_jsx("div", { className: "w-full bg-base-300 rounded-full h-2", children: _jsx("div", { className: "bg-primary h-2 rounded-full transition-all", style: { width: `${uploadProgress}%` } }) }), _jsxs("p", { className: "text-sm text-center text-base-content/60", children: ["Uploading... ", uploadProgress, "%"] })] })), _jsx("button", { type: "button", onClick: uploadFiles, disabled: uploading, className: "w-full px-4 py-2 bg-primary text-primary-content rounded-lg hover:bg-primary/80 disabled:opacity-50 disabled:cursor-not-allowed transition-colors", children: uploading ? 'Uploading...' : 'Upload Files' })] }))] }));
97
+ }
98
+ //# sourceMappingURL=MediaUpload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MediaUpload.js","sourceRoot":"","sources":["../../../../src/client/components/media/MediaUpload.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export { MediaGrid } from './MediaGrid';
2
+ export { FolderTree } from './FolderTree';
3
+ export { MediaUpload } from './MediaUpload';
4
+ export { MediaPicker } from './MediaPicker';
5
+ export { default as MediaBrowser } from './MediaBrowser';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/client/components/media/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,6 @@
1
+ export { MediaGrid } from './MediaGrid';
2
+ export { FolderTree } from './FolderTree';
3
+ export { MediaUpload } from './MediaUpload';
4
+ export { MediaPicker } from './MediaPicker';
5
+ export { default as MediaBrowser } from './MediaBrowser';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/client/components/media/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
@@ -56,6 +56,15 @@ export declare const CORE_API_ROUTES: {
56
56
  readonly PERMISSIONS: {
57
57
  readonly BASE: "/admin/permissions";
58
58
  };
59
+ readonly MEDIA: {
60
+ readonly BASE: "/media";
61
+ readonly BY_ID: (id: number | string) => string;
62
+ readonly UPLOAD: "/media/upload";
63
+ readonly STATS: "/media/stats";
64
+ readonly FOLDERS: "/media/folders/list";
65
+ readonly FOLDER_BY_ID: (id: number | string) => string;
66
+ readonly CREATE_FOLDER: "/media/folders";
67
+ };
59
68
  readonly SETTINGS: {
60
69
  readonly BASE: "/settings";
61
70
  readonly PUBLIC: "/settings/public";
@@ -1 +1 @@
1
- {"version":3,"file":"api-routes.d.ts","sourceRoot":"","sources":["../../../src/client/constants/api-routes.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BAqCZ,MAAM,GAAG,MAAM;;;;;;;;;6BAaf,MAAM,GAAG,MAAM;sCACN,MAAM,GAAG,MAAM;yCACZ,MAAM,GAAG,MAAM;oCACpB,MAAM,GAAG,MAAM;2CACR,MAAM,GAAG,MAAM;qCACrB,MAAM,GAAG,MAAM;mCACjB,MAAM,GAAG,MAAM;+BACnB,MAAM,GAAG,MAAM;gCACd,MAAM,GAAG,MAAM;0CACL,MAAM,GAAG,MAAM,aAAa,MAAM,GAAG,MAAM;2CAE1C,MAAM,GAAG,MAAM;uCACnB,MAAM,GAAG,MAAM;iDACL,MAAM,GAAG,MAAM,aAAa,MAAM,GAAG,MAAM;;;;6BAO/D,MAAM,GAAG,MAAM;;;;;;;;+BAYb,MAAM;mCACF,MAAM;;;;CAIlB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;6BA1ClB,MAAM,GAAG,MAAM;;;;6BAoBf,MAAM,GAAG,MAAM;;;;;;;;+BAYb,MAAM;mCACF,MAAM;;;;CAkBlB,CAAC"}
1
+ {"version":3,"file":"api-routes.d.ts","sourceRoot":"","sources":["../../../src/client/constants/api-routes.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BAqCZ,MAAM,GAAG,MAAM;;;;;;;;;6BAaf,MAAM,GAAG,MAAM;sCACN,MAAM,GAAG,MAAM;yCACZ,MAAM,GAAG,MAAM;oCACpB,MAAM,GAAG,MAAM;2CACR,MAAM,GAAG,MAAM;qCACrB,MAAM,GAAG,MAAM;mCACjB,MAAM,GAAG,MAAM;+BACnB,MAAM,GAAG,MAAM;gCACd,MAAM,GAAG,MAAM;0CACL,MAAM,GAAG,MAAM,aAAa,MAAM,GAAG,MAAM;2CAE1C,MAAM,GAAG,MAAM;uCACnB,MAAM,GAAG,MAAM;iDACL,MAAM,GAAG,MAAM,aAAa,MAAM,GAAG,MAAM;;;;6BAO/D,MAAM,GAAG,MAAM;;;;;;;6BAWf,MAAM,GAAG,MAAM;;;;oCAIR,MAAM,GAAG,MAAM;;;;;;+BAQpB,MAAM;mCACF,MAAM;;;;CAIlB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;6BArDlB,MAAM,GAAG,MAAM;;;;6BAoBf,MAAM,GAAG,MAAM;;;;;;;;+BAuBb,MAAM;mCACF,MAAM;;;;CAkBlB,CAAC"}
@@ -65,6 +65,16 @@ export const CORE_API_ROUTES = {
65
65
  PERMISSIONS: {
66
66
  BASE: '/admin/permissions',
67
67
  },
68
+ // ─── MediaController: /media ─────────────────────────────────────────────
69
+ MEDIA: {
70
+ BASE: '/media',
71
+ BY_ID: (id) => `/media/${id}`,
72
+ UPLOAD: '/media/upload',
73
+ STATS: '/media/stats',
74
+ FOLDERS: '/media/folders/list',
75
+ FOLDER_BY_ID: (id) => `/media/folders/${id}`,
76
+ CREATE_FOLDER: '/media/folders',
77
+ },
68
78
  // ─── Settings (app-level, không thuộc admin-core-api) ────────────────────
69
79
  SETTINGS: {
70
80
  BASE: '/settings',
@@ -1 +1 @@
1
- {"version":3,"file":"api-routes.js","sourceRoot":"","sources":["../../../src/client/constants/api-routes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api-routes.js","sourceRoot":"","sources":["../../../src/client/constants/api-routes.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,4EAA4E;IAC5E,IAAI,EAAE;QACJ,KAAK,EAAE,aAAa;QACpB,QAAQ,EAAE,gBAAgB;QAC1B,OAAO,EAAE,eAAe;QACxB,KAAK,EAAE,aAAa;QACpB,MAAM,EAAE,cAAc;QACtB,OAAO,EAAE,eAAe;QACxB,cAAc,EAAE,eAAe;QAC/B,eAAe,EAAE,uBAAuB;QACxC,WAAW,EAAE,mBAAmB;QAChC,iBAAiB,EAAE,yBAAyB;KAC7C;IAED,4EAA4E;IAC5E,QAAQ,EAAE;QACR,MAAM,EAAE,kBAAkB;QAC1B,KAAK,EAAE,iBAAiB;KACzB;IAED,4EAA4E;IAC5E,KAAK,EAAE;QACL,MAAM,EAAE,eAAe;QACvB,mBAAmB,EAAE,4BAA4B;KAClD;IAED,4EAA4E;IAC5E,UAAU,EAAE;QACV,MAAM,EAAE,oBAAoB;QAC5B,YAAY,EAAE,0BAA0B;QACxC,OAAO,EAAE,aAAa;KACvB;IAED,8EAA8E;IAC9E,QAAQ,EAAE;QACR,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,CAAC,EAAmB,EAAE,EAAE,CAAC,aAAa,EAAE,EAAE;QACjD,UAAU,EAAE,sBAAsB;KACnC;IAED,4EAA4E;IAC5E,WAAW,EAAE;QACX,KAAK,EAAE,oBAAoB;KAC5B;IAED,4EAA4E;IAC5E,WAAW,EAAE;QACX,IAAI,EAAE,cAAc;QACpB,KAAK,EAAE,oBAAoB;QAC3B,KAAK,EAAE,CAAC,EAAmB,EAAE,EAAE,CAAC,gBAAgB,EAAE,EAAE;QACpD,cAAc,EAAE,CAAC,EAAmB,EAAE,EAAE,CAAC,gBAAgB,EAAE,iBAAiB;QAC5E,iBAAiB,EAAE,CAAC,EAAmB,EAAE,EAAE,CAAC,gBAAgB,EAAE,oBAAoB;QAClF,YAAY,EAAE,CAAC,EAAmB,EAAE,EAAE,CAAC,gBAAgB,EAAE,eAAe;QACxE,mBAAmB,EAAE,CAAC,EAAmB,EAAE,EAAE,CAAC,gBAAgB,EAAE,sBAAsB;QACtF,aAAa,EAAE,CAAC,EAAmB,EAAE,EAAE,CAAC,gBAAgB,EAAE,SAAS;QACnE,WAAW,EAAE,CAAC,EAAmB,EAAE,EAAE,CAAC,gBAAgB,EAAE,cAAc;QACtE,OAAO,EAAE,CAAC,EAAmB,EAAE,EAAE,CAAC,gBAAgB,EAAE,UAAU;QAC9D,QAAQ,EAAE,CAAC,EAAmB,EAAE,EAAE,CAAC,gBAAgB,EAAE,WAAW;QAChE,cAAc,EAAE,CAAC,MAAuB,EAAE,SAA0B,EAAE,EAAE,CACtE,gBAAgB,MAAM,aAAa,SAAS,EAAE;QAChD,mBAAmB,EAAE,CAAC,EAAmB,EAAE,EAAE,CAAC,gBAAgB,EAAE,sBAAsB;QACtF,eAAe,EAAE,CAAC,EAAmB,EAAE,EAAE,CAAC,gBAAgB,EAAE,kBAAkB;QAC9E,qBAAqB,EAAE,CAAC,MAAuB,EAAE,SAA0B,EAAE,EAAE,CAC7E,gBAAgB,MAAM,oBAAoB,SAAS,EAAE;KACxD;IAED,4EAA4E;IAC5E,KAAK,EAAE;QACL,IAAI,EAAE,cAAc;QACpB,KAAK,EAAE,CAAC,EAAmB,EAAE,EAAE,CAAC,gBAAgB,EAAE,EAAE;KACrD;IAED,4EAA4E;IAC5E,WAAW,EAAE;QACX,IAAI,EAAE,oBAAoB;KAC3B;IAED,4EAA4E;IAC5E,KAAK,EAAE;QACL,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,CAAC,EAAmB,EAAE,EAAE,CAAC,UAAU,EAAE,EAAE;QAC9C,MAAM,EAAE,eAAe;QACvB,KAAK,EAAE,cAAc;QACrB,OAAO,EAAE,qBAAqB;QAC9B,YAAY,EAAE,CAAC,EAAmB,EAAE,EAAE,CAAC,kBAAkB,EAAE,EAAE;QAC7D,aAAa,EAAE,gBAAgB;KAChC;IAED,4EAA4E;IAC5E,QAAQ,EAAE;QACR,IAAI,EAAE,WAAW;QACjB,MAAM,EAAE,kBAAkB;QAC1B,MAAM,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,aAAa,GAAG,EAAE;QAC3C,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,mBAAmB,KAAK,EAAE;QACvD,GAAG,EAAE,eAAe;QACpB,WAAW,EAAE,uBAAuB;KACrC;CACO,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,IAAI,EAAE,eAAe,CAAC,IAAI;IAC1B,KAAK,EAAE;QACL,IAAI,EAAE,eAAe,CAAC,WAAW,CAAC,IAAI;QACtC,KAAK,EAAE,eAAe,CAAC,WAAW,CAAC,KAAK;KACzC;IACD,KAAK,EAAE,eAAe,CAAC,KAAK;IAC5B,WAAW,EAAE,eAAe,CAAC,WAAW;IACxC,QAAQ,EAAE,eAAe,CAAC,QAAQ;CAC1B,CAAC"}
@@ -13,7 +13,9 @@ export { CoreProviders } from './components/Providers';
13
13
  export * from './ui';
14
14
  export { default as ThemeToggle } from './components/ThemeToggle';
15
15
  export { default as PageHeader } from './components/PageHeader';
16
- export { LoginPage, ChangePasswordPage, ForgotPasswordPage, ResetPasswordPage, VerifyEmailPage, UnauthorizedPage, UsersPage, UserDetailPage, RolesPage, PermissionsPage, ProfilePage, UserPreferencesPage, } from './pages';
16
+ export { LoginPage, ChangePasswordPage, ForgotPasswordPage, ResetPasswordPage, VerifyEmailPage, UnauthorizedPage, UsersPage, UserDetailPage, RolesPage, PermissionsPage, ProfilePage, UserPreferencesPage, MediaPage, } from './pages';
17
+ export { MediaGrid, FolderTree, MediaUpload, MediaPicker, MediaBrowser } from './components/media';
18
+ export { uploadAdapterPlugin, MediaLibraryPlugin } from './lib/ckeditor-upload-adapter';
17
19
  export { ThemeProvider, useTheme } from './contexts/ThemeContext';
18
20
  export { useToast } from './hooks/useToast';
19
21
  export { cn, formatDate, formatDateTime } from './lib/utils';
@@ -22,4 +24,6 @@ export { PERMISSIONS, ROLES, ROLE_PERMISSIONS, checkPermission, checkAnyPermissi
22
24
  export type { Permission, RoleKey } from './constants/permissions';
23
25
  export type { User, AuthResponse, LoginCredentials } from './types/auth';
24
26
  export { RequestStatus, VerificationStatus } from './types/status';
27
+ export { MediaType } from './types/media';
28
+ export type { Media, MediaFolder, MediaQueryParams, MediaListResponse, MediaTypeFilter, UploadResponse, } from './types/media';
25
29
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AACjF,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AACjG,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAG/E,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAC1D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACjE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAC/D,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACnE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAGjD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAC9D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAGtD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAGtD,cAAc,MAAM,CAAA;AAGpB,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACjE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAG/D,OAAO,EACL,SAAS,EACT,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,SAAS,EACT,cAAc,EACd,SAAS,EACT,eAAe,EACf,WAAW,EACX,mBAAmB,GACpB,MAAM,SAAS,CAAA;AAGhB,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAGjE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAG3C,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAG5D,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AAC/E,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AACxI,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AAGlE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACxE,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AACjF,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AACjG,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAG/E,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAC1D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACjE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAC/D,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACnE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAGjD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAC9D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAGtD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAGtD,cAAc,MAAM,CAAA;AAGpB,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACjE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAG/D,OAAO,EACL,SAAS,EACT,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,SAAS,EACT,cAAc,EACd,SAAS,EACT,eAAe,EACf,WAAW,EACX,mBAAmB,EACnB,SAAS,GACV,MAAM,SAAS,CAAA;AAGhB,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAClG,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAGvF,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAGjE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAG3C,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAG5D,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AAC/E,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AACxI,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AAGlE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACxE,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAGlE,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AACzC,YAAY,EACV,KAAK,EACL,WAAW,EACX,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,cAAc,GACf,MAAM,eAAe,CAAA"}
@@ -19,7 +19,10 @@ export * from './ui';
19
19
  export { default as ThemeToggle } from './components/ThemeToggle';
20
20
  export { default as PageHeader } from './components/PageHeader';
21
21
  // Pages
22
- export { LoginPage, ChangePasswordPage, ForgotPasswordPage, ResetPasswordPage, VerifyEmailPage, UnauthorizedPage, UsersPage, UserDetailPage, RolesPage, PermissionsPage, ProfilePage, UserPreferencesPage, } from './pages';
22
+ export { LoginPage, ChangePasswordPage, ForgotPasswordPage, ResetPasswordPage, VerifyEmailPage, UnauthorizedPage, UsersPage, UserDetailPage, RolesPage, PermissionsPage, ProfilePage, UserPreferencesPage, MediaPage, } from './pages';
23
+ // Media Components
24
+ export { MediaGrid, FolderTree, MediaUpload, MediaPicker, MediaBrowser } from './components/media';
25
+ export { uploadAdapterPlugin, MediaLibraryPlugin } from './lib/ckeditor-upload-adapter';
23
26
  // Contexts
24
27
  export { ThemeProvider, useTheme } from './contexts/ThemeContext';
25
28
  // Hooks
@@ -30,4 +33,6 @@ export { cn, formatDate, formatDateTime } from './lib/utils';
30
33
  export { CORE_API_ROUTES, CORE_ADMIN_API_ROUTES } from './constants/api-routes';
31
34
  export { PERMISSIONS, ROLES, ROLE_PERMISSIONS, checkPermission, checkAnyPermission, checkAllPermissions } from './constants/permissions';
32
35
  export { RequestStatus, VerificationStatus } from './types/status';
36
+ // Media Types
37
+ export { MediaType } from './types/media';
33
38
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,SAAS;AACT,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAEjF,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAE/E,OAAO;AACP,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAC1D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACjE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAC/D,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACnE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAEjD,UAAU;AACV,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAC9D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAEtD,YAAY;AACZ,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAEtD,gBAAgB;AAChB,cAAc,MAAM,CAAA;AAEpB,aAAa;AACb,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACjE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAE/D,QAAQ;AACR,OAAO,EACL,SAAS,EACT,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,SAAS,EACT,cAAc,EACd,SAAS,EACT,eAAe,EACf,WAAW,EACX,mBAAmB,GACpB,MAAM,SAAS,CAAA;AAEhB,WAAW;AACX,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAEjE,QAAQ;AACR,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAE3C,MAAM;AACN,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE5D,YAAY;AACZ,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AAC/E,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAKxI,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,SAAS;AACT,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAEjF,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAE/E,OAAO;AACP,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAC1D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACjE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAC/D,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACnE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAEjD,UAAU;AACV,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAC9D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAEtD,YAAY;AACZ,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAEtD,gBAAgB;AAChB,cAAc,MAAM,CAAA;AAEpB,aAAa;AACb,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACjE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAE/D,QAAQ;AACR,OAAO,EACL,SAAS,EACT,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,SAAS,EACT,cAAc,EACd,SAAS,EACT,eAAe,EACf,WAAW,EACX,mBAAmB,EACnB,SAAS,GACV,MAAM,SAAS,CAAA;AAEhB,mBAAmB;AACnB,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAClG,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAEvF,WAAW;AACX,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAEjE,QAAQ;AACR,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAE3C,MAAM;AACN,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE5D,YAAY;AACZ,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AAC/E,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAKxI,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAElE,cAAc;AACd,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA"}
@@ -0,0 +1,8 @@
1
+ export declare function uploadAdapterPlugin(editor: any): void;
2
+ export declare class MediaLibraryPlugin {
3
+ private editor;
4
+ static get pluginName(): string;
5
+ constructor(editor: any);
6
+ init(): void;
7
+ }
8
+ //# sourceMappingURL=ckeditor-upload-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ckeditor-upload-adapter.d.ts","sourceRoot":"","sources":["../../../src/client/lib/ckeditor-upload-adapter.ts"],"names":[],"mappings":"AAwDA,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,GAAG,QAI9C;AAGD,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAM;IAEpB,MAAM,KAAK,UAAU,WAEpB;gBAEW,MAAM,EAAE,GAAG;IAIvB,IAAI;CAML"}
@@ -0,0 +1,75 @@
1
+ import { getApiClient } from '../auth/api-client';
2
+ import { CORE_API_ROUTES } from '../constants/api-routes';
3
+ class UploadAdapter {
4
+ constructor(loader) {
5
+ this.loader = loader;
6
+ }
7
+ async upload() {
8
+ const apiClient = getApiClient();
9
+ const file = await this.loader.file;
10
+ const formData = new FormData();
11
+ formData.append('files', file);
12
+ try {
13
+ // Hiển thị progress
14
+ this.loader.uploadTotal = file.size;
15
+ this.loader.uploaded = 0;
16
+ const response = await apiClient.post(CORE_API_ROUTES.MEDIA.UPLOAD, formData, {
17
+ headers: {
18
+ 'Content-Type': 'multipart/form-data',
19
+ },
20
+ onUploadProgress: (progressEvent) => {
21
+ if (progressEvent.total) {
22
+ this.loader.uploaded = progressEvent.loaded;
23
+ }
24
+ },
25
+ });
26
+ // Response từ backend trả về array của media items
27
+ const uploadedMedia = response.data[0];
28
+ if (!uploadedMedia || !uploadedMedia.url) {
29
+ throw new Error('Upload response is invalid');
30
+ }
31
+ return {
32
+ default: uploadedMedia.url,
33
+ };
34
+ }
35
+ catch (error) {
36
+ console.error('Upload failed:', error);
37
+ throw error;
38
+ }
39
+ }
40
+ abort() {
41
+ // Implement abort logic if needed
42
+ if (this.loader.uploadTask) {
43
+ this.loader.uploadTask.abort();
44
+ }
45
+ }
46
+ }
47
+ export function uploadAdapterPlugin(editor) {
48
+ editor.plugins.get('FileRepository').createUploadAdapter = (loader) => {
49
+ return new UploadAdapter(loader);
50
+ };
51
+ }
52
+ // Custom plugin để thêm button chọn từ media library
53
+ export class MediaLibraryPlugin {
54
+ static get pluginName() {
55
+ return 'MediaLibrary';
56
+ }
57
+ constructor(editor) {
58
+ this.editor = editor;
59
+ }
60
+ init() {
61
+ const editor = this.editor;
62
+ // Đăng ký command
63
+ editor.commands.add('insertMediaFromLibrary', new InsertMediaCommand(editor));
64
+ }
65
+ }
66
+ class InsertMediaCommand {
67
+ constructor(editor) {
68
+ this.editor = editor;
69
+ }
70
+ execute() {
71
+ // Trigger event để mở media browser
72
+ document.dispatchEvent(new CustomEvent('openMediaBrowser'));
73
+ }
74
+ }
75
+ //# sourceMappingURL=ckeditor-upload-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ckeditor-upload-adapter.js","sourceRoot":"","sources":["../../../src/client/lib/ckeditor-upload-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,MAAM,aAAa;IAGjB,YAAY,MAAW;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,MAAM;QACV,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;QACpC,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;QAChC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAE/B,IAAI,CAAC;YACH,oBAAoB;YACpB,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC;YACpC,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC;YAEzB,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE;gBAC5E,OAAO,EAAE;oBACP,cAAc,EAAE,qBAAqB;iBACtC;gBACD,gBAAgB,EAAE,CAAC,aAAkB,EAAE,EAAE;oBACvC,IAAI,aAAa,CAAC,KAAK,EAAE,CAAC;wBACxB,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC;oBAC9C,CAAC;gBACH,CAAC;aACF,CAAC,CAAC;YAEH,mDAAmD;YACnD,MAAM,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAEvC,IAAI,CAAC,aAAa,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC;gBACzC,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;YAChD,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,aAAa,CAAC,GAAG;aAC3B,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;YACvC,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK;QACH,kCAAkC;QAClC,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YAC3B,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACjC,CAAC;IACH,CAAC;CACF;AAED,MAAM,UAAU,mBAAmB,CAAC,MAAW;IAC7C,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,mBAAmB,GAAG,CAAC,MAAW,EAAE,EAAE;QACzE,OAAO,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC,CAAC;AACJ,CAAC;AAED,qDAAqD;AACrD,MAAM,OAAO,kBAAkB;IAG7B,MAAM,KAAK,UAAU;QACnB,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,YAAY,MAAW;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,IAAI;QACF,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAE3B,kBAAkB;QAClB,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,wBAAwB,EAAE,IAAI,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;IAChF,CAAC;CACF;AAED,MAAM,kBAAkB;IAGtB,YAAY,MAAW;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,OAAO;QACL,oCAAoC;QACpC,QAAQ,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAC9D,CAAC;CACF"}
@@ -0,0 +1,2 @@
1
+ export default function MediaPage(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=MediaPage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MediaPage.d.ts","sourceRoot":"","sources":["../../../src/client/pages/MediaPage.tsx"],"names":[],"mappings":"AA8BA,MAAM,CAAC,OAAO,UAAU,SAAS,4CA+yBhC"}