@sd-angular/core 1.1.74 → 1.1.77
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.
- package/bundles/sd-angular-core-filter.umd.js +1 -1
- package/bundles/sd-angular-core-filter.umd.js.map +1 -1
- package/bundles/sd-angular-core-filter.umd.min.js +1 -1
- package/bundles/sd-angular-core-grid-material.umd.js +4 -4
- package/bundles/sd-angular-core-grid-material.umd.js.map +1 -1
- package/bundles/sd-angular-core-grid-material.umd.min.js +1 -1
- package/bundles/sd-angular-core-grid-material.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-grid.umd.js +5 -5
- package/bundles/sd-angular-core-grid.umd.js.map +1 -1
- package/bundles/sd-angular-core-grid.umd.min.js +1 -1
- package/bundles/sd-angular-core-grid.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-input-number.umd.js +28 -18
- package/bundles/sd-angular-core-input-number.umd.js.map +1 -1
- package/bundles/sd-angular-core-input-number.umd.min.js +1 -1
- package/bundles/sd-angular-core-input-number.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-popover.umd.js +1 -1
- package/bundles/sd-angular-core-popover.umd.min.js +1 -1
- package/bundles/sd-angular-core-popover.umd.min.js.map +1 -1
- package/esm2015/filter/src/lib/filter.component.js +2 -2
- package/esm2015/grid/src/lib/components/grid-config/grid-config.component.js +2 -2
- package/esm2015/grid/src/lib/components/grid-desktop-inline-filter/grid-desktop-inline-filter.component.js +2 -2
- package/esm2015/grid/src/lib/components/grid-popup-editor/grid-popup-editor.component.js +2 -2
- package/esm2015/grid/src/lib/components/grid-popup-filter/grid-popup-filter.component.js +2 -2
- package/esm2015/grid/src/lib/components/grid-popup-quick-filter-detail/grid-popup-quick-filter-detail.component.js +2 -2
- package/esm2015/grid-material/src/lib/components/column-inline-filter/column-inline-filter.component.js +2 -2
- package/esm2015/grid-material/src/lib/components/dynamic-column/dynamic-column.component.js +2 -2
- package/esm2015/grid-material/src/lib/components/grid-filter/grid-filter.component.js +2 -2
- package/esm2015/grid-material/src/lib/components/popup-filter/popup-filter.component.js +2 -2
- package/esm2015/input-number/src/lib/input-number.component.js +32 -22
- package/esm2015/popover/src/lib/popover/popover.component.js +1 -1
- package/fesm2015/sd-angular-core-filter.js +1 -1
- package/fesm2015/sd-angular-core-filter.js.map +1 -1
- package/fesm2015/sd-angular-core-grid-material.js +4 -4
- package/fesm2015/sd-angular-core-grid-material.js.map +1 -1
- package/fesm2015/sd-angular-core-grid.js +5 -5
- package/fesm2015/sd-angular-core-grid.js.map +1 -1
- package/fesm2015/sd-angular-core-input-number.js +31 -21
- package/fesm2015/sd-angular-core-input-number.js.map +1 -1
- package/fesm2015/sd-angular-core-popover.js +1 -1
- package/filter/sd-angular-core-filter.metadata.json +1 -1
- package/grid/sd-angular-core-grid.metadata.json +1 -1
- package/grid-material/sd-angular-core-grid-material.metadata.json +1 -1
- package/input-number/sd-angular-core-input-number.metadata.json +1 -1
- package/input-number/src/lib/input-number.component.d.ts +4 -1
- package/package.json +1 -1
- package/popover/sd-angular-core-popover.metadata.json +1 -1
- package/{sd-angular-core-1.1.74.tgz → sd-angular-core-1.1.77.tgz} +0 -0
|
@@ -290,7 +290,7 @@ _loadConfiguration = new WeakMap();
|
|
|
290
290
|
SdGridPopupFilter.decorators = [
|
|
291
291
|
{ type: Component, args: [{
|
|
292
292
|
selector: 'sd-grid-popup-filter',
|
|
293
|
-
template: "<sd-modal width=\"sm\" [title]=\"'Filter' | sdTranslate\" #modal>\r\n <sd-modal-body>\r\n <div\r\n *ngIf=\"key && filterOption?.multiple !== false && (!filterOption?.quickFilterVisibility || filterOption?.quickFilterVisibility === 'popup')\">\r\n <mat-form-field class=\"sd-md\" appearance=\"outline\">\r\n <mat-label>{{'Quick filters' | sdTranslate}}</mat-label>\r\n <mat-select [(ngModel)]=\"selectedCode\" (selectionChange)=\"onSelectionChange($event)\" #matSelect>\r\n <mat-option value=\"\">{{'Please select' | sdTranslate}}</mat-option>\r\n <mat-option *ngFor=\"let quickFilter of quickFilters\" [value]=\"quickFilter.code\">\r\n <div style=\"display:flex; justify-content: space-between\">\r\n <span>{{quickFilter.code}}</span>\r\n <div>\r\n <mat-icon class=\"mr-1 c-fa-icon\" (click)=\"onEditQuickFilter($event, quickFilter)\" fontSet=\"fa\"\r\n fontIcon=\"fa-pencil\"></mat-icon>\r\n <mat-icon class=\"mr-0 c-fa-icon\" (click)=\"onDeleteQuickFilter($event, quickFilter)\" fontSet=\"fa\"\r\n fontIcon=\"fa-trash-o\"></mat-icon>\r\n </div>\r\n </div>\r\n </mat-option>\r\n <mat-option [value]=\"newQuickFilter\">\r\n <div (click)=\"onCreateQuickFilter($event)\">\r\n <mat-icon class=\"mr-1\" fontSet=\"material-icons-outlined\">add</mat-icon>\r\n <span>{{'Create quick filter' | sdTranslate}}</span>\r\n </div>\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <ng-container *ngIf=\"filterOption?.multiple === false\">\r\n <mat-form-field appearance=\"outline\">\r\n <mat-label>{{'Select field' | sdTranslate}}</mat-label>\r\n <mat-select [(ngModel)]=\"selectedField\">\r\n <mat-option value=\"\">{{'Please select' | sdTranslate}}</mat-option>\r\n <mat-option *ngFor=\"let item of externalFilters\" [value]=\"'external' + item.field\">\r\n {{item.title}}\r\n </mat-option>\r\n <ng-container *ngFor=\"let item of columns\">\r\n <mat-option *ngIf=\"item.type !== 'children'\" [value]=\"'column' + item.field\">\r\n {{item.title}}\r\n </mat-option>\r\n <ng-container *ngIf=\"item.type === 'children' && item.children?.length\">\r\n <ng-container *ngFor=\"let childColumn of item.children\">\r\n <mat-option [value]=\"'column' + childColumn.field\">\r\n {{childColumn.title}}\r\n </mat-option>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </mat-select>\r\n </mat-form-field>\r\n </ng-container>\r\n <ng-container *ngFor=\"let item of externalFilters\">\r\n <div *ngIf=\"filterOption?.multiple !== false || selectedField === 'external' + item.field\"\r\n class=\"d-flex align-items-baseline\">\r\n <ng-container *ngIf=\"filterOption?.multiple !== false\">\r\n <div *sdDesktop class=\"c-checkable\">\r\n <sd-switch [(model)]=\"inlineExternal[item.field]\" (sdChange)=\"onInlineChange()\">\r\n </sd-switch>\r\n </div>\r\n </ng-container>\r\n <div class=\"c-filterable\">\r\n <sd-input [label]=\"item.title\" *ngIf=\"item.type === 'string'\" type=\"text\"\r\n [(model)]=\"externalFilter[item.field]\">\r\n </sd-input>\r\n <sd-input [label]=\"item.title\" *ngIf=\"item.type === 'number'\" type=\"number\"\r\n [(model)]=\"externalFilter[item.field]\">\r\n </sd-input>\r\n <sd-select [label]=\"item.title\" *ngIf=\"item.type === 'bool'\" [items]=\" [{value:'1',display:item.trueValue || 'True' },\r\n {value:'0',display:item.falseValue || 'False' }]\" valueField=\"value\" displayField=\"display\"\r\n [(model)]=\"externalFilter[item.field]\">\r\n </sd-select>\r\n <sd-select [label]=\"item.title\" *ngIf=\"item.type === 'radio'\" [items]=\"item.values\"\r\n [valueField]=\"item.valueField\" [displayField]=\"item.displayField\" [(model)]=\"externalFilter[item.field]\">\r\n </sd-select>\r\n <ng-container *ngIf=\"item.type === 'values'\">\r\n <sd-select *ngIf=\"item.selection === 'MULTIPLE'\" [label]=\"item.title\" [items]=\"item.values\"\r\n [valueField]=\"item.valueField\" [displayField]=\"item.displayField\" [(model)]=\"externalFilter[item.field]\"\r\n multiple=\"true\">\r\n </sd-select>\r\n <sd-autocomplete *ngIf=\"item.selection === 'AUTOCOMPLETE'\" [label]=\"item.title\"\r\n [items]=\"item.values\" [valueField]=\"item.valueField\" [displayField]=\"item.displayField\"\r\n [(model)]=\"externalFilter[item.field]\">\r\n </sd-autocomplete>\r\n <sd-select *ngIf=\"item.selection === 'MULTIPLEAUTOCOMPLETE'\" [label]=\"item.title\"\r\n [items]=\"item.values\" [valueField]=\"item.valueField\" [displayField]=\"item.displayField\"\r\n [(model)]=\"externalFilter[item.field]\" filtered=\"true\" multiple=\"true\">\r\n </sd-select>\r\n <sd-select *ngIf=\"!item.selection\" [label]=\"item.title\" [items]=\"item.values\"\r\n [valueField]=\"item.valueField\" [displayField]=\"item.displayField\" [(model)]=\"externalFilter[item.field]\">\r\n </sd-select>\r\n </ng-container>\r\n <sd-input *ngIf=\"item.type === 'custom'\" [label]=\"item.title\"\r\n [(model)]=\"externalFilter[displayKey + item.field]\"\r\n (sdFocusForceBlur)=\"item?.onClick(externalFilter, item.field, displayKey + item.field)\">\r\n </sd-input>\r\n <sd-date-time [label]=\"item.title\" *ngIf=\"item.type ==='date'\"\r\n [(model)]=\"externalFilter[item.field]\" type=\"date\">\r\n </sd-date-time>\r\n <sd-date-range [label]=\"item.title\" *ngIf=\"item.type ==='daterangefull'\"\r\n [(from)]=\"externalFilter[item.field].from\" [(to)]=\"externalFilter[item.field].to\"\r\n [min]=\"item.minDate\" [max]=\"item.maxDate\">\r\n </sd-date-range>\r\n <ng-container *ngIf=\"item.type ==='daterange'\">\r\n <div class=\"row\">\r\n <div class=\"col-6\">\r\n <sd-date-time [label]=\"item.fromTitle\" [(model)]=\"externalFilter[item.field].from\"\r\n [type]=\"item.enableTime ? 'datetime' : 'date'\" [minDate]=\"item.minDate\"\r\n [maxDate]=\"externalFilter[item.field].to || item.maxDate\">\r\n </sd-date-time>\r\n </div>\r\n <div class=\"col-6\">\r\n <sd-date-time [label]=\"item.toTitle\" [(model)]=\"externalFilter[item.field].to\"\r\n [type]=\"item.enableTime ? 'datetime' : 'date'\"\r\n [minDate]=\"item.minDate || externalFilter[item.field].from\" [maxDate]=\"item.maxDate\">\r\n </sd-date-time>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <div class=\"row\" *ngIf=\"item.type ==='numberrange'\">\r\n <div class=\"col-6\">\r\n <sd-input [label]=\"item.fromTitle\" type=\" number\" [(model)]=\"externalFilter[item.field].from\">\r\n </sd-input>\r\n </div>\r\n <div class=\"col-6\">\r\n <sd-input [label]=\"item.toTitle\" type=\" number\" [(model)]=\"externalFilter[item.field].to\">\r\n </sd-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngFor=\"let column of columns\">\r\n <div class=\"d-flex align-items-baseline\"\r\n *ngIf=\"column.type !== 'children' && (filterOption?.multiple !== false || selectedField === 'column' + column.field)\">\r\n <ng-container *ngIf=\"filterOption?.multiple !== false\">\r\n <div *sdDesktop class=\"c-checkable\">\r\n <sd-switch [(model)]=\"inlineColumn[column.field]\" (sdChange)=\"onInlineChange()\">\r\n </sd-switch>\r\n </div>\r\n </ng-container>\r\n <div class=\"c-filterable\">\r\n <sd-input *ngIf=\"column.type === 'string'\" [label]=\"column.title\" type=\"text\"\r\n [(model)]=\"filter[column.field]\">\r\n </sd-input>\r\n <sd-input *ngIf=\"column.type === 'number'\" [label]=\"column.title\" type=\" number\"\r\n [(model)]=\"filter[column.field]\">\r\n </sd-input>\r\n <sd-select *ngIf=\"column.type === 'bool'\" [label]=\"column.title\" [items]=\"[{value:'1',display:column.trueValue || 'True' },\r\n {value:'0',display:column.falseValue || 'False' }]\" [(model)]=\"filter[column.field]\">\r\n </sd-select>\r\n <sd-select *ngIf=\"column.type === 'radio'\" [label]=\"column.title\" [items]=\"column.values\"\r\n [valueField]=\"column.valueField\" [displayField]=\"column.displayField\" [(model)]=\"filter[column.field]\">\r\n </sd-select>\r\n <sd-select *ngIf=\"column.type === 'values' && !column?.editor?.autocomplete\" [label]=\"column.title\"\r\n [items]=\"column.values\" valueField=\"value\" displayField=\"text\" [(model)]=\"filter[column.field]\">\r\n </sd-select>\r\n <sd-autocomplete *ngIf=\"column.type === 'values' && column?.editor?.autocomplete\" [label]=\"column.title\"\r\n [items]=\"column.values\" valueField=\"value\" displayField=\"text\" [(model)]=\"filter[column.field]\">\r\n </sd-autocomplete>\r\n <sd-date-time *ngIf=\"column.type ==='date' || column.type==='datetime' ||\r\n column.type==='time'\" [label]=\"column.title\" [(model)]=\" filter[column.field]\" type=\"date\">\r\n </sd-date-time>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"column.type === 'children' && column.children?.length\">\r\n <ng-container *ngFor=\"let childColumn of column.children\">\r\n <div class=\"d-flex align-items-baseline\"\r\n *ngIf=\"filterOption?.multiple !== false || selectedField === 'column' + childColumn.field\">\r\n <ng-container *ngIf=\"filterOption?.multiple !== false\">\r\n <div *sdDesktop class=\"c-checkable\">\r\n <sd-switch [(model)]=\"inlineColumn[childColumn.field]\" (sdChange)=\"onInlineChange()\">\r\n </sd-switch>\r\n </div>\r\n </ng-container>\r\n <div class=\"c-filterable\">\r\n <sd-input [label]=\"childColumn.title\" *ngIf=\"childColumn.type === 'string'\" type=\"text\"\r\n [(model)]=\"filter[childColumn.field]\">\r\n </sd-input>\r\n <sd-input [label]=\"childColumn.title\" *ngIf=\"childColumn.type === 'number'\" type=\" number\"\r\n [(model)]=\"filter[childColumn.field]\">\r\n </sd-input>\r\n <sd-select [label]=\"childColumn.title\" *ngIf=\"childColumn.type === 'bool'\" [items]=\"[{value:'1',display:column.trueValue || 'True' },\r\n {value:'0',display:childColumn.falseValue || 'False' }]\" [(model)]=\"filter[childColumn.field]\">\r\n </sd-select>\r\n <sd-select [label]=\"childColumn.title\" *ngIf=\"childColumn.type === 'radio'\"\r\n [items]=\"childColumn.values\" [valueField]=\"childColumn.valueField\"\r\n [displayField]=\"childColumn.displayField\" [(model)]=\"filter[childColumn.field]\">\r\n </sd-select>\r\n <sd-autocomplete [label]=\"childColumn.title\" *ngIf=\"childColumn.type === 'values'\"\r\n [items]=\"childColumn.values\" valueField=\"value\" displayField=\"text\"\r\n [(model)]=\"filter[childColumn.field]\">\r\n </sd-autocomplete>\r\n <sd-date-time [label]=\"childColumn.title\" *ngIf=\"childColumn.type ==='date' || childColumn.type==='datetime' ||\r\n childColumn.type==='time'\" [(model)]=\" filter[childColumn.field]\" type=\"date\">\r\n </sd-date-time>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </sd-modal-body>\r\n <sd-modal-footer *sdDesktop>\r\n <sd-button class=\"mr-auto\" (action)=\"onClear()\" icon=\"clear\" [title]=\"'Clear filter' | sdTranslate\" size=\"sm\">\r\n </sd-button>\r\n <sd-button (action)=\"onAccept()\" icon=\"done\" [title]=\"'Accept' | sdTranslate\" color=\"primary\" size=\"sm\"></sd-button>\r\n </sd-modal-footer>\r\n <sd-modal-footer *sdMobileTablet>\r\n <sd-button style=\"flex: 1; padding-right: 5px;\" (action)=\"onClear()\" icon=\"clear\"\r\n [title]=\"'Clear filter' | sdTranslate\" width=\"100%\" size=\"sm\"></sd-button>\r\n <sd-button style=\"flex: 1; padding-left: 5px;\" (action)=\"onAccept()\" icon=\"done\" [title]=\"'Accept' | sdTranslate\"\r\n color=\"primary\" width=\"100%\" size=\"sm\"></sd-button>\r\n </sd-modal-footer>\r\n</sd-modal>\r\n<sd-grid-popup-quick-filter-detail #popupQuickFilterDetail (accept)=\"onAcceptQuickFilter($event)\">\r\n</sd-grid-popup-quick-filter-detail>",
|
|
293
|
+
template: "<sd-modal width=\"sm\" [title]=\"'Filter' | sdTranslate\" #modal>\r\n <sd-modal-body>\r\n <div\r\n *ngIf=\"key && filterOption?.multiple !== false && (!filterOption?.quickFilterVisibility || filterOption?.quickFilterVisibility === 'popup')\">\r\n <mat-form-field class=\"sd-md\" appearance=\"outline\">\r\n <mat-label>{{'Quick filters' | sdTranslate}}</mat-label>\r\n <mat-select [(ngModel)]=\"selectedCode\" (selectionChange)=\"onSelectionChange($event)\" #matSelect>\r\n <mat-option value=\"\">{{'Please select' | sdTranslate}}</mat-option>\r\n <mat-option *ngFor=\"let quickFilter of quickFilters\" [value]=\"quickFilter.code\">\r\n <div style=\"display:flex; justify-content: space-between\">\r\n <span>{{quickFilter.code}}</span>\r\n <div>\r\n <mat-icon class=\"mr-1 c-fa-icon\" (click)=\"onEditQuickFilter($event, quickFilter)\" fontSet=\"fa\"\r\n fontIcon=\"fa-pencil\"></mat-icon>\r\n <mat-icon class=\"mr-0 c-fa-icon\" (click)=\"onDeleteQuickFilter($event, quickFilter)\" fontSet=\"fa\"\r\n fontIcon=\"fa-trash-o\"></mat-icon>\r\n </div>\r\n </div>\r\n </mat-option>\r\n <mat-option [value]=\"newQuickFilter\">\r\n <div (click)=\"onCreateQuickFilter($event)\">\r\n <mat-icon class=\"mr-1\" fontSet=\"material-icons-outlined\">add</mat-icon>\r\n <span>{{'Create quick filter' | sdTranslate}}</span>\r\n </div>\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <ng-container *ngIf=\"filterOption?.multiple === false\">\r\n <mat-form-field appearance=\"outline\">\r\n <mat-label>{{'Select field' | sdTranslate}}</mat-label>\r\n <mat-select [(ngModel)]=\"selectedField\">\r\n <mat-option value=\"\">{{'Please select' | sdTranslate}}</mat-option>\r\n <mat-option *ngFor=\"let item of externalFilters\" [value]=\"'external' + item.field\">\r\n {{item.title}}\r\n </mat-option>\r\n <ng-container *ngFor=\"let item of columns\">\r\n <mat-option *ngIf=\"item.type !== 'children'\" [value]=\"'column' + item.field\">\r\n {{item.title}}\r\n </mat-option>\r\n <ng-container *ngIf=\"item.type === 'children' && item.children?.length\">\r\n <ng-container *ngFor=\"let childColumn of item.children\">\r\n <mat-option [value]=\"'column' + childColumn.field\">\r\n {{childColumn.title}}\r\n </mat-option>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </mat-select>\r\n </mat-form-field>\r\n </ng-container>\r\n <ng-container *ngFor=\"let item of externalFilters\">\r\n <div *ngIf=\"filterOption?.multiple !== false || selectedField === 'external' + item.field\"\r\n class=\"d-flex align-items-baseline\">\r\n <ng-container *ngIf=\"filterOption?.multiple !== false\">\r\n <div *sdDesktop class=\"c-checkable\">\r\n <sd-switch [(model)]=\"inlineExternal[item.field]\" (sdChange)=\"onInlineChange()\">\r\n </sd-switch>\r\n </div>\r\n </ng-container>\r\n <div class=\"c-filterable\">\r\n <sd-input [label]=\"item.title\" *ngIf=\"item.type === 'string'\" type=\"text\"\r\n [(model)]=\"externalFilter[item.field]\">\r\n </sd-input>\r\n <sd-input-number [label]=\"item.title\" *ngIf=\"item.type === 'number'\" [(model)]=\"externalFilter[item.field]\">\r\n </sd-input-number>\r\n <sd-select [label]=\"item.title\" *ngIf=\"item.type === 'bool'\" [items]=\" [{value:'1',display:item.trueValue || 'True' },\r\n {value:'0',display:item.falseValue || 'False' }]\" valueField=\"value\" displayField=\"display\"\r\n [(model)]=\"externalFilter[item.field]\">\r\n </sd-select>\r\n <sd-select [label]=\"item.title\" *ngIf=\"item.type === 'radio'\" [items]=\"item.values\"\r\n [valueField]=\"item.valueField\" [displayField]=\"item.displayField\" [(model)]=\"externalFilter[item.field]\">\r\n </sd-select>\r\n <ng-container *ngIf=\"item.type === 'values'\">\r\n <sd-select *ngIf=\"item.selection === 'MULTIPLE'\" [label]=\"item.title\" [items]=\"item.values\"\r\n [valueField]=\"item.valueField\" [displayField]=\"item.displayField\" [(model)]=\"externalFilter[item.field]\"\r\n multiple=\"true\">\r\n </sd-select>\r\n <sd-autocomplete *ngIf=\"item.selection === 'AUTOCOMPLETE'\" [label]=\"item.title\" [items]=\"item.values\"\r\n [valueField]=\"item.valueField\" [displayField]=\"item.displayField\" [(model)]=\"externalFilter[item.field]\">\r\n </sd-autocomplete>\r\n <sd-select *ngIf=\"item.selection === 'MULTIPLEAUTOCOMPLETE'\" [label]=\"item.title\" [items]=\"item.values\"\r\n [valueField]=\"item.valueField\" [displayField]=\"item.displayField\" [(model)]=\"externalFilter[item.field]\"\r\n filtered=\"true\" multiple=\"true\">\r\n </sd-select>\r\n <sd-select *ngIf=\"!item.selection\" [label]=\"item.title\" [items]=\"item.values\" [valueField]=\"item.valueField\"\r\n [displayField]=\"item.displayField\" [(model)]=\"externalFilter[item.field]\">\r\n </sd-select>\r\n </ng-container>\r\n <sd-input *ngIf=\"item.type === 'custom'\" [label]=\"item.title\"\r\n [(model)]=\"externalFilter[displayKey + item.field]\"\r\n (sdFocusForceBlur)=\"item?.onClick(externalFilter, item.field, displayKey + item.field)\">\r\n </sd-input>\r\n <sd-date-time [label]=\"item.title\" *ngIf=\"item.type ==='date'\" [(model)]=\"externalFilter[item.field]\"\r\n type=\"date\">\r\n </sd-date-time>\r\n <sd-date-range [label]=\"item.title\" *ngIf=\"item.type ==='daterangefull'\"\r\n [(from)]=\"externalFilter[item.field].from\" [(to)]=\"externalFilter[item.field].to\" [min]=\"item.minDate\"\r\n [max]=\"item.maxDate\">\r\n </sd-date-range>\r\n <ng-container *ngIf=\"item.type ==='daterange'\">\r\n <div class=\"row\">\r\n <div class=\"col-6\">\r\n <sd-date-time [label]=\"item.fromTitle\" [(model)]=\"externalFilter[item.field].from\"\r\n [type]=\"item.enableTime ? 'datetime' : 'date'\" [minDate]=\"item.minDate\"\r\n [maxDate]=\"externalFilter[item.field].to || item.maxDate\">\r\n </sd-date-time>\r\n </div>\r\n <div class=\"col-6\">\r\n <sd-date-time [label]=\"item.toTitle\" [(model)]=\"externalFilter[item.field].to\"\r\n [type]=\"item.enableTime ? 'datetime' : 'date'\"\r\n [minDate]=\"item.minDate || externalFilter[item.field].from\" [maxDate]=\"item.maxDate\">\r\n </sd-date-time>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <div class=\"row\" *ngIf=\"item.type ==='numberrange'\">\r\n <div class=\"col-6\">\r\n <sd-input [label]=\"item.fromTitle\" type=\" number\" [(model)]=\"externalFilter[item.field].from\">\r\n </sd-input>\r\n </div>\r\n <div class=\"col-6\">\r\n <sd-input [label]=\"item.toTitle\" type=\" number\" [(model)]=\"externalFilter[item.field].to\">\r\n </sd-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngFor=\"let column of columns\">\r\n <div class=\"d-flex align-items-baseline\"\r\n *ngIf=\"column.type !== 'children' && (filterOption?.multiple !== false || selectedField === 'column' + column.field)\">\r\n <ng-container *ngIf=\"filterOption?.multiple !== false\">\r\n <div *sdDesktop class=\"c-checkable\">\r\n <sd-switch [(model)]=\"inlineColumn[column.field]\" (sdChange)=\"onInlineChange()\">\r\n </sd-switch>\r\n </div>\r\n </ng-container>\r\n <div class=\"c-filterable\">\r\n <sd-input *ngIf=\"column.type === 'string'\" [label]=\"column.title\" type=\"text\"\r\n [(model)]=\"filter[column.field]\">\r\n </sd-input>\r\n <sd-input *ngIf=\"column.type === 'number'\" [label]=\"column.title\" type=\" number\"\r\n [(model)]=\"filter[column.field]\">\r\n </sd-input>\r\n <sd-select *ngIf=\"column.type === 'bool'\" [label]=\"column.title\" [items]=\"[{value:'1',display:column.trueValue || 'True' },\r\n {value:'0',display:column.falseValue || 'False' }]\" [(model)]=\"filter[column.field]\">\r\n </sd-select>\r\n <sd-select *ngIf=\"column.type === 'radio'\" [label]=\"column.title\" [items]=\"column.values\"\r\n [valueField]=\"column.valueField\" [displayField]=\"column.displayField\" [(model)]=\"filter[column.field]\">\r\n </sd-select>\r\n <sd-select *ngIf=\"column.type === 'values' && !column?.editor?.autocomplete\" [label]=\"column.title\"\r\n [items]=\"column.values\" valueField=\"value\" displayField=\"text\" [(model)]=\"filter[column.field]\">\r\n </sd-select>\r\n <sd-autocomplete *ngIf=\"column.type === 'values' && column?.editor?.autocomplete\" [label]=\"column.title\"\r\n [items]=\"column.values\" valueField=\"value\" displayField=\"text\" [(model)]=\"filter[column.field]\">\r\n </sd-autocomplete>\r\n <sd-date-time *ngIf=\"column.type ==='date' || column.type==='datetime' ||\r\n column.type==='time'\" [label]=\"column.title\" [(model)]=\" filter[column.field]\" type=\"date\">\r\n </sd-date-time>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"column.type === 'children' && column.children?.length\">\r\n <ng-container *ngFor=\"let childColumn of column.children\">\r\n <div class=\"d-flex align-items-baseline\"\r\n *ngIf=\"filterOption?.multiple !== false || selectedField === 'column' + childColumn.field\">\r\n <ng-container *ngIf=\"filterOption?.multiple !== false\">\r\n <div *sdDesktop class=\"c-checkable\">\r\n <sd-switch [(model)]=\"inlineColumn[childColumn.field]\" (sdChange)=\"onInlineChange()\">\r\n </sd-switch>\r\n </div>\r\n </ng-container>\r\n <div class=\"c-filterable\">\r\n <sd-input [label]=\"childColumn.title\" *ngIf=\"childColumn.type === 'string'\" type=\"text\"\r\n [(model)]=\"filter[childColumn.field]\">\r\n </sd-input>\r\n <sd-input [label]=\"childColumn.title\" *ngIf=\"childColumn.type === 'number'\" type=\" number\"\r\n [(model)]=\"filter[childColumn.field]\">\r\n </sd-input>\r\n <sd-select [label]=\"childColumn.title\" *ngIf=\"childColumn.type === 'bool'\" [items]=\"[{value:'1',display:column.trueValue || 'True' },\r\n {value:'0',display:childColumn.falseValue || 'False' }]\" [(model)]=\"filter[childColumn.field]\">\r\n </sd-select>\r\n <sd-select [label]=\"childColumn.title\" *ngIf=\"childColumn.type === 'radio'\" [items]=\"childColumn.values\"\r\n [valueField]=\"childColumn.valueField\" [displayField]=\"childColumn.displayField\"\r\n [(model)]=\"filter[childColumn.field]\">\r\n </sd-select>\r\n <sd-autocomplete [label]=\"childColumn.title\" *ngIf=\"childColumn.type === 'values'\"\r\n [items]=\"childColumn.values\" valueField=\"value\" displayField=\"text\"\r\n [(model)]=\"filter[childColumn.field]\">\r\n </sd-autocomplete>\r\n <sd-date-time [label]=\"childColumn.title\" *ngIf=\"childColumn.type ==='date' || childColumn.type==='datetime' ||\r\n childColumn.type==='time'\" [(model)]=\" filter[childColumn.field]\" type=\"date\">\r\n </sd-date-time>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </sd-modal-body>\r\n <sd-modal-footer *sdDesktop>\r\n <sd-button class=\"mr-auto\" (action)=\"onClear()\" icon=\"clear\" [title]=\"'Clear filter' | sdTranslate\" size=\"sm\">\r\n </sd-button>\r\n <sd-button (action)=\"onAccept()\" icon=\"done\" [title]=\"'Accept' | sdTranslate\" color=\"primary\" size=\"sm\"></sd-button>\r\n </sd-modal-footer>\r\n <sd-modal-footer *sdMobileTablet>\r\n <sd-button style=\"flex: 1; padding-right: 5px;\" (action)=\"onClear()\" icon=\"clear\"\r\n [title]=\"'Clear filter' | sdTranslate\" width=\"100%\" size=\"sm\"></sd-button>\r\n <sd-button style=\"flex: 1; padding-left: 5px;\" (action)=\"onAccept()\" icon=\"done\" [title]=\"'Accept' | sdTranslate\"\r\n color=\"primary\" width=\"100%\" size=\"sm\"></sd-button>\r\n </sd-modal-footer>\r\n</sd-modal>\r\n<sd-grid-popup-quick-filter-detail #popupQuickFilterDetail (accept)=\"onAcceptQuickFilter($event)\">\r\n</sd-grid-popup-quick-filter-detail>",
|
|
294
294
|
encapsulation: ViewEncapsulation.None,
|
|
295
295
|
styles: [".c-fa-icon{color:grey;font-size:20px}.c-checkable{width:50px}.c-filterable{flex:1}"]
|
|
296
296
|
},] }
|
|
@@ -314,4 +314,4 @@ SdGridPopupFilter.propDecorators = {
|
|
|
314
314
|
inlineExternal: [{ type: Input }],
|
|
315
315
|
inlineColumn: [{ type: Input }]
|
|
316
316
|
};
|
|
317
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1wb3B1cC1maWx0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IkM6L1VzZXJzL25naGlhdHQxNV9vbmVtb3VudC9Eb2N1bWVudHMvbGliLWNvcmUtdWkvcHJvamVjdHMvc2QtY29yZS9ncmlkLyIsInNvdXJjZXMiOlsic3JjL2xpYi9jb21wb25lbnRzL2dyaWQtcG9wdXAtZmlsdGVyL2dyaWQtcG9wdXAtZmlsdGVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDJDQUEyQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUF5QixTQUFTLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJL0ksT0FBTyxFQUNMLGVBQWUsRUFDaEIsTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2pCLE1BQU0sMEJBQTBCLENBQUM7QUFFbEMsT0FBTyxFQUNMLGtCQUFrQixFQUNuQixNQUFNLDRCQUE0QixDQUFDO0FBQ3BDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBVzVELE1BQU0sT0FBTyxpQkFBaUI7SUEyQjVCLFlBQ1UsR0FBc0IsRUFDOUIsYUFBb0MsRUFDNUIsY0FBZ0MsRUFDaEMsYUFBOEIsRUFDOUIsZ0JBQW9DO1FBSnBDLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBRXRCLG1CQUFjLEdBQWQsY0FBYyxDQUFrQjtRQUNoQyxrQkFBYSxHQUFiLGFBQWEsQ0FBaUI7UUFDOUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFvQjtRQS9CdEMsY0FBUyxHQUFHLGFBQWEsQ0FBQztRQUNsQyxlQUFVLEdBQUcsVUFBVSxDQUFDO1FBQ3hCLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUloQixRQUFHLEdBQUcsRUFBRSxDQUFDO1FBRVIsV0FBTSxHQUFHLElBQUksWUFBWSxFQUF3QyxDQUFDO1FBQ2xFLFVBQUssR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ2pDLHFCQUFnQixHQUFHLElBQUksWUFBWSxFQUF1QixDQUFDO1FBRXJFLG1CQUFjLEdBQUcsc0NBQXNDLENBQUM7UUFDeEQsV0FBTSxHQUFRLEVBQUUsQ0FBQztRQUNqQixtQkFBYyxHQUFRLEVBQUUsQ0FBQztRQUN6QixZQUFPLEdBQW1CLEVBQUUsQ0FBQztRQUM3QixvQkFBZSxHQUEyQixFQUFFLENBQUM7UUFDN0MsaUJBQVksR0FBa0IsRUFBRSxDQUFDO1FBRWpDLG9CQUFlLEdBQUcsQ0FBQyxDQUFDO1FBQ1gsbUJBQWMsR0FFbkIsRUFBRSxDQUFDO1FBQ0UsaUJBQVksR0FFakIsRUFBRSxDQUFDO1FBMEJQLFNBQUksR0FBRyxDQUNMLFdBQTJCLEVBQzNCLGFBQTZCLEVBQzdCLE1BQVcsRUFDWCxjQUFtQixFQUNuQixlQUF3QyxFQUFFLEVBQUU7WUFDNUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsZUFBZSxDQUFDLENBQUM7WUFDL0UsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNwQixDQUFDLENBQUE7UUFFRCxTQUFJLEdBQUcsQ0FDTCxXQUEyQixFQUMzQixhQUE2QixFQUM3QixNQUFXLEVBQ1gsY0FBbUIsRUFDbkIsZUFBd0MsRUFBRSxFQUFFO1lBQzVDLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxHQUFHLFdBQVcsRUFBRSxHQUFHLGFBQWEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxXQUFDLE9BQUEsUUFBQyxDQUFDLENBQUMsTUFBTSwwQ0FBRSxRQUFRLENBQUEsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQSxFQUFBLENBQUMsQ0FBQztZQUN6RyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDNUIsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLFVBQVUsRUFBRTtvQkFDOUIsTUFBTSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxXQUFDLE9BQUEsUUFBQyxDQUFDLENBQUMsTUFBTSwwQ0FBRSxRQUFRLENBQUEsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQSxFQUFBLENBQUMsQ0FBQztpQkFDMUY7WUFDSCxDQUFDLENBQUMsQ0FBQztZQUNILElBQUksZUFBZSxFQUFFO2dCQUNuQixJQUFJLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUNqRTtpQkFBTTtnQkFDTCxJQUFJLENBQUMsZUFBZSxHQUFHLEVBQUUsQ0FBQzthQUMzQjtZQUNELElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGVBQWUsRUFBRSxjQUFjLENBQUMsQ0FBQztZQUMvRSxLQUFLLE1BQU0sT0FBTyxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7Z0JBQzFDLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssU0FBUyxFQUFFO29CQUNwRCxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUM7aUJBQzNDO2FBQ0Y7WUFDRCxLQUFLLE1BQU0sTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7Z0JBQ2pDLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssU0FBUyxFQUFFO29CQUNqRCxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUM7aUJBQ3hDO2FBQ0Y7UUFDSCxDQUFDLENBQUE7UUFFRCxVQUFLLEdBQUcsR0FBRyxFQUFFO1lBQ1gsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNyQixDQUFDLENBQUE7UUFxQ0QsNkJBQXFCLEdBQVMsRUFBRTtZQUM5QixJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtnQkFDYixPQUFPO2FBQ1I7WUFDRCxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFzQjtnQkFDbkUsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTO2dCQUN0QixHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUc7YUFDZCxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsQ0FBQSxNQUFNLEdBQUcsRUFBRSxDQUFBLEVBQUU7Z0JBQ2hCLE9BQU87YUFDUjtZQUNELE1BQU0sYUFBYSxHQUFHLE1BQU0sR0FBRyxFQUFFLENBQUM7WUFDbEMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLGFBQWEsYUFBYixhQUFhLHVCQUFiLGFBQWEsQ0FBRSxZQUFZLENBQUMsRUFBRTtnQkFDOUMsSUFBSSxDQUFDLFlBQVksR0FBRyxhQUFhLENBQUMsWUFBWSxDQUFDO2FBQ2hEO1lBQ0QsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFBLGFBQWEsYUFBYixhQUFhLHVCQUFiLGFBQWEsQ0FBRSxtQkFBbUIsS0FBSSxFQUFFLENBQUM7WUFDN0QsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFBLGFBQWEsYUFBYixhQUFhLHVCQUFiLGFBQWEsQ0FBRSxjQUFjLEtBQUksRUFBRSxDQUFDO1lBQzFELElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQSxhQUFhLGFBQWIsYUFBYSx1QkFBYixhQUFhLENBQUUsWUFBWSxLQUFJLEVBQUUsQ0FBQztZQUN0RCxLQUFLLE1BQU0sY0FBYyxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7Z0JBQ2pELElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLEtBQUssU0FBUyxFQUFFO29CQUMzRCxJQUFJLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUM7aUJBQ2xEO2FBQ0Y7WUFDRCxLQUFLLE1BQU0sTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7Z0JBQ2pDLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssU0FBUyxFQUFFO29CQUNqRCxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUM7aUJBQ3hDO2FBQ0Y7UUFDSCxDQUFDLENBQUEsRUFBQTtRQTRCRCxzQkFBaUIsR0FBRyxDQUFDLE1BQXVCLEVBQUUsRUFBRTtZQUM5QyxNQUFNLEtBQUssR0FBRyxDQUFBLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxLQUFLLEtBQUksRUFBRSxDQUFDO1lBQ2xDLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxjQUFjLEVBQUU7Z0JBQ2pDLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO2dCQUN2QixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQzthQUMxQjtpQkFBTTtnQkFDTCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUM7Z0JBQ2xFLElBQUksV0FBVyxFQUFFO29CQUNmLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztpQkFDdkM7YUFDRjtRQUNILENBQUMsQ0FBQTtRQUVELHdCQUFtQixHQUFHLENBQUMsRUFBVSxFQUFFLEVBQUU7O1lBQ25DLEVBQUUsYUFBRixFQUFFLHVCQUFGLEVBQUUsQ0FBRSxlQUFlLEdBQUc7WUFDdEIsRUFBRSxhQUFGLEVBQUUsdUJBQUYsRUFBRSxDQUFFLGNBQWMsR0FBRztZQUNyQixNQUFBLElBQUksQ0FBQyxTQUFTLDBDQUFFLEtBQUssR0FBRztZQUN4QixJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3ZFLENBQUMsQ0FBQTtRQUVELHdCQUFtQixHQUFHLENBQU8sV0FBeUIsRUFBRSxFQUFFO1lBQ3hELElBQUksV0FBVyxFQUFFO2dCQUNmLElBQUksQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQztnQkFDckMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQzlDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxDQUFDO2dCQUN0RCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQzdCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUNwRixNQUFNLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO2FBQ2xDO1FBQ0gsQ0FBQyxDQUFBLENBQUE7UUFFRCxzQkFBaUIsR0FBRyxDQUFDLEVBQVMsRUFBRSxXQUF5QixFQUFFLEVBQUU7O1lBQzNELEVBQUUsQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUNyQixFQUFFLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDcEIsTUFBQSxJQUFJLENBQUMsU0FBUywwQ0FBRSxLQUFLLEdBQUc7WUFDeEIsSUFBSSxXQUFXLEVBQUU7Z0JBQ2YsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUMzQyxJQUFJLENBQUMsZUFBZSxFQUNwQixXQUFXLENBQUMsTUFBTSxFQUNsQixXQUFXLENBQUMsY0FBYyxFQUMxQixXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3BCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7YUFDMUI7UUFDSCxDQUFDLENBQUE7UUFFRCx3QkFBbUIsR0FBRyxDQUFDLEVBQVMsRUFBRSxXQUF5QixFQUFFLEVBQUU7O1lBQzdELEVBQUUsQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUNyQixFQUFFLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDcEIsTUFBQSxJQUFJLENBQUMsU0FBUywwQ0FBRSxLQUFLLEdBQUc7WUFDeEIsSUFBSSxXQUFXLEVBQUU7Z0JBQ2YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFTLEVBQUU7b0JBQzNGLElBQUksV0FBVyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsWUFBWSxFQUFFO3dCQUMxQyxJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztxQkFDeEI7b0JBQ0QsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDMUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO29CQUNqQyxNQUFNLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO29CQUNqQyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUMzQixDQUFDLENBQUEsQ0FBQyxDQUFDO2FBQ0o7UUFDSCxDQUFDLENBQUE7UUFFRCx3QkFBbUIsR0FBRyxDQUFPLElBQXdELEVBQUUsRUFBRTtZQUN2RixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3RFLElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBQ2hCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDO29CQUNyQixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7b0JBQ2YsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO29CQUNuQixjQUFjLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQztpQkFDbkYsQ0FBQyxDQUFDO2FBQ0o7aUJBQU07Z0JBQ0wsV0FBVyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO2dCQUNqQyxXQUFXLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQzthQUNqRztZQUNELE1BQU0sSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDbkMsQ0FBQyxDQUFBLENBQUE7UUFFRCxtQkFBYyxHQUFHLEdBQUcsRUFBRTtZQUNwQixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUM3QixDQUFDLENBQUE7UUFFTyx1QkFBa0IsR0FBRyxDQUFDLGVBQXVDLEVBQUUsY0FBbUIsRUFBRSxFQUFFO1lBQzVGLGNBQWMsR0FBRyxjQUFjLElBQUksRUFBRSxDQUFDO1lBQ3RDLGVBQWUsR0FBRyxlQUFlLElBQUksRUFBRSxDQUFDO1lBQ3hDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7O2dCQUMxQixJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFO29CQUN2QixjQUFjLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxlQUFHLGNBQWMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLG1DQUFJLENBQUMsQ0FBQyxPQUFPLG1DQUFJLEVBQUUsQ0FBQztvQkFDckUsT0FBTztpQkFDUjtnQkFDRCxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFO29CQUN2QixjQUFjLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxlQUFHLGNBQWMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLG1DQUFJLENBQUMsQ0FBQyxPQUFPLG1DQUFJLFNBQVMsQ0FBQztvQkFDNUUsT0FBTztpQkFDUjtnQkFDRCxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssV0FBVyxFQUFFO29CQUMxQixjQUFjLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHO3dCQUN4QixJQUFJLG9CQUFFLGNBQWMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLDBDQUFFLElBQUksbUNBQUksQ0FBQyxDQUFDLFdBQVcsbUNBQUksU0FBUzt3QkFDakUsRUFBRSxvQkFBRSxjQUFjLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQywwQ0FBRSxFQUFFLG1DQUFJLENBQUMsQ0FBQyxTQUFTLG1DQUFJLFNBQVM7cUJBQzVELENBQUM7b0JBQ0YsT0FBTztpQkFDUjtnQkFDRCxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssYUFBYSxFQUFFO29CQUM1QixjQUFjLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHO3dCQUN4QixJQUFJLG9CQUFFLGNBQWMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLDBDQUFFLElBQUksbUNBQUksQ0FBQyxDQUFDLFdBQVcsbUNBQUksU0FBUzt3QkFDakUsRUFBRSxvQkFBRSxjQUFjLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQywwQ0FBRSxFQUFFLG1DQUFJLENBQUMsQ0FBQyxTQUFTLG1DQUFJLFNBQVM7cUJBQzVELENBQUM7b0JBQ0YsT0FBTztpQkFDUjtnQkFDRCxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssZUFBZSxFQUFFO29CQUM5QixjQUFjLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHO3dCQUN4QixJQUFJLG9CQUFFLGNBQWMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLDBDQUFFLElBQUksbUNBQUksQ0FBQyxDQUFDLFdBQVcsbUNBQUksU0FBUzt3QkFDakUsRUFBRSxvQkFBRSxjQUFjLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQywwQ0FBRSxFQUFFLG1DQUFJLENBQUMsQ0FBQyxTQUFTLG1DQUFJLFNBQVM7cUJBQzVELENBQUM7b0JBQ0YsT0FBTztpQkFDUjtnQkFDRCxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFLEVBQUUsUUFBUTtvQkFDakMsY0FBYyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxtQ0FBSSxFQUFFLENBQUM7b0JBQ3ZFLE9BQU87aUJBQ1I7WUFDSCxDQUFDLENBQUMsQ0FBQztZQUNILE9BQU8sY0FBYyxDQUFDO1FBQ3hCLENBQUMsQ0FBQTtRQXBSQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDckQsQ0FBQztJQUVELFFBQVE7UUFDTixzREFBQSxJQUFJLENBQXFCLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNsQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDO2dCQUN6QixZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVksSUFBSSxFQUFFO2dCQUNyQyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsWUFBWSxJQUFJLEVBQUU7Z0JBQzVDLGNBQWMsRUFBRSxJQUFJLENBQUMsY0FBYztnQkFDbkMsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO2FBQ2hDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGVBQWU7SUFFZixDQUFDO0lBK0NELFFBQVE7O1FBQ04sSUFBSSxPQUFBLElBQUksQ0FBQyxZQUFZLDBDQUFFLFFBQVEsTUFBSyxLQUFLLEVBQUU7WUFDekMsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO2dCQUN0QixJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFO29CQUMzQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7b0JBQ3ZELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO3dCQUNmLE1BQU0sRUFBRTs0QkFDTixDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO3lCQUM1Qjt3QkFDRCxjQUFjLEVBQUUsRUFBRTtxQkFDbkIsQ0FBQyxDQUFDO2lCQUNKO3FCQUFNLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLEVBQUU7b0JBQ3BELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztvQkFDekQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7d0JBQ2YsTUFBTSxFQUFFLEVBQUU7d0JBQ1YsY0FBYyxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFOzRCQUM1RCxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDO3lCQUNwQyxDQUFDO3FCQUNILENBQUMsQ0FBQztpQkFDSjthQUNGO1NBQ0Y7YUFBTTtZQUNMLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO2dCQUNmLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtnQkFDbkIsY0FBYyxFQUFFLElBQUksQ0FBQyxjQUFjO2FBQ3BDLENBQUMsQ0FBQztTQUNKO1FBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsT0FBTztRQUNMLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztRQUN6QixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFpQ0ssbUJBQW1CLENBQUMsdUJBQWdDOztZQUN4RCxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtnQkFDYixPQUFPO2FBQ1I7WUFDRCxJQUFJLHVCQUF1QixLQUFLLFNBQVMsRUFBRTtnQkFDekMsSUFBSSxDQUFDLFlBQVksR0FBRyx1QkFBdUIsQ0FBQzthQUM3QztZQUNELE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBc0I7Z0JBQzlELE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUztnQkFDdEIsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHO2FBQ2QsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxHQUFHLENBQUM7Z0JBQ1IsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO2dCQUMvQixtQkFBbUIsRUFBRSxJQUFJLENBQUMsWUFBWTtnQkFDdEMsY0FBYyxFQUFFLElBQUksQ0FBQyxjQUFjO2dCQUNuQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVk7YUFDaEMsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQztnQkFDekIsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZLElBQUksRUFBRTtnQkFDckMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLFlBQVksSUFBSSxFQUFFO2dCQUM1QyxjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWM7Z0JBQ25DLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWTthQUNoQyxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzNCLENBQUM7S0FBQTs7OztZQWpNRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHNCQUFzQjtnQkFDaEMsOG9hQUFpRDtnQkFFakQsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7O2FBQ3RDOzs7WUF6QmtGLGlCQUFpQjtZQWUzRixxQkFBcUI7WUFONUIsZ0JBQWdCO1lBSmhCLGVBQWU7WUFRZixrQkFBa0I7OztvQkFpQmpCLFNBQVMsU0FBQyxPQUFPO3FDQUNqQixTQUFTLFNBQUMsd0JBQXdCO3dCQUNsQyxTQUFTLFNBQUMsV0FBVztrQkFDckIsS0FBSzsyQkFDTCxLQUFLO3FCQUNMLE1BQU07b0JBQ04sTUFBTTsrQkFDTixNQUFNOzZCQVVOLEtBQUs7MkJBR0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTptYXgtbGluZS1sZW5ndGhcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIEFmdGVyVmlld0luaXQsIFZpZXdDaGlsZCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIElucHV0LCBDaGFuZ2VEZXRlY3RvclJlZiwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU2RHcmlkQ29sdW1uLCBTZEdyaWRFeHRlcm5hbEZpbHRlciwgR3JpZEJhc2VPcHRpb25GaWx0ZXIgfSBmcm9tICcuLi8uLi9ncmlkLm1vZGVsJztcclxuaW1wb3J0IHsgUXVpY2tGaWx0ZXIsIEZpbHRlckNvbmZpZ3VyYXRpb24gfSBmcm9tICcuL2dyaWQtcG9wdXAtZmlsdGVyLm1vZGVsJztcclxuXHJcbmltcG9ydCB7XHJcbiAgU2ROb3RpZnlTZXJ2aWNlXHJcbn0gZnJvbSAnQHNkLWFuZ3VsYXIvY29yZS9ub3RpZnknO1xyXG5cclxuaW1wb3J0IHtcclxuICBTZFNldHRpbmdTZXJ2aWNlXHJcbn0gZnJvbSAnQHNkLWFuZ3VsYXIvY29yZS9zZXR0aW5nJztcclxuXHJcbmltcG9ydCB7XHJcbiAgU2RUcmFuc2xhdGVTZXJ2aWNlXHJcbn0gZnJvbSAnQHNkLWFuZ3VsYXIvY29yZS90cmFuc2xhdGUnO1xyXG5pbXBvcnQgeyBEZXZpY2VEZXRlY3RvclNlcnZpY2UgfSBmcm9tICduZ3gtZGV2aWNlLWRldGVjdG9yJztcclxuaW1wb3J0IHsgU2RHcmlkUG9wdXBRdWlja0ZpbHRlckRldGFpbCB9IGZyb20gJy4uL2dyaWQtcG9wdXAtcXVpY2stZmlsdGVyLWRldGFpbC9ncmlkLXBvcHVwLXF1aWNrLWZpbHRlci1kZXRhaWwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0U2VsZWN0LCBNYXRTZWxlY3RDaGFuZ2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xyXG5pbXBvcnQgeyBTZE1vZGFsIH0gZnJvbSAnQHNkLWFuZ3VsYXIvY29yZS9tb2RhbCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NkLWdyaWQtcG9wdXAtZmlsdGVyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZ3JpZC1wb3B1cC1maWx0ZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2dyaWQtcG9wdXAtZmlsdGVyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2RHcmlkUG9wdXBGaWx0ZXIgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xyXG4gIHByaXZhdGUga2V5UHJlZml4ID0gJ1BvcHVwRmlsdGVyJztcclxuICBkaXNwbGF5S2V5ID0gJ1NEQ1VTVE9NJztcclxuICBpc01vYmlsZU9yVGFibGV0ID0gZmFsc2U7XHJcbiAgQFZpZXdDaGlsZCgnbW9kYWwnKSBtb2RhbDogU2RNb2RhbDtcclxuICBAVmlld0NoaWxkKCdwb3B1cFF1aWNrRmlsdGVyRGV0YWlsJykgcG9wdXBRdWlja0ZpbHRlckRldGFpbDogU2RHcmlkUG9wdXBRdWlja0ZpbHRlckRldGFpbDtcclxuICBAVmlld0NoaWxkKCdtYXRTZWxlY3QnKSBtYXRTZWxlY3Q6IE1hdFNlbGVjdDtcclxuICBASW5wdXQoKSBrZXkgPSAnJztcclxuICBASW5wdXQoKSBmaWx0ZXJPcHRpb246IEdyaWRCYXNlT3B0aW9uRmlsdGVyO1xyXG4gIEBPdXRwdXQoKSBhY2NlcHQgPSBuZXcgRXZlbnRFbWl0dGVyPHsgZmlsdGVyOiBhbnksIGV4dGVybmFsRmlsdGVyOiBhbnkgfT4oKTtcclxuICBAT3V0cHV0KCkgY2xlYXIgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgQE91dHB1dCgpIGxvYWRJbmxpbmVGaWx0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPEZpbHRlckNvbmZpZ3VyYXRpb24+KCk7XHJcbiAgc2VsZWN0ZWRGaWVsZDogc3RyaW5nO1xyXG4gIG5ld1F1aWNrRmlsdGVyID0gJ2UxZWYxZDQzLWQ2ODktNDI0Zi05NTllLWU2Y2QxNTRjZmVlNyc7XHJcbiAgZmlsdGVyOiBhbnkgPSB7fTtcclxuICBleHRlcm5hbEZpbHRlcjogYW55ID0ge307XHJcbiAgY29sdW1uczogU2RHcmlkQ29sdW1uW10gPSBbXTtcclxuICBleHRlcm5hbEZpbHRlcnM6IFNkR3JpZEV4dGVybmFsRmlsdGVyW10gPSBbXTtcclxuICBxdWlja0ZpbHRlcnM6IFF1aWNrRmlsdGVyW10gPSBbXTtcclxuICBzZWxlY3RlZENvZGU6IHN0cmluZztcclxuICBtYXhRdWlja0ZpbHRlcnMgPSA1O1xyXG4gIEBJbnB1dCgpIGlubGluZUV4dGVybmFsOiB7XHJcbiAgICBba2V5OiBzdHJpbmddOiBib29sZWFuXHJcbiAgfSA9IHt9O1xyXG4gIEBJbnB1dCgpIGlubGluZUNvbHVtbjoge1xyXG4gICAgW2tleTogc3RyaW5nXTogYm9vbGVhblxyXG4gIH0gPSB7fTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIGRldmljZVNlcnZpY2U6IERldmljZURldGVjdG9yU2VydmljZSxcclxuICAgIHByaXZhdGUgc2V0dGluZ1NlcnZpY2U6IFNkU2V0dGluZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIG5vdGlmeVNlcnZpY2U6IFNkTm90aWZ5U2VydmljZSxcclxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogU2RUcmFuc2xhdGVTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICB0aGlzLmlzTW9iaWxlT3JUYWJsZXQgPSAhZGV2aWNlU2VydmljZS5pc0Rlc2t0b3AoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy4jbG9hZENvbmZpZ3VyYXRpb24oKS50aGVuKCgpID0+IHtcclxuICAgICAgdGhpcy5sb2FkSW5saW5lRmlsdGVyLmVtaXQoe1xyXG4gICAgICAgIHF1aWNrRmlsdGVyczogdGhpcy5xdWlja0ZpbHRlcnMgfHwgW10sXHJcbiAgICAgICAgc2VsZWN0ZWRRdWlja0ZpbHRlcjogdGhpcy5zZWxlY3RlZENvZGUgfHwgJycsXHJcbiAgICAgICAgaW5saW5lRXh0ZXJuYWw6IHRoaXMuaW5saW5lRXh0ZXJuYWwsXHJcbiAgICAgICAgaW5saW5lQ29sdW1uOiB0aGlzLmlubGluZUNvbHVtblxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG5cclxuICB9XHJcblxyXG4gIG9wZW4gPSAoXHJcbiAgICBmaXhlZENvbHVtczogU2RHcmlkQ29sdW1uW10sXHJcbiAgICBub3JtYWxDb2x1bW5zOiBTZEdyaWRDb2x1bW5bXSxcclxuICAgIGZpbHRlcjogYW55LFxyXG4gICAgZXh0ZXJuYWxGaWx0ZXI6IGFueSxcclxuICAgIGV4dGVybmFsRmlsdGVycz86IFNkR3JpZEV4dGVybmFsRmlsdGVyW10pID0+IHtcclxuICAgIHRoaXMuaW5pdChmaXhlZENvbHVtcywgbm9ybWFsQ29sdW1ucywgZmlsdGVyLCBleHRlcm5hbEZpbHRlciwgZXh0ZXJuYWxGaWx0ZXJzKTtcclxuICAgIHRoaXMubW9kYWwub3BlbigpO1xyXG4gIH1cclxuXHJcbiAgaW5pdCA9IChcclxuICAgIGZpeGVkQ29sdW1zOiBTZEdyaWRDb2x1bW5bXSxcclxuICAgIG5vcm1hbENvbHVtbnM6IFNkR3JpZENvbHVtbltdLFxyXG4gICAgZmlsdGVyOiBhbnksXHJcbiAgICBleHRlcm5hbEZpbHRlcjogYW55LFxyXG4gICAgZXh0ZXJuYWxGaWx0ZXJzPzogU2RHcmlkRXh0ZXJuYWxGaWx0ZXJbXSkgPT4ge1xyXG4gICAgdGhpcy5jb2x1bW5zID0gWy4uLmZpeGVkQ29sdW1zLCAuLi5ub3JtYWxDb2x1bW5zXS5maWx0ZXIoZSA9PiAhZS5maWx0ZXI/LmRpc2FibGVkICYmIGUudHlwZSAhPT0gJ2ltYWdlJyk7XHJcbiAgICB0aGlzLmNvbHVtbnMuZm9yRWFjaChjb2x1bW4gPT4ge1xyXG4gICAgICBpZiAoY29sdW1uLnR5cGUgPT09ICdjaGlsZHJlbicpIHtcclxuICAgICAgICBjb2x1bW4uY2hpbGRyZW4gPSBjb2x1bW4uY2hpbGRyZW4uZmlsdGVyKGUgPT4gIWUuZmlsdGVyPy5kaXNhYmxlZCAmJiBlLnR5cGUgIT09ICdpbWFnZScpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIGlmIChleHRlcm5hbEZpbHRlcnMpIHtcclxuICAgICAgdGhpcy5leHRlcm5hbEZpbHRlcnMgPSBleHRlcm5hbEZpbHRlcnMuZmlsdGVyKGUgPT4gIWUuZGlzYWJsZWQpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5leHRlcm5hbEZpbHRlcnMgPSBbXTtcclxuICAgIH1cclxuICAgIHRoaXMuZmlsdGVyID0gZmlsdGVyO1xyXG4gICAgdGhpcy5leHRlcm5hbEZpbHRlciA9IHRoaXMuaW5pdEV4dGVybmFsRmlsdGVyKGV4dGVybmFsRmlsdGVycywgZXh0ZXJuYWxGaWx0ZXIpO1xyXG4gICAgZm9yIChjb25zdCBlRmlsdGVyIG9mIHRoaXMuZXh0ZXJuYWxGaWx0ZXJzKSB7XHJcbiAgICAgIGlmICh0aGlzLmlubGluZUV4dGVybmFsW2VGaWx0ZXIuZmllbGRdID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICB0aGlzLmlubGluZUV4dGVybmFsW2VGaWx0ZXIuZmllbGRdID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgZm9yIChjb25zdCBjb2x1bW4gb2YgdGhpcy5jb2x1bW5zKSB7XHJcbiAgICAgIGlmICh0aGlzLmlubGluZUNvbHVtbltjb2x1bW4uZmllbGRdID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICB0aGlzLmlubGluZUNvbHVtbltjb2x1bW4uZmllbGRdID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2xvc2UgPSAoKSA9PiB7XHJcbiAgICB0aGlzLm1vZGFsLmNsb3NlKCk7XHJcbiAgfVxyXG5cclxuICBvbkFjY2VwdCgpIHtcclxuICAgIGlmICh0aGlzLmZpbHRlck9wdGlvbj8ubXVsdGlwbGUgPT09IGZhbHNlKSB7XHJcbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkRmllbGQpIHtcclxuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZEZpZWxkLnN0YXJ0c1dpdGgoJ2NvbHVtbicpKSB7XHJcbiAgICAgICAgICBjb25zdCBmaWVsZCA9IHRoaXMuc2VsZWN0ZWRGaWVsZC5yZXBsYWNlKCdjb2x1bW4nLCAnJyk7XHJcbiAgICAgICAgICB0aGlzLmFjY2VwdC5lbWl0KHtcclxuICAgICAgICAgICAgZmlsdGVyOiB7XHJcbiAgICAgICAgICAgICAgW2ZpZWxkXTogdGhpcy5maWx0ZXJbZmllbGRdXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGV4dGVybmFsRmlsdGVyOiB7fVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnNlbGVjdGVkRmllbGQuc3RhcnRzV2l0aCgnZXh0ZXJuYWwnKSkge1xyXG4gICAgICAgICAgY29uc3QgZmllbGQgPSB0aGlzLnNlbGVjdGVkRmllbGQucmVwbGFjZSgnZXh0ZXJuYWwnLCAnJyk7XHJcbiAgICAgICAgICB0aGlzLmFjY2VwdC5lbWl0KHtcclxuICAgICAgICAgICAgZmlsdGVyOiB7fSxcclxuICAgICAgICAgICAgZXh0ZXJuYWxGaWx0ZXI6IHRoaXMuaW5pdEV4dGVybmFsRmlsdGVyKHRoaXMuZXh0ZXJuYWxGaWx0ZXJzLCB7XHJcbiAgICAgICAgICAgICAgW2ZpZWxkXTogdGhpcy5leHRlcm5hbEZpbHRlcltmaWVsZF1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5hY2NlcHQuZW1pdCh7XHJcbiAgICAgICAgZmlsdGVyOiB0aGlzLmZpbHRlcixcclxuICAgICAgICBleHRlcm5hbEZpbHRlcjogdGhpcy5leHRlcm5hbEZpbHRlclxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHRoaXMubW9kYWwuY2xvc2UoKTtcclxuICB9XHJcblxyXG4gIG9uQ2xlYXIoKSB7XHJcbiAgICBkZWxldGUgdGhpcy5zZWxlY3RlZENvZGU7XHJcbiAgICB0aGlzLmNsZWFyLmVtaXQoKTtcclxuICB9XHJcblxyXG4gICNsb2FkQ29uZmlndXJhdGlvbiA9IGFzeW5jICgpID0+IHtcclxuICAgIHRoaXMucXVpY2tGaWx0ZXJzID0gW107XHJcbiAgICBpZiAoIXRoaXMua2V5KSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IHsgZ2V0LCBoYXMgfSA9IHRoaXMuc2V0dGluZ1NlcnZpY2UuY3JlYXRlPEZpbHRlckNvbmZpZ3VyYXRpb24+KHtcclxuICAgICAgcHJlZml4OiB0aGlzLmtleVByZWZpeCxcclxuICAgICAga2V5OiB0aGlzLmtleVxyXG4gICAgfSk7XHJcbiAgICBpZiAoIWF3YWl0IGhhcygpKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBhd2FpdCBnZXQoKTtcclxuICAgIGlmIChBcnJheS5pc0FycmF5KGNvbmZpZ3VyYXRpb24/LnF1aWNrRmlsdGVycykpIHtcclxuICAgICAgdGhpcy5xdWlja0ZpbHRlcnMgPSBjb25maWd1cmF0aW9uLnF1aWNrRmlsdGVycztcclxuICAgIH1cclxuICAgIHRoaXMuc2VsZWN0ZWRDb2RlID0gY29uZmlndXJhdGlvbj8uc2VsZWN0ZWRRdWlja0ZpbHRlciB8fCAnJztcclxuICAgIHRoaXMuaW5saW5lRXh0ZXJuYWwgPSBjb25maWd1cmF0aW9uPy5pbmxpbmVFeHRlcm5hbCB8fCB7fTtcclxuICAgIHRoaXMuaW5saW5lQ29sdW1uID0gY29uZmlndXJhdGlvbj8uaW5saW5lQ29sdW1uIHx8IHt9O1xyXG4gICAgZm9yIChjb25zdCBleHRlcm5hbEZpbHRlciBvZiB0aGlzLmV4dGVybmFsRmlsdGVycykge1xyXG4gICAgICBpZiAodGhpcy5pbmxpbmVFeHRlcm5hbFtleHRlcm5hbEZpbHRlci5maWVsZF0gPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHRoaXMuaW5saW5lRXh0ZXJuYWxbZXh0ZXJuYWxGaWx0ZXIuZmllbGRdID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgZm9yIChjb25zdCBjb2x1bW4gb2YgdGhpcy5jb2x1bW5zKSB7XHJcbiAgICAgIGlmICh0aGlzLmlubGluZUNvbHVtbltjb2x1bW4uZmllbGRdID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICB0aGlzLmlubGluZUNvbHVtbltjb2x1bW4uZmllbGRdID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYXN5bmMgdXBkYXRlQ29uZmlndXJhdGlvbihzZWxlY3RlZFF1aWNrRmlsdGVyQ29kZT86IHN0cmluZykge1xyXG4gICAgaWYgKCF0aGlzLmtleSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAoc2VsZWN0ZWRRdWlja0ZpbHRlckNvZGUgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkQ29kZSA9IHNlbGVjdGVkUXVpY2tGaWx0ZXJDb2RlO1xyXG4gICAgfVxyXG4gICAgY29uc3QgeyBzZXQgfSA9IHRoaXMuc2V0dGluZ1NlcnZpY2UuY3JlYXRlPEZpbHRlckNvbmZpZ3VyYXRpb24+KHtcclxuICAgICAgcHJlZml4OiB0aGlzLmtleVByZWZpeCxcclxuICAgICAga2V5OiB0aGlzLmtleVxyXG4gICAgfSk7XHJcbiAgICBhd2FpdCBzZXQoe1xyXG4gICAgICBxdWlja0ZpbHRlcnM6IHRoaXMucXVpY2tGaWx0ZXJzLFxyXG4gICAgICBzZWxlY3RlZFF1aWNrRmlsdGVyOiB0aGlzLnNlbGVjdGVkQ29kZSxcclxuICAgICAgaW5saW5lRXh0ZXJuYWw6IHRoaXMuaW5saW5lRXh0ZXJuYWwsXHJcbiAgICAgIGlubGluZUNvbHVtbjogdGhpcy5pbmxpbmVDb2x1bW5cclxuICAgIH0pO1xyXG4gICAgdGhpcy5sb2FkSW5saW5lRmlsdGVyLmVtaXQoe1xyXG4gICAgICBxdWlja0ZpbHRlcnM6IHRoaXMucXVpY2tGaWx0ZXJzIHx8IFtdLFxyXG4gICAgICBzZWxlY3RlZFF1aWNrRmlsdGVyOiB0aGlzLnNlbGVjdGVkQ29kZSB8fCAnJyxcclxuICAgICAgaW5saW5lRXh0ZXJuYWw6IHRoaXMuaW5saW5lRXh0ZXJuYWwsXHJcbiAgICAgIGlubGluZUNvbHVtbjogdGhpcy5pbmxpbmVDb2x1bW5cclxuICAgIH0pO1xyXG4gICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgb25TZWxlY3Rpb25DaGFuZ2UgPSAoY2hhbmdlOiBNYXRTZWxlY3RDaGFuZ2UpID0+IHtcclxuICAgIGNvbnN0IHZhbHVlID0gY2hhbmdlPy52YWx1ZSB8fCAnJztcclxuICAgIGlmICh2YWx1ZSA9PT0gdGhpcy5uZXdRdWlja0ZpbHRlcikge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkQ29kZSA9ICcnO1xyXG4gICAgICB0aGlzLm9uQ3JlYXRlUXVpY2tGaWx0ZXIoKTtcclxuICAgICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgcXVpY2tGaWx0ZXIgPSB0aGlzLnF1aWNrRmlsdGVycy5maW5kKGUgPT4gZS5jb2RlID09PSB2YWx1ZSk7XHJcbiAgICAgIGlmIChxdWlja0ZpbHRlcikge1xyXG4gICAgICAgIHRoaXMub25EZXRhaWxRdWlja0ZpbHRlcihxdWlja0ZpbHRlcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uQ3JlYXRlUXVpY2tGaWx0ZXIgPSAoZXY/OiBFdmVudCkgPT4ge1xyXG4gICAgZXY/LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgZXY/LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB0aGlzLm1hdFNlbGVjdD8uY2xvc2UoKTtcclxuICAgIHRoaXMucG9wdXBRdWlja0ZpbHRlckRldGFpbC5vcGVuKHRoaXMuY29sdW1ucywgdGhpcy5leHRlcm5hbEZpbHRlcnMpO1xyXG4gIH1cclxuXHJcbiAgb25EZXRhaWxRdWlja0ZpbHRlciA9IGFzeW5jIChxdWlja0ZpbHRlcj86IFF1aWNrRmlsdGVyKSA9PiB7XHJcbiAgICBpZiAocXVpY2tGaWx0ZXIpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZENvZGUgPSBxdWlja0ZpbHRlci5jb2RlO1xyXG4gICAgICBjb25zdCBmMSA9IEpTT04uc3RyaW5naWZ5KHF1aWNrRmlsdGVyLmZpbHRlcik7XHJcbiAgICAgIGNvbnN0IGYyID0gSlNPTi5zdHJpbmdpZnkocXVpY2tGaWx0ZXIuZXh0ZXJuYWxGaWx0ZXIpO1xyXG4gICAgICB0aGlzLmZpbHRlciA9IEpTT04ucGFyc2UoZjEpO1xyXG4gICAgICB0aGlzLmV4dGVybmFsRmlsdGVyID0gdGhpcy5pbml0RXh0ZXJuYWxGaWx0ZXIodGhpcy5leHRlcm5hbEZpbHRlcnMsIEpTT04ucGFyc2UoZjIpKTtcclxuICAgICAgYXdhaXQgdGhpcy51cGRhdGVDb25maWd1cmF0aW9uKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkVkaXRRdWlja0ZpbHRlciA9IChldjogRXZlbnQsIHF1aWNrRmlsdGVyPzogUXVpY2tGaWx0ZXIpID0+IHtcclxuICAgIGV2LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgZXYucHJldmVudERlZmF1bHQoKTtcclxuICAgIHRoaXMubWF0U2VsZWN0Py5jbG9zZSgpO1xyXG4gICAgaWYgKHF1aWNrRmlsdGVyKSB7XHJcbiAgICAgIHRoaXMucG9wdXBRdWlja0ZpbHRlckRldGFpbC5vcGVuKHRoaXMuY29sdW1ucyxcclxuICAgICAgICB0aGlzLmV4dGVybmFsRmlsdGVycyxcclxuICAgICAgICBxdWlja0ZpbHRlci5maWx0ZXIsXHJcbiAgICAgICAgcXVpY2tGaWx0ZXIuZXh0ZXJuYWxGaWx0ZXIsXHJcbiAgICAgICAgcXVpY2tGaWx0ZXIuY29kZSk7XHJcbiAgICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uRGVsZXRlUXVpY2tGaWx0ZXIgPSAoZXY6IEV2ZW50LCBxdWlja0ZpbHRlcj86IFF1aWNrRmlsdGVyKSA9PiB7XHJcbiAgICBldi5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIGV2LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB0aGlzLm1hdFNlbGVjdD8uY2xvc2UoKTtcclxuICAgIGlmIChxdWlja0ZpbHRlcikge1xyXG4gICAgICB0aGlzLm5vdGlmeVNlcnZpY2UuY29uZmlybSh0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudHJhbnNsYXRlKCdSZW1vdmUgZmlsdGVyJykpLnRoZW4oYXN5bmMgKCkgPT4ge1xyXG4gICAgICAgIGlmIChxdWlja0ZpbHRlci5jb2RlID09PSB0aGlzLnNlbGVjdGVkQ29kZSkge1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZENvZGUgPSAnJztcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgaWR4ID0gdGhpcy5xdWlja0ZpbHRlcnMuZmluZEluZGV4KGUgPT4gZS5jb2RlID09PSBxdWlja0ZpbHRlci5jb2RlKTtcclxuICAgICAgICB0aGlzLnF1aWNrRmlsdGVycy5zcGxpY2UoaWR4LCAxKTtcclxuICAgICAgICBhd2FpdCB0aGlzLnVwZGF0ZUNvbmZpZ3VyYXRpb24oKTtcclxuICAgICAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25BY2NlcHRRdWlja0ZpbHRlciA9IGFzeW5jIChhcmdzOiB7IGNvZGU6IHN0cmluZywgZmlsdGVyOiBhbnksIGV4dGVybmFsRmlsdGVyOiBhbnkgfSkgPT4ge1xyXG4gICAgY29uc3QgcXVpY2tGaWx0ZXIgPSB0aGlzLnF1aWNrRmlsdGVycy5maW5kKGUgPT4gZS5jb2RlID09PSBhcmdzLmNvZGUpO1xyXG4gICAgaWYgKCFxdWlja0ZpbHRlcikge1xyXG4gICAgICB0aGlzLnF1aWNrRmlsdGVycy5wdXNoKHtcclxuICAgICAgICBjb2RlOiBhcmdzLmNvZGUsXHJcbiAgICAgICAgZmlsdGVyOiBhcmdzLmZpbHRlcixcclxuICAgICAgICBleHRlcm5hbEZpbHRlcjogdGhpcy5pbml0RXh0ZXJuYWxGaWx0ZXIodGhpcy5leHRlcm5hbEZpbHRlcnMsIGFyZ3MuZXh0ZXJuYWxGaWx0ZXIpXHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcXVpY2tGaWx0ZXIuZmlsdGVyID0gYXJncy5maWx0ZXI7XHJcbiAgICAgIHF1aWNrRmlsdGVyLmV4dGVybmFsRmlsdGVyID0gdGhpcy5pbml0RXh0ZXJuYWxGaWx0ZXIodGhpcy5leHRlcm5hbEZpbHRlcnMsIGFyZ3MuZXh0ZXJuYWxGaWx0ZXIpO1xyXG4gICAgfVxyXG4gICAgYXdhaXQgdGhpcy51cGRhdGVDb25maWd1cmF0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBvbklubGluZUNoYW5nZSA9ICgpID0+IHtcclxuICAgIHRoaXMudXBkYXRlQ29uZmlndXJhdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbml0RXh0ZXJuYWxGaWx0ZXIgPSAoZXh0ZXJuYWxGaWx0ZXJzOiBTZEdyaWRFeHRlcm5hbEZpbHRlcltdLCBleHRlcm5hbEZpbHRlcjogYW55KSA9PiB7XHJcbiAgICBleHRlcm5hbEZpbHRlciA9IGV4dGVybmFsRmlsdGVyIHx8IHt9O1xyXG4gICAgZXh0ZXJuYWxGaWx0ZXJzID0gZXh0ZXJuYWxGaWx0ZXJzIHx8IFtdO1xyXG4gICAgZXh0ZXJuYWxGaWx0ZXJzLmZvckVhY2goZSA9PiB7XHJcbiAgICAgIGlmIChlLnR5cGUgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgZXh0ZXJuYWxGaWx0ZXJbZS5maWVsZF0gPSBleHRlcm5hbEZpbHRlcltlLmZpZWxkXSA/PyBlLmRlZmF1bHQgPz8gJyc7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChlLnR5cGUgPT09ICdudW1iZXInKSB7XHJcbiAgICAgICAgZXh0ZXJuYWxGaWx0ZXJbZS5maWVsZF0gPSBleHRlcm5hbEZpbHRlcltlLmZpZWxkXSA/PyBlLmRlZmF1bHQgPz8gdW5kZWZpbmVkO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBpZiAoZS50eXBlID09PSAnZGF0ZXJhbmdlJykge1xyXG4gICAgICAgIGV4dGVybmFsRmlsdGVyW2UuZmllbGRdID0ge1xyXG4gICAgICAgICAgZnJvbTogZXh0ZXJuYWxGaWx0ZXJbZS5maWVsZF0/LmZyb20gPz8gZS5kZWZhdWx0RnJvbSA/PyB1bmRlZmluZWQsXHJcbiAgICAgICAgICB0bzogZXh0ZXJuYWxGaWx0ZXJbZS5maWVsZF0/LnRvID8/IGUuZGVmYXVsdFRvID8/IHVuZGVmaW5lZFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChlLnR5cGUgPT09ICdudW1iZXJyYW5nZScpIHtcclxuICAgICAgICBleHRlcm5hbEZpbHRlcltlLmZpZWxkXSA9IHtcclxuICAgICAgICAgIGZyb206IGV4dGVybmFsRmlsdGVyW2UuZmllbGRdPy5mcm9tID8/IGUuZGVmYXVsdEZyb20gPz8gdW5kZWZpbmVkLFxyXG4gICAgICAgICAgdG86IGV4dGVybmFsRmlsdGVyW2UuZmllbGRdPy50byA/PyBlLmRlZmF1bHRUbyA/PyB1bmRlZmluZWRcclxuICAgICAgICB9O1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBpZiAoZS50eXBlID09PSAnZGF0ZXJhbmdlZnVsbCcpIHtcclxuICAgICAgICBleHRlcm5hbEZpbHRlcltlLmZpZWxkXSA9IHtcclxuICAgICAgICAgIGZyb206IGV4dGVybmFsRmlsdGVyW2UuZmllbGRdPy5mcm9tID8/IGUuZGVmYXVsdEZyb20gPz8gdW5kZWZpbmVkLFxyXG4gICAgICAgICAgdG86IGV4dGVybmFsRmlsdGVyW2UuZmllbGRdPy50byA/PyBlLmRlZmF1bHRUbyA/PyB1bmRlZmluZWRcclxuICAgICAgICB9O1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBpZiAoZS50eXBlID09PSAndmFsdWVzJykgeyAvLyBhbmRuMVxyXG4gICAgICAgIGV4dGVybmFsRmlsdGVyW2UuZmllbGRdID0gKGV4dGVybmFsRmlsdGVyW2UuZmllbGRdIHx8IGUuZGVmYXVsdCkgPz8gJyc7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBleHRlcm5hbEZpbHRlcjtcclxuICB9XHJcbn1cclxuIl19
|
|
317
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1wb3B1cC1maWx0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IkM6L1VzZXJzL25naGlhdHQxNV9vbmVtb3VudC9Eb2N1bWVudHMvbGliLWNvcmUtdWkvcHJvamVjdHMvc2QtY29yZS9ncmlkLyIsInNvdXJjZXMiOlsic3JjL2xpYi9jb21wb25lbnRzL2dyaWQtcG9wdXAtZmlsdGVyL2dyaWQtcG9wdXAtZmlsdGVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDJDQUEyQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUF5QixTQUFTLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJL0ksT0FBTyxFQUNMLGVBQWUsRUFDaEIsTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2pCLE1BQU0sMEJBQTBCLENBQUM7QUFFbEMsT0FBTyxFQUNMLGtCQUFrQixFQUNuQixNQUFNLDRCQUE0QixDQUFDO0FBQ3BDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBVzVELE1BQU0sT0FBTyxpQkFBaUI7SUEyQjVCLFlBQ1UsR0FBc0IsRUFDOUIsYUFBb0MsRUFDNUIsY0FBZ0MsRUFDaEMsYUFBOEIsRUFDOUIsZ0JBQW9DO1FBSnBDLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBRXRCLG1CQUFjLEdBQWQsY0FBYyxDQUFrQjtRQUNoQyxrQkFBYSxHQUFiLGFBQWEsQ0FBaUI7UUFDOUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFvQjtRQS9CdEMsY0FBUyxHQUFHLGFBQWEsQ0FBQztRQUNsQyxlQUFVLEdBQUcsVUFBVSxDQUFDO1FBQ3hCLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUloQixRQUFHLEdBQUcsRUFBRSxDQUFDO1FBRVIsV0FBTSxHQUFHLElBQUksWUFBWSxFQUF3QyxDQUFDO1FBQ2xF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V0FBVztrQkFDckIsS0FBSzsyQkFDTCxLQUFLO3FCQUNMLE1BQU07b0JBQ04sTUFBTTsrQkFDTixNQUFNOzZCQVVOLEtBQUs7MkJBR0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTptYXgtbGluZS1sZW5ndGhcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIEFmdGVyVmlld0luaXQsIFZpZXdDaGlsZCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIElucHV0LCBDaGFuZ2VEZXRlY3RvclJlZiwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU2RHcmlkQ29sdW1uLCBTZEdyaWRFeHRlcm5hbEZpbHRlciwgR3JpZEJhc2VPcHRpb25GaWx0ZXIgfSBmcm9tICcuLi8uLi9ncmlkLm1vZGVsJztcclxuaW1wb3J0IHsgUXVpY2tGaWx0ZXIsIEZpbHRlckNvbmZpZ3VyYXRpb24gfSBmcm9tICcuL2dyaWQtcG9wdXAtZmlsdGVyLm1vZGVsJztcclxuXHJcbmltcG9ydCB7XHJcbiAgU2ROb3RpZnlTZXJ2aWNlXHJcbn0gZnJvbSAnQHNkLWFuZ3VsYXIvY29yZS9ub3RpZnknO1xyXG5cclxuaW1wb3J0IHtcclxuICBTZFNldHRpbmdTZXJ2aWNlXHJcbn0gZnJvbSAnQHNkLWFuZ3VsYXIvY29yZS9zZXR0aW5nJztcclxuXHJcbmltcG9ydCB7XHJcbiAgU2RUcmFuc2xhdGVTZXJ2aWNlXHJcbn0gZnJvbSAnQHNkLWFuZ3VsYXIvY29yZS90cmFuc2xhdGUnO1xyXG5pbXBvcnQgeyBEZXZpY2VEZXRlY3RvclNlcnZpY2UgfSBmcm9tICduZ3gtZGV2aWNlLWRldGVjdG9yJztcclxuaW1wb3J0IHsgU2RHcmlkUG9wdXBRdWlja0ZpbHRlckRldGFpbCB9IGZyb20gJy4uL2dyaWQtcG9wdXAtcXVpY2stZmlsdGVyLWRldGFpbC9ncmlkLXBvcHVwLXF1aWNrLWZpbHRlci1kZXRhaWwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0U2VsZWN0LCBNYXRTZWxlY3RDaGFuZ2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xyXG5pbXBvcnQgeyBTZE1vZGFsIH0gZnJvbSAnQHNkLWFuZ3VsYXIvY29yZS9tb2RhbCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NkLWdyaWQtcG9wdXAtZmlsdGVyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZ3JpZC1wb3B1cC1maWx0ZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2dyaWQtcG9wdXAtZmlsdGVyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2RHcmlkUG9wdXBGaWx0ZXIgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xyXG4gIHByaXZhdGUga2V5UHJlZml4ID0gJ1BvcHVwRmlsdGVyJztcclxuICBkaXNwbGF5S2V5ID0gJ1NEQ1VTVE9NJztcclxuICBpc01vYmlsZU9yVGFibGV0ID0gZmFsc2U7XHJcbiAgQFZpZXdDaGlsZCgnbW9kYWwnKSBtb2RhbDogU2RNb2RhbDtcclxuICBAVmlld0NoaWxkKCdwb3B1cFF1aWNrRmlsdGVyRGV0YWlsJykgcG9wdXBRdWlja0ZpbHRlckRldGFpbDogU2RHcmlkUG9wdXBRdWlja0ZpbHRlckRldGFpbDtcclxuICBAVmlld0NoaWxkKCdtYXRTZWxlY3QnKSBtYXRTZWxlY3Q6IE1hdFNlbGVjdDtcclxuICBASW5wdXQoKSBrZXkgPSAnJztcclxuICBASW5wdXQoKSBmaWx0ZXJPcHRpb246IEdyaWRCYXNlT3B0aW9uRmlsdGVyO1xyXG4gIEBPdXRwdXQoKSBhY2NlcHQgPSBuZXcgRXZlbnRFbWl0dGVyPHsgZmlsdGVyOiBhbnksIGV4dGVybmFsRmlsdGVyOiBhbnkgfT4oKTtcclxuICBAT3V0cHV0KCkgY2xlYXIgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgQE91dHB1dCgpIGxvYWRJbmxpbmVGaWx0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPEZpbHRlckNvbmZpZ3VyYXRpb24+KCk7XHJcbiAgc2VsZWN0ZWRGaWVsZDogc3RyaW5nO1xyXG4gIG5ld1F1aWNrRmlsdGVyID0gJ2UxZWYxZDQzLWQ2ODktNDI0Zi05NTllLWU2Y2QxNTRjZmVlNyc7XHJcbiAgZmlsdGVyOiBhbnkgPSB7fTtcclxuICBleHRlcm5hbEZpbHRlcjogYW55ID0ge307XHJcbiAgY29sdW1uczogU2RHcmlkQ29sdW1uW10gPSBbXTtcclxuICBleHRlcm5hbEZpbHRlcnM6IFNkR3JpZEV4dGVybmFsRmlsdGVyW10gPSBbXTtcclxuICBxdWlja0ZpbHRlcnM6IFF1aWNrRmlsdGVyW10gPSBbXTtcclxuICBzZWxlY3RlZENvZGU6IHN0cmluZztcclxuICBtYXhRdWlja0ZpbHRlcnMgPSA1O1xyXG4gIEBJbnB1dCgpIGlubGluZUV4dGVybmFsOiB7XHJcbiAgICBba2V5OiBzdHJpbmddOiBib29sZWFuXHJcbiAgfSA9IHt9O1xyXG4gIEBJbnB1dCgpIGlubGluZUNvbHVtbjoge1xyXG4gICAgW2tleTogc3RyaW5nXTogYm9vbGVhblxyXG4gIH0gPSB7fTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIGRldmljZVNlcnZpY2U6IERldmljZURldGVjdG9yU2VydmljZSxcclxuICAgIHByaXZhdGUgc2V0dGluZ1NlcnZpY2U6IFNkU2V0dGluZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIG5vdGlmeVNlcnZpY2U6IFNkTm90aWZ5U2VydmljZSxcclxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogU2RUcmFuc2xhdGVTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICB0aGlzLmlzTW9iaWxlT3JUYWJsZXQgPSAhZGV2aWNlU2VydmljZS5pc0Rlc2t0b3AoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy4jbG9hZENvbmZpZ3VyYXRpb24oKS50aGVuKCgpID0+IHtcclxuICAgICAgdGhpcy5sb2FkSW5saW5lRmlsdGVyLmVtaXQoe1xyXG4gICAgICAgIHF1aWNrRmlsdGVyczogdGhpcy5xdWlja0ZpbHRlcnMgfHwgW10sXHJcbiAgICAgICAgc2VsZWN0ZWRRdWlja0ZpbHRlcjogdGhpcy5zZWxlY3RlZENvZGUgfHwgJycsXHJcbiAgICAgICAgaW5saW5lRXh0ZXJuYWw6IHRoaXMuaW5saW5lRXh0ZXJuYWwsXHJcbiAgICAgICAgaW5saW5lQ29sdW1uOiB0aGlzLmlubGluZUNvbHVtblxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG5cclxuICB9XHJcblxyXG4gIG9wZW4gPSAoXHJcbiAgICBmaXhlZENvbHVtczogU2RHcmlkQ29sdW1uW10sXHJcbiAgICBub3JtYWxDb2x1bW5zOiBTZEdyaWRDb2x1bW5bXSxcclxuICAgIGZpbHRlcjogYW55LFxyXG4gICAgZXh0ZXJuYWxGaWx0ZXI6IGFueSxcclxuICAgIGV4dGVybmFsRmlsdGVycz86IFNkR3JpZEV4dGVybmFsRmlsdGVyW10pID0+IHtcclxuICAgIHRoaXMuaW5pdChmaXhlZENvbHVtcywgbm9ybWFsQ29sdW1ucywgZmlsdGVyLCBleHRlcm5hbEZpbHRlciwgZXh0ZXJuYWxGaWx0ZXJzKTtcclxuICAgIHRoaXMubW9kYWwub3BlbigpO1xyXG4gIH1cclxuXHJcbiAgaW5pdCA9IChcclxuICAgIGZpeGVkQ29sdW1zOiBTZEdyaWRDb2x1bW5bXSxcclxuICAgIG5vcm1hbENvbHVtbnM6IFNkR3JpZENvbHVtbltdLFxyXG4gICAgZmlsdGVyOiBhbnksXHJcbiAgICBleHRlcm5hbEZpbHRlcjogYW55LFxyXG4gICAgZXh0ZXJuYWxGaWx0ZXJzPzogU2RHcmlkRXh0ZXJuYWxGaWx0ZXJbXSkgPT4ge1xyXG4gICAgdGhpcy5jb2x1bW5zID0gWy4uLmZpeGVkQ29sdW1zLCAuLi5ub3JtYWxDb2x1bW5zXS5maWx0ZXIoZSA9PiAhZS5maWx0ZXI/LmRpc2FibGVkICYmIGUudHlwZSAhPT0gJ2ltYWdlJyk7XHJcbiAgICB0aGlzLmNvbHVtbnMuZm9yRWFjaChjb2x1bW4gPT4ge1xyXG4gICAgICBpZiAoY29sdW1uLnR5cGUgPT09ICdjaGlsZHJlbicpIHtcclxuICAgICAgICBjb2x1bW4uY2hpbGRyZW4gPSBjb2x1bW4uY2hpbGRyZW4uZmlsdGVyKGUgPT4gIWUuZmlsdGVyPy5kaXNhYmxlZCAmJiBlLnR5cGUgIT09ICdpbWFnZScpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIGlmIChleHRlcm5hbEZpbHRlcnMpIHtcclxuICAgICAgdGhpcy5leHRlcm5hbEZpbHRlcnMgPSBleHRlcm5hbEZpbHRlcnMuZmlsdGVyKGUgPT4gIWUuZGlzYWJsZWQpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5leHRlcm5hbEZpbHRlcnMgPSBbXTtcclxuICAgIH1cclxuICAgIHRoaXMuZmlsdGVyID0gZmlsdGVyO1xyXG4gICAgdGhpcy5leHRlcm5hbEZpbHRlciA9IHRoaXMuaW5pdEV4dGVybmFsRmlsdGVyKGV4dGVybmFsRmlsdGVycywgZXh0ZXJuYWxGaWx0ZXIpO1xyXG4gICAgZm9yIChjb25zdCBlRmlsdGVyIG9mIHRoaXMuZXh0ZXJuYWxGaWx0ZXJzKSB7XHJcbiAgICAgIGlmICh0aGlzLmlubGluZUV4dGVybmFsW2VGaWx0ZXIuZmllbGRdID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICB0aGlzLmlubGluZUV4dGVybmFsW2VGaWx0ZXIuZmllbGRdID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgZm9yIChjb25zdCBjb2x1bW4gb2YgdGhpcy5jb2x1bW5zKSB7XHJcbiAgICAgIGlmICh0aGlzLmlubGluZUNvbHVtbltjb2x1bW4uZmllbGRdID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICB0aGlzLmlubGluZUNvbHVtbltjb2x1bW4uZmllbGRdID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2xvc2UgPSAoKSA9PiB7XHJcbiAgICB0aGlzLm1vZGFsLmNsb3NlKCk7XHJcbiAgfVxyXG5cclxuICBvbkFjY2VwdCgpIHtcclxuICAgIGlmICh0aGlzLmZpbHRlck9wdGlvbj8ubXVsdGlwbGUgPT09IGZhbHNlKSB7XHJcbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkRmllbGQpIHtcclxuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZEZpZWxkLnN0YXJ0c1dpdGgoJ2NvbHVtbicpKSB7XHJcbiAgICAgICAgICBjb25zdCBmaWVsZCA9IHRoaXMuc2VsZWN0ZWRGaWVsZC5yZXBsYWNlKCdjb2x1bW4nLCAnJyk7XHJcbiAgICAgICAgICB0aGlzLmFjY2VwdC5lbWl0KHtcclxuICAgICAgICAgICAgZmlsdGVyOiB7XHJcbiAgICAgICAgICAgICAgW2ZpZWxkXTogdGhpcy5maWx0ZXJbZmllbGRdXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGV4dGVybmFsRmlsdGVyOiB7fVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnNlbGVjdGVkRmllbGQuc3RhcnRzV2l0aCgnZXh0ZXJuYWwnKSkge1xyXG4gICAgICAgICAgY29uc3QgZmllbGQgPSB0aGlzLnNlbGVjdGVkRmllbGQucmVwbGFjZSgnZXh0ZXJuYWwnLCAnJyk7XHJcbiAgICAgICAgICB0aGlzLmFjY2VwdC5lbWl0KHtcclxuICAgICAgICAgICAgZmlsdGVyOiB7fSxcclxuICAgICAgICAgICAgZXh0ZXJuYWxGaWx0ZXI6IHRoaXMuaW5pdEV4dGVybmFsRmlsdGVyKHRoaXMuZXh0ZXJuYWxGaWx0ZXJzLCB7XHJcbiAgICAgICAgICAgICAgW2ZpZWxkXTogdGhpcy5leHRlcm5hbEZpbHRlcltmaWVsZF1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5hY2NlcHQuZW1pdCh7XHJcbiAgICAgICAgZmlsdGVyOiB0aGlzLmZpbHRlcixcclxuICAgICAgICBleHRlcm5hbEZpbHRlcjogdGhpcy5leHRlcm5hbEZpbHRlclxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHRoaXMubW9kYWwuY2xvc2UoKTtcclxuICB9XHJcblxyXG4gIG9uQ2xlYXIoKSB7XHJcbiAgICBkZWxldGUgdGhpcy5zZWxlY3RlZENvZGU7XHJcbiAgICB0aGlzLmNsZWFyLmVtaXQoKTtcclxuICB9XHJcblxyXG4gICNsb2FkQ29uZmlndXJhdGlvbiA9IGFzeW5jICgpID0+IHtcclxuICAgIHRoaXMucXVpY2tGaWx0ZXJzID0gW107XHJcbiAgICBpZiAoIXRoaXMua2V5KSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IHsgZ2V0LCBoYXMgfSA9IHRoaXMuc2V0dGluZ1NlcnZpY2UuY3JlYXRlPEZpbHRlckNvbmZpZ3VyYXRpb24+KHtcclxuICAgICAgcHJlZml4OiB0aGlzLmtleVByZWZpeCxcclxuICAgICAga2V5OiB0aGlzLmtleVxyXG4gICAgfSk7XHJcbiAgICBpZiAoIWF3YWl0IGhhcygpKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBhd2FpdCBnZXQoKTtcclxuICAgIGlmIChBcnJheS5pc0FycmF5KGNvbmZpZ3VyYXRpb24/LnF1aWNrRmlsdGVycykpIHtcclxuICAgICAgdGhpcy5xdWlja0ZpbHRlcnMgPSBjb25maWd1cmF0aW9uLnF1aWNrRmlsdGVycztcclxuICAgIH1cclxuICAgIHRoaXMuc2VsZWN0ZWRDb2RlID0gY29uZmlndXJhdGlvbj8uc2VsZWN0ZWRRdWlja0ZpbHRlciB8fCAnJztcclxuICAgIHRoaXMuaW5saW5lRXh0ZXJuYWwgPSBjb25maWd1cmF0aW9uPy5pbmxpbmVFeHRlcm5hbCB8fCB7fTtcclxuICAgIHRoaXMuaW5saW5lQ29sdW1uID0gY29uZmlndXJhdGlvbj8uaW5saW5lQ29sdW1uIHx8IHt9O1xyXG4gICAgZm9yIChjb25zdCBleHRlcm5hbEZpbHRlciBvZiB0aGlzLmV4dGVybmFsRmlsdGVycykge1xyXG4gICAgICBpZiAodGhpcy5pbmxpbmVFeHRlcm5hbFtleHRlcm5hbEZpbHRlci5maWVsZF0gPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHRoaXMuaW5saW5lRXh0ZXJuYWxbZXh0ZXJuYWxGaWx0ZXIuZmllbGRdID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgZm9yIChjb25zdCBjb2x1bW4gb2YgdGhpcy5jb2x1bW5zKSB7XHJcbiAgICAgIGlmICh0aGlzLmlubGluZUNvbHVtbltjb2x1bW4uZmllbGRdID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICB0aGlzLmlubGluZUNvbHVtbltjb2x1bW4uZmllbGRdID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYXN5bmMgdXBkYXRlQ29uZmlndXJhdGlvbihzZWxlY3RlZFF1aWNrRmlsdGVyQ29kZT86IHN0cmluZykge1xyXG4gICAgaWYgKCF0aGlzLmtleSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAoc2VsZWN0ZWRRdWlja0ZpbHRlckNvZGUgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkQ29kZSA9IHNlbGVjdGVkUXVpY2tGaWx0ZXJDb2RlO1xyXG4gICAgfVxyXG4gICAgY29uc3QgeyBzZXQgfSA9IHRoaXMuc2V0dGluZ1NlcnZpY2UuY3JlYXRlPEZpbHRlckNvbmZpZ3VyYXRpb24+KHtcclxuICAgICAgcHJlZml4OiB0aGlzLmtleVByZWZpeCxcclxuICAgICAga2V5OiB0aGlzLmtleVxyXG4gICAgfSk7XHJcbiAgICBhd2FpdCBzZXQoe1xyXG4gICAgICBxdWlja0ZpbHRlcnM6IHRoaXMucXVpY2tGaWx0ZXJzLFxyXG4gICAgICBzZWxlY3RlZFF1aWNrRmlsdGVyOiB0aGlzLnNlbGVjdGVkQ29kZSxcclxuICAgICAgaW5saW5lRXh0ZXJuYWw6IHRoaXMuaW5saW5lRXh0ZXJuYWwsXHJcbiAgICAgIGlubGluZUNvbHVtbjogdGhpcy5pbmxpbmVDb2x1bW5cclxuICAgIH0pO1xyXG4gICAgdGhpcy5sb2FkSW5saW5lRmlsdGVyLmVtaXQoe1xyXG4gICAgICBxdWlja0ZpbHRlcnM6IHRoaXMucXVpY2tGaWx0ZXJzIHx8IFtdLFxyXG4gICAgICBzZWxlY3RlZFF1aWNrRmlsdGVyOiB0aGlzLnNlbGVjdGVkQ29kZSB8fCAnJyxcclxuICAgICAgaW5saW5lRXh0ZXJuYWw6IHRoaXMuaW5saW5lRXh0ZXJuYWwsXHJcbiAgICAgIGlubGluZUNvbHVtbjogdGhpcy5pbmxpbmVDb2x1bW5cclxuICAgIH0pO1xyXG4gICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgb25TZWxlY3Rpb25DaGFuZ2UgPSAoY2hhbmdlOiBNYXRTZWxlY3RDaGFuZ2UpID0+IHtcclxuICAgIGNvbnN0IHZhbHVlID0gY2hhbmdlPy52YWx1ZSB8fCAnJztcclxuICAgIGlmICh2YWx1ZSA9PT0gdGhpcy5uZXdRdWlja0ZpbHRlcikge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkQ29kZSA9ICcnO1xyXG4gICAgICB0aGlzLm9uQ3JlYXRlUXVpY2tGaWx0ZXIoKTtcclxuICAgICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgcXVpY2tGaWx0ZXIgPSB0aGlzLnF1aWNrRmlsdGVycy5maW5kKGUgPT4gZS5jb2RlID09PSB2YWx1ZSk7XHJcbiAgICAgIGlmIChxdWlja0ZpbHRlcikge1xyXG4gICAgICAgIHRoaXMub25EZXRhaWxRdWlja0ZpbHRlcihxdWlja0ZpbHRlcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uQ3JlYXRlUXVpY2tGaWx0ZXIgPSAoZXY/OiBFdmVudCkgPT4ge1xyXG4gICAgZXY/LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgZXY/LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB0aGlzLm1hdFNlbGVjdD8uY2xvc2UoKTtcclxuICAgIHRoaXMucG9wdXBRdWlja0ZpbHRlckRldGFpbC5vcGVuKHRoaXMuY29sdW1ucywgdGhpcy5leHRlcm5hbEZpbHRlcnMpO1xyXG4gIH1cclxuXHJcbiAgb25EZXRhaWxRdWlja0ZpbHRlciA9IGFzeW5jIChxdWlja0ZpbHRlcj86IFF1aWNrRmlsdGVyKSA9PiB7XHJcbiAgICBpZiAocXVpY2tGaWx0ZXIpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZENvZGUgPSBxdWlja0ZpbHRlci5jb2RlO1xyXG4gICAgICBjb25zdCBmMSA9IEpTT04uc3RyaW5naWZ5KHF1aWNrRmlsdGVyLmZpbHRlcik7XHJcbiAgICAgIGNvbnN0IGYyID0gSlNPTi5zdHJpbmdpZnkocXVpY2tGaWx0ZXIuZXh0ZXJuYWxGaWx0ZXIpO1xyXG4gICAgICB0aGlzLmZpbHRlciA9IEpTT04ucGFyc2UoZjEpO1xyXG4gICAgICB0aGlzLmV4dGVybmFsRmlsdGVyID0gdGhpcy5pbml0RXh0ZXJuYWxGaWx0ZXIodGhpcy5leHRlcm5hbEZpbHRlcnMsIEpTT04ucGFyc2UoZjIpKTtcclxuICAgICAgYXdhaXQgdGhpcy51cGRhdGVDb25maWd1cmF0aW9uKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkVkaXRRdWlja0ZpbHRlciA9IChldjogRXZlbnQsIHF1aWNrRmlsdGVyPzogUXVpY2tGaWx0ZXIpID0+IHtcclxuICAgIGV2LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgZXYucHJldmVudERlZmF1bHQoKTtcclxuICAgIHRoaXMubWF0U2VsZWN0Py5jbG9zZSgpO1xyXG4gICAgaWYgKHF1aWNrRmlsdGVyKSB7XHJcbiAgICAgIHRoaXMucG9wdXBRdWlja0ZpbHRlckRldGFpbC5vcGVuKHRoaXMuY29sdW1ucyxcclxuICAgICAgICB0aGlzLmV4dGVybmFsRmlsdGVycyxcclxuICAgICAgICBxdWlja0ZpbHRlci5maWx0ZXIsXHJcbiAgICAgICAgcXVpY2tGaWx0ZXIuZXh0ZXJuYWxGaWx0ZXIsXHJcbiAgICAgICAgcXVpY2tGaWx0ZXIuY29kZSk7XHJcbiAgICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uRGVsZXRlUXVpY2tGaWx0ZXIgPSAoZXY6IEV2ZW50LCBxdWlja0ZpbHRlcj86IFF1aWNrRmlsdGVyKSA9PiB7XHJcbiAgICBldi5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIGV2LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB0aGlzLm1hdFNlbGVjdD8uY2xvc2UoKTtcclxuICAgIGlmIChxdWlja0ZpbHRlcikge1xyXG4gICAgICB0aGlzLm5vdGlmeVNlcnZpY2UuY29uZmlybSh0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudHJhbnNsYXRlKCdSZW1vdmUgZmlsdGVyJykpLnRoZW4oYXN5bmMgKCkgPT4ge1xyXG4gICAgICAgIGlmIChxdWlja0ZpbHRlci5jb2RlID09PSB0aGlzLnNlbGVjdGVkQ29kZSkge1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZENvZGUgPSAnJztcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgaWR4ID0gdGhpcy5xdWlja0ZpbHRlcnMuZmluZEluZGV4KGUgPT4gZS5jb2RlID09PSBxdWlja0ZpbHRlci5jb2RlKTtcclxuICAgICAgICB0aGlzLnF1aWNrRmlsdGVycy5zcGxpY2UoaWR4LCAxKTtcclxuICAgICAgICBhd2FpdCB0aGlzLnVwZGF0ZUNvbmZpZ3VyYXRpb24oKTtcclxuICAgICAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25BY2NlcHRRdWlja0ZpbHRlciA9IGFzeW5jIChhcmdzOiB7IGNvZGU6IHN0cmluZywgZmlsdGVyOiBhbnksIGV4dGVybmFsRmlsdGVyOiBhbnkgfSkgPT4ge1xyXG4gICAgY29uc3QgcXVpY2tGaWx0ZXIgPSB0aGlzLnF1aWNrRmlsdGVycy5maW5kKGUgPT4gZS5jb2RlID09PSBhcmdzLmNvZGUpO1xyXG4gICAgaWYgKCFxdWlja0ZpbHRlcikge1xyXG4gICAgICB0aGlzLnF1aWNrRmlsdGVycy5wdXNoKHtcclxuICAgICAgICBjb2RlOiBhcmdzLmNvZGUsXHJcbiAgICAgICAgZmlsdGVyOiBhcmdzLmZpbHRlcixcclxuICAgICAgICBleHRlcm5hbEZpbHRlcjogdGhpcy5pbml0RXh0ZXJuYWxGaWx0ZXIodGhpcy5leHRlcm5hbEZpbHRlcnMsIGFyZ3MuZXh0ZXJuYWxGaWx0ZXIpXHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcXVpY2tGaWx0ZXIuZmlsdGVyID0gYXJncy5maWx0ZXI7XHJcbiAgICAgIHF1aWNrRmlsdGVyLmV4dGVybmFsRmlsdGVyID0gdGhpcy5pbml0RXh0ZXJuYWxGaWx0ZXIodGhpcy5leHRlcm5hbEZpbHRlcnMsIGFyZ3MuZXh0ZXJuYWxGaWx0ZXIpO1xyXG4gICAgfVxyXG4gICAgYXdhaXQgdGhpcy51cGRhdGVDb25maWd1cmF0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBvbklubGluZUNoYW5nZSA9ICgpID0+IHtcclxuICAgIHRoaXMudXBkYXRlQ29uZmlndXJhdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbml0RXh0ZXJuYWxGaWx0ZXIgPSAoZXh0ZXJuYWxGaWx0ZXJzOiBTZEdyaWRFeHRlcm5hbEZpbHRlcltdLCBleHRlcm5hbEZpbHRlcjogYW55KSA9PiB7XHJcbiAgICBleHRlcm5hbEZpbHRlciA9IGV4dGVybmFsRmlsdGVyIHx8IHt9O1xyXG4gICAgZXh0ZXJuYWxGaWx0ZXJzID0gZXh0ZXJuYWxGaWx0ZXJzIHx8IFtdO1xyXG4gICAgZXh0ZXJuYWxGaWx0ZXJzLmZvckVhY2goZSA9PiB7XHJcbiAgICAgIGlmIChlLnR5cGUgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgZXh0ZXJuYWxGaWx0ZXJbZS5maWVsZF0gPSBleHRlcm5hbEZpbHRlcltlLmZpZWxkXSA/PyBlLmRlZmF1bHQgPz8gJyc7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChlLnR5cGUgPT09ICdudW1iZXInKSB7XHJcbiAgICAgICAgZXh0ZXJuYWxGaWx0ZXJbZS5maWVsZF0gPSBleHRlcm5hbEZpbHRlcltlLmZpZWxkXSA/PyBlLmRlZmF1bHQgPz8gdW5kZWZpbmVkO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBpZiAoZS50eXBlID09PSAnZGF0ZXJhbmdlJykge1xyXG4gICAgICAgIGV4dGVybmFsRmlsdGVyW2UuZmllbGRdID0ge1xyXG4gICAgICAgICAgZnJvbTogZXh0ZXJuYWxGaWx0ZXJbZS5maWVsZF0/LmZyb20gPz8gZS5kZWZhdWx0RnJvbSA/PyB1bmRlZmluZWQsXHJcbiAgICAgICAgICB0bzogZXh0ZXJuYWxGaWx0ZXJbZS5maWVsZF0/LnRvID8/IGUuZGVmYXVsdFRvID8/IHVuZGVmaW5lZFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChlLnR5cGUgPT09ICdudW1iZXJyYW5nZScpIHtcclxuICAgICAgICBleHRlcm5hbEZpbHRlcltlLmZpZWxkXSA9IHtcclxuICAgICAgICAgIGZyb206IGV4dGVybmFsRmlsdGVyW2UuZmllbGRdPy5mcm9tID8/IGUuZGVmYXVsdEZyb20gPz8gdW5kZWZpbmVkLFxyXG4gICAgICAgICAgdG86IGV4dGVybmFsRmlsdGVyW2UuZmllbGRdPy50byA/PyBlLmRlZmF1bHRUbyA/PyB1bmRlZmluZWRcclxuICAgICAgICB9O1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBpZiAoZS50eXBlID09PSAnZGF0ZXJhbmdlZnVsbCcpIHtcclxuICAgICAgICBleHRlcm5hbEZpbHRlcltlLmZpZWxkXSA9IHtcclxuICAgICAgICAgIGZyb206IGV4dGVybmFsRmlsdGVyW2UuZmllbGRdPy5mcm9tID8/IGUuZGVmYXVsdEZyb20gPz8gdW5kZWZpbmVkLFxyXG4gICAgICAgICAgdG86IGV4dGVybmFsRmlsdGVyW2UuZmllbGRdPy50byA/PyBlLmRlZmF1bHRUbyA/PyB1bmRlZmluZWRcclxuICAgICAgICB9O1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBpZiAoZS50eXBlID09PSAndmFsdWVzJykgeyAvLyBhbmRuMVxyXG4gICAgICAgIGV4dGVybmFsRmlsdGVyW2UuZmllbGRdID0gKGV4dGVybmFsRmlsdGVyW2UuZmllbGRdIHx8IGUuZGVmYXVsdCkgPz8gJyc7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBleHRlcm5hbEZpbHRlcjtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -162,7 +162,7 @@ export class SdGridPopupQuickFilterDetail {
|
|
|
162
162
|
SdGridPopupQuickFilterDetail.decorators = [
|
|
163
163
|
{ type: Component, args: [{
|
|
164
164
|
selector: 'sd-grid-popup-quick-filter-detail',
|
|
165
|
-
template: "<sd-modal width=\"sm\" [title]=\"(page === 1 ? 'Select filtered fields':'Input filtered fields') | sdTranslate\" #modal>\r\n <sd-modal-body>\r\n <div class=\"row\">\r\n <ng-container *ngIf=\"page === 1\">\r\n <div *ngFor=\"let field of selectableFields\" class=\"col-12\">\r\n <sd-switch [(model)]=\"selectedField[field.id]\" [label]=\"field.title\" (sdChange)=\"onSelectFields()\">\r\n </sd-switch>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"page === 2\">\r\n <div class=\"col-12\" *ngFor=\"let item of fields\">\r\n <ng-container *ngIf=\"item.group === 'external'\">\r\n <sd-input [label]=\"item.title\" *ngIf=\"item.type === 'string'\" type=\"text\"\r\n [(model)]=\"externalFilter[item.code]\">\r\n </sd-input>\r\n <sd-input [label]=\"item.title\" *ngIf=\"item.type === 'number'\"
|
|
165
|
+
template: "<sd-modal width=\"sm\" [title]=\"(page === 1 ? 'Select filtered fields':'Input filtered fields') | sdTranslate\" #modal>\r\n <sd-modal-body>\r\n <div class=\"row\">\r\n <ng-container *ngIf=\"page === 1\">\r\n <div *ngFor=\"let field of selectableFields\" class=\"col-12\">\r\n <sd-switch [(model)]=\"selectedField[field.id]\" [label]=\"field.title\" (sdChange)=\"onSelectFields()\">\r\n </sd-switch>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"page === 2\">\r\n <div class=\"col-12\" *ngFor=\"let item of fields\">\r\n <ng-container *ngIf=\"item.group === 'external'\">\r\n <sd-input [label]=\"item.title\" *ngIf=\"item.type === 'string'\" type=\"text\"\r\n [(model)]=\"externalFilter[item.code]\">\r\n </sd-input>\r\n <sd-input-number [label]=\"item.title\" *ngIf=\"item.type === 'number'\" [(model)]=\"externalFilter[item.code]\">\r\n </sd-input-number>\r\n <sd-select [label]=\"item.title\" *ngIf=\"item.type === 'bool'\" [items]=\" [{value:'1',display:item.trueValue || 'True' },\r\n {value:'0',display:item.falseValue || 'False' }]\" valueField=\"value\" displayField=\"display\"\r\n [(model)]=\"externalFilter[item.code]\">\r\n </sd-select>\r\n <sd-select [label]=\"item.title\" *ngIf=\"item.type === 'radio'\" [items]=\"item.values\"\r\n [valueField]=\"item.valueField\" [displayField]=\"item.displayField\" [(model)]=\"externalFilter[item.code]\">\r\n </sd-select>\r\n <ng-container *ngIf=\"item.type === 'values'\">\r\n <sd-select *ngIf=\"item.selection === 'MULTIPLE'\" [label]=\"item.title\" [items]=\"item.values\"\r\n [valueField]=\"item.valueField\" [displayField]=\"item.displayField\" [(model)]=\"externalFilter[item.code]\"\r\n multiple=\"true\">\r\n </sd-select>\r\n <sd-autocomplete *ngIf=\"item.selection === 'AUTOCOMPLETE'\" [label]=\"item.title\" [items]=\"item.values\"\r\n [valueField]=\"item.valueField\" [displayField]=\"item.displayField\" [(model)]=\"externalFilter[item.code]\">\r\n </sd-autocomplete>\r\n <sd-select *ngIf=\"item.selection === 'MULTIPLEAUTOCOMPLETE'\" [label]=\"item.title\" [items]=\"item.values\"\r\n [valueField]=\"item.valueField\" [displayField]=\"item.displayField\" [(model)]=\"externalFilter[item.code]\"\r\n filtered=\"true\" multiple=\"true\">\r\n </sd-select>\r\n <sd-select *ngIf=\"!item.selection\" [label]=\"item.title\" [items]=\"item.values\"\r\n [valueField]=\"item.valueField\" [displayField]=\"item.displayField\" [(model)]=\"externalFilter[item.code]\">\r\n </sd-select>\r\n </ng-container>\r\n <sd-input *ngIf=\"item.type === 'custom'\" [label]=\"item.title\"\r\n [(model)]=\"externalFilter[displayKey + item.code]\"\r\n (sdFocusForceBlur)=\"item?.onClick(externalFilter, item.code, displayKey + item.code)\">\r\n </sd-input>\r\n <sd-date-time [label]=\"item.title\" *ngIf=\"item.type ==='date'\" [(model)]=\"externalFilter[item.code]\"\r\n type=\"date\">\r\n </sd-date-time>\r\n <sd-date-range [label]=\"item.title\" *ngIf=\"item.type ==='daterangefull'\"\r\n [(from)]=\"externalFilter[item.code].from\" [(to)]=\"externalFilter[item.code].to\" [min]=\"item.minDate\"\r\n [max]=\"item.maxDate\">\r\n </sd-date-range>\r\n <ng-container *ngIf=\"item.type ==='daterange'\">\r\n <div class=\"row\">\r\n <div class=\"col-6\">\r\n <sd-date-time [label]=\"item.fromTitle\" [(model)]=\"externalFilter[item.code].from\"\r\n [type]=\"item.enableTime ? 'datetime' : 'date'\" [minDate]=\"item.minDate\"\r\n [maxDate]=\"externalFilter[item.code].to || item.maxDate\">\r\n </sd-date-time>\r\n </div>\r\n <div class=\"col-6\">\r\n <sd-date-time [label]=\"item.toTitle\" [(model)]=\"externalFilter[item.code].to\"\r\n [type]=\"item.enableTime ? 'datetime' : 'date'\"\r\n [minDate]=\"item.minDate || externalFilter[item.code].from\" [maxDate]=\"item.maxDate\">\r\n </sd-date-time>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <div class=\"row\" *ngIf=\"item.type ==='numberrange'\">\r\n <div class=\"col-6\">\r\n <sd-input [label]=\"item.fromTitle\" type=\" number\" [(model)]=\"externalFilter[item.code].from\">\r\n </sd-input>\r\n </div>\r\n <div class=\"col-6\">\r\n <sd-input [label]=\"item.toTitle\" type=\" number\" [(model)]=\"externalFilter[item.code].to\">\r\n </sd-input>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"item.group === 'column'\">\r\n <sd-input *ngIf=\"item.type === 'string'\" [label]=\"item.title\" type=\"text\" [(model)]=\"filter[item.code]\">\r\n </sd-input>\r\n <sd-input *ngIf=\"item.type === 'number'\" [label]=\"item.title\" type=\" number\" [(model)]=\"filter[item.code]\">\r\n </sd-input>\r\n <sd-select *ngIf=\"item.type === 'bool'\" [label]=\"item.title\" [items]=\"[{value:'1',display:item.trueValue || 'True' },\r\n {value:'0',display:item.falseValue || 'False' }]\" [(model)]=\"filter[item.code]\">\r\n </sd-select>\r\n <sd-select *ngIf=\"item.type === 'radio'\" [label]=\"item.title\" [items]=\"item.values\"\r\n [valueField]=\"item.valueField\" [displayField]=\"item.displayField\" [(model)]=\"filter[item.code]\">\r\n </sd-select>\r\n <sd-autocomplete *ngIf=\"item.type === 'values' && item.editor?.autocomplete\" [label]=\"item.title\"\r\n [items]=\"item.values\" valueField=\"value\" displayField=\"text\" [(model)]=\"filter[item.code]\">\r\n </sd-autocomplete>\r\n <sd-select *ngIf=\"item.type === 'values' && !item.editor?.autocomplete\" [label]=\"item.title\"\r\n [items]=\"item.values\" valueField=\"value\" displayField=\"text\" [(model)]=\"filter[item.code]\">\r\n </sd-select>\r\n <sd-date-time *ngIf=\"item.type ==='date' || item.type==='datetime' ||\r\n item.type==='time'\" [label]=\"item.title\" [(model)]=\" filter[item.code]\" type=\"date\">\r\n </sd-date-time>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </sd-modal-body>\r\n <ng-container *ngIf=\"page === 1\">\r\n <sd-modal-footer *sdDesktop>\r\n <sd-button class=\"mr-auto\" (action)=\"onCancel()\" icon=\"clear\" [title]=\"'Cancel' | sdTranslate\" size=\"sm\">\r\n </sd-button>\r\n <sd-button (action)=\"page = 2\" icon=\"arrow_forward\" [title]=\"'Next' | sdTranslate\" color=\"primary\"\r\n iconSuffix=\"true\" [disabled]=\"!fields.length\" size=\"sm\"></sd-button>\r\n </sd-modal-footer>\r\n <sd-modal-footer *sdMobileTablet>\r\n <sd-button style=\"flex: 1; padding-right: 5px;\" (action)=\"onCancel()\" icon=\"clear\"\r\n [title]=\"'Cancel' | sdTranslate\" width=\"100%\" size=\"sm\"></sd-button>\r\n <sd-button style=\"flex: 1; padding-left: 5px;\" (action)=\"page = 2\" icon=\"arrow_forward\"\r\n [title]=\"'Next' | sdTranslate\" color=\"primary\" width=\"100%\" iconSuffix=\"true\" [disabled]=\"!fields.length\"\r\n size=\"sm\">\r\n </sd-button>\r\n </sd-modal-footer>\r\n </ng-container>\r\n <ng-container *ngIf=\"page === 2\">\r\n <sd-modal-footer *sdDesktop>\r\n <sd-button class=\"mr-auto\" (action)=\"page = 1\" icon=\"arrow_back\" [title]=\"'Back' | sdTranslate\" size=\"sm\">\r\n </sd-button>\r\n <sd-button (action)=\"onAccept()\" icon=\"done\" [title]=\"'Accept' | sdTranslate\" color=\"primary\" size=\"sm\">\r\n </sd-button>\r\n </sd-modal-footer>\r\n <sd-modal-footer *sdMobileTablet>\r\n <sd-button style=\"flex: 1; padding-right: 5px;\" (action)=\"page = 1\" icon=\"arrow_back\"\r\n [title]=\"'Back' | sdTranslate\" width=\"100%\" size=\"sm\"></sd-button>\r\n <sd-button style=\"flex: 1; padding-left: 5px;\" (action)=\"onAccept()\" icon=\"done\" [title]=\"'Accept' | sdTranslate\"\r\n color=\"primary\" width=\"100%\" size=\"sm\"></sd-button>\r\n </sd-modal-footer>\r\n </ng-container>\r\n</sd-modal>",
|
|
166
166
|
styles: [""]
|
|
167
167
|
},] }
|
|
168
168
|
];
|
|
@@ -176,4 +176,4 @@ SdGridPopupQuickFilterDetail.propDecorators = {
|
|
|
176
176
|
quickFilters: [{ type: Input }],
|
|
177
177
|
accept: [{ type: Output }]
|
|
178
178
|
};
|
|
179
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1wb3B1cC1xdWljay1maWx0ZXItZGV0YWlsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJDOi9Vc2Vycy9uZ2hpYXR0MTVfb25lbW91bnQvRG9jdW1lbnRzL2xpYi1jb3JlLXVpL3Byb2plY3RzL3NkLWNvcmUvZ3JpZC8iLCJzb3VyY2VzIjpbInNyYy9saWIvY29tcG9uZW50cy9ncmlkLXBvcHVwLXF1aWNrLWZpbHRlci1kZXRhaWwvZ3JpZC1wb3B1cC1xdWljay1maWx0ZXItZGV0YWlsLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUF5QixTQUFTLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHekcsT0FBTyxFQUNMLGVBQWUsRUFDaEIsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQ0wsa0JBQWtCLEVBQ25CLE1BQU0sNEJBQTRCLENBQUM7QUFDcEMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFTNUQsTUFBTSxPQUFPLDRCQUE0QjtJQWlCdkMsWUFDRSxhQUFvQyxFQUM1QixhQUE4QixFQUM5QixnQkFBb0M7UUFEcEMsa0JBQWEsR0FBYixhQUFhLENBQWlCO1FBQzlCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBb0I7UUFuQjlDLGVBQVUsR0FBRyxVQUFVLENBQUM7UUFDeEIscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBR2YsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDM0MsV0FBTSxHQUFZLEVBQUUsQ0FBQztRQUNyQixxQkFBZ0IsR0FBWSxFQUFFLENBQUM7UUFDL0IsWUFBTyxHQUFtQixFQUFFLENBQUM7UUFDN0Isb0JBQWUsR0FBMkIsRUFBRSxDQUFDO1FBQzdDLFdBQU0sR0FBVyxFQUFFLENBQUM7UUFDcEIsbUJBQWMsR0FBVyxFQUFFLENBQUM7UUFDNUIsa0JBQWEsR0FFVCxFQUFF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LEVBQUUsUUFBUSxFQUNmLElBQUksRUFBRSxNQUFNLENBQUMsS0FBSyxFQUNsQixJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksRUFDakIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLLElBQ25CLENBQUM7YUFDSjtRQUNILENBQUMsRUFBRTtRQUNILElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLEdBQUcsY0FBYyxFQUFFLEdBQUcsWUFBWSxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNwQixDQUFDOzs7WUEzSkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxtQ0FBbUM7Z0JBQzdDLGttUkFBOEQ7O2FBRS9EOzs7WUFSUSxxQkFBcUI7WUFMNUIsZUFBZTtZQUdmLGtCQUFrQjs7O29CQWNqQixTQUFTLFNBQUMsT0FBTzsyQkFDakIsS0FBSztxQkFDTCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIEFmdGVyVmlld0luaXQsIFZpZXdDaGlsZCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFNkR3JpZENvbHVtbiwgU2RHcmlkRXh0ZXJuYWxGaWx0ZXIgfSBmcm9tICcuLi8uLi9ncmlkLm1vZGVsJztcclxuXHJcbmltcG9ydCB7XHJcbiAgU2ROb3RpZnlTZXJ2aWNlXHJcbn0gZnJvbSAnQHNkLWFuZ3VsYXIvY29yZS9ub3RpZnknO1xyXG5pbXBvcnQge1xyXG4gIFNkVHJhbnNsYXRlU2VydmljZVxyXG59IGZyb20gJ0BzZC1hbmd1bGFyL2NvcmUvdHJhbnNsYXRlJztcclxuaW1wb3J0IHsgRGV2aWNlRGV0ZWN0b3JTZXJ2aWNlIH0gZnJvbSAnbmd4LWRldmljZS1kZXRlY3Rvcic7XHJcbmltcG9ydCB7IFF1aWNrRmlsdGVyIH0gZnJvbSAnLi4vZ3JpZC1wb3B1cC1maWx0ZXIvZ3JpZC1wb3B1cC1maWx0ZXIubW9kZWwnO1xyXG5pbXBvcnQgeyBTZE1vZGFsIH0gZnJvbSAnQHNkLWFuZ3VsYXIvY29yZS9tb2RhbCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NkLWdyaWQtcG9wdXAtcXVpY2stZmlsdGVyLWRldGFpbCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2dyaWQtcG9wdXAtcXVpY2stZmlsdGVyLWRldGFpbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZ3JpZC1wb3B1cC1xdWljay1maWx0ZXItZGV0YWlsLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFNkR3JpZFBvcHVwUXVpY2tGaWx0ZXJEZXRhaWwgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xyXG4gIGRpc3BsYXlLZXkgPSAnU0RDVVNUT00nO1xyXG4gIGlzTW9iaWxlT3JUYWJsZXQgPSBmYWxzZTtcclxuICBAVmlld0NoaWxkKCdtb2RhbCcpIG1vZGFsOiBTZE1vZGFsO1xyXG4gIEBJbnB1dCgpIHF1aWNrRmlsdGVyczogUXVpY2tGaWx0ZXJbXTtcclxuICBAT3V0cHV0KCkgYWNjZXB0ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgZmllbGRzOiBGaWVsZFtdID0gW107XHJcbiAgc2VsZWN0YWJsZUZpZWxkczogRmllbGRbXSA9IFtdO1xyXG4gIGNvbHVtbnM6IFNkR3JpZENvbHVtbltdID0gW107XHJcbiAgZXh0ZXJuYWxGaWx0ZXJzOiBTZEdyaWRFeHRlcm5hbEZpbHRlcltdID0gW107XHJcbiAgZmlsdGVyOiBGaWx0ZXIgPSB7fTtcclxuICBleHRlcm5hbEZpbHRlcjogRmlsdGVyID0ge307XHJcbiAgc2VsZWN0ZWRGaWVsZDoge1xyXG4gICAgW2tleTogc3RyaW5nXTogYm9vbGVhbjtcclxuICB9ID0ge307XHJcbiAgcGFnZTogMSB8IDIgPSAxO1xyXG4gIGNvZGU6IHN0cmluZztcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIGRldmljZVNlcnZpY2U6IERldmljZURldGVjdG9yU2VydmljZSxcclxuICAgIHByaXZhdGUgbm90aWZ5U2VydmljZTogU2ROb3RpZnlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBTZFRyYW5zbGF0ZVNlcnZpY2VcclxuICApIHtcclxuICAgIHRoaXMuaXNNb2JpbGVPclRhYmxldCA9ICFkZXZpY2VTZXJ2aWNlLmlzRGVza3RvcCgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcblxyXG4gIH1cclxuXHJcbiAgb3Blbihjb2x1bW5zOiBTZEdyaWRDb2x1bW5bXSwgZXh0ZXJuYWxGaWx0ZXJzOiBTZEdyaWRFeHRlcm5hbEZpbHRlcltdLCBmaWx0ZXI/OiBGaWx0ZXIsIGV4dGVybmFsRmlsdGVyPzogRmlsdGVyLCBjb2RlPzogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmZpZWxkcyA9IFtdO1xyXG4gICAgdGhpcy5maWx0ZXIgPSB7fTtcclxuICAgIHRoaXMuZXh0ZXJuYWxGaWx0ZXIgPSB7fTtcclxuICAgIHRoaXMuY29sdW1ucyA9IGNvbHVtbnM7XHJcbiAgICB0aGlzLmV4dGVybmFsRmlsdGVycyA9IGV4dGVybmFsRmlsdGVycztcclxuICAgIHRoaXMuY29kZSA9IGNvZGU7XHJcbiAgICBpZiAoZmlsdGVyKSB7XHJcbiAgICAgIE9iamVjdC5rZXlzKGZpbHRlcikuZm9yRWFjaChrZXkgPT4ge1xyXG4gICAgICAgIGlmIChmaWx0ZXJba2V5XSA9PT0gdW5kZWZpbmVkIHx8IGZpbHRlcltrZXldID09PSBudWxsIHx8IGZpbHRlcltrZXldID09PSAnJykge1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBjb2x1bW4gPSBjb2x1bW5zLmZpbmQoZSA9PiBlLmZpZWxkID09PSBrZXkpO1xyXG4gICAgICAgIGlmICghY29sdW1uKSB7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZmlsdGVyW2tleV0gPSBmaWx0ZXJba2V5XTtcclxuICAgICAgICB0aGlzLmZpZWxkcy5wdXNoKHtcclxuICAgICAgICAgIC4uLmNvbHVtbixcclxuICAgICAgICAgIGlkOiAnY29sdW1uJyArIGNvbHVtbi5maWVsZCxcclxuICAgICAgICAgIGdyb3VwOiAnY29sdW1uJyxcclxuICAgICAgICAgIHR5cGU6IGNvbHVtbi50eXBlLFxyXG4gICAgICAgICAgY29kZTogY29sdW1uLmZpZWxkLFxyXG4gICAgICAgICAgdGl0bGU6IGNvbHVtbi50aXRsZVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGlmIChleHRlcm5hbEZpbHRlcikge1xyXG4gICAgICBPYmplY3Qua2V5cyhleHRlcm5hbEZpbHRlcikuZm9yRWFjaChrZXkgPT4ge1xyXG4gICAgICAgIGlmIChleHRlcm5hbEZpbHRlcltrZXldID09PSB1bmRlZmluZWQgfHwgZXh0ZXJuYWxGaWx0ZXJba2V5XSA9PT0gbnVsbCB8fCBleHRlcm5hbEZpbHRlcltrZXldID09PSAnJykge1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoa2V5LnN0YXJ0c1dpdGgodGhpcy5kaXNwbGF5S2V5KSkge1xyXG4gICAgICAgICAgdGhpcy5leHRlcm5hbEZpbHRlcltrZXldID0gZXh0ZXJuYWxGaWx0ZXJba2V5XTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgaXRlbSA9IGV4dGVybmFsRmlsdGVycy5maW5kKGUgPT4gZS5maWVsZCA9PT0ga2V5KTtcclxuICAgICAgICBpZiAoIWl0ZW0pIHtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGl0ZW0udHlwZSA9PT0gJ2RhdGVyYW5nZScgfHwgaXRlbS50eXBlID09PSAnbnVtYmVycmFuZ2UnKSB7XHJcbiAgICAgICAgICB0aGlzLmV4dGVybmFsRmlsdGVyW2tleV0gPSB7IC4uLmV4dGVybmFsRmlsdGVyW2tleV0gfTtcclxuICAgICAgICAgIGlmICghZXh0ZXJuYWxGaWx0ZXJba2V5XT8uZnJvbSAmJiAhZXh0ZXJuYWxGaWx0ZXJba2V5XT8udG8pIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5maWVsZHMucHVzaCh7XHJcbiAgICAgICAgICAgIC4uLml0ZW0sXHJcbiAgICAgICAgICAgIGlkOiAnZXh0ZXJuYWwnICsgaXRlbS5maWVsZCxcclxuICAgICAgICAgICAgZ3JvdXA6ICdleHRlcm5hbCcsXHJcbiAgICAgICAgICAgIHR5cGU6IGl0ZW0udHlwZSxcclxuICAgICAgICAgICAgY29kZTogaXRlbS5maWVsZCxcclxuICAgICAgICAgICAgdGl0bGU6IGl0ZW0udGl0bGUsXHJcbiAgICAgICAgICAgIGZyb21UaXRsZTogaXRlbS5mcm9tVGl0bGUsXHJcbiAgICAgICAgICAgIHRvVGl0bGU6IGl0ZW0udG9UaXRsZSxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoaXRlbS50eXBlID09PSAnZGF0ZXJhbmdlZnVsbCcpIHtcclxuICAgICAgICAgIHRoaXMuZXh0ZXJuYWxGaWx0ZXJba2V5XSA9IHsgLi4uZXh0ZXJuYWxGaWx0ZXJba2V5XSB9O1xyXG4gICAgICAgICAgaWYgKCFleHRlcm5hbEZpbHRlcltrZXldPy5mcm9tICYmICFleHRlcm5hbEZpbHRlcltrZXldPy50bykge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLmZpZWxkcy5wdXNoKHtcclxuICAgICAgICAgICAgLi4uaXRlbSxcclxuICAgICAgICAgICAgaWQ6ICdleHRlcm5hbCcgKyBpdGVtLmZpZWxkLFxyXG4gICAgICAgICAgICBncm91cDogJ2V4dGVybmFsJyxcclxuICAgICAgICAgICAgdHlwZTogaXRlbS50eXBlLFxyXG4gICAgICAgICAgICBjb2RlOiBpdGVtLmZpZWxkLFxyXG4gICAgICAgICAgICB0aXRsZTogaXRlbS50aXRsZVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuZXh0ZXJuYWxGaWx0ZXJba2V5XSA9IGV4dGVybmFsRmlsdGVyW2tleV07XHJcbiAgICAgICAgICB0aGlzLmZpZWxkcy5wdXNoKHtcclxuICAgICAgICAgICAgLi4uaXRlbSxcclxuICAgICAgICAgICAgaWQ6ICdleHRlcm5hbCcgKyBpdGVtLmZpZWxkLFxyXG4gICAgICAgICAgICBncm91cDogJ2V4dGVybmFsJyxcclxuICAgICAgICAgICAgdHlwZTogaXRlbS50eXBlLFxyXG4gICAgICAgICAgICBjb2RlOiBpdGVtLmZpZWxkLFxyXG4gICAgICAgICAgICB0aXRsZTogaXRlbS50aXRsZVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGNvbnN0IGV4dGVybmFsRmllbGRzOiBGaWVsZFtdID0gZXh0ZXJuYWxGaWx0ZXJzPy5tYXAoZSA9PiAoe1xyXG4gICAgICAuLi5lLFxyXG4gICAgICBpZDogJ2V4dGVybmFsJyArIGUuZmllbGQsXHJcbiAgICAgIGdyb3VwOiAnZXh0ZXJuYWwnLFxyXG4gICAgICBjb2RlOiBlLmZpZWxkLFxyXG4gICAgICB0eXBlOiBlLnR5cGUsXHJcbiAgICAgIHRpdGxlOiBlLnRpdGxlXHJcbiAgICB9KSkgfHwgW107XHJcbiAgICBjb25zdCBjb2x1bW5GaWVsZHM6IEZpZWxkW10gPSBbXTtcclxuICAgIGNvbHVtbnM/LmZpbHRlcihlID0+IGUudHlwZSAhPT0gJ2ltYWdlJykuZm9yRWFjaChjb2x1bW4gPT4ge1xyXG4gICAgICBpZiAoJ2NoaWxkcmVuJyBpbiBjb2x1bW4pIHtcclxuICAgICAgICBjb2x1bW4uY2hpbGRyZW4/LmZpbHRlcihlID0+IGUudHlwZSAhPT0gJ2ltYWdlJykuZm9yRWFjaChlID0+IHtcclxuICAgICAgICAgIGNvbHVtbkZpZWxkcy5wdXNoKHtcclxuICAgICAgICAgICAgLi4uZSxcclxuICAgICAgICAgICAgaWQ6ICdjb2x1bW4nICsgZS5maWVsZCxcclxuICAgICAgICAgICAgZ3JvdXA6ICdjb2x1bW4nLFxyXG4gICAgICAgICAgICBjb2RlOiBlLmZpZWxkLFxyXG4gICAgICAgICAgICB0eXBlOiBlLnR5cGUsXHJcbiAgICAgICAgICAgIHRpdGxlOiBlLnRpdGxlXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb2x1bW5GaWVsZHMucHVzaCh7XHJcbiAgICAgICAgICAuLi5jb2x1bW4sXHJcbiAgICAgICAgICBpZDogJ2NvbHVtbicgKyBjb2x1bW4uZmllbGQsXHJcbiAgICAgICAgICBncm91cDogJ2NvbHVtbicsXHJcbiAgICAgICAgICBjb2RlOiBjb2x1bW4uZmllbGQsXHJcbiAgICAgICAgICB0eXBlOiBjb2x1bW4udHlwZSxcclxuICAgICAgICAgIHRpdGxlOiBjb2x1bW4udGl0bGVcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLnNlbGVjdGFibGVGaWVsZHMgPSBbLi4uZXh0ZXJuYWxGaWVsZHMsIC4uLmNvbHVtbkZpZWxkc107XHJcbiAgICB0aGlzLnNlbGVjdGVkRmllbGQgPSB7fTtcclxuICAgIHRoaXMuZmllbGRzLmZvckVhY2goZSA9PiB0aGlzLnNlbGVjdGVkRmllbGRbZS5pZF0gPSB0cnVlKTtcclxuICAgIHRoaXMucGFnZSA9IHRoaXMuZmllbGRzLmxlbmd0aCA+IDAgPyAyIDogMTtcclxuICAgIHRoaXMubW9kYWwub3BlbigpO1xyXG4gIH1cclxuXHJcbiAgb25BY2NlcHQgPSAoKSA9PiB7XHJcbiAgICBjb25zdCBleGVjdXRlID0gKCkgPT4ge1xyXG4gICAgICBjb25zdCBmaWx0ZXIgPSB7fTtcclxuICAgICAgY29uc3QgZXh0ZXJuYWxGaWx0ZXIgPSB7fTtcclxuICAgICAgT2JqZWN0LmtleXModGhpcy5maWx0ZXIpLmZvckVhY2goa2V5ID0+IHtcclxuICAgICAgICBpZiAodGhpcy5maWx0ZXJba2V5XSA9PT0gdW5kZWZpbmVkIHx8IHRoaXMuZmlsdGVyW2tleV0gPT09IG51bGwgfHwgdGhpcy5maWx0ZXJba2V5XSA9PT0gJycpIHtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCF0aGlzLmZpZWxkcy5zb21lKGUgPT4gZS5ncm91cCA9PT0gJ2NvbHVtbicgJiYgZS5jb2RlID09PSBrZXkpKSB7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZpbHRlcltrZXldID0gdGhpcy5maWx0ZXJba2V5XTtcclxuICAgICAgfSk7XHJcbiAgICAgIE9iamVjdC5rZXlzKHRoaXMuZXh0ZXJuYWxGaWx0ZXIpLmZvckVhY2goa2V5ID0+IHtcclxuICAgICAgICBpZiAodGhpcy5leHRlcm5hbEZpbHRlcltrZXldID09PSB1bmRlZmluZWQgfHwgdGhpcy5leHRlcm5hbEZpbHRlcltrZXldID09PSBudWxsIHx8IHRoaXMuZXh0ZXJuYWxGaWx0ZXJba2V5XSA9PT0gJycpIHtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgZXh0ZXJuYWxGaWx0ZXJba2V5XSA9IHRoaXMuZXh0ZXJuYWxGaWx0ZXJba2V5XTtcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuYWNjZXB0LmVtaXQoe1xyXG4gICAgICAgIGNvZGU6IHRoaXMuY29kZSxcclxuICAgICAgICBmaWx0ZXIsXHJcbiAgICAgICAgZXh0ZXJuYWxGaWx0ZXJcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMubW9kYWwuY2xvc2UoKTtcclxuICAgIH07XHJcbiAgICBpZiAoIXRoaXMuY29kZSkge1xyXG4gICAgICB0aGlzLm5vdGlmeVNlcnZpY2UuY29uZmlybVdpdGhJbnB1dCgnRW50ZXIgeW91ciBxdWljayBmaWx0ZXIgbmFtZScpLnRoZW4oKHZhbHVlOiBzdHJpbmcpID0+IHtcclxuICAgICAgICBpZiAodmFsdWUpIHtcclxuICAgICAgICAgIGlmICh0aGlzLnF1aWNrRmlsdGVycz8uc29tZShlID0+IGUuY29kZSA9PT0gdmFsdWUpKSB7XHJcbiAgICAgICAgICAgIHRoaXMubm90aWZ5U2VydmljZS5ub3RpZnkud2FybmluZyh0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudHJhbnNsYXRlKCdDb2RlIGlzIGV4aXN0ZWQnKSk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuY29kZSA9IHZhbHVlO1xyXG4gICAgICAgICAgZXhlY3V0ZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBleGVjdXRlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkNhbmNlbCA9ICgpID0+IHtcclxuICAgIHRoaXMubW9kYWwuY2xvc2UoKTtcclxuICB9XHJcblxyXG4gIG9uU2VsZWN0RmllbGQgPSAodmFsdWVzOiBzdHJpbmdbXSkgPT4ge1xyXG4gICAgdGhpcy5maWVsZHMgPSB0aGlzLnNlbGVjdGFibGVGaWVsZHMuZmlsdGVyKGUgPT4gdmFsdWVzLnNvbWUodiA9PiBlLmNvZGUgPT09IHYpKTtcclxuICAgIGZvciAoY29uc3QgZmllbGQgb2YgdGhpcy5maWVsZHMpIHtcclxuICAgICAgaWYgKGZpZWxkLmdyb3VwID09PSAnZXh0ZXJuYWwnICYmIGZpZWxkLnR5cGUuaW5jbHVkZXMoJ3JhbmdlJykpIHtcclxuICAgICAgICB0aGlzLmV4dGVybmFsRmlsdGVyW2ZpZWxkLmNvZGVdID0gdGhpcy5leHRlcm5hbEZpbHRlcltmaWVsZC5jb2RlXSB8fCB7fTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25TZWxlY3RGaWVsZHMgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmZpZWxkcyA9IHRoaXMuc2VsZWN0YWJsZUZpZWxkcy5maWx0ZXIoZSA9PiB0aGlzLnNlbGVjdGVkRmllbGRbZS5pZF0pO1xyXG4gICAgZm9yIChjb25zdCBmaWVsZCBvZiB0aGlzLmZpZWxkcykge1xyXG4gICAgICBpZiAoZmllbGQuZ3JvdXAgPT09ICdleHRlcm5hbCcgJiYgZmllbGQudHlwZS5pbmNsdWRlcygncmFuZ2UnKSkge1xyXG4gICAgICAgIHRoaXMuZXh0ZXJuYWxGaWx0ZXJbZmllbGQuY29kZV0gPSB0aGlzLmV4dGVybmFsRmlsdGVyW2ZpZWxkLmNvZGVdIHx8IHt9O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5pbnRlcmZhY2UgRmllbGQge1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgZ3JvdXA6ICdjb2x1bW4nIHwgJ2V4dGVybmFsJztcclxuICB0eXBlOiBzdHJpbmc7XHJcbiAgY29kZTogc3RyaW5nO1xyXG4gIHRpdGxlPzogc3RyaW5nO1xyXG4gIGZyb21UaXRsZT86IHN0cmluZztcclxuICB0b1RpdGxlPzogc3RyaW5nO1xyXG4gIFtrZXk6IHN0cmluZ106IGFueTtcclxufVxyXG5cclxuaW50ZXJmYWNlIEZpbHRlciB7XHJcbiAgW2ZpZWxkOiBzdHJpbmddOiBhbnk7XHJcbn1cclxuIl19
|
|
179
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1wb3B1cC1xdWljay1maWx0ZXItZGV0YWlsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJDOi9Vc2Vycy9uZ2hpYXR0MTVfb25lbW91bnQvRG9jdW1lbnRzL2xpYi1jb3JlLXVpL3Byb2plY3RzL3NkLWNvcmUvZ3JpZC8iLCJzb3VyY2VzIjpbInNyYy9saWIvY29tcG9uZW50cy9ncmlkLXBvcHVwLXF1aWNrLWZpbHRlci1kZXRhaWwvZ3JpZC1wb3B1cC1xdWljay1maWx0ZXItZGV0YWlsLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUF5QixTQUFTLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHekcsT0FBTyxFQUNMLGVBQWUsRUFDaEIsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQ0wsa0JBQWtCLEVBQ25CLE1BQU0sNEJBQTRCLENBQUM7QUFDcEMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFTNUQsTUFBTSxPQUFPLDRCQUE0QjtJQWlCdkMsWUFDRSxhQUFvQyxFQUM1QixhQUE4QixFQUM5QixnQkFBb0M7UUFEcEMsa0JBQWEsR0FBYixhQUFhLENBQWlCO1FBQzlCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBb0I7UUFuQjlDLGVBQVUsR0FBRyxVQUFVLENBQUM7UUFDeEIscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBR2YsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDM0MsV0FBTSxHQUFZLEVBQUUsQ0FBQztRQUNyQixxQkFBZ0IsR0FBWSxFQUFFLENBQUM7UUFDL0IsWUFBTyxHQUFtQixFQUFFLENBQUM7UUFDN0Isb0JBQWUsR0FBMkIsRUFBRSxDQUFDO1FBQzdDLFdBQU0sR0FBVyxFQUFFLENBQUM7UUFDcEIsbUJBQWMsR0FBVyxFQUFFLENBQUM7UUFDNUIsa0JBQWEsR0FFVCxFQUFF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LEVBQUUsUUFBUSxFQUNmLElBQUksRUFBRSxNQUFNLENBQUMsS0FBSyxFQUNsQixJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksRUFDakIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLLElBQ25CLENBQUM7YUFDSjtRQUNILENBQUMsRUFBRTtRQUNILElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLEdBQUcsY0FBYyxFQUFFLEdBQUcsWUFBWSxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNwQixDQUFDOzs7WUEzSkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxtQ0FBbUM7Z0JBQzdDLCtrUkFBOEQ7O2FBRS9EOzs7WUFSUSxxQkFBcUI7WUFMNUIsZUFBZTtZQUdmLGtCQUFrQjs7O29CQWNqQixTQUFTLFNBQUMsT0FBTzsyQkFDakIsS0FBSztxQkFDTCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIEFmdGVyVmlld0luaXQsIFZpZXdDaGlsZCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFNkR3JpZENvbHVtbiwgU2RHcmlkRXh0ZXJuYWxGaWx0ZXIgfSBmcm9tICcuLi8uLi9ncmlkLm1vZGVsJztcclxuXHJcbmltcG9ydCB7XHJcbiAgU2ROb3RpZnlTZXJ2aWNlXHJcbn0gZnJvbSAnQHNkLWFuZ3VsYXIvY29yZS9ub3RpZnknO1xyXG5pbXBvcnQge1xyXG4gIFNkVHJhbnNsYXRlU2VydmljZVxyXG59IGZyb20gJ0BzZC1hbmd1bGFyL2NvcmUvdHJhbnNsYXRlJztcclxuaW1wb3J0IHsgRGV2aWNlRGV0ZWN0b3JTZXJ2aWNlIH0gZnJvbSAnbmd4LWRldmljZS1kZXRlY3Rvcic7XHJcbmltcG9ydCB7IFF1aWNrRmlsdGVyIH0gZnJvbSAnLi4vZ3JpZC1wb3B1cC1maWx0ZXIvZ3JpZC1wb3B1cC1maWx0ZXIubW9kZWwnO1xyXG5pbXBvcnQgeyBTZE1vZGFsIH0gZnJvbSAnQHNkLWFuZ3VsYXIvY29yZS9tb2RhbCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NkLWdyaWQtcG9wdXAtcXVpY2stZmlsdGVyLWRldGFpbCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2dyaWQtcG9wdXAtcXVpY2stZmlsdGVyLWRldGFpbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZ3JpZC1wb3B1cC1xdWljay1maWx0ZXItZGV0YWlsLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFNkR3JpZFBvcHVwUXVpY2tGaWx0ZXJEZXRhaWwgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xyXG4gIGRpc3BsYXlLZXkgPSAnU0RDVVNUT00nO1xyXG4gIGlzTW9iaWxlT3JUYWJsZXQgPSBmYWxzZTtcclxuICBAVmlld0NoaWxkKCdtb2RhbCcpIG1vZGFsOiBTZE1vZGFsO1xyXG4gIEBJbnB1dCgpIHF1aWNrRmlsdGVyczogUXVpY2tGaWx0ZXJbXTtcclxuICBAT3V0cHV0KCkgYWNjZXB0ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgZmllbGRzOiBGaWVsZFtdID0gW107XHJcbiAgc2VsZWN0YWJsZUZpZWxkczogRmllbGRbXSA9IFtdO1xyXG4gIGNvbHVtbnM6IFNkR3JpZENvbHVtbltdID0gW107XHJcbiAgZXh0ZXJuYWxGaWx0ZXJzOiBTZEdyaWRFeHRlcm5hbEZpbHRlcltdID0gW107XHJcbiAgZmlsdGVyOiBGaWx0ZXIgPSB7fTtcclxuICBleHRlcm5hbEZpbHRlcjogRmlsdGVyID0ge307XHJcbiAgc2VsZWN0ZWRGaWVsZDoge1xyXG4gICAgW2tleTogc3RyaW5nXTogYm9vbGVhbjtcclxuICB9ID0ge307XHJcbiAgcGFnZTogMSB8IDIgPSAxO1xyXG4gIGNvZGU6IHN0cmluZztcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIGRldmljZVNlcnZpY2U6IERldmljZURldGVjdG9yU2VydmljZSxcclxuICAgIHByaXZhdGUgbm90aWZ5U2VydmljZTogU2ROb3RpZnlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBTZFRyYW5zbGF0ZVNlcnZpY2VcclxuICApIHtcclxuICAgIHRoaXMuaXNNb2JpbGVPclRhYmxldCA9ICFkZXZpY2VTZXJ2aWNlLmlzRGVza3RvcCgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcblxyXG4gIH1cclxuXHJcbiAgb3Blbihjb2x1bW5zOiBTZEdyaWRDb2x1bW5bXSwgZXh0ZXJuYWxGaWx0ZXJzOiBTZEdyaWRFeHRlcm5hbEZpbHRlcltdLCBmaWx0ZXI/OiBGaWx0ZXIsIGV4dGVybmFsRmlsdGVyPzogRmlsdGVyLCBjb2RlPzogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmZpZWxkcyA9IFtdO1xyXG4gICAgdGhpcy5maWx0ZXIgPSB7fTtcclxuICAgIHRoaXMuZXh0ZXJuYWxGaWx0ZXIgPSB7fTtcclxuICAgIHRoaXMuY29sdW1ucyA9IGNvbHVtbnM7XHJcbiAgICB0aGlzLmV4dGVybmFsRmlsdGVycyA9IGV4dGVybmFsRmlsdGVycztcclxuICAgIHRoaXMuY29kZSA9IGNvZGU7XHJcbiAgICBpZiAoZmlsdGVyKSB7XHJcbiAgICAgIE9iamVjdC5rZXlzKGZpbHRlcikuZm9yRWFjaChrZXkgPT4ge1xyXG4gICAgICAgIGlmIChmaWx0ZXJba2V5XSA9PT0gdW5kZWZpbmVkIHx8IGZpbHRlcltrZXldID09PSBudWxsIHx8IGZpbHRlcltrZXldID09PSAnJykge1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBjb2x1bW4gPSBjb2x1bW5zLmZpbmQoZSA9PiBlLmZpZWxkID09PSBrZXkpO1xyXG4gICAgICAgIGlmICghY29sdW1uKSB7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZmlsdGVyW2tleV0gPSBmaWx0ZXJba2V5XTtcclxuICAgICAgICB0aGlzLmZpZWxkcy5wdXNoKHtcclxuICAgICAgICAgIC4uLmNvbHVtbixcclxuICAgICAgICAgIGlkOiAnY29sdW1uJyArIGNvbHVtbi5maWVsZCxcclxuICAgICAgICAgIGdyb3VwOiAnY29sdW1uJyxcclxuICAgICAgICAgIHR5cGU6IGNvbHVtbi50eXBlLFxyXG4gICAgICAgICAgY29kZTogY29sdW1uLmZpZWxkLFxyXG4gICAgICAgICAgdGl0bGU6IGNvbHVtbi50aXRsZVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGlmIChleHRlcm5hbEZpbHRlcikge1xyXG4gICAgICBPYmplY3Qua2V5cyhleHRlcm5hbEZpbHRlcikuZm9yRWFjaChrZXkgPT4ge1xyXG4gICAgICAgIGlmIChleHRlcm5hbEZpbHRlcltrZXldID09PSB1bmRlZmluZWQgfHwgZXh0ZXJuYWxGaWx0ZXJba2V5XSA9PT0gbnVsbCB8fCBleHRlcm5hbEZpbHRlcltrZXldID09PSAnJykge1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoa2V5LnN0YXJ0c1dpdGgodGhpcy5kaXNwbGF5S2V5KSkge1xyXG4gICAgICAgICAgdGhpcy5leHRlcm5hbEZpbHRlcltrZXldID0gZXh0ZXJuYWxGaWx0ZXJba2V5XTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgaXRlbSA9IGV4dGVybmFsRmlsdGVycy5maW5kKGUgPT4gZS5maWVsZCA9PT0ga2V5KTtcclxuICAgICAgICBpZiAoIWl0ZW0pIHtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGl0ZW0udHlwZSA9PT0gJ2RhdGVyYW5nZScgfHwgaXRlbS50eXBlID09PSAnbnVtYmVycmFuZ2UnKSB7XHJcbiAgICAgICAgICB0aGlzLmV4dGVybmFsRmlsdGVyW2tleV0gPSB7IC4uLmV4dGVybmFsRmlsdGVyW2tleV0gfTtcclxuICAgICAgICAgIGlmICghZXh0ZXJuYWxGaWx0ZXJba2V5XT8uZnJvbSAmJiAhZXh0ZXJuYWxGaWx0ZXJba2V5XT8udG8pIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5maWVsZHMucHVzaCh7XHJcbiAgICAgICAgICAgIC4uLml0ZW0sXHJcbiAgICAgICAgICAgIGlkOiAnZXh0ZXJuYWwnICsgaXRlbS5maWVsZCxcclxuICAgICAgICAgICAgZ3JvdXA6ICdleHRlcm5hbCcsXHJcbiAgICAgICAgICAgIHR5cGU6IGl0ZW0udHlwZSxcclxuICAgICAgICAgICAgY29kZTogaXRlbS5maWVsZCxcclxuICAgICAgICAgICAgdGl0bGU6IGl0ZW0udGl0bGUsXHJcbiAgICAgICAgICAgIGZyb21UaXRsZTogaXRlbS5mcm9tVGl0bGUsXHJcbiAgICAgICAgICAgIHRvVGl0bGU6IGl0ZW0udG9UaXRsZSxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoaXRlbS50eXBlID09PSAnZGF0ZXJhbmdlZnVsbCcpIHtcclxuICAgICAgICAgIHRoaXMuZXh0ZXJuYWxGaWx0ZXJba2V5XSA9IHsgLi4uZXh0ZXJuYWxGaWx0ZXJba2V5XSB9O1xyXG4gICAgICAgICAgaWYgKCFleHRlcm5hbEZpbHRlcltrZXldPy5mcm9tICYmICFleHRlcm5hbEZpbHRlcltrZXldPy50bykge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLmZpZWxkcy5wdXNoKHtcclxuICAgICAgICAgICAgLi4uaXRlbSxcclxuICAgICAgICAgICAgaWQ6ICdleHRlcm5hbCcgKyBpdGVtLmZpZWxkLFxyXG4gICAgICAgICAgICBncm91cDogJ2V4dGVybmFsJyxcclxuICAgICAgICAgICAgdHlwZTogaXRlbS50eXBlLFxyXG4gICAgICAgICAgICBjb2RlOiBpdGVtLmZpZWxkLFxyXG4gICAgICAgICAgICB0aXRsZTogaXRlbS50aXRsZVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuZXh0ZXJuYWxGaWx0ZXJba2V5XSA9IGV4dGVybmFsRmlsdGVyW2tleV07XHJcbiAgICAgICAgICB0aGlzLmZpZWxkcy5wdXNoKHtcclxuICAgICAgICAgICAgLi4uaXRlbSxcclxuICAgICAgICAgICAgaWQ6ICdleHRlcm5hbCcgKyBpdGVtLmZpZWxkLFxyXG4gICAgICAgICAgICBncm91cDogJ2V4dGVybmFsJyxcclxuICAgICAgICAgICAgdHlwZTogaXRlbS50eXBlLFxyXG4gICAgICAgICAgICBjb2RlOiBpdGVtLmZpZWxkLFxyXG4gICAgICAgICAgICB0aXRsZTogaXRlbS50aXRsZVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGNvbnN0IGV4dGVybmFsRmllbGRzOiBGaWVsZFtdID0gZXh0ZXJuYWxGaWx0ZXJzPy5tYXAoZSA9PiAoe1xyXG4gICAgICAuLi5lLFxyXG4gICAgICBpZDogJ2V4dGVybmFsJyArIGUuZmllbGQsXHJcbiAgICAgIGdyb3VwOiAnZXh0ZXJuYWwnLFxyXG4gICAgICBjb2RlOiBlLmZpZWxkLFxyXG4gICAgICB0eXBlOiBlLnR5cGUsXHJcbiAgICAgIHRpdGxlOiBlLnRpdGxlXHJcbiAgICB9KSkgfHwgW107XHJcbiAgICBjb25zdCBjb2x1bW5GaWVsZHM6IEZpZWxkW10gPSBbXTtcclxuICAgIGNvbHVtbnM/LmZpbHRlcihlID0+IGUudHlwZSAhPT0gJ2ltYWdlJykuZm9yRWFjaChjb2x1bW4gPT4ge1xyXG4gICAgICBpZiAoJ2NoaWxkcmVuJyBpbiBjb2x1bW4pIHtcclxuICAgICAgICBjb2x1bW4uY2hpbGRyZW4/LmZpbHRlcihlID0+IGUudHlwZSAhPT0gJ2ltYWdlJykuZm9yRWFjaChlID0+IHtcclxuICAgICAgICAgIGNvbHVtbkZpZWxkcy5wdXNoKHtcclxuICAgICAgICAgICAgLi4uZSxcclxuICAgICAgICAgICAgaWQ6ICdjb2x1bW4nICsgZS5maWVsZCxcclxuICAgICAgICAgICAgZ3JvdXA6ICdjb2x1bW4nLFxyXG4gICAgICAgICAgICBjb2RlOiBlLmZpZWxkLFxyXG4gICAgICAgICAgICB0eXBlOiBlLnR5cGUsXHJcbiAgICAgICAgICAgIHRpdGxlOiBlLnRpdGxlXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb2x1bW5GaWVsZHMucHVzaCh7XHJcbiAgICAgICAgICAuLi5jb2x1bW4sXHJcbiAgICAgICAgICBpZDogJ2NvbHVtbicgKyBjb2x1bW4uZmllbGQsXHJcbiAgICAgICAgICBncm91cDogJ2NvbHVtbicsXHJcbiAgICAgICAgICBjb2RlOiBjb2x1bW4uZmllbGQsXHJcbiAgICAgICAgICB0eXBlOiBjb2x1bW4udHlwZSxcclxuICAgICAgICAgIHRpdGxlOiBjb2x1bW4udGl0bGVcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLnNlbGVjdGFibGVGaWVsZHMgPSBbLi4uZXh0ZXJuYWxGaWVsZHMsIC4uLmNvbHVtbkZpZWxkc107XHJcbiAgICB0aGlzLnNlbGVjdGVkRmllbGQgPSB7fTtcclxuICAgIHRoaXMuZmllbGRzLmZvckVhY2goZSA9PiB0aGlzLnNlbGVjdGVkRmllbGRbZS5pZF0gPSB0cnVlKTtcclxuICAgIHRoaXMucGFnZSA9IHRoaXMuZmllbGRzLmxlbmd0aCA+IDAgPyAyIDogMTtcclxuICAgIHRoaXMubW9kYWwub3BlbigpO1xyXG4gIH1cclxuXHJcbiAgb25BY2NlcHQgPSAoKSA9PiB7XHJcbiAgICBjb25zdCBleGVjdXRlID0gKCkgPT4ge1xyXG4gICAgICBjb25zdCBmaWx0ZXIgPSB7fTtcclxuICAgICAgY29uc3QgZXh0ZXJuYWxGaWx0ZXIgPSB7fTtcclxuICAgICAgT2JqZWN0LmtleXModGhpcy5maWx0ZXIpLmZvckVhY2goa2V5ID0+IHtcclxuICAgICAgICBpZiAodGhpcy5maWx0ZXJba2V5XSA9PT0gdW5kZWZpbmVkIHx8IHRoaXMuZmlsdGVyW2tleV0gPT09IG51bGwgfHwgdGhpcy5maWx0ZXJba2V5XSA9PT0gJycpIHtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCF0aGlzLmZpZWxkcy5zb21lKGUgPT4gZS5ncm91cCA9PT0gJ2NvbHVtbicgJiYgZS5jb2RlID09PSBrZXkpKSB7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZpbHRlcltrZXldID0gdGhpcy5maWx0ZXJba2V5XTtcclxuICAgICAgfSk7XHJcbiAgICAgIE9iamVjdC5rZXlzKHRoaXMuZXh0ZXJuYWxGaWx0ZXIpLmZvckVhY2goa2V5ID0+IHtcclxuICAgICAgICBpZiAodGhpcy5leHRlcm5hbEZpbHRlcltrZXldID09PSB1bmRlZmluZWQgfHwgdGhpcy5leHRlcm5hbEZpbHRlcltrZXldID09PSBudWxsIHx8IHRoaXMuZXh0ZXJuYWxGaWx0ZXJba2V5XSA9PT0gJycpIHtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgZXh0ZXJuYWxGaWx0ZXJba2V5XSA9IHRoaXMuZXh0ZXJuYWxGaWx0ZXJba2V5XTtcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuYWNjZXB0LmVtaXQoe1xyXG4gICAgICAgIGNvZGU6IHRoaXMuY29kZSxcclxuICAgICAgICBmaWx0ZXIsXHJcbiAgICAgICAgZXh0ZXJuYWxGaWx0ZXJcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMubW9kYWwuY2xvc2UoKTtcclxuICAgIH07XHJcbiAgICBpZiAoIXRoaXMuY29kZSkge1xyXG4gICAgICB0aGlzLm5vdGlmeVNlcnZpY2UuY29uZmlybVdpdGhJbnB1dCgnRW50ZXIgeW91ciBxdWljayBmaWx0ZXIgbmFtZScpLnRoZW4oKHZhbHVlOiBzdHJpbmcpID0+IHtcclxuICAgICAgICBpZiAodmFsdWUpIHtcclxuICAgICAgICAgIGlmICh0aGlzLnF1aWNrRmlsdGVycz8uc29tZShlID0+IGUuY29kZSA9PT0gdmFsdWUpKSB7XHJcbiAgICAgICAgICAgIHRoaXMubm90aWZ5U2VydmljZS5ub3RpZnkud2FybmluZyh0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudHJhbnNsYXRlKCdDb2RlIGlzIGV4aXN0ZWQnKSk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuY29kZSA9IHZhbHVlO1xyXG4gICAgICAgICAgZXhlY3V0ZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBleGVjdXRlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkNhbmNlbCA9ICgpID0+IHtcclxuICAgIHRoaXMubW9kYWwuY2xvc2UoKTtcclxuICB9XHJcblxyXG4gIG9uU2VsZWN0RmllbGQgPSAodmFsdWVzOiBzdHJpbmdbXSkgPT4ge1xyXG4gICAgdGhpcy5maWVsZHMgPSB0aGlzLnNlbGVjdGFibGVGaWVsZHMuZmlsdGVyKGUgPT4gdmFsdWVzLnNvbWUodiA9PiBlLmNvZGUgPT09IHYpKTtcclxuICAgIGZvciAoY29uc3QgZmllbGQgb2YgdGhpcy5maWVsZHMpIHtcclxuICAgICAgaWYgKGZpZWxkLmdyb3VwID09PSAnZXh0ZXJuYWwnICYmIGZpZWxkLnR5cGUuaW5jbHVkZXMoJ3JhbmdlJykpIHtcclxuICAgICAgICB0aGlzLmV4dGVybmFsRmlsdGVyW2ZpZWxkLmNvZGVdID0gdGhpcy5leHRlcm5hbEZpbHRlcltmaWVsZC5jb2RlXSB8fCB7fTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25TZWxlY3RGaWVsZHMgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmZpZWxkcyA9IHRoaXMuc2VsZWN0YWJsZUZpZWxkcy5maWx0ZXIoZSA9PiB0aGlzLnNlbGVjdGVkRmllbGRbZS5pZF0pO1xyXG4gICAgZm9yIChjb25zdCBmaWVsZCBvZiB0aGlzLmZpZWxkcykge1xyXG4gICAgICBpZiAoZmllbGQuZ3JvdXAgPT09ICdleHRlcm5hbCcgJiYgZmllbGQudHlwZS5pbmNsdWRlcygncmFuZ2UnKSkge1xyXG4gICAgICAgIHRoaXMuZXh0ZXJuYWxGaWx0ZXJbZmllbGQuY29kZV0gPSB0aGlzLmV4dGVybmFsRmlsdGVyW2ZpZWxkLmNvZGVdIHx8IHt9O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5pbnRlcmZhY2UgRmllbGQge1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgZ3JvdXA6ICdjb2x1bW4nIHwgJ2V4dGVybmFsJztcclxuICB0eXBlOiBzdHJpbmc7XHJcbiAgY29kZTogc3RyaW5nO1xyXG4gIHRpdGxlPzogc3RyaW5nO1xyXG4gIGZyb21UaXRsZT86IHN0cmluZztcclxuICB0b1RpdGxlPzogc3RyaW5nO1xyXG4gIFtrZXk6IHN0cmluZ106IGFueTtcclxufVxyXG5cclxuaW50ZXJmYWNlIEZpbHRlciB7XHJcbiAgW2ZpZWxkOiBzdHJpbmddOiBhbnk7XHJcbn1cclxuIl19
|
|
@@ -22,7 +22,7 @@ export class SdColumnInlineFilter {
|
|
|
22
22
|
SdColumnInlineFilter.decorators = [
|
|
23
23
|
{ type: Component, args: [{
|
|
24
24
|
selector: 'sd-column-inline-filter',
|
|
25
|
-
template: "<div class=\"c-inline-column\">\r\n <ng-container *ngIf=\"\r\n column.type === 'string' ||\r\n column.type === 'number' ||\r\n column.type === 'bool' ||\r\n column.type === 'values' ||\r\n column.type === 'date' ||\r\n column.type === 'datetime' ||\r\n column.type === 'time';\r\n else noFilter\">\r\n <sd-input *ngIf=\"column.type === 'string'\" size=\"sm\" type=\"text\" [(model)]=\"columnFilter[column.field]\"\r\n (keyupEnter)=\"onFilterChange()\" [disabled]=\"column.filter?.disabled\">\r\n </sd-input>\r\n <sd-input *ngIf=\"column.type === 'number'\" size=\"sm\"
|
|
25
|
+
template: "<div class=\"c-inline-column\">\r\n <ng-container *ngIf=\"\r\n column.type === 'string' ||\r\n column.type === 'number' ||\r\n column.type === 'bool' ||\r\n column.type === 'values' ||\r\n column.type === 'date' ||\r\n column.type === 'datetime' ||\r\n column.type === 'time';\r\n else noFilter\">\r\n <sd-input *ngIf=\"column.type === 'string'\" size=\"sm\" type=\"text\" [(model)]=\"columnFilter[column.field]\"\r\n (keyupEnter)=\"onFilterChange()\" [disabled]=\"column.filter?.disabled\">\r\n </sd-input>\r\n <sd-input-number *ngIf=\"column.type === 'number'\" size=\"sm\" [(model)]=\"columnFilter[column.field]\"\r\n (keyupEnter)=\"onFilterChange()\" [disabled]=\"column.filter?.disabled\">\r\n </sd-input-number>\r\n <sd-select *ngIf=\"column.type === 'bool'\" size=\"sm\" [items]=\"[\r\n { value: '1', display: column.option?.displayOnTrue || 'True' },\r\n { value: '0', display: column.option?.displayOnFalse || 'False' }\r\n ]\" valueField=\"value\" displayField=\"display\" [(model)]=\"columnFilter[column.field]\" (sdChange)=\"onFilterChange()\"\r\n [disabled]=\"column.filter?.disabled\">\r\n <ng-template sdSelectDisplayDef let-item=\"item\">\r\n <sd-badge *ngIf=\"item.value === '1'\" color=\"success\" [title]=\"column.option?.displayOnTrue || 'True'\">\r\n </sd-badge>\r\n <sd-badge *ngIf=\"item.value === '0'\" color=\"danger\" [title]=\"column.option?.displayOnFalse || 'False'\">\r\n </sd-badge>\r\n </ng-template>\r\n </sd-select>\r\n <sd-select *ngIf=\"\r\n column.type === 'values' && column?.option?.selection !== 'AUTOCOMPLETE'\r\n \" size=\"sm\" [items]=\"column.option.items\" [valueField]=\"column.option.valueField\"\r\n [displayField]=\"column.option.displayField\" [(model)]=\"columnFilter[column.field]\" (sdChange)=\"onFilterChange()\"\r\n [disabled]=\"column.filter?.disabled\" [multiple]=\"\r\n column?.option?.selection === 'MULTIPLE' ||\r\n column?.option?.selection === 'MULTIPLEAUTOCOMPLETE'\r\n \" [filtered]=\"column?.option?.selection === 'MULTIPLEAUTOCOMPLETE'\">\r\n </sd-select>\r\n <sd-autocomplete *ngIf=\"\r\n column.type === 'values' && column?.option?.selection === 'AUTOCOMPLETE'\r\n \" size=\"sm\" [items]=\"column.option.items\" [valueField]=\"column.option.valueField\"\r\n [displayField]=\"column.option.displayField\" [(model)]=\"columnFilter[column.field]\" (sdChange)=\"onFilterChange()\"\r\n [disabled]=\"column.filter?.disabled\">\r\n </sd-autocomplete>\r\n <ng-container *ngIf=\"column.type === 'date' || column.type === 'datetime' || column.type === 'time'\">\r\n <sd-date-range *ngIf=\"!column.option?.useFilterDate\" size=\"sm\" [(from)]=\"columnFilter[column.field].from\"\r\n [(to)]=\"columnFilter[column.field].to\" (sdChange)=\"onFilterChange()\" [disabled]=\"column.filter?.disabled\">\r\n </sd-date-range>\r\n <sd-date-time *ngIf=\"column.option?.useFilterDate\" size=\"sm\" [(model)]=\"columnFilter[column.field]\"\r\n (sdChange)=\"onFilterChange()\" [disabled]=\"column.filter?.disabled\">\r\n </sd-date-time>\r\n </ng-container>\r\n </ng-container>\r\n <ng-template #noFilter>\r\n <sd-input type=\"text\" size=\"sm\" disabled> </sd-input>\r\n </ng-template>\r\n</div>",
|
|
26
26
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
27
27
|
styles: [":host ::ng-deep .c-inline-column .mat-form-field-wrapper{background-color:#fff;border-radius:8px;margin:8px 0 0!important;padding:0!important}"]
|
|
28
28
|
},] }
|
|
@@ -34,4 +34,4 @@ SdColumnInlineFilter.propDecorators = {
|
|
|
34
34
|
column: [{ type: Input }],
|
|
35
35
|
filterChange: [{ type: Output }]
|
|
36
36
|
};
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLWlubGluZS1maWx0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IkM6L1VzZXJzL25naGlhdHQxNV9vbmVtb3VudC9Eb2N1bWVudHMvbGliLWNvcmUtdWkvcHJvamVjdHMvc2QtY29yZS9ncmlkLW1hdGVyaWFsLyIsInNvdXJjZXMiOlsic3JjL2xpYi9jb21wb25lbnRzL2NvbHVtbi1pbmxpbmUtZmlsdGVyL2NvbHVtbi1pbmxpbmUtZmlsdGVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBU25ILE1BQU0sT0FBTyxvQkFBb0I7SUFPL0I7UUFMUyxpQkFBWSxHQUVqQixFQUFFLENBQUM7UUFFRyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFlNUMsbUJBQWMsR0FBRyxHQUFHLEVBQUU7WUFDcEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMzQixDQUFDLENBQUE7SUFmRyxDQUFDO0lBRUwsUUFBUTs7UUFDTixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssVUFBVSxFQUFFO1lBQ2pHLElBQUksY0FBQyxJQUFJLENBQUMsTUFBTSwwQ0FBRSxNQUFNLDBDQUFFLGFBQWEsQ0FBQSxFQUFFO2dCQUN2QyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJO29CQUM3RSxJQUFJLEVBQUUsSUFBSTtvQkFDVixFQUFFLEVBQUUsSUFBSTtpQkFDVCxDQUFDO2FBQ0g7U0FDRjtJQUNILENBQUM7OztZQXpCRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHlCQUF5QjtnQkFDbkMsMHlHQUFvRDtnQkFFcEQsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07O2FBQ2hEOzs7O29CQUVFLEtBQUs7MkJBQ0wsS0FBSztxQkFHTCxLQUFLOzJCQUNMLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgUXVlcnlMaXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFNkR3JpZE1hdGVyaWFsQ29sdW1uIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2dyaWQtY29sdW1uLm1vZGVsJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2QtY29sdW1uLWlubGluZS1maWx0ZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb2x1bW4taW5saW5lLWZpbHRlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY29sdW1uLWlubGluZS1maWx0ZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2RDb2x1bW5JbmxpbmVGaWx0ZXIgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpIHZhbHVlOiBhbnk7XHJcbiAgQElucHV0KCkgY29sdW1uRmlsdGVyOiB7XHJcbiAgICBba2V5OiBzdHJpbmddOiBhbnlcclxuICB9ID0ge307XHJcbiAgQElucHV0KCkgY29sdW1uOiBTZEdyaWRNYXRlcmlhbENvbHVtbjtcclxuICBAT3V0cHV0KCkgZmlsdGVyQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYgKHRoaXMuY29sdW1uLnR5cGUgPT09ICdkYXRlJyB8fCB0aGlzLmNvbHVtbi50eXBlID09PSAndGltZScgfHwgdGhpcy5jb2x1bW4udHlwZSA9PT0gJ2RhdGV0aW1lJykge1xyXG4gICAgICBpZiAoIXRoaXMuY29sdW1uPy5vcHRpb24/LnVzZUZpbHRlckRhdGUpIHtcclxuICAgICAgICB0aGlzLmNvbHVtbkZpbHRlclt0aGlzLmNvbHVtbi5maWVsZF0gPSB0aGlzLmNvbHVtbkZpbHRlclt0aGlzLmNvbHVtbi5maWVsZF0gfHwge1xyXG4gICAgICAgICAgZnJvbTogbnVsbCxcclxuICAgICAgICAgIHRvOiBudWxsXHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25GaWx0ZXJDaGFuZ2UgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmZpbHRlckNoYW5nZS5lbWl0KCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -79,7 +79,7 @@ _subscription = new WeakMap();
|
|
|
79
79
|
SdDynamicColumn.decorators = [
|
|
80
80
|
{ type: Component, args: [{
|
|
81
81
|
selector: 'sd-dynamic-column',
|
|
82
|
-
template: "<sd-side-drawer width=\"400px\">\r\n <div sdTitle>{{'Manage dynamic column' | sdTranslate}}</div>\r\n <ng-container sdBody>\r\n <ng-container *ngIf=\"!isDetail\">\r\n <ng-container *ngIf=\"systemColumns\">\r\n <div *ngFor=\"let column of systemColumns\" (click)=\"onDetail(column)\">\r\n {{column.title}}\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"columns\">\r\n <div *ngFor=\"let column of columns\" (click)=\"onDetail(column)\">\r\n {{column.title}}\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"isDetail\">\r\n <sd-select [form]=\"form\" [label]=\"'Apply for' | sdTranslate\" [(model)]=\"detail.isSystem\"\r\n [items]=\"[{code: true, name: 'All users'},{code: false, name: 'Only me'}]\" [disabled]=\"!!detail.id\" required></sd-select>\r\n <sd-input [form]=\"form\" [label]=\"'Column field' | sdTranslate\" [(model)]=\"detail.field\" [disabled]=\"!!detail.id\"\r\n required></sd-input>\r\n <sd-input [form]=\"form\" [label]=\"'Column title' | sdTranslate\" [(model)]=\"detail.title\" required></sd-input>\r\n <sd-input [form]=\"form\" [label]=\"'Column width' | sdTranslate\" [(model)]=\"detail.width\"
|
|
82
|
+
template: "<sd-side-drawer width=\"400px\">\r\n <div sdTitle>{{'Manage dynamic column' | sdTranslate}}</div>\r\n <ng-container sdBody>\r\n <ng-container *ngIf=\"!isDetail\">\r\n <ng-container *ngIf=\"systemColumns\">\r\n <div *ngFor=\"let column of systemColumns\" (click)=\"onDetail(column)\">\r\n {{column.title}}\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"columns\">\r\n <div *ngFor=\"let column of columns\" (click)=\"onDetail(column)\">\r\n {{column.title}}\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"isDetail\">\r\n <sd-select [form]=\"form\" [label]=\"'Apply for' | sdTranslate\" [(model)]=\"detail.isSystem\"\r\n [items]=\"[{code: true, name: 'All users'},{code: false, name: 'Only me'}]\" [disabled]=\"!!detail.id\" required></sd-select>\r\n <sd-input [form]=\"form\" [label]=\"'Column field' | sdTranslate\" [(model)]=\"detail.field\" [disabled]=\"!!detail.id\"\r\n required></sd-input>\r\n <sd-input [form]=\"form\" [label]=\"'Column title' | sdTranslate\" [(model)]=\"detail.title\" required></sd-input>\r\n <sd-input-number [form]=\"form\" [label]=\"'Column width' | sdTranslate\" [(model)]=\"detail.width\" required>\r\n <ng-template sdInputSuffix>px</ng-template>\r\n </sd-input-number>\r\n <sd-select [form]=\"form\" [label]=\"'Column type' | sdTranslate\" [(model)]=\"detail.type\" [items]=\"columnTypes\"\r\n [disabled]=\"!!detail.id\" required></sd-select>\r\n <sd-select *ngIf=\"detail.type === 'children' || detail.type === 'children-col'\" [form]=\"form\"\r\n [label]=\"'Column fields' | sdTranslate\" [(model)]=\"detail.fields\" [items]=\"originColumns\" valueField=\"field\"\r\n displayField=\"title\" multiple></sd-select>\r\n <sd-select [form]=\"form\" [label]=\"'Use template' | sdTranslate\" [(model)]=\"detail.useTemplate\"\r\n [items]=\"[{code: true, name: 'Yes'},{code: false, name: 'No'}]\" required></sd-select>\r\n <sd-editor *ngIf=\"detail.useTemplate\" [form]=\"form\" [label]=\"'Html template' | sdTranslate\" [(model)]=\"detail.template\">\r\n </sd-editor>\r\n </ng-container>\r\n </ng-container>\r\n <div class=\"d-flex align-items-center justify-content-end\" sdFooter>\r\n <sd-button [title]=\"'Close' | sdTranslate\" (action)=\"sideDrawer.close()\"> </sd-button>\r\n <sd-button *ngIf=\"!isDetail\" [title]=\"'Create column' | sdTranslate\" color=\"primary\" class=\"mx-8\"\r\n (action)=\"onDetail()\">\r\n </sd-button>\r\n <sd-button *ngIf=\"isDetail\" [title]=\"'Save' | sdTranslate\" color=\"success\" class=\"mx-8\" (action)=\"onSave()\">\r\n </sd-button>\r\n </div>\r\n</sd-side-drawer>",
|
|
83
83
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
84
84
|
styles: [".c-table{overflow:auto;position:relative}.c-table table{width:100%}.c-table .c-th{color:#000;font-size:14px;font-weight:500;line-height:20px}.c-container{min-height:200px;position:relative}.c-handle{color:#ccc;cursor:move}"]
|
|
85
85
|
},] }
|
|
@@ -95,4 +95,4 @@ SdDynamicColumn.propDecorators = {
|
|
|
95
95
|
sideDrawer: [{ type: ViewChild, args: [SdSideDrawer,] }],
|
|
96
96
|
gridOption: [{ type: Input }]
|
|
97
97
|
};
|
|
98
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1jb2x1bW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IkM6L1VzZXJzL25naGlhdHQxNV9vbmVtb3VudC9Eb2N1bWVudHMvbGliLWNvcmUtdWkvcHJvamVjdHMvc2QtY29yZS9ncmlkLW1hdGVyaWFsLyIsInNvdXJjZXMiOlsic3JjL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtY29sdW1uL2R5bmFtaWMtY29sdW1uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLEtBQUssRUFBRSx1QkFBdUIsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUMzSCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFaEUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDdkYsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFDN0IsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDcEcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVwQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBUzVELE1BQU0sT0FBTyxlQUFlO0lBVzFCLFlBQ1UsR0FBc0IsRUFDdEIsc0JBQWdELEVBQ2hELGFBQThCLEVBQzlCLGdCQUFvQyxFQUNwQyx3QkFBb0Q7UUFKcEQsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUEwQjtRQUNoRCxrQkFBYSxHQUFiLGFBQWEsQ0FBaUI7UUFDOUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFvQjtRQUNwQyw2QkFBd0IsR0FBeEIs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U0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUMzRCxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztZQUN6QixDQUFDLENBQUMsRUFBRTtTQUNMO1FBQ0QsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLFVBQVUsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLGNBQWMsQ0FBQyxDQUFDO0lBQy9HLENBQUM7SUFFRCxXQUFXO1FBQ1QsNENBQW1CLFdBQVcsRUFBRSxDQUFDO0lBQ25DLENBQUM7Ozs7WUEzQ0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxtQkFBbUI7Z0JBQzdCLCt0RkFBOEM7Z0JBRTlDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNOzthQUNoRDs7O1lBbEJzQyxpQkFBaUI7WUFNL0Msd0JBQXdCO1lBTHhCLGVBQWU7WUFDZixrQkFBa0I7WUFFbEIsMEJBQTBCOzs7eUJBZ0JoQyxTQUFTLFNBQUMsWUFBWTt5QkFDdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBWaWV3Q2hpbGQsIENoYW5nZURldGVjdG9yUmVmLCBJbnB1dCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTZE5vdGlmeVNlcnZpY2UgfSBmcm9tICdAc2QtYW5ndWxhci9jb3JlL25vdGlmeSc7XHJcbmltcG9ydCB7IFNkVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BzZC1hbmd1bGFyL2NvcmUvdHJhbnNsYXRlJztcclxuaW1wb3J0IHsgU2RHcmlkTWF0ZXJpYWxPcHRpb24gfSBmcm9tICcuLi8uLi9tb2RlbHMvZ3JpZC1vcHRpb24ubW9kZWwnO1xyXG5pbXBvcnQgeyBTZEdyaWRDb25maWd1cmF0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2dyaWQtY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0ICogYXMgdXVpZCBmcm9tICd1dWlkJztcclxuaW1wb3J0IHsgU2RHZW5lcmF0ZWRDb2x1bW5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZ2VuZXJhdGVkLWNvbHVtbi9nZW5lcmF0ZWQtY29sdW1uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgU2RHZW5lcmF0ZWRDb2x1bW4gfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9nZW5lcmF0ZWQtY29sdW1uL2dlbmVyYXRlZC1jb2x1bW4ubW9kZWwnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFNkU2lkZURyYXdlciB9IGZyb20gJ0BzZC1hbmd1bGFyL2NvcmUvc2lkZS1kcmF3ZXInO1xyXG5pbXBvcnQgeyBTZEdyaWRNYXRlcmlhbENvbHVtbiB9IGZyb20gJy4uLy4uL21vZGVscy9ncmlkLWNvbHVtbi5tb2RlbCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NkLWR5bmFtaWMtY29sdW1uJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZHluYW1pYy1jb2x1bW4uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2R5bmFtaWMtY29sdW1uLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFNkRHluYW1pY0NvbHVtbiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBAVmlld0NoaWxkKFNkU2lkZURyYXdlcikgc2lkZURyYXdlcjogU2RTaWRlRHJhd2VyO1xyXG4gIEBJbnB1dCgpIGdyaWRPcHRpb246IFNkR3JpZE1hdGVyaWFsT3B0aW9uO1xyXG4gIHN5c3RlbUNvbHVtbnM6IFNkR2VuZXJhdGVkQ29sdW1uW107XHJcbiAgY29sdW1uczogU2RHZW5lcmF0ZWRDb2x1bW5bXTtcclxuICAjc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xyXG4gIGNvbHVtblR5cGVzID0gWydzdHJpbmcnLCAnbnVtYmVyJywgJ2Jvb2wnLCAnZGF0ZScsICdkYXRldGltZScsICd0aW1lJywgJ3ZhbHVlcycsICdjaGlsZHJlbicsICdjaGlsZHJlbi1jb2wnXTtcclxuICBmb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgaXNEZXRhaWwgPSBmYWxzZTtcclxuICBkZXRhaWw6IFNkR2VuZXJhdGVkQ29sdW1uO1xyXG4gIG9yaWdpbkNvbHVtbnM6IFNkR3JpZE1hdGVyaWFsQ29sdW1uW10gPSBbXTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgZ2VuZXJhdGVkQ29sdW1uU2VydmljZTogU2RHZW5lcmF0ZWRDb2x1bW5TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBub3RpZnlTZXJ2aWNlOiBTZE5vdGlmeVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFNkVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgZ3JpZENvbmZpZ3VyYXRpb25TZXJ2aWNlOiBTZEdyaWRDb25maWd1cmF0aW9uU2VydmljZSkge1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBjb25zdCBzeXN0ZW1TZXR0aW5nID0gdGhpcy5nZW5lcmF0ZWRDb2x1bW5TZXJ2aWNlLmxvYWRTeXN0ZW0odGhpcy5ncmlkT3B0aW9uLmNvbmZpZyk7XHJcbiAgICBjb25zdCBzZXR0aW5nID0gdGhpcy5nZW5lcmF0ZWRDb2x1bW5TZXJ2aWNlLmxvYWQodGhpcy5ncmlkT3B0aW9uPy5jb25maWcpO1xyXG4gICAgaWYgKHN5c3RlbVNldHRpbmcpIHtcclxuICAgICAgdGhpcy4jc3Vic2NyaXB0aW9uPy5hZGQoc3lzdGVtU2V0dGluZy5vYnNlcnZlci5zdWJzY3JpYmUoY29sdW1ucyA9PiB7XHJcbiAgICAgICAgdGhpcy5zeXN0ZW1Db2x1bW5zID0gY29sdW1ucztcclxuICAgICAgfSkpO1xyXG4gICAgfVxyXG4gICAgaWYgKHNldHRpbmcpIHtcclxuICAgICAgdGhpcy4jc3Vic2NyaXB0aW9uPy5hZGQoc2V0dGluZy5vYnNlcnZlci5zdWJzY3JpYmUoY29sdW1ucyA9PiB7XHJcbiAgICAgICAgdGhpcy5jb2x1bW5zID0gY29sdW1ucztcclxuICAgICAgfSkpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5vcmlnaW5Db2x1bW5zID0gdGhpcy5ncmlkT3B0aW9uLmNvbHVtbnMuZmlsdGVyKGUgPT4gZS50eXBlICE9PSAnY2hpbGRyZW4nICYmIGUudHlwZSAhPT0gJ2NoaWxkcmVuLWNvbCcpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLiNzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIG9uRGV0YWlsID0gKGNvbHVtbj86IFNkR2VuZXJhdGVkQ29sdW1uKSA9PiB7XHJcbiAgICB0aGlzLmRldGFpbCA9IGNvbHVtbiB8fCB7XHJcbiAgICAgIGZpZWxkOiB1dWlkLnY0KCksXHJcbiAgICAgIHRpdGxlOiAnJyxcclxuICAgICAgdHlwZTogJ3N0cmluZycsXHJcbiAgICAgIGlzU3lzdGVtOiBmYWxzZSxcclxuICAgICAgdXNlVGVtcGxhdGU6IGZhbHNlXHJcbiAgICB9O1xyXG4gICAgdGhpcy5mb3JtLm1hcmtBc1VudG91Y2hlZCgpO1xyXG4gICAgdGhpcy5mb3JtLm1hcmtBc1ByaXN0aW5lKCk7XHJcbiAgICB0aGlzLmlzRGV0YWlsID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIG9uU2F2ZSA9ICgpID0+IHtcclxuICAgIGNvbnN0IHN5c3RlbVNldHRpbmcgPSB0aGlzLmdlbmVyYXRlZENvbHVtblNlcnZpY2UubG9hZFN5c3RlbSh0aGlzLmdyaWRPcHRpb24uY29uZmlnKTtcclxuICAgIGNvbnN0IHNldHRpbmcgPSB0aGlzLmdlbmVyYXRlZENvbHVtblNlcnZpY2UubG9hZCh0aGlzLmdyaWRPcHRpb24/LmNvbmZpZyk7XHJcbiAgICBpZiAodGhpcy5kZXRhaWwuaXNTeXN0ZW0pIHtcclxuICAgICAgaWYgKCF0aGlzLmRldGFpbC5pZCkge1xyXG4gICAgICAgIHN5c3RlbVNldHRpbmcuc2V0KFsuLi50aGlzLnN5c3RlbUNvbHVtbnMsIHtcclxuICAgICAgICAgIC4uLnRoaXMuZGV0YWlsLFxyXG4gICAgICAgICAgaWQ6IHV1aWQudjQoKVxyXG4gICAgICAgIH1dKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBzeXN0ZW1TZXR0aW5nLnNldChbLi4udGhpcy5zeXN0ZW1Db2x1bW5zXSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICghdGhpcy5kZXRhaWwuaWQpIHtcclxuICAgICAgICBzZXR0aW5nLnNldChbLi4udGhpcy5jb2x1bW5zLCB7XHJcbiAgICAgICAgICAuLi50aGlzLmRldGFpbCxcclxuICAgICAgICAgIGlkOiB1dWlkLnY0KClcclxuICAgICAgICB9XSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgc2V0dGluZy5zZXQoWy4uLnRoaXMuY29sdW1uc10pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|