@snabcentr/client-ui 0.15.9 → 0.17.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.

Potentially problematic release.


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

Files changed (39) hide show
  1. package/catalog/price-card/sc-price-card.component.d.ts +31 -22
  2. package/catalog/price-history/{sc-lang-RU.d.ts → sc-lang-ru.d.ts} +2 -0
  3. package/catalog/sc-catalog.module.d.ts +1 -1
  4. package/esm2020/cart/cart-item-mobile/sc-cart-item-mobile.component.mjs +1 -1
  5. package/esm2020/catalog/input-quantity/sc-input-quantity.component.mjs +1 -1
  6. package/esm2020/catalog/price-card/sc-price-card.component.mjs +31 -13
  7. package/esm2020/catalog/price-history/sc-lang-ru.mjs +115 -0
  8. package/esm2020/catalog/price-warehouse-stock/sc-price-warehouse-stock.component.mjs +1 -1
  9. package/esm2020/catalog/sc-catalog.module.mjs +28 -25
  10. package/esm2020/contacts/contacts-accordion/sc-contacts-accordion.component.mjs +1 -1
  11. package/esm2020/contragents/contragents-accordion/contragents-accordion-item/sc-contragents-accordion-item.component.mjs +1 -1
  12. package/esm2020/contragents/contragents-accordion/sc-contragents-accordion.component.mjs +1 -1
  13. package/esm2020/delivery-address/delivery-address-accordion/sc-delivery-address-accordion.component.mjs +1 -1
  14. package/esm2020/files/files-and-documents/files-and-documents.component.mjs +60 -0
  15. package/esm2020/files/files-and-documents.module.mjs +7 -7
  16. package/esm2020/files/index.mjs +3 -3
  17. package/esm2020/news/news-card/sc-news-card.component.mjs +12 -4
  18. package/esm2020/news/news-card-skeleton/sc-news-card-skeleton.component.mjs +12 -4
  19. package/esm2020/news/sc-news.module.mjs +5 -5
  20. package/esm2020/public-api.mjs +2 -2
  21. package/esm2020/share-button/sc-share-button.component.mjs +1 -1
  22. package/esm2020/tokens/index.mjs +2 -1
  23. package/esm2020/tokens/sc-min-length-search-term.mjs +6 -0
  24. package/fesm2015/snabcentr-client-ui.mjs +101 -62
  25. package/fesm2015/snabcentr-client-ui.mjs.map +1 -1
  26. package/fesm2020/snabcentr-client-ui.mjs +100 -61
  27. package/fesm2020/snabcentr-client-ui.mjs.map +1 -1
  28. package/files/{files-and-documents.component.d.ts → files-and-documents/files-and-documents.component.d.ts} +2 -2
  29. package/files/files-and-documents.module.d.ts +1 -1
  30. package/files/index.d.ts +2 -2
  31. package/news/news-card/sc-news-card.component.d.ts +4 -0
  32. package/news/news-card-skeleton/sc-news-card-skeleton.component.d.ts +4 -0
  33. package/package.json +2 -3
  34. package/public-api.d.ts +1 -1
  35. package/styles/tailwind/tailwind.scss +23 -25
  36. package/tokens/index.d.ts +1 -0
  37. package/tokens/sc-min-length-search-term.d.ts +5 -0
  38. package/esm2020/catalog/price-history/sc-lang-RU.mjs +0 -113
  39. package/esm2020/files/files-and-documents.component.mjs +0 -60
@@ -1,7 +1,7 @@
1
1
  import { ScFilesService } from '@snabcentr/client-core';
2
2
  import { Observable } from 'rxjs';
3
- import { TreeIconService } from './services/tree-icon.service';
4
- import { TreeNode } from './interfaces/tree-node';
3
+ import { TreeNode } from '../interfaces/tree-node';
4
+ import { TreeIconService } from '../services/tree-icon.service';
5
5
  import * as i0 from "@angular/core";
6
6
  /**
7
7
  * Компонент файлов и документов.
@@ -1,5 +1,5 @@
1
1
  import * as i0 from "@angular/core";
2
- import * as i1 from "./files-and-documents.component";
2
+ import * as i1 from "./files-and-documents/files-and-documents.component";
3
3
  import * as i2 from "./directives/tree.directive";
4
4
  import * as i3 from "./directives/tree-top.directive";
5
5
  import * as i4 from "./file-tree-item/file-tree-item.component";
package/files/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- export * from './files-and-documents.component';
2
- export * from './files-and-documents.module';
1
+ export * from './files-and-documents/files-and-documents.component';
3
2
  export * from './services';
4
3
  export * from './directives';
5
4
  export * from './interfaces/tree-node';
5
+ export * from './files-and-documents.module';
@@ -17,6 +17,10 @@ export declare class ScNewsCardComponent {
17
17
  * Событие клика по кнопке "Поделиться" карточки новости.
18
18
  */
19
19
  clickShareEvent: EventEmitter<void>;
20
+ /**
21
+ * Признак того, что этот компонент отображается на мобильном устройстве.
22
+ */
23
+ readonly isMobile: boolean;
20
24
  static ɵfac: i0.ɵɵFactoryDeclaration<ScNewsCardComponent, never>;
21
25
  static ɵcmp: i0.ɵɵComponentDeclaration<ScNewsCardComponent, "sc-news-card", never, { "news": "news"; }, { "clickCardEvent": "clickCardEvent"; "clickShareEvent": "clickShareEvent"; }, never, never, false>;
22
26
  }
