@emailmaker/filemanager 0.0.9 → 0.10.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.
- package/components/FolderSidebar/FolderSidebar.d.ts +1 -1
- package/components/PixieEditor/PixieController.d.ts +40 -0
- package/file-manager.css +187 -153
- package/file-manager.esm.js +10 -10
- package/file-manager.esm.js.map +1 -1
- package/file-manager.js +1 -1
- package/mockServiceWorker.js +1 -1
- package/package.json +30 -30
- package/sample-files.json +104 -104
- package/test-pixie-loading.html +108 -108
- package/types.d.ts +8 -0
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { PixieConfig } from 'pixie/dist/types/src/config/default-config';
|
|
2
|
+
import { Tools } from 'pixie/dist/types/src/tools/init-tools';
|
|
3
|
+
export declare const PIXIE_CONTAINER_CLASS_NAME = "fm-pixie-editor";
|
|
4
|
+
/**
|
|
5
|
+
* Контроллер для работы с редактором Pixie.
|
|
6
|
+
* Pixie использует глобальное состояние, поэтому повторная инициализация вызывает ошибки.
|
|
7
|
+
* Этот класс сохраняет контейнер, в который рендерится Pixie, и переиспользует его.
|
|
8
|
+
* Для поддержки нескольких экземпляров Pixie потребуется переработка.
|
|
9
|
+
*/
|
|
10
|
+
export declare class PixieController {
|
|
11
|
+
/** Контейнер для рендера Pixie */
|
|
12
|
+
private readonly _container;
|
|
13
|
+
/** Экземпляр Pixie */
|
|
14
|
+
private _instance;
|
|
15
|
+
constructor();
|
|
16
|
+
/** Возвращает селектор контейнера */
|
|
17
|
+
get className(): string;
|
|
18
|
+
/** Получает HTMLCanvasElement редактора, если он инициализирован */
|
|
19
|
+
get canvas(): HTMLCanvasElement | null;
|
|
20
|
+
/** Получает инструменты Pixie, если редактор инициализирован */
|
|
21
|
+
get tools(): Tools | undefined;
|
|
22
|
+
/** Проверяет, инициализирован ли редактор */
|
|
23
|
+
isLoaded(): boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Устанавливает конфигурацию Pixie
|
|
26
|
+
* @param config Конфигурация Pixie
|
|
27
|
+
*/
|
|
28
|
+
private _setConfig;
|
|
29
|
+
/**
|
|
30
|
+
* Отображает редактор Pixie в указанном родительском элементе
|
|
31
|
+
* @param config Конфигурация Pixie
|
|
32
|
+
* @param parent Родительский элемент, куда вставляется редактор
|
|
33
|
+
* @param nextSibling Элемент перед которым вставляется контейнер (по умолчанию первый ребёнок)
|
|
34
|
+
*/
|
|
35
|
+
show(config: PixieConfig, parent: ParentNode, nextSibling?: ChildNode | null): Promise<void>;
|
|
36
|
+
/** Закрывает редактор Pixie, удаляя контейнер из DOM */
|
|
37
|
+
close(): void;
|
|
38
|
+
}
|
|
39
|
+
/** Глобальный экземпляр контроллера Pixie */
|
|
40
|
+
export declare const pixieController: PixieController;
|
package/file-manager.css
CHANGED
|
@@ -392,6 +392,8 @@
|
|
|
392
392
|
.em-filemanager .uploadButton {
|
|
393
393
|
display: grid;
|
|
394
394
|
grid-template-columns: 3fr 1fr;
|
|
395
|
+
width: 100%;
|
|
396
|
+
margin-bottom: 8px;
|
|
395
397
|
}
|
|
396
398
|
|
|
397
399
|
.em-filemanager .folderMenu {
|
|
@@ -463,164 +465,185 @@
|
|
|
463
465
|
margin: 12px 0 !important;
|
|
464
466
|
}
|
|
465
467
|
|
|
466
|
-
|
|
467
|
-
.em-filemanager .uploadButton {
|
|
468
|
-
width: 100%;
|
|
469
|
-
margin-bottom: 8px;
|
|
470
|
-
}
|
|
471
|
-
|
|
472
|
-
/* .folderMenu :global(.ant-tree-treenode-selected) .folderLabelItem {
|
|
473
|
-
color: #1890ff !important;
|
|
474
|
-
} */
|
|
475
|
-
.em-filemanager .container {
|
|
476
|
-
position: fixed;
|
|
477
|
-
top: 20px;
|
|
478
|
-
left: 20px;
|
|
479
|
-
z-index: 1000;
|
|
480
|
-
max-width: 400px;
|
|
481
|
-
min-width: 320px;
|
|
482
|
-
}
|
|
483
|
-
|
|
484
|
-
.em-filemanager .uploadCard {
|
|
485
|
-
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
|
|
486
|
-
border-radius: 8px;
|
|
487
|
-
border: 1px solid #d9d9d9;
|
|
488
|
-
}
|
|
489
|
-
|
|
490
|
-
.em-filemanager .header {
|
|
491
|
-
display: flex;
|
|
492
|
-
justify-content: space-between;
|
|
493
|
-
align-items: center;
|
|
494
|
-
width: 100%;
|
|
495
|
-
}
|
|
496
|
-
|
|
497
|
-
.em-filemanager .headerButton {
|
|
498
|
-
padding: 0;
|
|
499
|
-
width: 24px;
|
|
500
|
-
height: 24px;
|
|
468
|
+
.em-filemanager .uploadButton .ant-btn {
|
|
501
469
|
display: flex;
|
|
502
470
|
align-items: center;
|
|
503
471
|
justify-content: center;
|
|
472
|
+
gap: 8px;
|
|
504
473
|
}
|
|
505
474
|
|
|
506
|
-
.
|
|
507
|
-
|
|
508
|
-
}
|
|
509
|
-
|
|
510
|
-
.em-filemanager .fileList {
|
|
511
|
-
max-height: 300px;
|
|
512
|
-
overflow-y: auto;
|
|
513
|
-
}
|
|
514
|
-
|
|
515
|
-
.em-filemanager .fileItem {
|
|
516
|
-
padding: 8px 0 !important;
|
|
517
|
-
border-bottom: 1px solid var(--colorBorderSecondary);
|
|
518
|
-
}
|
|
519
|
-
|
|
520
|
-
.em-filemanager .fileItem:last-child {
|
|
521
|
-
border-bottom: none;
|
|
522
|
-
}
|
|
523
|
-
|
|
524
|
-
.em-filemanager .fileAvatar {
|
|
525
|
-
background-color: transparent !important;
|
|
526
|
-
}
|
|
527
|
-
|
|
528
|
-
.em-filemanager .fileInfo {
|
|
529
|
-
display: flex;
|
|
530
|
-
flex-direction: column;
|
|
531
|
-
gap: 2px;
|
|
532
|
-
}
|
|
533
|
-
|
|
534
|
-
.em-filemanager .fileName {
|
|
535
|
-
font-size: 13px;
|
|
536
|
-
line-height: 1.2;
|
|
537
|
-
max-width: 200px;
|
|
538
|
-
}
|
|
539
|
-
|
|
540
|
-
.em-filemanager .fileSize {
|
|
541
|
-
font-size: 11px;
|
|
542
|
-
line-height: 1;
|
|
543
|
-
}
|
|
544
|
-
|
|
545
|
-
.em-filemanager .progressBar {
|
|
546
|
-
margin-top: 4px;
|
|
547
|
-
}
|
|
548
|
-
|
|
549
|
-
.em-filemanager .errorNote {
|
|
550
|
-
margin-top: 8px;
|
|
551
|
-
padding: 8px;
|
|
552
|
-
background-color: #fff2f0;
|
|
553
|
-
border: 1px solid #ffccc7;
|
|
554
|
-
border-radius: 4px;
|
|
555
|
-
}
|
|
556
|
-
|
|
557
|
-
/* Минимизированное состояние */
|
|
558
|
-
.em-filemanager .minimizedContainer {
|
|
559
|
-
position: fixed;
|
|
560
|
-
top: 20px;
|
|
561
|
-
left: 20px;
|
|
562
|
-
z-index: 1000;
|
|
563
|
-
}
|
|
564
|
-
|
|
565
|
-
.em-filemanager .minimizedButton {
|
|
566
|
-
font-size: 12px;
|
|
567
|
-
height: 28px;
|
|
568
|
-
padding: 0 12px;
|
|
569
|
-
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
|
|
570
|
-
}
|
|
571
|
-
|
|
572
|
-
/* Скроллбар для списка файлов */
|
|
573
|
-
.em-filemanager .fileList::-webkit-scrollbar {
|
|
574
|
-
width: 6px;
|
|
575
|
-
}
|
|
576
|
-
|
|
577
|
-
.em-filemanager .fileList::-webkit-scrollbar-track {
|
|
578
|
-
background: #f1f1f1;
|
|
579
|
-
border-radius: 3px;
|
|
580
|
-
}
|
|
581
|
-
|
|
582
|
-
.em-filemanager .fileList::-webkit-scrollbar-thumb {
|
|
583
|
-
background: #c1c1c1;
|
|
584
|
-
border-radius: 3px;
|
|
585
|
-
}
|
|
586
|
-
|
|
587
|
-
.em-filemanager .fileList::-webkit-scrollbar-thumb:hover {
|
|
588
|
-
background: #a8a8a8;
|
|
589
|
-
}
|
|
590
|
-
|
|
591
|
-
/* Анимации */
|
|
592
|
-
.em-filemanager .container {
|
|
593
|
-
animation: slideInFromLeft 0.3s ease-out;
|
|
594
|
-
}
|
|
475
|
+
/* .folderMenu :global(.ant-tree-treenode-selected) .folderLabelItem {
|
|
476
|
+
color: #1890ff !important;
|
|
477
|
+
} */
|
|
595
478
|
|
|
596
|
-
.em-filemanager .
|
|
597
|
-
|
|
479
|
+
.em-filemanager .buttonWrapper {
|
|
480
|
+
overflow: hidden;
|
|
481
|
+
margin-bottom: 24px;
|
|
482
|
+
border-radius: calc(var(--borderRadius) * 1px);
|
|
598
483
|
}
|
|
599
484
|
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
}
|
|
605
|
-
to {
|
|
606
|
-
transform: translateX(0);
|
|
607
|
-
opacity: 1;
|
|
608
|
-
}
|
|
485
|
+
.em-filemanager .uploadButtonTitle {
|
|
486
|
+
white-space: nowrap;
|
|
487
|
+
overflow: hidden;
|
|
488
|
+
text-overflow: ellipsis;
|
|
609
489
|
}
|
|
610
490
|
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
min-width: auto;
|
|
618
|
-
}
|
|
619
|
-
|
|
620
|
-
.em-filemanager .minimizedContainer {
|
|
621
|
-
left: 10px;
|
|
622
|
-
}
|
|
491
|
+
.em-filemanager .emptyFolderContainer {
|
|
492
|
+
margin-left: -40px;
|
|
493
|
+
-webkit-user-select: none;
|
|
494
|
+
user-select: none;
|
|
495
|
+
cursor: default;
|
|
496
|
+
color: var(--colorTextTertiary);
|
|
623
497
|
}
|
|
498
|
+
.em-filemanager .container {
|
|
499
|
+
position: fixed;
|
|
500
|
+
top: 20px;
|
|
501
|
+
left: 20px;
|
|
502
|
+
z-index: 1000;
|
|
503
|
+
max-width: 400px;
|
|
504
|
+
min-width: 320px;
|
|
505
|
+
}
|
|
506
|
+
|
|
507
|
+
.em-filemanager .uploadCard {
|
|
508
|
+
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
|
|
509
|
+
border-radius: 8px;
|
|
510
|
+
border: 1px solid #d9d9d9;
|
|
511
|
+
}
|
|
512
|
+
|
|
513
|
+
.em-filemanager .header {
|
|
514
|
+
display: flex;
|
|
515
|
+
justify-content: space-between;
|
|
516
|
+
align-items: center;
|
|
517
|
+
width: 100%;
|
|
518
|
+
}
|
|
519
|
+
|
|
520
|
+
.em-filemanager .headerButton {
|
|
521
|
+
padding: 0;
|
|
522
|
+
width: 24px;
|
|
523
|
+
height: 24px;
|
|
524
|
+
display: flex;
|
|
525
|
+
align-items: center;
|
|
526
|
+
justify-content: center;
|
|
527
|
+
}
|
|
528
|
+
|
|
529
|
+
.em-filemanager .headerButton:hover {
|
|
530
|
+
background-color: rgba(0, 0, 0, 0.04);
|
|
531
|
+
}
|
|
532
|
+
|
|
533
|
+
.em-filemanager .fileList {
|
|
534
|
+
max-height: 300px;
|
|
535
|
+
overflow-y: auto;
|
|
536
|
+
}
|
|
537
|
+
|
|
538
|
+
.em-filemanager .fileItem {
|
|
539
|
+
padding: 8px 0 !important;
|
|
540
|
+
border-bottom: 1px solid var(--colorBorderSecondary);
|
|
541
|
+
}
|
|
542
|
+
|
|
543
|
+
.em-filemanager .fileItem:last-child {
|
|
544
|
+
border-bottom: none;
|
|
545
|
+
}
|
|
546
|
+
|
|
547
|
+
.em-filemanager .fileAvatar {
|
|
548
|
+
background-color: transparent !important;
|
|
549
|
+
}
|
|
550
|
+
|
|
551
|
+
.em-filemanager .fileInfo {
|
|
552
|
+
display: flex;
|
|
553
|
+
flex-direction: column;
|
|
554
|
+
gap: 2px;
|
|
555
|
+
}
|
|
556
|
+
|
|
557
|
+
.em-filemanager .fileName {
|
|
558
|
+
font-size: 13px;
|
|
559
|
+
line-height: 1.2;
|
|
560
|
+
max-width: 200px;
|
|
561
|
+
}
|
|
562
|
+
|
|
563
|
+
.em-filemanager .fileSize {
|
|
564
|
+
font-size: 11px;
|
|
565
|
+
line-height: 1;
|
|
566
|
+
}
|
|
567
|
+
|
|
568
|
+
.em-filemanager .progressBar {
|
|
569
|
+
margin-top: 4px;
|
|
570
|
+
}
|
|
571
|
+
|
|
572
|
+
.em-filemanager .errorNote {
|
|
573
|
+
margin-top: 8px;
|
|
574
|
+
padding: 8px;
|
|
575
|
+
background-color: #fff2f0;
|
|
576
|
+
border: 1px solid #ffccc7;
|
|
577
|
+
border-radius: 4px;
|
|
578
|
+
}
|
|
579
|
+
|
|
580
|
+
/* Минимизированное состояние */
|
|
581
|
+
.em-filemanager .minimizedContainer {
|
|
582
|
+
position: fixed;
|
|
583
|
+
top: 20px;
|
|
584
|
+
left: 20px;
|
|
585
|
+
z-index: 1000;
|
|
586
|
+
}
|
|
587
|
+
|
|
588
|
+
.em-filemanager .minimizedButton {
|
|
589
|
+
font-size: 12px;
|
|
590
|
+
height: 28px;
|
|
591
|
+
padding: 0 12px;
|
|
592
|
+
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
|
|
593
|
+
}
|
|
594
|
+
|
|
595
|
+
/* Скроллбар для списка файлов */
|
|
596
|
+
.em-filemanager .fileList::-webkit-scrollbar {
|
|
597
|
+
width: 6px;
|
|
598
|
+
}
|
|
599
|
+
|
|
600
|
+
.em-filemanager .fileList::-webkit-scrollbar-track {
|
|
601
|
+
background: #f1f1f1;
|
|
602
|
+
border-radius: 3px;
|
|
603
|
+
}
|
|
604
|
+
|
|
605
|
+
.em-filemanager .fileList::-webkit-scrollbar-thumb {
|
|
606
|
+
background: #c1c1c1;
|
|
607
|
+
border-radius: 3px;
|
|
608
|
+
}
|
|
609
|
+
|
|
610
|
+
.em-filemanager .fileList::-webkit-scrollbar-thumb:hover {
|
|
611
|
+
background: #a8a8a8;
|
|
612
|
+
}
|
|
613
|
+
|
|
614
|
+
/* Анимации */
|
|
615
|
+
.em-filemanager .container {
|
|
616
|
+
animation: slideInFromLeft 0.3s ease-out;
|
|
617
|
+
}
|
|
618
|
+
|
|
619
|
+
.em-filemanager .minimizedContainer {
|
|
620
|
+
animation: slideInFromLeft 0.3s ease-out;
|
|
621
|
+
}
|
|
622
|
+
|
|
623
|
+
@keyframes slideInFromLeft {
|
|
624
|
+
from {
|
|
625
|
+
transform: translateX(-100%);
|
|
626
|
+
opacity: 0;
|
|
627
|
+
}
|
|
628
|
+
to {
|
|
629
|
+
transform: translateX(0);
|
|
630
|
+
opacity: 1;
|
|
631
|
+
}
|
|
632
|
+
}
|
|
633
|
+
|
|
634
|
+
/* Адаптивность */
|
|
635
|
+
@media (max-width: 768px) {
|
|
636
|
+
.em-filemanager .container {
|
|
637
|
+
left: 10px;
|
|
638
|
+
right: 10px;
|
|
639
|
+
max-width: calc(100vw - 20px);
|
|
640
|
+
min-width: auto;
|
|
641
|
+
}
|
|
642
|
+
|
|
643
|
+
.em-filemanager .minimizedContainer {
|
|
644
|
+
left: 10px;
|
|
645
|
+
}
|
|
646
|
+
}
|
|
624
647
|
|
|
625
648
|
.em-filemanager .gifTab {
|
|
626
649
|
padding: 16px;
|
|
@@ -1204,8 +1227,9 @@
|
|
|
1204
1227
|
}
|
|
1205
1228
|
.em-filemanager .file-manager__layout .file-manager-sider .ant-dropdown-button {
|
|
1206
1229
|
grid-template-columns: 10fr 40px;
|
|
1207
|
-
margin-bottom:
|
|
1230
|
+
margin-bottom: 0;
|
|
1208
1231
|
gap: 2px;
|
|
1232
|
+
border-radius: calc(var(--borderRadius) * 1px);
|
|
1209
1233
|
}
|
|
1210
1234
|
.em-filemanager .file-manager__layout .file-manager-sider .ant-dropdown-button button {
|
|
1211
1235
|
height: 44px;
|
|
@@ -1214,6 +1238,7 @@
|
|
|
1214
1238
|
.em-filemanager .file-manager__layout .file-manager-sider .ant-dropdown-button .ant-btn-compact-first-item {
|
|
1215
1239
|
justify-content: flex-start;
|
|
1216
1240
|
width: 100%;
|
|
1241
|
+
min-width: 160px;
|
|
1217
1242
|
border-radius: calc(var(--borderRadius) * 1px) 2px 2px calc(var(--borderRadius) * 1px);
|
|
1218
1243
|
background-color: var(--colorPrimary);
|
|
1219
1244
|
}
|
|
@@ -1273,9 +1298,10 @@
|
|
|
1273
1298
|
width: inherit;
|
|
1274
1299
|
}
|
|
1275
1300
|
.em-filemanager .file-manager__layout .file-manager-sider .ant-tree .ant-tree-switcher {
|
|
1276
|
-
height:
|
|
1277
|
-
width:
|
|
1278
|
-
margin-top:
|
|
1301
|
+
height: 36px;
|
|
1302
|
+
width: 36px;
|
|
1303
|
+
margin-top: 2px;
|
|
1304
|
+
margin-left: -4px;
|
|
1279
1305
|
display: flex;
|
|
1280
1306
|
align-items: center;
|
|
1281
1307
|
justify-content: center;
|
|
@@ -1283,8 +1309,15 @@
|
|
|
1283
1309
|
flex-shrink: 0; /* Запрещаем сжатие переключателя */
|
|
1284
1310
|
}
|
|
1285
1311
|
.em-filemanager .file-manager__layout .file-manager-sider .ant-tree .ant-tree-switcher:before {
|
|
1286
|
-
|
|
1287
|
-
|
|
1312
|
+
margin-top: 2px;
|
|
1313
|
+
margin-left: -2px;
|
|
1314
|
+
height: 36px;
|
|
1315
|
+
width: 36px;
|
|
1316
|
+
}
|
|
1317
|
+
.em-filemanager .file-manager__layout .file-manager-sider .ant-tree .ant-tree-switcher > .anticon {
|
|
1318
|
+
font-size: 14px;
|
|
1319
|
+
margin-left: -4px;
|
|
1320
|
+
margin-top: 2px;
|
|
1288
1321
|
}
|
|
1289
1322
|
.em-filemanager .file-manager__layout .file-manager-sider .ant-tree .folder-item-container {
|
|
1290
1323
|
width: 100%;
|
|
@@ -1516,6 +1549,7 @@
|
|
|
1516
1549
|
.em-filemanager .file-manager__layout .sidebar-container {
|
|
1517
1550
|
height: 100%;
|
|
1518
1551
|
padding: 36px 24px 36px 40px;
|
|
1552
|
+
overflow: hidden;
|
|
1519
1553
|
}
|
|
1520
1554
|
.em-filemanager .file-manager__layout .sidebar-container .ant-tree-treenode {
|
|
1521
1555
|
display: flex;
|