import { Component, Input, ChangeDetectorRef } from '@angular/core';
import { DeviceDetectorService } from 'ngx-device-detector';
export class SdGridSubInformation {
    constructor(ref, deviceService) {
        this.ref = ref;
        this.height = 'auto';
        this.subItems = [];
        this.filter = {};
        this.onEditorChange = () => {
            this.ref.detectChanges();
        };
        this.isMobileOrTablet = !deviceService.isDesktop();
    }
    ngOnInit() {
    }
    ngAfterViewInit() {
    }
    updateFilter() {
    }
    trackById(index, item) {
        return item.id;
    }
}
SdGridSubInformation.decorators = [
    { type: Component, args: [{
                selector: 'sd-grid-sub-information',
                template: "<div class=\"clearfix\"></div>\r\n<ng-container *ngIf=\"option?.columns\">\r\n  <div *ngIf=\"!isMobileOrTablet\" class=\"sd-box box-shadow-none\">\r\n    <div class=\"sd-box-body p-0\">\r\n      <div class=\"row mx-0\">\r\n        <div class=\"table-responsive\" style=\"position: relative;\" [ngStyle]=\"{'height': height}\">\r\n          <table class=\"table table-hover table-striped table-bordered c-table\">\r\n            <thead class=\"thead-light\">\r\n              <tr>\r\n                <th class=\"position-sticky c-sticky-all align-middle p-0\" style=\"width:4px; min-width: 4px;\">\r\n                </th>\r\n                <th class=\"position-sticky h-100 p-0 c-sticky-spliter c-sticky-all\"></th>\r\n                <th *ngIf=\"option?.commands?.length\"\r\n                  class=\"position-sticky align-middle text-center p-0 c-sticky-top c-w-1\">\r\n                </th>\r\n                <th *ngFor=\"let column of option.columns\" class=\"position-sticky c-sticky-top\"\r\n                  [ngStyle]=\"{'width':column.width ? column.width : '','min-width':column.width ? column.width : '300px'}\">\r\n                  <span [title]=\"column.title\" class=\"c-header-title cursor-pointer\"\r\n                    [ngStyle]=\"{'width':column.width ? column.width : ''}\">\r\n                    {{column.title | sdTranslate}}\r\n                  </span>\r\n                </th>\r\n              </tr>\r\n            </thead>\r\n            <tbody>\r\n              <ng-container *ngFor=\"let item of subItems; trackBy: trackById\">\r\n                <tr>\r\n                  <td class=\"position-sticky c-sticky-left p-0\">\r\n                  </td>\r\n                  <td class=\"position-sticky h-100 p-0 c-sticky-spliter c-sticky-left\"></td>\r\n                  <td *ngIf=\"option.commands?.length\" class=\"align-middle px-2 py-0 c-w-1\">\r\n                    <div class=\"d-flex align-middle text-center justify-content-center\">\r\n                      <ng-container\r\n                        *ngIf=\"option.commands | commandFilter:item | async; $implicit as filteredCommands\">\r\n                        <section *ngFor=\"let command of filteredCommands\">\r\n                          <ng-container *ngIf=\"!command.children?.length; else elseCommandChildren\">\r\n                            <button *ngIf=\"!command.fontSet\" (click)=\"command.click(item)\" type=\"button\"\r\n                              class=\"c-btn-icon\" [matTooltip]=\"command.title | commandTitle:item\"\r\n                              [disabled]=\"command.disabled | commandDisabled:item\">\r\n                              <i class=\"{{command.icon | commandIcon:item}}\" aria-hidden=\"true\"></i>\r\n                            </button>\r\n                            <button *ngIf=\"command.fontSet\" [matTooltip]=\"command.title | commandTitle:item\"\r\n                              [disabled]=\"command.disabled | commandDisabled:item\" (click)=\"command.click(item)\"\r\n                              aria-hidden=\"true\" mat-icon-button>\r\n                              <mat-icon [fontSet]=\"command.fontSet\">{{command.icon | commandIcon:item}}</mat-icon>\r\n                            </button>\r\n                          </ng-container>\r\n                          <ng-template #elseCommandChildren>\r\n                            <button *ngIf=\"command.icon\" [matMenuTriggerFor]=\"menu\" type=\"button\" class=\"c-btn-icon\"\r\n                              [matTooltip]=\"command.title\" [disabled]=\"command.disabled | commandDisabled:item\">\r\n                              <i class=\"{{command.icon | commandIcon:item}}\" aria-hidden=\"true\"></i>\r\n                            </button>\r\n                            <button *ngIf=\"!command.icon\" mat-icon-button [matMenuTriggerFor]=\"menu\" type=\"button\"\r\n                              class=\"c-btn-icon-30\" [matTooltip]=\"command.title\"\r\n                              [disabled]=\"command.disabled | commandDisabled:item\">\r\n                              <mat-icon>more_vert</mat-icon>\r\n                            </button>\r\n                            <mat-menu #menu=\"matMenu\">\r\n                              <ng-container *ngFor=\"let childCommand of command.children\">\r\n                                <button *ngIf=\"!(item | commandHidden:childCommand | async)\" mat-menu-item\r\n                                  [disabled]=\"childCommand.disabled | commandDisabled:item\"\r\n                                  (click)=\"childCommand.click(item)\">\r\n                                  <i *ngIf=\"!childCommand.fontSet\" class=\"{{childCommand.icon | commandIcon:item}}\"></i>\r\n                                  <mat-icon *ngIf=\"childCommand.fontSet\" [fontSet]=\"childCommand.fontSet\">\r\n                                    {{childCommand.icon | commandIcon:item}}</mat-icon>\r\n                                  <span> {{childCommand.title | commandTitle:item}}</span>\r\n                                </button>\r\n                              </ng-container>\r\n                            </mat-menu>\r\n                          </ng-template>\r\n                        </section>\r\n                      </ng-container>\r\n                    </div>\r\n                  </td>\r\n                  <td *ngFor=\"let column of option.columns\" class=\"align-middle\"\r\n                    [ngClass]=\"{'text-center': column.type !== 'string' && column.type !== 'number', 'text-right': column.type === 'number'}\"\r\n                    [ngStyle]=\"{'width':column.width ? column.width : '', 'min-width':column.width ? column.width : '300px'}\">\r\n                    <ng-container *ngIf=\"!column.children?.length\">\r\n                      <ng-container *ngIf=\"item[column.field] | editorSubInformationHandler:item:option.columns\">\r\n                        <ng-container *ngIf=\"item.editorHandler[column.field].visible;else columnView\">\r\n                          <sd-grid-desktop-column-edit [column]=\"column\" [item]=\"item\" (sdChange)=\"onEditorChange()\">\r\n                          </sd-grid-desktop-column-edit>\r\n                        </ng-container>\r\n                        <ng-template #columnView>\r\n                          <sd-grid-desktop-column-view [column]=\"column\" [item]=\"item\"></sd-grid-desktop-column-view>\r\n                        </ng-template>\r\n                      </ng-container>\r\n                    </ng-container>\r\n                    <div *ngIf=\"column.children?.length\" class=\"row mx-0\">\r\n                      <div *ngFor=\"let childColumn of column.children | filterMobile:item\"\r\n                        [ngClass]=\"{'col-sm-6': childColumn?.colSpan === 1, 'col-sm-12': !childColumn?.colSpan || childColumn?.colSpan === 2}\">\r\n                        <span class=\"c-mobile-title\">\u2022 {{childColumn.title}}:</span>\r\n                        <span *ngIf=\"childColumn.type === 'string'\" class=\"c-mobile-value\"\r\n                          [ngClass]=\"{'badge': item.badge && item.badge[childColumn.field], 'c-mobile-badge':item.badge && item.badge[childColumn.field], \r\n                          'badge-primary':item.badge && item.badge[childColumn.field] === 'PRIMARY', \r\n                          'badge-secondary':item.badge && item.badge[childColumn.field] === 'SECONDARY', \r\n                          'badge-info':item.badge && item.badge[childColumn.field] === 'INFO', \r\n                          'badge-success':item.badge && item.badge[childColumn.field] === 'SUCCESS', \r\n                          'badge-warning':item.badge && item.badge[childColumn.field] === 'WARNING', \r\n                          'badge-danger':item.badge && item.badge[childColumn.field] === 'DANGER',\r\n                          'badge-light':item.badge && item.badge[childColumn.field] === 'LIGHT',\r\n                          'badge-dark':item.badge && item.badge[childColumn.field] === 'DARK',\r\n                          'blinker': item.blinker && item.blinker[childColumn.field]}\">{{item[childColumn.field]}}</span>\r\n                        <span *ngIf=\"childColumn.type === 'number'\" class=\"c-mobile-value\"\r\n                          [ngClass]=\"{'badge': item.badge && item.badge[childColumn.field], 'c-mobile-badge':item.badge && item.badge[childColumn.field], \r\n                          'badge-primary':item.badge && item.badge[childColumn.field] === 'PRIMARY', \r\n                          'badge-secondary':item.badge && item.badge[childColumn.field] === 'SECONDARY', \r\n                          'badge-info':item.badge && item.badge[childColumn.field] === 'INFO', \r\n                          'badge-success':item.badge && item.badge[childColumn.field] === 'SUCCESS', \r\n                          'badge-warning':item.badge && item.badge[childColumn.field] === 'WARNING', \r\n                          'badge-danger':item.badge && item.badge[childColumn.field] === 'DANGER',\r\n                          'badge-light':item.badge && item.badge[childColumn.field] === 'LIGHT',\r\n                          'badge-dark':item.badge && item.badge[childColumn.field] === 'DARK',\r\n                          'blinker': item.blinker && item.blinker[childColumn.field]}\">{{item[childColumn.field] | valueTransform:item:childColumn}}</span>\r\n                        <span *ngIf=\"childColumn.type === 'datetime'\"\r\n                          class=\"c-mobile-value\">{{item[childColumn.field] | date:'dd/MM/yyyy HH:mm'}}</span>\r\n                        <span *ngIf=\"childColumn.type === 'date'\"\r\n                          class=\"c-mobile-value\">{{item[childColumn.field] | date:'dd/MM/yyyy'}}</span>\r\n                        <span *ngIf=\"childColumn.type === 'time'\"\r\n                          class=\"c-mobile-value\">{{item[childColumn.field] | date:'HH:mm'}}</span>\r\n                        <span *ngIf=\"childColumn.type === 'bool'\" class=\"c-mobile-value\">\r\n                          <span *ngIf=\"item[childColumn.field]\"\r\n                            class=\"status status-success\">{{childColumn.trueValue || 'True'}}</span>\r\n                          <span *ngIf=\"!item[childColumn.field]\"\r\n                            class=\"status status-danger\">{{childColumn.falseValue || 'False'}}</span>\r\n                        </span>\r\n                        <span *ngIf=\"childColumn.type === 'color'\" class=\"c-mobile-value\"><input disabled=\"true\"\r\n                            type=\"color\" class=\"form-control form-control-sm\"\r\n                            [(ngModel)]=\"item[childColumn.field]\"></span>\r\n                        <span *ngIf=\"childColumn.type === 'values'\" class=\"status c-mobile-value\"\r\n                          [ngStyle]=\"{'color':childColumn?.dictionary[item[childColumn.field]]?.color}\">\r\n                          {{!!childColumn?.dictionary[item[childColumn.field]] ? childColumn?.dictionary[item[childColumn.field]]?.text : item[childColumn.field]}}\r\n                        </span>\r\n                        <span *ngIf=\"childColumn.type === 'radio'\"\r\n                          class=\"c-mobile-value\">{{item[childColumn.field]}}</span>\r\n                        <img *ngIf=\"childColumn.type === 'image'\" [src]=\"item[childColumn.field]\"\r\n                          [width]=\"childColumn.display?.width\" [height]=\"childColumn.display?.height\"\r\n                          style=\"margin: 5px 0\">\r\n                      </div>\r\n                    </div>\r\n                  </td>\r\n                </tr>\r\n              </ng-container>\r\n            </tbody>\r\n          </table>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  </div>\r\n  <div *ngIf=\"isMobileOrTablet\" class=\"sd-box c-mobile-box\">\r\n    <div class=\"sd-box-body c-mobile-body\" [ngStyle]=\"{'height': height}\">\r\n      <ng-container *ngFor=\"let item of subItems\">\r\n        <div class=\"c-mobile-item\">\r\n          <ng-container *ngFor=\"let column of  option.columns | filterMobile:item\">\r\n            <div *ngIf=\"item[column.field]\" class=\"c-mobile-row\">\r\n              <span class=\"c-mobile-title\">\u2022 {{column.title}}:</span>\r\n              <span *ngIf=\"column.type === 'string'\" class=\"c-mobile-value\" [ngClass]=\"{'badge': item.badge && item.badge[column.field], 'c-mobile-badge':item.badge && item.badge[column.field], \r\n              'badge-primary':item.badge && item.badge[column.field] === 'PRIMARY', \r\n              'badge-secondary':item.badge && item.badge[column.field] === 'SECONDARY', \r\n              'badge-info':item.badge && item.badge[column.field] === 'INFO', \r\n              'badge-success':item.badge && item.badge[column.field] === 'SUCCESS', \r\n              'badge-warning':item.badge && item.badge[column.field] === 'WARNING', \r\n              'badge-danger':item.badge && item.badge[column.field] === 'DANGER',\r\n              'badge-light':item.badge && item.badge[column.field] === 'LIGHT',\r\n              'badge-dark':item.badge && item.badge[column.field] === 'DARK',\r\n              'blinker': item.blinker && item.blinker[column.field]}\">{{item[column.field]}}</span>\r\n              <span *ngIf=\"column.type === 'number'\" class=\"c-mobile-value\" [ngClass]=\"{'badge': item.badge && item.badge[column.field], 'c-mobile-badge':item.badge && item.badge[column.field], \r\n              'badge-primary':item.badge && item.badge[column.field] === 'PRIMARY', \r\n              'badge-secondary':item.badge && item.badge[column.field] === 'SECONDARY', \r\n              'badge-info':item.badge && item.badge[column.field] === 'INFO', \r\n              'badge-success':item.badge && item.badge[column.field] === 'SUCCESS', \r\n              'badge-warning':item.badge && item.badge[column.field] === 'WARNING', \r\n              'badge-danger':item.badge && item.badge[column.field] === 'DANGER',\r\n              'badge-light':item.badge && item.badge[column.field] === 'LIGHT',\r\n              'badge-dark':item.badge && item.badge[column.field] === 'DARK',\r\n              'blinker': item.blinker && item.blinker[column.field]}\">{{item[column.field] | number : '1.0-2'}}</span>\r\n              <span *ngIf=\"column.type === 'datetime'\"\r\n                class=\"c-mobile-value\">{{item[column.field] | date:'dd/MM/yyyy HH:mm'}}</span>\r\n              <span *ngIf=\"column.type === 'date'\"\r\n                class=\"c-mobile-value\">{{item[column.field] | date:'dd/MM/yyyy'}}</span>\r\n              <span *ngIf=\"column.type === 'time'\" class=\"c-mobile-value\">{{item[column.field] | date:'HH:mm'}}</span>\r\n              <span *ngIf=\"column.type === 'bool'\" class=\"c-mobile-value\">\r\n                <span *ngIf=\"item[column.field]\" class=\"status status-success\">{{column.trueValue || 'True'}}</span>\r\n                <span *ngIf=\"!item[column.field]\" class=\"status status-danger\">{{column.falseValue || 'False'}}</span>\r\n              </span>\r\n              <span *ngIf=\"column.type === 'color'\" class=\"c-mobile-value\"><input disabled=\"true\" type=\"color\"\r\n                  class=\"form-control form-control-sm\" [(ngModel)]=\"item[column.field]\"></span>\r\n              <span *ngIf=\"column.type === 'values'\" class=\"status c-mobile-value\"\r\n                [ngStyle]=\"{'color':column?.dictionary[item[column.field]]?.color}\">\r\n                {{!!column?.dictionary[item[column.field]] ? column?.dictionary[item[column.field]]?.text : item[column.field]}}\r\n              </span>\r\n              <span *ngIf=\"column.type === 'radio'\" class=\"c-mobile-value\">{{item[column.field]}}</span>\r\n              <img *ngIf=\"column.type === 'image'\" [src]=\"item[column.field]\" [width]=\"column.display?.width\"\r\n                [height]=\"column.display?.height\" style=\"margin: 5px 0\">\r\n            </div>\r\n            <ng-container *ngIf=\"column.children?.length\">\r\n              <div class=\"c-mobile-row\" *ngFor=\"let childColumn of column.children | filterMobile:item\">\r\n                <span class=\"c-mobile-title\">\u2022 {{childColumn.title}}:</span>\r\n                <span *ngIf=\"childColumn.type === 'string'\" class=\"c-mobile-value\" [ngClass]=\"{'badge': item.badge && item.badge[childColumn.field], 'c-mobile-badge':item.badge && item.badge[childColumn.field], \r\n              'badge-primary':item.badge && item.badge[childColumn.field] === 'PRIMARY', \r\n              'badge-secondary':item.badge && item.badge[childColumn.field] === 'SECONDARY', \r\n              'badge-info':item.badge && item.badge[childColumn.field] === 'INFO', \r\n              'badge-success':item.badge && item.badge[childColumn.field] === 'SUCCESS', \r\n              'badge-warning':item.badge && item.badge[childColumn.field] === 'WARNING', \r\n              'badge-danger':item.badge && item.badge[childColumn.field] === 'DANGER',\r\n              'badge-light':item.badge && item.badge[childColumn.field] === 'LIGHT',\r\n              'badge-dark':item.badge && item.badge[childColumn.field] === 'DARK',\r\n              'blinker': item.blinker && item.blinker[childColumn.field]}\">{{item[childColumn.field]}}</span>\r\n                <span *ngIf=\"childColumn.type === 'number'\" class=\"c-mobile-value\"\r\n                  [ngClass]=\"{'badge': item.badge && item.badge[childColumn.field], 'c-mobile-badge':item.badge && item.badge[childColumn.field], \r\n              'badge-primary':item.badge && item.badge[childColumn.field] === 'PRIMARY', \r\n              'badge-secondary':item.badge && item.badge[childColumn.field] === 'SECONDARY', \r\n              'badge-info':item.badge && item.badge[childColumn.field] === 'INFO', \r\n              'badge-success':item.badge && item.badge[childColumn.field] === 'SUCCESS', \r\n              'badge-warning':item.badge && item.badge[childColumn.field] === 'WARNING', \r\n              'badge-danger':item.badge && item.badge[childColumn.field] === 'DANGER',\r\n              'badge-light':item.badge && item.badge[childColumn.field] === 'LIGHT',\r\n              'badge-dark':item.badge && item.badge[childColumn.field] === 'DARK',\r\n              'blinker': item.blinker && item.blinker[childColumn.field]}\">{{item[childColumn.field] | number : '1.0-2'}}</span>\r\n                <span *ngIf=\"childColumn.type === 'datetime'\"\r\n                  class=\"c-mobile-value\">{{item[childColumn.field] | date:'dd/MM/yyyy HH:mm'}}</span>\r\n                <span *ngIf=\"childColumn.type === 'date'\"\r\n                  class=\"c-mobile-value\">{{item[childColumn.field] | date:'dd/MM/yyyy'}}</span>\r\n                <span *ngIf=\"childColumn.type === 'time'\"\r\n                  class=\"c-mobile-value\">{{item[childColumn.field] | date:'HH:mm'}}</span>\r\n                <span *ngIf=\"childColumn.type === 'bool'\" class=\"c-mobile-value\">\r\n                  <span *ngIf=\"item[childColumn.field]\"\r\n                    class=\"status status-success\">{{childColumn.trueValue || 'True'}}</span>\r\n                  <span *ngIf=\"!item[childColumn.field]\"\r\n                    class=\"status status-danger\">{{childColumn.falseValue || 'False'}}</span>\r\n                </span>\r\n                <span *ngIf=\"childColumn.type === 'color'\" class=\"c-mobile-value\"><input disabled=\"true\" type=\"color\"\r\n                    class=\"form-control form-control-sm\" [(ngModel)]=\"item[childColumn.field]\"></span>\r\n                <span *ngIf=\"childColumn.type === 'values'\" class=\"status c-mobile-value\"\r\n                  [ngStyle]=\"{'color':childColumn?.dictionary[item[childColumn.field]]?.color}\">\r\n                  {{!!childColumn?.dictionary[item[childColumn.field]] ? childColumn?.dictionary[item[childColumn.field]]?.text : item[childColumn.field]}}\r\n                </span>\r\n                <span *ngIf=\"childColumn.type === 'radio'\" class=\"c-mobile-value\">{{item[childColumn.field]}}</span>\r\n                <img *ngIf=\"childColumn.type === 'image'\" [src]=\"item[childColumn.field]\"\r\n                  [width]=\"childColumn.display?.width\" [height]=\"childColumn.display?.height\" style=\"margin: 5px 0\">\r\n              </div>\r\n            </ng-container>\r\n          </ng-container>\r\n        </div>\r\n      </ng-container>\r\n    </div>\r\n  </div>\r\n</ng-container>",
                styles: [".grid-header{overflow-x:hidden;overflow-y:hidden}.c-table.table{margin-bottom:5px}td,th{font-size:13px;min-width:0;padding:3px 5px}.c-cell-padding{padding:3px 5px!important}.c-header-title{font-weight:500;text-transform:capitalize}span.c-header-title{display:block;overflow:hidden!important;padding:0 .3rem;text-overflow:ellipsis;white-space:nowrap}thead th{border-top:none;height:auto;min-height:20px;padding:5px}tbody td{height:25px;min-height:25px}.status{border-radius:1.5rem;color:#16759b;display:inline-block;font-weight:500;padding:2px 5px;text-align:center;text-transform:uppercase}.status-success{color:#43a047}.status-danger{color:#f44336}.cursor-pointer{cursor:pointer}label.custom-control.custom-checkbox{margin:0}.c-overflow-x-hidden{overflow-x:hidden}.c-grid-header,.c-overflow-y-hidden{overflow-y:hidden}.c-grid-header{overflow-x:hidden}.c-th-xs{height:49px;min-height:49px}.c-td-xs,.c-th-xs{font-size:.8rem;line-height:1.15;min-width:0;padding:.1rem!important}.c-td-xs{height:1.5rem;min-height:1.5rem}.c-input-xs{font-size:13px!important;height:28px!important;line-height:1.5!important;padding:3px!important}.c-sticky-top{top:0!important;z-index:20}.c-sticky-left{z-index:20}.c-sticky-all,.c-sticky-left{border-left:none!important;border-right:none!important;left:0!important}.c-sticky-all{top:0!important;z-index:30}.c-sticky-spliter{background-color:#dee2e6;border:none;min-width:1px;width:1px;z-index:40}.table-striped tbody tr:nth-of-type(2n) .c-sticky-left{background-color:#fff}.table-striped tbody tr:nth-of-type(odd) .c-sticky-left{background-color:#f2f2f2}.table-responsive>.table-bordered{border:1px solid #dee2e6!important}.c-badge{border-radius:10rem;display:block!important;font-size:.8rem;font-weight:500;padding:.3rem!important}.c-m-3{margin:3px!important}.c-m-5{margin:5px!important}.c-w-1{width:1px}.c-btn-icon{background:none!important;border:none;display:inline-flex;height:16px;opacity:.8;padding:0 3px}.c-btn-icon:hover{cursor:pointer;opacity:1}.c-btn-icon:disabled{background:none!important;border:none;cursor:not-allowed;opacity:.3}"]
            },] }
];
SdGridSubInformation.ctorParameters = () => [
    { type: ChangeDetectorRef },
    { type: DeviceDetectorService }
];
SdGridSubInformation.propDecorators = {
    height: [{ type: Input }],
    option: [{ type: Input }],
    subItems: [{ type: Input }]
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1zdWItaW5mb3JtYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IkM6L1VzZXJzL25naGlhdHQxNV9vbmVtb3VudC9Eb2N1bWVudHMvbGliLWNvcmUtdWkvcHJvamVjdHMvc2QtY29yZS9ncmlkLyIsInNvdXJjZXMiOlsic3JjL2xpYi9jb21wb25lbnRzL2dyaWQtc3ViLWluZm9ybWF0aW9uL2dyaWQtc3ViLWluZm9ybWF0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUF5QixLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0YsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFPNUQsTUFBTSxPQUFPLG9CQUFvQjtJQU0vQixZQUNVLEdBQXNCLEVBQzlCLGFBQW9DO1FBRDVCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBTnZCLFdBQU0sR0FBRyxNQUFNLENBQUM7UUFFaEIsYUFBUSxHQUFVLEVBQUUsQ0FBQztRQUU5QixXQUFNLEdBQVEsRUFBRSxDQUFDO1FBc0JqQixtQkFBYyxHQUFHLEdBQUcsRUFBRTtZQUNwQixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzNCLENBQUMsQ0FBQTtRQW5CQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDckQsQ0FBQztJQUVELFFBQVE7SUFDUixDQUFDO0lBRUQsZUFBZTtJQUVmLENBQUM7SUFFRCxZQUFZO0lBRVosQ0FBQztJQUNELFNBQVMsQ0FBQyxLQUFLLEVBQUUsSUFBSTtRQUNuQixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUM7SUFDakIsQ0FBQzs7O1lBOUJGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUseUJBQXlCO2dCQUNuQyw4aG9CQUFvRDs7YUFFckQ7OztZQVRpRCxpQkFBaUI7WUFHMUQscUJBQXFCOzs7cUJBUTNCLEtBQUs7cUJBQ0wsS0FBSzt1QkFDTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIEFmdGVyVmlld0luaXQsIElucHV0LCBDaGFuZ2VEZXRlY3RvclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgU3ViT3B0aW9uIH0gZnJvbSAnLi4vLi4vZ3JpZC5tb2RlbCc7XHJcbmltcG9ydCB7IERldmljZURldGVjdG9yU2VydmljZSB9IGZyb20gJ25neC1kZXZpY2UtZGV0ZWN0b3InO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzZC1ncmlkLXN1Yi1pbmZvcm1hdGlvbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2dyaWQtc3ViLWluZm9ybWF0aW9uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9ncmlkLXN1Yi1pbmZvcm1hdGlvbi5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZEdyaWRTdWJJbmZvcm1hdGlvbiBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgQElucHV0KCkgaGVpZ2h0ID0gJ2F1dG8nO1xyXG4gIEBJbnB1dCgpIG9wdGlvbjogU3ViT3B0aW9uO1xyXG4gIEBJbnB1dCgpIHN1Ykl0ZW1zOiBhbnlbXSA9IFtdO1xyXG4gIGlzTW9iaWxlT3JUYWJsZXQ6IGJvb2xlYW47XHJcbiAgZmlsdGVyOiBhbnkgPSB7fTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIGRldmljZVNlcnZpY2U6IERldmljZURldGVjdG9yU2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy5pc01vYmlsZU9yVGFibGV0ID0gIWRldmljZVNlcnZpY2UuaXNEZXNrdG9wKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuXHJcbiAgfVxyXG5cclxuICB1cGRhdGVGaWx0ZXIoKSB7XHJcblxyXG4gIH1cclxuICB0cmFja0J5SWQoaW5kZXgsIGl0ZW0pIHtcclxuICAgIHJldHVybiBpdGVtLmlkO1xyXG4gIH1cclxuXHJcbiAgb25FZGl0b3JDaGFuZ2UgPSAoKSA9PiB7XHJcbiAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==