@@ -7,6 +7,10 @@ export declare class ScNewsCardSkeletonComponent {
7
7
  * Признак, что необходимо отобразить скелетон изображения новости.
8
8
  */
9
9
  hasImg: boolean;
10
+ /**
11
+ * Признак того, что этот компонент отображается на мобильном устройстве.
12
+ */
13
+ readonly isMobile: boolean;
10
14
  static ɵfac: i0.ɵɵFactoryDeclaration<ScNewsCardSkeletonComponent, never>;
11
15
  static ɵcmp: i0.ɵɵComponentDeclaration<ScNewsCardSkeletonComponent, "sc-news-card-skeleton", never, { "hasImg": "hasImg"; }, {}, never, never, false>;
12
16
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@snabcentr/client-ui",
3
- "version": "0.15.9",
3
+ "version": "0.17.0",
4
4
  "author": "Snabcentr Ltd.",
5
5
  "repository": "https://gitlab.snabcentr.met/web/angular/snabcentr-client-ui-lib",
6
6
  "license": "Commercial",
@@ -14,7 +14,7 @@
14
14
  "@angular/platform-browser": ">=14.2.12",
15
15
  "@angular/platform-browser-dynamic": ">=14.2.12",
16
16
  "@angular/material": ">=14.2.7",
17
- "@snabcentr/client-core": ">=0.12.0",
17
+ "@snabcentr/client-core": ">=0.14.0",
18
18
  "@maskito/angular": ">=1.7.0",
19
19
  "@maskito/core": ">=1.7.0",
20
20
  "@taiga-ui/addon-charts": ">=3.42.1",
@@ -33,7 +33,6 @@
33
33
  "@tinkoff/ng-polymorpheus": ">=4.1.0",
34
34
  "@ng-web-apis/intersection-observer": ">=3.0.0",
35
35
  "echarts": "^5.4.3",
36
- "moment": ">=2.29.4",
37
36
  "ngx-echarts": "^14.0.0",
38
37
  "rxjs": ">=7.5.0",
39
38
  "zone.js": ">=0.12.0"
package/public-api.d.ts CHANGED
@@ -18,5 +18,5 @@ export * from './share-button';
18
18
  export * from './user';
19
19
  export * from './validators';
20
20
  export * from './verification';
21
- export * from './tokens';
22
21
  export * from './profile';
22
+ export * from './tokens';
@@ -772,6 +772,11 @@ video {
772
772
  display: none;
773
773
  }
774
774
 
775
+ .size-6 {
776
+ width: 1.5rem;
777
+ height: 1.5rem;
778
+ }
779
+
775
780
  .\!h-20 {
776
781
  height: 5rem !important;
777
782
  }
@@ -820,10 +825,6 @@ video {
820
825
  height: 60%;
821
826
  }
822
827
 
823
- .h-32 {
824
- height: 8rem;
825
- }
826
-
827
828
  .h-4 {
828
829
  height: 1rem;
829
830
  }
@@ -840,18 +841,10 @@ video {
840
841
  height: 14rem;
841
842
  }
842
843
 
843
- .h-6 {
844
- height: 1.5rem;
845
- }
846
-
847
844
  .h-8 {
848
845
  height: 2rem;
849
846
  }
850
847
 
851
- .h-82 {
852
- height: 20.5rem;
853
- }
854
-
855
848
  .h-\[19rem\] {
856
849
  height: 19rem;
857
850
  }
@@ -904,14 +897,6 @@ video {
904
897
  width: 10rem;
905
898
  }
906
899
 
907
- .w-6 {
908
- width: 1.5rem;
909
- }
910
-
911
- .w-70 {
912
- width: 17.5rem;
913
- }
914
-
915
900
  .w-8 {
916
901
  width: 2rem;
917
902
  }
@@ -924,7 +909,7 @@ video {
924
909
  width: 100%;
925
910
  }
926
911
 
927
- .min-w-\[10rem\] {
912
+ .min-w-40 {
928
913
  min-width: 10rem;
929
914
  }
930
915
 
@@ -1119,10 +1104,6 @@ video {
1119
1104
  border-radius: 0.25rem;
1120
1105
  }
1121
1106
 
1122
- .rounded-lg {
1123
- border-radius: 0.5rem;
1124
- }
1125
-
1126
1107
  .rounded-md {
1127
1108
  border-radius: 0.375rem;
1128
1109
  }
@@ -1232,6 +1213,11 @@ video {
1232
1213
  padding-right: 0.25rem;
1233
1214
  }
1234
1215
 
1216
+ .px-2 {
1217
+ padding-left: 0.5rem;
1218
+ padding-right: 0.5rem;
1219
+ }
1220
+
1235
1221
  .px-3 {
1236
1222
  padding-left: 0.75rem;
1237
1223
  padding-right: 0.75rem;
@@ -1266,10 +1252,18 @@ video {
1266
1252
  padding-bottom: 0.25rem;
1267
1253
  }
1268
1254
 
1255
+ .pb-4 {
1256
+ padding-bottom: 1rem;
1257
+ }
1258
+
1269
1259
  .pl-4 {
1270
1260
  padding-left: 1rem;
1271
1261
  }
1272
1262
 
1263
+ .pt-2 {
1264
+ padding-top: 0.5rem;
1265
+ }
1266
+
1273
1267
  .text-left {
1274
1268
  text-align: left;
1275
1269
  }
@@ -1324,6 +1318,10 @@ video {
1324
1318
  font-weight: 700;
1325
1319
  }
1326
1320
 
1321
+ .font-extrabold {
1322
+ font-weight: 800;
1323
+ }
1324
+
1327
1325
  .font-medium {
1328
1326
  font-weight: 500;
1329
1327
  }
package/tokens/index.d.ts CHANGED
@@ -1 +1,2 @@
1
1
  export * from './sc-linear-values-token';
2
+ export * from './sc-min-length-search-term';
@@ -0,0 +1,5 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ /**
3
+ * Токен минимального количества введенных символов в поиске для подсветки терма.
4
+ */
5
+ export declare const SC_MIN_LENGTH_SEARCH_TERM: InjectionToken<number>;
@@ -1,113 +0,0 @@
1
- /**
2
- * Language: Russian.
3
- */
4
- export default {
5
- time: {
6
- month: ['Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'],
7
- monthAbbr: ['Янв', 'Фев', 'Мар', 'Апр', 'Май', 'Июн', 'Июл', 'Авг', 'Сен', 'Окт', 'Ноя', 'Дек'],
8
- dayOfWeek: ['Воскресенье', 'Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота'],
9
- dayOfWeekAbbr: ['вс', 'пн', 'вт', 'ср', 'чт', 'пт', 'сб']
10
- },
11
- legend: {
12
- selector: {
13
- all: 'Всё',
14
- inverse: 'Обратить'
15
- }
16
- },
17
- toolbox: {
18
- brush: {
19
- title: {
20
- rect: 'Выделить область',
21
- polygon: 'Инструмент «Лассо»',
22
- lineX: 'Горизонтальное выделение',
23
- lineY: 'Вертикальное выделение',
24
- keep: 'Оставить выбранное',
25
- clear: 'Очистить выбранное'
26
- }
27
- },
28
- dataView: {
29
- title: 'Данные',
30
- lang: ['Данные', 'Закрыть', 'Обновить']
31
- },
32
- dataZoom: {
33
- title: {
34
- zoom: 'Увеличить',
35
- back: 'Сбросить увеличение'
36
- }
37
- },
38
- magicType: {
39
- title: {
40
- line: 'Переключиться на линейный график',
41
- bar: 'Переключиться на столбчатую диаграмму',
42
- stack: 'Стопка',
43
- tiled: 'Плитка'
44
- }
45
- },
46
- restore: {
47
- title: 'Восстановить'
48
- },
49
- saveAsImage: {
50
- title: 'Сохранить картинку',
51
- lang: ['Правый клик, чтобы сохранить картинку']
52
- }
53
- },
54
- series: {
55
- typeNames: {
56
- pie: 'Круговая диаграмма',
57
- bar: 'Столбчатая диаграмма',
58
- line: 'Линейный график',
59
- scatter: 'Точечная диаграмма',
60
- effectScatter: 'Точечная диаграмма с волнами',
61
- radar: 'Лепестковая диаграмма',
62
- tree: 'Дерево',
63
- treemap: 'Плоское дерево',
64
- boxplot: 'Ящик с усами',
65
- candlestick: 'Свечной график',
66
- k: 'График К-линий',
67
- heatmap: 'Тепловая карта',
68
- map: 'Карта',
69
- parallel: 'Диаграмма параллельных координат',
70
- lines: 'Линейный граф',
71
- graph: 'Граф отношений',
72
- sankey: 'Диаграмма Санкей',
73
- funnel: 'Воронкообразная диаграмма',
74
- gauge: 'Шкала',
75
- pictorialBar: 'Столбец-картинка',
76
- themeRiver: 'Тематическая река',
77
- sunburst: 'Солнечные лучи'
78
- }
79
- },
80
- aria: {
81
- general: {
82
- withTitle: 'Это график, показывающий "{title}"',
83
- withoutTitle: 'Это график'
84
- },
85
- series: {
86
- single: {
87
- prefix: '',
88
- withName: ' с типом {seriesType} и именем {seriesName}.',
89
- withoutName: ' с типом {seriesType}.'
90
- },
91
- multiple: {
92
- prefix: '. Он состоит из {seriesCount} серий.',
93
- withName: ' Серия {seriesId} имеет тип {seriesType} и показывает {seriesName}.',
94
- withoutName: ' Серия {seriesId} имеет тип {seriesType}.',
95
- separator: {
96
- middle: '',
97
- end: ''
98
- }
99
- }
100
- },
101
- data: {
102
- allData: 'Данные таковы: ',
103
- partialData: 'Первые {displayCnt} элементов: ',
104
- withName: 'значение для {name} — {value}',
105
- withoutName: '{value}',
106
- separator: {
107
- middle: ', ',
108
- end: '. '
109
- }
110
- }
111
- }
112
- };
113
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtbGFuZy1SVS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9jYXRhbG9nL3ByaWNlLWhpc3Rvcnkvc2MtbGFuZy1SVS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILGVBQWU7SUFDWCxJQUFJLEVBQUU7UUFDRixLQUFLLEVBQUUsQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFNBQVMsQ0FBQztRQUMzSCxTQUFTLEVBQUUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQztRQUMvRixTQUFTLEVBQUUsQ0FBQyxhQUFhLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUM7UUFDOUYsYUFBYSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO0tBQzVEO0lBQ0QsTUFBTSxFQUFFO1FBQ0osUUFBUSxFQUFFO1lBQ04sR0FBRyxFQUFFLEtBQUs7WUFDVixPQUFPLEVBQUUsVUFBVTtTQUN0QjtLQUNKO0lBQ0QsT0FBTyxFQUFFO1FBQ0wsS0FBSyxFQUFFO1lBQ0gsS0FBSyxFQUFFO2dCQUNILElBQUksRUFBRSxrQkFBa0I7Z0JBQ3hCLE9BQU8sRUFBRSxvQkFBb0I7Z0JBQzdCLEtBQUssRUFBRSwwQkFBMEI7Z0JBQ2pDLEtBQUssRUFBRSx3QkFBd0I7Z0JBQy9CLElBQUksRUFBRSxvQkFBb0I7Z0JBQzFCLEtBQUssRUFBRSxvQkFBb0I7YUFDOUI7U0FDSjtRQUNELFFBQVEsRUFBRTtZQUNOLEtBQUssRUFBRSxRQUFRO1lBQ2YsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxVQUFVLENBQUM7U0FDMUM7UUFDRCxRQUFRLEVBQUU7WUFDTixLQUFLLEVBQUU7Z0JBQ0gsSUFBSSxFQUFFLFdBQVc7Z0JBQ2pCLElBQUksRUFBRSxxQkFBcUI7YUFDOUI7U0FDSjtRQUNELFNBQVMsRUFBRTtZQUNQLEtBQUssRUFBRTtnQkFDSCxJQUFJLEVBQUUsa0NBQWtDO2dCQUN4QyxHQUFHLEVBQUUsdUNBQXVDO2dCQUM1QyxLQUFLLEVBQUUsUUFBUTtnQkFDZixLQUFLLEVBQUUsUUFBUTthQUNsQjtTQUNKO1FBQ0QsT0FBTyxFQUFFO1lBQ0wsS0FBSyxFQUFFLGNBQWM7U0FDeEI7UUFDRCxXQUFXLEVBQUU7WUFDVCxLQUFLLEVBQUUsb0JBQW9CO1lBQzNCLElBQUksRUFBRSxDQUFDLHVDQUF1QyxDQUFDO1NBQ2xEO0tBQ0o7SUFDRCxNQUFNLEVBQUU7UUFDSixTQUFTLEVBQUU7WUFDUCxHQUFHLEVBQUUsb0JBQW9CO1lBQ3pCLEdBQUcsRUFBRSxzQkFBc0I7WUFDM0IsSUFBSSxFQUFFLGlCQUFpQjtZQUN2QixPQUFPLEVBQUUsb0JBQW9CO1lBQzdCLGFBQWEsRUFBRSw4QkFBOEI7WUFDN0MsS0FBSyxFQUFFLHVCQUF1QjtZQUM5QixJQUFJLEVBQUUsUUFBUTtZQUNkLE9BQU8sRUFBRSxnQkFBZ0I7WUFDekIsT0FBTyxFQUFFLGNBQWM7WUFDdkIsV0FBVyxFQUFFLGdCQUFnQjtZQUM3QixDQUFDLEVBQUUsZ0JBQWdCO1lBQ25CLE9BQU8sRUFBRSxnQkFBZ0I7WUFDekIsR0FBRyxFQUFFLE9BQU87WUFDWixRQUFRLEVBQUUsa0NBQWtDO1lBQzVDLEtBQUssRUFBRSxlQUFlO1lBQ3RCLEtBQUssRUFBRSxnQkFBZ0I7WUFDdkIsTUFBTSxFQUFFLGtCQUFrQjtZQUMxQixNQUFNLEVBQUUsMkJBQTJCO1lBQ25DLEtBQUssRUFBRSxPQUFPO1lBQ2QsWUFBWSxFQUFFLGtCQUFrQjtZQUNoQyxVQUFVLEVBQUUsbUJBQW1CO1lBQy9CLFFBQVEsRUFBRSxnQkFBZ0I7U0FDN0I7S0FDSjtJQUNELElBQUksRUFBRTtRQUNGLE9BQU8sRUFBRTtZQUNMLFNBQVMsRUFBRSxvQ0FBb0M7WUFDL0MsWUFBWSxFQUFFLFlBQVk7U0FDN0I7UUFDRCxNQUFNLEVBQUU7WUFDSixNQUFNLEVBQUU7Z0JBQ0osTUFBTSxFQUFFLEVBQUU7Z0JBQ1YsUUFBUSxFQUFFLDhDQUE4QztnQkFDeEQsV0FBVyxFQUFFLHdCQUF3QjthQUN4QztZQUNELFFBQVEsRUFBRTtnQkFDTixNQUFNLEVBQUUsc0NBQXNDO2dCQUM5QyxRQUFRLEVBQUUscUVBQXFFO2dCQUMvRSxXQUFXLEVBQUUsMkNBQTJDO2dCQUN4RCxTQUFTLEVBQUU7b0JBQ1AsTUFBTSxFQUFFLEVBQUU7b0JBQ1YsR0FBRyxFQUFFLEVBQUU7aUJBQ1Y7YUFDSjtTQUNKO1FBQ0QsSUFBSSxFQUFFO1lBQ0YsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixXQUFXLEVBQUUsaUNBQWlDO1lBQzlDLFFBQVEsRUFBRSwrQkFBK0I7WUFDekMsV0FBVyxFQUFFLFNBQVM7WUFDdEIsU0FBUyxFQUFFO2dCQUNQLE1BQU0sRUFBRSxJQUFJO2dCQUNaLEdBQUcsRUFBRSxJQUFJO2FBQ1o7U0FDSjtLQUNKO0NBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogTGFuZ3VhZ2U6IFJ1c3NpYW4uXG4gKi9cbmV4cG9ydCBkZWZhdWx0IHtcbiAgICB0aW1lOiB7XG4gICAgICAgIG1vbnRoOiBbJ9Cv0L3QstCw0YDRjCcsICfQpNC10LLRgNCw0LvRjCcsICfQnNCw0YDRgicsICfQkNC/0YDQtdC70YwnLCAn0JzQsNC5JywgJ9CY0Y7QvdGMJywgJ9CY0Y7Qu9GMJywgJ9CQ0LLQs9GD0YHRgicsICfQodC10L3RgtGP0LHRgNGMJywgJ9Ce0LrRgtGP0LHRgNGMJywgJ9Cd0L7Rj9Cx0YDRjCcsICfQlNC10LrQsNCx0YDRjCddLFxuICAgICAgICBtb250aEFiYnI6IFsn0K/QvdCyJywgJ9Ck0LXQsicsICfQnNCw0YAnLCAn0JDQv9GAJywgJ9Cc0LDQuScsICfQmNGO0L0nLCAn0JjRjtC7JywgJ9CQ0LLQsycsICfQodC10L0nLCAn0J7QutGCJywgJ9Cd0L7RjycsICfQlNC10LonXSxcbiAgICAgICAgZGF5T2ZXZWVrOiBbJ9CS0L7RgdC60YDQtdGB0LXQvdGM0LUnLCAn0J/QvtC90LXQtNC10LvRjNC90LjQuicsICfQktGC0L7RgNC90LjQuicsICfQodGA0LXQtNCwJywgJ9Cn0LXRgtCy0LXRgNCzJywgJ9Cf0Y/RgtC90LjRhtCwJywgJ9Ch0YPQsdCx0L7RgtCwJ10sXG4gICAgICAgIGRheU9mV2Vla0FiYnI6IFsn0LLRgScsICfQv9C9JywgJ9Cy0YInLCAn0YHRgCcsICfRh9GCJywgJ9C/0YInLCAn0YHQsSddXG4gICAgfSxcbiAgICBsZWdlbmQ6IHtcbiAgICAgICAgc2VsZWN0b3I6IHtcbiAgICAgICAgICAgIGFsbDogJ9CS0YHRkScsXG4gICAgICAgICAgICBpbnZlcnNlOiAn0J7QsdGA0LDRgtC40YLRjCdcbiAgICAgICAgfVxuICAgIH0sXG4gICAgdG9vbGJveDoge1xuICAgICAgICBicnVzaDoge1xuICAgICAgICAgICAgdGl0bGU6IHtcbiAgICAgICAgICAgICAgICByZWN0OiAn0JLRi9C00LXQu9C40YLRjCDQvtCx0LvQsNGB0YLRjCcsXG4gICAgICAgICAgICAgICAgcG9seWdvbjogJ9CY0L3RgdGC0YDRg9C80LXQvdGCIMKr0JvQsNGB0YHQvsK7JyxcbiAgICAgICAgICAgICAgICBsaW5lWDogJ9CT0L7RgNC40LfQvtC90YLQsNC70YzQvdC+0LUg0LLRi9C00LXQu9C10L3QuNC1JyxcbiAgICAgICAgICAgICAgICBsaW5lWTogJ9CS0LXRgNGC0LjQutCw0LvRjNC90L7QtSDQstGL0LTQtdC70LXQvdC40LUnLFxuICAgICAgICAgICAgICAgIGtlZXA6ICfQntGB0YLQsNCy0LjRgtGMINCy0YvQsdGA0LDQvdC90L7QtScsXG4gICAgICAgICAgICAgICAgY2xlYXI6ICfQntGH0LjRgdGC0LjRgtGMINCy0YvQsdGA0LDQvdC90L7QtSdcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZGF0YVZpZXc6IHtcbiAgICAgICAgICAgIHRpdGxlOiAn0JTQsNC90L3Ri9C1JyxcbiAgICAgICAgICAgIGxhbmc6IFsn0JTQsNC90L3Ri9C1JywgJ9CX0LDQutGA0YvRgtGMJywgJ9Ce0LHQvdC+0LLQuNGC0YwnXVxuICAgICAgICB9LFxuICAgICAgICBkYXRhWm9vbToge1xuICAgICAgICAgICAgdGl0bGU6IHtcbiAgICAgICAgICAgICAgICB6b29tOiAn0KPQstC10LvQuNGH0LjRgtGMJyxcbiAgICAgICAgICAgICAgICBiYWNrOiAn0KHQsdGA0L7RgdC40YLRjCDRg9Cy0LXQu9C40YfQtdC90LjQtSdcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbWFnaWNUeXBlOiB7XG4gICAgICAgICAgICB0aXRsZToge1xuICAgICAgICAgICAgICAgIGxpbmU6ICfQn9C10YDQtdC60LvRjtGH0LjRgtGM0YHRjyDQvdCwINC70LjQvdC10LnQvdGL0Lkg0LPRgNCw0YTQuNC6JyxcbiAgICAgICAgICAgICAgICBiYXI6ICfQn9C10YDQtdC60LvRjtGH0LjRgtGM0YHRjyDQvdCwINGB0YLQvtC70LHRh9Cw0YLRg9GOINC00LjQsNCz0YDQsNC80LzRgycsXG4gICAgICAgICAgICAgICAgc3RhY2s6ICfQodGC0L7Qv9C60LAnLFxuICAgICAgICAgICAgICAgIHRpbGVkOiAn0J/Qu9C40YLQutCwJ1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICByZXN0b3JlOiB7XG4gICAgICAgICAgICB0aXRsZTogJ9CS0L7RgdGB0YLQsNC90L7QstC40YLRjCdcbiAgICAgICAgfSxcbiAgICAgICAgc2F2ZUFzSW1hZ2U6IHtcbiAgICAgICAgICAgIHRpdGxlOiAn0KHQvtGF0YDQsNC90LjRgtGMINC60LDRgNGC0LjQvdC60YMnLFxuICAgICAgICAgICAgbGFuZzogWyfQn9GA0LDQstGL0Lkg0LrQu9C40LosINGH0YLQvtCx0Ysg0YHQvtGF0YDQsNC90LjRgtGMINC60LDRgNGC0LjQvdC60YMnXVxuICAgICAgICB9XG4gICAgfSxcbiAgICBzZXJpZXM6IHtcbiAgICAgICAgdHlwZU5hbWVzOiB7XG4gICAgICAgICAgICBwaWU6ICfQmtGA0YPQs9C+0LLQsNGPINC00LjQsNCz0YDQsNC80LzQsCcsXG4gICAgICAgICAgICBiYXI6ICfQodGC0L7Qu9Cx0YfQsNGC0LDRjyDQtNC40LDQs9GA0LDQvNC80LAnLFxuICAgICAgICAgICAgbGluZTogJ9Cb0LjQvdC10LnQvdGL0Lkg0LPRgNCw0YTQuNC6JyxcbiAgICAgICAgICAgIHNjYXR0ZXI6ICfQotC+0YfQtdGH0L3QsNGPINC00LjQsNCz0YDQsNC80LzQsCcsXG4gICAgICAgICAgICBlZmZlY3RTY2F0dGVyOiAn0KLQvtGH0LXRh9C90LDRjyDQtNC40LDQs9GA0LDQvNC80LAg0YEg0LLQvtC70L3QsNC80LgnLFxuICAgICAgICAgICAgcmFkYXI6ICfQm9C10L/QtdGB0YLQutC+0LLQsNGPINC00LjQsNCz0YDQsNC80LzQsCcsXG4gICAgICAgICAgICB0cmVlOiAn0JTQtdGA0LXQstC+JyxcbiAgICAgICAgICAgIHRyZWVtYXA6ICfQn9C70L7RgdC60L7QtSDQtNC10YDQtdCy0L4nLFxuICAgICAgICAgICAgYm94cGxvdDogJ9Cv0YnQuNC6INGBINGD0YHQsNC80LgnLFxuICAgICAgICAgICAgY2FuZGxlc3RpY2s6ICfQodCy0LXRh9C90L7QuSDQs9GA0LDRhNC40LonLFxuICAgICAgICAgICAgazogJ9CT0YDQsNGE0LjQuiDQmi3Qu9C40L3QuNC5JyxcbiAgICAgICAgICAgIGhlYXRtYXA6ICfQotC10L/Qu9C+0LLQsNGPINC60LDRgNGC0LAnLFxuICAgICAgICAgICAgbWFwOiAn0JrQsNGA0YLQsCcsXG4gICAgICAgICAgICBwYXJhbGxlbDogJ9CU0LjQsNCz0YDQsNC80LzQsCDQv9Cw0YDQsNC70LvQtdC70YzQvdGL0YUg0LrQvtC+0YDQtNC40L3QsNGCJyxcbiAgICAgICAgICAgIGxpbmVzOiAn0JvQuNC90LXQudC90YvQuSDQs9GA0LDRhCcsXG4gICAgICAgICAgICBncmFwaDogJ9CT0YDQsNGEINC+0YLQvdC+0YjQtdC90LjQuScsXG4gICAgICAgICAgICBzYW5rZXk6ICfQlNC40LDQs9GA0LDQvNC80LAg0KHQsNC90LrQtdC5JyxcbiAgICAgICAgICAgIGZ1bm5lbDogJ9CS0L7RgNC+0L3QutC+0L7QsdGA0LDQt9C90LDRjyDQtNC40LDQs9GA0LDQvNC80LAnLFxuICAgICAgICAgICAgZ2F1Z2U6ICfQqNC60LDQu9CwJyxcbiAgICAgICAgICAgIHBpY3RvcmlhbEJhcjogJ9Ch0YLQvtC70LHQtdGGLdC60LDRgNGC0LjQvdC60LAnLFxuICAgICAgICAgICAgdGhlbWVSaXZlcjogJ9Ci0LXQvNCw0YLQuNGH0LXRgdC60LDRjyDRgNC10LrQsCcsXG4gICAgICAgICAgICBzdW5idXJzdDogJ9Ch0L7Qu9C90LXRh9C90YvQtSDQu9GD0YfQuCdcbiAgICAgICAgfVxuICAgIH0sXG4gICAgYXJpYToge1xuICAgICAgICBnZW5lcmFsOiB7XG4gICAgICAgICAgICB3aXRoVGl0bGU6ICfQrdGC0L4g0LPRgNCw0YTQuNC6LCDQv9C+0LrQsNC30YvQstCw0Y7RidC40LkgXCJ7dGl0bGV9XCInLFxuICAgICAgICAgICAgd2l0aG91dFRpdGxlOiAn0K3RgtC+INCz0YDQsNGE0LjQuidcbiAgICAgICAgfSxcbiAgICAgICAgc2VyaWVzOiB7XG4gICAgICAgICAgICBzaW5nbGU6IHtcbiAgICAgICAgICAgICAgICBwcmVmaXg6ICcnLFxuICAgICAgICAgICAgICAgIHdpdGhOYW1lOiAnINGBINGC0LjQv9C+0Lwge3Nlcmllc1R5cGV9INC4INC40LzQtdC90LXQvCB7c2VyaWVzTmFtZX0uJyxcbiAgICAgICAgICAgICAgICB3aXRob3V0TmFtZTogJyDRgSDRgtC40L/QvtC8IHtzZXJpZXNUeXBlfS4nXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbXVsdGlwbGU6IHtcbiAgICAgICAgICAgICAgICBwcmVmaXg6ICcuINCe0L0g0YHQvtGB0YLQvtC40YIg0LjQtyB7c2VyaWVzQ291bnR9INGB0LXRgNC40LkuJyxcbiAgICAgICAgICAgICAgICB3aXRoTmFtZTogJyDQodC10YDQuNGPIHtzZXJpZXNJZH0g0LjQvNC10LXRgiDRgtC40L8ge3Nlcmllc1R5cGV9INC4INC/0L7QutCw0LfRi9Cy0LDQtdGCIHtzZXJpZXNOYW1lfS4nLFxuICAgICAgICAgICAgICAgIHdpdGhvdXROYW1lOiAnINCh0LXRgNC40Y8ge3Nlcmllc0lkfSDQuNC80LXQtdGCINGC0LjQvyB7c2VyaWVzVHlwZX0uJyxcbiAgICAgICAgICAgICAgICBzZXBhcmF0b3I6IHtcbiAgICAgICAgICAgICAgICAgICAgbWlkZGxlOiAnJyxcbiAgICAgICAgICAgICAgICAgICAgZW5kOiAnJ1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgYWxsRGF0YTogJ9CU0LDQvdC90YvQtSDRgtCw0LrQvtCy0Ys6ICcsXG4gICAgICAgICAgICBwYXJ0aWFsRGF0YTogJ9Cf0LXRgNCy0YvQtSB7ZGlzcGxheUNudH0g0Y3Qu9C10LzQtdC90YLQvtCyOiAnLFxuICAgICAgICAgICAgd2l0aE5hbWU6ICfQt9C90LDRh9C10L3QuNC1INC00LvRjyB7bmFtZX0g4oCUIHt2YWx1ZX0nLFxuICAgICAgICAgICAgd2l0aG91dE5hbWU6ICd7dmFsdWV9JyxcbiAgICAgICAgICAgIHNlcGFyYXRvcjoge1xuICAgICAgICAgICAgICAgIG1pZGRsZTogJywgJyxcbiAgICAgICAgICAgICAgICBlbmQ6ICcuICdcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn07XG4iXX0=
@@ -1,60 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, Inject } from '@angular/core';
2
- import { TUI_TREE_LOADING, TUI_TREE_LOADER } from '@taiga-ui/kit';
3
- import { map } from 'rxjs';
4
- import { TreeLoaderService } from './services/tree-loader.service';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "./services/tree-icon.service";
7
- import * as i2 from "@snabcentr/client-core";
8
- import * as i3 from "@angular/common";
9
- import * as i4 from "@taiga-ui/kit";
10
- import * as i5 from "@taiga-ui/core";
11
- import * as i6 from "./directives/tree.directive";
12
- import * as i7 from "./directives/tree-top.directive";
13
- /**
14
- * Компонент файлов и документов.
15
- */
16
- export class FilesAndDocumentsComponent {
17
- /**
18
- * Инициализирует экземпляр класса {@link FilesAndDocumentsComponent}.
19
- *
20
- * @param loading Объект отвечающий за значок загрузки, в момент раскрытия элемента дерева.
21
- * @param iconService Сервис для определения и назначения значка элементу дерева.
22
- * @param filesService Сервис для загрузки файлов.
23
- */
24
- constructor(loading, iconService, filesService) {
25
- this.loading = loading;
26
- this.iconService = iconService;
27
- this.filesService = filesService;
28
- /**
29
- * Данные визуализации и их начальное получение.
30
- */
31
- this.data$ = this.filesService.getFiles().pipe(map((data) => data.map((item) => ({
32
- text: item.name,
33
- icon: this.iconService.getIconName(item),
34
- hasChildren: this.iconService.hasChildren(item),
35
- createdAt: item.createdAt,
36
- id: item.id,
37
- link: item.link
38
- }))));
39
- }
40
- }
41
- FilesAndDocumentsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FilesAndDocumentsComponent, deps: [{ token: TUI_TREE_LOADING }, { token: i1.TreeIconService }, { token: i2.ScFilesService }], target: i0.ɵɵFactoryTarget.Component });
42
- FilesAndDocumentsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: FilesAndDocumentsComponent, selector: "sc-files-and-documents", providers: [
43
- {
44
- provide: TUI_TREE_LOADER,
45
- useClass: TreeLoaderService
46
- }
47
- ], ngImport: i0, template: "<ng-container *ngIf=\"data$ | async as data; else skeleton\">\n <tui-tree\n *ngFor=\"let node of data\"\n #tree=\"scTree\"\n scTree\n [scTopNodeText]=\"node.text\"\n [scTopNodeIcon]=\"node.icon\"\n [scTopNodeLink]=\"node.link\"\n [scTopNodeChilds]=\"node.hasChildren\"\n [scTopNodeParent]=\"node.id\"\n [scTopNodeDate]=\"node.createdAt\"\n [childrenHandler]=\"tree.childrenHandler\"\n [content]=\"content\"\n [map]=\"tree.map\"\n [tuiTreeController]=\"false\"\n [value]=\"tree.service.data$ | async\"\n (toggled)=\"tree.onToggled($event)\"\n class=\"overflow-hidden\"\n ></tui-tree>\n</ng-container>\n\n<ng-template #content let-item>\n <tui-loader *ngIf=\"item === loading; else text\" class=\"w-8 my-4\"></tui-loader>\n <ng-template #text>\n <tui-svg [src]=\"item.icon\" class=\"tui-space_right-2\"></tui-svg>\n <a tuiLink [pseudo]=\"true\" *ngIf=\"item.link\" href=\"{{ item.link }}\" class=\"grow\">{{ item.text }}</a>\n <p *ngIf=\"!item.link\" class=\"grow\">{{ item.text }}</p>\n <p>{{ item.createdAt }}</p>\n </ng-template>\n</ng-template>\n\n<ng-template #skeleton>\n <div class=\"flex flex-col gap-2\">\n <div *ngFor=\"let _ of [].constructor(7)\" class=\"flex items-center gap-2\">\n <div class=\"tui-skeleton h-6 w-6\"></div>\n <div class=\"tui-skeleton h-4 w-40\"></div>\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.TuiTreeComponent, selector: "tui-tree[value]", inputs: ["value", "trackBy", "content"] }, { kind: "directive", type: i4.TuiTreeChildrenDirective, selector: "tui-tree[childrenHandler]", inputs: ["childrenHandler"] }, { kind: "directive", type: i4.TuiTreeControllerDirective, selector: "[tuiTreeController][map]", inputs: ["tuiTreeController", "map"], outputs: ["toggled"], exportAs: ["tuiTreeController"] }, { kind: "component", type: i5.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }, { kind: "component", type: i5.TuiLoaderComponent, selector: "tui-loader", inputs: ["size", "inheritColor", "overlay", "textContent", "showLoader"] }, { kind: "component", type: i5.TuiLinkComponent, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo", "icon", "iconAlign", "iconRotated", "mode"], exportAs: ["tuiLink"] }, { kind: "directive", type: i6.TreeDirective, selector: "[scTree]", exportAs: ["scTree"] }, { kind: "directive", type: i7.TreeTopDirective, selector: "[scTopNodeText]", inputs: ["scTopNodeText", "scTopNodeIcon", "scTopNodeLink", "scTopNodeChilds", "scTopNodeParent", "scTopNodeDate"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
48
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FilesAndDocumentsComponent, decorators: [{
49
- type: Component,
50
- args: [{ selector: 'sc-files-and-documents', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
51
- {
52
- provide: TUI_TREE_LOADER,
53
- useClass: TreeLoaderService
54
- }
55
- ], template: "<ng-container *ngIf=\"data$ | async as data; else skeleton\">\n <tui-tree\n *ngFor=\"let node of data\"\n #tree=\"scTree\"\n scTree\n [scTopNodeText]=\"node.text\"\n [scTopNodeIcon]=\"node.icon\"\n [scTopNodeLink]=\"node.link\"\n [scTopNodeChilds]=\"node.hasChildren\"\n [scTopNodeParent]=\"node.id\"\n [scTopNodeDate]=\"node.createdAt\"\n [childrenHandler]=\"tree.childrenHandler\"\n [content]=\"content\"\n [map]=\"tree.map\"\n [tuiTreeController]=\"false\"\n [value]=\"tree.service.data$ | async\"\n (toggled)=\"tree.onToggled($event)\"\n class=\"overflow-hidden\"\n ></tui-tree>\n</ng-container>\n\n<ng-template #content let-item>\n <tui-loader *ngIf=\"item === loading; else text\" class=\"w-8 my-4\"></tui-loader>\n <ng-template #text>\n <tui-svg [src]=\"item.icon\" class=\"tui-space_right-2\"></tui-svg>\n <a tuiLink [pseudo]=\"true\" *ngIf=\"item.link\" href=\"{{ item.link }}\" class=\"grow\">{{ item.text }}</a>\n <p *ngIf=\"!item.link\" class=\"grow\">{{ item.text }}</p>\n <p>{{ item.createdAt }}</p>\n </ng-template>\n</ng-template>\n\n<ng-template #skeleton>\n <div class=\"flex flex-col gap-2\">\n <div *ngFor=\"let _ of [].constructor(7)\" class=\"flex items-center gap-2\">\n <div class=\"tui-skeleton h-6 w-6\"></div>\n <div class=\"tui-skeleton h-4 w-40\"></div>\n </div>\n </div>\n</ng-template>\n" }]
56
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
57
- type: Inject,
58
- args: [TUI_TREE_LOADING]
59
- }] }, { type: i1.TreeIconService }, { type: i2.ScFilesService }]; } });
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZXMtYW5kLWRvY3VtZW50cy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvZmlsZXMvZmlsZXMtYW5kLWRvY3VtZW50cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvZmlsZXMvZmlsZXMtYW5kLWRvY3VtZW50cy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWxFLE9BQU8sRUFBYyxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdkMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7Ozs7OztBQUduRTs7R0FFRztBQVlILE1BQU0sT0FBTywwQkFBMEI7SUFpQm5DOzs7Ozs7T0FNRztJQUNILFlBQTZELE9BQWdCLEVBQWtCLFdBQTRCLEVBQW1CLFlBQTRCO1FBQTdHLFlBQU8sR0FBUCxPQUFPLENBQVM7UUFBa0IsZ0JBQVcsR0FBWCxXQUFXLENBQWlCO1FBQW1CLGlCQUFZLEdBQVosWUFBWSxDQUFnQjtRQXZCMUs7O1dBRUc7UUFDSSxVQUFLLEdBQTJCLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUNwRSxHQUFHLENBQUMsQ0FBQyxJQUFzQixFQUFFLEVBQUUsQ0FDM0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNoQixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO1lBQ3hDLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7WUFDL0MsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQ3pCLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRTtZQUNYLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtTQUNsQixDQUFDLENBQUMsQ0FDTixDQUNKLENBQUM7SUFTMkssQ0FBQzs7dUhBeEJySywwQkFBMEIsa0JBd0JSLGdCQUFnQjsyR0F4QmxDLDBCQUEwQixpREFQeEI7UUFDUDtZQUNJLE9BQU8sRUFBRSxlQUFlO1lBQ3hCLFFBQVEsRUFBRSxpQkFBaUI7U0FDOUI7S0FDSiwwQkNwQkwsNitDQXVDQTsyRkRqQmEsMEJBQTBCO2tCQVh0QyxTQUFTOytCQUNJLHdCQUF3QixtQkFFakIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsZUFBZTs0QkFDeEIsUUFBUSxFQUFFLGlCQUFpQjt5QkFDOUI7cUJBQ0o7OzBCQTBCbUIsTUFBTTsyQkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRVSV9UUkVFX0xPQURJTkcsIFRVSV9UUkVFX0xPQURFUiB9IGZyb20gJ0B0YWlnYS11aS9raXQnO1xuaW1wb3J0IHsgU2NEb2N1bWVudEluZm8sIFNjRmlsZXNTZXJ2aWNlIH0gZnJvbSAnQHNuYWJjZW50ci9jbGllbnQtY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBtYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFRyZWVJY29uU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvdHJlZS1pY29uLnNlcnZpY2UnO1xuaW1wb3J0IHsgVHJlZUxvYWRlclNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3RyZWUtbG9hZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgVHJlZU5vZGUgfSBmcm9tICcuL2ludGVyZmFjZXMvdHJlZS1ub2RlJztcblxuLyoqXG4gKiDQmtC+0LzQv9C+0L3QtdC90YIg0YTQsNC50LvQvtCyINC4INC00L7QutGD0LzQtdC90YLQvtCyLlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3NjLWZpbGVzLWFuZC1kb2N1bWVudHMnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9maWxlcy1hbmQtZG9jdW1lbnRzLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogVFVJX1RSRUVfTE9BREVSLFxuICAgICAgICAgICAgdXNlQ2xhc3M6IFRyZWVMb2FkZXJTZXJ2aWNlXG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIEZpbGVzQW5kRG9jdW1lbnRzQ29tcG9uZW50IHtcbiAgICAvKipcbiAgICAgKiDQlNCw0L3QvdGL0LUg0LLQuNC30YPQsNC70LjQt9Cw0YbQuNC4INC4INC40YUg0L3QsNGH0LDQu9GM0L3QvtC1INC/0L7Qu9GD0YfQtdC90LjQtS5cbiAgICAgKi9cbiAgICBwdWJsaWMgZGF0YSQ6IE9ic2VydmFibGU8VHJlZU5vZGVbXT4gPSB0aGlzLmZpbGVzU2VydmljZS5nZXRGaWxlcygpLnBpcGUoXG4gICAgICAgIG1hcCgoZGF0YTogU2NEb2N1bWVudEluZm9bXSkgPT5cbiAgICAgICAgICAgIGRhdGEubWFwKChpdGVtKSA9PiAoe1xuICAgICAgICAgICAgICAgIHRleHQ6IGl0ZW0ubmFtZSxcbiAgICAgICAgICAgICAgICBpY29uOiB0aGlzLmljb25TZXJ2aWNlLmdldEljb25OYW1lKGl0ZW0pLFxuICAgICAgICAgICAgICAgIGhhc0NoaWxkcmVuOiB0aGlzLmljb25TZXJ2aWNlLmhhc0NoaWxkcmVuKGl0ZW0pLFxuICAgICAgICAgICAgICAgIGNyZWF0ZWRBdDogaXRlbS5jcmVhdGVkQXQsXG4gICAgICAgICAgICAgICAgaWQ6IGl0ZW0uaWQsXG4gICAgICAgICAgICAgICAgbGluazogaXRlbS5saW5rXG4gICAgICAgICAgICB9KSlcbiAgICAgICAgKVxuICAgICk7XG5cbiAgICAvKipcbiAgICAgKiDQmNC90LjRhtC40LDQu9C40LfQuNGA0YPQtdGCINGN0LrQt9C10LzQv9C70Y/RgCDQutC70LDRgdGB0LAge0BsaW5rIEZpbGVzQW5kRG9jdW1lbnRzQ29tcG9uZW50fS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBsb2FkaW5nINCe0LHRitC10LrRgiDQvtGC0LLQtdGH0LDRjtGJ0LjQuSDQt9CwINC30L3QsNGH0L7QuiDQt9Cw0LPRgNGD0LfQutC4LCDQsiDQvNC+0LzQtdC90YIg0YDQsNGB0LrRgNGL0YLQuNGPINGN0LvQtdC80LXQvdGC0LAg0LTQtdGA0LXQstCwLlxuICAgICAqIEBwYXJhbSBpY29uU2VydmljZSDQodC10YDQstC40YEg0LTQu9GPINC+0L/RgNC10LTQtdC70LXQvdC40Y8g0Lgg0L3QsNC30L3QsNGH0LXQvdC40Y8g0LfQvdCw0YfQutCwINGN0LvQtdC80LXQvdGC0YMg0LTQtdGA0LXQstCwLlxuICAgICAqIEBwYXJhbSBmaWxlc1NlcnZpY2Ug0KHQtdGA0LLQuNGBINC00LvRjyDQt9Cw0LPRgNGD0LfQutC4INGE0LDQudC70L7Qsi5cbiAgICAgKi9cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoQEluamVjdChUVUlfVFJFRV9MT0FESU5HKSBwdWJsaWMgcmVhZG9ubHkgbG9hZGluZzogdW5rbm93biwgcHVibGljIHJlYWRvbmx5IGljb25TZXJ2aWNlOiBUcmVlSWNvblNlcnZpY2UsIHByaXZhdGUgcmVhZG9ubHkgZmlsZXNTZXJ2aWNlOiBTY0ZpbGVzU2VydmljZSkge31cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJkYXRhJCB8IGFzeW5jIGFzIGRhdGE7IGVsc2Ugc2tlbGV0b25cIj5cbiAgICA8dHVpLXRyZWVcbiAgICAgICAgKm5nRm9yPVwibGV0IG5vZGUgb2YgZGF0YVwiXG4gICAgICAgICN0cmVlPVwic2NUcmVlXCJcbiAgICAgICAgc2NUcmVlXG4gICAgICAgIFtzY1RvcE5vZGVUZXh0XT1cIm5vZGUudGV4dFwiXG4gICAgICAgIFtzY1RvcE5vZGVJY29uXT1cIm5vZGUuaWNvblwiXG4gICAgICAgIFtzY1RvcE5vZGVMaW5rXT1cIm5vZGUubGlua1wiXG4gICAgICAgIFtzY1RvcE5vZGVDaGlsZHNdPVwibm9kZS5oYXNDaGlsZHJlblwiXG4gICAgICAgIFtzY1RvcE5vZGVQYXJlbnRdPVwibm9kZS5pZFwiXG4gICAgICAgIFtzY1RvcE5vZGVEYXRlXT1cIm5vZGUuY3JlYXRlZEF0XCJcbiAgICAgICAgW2NoaWxkcmVuSGFuZGxlcl09XCJ0cmVlLmNoaWxkcmVuSGFuZGxlclwiXG4gICAgICAgIFtjb250ZW50XT1cImNvbnRlbnRcIlxuICAgICAgICBbbWFwXT1cInRyZWUubWFwXCJcbiAgICAgICAgW3R1aVRyZWVDb250cm9sbGVyXT1cImZhbHNlXCJcbiAgICAgICAgW3ZhbHVlXT1cInRyZWUuc2VydmljZS5kYXRhJCB8IGFzeW5jXCJcbiAgICAgICAgKHRvZ2dsZWQpPVwidHJlZS5vblRvZ2dsZWQoJGV2ZW50KVwiXG4gICAgICAgIGNsYXNzPVwib3ZlcmZsb3ctaGlkZGVuXCJcbiAgICA+PC90dWktdHJlZT5cbjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI2NvbnRlbnQgbGV0LWl0ZW0+XG4gICAgPHR1aS1sb2FkZXIgKm5nSWY9XCJpdGVtID09PSBsb2FkaW5nOyBlbHNlIHRleHRcIiBjbGFzcz1cInctOCBteS00XCI+PC90dWktbG9hZGVyPlxuICAgIDxuZy10ZW1wbGF0ZSAjdGV4dD5cbiAgICAgICAgPHR1aS1zdmcgW3NyY109XCJpdGVtLmljb25cIiBjbGFzcz1cInR1aS1zcGFjZV9yaWdodC0yXCI+PC90dWktc3ZnPlxuICAgICAgICA8YSB0dWlMaW5rIFtwc2V1ZG9dPVwidHJ1ZVwiICpuZ0lmPVwiaXRlbS5saW5rXCIgaHJlZj1cInt7IGl0ZW0ubGluayB9fVwiIGNsYXNzPVwiZ3Jvd1wiPnt7IGl0ZW0udGV4dCB9fTwvYT5cbiAgICAgICAgPHAgKm5nSWY9XCIhaXRlbS5saW5rXCIgY2xhc3M9XCJncm93XCI+e3sgaXRlbS50ZXh0IH19PC9wPlxuICAgICAgICA8cD57eyBpdGVtLmNyZWF0ZWRBdCB9fTwvcD5cbiAgICA8L25nLXRlbXBsYXRlPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNza2VsZXRvbj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtMlwiPlxuICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBfIG9mIFtdLmNvbnN0cnVjdG9yKDcpXCIgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMlwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInR1aS1za2VsZXRvbiBoLTYgdy02XCI+PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHVpLXNrZWxldG9uIGgtNCB3LTQwXCI+PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==