@snabcentr/client-ui 0.16.2 → 0.17.1
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.
- package/catalog/price-card/sc-price-card.component.d.ts +31 -22
 - package/catalog/sc-catalog.module.d.ts +1 -1
 - package/esm2020/catalog/price-card/sc-price-card.component.mjs +31 -13
 - package/esm2020/catalog/sc-catalog.module.mjs +7 -4
 - package/esm2020/files/files-and-documents/files-and-documents.component.mjs +60 -0
 - package/esm2020/files/files-and-documents.module.mjs +7 -7
 - package/esm2020/files/index.mjs +3 -3
 - package/esm2020/form-fields/suggestion-field/sc-suggestion-field.component.mjs +25 -20
 - package/esm2020/public-api.mjs +2 -2
 - package/esm2020/tokens/index.mjs +2 -1
 - package/esm2020/tokens/sc-min-length-search-term.mjs +6 -0
 - package/fesm2015/snabcentr-client-ui.mjs +67 -39
 - package/fesm2015/snabcentr-client-ui.mjs.map +1 -1
 - package/fesm2020/snabcentr-client-ui.mjs +65 -37
 - package/fesm2020/snabcentr-client-ui.mjs.map +1 -1
 - package/files/{files-and-documents.component.d.ts → files-and-documents/files-and-documents.component.d.ts} +2 -2
 - package/files/files-and-documents.module.d.ts +1 -1
 - package/files/index.d.ts +2 -2
 - package/package.json +1 -1
 - package/public-api.d.ts +1 -1
 - package/styles/tailwind/tailwind.scss +6 -9
 - package/tokens/index.d.ts +1 -0
 - package/tokens/sc-min-length-search-term.d.ts +5 -0
 - 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 {  
     | 
| 
       4 
     | 
    
         
            -
            import {  
     | 
| 
      
 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';
         
     | 
    
        package/package.json
    CHANGED
    
    
    
        package/public-api.d.ts
    CHANGED
    
    
| 
         @@ -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 
     | 
    
         
             
            }
         
     | 
| 
         @@ -836,10 +841,6 @@ video { 
     | 
|
| 
       836 
841 
     | 
    
         
             
              height: 14rem;
         
     | 
| 
       837 
842 
     | 
    
         
             
            }
         
     | 
| 
       838 
843 
     | 
    
         | 
| 
       839 
     | 
    
         
            -
            .h-6 {
         
     | 
| 
       840 
     | 
    
         
            -
              height: 1.5rem;
         
     | 
| 
       841 
     | 
    
         
            -
            }
         
     | 
| 
       842 
     | 
    
         
            -
             
     | 
| 
       843 
844 
     | 
    
         
             
            .h-8 {
         
     | 
| 
       844 
845 
     | 
    
         
             
              height: 2rem;
         
     | 
| 
       845 
846 
     | 
    
         
             
            }
         
     | 
| 
         @@ -896,10 +897,6 @@ video { 
     | 
|
| 
       896 
897 
     | 
    
         
             
              width: 10rem;
         
     | 
| 
       897 
898 
     | 
    
         
             
            }
         
     | 
| 
       898 
899 
     | 
    
         | 
| 
       899 
     | 
    
         
            -
            .w-6 {
         
     | 
| 
       900 
     | 
    
         
            -
              width: 1.5rem;
         
     | 
| 
       901 
     | 
    
         
            -
            }
         
     | 
| 
       902 
     | 
    
         
            -
             
     | 
| 
       903 
900 
     | 
    
         
             
            .w-8 {
         
     | 
| 
       904 
901 
     | 
    
         
             
              width: 2rem;
         
     | 
| 
       905 
902 
     | 
    
         
             
            }
         
     | 
| 
         @@ -912,7 +909,7 @@ video { 
     | 
|
| 
       912 
909 
     | 
    
         
             
              width: 100%;
         
     | 
| 
       913 
910 
     | 
    
         
             
            }
         
     | 
| 
       914 
911 
     | 
    
         | 
| 
       915 
     | 
    
         
            -
            .min-w 
     | 
| 
      
 912 
     | 
    
         
            +
            .min-w-40 {
         
     | 
| 
       916 
913 
     | 
    
         
             
              min-width: 10rem;
         
     | 
| 
       917 
914 
     | 
    
         
             
            }
         
     | 
| 
       918 
915 
     | 
    
         | 
    
        package/tokens/index.d.ts
    CHANGED
    
    
| 
         @@ -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==
         
     |