@snabcentr/client-ui 0.0.23 → 0.0.24

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.

Potentially problematic release.


This version of @snabcentr/client-ui might be problematic. Click here for more details.

Files changed (31) hide show
  1. package/esm2020/files/directives/index.mjs +3 -0
  2. package/esm2020/files/directives/tree-top.directive.mjs +63 -0
  3. package/esm2020/files/directives/tree.directive.mjs +47 -0
  4. package/esm2020/files/file-tree-item/file-tree-item.component.mjs +18 -0
  5. package/esm2020/files/files-and-documents.component.mjs +60 -0
  6. package/esm2020/files/files-and-documents.module.mjs +26 -0
  7. package/esm2020/files/index.mjs +6 -0
  8. package/esm2020/files/interfaces/tree-node.mjs +2 -0
  9. package/esm2020/files/services/index.mjs +3 -0
  10. package/esm2020/files/services/tree-icon.service.mjs +48 -0
  11. package/esm2020/files/services/tree-loader.service.mjs +60 -0
  12. package/esm2020/public-api.mjs +2 -1
  13. package/fesm2015/snabcentr-client-ui.mjs +287 -5
  14. package/fesm2015/snabcentr-client-ui.mjs.map +1 -1
  15. package/fesm2020/snabcentr-client-ui.mjs +285 -5
  16. package/fesm2020/snabcentr-client-ui.mjs.map +1 -1
  17. package/files/directives/index.d.ts +2 -0
  18. package/files/directives/tree-top.directive.d.ts +33 -0
  19. package/files/directives/tree.directive.d.ts +35 -0
  20. package/files/file-tree-item/file-tree-item.component.d.ts +9 -0
  21. package/files/files-and-documents.component.d.ts +27 -0
  22. package/files/files-and-documents.module.d.ts +16 -0
  23. package/files/index.d.ts +5 -0
  24. package/files/interfaces/tree-node.d.ts +29 -0
  25. package/files/services/index.d.ts +2 -0
  26. package/files/services/tree-icon.service.d.ts +23 -0
  27. package/files/services/tree-loader.service.d.ts +43 -0
  28. package/package.json +1 -1
  29. package/public-api.d.ts +1 -0
  30. package/release_notes.tmp +6 -1
  31. package/styles/tailwind/tailwind.scss +13 -4
