@ng-matero/extensions 15.6.3 → 15.6.5
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/esm2020/alert/alert-module.mjs +5 -5
- package/esm2020/alert/alert.mjs +4 -4
- package/esm2020/button/button-loading.mjs +4 -4
- package/esm2020/button/button-module.mjs +5 -5
- package/esm2020/checkbox-group/checkbox-group-module.mjs +5 -5
- package/esm2020/checkbox-group/checkbox-group.mjs +6 -4
- package/esm2020/colorpicker/colorpicker-input.mjs +4 -4
- package/esm2020/colorpicker/colorpicker-module.mjs +5 -5
- package/esm2020/colorpicker/colorpicker-toggle.mjs +7 -7
- package/esm2020/colorpicker/colorpicker.mjs +7 -7
- package/esm2020/column-resize/column-resize-directives/column-resize-flex.mjs +4 -4
- package/esm2020/column-resize/column-resize-directives/column-resize.mjs +4 -4
- package/esm2020/column-resize/column-resize-module.mjs +5 -5
- package/esm2020/column-resize/column-resize-notifier.mjs +7 -7
- package/esm2020/column-resize/column-resize.mjs +4 -4
- package/esm2020/column-resize/column-size-store.mjs +4 -4
- package/esm2020/column-resize/event-dispatcher.mjs +4 -4
- package/esm2020/column-resize/overlay-handle.mjs +4 -4
- package/esm2020/column-resize/resizable.mjs +4 -4
- package/esm2020/column-resize/resize-strategy.mjs +10 -10
- package/esm2020/core/datetime/datetime.module.mjs +9 -9
- package/esm2020/core/datetime/native-datetime-adapter.mjs +4 -4
- package/esm2020/core/pipes/is-template-ref.pipe.mjs +4 -4
- package/esm2020/core/pipes/pipes.module.mjs +5 -5
- package/esm2020/core/pipes/to-observable.pipe.mjs +4 -4
- package/esm2020/datetimepicker/calendar-body.mjs +4 -4
- package/esm2020/datetimepicker/calendar.mjs +4 -4
- package/esm2020/datetimepicker/clock.mjs +4 -4
- package/esm2020/datetimepicker/datetimepicker-input.mjs +4 -4
- package/esm2020/datetimepicker/datetimepicker-intl.mjs +4 -4
- package/esm2020/datetimepicker/datetimepicker-module.mjs +5 -5
- package/esm2020/datetimepicker/datetimepicker-toggle.mjs +7 -7
- package/esm2020/datetimepicker/datetimepicker.mjs +7 -7
- package/esm2020/datetimepicker/month-view.mjs +4 -4
- package/esm2020/datetimepicker/multi-year-view.mjs +4 -4
- package/esm2020/datetimepicker/time.mjs +8 -8
- package/esm2020/datetimepicker/year-view.mjs +4 -4
- package/esm2020/dialog/dialog-container.mjs +4 -4
- package/esm2020/dialog/dialog-module.mjs +5 -5
- package/esm2020/dialog/dialog.mjs +4 -4
- package/esm2020/drawer/drawer-container.mjs +4 -4
- package/esm2020/drawer/drawer-module.mjs +5 -5
- package/esm2020/drawer/drawer.mjs +4 -4
- package/esm2020/grid/cell.mjs +4 -4
- package/esm2020/grid/column-menu.mjs +4 -4
- package/esm2020/grid/column-resize/column-resize-directives/column-resize-flex.mjs +4 -4
- package/esm2020/grid/column-resize/column-resize-directives/column-resize.mjs +4 -4
- package/esm2020/grid/column-resize/column-resize-module.mjs +9 -9
- package/esm2020/grid/column-resize/overlay-handle.mjs +4 -4
- package/esm2020/grid/column-resize/resizable-directives/resizable.mjs +4 -4
- package/esm2020/grid/column-resize/resize-strategy.mjs +4 -4
- package/esm2020/grid/expansion-toggle.mjs +4 -4
- package/esm2020/grid/grid-module.mjs +5 -5
- package/esm2020/grid/grid-pipes.mjs +22 -22
- package/esm2020/grid/grid-utils.mjs +4 -4
- package/esm2020/grid/grid.mjs +10 -17
- package/esm2020/loader/loader-module.mjs +5 -5
- package/esm2020/loader/loader.mjs +4 -4
- package/esm2020/popover/popover-content.mjs +7 -7
- package/esm2020/popover/popover-module.mjs +5 -5
- package/esm2020/popover/popover-target.mjs +4 -4
- package/esm2020/popover/popover-trigger.mjs +11 -7
- package/esm2020/popover/popover.mjs +15 -9
- package/esm2020/progress/progress-module.mjs +5 -5
- package/esm2020/progress/progress.mjs +4 -4
- package/esm2020/select/option.mjs +4 -4
- package/esm2020/select/select-module.mjs +5 -5
- package/esm2020/select/select.mjs +7 -7
- package/esm2020/select/templates.mjs +34 -34
- package/esm2020/slider/slider-module.mjs +5 -5
- package/esm2020/slider/slider.mjs +5 -5
- package/esm2020/split/split-module.mjs +5 -5
- package/esm2020/split/split-pane.mjs +4 -4
- package/esm2020/split/split.mjs +4 -4
- package/esm2020/tooltip/tooltip-module.mjs +5 -5
- package/esm2020/tooltip/tooltip.mjs +13 -13
- package/fesm2015/mtxAlert.mjs +7 -7
- package/fesm2015/mtxAlert.mjs.map +1 -1
- package/fesm2015/mtxButton.mjs +7 -7
- package/fesm2015/mtxButton.mjs.map +1 -1
- package/fesm2015/mtxCheckboxGroup.mjs +9 -7
- package/fesm2015/mtxCheckboxGroup.mjs.map +1 -1
- package/fesm2015/mtxColorpicker.mjs +19 -19
- package/fesm2015/mtxColorpicker.mjs.map +1 -1
- package/fesm2015/mtxColumnResize.mjs +40 -40
- package/fesm2015/mtxColumnResize.mjs.map +1 -1
- package/fesm2015/mtxCore.mjs +21 -21
- package/fesm2015/mtxCore.mjs.map +1 -1
- package/fesm2015/mtxDatetimepicker.mjs +47 -47
- package/fesm2015/mtxDatetimepicker.mjs.map +1 -1
- package/fesm2015/mtxDialog.mjs +10 -10
- package/fesm2015/mtxDialog.mjs.map +1 -1
- package/fesm2015/mtxDrawer.mjs +10 -10
- package/fesm2015/mtxDrawer.mjs.map +1 -1
- package/fesm2015/mtxGrid.mjs +69 -76
- package/fesm2015/mtxGrid.mjs.map +1 -1
- package/fesm2015/mtxLoader.mjs +7 -7
- package/fesm2015/mtxLoader.mjs.map +1 -1
- package/fesm2015/mtxPopover.mjs +37 -27
- package/fesm2015/mtxPopover.mjs.map +1 -1
- package/fesm2015/mtxProgress.mjs +7 -7
- package/fesm2015/mtxProgress.mjs.map +1 -1
- package/fesm2015/mtxSelect.mjs +46 -47
- package/fesm2015/mtxSelect.mjs.map +1 -1
- package/fesm2015/mtxSlider.mjs +8 -8
- package/fesm2015/mtxSlider.mjs.map +1 -1
- package/fesm2015/mtxSplit.mjs +10 -10
- package/fesm2015/mtxSplit.mjs.map +1 -1
- package/fesm2015/mtxTooltip.mjs +16 -16
- package/fesm2015/mtxTooltip.mjs.map +1 -1
- package/fesm2020/mtxAlert.mjs +7 -7
- package/fesm2020/mtxAlert.mjs.map +1 -1
- package/fesm2020/mtxButton.mjs +7 -7
- package/fesm2020/mtxButton.mjs.map +1 -1
- package/fesm2020/mtxCheckboxGroup.mjs +9 -7
- package/fesm2020/mtxCheckboxGroup.mjs.map +1 -1
- package/fesm2020/mtxColorpicker.mjs +19 -19
- package/fesm2020/mtxColorpicker.mjs.map +1 -1
- package/fesm2020/mtxColumnResize.mjs +40 -40
- package/fesm2020/mtxColumnResize.mjs.map +1 -1
- package/fesm2020/mtxCore.mjs +21 -21
- package/fesm2020/mtxCore.mjs.map +1 -1
- package/fesm2020/mtxDatetimepicker.mjs +47 -47
- package/fesm2020/mtxDatetimepicker.mjs.map +1 -1
- package/fesm2020/mtxDialog.mjs +10 -10
- package/fesm2020/mtxDialog.mjs.map +1 -1
- package/fesm2020/mtxDrawer.mjs +10 -10
- package/fesm2020/mtxDrawer.mjs.map +1 -1
- package/fesm2020/mtxGrid.mjs +69 -76
- package/fesm2020/mtxGrid.mjs.map +1 -1
- package/fesm2020/mtxLoader.mjs +7 -7
- package/fesm2020/mtxLoader.mjs.map +1 -1
- package/fesm2020/mtxPopover.mjs +37 -27
- package/fesm2020/mtxPopover.mjs.map +1 -1
- package/fesm2020/mtxProgress.mjs +7 -7
- package/fesm2020/mtxProgress.mjs.map +1 -1
- package/fesm2020/mtxSelect.mjs +46 -46
- package/fesm2020/mtxSelect.mjs.map +1 -1
- package/fesm2020/mtxSlider.mjs +8 -8
- package/fesm2020/mtxSlider.mjs.map +1 -1
- package/fesm2020/mtxSplit.mjs +10 -10
- package/fesm2020/mtxSplit.mjs.map +1 -1
- package/fesm2020/mtxTooltip.mjs +16 -16
- package/fesm2020/mtxTooltip.mjs.map +1 -1
- package/grid/grid.d.ts +2 -4
- package/package.json +1 -1
- package/popover/popover.d.ts +2 -1
- package/prebuilt-themes/pink-bluegrey.css +1 -1
- package/prebuilt-themes/purple-green.css +1 -1
package/esm2020/grid/cell.mjs
CHANGED
|
@@ -105,9 +105,9 @@ export class MtxGridCell {
|
|
|
105
105
|
const photoviewer = new PhotoViewer(imgs, options);
|
|
106
106
|
}
|
|
107
107
|
}
|
|
108
|
-
/** @nocollapse */ MtxGridCell.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
109
|
-
/** @nocollapse */ MtxGridCell.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.1", type: MtxGridCell, selector: "mtx-grid-cell", inputs: { rowData: "rowData", colDef: "colDef", data: "data", summary: "summary", placeholder: "placeholder" }, outputs: { rowDataChange: "rowDataChange" }, exportAs: ["mtxGridCell"], ngImport: i0, template: "<span *ngIf=\"summary; else customCellFormattingTpl\"\r\n [title]=\"_getFormatterTooltip((data | cellSummary: colDef))\"\r\n [innerHTML]=\"_getText((data | cellSummary: colDef))\">\r\n</span>\r\n\r\n<!-- Custom formatting -->\r\n<ng-template #customCellFormattingTpl>\r\n <span *ngIf=\"colDef.formatter; else defaultCellFormattingTpl\"\r\n [title]=\"_getFormatterTooltip(colDef.formatter(rowData, colDef))\"\r\n [innerHTML]=\"_getText(colDef.formatter(rowData, colDef))\">\r\n </span>\r\n</ng-template>\r\n\r\n<!-- Default formatting -->\r\n<ng-template #defaultCellFormattingTpl>\r\n <ng-container [ngSwitch]=\"colDef.type\">\r\n <!-- Buttons -->\r\n <ng-container *ngSwitchCase=\"'button'\">\r\n <ng-container\r\n *ngFor=\"let btn of colDef.buttons | cellActions: rowData: rowChangeRecord: rowChangeRecord?.currentValue\">\r\n <ng-container *ngIf=\"!btn.iif || btn.iif(rowData)\">\r\n <ng-container [ngSwitch]=\"btn.type\">\r\n <ng-container *ngSwitchCase=\"'raised'\">\r\n <button mat-raised-button [color]=\"btn.color || 'primary'\" type=\"button\"\r\n [ngClass]=\"['mtx-grid-action-button', btn.class || '']\"\r\n [disabled]=\"btn | cellActionDisable: rowData: rowChangeRecord: rowChangeRecord?.currentValue\"\r\n [matTooltip]=\"(btn | cellActionTooltip).message | toObservable | async\"\r\n [matTooltipClass]=\"(btn | cellActionTooltip).class\"\r\n [matTooltipHideDelay]=\"(btn | cellActionTooltip).hideDelay\"\r\n [matTooltipShowDelay]=\"(btn | cellActionTooltip).showDelay\"\r\n [matTooltipPosition]=\"(btn | cellActionTooltip).position || 'below'\"\r\n [matTooltipPositionAtOrigin]=\"(btn | cellActionTooltip).positionAtOrigin\"\r\n [matTooltipTouchGestures]=\"(btn | cellActionTooltip).touchGestures || 'auto'\"\r\n [matTooltipDisabled]=\"(btn | cellActionTooltip).disabled\"\r\n [matBadge]=\"(btn | cellActionBadge).content | toObservable | async\"\r\n [matBadgeDescription]=\"(btn | cellActionBadge).description | toObservable | async\"\r\n [matBadgeColor]=\"(btn | cellActionBadge).color\"\r\n [matBadgePosition]=\"(btn | cellActionBadge).position || 'above after'\"\r\n [matBadgeSize]=\"(btn | cellActionBadge).size || 'medium'\"\r\n [matBadgeOverlap]=\"(btn | cellActionBadge).overlap\"\r\n [matBadgeDisabled]=\"(btn | cellActionBadge).disabled\"\r\n [matBadgeHidden]=\"(btn | cellActionBadge).hidden\"\r\n (click)=\"_onActionClick($event, btn, rowData)\">\r\n <mat-icon class=\"mtx-grid-icon\" *ngIf=\"btn.icon\">{{btn.icon}}</mat-icon>\r\n <span>{{btn.text | toObservable | async}}</span>\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'stroked'\">\r\n <button mat-stroked-button [color]=\"btn.color || 'primary'\" type=\"button\"\r\n [ngClass]=\"['mtx-grid-action-button', btn.class || '']\"\r\n [disabled]=\"btn | cellActionDisable: rowData: rowChangeRecord: rowChangeRecord?.currentValue\"\r\n [matTooltip]=\"(btn | cellActionTooltip).message | toObservable | async\"\r\n [matTooltipClass]=\"(btn | cellActionTooltip).class\"\r\n [matTooltipHideDelay]=\"(btn | cellActionTooltip).hideDelay\"\r\n [matTooltipShowDelay]=\"(btn | cellActionTooltip).showDelay\"\r\n [matTooltipPosition]=\"(btn | cellActionTooltip).position || 'below'\"\r\n [matTooltipPositionAtOrigin]=\"(btn | cellActionTooltip).positionAtOrigin\"\r\n [matTooltipTouchGestures]=\"(btn | cellActionTooltip).touchGestures || 'auto'\"\r\n [matTooltipDisabled]=\"(btn | cellActionTooltip).disabled\"\r\n [matBadge]=\"(btn | cellActionBadge).content | toObservable | async\"\r\n [matBadgeDescription]=\"(btn | cellActionBadge).description | toObservable | async\"\r\n [matBadgeColor]=\"(btn | cellActionBadge).color\"\r\n [matBadgePosition]=\"(btn | cellActionBadge).position || 'above after'\"\r\n [matBadgeSize]=\"(btn | cellActionBadge).size || 'medium'\"\r\n [matBadgeOverlap]=\"(btn | cellActionBadge).overlap\"\r\n [matBadgeDisabled]=\"(btn | cellActionBadge).disabled\"\r\n [matBadgeHidden]=\"(btn | cellActionBadge).hidden\"\r\n (click)=\"_onActionClick($event, btn, rowData)\">\r\n <mat-icon class=\"mtx-grid-icon\" *ngIf=\"btn.icon\">{{btn.icon}}</mat-icon>\r\n <span>{{btn.text | toObservable | async}}</span>\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'flat'\">\r\n <button mat-flat-button [color]=\"btn.color || 'primary'\" type=\"button\"\r\n [ngClass]=\"['mtx-grid-action-button', btn.class || '']\"\r\n [disabled]=\"btn | cellActionDisable: rowData: rowChangeRecord: rowChangeRecord?.currentValue\"\r\n [matTooltip]=\"(btn | cellActionTooltip).message | toObservable | async\"\r\n [matTooltipClass]=\"(btn | cellActionTooltip).class\"\r\n [matTooltipHideDelay]=\"(btn | cellActionTooltip).hideDelay\"\r\n [matTooltipShowDelay]=\"(btn | cellActionTooltip).showDelay\"\r\n [matTooltipPosition]=\"(btn | cellActionTooltip).position || 'below'\"\r\n [matTooltipPositionAtOrigin]=\"(btn | cellActionTooltip).positionAtOrigin\"\r\n [matTooltipTouchGestures]=\"(btn | cellActionTooltip).touchGestures || 'auto'\"\r\n [matTooltipDisabled]=\"(btn | cellActionTooltip).disabled\"\r\n [matBadge]=\"(btn | cellActionBadge).content | toObservable | async\"\r\n [matBadgeDescription]=\"(btn | cellActionBadge).description | toObservable | async\"\r\n [matBadgeColor]=\"(btn | cellActionBadge).color\"\r\n [matBadgePosition]=\"(btn | cellActionBadge).position || 'above after'\"\r\n [matBadgeSize]=\"(btn | cellActionBadge).size || 'medium'\"\r\n [matBadgeOverlap]=\"(btn | cellActionBadge).overlap\"\r\n [matBadgeDisabled]=\"(btn | cellActionBadge).disabled\"\r\n [matBadgeHidden]=\"(btn | cellActionBadge).hidden\"\r\n (click)=\"_onActionClick($event, btn, rowData)\">\r\n <mat-icon class=\"mtx-grid-icon\" *ngIf=\"btn.icon\">{{btn.icon}}</mat-icon>\r\n <span>{{btn.text | toObservable | async}}</span>\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'icon'\">\r\n <button mat-icon-button [color]=\"btn.color || 'primary'\" type=\"button\"\r\n [ngClass]=\"['mtx-grid-action-button', btn.class || '']\"\r\n [disabled]=\"btn | cellActionDisable: rowData: rowChangeRecord: rowChangeRecord?.currentValue\"\r\n [matTooltip]=\"(btn | cellActionTooltip).message | toObservable | async\"\r\n [matTooltipClass]=\"(btn | cellActionTooltip).class\"\r\n [matTooltipHideDelay]=\"(btn | cellActionTooltip).hideDelay\"\r\n [matTooltipShowDelay]=\"(btn | cellActionTooltip).showDelay\"\r\n [matTooltipPosition]=\"(btn | cellActionTooltip).position || 'below'\"\r\n [matTooltipPositionAtOrigin]=\"(btn | cellActionTooltip).positionAtOrigin\"\r\n [matTooltipTouchGestures]=\"(btn | cellActionTooltip).touchGestures || 'auto'\"\r\n [matTooltipDisabled]=\"(btn | cellActionTooltip).disabled\"\r\n [matBadge]=\"(btn | cellActionBadge).content | toObservable | async\"\r\n [matBadgeDescription]=\"(btn | cellActionBadge).description | toObservable | async\"\r\n [matBadgeColor]=\"(btn | cellActionBadge).color\"\r\n [matBadgePosition]=\"(btn | cellActionBadge).position || 'above after'\"\r\n [matBadgeSize]=\"(btn | cellActionBadge).size || 'medium'\"\r\n [matBadgeOverlap]=\"(btn | cellActionBadge).overlap\"\r\n [matBadgeDisabled]=\"(btn | cellActionBadge).disabled\"\r\n [matBadgeHidden]=\"(btn | cellActionBadge).hidden\"\r\n (click)=\"_onActionClick($event, btn, rowData)\">\r\n <mat-icon class=\"mtx-grid-icon\">{{btn.icon}}</mat-icon>\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'fab'\">\r\n <button mat-fab [color]=\"btn.color || 'primary'\" type=\"button\"\r\n [ngClass]=\"['mtx-grid-action-button', btn.class || '']\"\r\n [disabled]=\"btn | cellActionDisable: rowData: rowChangeRecord: rowChangeRecord?.currentValue\"\r\n [matTooltip]=\"(btn | cellActionTooltip).message | toObservable | async\"\r\n [matTooltipClass]=\"(btn | cellActionTooltip).class\"\r\n [matTooltipHideDelay]=\"(btn | cellActionTooltip).hideDelay\"\r\n [matTooltipShowDelay]=\"(btn | cellActionTooltip).showDelay\"\r\n [matTooltipPosition]=\"(btn | cellActionTooltip).position || 'below'\"\r\n [matTooltipPositionAtOrigin]=\"(btn | cellActionTooltip).positionAtOrigin\"\r\n [matTooltipTouchGestures]=\"(btn | cellActionTooltip).touchGestures || 'auto'\"\r\n [matTooltipDisabled]=\"(btn | cellActionTooltip).disabled\"\r\n [matBadge]=\"(btn | cellActionBadge).content | toObservable | async\"\r\n [matBadgeDescription]=\"(btn | cellActionBadge).description | toObservable | async\"\r\n [matBadgeColor]=\"(btn | cellActionBadge).color\"\r\n [matBadgePosition]=\"(btn | cellActionBadge).position || 'above after'\"\r\n [matBadgeSize]=\"(btn | cellActionBadge).size || 'medium'\"\r\n [matBadgeOverlap]=\"(btn | cellActionBadge).overlap\"\r\n [matBadgeDisabled]=\"(btn | cellActionBadge).disabled\"\r\n [matBadgeHidden]=\"(btn | cellActionBadge).hidden\"\r\n (click)=\"_onActionClick($event, btn, rowData)\">\r\n <mat-icon class=\"mtx-grid-icon\">{{btn.icon}}</mat-icon>\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'mini-fab'\">\r\n <button mat-mini-fab [color]=\"btn.color || 'primary'\" type=\"button\"\r\n [ngClass]=\"['mtx-grid-action-button', btn.class || '']\"\r\n [disabled]=\"btn | cellActionDisable: rowData: rowChangeRecord: rowChangeRecord?.currentValue\"\r\n [matTooltip]=\"(btn | cellActionTooltip).message | toObservable | async\"\r\n [matTooltipClass]=\"(btn | cellActionTooltip).class\"\r\n [matTooltipHideDelay]=\"(btn | cellActionTooltip).hideDelay\"\r\n [matTooltipShowDelay]=\"(btn | cellActionTooltip).showDelay\"\r\n [matTooltipPosition]=\"(btn | cellActionTooltip).position || 'below'\"\r\n [matTooltipPositionAtOrigin]=\"(btn | cellActionTooltip).positionAtOrigin\"\r\n [matTooltipTouchGestures]=\"(btn | cellActionTooltip).touchGestures || 'auto'\"\r\n [matTooltipDisabled]=\"(btn | cellActionTooltip).disabled\"\r\n [matBadge]=\"(btn | cellActionBadge).content | toObservable | async\"\r\n [matBadgeDescription]=\"(btn | cellActionBadge).description | toObservable | async\"\r\n [matBadgeColor]=\"(btn | cellActionBadge).color\"\r\n [matBadgePosition]=\"(btn | cellActionBadge).position || 'above after'\"\r\n [matBadgeSize]=\"(btn | cellActionBadge).size || 'medium'\"\r\n [matBadgeOverlap]=\"(btn | cellActionBadge).overlap\"\r\n [matBadgeDisabled]=\"(btn | cellActionBadge).disabled\"\r\n [matBadgeHidden]=\"(btn | cellActionBadge).hidden\"\r\n (click)=\"_onActionClick($event, btn, rowData)\">\r\n <mat-icon class=\"mtx-grid-icon\">{{btn.icon}}</mat-icon>\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <button mat-button [color]=\"btn.color || 'primary'\" type=\"button\"\r\n [ngClass]=\"['mtx-grid-action-button', btn.class || '']\"\r\n [disabled]=\"btn | cellActionDisable: rowData: rowChangeRecord: rowChangeRecord?.currentValue\"\r\n [matTooltip]=\"(btn | cellActionTooltip).message | toObservable | async\"\r\n [matTooltipClass]=\"(btn | cellActionTooltip).class\"\r\n [matTooltipHideDelay]=\"(btn | cellActionTooltip).hideDelay\"\r\n [matTooltipShowDelay]=\"(btn | cellActionTooltip).showDelay\"\r\n [matTooltipPosition]=\"(btn | cellActionTooltip).position || 'below'\"\r\n [matTooltipPositionAtOrigin]=\"(btn | cellActionTooltip).positionAtOrigin\"\r\n [matTooltipTouchGestures]=\"(btn | cellActionTooltip).touchGestures || 'auto'\"\r\n [matTooltipDisabled]=\"(btn | cellActionTooltip).disabled\"\r\n [matBadge]=\"(btn | cellActionBadge).content | toObservable | async\"\r\n [matBadgeDescription]=\"(btn | cellActionBadge).description | toObservable | async\"\r\n [matBadgeColor]=\"(btn | cellActionBadge).color\"\r\n [matBadgePosition]=\"(btn | cellActionBadge).position || 'above after'\"\r\n [matBadgeSize]=\"(btn | cellActionBadge).size || 'medium'\"\r\n [matBadgeOverlap]=\"(btn | cellActionBadge).overlap\"\r\n [matBadgeDisabled]=\"(btn | cellActionBadge).disabled\"\r\n [matBadgeHidden]=\"(btn | cellActionBadge).hidden\"\r\n (click)=\"_onActionClick($event, btn, rowData)\">\r\n <mat-icon class=\"mtx-grid-icon\" *ngIf=\"btn.icon\">{{btn.icon}}</mat-icon>\r\n <span>{{btn.text | toObservable | async}}</span>\r\n </button>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <!-- Tag -->\r\n <ng-container *ngSwitchCase=\"'tag'\">\r\n <mat-chip-listbox *ngIf=\"colDef.tag && colDef.tag[_value]; else tagEmptyTpl\">\r\n <mat-chip color=\"primary\" [ngClass]=\"['bg-' + colDef.tag[_value].color]\">\r\n {{colDef.tag[_value].text}}\r\n </mat-chip>\r\n </mat-chip-listbox>\r\n <ng-template #tagEmptyTpl>{{_value}}</ng-template>\r\n </ng-container>\r\n <!-- Link -->\r\n <ng-container *ngSwitchCase=\"'link'\">\r\n <a [href]=\"_value\" target=\"_blank\">{{_value}}</a>\r\n </ng-container>\r\n <!-- Image -->\r\n <ng-container *ngSwitchCase=\"'image'\">\r\n <img class=\"mtx-grid-img\" [src]=\"_value\" (click)=\"_onImagePreview(_value)\">\r\n </ng-container>\r\n <!-- Boolean -->\r\n <ng-container *ngSwitchCase=\"'boolean'\">\r\n <span [title]=\"_getTooltip(_value)\">{{_getText(_value)}}</span>\r\n </ng-container>\r\n <!-- Number -->\r\n <ng-container *ngSwitchCase=\"'number'\">\r\n <span [title]=\"_getTooltip(_value | number: colDef.typeParameter?.digitsInfo:\r\n colDef.typeParameter?.locale)\">\r\n {{_getText(_value | number: colDef.typeParameter?.digitsInfo:\r\n colDef.typeParameter?.locale)}}\r\n </span>\r\n </ng-container>\r\n <!-- Currency -->\r\n <ng-container *ngSwitchCase=\"'currency'\">\r\n <span [title]=\"_getTooltip(_value | currency: colDef.typeParameter?.currencyCode:\r\n colDef.typeParameter?.display:\r\n colDef.typeParameter?.digitsInfo:\r\n colDef.typeParameter?.locale)\">\r\n {{_getText(_value | currency: colDef.typeParameter?.currencyCode:\r\n colDef.typeParameter?.display:\r\n colDef.typeParameter?.digitsInfo:\r\n colDef.typeParameter?.locale)}}\r\n </span>\r\n </ng-container>\r\n <!-- Percent -->\r\n <ng-container *ngSwitchCase=\"'percent'\">\r\n <span [title]=\"_getTooltip(_value | percent: colDef.typeParameter?.digitsInfo:\r\n colDef.typeParameter?.locale)\">\r\n {{_getText(_value | percent: colDef.typeParameter?.digitsInfo:\r\n colDef.typeParameter?.locale)}}\r\n </span>\r\n </ng-container>\r\n <!-- Date -->\r\n <ng-container *ngSwitchCase=\"'date'\">\r\n <span [title]=\"_getTooltip(_value | date: colDef.typeParameter?.format:\r\n colDef.typeParameter?.timezone:\r\n colDef.typeParameter?.locale)\">\r\n {{_getText(_value | date: colDef.typeParameter?.format:\r\n colDef.typeParameter?.timezone:\r\n colDef.typeParameter?.locale)}}\r\n </span>\r\n </ng-container>\r\n <!-- Default -->\r\n <ng-container *ngSwitchDefault>\r\n <span [title]=\"_getTooltip(_value)\">{{_getText(_value)}}</span>\r\n </ng-container>\r\n </ng-container>\r\n</ng-template>\r\n", styles: [".mtx-grid-img{display:block;width:32px;border-radius:4px;cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i3.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatMiniFabButton, selector: "button[mat-mini-fab]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatFabButton, selector: "button[mat-fab]", inputs: ["disabled", "disableRipple", "color", "tabIndex", "extended"], exportAs: ["matButton"] }, { kind: "component", type: i5.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["color", "disabled", "disableRipple", "tabIndex", "role", "id", "aria-label", "aria-description", "value", "removable", "highlighted"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "component", type: i5.MatChipListbox, selector: "mat-chip-listbox", inputs: ["tabIndex", "multiple", "aria-orientation", "selectable", "compareWith", "required", "hideSingleSelectionIndicator", "value"], outputs: ["change"] }, { kind: "directive", type: i6.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "directive", type: i7.MatBadge, selector: "[matBadge]", inputs: ["matBadgeDisabled", "matBadgeColor", "matBadgeOverlap", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.DecimalPipe, name: "number" }, { kind: "pipe", type: i3.PercentPipe, name: "percent" }, { kind: "pipe", type: i3.CurrencyPipe, name: "currency" }, { kind: "pipe", type: i3.DatePipe, name: "date" }, { kind: "pipe", type: i9.MtxToObservablePipe, name: "toObservable" }, { kind: "pipe", type: i10.MtxGridCellActionsPipe, name: "cellActions" }, { kind: "pipe", type: i10.MtxGridCellActionTooltipPipe, name: "cellActionTooltip" }, { kind: "pipe", type: i10.MtxGridCellActionBadgePipe, name: "cellActionBadge" }, { kind: "pipe", type: i10.MtxGridCellActionDisablePipe, name: "cellActionDisable" }, { kind: "pipe", type: i10.MtxGridCellSummaryPipe, name: "cellSummary" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
110
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
108
|
+
/** @nocollapse */ MtxGridCell.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MtxGridCell, deps: [{ token: i1.MtxDialog }, { token: i2.MtxGridUtils }, { token: i0.KeyValueDiffers }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
109
|
+
/** @nocollapse */ MtxGridCell.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: MtxGridCell, selector: "mtx-grid-cell", inputs: { rowData: "rowData", colDef: "colDef", data: "data", summary: "summary", placeholder: "placeholder" }, outputs: { rowDataChange: "rowDataChange" }, exportAs: ["mtxGridCell"], ngImport: i0, template: "<span *ngIf=\"summary; else customCellFormattingTpl\"\r\n [title]=\"_getFormatterTooltip((data | cellSummary: colDef))\"\r\n [innerHTML]=\"_getText((data | cellSummary: colDef))\">\r\n</span>\r\n\r\n<!-- Custom formatting -->\r\n<ng-template #customCellFormattingTpl>\r\n <span *ngIf=\"colDef.formatter; else defaultCellFormattingTpl\"\r\n [title]=\"_getFormatterTooltip(colDef.formatter(rowData, colDef))\"\r\n [innerHTML]=\"_getText(colDef.formatter(rowData, colDef))\">\r\n </span>\r\n</ng-template>\r\n\r\n<!-- Default formatting -->\r\n<ng-template #defaultCellFormattingTpl>\r\n <ng-container [ngSwitch]=\"colDef.type\">\r\n <!-- Buttons -->\r\n <ng-container *ngSwitchCase=\"'button'\">\r\n <ng-container\r\n *ngFor=\"let btn of colDef.buttons | cellActions: rowData: rowChangeRecord: rowChangeRecord?.currentValue\">\r\n <ng-container *ngIf=\"!btn.iif || btn.iif(rowData)\">\r\n <ng-container [ngSwitch]=\"btn.type\">\r\n <ng-container *ngSwitchCase=\"'raised'\">\r\n <button mat-raised-button [color]=\"btn.color || 'primary'\" type=\"button\"\r\n [ngClass]=\"['mtx-grid-action-button', btn.class || '']\"\r\n [disabled]=\"btn | cellActionDisable: rowData: rowChangeRecord: rowChangeRecord?.currentValue\"\r\n [matTooltip]=\"(btn | cellActionTooltip).message | toObservable | async\"\r\n [matTooltipClass]=\"(btn | cellActionTooltip).class\"\r\n [matTooltipHideDelay]=\"(btn | cellActionTooltip).hideDelay\"\r\n [matTooltipShowDelay]=\"(btn | cellActionTooltip).showDelay\"\r\n [matTooltipPosition]=\"(btn | cellActionTooltip).position || 'below'\"\r\n [matTooltipPositionAtOrigin]=\"(btn | cellActionTooltip).positionAtOrigin\"\r\n [matTooltipTouchGestures]=\"(btn | cellActionTooltip).touchGestures || 'auto'\"\r\n [matTooltipDisabled]=\"(btn | cellActionTooltip).disabled\"\r\n [matBadge]=\"(btn | cellActionBadge).content | toObservable | async\"\r\n [matBadgeDescription]=\"(btn | cellActionBadge).description | toObservable | async\"\r\n [matBadgeColor]=\"(btn | cellActionBadge).color\"\r\n [matBadgePosition]=\"(btn | cellActionBadge).position || 'above after'\"\r\n [matBadgeSize]=\"(btn | cellActionBadge).size || 'medium'\"\r\n [matBadgeOverlap]=\"(btn | cellActionBadge).overlap\"\r\n [matBadgeDisabled]=\"(btn | cellActionBadge).disabled\"\r\n [matBadgeHidden]=\"(btn | cellActionBadge).hidden\"\r\n (click)=\"_onActionClick($event, btn, rowData)\">\r\n <mat-icon class=\"mtx-grid-icon\" *ngIf=\"btn.icon\">{{btn.icon}}</mat-icon>\r\n <span>{{btn.text | toObservable | async}}</span>\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'stroked'\">\r\n <button mat-stroked-button [color]=\"btn.color || 'primary'\" type=\"button\"\r\n [ngClass]=\"['mtx-grid-action-button', btn.class || '']\"\r\n [disabled]=\"btn | cellActionDisable: rowData: rowChangeRecord: rowChangeRecord?.currentValue\"\r\n [matTooltip]=\"(btn | cellActionTooltip).message | toObservable | async\"\r\n [matTooltipClass]=\"(btn | cellActionTooltip).class\"\r\n [matTooltipHideDelay]=\"(btn | cellActionTooltip).hideDelay\"\r\n [matTooltipShowDelay]=\"(btn | cellActionTooltip).showDelay\"\r\n [matTooltipPosition]=\"(btn | cellActionTooltip).position || 'below'\"\r\n [matTooltipPositionAtOrigin]=\"(btn | cellActionTooltip).positionAtOrigin\"\r\n [matTooltipTouchGestures]=\"(btn | cellActionTooltip).touchGestures || 'auto'\"\r\n [matTooltipDisabled]=\"(btn | cellActionTooltip).disabled\"\r\n [matBadge]=\"(btn | cellActionBadge).content | toObservable | async\"\r\n [matBadgeDescription]=\"(btn | cellActionBadge).description | toObservable | async\"\r\n [matBadgeColor]=\"(btn | cellActionBadge).color\"\r\n [matBadgePosition]=\"(btn | cellActionBadge).position || 'above after'\"\r\n [matBadgeSize]=\"(btn | cellActionBadge).size || 'medium'\"\r\n [matBadgeOverlap]=\"(btn | cellActionBadge).overlap\"\r\n [matBadgeDisabled]=\"(btn | cellActionBadge).disabled\"\r\n [matBadgeHidden]=\"(btn | cellActionBadge).hidden\"\r\n (click)=\"_onActionClick($event, btn, rowData)\">\r\n <mat-icon class=\"mtx-grid-icon\" *ngIf=\"btn.icon\">{{btn.icon}}</mat-icon>\r\n <span>{{btn.text | toObservable | async}}</span>\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'flat'\">\r\n <button mat-flat-button [color]=\"btn.color || 'primary'\" type=\"button\"\r\n [ngClass]=\"['mtx-grid-action-button', btn.class || '']\"\r\n [disabled]=\"btn | cellActionDisable: rowData: rowChangeRecord: rowChangeRecord?.currentValue\"\r\n [matTooltip]=\"(btn | cellActionTooltip).message | toObservable | async\"\r\n [matTooltipClass]=\"(btn | cellActionTooltip).class\"\r\n [matTooltipHideDelay]=\"(btn | cellActionTooltip).hideDelay\"\r\n [matTooltipShowDelay]=\"(btn | cellActionTooltip).showDelay\"\r\n [matTooltipPosition]=\"(btn | cellActionTooltip).position || 'below'\"\r\n [matTooltipPositionAtOrigin]=\"(btn | cellActionTooltip).positionAtOrigin\"\r\n [matTooltipTouchGestures]=\"(btn | cellActionTooltip).touchGestures || 'auto'\"\r\n [matTooltipDisabled]=\"(btn | cellActionTooltip).disabled\"\r\n [matBadge]=\"(btn | cellActionBadge).content | toObservable | async\"\r\n [matBadgeDescription]=\"(btn | cellActionBadge).description | toObservable | async\"\r\n [matBadgeColor]=\"(btn | cellActionBadge).color\"\r\n [matBadgePosition]=\"(btn | cellActionBadge).position || 'above after'\"\r\n [matBadgeSize]=\"(btn | cellActionBadge).size || 'medium'\"\r\n [matBadgeOverlap]=\"(btn | cellActionBadge).overlap\"\r\n [matBadgeDisabled]=\"(btn | cellActionBadge).disabled\"\r\n [matBadgeHidden]=\"(btn | cellActionBadge).hidden\"\r\n (click)=\"_onActionClick($event, btn, rowData)\">\r\n <mat-icon class=\"mtx-grid-icon\" *ngIf=\"btn.icon\">{{btn.icon}}</mat-icon>\r\n <span>{{btn.text | toObservable | async}}</span>\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'icon'\">\r\n <button mat-icon-button [color]=\"btn.color || 'primary'\" type=\"button\"\r\n [ngClass]=\"['mtx-grid-action-button', btn.class || '']\"\r\n [disabled]=\"btn | cellActionDisable: rowData: rowChangeRecord: rowChangeRecord?.currentValue\"\r\n [matTooltip]=\"(btn | cellActionTooltip).message | toObservable | async\"\r\n [matTooltipClass]=\"(btn | cellActionTooltip).class\"\r\n [matTooltipHideDelay]=\"(btn | cellActionTooltip).hideDelay\"\r\n [matTooltipShowDelay]=\"(btn | cellActionTooltip).showDelay\"\r\n [matTooltipPosition]=\"(btn | cellActionTooltip).position || 'below'\"\r\n [matTooltipPositionAtOrigin]=\"(btn | cellActionTooltip).positionAtOrigin\"\r\n [matTooltipTouchGestures]=\"(btn | cellActionTooltip).touchGestures || 'auto'\"\r\n [matTooltipDisabled]=\"(btn | cellActionTooltip).disabled\"\r\n [matBadge]=\"(btn | cellActionBadge).content | toObservable | async\"\r\n [matBadgeDescription]=\"(btn | cellActionBadge).description | toObservable | async\"\r\n [matBadgeColor]=\"(btn | cellActionBadge).color\"\r\n [matBadgePosition]=\"(btn | cellActionBadge).position || 'above after'\"\r\n [matBadgeSize]=\"(btn | cellActionBadge).size || 'medium'\"\r\n [matBadgeOverlap]=\"(btn | cellActionBadge).overlap\"\r\n [matBadgeDisabled]=\"(btn | cellActionBadge).disabled\"\r\n [matBadgeHidden]=\"(btn | cellActionBadge).hidden\"\r\n (click)=\"_onActionClick($event, btn, rowData)\">\r\n <mat-icon class=\"mtx-grid-icon\">{{btn.icon}}</mat-icon>\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'fab'\">\r\n <button mat-fab [color]=\"btn.color || 'primary'\" type=\"button\"\r\n [ngClass]=\"['mtx-grid-action-button', btn.class || '']\"\r\n [disabled]=\"btn | cellActionDisable: rowData: rowChangeRecord: rowChangeRecord?.currentValue\"\r\n [matTooltip]=\"(btn | cellActionTooltip).message | toObservable | async\"\r\n [matTooltipClass]=\"(btn | cellActionTooltip).class\"\r\n [matTooltipHideDelay]=\"(btn | cellActionTooltip).hideDelay\"\r\n [matTooltipShowDelay]=\"(btn | cellActionTooltip).showDelay\"\r\n [matTooltipPosition]=\"(btn | cellActionTooltip).position || 'below'\"\r\n [matTooltipPositionAtOrigin]=\"(btn | cellActionTooltip).positionAtOrigin\"\r\n [matTooltipTouchGestures]=\"(btn | cellActionTooltip).touchGestures || 'auto'\"\r\n [matTooltipDisabled]=\"(btn | cellActionTooltip).disabled\"\r\n [matBadge]=\"(btn | cellActionBadge).content | toObservable | async\"\r\n [matBadgeDescription]=\"(btn | cellActionBadge).description | toObservable | async\"\r\n [matBadgeColor]=\"(btn | cellActionBadge).color\"\r\n [matBadgePosition]=\"(btn | cellActionBadge).position || 'above after'\"\r\n [matBadgeSize]=\"(btn | cellActionBadge).size || 'medium'\"\r\n [matBadgeOverlap]=\"(btn | cellActionBadge).overlap\"\r\n [matBadgeDisabled]=\"(btn | cellActionBadge).disabled\"\r\n [matBadgeHidden]=\"(btn | cellActionBadge).hidden\"\r\n (click)=\"_onActionClick($event, btn, rowData)\">\r\n <mat-icon class=\"mtx-grid-icon\">{{btn.icon}}</mat-icon>\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'mini-fab'\">\r\n <button mat-mini-fab [color]=\"btn.color || 'primary'\" type=\"button\"\r\n [ngClass]=\"['mtx-grid-action-button', btn.class || '']\"\r\n [disabled]=\"btn | cellActionDisable: rowData: rowChangeRecord: rowChangeRecord?.currentValue\"\r\n [matTooltip]=\"(btn | cellActionTooltip).message | toObservable | async\"\r\n [matTooltipClass]=\"(btn | cellActionTooltip).class\"\r\n [matTooltipHideDelay]=\"(btn | cellActionTooltip).hideDelay\"\r\n [matTooltipShowDelay]=\"(btn | cellActionTooltip).showDelay\"\r\n [matTooltipPosition]=\"(btn | cellActionTooltip).position || 'below'\"\r\n [matTooltipPositionAtOrigin]=\"(btn | cellActionTooltip).positionAtOrigin\"\r\n [matTooltipTouchGestures]=\"(btn | cellActionTooltip).touchGestures || 'auto'\"\r\n [matTooltipDisabled]=\"(btn | cellActionTooltip).disabled\"\r\n [matBadge]=\"(btn | cellActionBadge).content | toObservable | async\"\r\n [matBadgeDescription]=\"(btn | cellActionBadge).description | toObservable | async\"\r\n [matBadgeColor]=\"(btn | cellActionBadge).color\"\r\n [matBadgePosition]=\"(btn | cellActionBadge).position || 'above after'\"\r\n [matBadgeSize]=\"(btn | cellActionBadge).size || 'medium'\"\r\n [matBadgeOverlap]=\"(btn | cellActionBadge).overlap\"\r\n [matBadgeDisabled]=\"(btn | cellActionBadge).disabled\"\r\n [matBadgeHidden]=\"(btn | cellActionBadge).hidden\"\r\n (click)=\"_onActionClick($event, btn, rowData)\">\r\n <mat-icon class=\"mtx-grid-icon\">{{btn.icon}}</mat-icon>\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <button mat-button [color]=\"btn.color || 'primary'\" type=\"button\"\r\n [ngClass]=\"['mtx-grid-action-button', btn.class || '']\"\r\n [disabled]=\"btn | cellActionDisable: rowData: rowChangeRecord: rowChangeRecord?.currentValue\"\r\n [matTooltip]=\"(btn | cellActionTooltip).message | toObservable | async\"\r\n [matTooltipClass]=\"(btn | cellActionTooltip).class\"\r\n [matTooltipHideDelay]=\"(btn | cellActionTooltip).hideDelay\"\r\n [matTooltipShowDelay]=\"(btn | cellActionTooltip).showDelay\"\r\n [matTooltipPosition]=\"(btn | cellActionTooltip).position || 'below'\"\r\n [matTooltipPositionAtOrigin]=\"(btn | cellActionTooltip).positionAtOrigin\"\r\n [matTooltipTouchGestures]=\"(btn | cellActionTooltip).touchGestures || 'auto'\"\r\n [matTooltipDisabled]=\"(btn | cellActionTooltip).disabled\"\r\n [matBadge]=\"(btn | cellActionBadge).content | toObservable | async\"\r\n [matBadgeDescription]=\"(btn | cellActionBadge).description | toObservable | async\"\r\n [matBadgeColor]=\"(btn | cellActionBadge).color\"\r\n [matBadgePosition]=\"(btn | cellActionBadge).position || 'above after'\"\r\n [matBadgeSize]=\"(btn | cellActionBadge).size || 'medium'\"\r\n [matBadgeOverlap]=\"(btn | cellActionBadge).overlap\"\r\n [matBadgeDisabled]=\"(btn | cellActionBadge).disabled\"\r\n [matBadgeHidden]=\"(btn | cellActionBadge).hidden\"\r\n (click)=\"_onActionClick($event, btn, rowData)\">\r\n <mat-icon class=\"mtx-grid-icon\" *ngIf=\"btn.icon\">{{btn.icon}}</mat-icon>\r\n <span>{{btn.text | toObservable | async}}</span>\r\n </button>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <!-- Tag -->\r\n <ng-container *ngSwitchCase=\"'tag'\">\r\n <mat-chip-listbox *ngIf=\"colDef.tag && colDef.tag[_value]; else tagEmptyTpl\">\r\n <mat-chip color=\"primary\" [ngClass]=\"['bg-' + colDef.tag[_value].color]\">\r\n {{colDef.tag[_value].text}}\r\n </mat-chip>\r\n </mat-chip-listbox>\r\n <ng-template #tagEmptyTpl>{{_value}}</ng-template>\r\n </ng-container>\r\n <!-- Link -->\r\n <ng-container *ngSwitchCase=\"'link'\">\r\n <a [href]=\"_value\" target=\"_blank\">{{_value}}</a>\r\n </ng-container>\r\n <!-- Image -->\r\n <ng-container *ngSwitchCase=\"'image'\">\r\n <img class=\"mtx-grid-img\" [src]=\"_value\" (click)=\"_onImagePreview(_value)\">\r\n </ng-container>\r\n <!-- Boolean -->\r\n <ng-container *ngSwitchCase=\"'boolean'\">\r\n <span [title]=\"_getTooltip(_value)\">{{_getText(_value)}}</span>\r\n </ng-container>\r\n <!-- Number -->\r\n <ng-container *ngSwitchCase=\"'number'\">\r\n <span [title]=\"_getTooltip(_value | number: colDef.typeParameter?.digitsInfo:\r\n colDef.typeParameter?.locale)\">\r\n {{_getText(_value | number: colDef.typeParameter?.digitsInfo:\r\n colDef.typeParameter?.locale)}}\r\n </span>\r\n </ng-container>\r\n <!-- Currency -->\r\n <ng-container *ngSwitchCase=\"'currency'\">\r\n <span [title]=\"_getTooltip(_value | currency: colDef.typeParameter?.currencyCode:\r\n colDef.typeParameter?.display:\r\n colDef.typeParameter?.digitsInfo:\r\n colDef.typeParameter?.locale)\">\r\n {{_getText(_value | currency: colDef.typeParameter?.currencyCode:\r\n colDef.typeParameter?.display:\r\n colDef.typeParameter?.digitsInfo:\r\n colDef.typeParameter?.locale)}}\r\n </span>\r\n </ng-container>\r\n <!-- Percent -->\r\n <ng-container *ngSwitchCase=\"'percent'\">\r\n <span [title]=\"_getTooltip(_value | percent: colDef.typeParameter?.digitsInfo:\r\n colDef.typeParameter?.locale)\">\r\n {{_getText(_value | percent: colDef.typeParameter?.digitsInfo:\r\n colDef.typeParameter?.locale)}}\r\n </span>\r\n </ng-container>\r\n <!-- Date -->\r\n <ng-container *ngSwitchCase=\"'date'\">\r\n <span [title]=\"_getTooltip(_value | date: colDef.typeParameter?.format:\r\n colDef.typeParameter?.timezone:\r\n colDef.typeParameter?.locale)\">\r\n {{_getText(_value | date: colDef.typeParameter?.format:\r\n colDef.typeParameter?.timezone:\r\n colDef.typeParameter?.locale)}}\r\n </span>\r\n </ng-container>\r\n <!-- Default -->\r\n <ng-container *ngSwitchDefault>\r\n <span [title]=\"_getTooltip(_value)\">{{_getText(_value)}}</span>\r\n </ng-container>\r\n </ng-container>\r\n</ng-template>\r\n", styles: [".mtx-grid-img{display:block;width:32px;border-radius:4px;cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i3.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatMiniFabButton, selector: "button[mat-mini-fab]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatFabButton, selector: "button[mat-fab]", inputs: ["disabled", "disableRipple", "color", "tabIndex", "extended"], exportAs: ["matButton"] }, { kind: "component", type: i5.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["color", "disabled", "disableRipple", "tabIndex", "role", "id", "aria-label", "aria-description", "value", "removable", "highlighted"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "component", type: i5.MatChipListbox, selector: "mat-chip-listbox", inputs: ["tabIndex", "multiple", "aria-orientation", "selectable", "compareWith", "required", "hideSingleSelectionIndicator", "value"], outputs: ["change"] }, { kind: "directive", type: i6.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "directive", type: i7.MatBadge, selector: "[matBadge]", inputs: ["matBadgeDisabled", "matBadgeColor", "matBadgeOverlap", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.DecimalPipe, name: "number" }, { kind: "pipe", type: i3.PercentPipe, name: "percent" }, { kind: "pipe", type: i3.CurrencyPipe, name: "currency" }, { kind: "pipe", type: i3.DatePipe, name: "date" }, { kind: "pipe", type: i9.MtxToObservablePipe, name: "toObservable" }, { kind: "pipe", type: i10.MtxGridCellActionsPipe, name: "cellActions" }, { kind: "pipe", type: i10.MtxGridCellActionTooltipPipe, name: "cellActionTooltip" }, { kind: "pipe", type: i10.MtxGridCellActionBadgePipe, name: "cellActionBadge" }, { kind: "pipe", type: i10.MtxGridCellActionDisablePipe, name: "cellActionDisable" }, { kind: "pipe", type: i10.MtxGridCellSummaryPipe, name: "cellSummary" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
110
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MtxGridCell, decorators: [{
|
|
111
111
|
type: Component,
|
|
112
112
|
args: [{ selector: 'mtx-grid-cell', exportAs: 'mtxGridCell', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<span *ngIf=\"summary; else customCellFormattingTpl\"\r\n [title]=\"_getFormatterTooltip((data | cellSummary: colDef))\"\r\n [innerHTML]=\"_getText((data | cellSummary: colDef))\">\r\n</span>\r\n\r\n<!-- Custom formatting -->\r\n<ng-template #customCellFormattingTpl>\r\n <span *ngIf=\"colDef.formatter; else defaultCellFormattingTpl\"\r\n [title]=\"_getFormatterTooltip(colDef.formatter(rowData, colDef))\"\r\n [innerHTML]=\"_getText(colDef.formatter(rowData, colDef))\">\r\n </span>\r\n</ng-template>\r\n\r\n<!-- Default formatting -->\r\n<ng-template #defaultCellFormattingTpl>\r\n <ng-container [ngSwitch]=\"colDef.type\">\r\n <!-- Buttons -->\r\n <ng-container *ngSwitchCase=\"'button'\">\r\n <ng-container\r\n *ngFor=\"let btn of colDef.buttons | cellActions: rowData: rowChangeRecord: rowChangeRecord?.currentValue\">\r\n <ng-container *ngIf=\"!btn.iif || btn.iif(rowData)\">\r\n <ng-container [ngSwitch]=\"btn.type\">\r\n <ng-container *ngSwitchCase=\"'raised'\">\r\n <button mat-raised-button [color]=\"btn.color || 'primary'\" type=\"button\"\r\n [ngClass]=\"['mtx-grid-action-button', btn.class || '']\"\r\n [disabled]=\"btn | cellActionDisable: rowData: rowChangeRecord: rowChangeRecord?.currentValue\"\r\n [matTooltip]=\"(btn | cellActionTooltip).message | toObservable | async\"\r\n [matTooltipClass]=\"(btn | cellActionTooltip).class\"\r\n [matTooltipHideDelay]=\"(btn | cellActionTooltip).hideDelay\"\r\n [matTooltipShowDelay]=\"(btn | cellActionTooltip).showDelay\"\r\n [matTooltipPosition]=\"(btn | cellActionTooltip).position || 'below'\"\r\n [matTooltipPositionAtOrigin]=\"(btn | cellActionTooltip).positionAtOrigin\"\r\n [matTooltipTouchGestures]=\"(btn | cellActionTooltip).touchGestures || 'auto'\"\r\n [matTooltipDisabled]=\"(btn | cellActionTooltip).disabled\"\r\n [matBadge]=\"(btn | cellActionBadge).content | toObservable | async\"\r\n [matBadgeDescription]=\"(btn | cellActionBadge).description | toObservable | async\"\r\n [matBadgeColor]=\"(btn | cellActionBadge).color\"\r\n [matBadgePosition]=\"(btn | cellActionBadge).position || 'above after'\"\r\n [matBadgeSize]=\"(btn | cellActionBadge).size || 'medium'\"\r\n [matBadgeOverlap]=\"(btn | cellActionBadge).overlap\"\r\n [matBadgeDisabled]=\"(btn | cellActionBadge).disabled\"\r\n [matBadgeHidden]=\"(btn | cellActionBadge).hidden\"\r\n (click)=\"_onActionClick($event, btn, rowData)\">\r\n <mat-icon class=\"mtx-grid-icon\" *ngIf=\"btn.icon\">{{btn.icon}}</mat-icon>\r\n <span>{{btn.text | toObservable | async}}</span>\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'stroked'\">\r\n <button mat-stroked-button [color]=\"btn.color || 'primary'\" type=\"button\"\r\n [ngClass]=\"['mtx-grid-action-button', btn.class || '']\"\r\n [disabled]=\"btn | cellActionDisable: rowData: rowChangeRecord: rowChangeRecord?.currentValue\"\r\n [matTooltip]=\"(btn | cellActionTooltip).message | toObservable | async\"\r\n [matTooltipClass]=\"(btn | cellActionTooltip).class\"\r\n [matTooltipHideDelay]=\"(btn | cellActionTooltip).hideDelay\"\r\n [matTooltipShowDelay]=\"(btn | cellActionTooltip).showDelay\"\r\n [matTooltipPosition]=\"(btn | cellActionTooltip).position || 'below'\"\r\n [matTooltipPositionAtOrigin]=\"(btn | cellActionTooltip).positionAtOrigin\"\r\n [matTooltipTouchGestures]=\"(btn | cellActionTooltip).touchGestures || 'auto'\"\r\n [matTooltipDisabled]=\"(btn | cellActionTooltip).disabled\"\r\n [matBadge]=\"(btn | cellActionBadge).content | toObservable | async\"\r\n [matBadgeDescription]=\"(btn | cellActionBadge).description | toObservable | async\"\r\n [matBadgeColor]=\"(btn | cellActionBadge).color\"\r\n [matBadgePosition]=\"(btn | cellActionBadge).position || 'above after'\"\r\n [matBadgeSize]=\"(btn | cellActionBadge).size || 'medium'\"\r\n [matBadgeOverlap]=\"(btn | cellActionBadge).overlap\"\r\n [matBadgeDisabled]=\"(btn | cellActionBadge).disabled\"\r\n [matBadgeHidden]=\"(btn | cellActionBadge).hidden\"\r\n (click)=\"_onActionClick($event, btn, rowData)\">\r\n <mat-icon class=\"mtx-grid-icon\" *ngIf=\"btn.icon\">{{btn.icon}}</mat-icon>\r\n <span>{{btn.text | toObservable | async}}</span>\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'flat'\">\r\n <button mat-flat-button [color]=\"btn.color || 'primary'\" type=\"button\"\r\n [ngClass]=\"['mtx-grid-action-button', btn.class || '']\"\r\n [disabled]=\"btn | cellActionDisable: rowData: rowChangeRecord: rowChangeRecord?.currentValue\"\r\n [matTooltip]=\"(btn | cellActionTooltip).message | toObservable | async\"\r\n [matTooltipClass]=\"(btn | cellActionTooltip).class\"\r\n [matTooltipHideDelay]=\"(btn | cellActionTooltip).hideDelay\"\r\n [matTooltipShowDelay]=\"(btn | cellActionTooltip).showDelay\"\r\n [matTooltipPosition]=\"(btn | cellActionTooltip).position || 'below'\"\r\n [matTooltipPositionAtOrigin]=\"(btn | cellActionTooltip).positionAtOrigin\"\r\n [matTooltipTouchGestures]=\"(btn | cellActionTooltip).touchGestures || 'auto'\"\r\n [matTooltipDisabled]=\"(btn | cellActionTooltip).disabled\"\r\n [matBadge]=\"(btn | cellActionBadge).content | toObservable | async\"\r\n [matBadgeDescription]=\"(btn | cellActionBadge).description | toObservable | async\"\r\n [matBadgeColor]=\"(btn | cellActionBadge).color\"\r\n [matBadgePosition]=\"(btn | cellActionBadge).position || 'above after'\"\r\n [matBadgeSize]=\"(btn | cellActionBadge).size || 'medium'\"\r\n [matBadgeOverlap]=\"(btn | cellActionBadge).overlap\"\r\n [matBadgeDisabled]=\"(btn | cellActionBadge).disabled\"\r\n [matBadgeHidden]=\"(btn | cellActionBadge).hidden\"\r\n (click)=\"_onActionClick($event, btn, rowData)\">\r\n <mat-icon class=\"mtx-grid-icon\" *ngIf=\"btn.icon\">{{btn.icon}}</mat-icon>\r\n <span>{{btn.text | toObservable | async}}</span>\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'icon'\">\r\n <button mat-icon-button [color]=\"btn.color || 'primary'\" type=\"button\"\r\n [ngClass]=\"['mtx-grid-action-button', btn.class || '']\"\r\n [disabled]=\"btn | cellActionDisable: rowData: rowChangeRecord: rowChangeRecord?.currentValue\"\r\n [matTooltip]=\"(btn | cellActionTooltip).message | toObservable | async\"\r\n [matTooltipClass]=\"(btn | cellActionTooltip).class\"\r\n [matTooltipHideDelay]=\"(btn | cellActionTooltip).hideDelay\"\r\n [matTooltipShowDelay]=\"(btn | cellActionTooltip).showDelay\"\r\n [matTooltipPosition]=\"(btn | cellActionTooltip).position || 'below'\"\r\n [matTooltipPositionAtOrigin]=\"(btn | cellActionTooltip).positionAtOrigin\"\r\n [matTooltipTouchGestures]=\"(btn | cellActionTooltip).touchGestures || 'auto'\"\r\n [matTooltipDisabled]=\"(btn | cellActionTooltip).disabled\"\r\n [matBadge]=\"(btn | cellActionBadge).content | toObservable | async\"\r\n [matBadgeDescription]=\"(btn | cellActionBadge).description | toObservable | async\"\r\n [matBadgeColor]=\"(btn | cellActionBadge).color\"\r\n [matBadgePosition]=\"(btn | cellActionBadge).position || 'above after'\"\r\n [matBadgeSize]=\"(btn | cellActionBadge).size || 'medium'\"\r\n [matBadgeOverlap]=\"(btn | cellActionBadge).overlap\"\r\n [matBadgeDisabled]=\"(btn | cellActionBadge).disabled\"\r\n [matBadgeHidden]=\"(btn | cellActionBadge).hidden\"\r\n (click)=\"_onActionClick($event, btn, rowData)\">\r\n <mat-icon class=\"mtx-grid-icon\">{{btn.icon}}</mat-icon>\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'fab'\">\r\n <button mat-fab [color]=\"btn.color || 'primary'\" type=\"button\"\r\n [ngClass]=\"['mtx-grid-action-button', btn.class || '']\"\r\n [disabled]=\"btn | cellActionDisable: rowData: rowChangeRecord: rowChangeRecord?.currentValue\"\r\n [matTooltip]=\"(btn | cellActionTooltip).message | toObservable | async\"\r\n [matTooltipClass]=\"(btn | cellActionTooltip).class\"\r\n [matTooltipHideDelay]=\"(btn | cellActionTooltip).hideDelay\"\r\n [matTooltipShowDelay]=\"(btn | cellActionTooltip).showDelay\"\r\n [matTooltipPosition]=\"(btn | cellActionTooltip).position || 'below'\"\r\n [matTooltipPositionAtOrigin]=\"(btn | cellActionTooltip).positionAtOrigin\"\r\n [matTooltipTouchGestures]=\"(btn | cellActionTooltip).touchGestures || 'auto'\"\r\n [matTooltipDisabled]=\"(btn | cellActionTooltip).disabled\"\r\n [matBadge]=\"(btn | cellActionBadge).content | toObservable | async\"\r\n [matBadgeDescription]=\"(btn | cellActionBadge).description | toObservable | async\"\r\n [matBadgeColor]=\"(btn | cellActionBadge).color\"\r\n [matBadgePosition]=\"(btn | cellActionBadge).position || 'above after'\"\r\n [matBadgeSize]=\"(btn | cellActionBadge).size || 'medium'\"\r\n [matBadgeOverlap]=\"(btn | cellActionBadge).overlap\"\r\n [matBadgeDisabled]=\"(btn | cellActionBadge).disabled\"\r\n [matBadgeHidden]=\"(btn | cellActionBadge).hidden\"\r\n (click)=\"_onActionClick($event, btn, rowData)\">\r\n <mat-icon class=\"mtx-grid-icon\">{{btn.icon}}</mat-icon>\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'mini-fab'\">\r\n <button mat-mini-fab [color]=\"btn.color || 'primary'\" type=\"button\"\r\n [ngClass]=\"['mtx-grid-action-button', btn.class || '']\"\r\n [disabled]=\"btn | cellActionDisable: rowData: rowChangeRecord: rowChangeRecord?.currentValue\"\r\n [matTooltip]=\"(btn | cellActionTooltip).message | toObservable | async\"\r\n [matTooltipClass]=\"(btn | cellActionTooltip).class\"\r\n [matTooltipHideDelay]=\"(btn | cellActionTooltip).hideDelay\"\r\n [matTooltipShowDelay]=\"(btn | cellActionTooltip).showDelay\"\r\n [matTooltipPosition]=\"(btn | cellActionTooltip).position || 'below'\"\r\n [matTooltipPositionAtOrigin]=\"(btn | cellActionTooltip).positionAtOrigin\"\r\n [matTooltipTouchGestures]=\"(btn | cellActionTooltip).touchGestures || 'auto'\"\r\n [matTooltipDisabled]=\"(btn | cellActionTooltip).disabled\"\r\n [matBadge]=\"(btn | cellActionBadge).content | toObservable | async\"\r\n [matBadgeDescription]=\"(btn | cellActionBadge).description | toObservable | async\"\r\n [matBadgeColor]=\"(btn | cellActionBadge).color\"\r\n [matBadgePosition]=\"(btn | cellActionBadge).position || 'above after'\"\r\n [matBadgeSize]=\"(btn | cellActionBadge).size || 'medium'\"\r\n [matBadgeOverlap]=\"(btn | cellActionBadge).overlap\"\r\n [matBadgeDisabled]=\"(btn | cellActionBadge).disabled\"\r\n [matBadgeHidden]=\"(btn | cellActionBadge).hidden\"\r\n (click)=\"_onActionClick($event, btn, rowData)\">\r\n <mat-icon class=\"mtx-grid-icon\">{{btn.icon}}</mat-icon>\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <button mat-button [color]=\"btn.color || 'primary'\" type=\"button\"\r\n [ngClass]=\"['mtx-grid-action-button', btn.class || '']\"\r\n [disabled]=\"btn | cellActionDisable: rowData: rowChangeRecord: rowChangeRecord?.currentValue\"\r\n [matTooltip]=\"(btn | cellActionTooltip).message | toObservable | async\"\r\n [matTooltipClass]=\"(btn | cellActionTooltip).class\"\r\n [matTooltipHideDelay]=\"(btn | cellActionTooltip).hideDelay\"\r\n [matTooltipShowDelay]=\"(btn | cellActionTooltip).showDelay\"\r\n [matTooltipPosition]=\"(btn | cellActionTooltip).position || 'below'\"\r\n [matTooltipPositionAtOrigin]=\"(btn | cellActionTooltip).positionAtOrigin\"\r\n [matTooltipTouchGestures]=\"(btn | cellActionTooltip).touchGestures || 'auto'\"\r\n [matTooltipDisabled]=\"(btn | cellActionTooltip).disabled\"\r\n [matBadge]=\"(btn | cellActionBadge).content | toObservable | async\"\r\n [matBadgeDescription]=\"(btn | cellActionBadge).description | toObservable | async\"\r\n [matBadgeColor]=\"(btn | cellActionBadge).color\"\r\n [matBadgePosition]=\"(btn | cellActionBadge).position || 'above after'\"\r\n [matBadgeSize]=\"(btn | cellActionBadge).size || 'medium'\"\r\n [matBadgeOverlap]=\"(btn | cellActionBadge).overlap\"\r\n [matBadgeDisabled]=\"(btn | cellActionBadge).disabled\"\r\n [matBadgeHidden]=\"(btn | cellActionBadge).hidden\"\r\n (click)=\"_onActionClick($event, btn, rowData)\">\r\n <mat-icon class=\"mtx-grid-icon\" *ngIf=\"btn.icon\">{{btn.icon}}</mat-icon>\r\n <span>{{btn.text | toObservable | async}}</span>\r\n </button>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <!-- Tag -->\r\n <ng-container *ngSwitchCase=\"'tag'\">\r\n <mat-chip-listbox *ngIf=\"colDef.tag && colDef.tag[_value]; else tagEmptyTpl\">\r\n <mat-chip color=\"primary\" [ngClass]=\"['bg-' + colDef.tag[_value].color]\">\r\n {{colDef.tag[_value].text}}\r\n </mat-chip>\r\n </mat-chip-listbox>\r\n <ng-template #tagEmptyTpl>{{_value}}</ng-template>\r\n </ng-container>\r\n <!-- Link -->\r\n <ng-container *ngSwitchCase=\"'link'\">\r\n <a [href]=\"_value\" target=\"_blank\">{{_value}}</a>\r\n </ng-container>\r\n <!-- Image -->\r\n <ng-container *ngSwitchCase=\"'image'\">\r\n <img class=\"mtx-grid-img\" [src]=\"_value\" (click)=\"_onImagePreview(_value)\">\r\n </ng-container>\r\n <!-- Boolean -->\r\n <ng-container *ngSwitchCase=\"'boolean'\">\r\n <span [title]=\"_getTooltip(_value)\">{{_getText(_value)}}</span>\r\n </ng-container>\r\n <!-- Number -->\r\n <ng-container *ngSwitchCase=\"'number'\">\r\n <span [title]=\"_getTooltip(_value | number: colDef.typeParameter?.digitsInfo:\r\n colDef.typeParameter?.locale)\">\r\n {{_getText(_value | number: colDef.typeParameter?.digitsInfo:\r\n colDef.typeParameter?.locale)}}\r\n </span>\r\n </ng-container>\r\n <!-- Currency -->\r\n <ng-container *ngSwitchCase=\"'currency'\">\r\n <span [title]=\"_getTooltip(_value | currency: colDef.typeParameter?.currencyCode:\r\n colDef.typeParameter?.display:\r\n colDef.typeParameter?.digitsInfo:\r\n colDef.typeParameter?.locale)\">\r\n {{_getText(_value | currency: colDef.typeParameter?.currencyCode:\r\n colDef.typeParameter?.display:\r\n colDef.typeParameter?.digitsInfo:\r\n colDef.typeParameter?.locale)}}\r\n </span>\r\n </ng-container>\r\n <!-- Percent -->\r\n <ng-container *ngSwitchCase=\"'percent'\">\r\n <span [title]=\"_getTooltip(_value | percent: colDef.typeParameter?.digitsInfo:\r\n colDef.typeParameter?.locale)\">\r\n {{_getText(_value | percent: colDef.typeParameter?.digitsInfo:\r\n colDef.typeParameter?.locale)}}\r\n </span>\r\n </ng-container>\r\n <!-- Date -->\r\n <ng-container *ngSwitchCase=\"'date'\">\r\n <span [title]=\"_getTooltip(_value | date: colDef.typeParameter?.format:\r\n colDef.typeParameter?.timezone:\r\n colDef.typeParameter?.locale)\">\r\n {{_getText(_value | date: colDef.typeParameter?.format:\r\n colDef.typeParameter?.timezone:\r\n colDef.typeParameter?.locale)}}\r\n </span>\r\n </ng-container>\r\n <!-- Default -->\r\n <ng-container *ngSwitchDefault>\r\n <span [title]=\"_getTooltip(_value)\">{{_getText(_value)}}</span>\r\n </ng-container>\r\n </ng-container>\r\n</ng-template>\r\n", styles: [".mtx-grid-img{display:block;width:32px;border-radius:4px;cursor:pointer}\n"] }]
|
|
113
113
|
}], ctorParameters: function () { return [{ type: i1.MtxDialog }, { type: i2.MtxGridUtils }, { type: i0.KeyValueDiffers }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { rowData: [{
|
|
@@ -123,4 +123,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImpor
|
|
|
123
123
|
}], rowDataChange: [{
|
|
124
124
|
type: Output
|
|
125
125
|
}] } });
|
|
126
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2V4dGVuc2lvbnMvZ3JpZC9jZWxsLnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvZXh0ZW5zaW9ucy9ncmlkL2NlbGwuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQU1MLE1BQU0sRUFDTixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxXQUFXLE1BQU0sYUFBYSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7OztBQVlwQyxNQUFNLE9BQU8sV0FBVztJQXNCdEIsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsWUFDVSxPQUFrQixFQUNsQixNQUFvQixFQUNwQixRQUF5QixFQUN6QixrQkFBcUM7UUFIckMsWUFBTyxHQUFQLE9BQU8sQ0FBVztRQUNsQixXQUFNLEdBQU4sTUFBTSxDQUFjO1FBQ3BCLGFBQVEsR0FBUixRQUFRLENBQWlCO1FBQ3pCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7UUE3Qi9DLGVBQWU7UUFDTixZQUFPLEdBQXdCLEVBQUUsQ0FBQztRQUszQyxpQkFBaUI7UUFDUixTQUFJLEdBQVUsRUFBRSxDQUFDO1FBRTFCLDJCQUEyQjtRQUNsQixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBRXpCLDJEQUEyRDtRQUNsRCxnQkFBVyxHQUFXLElBQUksQ0FBQztRQUUxQixrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFxQyxDQUFDO0lBZTdFLENBQUM7SUFFSixRQUFRO1FBQ04sSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENB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Q2YsYUFBYSxpQkFHUixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNO3lMQUl0QyxPQUFPO3NCQUFmLEtBQUs7Z0JBR0csTUFBTTtzQkFBZCxLQUFLO2dCQUdHLElBQUk7c0JBQVosS0FBSztnQkFHRyxPQUFPO3NCQUFmLEtBQUs7Z0JBR0csV0FBVztzQkFBbkIsS0FBSztnQkFFSSxhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIERvQ2hlY2ssXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIEtleVZhbHVlQ2hhbmdlUmVjb3JkLFxuICBLZXlWYWx1ZUNoYW5nZXMsXG4gIEtleVZhbHVlRGlmZmVyLFxuICBLZXlWYWx1ZURpZmZlcnMsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNdHhEaWFsb2cgfSBmcm9tICdAbmctbWF0ZXJvL2V4dGVuc2lvbnMvZGlhbG9nJztcbmltcG9ydCBQaG90b1ZpZXdlciBmcm9tICdwaG90b3ZpZXdlcic7XG5pbXBvcnQgeyBpc09ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE10eEdyaWRVdGlscyB9IGZyb20gJy4vZ3JpZC11dGlscyc7XG5pbXBvcnQgeyBNdHhHcmlkQ29sdW1uLCBNdHhHcmlkQ29sdW1uQnV0dG9uIH0gZnJvbSAnLi9pbnRlcmZhY2VzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbXR4LWdyaWQtY2VsbCcsXG4gIGV4cG9ydEFzOiAnbXR4R3JpZENlbGwnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2VsbC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2VsbC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBNdHhHcmlkQ2VsbCBpbXBsZW1lbnRzIE9uSW5pdCwgRG9DaGVjayB7XG4gIC8qKiBSb3cgZGF0YSAqL1xuICBASW5wdXQoKSByb3dEYXRhOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG5cbiAgLyoqIENvbHVtbiBkZWZpbml0aW9uICovXG4gIEBJbnB1dCgpIGNvbERlZiE6IE10eEdyaWRDb2x1bW47XG5cbiAgLyoqIFRhYmxlIGRhdGEgKi9cbiAgQElucHV0KCkgZGF0YTogYW55W10gPSBbXTtcblxuICAvKiogV2hldGhlciBzaG93IHN1bW1hcnkgKi9cbiAgQElucHV0KCkgc3VtbWFyeSA9IGZhbHNlO1xuXG4gIC8qKiBQbGFjZWhvbGRlciBmb3IgdGhlIGVtcHR5IHZhbHVlIChgbnVsbGAsIGAnJ2AsIGBbXWApICovXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnLS0nO1xuXG4gIEBPdXRwdXQoKSByb3dEYXRhQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxLZXlWYWx1ZUNoYW5nZVJlY29yZDxzdHJpbmcsIGFueT4+KCk7XG5cbiAgcHJpdmF0ZSByb3dEYXRhRGlmZmVyPzogS2V5VmFsdWVEaWZmZXI8c3RyaW5nLCBhbnk+O1xuXG4gIHJvd0NoYW5nZVJlY29yZD86IEtleVZhbHVlQ2hhbmdlUmVjb3JkPHN0cmluZywgYW55PjtcblxuICBnZXQgX3ZhbHVlKCkge1xuICAgIHJldHVybiB0aGlzLl91dGlscy5nZXRDZWxsVmFsdWUodGhpcy5yb3dEYXRhLCB0aGlzLmNvbERlZik7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9kaWFsb2c6IE10eERpYWxvZyxcbiAgICBwcml2YXRlIF91dGlsczogTXR4R3JpZFV0aWxzLFxuICAgIHByaXZhdGUgX2RpZmZlcnM6IEtleVZhbHVlRGlmZmVycyxcbiAgICBwcml2YXRlIF9jaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMucm93RGF0YURpZmZlciA9IHRoaXMuX2RpZmZlcnMuZmluZCh0aGlzLnJvd0RhdGEpLmNyZWF0ZSgpO1xuICB9XG5cbiAgbmdEb0NoZWNrKCk6IHZvaWQge1xuICAgIGNvbnN0IGNoYW5nZXMgPSB0aGlzLnJvd0RhdGFEaWZmZXI/LmRpZmYodGhpcy5yb3dEYXRhKTtcbiAgICBpZiAoY2hhbmdlcykge1xuICAgICAgdGhpcy5fYXBwbHlDaGFuZ2VzKGNoYW5nZXMpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2FwcGx5Q2hhbmdlcyhjaGFuZ2VzOiBLZXlWYWx1ZUNoYW5nZXM8c3RyaW5nLCBhbnk+KSB7XG4gICAgY2hhbmdlcy5mb3JFYWNoQ2hhbmdlZEl0ZW0ocmVjb3JkID0+IHtcbiAgICAgIHRoaXMucm93Q2hhbmdlUmVjb3JkID0gcmVjb3JkO1xuICAgICAgdGhpcy5yb3dEYXRhQ2hhbmdlLmVtaXQocmVjb3JkKTtcbiAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH0pO1xuICB9XG5cbiAgX2dldFRleHQodmFsdWU6IGFueSkge1xuICAgIHJldHVybiB2YWx1ZSA9PT0gdW5kZWZpbmVkID8gJycgOiB0aGlzLl91dGlscy5pc0VtcHR5KHZhbHVlKSA/IHRoaXMucGxhY2Vob2xkZXIgOiB2YWx1ZTtcbiAgfVxuXG4gIF9nZXRUb29sdGlwKHZhbHVlOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5fdXRpbHMuaXNFbXB0eSh2YWx1ZSkgPyAnJyA6IHZhbHVlO1xuICB9XG5cbiAgX2dldEZvcm1hdHRlclRvb2x0aXAodmFsdWU6IGFueSkge1xuICAgIHJldHVybiB0aGlzLl91dGlscy5pc0NvbnRhaW5IVE1MKHZhbHVlKSB8fCB0aGlzLl91dGlscy5pc0VtcHR5KHZhbHVlKSA/ICcnIDogdmFsdWU7XG4gIH1cblxuICBfb25BY3Rpb25DbGljayhldmVudDogTW91c2VFdmVudCwgYnRuOiBNdHhHcmlkQ29sdW1uQnV0dG9uLCByb3dEYXRhOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIGlmICh0eXBlb2YgYnRuLnBvcCA9PT0gJ3N0cmluZycgfHwgaXNPYnNlcnZhYmxlKGJ0bi5wb3ApKSB7XG4gICAgICB0aGlzLl9kaWFsb2cub3Blbih7XG4gICAgICAgIHRpdGxlOiBidG4ucG9wLFxuICAgICAgICBidXR0b25zOiBbXG4gICAgICAgICAgeyBjb2xvcjogJ3ByaW1hcnknLCB0ZXh0OiAnT0snLCBvbkNsaWNrOiAoKSA9PiBidG4uY2xpY2s/Lihyb3dEYXRhKSB8fCB7fSB9LFxuICAgICAgICAgIHsgdGV4dDogJ0NMT1NFJyB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgYnRuLnBvcCA9PT0gJ29iamVjdCcpIHtcbiAgICAgIHRoaXMuX2RpYWxvZy5vcGVuKHtcbiAgICAgICAgdGl0bGU6IGJ0bi5wb3A/LnRpdGxlLFxuICAgICAgICBkZXNjcmlwdGlvbjogYnRuLnBvcD8uZGVzY3JpcHRpb24sXG4gICAgICAgIGJ1dHRvbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjb2xvcjogYnRuLnBvcD8ub2tDb2xvciB8fCAncHJpbWFyeScsXG4gICAgICAgICAgICB0ZXh0OiBidG4ucG9wPy5va1RleHQgfHwgJ09LJyxcbiAgICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IGJ0bi5jbGljaz8uKHJvd0RhdGEpIHx8IHt9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgY29sb3I6IGJ0bi5wb3A/LmNsb3NlQ29sb3IsXG4gICAgICAgICAgICB0ZXh0OiBidG4ucG9wPy5jbG9zZVRleHQgfHwgJ0NMT1NFJyxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGJ0bi5jbGljaz8uKHJvd0RhdGEpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBQcmV2aWV3IGVubGFyZ2VkIGltYWdlICovXG4gIF9vbkltYWdlUHJldmlldyh1cmxTdHI6IHN0cmluZykge1xuICAgIGNvbnN0IGltZ3M6IFBob3RvVmlld2VyLkltZ1tdID0gW107XG5cbiAgICB0aGlzLl91dGlscy5zdHIyYXJyKHVybFN0cikuZm9yRWFjaCgodXJsLCBpbmRleCkgPT4ge1xuICAgICAgaW1ncy5wdXNoKHsgdGl0bGU6IGluZGV4ICsgMSArICcnLCBzcmM6IHVybCB9KTtcbiAgICB9KTtcblxuICAgIGNvbnN0IGZvb3RlclRvb2xiYXIgPVxuICAgICAgaW1ncy5sZW5ndGggPiAxXG4gICAgICAgID8gWyd6b29tSW4nLCAnem9vbU91dCcsICdwcmV2JywgJ25leHQnLCAncm90YXRlUmlnaHQnLCAncm90YXRlTGVmdCcsICdhY3R1YWxTaXplJ11cbiAgICAgICAgOiBbJ3pvb21JbicsICd6b29tT3V0JywgJ3JvdGF0ZVJpZ2h0JywgJ3JvdGF0ZUxlZnQnLCAnYWN0dWFsU2l6ZSddO1xuXG4gICAgY29uc3Qgb3B0aW9uczogUGhvdG9WaWV3ZXIuT3B0aW9ucyA9IHtcbiAgICAgIHRpdGxlOiBpbWdzLmxlbmd0aCA+IDEsXG4gICAgICBmb290ZXJUb29sYmFyLFxuICAgIH07XG5cbiAgICBjb25zdCBwaG90b3ZpZXdlciA9IG5ldyBQaG90b1ZpZXdlcihpbWdzLCBvcHRpb25zKTtcbiAgfVxufVxuIiwiPHNwYW4gKm5nSWY9XCJzdW1tYXJ5OyBlbHNlIGN1c3RvbUNlbGxGb3JtYXR0aW5nVHBsXCJcclxuICAgICAgW3RpdGxlXT1cIl9nZXRGb3JtYXR0ZXJUb29sdGlwKChkYXRhIHwgY2VsbFN1bW1hcnk6IGNvbERlZikpXCJcclxuICAgICAgW2lubmVySFRNTF09XCJfZ2V0VGV4dCgoZGF0YSB8IGNlbGxTdW1tYXJ5OiBjb2xEZWYpKVwiPlxyXG48L3NwYW4+XHJcblxyXG48IS0tIEN1c3RvbSBmb3JtYXR0aW5nIC0tPlxyXG48bmctdGVtcGxhdGUgI2N1c3RvbUNlbGxGb3JtYXR0aW5nVHBsPlxyXG4gIDxzcGFuICpuZ0lmPVwiY29sRGVmLmZvcm1hdHRlcjsgZWxzZSBkZWZhdWx0Q2VsbEZvcm1hdHRpbmdUcGxcIlxyXG4gICAgICAgIFt0aXRsZV09XCJfZ2V0Rm9ybWF0dGVyVG9vbHRpcChjb2xEZWYuZm9ybWF0dGVyKHJvd0RhdGEsIGNvbERlZikpXCJcclxuICAgICAgICBbaW5uZXJIVE1MXT1cIl9nZXRUZXh0KGNvbERlZi5mb3JtYXR0ZXIocm93RGF0YSwgY29sRGVmKSlcIj5cclxuICA8L3NwYW4+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48IS0tIERlZmF1bHQgZm9ybWF0dGluZyAtLT5cclxuPG5nLXRlbXBsYXRlICNkZWZhdWx0Q2VsbEZvcm1hdHRpbmdUcGw+XHJcbiAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiY29sRGVmLnR5cGVcIj5cclxuICAgIDwhLS0gQnV0dG9ucyAtLT5cclxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIididXR0b24nXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgYnRuIG9mIGNvbERlZi5idXR0b25zIHwgY2VsbEFjdGlvbnM6IHJvd0RhdGE6IHJvd0NoYW5nZVJlY29yZDogcm93Q2hhbmdlUmVjb3JkPy5jdXJyZW50VmFsdWVcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWJ0bi5paWYgfHwgYnRuLmlpZihyb3dEYXRhKVwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiYnRuLnR5cGVcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3JhaXNlZCdcIj5cclxuICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIFtjb2xvcl09XCJidG4uY29sb3IgfHwgJ3ByaW1hcnknXCIgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJbJ210eC1ncmlkLWFjdGlvbi1idXR0b24nLCBidG4uY2xhc3MgfHwgJyddXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJidG4gfCBjZWxsQWN0aW9uRGlzYWJsZTogcm93RGF0YTogcm93Q2hhbmdlUmVjb3JkOiByb3dDaGFuZ2VSZWNvcmQ/LmN1cnJlbnRWYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCIoYnRuIHwgY2VsbEFjdGlvblRvb2x0aXApLm1lc3NhZ2UgfCB0b09ic2VydmFibGUgfCBhc3luY1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcENsYXNzXT1cIihidG4gfCBjZWxsQWN0aW9uVG9vbHRpcCkuY2xhc3NcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW21hdFRvb2x0aXBIaWRlRGVsYXldPVwiKGJ0biB8IGNlbGxBY3Rpb25Ub29sdGlwKS5oaWRlRGVsYXlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW21hdFRvb2x0aXBTaG93RGVsYXldPVwiKGJ0biB8IGNlbGxBY3Rpb25Ub29sdGlwKS5zaG93RGVsYXlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW21hdFRvb2x0aXBQb3NpdGlvbl09XCIoYnRuIHwgY2VsbEFjdGlvblRvb2x0aXApLnBvc2l0aW9uIHx8ICdiZWxvdydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW21hdFRvb2x0aXBQb3NpdGlvbkF0T3JpZ2luXT1cIihidG4gfCBjZWxsQWN0aW9uVG9vbHRpcCkucG9zaXRpb25BdE9yaWdpblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcFRvdWNoR2VzdHVyZXNdPVwiKGJ0biB8IGNlbGxBY3Rpb25Ub29sdGlwKS50b3VjaEdlc3R1cmVzIHx8ICdhdXRvJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcERpc2FibGVkXT1cIihidG4gfCBjZWxsQWN0aW9uVG9vbHRpcCkuZGlzYWJsZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW21hdEJhZGdlXT1cIihidG4gfCBjZWxsQWN0aW9uQmFkZ2UpLmNvbnRlbnQgfCB0b09ic2VydmFibGUgfCBhc3luY1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0QmFkZ2VEZXNjcmlwdGlvbl09XCIoYnRuIHwgY2VsbEFjdGlvbkJhZGdlKS5kZXNjcmlwdGlvbiB8IHRvT2JzZXJ2YWJsZSB8IGFzeW5jXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttYXRCYWRnZUNvbG9yXT1cIihidG4gfCBjZWxsQWN0aW9uQmFkZ2UpLmNvbG9yXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttYXRCYWRnZVBvc2l0aW9uXT1cIihidG4gfCBjZWxsQWN0aW9uQmFkZ2UpLnBvc2l0aW9uIHx8ICdhYm92ZSBhZnRlcidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW21hdEJhZGdlU2l6ZV09XCIoYnRuIHwgY2VsbEFjdGlvbkJhZGdlKS5zaXplIHx8ICdtZWRpdW0nXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttYXRCYWRnZU92ZXJsYXBdPVwiKGJ0biB8IGNlbGxBY3Rpb25CYWRnZSkub3ZlcmxhcFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0QmFkZ2VEaXNhYmxlZF09XCIoYnRuIHwgY2VsbEFjdGlvbkJhZGdlKS5kaXNhYmxlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0QmFkZ2VIaWRkZW5dPVwiKGJ0biB8IGNlbGxBY3Rpb25CYWRnZSkuaGlkZGVuXCJcclxuICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJfb25BY3Rpb25DbGljaygkZXZlbnQsIGJ0biwgcm93RGF0YSlcIj5cclxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIm10eC1ncmlkLWljb25cIiAqbmdJZj1cImJ0bi5pY29uXCI+e3tidG4uaWNvbn19PC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPnt7YnRuLnRleHQgfCB0b09ic2VydmFibGUgfCBhc3luY319PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3N0cm9rZWQnXCI+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gW2NvbG9yXT1cImJ0bi5jb2xvciB8fCAncHJpbWFyeSdcIiB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIlsnbXR4LWdyaWQtYWN0aW9uLWJ1dHRvbicsIGJ0bi5jbGFzcyB8fCAnJ11cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImJ0biB8IGNlbGxBY3Rpb25EaXNhYmxlOiByb3dEYXRhOiByb3dDaGFuZ2VSZWNvcmQ6IHJvd0NoYW5nZVJlY29yZD8uY3VycmVudFZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cIihidG4gfCBjZWxsQWN0aW9uVG9vbHRpcCkubWVzc2FnZSB8IHRvT2JzZXJ2YWJsZSB8IGFzeW5jXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwQ2xhc3NdPVwiKGJ0biB8IGNlbGxBY3Rpb25Ub29sdGlwKS5jbGFzc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcEhpZGVEZWxheV09XCIoYnRuIHwgY2VsbEFjdGlvblRvb2x0aXApLmhpZGVEZWxheVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcFNob3dEZWxheV09XCIoYnRuIHwgY2VsbEFjdGlvblRvb2x0aXApLnNob3dEZWxheVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcFBvc2l0aW9uXT1cIihidG4gfCBjZWxsQWN0aW9uVG9vbHRpcCkucG9zaXRpb24gfHwgJ2JlbG93J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcFBvc2l0aW9uQXRPcmlnaW5dPVwiKGJ0biB8IGNlbGxBY3Rpb25Ub29sdGlwKS5wb3NpdGlvbkF0T3JpZ2luXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwVG91Y2hHZXN0dXJlc109XCIoYnRuIHwgY2VsbEFjdGlvblRvb2x0aXApLnRvdWNoR2VzdHVyZXMgfHwgJ2F1dG8nXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwRGlzYWJsZWRdPVwiKGJ0biB8IGNlbGxBY3Rpb25Ub29sdGlwKS5kaXNhYmxlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0QmFkZ2VdPVwiKGJ0biB8IGNlbGxBY3Rpb25CYWRnZSkuY29udGVudCB8IHRvT2JzZXJ2YWJsZSB8IGFzeW5jXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttYXRCYWRnZURlc2NyaXB0aW9uXT1cIihidG4gfCBjZWxsQWN0aW9uQmFkZ2UpLmRlc2NyaXB0aW9uIHwgdG9PYnNlcnZhYmxlIHwgYXN5bmNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW21hdEJhZGdlQ29sb3JdPVwiKGJ0biB8IGNlbGxBY3Rpb25CYWRnZSkuY29sb3JcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW21hdEJhZGdlUG9zaXRpb25dPVwiKGJ0biB8IGNlbGxBY3Rpb25CYWRnZSkucG9zaXRpb24gfHwgJ2Fib3ZlIGFmdGVyJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0QmFkZ2VTaXplXT1cIihidG4gfCBjZWxsQWN0aW9uQmFkZ2UpLnNpemUgfHwgJ21lZGl1bSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW21hdEJhZGdlT3ZlcmxhcF09XCIoYnRuIHwgY2VsbEFjdGlvbkJhZGdlKS5vdmVybGFwXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttYXRCYWRnZURpc2FibGVkXT1cIihidG4gfCBjZWxsQWN0aW9uQmFkZ2UpLmRpc2FibGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttYXRCYWRnZUhpZGRlbl09XCIoYnRuIHwgY2VsbEFjdGlvbkJhZGdlKS5oaWRkZW5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIl9vbkFjdGlvbkNsaWNrKCRldmVudCwgYnRuLCByb3dEYXRhKVwiPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwibXR4LWdyaWQtaWNvblwiICpuZ0lmPVwiYnRuLmljb25cIj57e2J0bi5pY29ufX08L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+e3tidG4udGV4dCB8IHRvT2JzZXJ2YWJsZSB8IGFzeW5jfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZmxhdCdcIj5cclxuICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1mbGF0LWJ1dHRvbiBbY29sb3JdPVwiYnRuLmNvbG9yIHx8ICdwcmltYXJ5J1wiIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiWydtdHgtZ3JpZC1hY3Rpb24tYnV0dG9uJywgYnRuLmNsYXNzIHx8ICcnXVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiYnRuIHwgY2VsbEFjdGlvbkRpc2FibGU6IHJvd0RhdGE6IHJvd0NoYW5nZVJlY29yZDogcm93Q2hhbmdlUmVjb3JkPy5jdXJyZW50VmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwiKGJ0biB8IGNlbGxBY3Rpb25Ub29sdGlwKS5tZXNzYWdlIHwgdG9PYnNlcnZhYmxlIHwgYXN5bmNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW21hdFRvb2x0aXBDbGFzc109XCIoYnRuIHwgY2VsbEFjdGlvblRvb2x0aXApLmNsYXNzXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwSGlkZURlbGF5XT1cIihidG4gfCBjZWxsQWN0aW9uVG9vbHRpcCkuaGlkZURlbGF5XCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwU2hvd0RlbGF5XT1cIihidG4gfCBjZWxsQWN0aW9uVG9vbHRpcCkuc2hvd0RlbGF5XCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwUG9zaXRpb25dPVwiKGJ0biB8IGNlbGxBY3Rpb25Ub29sdGlwKS5wb3NpdGlvbiB8fCAnYmVsb3cnXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwUG9zaXRpb25BdE9yaWdpbl09XCIoYnRuIHwgY2VsbEFjdGlvblRvb2x0aXApLnBvc2l0aW9uQXRPcmlnaW5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW21hdFRvb2x0aXBUb3VjaEdlc3R1cmVzXT1cIihidG4gfCBjZWxsQWN0aW9uVG9vbHRpcCkudG91Y2hHZXN0dXJlcyB8fCAnYXV0bydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW21hdFRvb2x0aXBEaXNhYmxlZF09XCIoYnRuIHwgY2VsbEFjdGlvblRvb2x0aXApLmRpc2FibGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttYXRCYWRnZV09XCIoYnRuIHwgY2VsbEFjdGlvbkJhZGdlKS5jb250ZW50IHwgdG9PYnNlcnZhYmxlIHwgYXN5bmNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW21hdEJhZGdlRGVzY3JpcHRpb25dPVwiKGJ0biB8IGNlbGxBY3Rpb25CYWRnZSkuZGVzY3JpcHRpb24gfCB0b09ic2VydmFibGUgfCBhc3luY1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0QmFkZ2VDb2xvcl09XCIoYnRuIHwgY2VsbEFjdGlvbkJhZGdlKS5jb2xvclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0QmFkZ2VQb3NpdGlvbl09XCIoYnRuIHwgY2VsbEFjdGlvbkJhZGdlKS5wb3NpdGlvbiB8fCAnYWJvdmUgYWZ0ZXInXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttYXRCYWRnZVNpemVdPVwiKGJ0biB8IGNlbGxBY3Rpb25CYWRnZSkuc2l6ZSB8fCAnbWVkaXVtJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0QmFkZ2VPdmVybGFwXT1cIihidG4gfCBjZWxsQWN0aW9uQmFkZ2UpLm92ZXJsYXBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW21hdEJhZGdlRGlzYWJsZWRdPVwiKGJ0biB8IGNlbGxBY3Rpb25CYWRnZSkuZGlzYWJsZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW21hdEJhZGdlSGlkZGVuXT1cIihidG4gfCBjZWxsQWN0aW9uQmFkZ2UpLmhpZGRlblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiX29uQWN0aW9uQ2xpY2soJGV2ZW50LCBidG4sIHJvd0RhdGEpXCI+XHJcbiAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJtdHgtZ3JpZC1pY29uXCIgKm5nSWY9XCJidG4uaWNvblwiPnt7YnRuLmljb259fTwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj57e2J0bi50ZXh0IHwgdG9PYnNlcnZhYmxlIHwgYXN5bmN9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidpY29uJ1wiPlxyXG4gICAgICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIFtjb2xvcl09XCJidG4uY29sb3IgfHwgJ3ByaW1hcnknXCIgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJbJ210eC1ncmlkLWFjdGlvbi1idXR0b24nLCBidG4uY2xhc3MgfHwgJyddXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJidG4gfCBjZWxsQWN0aW9uRGlzYWJsZTogcm93RGF0YTogcm93Q2hhbmdlUmVjb3JkOiByb3dDaGFuZ2VSZWNvcmQ/LmN1cnJlbnRWYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCIoYnRuIHwgY2VsbEFjdGlvblRvb2x0aXApLm1lc3NhZ2UgfCB0b09ic2VydmFibGUgfCBhc3luY1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcENsYXNzXT1cIihidG4gfCBjZWxsQWN0aW9uVG9vbHRpcCkuY2xhc3NcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW21hdFRvb2x0aXBIaWRlRGVsYXldPVwiKGJ0biB8IGNlbGxBY3Rpb25Ub29sdGlwKS5oaWRlRGVsYXlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW21hdFRvb2x0aXBTaG93RGVsYXldPVwiKGJ0biB8IGNlbGxBY3Rpb25Ub29sdGlwKS5zaG93RGVsYXlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW21hdFRvb2x0aXBQb3NpdGlvbl09XCIoYnRuIHwgY2VsbEFjdGlvblRvb2x0aXApLnBvc2l0aW9uIHx8ICdiZWxvdydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW21hdFRvb2x0aXBQb3NpdGlvbkF0T3JpZ2luXT1cIihidG4gfCBjZWxsQWN0aW9uVG9vbHRpcCkucG9zaXRpb25BdE9yaWdpblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcFRvdWNoR2VzdHVyZXNdPVwiKGJ0biB8IGNlbGxBY3Rpb25Ub29sdGlwKS50b3VjaEdlc3R1cmVzIHx8ICdhdXRvJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcERpc2FibGVkXT1cIihidG4gfCBjZWxsQWN0aW9uVG9vbHRpcCkuZGlzYWJsZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW21hdEJhZGdlXT1cIihidG4gfCBjZWxsQWN0aW9uQmFkZ2UpLmNvbnRlbnQgfCB0b09ic2VydmFibGUgfCBhc3luY1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0QmFkZ2VEZXNjcmlwdGlvbl09XCIoYnRuIHwgY2VsbEFjdGlvbkJhZGdlKS5kZXNjcmlwdGlvbiB8IHRvT2JzZXJ2YWJsZSB8IGFzeW5jXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttYXRCYWRnZUNvbG9yXT1cIihidG4gfCBjZWxsQWN0aW9uQmFkZ2UpLmNvbG9yXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttYXRCYWRnZVBvc2l0aW9uXT1cIihidG4gfCBjZWxsQWN0aW9uQmFkZ2UpLnBvc2l0aW9uIHx8ICdhYm92ZSBhZnRlcidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW21hdEJhZGdlU2l6ZV09XCIoYnRuIHwgY2VsbEFjdGlvbkJhZGdlKS5zaXplIHx8ICdtZWRpdW0nXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttYXRCYWRnZU92ZXJsYXBdPVwiKGJ0biB8IGNlbGxBY3Rpb25CYWRnZSkub3ZlcmxhcFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0QmFkZ2VEaXNhYmxlZF09XCIoYnRuIHwgY2VsbEFjdGlvbkJhZGdlKS5kaXNhYmxlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0QmFkZ2VIaWRkZW5dPVwiKGJ0biB8IGNlbGxBY3Rpb25CYWRnZSkuaGlkZGVuXCJcclxuICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJfb25BY3Rpb25DbGljaygkZXZlbnQsIGJ0biwgcm93RGF0YSlcIj5cclxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIm10eC1ncmlkLWljb25cIj57e2J0bi5pY29ufX08L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2ZhYidcIj5cclxuICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1mYWIgW2NvbG9yXT1cImJ0bi5jb2xvciB8fCAncHJpbWFyeSdcIiB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIlsnbXR4LWdyaWQtYWN0aW9uLWJ1dHRvbicsIGJ0bi5jbGFzcyB8fCAnJ11cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImJ0biB8IGNlbGxBY3Rpb25EaXNhYmxlOiByb3dEYXRhOiByb3dDaGFuZ2VSZWNvcmQ6IHJvd0NoYW5nZVJlY29yZD8uY3VycmVudFZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cIihidG4gfCBjZWxsQWN0aW9uVG9vbHRpcCkubWVzc2FnZSB8IHRvT2JzZXJ2YWJsZSB8IGFzeW5jXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwQ2xhc3NdPVwiKGJ0biB8IGNlbGxBY3Rpb25Ub29sdGlwKS5jbGFzc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcEhpZGVEZWxheV09XCIoYnRuIHwgY2VsbEFjdGlvblRvb2x0aXApLmhpZGVEZWxheVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcFNob3dEZWxheV09XCIoYnRuIHwgY2VsbEFjdGlvblRvb2x0aXApLnNob3dEZWxheVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcFBvc2l0aW9uXT1cIihidG4gfCBjZWxsQWN0aW9uVG9vbHRpcCkucG9zaXRpb24gfHwgJ2JlbG93J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcFBvc2l0aW9uQXRPcmlnaW5dPVwiKGJ0biB8IGNlbGxBY3Rpb25Ub29sdGlwKS5wb3NpdGlvbkF0T3JpZ2luXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwVG91Y2hHZXN0dXJlc109XCIoYnRuIHwgY2VsbEFjdGlvblRvb2x0aXApLnRvdWNoR2VzdHVyZXMgfHwgJ2F1dG8nXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwRGlzYWJsZWRdPVwiKGJ0biB8IGNlbGxBY3Rpb25Ub29sdGlwKS5kaXNhYmxlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0QmFkZ2VdPVwiKGJ0biB8IGNlbGxBY3Rpb25CYWRnZSkuY29udGVudCB8IHRvT2JzZXJ2YWJsZSB8IGFzeW5jXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttYXRCYWRnZURlc2NyaXB0aW9uXT1cIihidG4gfCBjZWxsQWN0aW9uQmFkZ2UpLmRlc2NyaXB0aW9uIHwgdG9PYnNlcnZhYmxlIHwgYXN5bmNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW21hdEJhZGdlQ29sb3JdPVwiKGJ0biB8IGNlbGxBY3Rpb25CYWRnZSkuY29sb3JcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW21hdEJhZGdlUG9zaXRpb25dPVwiKGJ0biB8IGNlbGxBY3Rpb25CYWRnZSkucG9zaXRpb24gfHwgJ2Fib3ZlIGFmdGVyJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0QmFkZ2VTaXplXT1cIihidG4gfCBjZWxsQWN0aW9uQmFkZ2UpLnNpemUgfHwgJ21lZGl1bSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW21hdEJhZGdlT3ZlcmxhcF09XCIoYnRuIHwgY2VsbEFjdGlvbkJhZGdlKS5vdmVybGFwXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttYXRCYWRnZURpc2FibGVkXT1cIihidG4gfCBjZWxsQWN0aW9uQmFkZ2UpLmRpc2FibGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttYXRCYWRnZUhpZGRlbl09XCIoYnRuIHwgY2VsbEFjdGlvbkJhZGdlKS5oaWRkZW5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIl9vbkFjdGlvbkNsaWNrKCRldmVudCwgYnRuLCByb3dEYXRhKVwiPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwibXR4LWdyaWQtaWNvblwiPnt7YnRuLmljb259fTwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInbWluaS1mYWInXCI+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtbWluaS1mYWIgW2NvbG9yXT1cImJ0bi5jb2xvciB8fCAncHJpbWFyeSdcIiB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIlsnbXR4LWdyaWQtYWN0aW9uLWJ1dHRvbicsIGJ0bi5jbGFzcyB8fCAnJ11cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImJ0biB8IGNlbGxBY3Rpb25EaXNhYmxlOiByb3dEYXRhOiByb3dDaGFuZ2VSZWNvcmQ6IHJvd0NoYW5nZVJlY29yZD8uY3VycmVudFZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cIihidG4gfCBjZWxsQWN0aW9uVG9vbHRpcCkubWVzc2FnZSB8IHRvT2JzZXJ2YWJsZSB8IGFzeW5jXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwQ2xhc3NdPVwiKGJ0biB8IGNlbGxBY3Rpb25Ub29sdGlwKS5jbGFzc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcEhpZGVEZWxheV09XCIoYnRuIHwgY2VsbEFjdGlvblRvb2x0aXApLmhpZGVEZWxheVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcFNob3dEZWxheV09XCIoYnRuIHwgY2VsbEFjdGlvblRvb2x0aXApLnNob3dEZWxheVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcFBvc2l0aW9uXT1cIihidG4gfCBjZWxsQWN0aW9uVG9vbHRpcCkucG9zaXRpb24gfHwgJ2JlbG93J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcFBvc2l0aW9uQXRPcmlnaW5dPVwiKGJ0biB8IGNlbGxBY3Rpb25Ub29sdGlwKS5wb3NpdGlvbkF0T3JpZ2luXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwVG91Y2hHZXN0dXJlc109XCIoYnRuIHwgY2VsbEFjdGlvblRvb2x0aXApLnRvdWNoR2VzdHVyZXMgfHwgJ2F1dG8nXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwRGlzYWJsZWRdPVwiKGJ0biB8IGNlbGxBY3Rpb25Ub29sdGlwKS5kaXNhYmxlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0QmFkZ2VdPVwiKGJ0biB8IGNlbGxBY3Rpb25CYWRnZSkuY29udGVudCB8IHRvT2JzZXJ2YWJsZSB8IGFzeW5jXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttYXRCYWRnZURlc2NyaXB0aW9uXT1cIihidG4gfCBjZWxsQWN0aW9uQmFkZ2UpLmRlc2NyaXB0aW9uIHwgdG9PYnNlcnZhYmxlIHwgYXN5bmNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW21hdEJhZGdlQ29sb3JdPVwiKGJ0biB8IGNlbGxBY3Rpb25CYWRnZSkuY29sb3JcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW21hdEJhZGdlUG9zaXRpb25dPVwiKGJ0biB8IGNlbGxBY3Rpb25CYWRnZSkucG9zaXRpb24gfHwgJ2Fib3ZlIGFmdGVyJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0QmFkZ2VTaXplXT1cIihidG4gfCBjZWxsQWN0aW9uQmFkZ2UpLnNpemUgfHwgJ21lZGl1bSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW21hdEJhZGdlT3ZlcmxhcF09XCIoYnRuIHwgY2VsbEFjdGlvbkJhZGdlKS5vdmVybGFwXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttYXRCYWRnZURpc2FibGVkXT1cIihidG4gfCBjZWxsQWN0aW9uQmFkZ2UpLmRpc2FibGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttYXRCYWRnZUhpZGRlbl09XCIoYnRuIHwgY2VsbEFjdGlvbkJhZGdlKS5oaWRkZW5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIl9vbkFjdGlvbkNsaWNrKCRldmVudCwgYnRuLCByb3dEYXRhKVwiPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwibXR4LWdyaWQtaWNvblwiPnt7YnRuLmljb259fTwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaERlZmF1bHQ+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIFtjb2xvcl09XCJidG4uY29sb3IgfHwgJ3ByaW1hcnknXCIgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJbJ210eC1ncmlkLWFjdGlvbi1idXR0b24nLCBidG4uY2xhc3MgfHwgJyddXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJidG4gfCBjZWxsQWN0aW9uRGlzYWJsZTogcm93RGF0YTogcm93Q2hhbmdlUmVjb3JkOiByb3dDaGFuZ2VSZWNvcmQ/LmN1cnJlbnRWYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCIoYnRuIHwgY2VsbEFjdGlvblRvb2x0aXApLm1lc3NhZ2UgfCB0b09ic2VydmFibGUgfCBhc3luY1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcENsYXNzXT1cIihidG4gfCBjZWxsQWN0aW9uVG9vbHRpcCkuY2xhc3NcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW21hdFRvb2x0aXBIaWRlRGVsYXldPVwiKGJ0biB8IGNlbGxBY3Rpb25Ub29sdGlwKS5oaWRlRGVsYXlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW21hdFRvb2x0aXBTaG93RGVsYXldPVwiKGJ0biB8IGNlbGxBY3Rpb25Ub29sdGlwKS5zaG93RGVsYXlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW21hdFRvb2x0aXBQb3NpdGlvbl09XCIoYnRuIHwgY2VsbEFjdGlvblRvb2x0aXApLnBvc2l0aW9uIHx8ICdiZWxvdydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW21hdFRvb2x0aXBQb3NpdGlvbkF0T3JpZ2luXT1cIihidG4gfCBjZWxsQWN0aW9uVG9vbHRpcCkucG9zaXRpb25BdE9yaWdpblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcFRvdWNoR2VzdHVyZXNdPVwiKGJ0biB8IGNlbGxBY3Rpb25Ub29sdGlwKS50b3VjaEdlc3R1cmVzIHx8ICdhdXRvJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcERpc2FibGVkXT1cIihidG4gfCBjZWxsQWN0aW9uVG9vbHRpcCkuZGlzYWJsZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW21hdEJhZGdlXT1cIihidG4gfCBjZWxsQWN0aW9uQmFkZ2UpLmNvbnRlbnQgfCB0b09ic2VydmFibGUgfCBhc3luY1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0QmFkZ2VEZXNjcmlwdGlvbl09XCIoYnRuIHwgY2VsbEFjdGlvbkJhZGdlKS5kZXNjcmlwdGlvbiB8IHRvT2JzZXJ2YWJsZSB8IGFzeW5jXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttYXRCYWRnZUNvbG9yXT1cIihidG4gfCBjZWxsQWN0aW9uQmFkZ2UpLmNvbG9yXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttYXRCYWRnZVBvc2l0aW9uXT1cIihidG4gfCBjZWxsQWN0aW9uQmFkZ2UpLnBvc2l0aW9uIHx8ICdhYm92ZSBhZnRlcidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW21hdEJhZGdlU2l6ZV09XCIoYnRuIHwgY2VsbEFjdGlvbkJhZGdlKS5zaXplIHx8ICdtZWRpdW0nXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttYXRCYWRnZU92ZXJsYXBdPVwiKGJ0biB8IGNlbGxBY3Rpb25CYWRnZSkub3ZlcmxhcFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0QmFkZ2VEaXNhYmxlZF09XCIoYnRuIHwgY2VsbEFjdGlvbkJhZGdlKS5kaXNhYmxlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0QmFkZ2VIaWRkZW5dPVwiKGJ0biB8IGNlbGxBY3Rpb25CYWRnZSkuaGlkZGVuXCJcclxuICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJfb25BY3Rpb25DbGljaygkZXZlbnQsIGJ0biwgcm93RGF0YSlcIj5cclxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIm10eC1ncmlkLWljb25cIiAqbmdJZj1cImJ0bi5pY29uXCI+e3tidG4uaWNvbn19PC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPnt7YnRuLnRleHQgfCB0b09ic2VydmFibGUgfCBhc3luY319PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPCEtLSBUYWcgLS0+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIndGFnJ1wiPlxyXG4gICAgICA8bWF0LWNoaXAtbGlzdGJveCAqbmdJZj1cImNvbERlZi50YWcgJiYgY29sRGVmLnRhZ1tfdmFsdWVdOyBlbHNlIHRhZ0VtcHR5VHBsXCI+XHJcbiAgICAgICAgPG1hdC1jaGlwIGNvbG9yPVwicHJpbWFyeVwiIFtuZ0NsYXNzXT1cIlsnYmctJyArIGNvbERlZi50YWdbX3ZhbHVlXS5jb2xvcl1cIj5cclxuICAgICAgICAgIHt7Y29sRGVmLnRhZ1tfdmFsdWVdLnRleHR9fVxyXG4gICAgICAgIDwvbWF0LWNoaXA+XHJcbiAgICAgIDwvbWF0LWNoaXAtbGlzdGJveD5cclxuICAgICAgPG5nLXRlbXBsYXRlICN0YWdFbXB0eVRwbD57e192YWx1ZX19PC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPCEtLSBMaW5rIC0tPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2xpbmsnXCI+XHJcbiAgICAgIDxhIFtocmVmXT1cIl92YWx1ZVwiIHRhcmdldD1cIl9ibGFua1wiPnt7X3ZhbHVlfX08L2E+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwhLS0gSW1hZ2UgLS0+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInaW1hZ2UnXCI+XHJcbiAgICAgIDxpbWcgY2xhc3M9XCJtdHgtZ3JpZC1pbWdcIiBbc3JjXT1cIl92YWx1ZVwiIChjbGljayk9XCJfb25JbWFnZVByZXZpZXcoX3ZhbHVlKVwiPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8IS0tIEJvb2xlYW4gLS0+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInYm9vbGVhbidcIj5cclxuICAgICAgPHNwYW4gW3RpdGxlXT1cIl9nZXRUb29sdGlwKF92YWx1ZSlcIj57e19nZXRUZXh0KF92YWx1ZSl9fTwvc3Bhbj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPCEtLSBOdW1iZXIgLS0+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInbnVtYmVyJ1wiPlxyXG4gICAgICA8c3BhbiBbdGl0bGVdPVwiX2dldFRvb2x0aXAoX3ZhbHVlIHwgbnVtYmVyOiBjb2xEZWYudHlwZVBhcmFtZXRlcj8uZGlnaXRzSW5mbzpcclxuICAgICAgY29sRGVmLnR5cGVQYXJhbWV0ZXI/LmxvY2FsZSlcIj5cclxuICAgICAgICB7e19nZXRUZXh0KF92YWx1ZSB8IG51bWJlcjogY29sRGVmLnR5cGVQYXJhbWV0ZXI/LmRpZ2l0c0luZm86XHJcbiAgICAgICAgY29sRGVmLnR5cGVQYXJhbWV0ZXI/LmxvY2FsZSl9fVxyXG4gICAgICA8L3NwYW4+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwhLS0gQ3VycmVuY3kgLS0+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInY3VycmVuY3knXCI+XHJcbiAgICAgIDxzcGFuIFt0aXRsZV09XCJfZ2V0VG9vbHRpcChfdmFsdWUgfCBjdXJyZW5jeTogY29sRGVmLnR5cGVQYXJhbWV0ZXI/LmN1cnJlbmN5Q29kZTpcclxuICAgICAgY29sRGVmLnR5cGVQYXJhbWV0ZXI/LmRpc3BsYXk6XHJcbiAgICAgIGNvbERlZi50eXBlUGFyYW1ldGVyPy5kaWdpdHNJbmZvOlxyXG4gICAgICBjb2xEZWYudHlwZVBhcmFtZXRlcj8ubG9jYWxlKVwiPlxyXG4gICAgICAgIHt7X2dldFRleHQoX3ZhbHVlIHwgY3VycmVuY3k6IGNvbERlZi50eXBlUGFyYW1ldGVyPy5jdXJyZW5jeUNvZGU6XHJcbiAgICAgICAgY29sRGVmLnR5cGVQYXJhbWV0ZXI/LmRpc3BsYXk6XHJcbiAgICAgICAgY29sRGVmLnR5cGVQYXJhbWV0ZXI/LmRpZ2l0c0luZm86XHJcbiAgICAgICAgY29sRGVmLnR5cGVQYXJhbWV0ZXI/LmxvY2FsZSl9fVxyXG4gICAgICA8L3NwYW4+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwhLS0gUGVyY2VudCAtLT5cclxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidwZXJjZW50J1wiPlxyXG4gICAgICA8c3BhbiBbdGl0bGVdPVwiX2dldFRvb2x0aXAoX3ZhbHVlIHwgcGVyY2VudDogY29sRGVmLnR5cGVQYXJhbWV0ZXI/LmRpZ2l0c0luZm86XHJcbiAgICAgIGNvbERlZi50eXBlUGFyYW1ldGVyPy5sb2NhbGUpXCI+XHJcbiAgICAgICAge3tfZ2V0VGV4dChfdmFsdWUgfCBwZXJjZW50OiBjb2xEZWYudHlwZVBhcmFtZXRlcj8uZGlnaXRzSW5mbzpcclxuICAgICAgICBjb2xEZWYudHlwZVBhcmFtZXRlcj8ubG9jYWxlKX19XHJcbiAgICAgIDwvc3Bhbj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPCEtLSBEYXRlIC0tPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2RhdGUnXCI+XHJcbiAgICAgIDxzcGFuIFt0aXRsZV09XCJfZ2V0VG9vbHRpcChfdmFsdWUgfCBkYXRlOiBjb2xEZWYudHlwZVBhcmFtZXRlcj8uZm9ybWF0OlxyXG4gICAgICBjb2xEZWYudHlwZVBhcmFtZXRlcj8udGltZXpvbmU6XHJcbiAgICAgIGNvbERlZi50eXBlUGFyYW1ldGVyPy5sb2NhbGUpXCI+XHJcbiAgICAgICAge3tfZ2V0VGV4dChfdmFsdWUgfCBkYXRlOiBjb2xEZWYudHlwZVBhcmFtZXRlcj8uZm9ybWF0OlxyXG4gICAgICAgIGNvbERlZi50eXBlUGFyYW1ldGVyPy50aW1lem9uZTpcclxuICAgICAgICBjb2xEZWYudHlwZVBhcmFtZXRlcj8ubG9jYWxlKX19XHJcbiAgICAgIDwvc3Bhbj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPCEtLSBEZWZhdWx0IC0tPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxyXG4gICAgICA8c3BhbiBbdGl0bGVdPVwiX2dldFRvb2x0aXAoX3ZhbHVlKVwiPnt7X2dldFRleHQoX3ZhbHVlKX19PC9zcGFuPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
|
|
126
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2V4dGVuc2lvbnMvZ3JpZC9jZWxsLnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvZXh0ZW5zaW9ucy9ncmlkL2NlbGwuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQU1MLE1BQU0sRUFDTixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxXQUFXLE1BQU0sYUFBYSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7OztBQVlwQyxNQUFNLE9BQU8sV0FBVztJQXNCdEIsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsWUFDVSxPQUFrQixFQUNsQixNQUFvQixFQUNwQixRQUF5QixFQUN6QixrQkFBcUM7UUFIckMsWUFBTyxHQUFQLE9BQU8sQ0FBVztRQUNsQixXQUFNLEdBQU4sTUFBTSxDQUFjO1FBQ3BCLGFBQVEsR0FBUixRQUFRLENBQWlCO1FBQ3pCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7UUE3Qi9DLGVBQWU7UUFDTixZQUFPLEdBQXdCLEVBQUUsQ0FBQztRQUszQyxpQkFBaUI7UUFDUixTQUFJLEdBQVUsRUFBRSxDQUFDO1FBRTFCLDJCQUEyQjtRQUNsQixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBRXpCLDJEQUEyRDtRQUNsRCxnQkFBVyxHQUFXLElBQUksQ0FBQztRQUUxQixrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFxQyxDQUFDO0lBZTdFLENBQUM7SUFFSixRQUFRO1FBQ04sSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDakUsQ0FBQztJQUVELFNBQVM7UUFDUCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdkQsSUFBSSxPQUFPLEVBQUU7WUFDWCxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQzdCO0lBQ0gsQ0FBQztJQUVPLGFBQWEsQ0FBQyxPQUFxQztRQUN6RCxPQUFPLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDbEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxNQUFNLENBQUM7WUFDOUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDaEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3pDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFVO1FBQ2pCLE9BQU8sS0FBSyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQzFGLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBVTtRQUNwQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUNqRCxDQUFDO0lBRUQsb0JBQW9CLENBQUMsS0FBVTtRQUM3QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUNyRixDQUFDO0lBRUQsY0FBYyxDQUFDLEtBQWlCLEVBQUUsR0FBd0IsRUFBRSxPQUE0QjtRQUN0RixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBRXhCLElBQUksT0FBTyxHQUFHLENBQUMsR0FBRyxLQUFLLFFBQVEsSUFBSSxZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3hELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO2dCQUNoQixLQUFLLEVBQUUsR0FBRyxDQUFDLEdBQUc7Z0JBQ2QsT0FBTyxFQUFFO29CQUNQLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFO29CQUMzRSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUU7aUJBQ2xCO2FBQ0YsQ0FBQyxDQUFDO1NBQ0o7YUFBTSxJQUFJLE9BQU8sR0FBRyxDQUFDLEdBQUcsS0FBSyxRQUFRLEVBQUU7WUFDdEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7Z0JBQ2hCLEtBQUssRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUs7Z0JBQ3JCLFdBQVcsRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLFdBQVc7Z0JBQ2pDLE9BQU8sRUFBRTtvQkFDUDt3QkFDRSxLQUFLLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxPQUFPLElBQUksU0FBUzt3QkFDcEMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsTUFBTSxJQUFJLElBQUk7d0JBQzdCLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRTtxQkFDMUM7b0JBQ0Q7d0JBQ0UsS0FBSyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsVUFBVTt3QkFDMUIsSUFBSSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsU0FBUyxJQUFJLE9BQU87cUJBQ3BDO2lCQUNGO2FBQ0YsQ0FBQyxDQUFDO1NBQ0o7YUFBTTtZQUNMLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUN0QjtJQUNILENBQUM7SUFFRCw2QkFBNkI7SUFDN0IsZUFBZSxDQUFDLE1BQWM7UUFDNUIsTUFBTSxJQUFJLEdBQXNCLEVBQUUsQ0FBQztRQUVuQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDakQsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUNqRCxDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sYUFBYSxHQUNqQixJQUFJLENBQUMsTUFBTSxHQUFHLENBQUM7WUFDYixDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxZQUFZLENBQUM7WUFDbEYsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBRXZFLE1BQU0sT0FBTyxHQUF3QjtZQUNuQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDO1lBQ3RCLGFBQWE7U0FDZCxDQUFDO1FBRUYsTUFBTSxXQUFXLEdBQUcsSUFBSSxXQUFXLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3JELENBQUM7OzRIQXBIVSxXQUFXO2dIQUFYLFdBQVcsNk9DN0J4QixxMWpCQXVRQTs0RkQxT2EsV0FBVztrQkFSdkIsU0FBUzsrQkFDRSxlQUFlLFlBQ2YsYUFBYSxpQkFHUixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNO3lMQUl0QyxPQUFPO3NCQUFmLEtBQUs7Z0JBR0csTUFBTTtzQkFBZCxLQUFLO2dCQUdHLElBQUk7c0JBQVosS0FBSztnQkFHRyxPQUFPO3NCQUFmLEtBQUs7Z0JBR0csV0FBVztzQkFBbkIsS0FBSztnQkFFSSxhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIERvQ2hlY2ssXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIEtleVZhbHVlQ2hhbmdlUmVjb3JkLFxuICBLZXlWYWx1ZUNoYW5nZXMsXG4gIEtleVZhbHVlRGlmZmVyLFxuICBLZXlWYWx1ZURpZmZlcnMsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNdHhEaWFsb2cgfSBmcm9tICdAbmctbWF0ZXJvL2V4dGVuc2lvbnMvZGlhbG9nJztcbmltcG9ydCBQaG90b1ZpZXdlciBmcm9tICdwaG90b3ZpZXdlcic7XG5pbXBvcnQgeyBpc09ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE10eEdyaWRVdGlscyB9IGZyb20gJy4vZ3JpZC11dGlscyc7XG5pbXBvcnQgeyBNdHhHcmlkQ29sdW1uLCBNdHhHcmlkQ29sdW1uQnV0dG9uIH0gZnJvbSAnLi9pbnRlcmZhY2VzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbXR4LWdyaWQtY2VsbCcsXG4gIGV4cG9ydEFzOiAnbXR4R3JpZENlbGwnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2VsbC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2VsbC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBNdHhHcmlkQ2VsbCBpbXBsZW1lbnRzIE9uSW5pdCwgRG9DaGVjayB7XG4gIC8qKiBSb3cgZGF0YSAqL1xuICBASW5wdXQoKSByb3dEYXRhOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG5cbiAgLyoqIENvbHVtbiBkZWZpbml0aW9uICovXG4gIEBJbnB1dCgpIGNvbERlZiE6IE10eEdyaWRDb2x1bW47XG5cbiAgLyoqIFRhYmxlIGRhdGEgKi9cbiAgQElucHV0KCkgZGF0YTogYW55W10gPSBbXTtcblxuICAvKiogV2hldGhlciBzaG93IHN1bW1hcnkgKi9cbiAgQElucHV0KCkgc3VtbWFyeSA9IGZhbHNlO1xuXG4gIC8qKiBQbGFjZWhvbGRlciBmb3IgdGhlIGVtcHR5IHZhbHVlIChgbnVsbGAsIGAnJ2AsIGBbXWApICovXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnLS0nO1xuXG4gIEBPdXRwdXQoKSByb3dEYXRhQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxLZXlWYWx1ZUNoYW5nZVJlY29yZDxzdHJpbmcsIGFueT4+KCk7XG5cbiAgcHJpdmF0ZSByb3dEYXRhRGlmZmVyPzogS2V5VmFsdWVEaWZmZXI8c3RyaW5nLCBhbnk+O1xuXG4gIHJvd0NoYW5nZVJlY29yZD86IEtleVZhbHVlQ2hhbmdlUmVjb3JkPHN0cmluZywgYW55PjtcblxuICBnZXQgX3ZhbHVlKCkge1xuICAgIHJldHVybiB0aGlzLl91dGlscy5nZXRDZWxsVmFsdWUodGhpcy5yb3dEYXRhLCB0aGlzLmNvbERlZik7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9kaWFsb2c6IE10eERpYWxvZyxcbiAgICBwcml2YXRlIF91dGlsczogTXR4R3JpZFV0aWxzLFxuICAgIHByaXZhdGUgX2RpZmZlcnM6IEtleVZhbHVlRGlmZmVycyxcbiAgICBwcml2YXRlIF9jaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMucm93RGF0YURpZmZlciA9IHRoaXMuX2RpZmZlcnMuZmluZCh0aGlzLnJvd0RhdGEpLmNyZWF0ZSgpO1xuICB9XG5cbiAgbmdEb0NoZWNrKCk6IHZvaWQge1xuICAgIGNvbnN0IGNoYW5nZXMgPSB0aGlzLnJvd0RhdGFEaWZmZXI/LmRpZmYodGhpcy5yb3dEYXRhKTtcbiAgICBpZiAoY2hhbmdlcykge1xuICAgICAgdGhpcy5fYXBwbHlDaGFuZ2VzKGNoYW5nZXMpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2FwcGx5Q2hhbmdlcyhjaGFuZ2VzOiBLZXlWYWx1ZUNoYW5nZXM8c3RyaW5nLCBhbnk+KSB7XG4gICAgY2hhbmdlcy5mb3JFYWNoQ2hhbmdlZEl0ZW0ocmVjb3JkID0+IHtcbiAgICAgIHRoaXMucm93Q2hhbmdlUmVjb3JkID0gcmVjb3JkO1xuICAgICAgdGhpcy5yb3dEYXRhQ2hhbmdlLmVtaXQocmVjb3JkKTtcbiAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH0pO1xuICB9XG5cbiAgX2dldFRleHQodmFsdWU6IGFueSkge1xuICAgIHJldHVybiB2YWx1ZSA9PT0gdW5kZWZpbmVkID8gJycgOiB0aGlzLl91dGlscy5pc0VtcHR5KHZhbHVlKSA/IHRoaXMucGxhY2Vob2xkZXIgOiB2YWx1ZTtcbiAgfVxuXG4gIF9nZXRUb29sdGlwKHZhbHVlOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5fdXRpbHMuaXNFbXB0eSh2YWx1ZSkgPyAnJyA6IHZhbHVlO1xuICB9XG5cbiAgX2dldEZvcm1hdHRlclRvb2x0aXAodmFsdWU6IGFueSkge1xuICAgIHJldHVybiB0aGlzLl91dGlscy5pc0NvbnRhaW5IVE1MKHZhbHVlKSB8fCB0aGlzLl91dGlscy5pc0VtcHR5KHZhbHVlKSA/ICcnIDogdmFsdWU7XG4gIH1cblxuICBfb25BY3Rpb25DbGljayhldmVudDogTW91c2VFdmVudCwgYnRuOiBNdHhHcmlkQ29sdW1uQnV0dG9uLCByb3dEYXRhOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIGlmICh0eXBlb2YgYnRuLnBvcCA9PT0gJ3N0cmluZycgfHwgaXNPYnNlcnZhYmxlKGJ0bi5wb3ApKSB7XG4gICAgICB0aGlzLl9kaWFsb2cub3Blbih7XG4gICAgICAgIHRpdGxlOiBidG4ucG9wLFxuICAgICAgICBidXR0b25zOiBbXG4gICAgICAgICAgeyBjb2xvcjogJ3ByaW1hcnknLCB0ZXh0OiAnT0snLCBvbkNsaWNrOiAoKSA9PiBidG4uY2xpY2s/Lihyb3dEYXRhKSB8fCB7fSB9LFxuICAgICAgICAgIHsgdGV4dDogJ0NMT1NFJyB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgYnRuLnBvcCA9PT0gJ29iamVjdCcpIHtcbiAgICAgIHRoaXMuX2RpYWxvZy5vcGVuKHtcbiAgICAgICAgdGl0bGU6IGJ0bi5wb3A/LnRpdGxlLFxuICAgICAgICBkZXNjcmlwdGlvbjogYnRuLnBvcD8uZGVzY3JpcHRpb24sXG4gICAgICAgIGJ1dHRvbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjb2xvcjogYnRuLnBvcD8ub2tDb2xvciB8fCAncHJpbWFyeScsXG4gICAgICAgICAgICB0ZXh0OiBidG4ucG9wPy5va1RleHQgfHwgJ09LJyxcbiAgICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IGJ0bi5jbGljaz8uKHJvd0RhdGEpIHx8IHt9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgY29sb3I6IGJ0bi5wb3A/LmNsb3NlQ29sb3IsXG4gICAgICAgICAgICB0ZXh0OiBidG4ucG9wPy5jbG9zZVRleHQgfHwgJ0NMT1NFJyxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGJ0bi5jbGljaz8uKHJvd0RhdGEpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBQcmV2aWV3IGVubGFyZ2VkIGltYWdlICovXG4gIF9vbkltYWdlUHJldmlldyh1cmxTdHI6IHN0cmluZykge1xuICAgIGNvbnN0IGltZ3M6IFBob3RvVmlld2VyLkltZ1tdID0gW107XG5cbiAgICB0aGlzLl91dGlscy5zdHIyYXJyKHVybFN0cikuZm9yRWFjaCgodXJsLCBpbmRleCkgPT4ge1xuICAgICAgaW1ncy5wdXNoKHsgdGl0bGU6IGluZGV4ICsgMSArICcnLCBzcmM6IHVybCB9KTtcbiAgICB9KTtcblxuICAgIGNvbnN0IGZvb3RlclRvb2xiYXIgPVxuICAgICAgaW1ncy5sZW5ndGggPiAxXG4gICAgICAgID8gWyd6b29tSW4nLCAnem9vbU91dCcsICdwcmV2JywgJ25leHQnLCAncm90YXRlUmlnaHQnLCAncm90YXRlTGVmdCcsICdhY3R1YWxTaXplJ11cbiAgICAgICAgOiBbJ3pvb21JbicsICd6b29tT3V0JywgJ3JvdGF0ZVJpZ2h0JywgJ3JvdGF0ZUxlZnQnLCAnYWN0dWFsU2l6ZSddO1xuXG4gICAgY29uc3Qgb3B0aW9uczogUGhvdG9WaWV3ZXIuT3B0aW9ucyA9IHtcbiAgICAgIHRpdGxlOiBpbWdzLmxlbmd0aCA+IDEsXG4gICAgICBmb290ZXJUb29sYmFyLFxuICAgIH07XG5cbiAgICBjb25zdCBwaG90b3ZpZXdlciA9IG5ldyBQaG90b1ZpZXdlcihpbWdzLCBvcHRpb25zKTtcbiAgfVxufVxuIiwiPHNwYW4gKm5nSWY9XCJzdW1tYXJ5OyBlbHNlIGN1c3RvbUNlbGxGb3JtYXR0aW5nVHBsXCJcclxuICAgICAgW3RpdGxlXT1cIl9nZXRGb3JtYXR0ZXJUb29sdGlwKChkYXRhIHwgY2VsbFN1bW1hcnk6IGNvbERlZikpXCJcclxuICAgICAgW2lubmVySFRNTF09XCJfZ2V0VGV4dCgoZGF0YSB8IGNlbGxTdW1tYXJ5OiBjb2xEZWYpKVwiPlxyXG48L3NwYW4+XHJcblxyXG48IS0tIEN1c3RvbSBmb3JtYXR0aW5nIC0tPlxyXG48bmctdGVtcGxhdGUgI2N1c3RvbUNlbGxGb3JtYXR0aW5nVHBsPlxyXG4gIDxzcGFuICpuZ0lmPVwiY29sRGVmLmZvcm1hdHRlcjsgZWxzZSBkZWZhdWx0Q2VsbEZvcm1hdHRpbmdUcGxcIlxyXG4gICAgICAgIFt0aXRsZV09XCJfZ2V0Rm9ybWF0dGVyVG9vbHRpcChjb2xEZWYuZm9ybWF0dGVyKHJvd0RhdGEsIGNvbERlZikpXCJcclxuICAgICAgICBbaW5uZXJIVE1MXT1cIl9nZXRUZXh0KGNvbERlZi5mb3JtYXR0ZXIocm93RGF0YSwgY29sRGVmKSlcIj5cclxuICA8L3NwYW4+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48IS0tIERlZmF1bHQgZm9ybWF0dGluZyAtLT5cclxuPG5nLXRlbXBsYXRlICNkZWZhdWx0Q2VsbEZvcm1hdHRpbmdUcGw+XHJcbiAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiY29sRGVmLnR5cGVcIj5cclxuICAgIDwhLS0gQnV0dG9ucyAtLT5cclxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIididXR0b24nXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgYnRuIG9mIGNvbERlZi5idXR0b25zIHwgY2VsbEFjdGlvbnM6IHJvd0RhdGE6IHJvd0NoYW5nZVJlY29yZDogcm93Q2hhbmdlUmVjb3JkPy5jdXJyZW50VmFsdWVcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWJ0bi5paWYgfHwgYnRuLmlpZihyb3dEYXRhKVwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiYnRuLnR5cGVcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3JhaXNlZCdcIj5cclxuICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIFtjb2xvcl09XCJidG4uY29sb3IgfHwgJ3ByaW1hcnknXCIgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJbJ210eC1ncmlkLWFjdGlvbi1idXR0b24nLCBidG4uY2xhc3MgfHwgJyddXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJidG4gfCBjZWxsQWN0aW9uRGlzYWJsZTogcm93RGF0YTogcm93Q2hhbmdlUmVjb3JkOiByb3dDaGFuZ2VSZWNvcmQ/LmN1cnJlbnRWYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCIoYnRuIHwgY2VsbEFjdGlvblRvb2x0aXApLm1lc3NhZ2UgfCB0b09ic2VydmFibGUgfCBhc3luY1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcENsYXNzXT1cIihidG4gfCBjZWxsQWN0aW9uVG9vbHRpcCkuY2xhc3NcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW21hdFRvb2x0aXBIaWRlRGVsYXldPVwiKGJ0biB8IGNlbGxBY3Rpb25Ub29sdGlwKS5oaWRlRGVsYXlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW21hdFRvb2x0aXBTaG93RGVsYXldPVwiKGJ0biB8IGNlbGxBY3Rpb25Ub29sdGlwKS5zaG93RGVsYXlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW21hdFRvb2x0aXBQb3NpdGlvbl09XCIoYnRuIHwgY2VsbEFjdGlvblRvb2x0aXApLnBvc2l0aW9uIHx8ICdiZWxvdydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW21hdFRvb2x0aXBQb3NpdGlvbkF0T3JpZ2luXT1cIihidG4gfCBjZWxsQWN0aW9uVG9vbHRpcCkucG9zaXRpb25BdE9yaWdpblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcFRvdWNoR2VzdHVyZXNdPVwiKGJ0biB8IGNlbGxBY3Rpb25Ub29sdGlwKS50b3VjaEdlc3R1cmVzIHx8ICdhdXRvJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcERpc2FibGVkXT1cIihidG4gfCBjZWxsQWN0aW9uVG9vbHRpcCkuZGlzYWJsZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW21hdEJhZGdlXT1cIihidG4gfCBjZWxsQWN0aW9uQmFkZ2UpLmNvbnRlbnQgfCB0b09ic2VydmFibGUgfCBhc3luY1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0QmFkZ2VEZXNjcmlwdGlvbl09XCIoYnRuIHwgY2VsbEFjdGlvbkJhZGdlKS5kZXNjcmlwdGlvbiB8IHRvT2JzZXJ2YWJsZSB8IGFzeW5jXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttYXRCYWRnZUNvbG9yXT1cIihidG4gfCBjZWxsQWN0aW9uQmFkZ2UpLmNvbG9yXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttYXRCYWRnZVBvc2l0aW9uXT1cIihidG4gfCBjZWxsQWN0aW9uQmFkZ2UpLnBvc2l0aW9uIHx8ICdhYm92ZSBhZnRlcidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW21hdEJhZGdlU2l6ZV09XCIoYnRuIHwgY2VsbEFjdGlvbkJhZGdlKS5zaXplIHx8ICdtZWRpdW0nXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttYXRCYWRnZU92ZXJsYXBdPVwiKGJ0biB8IGNlbGxBY3Rpb25CYWRnZSkub3ZlcmxhcFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0QmFkZ2VEaXNhYmxlZF09XCIoYnRuIHwgY2VsbEFjdGlvbkJhZGdlKS5kaXNhYmxlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0QmFkZ2VIaWRkZW5dPVwiKGJ0biB8IGNlbGxBY3Rpb25CYWRnZSkuaGlkZGVuXCJcclxuICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJfb25BY3Rpb25DbGljaygkZXZlbnQsIGJ0biwgcm93RGF0YSlcIj5cclxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIm10eC1ncmlkLWljb25cIiAqbmdJZj1cImJ0bi5pY29uXCI+e3tidG4uaWNvbn19PC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPnt7YnRuLnRleHQgfCB0b09ic2VydmFibGUgfCBhc3luY319PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3N0cm9rZWQnXCI+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gW2NvbG9yXT1cImJ0bi5jb2xvciB8fCAncHJpbWFyeSdcIiB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIlsnbXR4LWdyaWQtYWN0aW9uLWJ1dHRvbicsIGJ0bi5jbGFzcyB8fCAnJ11cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImJ0biB8IGNlbGxBY3Rpb25EaXNhYmxlOiByb3dEYXRhOiByb3dDaGFuZ2VSZWNvcmQ6IHJvd0NoYW5nZVJlY29yZD8uY3VycmVudFZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cIihidG4gfCBjZWxsQWN0aW9uVG9vbHRpcCkubWVzc2FnZSB8IHRvT2JzZXJ2YWJsZSB8IGFzeW5jXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwQ2xhc3NdPVwiKGJ0biB8IGNlbGxBY3Rpb25Ub29sdGlwKS5jbGFzc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcEhpZGVEZWxheV09XCIoYnRuIHwgY2VsbEFjdGlvblRvb2x0aXApLmhpZGVEZWxheVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcFNob3dEZWxheV09XCIoYnRuIHwgY2VsbEFjdGlvblRvb2x0aXApLnNob3dEZWxheVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcFBvc2l0aW9uXT1cIihidG4gfCBjZWxsQWN0aW9uVG9vbHRpcCkucG9zaXRpb24gfHwgJ2JlbG93J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcFBvc2l0aW9uQXRPcmlnaW5dPVwiKGJ0biB8IGNlbGxBY3Rpb25Ub29sdGlwKS5wb3NpdGlvbkF0T3JpZ2luXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwVG91Y2hHZXN0dXJlc109XCIoYnRuIHwgY2VsbEFjdGlvblRvb2x0aXApLnRvdWNoR2VzdHVyZXMgfHwgJ2F1dG8nXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwRGlzYWJsZWRdPVwiKGJ0biB8IGNlbGxBY3Rpb25Ub29sdGlwKS5kaXNhYmxlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0QmFkZ2VdPVwiKGJ0biB8IGNlbGxBY3Rpb25CYWRnZSkuY29udGVudCB8IHRvT2JzZXJ2YWJsZSB8IGFzeW5jXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttYXRCYWRnZURlc2NyaXB0aW9uXT1cIihidG4gfCBjZWxsQWN0aW9uQmFkZ2UpLmRlc2NyaXB0aW9uIHwgdG9PYnNlcnZhYmxlIHwgYXN5bmNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW21hdEJhZGdlQ29sb3JdPVwiKGJ0biB8IGNlbGxBY3Rpb25CYWRnZSkuY29sb3JcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW21hdEJhZGdlUG9zaXRpb25dPVwiKGJ0biB8IGNlbGxBY3Rpb25CYWRnZSkucG9zaXRpb24gfHwgJ2Fib3ZlIGFmdGVyJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0QmFkZ2VTaXplXT1cIihidG4gfCBjZWxsQWN0aW9uQmFkZ2UpLnNpemUgfHwgJ21lZGl1bSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW21hdEJhZGdlT3ZlcmxhcF09XCIoYnRuIHwgY2VsbEFjdGlvbkJhZGdlKS5vdmVybGFwXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttYXRCYWRnZURpc2FibGVkXT1cIihidG4gfCBjZWxsQWN0aW9uQmFkZ2UpLmRpc2FibGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttYXRCYWRnZUhpZGRlbl09XCIoYnRuIHwgY2VsbEFjdGlvbkJhZGdlKS5oaWRkZW5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIl9vbkFjdGlvbkNsaWNrKCRldmVudCwgYnRuLCByb3dEYXRhKVwiPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwibXR4LWdyaWQtaWNvblwiICpuZ0lmPVwiYnRuLmljb25cIj57e2J0bi5pY29ufX08L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+e3tidG4udGV4dCB8IHRvT2JzZXJ2YWJsZSB8IGFzeW5jfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZmxhdCdcIj5cclxuICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1mbGF0LWJ1dHRvbiBbY29sb3JdPVwiYnRuLmNvbG9yIHx8ICdwcmltYXJ5J1wiIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiWydtdHgtZ3JpZC1hY3Rpb24tYnV0dG9uJywgYnRuLmNsYXNzIHx8ICcnXVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiYnRuIHwgY2VsbEFjdGlvbkRpc2FibGU6IHJvd0RhdGE6IHJvd0NoYW5nZVJlY29yZDogcm93Q2hhbmdlUmVjb3JkPy5jdXJyZW50VmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwiKGJ0biB8IGNlbGxBY3Rpb25Ub29sdGlwKS5tZXNzYWdlIHwgdG9PYnNlcnZhYmxlIHwgYXN5bmNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW21hdFRvb2x0aXBDbGFzc109XCIoYnRuIHwgY2VsbEFjdGlvblRvb2x0aXApLmNsYXNzXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwSGlkZURlbGF5XT1cIihidG4gfCBjZWxsQWN0aW9uVG9vbHRpcCkuaGlkZURlbGF5XCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwU2hvd0RlbGF5XT1cIihidG4gfCBjZWxsQWN0aW9uVG9vbHRpcCkuc2hvd0RlbGF5XCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwUG9zaXRpb25dPVwiKGJ0biB8IGNlbGxBY3Rpb25Ub29sdGlwKS5wb3NpdGlvbiB8fCAnYmVsb3cnXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwUG9zaXRpb25BdE9yaWdpbl09XCIoYnRuIHwgY2VsbEFjdGlvblRvb2x0aXApLnBvc2l0aW9uQXRPcmlnaW5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW21hdFRvb2x0aXBUb3VjaEdlc3R1cmVzXT1cIihidG4gfCBjZWxsQWN0aW9uVG9vbHRpcCkudG91Y2hHZXN0dXJlcyB8fCAnYXV0bydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW21hdFRvb2x0aXBEaXNhYmxlZF09XCIoYnRuIHwgY2VsbEFjdGlvblRvb2x0aXApLmRpc2FibGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttYXRCYWRnZV09XCIoYnRuIHwgY2VsbEFjdGlvbkJhZGdlKS5jb250ZW50IHwgdG9PYnNlcnZhYmxlIHwgYXN5bmNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW21hdEJhZGdlRGVzY3JpcHRpb25dPVwiKGJ0biB8IGNlbGxBY3Rpb25CYWRnZSkuZGVzY3JpcHRpb24gfCB0b09ic2VydmFibGUgfCBhc3luY1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0QmFkZ2VDb2xvcl09XCIoYnRuIHwgY2VsbEFjdGlvbkJhZGdlKS5jb2xvclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0QmFkZ2VQb3NpdGlvbl09XCIoYnRuIHwgY2VsbEFjdGlvbkJhZGdlKS5wb3NpdGlvbiB8fCAnYWJvdmUgYWZ0ZXInXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttYXRCYWRnZVNpemVdPVwiKGJ0biB8IGNlbGxBY3Rpb25CYWRnZSkuc2l6ZSB8fCAnbWVkaXVtJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0QmFkZ2VPdmVybGFwXT1cIihidG4gfCBjZWxsQWN0aW9uQmFkZ2UpLm92ZXJsYXBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW21hdEJhZGdlRGlzYWJsZWRdPVwiKGJ0biB8IGNlbGxBY3Rpb25CYWRnZSkuZGlzYWJsZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW21hdEJhZGdlSGlkZGVuXT1cIihidG4gfCBjZWxsQWN0aW9uQmFkZ2UpLmhpZGRlblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiX29uQWN0aW9uQ2xpY2soJGV2ZW50LCBidG4sIHJvd0RhdGEpXCI+XHJcbiAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJtdHgtZ3JpZC1pY29uXCIgKm5nSWY9XCJidG4uaWNvblwiPnt7YnRuLmljb259fTwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj57e2J0bi50ZXh0IHwgdG9PYnNlcnZhYmxlIHwgYXN5bmN9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidpY29uJ1wiPlxyXG4gICAgICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIFtjb2xvcl09XCJidG4uY29sb3IgfHwgJ3ByaW1hcnknXCIgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJbJ210eC1ncmlkLWFjdGlvbi1idXR0b24nLCBidG4uY2xhc3MgfHwgJyddXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJidG4gfCBjZWxsQWN0aW9uRGlzYWJsZTogcm93RGF0YTogcm93Q2hhbmdlUmVjb3JkOiByb3dDaGFuZ2VSZWNvcmQ/LmN1cnJlbnRWYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCIoYnRuIHwgY2VsbEFjdGlvblRvb2x0aXApLm1lc3NhZ2UgfCB0b09ic2VydmFibGUgfCBhc3luY1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcENsYXNzXT1cIihidG4gfCBjZWxsQWN0aW9uVG9vbHRpcCkuY2xhc3NcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW21hdFRvb2x0aXBIaWRlRGVsYXldPVwiKGJ0biB8IGNlbGxBY3Rpb25Ub29sdGlwKS5oaWRlRGVsYXlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW21hdFRvb2x0aXBTaG93RGVsYXldPVwiKGJ0biB8IGNlbGxBY3Rpb25Ub29sdGlwKS5zaG93RGVsYXlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW21hdFRvb2x0aXBQb3NpdGlvbl09XCIoYnRuIHwgY2VsbEFjdGlvblRvb2x0aXApLnBvc2l0aW9uIHx8ICdiZWxvdydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW21hdFRvb2x0aXBQb3NpdGlvbkF0T3JpZ2luXT1cIihidG4gfCBjZWxsQWN0aW9uVG9vbHRpcCkucG9zaXRpb25BdE9yaWdpblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcFRvdWNoR2VzdHVyZXNdPVwiKGJ0biB8IGNlbGxBY3Rpb25Ub29sdGlwKS50b3VjaEdlc3R1cmVzIHx8ICdhdXRvJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcERpc2FibGVkXT1cIihidG4gfCBjZWxsQWN0aW9uVG9vbHRpcCkuZGlzYWJsZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW21hdEJhZGdlXT1cIihidG4gfCBjZWxsQWN0aW9uQmFkZ2UpLmNvbnRlbnQgfCB0b09ic2VydmFibGUgfCBhc3luY1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0QmFkZ2VEZXNjcmlwdGlvbl09XCIoYnRuIHwgY2VsbEFjdGlvbkJhZGdlKS5kZXNjcmlwdGlvbiB8IHRvT2JzZXJ2YWJsZSB8IGFzeW5jXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttYXRCYWRnZUNvbG9yXT1cIihidG4gfCBjZWxsQWN0aW9uQmFkZ2UpLmNvbG9yXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttYXRCYWRnZVBvc2l0aW9uXT1cIihidG4gfCBjZWxsQWN0aW9uQmFkZ2UpLnBvc2l0aW9uIHx8ICdhYm92ZSBhZnRlcidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW21hdEJhZGdlU2l6ZV09XCIoYnRuIHwgY2VsbEFjdGlvbkJhZGdlKS5zaXplIHx8ICdtZWRpdW0nXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttYXRCYWRnZU92ZXJsYXBdPVwiKGJ0biB8IGNlbGxBY3Rpb25CYWRnZSkub3ZlcmxhcFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0QmFkZ2VEaXNhYmxlZF09XCIoYnRuIHwgY2VsbEFjdGlvbkJhZGdlKS5kaXNhYmxlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0QmFkZ2VIaWRkZW5dPVwiKGJ0biB8IGNlbGxBY3Rpb25CYWRnZSkuaGlkZGVuXCJcclxuICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJfb25BY3Rpb25DbGljaygkZXZlbnQsIGJ0biwgcm93RGF0YSlcIj5cclxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIm10eC1ncmlkLWljb25cIj57e2J0bi5pY29ufX08L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2ZhYidcIj5cclxuICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1mYWIgW2NvbG9yXT1cImJ0bi5jb2xvciB8fCAncHJpbWFyeSdcIiB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIlsnbXR4LWdyaWQtYWN0aW9uLWJ1dHRvbicsIGJ0bi5jbGFzcyB8fCAnJ11cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImJ0biB8IGNlbGxBY3Rpb25EaXNhYmxlOiByb3dEYXRhOiByb3dDaGFuZ2VSZWNvcmQ6IHJvd0NoYW5nZVJlY29yZD8uY3VycmVudFZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cIihidG4gfCBjZWxsQWN0aW9uVG9vbHRpcCkubWVzc2FnZSB8IHRvT2JzZXJ2YWJsZSB8IGFzeW5jXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwQ2xhc3NdPVwiKGJ0biB8IGNlbGxBY3Rpb25Ub29sdGlwKS5jbGFzc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcEhpZGVEZWxheV09XCIoYnRuIHwgY2VsbEFjdGlvblRvb2x0aXApLmhpZGVEZWxheVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcFNob3dEZWxheV09XCIoYnRuIHwgY2VsbEFjdGlvblRvb2x0aXApLnNob3dEZWxheVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcFBvc2l0aW9uXT1cIihidG4gfCBjZWxsQWN0aW9uVG9vbHRpcCkucG9zaXRpb24gfHwgJ2JlbG93J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcFBvc2l0aW9uQXRPcmlnaW5dPVwiKGJ0biB8IGNlbGxBY3Rpb25Ub29sdGlwKS5wb3NpdGlvbkF0T3JpZ2luXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwVG91Y2hHZXN0dXJlc109XCIoYnRuIHwgY2VsbEFjdGlvblRvb2x0aXApLnRvdWNoR2VzdHVyZXMgfHwgJ2F1dG8nXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwRGlzYWJsZWRdPVwiKGJ0biB8IGNlbGxBY3Rpb25Ub29sdGlwKS5kaXNhYmxlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0QmFkZ2VdPVwiKGJ0biB8IGNlbGxBY3Rpb25CYWRnZSkuY29udGVudCB8IHRvT2JzZXJ2YWJsZSB8IGFzeW5jXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttYXRCYWRnZURlc2NyaXB0aW9uXT1cIihidG4gfCBjZWxsQWN0aW9uQmFkZ2UpLmRlc2NyaXB0aW9uIHwgdG9PYnNlcnZhYmxlIHwgYXN5bmNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW21hdEJhZGdlQ29sb3JdPVwiKGJ0biB8IGNlbGxBY3Rpb25CYWRnZSkuY29sb3JcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW21hdEJhZGdlUG9zaXRpb25dPVwiKGJ0biB8IGNlbGxBY3Rpb25CYWRnZSkucG9zaXRpb24gfHwgJ2Fib3ZlIGFmdGVyJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0QmFkZ2VTaXplXT1cIihidG4gfCBjZWxsQWN0aW9uQmFkZ2UpLnNpemUgfHwgJ21lZGl1bSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW21hdEJhZGdlT3ZlcmxhcF09XCIoYnRuIHwgY2VsbEFjdGlvbkJhZGdlKS5vdmVybGFwXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttYXRCYWRnZURpc2FibGVkXT1cIihidG4gfCBjZWxsQWN0aW9uQmFkZ2UpLmRpc2FibGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttYXRCYWRnZUhpZGRlbl09XCIoYnRuIHwgY2VsbEFjdGlvbkJhZGdlKS5oaWRkZW5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIl9vbkFjdGlvbkNsaWNrKCRldmVudCwgYnRuLCByb3dEYXRhKVwiPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwibXR4LWdyaWQtaWNvblwiPnt7YnRuLmljb259fTwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInbWluaS1mYWInXCI+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtbWluaS1mYWIgW2NvbG9yXT1cImJ0bi5jb2xvciB8fCAncHJpbWFyeSdcIiB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIlsnbXR4LWdyaWQtYWN0aW9uLWJ1dHRvbicsIGJ0bi5jbGFzcyB8fCAnJ11cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImJ0biB8IGNlbGxBY3Rpb25EaXNhYmxlOiByb3dEYXRhOiByb3dDaGFuZ2VSZWNvcmQ6IHJvd0NoYW5nZVJlY29yZD8uY3VycmVudFZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cIihidG4gfCBjZWxsQWN0aW9uVG9vbHRpcCkubWVzc2FnZSB8IHRvT2JzZXJ2YWJsZSB8IGFzeW5jXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwQ2xhc3NdPVwiKGJ0biB8IGNlbGxBY3Rpb25Ub29sdGlwKS5jbGFzc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcEhpZGVEZWxheV09XCIoYnRuIHwgY2VsbEFjdGlvblRvb2x0aXApLmhpZGVEZWxheVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcFNob3dEZWxheV09XCIoYnRuIHwgY2VsbEFjdGlvblRvb2x0aXApLnNob3dEZWxheVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcFBvc2l0aW9uXT1cIihidG4gfCBjZWxsQWN0aW9uVG9vbHRpcCkucG9zaXRpb24gfHwgJ2JlbG93J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcFBvc2l0aW9uQXRPcmlnaW5dPVwiKGJ0biB8IGNlbGxBY3Rpb25Ub29sdGlwKS5wb3NpdGlvbkF0T3JpZ2luXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwVG91Y2hHZXN0dXJlc109XCIoYnRuIHwgY2VsbEFjdGlvblRvb2x0aXApLnRvdWNoR2VzdHVyZXMgfHwgJ2F1dG8nXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwRGlzYWJsZWRdPVwiKGJ0biB8IGNlbGxBY3Rpb25Ub29sdGlwKS5kaXNhYmxlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0QmFkZ2VdPVwiKGJ0biB8IGNlbGxBY3Rpb25CYWRnZSkuY29udGVudCB8IHRvT2JzZXJ2YWJsZSB8IGFzeW5jXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttYXRCYWRnZURlc2NyaXB0aW9uXT1cIihidG4gfCBjZWxsQWN0aW9uQmFkZ2UpLmRlc2NyaXB0aW9uIHwgdG9PYnNlcnZhYmxlIHwgYXN5bmNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW21hdEJhZGdlQ29sb3JdPVwiKGJ0biB8IGNlbGxBY3Rpb25CYWRnZSkuY29sb3JcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW21hdEJhZGdlUG9zaXRpb25dPVwiKGJ0biB8IGNlbGxBY3Rpb25CYWRnZSkucG9zaXRpb24gfHwgJ2Fib3ZlIGFmdGVyJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0QmFkZ2VTaXplXT1cIihidG4gfCBjZWxsQWN0aW9uQmFkZ2UpLnNpemUgfHwgJ21lZGl1bSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW21hdEJhZGdlT3ZlcmxhcF09XCIoYnRuIHwgY2VsbEFjdGlvbkJhZGdlKS5vdmVybGFwXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttYXRCYWRnZURpc2FibGVkXT1cIihidG4gfCBjZWxsQWN0aW9uQmFkZ2UpLmRpc2FibGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttYXRCYWRnZUhpZGRlbl09XCIoYnRuIHwgY2VsbEFjdGlvbkJhZGdlKS5oaWRkZW5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIl9vbkFjdGlvbkNsaWNrKCRldmVudCwgYnRuLCByb3dEYXRhKVwiPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwibXR4LWdyaWQtaWNvblwiPnt7YnRuLmljb259fTwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaERlZmF1bHQ+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIFtjb2xvcl09XCJidG4uY29sb3IgfHwgJ3ByaW1hcnknXCIgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJbJ210eC1ncmlkLWFjdGlvbi1idXR0b24nLCBidG4uY2xhc3MgfHwgJyddXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJidG4gfCBjZWxsQWN0aW9uRGlzYWJsZTogcm93RGF0YTogcm93Q2hhbmdlUmVjb3JkOiByb3dDaGFuZ2VSZWNvcmQ/LmN1cnJlbnRWYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCIoYnRuIHwgY2VsbEFjdGlvblRvb2x0aXApLm1lc3NhZ2UgfCB0b09ic2VydmFibGUgfCBhc3luY1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcENsYXNzXT1cIihidG4gfCBjZWxsQWN0aW9uVG9vbHRpcCkuY2xhc3NcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW21hdFRvb2x0aXBIaWRlRGVsYXldPVwiKGJ0biB8IGNlbGxBY3Rpb25Ub29sdGlwKS5oaWRlRGVsYXlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW21hdFRvb2x0aXBTaG93RGVsYXldPVwiKGJ0biB8IGNlbGxBY3Rpb25Ub29sdGlwKS5zaG93RGVsYXlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW21hdFRvb2x0aXBQb3NpdGlvbl09XCIoYnRuIHwgY2VsbEFjdGlvblRvb2x0aXApLnBvc2l0aW9uIHx8ICdiZWxvdydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW21hdFRvb2x0aXBQb3NpdGlvbkF0T3JpZ2luXT1cIihidG4gfCBjZWxsQWN0aW9uVG9vbHRpcCkucG9zaXRpb25BdE9yaWdpblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcFRvdWNoR2VzdHVyZXNdPVwiKGJ0biB8IGNlbGxBY3Rpb25Ub29sdGlwKS50b3VjaEdlc3R1cmVzIHx8ICdhdXRvJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcERpc2FibGVkXT1cIihidG4gfCBjZWxsQWN0aW9uVG9vbHRpcCkuZGlzYWJsZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW21hdEJhZGdlXT1cIihidG4gfCBjZWxsQWN0aW9uQmFkZ2UpLmNvbnRlbnQgfCB0b09ic2VydmFibGUgfCBhc3luY1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0QmFkZ2VEZXNjcmlwdGlvbl09XCIoYnRuIHwgY2VsbEFjdGlvbkJhZGdlKS5kZXNjcmlwdGlvbiB8IHRvT2JzZXJ2YWJsZSB8IGFzeW5jXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttYXRCYWRnZUNvbG9yXT1cIihidG4gfCBjZWxsQWN0aW9uQmFkZ2UpLmNvbG9yXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttYXRCYWRnZVBvc2l0aW9uXT1cIihidG4gfCBjZWxsQWN0aW9uQmFkZ2UpLnBvc2l0aW9uIHx8ICdhYm92ZSBhZnRlcidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW21hdEJhZGdlU2l6ZV09XCIoYnRuIHwgY2VsbEFjdGlvbkJhZGdlKS5zaXplIHx8ICdtZWRpdW0nXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttYXRCYWRnZU92ZXJsYXBdPVwiKGJ0biB8IGNlbGxBY3Rpb25CYWRnZSkub3ZlcmxhcFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0QmFkZ2VEaXNhYmxlZF09XCIoYnRuIHwgY2VsbEFjdGlvbkJhZGdlKS5kaXNhYmxlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0QmFkZ2VIaWRkZW5dPVwiKGJ0biB8IGNlbGxBY3Rpb25CYWRnZSkuaGlkZGVuXCJcclxuICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJfb25BY3Rpb25DbGljaygkZXZlbnQsIGJ0biwgcm93RGF0YSlcIj5cclxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIm10eC1ncmlkLWljb25cIiAqbmdJZj1cImJ0bi5pY29uXCI+e3tidG4uaWNvbn19PC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPnt7YnRuLnRleHQgfCB0b09ic2VydmFibGUgfCBhc3luY319PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPCEtLSBUYWcgLS0+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIndGFnJ1wiPlxyXG4gICAgICA8bWF0LWNoaXAtbGlzdGJveCAqbmdJZj1cImNvbERlZi50YWcgJiYgY29sRGVmLnRhZ1tfdmFsdWVdOyBlbHNlIHRhZ0VtcHR5VHBsXCI+XHJcbiAgICAgICAgPG1hdC1jaGlwIGNvbG9yPVwicHJpbWFyeVwiIFtuZ0NsYXNzXT1cIlsnYmctJyArIGNvbERlZi50YWdbX3ZhbHVlXS5jb2xvcl1cIj5cclxuICAgICAgICAgIHt7Y29sRGVmLnRhZ1tfdmFsdWVdLnRleHR9fVxyXG4gICAgICAgIDwvbWF0LWNoaXA+XHJcbiAgICAgIDwvbWF0LWNoaXAtbGlzdGJveD5cclxuICAgICAgPG5nLXRlbXBsYXRlICN0YWdFbXB0eVRwbD57e192YWx1ZX19PC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPCEtLSBMaW5rIC0tPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2xpbmsnXCI+XHJcbiAgICAgIDxhIFtocmVmXT1cIl92YWx1ZVwiIHRhcmdldD1cIl9ibGFua1wiPnt7X3ZhbHVlfX08L2E+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwhLS0gSW1hZ2UgLS0+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInaW1hZ2UnXCI+XHJcbiAgICAgIDxpbWcgY2xhc3M9XCJtdHgtZ3JpZC1pbWdcIiBbc3JjXT1cIl92YWx1ZVwiIChjbGljayk9XCJfb25JbWFnZVByZXZpZXcoX3ZhbHVlKVwiPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8IS0tIEJvb2xlYW4gLS0+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInYm9vbGVhbidcIj5cclxuICAgICAgPHNwYW4gW3RpdGxlXT1cIl9nZXRUb29sdGlwKF92YWx1ZSlcIj57e19nZXRUZXh0KF92YWx1ZSl9fTwvc3Bhbj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPCEtLSBOdW1iZXIgLS0+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInbnVtYmVyJ1wiPlxyXG4gICAgICA8c3BhbiBbdGl0bGVdPVwiX2dldFRvb2x0aXAoX3ZhbHVlIHwgbnVtYmVyOiBjb2xEZWYudHlwZVBhcmFtZXRlcj8uZGlnaXRzSW5mbzpcclxuICAgICAgY29sRGVmLnR5cGVQYXJhbWV0ZXI/LmxvY2FsZSlcIj5cclxuICAgICAgICB7e19nZXRUZXh0KF92YWx1ZSB8IG51bWJlcjogY29sRGVmLnR5cGVQYXJhbWV0ZXI/LmRpZ2l0c0luZm86XHJcbiAgICAgICAgY29sRGVmLnR5cGVQYXJhbWV0ZXI/LmxvY2FsZSl9fVxyXG4gICAgICA8L3NwYW4+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwhLS0gQ3VycmVuY3kgLS0+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInY3VycmVuY3knXCI+XHJcbiAgICAgIDxzcGFuIFt0aXRsZV09XCJfZ2V0VG9vbHRpcChfdmFsdWUgfCBjdXJyZW5jeTogY29sRGVmLnR5cGVQYXJhbWV0ZXI/LmN1cnJlbmN5Q29kZTpcclxuICAgICAgY29sRGVmLnR5cGVQYXJhbWV0ZXI/LmRpc3BsYXk6XHJcbiAgICAgIGNvbERlZi50eXBlUGFyYW1ldGVyPy5kaWdpdHNJbmZvOlxyXG4gICAgICBjb2xEZWYudHlwZVBhcmFtZXRlcj8ubG9jYWxlKVwiPlxyXG4gICAgICAgIHt7X2dldFRleHQoX3ZhbHVlIHwgY3VycmVuY3k6IGNvbERlZi50eXBlUGFyYW1ldGVyPy5jdXJyZW5jeUNvZGU6XHJcbiAgICAgICAgY29sRGVmLnR5cGVQYXJhbWV0ZXI/LmRpc3BsYXk6XHJcbiAgICAgICAgY29sRGVmLnR5cGVQYXJhbWV0ZXI/LmRpZ2l0c0luZm86XHJcbiAgICAgICAgY29sRGVmLnR5cGVQYXJhbWV0ZXI/LmxvY2FsZSl9fVxyXG4gICAgICA8L3NwYW4+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwhLS0gUGVyY2VudCAtLT5cclxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidwZXJjZW50J1wiPlxyXG4gICAgICA8c3BhbiBbdGl0bGVdPVwiX2dldFRvb2x0aXAoX3ZhbHVlIHwgcGVyY2VudDogY29sRGVmLnR5cGVQYXJhbWV0ZXI/LmRpZ2l0c0luZm86XHJcbiAgICAgIGNvbERlZi50eXBlUGFyYW1ldGVyPy5sb2NhbGUpXCI+XHJcbiAgICAgICAge3tfZ2V0VGV4dChfdmFsdWUgfCBwZXJjZW50OiBjb2xEZWYudHlwZVBhcmFtZXRlcj8uZGlnaXRzSW5mbzpcclxuICAgICAgICBjb2xEZWYudHlwZVBhcmFtZXRlcj8ubG9jYWxlKX19XHJcbiAgICAgIDwvc3Bhbj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPCEtLSBEYXRlIC0tPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2RhdGUnXCI+XHJcbiAgICAgIDxzcGFuIFt0aXRsZV09XCJfZ2V0VG9vbHRpcChfdmFsdWUgfCBkYXRlOiBjb2xEZWYudHlwZVBhcmFtZXRlcj8uZm9ybWF0OlxyXG4gICAgICBjb2xEZWYudHlwZVBhcmFtZXRlcj8udGltZXpvbmU6XHJcbiAgICAgIGNvbERlZi50eXBlUGFyYW1ldGVyPy5sb2NhbGUpXCI+XHJcbiAgICAgICAge3tfZ2V0VGV4dChfdmFsdWUgfCBkYXRlOiBjb2xEZWYudHlwZVBhcmFtZXRlcj8uZm9ybWF0OlxyXG4gICAgICAgIGNvbERlZi50eXBlUGFyYW1ldGVyPy50aW1lem9uZTpcclxuICAgICAgICBjb2xEZWYudHlwZVBhcmFtZXRlcj8ubG9jYWxlKX19XHJcbiAgICAgIDwvc3Bhbj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPCEtLSBEZWZhdWx0IC0tPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxyXG4gICAgICA8c3BhbiBbdGl0bGVdPVwiX2dldFRvb2x0aXAoX3ZhbHVlKVwiPnt7X2dldFRleHQoX3ZhbHVlKX19PC9zcGFuPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
|
|
@@ -67,9 +67,9 @@ export class MtxGridColumnMenu {
|
|
|
67
67
|
}
|
|
68
68
|
}
|
|
69
69
|
}
|
|
70
|
-
/** @nocollapse */ MtxGridColumnMenu.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
71
|
-
/** @nocollapse */ MtxGridColumnMenu.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.1", type: MtxGridColumnMenu, selector: "mtx-grid-column-menu", inputs: { columns: "columns", selectable: "selectable", selectableChecked: "selectableChecked", sortable: "sortable", pinnable: "pinnable", buttonText: "buttonText", buttonType: "buttonType", buttonColor: "buttonColor", buttonClass: "buttonClass", buttonIcon: "buttonIcon", showHeader: "showHeader", headerText: "headerText", headerTemplate: "headerTemplate", showFooter: "showFooter", footerText: "footerText", footerTemplate: "footerTemplate", pinOptions: "pinOptions" }, outputs: { columnChange: "columnChange" }, viewQueries: [{ propertyName: "menuPanel", first: true, predicate: ["menu"], descendants: true, static: true }, { propertyName: "menuTrigger", first: true, predicate: MatMenuTrigger, descendants: true }], exportAs: ["mtxGridColumnMenu"], ngImport: i0, template: "<ng-container [ngSwitch]=\"buttonType\">\r\n <ng-container *ngSwitchCase=\"'raised'\">\r\n <button [ngClass]=\"buttonClass\" mat-raised-button type=\"button\" [color]=\"buttonColor\"\r\n [matMenuTriggerFor]=\"menu\">\r\n <mat-icon *ngIf=\"buttonIcon\">{{buttonIcon}}</mat-icon> {{buttonText}}\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'stroked'\">\r\n <button [ngClass]=\"buttonClass\" mat-stroked-button type=\"button\" [color]=\"buttonColor\"\r\n [matMenuTriggerFor]=\"menu\">\r\n <mat-icon *ngIf=\"buttonIcon\">{{buttonIcon}}</mat-icon> {{buttonText}}\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'flat'\">\r\n <button [ngClass]=\"buttonClass\" mat-flat-button type=\"button\" [color]=\"buttonColor\"\r\n [matMenuTriggerFor]=\"menu\">\r\n <mat-icon *ngIf=\"buttonIcon\">{{buttonIcon}}</mat-icon> {{buttonText}}\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'icon'\">\r\n <button [ngClass]=\"buttonClass\" mat-icon-button type=\"button\" [color]=\"buttonColor\"\r\n [matMenuTriggerFor]=\"menu\">\r\n <mat-icon *ngIf=\"buttonIcon\">{{buttonIcon}}</mat-icon>\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'fab'\">\r\n <button [ngClass]=\"buttonClass\" mat-fab type=\"button\" [color]=\"buttonColor\"\r\n [matMenuTriggerFor]=\"menu\">\r\n <mat-icon *ngIf=\"buttonIcon\">{{buttonIcon}}</mat-icon> {{buttonText}}\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'mini-fab'\">\r\n <button [ngClass]=\"buttonClass\" mat-mini-fab type=\"button\" [color]=\"buttonColor\"\r\n [matMenuTriggerFor]=\"menu\">\r\n <mat-icon *ngIf=\"buttonIcon\">{{buttonIcon}}</mat-icon> {{buttonText}}\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <button [ngClass]=\"buttonClass\" mat-button type=\"button\" [color]=\"buttonColor\"\r\n [matMenuTriggerFor]=\"menu\">\r\n <mat-icon *ngIf=\"buttonIcon\">{{buttonIcon}}</mat-icon> {{buttonText}}\r\n </button>\r\n </ng-container>\r\n</ng-container>\r\n\r\n<mat-menu #menu=\"matMenu\" class=\"mtx-grid-column-menu\">\r\n <div class=\"mtx-grid-column-menu-content\"\r\n (click)=\"$event.stopPropagation()\" (keydown)=\"$event.stopPropagation()\">\r\n <div class=\"mtx-grid-column-menu-header\" *ngIf=\"showHeader\">\r\n <ng-template [ngIf]=\"headerTemplate\" [ngIfElse]=\"defaultHeaderTpl\">\r\n <ng-template [ngTemplateOutlet]=\"headerTemplate\"></ng-template>\r\n </ng-template>\r\n <ng-template #defaultHeaderTpl>{{headerText}}</ng-template>\r\n </div>\r\n\r\n <div class=\"mtx-grid-column-menu-body\">\r\n <div class=\"mtx-grid-column-menu-list\" *ngIf=\"sortable\"\r\n cdkDropList (cdkDropListDropped)=\"_handleDroped($event)\">\r\n <div class=\"mtx-grid-column-menu-item\" *ngFor=\"let col of columns\"\r\n cdkDrag [cdkDragDisabled]=\"selectableChecked === 'show'? !col.show : col.hide\">\r\n <svg class=\"mtx-grid-icon mtx-grid-column-drag-handle-icon\" viewBox=\"0 0 24 24\"\r\n width=\"24px\" height=\"24px\" fill=\"currentColor\" focusable=\"false\">\r\n <path\r\n d=\"M7,19V17H9V19H7M11,19V17H13V19H11M15,19V17H17V19H15M7,15V13H9V15H7M11,15V13H13V15H11M15,15V13H17V15H15M7,11V9H9V11H7M11,11V9H13V11H11M15,11V9H17V11H15M7,7V5H9V7H7M11,7V5H13V7H11M15,7V5H17V7H15Z\">\r\n </path>\r\n </svg>\r\n <ng-template [ngTemplateOutlet]=\"checkboxList\"\r\n [ngTemplateOutletContext]=\"{ $implicit: col }\">\r\n </ng-template>\r\n </div>\r\n </div>\r\n\r\n <div class=\"mtx-grid-column-menu-list\" *ngIf=\"!sortable\">\r\n <div class=\"mtx-grid-column-menu-item\" *ngFor=\"let col of columns\">\r\n <ng-template [ngTemplateOutlet]=\"checkboxList\"\r\n [ngTemplateOutletContext]=\"{ $implicit: col }\">\r\n </ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"mtx-grid-column-menu-footer\" *ngIf=\"showFooter\">\r\n <ng-template [ngIf]=\"footerTemplate\" [ngIfElse]=\"defaultFooterTpl\">\r\n <ng-template [ngTemplateOutlet]=\"footerTemplate\"></ng-template>\r\n </ng-template>\r\n <ng-template #defaultFooterTpl>{{footerText}}</ng-template>\r\n </div>\r\n </div>\r\n</mat-menu>\r\n\r\n<ng-template #checkboxList let-col>\r\n <ng-container *ngIf=\"pinnable\">\r\n <button class=\"mtx-grid-column-pin-button\" mat-icon-button type=\"button\"\r\n [matMenuTriggerFor]=\"pinList\">\r\n <svg class=\"mtx-grid-icon mtx-grid-column-pin-icon\" *ngIf=\"col.pinned\"\r\n viewBox=\"0 0 24 24\" width=\"24px\" height=\"24px\" fill=\"currentColor\" focusable=\"false\">\r\n <path d=\"M16,12V4H17V2H7V4H8V12L6,14V16H11.2V22H12.8V16H18V14L16,12Z\" />\r\n </svg>\r\n <svg class=\"mtx-grid-icon mtx-grid-column-pin-off-icon\" *ngIf=\"!col.pinned\"\r\n viewBox=\"0 0 24 24\" width=\"24px\" height=\"24px\" fill=\"currentColor\" focusable=\"false\">\r\n <path\r\n d=\"M2,5.27L3.28,4L20,20.72L18.73,22L12.8,16.07V22H11.2V16H6V14L8,12V11.27L2,5.27M16,12L18,14V16H17.82L8,6.18V4H7V2H17V4H16V12Z\" />\r\n </svg>\r\n </button>\r\n <mat-menu #pinList=\"matMenu\" class=\"mtx-grid-column-pin-list\">\r\n <button class=\"mtx-grid-column-pin-option\" type=\"button\"\r\n *ngFor=\"let item of pinOptions\" mat-menu-item\r\n (click)=\"_handlePinSelect(col, item.value)\">\r\n <span class=\"mtx-grid-column-pin-option-placeholder\">\r\n <!-- eslint-disable-next-line @angular-eslint/template/eqeqeq -->\r\n <svg class=\"mtx-grid-icon mtx-grid-column-pin-check-icon\" *ngIf=\"col.pinned==item.value\"\r\n viewBox=\"0 0 24 24\" width=\"24px\" height=\"24px\" fill=\"currentColor\" focusable=\"false\">\r\n <path d=\"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z\" />\r\n </svg>\r\n </span>\r\n <span class=\"mtx-grid-column-pin-option-text\">{{item.label | toObservable | async}}</span>\r\n </button>\r\n </mat-menu>\r\n </ng-container>\r\n\r\n <mat-checkbox class=\"mtx-grid-column-menu-item-label\" *ngIf=\"selectable\"\r\n [(ngModel)]=\"col[selectableChecked]\" [disabled]=\"col.disabled\"\r\n (change)=\"_handleChecked(col)\">\r\n {{col.header | toObservable | async}}\r\n </mat-checkbox>\r\n <span class=\"mtx-grid-column-menu-item-label\" *ngIf=\"!selectable\">\r\n {{col.header | toObservable | async}}\r\n </span>\r\n</ng-template>\r\n", styles: [".mtx-grid-column-menu .mat-menu-content{padding:0}.mtx-grid-column-menu-body{padding:8px 16px}.mtx-grid-column-menu-header,.mtx-grid-column-menu-footer{position:sticky;z-index:1;padding:8px 16px}.mtx-grid-column-menu-header{top:0}.mtx-grid-column-menu-footer{bottom:0}.mtx-grid-column-menu-list{display:block;max-width:100%}.mtx-grid-column-menu-list.cdk-drop-list-dragging .mtx-grid-column-menu-item:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}.mtx-grid-column-menu-item{display:flex;flex-direction:row;align-items:center}.mtx-grid-column-menu-item.cdk-drag-disabled .cdk-drag-handle{opacity:.35;cursor:no-drop}.mtx-grid-column-menu-item .cdk-drag-handle{cursor:move}.mtx-grid-column-menu-item.cdk-drag-preview{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.mtx-grid-column-menu-item.cdk-drag-placeholder{opacity:0}.mtx-grid-column-menu-item.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.mtx-grid-column-pin-button.mat-mdc-icon-button{width:40px;height:40px;padding:8px}.mtx-grid-column-pin-button.mat-mdc-icon-button .mat-mdc-button-touch-target{width:100%;height:100%}.mtx-grid-column-pin-option.mat-menu-item{display:flex;align-items:center;height:32px}.mtx-grid-column-pin-option-placeholder{display:inline-block;width:20px;height:20px;line-height:20px;vertical-align:middle}.mtx-grid-column-pin-option-text{padding:0 8px;vertical-align:middle}.mtx-grid-column-drag-handle-icon:hover{cursor:move}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatMiniFabButton, selector: "button[mat-mini-fab]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatFabButton, selector: "button[mat-fab]", inputs: ["disabled", "disableRipple", "color", "tabIndex", "extended"], exportAs: ["matButton"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i6.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i6.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i6.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i7.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i7.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i8.MtxToObservablePipe, name: "toObservable" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
72
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
70
|
+
/** @nocollapse */ MtxGridColumnMenu.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MtxGridColumnMenu, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
71
|
+
/** @nocollapse */ MtxGridColumnMenu.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: MtxGridColumnMenu, selector: "mtx-grid-column-menu", inputs: { columns: "columns", selectable: "selectable", selectableChecked: "selectableChecked", sortable: "sortable", pinnable: "pinnable", buttonText: "buttonText", buttonType: "buttonType", buttonColor: "buttonColor", buttonClass: "buttonClass", buttonIcon: "buttonIcon", showHeader: "showHeader", headerText: "headerText", headerTemplate: "headerTemplate", showFooter: "showFooter", footerText: "footerText", footerTemplate: "footerTemplate", pinOptions: "pinOptions" }, outputs: { columnChange: "columnChange" }, viewQueries: [{ propertyName: "menuPanel", first: true, predicate: ["menu"], descendants: true, static: true }, { propertyName: "menuTrigger", first: true, predicate: MatMenuTrigger, descendants: true }], exportAs: ["mtxGridColumnMenu"], ngImport: i0, template: "<ng-container [ngSwitch]=\"buttonType\">\r\n <ng-container *ngSwitchCase=\"'raised'\">\r\n <button [ngClass]=\"buttonClass\" mat-raised-button type=\"button\" [color]=\"buttonColor\"\r\n [matMenuTriggerFor]=\"menu\">\r\n <mat-icon *ngIf=\"buttonIcon\">{{buttonIcon}}</mat-icon> {{buttonText}}\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'stroked'\">\r\n <button [ngClass]=\"buttonClass\" mat-stroked-button type=\"button\" [color]=\"buttonColor\"\r\n [matMenuTriggerFor]=\"menu\">\r\n <mat-icon *ngIf=\"buttonIcon\">{{buttonIcon}}</mat-icon> {{buttonText}}\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'flat'\">\r\n <button [ngClass]=\"buttonClass\" mat-flat-button type=\"button\" [color]=\"buttonColor\"\r\n [matMenuTriggerFor]=\"menu\">\r\n <mat-icon *ngIf=\"buttonIcon\">{{buttonIcon}}</mat-icon> {{buttonText}}\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'icon'\">\r\n <button [ngClass]=\"buttonClass\" mat-icon-button type=\"button\" [color]=\"buttonColor\"\r\n [matMenuTriggerFor]=\"menu\">\r\n <mat-icon *ngIf=\"buttonIcon\">{{buttonIcon}}</mat-icon>\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'fab'\">\r\n <button [ngClass]=\"buttonClass\" mat-fab type=\"button\" [color]=\"buttonColor\"\r\n [matMenuTriggerFor]=\"menu\">\r\n <mat-icon *ngIf=\"buttonIcon\">{{buttonIcon}}</mat-icon> {{buttonText}}\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'mini-fab'\">\r\n <button [ngClass]=\"buttonClass\" mat-mini-fab type=\"button\" [color]=\"buttonColor\"\r\n [matMenuTriggerFor]=\"menu\">\r\n <mat-icon *ngIf=\"buttonIcon\">{{buttonIcon}}</mat-icon> {{buttonText}}\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <button [ngClass]=\"buttonClass\" mat-button type=\"button\" [color]=\"buttonColor\"\r\n [matMenuTriggerFor]=\"menu\">\r\n <mat-icon *ngIf=\"buttonIcon\">{{buttonIcon}}</mat-icon> {{buttonText}}\r\n </button>\r\n </ng-container>\r\n</ng-container>\r\n\r\n<mat-menu #menu=\"matMenu\" class=\"mtx-grid-column-menu\">\r\n <div class=\"mtx-grid-column-menu-content\"\r\n (click)=\"$event.stopPropagation()\" (keydown)=\"$event.stopPropagation()\">\r\n <div class=\"mtx-grid-column-menu-header\" *ngIf=\"showHeader\">\r\n <ng-template [ngIf]=\"headerTemplate\" [ngIfElse]=\"defaultHeaderTpl\">\r\n <ng-template [ngTemplateOutlet]=\"headerTemplate\"></ng-template>\r\n </ng-template>\r\n <ng-template #defaultHeaderTpl>{{headerText}}</ng-template>\r\n </div>\r\n\r\n <div class=\"mtx-grid-column-menu-body\">\r\n <div class=\"mtx-grid-column-menu-list\" *ngIf=\"sortable\"\r\n cdkDropList (cdkDropListDropped)=\"_handleDroped($event)\">\r\n <div class=\"mtx-grid-column-menu-item\" *ngFor=\"let col of columns\"\r\n cdkDrag [cdkDragDisabled]=\"selectableChecked === 'show'? !col.show : col.hide\">\r\n <svg class=\"mtx-grid-icon mtx-grid-column-drag-handle-icon\" viewBox=\"0 0 24 24\"\r\n width=\"24px\" height=\"24px\" fill=\"currentColor\" focusable=\"false\">\r\n <path\r\n d=\"M7,19V17H9V19H7M11,19V17H13V19H11M15,19V17H17V19H15M7,15V13H9V15H7M11,15V13H13V15H11M15,15V13H17V15H15M7,11V9H9V11H7M11,11V9H13V11H11M15,11V9H17V11H15M7,7V5H9V7H7M11,7V5H13V7H11M15,7V5H17V7H15Z\">\r\n </path>\r\n </svg>\r\n <ng-template [ngTemplateOutlet]=\"checkboxList\"\r\n [ngTemplateOutletContext]=\"{ $implicit: col }\">\r\n </ng-template>\r\n </div>\r\n </div>\r\n\r\n <div class=\"mtx-grid-column-menu-list\" *ngIf=\"!sortable\">\r\n <div class=\"mtx-grid-column-menu-item\" *ngFor=\"let col of columns\">\r\n <ng-template [ngTemplateOutlet]=\"checkboxList\"\r\n [ngTemplateOutletContext]=\"{ $implicit: col }\">\r\n </ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"mtx-grid-column-menu-footer\" *ngIf=\"showFooter\">\r\n <ng-template [ngIf]=\"footerTemplate\" [ngIfElse]=\"defaultFooterTpl\">\r\n <ng-template [ngTemplateOutlet]=\"footerTemplate\"></ng-template>\r\n </ng-template>\r\n <ng-template #defaultFooterTpl>{{footerText}}</ng-template>\r\n </div>\r\n </div>\r\n</mat-menu>\r\n\r\n<ng-template #checkboxList let-col>\r\n <ng-container *ngIf=\"pinnable\">\r\n <button class=\"mtx-grid-column-pin-button\" mat-icon-button type=\"button\"\r\n [matMenuTriggerFor]=\"pinList\">\r\n <svg class=\"mtx-grid-icon mtx-grid-column-pin-icon\" *ngIf=\"col.pinned\"\r\n viewBox=\"0 0 24 24\" width=\"24px\" height=\"24px\" fill=\"currentColor\" focusable=\"false\">\r\n <path d=\"M16,12V4H17V2H7V4H8V12L6,14V16H11.2V22H12.8V16H18V14L16,12Z\" />\r\n </svg>\r\n <svg class=\"mtx-grid-icon mtx-grid-column-pin-off-icon\" *ngIf=\"!col.pinned\"\r\n viewBox=\"0 0 24 24\" width=\"24px\" height=\"24px\" fill=\"currentColor\" focusable=\"false\">\r\n <path\r\n d=\"M2,5.27L3.28,4L20,20.72L18.73,22L12.8,16.07V22H11.2V16H6V14L8,12V11.27L2,5.27M16,12L18,14V16H17.82L8,6.18V4H7V2H17V4H16V12Z\" />\r\n </svg>\r\n </button>\r\n <mat-menu #pinList=\"matMenu\" class=\"mtx-grid-column-pin-list\">\r\n <button class=\"mtx-grid-column-pin-option\" type=\"button\"\r\n *ngFor=\"let item of pinOptions\" mat-menu-item\r\n (click)=\"_handlePinSelect(col, item.value)\">\r\n <span class=\"mtx-grid-column-pin-option-placeholder\">\r\n <!-- eslint-disable-next-line @angular-eslint/template/eqeqeq -->\r\n <svg class=\"mtx-grid-icon mtx-grid-column-pin-check-icon\" *ngIf=\"col.pinned==item.value\"\r\n viewBox=\"0 0 24 24\" width=\"24px\" height=\"24px\" fill=\"currentColor\" focusable=\"false\">\r\n <path d=\"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z\" />\r\n </svg>\r\n </span>\r\n <span class=\"mtx-grid-column-pin-option-text\">{{item.label | toObservable | async}}</span>\r\n </button>\r\n </mat-menu>\r\n </ng-container>\r\n\r\n <mat-checkbox class=\"mtx-grid-column-menu-item-label\" *ngIf=\"selectable\"\r\n [(ngModel)]=\"col[selectableChecked]\" [disabled]=\"col.disabled\"\r\n (change)=\"_handleChecked(col)\">\r\n {{col.header | toObservable | async}}\r\n </mat-checkbox>\r\n <span class=\"mtx-grid-column-menu-item-label\" *ngIf=\"!selectable\">\r\n {{col.header | toObservable | async}}\r\n </span>\r\n</ng-template>\r\n", styles: [".mtx-grid-column-menu .mat-menu-content{padding:0}.mtx-grid-column-menu-body{padding:8px 16px}.mtx-grid-column-menu-header,.mtx-grid-column-menu-footer{position:sticky;z-index:1;padding:8px 16px}.mtx-grid-column-menu-header{top:0}.mtx-grid-column-menu-footer{bottom:0}.mtx-grid-column-menu-list{display:block;max-width:100%}.mtx-grid-column-menu-list.cdk-drop-list-dragging .mtx-grid-column-menu-item:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}.mtx-grid-column-menu-item{display:flex;flex-direction:row;align-items:center}.mtx-grid-column-menu-item.cdk-drag-disabled .cdk-drag-handle{opacity:.35;cursor:no-drop}.mtx-grid-column-menu-item .cdk-drag-handle{cursor:move}.mtx-grid-column-menu-item.cdk-drag-preview{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.mtx-grid-column-menu-item.cdk-drag-placeholder{opacity:0}.mtx-grid-column-menu-item.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.mtx-grid-column-pin-button.mat-mdc-icon-button{width:40px;height:40px;padding:8px}.mtx-grid-column-pin-button.mat-mdc-icon-button .mat-mdc-button-touch-target{width:100%;height:100%}.mtx-grid-column-pin-option.mat-menu-item{display:flex;align-items:center;height:32px}.mtx-grid-column-pin-option-placeholder{display:inline-block;width:20px;height:20px;line-height:20px;vertical-align:middle}.mtx-grid-column-pin-option-text{padding:0 8px;vertical-align:middle}.mtx-grid-column-drag-handle-icon:hover{cursor:move}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatMiniFabButton, selector: "button[mat-mini-fab]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatFabButton, selector: "button[mat-fab]", inputs: ["disabled", "disableRipple", "color", "tabIndex", "extended"], exportAs: ["matButton"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i6.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i6.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i6.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i7.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i7.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i8.MtxToObservablePipe, name: "toObservable" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
72
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MtxGridColumnMenu, decorators: [{
|
|
73
73
|
type: Component,
|
|
74
74
|
args: [{ selector: 'mtx-grid-column-menu', exportAs: 'mtxGridColumnMenu', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container [ngSwitch]=\"buttonType\">\r\n <ng-container *ngSwitchCase=\"'raised'\">\r\n <button [ngClass]=\"buttonClass\" mat-raised-button type=\"button\" [color]=\"buttonColor\"\r\n [matMenuTriggerFor]=\"menu\">\r\n <mat-icon *ngIf=\"buttonIcon\">{{buttonIcon}}</mat-icon> {{buttonText}}\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'stroked'\">\r\n <button [ngClass]=\"buttonClass\" mat-stroked-button type=\"button\" [color]=\"buttonColor\"\r\n [matMenuTriggerFor]=\"menu\">\r\n <mat-icon *ngIf=\"buttonIcon\">{{buttonIcon}}</mat-icon> {{buttonText}}\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'flat'\">\r\n <button [ngClass]=\"buttonClass\" mat-flat-button type=\"button\" [color]=\"buttonColor\"\r\n [matMenuTriggerFor]=\"menu\">\r\n <mat-icon *ngIf=\"buttonIcon\">{{buttonIcon}}</mat-icon> {{buttonText}}\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'icon'\">\r\n <button [ngClass]=\"buttonClass\" mat-icon-button type=\"button\" [color]=\"buttonColor\"\r\n [matMenuTriggerFor]=\"menu\">\r\n <mat-icon *ngIf=\"buttonIcon\">{{buttonIcon}}</mat-icon>\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'fab'\">\r\n <button [ngClass]=\"buttonClass\" mat-fab type=\"button\" [color]=\"buttonColor\"\r\n [matMenuTriggerFor]=\"menu\">\r\n <mat-icon *ngIf=\"buttonIcon\">{{buttonIcon}}</mat-icon> {{buttonText}}\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'mini-fab'\">\r\n <button [ngClass]=\"buttonClass\" mat-mini-fab type=\"button\" [color]=\"buttonColor\"\r\n [matMenuTriggerFor]=\"menu\">\r\n <mat-icon *ngIf=\"buttonIcon\">{{buttonIcon}}</mat-icon> {{buttonText}}\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <button [ngClass]=\"buttonClass\" mat-button type=\"button\" [color]=\"buttonColor\"\r\n [matMenuTriggerFor]=\"menu\">\r\n <mat-icon *ngIf=\"buttonIcon\">{{buttonIcon}}</mat-icon> {{buttonText}}\r\n </button>\r\n </ng-container>\r\n</ng-container>\r\n\r\n<mat-menu #menu=\"matMenu\" class=\"mtx-grid-column-menu\">\r\n <div class=\"mtx-grid-column-menu-content\"\r\n (click)=\"$event.stopPropagation()\" (keydown)=\"$event.stopPropagation()\">\r\n <div class=\"mtx-grid-column-menu-header\" *ngIf=\"showHeader\">\r\n <ng-template [ngIf]=\"headerTemplate\" [ngIfElse]=\"defaultHeaderTpl\">\r\n <ng-template [ngTemplateOutlet]=\"headerTemplate\"></ng-template>\r\n </ng-template>\r\n <ng-template #defaultHeaderTpl>{{headerText}}</ng-template>\r\n </div>\r\n\r\n <div class=\"mtx-grid-column-menu-body\">\r\n <div class=\"mtx-grid-column-menu-list\" *ngIf=\"sortable\"\r\n cdkDropList (cdkDropListDropped)=\"_handleDroped($event)\">\r\n <div class=\"mtx-grid-column-menu-item\" *ngFor=\"let col of columns\"\r\n cdkDrag [cdkDragDisabled]=\"selectableChecked === 'show'? !col.show : col.hide\">\r\n <svg class=\"mtx-grid-icon mtx-grid-column-drag-handle-icon\" viewBox=\"0 0 24 24\"\r\n width=\"24px\" height=\"24px\" fill=\"currentColor\" focusable=\"false\">\r\n <path\r\n d=\"M7,19V17H9V19H7M11,19V17H13V19H11M15,19V17H17V19H15M7,15V13H9V15H7M11,15V13H13V15H11M15,15V13H17V15H15M7,11V9H9V11H7M11,11V9H13V11H11M15,11V9H17V11H15M7,7V5H9V7H7M11,7V5H13V7H11M15,7V5H17V7H15Z\">\r\n </path>\r\n </svg>\r\n <ng-template [ngTemplateOutlet]=\"checkboxList\"\r\n [ngTemplateOutletContext]=\"{ $implicit: col }\">\r\n </ng-template>\r\n </div>\r\n </div>\r\n\r\n <div class=\"mtx-grid-column-menu-list\" *ngIf=\"!sortable\">\r\n <div class=\"mtx-grid-column-menu-item\" *ngFor=\"let col of columns\">\r\n <ng-template [ngTemplateOutlet]=\"checkboxList\"\r\n [ngTemplateOutletContext]=\"{ $implicit: col }\">\r\n </ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"mtx-grid-column-menu-footer\" *ngIf=\"showFooter\">\r\n <ng-template [ngIf]=\"footerTemplate\" [ngIfElse]=\"defaultFooterTpl\">\r\n <ng-template [ngTemplateOutlet]=\"footerTemplate\"></ng-template>\r\n </ng-template>\r\n <ng-template #defaultFooterTpl>{{footerText}}</ng-template>\r\n </div>\r\n </div>\r\n</mat-menu>\r\n\r\n<ng-template #checkboxList let-col>\r\n <ng-container *ngIf=\"pinnable\">\r\n <button class=\"mtx-grid-column-pin-button\" mat-icon-button type=\"button\"\r\n [matMenuTriggerFor]=\"pinList\">\r\n <svg class=\"mtx-grid-icon mtx-grid-column-pin-icon\" *ngIf=\"col.pinned\"\r\n viewBox=\"0 0 24 24\" width=\"24px\" height=\"24px\" fill=\"currentColor\" focusable=\"false\">\r\n <path d=\"M16,12V4H17V2H7V4H8V12L6,14V16H11.2V22H12.8V16H18V14L16,12Z\" />\r\n </svg>\r\n <svg class=\"mtx-grid-icon mtx-grid-column-pin-off-icon\" *ngIf=\"!col.pinned\"\r\n viewBox=\"0 0 24 24\" width=\"24px\" height=\"24px\" fill=\"currentColor\" focusable=\"false\">\r\n <path\r\n d=\"M2,5.27L3.28,4L20,20.72L18.73,22L12.8,16.07V22H11.2V16H6V14L8,12V11.27L2,5.27M16,12L18,14V16H17.82L8,6.18V4H7V2H17V4H16V12Z\" />\r\n </svg>\r\n </button>\r\n <mat-menu #pinList=\"matMenu\" class=\"mtx-grid-column-pin-list\">\r\n <button class=\"mtx-grid-column-pin-option\" type=\"button\"\r\n *ngFor=\"let item of pinOptions\" mat-menu-item\r\n (click)=\"_handlePinSelect(col, item.value)\">\r\n <span class=\"mtx-grid-column-pin-option-placeholder\">\r\n <!-- eslint-disable-next-line @angular-eslint/template/eqeqeq -->\r\n <svg class=\"mtx-grid-icon mtx-grid-column-pin-check-icon\" *ngIf=\"col.pinned==item.value\"\r\n viewBox=\"0 0 24 24\" width=\"24px\" height=\"24px\" fill=\"currentColor\" focusable=\"false\">\r\n <path d=\"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z\" />\r\n </svg>\r\n </span>\r\n <span class=\"mtx-grid-column-pin-option-text\">{{item.label | toObservable | async}}</span>\r\n </button>\r\n </mat-menu>\r\n </ng-container>\r\n\r\n <mat-checkbox class=\"mtx-grid-column-menu-item-label\" *ngIf=\"selectable\"\r\n [(ngModel)]=\"col[selectableChecked]\" [disabled]=\"col.disabled\"\r\n (change)=\"_handleChecked(col)\">\r\n {{col.header | toObservable | async}}\r\n </mat-checkbox>\r\n <span class=\"mtx-grid-column-menu-item-label\" *ngIf=\"!selectable\">\r\n {{col.header | toObservable | async}}\r\n </span>\r\n</ng-template>\r\n", styles: [".mtx-grid-column-menu .mat-menu-content{padding:0}.mtx-grid-column-menu-body{padding:8px 16px}.mtx-grid-column-menu-header,.mtx-grid-column-menu-footer{position:sticky;z-index:1;padding:8px 16px}.mtx-grid-column-menu-header{top:0}.mtx-grid-column-menu-footer{bottom:0}.mtx-grid-column-menu-list{display:block;max-width:100%}.mtx-grid-column-menu-list.cdk-drop-list-dragging .mtx-grid-column-menu-item:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}.mtx-grid-column-menu-item{display:flex;flex-direction:row;align-items:center}.mtx-grid-column-menu-item.cdk-drag-disabled .cdk-drag-handle{opacity:.35;cursor:no-drop}.mtx-grid-column-menu-item .cdk-drag-handle{cursor:move}.mtx-grid-column-menu-item.cdk-drag-preview{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.mtx-grid-column-menu-item.cdk-drag-placeholder{opacity:0}.mtx-grid-column-menu-item.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.mtx-grid-column-pin-button.mat-mdc-icon-button{width:40px;height:40px;padding:8px}.mtx-grid-column-pin-button.mat-mdc-icon-button .mat-mdc-button-touch-target{width:100%;height:100%}.mtx-grid-column-pin-option.mat-menu-item{display:flex;align-items:center;height:32px}.mtx-grid-column-pin-option-placeholder{display:inline-block;width:20px;height:20px;line-height:20px;vertical-align:middle}.mtx-grid-column-pin-option-text{padding:0 8px;vertical-align:middle}.mtx-grid-column-drag-handle-icon:hover{cursor:move}\n"] }]
|
|
75
75
|
}], propDecorators: { menuPanel: [{
|
|
@@ -115,4 +115,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImpor
|
|
|
115
115
|
}], pinOptions: [{
|
|
116
116
|
type: Input
|
|
117
117
|
}] } });
|
|
118
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLW1lbnUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9leHRlbnNpb25zL2dyaWQvY29sdW1uLW1lbnUudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9leHRlbnNpb25zL2dyaWQvY29sdW1uLW1lbnUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdEUsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBRU4sU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQVcsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7Ozs7QUFnQmpFLE1BQU0sT0FBTyxpQkFBaUI7SUFSOUI7UUFZVyxZQUFPLEdBQW9CLEVBQUUsQ0FBQztRQUM5QixlQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLHNCQUFpQixHQUFvQixNQUFNLENBQUM7UUFDNUMsYUFBUSxHQUFHLElBQUksQ0FBQztRQUNoQixhQUFRLEdBQUcsSUFBSSxDQUFDO1FBVWpCLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBRWhCLGVBQVUsR0FBc0IsU0FBUyxDQUFDO1FBRTFDLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFFaEIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixlQUFVLEdBQUcsZ0JBQWdCLENBQUM7UUFFOUIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixlQUFVLEdBQUcsZ0JBQWdCLENBQUM7UUFHN0IsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBbUIsQ0FBQztRQVdyRCxnQkFBVyxHQUE2QjtZQUM5QyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtZQUNwQyxFQUFFLEtBQUss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Z0JBRUksWUFBWTtzQkFBckIsTUFBTTtnQkFHSCxVQUFVO3NCQURiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZGtEcmFnRHJvcCwgbW92ZUl0ZW1JbkFycmF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRoZW1lUGFsZXR0ZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgTWF0TWVudSwgTWF0TWVudVRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcbmltcG9ydCB7XG4gIE10eEdyaWRCdXR0b25UeXBlLFxuICBNdHhHcmlkQ29sdW1uLFxuICBNdHhHcmlkQ29sdW1uUGluT3B0aW9uLFxuICBNdHhHcmlkQ29sdW1uUGluVmFsdWUsXG59IGZyb20gJy4vaW50ZXJmYWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ210eC1ncmlkLWNvbHVtbi1tZW51JyxcbiAgZXhwb3J0QXM6ICdtdHhHcmlkQ29sdW1uTWVudScsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb2x1bW4tbWVudS5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY29sdW1uLW1lbnUuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTXR4R3JpZENvbHVtbk1lbnUge1xuICBAVmlld0NoaWxkKCdtZW51JywgeyBzdGF0aWM6IHRydWUgfSkgbWVudVBhbmVsITogTWF0TWVudTtcbiAgQFZpZXdDaGlsZChNYXRNZW51VHJpZ2dlcikgbWVudVRyaWdnZXIhOiBNYXRNZW51VHJpZ2dlcjtcblxuICBASW5wdXQoKSBjb2x1bW5zOiBNdHhHcmlkQ29sdW1uW10gPSBbXTtcbiAgQElucHV0KCkgc2VsZWN0YWJsZSA9IHRydWU7XG4gIEBJbnB1dCgpIHNlbGVjdGFibGVDaGVja2VkOiAnc2hvdycgfCAnaGlkZScgPSAnc2hvdyc7XG4gIEBJbnB1dCgpIHNvcnRhYmxlID0gdHJ1ZTtcbiAgQElucHV0KCkgcGlubmFibGUgPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIGdldCBidXR0b25UZXh0KCkge1xuICAgIGNvbnN0IGRlZmF1bHRUZXh0ID0gYENvbHVtbnMgJHt0aGlzLnNlbGVjdGFibGVDaGVja2VkID09PSAnc2hvdycgPyAnU2hvd24nIDogJ0hpZGRlbid9YDtcbiAgICByZXR1cm4gdGhpcy5fYnV0dG9uVGV4dCA/IHRoaXMuX2J1dHRvblRleHQgOiBkZWZhdWx0VGV4dDtcbiAgfVxuICBzZXQgYnV0dG9uVGV4dCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fYnV0dG9uVGV4dCA9IHZhbHVlO1xuICB9XG4gIHByaXZhdGUgX2J1dHRvblRleHQgPSAnJztcblxuICBASW5wdXQoKSBidXR0b25UeXBlOiBNdHhHcmlkQnV0dG9uVHlwZSA9ICdzdHJva2VkJztcbiAgQElucHV0KCkgYnV0dG9uQ29sb3I6IFRoZW1lUGFsZXR0ZTtcbiAgQElucHV0KCkgYnV0dG9uQ2xhc3MgPSAnJztcbiAgQElucHV0KCkgYnV0dG9uSWNvbiA9ICcnO1xuXG4gIEBJbnB1dCgpIHNob3dIZWFkZXIgPSBmYWxzZTtcbiAgQElucHV0KCkgaGVhZGVyVGV4dCA9ICdDb2x1bW5zIEhlYWRlcic7XG4gIEBJbnB1dCgpIGhlYWRlclRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcbiAgQElucHV0KCkgc2hvd0Zvb3RlciA9IGZhbHNlO1xuICBASW5wdXQoKSBmb290ZXJUZXh0ID0gJ0NvbHVtbnMgRm9vdGVyJztcbiAgQElucHV0KCkgZm9vdGVyVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBPdXRwdXQoKSBjb2x1bW5DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPE10eEdyaWRDb2x1bW5bXT4oKTtcblxuICBASW5wdXQoKVxuICBnZXQgcGluT3B0aW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy5fcGluT3B0aW9ucztcbiAgfVxuICBzZXQgcGluT3B0aW9ucyh2YWx1ZTogTXR4R3JpZENvbHVtblBpbk9wdGlvbltdKSB7XG4gICAgaWYgKHZhbHVlLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuX3Bpbk9wdGlvbnMgPSB2YWx1ZTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBfcGluT3B0aW9uczogTXR4R3JpZENvbHVtblBpbk9wdGlvbltdID0gW1xuICAgIHsgbGFiZWw6ICdQaW4gTGVmdCcsIHZhbHVlOiAnbGVmdCcgfSxcbiAgICB7IGxhYmVsOiAnUGluIFJpZ2h0JywgdmFsdWU6ICdyaWdodCcgfSxcbiAgICB7IGxhYmVsOiAnTm8gUGluJywgdmFsdWU6IG51bGwgfSxcbiAgXTtcblxuICBfaGFuZGxlRHJvcGVkKGU6IENka0RyYWdEcm9wPHN0cmluZ1tdPikge1xuICAgIG1vdmVJdGVtSW5BcnJheSh0aGlzLmNvbHVtbnMsIGUucHJldmlvdXNJbmRleCwgZS5jdXJyZW50SW5kZXgpO1xuICAgIHRoaXMuY29sdW1uQ2hhbmdlLmVtaXQodGhpcy5jb2x1bW5zKTtcbiAgfVxuXG4gIF9oYW5kbGVDaGVja2VkKGNvbDogTXR4R3JpZENvbHVtbikge1xuICAgIGlmICh0aGlzLnNlbGVjdGFibGVDaGVja2VkID09PSAnc2hvdycpIHtcbiAgICAgIGNvbC5oaWRlID0gIWNvbC5zaG93O1xuICAgIH0gZWxzZSB7XG4gICAgICBjb2wuc2hvdyA9ICFjb2wuaGlkZTtcbiAgICB9XG4gICAgdGhpcy5jb2x1bW5DaGFuZ2UuZW1pdCh0aGlzLmNvbHVtbnMpO1xuICB9XG5cbiAgX2hhbmRsZVBpblNlbGVjdChjb2w6IE10eEdyaWRDb2x1bW4sIHZhbDogTXR4R3JpZENvbHVtblBpblZhbHVlKSB7XG4gICAgaWYgKGNvbC5waW5uZWQgIT0gdmFsKSB7XG4gICAgICBjb2wucGlubmVkID0gdmFsO1xuICAgICAgdGhpcy5jb2x1bW5DaGFuZ2UuZW1pdCh0aGlzLmNvbHVtbnMpO1xuICAgIH1cbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiYnV0dG9uVHlwZVwiPlxyXG4gIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidyYWlzZWQnXCI+XHJcbiAgICA8YnV0dG9uIFtuZ0NsYXNzXT1cImJ1dHRvbkNsYXNzXCIgbWF0LXJhaXNlZC1idXR0b24gdHlwZT1cImJ1dHRvblwiIFtjb2xvcl09XCJidXR0b25Db2xvclwiXHJcbiAgICAgICAgICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCI+XHJcbiAgICAgIDxtYXQtaWNvbiAqbmdJZj1cImJ1dHRvbkljb25cIj57e2J1dHRvbkljb259fTwvbWF0LWljb24+IHt7YnV0dG9uVGV4dH19XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInc3Ryb2tlZCdcIj5cclxuICAgIDxidXR0b24gW25nQ2xhc3NdPVwiYnV0dG9uQ2xhc3NcIiBtYXQtc3Ryb2tlZC1idXR0b24gdHlwZT1cImJ1dHRvblwiIFtjb2xvcl09XCJidXR0b25Db2xvclwiXHJcbiAgICAgICAgICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCI+XHJcbiAgICAgIDxtYXQtaWNvbiAqbmdJZj1cImJ1dHRvbkljb25cIj57e2J1dHRvbkljb259fTwvbWF0LWljb24+IHt7YnV0dG9uVGV4dH19XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZmxhdCdcIj5cclxuICAgIDxidXR0b24gW25nQ2xhc3NdPVwiYnV0dG9uQ2xhc3NcIiBtYXQtZmxhdC1idXR0b24gdHlwZT1cImJ1dHRvblwiIFtjb2xvcl09XCJidXR0b25Db2xvclwiXHJcbiAgICAgICAgICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCI+XHJcbiAgICAgIDxtYXQtaWNvbiAqbmdJZj1cImJ1dHRvbkljb25cIj57e2J1dHRvbkljb259fTwvbWF0LWljb24+IHt7YnV0dG9uVGV4dH19XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInaWNvbidcIj5cclxuICAgIDxidXR0b24gW25nQ2xhc3NdPVwiYnV0dG9uQ2xhc3NcIiBtYXQtaWNvbi1idXR0b24gdHlwZT1cImJ1dHRvblwiIFtjb2xvcl09XCJidXR0b25Db2xvclwiXHJcbiAgICAgICAgICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCI+XHJcbiAgICAgIDxtYXQtaWNvbiAqbmdJZj1cImJ1dHRvbkljb25cIj57e2J1dHRvbkljb259fTwvbWF0LWljb24+XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZmFiJ1wiPlxyXG4gICAgPGJ1dHRvbiBbbmdDbGFzc109XCJidXR0b25DbGFzc1wiIG1hdC1mYWIgdHlwZT1cImJ1dHRvblwiIFtjb2xvcl09XCJidXR0b25Db2xvclwiXHJcbiAgICAgICAgICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCI+XHJcbiAgICAgIDxtYXQtaWNvbiAqbmdJZj1cImJ1dHRvbkljb25cIj57e2J1dHRvbkljb259fTwvbWF0LWljb24+IHt7YnV0dG9uVGV4dH19XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInbWluaS1mYWInXCI+XHJcbiAgICA8YnV0dG9uIFtuZ0NsYXNzXT1cImJ1dHRvbkNsYXNzXCIgbWF0LW1pbmktZmFiIHR5cGU9XCJidXR0b25cIiBbY29sb3JdPVwiYnV0dG9uQ29sb3JcIlxyXG4gICAgICAgICAgICBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiPlxyXG4gICAgICA8bWF0LWljb24gKm5nSWY9XCJidXR0b25JY29uXCI+e3tidXR0b25JY29ufX08L21hdC1pY29uPiB7e2J1dHRvblRleHR9fVxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxyXG4gICAgPGJ1dHRvbiBbbmdDbGFzc109XCJidXR0b25DbGFzc1wiIG1hdC1idXR0b24gdHlwZT1cImJ1dHRvblwiIFtjb2xvcl09XCJidXR0b25Db2xvclwiXHJcbiAgICAgICAgICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCI+XHJcbiAgICAgIDxtYXQtaWNvbiAqbmdJZj1cImJ1dHRvbkljb25cIj57e2J1dHRvbkljb259fTwvbWF0LWljb24+IHt7YnV0dG9uVGV4dH19XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9uZy1jb250YWluZXI+XHJcblxyXG48bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCIgY2xhc3M9XCJtdHgtZ3JpZC1jb2x1bW4tbWVudVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJtdHgtZ3JpZC1jb2x1bW4tbWVudS1jb250ZW50XCJcclxuICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIiAoa2V5ZG93bik9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJtdHgtZ3JpZC1jb2x1bW4tbWVudS1oZWFkZXJcIiAqbmdJZj1cInNob3dIZWFkZXJcIj5cclxuICAgICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cImhlYWRlclRlbXBsYXRlXCIgW25nSWZFbHNlXT1cImRlZmF1bHRIZWFkZXJUcGxcIj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiaGVhZGVyVGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRIZWFkZXJUcGw+e3toZWFkZXJUZXh0fX08L25nLXRlbXBsYXRlPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cIm10eC1ncmlkLWNvbHVtbi1tZW51LWJvZHlcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm10eC1ncmlkLWNvbHVtbi1tZW51LWxpc3RcIiAqbmdJZj1cInNvcnRhYmxlXCJcclxuICAgICAgICAgICBjZGtEcm9wTGlzdCAoY2RrRHJvcExpc3REcm9wcGVkKT1cIl9oYW5kbGVEcm9wZWQoJGV2ZW50KVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtdHgtZ3JpZC1jb2x1bW4tbWVudS1pdGVtXCIgKm5nRm9yPVwibGV0IGNvbCBvZiBjb2x1bW5zXCJcclxuICAgICAgICAgICAgIGNka0RyYWcgW2Nka0RyYWdEaXNhYmxlZF09XCJzZWxlY3RhYmxlQ2hlY2tlZCA9PT0gJ3Nob3cnPyAhY29sLnNob3cgOiBjb2wuaGlkZVwiPlxyXG4gICAgICAgICAgPHN2ZyBjbGFzcz1cIm10eC1ncmlkLWljb24gbXR4LWdyaWQtY29sdW1uLWRyYWctaGFuZGxlLWljb25cIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcclxuICAgICAgICAgICAgICAgd2lkdGg9XCIyNHB4XCIgaGVpZ2h0PVwiMjRweFwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIiBmb2N1c2FibGU9XCJmYWxzZVwiPlxyXG4gICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICBkPVwiTTcsMTlWMTdIOVYxOUg3TTExLDE5VjE3SDEzVjE5SDExTTE1LDE5VjE3SDE3VjE5SDE1TTcsMTVWMTNIOVYxNUg3TTExLDE1VjEzSDEzVjE1SDExTTE1LDE1VjEzSDE3VjE1SDE1TTcsMTFWOUg5VjExSDdNMTEsMTFWOUgxM1YxMUgxMU0xNSwxMVY5SDE3VjExSDE1TTcsN1Y1SDlWN0g3TTExLDdWNUgxM1Y3SDExTTE1LDdWNUgxN1Y3SDE1WlwiPlxyXG4gICAgICAgICAgICA8L3BhdGg+XHJcbiAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJjaGVja2JveExpc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogY29sIH1cIj5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cIm10eC1ncmlkLWNvbHVtbi1tZW51LWxpc3RcIiAqbmdJZj1cIiFzb3J0YWJsZVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtdHgtZ3JpZC1jb2x1bW4tbWVudS1pdGVtXCIgKm5nRm9yPVwibGV0IGNvbCBvZiBjb2x1bW5zXCI+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiY2hlY2tib3hMaXN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGNvbCB9XCI+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJtdHgtZ3JpZC1jb2x1bW4tbWVudS1mb290ZXJcIiAqbmdJZj1cInNob3dGb290ZXJcIj5cclxuICAgICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cImZvb3RlclRlbXBsYXRlXCIgW25nSWZFbHNlXT1cImRlZmF1bHRGb290ZXJUcGxcIj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiZm9vdGVyVGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRGb290ZXJUcGw+e3tmb290ZXJUZXh0fX08L25nLXRlbXBsYXRlPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvbWF0LW1lbnU+XHJcblxyXG48bmctdGVtcGxhdGUgI2NoZWNrYm94TGlzdCBsZXQtY29sPlxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJwaW5uYWJsZVwiPlxyXG4gICAgPGJ1dHRvbiBjbGFzcz1cIm10eC1ncmlkLWNvbHVtbi1waW4tYnV0dG9uXCIgbWF0LWljb24tYnV0dG9uIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICBbbWF0TWVudVRyaWdnZXJGb3JdPVwicGluTGlzdFwiPlxyXG4gICAgICA8c3ZnIGNsYXNzPVwibXR4LWdyaWQtaWNvbiBtdHgtZ3JpZC1jb2x1bW4tcGluLWljb25cIiAqbmdJZj1cImNvbC5waW5uZWRcIlxyXG4gICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiB3aWR0aD1cIjI0cHhcIiBoZWlnaHQ9XCIyNHB4XCIgZmlsbD1cImN1cnJlbnRDb2xvclwiIGZvY3VzYWJsZT1cImZhbHNlXCI+XHJcbiAgICAgICAgPHBhdGggZD1cIk0xNiwxMlY0SDE3VjJIN1Y0SDhWMTJMNiwxNFYxNkgxMS4yVjIySDEyLjhWMTZIMThWMTRMMTYsMTJaXCIgLz5cclxuICAgICAgPC9zdmc+XHJcbiAgICAgIDxzdmcgY2xhc3M9XCJtdHgtZ3JpZC1pY29uIG10eC1ncmlkLWNvbHVtbi1waW4tb2ZmLWljb25cIiAqbmdJZj1cIiFjb2wucGlubmVkXCJcclxuICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgd2lkdGg9XCIyNHB4XCIgaGVpZ2h0PVwiMjRweFwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIiBmb2N1c2FibGU9XCJmYWxzZVwiPlxyXG4gICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgZD1cIk0yLDUuMjdMMy4yOCw0TDIwLDIwLjcyTDE4LjczLDIyTDEyLjgsMTYuMDdWMjJIMTEuMlYxNkg2VjE0TDgsMTJWMTEuMjdMMiw1LjI3TTE2LDEyTDE4LDE0VjE2SDE3LjgyTDgsNi4xOFY0SDdWMkgxN1Y0SDE2VjEyWlwiIC8+XHJcbiAgICAgIDwvc3ZnPlxyXG4gICAgPC9idXR0b24+XHJcbiAgICA8bWF0LW1lbnUgI3Bpbkxpc3Q9XCJtYXRNZW51XCIgY2xhc3M9XCJtdHgtZ3JpZC1jb2x1bW4tcGluLWxpc3RcIj5cclxuICAgICAgPGJ1dHRvbiBjbGFzcz1cIm10eC1ncmlkLWNvbHVtbi1waW4tb3B0aW9uXCIgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgcGluT3B0aW9uc1wiIG1hdC1tZW51LWl0ZW1cclxuICAgICAgICAgICAgICAoY2xpY2spPVwiX2hhbmRsZVBpblNlbGVjdChjb2wsIGl0ZW0udmFsdWUpXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtdHgtZ3JpZC1jb2x1bW4tcGluLW9wdGlvbi1wbGFjZWhvbGRlclwiPlxyXG4gICAgICAgICAgPCEtLSBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L3RlbXBsYXRlL2VxZXFlcSAtLT5cclxuICAgICAgICAgIDxzdmcgY2xhc3M9XCJtdHgtZ3JpZC1pY29uIG10eC1ncmlkLWNvbHVtbi1waW4tY2hlY2staWNvblwiICpuZ0lmPVwiY29sLnBpbm5lZD09aXRlbS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiB3aWR0aD1cIjI0cHhcIiBoZWlnaHQ9XCIyNHB4XCIgZmlsbD1cImN1cnJlbnRDb2xvclwiIGZvY3VzYWJsZT1cImZhbHNlXCI+XHJcbiAgICAgICAgICAgIDxwYXRoIGQ9XCJNMjEsN0w5LDE5TDMuNSwxMy41TDQuOTEsMTIuMDlMOSwxNi4xN0wxOS41OSw1LjU5TDIxLDdaXCIgLz5cclxuICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cIm10eC1ncmlkLWNvbHVtbi1waW4tb3B0aW9uLXRleHRcIj57e2l0ZW0ubGFiZWwgfCB0b09ic2VydmFibGUgfCBhc3luY319PC9zcGFuPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvbWF0LW1lbnU+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIDxtYXQtY2hlY2tib3ggY2xhc3M9XCJtdHgtZ3JpZC1jb2x1bW4tbWVudS1pdGVtLWxhYmVsXCIgKm5nSWY9XCJzZWxlY3RhYmxlXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY29sW3NlbGVjdGFibGVDaGVja2VkXVwiIFtkaXNhYmxlZF09XCJjb2wuZGlzYWJsZWRcIlxyXG4gICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJfaGFuZGxlQ2hlY2tlZChjb2wpXCI+XHJcbiAgICB7e2NvbC5oZWFkZXIgfCB0b09ic2VydmFibGUgfCBhc3luY319XHJcbiAgPC9tYXQtY2hlY2tib3g+XHJcbiAgPHNwYW4gY2xhc3M9XCJtdHgtZ3JpZC1jb2x1bW4tbWVudS1pdGVtLWxhYmVsXCIgKm5nSWY9XCIhc2VsZWN0YWJsZVwiPlxyXG4gICAge3tjb2wuaGVhZGVyIHwgdG9PYnNlcnZhYmxlIHwgYXN5bmN9fVxyXG4gIDwvc3Bhbj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
|
|
118
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLW1lbnUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9leHRlbnNpb25zL2dyaWQvY29sdW1uLW1lbnUudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9leHRlbnNpb25zL2dyaWQvY29sdW1uLW1lbnUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdEUsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBRU4sU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQVcsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7Ozs7QUFnQmpFLE1BQU0sT0FBTyxpQkFBaUI7SUFSOUI7UUFZVyxZQUFPLEdBQW9CLEVBQUUsQ0FBQztRQUM5QixlQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLHNCQUFpQixHQUFvQixNQUFNLENBQUM7UUFDNUMsYUFBUSxHQUFHLElBQUksQ0FBQztRQUNoQixhQUFRLEdBQUcsSUFBSSxDQUFDO1FBVWpCLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBRWhCLGVBQVUsR0FBc0IsU0FBUyxDQUFDO1FBRTFDLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFFaEIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixlQUFVLEdBQUcsZ0JBQWdCLENBQUM7UUFFOUIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixlQUFVLEdBQUcsZ0JBQWdCLENBQUM7UUFHN0IsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBbUIsQ0FBQztRQVdyRCxnQkFBVyxHQUE2QjtZQUM5QyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtZQUNwQyxFQUFFLEtBQUss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Z0JBRUksWUFBWTtzQkFBckIsTUFBTTtnQkFHSCxVQUFVO3NCQURiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZGtEcmFnRHJvcCwgbW92ZUl0ZW1JbkFycmF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRoZW1lUGFsZXR0ZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgTWF0TWVudSwgTWF0TWVudVRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcbmltcG9ydCB7XG4gIE10eEdyaWRCdXR0b25UeXBlLFxuICBNdHhHcmlkQ29sdW1uLFxuICBNdHhHcmlkQ29sdW1uUGluT3B0aW9uLFxuICBNdHhHcmlkQ29sdW1uUGluVmFsdWUsXG59IGZyb20gJy4vaW50ZXJmYWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ210eC1ncmlkLWNvbHVtbi1tZW51JyxcbiAgZXhwb3J0QXM6ICdtdHhHcmlkQ29sdW1uTWVudScsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb2x1bW4tbWVudS5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY29sdW1uLW1lbnUuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTXR4R3JpZENvbHVtbk1lbnUge1xuICBAVmlld0NoaWxkKCdtZW51JywgeyBzdGF0aWM6IHRydWUgfSkgbWVudVBhbmVsITogTWF0TWVudTtcbiAgQFZpZXdDaGlsZChNYXRNZW51VHJpZ2dlcikgbWVudVRyaWdnZXIhOiBNYXRNZW51VHJpZ2dlcjtcblxuICBASW5wdXQoKSBjb2x1bW5zOiBNdHhHcmlkQ29sdW1uW10gPSBbXTtcbiAgQElucHV0KCkgc2VsZWN0YWJsZSA9IHRydWU7XG4gIEBJbnB1dCgpIHNlbGVjdGFibGVDaGVja2VkOiAnc2hvdycgfCAnaGlkZScgPSAnc2hvdyc7XG4gIEBJbnB1dCgpIHNvcnRhYmxlID0gdHJ1ZTtcbiAgQElucHV0KCkgcGlubmFibGUgPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIGdldCBidXR0b25UZXh0KCkge1xuICAgIGNvbnN0IGRlZmF1bHRUZXh0ID0gYENvbHVtbnMgJHt0aGlzLnNlbGVjdGFibGVDaGVja2VkID09PSAnc2hvdycgPyAnU2hvd24nIDogJ0hpZGRlbid9YDtcbiAgICByZXR1cm4gdGhpcy5fYnV0dG9uVGV4dCA/IHRoaXMuX2J1dHRvblRleHQgOiBkZWZhdWx0VGV4dDtcbiAgfVxuICBzZXQgYnV0dG9uVGV4dCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fYnV0dG9uVGV4dCA9IHZhbHVlO1xuICB9XG4gIHByaXZhdGUgX2J1dHRvblRleHQgPSAnJztcblxuICBASW5wdXQoKSBidXR0b25UeXBlOiBNdHhHcmlkQnV0dG9uVHlwZSA9ICdzdHJva2VkJztcbiAgQElucHV0KCkgYnV0dG9uQ29sb3I6IFRoZW1lUGFsZXR0ZTtcbiAgQElucHV0KCkgYnV0dG9uQ2xhc3MgPSAnJztcbiAgQElucHV0KCkgYnV0dG9uSWNvbiA9ICcnO1xuXG4gIEBJbnB1dCgpIHNob3dIZWFkZXIgPSBmYWxzZTtcbiAgQElucHV0KCkgaGVhZGVyVGV4dCA9ICdDb2x1bW5zIEhlYWRlcic7XG4gIEBJbnB1dCgpIGhlYWRlclRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcbiAgQElucHV0KCkgc2hvd0Zvb3RlciA9IGZhbHNlO1xuICBASW5wdXQoKSBmb290ZXJUZXh0ID0gJ0NvbHVtbnMgRm9vdGVyJztcbiAgQElucHV0KCkgZm9vdGVyVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBPdXRwdXQoKSBjb2x1bW5DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPE10eEdyaWRDb2x1bW5bXT4oKTtcblxuICBASW5wdXQoKVxuICBnZXQgcGluT3B0aW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy5fcGluT3B0aW9ucztcbiAgfVxuICBzZXQgcGluT3B0aW9ucyh2YWx1ZTogTXR4R3JpZENvbHVtblBpbk9wdGlvbltdKSB7XG4gICAgaWYgKHZhbHVlLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuX3Bpbk9wdGlvbnMgPSB2YWx1ZTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBfcGluT3B0aW9uczogTXR4R3JpZENvbHVtblBpbk9wdGlvbltdID0gW1xuICAgIHsgbGFiZWw6ICdQaW4gTGVmdCcsIHZhbHVlOiAnbGVmdCcgfSxcbiAgICB7IGxhYmVsOiAnUGluIFJpZ2h0JywgdmFsdWU6ICdyaWdodCcgfSxcbiAgICB7IGxhYmVsOiAnTm8gUGluJywgdmFsdWU6IG51bGwgfSxcbiAgXTtcblxuICBfaGFuZGxlRHJvcGVkKGU6IENka0RyYWdEcm9wPHN0cmluZ1tdPikge1xuICAgIG1vdmVJdGVtSW5BcnJheSh0aGlzLmNvbHVtbnMsIGUucHJldmlvdXNJbmRleCwgZS5jdXJyZW50SW5kZXgpO1xuICAgIHRoaXMuY29sdW1uQ2hhbmdlLmVtaXQodGhpcy5jb2x1bW5zKTtcbiAgfVxuXG4gIF9oYW5kbGVDaGVja2VkKGNvbDogTXR4R3JpZENvbHVtbikge1xuICAgIGlmICh0aGlzLnNlbGVjdGFibGVDaGVja2VkID09PSAnc2hvdycpIHtcbiAgICAgIGNvbC5oaWRlID0gIWNvbC5zaG93O1xuICAgIH0gZWxzZSB7XG4gICAgICBjb2wuc2hvdyA9ICFjb2wuaGlkZTtcbiAgICB9XG4gICAgdGhpcy5jb2x1bW5DaGFuZ2UuZW1pdCh0aGlzLmNvbHVtbnMpO1xuICB9XG5cbiAgX2hhbmRsZVBpblNlbGVjdChjb2w6IE10eEdyaWRDb2x1bW4sIHZhbDogTXR4R3JpZENvbHVtblBpblZhbHVlKSB7XG4gICAgaWYgKGNvbC5waW5uZWQgIT0gdmFsKSB7XG4gICAgICBjb2wucGlubmVkID0gdmFsO1xuICAgICAgdGhpcy5jb2x1bW5DaGFuZ2UuZW1pdCh0aGlzLmNvbHVtbnMpO1xuICAgIH1cbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiYnV0dG9uVHlwZVwiPlxyXG4gIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidyYWlzZWQnXCI+XHJcbiAgICA8YnV0dG9uIFtuZ0NsYXNzXT1cImJ1dHRvbkNsYXNzXCIgbWF0LXJhaXNlZC1idXR0b24gdHlwZT1cImJ1dHRvblwiIFtjb2xvcl09XCJidXR0b25Db2xvclwiXHJcbiAgICAgICAgICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCI+XHJcbiAgICAgIDxtYXQtaWNvbiAqbmdJZj1cImJ1dHRvbkljb25cIj57e2J1dHRvbkljb259fTwvbWF0LWljb24+IHt7YnV0dG9uVGV4dH19XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInc3Ryb2tlZCdcIj5cclxuICAgIDxidXR0b24gW25nQ2xhc3NdPVwiYnV0dG9uQ2xhc3NcIiBtYXQtc3Ryb2tlZC1idXR0b24gdHlwZT1cImJ1dHRvblwiIFtjb2xvcl09XCJidXR0b25Db2xvclwiXHJcbiAgICAgICAgICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCI+XHJcbiAgICAgIDxtYXQtaWNvbiAqbmdJZj1cImJ1dHRvbkljb25cIj57e2J1dHRvbkljb259fTwvbWF0LWljb24+IHt7YnV0dG9uVGV4dH19XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZmxhdCdcIj5cclxuICAgIDxidXR0b24gW25nQ2xhc3NdPVwiYnV0dG9uQ2xhc3NcIiBtYXQtZmxhdC1idXR0b24gdHlwZT1cImJ1dHRvblwiIFtjb2xvcl09XCJidXR0b25Db2xvclwiXHJcbiAgICAgICAgICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCI+XHJcbiAgICAgIDxtYXQtaWNvbiAqbmdJZj1cImJ1dHRvbkljb25cIj57e2J1dHRvbkljb259fTwvbWF0LWljb24+IHt7YnV0dG9uVGV4dH19XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInaWNvbidcIj5cclxuICAgIDxidXR0b24gW25nQ2xhc3NdPVwiYnV0dG9uQ2xhc3NcIiBtYXQtaWNvbi1idXR0b24gdHlwZT1cImJ1dHRvblwiIFtjb2xvcl09XCJidXR0b25Db2xvclwiXHJcbiAgICAgICAgICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCI+XHJcbiAgICAgIDxtYXQtaWNvbiAqbmdJZj1cImJ1dHRvbkljb25cIj57e2J1dHRvbkljb259fTwvbWF0LWljb24+XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZmFiJ1wiPlxyXG4gICAgPGJ1dHRvbiBbbmdDbGFzc109XCJidXR0b25DbGFzc1wiIG1hdC1mYWIgdHlwZT1cImJ1dHRvblwiIFtjb2xvcl09XCJidXR0b25Db2xvclwiXHJcbiAgICAgICAgICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCI+XHJcbiAgICAgIDxtYXQtaWNvbiAqbmdJZj1cImJ1dHRvbkljb25cIj57e2J1dHRvbkljb259fTwvbWF0LWljb24+IHt7YnV0dG9uVGV4dH19XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInbWluaS1mYWInXCI+XHJcbiAgICA8YnV0dG9uIFtuZ0NsYXNzXT1cImJ1dHRvbkNsYXNzXCIgbWF0LW1pbmktZmFiIHR5cGU9XCJidXR0b25cIiBbY29sb3JdPVwiYnV0dG9uQ29sb3JcIlxyXG4gICAgICAgICAgICBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiPlxyXG4gICAgICA8bWF0LWljb24gKm5nSWY9XCJidXR0b25JY29uXCI+e3tidXR0b25JY29ufX08L21hdC1pY29uPiB7e2J1dHRvblRleHR9fVxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxyXG4gICAgPGJ1dHRvbiBbbmdDbGFzc109XCJidXR0b25DbGFzc1wiIG1hdC1idXR0b24gdHlwZT1cImJ1dHRvblwiIFtjb2xvcl09XCJidXR0b25Db2xvclwiXHJcbiAgICAgICAgICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCI+XHJcbiAgICAgIDxtYXQtaWNvbiAqbmdJZj1cImJ1dHRvbkljb25cIj57e2J1dHRvbkljb259fTwvbWF0LWljb24+IHt7YnV0dG9uVGV4dH19XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9uZy1jb250YWluZXI+XHJcblxyXG48bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCIgY2xhc3M9XCJtdHgtZ3JpZC1jb2x1bW4tbWVudVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJtdHgtZ3JpZC1jb2x1bW4tbWVudS1jb250ZW50XCJcclxuICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIiAoa2V5ZG93bik9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJtdHgtZ3JpZC1jb2x1bW4tbWVudS1oZWFkZXJcIiAqbmdJZj1cInNob3dIZWFkZXJcIj5cclxuICAgICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cImhlYWRlclRlbXBsYXRlXCIgW25nSWZFbHNlXT1cImRlZmF1bHRIZWFkZXJUcGxcIj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiaGVhZGVyVGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRIZWFkZXJUcGw+e3toZWFkZXJUZXh0fX08L25nLXRlbXBsYXRlPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cIm10eC1ncmlkLWNvbHVtbi1tZW51LWJvZHlcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm10eC1ncmlkLWNvbHVtbi1tZW51LWxpc3RcIiAqbmdJZj1cInNvcnRhYmxlXCJcclxuICAgICAgICAgICBjZGtEcm9wTGlzdCAoY2RrRHJvcExpc3REcm9wcGVkKT1cIl9oYW5kbGVEcm9wZWQoJGV2ZW50KVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtdHgtZ3JpZC1jb2x1bW4tbWVudS1pdGVtXCIgKm5nRm9yPVwibGV0IGNvbCBvZiBjb2x1bW5zXCJcclxuICAgICAgICAgICAgIGNka0RyYWcgW2Nka0RyYWdEaXNhYmxlZF09XCJzZWxlY3RhYmxlQ2hlY2tlZCA9PT0gJ3Nob3cnPyAhY29sLnNob3cgOiBjb2wuaGlkZVwiPlxyXG4gICAgICAgICAgPHN2ZyBjbGFzcz1cIm10eC1ncmlkLWljb24gbXR4LWdyaWQtY29sdW1uLWRyYWctaGFuZGxlLWljb25cIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcclxuICAgICAgICAgICAgICAgd2lkdGg9XCIyNHB4XCIgaGVpZ2h0PVwiMjRweFwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIiBmb2N1c2FibGU9XCJmYWxzZVwiPlxyXG4gICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICBkPVwiTTcsMTlWMTdIOVYxOUg3TTExLDE5VjE3SDEzVjE5SDExTTE1LDE5VjE3SDE3VjE5SDE1TTcsMTVWMTNIOVYxNUg3TTExLDE1VjEzSDEzVjE1SDExTTE1LDE1VjEzSDE3VjE1SDE1TTcsMTFWOUg5VjExSDdNMTEsMTFWOUgxM1YxMUgxMU0xNSwxMVY5SDE3VjExSDE1TTcsN1Y1SDlWN0g3TTExLDdWNUgxM1Y3SDExTTE1LDdWNUgxN1Y3SDE1WlwiPlxyXG4gICAgICAgICAgICA8L3BhdGg+XHJcbiAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJjaGVja2JveExpc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogY29sIH1cIj5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cIm10eC1ncmlkLWNvbHVtbi1tZW51LWxpc3RcIiAqbmdJZj1cIiFzb3J0YWJsZVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtdHgtZ3JpZC1jb2x1bW4tbWVudS1pdGVtXCIgKm5nRm9yPVwibGV0IGNvbCBvZiBjb2x1bW5zXCI+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiY2hlY2tib3hMaXN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGNvbCB9XCI+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJtdHgtZ3JpZC1jb2x1bW4tbWVudS1mb290ZXJcIiAqbmdJZj1cInNob3dGb290ZXJcIj5cclxuICAgICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cImZvb3RlclRlbXBsYXRlXCIgW25nSWZFbHNlXT1cImRlZmF1bHRGb290ZXJUcGxcIj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiZm9vdGVyVGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRGb290ZXJUcGw+e3tmb290ZXJUZXh0fX08L25nLXRlbXBsYXRlPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvbWF0LW1lbnU+XHJcblxyXG48bmctdGVtcGxhdGUgI2NoZWNrYm94TGlzdCBsZXQtY29sPlxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJwaW5uYWJsZVwiPlxyXG4gICAgPGJ1dHRvbiBjbGFzcz1cIm10eC1ncmlkLWNvbHVtbi1waW4tYnV0dG9uXCIgbWF0LWljb24tYnV0dG9uIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICBbbWF0TWVudVRyaWdnZXJGb3JdPVwicGluTGlzdFwiPlxyXG4gICAgICA8c3ZnIGNsYXNzPVwibXR4LWdyaWQtaWNvbiBtdHgtZ3JpZC1jb2x1bW4tcGluLWljb25cIiAqbmdJZj1cImNvbC5waW5uZWRcIlxyXG4gICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiB3aWR0aD1cIjI0cHhcIiBoZWlnaHQ9XCIyNHB4XCIgZmlsbD1cImN1cnJlbnRDb2xvclwiIGZvY3VzYWJsZT1cImZhbHNlXCI+XHJcbiAgICAgICAgPHBhdGggZD1cIk0xNiwxMlY0SDE3VjJIN1Y0SDhWMTJMNiwxNFYxNkgxMS4yVjIySDEyLjhWMTZIMThWMTRMMTYsMTJaXCIgLz5cclxuICAgICAgPC9zdmc+XHJcbiAgICAgIDxzdmcgY2xhc3M9XCJtdHgtZ3JpZC1pY29uIG10eC1ncmlkLWNvbHVtbi1waW4tb2ZmLWljb25cIiAqbmdJZj1cIiFjb2wucGlubmVkXCJcclxuICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgd2lkdGg9XCIyNHB4XCIgaGVpZ2h0PVwiMjRweFwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIiBmb2N1c2FibGU9XCJmYWxzZVwiPlxyXG4gICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgZD1cIk0yLDUuMjdMMy4yOCw0TDIwLDIwLjcyTDE4LjczLDIyTDEyLjgsMTYuMDdWMjJIMTEuMlYxNkg2VjE0TDgsMTJWMTEuMjdMMiw1LjI3TTE2LDEyTDE4LDE0VjE2SDE3LjgyTDgsNi4xOFY0SDdWMkgxN1Y0SDE2VjEyWlwiIC8+XHJcbiAgICAgIDwvc3ZnPlxyXG4gICAgPC9idXR0b24+XHJcbiAgICA8bWF0LW1lbnUgI3Bpbkxpc3Q9XCJtYXRNZW51XCIgY2xhc3M9XCJtdHgtZ3JpZC1jb2x1bW4tcGluLWxpc3RcIj5cclxuICAgICAgPGJ1dHRvbiBjbGFzcz1cIm10eC1ncmlkLWNvbHVtbi1waW4tb3B0aW9uXCIgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgcGluT3B0aW9uc1wiIG1hdC1tZW51LWl0ZW1cclxuICAgICAgICAgICAgICAoY2xpY2spPVwiX2hhbmRsZVBpblNlbGVjdChjb2wsIGl0ZW0udmFsdWUpXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtdHgtZ3JpZC1jb2x1bW4tcGluLW9wdGlvbi1wbGFjZWhvbGRlclwiPlxyXG4gICAgICAgICAgPCEtLSBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L3RlbXBsYXRlL2VxZXFlcSAtLT5cclxuICAgICAgICAgIDxzdmcgY2xhc3M9XCJtdHgtZ3JpZC1pY29uIG10eC1ncmlkLWNvbHVtbi1waW4tY2hlY2staWNvblwiICpuZ0lmPVwiY29sLnBpbm5lZD09aXRlbS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiB3aWR0aD1cIjI0cHhcIiBoZWlnaHQ9XCIyNHB4XCIgZmlsbD1cImN1cnJlbnRDb2xvclwiIGZvY3VzYWJsZT1cImZhbHNlXCI+XHJcbiAgICAgICAgICAgIDxwYXRoIGQ9XCJNMjEsN0w5LDE5TDMuNSwxMy41TDQuOTEsMTIuMDlMOSwxNi4xN0wxOS41OSw1LjU5TDIxLDdaXCIgLz5cclxuICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cIm10eC1ncmlkLWNvbHVtbi1waW4tb3B0aW9uLXRleHRcIj57e2l0ZW0ubGFiZWwgfCB0b09ic2VydmFibGUgfCBhc3luY319PC9zcGFuPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvbWF0LW1lbnU+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIDxtYXQtY2hlY2tib3ggY2xhc3M9XCJtdHgtZ3JpZC1jb2x1bW4tbWVudS1pdGVtLWxhYmVsXCIgKm5nSWY9XCJzZWxlY3RhYmxlXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY29sW3NlbGVjdGFibGVDaGVja2VkXVwiIFtkaXNhYmxlZF09XCJjb2wuZGlzYWJsZWRcIlxyXG4gICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJfaGFuZGxlQ2hlY2tlZChjb2wpXCI+XHJcbiAgICB7e2NvbC5oZWFkZXIgfCB0b09ic2VydmFibGUgfCBhc3luY319XHJcbiAgPC9tYXQtY2hlY2tib3g+XHJcbiAgPHNwYW4gY2xhc3M9XCJtdHgtZ3JpZC1jb2x1bW4tbWVudS1pdGVtLWxhYmVsXCIgKm5nSWY9XCIhc2VsZWN0YWJsZVwiPlxyXG4gICAge3tjb2wuaGVhZGVyIHwgdG9PYnNlcnZhYmxlIHwgYXN5bmN9fVxyXG4gIDwvc3Bhbj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
|
|
@@ -24,9 +24,9 @@ export class MatColumnResizeFlex extends AbstractMatColumnResize {
|
|
|
24
24
|
this.notifier = notifier;
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
|
-
/** @nocollapse */ MatColumnResizeFlex.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
28
|
-
/** @nocollapse */ MatColumnResizeFlex.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.
|
|
29
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
27
|
+
/** @nocollapse */ MatColumnResizeFlex.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MatColumnResizeFlex, deps: [{ token: i1.ColumnResizeNotifier }, { token: i0.ElementRef }, { token: i1.HeaderRowEventDispatcher }, { token: i0.NgZone }, { token: i1.ColumnResizeNotifierSource }], target: i0.ɵɵFactoryTarget.Directive });
|
|
28
|
+
/** @nocollapse */ MatColumnResizeFlex.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: MatColumnResizeFlex, selector: "mat-table[columnResize]", host: { classAttribute: "mat-column-resize-flex" }, providers: [...FLEX_PROVIDERS, { provide: ColumnResize, useExisting: MatColumnResizeFlex }], usesInheritance: true, ngImport: i0 });
|
|
29
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MatColumnResizeFlex, decorators: [{
|
|
30
30
|
type: Directive,
|
|
31
31
|
args: [{
|
|
32
32
|
selector: 'mat-table[columnResize]',
|
|
@@ -34,4 +34,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImpor
|
|
|
34
34
|
providers: [...FLEX_PROVIDERS, { provide: ColumnResize, useExisting: MatColumnResizeFlex }],
|
|
35
35
|
}]
|
|
36
36
|
}], ctorParameters: function () { return [{ type: i1.ColumnResizeNotifier }, { type: i0.ElementRef }, { type: i1.HeaderRowEventDispatcher }, { type: i0.NgZone }, { type: i1.ColumnResizeNotifierSource }]; } });
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLXJlc2l6ZS1mbGV4LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXh0ZW5zaW9ucy9ncmlkL2NvbHVtbi1yZXNpemUvY29sdW1uLXJlc2l6ZS1kaXJlY3RpdmVzL2NvbHVtbi1yZXNpemUtZmxleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQUUsU0FBUyxFQUFzQixNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQ0wsWUFBWSxHQUliLE1BQU0scUNBQXFDLENBQUM7QUFFN0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGtCQUFrQixFQUFFLGNBQWMsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7O0FBRXZGOzs7R0FHRztBQU1ILE1BQU0sT0FBTyxtQkFBb0IsU0FBUSx1QkFBdUI7SUFDOUQsWUFDVyxvQkFBMEMsRUFDMUMsVUFBbUMsRUFDekIsZUFBeUMsRUFDekMsTUFBYyxFQUNkLFFBQW9DO1FBRXZELEtBQUssRUFBRSxDQUFDO1FBTkMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQUMxQyxlQUFVLEdBQVYsVUFBVSxDQUF5QjtRQUN6QixvQkFBZSxHQUFmLGVBQWUsQ0FBMEI7UUFDekMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGFBQVEsR0FBUixRQUFRLENBQTRCO0lBR3pELENBQUM7O29JQVRVLG1CQUFtQjt3SEFBbkIsbUJBQW1CLHNHQUZuQixDQUFDLEdBQUcsY0FBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQzs0RkFFaEYsbUJBQW1CO2tCQUwvQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx5QkFBeUI7b0JBQ25DLElBQUksRUFBRSxrQkFBa0I7b0JBQ3hCLFNBQVMsRUFBRSxDQUFDLEdBQUcsY0FBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLHFCQUFxQixFQUFFLENBQUM7aUJBQzVGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBDb2x1bW5SZXNpemUsXG4gIENvbHVtblJlc2l6ZU5vdGlmaWVyLFxuICBDb2x1bW5SZXNpemVOb3RpZmllclNvdXJjZSxcbiAgSGVhZGVyUm93RXZlbnREaXNwYXRjaGVyLFxufSBmcm9tICdAbmctbWF0ZXJvL2V4dGVuc2lvbnMvY29sdW1uLXJlc2l6ZSc7XG5cbmltcG9ydCB7IEFic3RyYWN0TWF0Q29sdW1uUmVzaXplLCBGTEVYX0hPU1RfQklORElOR1MsIEZMRVhfUFJPVklERVJTIH0gZnJvbSAnLi9jb21tb24nO1xuXG4vKipcbiAqIEV4cGxpY2l0bHkgZW5hYmxlcyBjb2x1bW4gcmVzaXppbmcgZm9yIGEgZmxleGJveC1iYXNlZCBtYXQtdGFibGUuXG4gKiBJbmRpdmlkdWFsIGNvbHVtbnMgbXVzdCBiZSBhbm5vdGF0ZWQgc3BlY2lmaWNhbGx5LlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdtYXQtdGFibGVbY29sdW1uUmVzaXplXScsXG4gIGhvc3Q6IEZMRVhfSE9TVF9CSU5ESU5HUyxcbiAgcHJvdmlkZXJzOiBbLi4uRkxFWF9QUk9WSURFUlMsIHsgcHJvdmlkZTogQ29sdW1uUmVzaXplLCB1c2VFeGlzdGluZzogTWF0Q29sdW1uUmVzaXplRmxleCB9XSxcbn0pXG5leHBvcnQgY2xhc3MgTWF0Q29sdW1uUmVzaXplRmxleCBleHRlbmRzIEFic3RyYWN0TWF0Q29sdW1uUmVzaXplIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcmVhZG9ubHkgY29sdW1uUmVzaXplTm90aWZpZXI6IENvbHVtblJlc2l6ZU5vdGlmaWVyLFxuICAgIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgIHByb3RlY3RlZCByZWFkb25seSBldmVudERpc3BhdGNoZXI6IEhlYWRlclJvd0V2ZW50RGlzcGF0Y2hlcixcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgbmdab25lOiBOZ1pvbmUsXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IG5vdGlmaWVyOiBDb2x1bW5SZXNpemVOb3RpZmllclNvdXJjZVxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG59XG4iXX0=
|