@snabcentr/client-ui 0.27.0 → 0.28.3

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 (27) hide show
  1. package/auth/sc-auth.module.d.ts +1 -2
  2. package/cart/cart-item-mobile/sc-cart-item-mobile.component.d.ts +15 -15
  3. package/catalog/price-card/sc-price-card.component.d.ts +11 -105
  4. package/contragents/sc-contragents.module.d.ts +1 -2
  5. package/directives/abstract-price-card/abstract-sc-price-card.directive.d.ts +107 -0
  6. package/directives/index.d.ts +1 -2
  7. package/esm2020/auth/sc-auth.module.mjs +3 -7
  8. package/esm2020/cart/cart-item-mobile/sc-cart-item-mobile.component.mjs +9 -8
  9. package/esm2020/catalog/price-card/sc-price-card.component.mjs +31 -142
  10. package/esm2020/catalog/price-list-pagination/sc-price-list-pagination.component.mjs +3 -3
  11. package/esm2020/contragents/sc-contragents.module.mjs +38 -20
  12. package/esm2020/directives/abstract-price-card/abstract-sc-price-card.directive.mjs +131 -0
  13. package/esm2020/directives/index.mjs +2 -3
  14. package/esm2020/helpers/sc-units-helper.mjs +11 -10
  15. package/esm2020/order/order-item-mobile/order-item-mobile.component.mjs +3 -3
  16. package/fesm2015/snabcentr-client-ui.mjs +301 -321
  17. package/fesm2015/snabcentr-client-ui.mjs.map +1 -1
  18. package/fesm2020/snabcentr-client-ui.mjs +299 -316
  19. package/fesm2020/snabcentr-client-ui.mjs.map +1 -1
  20. package/helpers/sc-units-helper.d.ts +6 -6
  21. package/order/order-item-mobile/order-item-mobile.component.d.ts +3 -3
  22. package/package.json +1 -1
  23. package/styles/tailwind/tailwind.scss +26 -37
  24. package/directives/carousel-item-hidden/sc-carousel-item-hidden.directive.d.ts +0 -24
  25. package/directives/carousel-item-hidden/sc-carousel-item-hidden.module.d.ts +0 -11
  26. package/esm2020/directives/carousel-item-hidden/sc-carousel-item-hidden.directive.mjs +0 -40
  27. package/esm2020/directives/carousel-item-hidden/sc-carousel-item-hidden.module.mjs +0 -21
@@ -3,10 +3,10 @@ import * as i0 from "@angular/core";
3
3
  /**
4
4
  * Класс хэлпер для работы со значениями единиц измерения товара.
5
5
  */