@@ -0,0 +1,2 @@
1
+ export * from './tree-top.directive';
2
+ export * from './tree.directive';
@@ -0,0 +1,33 @@
1
+ import { TreeNode } from '../interfaces/tree-node';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * Директива отвечающая за корневые элементы дерева.
5
+ */
6
+ export declare class TreeTopDirective implements TreeNode {
7
+ /**
8
+ * Отображаемое имя корневого элемента дерева.
9
+ */
10
+ text: string;
11
+ /**
12
+ * Значок корневого элемента дерева.
13
+ */
14
+ icon: string;
15
+ /**
16
+ * Ссылка корневого элемента дерева.
17
+ */
18
+ link?: string;
19
+ /**
20
+ * Признак наличия дочерних элементов.
21
+ */
22
+ hasChildren: boolean;
23
+ /**
24
+ * Идентификатор корневого элемента дерева.
25
+ */
26
+ id?: number;
27
+ /**
28
+ * Дата создания корневого элемента дерева.
29
+ */
30
+ createdAt?: string;
31
+ static ɵfac: i0.ɵɵFactoryDeclaration<TreeTopDirective, never>;
32
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TreeTopDirective, "[scTopNodeText]", never, { "text": "scTopNodeText"; "icon": "scTopNodeIcon"; "link": "scTopNodeLink"; "hasChildren": "scTopNodeChilds"; "id": "scTopNodeParent"; "createdAt": "scTopNodeDate"; }, {}, never, never, false>;
33
+ }
@@ -0,0 +1,35 @@
1
+ import { TuiHandler } from '@taiga-ui/cdk';
2
+ import { TuiTreeService } from '@taiga-ui/kit';
3
+ import { TreeNode } from '../interfaces/tree-node';
4
+ import * as i0 from "@angular/core";
5
+ /**
6
+ * Директива отвечающая за обработку действий над элементами дерева.
7
+ */
8
+ export declare class TreeDirective {
9
+ readonly service: TuiTreeService<TreeNode>;
10
+ /**
11
+ * Карта данных дерева.
12
+ */
13
+ map: Map<TreeNode, boolean>;
14
+ /**
15
+ * Инициализирует экземпляр класса {@link TreeDirective}.
16
+ *
17
+ * @param service Сервис для работы с деревом.
18
+ */
19
+ constructor(service: TuiTreeService<TreeNode>);
20
+ /**
21
+ * Проверяет указанный элемент дерева на наличие дочерних элементов и возвращает массив дочерних элементов, если они есть, либо пустой массив.
22
+ *
23
+ * @param node Элемент дерева.
24
+ * @returns Возвращает массив типа TreeNode[].
25
+ */
26
+ childrenHandler: TuiHandler<TreeNode, readonly TreeNode[]>;
27
+ /**
28
+ * Обрабатывает нажатие на указанный элемент дерева.
29
+ *
30
+ * @param node Элемент дерева.
31
+ */
32
+ onToggled(node: TreeNode): void;
33
+ static ɵfac: i0.ɵɵFactoryDeclaration<TreeDirective, never>;
34
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TreeDirective, "[scTree]", ["scTree"], {}, {}, never, never, false>;
35
+ }
@@ -0,0 +1,9 @@
1
+ import { TuiTreeItemContentComponent } from '@taiga-ui/kit';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * Компонент для удаления стандартного значка элемента дерева.
5
+ */
6
+ export declare class FileTreeItemComponent extends TuiTreeItemContentComponent {
7
+ static ɵfac: i0.ɵɵFactoryDeclaration<FileTreeItemComponent, never>;
8
+ static ɵcmp: i0.ɵɵComponentDeclaration<FileTreeItemComponent, "sc-file-tree-item", never, {}, {}, never, never, false>;
9
+ }
@@ -0,0 +1,27 @@
1
+ import { ScFilesService } from '@snabcentr/client-core';
2
+ import { Observable } from 'rxjs';
3
+ import { TreeIconService } from './services/tree-icon.service';
4
+ import { TreeNode } from './interfaces/tree-node';
5
+ import * as i0 from "@angular/core";
6
+ /**
7
+ * Компонент файлов и документов.
8
+ */
9
+ export declare class FilesAndDocumentsComponent {
10
+ readonly loading: unknown;
11
+ readonly iconService: TreeIconService;
12
+ private readonly filesService;
13
+ /**
14
+ * Данные визуализации и их начальное получение.
15
+ */
16
+ data$: Observable<TreeNode[]>;
17
+ /**
18
+ * Инициализирует экземпляр класса {@link FilesAndDocumentsComponent}.
19
+ *
20
+ * @param loading Объект отвечающий за значок загрузки, в момент раскрытия элемента дерева.
21
+ * @param iconService Сервис для определения и назначения значка элементу дерева.
22
+ * @param filesService Сервис для загрузки файлов.
23
+ */
24
+ constructor(loading: unknown, iconService: TreeIconService, filesService: ScFilesService);
25
+ static ɵfac: i0.ɵɵFactoryDeclaration<FilesAndDocumentsComponent, never>;
26
+ static ɵcmp: i0.ɵɵComponentDeclaration<FilesAndDocumentsComponent, "sc-files-and-documents", never, {}, {}, never, never, false>;
27
+ }
@@ -0,0 +1,16 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./files-and-documents.component";
3
+ import * as i2 from "./directives/tree.directive";
4
+ import * as i3 from "./directives/tree-top.directive";
5
+ import * as i4 from "./file-tree-item/file-tree-item.component";
6
+ import * as i5 from "@angular/common";
7
+ import * as i6 from "@taiga-ui/kit";
8
+ import * as i7 from "@taiga-ui/core";
9
+ /**
10
+ * Модуль файлов и документов.
11
+ */
12
+ export declare class FilesAndDocumentsModule {
13
+ static ɵfac: i0.ɵɵFactoryDeclaration<FilesAndDocumentsModule, never>;
14
+ static ɵmod: i0.ɵɵNgModuleDeclaration<FilesAndDocumentsModule, [typeof i1.FilesAndDocumentsComponent, typeof i2.TreeDirective, typeof i3.TreeTopDirective, typeof i4.FileTreeItemComponent], [typeof i5.CommonModule, typeof i6.TuiTreeModule, typeof i7.TuiSvgModule, typeof i7.TuiLoaderModule, typeof i7.TuiLinkModule], [typeof i1.FilesAndDocumentsComponent]>;
15
+ static ɵinj: i0.ɵɵInjectorDeclaration<FilesAndDocumentsModule>;
16
+ }
@@ -0,0 +1,5 @@
1
+ export * from './files-and-documents.component';
2
+ export * from './files-and-documents.module';
3
+ export * from './services';
4
+ export * from './directives';
5
+ export * from './interfaces/tree-node';
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Интерфейс для реализации компонентами, отображающими элемент дерева.
3
+ */
4
+ export interface TreeNode {
5
+ /**
6
+ * Признак наличия дочерних элементов.
7
+ */
8
+ hasChildren: boolean;
9
+ /**
10
+ * Отображаемое имя элемента дерева.
11
+ */
12
+ text: string;
13
+ /**
14
+ * Отображаемый значок элемента дерева.
15
+ */
16
+ icon: string;
17
+ /**
18
+ * Идентификатор элемента дерева.
19
+ */
20
+ id?: number;
21
+ /**
22
+ * Ссылка элемента дерева.
23
+ */
24
+ link?: string;
25
+ /**
26
+ * Дата создания элемента дерева.
27
+ */
28
+ createdAt?: string;
29
+ }
@@ -0,0 +1,2 @@
1
+ export * from './tree-icon.service';
2
+ export * from './tree-loader.service';
@@ -0,0 +1,23 @@
1
+ import { ScDocumentInfo } from '@snabcentr/client-core/files/classes/sc-document-info';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * Сервис работающий с значками элементов дерева.
5
+ */
6
+ export declare class TreeIconService {
7
+ /**
8
+ * Назначает значок элементу дерева в зависимости от типа файла.
9
+ *
10
+ * @param info Объект пришедших данных о файле.
11
+ * @returns Возвращает название значка в виде строки.
12
+ */
13
+ getIconName(info: ScDocumentInfo): string;
14
+ /**
15
+ * Проверяет на признак наличия дочерних элементов.
16
+ *
17
+ * @param info Объект пришедших данных о файле.
18
+ * @returns Возвращает true при наличии дочерних элементов и false при их отсутсвии.
19
+ */
20
+ hasChildren(info: ScDocumentInfo): boolean;
21
+ static ɵfac: i0.ɵɵFactoryDeclaration<TreeIconService, never>;
22
+ static ɵprov: i0.ɵɵInjectableDeclaration<TreeIconService>;
23
+ }
@@ -0,0 +1,43 @@
1
+ import { ScFilesService } from '@snabcentr/client-core';
2
+ import { TuiTreeLoader } from '@taiga-ui/kit';
3
+ import { Observable } from 'rxjs';
4
+ import { TreeIconService } from './tree-icon.service';
5
+ import { TreeNode } from '../interfaces/tree-node';
6
+ import * as i0 from "@angular/core";
7
+ /**
8
+ * Сервис для асинхронного раскрытия вложенности.
9
+ */
10
+ export declare class TreeLoaderService implements TuiTreeLoader<TreeNode> {
11
+ private readonly filesService;
12
+ private readonly iconService;
13
+ /**
14
+ * Инициализирует экземпляр класса {@link TreeLoaderService}
15
+ *
16
+ * @param filesService Сервис для получения файлов директории.
17
+ * @param iconService Сервис для определения и назначения значка элементу дерева.
18
+ */
19
+ constructor(filesService: ScFilesService, iconService: TreeIconService);
20
+ /**
21
+ * Загружает дочерние элементы дерева.
22
+ *
23
+ * @param item Элемент дерева.
24
+ * @returns Массив дочерних элементов.
25
+ */
26
+ loadChildren(item: TreeNode): Observable<TreeNode[]>;
27
+ /**
28
+ * Проверяет указанный элемент дерева на наличие дочерних элементов и возвращает массив дочерних элементов, если они есть, либо пустой массив.
29
+ *
30
+ * @param node Элемент дерева.
31
+ * @returns Возвращает массив типа TreeNode[].
32
+ */
33
+ hasChildren(node: TreeNode): boolean;
34
+ /**
35
+ * Загружает и заполняет массив дочерних элементов.
36
+ *
37
+ * @param id Идентификатор директории, чьи дочернии элементы загружаются.
38
+ * @returns Возвращает массив дочерних элементов.
39
+ */
40
+ private initData;
41
+ static ɵfac: i0.ɵɵFactoryDeclaration<TreeLoaderService, never>;
42
+ static ɵprov: i0.ɵɵInjectableDeclaration<TreeLoaderService>;
43
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@snabcentr/client-ui",
3
- "version": "0.0.23",
3
+ "version": "0.0.24",
4
4
  "author": "Snabcentr Ltd.",
5
5
  "repository": "https://gitlab.snabcentr.met/web/angular/snabcentr-client-ui-lib",
6
6
  "license": "Commercial",
package/public-api.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export * from './banner';
2
2
  export * from './cart';
3
3
  export * from './catalog';
4
+ export * from './files';
4
5
  export * from './icons';
5
6
  export * from './loader';
6
7
  export * from './news';
package/release_notes.tmp CHANGED
@@ -1 +1,6 @@
1
- null
1
+ ## 0.0.24 (2023-12-11)
2
+
3
+ ### added (1 change)
4
+
5
+ - [#7823: Добавлен компонент файлов и документов](web_soft/libs/angular/snabcentr-client-ui-lib@d175cb6b17c77b3b264af4375fe4201a2a4ede49) ([merge request](web_soft/libs/angular/snabcentr-client-ui-lib!24))
6
+
@@ -698,6 +698,11 @@ video {
698
698
  margin: 2rem;
699
699
  }
700
700
 
701
+ .my-4 {
702
+ margin-top: 1rem;
703
+ margin-bottom: 1rem;
704
+ }
705
+
701
706
  .mb-1 {
702
707
  margin-bottom: 0.25rem;
703
708
  }
@@ -809,6 +814,10 @@ video {
809
814
  height: 14rem;
810
815
  }
811
816
 
817
+ .h-6 {
818
+ height: 1.5rem;
819
+ }
820
+
812
821
  .h-64 {
813
822
  height: 16rem;
814
823
  }
@@ -837,10 +846,6 @@ video {
837
846
  width: 7rem;
838
847
  }
839
848
 
840
- .w-3 {
841
- width: 0.75rem;
842
- }
843
-
844
849
  .w-3\/4 {
845
850
  width: 75%;
846
851
  }
@@ -865,6 +870,10 @@ video {
865
870
  width: 11rem;
866
871
  }
867
872
 
873
+ .w-6 {
874
+ width: 1.5rem;
875
+ }
876
+
868
877
  .w-70 {
869
878
  width: 17.5rem;
870
879
  }