@emailmaker/filemanager 0.10.84 → 0.10.86

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.
package/file-manager.css CHANGED
@@ -1,3 +1,145 @@
1
+ @charset "UTF-8";
2
+ .em-filemanager .root {
3
+ padding: 16px 20px 24px;
4
+ max-width: 520px;
5
+ }
6
+
7
+ .em-filemanager .controls {
8
+ display: flex;
9
+ flex-direction: column;
10
+ gap: 20px;
11
+ }
12
+
13
+ .em-filemanager .segmentedControl {
14
+ background-color: var(--ant-color-fill-secondary, rgba(0, 0, 0, 0.06));
15
+ padding: 4px;
16
+ }
17
+
18
+ .em-filemanager .sizeRow {
19
+ display: grid;
20
+ grid-template-columns: 1fr 1fr;
21
+ gap: 16px 24px;
22
+ align-items: center;
23
+ width: 100%;
24
+ }
25
+
26
+ .em-filemanager .sizeRowLabel {
27
+ margin: 0;
28
+ }
29
+
30
+ /** InputNumber с prefix / suffix — ширина блока значения */
31
+ .em-filemanager .sizeInputNumber {
32
+ width: 100%;
33
+ }
34
+
35
+ .em-filemanager .sizeSuffix {
36
+ color: var(--ant-color-text-tertiary);
37
+ font-size: 13px;
38
+ line-height: 1;
39
+ -webkit-user-select: none;
40
+ user-select: none;
41
+ }
42
+
43
+ .em-filemanager .colorGrid {
44
+ display: grid;
45
+ grid-template-columns: 1fr 1fr;
46
+ gap: 16px 24px;
47
+ }
48
+
49
+ .em-filemanager .colorCell {
50
+ display: flex;
51
+ flex-direction: column;
52
+ align-items: stretch;
53
+ gap: 8px;
54
+ min-width: 0;
55
+ }
56
+
57
+ .em-filemanager .colorCellLabel {
58
+ margin: 0 !important;
59
+ white-space: nowrap;
60
+ }
61
+
62
+ .em-filemanager .colorPickerFull {
63
+ width: 100%;
64
+ justify-content: flex-start;
65
+ }
66
+
67
+ .em-filemanager .bgExtras {
68
+ grid-column: 1/-1;
69
+ margin-top: -8px;
70
+ display: flex;
71
+ flex-direction: column;
72
+ gap: 12px;
73
+ }
74
+
75
+ .em-filemanager .bgWarning {
76
+ margin: 0;
77
+ }
78
+
79
+ .em-filemanager .previewSection {
80
+ display: flex;
81
+ flex-direction: column;
82
+ gap: 12px;
83
+ }
84
+
85
+ .em-filemanager .previewTitle {
86
+ font-size: 14px;
87
+ font-weight: 600;
88
+ }
89
+
90
+ .em-filemanager .previewWrap {
91
+ display: flex;
92
+ justify-content: center;
93
+ align-items: center;
94
+ min-height: 220px;
95
+ padding: 16px;
96
+ border: 1px solid var(--ant-color-border-secondary, #f0f0f0);
97
+ border-radius: 8px;
98
+ background-color: var(--ant-color-fill-quaternary, #fafafa);
99
+ background-image: linear-gradient(45deg, #e8e8e8 25%, transparent 25%), linear-gradient(-45deg, #e8e8e8 25%, transparent 25%), linear-gradient(45deg, transparent 75%, #e8e8e8 75%), linear-gradient(-45deg, transparent 75%, #e8e8e8 75%);
100
+ background-size: 16px 16px;
101
+ background-position: 0 0, 0 8px, 8px -8px, -8px 0;
102
+ position: relative;
103
+ overflow: hidden;
104
+ }
105
+
106
+ .em-filemanager .scanLine {
107
+ position: absolute;
108
+ top: 50%;
109
+ left: 20%;
110
+ right: 20%;
111
+ height: 2px;
112
+ background-color: #ff4d4f;
113
+ box-shadow: 0 0 6px #ff4d4f;
114
+ z-index: 10;
115
+ pointer-events: none;
116
+ }
117
+
118
+ .em-filemanager .scanLineBarcode {
119
+ left: 10%;
120
+ right: 10%;
121
+ }
122
+
123
+ .em-filemanager .previewWrapBarcode {
124
+ min-height: 104px;
125
+ padding: 12px 16px;
126
+ }
127
+
128
+ .em-filemanager .previewCanvas {
129
+ display: block;
130
+ max-width: 100%;
131
+ height: auto;
132
+ background: transparent;
133
+ }
134
+
135
+ .em-filemanager .previewCanvasBarcode {
136
+ max-height: 120px;
137
+ width: auto;
138
+ }
139
+
140
+ .em-filemanager .actions {
141
+ margin-top: 8px;
142
+ }
1
143
  .em-filemanager .iconsTab {
2
144
  display: flex;
3
145
  flex-direction: column;
@@ -434,148 +576,6 @@
434
576
  background: rgba(255, 255, 255, 0.6);
435
577
  pointer-events: all;
436
578
  }
437
- @charset "UTF-8";
438
- .em-filemanager .root {
439
- padding: 16px 20px 24px;
440
- max-width: 520px;
441
- }
442
-
443
- .em-filemanager .controls {
444
- display: flex;
445
- flex-direction: column;
446
- gap: 20px;
447
- }
448
-
449
- .em-filemanager .segmentedControl {
450
- background-color: var(--ant-color-fill-secondary, rgba(0, 0, 0, 0.06));
451
- padding: 4px;
452
- }
453
-
454
- .em-filemanager .sizeRow {
455
- display: grid;
456
- grid-template-columns: 1fr 1fr;
457
- gap: 16px 24px;
458
- align-items: center;
459
- width: 100%;
460
- }
461
-
462
- .em-filemanager .sizeRowLabel {
463
- margin: 0;
464
- }
465
-
466
- /** InputNumber с prefix / suffix — ширина блока значения */
467
- .em-filemanager .sizeInputNumber {
468
- width: 100%;
469
- }
470
-
471
- .em-filemanager .sizeSuffix {
472
- color: var(--ant-color-text-tertiary);
473
- font-size: 13px;
474
- line-height: 1;
475
- -webkit-user-select: none;
476
- user-select: none;
477
- }
478
-
479
- .em-filemanager .colorGrid {
480
- display: grid;
481
- grid-template-columns: 1fr 1fr;
482
- gap: 16px 24px;
483
- }
484
-
485
- .em-filemanager .colorCell {
486
- display: flex;
487
- flex-direction: column;
488
- align-items: stretch;
489
- gap: 8px;
490
- min-width: 0;
491
- }
492
-
493
- .em-filemanager .colorCellLabel {
494
- margin: 0 !important;
495
- white-space: nowrap;
496
- }
497
-
498
- .em-filemanager .colorPickerFull {
499
- width: 100%;
500
- justify-content: flex-start;
501
- }
502
-
503
- .em-filemanager .bgExtras {
504
- grid-column: 1/-1;
505
- margin-top: -8px;
506
- display: flex;
507
- flex-direction: column;
508
- gap: 12px;
509
- }
510
-
511
- .em-filemanager .bgWarning {
512
- margin: 0;
513
- }
514
-
515
- .em-filemanager .previewSection {
516
- display: flex;
517
- flex-direction: column;
518
- gap: 12px;
519
- }
520
-
521
- .em-filemanager .previewTitle {
522
- font-size: 14px;
523
- font-weight: 600;
524
- }
525
-
526
- .em-filemanager .previewWrap {
527
- display: flex;
528
- justify-content: center;
529
- align-items: center;
530
- min-height: 220px;
531
- padding: 16px;
532
- border: 1px solid var(--ant-color-border-secondary, #f0f0f0);
533
- border-radius: 8px;
534
- background-color: var(--ant-color-fill-quaternary, #fafafa);
535
- background-image: linear-gradient(45deg, #e8e8e8 25%, transparent 25%), linear-gradient(-45deg, #e8e8e8 25%, transparent 25%), linear-gradient(45deg, transparent 75%, #e8e8e8 75%), linear-gradient(-45deg, transparent 75%, #e8e8e8 75%);
536
- background-size: 16px 16px;
537
- background-position: 0 0, 0 8px, 8px -8px, -8px 0;
538
- position: relative;
539
- overflow: hidden;
540
- }
541
-
542
- .em-filemanager .scanLine {
543
- position: absolute;
544
- top: 50%;
545
- left: 20%;
546
- right: 20%;
547
- height: 2px;
548
- background-color: #ff4d4f;
549
- box-shadow: 0 0 6px #ff4d4f;
550
- z-index: 10;
551
- pointer-events: none;
552
- }
553
-
554
- .em-filemanager .scanLineBarcode {
555
- left: 10%;
556
- right: 10%;
557
- }
558
-
559
- .em-filemanager .previewWrapBarcode {
560
- min-height: 104px;
561
- padding: 12px 16px;
562
- }
563
-
564
- .em-filemanager .previewCanvas {
565
- display: block;
566
- max-width: 100%;
567
- height: auto;
568
- background: transparent;
569
- }
570
-
571
- .em-filemanager .previewCanvasBarcode {
572
- max-height: 120px;
573
- width: auto;
574
- }
575
-
576
- .em-filemanager .actions {
577
- margin-top: 8px;
578
- }
579
579
  .em-filemanager .noFilesContainer {
580
580
  text-align: center;
581
581
  }
@@ -1,2 +1,2 @@
1
- export{D as FileContent,J as FileManagerApiError,C as FileManagerApp,x as FileManagerAppWithContext,E as FileModals,G as FolderSidebar,P as PixieOnlyApp,B as default,v as init,A as initFileManager,y as initPixieEditor,H as installResizeObserverErrorHandler,K as mapHttpStatusToErrorCode,I as uninstallResizeObserverErrorHandler,w as unmount,z as unmountPixieEditor}from"./file-manager-index-WsZVOL3e.js";import"react/jsx-runtime";import"react";import"react-dom/client";import"antd";import"antd/es/alert/ErrorBoundary";import"@ant-design/icons";import"react-dom";
1
+ export{D as FileContent,J as FileManagerApiError,C as FileManagerApp,x as FileManagerAppWithContext,E as FileModals,G as FolderSidebar,P as PixieOnlyApp,B as default,v as init,A as initFileManager,y as initPixieEditor,H as installResizeObserverErrorHandler,K as mapHttpStatusToErrorCode,I as uninstallResizeObserverErrorHandler,w as unmount,z as unmountPixieEditor}from"./file-manager-index-B4pgaHpG.js";import"react/jsx-runtime";import"react";import"react-dom/client";import"antd";import"antd/es/alert/ErrorBoundary";import"@ant-design/icons";import"react-dom";
2
2
  //# sourceMappingURL=file-manager.esm.js.map
package/file-manager.js CHANGED
@@ -31156,6 +31156,9 @@ function pathHistoryEqual(a, b) {
31156
31156
  }
31157
31157
  return a.every((p, i) => { var _a; return p.id === ((_a = b[i]) === null || _a === void 0 ? void 0 : _a.id); });
31158
31158
  }
31159
+ /** Без page/limit хост (EmailMaker) мог запрашивать весь каталог (per_page=10000). */
31160
+ const DEFAULT_FILES_LIST_PAGE = 1;
31161
+ const DEFAULT_FILES_LIST_PAGE_SIZE = 20;
31159
31162
  async function fetchBlobFromUrl(url) {
31160
31163
  const response = await fetch(url, { mode: 'cors' });
31161
31164
  if (!response.ok) {
@@ -31192,22 +31195,24 @@ const useFilesAPI = () => {
31192
31195
  const { setFiles, setLoading, setIsUrlModalVisible, setActiveLibraryItem, setPagination, setSelectedFolder, setPathHistory, } = actions;
31193
31196
  const { dataProviders } = options;
31194
31197
  const fetchFilesFromDataProvider = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useCallback)(async (params) => {
31195
- var _a, _b, _c;
31198
+ var _a, _b, _c, _d, _e;
31196
31199
  if (!(dataProviders === null || dataProviders === void 0 ? void 0 : dataProviders.getFiles))
31197
31200
  return [];
31198
31201
  const disablePagination = (_a = options === null || options === void 0 ? void 0 : options.config) === null || _a === void 0 ? void 0 : _a.disablePagination;
31202
+ const resolvedPage = disablePagination ? undefined : ((_b = params === null || params === void 0 ? void 0 : params.page) !== null && _b !== void 0 ? _b : DEFAULT_FILES_LIST_PAGE);
31203
+ const resolvedLimit = disablePagination ? undefined : ((_c = params === null || params === void 0 ? void 0 : params.limit) !== null && _c !== void 0 ? _c : DEFAULT_FILES_LIST_PAGE_SIZE);
31199
31204
  const { files, pagination: responsePagination } = await dataProviders.getFiles({
31200
31205
  folderId: (params === null || params === void 0 ? void 0 : params.folderId) !== 'folders' ? params === null || params === void 0 ? void 0 : params.folderId : undefined,
31201
31206
  noFolder: params === null || params === void 0 ? void 0 : params.noFolder,
31202
- search: ((_b = params === null || params === void 0 ? void 0 : params.search) === null || _b === void 0 ? void 0 : _b.trim()) || undefined,
31207
+ search: ((_d = params === null || params === void 0 ? void 0 : params.search) === null || _d === void 0 ? void 0 : _d.trim()) || undefined,
31203
31208
  sortBy: params === null || params === void 0 ? void 0 : params.sortBy,
31204
31209
  sortOrder: params === null || params === void 0 ? void 0 : params.sortOrder,
31205
- page: disablePagination ? undefined : params === null || params === void 0 ? void 0 : params.page,
31206
- limit: disablePagination ? undefined : params === null || params === void 0 ? void 0 : params.limit,
31210
+ page: resolvedPage,
31211
+ limit: resolvedLimit,
31207
31212
  itemType: (params === null || params === void 0 ? void 0 : params.itemType) || 'all',
31208
31213
  });
31209
31214
  if (setPagination) {
31210
- if ((_c = options === null || options === void 0 ? void 0 : options.config) === null || _c === void 0 ? void 0 : _c.disablePagination) {
31215
+ if ((_e = options === null || options === void 0 ? void 0 : options.config) === null || _e === void 0 ? void 0 : _e.disablePagination) {
31211
31216
  setPagination({ current: 1, pageSize: files.length || 1, total: files.length || 0 });
31212
31217
  }
31213
31218
  else if (responsePagination) {
@@ -31736,7 +31741,7 @@ const useFilesAPI = () => {
31736
31741
  }
31737
31742
  }, [dataProviders, notification, t]);
31738
31743
  const uploadFileWithProvider = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useCallback)(async (file, targetFolderId, suppressNotifications, noFolder) => {
31739
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
31744
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
31740
31745
  const effectiveFolderId = noFolder ? '' : (targetFolderId !== null && targetFolderId !== void 0 ? targetFolderId : (selectedFolder || ''));
31741
31746
  if (effectiveFolderId === 'Trash') {
31742
31747
  throw new Error(t('Upload to Trash is forbidden'));
@@ -31807,10 +31812,8 @@ const useFilesAPI = () => {
31807
31812
  const resultData = firstResult.data;
31808
31813
  if (resultData.id) {
31809
31814
  const targetFolder = ((_j = resultData.folderId) !== null && _j !== void 0 ? _j : folderId) || undefined;
31810
- // Обновляем список файлов для UI
31811
- await fetchFiles({ folderId: targetFolder, noFolder });
31812
- // Пытаемся получить актуальный файл напрямую из провайдера,
31813
- // чтобы не зависеть от асинхронного обновления state.files
31815
+ const refreshFolderId = (_k = targetFolder !== null && targetFolder !== void 0 ? targetFolder : selectedFolder) !== null && _k !== void 0 ? _k : '';
31816
+ await fetchFiles({ folderId: refreshFolderId, noFolder });
31814
31817
  let fileFromList = state.files.find(f => f.id === resultData.id);
31815
31818
  if (!fileFromList) {
31816
31819
  try {
@@ -31832,9 +31835,9 @@ const useFilesAPI = () => {
31832
31835
  return fileFromList;
31833
31836
  }
31834
31837
  // Если файл не найден в списке, возвращаем частичный объект
31835
- return Object.assign(Object.assign({}, resultData), { id: resultData.id, name: resultData.name || normalizedFileName, folderId: (_l = (_k = resultData.folderId) !== null && _k !== void 0 ? _k : folderId) !== null && _l !== void 0 ? _l : null, type: fileToUpload.type || file.type, size: fileToUpload.size, extension: fileExtension || normalizedFileName.split('.').pop() || '',
31838
+ return Object.assign(Object.assign({}, resultData), { id: resultData.id, name: resultData.name || normalizedFileName, folderId: (_m = (_l = resultData.folderId) !== null && _l !== void 0 ? _l : folderId) !== null && _m !== void 0 ? _m : null, type: fileToUpload.type || file.type, size: fileToUpload.size, extension: fileExtension || normalizedFileName.split('.').pop() || '',
31836
31839
  // Пробрасываем базовые preview-поля, если они есть в ответе провайдера
31837
- thumbnail: (_m = resultData.thumbnail) !== null && _m !== void 0 ? _m : undefined, url: (_o = resultData.url) !== null && _o !== void 0 ? _o : undefined, thumbnailUrl: (_p = resultData.thumbnailUrl) !== null && _p !== void 0 ? _p : undefined, isFolder: false, selected: false });
31840
+ thumbnail: (_o = resultData.thumbnail) !== null && _o !== void 0 ? _o : undefined, url: (_p = resultData.url) !== null && _p !== void 0 ? _p : undefined, thumbnailUrl: (_q = resultData.thumbnailUrl) !== null && _q !== void 0 ? _q : undefined, isFolder: false, selected: false });
31838
31841
  }
31839
31842
  }
31840
31843
  else {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@emailmaker/filemanager",
3
- "version": "0.10.84",
3
+ "version": "0.10.86",
4
4
  "main": "./file-manager.js",
5
5
  "module": "./file-manager.esm.js",
6
6
  "types": "./index.d.ts",