6
- export declare class UnitsHelper {
6
+ export declare class ScUnitsHelper {
7
7
  readonly linearValues: string[];
8
8
  /**
9
- * Инициирует экземпляр класса {@link UnitsHelper}.
9
+ * Инициирует экземпляр класса {@link ScUnitsHelper}.
10
10
  *
11
11
  * @param linearValues Единицы измерения линейной величины.
12
12
  */
@@ -14,15 +14,15 @@ export declare class UnitsHelper {
14
14
  /**
15
15
  * Возвращает признак возможности продажи товара на метраж.
16
16
  *
17
- * @param linearValues Товар для которого нужно проверить возможность продажи на метраж.
17
+ * @param product Товар для которого нужно проверить возможность продажи на метраж.
18
18
  */
19
19
  productIsMeasurable(product: ScProduct): boolean;
20
20
  /**
21
21
  * Возвращает кратность количества для товара.
22
22
  *
23
- * @param linearValues Товар для которого нужно вернуть кратность количества.
23
+ * @param product Товар для которого нужно вернуть кратность количества.
24
24
  */
25
25
  productMultiplicity(product: ScProduct): number;
26
- static ɵfac: i0.ɵɵFactoryDeclaration<UnitsHelper, never>;
27
- static ɵprov: i0.ɵɵInjectableDeclaration<UnitsHelper>;
26
+ static ɵfac: i0.ɵɵFactoryDeclaration<ScUnitsHelper, never>;
27
+ static ɵprov: i0.ɵɵInjectableDeclaration<ScUnitsHelper>;
28
28
  }
@@ -1,13 +1,13 @@
1
1
  import { EventEmitter } from '@angular/core';
2
2
  import { ScCartItem, ScIUrls, ScProduct } from '@snabcentr/client-core';
3
3
  import { TuiPreviewDialogService } from '@taiga-ui/addon-preview';
4
- import { UnitsHelper } from '../../helpers/sc-units-helper';
4
+ import { ScUnitsHelper } from '../../helpers/sc-units-helper';
5
5
  import * as i0 from "@angular/core";
6
6
  /**
7
7
  * Компонент карточки элемента заказа.
8
8
  */
9
9
  export declare class ScOrderItemMobileComponent {
10
- readonly unitsHelper: UnitsHelper;
10
+ readonly unitsHelper: ScUnitsHelper;
11
11
  private readonly previewDialogService;
12
12
  private readonly urls;
13
13
  private readonly pathImageNotFound;
@@ -35,7 +35,7 @@ export declare class ScOrderItemMobileComponent {
35
35
  * @param urls Список ссылок на разделы backend'a.
36
36
  * @param pathImageNotFound Путь до изображения 'Товар не найден'.
37
37
  */
38
- constructor(unitsHelper: UnitsHelper, previewDialogService: TuiPreviewDialogService, urls: ScIUrls, pathImageNotFound: string);
38
+ constructor(unitsHelper: ScUnitsHelper, previewDialogService: TuiPreviewDialogService, urls: ScIUrls, pathImageNotFound: string);
39
39
  /**
40
40
  * Продукт элемента заказа.
41
41
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@snabcentr/client-ui",
3
- "version": "0.27.0",
3
+ "version": "0.28.3",
4
4
  "author": "Snabcentr Ltd.",
5
5
  "repository": "https://gitlab.snabcentr.met/web/angular/snabcentr-client-ui-lib",
6
6
  "license": "Commercial",
@@ -648,10 +648,6 @@ video {
648
648
  bottom: 1rem;
649
649
  }
650
650
 
651
- .left-0 {
652
- left: 0px;
653
- }
654
-
655
651
  .left-1 {
656
652
  left: 0.25rem;
657
653
  }
@@ -680,12 +676,16 @@ video {
680
676
  top: 0.25rem;
681
677
  }
682
678
 
679
+ .top-2 {
680
+ top: 0.5rem;
681
+ }
682
+
683
683
  .isolate {
684
684
  isolation: isolate;
685
685
  }
686
686
 
687
- .m-0 {
688
- margin: 0px;
687
+ .m-1 {
688
+ margin: 0.25rem;
689
689
  }
690
690
 
691
691
  .my-2 {
@@ -726,10 +726,6 @@ video {
726
726
  margin-right: auto;
727
727
  }
728
728
 
729
- .mt-1 {
730
- margin-top: 0.25rem;
731
- }
732
-
733
729
  .mt-2 {
734
730
  margin-top: 0.5rem;
735
731
  }
@@ -777,6 +773,11 @@ video {
777
773
  display: none;
778
774
  }
779
775
 
776
+ .\!size-6 {
777
+ width: 1.5rem !important;
778
+ height: 1.5rem !important;
779
+ }
780
+
780
781
  .size-20 {
781
782
  width: 5rem;
782
783
  height: 5rem;
@@ -804,10 +805,6 @@ video {
804
805
  height: 1rem !important;
805
806
  }
806
807
 
807
- .\!h-5 {
808
- height: 1.25rem !important;
809
- }
810
-
811
808
  .\!h-8 {
812
809
  height: 2rem !important;
813
810
  }
@@ -848,10 +845,6 @@ video {
848
845
  height: 14rem;
849
846
  }
850
847
 
851
- .h-\[19rem\] {
852
- height: 19rem;
853
- }
854
-
855
848
  .h-full {
856
849
  height: 100%;
857
850
  }
@@ -864,10 +857,6 @@ video {
864
857
  max-height: 100%;
865
858
  }
866
859
 
867
- .\!w-5 {
868
- width: 1.25rem !important;
869
- }
870
-
871
860
  .\!w-8 {
872
861
  width: 2rem !important;
873
862
  }
@@ -1010,10 +999,6 @@ video {
1010
999
  justify-content: space-between;
1011
1000
  }
1012
1001
 
1013
- .justify-stretch {
1014
- justify-content: stretch;
1015
- }
1016
-
1017
1002
  .gap-1 {
1018
1003
  gap: 0.25rem;
1019
1004
  }
@@ -1103,8 +1088,8 @@ video {
1103
1088
  border-radius: 0.25rem;
1104
1089
  }
1105
1090
 
1106
- .rounded-md {
1107
- border-radius: 0.375rem;
1091
+ .rounded-lg {
1092
+ border-radius: 0.5rem;
1108
1093
  }
1109
1094
 
1110
1095
  .rounded-tui-radius-m {
@@ -1182,15 +1167,15 @@ video {
1182
1167
  background-repeat: no-repeat;
1183
1168
  }
1184
1169
 
1170
+ .\!fill-white {
1171
+ fill: #fff !important;
1172
+ }
1173
+
1185
1174
  .object-cover {
1186
1175
  -o-object-fit: cover;
1187
1176
  object-fit: cover;
1188
1177
  }
1189
1178
 
1190
- .p-0 {
1191
- padding: 0px;
1192
- }
1193
-
1194
1179
  .p-1 {
1195
1180
  padding: 0.25rem;
1196
1181
  }
@@ -1382,11 +1367,6 @@ video {
1382
1367
  color: rgb(0 0 0 / var(--tw-text-opacity));
1383
1368
  }
1384
1369
 
1385
- .text-red-700 {
1386
- --tw-text-opacity: 1;
1387
- color: rgb(185 28 28 / var(--tw-text-opacity));
1388
- }
1389
-
1390
1370
  .text-tui-base-04 {
1391
1371
  color: var(--tui-base-04);
1392
1372
  }
@@ -1407,6 +1387,10 @@ video {
1407
1387
  color: var(--tui-link);
1408
1388
  }
1409
1389
 
1390
+ .text-tui-negative {
1391
+ color: var(--tui-negative);
1392
+ }
1393
+
1410
1394
  .text-tui-primary {
1411
1395
  color: var(--tui-primary);
1412
1396
  }
@@ -1427,6 +1411,11 @@ video {
1427
1411
  color: var(--tui-text-03);
1428
1412
  }
1429
1413
 
1414
+ .text-white {
1415
+ --tw-text-opacity: 1;
1416
+ color: rgb(255 255 255 / var(--tw-text-opacity));
1417
+ }
1418
+
1430
1419
  .underline {
1431
1420
  text-decoration-line: underline;
1432
1421
  }
@@ -1,24 +0,0 @@
1
- import { TuiCarouselComponent } from '@taiga-ui/kit';
2
- import * as i0 from "@angular/core";
3
- /**
4
- * Директива для скрытия элементов карусели тайги.
5
- */
6
- export declare class ScCarouselItemHiddenDirective {
7
- private readonly carouselComponent;
8
- /**
9
- * Индекс элемента в карусели.
10
- */
11
- index: number;
12
- /**
13
- * Инициализирует экземпляр класса {@link CarouselItemHiddenDirective}.
14
- *
15
- * @param carouselComponent Компонент карусели, взятый из DI.
16
- */
17
- constructor(carouselComponent: TuiCarouselComponent);
18
- /**
19
- * Свойство, от которого зависит наличие класса `!hidden` у `:host` компонента.
20
- */
21
- private get isHidden();
22
- static ɵfac: i0.ɵɵFactoryDeclaration<ScCarouselItemHiddenDirective, never>;
23
- static ɵdir: i0.ɵɵDirectiveDeclaration<ScCarouselItemHiddenDirective, "[tuiItem], [scCarouselItemHidden]", never, { "index": "index"; }, {}, never, never, false>;
24
- }
@@ -1,11 +0,0 @@
1
- import * as i0 from "@angular/core";
2
- import * as i1 from "./sc-carousel-item-hidden.directive";
3
- import * as i2 from "@taiga-ui/kit";
4
- /**
5
- * Модуль директивы для скрытия элементов карусели тайги.
6
- */
7
- export declare class ScCarouselItemHiddenModule {
8
- static ɵfac: i0.ɵɵFactoryDeclaration<ScCarouselItemHiddenModule, never>;
9
- static ɵmod: i0.ɵɵNgModuleDeclaration<ScCarouselItemHiddenModule, [typeof i1.ScCarouselItemHiddenDirective], [typeof i2.TuiCarouselModule], [typeof i1.ScCarouselItemHiddenDirective]>;
10
- static ɵinj: i0.ɵɵInjectorDeclaration<ScCarouselItemHiddenModule>;
11
- }
@@ -1,40 +0,0 @@
1
- import { Directive, HostBinding, Inject, Input } from '@angular/core';
2
- import { TuiCarouselComponent } from '@taiga-ui/kit';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@taiga-ui/kit";
5
- /**
6
- * Директива для скрытия элементов карусели тайги.
7
- */
8
- export class ScCarouselItemHiddenDirective {
9
- /**
10
- * Инициализирует экземпляр класса {@link CarouselItemHiddenDirective}.
11
- *
12
- * @param carouselComponent Компонент карусели, взятый из DI.
13
- */
14
- constructor(carouselComponent) {
15
- this.carouselComponent = carouselComponent;
16
- }
17
- /**
18
- * Свойство, от которого зависит наличие класса `!hidden` у `:host` компонента.
19
- */
20
- get isHidden() {
21
- return this.index !== this.carouselComponent.index;
22
- }
23
- }
24
- ScCarouselItemHiddenDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScCarouselItemHiddenDirective, deps: [{ token: TuiCarouselComponent }], target: i0.ɵɵFactoryTarget.Directive });
25
- ScCarouselItemHiddenDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.3.0", type: ScCarouselItemHiddenDirective, selector: "[tuiItem], [scCarouselItemHidden]", inputs: { index: "index" }, host: { properties: { "class.!hidden": "this.isHidden" } }, ngImport: i0 });
26
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScCarouselItemHiddenDirective, decorators: [{
27
- type: Directive,
28
- args: [{
29
- selector: '[tuiItem], [scCarouselItemHidden]',
30
- }]
31
- }], ctorParameters: function () { return [{ type: i1.TuiCarouselComponent, decorators: [{
32
- type: Inject,
33
- args: [TuiCarouselComponent]
34
- }] }]; }, propDecorators: { index: [{
35
- type: Input
36
- }], isHidden: [{
37
- type: HostBinding,
38
- args: ['class.!hidden']
39
- }] } });
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtY2Fyb3VzZWwtaXRlbS1oaWRkZW4uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXVpL2RpcmVjdGl2ZXMvY2Fyb3VzZWwtaXRlbS1oaWRkZW4vc2MtY2Fyb3VzZWwtaXRlbS1oaWRkZW4uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFFckQ7O0dBRUc7QUFJSCxNQUFNLE9BQU8sNkJBQTZCO0lBT3RDOzs7O09BSUc7SUFDSCxZQUVxQixpQkFBdUM7UUFBdkMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFzQjtJQUN6RCxDQUFDO0lBRUo7O09BRUc7SUFDSCxJQUNZLFFBQVE7UUFDaEIsT0FBTyxJQUFJLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUM7SUFDdkQsQ0FBQzs7MEhBdkJRLDZCQUE2QixrQkFhMUIsb0JBQW9COzhHQWJ2Qiw2QkFBNkI7MkZBQTdCLDZCQUE2QjtrQkFIekMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsbUNBQW1DO2lCQUNoRDs7MEJBY1EsTUFBTTsyQkFBQyxvQkFBb0I7NENBUnpCLEtBQUs7c0JBRFgsS0FBSztnQkFpQk0sUUFBUTtzQkFEbkIsV0FBVzt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBIb3N0QmluZGluZywgSW5qZWN0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHVpQ2Fyb3VzZWxDb21wb25lbnQgfSBmcm9tICdAdGFpZ2EtdWkva2l0JztcblxuLyoqXG4gKiDQlNC40YDQtdC60YLQuNCy0LAg0LTQu9GPINGB0LrRgNGL0YLQuNGPINGN0LvQtdC80LXQvdGC0L7QsiDQutCw0YDRg9GB0LXQu9C4INGC0LDQudCz0LguXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3R1aUl0ZW1dLCBbc2NDYXJvdXNlbEl0ZW1IaWRkZW5dJyxcbn0pXG5leHBvcnQgY2xhc3MgU2NDYXJvdXNlbEl0ZW1IaWRkZW5EaXJlY3RpdmUge1xuICAgIC8qKlxuICAgICAqINCY0L3QtNC10LrRgSDRjdC70LXQvNC10L3RgtCwINCyINC60LDRgNGD0YHQtdC70LguXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaW5kZXg6IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqINCY0L3QuNGG0LjQsNC70LjQt9C40YDRg9C10YIg0Y3QutC30LXQvNC/0LvRj9GAINC60LvQsNGB0YHQsCB7QGxpbmsgQ2Fyb3VzZWxJdGVtSGlkZGVuRGlyZWN0aXZlfS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjYXJvdXNlbENvbXBvbmVudCDQmtC+0LzQv9C+0L3QtdC90YIg0LrQsNGA0YPRgdC10LvQuCwg0LLQt9GP0YLRi9C5INC40LcgREkuXG4gICAgICovXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KFR1aUNhcm91c2VsQ29tcG9uZW50KVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGNhcm91c2VsQ29tcG9uZW50OiBUdWlDYXJvdXNlbENvbXBvbmVudFxuICAgICkge31cblxuICAgIC8qKlxuICAgICAqINCh0LLQvtC50YHRgtCy0L4sINC+0YIg0LrQvtGC0L7RgNC+0LPQviDQt9Cw0LLQuNGB0LjRgiDQvdCw0LvQuNGH0LjQtSDQutC70LDRgdGB0LAgYCFoaWRkZW5gINGDIGA6aG9zdGAg0LrQvtC80L/QvtC90LXQvdGC0LAuXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy4haGlkZGVuJylcbiAgICBwcml2YXRlIGdldCBpc0hpZGRlbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5kZXggIT09IHRoaXMuY2Fyb3VzZWxDb21wb25lbnQuaW5kZXg7XG4gICAgfVxufVxuIl19
@@ -1,21 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { TuiCarouselModule } from '@taiga-ui/kit';
3
- import { ScCarouselItemHiddenDirective } from './sc-carousel-item-hidden.directive';
4
- import * as i0 from "@angular/core";
5
- /**
6
- * Модуль директивы для скрытия элементов карусели тайги.
7
- */
8
- export class ScCarouselItemHiddenModule {
9
- }
10
- ScCarouselItemHiddenModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScCarouselItemHiddenModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11
- ScCarouselItemHiddenModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: ScCarouselItemHiddenModule, declarations: [ScCarouselItemHiddenDirective], imports: [TuiCarouselModule], exports: [ScCarouselItemHiddenDirective] });
12
- ScCarouselItemHiddenModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScCarouselItemHiddenModule, imports: [TuiCarouselModule] });
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScCarouselItemHiddenModule, decorators: [{
14
- type: NgModule,
15
- args: [{
16
- imports: [TuiCarouselModule],
17
- declarations: [ScCarouselItemHiddenDirective],
18
- exports: [ScCarouselItemHiddenDirective],
19
- }]
20
- }] });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtY2Fyb3VzZWwtaXRlbS1oaWRkZW4ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXVpL2RpcmVjdGl2ZXMvY2Fyb3VzZWwtaXRlbS1oaWRkZW4vc2MtY2Fyb3VzZWwtaXRlbS1oaWRkZW4ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWxELE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOztBQUVwRjs7R0FFRztBQU1ILE1BQU0sT0FBTywwQkFBMEI7O3VIQUExQiwwQkFBMEI7d0hBQTFCLDBCQUEwQixpQkFIcEIsNkJBQTZCLGFBRGxDLGlCQUFpQixhQUVqQiw2QkFBNkI7d0hBRTlCLDBCQUEwQixZQUp6QixpQkFBaUI7MkZBSWxCLDBCQUEwQjtrQkFMdEMsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztvQkFDNUIsWUFBWSxFQUFFLENBQUMsNkJBQTZCLENBQUM7b0JBQzdDLE9BQU8sRUFBRSxDQUFDLDZCQUE2QixDQUFDO2lCQUMzQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUdWlDYXJvdXNlbE1vZHVsZSB9IGZyb20gJ0B0YWlnYS11aS9raXQnO1xuXG5pbXBvcnQgeyBTY0Nhcm91c2VsSXRlbUhpZGRlbkRpcmVjdGl2ZSB9IGZyb20gJy4vc2MtY2Fyb3VzZWwtaXRlbS1oaWRkZW4uZGlyZWN0aXZlJztcblxuLyoqXG4gKiDQnNC+0LTRg9C70Ywg0LTQuNGA0LXQutGC0LjQstGLINC00LvRjyDRgdC60YDRi9GC0LjRjyDRjdC70LXQvNC10L3RgtC+0LIg0LrQsNGA0YPRgdC10LvQuCDRgtCw0LnQs9C4LlxuICovXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtUdWlDYXJvdXNlbE1vZHVsZV0sXG4gICAgZGVjbGFyYXRpb25zOiBbU2NDYXJvdXNlbEl0ZW1IaWRkZW5EaXJlY3RpdmVdLFxuICAgIGV4cG9ydHM6IFtTY0Nhcm91c2VsSXRlbUhpZGRlbkRpcmVjdGl2ZV0sXG59KVxuZXhwb3J0IGNsYXNzIFNjQ2Fyb3VzZWxJdGVtSGlkZGVuTW9kdWxlIHt9XG4iXX0=