ngx-rs-ant 2.3.9 → 2.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -22,6 +22,7 @@ export declare class CamundaBpmnEditorComponent {
22
22
  loadXml(): void;
23
23
  showXml(): void;
24
24
  saveXml(callback?: any): void;
25
+ zoom(type: 'reset' | 'zoomIn' | 'zoomOut'): void;
25
26
  static ɵfac: i0.ɵɵFactoryDeclaration<CamundaBpmnEditorComponent, never>;
26
27
  static ɵcmp: i0.ɵɵComponentDeclaration<CamundaBpmnEditorComponent, "rs-camunda-bpmn-editor", never, { "xml": "xml"; "showXmlButton": "showXmlButton"; "showConfigButton": "showConfigButton"; }, { "selectedNodeChanged": "selectedNodeChanged"; }, never, never, false, never>;
27
28
  }
@@ -11,6 +11,7 @@ export declare class CamundaBpmnViewerComponent {
11
11
  viewerContainer: ElementRef;
12
12
  ngAfterViewInit(): void;
13
13
  loadXml(): void;
14
+ zoom(type: 'reset' | 'zoomIn' | 'zoomOut'): void;
14
15
  static ɵfac: i0.ɵɵFactoryDeclaration<CamundaBpmnViewerComponent, never>;
15
16
  static ɵcmp: i0.ɵɵComponentDeclaration<CamundaBpmnViewerComponent, "rs-camunda-bpmn-viewer", never, { "xml": "xml"; "failedActivities": "failedActivities"; "activeActivities": "activeActivities"; }, {}, never, never, false, never>;
16
17
  }
@@ -46,7 +46,8 @@ export declare class DataGridComponent implements OnInit {
46
46
  reload(): void;
47
47
  getSelectedRowKeys(): any[] & Promise<any[]>;
48
48
  getSelectedRowsData(): any[] & Promise<any[]>;
49
- getCombinedFilter(): any;
49
+ getUserFilter(): any;
50
+ getUserSort(): any;
50
51
  refresh(callback?: any): void;
51
52
  onDxDataGridEditorPreparing($event: any): void;
52
53
  static ɵfac: i0.ɵɵFactoryDeclaration<DataGridComponent, never>;
@@ -6,9 +6,13 @@ import * as i0 from "@angular/core";
6
6
  export declare class DataGridFactory {
7
7
  constructor(http: HttpClient);
8
8
  private service;
9
+ private finalFilter;
10
+ private finalSort;
9
11
  private typeMap;
10
12
  makeDataGridColumns(tenant: any, className: any, view: any, dataGridInstance: DxDataGridComponent): Observable<any>;
11
13
  makeDataGridDataSource(tenant: any, className: any, view: any, extraFilter: any, keyExpr?: string, dataGridName?: string): CustomStore;
14
+ getFilter(): any;
15
+ getSort(): any;
12
16
  static ɵfac: i0.ɵɵFactoryDeclaration<DataGridFactory, never>;
13
17
  static ɵprov: i0.ɵɵInjectableDeclaration<DataGridFactory>;
14
18
  }
@@ -108,12 +108,26 @@ export class CamundaBpmnEditorComponent {
108
108
  }
109
109
  });
110
110
  }
111
+ zoom(type) {
112
+ const zoom = this.canvas.zoom();
113
+ switch (type) {
114
+ case 'reset':
115
+ this.canvas.zoom('fit-viewport');
116
+ break;
117
+ case 'zoomIn':
118
+ this.canvas.zoom(zoom + 0.1);
119
+ break;
120
+ case 'zoomOut':
121
+ this.canvas.zoom(zoom - 0.1);
122
+ break;
123
+ }
124
+ }
111
125
  }
112
126
  CamundaBpmnEditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CamundaBpmnEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
113
- CamundaBpmnEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: CamundaBpmnEditorComponent, selector: "rs-camunda-bpmn-editor", inputs: { xml: "xml", showXmlButton: "showXmlButton", showConfigButton: "showConfigButton" }, outputs: { selectedNodeChanged: "selectedNodeChanged" }, viewQueries: [{ propertyName: "bpmnContainer", first: true, predicate: ["bpmnContainer"], descendants: true }, { propertyName: "bpmnConfig", first: true, predicate: ["bpmnConfig"], descendants: true }], ngImport: i0, template: "<div class=\"main\">\r\n <div class=\"container\" #bpmnContainer></div>\r\n <div [hidden]=\"!isShowConfig\" class=\"config\" #bpmnConfig></div>\r\n <div class=\"xml-viewer\" [ngStyle]=\"{display: isShowXml ? 'flex' : 'none'}\">\r\n <rs-code-editor language=\"xml\" [code]=\"xml\" [readonly]=\"true\" [enableMinimap]=\"true\"></rs-code-editor>\r\n </div>\r\n</div>\r\n<div class=\"footer\">\r\n <dx-button [type]=\"isShowXml ? 'default' : 'normal'\" text=\"XML\" [hoverStateEnabled]=\"false\"\r\n [visible]=\"showXmlButton\" (onClick)=\"showXml()\"></dx-button>\r\n <dx-button [type]=\"isShowConfig ? 'default' : 'normal'\" icon=\"coast-icon coast-icon-setting\"\r\n style=\"float: right;\" [visible]=\"showConfigButton\"\r\n (onClick)=\"isShowConfig = !isShowConfig;\"></dx-button>\r\n</div>\r\n", styles: [":host{flex:1;display:flex;flex-flow:column nowrap}:host .main{flex:1;display:flex;flex-flow:row nowrap;position:relative}:host .main .container{flex:1}:host .main .config{flex:0 0 360px;border:1px solid var(--coast-border-color, rgb(221, 221, 221))}:host .main .xml-viewer{position:absolute;width:100%;height:100%;display:flex;flex-flow:column nowrap;z-index:var(--coast-z-index-drawer, 2000)}:host .main .xml-viewer rs-code-editor{flex:1}:host .footer{flex:0 0 24px;border:1px solid var(--coast-border-color, rgb(221, 221, 221))}\n"], dependencies: [{ kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2.CodeEditorComponent, selector: "rs-code-editor", inputs: ["code", "language", "readonly", "enableMinimap", "consoleMessage"], outputs: ["codeChange", "onContentReady"] }, { kind: "component", type: i3.DxButtonComponent, selector: "dx-button", inputs: ["accessKey", "activeStateEnabled", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "icon", "rtlEnabled", "stylingMode", "tabIndex", "template", "text", "type", "useSubmitBehavior", "validationGroup", "visible", "width"], outputs: ["onClick", "onContentReady", "onDisposing", "onInitialized", "onOptionChanged", "accessKeyChange", "activeStateEnabledChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "iconChange", "rtlEnabledChange", "stylingModeChange", "tabIndexChange", "templateChange", "textChange", "typeChange", "useSubmitBehaviorChange", "validationGroupChange", "visibleChange", "widthChange"] }] });
127
+ CamundaBpmnEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: CamundaBpmnEditorComponent, selector: "rs-camunda-bpmn-editor", inputs: { xml: "xml", showXmlButton: "showXmlButton", showConfigButton: "showConfigButton" }, outputs: { selectedNodeChanged: "selectedNodeChanged" }, viewQueries: [{ propertyName: "bpmnContainer", first: true, predicate: ["bpmnContainer"], descendants: true }, { propertyName: "bpmnConfig", first: true, predicate: ["bpmnConfig"], descendants: true }], ngImport: i0, template: "<div class=\"main\">\r\n <div class=\"container\" #bpmnContainer>\r\n <div class=\"zoom-controls\">\r\n <ul class=\"zoom-reset io-control io-control-list\">\r\n <li>\r\n <button title=\"\u8FD8\u539F\" (click)=\"zoom('reset')\">\r\n <span class=\"coast-icon-refresh\"></span>\r\n </button>\r\n </li>\r\n <li>\r\n <hr class=\"separator\">\r\n </li>\r\n <li>\r\n <button title=\"\u653E\u5927\" (click)=\"zoom('zoomIn')\">\r\n <span class=\"coast-icon-add\"></span>\r\n </button>\r\n </li>\r\n <li>\r\n <hr class=\"separator\">\r\n </li>\r\n <li>\r\n <button title=\"\u7F29\u5C0F\" (click)=\"zoom('zoomOut')\">\r\n <span class=\"coast-icon-minus\"></span>\r\n </button>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n <div [hidden]=\"!isShowConfig\" class=\"config\" #bpmnConfig></div>\r\n <div class=\"xml-viewer\" [ngStyle]=\"{display: isShowXml ? 'flex' : 'none'}\">\r\n <rs-code-editor language=\"xml\" [code]=\"xml\" [readonly]=\"true\" [enableMinimap]=\"true\"></rs-code-editor>\r\n </div>\r\n</div>\r\n<div class=\"footer\">\r\n <dx-button [type]=\"isShowXml ? 'default' : 'normal'\" text=\"XML\" [hoverStateEnabled]=\"false\"\r\n [visible]=\"showXmlButton\" (onClick)=\"showXml()\"></dx-button>\r\n <dx-button [type]=\"isShowConfig ? 'default' : 'normal'\" icon=\"coast-icon coast-icon-setting\"\r\n style=\"float: right;\" [visible]=\"showConfigButton\"\r\n (onClick)=\"isShowConfig = !isShowConfig;\"></dx-button>\r\n</div>\r\n", styles: [":host{flex:1;display:flex;flex-flow:column nowrap}:host .main{flex:1;display:flex;flex-flow:row nowrap;position:relative}:host .main .container{flex:1;position:relative;z-index:0}:host .main .container .zoom-controls{position:absolute;right:8px;bottom:20px;z-index:1}:host .main .container .zoom-controls ul{list-style:none;padding:4px;margin:0;background:var(--coast-global-bg-color, rgb(245, 245, 245));border:1px solid var(--coast-border-color, rgb(221, 221, 221));border-radius:2px;box-shadow:0 0 2px #0000001f}:host .main .container .zoom-controls ul li button{cursor:pointer;font-size:14px;background:none;border:none}:host .main .container .zoom-controls ul li button:hover{color:var(--coast-default-color, rgb(51, 122, 183))}:host .main .container .zoom-controls ul li hr.separator{margin:4px;padding-top:4px;border:none;border-bottom:solid 1px gray;clear:both}:host .main .config{flex:0 0 360px;border:1px solid var(--coast-border-color, rgb(221, 221, 221))}:host .main .xml-viewer{position:absolute;width:100%;height:100%;display:flex;flex-flow:column nowrap;z-index:var(--coast-z-index-drawer, 2000)}:host .main .xml-viewer rs-code-editor{flex:1}:host .footer{flex:0 0 24px;border:1px solid var(--coast-border-color, rgb(221, 221, 221))}\n"], dependencies: [{ kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2.CodeEditorComponent, selector: "rs-code-editor", inputs: ["code", "language", "readonly", "enableMinimap", "consoleMessage"], outputs: ["codeChange", "onContentReady"] }, { kind: "component", type: i3.DxButtonComponent, selector: "dx-button", inputs: ["accessKey", "activeStateEnabled", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "icon", "rtlEnabled", "stylingMode", "tabIndex", "template", "text", "type", "useSubmitBehavior", "validationGroup", "visible", "width"], outputs: ["onClick", "onContentReady", "onDisposing", "onInitialized", "onOptionChanged", "accessKeyChange", "activeStateEnabledChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "iconChange", "rtlEnabledChange", "stylingModeChange", "tabIndexChange", "templateChange", "textChange", "typeChange", "useSubmitBehaviorChange", "validationGroupChange", "visibleChange", "widthChange"] }] });
114
128
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CamundaBpmnEditorComponent, decorators: [{
115
129
  type: Component,
116
- args: [{ selector: 'rs-camunda-bpmn-editor', template: "<div class=\"main\">\r\n <div class=\"container\" #bpmnContainer></div>\r\n <div [hidden]=\"!isShowConfig\" class=\"config\" #bpmnConfig></div>\r\n <div class=\"xml-viewer\" [ngStyle]=\"{display: isShowXml ? 'flex' : 'none'}\">\r\n <rs-code-editor language=\"xml\" [code]=\"xml\" [readonly]=\"true\" [enableMinimap]=\"true\"></rs-code-editor>\r\n </div>\r\n</div>\r\n<div class=\"footer\">\r\n <dx-button [type]=\"isShowXml ? 'default' : 'normal'\" text=\"XML\" [hoverStateEnabled]=\"false\"\r\n [visible]=\"showXmlButton\" (onClick)=\"showXml()\"></dx-button>\r\n <dx-button [type]=\"isShowConfig ? 'default' : 'normal'\" icon=\"coast-icon coast-icon-setting\"\r\n style=\"float: right;\" [visible]=\"showConfigButton\"\r\n (onClick)=\"isShowConfig = !isShowConfig;\"></dx-button>\r\n</div>\r\n", styles: [":host{flex:1;display:flex;flex-flow:column nowrap}:host .main{flex:1;display:flex;flex-flow:row nowrap;position:relative}:host .main .container{flex:1}:host .main .config{flex:0 0 360px;border:1px solid var(--coast-border-color, rgb(221, 221, 221))}:host .main .xml-viewer{position:absolute;width:100%;height:100%;display:flex;flex-flow:column nowrap;z-index:var(--coast-z-index-drawer, 2000)}:host .main .xml-viewer rs-code-editor{flex:1}:host .footer{flex:0 0 24px;border:1px solid var(--coast-border-color, rgb(221, 221, 221))}\n"] }]
130
+ args: [{ selector: 'rs-camunda-bpmn-editor', template: "<div class=\"main\">\r\n <div class=\"container\" #bpmnContainer>\r\n <div class=\"zoom-controls\">\r\n <ul class=\"zoom-reset io-control io-control-list\">\r\n <li>\r\n <button title=\"\u8FD8\u539F\" (click)=\"zoom('reset')\">\r\n <span class=\"coast-icon-refresh\"></span>\r\n </button>\r\n </li>\r\n <li>\r\n <hr class=\"separator\">\r\n </li>\r\n <li>\r\n <button title=\"\u653E\u5927\" (click)=\"zoom('zoomIn')\">\r\n <span class=\"coast-icon-add\"></span>\r\n </button>\r\n </li>\r\n <li>\r\n <hr class=\"separator\">\r\n </li>\r\n <li>\r\n <button title=\"\u7F29\u5C0F\" (click)=\"zoom('zoomOut')\">\r\n <span class=\"coast-icon-minus\"></span>\r\n </button>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n <div [hidden]=\"!isShowConfig\" class=\"config\" #bpmnConfig></div>\r\n <div class=\"xml-viewer\" [ngStyle]=\"{display: isShowXml ? 'flex' : 'none'}\">\r\n <rs-code-editor language=\"xml\" [code]=\"xml\" [readonly]=\"true\" [enableMinimap]=\"true\"></rs-code-editor>\r\n </div>\r\n</div>\r\n<div class=\"footer\">\r\n <dx-button [type]=\"isShowXml ? 'default' : 'normal'\" text=\"XML\" [hoverStateEnabled]=\"false\"\r\n [visible]=\"showXmlButton\" (onClick)=\"showXml()\"></dx-button>\r\n <dx-button [type]=\"isShowConfig ? 'default' : 'normal'\" icon=\"coast-icon coast-icon-setting\"\r\n style=\"float: right;\" [visible]=\"showConfigButton\"\r\n (onClick)=\"isShowConfig = !isShowConfig;\"></dx-button>\r\n</div>\r\n", styles: [":host{flex:1;display:flex;flex-flow:column nowrap}:host .main{flex:1;display:flex;flex-flow:row nowrap;position:relative}:host .main .container{flex:1;position:relative;z-index:0}:host .main .container .zoom-controls{position:absolute;right:8px;bottom:20px;z-index:1}:host .main .container .zoom-controls ul{list-style:none;padding:4px;margin:0;background:var(--coast-global-bg-color, rgb(245, 245, 245));border:1px solid var(--coast-border-color, rgb(221, 221, 221));border-radius:2px;box-shadow:0 0 2px #0000001f}:host .main .container .zoom-controls ul li button{cursor:pointer;font-size:14px;background:none;border:none}:host .main .container .zoom-controls ul li button:hover{color:var(--coast-default-color, rgb(51, 122, 183))}:host .main .container .zoom-controls ul li hr.separator{margin:4px;padding-top:4px;border:none;border-bottom:solid 1px gray;clear:both}:host .main .config{flex:0 0 360px;border:1px solid var(--coast-border-color, rgb(221, 221, 221))}:host .main .xml-viewer{position:absolute;width:100%;height:100%;display:flex;flex-flow:column nowrap;z-index:var(--coast-z-index-drawer, 2000)}:host .main .xml-viewer rs-code-editor{flex:1}:host .footer{flex:0 0 24px;border:1px solid var(--coast-border-color, rgb(221, 221, 221))}\n"] }]
117
131
  }], propDecorators: { xml: [{
118
132
  type: Input
119
133
  }], showXmlButton: [{
@@ -129,4 +143,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
129
143
  type: ViewChild,
130
144
  args: ['bpmnConfig']
131
145
  }] } });
132
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FtdW5kYS1icG1uLWVkaXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcnMtYW50L3NyYy9jYW11bmRhLWJwbW4tZWRpdG9yL2NhbXVuZGEtYnBtbi1lZGl0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJzLWFudC9zcmMvY2FtdW5kYS1icG1uLWVkaXRvci9jYW11bmRhLWJwbW4tZWRpdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzVGLE9BQU8sV0FBVyxNQUFNLDhDQUE4QyxDQUFDO0FBQ3ZFLE9BQU8scUJBQXFCLE1BQU0sb0JBQW9CLENBQUM7QUFDdkQsT0FBTyxvQkFBb0IsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RCxPQUFPLHVCQUF1QixNQUFNLHVCQUF1QixDQUFDO0FBQzVELE9BQU8scUJBQXFCLE1BQU0scUJBQXFCLENBQUM7Ozs7O0FBT3hELE1BQU0sT0FBTywwQkFBMEI7SUFMdkM7UUFvQkUsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFFdEIscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBRXpCLHdCQUFtQixHQUFHLElBQUksWUFBWSxFQUFnQyxDQUFDO1FBSzdELGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDdkIsbUJBQWMsR0FDcEIsd0NBQXdDO1lBQ3hDLDBFQUEwRTtZQUMxRSwyREFBMkQ7WUFDM0QsMERBQTBEO1lBQzFELG9EQUFvRDtZQUNwRCwrQ0FBK0M7WUFDL0MscUJBQXFCO1lBQ3JCLG1EQUFtRDtZQUNuRCxzQ0FBc0M7WUFDdEMsaUJBQWlCO1lBQ2pCLHlDQUF5QztZQUN6Qyw2REFBNkQ7WUFDN0QsNEVB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QUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNuQixJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUU7Z0JBQ3hCLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1lBQ2pCLENBQUMsQ0FBQyxDQUFBO1NBQ0g7UUFDRCxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUNuQyxDQUFDO0lBRU0sT0FBTyxDQUFDLFFBQWM7UUFDM0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFhLEVBQUUsRUFBRTtZQUMxRCxJQUFJLFFBQVEsRUFBRTtnQkFDWixRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ3hCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzt3SEFqSFUsMEJBQTBCOzRHQUExQiwwQkFBMEIsZ2FDWnZDLDAwQkFjQTs0RkRGYSwwQkFBMEI7a0JBTHRDLFNBQVM7K0JBQ0Usd0JBQXdCOzhCQU05QixHQUFHO3NCQUROLEtBQUs7Z0JBY04sYUFBYTtzQkFEWixLQUFLO2dCQUdOLGdCQUFnQjtzQkFEZixLQUFLO2dCQUdOLG1CQUFtQjtzQkFEbEIsTUFBTTtnQkFFcUIsYUFBYTtzQkFBeEMsU0FBUzt1QkFBQyxlQUFlO2dCQUNELFVBQVU7c0JBQWxDLFNBQVM7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCBCcG1uTW9kZWxlciBmcm9tICdjYW11bmRhLWJwbW4tanMvbGliL2NhbXVuZGEtcGxhdGZvcm0vTW9kZWxlcic7XHJcbmltcG9ydCBjdXN0b21UcmFuc2xhdGVNb2R1bGUgZnJvbSAnLi9jdXN0b20vdHJhbnNsYXRlJztcclxuaW1wb3J0IGN1c3RvbVVzZXJUYXNrTW9kdWxlIGZyb20gJy4vY3VzdG9tL3VzZXItdGFzayc7XHJcbmltcG9ydCBjdXN0b21TZXJ2aWNlVGFza01vZHVsZSBmcm9tICcuL2N1c3RvbS9zZXJ2aWNlLXRhc2snO1xyXG5pbXBvcnQgY3VzdG9tSGlkZU90aGVyTW9kdWxlIGZyb20gJy4vY3VzdG9tL2hpZGUtb3RoZXInO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdycy1jYW11bmRhLWJwbW4tZWRpdG9yJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY2FtdW5kYS1icG1uLWVkaXRvci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY2FtdW5kYS1icG1uLWVkaXRvci5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDYW11bmRhQnBtbkVkaXRvckNvbXBvbmVudCB7XHJcbiAgQElucHV0KClcclxuICBzZXQgeG1sKHhtbDogYW55KSB7XHJcbiAgICB0aGlzLl94bWwgPSB4bWw7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5sb2FkWG1sKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldCB4bWwoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5feG1sO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfeG1sOiBhbnk7XHJcbiAgQElucHV0KClcclxuICBzaG93WG1sQnV0dG9uID0gZmFsc2U7XHJcbiAgQElucHV0KClcclxuICBzaG93Q29uZmlnQnV0dG9uID0gZmFsc2U7XHJcbiAgQE91dHB1dCgpXHJcbiAgc2VsZWN0ZWROb2RlQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8eyBlbGVtZW50OiBhbnksIHV0aWw/OiBhbnkgfT4oKTtcclxuICBAVmlld0NoaWxkKCdicG1uQ29udGFpbmVyJykgYnBtbkNvbnRhaW5lcj86IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnYnBtbkNvbmZpZycpIGJwbW5Db25maWc/OiBFbGVtZW50UmVmO1xyXG4gIHByaXZhdGUgbW9kZWxlcjogYW55O1xyXG4gIHByaXZhdGUgY2FudmFzOiBhbnk7XHJcbiAgcHJvdGVjdGVkIGlzU2hvd1htbCA9IGZhbHNlO1xyXG4gIHByb3RlY3RlZCBpc1Nob3dDb25maWcgPSBmYWxzZTtcclxuICBwcml2YXRlIGluaXRpYWxEaWFncmFtID1cclxuICAgICc8P3htbCB2ZXJzaW9uPVwiMS4wXCIgZW5jb2Rpbmc9XCJVVEYtOFwiPz4nICtcclxuICAgICc8YnBtbjpkZWZpbml0aW9ucyB4bWxuczp4c2k9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZVwiICcgK1xyXG4gICAgJ3htbG5zOmJwbW49XCJodHRwOi8vd3d3Lm9tZy5vcmcvc3BlYy9CUE1OLzIwMTAwNTI0L01PREVMXCIgJyArXHJcbiAgICAneG1sbnM6YnBtbmRpPVwiaHR0cDovL3d3dy5vbWcub3JnL3NwZWMvQlBNTi8yMDEwMDUyNC9ESVwiICcgK1xyXG4gICAgJ3htbG5zOmRjPVwiaHR0cDovL3d3dy5vbWcub3JnL3NwZWMvREQvMjAxMDA1MjQvRENcIiAnICtcclxuICAgICd0YXJnZXROYW1lc3BhY2U9XCJodHRwOi8vYnBtbi5pby9zY2hlbWEvYnBtblwiICcgK1xyXG4gICAgJ2lkPVwiRGVmaW5pdGlvbnNfMVwiPicgK1xyXG4gICAgJzxicG1uOnByb2Nlc3MgaWQ9XCJQcm9jZXNzXzFcIiBpc0V4ZWN1dGFibGU9XCJ0cnVlXCI+JyArXHJcbiAgICAnPGJwbW46c3RhcnRFdmVudCBpZD1cIlN0YXJ0RXZlbnRfMVwiLz4nICtcclxuICAgICc8L2JwbW46cHJvY2Vzcz4nICtcclxuICAgICc8YnBtbmRpOkJQTU5EaWFncmFtIGlkPVwiQlBNTkRpYWdyYW1fMVwiPicgK1xyXG4gICAgJzxicG1uZGk6QlBNTlBsYW5lIGlkPVwiQlBNTlBsYW5lXzFcIiBicG1uRWxlbWVudD1cIlByb2Nlc3NfMVwiPicgK1xyXG4gICAgJzxicG1uZGk6QlBNTlNoYXBlIGlkPVwiX0JQTU5TaGFwZV9TdGFydEV2ZW50XzJcIiBicG1uRWxlbWVudD1cIlN0YXJ0RXZlbnRfMVwiPicgK1xyXG4gICAgJzxkYzpCb3VuZHMgaGVpZ2h0PVwiMzYuMFwiIHdpZHRoPVwiMzYuMFwiIHg9XCIxNzMuMFwiIHk9XCIxMDIuMFwiLz4nICtcclxuICAgICc8L2JwbW5kaTpCUE1OU2hhcGU+JyArXHJcbiAgICAnPC9icG1uZGk6QlBNTlBsYW5lPicgK1xyXG4gICAgJzwvYnBtbmRpOkJQTU5EaWFncmFtPicgK1xyXG4gICAgJzwvYnBtbjpkZWZpbml0aW9ucz4nO1xyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGlmICghdGhpcy54bWwpIHtcclxuICAgICAgdGhpcy54bWwgPSB0aGlzLmluaXRpYWxEaWFncmFtO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5tb2RlbGVyID0gbmV3IEJwbW5Nb2RlbGVyKHtcclxuICAgICAgY29udGFpbmVyOiB0aGlzLmJwbW5Db250YWluZXI/Lm5hdGl2ZUVsZW1lbnQsXHJcbiAgICAgIHByb3BlcnRpZXNQYW5lbDoge1xyXG4gICAgICAgIHBhcmVudDogdGhpcy5icG1uQ29uZmlnPy5uYXRpdmVFbGVtZW50LFxyXG4gICAgICB9LFxyXG4gICAgICBrZXlib2FyZDoge1xyXG4gICAgICAgIGJpbmRUbzogZG9jdW1lbnQsXHJcbiAgICAgIH0sXHJcbiAgICAgIGFkZGl0aW9uYWxNb2R1bGVzOiBbXHJcbiAgICAgICAgY3VzdG9tVHJhbnNsYXRlTW9kdWxlLFxyXG4gICAgICAgIGN1c3RvbVVzZXJUYXNrTW9kdWxlLFxyXG4gICAgICAgIGN1c3RvbVNlcnZpY2VUYXNrTW9kdWxlLFxyXG4gICAgICAgIGN1c3RvbUhpZGVPdGhlck1vZHVsZSxcclxuICAgICAgXVxyXG4gICAgfSk7XHJcbiAgICBjb25zdCBsb2dvID0gdGhpcy5tb2RlbGVyLl9jb250YWluZXIucXVlcnlTZWxlY3RvcignLmJqcy1wb3dlcmVkLWJ5Jyk7XHJcbiAgICBpZiAobG9nbykge1xyXG4gICAgICB0aGlzLm1vZGVsZXIuX2NvbnRhaW5lci5yZW1vdmVDaGlsZChsb2dvKTtcclxuICAgIH1cclxuICAgIHRoaXMubW9kZWxlci5nZXQoJ3BhbGV0dGUnKS5fdG9nZ2xlU3RhdGUoe3R3b0NvbHVtbjogZmFsc2V9KTtcclxuICAgIHRoaXMuY2FudmFzID0gdGhpcy5tb2RlbGVyLmdldCgnY2FudmFzJyk7XHJcbiAgICBjb25zdCBldmVudEJ1cyA9IHRoaXMubW9kZWxlci5nZXQoJ2V2ZW50QnVzJyk7XHJcbiAgICBldmVudEJ1cy5vbihbJ3Byb3BlcnRpZXNQYW5lbC51cGRhdGVkJ10sICgkZXZlbnQ6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheSgkZXZlbnQuZWxlbWVudCkpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZUNoYW5nZWQuZW1pdCgpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWROb2RlQ2hhbmdlZC5lbWl0KHtcclxuICAgICAgICAgIGVsZW1lbnQ6ICRldmVudC5lbGVtZW50LFxyXG4gICAgICAgICAgdXRpbDoge1xyXG4gICAgICAgICAgICBicG1uRmFjdG9yeTogdGhpcy5tb2RlbGVyLmdldCgnYnBtbkZhY3RvcnknKSxcclxuICAgICAgICAgICAgbW9kZWxpbmc6IHRoaXMubW9kZWxlci5nZXQoJ21vZGVsaW5nJyksXHJcbiAgICAgICAgICAgIGVsZW1lbnRSZWdpc3RyeTogdGhpcy5tb2RlbGVyLmdldCgnZWxlbWVudFJlZ2lzdHJ5JylcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLmxvYWRYbWwoKTtcclxuICB9XHJcblxyXG4gIGxvYWRYbWwoKSB7XHJcbiAgICB0aGlzLm1vZGVsZXIuaW1wb3J0WE1MKHRoaXMueG1sKS50aGVuKCgpID0+IHtcclxuICAgICAgdGhpcy5jYW52YXMuem9vbSgnZml0LXZpZXdwb3J0Jyk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNob3dYbWwoKSB7XHJcbiAgICBpZiAoIXRoaXMuaXNTaG93WG1sKSB7XHJcbiAgICAgIHRoaXMuc2F2ZVhtbCgoeG1sOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLnhtbCA9IHhtbDtcclxuICAgICAgfSlcclxuICAgIH1cclxuICAgIHRoaXMuaXNTaG93WG1sID0gIXRoaXMuaXNTaG93WG1sO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNhdmVYbWwoY2FsbGJhY2s/OiBhbnkpIHtcclxuICAgIHRoaXMubW9kZWxlci5zYXZlWE1MKHtmb3JtYXQ6IHRydWV9KS50aGVuKChyZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgIGlmIChjYWxsYmFjaykge1xyXG4gICAgICAgIGNhbGxiYWNrKHJlc3BvbnNlLnhtbCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwibWFpblwiPlxyXG4gIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIiAjYnBtbkNvbnRhaW5lcj48L2Rpdj5cclxuICA8ZGl2IFtoaWRkZW5dPVwiIWlzU2hvd0NvbmZpZ1wiIGNsYXNzPVwiY29uZmlnXCIgI2JwbW5Db25maWc+PC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cInhtbC12aWV3ZXJcIiBbbmdTdHlsZV09XCJ7ZGlzcGxheTogaXNTaG93WG1sID8gJ2ZsZXgnIDogJ25vbmUnfVwiPlxyXG4gICAgPHJzLWNvZGUtZWRpdG9yIGxhbmd1YWdlPVwieG1sXCIgW2NvZGVdPVwieG1sXCIgW3JlYWRvbmx5XT1cInRydWVcIiBbZW5hYmxlTWluaW1hcF09XCJ0cnVlXCI+PC9ycy1jb2RlLWVkaXRvcj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbjxkaXYgY2xhc3M9XCJmb290ZXJcIj5cclxuICA8ZHgtYnV0dG9uIFt0eXBlXT1cImlzU2hvd1htbCA/ICdkZWZhdWx0JyA6ICdub3JtYWwnXCIgdGV4dD1cIlhNTFwiIFtob3ZlclN0YXRlRW5hYmxlZF09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICBbdmlzaWJsZV09XCJzaG93WG1sQnV0dG9uXCIgKG9uQ2xpY2spPVwic2hvd1htbCgpXCI+PC9keC1idXR0b24+XHJcbiAgPGR4LWJ1dHRvbiBbdHlwZV09XCJpc1Nob3dDb25maWcgPyAnZGVmYXVsdCcgOiAnbm9ybWFsJ1wiIGljb249XCJjb2FzdC1pY29uIGNvYXN0LWljb24tc2V0dGluZ1wiXHJcbiAgICAgICAgICAgICBzdHlsZT1cImZsb2F0OiByaWdodDtcIiBbdmlzaWJsZV09XCJzaG93Q29uZmlnQnV0dG9uXCJcclxuICAgICAgICAgICAgIChvbkNsaWNrKT1cImlzU2hvd0NvbmZpZyA9ICFpc1Nob3dDb25maWc7XCI+PC9keC1idXR0b24+XHJcbjwvZGl2PlxyXG4iXX0=
146
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FtdW5kYS1icG1uLWVkaXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcnMtYW50L3NyYy9jYW11bmRhLWJwbW4tZWRpdG9yL2NhbXVuZGEtYnBtbi1lZGl0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJzLWFudC9zcmMvY2FtdW5kYS1icG1uLWVkaXRvci9jYW11bmRhLWJwbW4tZWRpdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzVGLE9BQU8sV0FBVyxNQUFNLDhDQUE4QyxDQUFDO0FBQ3ZFLE9BQU8scUJBQXFCLE1BQU0sb0JBQW9CLENBQUM7QUFDdkQsT0FBTyxvQkFBb0IsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RCxPQUFPLHVCQUF1QixNQUFNLHVCQUF1QixDQUFDO0FBQzVELE9BQU8scUJBQXFCLE1BQU0scUJBQXFCLENBQUM7Ozs7O0FBT3hELE1BQU0sT0FBTywwQkFBMEI7SUFMdkM7UUFvQkUsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFFdEIscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBRXpCLHdCQUFtQixHQUFHLElBQUksWUFBWSxFQUFnQyxDQUFDO1FBSzdELGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDdkIsbUJBQWMsR0FDcEIsd0NBQXdDO1lBQ3hDLDBFQUEwRTtZQUMxRSwyREFBMkQ7WUFDM0QsMERBQTBEO1lBQzFELG9EQUFvRDtZQUNwRCwrQ0FBK0M7WUFDL0MscUJBQXFCO1lBQ3JCLG1EQUFtRDtZQUNuRCxzQ0FBc0M7WUFDdEMsaUJBQWlCO1lBQ2pCLHlDQUF5QztZQUN6Qyw2REFBNkQ7WUFDN0QsNEVB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WixLQUFLO2dCQUdOLGdCQUFnQjtzQkFEZixLQUFLO2dCQUdOLG1CQUFtQjtzQkFEbEIsTUFBTTtnQkFFcUIsYUFBYTtzQkFBeEMsU0FBUzt1QkFBQyxlQUFlO2dCQUNELFVBQVU7c0JBQWxDLFNBQVM7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCBCcG1uTW9kZWxlciBmcm9tICdjYW11bmRhLWJwbW4tanMvbGliL2NhbXVuZGEtcGxhdGZvcm0vTW9kZWxlcic7XHJcbmltcG9ydCBjdXN0b21UcmFuc2xhdGVNb2R1bGUgZnJvbSAnLi9jdXN0b20vdHJhbnNsYXRlJztcclxuaW1wb3J0IGN1c3RvbVVzZXJUYXNrTW9kdWxlIGZyb20gJy4vY3VzdG9tL3VzZXItdGFzayc7XHJcbmltcG9ydCBjdXN0b21TZXJ2aWNlVGFza01vZHVsZSBmcm9tICcuL2N1c3RvbS9zZXJ2aWNlLXRhc2snO1xyXG5pbXBvcnQgY3VzdG9tSGlkZU90aGVyTW9kdWxlIGZyb20gJy4vY3VzdG9tL2hpZGUtb3RoZXInO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdycy1jYW11bmRhLWJwbW4tZWRpdG9yJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY2FtdW5kYS1icG1uLWVkaXRvci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY2FtdW5kYS1icG1uLWVkaXRvci5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDYW11bmRhQnBtbkVkaXRvckNvbXBvbmVudCB7XHJcbiAgQElucHV0KClcclxuICBzZXQgeG1sKHhtbDogYW55KSB7XHJcbiAgICB0aGlzLl94bWwgPSB4bWw7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5sb2FkWG1sKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldCB4bWwoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5feG1sO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfeG1sOiBhbnk7XHJcbiAgQElucHV0KClcclxuICBzaG93WG1sQnV0dG9uID0gZmFsc2U7XHJcbiAgQElucHV0KClcclxuICBzaG93Q29uZmlnQnV0dG9uID0gZmFsc2U7XHJcbiAgQE91dHB1dCgpXHJcbiAgc2VsZWN0ZWROb2RlQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8eyBlbGVtZW50OiBhbnksIHV0aWw/OiBhbnkgfT4oKTtcclxuICBAVmlld0NoaWxkKCdicG1uQ29udGFpbmVyJykgYnBtbkNvbnRhaW5lcj86IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnYnBtbkNvbmZpZycpIGJwbW5Db25maWc/OiBFbGVtZW50UmVmO1xyXG4gIHByaXZhdGUgbW9kZWxlcjogYW55O1xyXG4gIHByaXZhdGUgY2FudmFzOiBhbnk7XHJcbiAgcHJvdGVjdGVkIGlzU2hvd1htbCA9IGZhbHNlO1xyXG4gIHByb3RlY3RlZCBpc1Nob3dDb25maWcgPSBmYWxzZTtcclxuICBwcml2YXRlIGluaXRpYWxEaWFncmFtID1cclxuICAgICc8P3htbCB2ZXJzaW9uPVwiMS4wXCIgZW5jb2Rpbmc9XCJVVEYtOFwiPz4nICtcclxuICAgICc8YnBtbjpkZWZpbml0aW9ucyB4bWxuczp4c2k9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZVwiICcgK1xyXG4gICAgJ3htbG5zOmJwbW49XCJodHRwOi8vd3d3Lm9tZy5vcmcvc3BlYy9CUE1OLzIwMTAwNTI0L01PREVMXCIgJyArXHJcbiAgICAneG1sbnM6YnBtbmRpPVwiaHR0cDovL3d3dy5vbWcub3JnL3NwZWMvQlBNTi8yMDEwMDUyNC9ESVwiICcgK1xyXG4gICAgJ3htbG5zOmRjPVwiaHR0cDovL3d3dy5vbWcub3JnL3NwZWMvREQvMjAxMDA1MjQvRENcIiAnICtcclxuICAgICd0YXJnZXROYW1lc3BhY2U9XCJodHRwOi8vYnBtbi5pby9zY2hlbWEvYnBtblwiICcgK1xyXG4gICAgJ2lkPVwiRGVmaW5pdGlvbnNfMVwiPicgK1xyXG4gICAgJzxicG1uOnByb2Nlc3MgaWQ9XCJQcm9jZXNzXzFcIiBpc0V4ZWN1dGFibGU9XCJ0cnVlXCI+JyArXHJcbiAgICAnPGJwbW46c3RhcnRFdmVudCBpZD1cIlN0YXJ0RXZlbnRfMVwiLz4nICtcclxuICAgICc8L2JwbW46cHJvY2Vzcz4nICtcclxuICAgICc8YnBtbmRpOkJQTU5EaWFncmFtIGlkPVwiQlBNTkRpYWdyYW1fMVwiPicgK1xyXG4gICAgJzxicG1uZGk6QlBNTlBsYW5lIGlkPVwiQlBNTlBsYW5lXzFcIiBicG1uRWxlbWVudD1cIlByb2Nlc3NfMVwiPicgK1xyXG4gICAgJzxicG1uZGk6QlBNTlNoYXBlIGlkPVwiX0JQTU5TaGFwZV9TdGFydEV2ZW50XzJcIiBicG1uRWxlbWVudD1cIlN0YXJ0RXZlbnRfMVwiPicgK1xyXG4gICAgJzxkYzpCb3VuZHMgaGVpZ2h0PVwiMzYuMFwiIHdpZHRoPVwiMzYuMFwiIHg9XCIxNzMuMFwiIHk9XCIxMDIuMFwiLz4nICtcclxuICAgICc8L2JwbW5kaTpCUE1OU2hhcGU+JyArXHJcbiAgICAnPC9icG1uZGk6QlBNTlBsYW5lPicgK1xyXG4gICAgJzwvYnBtbmRpOkJQTU5EaWFncmFtPicgK1xyXG4gICAgJzwvYnBtbjpkZWZpbml0aW9ucz4nO1xyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGlmICghdGhpcy54bWwpIHtcclxuICAgICAgdGhpcy54bWwgPSB0aGlzLmluaXRpYWxEaWFncmFtO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5tb2RlbGVyID0gbmV3IEJwbW5Nb2RlbGVyKHtcclxuICAgICAgY29udGFpbmVyOiB0aGlzLmJwbW5Db250YWluZXI/Lm5hdGl2ZUVsZW1lbnQsXHJcbiAgICAgIHByb3BlcnRpZXNQYW5lbDoge1xyXG4gICAgICAgIHBhcmVudDogdGhpcy5icG1uQ29uZmlnPy5uYXRpdmVFbGVtZW50LFxyXG4gICAgICB9LFxyXG4gICAgICBrZXlib2FyZDoge1xyXG4gICAgICAgIGJpbmRUbzogZG9jdW1lbnQsXHJcbiAgICAgIH0sXHJcbiAgICAgIGFkZGl0aW9uYWxNb2R1bGVzOiBbXHJcbiAgICAgICAgY3VzdG9tVHJhbnNsYXRlTW9kdWxlLFxyXG4gICAgICAgIGN1c3RvbVVzZXJUYXNrTW9kdWxlLFxyXG4gICAgICAgIGN1c3RvbVNlcnZpY2VUYXNrTW9kdWxlLFxyXG4gICAgICAgIGN1c3RvbUhpZGVPdGhlck1vZHVsZSxcclxuICAgICAgXVxyXG4gICAgfSk7XHJcbiAgICBjb25zdCBsb2dvID0gdGhpcy5tb2RlbGVyLl9jb250YWluZXIucXVlcnlTZWxlY3RvcignLmJqcy1wb3dlcmVkLWJ5Jyk7XHJcbiAgICBpZiAobG9nbykge1xyXG4gICAgICB0aGlzLm1vZGVsZXIuX2NvbnRhaW5lci5yZW1vdmVDaGlsZChsb2dvKTtcclxuICAgIH1cclxuICAgIHRoaXMubW9kZWxlci5nZXQoJ3BhbGV0dGUnKS5fdG9nZ2xlU3RhdGUoe3R3b0NvbHVtbjogZmFsc2V9KTtcclxuICAgIHRoaXMuY2FudmFzID0gdGhpcy5tb2RlbGVyLmdldCgnY2FudmFzJyk7XHJcbiAgICBjb25zdCBldmVudEJ1cyA9IHRoaXMubW9kZWxlci5nZXQoJ2V2ZW50QnVzJyk7XHJcbiAgICBldmVudEJ1cy5vbihbJ3Byb3BlcnRpZXNQYW5lbC51cGRhdGVkJ10sICgkZXZlbnQ6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheSgkZXZlbnQuZWxlbWVudCkpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZUNoYW5nZWQuZW1pdCgpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWROb2RlQ2hhbmdlZC5lbWl0KHtcclxuICAgICAgICAgIGVsZW1lbnQ6ICRldmVudC5lbGVtZW50LFxyXG4gICAgICAgICAgdXRpbDoge1xyXG4gICAgICAgICAgICBicG1uRmFjdG9yeTogdGhpcy5tb2RlbGVyLmdldCgnYnBtbkZhY3RvcnknKSxcclxuICAgICAgICAgICAgbW9kZWxpbmc6IHRoaXMubW9kZWxlci5nZXQoJ21vZGVsaW5nJyksXHJcbiAgICAgICAgICAgIGVsZW1lbnRSZWdpc3RyeTogdGhpcy5tb2RlbGVyLmdldCgnZWxlbWVudFJlZ2lzdHJ5JylcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLmxvYWRYbWwoKTtcclxuICB9XHJcblxyXG4gIGxvYWRYbWwoKSB7XHJcbiAgICB0aGlzLm1vZGVsZXIuaW1wb3J0WE1MKHRoaXMueG1sKS50aGVuKCgpID0+IHtcclxuICAgICAgdGhpcy5jYW52YXMuem9vbSgnZml0LXZpZXdwb3J0Jyk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNob3dYbWwoKSB7XHJcbiAgICBpZiAoIXRoaXMuaXNTaG93WG1sKSB7XHJcbiAgICAgIHRoaXMuc2F2ZVhtbCgoeG1sOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLnhtbCA9IHhtbDtcclxuICAgICAgfSlcclxuICAgIH1cclxuICAgIHRoaXMuaXNTaG93WG1sID0gIXRoaXMuaXNTaG93WG1sO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNhdmVYbWwoY2FsbGJhY2s/OiBhbnkpIHtcclxuICAgIHRoaXMubW9kZWxlci5zYXZlWE1MKHtmb3JtYXQ6IHRydWV9KS50aGVuKChyZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgIGlmIChjYWxsYmFjaykge1xyXG4gICAgICAgIGNhbGxiYWNrKHJlc3BvbnNlLnhtbCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgem9vbSh0eXBlOiAncmVzZXQnIHwgJ3pvb21JbicgfCAnem9vbU91dCcpIHtcclxuICAgIGNvbnN0IHpvb20gPSB0aGlzLmNhbnZhcy56b29tKCk7XHJcbiAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgY2FzZSAncmVzZXQnOlxyXG4gICAgICAgIHRoaXMuY2FudmFzLnpvb20oJ2ZpdC12aWV3cG9ydCcpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICd6b29tSW4nOlxyXG4gICAgICAgIHRoaXMuY2FudmFzLnpvb20oem9vbSArIDAuMSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3pvb21PdXQnOlxyXG4gICAgICAgIHRoaXMuY2FudmFzLnpvb20oem9vbSAtIDAuMSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJtYWluXCI+XHJcbiAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiICNicG1uQ29udGFpbmVyPlxyXG4gICAgPGRpdiBjbGFzcz1cInpvb20tY29udHJvbHNcIj5cclxuICAgICAgPHVsIGNsYXNzPVwiem9vbS1yZXNldCBpby1jb250cm9sIGlvLWNvbnRyb2wtbGlzdFwiPlxyXG4gICAgICAgIDxsaT5cclxuICAgICAgICAgIDxidXR0b24gdGl0bGU9XCLov5jljp9cIiAoY2xpY2spPVwiem9vbSgncmVzZXQnKVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNvYXN0LWljb24tcmVmcmVzaFwiPjwvc3Bhbj5cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvbGk+XHJcbiAgICAgICAgPGxpPlxyXG4gICAgICAgICAgPGhyIGNsYXNzPVwic2VwYXJhdG9yXCI+XHJcbiAgICAgICAgPC9saT5cclxuICAgICAgICA8bGk+XHJcbiAgICAgICAgICA8YnV0dG9uIHRpdGxlPVwi5pS+5aSnXCIgKGNsaWNrKT1cInpvb20oJ3pvb21JbicpXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY29hc3QtaWNvbi1hZGRcIj48L3NwYW4+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2xpPlxyXG4gICAgICAgIDxsaT5cclxuICAgICAgICAgIDxociBjbGFzcz1cInNlcGFyYXRvclwiPlxyXG4gICAgICAgIDwvbGk+XHJcbiAgICAgICAgPGxpPlxyXG4gICAgICAgICAgPGJ1dHRvbiB0aXRsZT1cIue8qeWwj1wiIChjbGljayk9XCJ6b29tKCd6b29tT3V0JylcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjb2FzdC1pY29uLW1pbnVzXCI+PC9zcGFuPlxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9saT5cclxuICAgICAgPC91bD5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgW2hpZGRlbl09XCIhaXNTaG93Q29uZmlnXCIgY2xhc3M9XCJjb25maWdcIiAjYnBtbkNvbmZpZz48L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwieG1sLXZpZXdlclwiIFtuZ1N0eWxlXT1cIntkaXNwbGF5OiBpc1Nob3dYbWwgPyAnZmxleCcgOiAnbm9uZSd9XCI+XHJcbiAgICA8cnMtY29kZS1lZGl0b3IgbGFuZ3VhZ2U9XCJ4bWxcIiBbY29kZV09XCJ4bWxcIiBbcmVhZG9ubHldPVwidHJ1ZVwiIFtlbmFibGVNaW5pbWFwXT1cInRydWVcIj48L3JzLWNvZGUtZWRpdG9yPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuPGRpdiBjbGFzcz1cImZvb3RlclwiPlxyXG4gIDxkeC1idXR0b24gW3R5cGVdPVwiaXNTaG93WG1sID8gJ2RlZmF1bHQnIDogJ25vcm1hbCdcIiB0ZXh0PVwiWE1MXCIgW2hvdmVyU3RhdGVFbmFibGVkXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgIFt2aXNpYmxlXT1cInNob3dYbWxCdXR0b25cIiAob25DbGljayk9XCJzaG93WG1sKClcIj48L2R4LWJ1dHRvbj5cclxuICA8ZHgtYnV0dG9uIFt0eXBlXT1cImlzU2hvd0NvbmZpZyA/ICdkZWZhdWx0JyA6ICdub3JtYWwnXCIgaWNvbj1cImNvYXN0LWljb24gY29hc3QtaWNvbi1zZXR0aW5nXCJcclxuICAgICAgICAgICAgIHN0eWxlPVwiZmxvYXQ6IHJpZ2h0O1wiIFt2aXNpYmxlXT1cInNob3dDb25maWdCdXR0b25cIlxyXG4gICAgICAgICAgICAgKG9uQ2xpY2spPVwiaXNTaG93Q29uZmlnID0gIWlzU2hvd0NvbmZpZztcIj48L2R4LWJ1dHRvbj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -43,12 +43,26 @@ export class CamundaBpmnViewerComponent {
43
43
  }
44
44
  });
45
45
  }
46
+ zoom(type) {
47
+ const zoom = this.canvas.zoom();
48
+ switch (type) {
49
+ case 'reset':
50
+ this.canvas.zoom('fit-viewport');
51
+ break;
52
+ case 'zoomIn':
53
+ this.canvas.zoom(zoom + 0.1);
54
+ break;
55
+ case 'zoomOut':
56
+ this.canvas.zoom(zoom - 0.1);
57
+ break;
58
+ }
59
+ }
46
60
  }
47
61
  CamundaBpmnViewerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CamundaBpmnViewerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
48
- CamundaBpmnViewerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: CamundaBpmnViewerComponent, selector: "rs-camunda-bpmn-viewer", inputs: { xml: "xml", failedActivities: "failedActivities", activeActivities: "activeActivities" }, viewQueries: [{ propertyName: "viewerContainer", first: true, predicate: ["viewerContainer"], descendants: true }], ngImport: i0, template: "<div class=\"container\" #viewerContainer></div>\r\n", styles: [":host{display:flex;flex-flow:column nowrap}:host .container{flex:1}\n"] });
62
+ CamundaBpmnViewerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: CamundaBpmnViewerComponent, selector: "rs-camunda-bpmn-viewer", inputs: { xml: "xml", failedActivities: "failedActivities", activeActivities: "activeActivities" }, viewQueries: [{ propertyName: "viewerContainer", first: true, predicate: ["viewerContainer"], descendants: true }], ngImport: i0, template: "<div class=\"container\" #viewerContainer>\r\n <div class=\"zoom-controls\">\r\n <ul class=\"zoom-reset io-control io-control-list\">\r\n <li>\r\n <button title=\"\u8FD8\u539F\" (click)=\"zoom('reset')\">\r\n <span class=\"coast-icon-refresh\"></span>\r\n </button>\r\n </li>\r\n <li>\r\n <hr class=\"separator\">\r\n </li>\r\n <li>\r\n <button title=\"\u653E\u5927\" (click)=\"zoom('zoomIn')\">\r\n <span class=\"coast-icon-add\"></span>\r\n </button>\r\n </li>\r\n <li>\r\n <hr class=\"separator\">\r\n </li>\r\n <li>\r\n <button title=\"\u7F29\u5C0F\" (click)=\"zoom('zoomOut')\">\r\n <span class=\"coast-icon-minus\"></span>\r\n </button>\r\n </li>\r\n </ul>\r\n </div>\r\n</div>\r\n", styles: [":host{display:flex;flex-flow:column nowrap}:host .container{flex:1;position:relative;z-index:0}:host .container .zoom-controls{position:absolute;right:8px;bottom:20px;z-index:1}:host .container .zoom-controls ul{list-style:none;padding:4px;margin:0;background:var(--coast-global-bg-color, rgb(245, 245, 245));border:1px solid var(--coast-border-color, rgb(221, 221, 221));border-radius:2px;box-shadow:0 0 2px #0000001f}:host .container .zoom-controls ul li button{cursor:pointer;font-size:14px;background:none;border:none}:host .container .zoom-controls ul li button:hover{color:var(--coast-default-color, rgb(51, 122, 183))}:host .container .zoom-controls ul li hr.separator{margin:4px;padding-top:4px;border:none;border-bottom:solid 1px gray;clear:both}\n"] });
49
63
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CamundaBpmnViewerComponent, decorators: [{
50
64
  type: Component,
51
- args: [{ selector: 'rs-camunda-bpmn-viewer', template: "<div class=\"container\" #viewerContainer></div>\r\n", styles: [":host{display:flex;flex-flow:column nowrap}:host .container{flex:1}\n"] }]
65
+ args: [{ selector: 'rs-camunda-bpmn-viewer', template: "<div class=\"container\" #viewerContainer>\r\n <div class=\"zoom-controls\">\r\n <ul class=\"zoom-reset io-control io-control-list\">\r\n <li>\r\n <button title=\"\u8FD8\u539F\" (click)=\"zoom('reset')\">\r\n <span class=\"coast-icon-refresh\"></span>\r\n </button>\r\n </li>\r\n <li>\r\n <hr class=\"separator\">\r\n </li>\r\n <li>\r\n <button title=\"\u653E\u5927\" (click)=\"zoom('zoomIn')\">\r\n <span class=\"coast-icon-add\"></span>\r\n </button>\r\n </li>\r\n <li>\r\n <hr class=\"separator\">\r\n </li>\r\n <li>\r\n <button title=\"\u7F29\u5C0F\" (click)=\"zoom('zoomOut')\">\r\n <span class=\"coast-icon-minus\"></span>\r\n </button>\r\n </li>\r\n </ul>\r\n </div>\r\n</div>\r\n", styles: [":host{display:flex;flex-flow:column nowrap}:host .container{flex:1;position:relative;z-index:0}:host .container .zoom-controls{position:absolute;right:8px;bottom:20px;z-index:1}:host .container .zoom-controls ul{list-style:none;padding:4px;margin:0;background:var(--coast-global-bg-color, rgb(245, 245, 245));border:1px solid var(--coast-border-color, rgb(221, 221, 221));border-radius:2px;box-shadow:0 0 2px #0000001f}:host .container .zoom-controls ul li button{cursor:pointer;font-size:14px;background:none;border:none}:host .container .zoom-controls ul li button:hover{color:var(--coast-default-color, rgb(51, 122, 183))}:host .container .zoom-controls ul li hr.separator{margin:4px;padding-top:4px;border:none;border-bottom:solid 1px gray;clear:both}\n"] }]
52
66
  }], propDecorators: { xml: [{
53
67
  type: Input
54
68
  }], failedActivities: [{
@@ -59,4 +73,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
59
73
  type: ViewChild,
60
74
  args: ['viewerContainer']
61
75
  }] } });
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FtdW5kYS1icG1uLXZpZXdlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcnMtYW50L3NyYy9jYW11bmRhLWJwbW4tdmlld2VyL2NhbXVuZGEtYnBtbi12aWV3ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJzLWFudC9zcmMvY2FtdW5kYS1icG1uLXZpZXdlci9jYW11bmRhLWJwbW4tdmlld2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQWMsS0FBSyxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN0RSxPQUFPLE1BQU0sTUFBTSxzREFBc0QsQ0FBQzs7QUFPMUUsTUFBTSxPQUFPLDBCQUEwQjtJQUx2QztRQW9CRSxxQkFBZ0IsR0FBVSxFQUFFLENBQUM7UUFFN0IscUJBQWdCLEdBQVUsRUFBRSxDQUFDO0tBa0M5QjtJQWxEQyxJQUNJLEdBQUcsQ0FBQyxHQUFRO1FBQ2QsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7UUFDaEIsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNqQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFJLEdBQUc7UUFDTCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQVdELGVBQWU7UUFDYixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDO1lBQ3ZCLFNBQVMsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWE7WUFDN0MsUUFBUSxFQUFFO2dCQUNSLE1BQU0sRUFBRSxRQUFRO2FBQ2pCO1NBQ0YsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDckUsSUFBSSxJQUFJLEVBQUU7WUFDUixJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDMUM7UUFDRCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRUQsT0FBTztRQUNMLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ2IsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDeEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDakMsS0FBSyxNQUFNLFFBQVEsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLElBQUksRUFBRSxFQUFFO2dCQUNsRCxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUscUJBQXFCLENBQUMsQ0FBQzthQUN4RDtZQUNELEtBQUssTUFBTSxRQUFRLElBQUksSUFBSSxDQUFDLGdCQUFnQixJQUFJLEVBQUUsRUFBRTtnQkFDbEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLHFCQUFxQixDQUFDLENBQUM7YUFDeEQ7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7O3dIQWxEVSwwQkFBMEI7NEdBQTFCLDBCQUEwQixzUkNSdkMsc0RBQ0E7NEZET2EsMEJBQTBCO2tCQUx0QyxTQUFTOytCQUNFLHdCQUF3Qjs4QkFNOUIsR0FBRztzQkFETixLQUFLO2dCQWNOLGdCQUFnQjtzQkFEZixLQUFLO2dCQUdOLGdCQUFnQjtzQkFEZixLQUFLO2dCQUl3QixlQUFlO3NCQUE1QyxTQUFTO3VCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IFZpZXdlciBmcm9tIFwiY2FtdW5kYS1icG1uLWpzL2xpYi9jYW11bmRhLXBsYXRmb3JtL05hdmlnYXRlZFZpZXdlclwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdycy1jYW11bmRhLWJwbW4tdmlld2VyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY2FtdW5kYS1icG1uLXZpZXdlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY2FtdW5kYS1icG1uLXZpZXdlci5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDYW11bmRhQnBtblZpZXdlckNvbXBvbmVudCB7XHJcbiAgQElucHV0KClcclxuICBzZXQgeG1sKHhtbDogYW55KSB7XHJcbiAgICB0aGlzLl94bWwgPSB4bWw7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5sb2FkWG1sKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldCB4bWwoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5feG1sO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfeG1sOiBhbnk7XHJcbiAgQElucHV0KClcclxuICBmYWlsZWRBY3Rpdml0aWVzOiBhbnlbXSA9IFtdO1xyXG4gIEBJbnB1dCgpXHJcbiAgYWN0aXZlQWN0aXZpdGllczogYW55W10gPSBbXTtcclxuICBwcml2YXRlIHZpZXdlcjogYW55O1xyXG4gIHByaXZhdGUgY2FudmFzOiBhbnk7XHJcbiAgQFZpZXdDaGlsZCgndmlld2VyQ29udGFpbmVyJykgdmlld2VyQ29udGFpbmVyITogRWxlbWVudFJlZjtcclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy52aWV3ZXIgPSBuZXcgVmlld2VyKHtcclxuICAgICAgY29udGFpbmVyOiB0aGlzLnZpZXdlckNvbnRhaW5lci5uYXRpdmVFbGVtZW50LFxyXG4gICAgICBrZXlib2FyZDoge1xyXG4gICAgICAgIGJpbmRUbzogZG9jdW1lbnQsXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgY29uc3QgbG9nbyA9IHRoaXMudmlld2VyLl9jb250YWluZXIucXVlcnlTZWxlY3RvcignLmJqcy1wb3dlcmVkLWJ5Jyk7XHJcbiAgICBpZiAobG9nbykge1xyXG4gICAgICB0aGlzLnZpZXdlci5fY29udGFpbmVyLnJlbW92ZUNoaWxkKGxvZ28pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jYW52YXMgPSB0aGlzLnZpZXdlci5nZXQoJ2NhbnZhcycpO1xyXG4gICAgdGhpcy5sb2FkWG1sKCk7XHJcbiAgfVxyXG5cclxuICBsb2FkWG1sKCkge1xyXG4gICAgaWYgKCF0aGlzLnhtbCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnZpZXdlci5pbXBvcnRYTUwodGhpcy54bWwpLnRoZW4oKCkgPT4ge1xyXG4gICAgICB0aGlzLmNhbnZhcy56b29tKCdmaXQtdmlld3BvcnQnKTtcclxuICAgICAgZm9yIChjb25zdCBhY3Rpdml0eSBvZiB0aGlzLmZhaWxlZEFjdGl2aXRpZXMgfHwgW10pIHtcclxuICAgICAgICB0aGlzLmNhbnZhcy5hZGRNYXJrZXIoYWN0aXZpdHksICdwcm9jZXNzLWZhaWxlZC1ub2RlJyk7XHJcbiAgICAgIH1cclxuICAgICAgZm9yIChjb25zdCBhY3Rpdml0eSBvZiB0aGlzLmFjdGl2ZUFjdGl2aXRpZXMgfHwgW10pIHtcclxuICAgICAgICB0aGlzLmNhbnZhcy5hZGRNYXJrZXIoYWN0aXZpdHksICdwcm9jZXNzLWFjdGl2ZS1ub2RlJyk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCIgI3ZpZXdlckNvbnRhaW5lcj48L2Rpdj5cclxuIl19
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FtdW5kYS1icG1uLXZpZXdlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcnMtYW50L3NyYy9jYW11bmRhLWJwbW4tdmlld2VyL2NhbXVuZGEtYnBtbi12aWV3ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJzLWFudC9zcmMvY2FtdW5kYS1icG1uLXZpZXdlci9jYW11bmRhLWJwbW4tdmlld2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQWMsS0FBSyxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN0RSxPQUFPLE1BQU0sTUFBTSxzREFBc0QsQ0FBQzs7QUFPMUUsTUFBTSxPQUFPLDBCQUEwQjtJQUx2QztRQW9CRSxxQkFBZ0IsR0FBVSxFQUFFLENBQUM7UUFFN0IscUJBQWdCLEdBQVUsRUFBRSxDQUFDO0tBaUQ5QjtJQWpFQyxJQUNJLEdBQUcsQ0FBQyxHQUFRO1FBQ2QsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7UUFDaEIsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNqQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFJLEdBQUc7UUFDTCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQVdELGVBQWU7UUFDYixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDO1lBQ3ZCLFNBQVMsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWE7WUFDN0MsUUFBUSxFQUFFO2dCQUNSLE1BQU0sRUFBRSxRQUFRO2FBQ2pCO1NBQ0YsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDckUsSUFBSSxJQUFJLEVBQUU7WUFDUixJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDMUM7UUFDRCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRUQsT0FBTztRQUNMLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ2IsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDeEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDakMsS0FBSyxNQUFNLFFBQVEsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLElBQUksRUFBRSxFQUFFO2dCQUNsRCxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUscUJBQXFCLENBQUMsQ0FBQzthQUN4RDtZQUNELEtBQUssTUFBTSxRQUFRLElBQUksSUFBSSxDQUFDLGdCQUFnQixJQUFJLEVBQUUsRUFBRTtnQkFDbEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLHFCQUFxQixDQUFDLENBQUM7YUFDeEQ7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFJLENBQUMsSUFBb0M7UUFDdkMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNoQyxRQUFRLElBQUksRUFBRTtZQUNaLEtBQUssT0FBTztnQkFDVixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztnQkFDakMsTUFBTTtZQUNSLEtBQUssUUFBUTtnQkFDWCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUM7Z0JBQzdCLE1BQU07WUFDUixLQUFLLFNBQVM7Z0JBQ1osSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDO2dCQUM3QixNQUFNO1NBQ1Q7SUFDSCxDQUFDOzt3SEFqRVUsMEJBQTBCOzRHQUExQiwwQkFBMEIsc1JDUnZDLDh6QkEyQkE7NEZEbkJhLDBCQUEwQjtrQkFMdEMsU0FBUzsrQkFDRSx3QkFBd0I7OEJBTTlCLEdBQUc7c0JBRE4sS0FBSztnQkFjTixnQkFBZ0I7c0JBRGYsS0FBSztnQkFHTixnQkFBZ0I7c0JBRGYsS0FBSztnQkFJd0IsZUFBZTtzQkFBNUMsU0FBUzt1QkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCBWaWV3ZXIgZnJvbSBcImNhbXVuZGEtYnBtbi1qcy9saWIvY2FtdW5kYS1wbGF0Zm9ybS9OYXZpZ2F0ZWRWaWV3ZXJcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAncnMtY2FtdW5kYS1icG1uLXZpZXdlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NhbXVuZGEtYnBtbi12aWV3ZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NhbXVuZGEtYnBtbi12aWV3ZXIuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2FtdW5kYUJwbW5WaWV3ZXJDb21wb25lbnQge1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IHhtbCh4bWw6IGFueSkge1xyXG4gICAgdGhpcy5feG1sID0geG1sO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMubG9hZFhtbCgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXQgeG1sKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3htbDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3htbDogYW55O1xyXG4gIEBJbnB1dCgpXHJcbiAgZmFpbGVkQWN0aXZpdGllczogYW55W10gPSBbXTtcclxuICBASW5wdXQoKVxyXG4gIGFjdGl2ZUFjdGl2aXRpZXM6IGFueVtdID0gW107XHJcbiAgcHJpdmF0ZSB2aWV3ZXI6IGFueTtcclxuICBwcml2YXRlIGNhbnZhczogYW55O1xyXG4gIEBWaWV3Q2hpbGQoJ3ZpZXdlckNvbnRhaW5lcicpIHZpZXdlckNvbnRhaW5lciE6IEVsZW1lbnRSZWY7XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMudmlld2VyID0gbmV3IFZpZXdlcih7XHJcbiAgICAgIGNvbnRhaW5lcjogdGhpcy52aWV3ZXJDb250YWluZXIubmF0aXZlRWxlbWVudCxcclxuICAgICAga2V5Ym9hcmQ6IHtcclxuICAgICAgICBiaW5kVG86IGRvY3VtZW50LFxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IGxvZ28gPSB0aGlzLnZpZXdlci5fY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJy5ianMtcG93ZXJlZC1ieScpO1xyXG4gICAgaWYgKGxvZ28pIHtcclxuICAgICAgdGhpcy52aWV3ZXIuX2NvbnRhaW5lci5yZW1vdmVDaGlsZChsb2dvKTtcclxuICAgIH1cclxuICAgIHRoaXMuY2FudmFzID0gdGhpcy52aWV3ZXIuZ2V0KCdjYW52YXMnKTtcclxuICAgIHRoaXMubG9hZFhtbCgpO1xyXG4gIH1cclxuXHJcbiAgbG9hZFhtbCgpIHtcclxuICAgIGlmICghdGhpcy54bWwpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy52aWV3ZXIuaW1wb3J0WE1MKHRoaXMueG1sKS50aGVuKCgpID0+IHtcclxuICAgICAgdGhpcy5jYW52YXMuem9vbSgnZml0LXZpZXdwb3J0Jyk7XHJcbiAgICAgIGZvciAoY29uc3QgYWN0aXZpdHkgb2YgdGhpcy5mYWlsZWRBY3Rpdml0aWVzIHx8IFtdKSB7XHJcbiAgICAgICAgdGhpcy5jYW52YXMuYWRkTWFya2VyKGFjdGl2aXR5LCAncHJvY2Vzcy1mYWlsZWQtbm9kZScpO1xyXG4gICAgICB9XHJcbiAgICAgIGZvciAoY29uc3QgYWN0aXZpdHkgb2YgdGhpcy5hY3RpdmVBY3Rpdml0aWVzIHx8IFtdKSB7XHJcbiAgICAgICAgdGhpcy5jYW52YXMuYWRkTWFya2VyKGFjdGl2aXR5LCAncHJvY2Vzcy1hY3RpdmUtbm9kZScpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHpvb20odHlwZTogJ3Jlc2V0JyB8ICd6b29tSW4nIHwgJ3pvb21PdXQnKSB7XHJcbiAgICBjb25zdCB6b29tID0gdGhpcy5jYW52YXMuem9vbSgpO1xyXG4gICAgc3dpdGNoICh0eXBlKSB7XHJcbiAgICAgIGNhc2UgJ3Jlc2V0JzpcclxuICAgICAgICB0aGlzLmNhbnZhcy56b29tKCdmaXQtdmlld3BvcnQnKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnem9vbUluJzpcclxuICAgICAgICB0aGlzLmNhbnZhcy56b29tKHpvb20gKyAwLjEpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICd6b29tT3V0JzpcclxuICAgICAgICB0aGlzLmNhbnZhcy56b29tKHpvb20gLSAwLjEpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCIgI3ZpZXdlckNvbnRhaW5lcj5cclxuICA8ZGl2IGNsYXNzPVwiem9vbS1jb250cm9sc1wiPlxyXG4gICAgPHVsIGNsYXNzPVwiem9vbS1yZXNldCBpby1jb250cm9sIGlvLWNvbnRyb2wtbGlzdFwiPlxyXG4gICAgICA8bGk+XHJcbiAgICAgICAgPGJ1dHRvbiB0aXRsZT1cIui/mOWOn1wiIChjbGljayk9XCJ6b29tKCdyZXNldCcpXCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImNvYXN0LWljb24tcmVmcmVzaFwiPjwvc3Bhbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9saT5cclxuICAgICAgPGxpPlxyXG4gICAgICAgIDxociBjbGFzcz1cInNlcGFyYXRvclwiPlxyXG4gICAgICA8L2xpPlxyXG4gICAgICA8bGk+XHJcbiAgICAgICAgPGJ1dHRvbiB0aXRsZT1cIuaUvuWkp1wiIChjbGljayk9XCJ6b29tKCd6b29tSW4nKVwiPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJjb2FzdC1pY29uLWFkZFwiPjwvc3Bhbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9saT5cclxuICAgICAgPGxpPlxyXG4gICAgICAgIDxociBjbGFzcz1cInNlcGFyYXRvclwiPlxyXG4gICAgICA8L2xpPlxyXG4gICAgICA8bGk+XHJcbiAgICAgICAgPGJ1dHRvbiB0aXRsZT1cIue8qeWwj1wiIChjbGljayk9XCJ6b29tKCd6b29tT3V0JylcIj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY29hc3QtaWNvbi1taW51c1wiPjwvc3Bhbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9saT5cclxuICAgIDwvdWw+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -2,6 +2,7 @@ import { Component, ContentChild, EventEmitter, Input, Output, ViewChild } from
2
2
  import { DxDataGridComponent } from "devextreme-angular";
3
3
  import { DataGridService } from "./data-grid.service";
4
4
  import { RowButtonsTemplateDirective } from "./row-buttons-template.directive";
5
+ import { DataGridFactory } from "./data-grid.factory";
5
6
  import { debounceTime } from "rxjs";
6
7
  import { notifyError } from "../util/utils";
7
8
  import { CustomTemplateDirective } from "./custom-template.directive";
@@ -105,8 +106,11 @@ export class DataGridComponent {
105
106
  getSelectedRowsData() {
106
107
  return this.dxDataGrid.instance.getSelectedRowsData();
107
108
  }
108
- getCombinedFilter() {
109
- return this.dxDataGrid.instance.getCombinedFilter(false);
109
+ getUserFilter() {
110
+ return this.factory.getFilter();
111
+ }
112
+ getUserSort() {
113
+ return this.factory.getSort();
110
114
  }
111
115
  refresh(callback) {
112
116
  this.dxDataGrid.instance.clearSelection();
@@ -133,10 +137,10 @@ export class DataGridComponent {
133
137
  }
134
138
  }
135
139
  DataGridComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DataGridComponent, deps: [{ token: i1.DataGridService }, { token: i2.DataGridFactory }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component });
136
- DataGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DataGridComponent, selector: "rs-data-grid", inputs: { tenant: "tenant", className: "className", view: "view", filter: "filter", customColumnFn: "customColumnFn", keyExpr: "keyExpr", dataGridName: "dataGridName", height: "height", onlyFrontEnd: "onlyFrontEnd", pageSize: "pageSize", allowedPageSizes: "allowedPageSizes", disablePage: "disablePage", dataSource: "dataSource", selectionMode: "selectionMode", selectedRowKeys: "selectedRowKeys", showRowNum: "showRowNum", instanceLinkType: "instanceLinkType", drawerInstanceLinkViewContainerRef: "drawerInstanceLinkViewContainerRef", drawerInstanceLinkSize: "drawerInstanceLinkSize", drawerInstanceLinkShowHeader: "drawerInstanceLinkShowHeader", drawerInstanceLinkFormTemplate: "drawerInstanceLinkFormTemplate" }, outputs: { selectedRowKeysChange: "selectedRowKeysChange", onCellPrepared: "onCellPrepared", onContentReady: "onContentReady", onEditorPreparing: "onEditorPreparing", onRowClick: "onRowClick", onRowDblClick: "onRowDblClick", onSelectionChanged: "onSelectionChanged" }, providers: [DataGridService], queries: [{ propertyName: "rowButtonsTemplate", first: true, predicate: RowButtonsTemplateDirective, descendants: true }, { propertyName: "customTemplate", first: true, predicate: CustomTemplateDirective, descendants: true }], viewQueries: [{ propertyName: "dxDataGrid", first: true, predicate: DxDataGridComponent, descendants: true, static: true }], ngImport: i0, template: "<dx-data-grid [showBorders]=\"true\"\r\n [showRowLines]=\"true\"\r\n [showColumnLines]=\"true\"\r\n [hoverStateEnabled]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [columnAutoWidth]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n columnResizingMode=\"widget\"\r\n dateSerializationFormat=\"yyyy/MM/dd HH:mm:ss\"\r\n [syncLookupFilterValues]=\"false\"\r\n [dataSource]=\"dataSource\"\r\n [columns]=\"columns\"\r\n [height]=\"height\"\r\n [keyExpr]=\"keyExpr\"\r\n [selectedRowKeys]=\"selectedRowKeys\"\r\n (selectedRowKeysChange)=\"selectedRowKeysChange.emit($event)\"\r\n (onCellPrepared)=\"onCellPrepared.emit($event)\"\r\n (onContentReady)=\"onContentReady.emit($event)\"\r\n (onEditorPreparing)=\"onDxDataGridEditorPreparing($event)\"\r\n (onRowClick)=\"onRowClick.emit($event)\"\r\n (onRowDblClick)=\"onRowDblClick.emit($event)\"\r\n (onSelectionChanged)=\"onSelectionChanged.emit($event)\">\r\n <dxo-sorting mode=\"multiple\"></dxo-sorting>\r\n <dxo-selection [mode]=\"selectionMode\" selectAllMode=\"page\" showCheckBoxesMode=\"always\"></dxo-selection>\r\n <dxo-header-filter [visible]=\"!onlyFrontEnd\">\r\n <dxo-search [enabled]=\"true\"></dxo-search>\r\n <dxo-texts [ok]=\"'\u786E\u5B9A'\"></dxo-texts>\r\n </dxo-header-filter>\r\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\r\n <dxo-remote-operations [filtering]=\"!onlyFrontEnd\"\r\n [sorting]=\"!onlyFrontEnd\"\r\n [paging]=\"!onlyFrontEnd\">\r\n </dxo-remote-operations>\r\n <dxo-paging [enabled]=\"!disablePage\" [pageSize]=\"pageSize\"></dxo-paging>\r\n <dxo-pager [visible]=\"!disablePage\"\r\n displayMode=\"compact\"\r\n [showInfo]=\"true\"\r\n infoText=\"\u7B2C{0}\u9875\uFF0C\u5171{1}\u9875\uFF08\u5171{2}\u9879\uFF09\"\r\n [showPageSizeSelector]=\"true\"\r\n [allowedPageSizes]=\"allowedPageSizes\"\r\n ></dxo-pager>\r\n <dxo-scrolling showScrollbar=\"always\"></dxo-scrolling>\r\n <div *dxTemplate=\"let cellInfo of 'rowIndexTemplate'\">\r\n {{ cellInfo.rowIndex + 1 }}\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'instanceLinkTemplate'\">\r\n <rs-instance-link-template [tenant]=\"tenant\"\r\n [className]=\"className\"\r\n [oid]=\"cellInfo.data.oid\"\r\n [instanceLinkType]=\"instanceLinkType\"\r\n [drawerViewContainerRef]=\"drawerInstanceLinkViewContainerRef\"\r\n [drawerSize]=\"drawerInstanceLinkSize\"\r\n [drawerShowHeader]=\"drawerInstanceLinkShowHeader\"\r\n [drawerFormTemplate]=\"drawerInstanceLinkFormTemplate\">\r\n </rs-instance-link-template>\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'cellComponentTemplate'\">\r\n <rs-cell-component-template [tenant]=\"tenant\" [className]=\"className\"\r\n [cellInfo]=\"cellInfo\"></rs-cell-component-template>\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'rowButtonsTemplate'\">\r\n <ng-container [ngTemplateOutlet]=\"rowButtonsTemplate.templateRef\"\r\n [ngTemplateOutletContext]=\"{$implicit: cellInfo, cellTemplateLoaded$: service.cellTemplateLoaded$}\"></ng-container>\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'customTemplate'\">\r\n <ng-container [ngTemplateOutlet]=\"customTemplate.templateRef\"\r\n [ngTemplateOutletContext]=\"{$implicit: cellInfo, cellTemplateLoaded$: service.cellTemplateLoaded$}\"></ng-container>\r\n </div>\r\n</dx-data-grid>\r\n", styles: [":host{min-height:120px;display:flex;flex-flow:column nowrap}:host dx-data-grid{flex:auto;height:0}\n"], dependencies: [{ kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "component", type: i5.DxDataGridComponent, selector: "dx-data-grid", inputs: ["accessKey", "activeStateEnabled", "allowColumnReordering", "allowColumnResizing", "autoNavigateToFocusedRow", "cacheEnabled", "cellHintEnabled", "columnAutoWidth", "columnChooser", "columnFixing", "columnHidingEnabled", "columnMinWidth", "columnResizingMode", "columns", "columnWidth", "customizeColumns", "dataRowTemplate", "dataSource", "dateSerializationFormat", "disabled", "editing", "elementAttr", "errorRowEnabled", "export", "filterBuilder", "filterBuilderPopup", "filterPanel", "filterRow", "filterSyncEnabled", "filterValue", "focusedColumnIndex", "focusedRowEnabled", "focusedRowIndex", "focusedRowKey", "grouping", "groupPanel", "headerFilter", "height", "highlightChanges", "hint", "hoverStateEnabled", "keyboardNavigation", "keyExpr", "loadPanel", "masterDetail", "noDataText", "pager", "paging", "remoteOperations", "renderAsync", "repaintChangesOnly", "rowAlternationEnabled", "rowDragging", "rowTemplate", "rtlEnabled", "scrolling", "searchPanel", "selectedRowKeys", "selection", "selectionFilter", "showBorders", "showColumnHeaders", "showColumnLines", "showRowLines", "sortByGroupSummaryInfo", "sorting", "stateStoring", "summary", "syncLookupFilterValues", "tabIndex", "toolbar", "twoWayBindingEnabled", "visible", "width", "wordWrapEnabled"], outputs: ["onAdaptiveDetailRowPreparing", "onCellClick", "onCellDblClick", "onCellHoverChanged", "onCellPrepared", "onContentReady", "onContextMenuPreparing", "onDataErrorOccurred", "onDisposing", "onEditCanceled", "onEditCanceling", "onEditingStart", "onEditorPrepared", "onEditorPreparing", "onExporting", "onFocusedCellChanged", "onFocusedCellChanging", "onFocusedRowChanged", "onFocusedRowChanging", "onInitialized", "onInitNewRow", "onKeyDown", "onOptionChanged", "onRowClick", "onRowCollapsed", "onRowCollapsing", "onRowDblClick", "onRowExpanded", "onRowExpanding", "onRowInserted", "onRowInserting", "onRowPrepared", "onRowRemoved", "onRowRemoving", "onRowUpdated", "onRowUpdating", "onRowValidating", "onSaved", "onSaving", "onSelectionChanged", "onToolbarPreparing", "accessKeyChange", "activeStateEnabledChange", "allowColumnReorderingChange", "allowColumnResizingChange", "autoNavigateToFocusedRowChange", "cacheEnabledChange", "cellHintEnabledChange", "columnAutoWidthChange", "columnChooserChange", "columnFixingChange", "columnHidingEnabledChange", "columnMinWidthChange", "columnResizingModeChange", "columnsChange", "columnWidthChange", "customizeColumnsChange", "dataRowTemplateChange", "dataSourceChange", "dateSerializationFormatChange", "disabledChange", "editingChange", "elementAttrChange", "errorRowEnabledChange", "exportChange", "filterBuilderChange", "filterBuilderPopupChange", "filterPanelChange", "filterRowChange", "filterSyncEnabledChange", "filterValueChange", "focusedColumnIndexChange", "focusedRowEnabledChange", "focusedRowIndexChange", "focusedRowKeyChange", "groupingChange", "groupPanelChange", "headerFilterChange", "heightChange", "highlightChangesChange", "hintChange", "hoverStateEnabledChange", "keyboardNavigationChange", "keyExprChange", "loadPanelChange", "masterDetailChange", "noDataTextChange", "pagerChange", "pagingChange", "remoteOperationsChange", "renderAsyncChange", "repaintChangesOnlyChange", "rowAlternationEnabledChange", "rowDraggingChange", "rowTemplateChange", "rtlEnabledChange", "scrollingChange", "searchPanelChange", "selectedRowKeysChange", "selectionChange", "selectionFilterChange", "showBordersChange", "showColumnHeadersChange", "showColumnLinesChange", "showRowLinesChange", "sortByGroupSummaryInfoChange", "sortingChange", "stateStoringChange", "summaryChange", "syncLookupFilterValuesChange", "tabIndexChange", "toolbarChange", "twoWayBindingEnabledChange", "visibleChange", "widthChange", "wordWrapEnabledChange"] }, { kind: "component", type: i6.DxoSearchComponent, selector: "dxo-search", inputs: ["editorOptions", "enabled", "timeout", "mode", "searchExpr"] }, { kind: "component", type: i6.DxoSelectionComponent, selector: "dxo-selection", inputs: ["allowSelectAll", "recursive", "selectByClick", "deferred", "mode", "selectAllMode", "showCheckBoxesMode"] }, { kind: "component", type: i6.DxoTextsComponent, selector: "dxo-texts", inputs: ["fix", "leftPosition", "rightPosition", "unfix", "addRow", "cancelAllChanges", "cancelRowChanges", "confirmDeleteMessage", "confirmDeleteTitle", "deleteRow", "editRow", "saveAllChanges", "saveRowChanges", "undeleteRow", "validationCancelChanges", "exportAll", "exportSelectedRows", "exportTo", "clearFilter", "createFilter", "filterEnabledHint", "groupByThisColumn", "groupContinuedMessage", "groupContinuesMessage", "ungroup", "ungroupAll", "cancel", "emptyValue", "ok", "avg", "avgOtherColumn", "count", "max", "maxOtherColumn", "min", "minOtherColumn", "sum", "sumOtherColumn", "allFields", "columnFields", "dataFields", "filterFields", "rowFields", "columnFieldArea", "dataFieldArea", "filterFieldArea", "rowFieldArea", "collapseAll", "dataNotAvailable", "expandAll", "exportToExcel", "grandTotal", "noData", "removeAllSorting", "showFieldChooser", "sortColumnBySummary", "sortRowBySummary", "total", "addRowToNode"] }, { kind: "component", type: i6.DxoHeaderFilterComponent, selector: "dxo-header-filter", inputs: ["allowSearch", "allowSelectAll", "dataSource", "groupInterval", "height", "search", "searchMode", "width", "searchTimeout", "texts", "visible", "showRelevantValues"] }, { kind: "component", type: i6.DxoFilterRowComponent, selector: "dxo-filter-row", inputs: ["applyFilter", "applyFilterText", "betweenEndText", "betweenStartText", "operationDescriptions", "resetOperationText", "showAllText", "showOperationChooser", "visible"] }, { kind: "component", type: i6.DxoPagerComponent, selector: "dxo-pager", inputs: ["allowedPageSizes", "displayMode", "infoText", "label", "showInfo", "showNavigationButtons", "showPageSizeSelector", "visible"] }, { kind: "component", type: i6.DxoPagingComponent, selector: "dxo-paging", inputs: ["enabled", "pageIndex", "pageSize"], outputs: ["pageIndexChange", "pageSizeChange"] }, { kind: "component", type: i6.DxoRemoteOperationsComponent, selector: "dxo-remote-operations", inputs: ["filtering", "grouping", "groupPaging", "paging", "sorting", "summary"] }, { kind: "component", type: i6.DxoScrollingComponent, selector: "dxo-scrolling", inputs: ["columnRenderingMode", "mode", "preloadEnabled", "renderAsync", "rowRenderingMode", "scrollByContent", "scrollByThumb", "showScrollbar", "useNative"] }, { kind: "component", type: i6.DxoSortingComponent, selector: "dxo-sorting", inputs: ["ascendingText", "clearText", "descendingText", "mode", "showSortIndexes"] }, { kind: "component", type: i7.InstanceLinkTemplateComponent, selector: "rs-instance-link-template", inputs: ["tenant", "className", "oid", "instanceLinkType", "drawerViewContainerRef", "drawerSize", "drawerShowHeader", "drawerFormTemplate"] }, { kind: "component", type: i8.CellComponentTemplateComponent, selector: "rs-cell-component-template", inputs: ["tenant", "className", "cellInfo"] }] });
140
+ DataGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DataGridComponent, selector: "rs-data-grid", inputs: { tenant: "tenant", className: "className", view: "view", filter: "filter", customColumnFn: "customColumnFn", keyExpr: "keyExpr", dataGridName: "dataGridName", height: "height", onlyFrontEnd: "onlyFrontEnd", pageSize: "pageSize", allowedPageSizes: "allowedPageSizes", disablePage: "disablePage", dataSource: "dataSource", selectionMode: "selectionMode", selectedRowKeys: "selectedRowKeys", showRowNum: "showRowNum", instanceLinkType: "instanceLinkType", drawerInstanceLinkViewContainerRef: "drawerInstanceLinkViewContainerRef", drawerInstanceLinkSize: "drawerInstanceLinkSize", drawerInstanceLinkShowHeader: "drawerInstanceLinkShowHeader", drawerInstanceLinkFormTemplate: "drawerInstanceLinkFormTemplate" }, outputs: { selectedRowKeysChange: "selectedRowKeysChange", onCellPrepared: "onCellPrepared", onContentReady: "onContentReady", onEditorPreparing: "onEditorPreparing", onRowClick: "onRowClick", onRowDblClick: "onRowDblClick", onSelectionChanged: "onSelectionChanged" }, providers: [DataGridService, DataGridFactory], queries: [{ propertyName: "rowButtonsTemplate", first: true, predicate: RowButtonsTemplateDirective, descendants: true }, { propertyName: "customTemplate", first: true, predicate: CustomTemplateDirective, descendants: true }], viewQueries: [{ propertyName: "dxDataGrid", first: true, predicate: DxDataGridComponent, descendants: true, static: true }], ngImport: i0, template: "<dx-data-grid [showBorders]=\"true\"\r\n [showRowLines]=\"true\"\r\n [showColumnLines]=\"true\"\r\n [hoverStateEnabled]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [columnAutoWidth]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n columnResizingMode=\"widget\"\r\n dateSerializationFormat=\"yyyy/MM/dd HH:mm:ss\"\r\n [syncLookupFilterValues]=\"false\"\r\n [dataSource]=\"dataSource\"\r\n [columns]=\"columns\"\r\n [height]=\"height\"\r\n [keyExpr]=\"keyExpr\"\r\n [selectedRowKeys]=\"selectedRowKeys\"\r\n (selectedRowKeysChange)=\"selectedRowKeysChange.emit($event)\"\r\n (onCellPrepared)=\"onCellPrepared.emit($event)\"\r\n (onContentReady)=\"onContentReady.emit($event)\"\r\n (onEditorPreparing)=\"onDxDataGridEditorPreparing($event)\"\r\n (onRowClick)=\"onRowClick.emit($event)\"\r\n (onRowDblClick)=\"onRowDblClick.emit($event)\"\r\n (onSelectionChanged)=\"onSelectionChanged.emit($event)\">\r\n <dxo-sorting [mode]=\"onlyFrontEnd ? 'none' : 'multiple'\"></dxo-sorting>\r\n <dxo-selection [mode]=\"selectionMode\" selectAllMode=\"page\" showCheckBoxesMode=\"always\"></dxo-selection>\r\n <dxo-header-filter [visible]=\"!onlyFrontEnd\">\r\n <dxo-search [enabled]=\"true\"></dxo-search>\r\n <dxo-texts [ok]=\"'\u786E\u5B9A'\"></dxo-texts>\r\n </dxo-header-filter>\r\n <dxo-filter-row [visible]=\"!onlyFrontEnd\"></dxo-filter-row>\r\n <dxo-remote-operations [filtering]=\"!onlyFrontEnd\"\r\n [sorting]=\"!onlyFrontEnd\"\r\n [paging]=\"!onlyFrontEnd\">\r\n </dxo-remote-operations>\r\n <dxo-paging [enabled]=\"!disablePage\" [pageSize]=\"pageSize\"></dxo-paging>\r\n <dxo-pager [visible]=\"!disablePage\"\r\n displayMode=\"compact\"\r\n [showInfo]=\"true\"\r\n infoText=\"\u7B2C{0}\u9875\uFF0C\u5171{1}\u9875\uFF08\u5171{2}\u9879\uFF09\"\r\n [showPageSizeSelector]=\"true\"\r\n [allowedPageSizes]=\"allowedPageSizes\"\r\n ></dxo-pager>\r\n <dxo-scrolling showScrollbar=\"always\"></dxo-scrolling>\r\n <div *dxTemplate=\"let cellInfo of 'rowIndexTemplate'\">\r\n {{ cellInfo.rowIndex + 1 }}\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'instanceLinkTemplate'\">\r\n <rs-instance-link-template [tenant]=\"tenant\"\r\n [className]=\"className\"\r\n [oid]=\"cellInfo.data.oid\"\r\n [instanceLinkType]=\"instanceLinkType\"\r\n [drawerViewContainerRef]=\"drawerInstanceLinkViewContainerRef\"\r\n [drawerSize]=\"drawerInstanceLinkSize\"\r\n [drawerShowHeader]=\"drawerInstanceLinkShowHeader\"\r\n [drawerFormTemplate]=\"drawerInstanceLinkFormTemplate\">\r\n </rs-instance-link-template>\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'cellComponentTemplate'\">\r\n <rs-cell-component-template [tenant]=\"tenant\" [className]=\"className\"\r\n [cellInfo]=\"cellInfo\"></rs-cell-component-template>\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'rowButtonsTemplate'\">\r\n <ng-container [ngTemplateOutlet]=\"rowButtonsTemplate.templateRef\"\r\n [ngTemplateOutletContext]=\"{$implicit: cellInfo, cellTemplateLoaded$: service.cellTemplateLoaded$}\"></ng-container>\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'customTemplate'\">\r\n <ng-container [ngTemplateOutlet]=\"customTemplate.templateRef\"\r\n [ngTemplateOutletContext]=\"{$implicit: cellInfo, cellTemplateLoaded$: service.cellTemplateLoaded$}\"></ng-container>\r\n </div>\r\n</dx-data-grid>\r\n", styles: [":host{min-height:120px;display:flex;flex-flow:column nowrap}:host dx-data-grid{flex:auto;height:0}\n"], dependencies: [{ kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "component", type: i5.DxDataGridComponent, selector: "dx-data-grid", inputs: ["accessKey", "activeStateEnabled", "allowColumnReordering", "allowColumnResizing", "autoNavigateToFocusedRow", "cacheEnabled", "cellHintEnabled", "columnAutoWidth", "columnChooser", "columnFixing", "columnHidingEnabled", "columnMinWidth", "columnResizingMode", "columns", "columnWidth", "customizeColumns", "dataRowTemplate", "dataSource", "dateSerializationFormat", "disabled", "editing", "elementAttr", "errorRowEnabled", "export", "filterBuilder", "filterBuilderPopup", "filterPanel", "filterRow", "filterSyncEnabled", "filterValue", "focusedColumnIndex", "focusedRowEnabled", "focusedRowIndex", "focusedRowKey", "grouping", "groupPanel", "headerFilter", "height", "highlightChanges", "hint", "hoverStateEnabled", "keyboardNavigation", "keyExpr", "loadPanel", "masterDetail", "noDataText", "pager", "paging", "remoteOperations", "renderAsync", "repaintChangesOnly", "rowAlternationEnabled", "rowDragging", "rowTemplate", "rtlEnabled", "scrolling", "searchPanel", "selectedRowKeys", "selection", "selectionFilter", "showBorders", "showColumnHeaders", "showColumnLines", "showRowLines", "sortByGroupSummaryInfo", "sorting", "stateStoring", "summary", "syncLookupFilterValues", "tabIndex", "toolbar", "twoWayBindingEnabled", "visible", "width", "wordWrapEnabled"], outputs: ["onAdaptiveDetailRowPreparing", "onCellClick", "onCellDblClick", "onCellHoverChanged", "onCellPrepared", "onContentReady", "onContextMenuPreparing", "onDataErrorOccurred", "onDisposing", "onEditCanceled", "onEditCanceling", "onEditingStart", "onEditorPrepared", "onEditorPreparing", "onExporting", "onFocusedCellChanged", "onFocusedCellChanging", "onFocusedRowChanged", "onFocusedRowChanging", "onInitialized", "onInitNewRow", "onKeyDown", "onOptionChanged", "onRowClick", "onRowCollapsed", "onRowCollapsing", "onRowDblClick", "onRowExpanded", "onRowExpanding", "onRowInserted", "onRowInserting", "onRowPrepared", "onRowRemoved", "onRowRemoving", "onRowUpdated", "onRowUpdating", "onRowValidating", "onSaved", "onSaving", "onSelectionChanged", "onToolbarPreparing", "accessKeyChange", "activeStateEnabledChange", "allowColumnReorderingChange", "allowColumnResizingChange", "autoNavigateToFocusedRowChange", "cacheEnabledChange", "cellHintEnabledChange", "columnAutoWidthChange", "columnChooserChange", "columnFixingChange", "columnHidingEnabledChange", "columnMinWidthChange", "columnResizingModeChange", "columnsChange", "columnWidthChange", "customizeColumnsChange", "dataRowTemplateChange", "dataSourceChange", "dateSerializationFormatChange", "disabledChange", "editingChange", "elementAttrChange", "errorRowEnabledChange", "exportChange", "filterBuilderChange", "filterBuilderPopupChange", "filterPanelChange", "filterRowChange", "filterSyncEnabledChange", "filterValueChange", "focusedColumnIndexChange", "focusedRowEnabledChange", "focusedRowIndexChange", "focusedRowKeyChange", "groupingChange", "groupPanelChange", "headerFilterChange", "heightChange", "highlightChangesChange", "hintChange", "hoverStateEnabledChange", "keyboardNavigationChange", "keyExprChange", "loadPanelChange", "masterDetailChange", "noDataTextChange", "pagerChange", "pagingChange", "remoteOperationsChange", "renderAsyncChange", "repaintChangesOnlyChange", "rowAlternationEnabledChange", "rowDraggingChange", "rowTemplateChange", "rtlEnabledChange", "scrollingChange", "searchPanelChange", "selectedRowKeysChange", "selectionChange", "selectionFilterChange", "showBordersChange", "showColumnHeadersChange", "showColumnLinesChange", "showRowLinesChange", "sortByGroupSummaryInfoChange", "sortingChange", "stateStoringChange", "summaryChange", "syncLookupFilterValuesChange", "tabIndexChange", "toolbarChange", "twoWayBindingEnabledChange", "visibleChange", "widthChange", "wordWrapEnabledChange"] }, { kind: "component", type: i6.DxoSearchComponent, selector: "dxo-search", inputs: ["editorOptions", "enabled", "timeout", "mode", "searchExpr"] }, { kind: "component", type: i6.DxoSelectionComponent, selector: "dxo-selection", inputs: ["allowSelectAll", "recursive", "selectByClick", "deferred", "mode", "selectAllMode", "showCheckBoxesMode"] }, { kind: "component", type: i6.DxoTextsComponent, selector: "dxo-texts", inputs: ["fix", "leftPosition", "rightPosition", "unfix", "addRow", "cancelAllChanges", "cancelRowChanges", "confirmDeleteMessage", "confirmDeleteTitle", "deleteRow", "editRow", "saveAllChanges", "saveRowChanges", "undeleteRow", "validationCancelChanges", "exportAll", "exportSelectedRows", "exportTo", "clearFilter", "createFilter", "filterEnabledHint", "groupByThisColumn", "groupContinuedMessage", "groupContinuesMessage", "ungroup", "ungroupAll", "cancel", "emptyValue", "ok", "avg", "avgOtherColumn", "count", "max", "maxOtherColumn", "min", "minOtherColumn", "sum", "sumOtherColumn", "allFields", "columnFields", "dataFields", "filterFields", "rowFields", "columnFieldArea", "dataFieldArea", "filterFieldArea", "rowFieldArea", "collapseAll", "dataNotAvailable", "expandAll", "exportToExcel", "grandTotal", "noData", "removeAllSorting", "showFieldChooser", "sortColumnBySummary", "sortRowBySummary", "total", "addRowToNode"] }, { kind: "component", type: i6.DxoHeaderFilterComponent, selector: "dxo-header-filter", inputs: ["allowSearch", "allowSelectAll", "dataSource", "groupInterval", "height", "search", "searchMode", "width", "searchTimeout", "texts", "visible", "showRelevantValues"] }, { kind: "component", type: i6.DxoFilterRowComponent, selector: "dxo-filter-row", inputs: ["applyFilter", "applyFilterText", "betweenEndText", "betweenStartText", "operationDescriptions", "resetOperationText", "showAllText", "showOperationChooser", "visible"] }, { kind: "component", type: i6.DxoPagerComponent, selector: "dxo-pager", inputs: ["allowedPageSizes", "displayMode", "infoText", "label", "showInfo", "showNavigationButtons", "showPageSizeSelector", "visible"] }, { kind: "component", type: i6.DxoPagingComponent, selector: "dxo-paging", inputs: ["enabled", "pageIndex", "pageSize"], outputs: ["pageIndexChange", "pageSizeChange"] }, { kind: "component", type: i6.DxoRemoteOperationsComponent, selector: "dxo-remote-operations", inputs: ["filtering", "grouping", "groupPaging", "paging", "sorting", "summary"] }, { kind: "component", type: i6.DxoScrollingComponent, selector: "dxo-scrolling", inputs: ["columnRenderingMode", "mode", "preloadEnabled", "renderAsync", "rowRenderingMode", "scrollByContent", "scrollByThumb", "showScrollbar", "useNative"] }, { kind: "component", type: i6.DxoSortingComponent, selector: "dxo-sorting", inputs: ["ascendingText", "clearText", "descendingText", "mode", "showSortIndexes"] }, { kind: "component", type: i7.InstanceLinkTemplateComponent, selector: "rs-instance-link-template", inputs: ["tenant", "className", "oid", "instanceLinkType", "drawerViewContainerRef", "drawerSize", "drawerShowHeader", "drawerFormTemplate"] }, { kind: "component", type: i8.CellComponentTemplateComponent, selector: "rs-cell-component-template", inputs: ["tenant", "className", "cellInfo"] }] });
137
141
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DataGridComponent, decorators: [{
138
142
  type: Component,
139
- args: [{ selector: 'rs-data-grid', providers: [DataGridService], template: "<dx-data-grid [showBorders]=\"true\"\r\n [showRowLines]=\"true\"\r\n [showColumnLines]=\"true\"\r\n [hoverStateEnabled]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [columnAutoWidth]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n columnResizingMode=\"widget\"\r\n dateSerializationFormat=\"yyyy/MM/dd HH:mm:ss\"\r\n [syncLookupFilterValues]=\"false\"\r\n [dataSource]=\"dataSource\"\r\n [columns]=\"columns\"\r\n [height]=\"height\"\r\n [keyExpr]=\"keyExpr\"\r\n [selectedRowKeys]=\"selectedRowKeys\"\r\n (selectedRowKeysChange)=\"selectedRowKeysChange.emit($event)\"\r\n (onCellPrepared)=\"onCellPrepared.emit($event)\"\r\n (onContentReady)=\"onContentReady.emit($event)\"\r\n (onEditorPreparing)=\"onDxDataGridEditorPreparing($event)\"\r\n (onRowClick)=\"onRowClick.emit($event)\"\r\n (onRowDblClick)=\"onRowDblClick.emit($event)\"\r\n (onSelectionChanged)=\"onSelectionChanged.emit($event)\">\r\n <dxo-sorting mode=\"multiple\"></dxo-sorting>\r\n <dxo-selection [mode]=\"selectionMode\" selectAllMode=\"page\" showCheckBoxesMode=\"always\"></dxo-selection>\r\n <dxo-header-filter [visible]=\"!onlyFrontEnd\">\r\n <dxo-search [enabled]=\"true\"></dxo-search>\r\n <dxo-texts [ok]=\"'\u786E\u5B9A'\"></dxo-texts>\r\n </dxo-header-filter>\r\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\r\n <dxo-remote-operations [filtering]=\"!onlyFrontEnd\"\r\n [sorting]=\"!onlyFrontEnd\"\r\n [paging]=\"!onlyFrontEnd\">\r\n </dxo-remote-operations>\r\n <dxo-paging [enabled]=\"!disablePage\" [pageSize]=\"pageSize\"></dxo-paging>\r\n <dxo-pager [visible]=\"!disablePage\"\r\n displayMode=\"compact\"\r\n [showInfo]=\"true\"\r\n infoText=\"\u7B2C{0}\u9875\uFF0C\u5171{1}\u9875\uFF08\u5171{2}\u9879\uFF09\"\r\n [showPageSizeSelector]=\"true\"\r\n [allowedPageSizes]=\"allowedPageSizes\"\r\n ></dxo-pager>\r\n <dxo-scrolling showScrollbar=\"always\"></dxo-scrolling>\r\n <div *dxTemplate=\"let cellInfo of 'rowIndexTemplate'\">\r\n {{ cellInfo.rowIndex + 1 }}\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'instanceLinkTemplate'\">\r\n <rs-instance-link-template [tenant]=\"tenant\"\r\n [className]=\"className\"\r\n [oid]=\"cellInfo.data.oid\"\r\n [instanceLinkType]=\"instanceLinkType\"\r\n [drawerViewContainerRef]=\"drawerInstanceLinkViewContainerRef\"\r\n [drawerSize]=\"drawerInstanceLinkSize\"\r\n [drawerShowHeader]=\"drawerInstanceLinkShowHeader\"\r\n [drawerFormTemplate]=\"drawerInstanceLinkFormTemplate\">\r\n </rs-instance-link-template>\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'cellComponentTemplate'\">\r\n <rs-cell-component-template [tenant]=\"tenant\" [className]=\"className\"\r\n [cellInfo]=\"cellInfo\"></rs-cell-component-template>\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'rowButtonsTemplate'\">\r\n <ng-container [ngTemplateOutlet]=\"rowButtonsTemplate.templateRef\"\r\n [ngTemplateOutletContext]=\"{$implicit: cellInfo, cellTemplateLoaded$: service.cellTemplateLoaded$}\"></ng-container>\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'customTemplate'\">\r\n <ng-container [ngTemplateOutlet]=\"customTemplate.templateRef\"\r\n [ngTemplateOutletContext]=\"{$implicit: cellInfo, cellTemplateLoaded$: service.cellTemplateLoaded$}\"></ng-container>\r\n </div>\r\n</dx-data-grid>\r\n", styles: [":host{min-height:120px;display:flex;flex-flow:column nowrap}:host dx-data-grid{flex:auto;height:0}\n"] }]
143
+ args: [{ selector: 'rs-data-grid', providers: [DataGridService, DataGridFactory], template: "<dx-data-grid [showBorders]=\"true\"\r\n [showRowLines]=\"true\"\r\n [showColumnLines]=\"true\"\r\n [hoverStateEnabled]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [columnAutoWidth]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n columnResizingMode=\"widget\"\r\n dateSerializationFormat=\"yyyy/MM/dd HH:mm:ss\"\r\n [syncLookupFilterValues]=\"false\"\r\n [dataSource]=\"dataSource\"\r\n [columns]=\"columns\"\r\n [height]=\"height\"\r\n [keyExpr]=\"keyExpr\"\r\n [selectedRowKeys]=\"selectedRowKeys\"\r\n (selectedRowKeysChange)=\"selectedRowKeysChange.emit($event)\"\r\n (onCellPrepared)=\"onCellPrepared.emit($event)\"\r\n (onContentReady)=\"onContentReady.emit($event)\"\r\n (onEditorPreparing)=\"onDxDataGridEditorPreparing($event)\"\r\n (onRowClick)=\"onRowClick.emit($event)\"\r\n (onRowDblClick)=\"onRowDblClick.emit($event)\"\r\n (onSelectionChanged)=\"onSelectionChanged.emit($event)\">\r\n <dxo-sorting [mode]=\"onlyFrontEnd ? 'none' : 'multiple'\"></dxo-sorting>\r\n <dxo-selection [mode]=\"selectionMode\" selectAllMode=\"page\" showCheckBoxesMode=\"always\"></dxo-selection>\r\n <dxo-header-filter [visible]=\"!onlyFrontEnd\">\r\n <dxo-search [enabled]=\"true\"></dxo-search>\r\n <dxo-texts [ok]=\"'\u786E\u5B9A'\"></dxo-texts>\r\n </dxo-header-filter>\r\n <dxo-filter-row [visible]=\"!onlyFrontEnd\"></dxo-filter-row>\r\n <dxo-remote-operations [filtering]=\"!onlyFrontEnd\"\r\n [sorting]=\"!onlyFrontEnd\"\r\n [paging]=\"!onlyFrontEnd\">\r\n </dxo-remote-operations>\r\n <dxo-paging [enabled]=\"!disablePage\" [pageSize]=\"pageSize\"></dxo-paging>\r\n <dxo-pager [visible]=\"!disablePage\"\r\n displayMode=\"compact\"\r\n [showInfo]=\"true\"\r\n infoText=\"\u7B2C{0}\u9875\uFF0C\u5171{1}\u9875\uFF08\u5171{2}\u9879\uFF09\"\r\n [showPageSizeSelector]=\"true\"\r\n [allowedPageSizes]=\"allowedPageSizes\"\r\n ></dxo-pager>\r\n <dxo-scrolling showScrollbar=\"always\"></dxo-scrolling>\r\n <div *dxTemplate=\"let cellInfo of 'rowIndexTemplate'\">\r\n {{ cellInfo.rowIndex + 1 }}\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'instanceLinkTemplate'\">\r\n <rs-instance-link-template [tenant]=\"tenant\"\r\n [className]=\"className\"\r\n [oid]=\"cellInfo.data.oid\"\r\n [instanceLinkType]=\"instanceLinkType\"\r\n [drawerViewContainerRef]=\"drawerInstanceLinkViewContainerRef\"\r\n [drawerSize]=\"drawerInstanceLinkSize\"\r\n [drawerShowHeader]=\"drawerInstanceLinkShowHeader\"\r\n [drawerFormTemplate]=\"drawerInstanceLinkFormTemplate\">\r\n </rs-instance-link-template>\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'cellComponentTemplate'\">\r\n <rs-cell-component-template [tenant]=\"tenant\" [className]=\"className\"\r\n [cellInfo]=\"cellInfo\"></rs-cell-component-template>\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'rowButtonsTemplate'\">\r\n <ng-container [ngTemplateOutlet]=\"rowButtonsTemplate.templateRef\"\r\n [ngTemplateOutletContext]=\"{$implicit: cellInfo, cellTemplateLoaded$: service.cellTemplateLoaded$}\"></ng-container>\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'customTemplate'\">\r\n <ng-container [ngTemplateOutlet]=\"customTemplate.templateRef\"\r\n [ngTemplateOutletContext]=\"{$implicit: cellInfo, cellTemplateLoaded$: service.cellTemplateLoaded$}\"></ng-container>\r\n </div>\r\n</dx-data-grid>\r\n", styles: [":host{min-height:120px;display:flex;flex-flow:column nowrap}:host dx-data-grid{flex:auto;height:0}\n"] }]
140
144
  }], ctorParameters: function () { return [{ type: i1.DataGridService }, { type: i2.DataGridFactory }, { type: i0.ViewContainerRef }]; }, propDecorators: { tenant: [{
141
145
  type: Input
142
146
  }], className: [{
@@ -203,4 +207,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
203
207
  type: ContentChild,
204
208
  args: [CustomTemplateDirective]
205
209
  }] } });
206
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1ncmlkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ycy1hbnQvc3JjL2RhdGEtZ3JpZC9kYXRhLWdyaWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJzLWFudC9zcmMvZGF0YS1ncmlkL2RhdGEtZ3JpZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQW1CLE1BQU0sZUFBZSxDQUFDO0FBQ3hILE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUU3RSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sNkJBQTZCLENBQUM7Ozs7Ozs7Ozs7QUFRcEUsTUFBTSxPQUFPLGlCQUFpQjtJQThENUIsWUFBc0IsT0FBd0IsRUFBVSxPQUF3QixFQUFVLGdCQUFrQztRQUF0RyxZQUFPLEdBQVAsT0FBTyxDQUFpQjtRQUFVLFlBQU8sR0FBUCxPQUFPLENBQWlCO1FBQVUscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQTVENUgsV0FBTSxHQUFTLEdBQUcsQ0FBQztRQVVuQixZQUFPLEdBQVcsRUFBRSxDQUFDLENBQUMsa0NBQWtDO1FBTXhELGlCQUFZLEdBQVksS0FBSyxDQUFDLENBQUMsOEJBQThCO1FBRTdELGFBQVEsR0FBVyxFQUFFLENBQUM7UUFFdEIscUJBQWdCLEdBQVUsQ0FB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QUFDLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBDb250ZW50Q2hpbGQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQsIFZpZXdDb250YWluZXJSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0R4RGF0YUdyaWRDb21wb25lbnR9IGZyb20gXCJkZXZleHRyZW1lLWFuZ3VsYXJcIjtcclxuaW1wb3J0IHtEYXRhR3JpZFNlcnZpY2V9IGZyb20gXCIuL2RhdGEtZ3JpZC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7Um93QnV0dG9uc1RlbXBsYXRlRGlyZWN0aXZlfSBmcm9tIFwiLi9yb3ctYnV0dG9ucy10ZW1wbGF0ZS5kaXJlY3RpdmVcIjtcclxuaW1wb3J0IHtEYXRhR3JpZEZhY3Rvcnl9IGZyb20gXCIuL2RhdGEtZ3JpZC5mYWN0b3J5XCI7XHJcbmltcG9ydCB7ZGVib3VuY2VUaW1lfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQge25vdGlmeUVycm9yfSBmcm9tIFwiLi4vdXRpbC91dGlsc1wiO1xyXG5pbXBvcnQge0N1c3RvbVRlbXBsYXRlRGlyZWN0aXZlfSBmcm9tIFwiLi9jdXN0b20tdGVtcGxhdGUuZGlyZWN0aXZlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3JzLWRhdGEtZ3JpZCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGEtZ3JpZC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZGF0YS1ncmlkLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgcHJvdmlkZXJzOiBbRGF0YUdyaWRTZXJ2aWNlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGF0YUdyaWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpXHJcbiAgdGVuYW50PzogYW55ID0gJ1QnO1xyXG4gIEBJbnB1dCgpXHJcbiAgY2xhc3NOYW1lITogYW55O1xyXG4gIEBJbnB1dCgpXHJcbiAgdmlldz86IGFueTtcclxuICBASW5wdXQoKVxyXG4gIGZpbHRlcj86IEFycmF5PGFueT4gfCBzdHJpbmc7XHJcbiAgQElucHV0KClcclxuICBjdXN0b21Db2x1bW5Gbj86IChjb2x1bW5zOiBhbnlbXSkgPT4gdm9pZDtcclxuICBASW5wdXQoKVxyXG4gIGtleUV4cHI6IHN0cmluZyA9ICcnOyAvLyDnlKjkuo7lrp7kvovlsZ7mgKfpgInmi6nlmajvvIzliqDovb3nu4Tku7blgLzml7bku6XpgInkuK3lrZfmrrXkuLrkuLvplK7ojrflj5bpgInkuK3ooYzmlbDmja5cclxuICBASW5wdXQoKVxyXG4gIGRhdGFHcmlkTmFtZT86IHN0cmluZzsgLy8g55So5LqO5Zyo6I635Y+W5pWw5o2u5pe25ZCM5pe26I635Y+W5Y+w6LSm6YWN572u55qE6KGM5YaF5oyJ6ZKuXHJcbiAgQElucHV0KClcclxuICBoZWlnaHQ6IGFueTtcclxuICBASW5wdXQoKVxyXG4gIG9ubHlGcm9udEVuZDogYm9vbGVhbiA9IGZhbHNlOyAvLyDku4XliY3nq6/vvIzpnIDmjIflrppkYXRhU291cmNl77yM5LiN6Ieq5Yqo6I635Y+W6KGo5qC85pWw5o2uXHJcbiAgQElucHV0KClcclxuICBwYWdlU2l6ZTogbnVtYmVyID0gMjA7XHJcbiAgQElucHV0KClcclxuICBhbGxvd2VkUGFnZVNpemVzOiBhbnlbXSA9IFsxMCwgMjAsIDMwLCA0MCwgNTAsIDEwMCwgJ2FsbCddO1xyXG4gIEBJbnB1dCgpXHJcbiAgZGlzYWJsZVBhZ2U6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKVxyXG4gIGRhdGFTb3VyY2U6IGFueSA9IHt9O1xyXG4gIEBJbnB1dCgpXHJcbiAgc2VsZWN0aW9uTW9kZTogJ25vbmUnIHwgJ211bHRpcGxlJyB8ICdzaW5nbGUnID0gJ25vbmUnO1xyXG4gIEBJbnB1dCgpXHJcbiAgc2VsZWN0ZWRSb3dLZXlzOiBhbnlbXSA9IFtdO1xyXG4gIEBPdXRwdXQoKVxyXG4gIHNlbGVjdGVkUm93S2V5c0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55W10+KCk7XHJcbiAgQElucHV0KClcclxuICBzaG93Um93TnVtOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKVxyXG4gIGluc3RhbmNlTGlua1R5cGU6ICd0YWInIHwgJ2RyYXdlcicgfCAnbm9uZScgPSAndGFiJztcclxuICBASW5wdXQoKVxyXG4gIGRyYXdlckluc3RhbmNlTGlua1ZpZXdDb250YWluZXJSZWY6IGFueSA9IHRoaXMudmlld0NvbnRhaW5lclJlZjtcclxuICBASW5wdXQoKVxyXG4gIGRyYXdlckluc3RhbmNlTGlua1NpemU6ICdkZWZhdWx0JyB8ICdsYXJnZScgfCBzdHJpbmcgPSAnZGVmYXVsdCc7XHJcbiAgQElucHV0KClcclxuICBkcmF3ZXJJbnN0YW5jZUxpbmtTaG93SGVhZGVyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KClcclxuICBkcmF3ZXJJbnN0YW5jZUxpbmtGb3JtVGVtcGxhdGU6IGFueTtcclxuICBAT3V0cHV0KClcclxuICBvbkNlbGxQcmVwYXJlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBPdXRwdXQoKVxyXG4gIG9uQ29udGVudFJlYWR5ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgpXHJcbiAgb25FZGl0b3JQcmVwYXJpbmcgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KClcclxuICBvblJvd0NsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgpXHJcbiAgb25Sb3dEYmxDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBPdXRwdXQoKVxyXG4gIG9uU2VsZWN0aW9uQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBWaWV3Q2hpbGQoRHhEYXRhR3JpZENvbXBvbmVudCwge3N0YXRpYzogdHJ1ZX0pIHByaXZhdGUgZHhEYXRhR3JpZCE6IER4RGF0YUdyaWRDb21wb25lbnQ7XHJcbiAgQENvbnRlbnRDaGlsZChSb3dCdXR0b25zVGVtcGxhdGVEaXJlY3RpdmUpIHByb3RlY3RlZCByb3dCdXR0b25zVGVtcGxhdGUhOiBSb3dCdXR0b25zVGVtcGxhdGVEaXJlY3RpdmU7XHJcbiAgQENvbnRlbnRDaGlsZChDdXN0b21UZW1wbGF0ZURpcmVjdGl2ZSkgcHJvdGVjdGVkIGN1c3RvbVRlbXBsYXRlITogQ3VzdG9tVGVtcGxhdGVEaXJlY3RpdmU7XHJcbiAgY29sdW1uczogYW55W10gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIHNlcnZpY2U6IERhdGFHcmlkU2VydmljZSwgcHJpdmF0ZSBmYWN0b3J5OiBEYXRhR3JpZEZhY3RvcnksIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZikge1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBpZiAodGhpcy5wYWdlU2l6ZSAmJiAhdGhpcy5hbGxvd2VkUGFnZVNpemVzLmluY2x1ZGVzKHRoaXMucGFnZVNpemUpKSB7XHJcbiAgICAgIHRoaXMucGFnZVNpemUgPSAyMDtcclxuICAgIH1cclxuICAgIHRoaXMucmVsb2FkKCk7XHJcbiAgICB0aGlzLnNlcnZpY2UuY2VsbFRlbXBsYXRlTG9hZGVkJC5waXBlKGRlYm91bmNlVGltZSgxMDApKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAoPGFueT50aGlzLmR4RGF0YUdyaWQuaW5zdGFuY2UpLnJlc2l6ZSgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuc2VydmljZS5jZWxsVGVtcGxhdGVMb2FkZWQkLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICByZWxvYWQoKSB7XHJcbiAgICB0aGlzLmNvbHVtbnMubGVuZ3RoID0gMDtcclxuICAgIHRoaXMuZmFjdG9yeS5tYWtlRGF0YUdyaWRDb2x1bW5zKHRoaXMudGVuYW50LCB0aGlzLmNsYXNzTmFtZSwgdGhpcy52aWV3LCB0aGlzLmR4RGF0YUdyaWQpLnN1YnNjcmliZShjb2x1bW5zID0+IHtcclxuICAgICAgaWYgKHRoaXMuY3VzdG9tQ29sdW1uRm4pIHtcclxuICAgICAgICB0aGlzLmN1c3RvbUNvbHVtbkZuKGNvbHVtbnMpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmluc3RhbmNlTGlua1R5cGUgPT09ICd0YWInIHx8IHRoaXMuaW5zdGFuY2VMaW5rVHlwZSA9PT0gJ2RyYXdlcicpIHtcclxuICAgICAgICBjb2x1bW5zLnVuc2hpZnQoe1xyXG4gICAgICAgICAgY2FwdGlvbjogJ+ivpuaDhScsXHJcbiAgICAgICAgICBmaXhlZDogdHJ1ZSxcclxuICAgICAgICAgIHdpZHRoOiA0OCxcclxuICAgICAgICAgIGFsaWdubWVudDogJ2NlbnRlcicsXHJcbiAgICAgICAgICBjZWxsVGVtcGxhdGU6ICdpbnN0YW5jZUxpbmtUZW1wbGF0ZScsXHJcbiAgICAgICAgICByZW5kZXJBc3luYzogdHJ1ZVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLnNob3dSb3dOdW0pIHtcclxuICAgICAgICBjb2x1bW5zLnVuc2hpZnQoe1xyXG4gICAgICAgICAgY2FwdGlvbjogJ+ihjOWPtycsXHJcbiAgICAgICAgICBmaXhlZDogdHJ1ZSxcclxuICAgICAgICAgIHdpZHRoOiA0OCxcclxuICAgICAgICAgIGFsaWdubWVudDogJ2NlbnRlcicsXHJcbiAgICAgICAgICBjZWxsVGVtcGxhdGU6ICdyb3dJbmRleFRlbXBsYXRlJyxcclxuICAgICAgICAgIHJlbmRlckFzeW5jOiB0cnVlXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5jb2x1bW5zID0gY29sdW1ucztcclxuICAgICAgaWYgKHRoaXMub25seUZyb250RW5kICYmIHRoaXMuZmlsdGVyKSB7XHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5maWx0ZXIpKSB7XHJcbiAgICAgICAgICB0aGlzLmR4RGF0YUdyaWQuaW5zdGFuY2UuZmlsdGVyKHRoaXMuZmlsdGVyKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5keERhdGFHcmlkLmluc3RhbmNlLmZpbHRlcihKU09OLnBhcnNlKHRoaXMuZmlsdGVyKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIGlmICh0aGlzLm9ubHlGcm9udEVuZCkge1xyXG4gICAgICBpZiAodGhpcy5kYXRhU291cmNlICYmICFBcnJheS5pc0FycmF5KHRoaXMuZGF0YVNvdXJjZSkpIHtcclxuICAgICAgICBub3RpZnlFcnJvcign5Zugb25seUZyb250RW5k5Y+C5pWw5Li6dHJ1Ze+8jOmcgOimgeaYjuehruaMh+WummRhdGFTb3VyY2Xlj4LmlbDkuLrmlbDnu4QnKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5kYXRhU291cmNlID0gdGhpcy5mYWN0b3J5Lm1ha2VEYXRhR3JpZERhdGFTb3VyY2UodGhpcy50ZW5hbnQsIHRoaXMuY2xhc3NOYW1lLCB0aGlzLnZpZXcsIHRoaXMuZmlsdGVyLCB0aGlzLmtleUV4cHIsIHRoaXMuZGF0YUdyaWROYW1lKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldFNlbGVjdGVkUm93S2V5cygpIHtcclxuICAgIHJldHVybiB0aGlzLmR4RGF0YUdyaWQuaW5zdGFuY2UuZ2V0U2VsZWN0ZWRSb3dLZXlzKCk7XHJcbiAgfVxyXG5cclxuICBnZXRTZWxlY3RlZFJvd3NEYXRhKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZHhEYXRhR3JpZC5pbnN0YW5jZS5nZXRTZWxlY3RlZFJvd3NEYXRhKCk7XHJcbiAgfVxyXG5cclxuICBnZXRDb21iaW5lZEZpbHRlcigpIHtcclxuICAgIHJldHVybiB0aGlzLmR4RGF0YUdyaWQuaW5zdGFuY2UuZ2V0Q29tYmluZWRGaWx0ZXIoZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgcmVmcmVzaChjYWxsYmFjaz86IGFueSkge1xyXG4gICAgdGhpcy5keERhdGFHcmlkLmluc3RhbmNlLmNsZWFyU2VsZWN0aW9uKCk7XHJcbiAgICB0aGlzLmR4RGF0YUdyaWQuaW5zdGFuY2UucmVmcmVzaCgpLnRoZW4oKCkgPT4ge1xyXG4gICAgICBpZiAoY2FsbGJhY2spIHtcclxuICAgICAgICBjYWxsYmFjaygpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uRHhEYXRhR3JpZEVkaXRvclByZXBhcmluZygkZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKCRldmVudC5wYXJlbnRUeXBlID09PSAnZmlsdGVyUm93JyAmJiAkZXZlbnQuZWRpdG9yTmFtZSA9PT0gJ2R4VGV4dEJveCcpIHtcclxuICAgICAgJGV2ZW50LmVkaXRvck9wdGlvbnMudmFsdWVDaGFuZ2VFdmVudCA9ICdibHVyJztcclxuICAgICAgJGV2ZW50LmVkaXRvck9wdGlvbnMub25FbnRlcktleSA9IChlOiBhbnkpID0+IHtcclxuICAgICAgICBlLmNvbXBvbmVudC5ibHVyKCk7XHJcbiAgICAgIH07XHJcbiAgICAgICRldmVudC5lZGl0b3JPcHRpb25zLm9uUGFzdGUgPSAoZTogYW55KSA9PiB7XHJcbiAgICAgICAgY29uc3QgaW5wdXRFbGVtZW50ID0gZS5lbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0Jyk7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICBpbnB1dEVsZW1lbnQudmFsdWUgPSBpbnB1dEVsZW1lbnQudmFsdWU/LnRyaW0oKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIHRoaXMub25FZGl0b3JQcmVwYXJpbmcuZW1pdCgkZXZlbnQpO1xyXG4gIH1cclxufVxyXG4iLCI8ZHgtZGF0YS1ncmlkIFtzaG93Qm9yZGVyc109XCJ0cnVlXCJcclxuICAgICAgICAgICAgICBbc2hvd1Jvd0xpbmVzXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgIFtzaG93Q29sdW1uTGluZXNdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgW2hvdmVyU3RhdGVFbmFibGVkXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgIFtyb3dBbHRlcm5hdGlvbkVuYWJsZWRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgW2NvbHVtbkF1dG9XaWR0aF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICBbYWxsb3dDb2x1bW5SZXNpemluZ109XCJ0cnVlXCJcclxuICAgICAgICAgICAgICBjb2x1bW5SZXNpemluZ01vZGU9XCJ3aWRnZXRcIlxyXG4gICAgICAgICAgICAgIGRhdGVTZXJpYWxpemF0aW9uRm9ybWF0PVwieXl5eS9NTS9kZCBISDptbTpzc1wiXHJcbiAgICAgICAgICAgICAgW3N5bmNMb29rdXBGaWx0ZXJWYWx1ZXNdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgIFtkYXRhU291cmNlXT1cImRhdGFTb3VyY2VcIlxyXG4gICAgICAgICAgICAgIFtjb2x1bW5zXT1cImNvbHVtbnNcIlxyXG4gICAgICAgICAgICAgIFtoZWlnaHRdPVwiaGVpZ2h0XCJcclxuICAgICAgICAgICAgICBba2V5RXhwcl09XCJrZXlFeHByXCJcclxuICAgICAgICAgICAgICBbc2VsZWN0ZWRSb3dLZXlzXT1cInNlbGVjdGVkUm93S2V5c1wiXHJcbiAgICAgICAgICAgICAgKHNlbGVjdGVkUm93S2V5c0NoYW5nZSk9XCJzZWxlY3RlZFJvd0tleXNDaGFuZ2UuZW1pdCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAob25DZWxsUHJlcGFyZWQpPVwib25DZWxsUHJlcGFyZWQuZW1pdCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAob25Db250ZW50UmVhZHkpPVwib25Db250ZW50UmVhZHkuZW1pdCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAob25FZGl0b3JQcmVwYXJpbmcpPVwib25EeERhdGFHcmlkRWRpdG9yUHJlcGFyaW5nKCRldmVudClcIlxyXG4gICAgICAgICAgICAgIChvblJvd0NsaWNrKT1cIm9uUm93Q2xpY2suZW1pdCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAob25Sb3dEYmxDbGljayk9XCJvblJvd0RibENsaWNrLmVtaXQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgKG9uU2VsZWN0aW9uQ2hhbmdlZCk9XCJvblNlbGVjdGlvbkNoYW5nZWQuZW1pdCgkZXZlbnQpXCI+XHJcbiAgPGR4by1zb3J0aW5nIG1vZGU9XCJtdWx0aXBsZVwiPjwvZHhvLXNvcnRpbmc+XHJcbiAgPGR4by1zZWxlY3Rpb24gW21vZGVdPVwic2VsZWN0aW9uTW9kZVwiIHNlbGVjdEFsbE1vZGU9XCJwYWdlXCIgc2hvd0NoZWNrQm94ZXNNb2RlPVwiYWx3YXlzXCI+PC9keG8tc2VsZWN0aW9uPlxyXG4gIDxkeG8taGVhZGVyLWZpbHRlciBbdmlzaWJsZV09XCIhb25seUZyb250RW5kXCI+XHJcbiAgICA8ZHhvLXNlYXJjaCBbZW5hYmxlZF09XCJ0cnVlXCI+PC9keG8tc2VhcmNoPlxyXG4gICAgPGR4by10ZXh0cyBbb2tdPVwiJ+ehruWumidcIj48L2R4by10ZXh0cz5cclxuICA8L2R4by1oZWFkZXItZmlsdGVyPlxyXG4gIDxkeG8tZmlsdGVyLXJvdyBbdmlzaWJsZV09XCJ0cnVlXCI+PC9keG8tZmlsdGVyLXJvdz5cclxuICA8ZHhvLXJlbW90ZS1vcGVyYXRpb25zIFtmaWx0ZXJpbmddPVwiIW9ubHlGcm9udEVuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbc29ydGluZ109XCIhb25seUZyb250RW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtwYWdpbmddPVwiIW9ubHlGcm9udEVuZFwiPlxyXG4gIDwvZHhvLXJlbW90ZS1vcGVyYXRpb25zPlxyXG4gIDxkeG8tcGFnaW5nIFtlbmFibGVkXT1cIiFkaXNhYmxlUGFnZVwiIFtwYWdlU2l6ZV09XCJwYWdlU2l6ZVwiPjwvZHhvLXBhZ2luZz5cclxuICA8ZHhvLXBhZ2VyIFt2aXNpYmxlXT1cIiFkaXNhYmxlUGFnZVwiXHJcbiAgICAgICAgICAgICBkaXNwbGF5TW9kZT1cImNvbXBhY3RcIlxyXG4gICAgICAgICAgICAgW3Nob3dJbmZvXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgaW5mb1RleHQ9XCLnrKx7MH3pobXvvIzlhbF7MX3pobXvvIjlhbF7Mn3pobnvvIlcIlxyXG4gICAgICAgICAgICAgW3Nob3dQYWdlU2l6ZVNlbGVjdG9yXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgW2FsbG93ZWRQYWdlU2l6ZXNdPVwiYWxsb3dlZFBhZ2VTaXplc1wiXHJcbiAgPjwvZHhvLXBhZ2VyPlxyXG4gIDxkeG8tc2Nyb2xsaW5nIHNob3dTY3JvbGxiYXI9XCJhbHdheXNcIj48L2R4by1zY3JvbGxpbmc+XHJcbiAgPGRpdiAqZHhUZW1wbGF0ZT1cImxldCBjZWxsSW5mbyBvZiAncm93SW5kZXhUZW1wbGF0ZSdcIj5cclxuICAgIHt7IGNlbGxJbmZvLnJvd0luZGV4ICsgMSB9fVxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgKmR4VGVtcGxhdGU9XCJsZXQgY2VsbEluZm8gb2YgJ2luc3RhbmNlTGlua1RlbXBsYXRlJ1wiPlxyXG4gICAgPHJzLWluc3RhbmNlLWxpbmstdGVtcGxhdGUgW3RlbmFudF09XCJ0ZW5hbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzTmFtZV09XCJjbGFzc05hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW29pZF09XCJjZWxsSW5mby5kYXRhLm9pZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5zdGFuY2VMaW5rVHlwZV09XCJpbnN0YW5jZUxpbmtUeXBlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkcmF3ZXJWaWV3Q29udGFpbmVyUmVmXT1cImRyYXdlckluc3RhbmNlTGlua1ZpZXdDb250YWluZXJSZWZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RyYXdlclNpemVdPVwiZHJhd2VySW5zdGFuY2VMaW5rU2l6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZHJhd2VyU2hvd0hlYWRlcl09XCJkcmF3ZXJJbnN0YW5jZUxpbmtTaG93SGVhZGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkcmF3ZXJGb3JtVGVtcGxhdGVdPVwiZHJhd2VySW5zdGFuY2VMaW5rRm9ybVRlbXBsYXRlXCI+XHJcbiAgICA8L3JzLWluc3RhbmNlLWxpbmstdGVtcGxhdGU+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiAqZHhUZW1wbGF0ZT1cImxldCBjZWxsSW5mbyBvZiAnY2VsbENvbXBvbmVudFRlbXBsYXRlJ1wiPlxyXG4gICAgPHJzLWNlbGwtY29tcG9uZW50LXRlbXBsYXRlIFt0ZW5hbnRdPVwidGVuYW50XCIgW2NsYXNzTmFtZV09XCJjbGFzc05hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjZWxsSW5mb109XCJjZWxsSW5mb1wiPjwvcnMtY2VsbC1jb21wb25lbnQtdGVtcGxhdGU+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiAqZHhUZW1wbGF0ZT1cImxldCBjZWxsSW5mbyBvZiAncm93QnV0dG9uc1RlbXBsYXRlJ1wiPlxyXG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJyb3dCdXR0b25zVGVtcGxhdGUudGVtcGxhdGVSZWZcIlxyXG4gICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyRpbXBsaWNpdDogY2VsbEluZm8sIGNlbGxUZW1wbGF0ZUxvYWRlZCQ6IHNlcnZpY2UuY2VsbFRlbXBsYXRlTG9hZGVkJH1cIj48L25nLWNvbnRhaW5lcj5cclxuICA8L2Rpdj5cclxuICA8ZGl2ICpkeFRlbXBsYXRlPVwibGV0IGNlbGxJbmZvIG9mICdjdXN0b21UZW1wbGF0ZSdcIj5cclxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiY3VzdG9tVGVtcGxhdGUudGVtcGxhdGVSZWZcIlxyXG4gICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyRpbXBsaWNpdDogY2VsbEluZm8sIGNlbGxUZW1wbGF0ZUxvYWRlZCQ6IHNlcnZpY2UuY2VsbFRlbXBsYXRlTG9hZGVkJH1cIj48L25nLWNvbnRhaW5lcj5cclxuICA8L2Rpdj5cclxuPC9keC1kYXRhLWdyaWQ+XHJcbiJdfQ==
210
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1ncmlkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ycy1hbnQvc3JjL2RhdGEtZ3JpZC9kYXRhLWdyaWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJzLWFudC9zcmMvZGF0YS1ncmlkL2RhdGEtZ3JpZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQW1CLE1BQU0sZUFBZSxDQUFDO0FBQ3hILE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUM3RSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNsQyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDZCQUE2QixDQUFDOzs7Ozs7Ozs7O0FBUXBFLE1BQU0sT0FBTyxpQkFBaUI7SUE4RDVCLFlBQXNCLE9BQXdCLEVBQVUsT0FBd0IsRUFBVSxnQkFBa0M7UUFBdEcsWUFBTyxHQUFQLE9BQU8sQ0FBaUI7UUFBVSxZQUFPLEdBQVAsT0FBTyxDQUFpQjtRQUFVLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUE1RDVILFdBQU0sR0FBUyxHQUFHLENBQUM7UUFVbkIsWUFBTyxHQUFXLEVBQUUsQ0FBQyxDQUFDLGtDQUFrQztRQU14RCxpQkFBWSxHQUFZLEtBQUssQ0FBQyxDQUFDLDhCQUE4QjtRQUU3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dUJBQUMsbUJBQW1CLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO2dCQUNPLGtCQUFrQjtzQkFBdEUsWUFBWTt1QkFBQywyQkFBMkI7Z0JBQ1EsY0FBYztzQkFBOUQsWUFBWTt1QkFBQyx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgQ29udGVudENoaWxkLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtEeERhdGFHcmlkQ29tcG9uZW50fSBmcm9tIFwiZGV2ZXh0cmVtZS1hbmd1bGFyXCI7XHJcbmltcG9ydCB7RGF0YUdyaWRTZXJ2aWNlfSBmcm9tIFwiLi9kYXRhLWdyaWQuc2VydmljZVwiO1xyXG5pbXBvcnQge1Jvd0J1dHRvbnNUZW1wbGF0ZURpcmVjdGl2ZX0gZnJvbSBcIi4vcm93LWJ1dHRvbnMtdGVtcGxhdGUuZGlyZWN0aXZlXCI7XHJcbmltcG9ydCB7RGF0YUdyaWRGYWN0b3J5fSBmcm9tIFwiLi9kYXRhLWdyaWQuZmFjdG9yeVwiO1xyXG5pbXBvcnQge2RlYm91bmNlVGltZX0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHtub3RpZnlFcnJvcn0gZnJvbSBcIi4uL3V0aWwvdXRpbHNcIjtcclxuaW1wb3J0IHtDdXN0b21UZW1wbGF0ZURpcmVjdGl2ZX0gZnJvbSBcIi4vY3VzdG9tLXRlbXBsYXRlLmRpcmVjdGl2ZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdycy1kYXRhLWdyaWQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRhLWdyaWQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2RhdGEtZ3JpZC5jb21wb25lbnQuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogW0RhdGFHcmlkU2VydmljZSwgRGF0YUdyaWRGYWN0b3J5XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGF0YUdyaWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpXHJcbiAgdGVuYW50PzogYW55ID0gJ1QnO1xyXG4gIEBJbnB1dCgpXHJcbiAgY2xhc3NOYW1lITogYW55O1xyXG4gIEBJbnB1dCgpXHJcbiAgdmlldz86IGFueTtcclxuICBASW5wdXQoKVxyXG4gIGZpbHRlcj86IEFycmF5PGFueT4gfCBzdHJpbmc7XHJcbiAgQElucHV0KClcclxuICBjdXN0b21Db2x1bW5Gbj86IChjb2x1bW5zOiBhbnlbXSkgPT4gdm9pZDtcclxuICBASW5wdXQoKVxyXG4gIGtleUV4cHI6IHN0cmluZyA9ICcnOyAvLyDnlKjkuo7lrp7kvovlsZ7mgKfpgInmi6nlmajvvIzliqDovb3nu4Tku7blgLzml7bku6XpgInkuK3lrZfmrrXkuLrkuLvplK7ojrflj5bpgInkuK3ooYzmlbDmja5cclxuICBASW5wdXQoKVxyXG4gIGRhdGFHcmlkTmFtZT86IHN0cmluZzsgLy8g55So5LqO5Zyo6I635Y+W5pWw5o2u5pe25ZCM5pe26I635Y+W5Y+w6LSm6YWN572u55qE6KGM5YaF5oyJ6ZKuXHJcbiAgQElucHV0KClcclxuICBoZWlnaHQ6IGFueTtcclxuICBASW5wdXQoKVxyXG4gIG9ubHlGcm9udEVuZDogYm9vbGVhbiA9IGZhbHNlOyAvLyDku4XliY3nq6/vvIzpnIDmjIflrppkYXRhU291cmNl77yM5LiN6Ieq5Yqo6I635Y+W6KGo5qC85pWw5o2uXHJcbiAgQElucHV0KClcclxuICBwYWdlU2l6ZTogbnVtYmVyID0gMjA7XHJcbiAgQElucHV0KClcclxuICBhbGxvd2VkUGFnZVNpemVzOiBhbnlbXSA9IFsxMCwgMjAsIDMwLCA0MCwgNTAsIDEwMCwgJ2FsbCddO1xyXG4gIEBJbnB1dCgpXHJcbiAgZGlzYWJsZVBhZ2U6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKVxyXG4gIGRhdGFTb3VyY2U6IGFueSA9IHt9O1xyXG4gIEBJbnB1dCgpXHJcbiAgc2VsZWN0aW9uTW9kZTogJ25vbmUnIHwgJ211bHRpcGxlJyB8ICdzaW5nbGUnID0gJ25vbmUnO1xyXG4gIEBJbnB1dCgpXHJcbiAgc2VsZWN0ZWRSb3dLZXlzOiBhbnlbXSA9IFtdO1xyXG4gIEBPdXRwdXQoKVxyXG4gIHNlbGVjdGVkUm93S2V5c0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55W10+KCk7XHJcbiAgQElucHV0KClcclxuICBzaG93Um93TnVtOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKVxyXG4gIGluc3RhbmNlTGlua1R5cGU6ICd0YWInIHwgJ2RyYXdlcicgfCAnbm9uZScgPSAndGFiJztcclxuICBASW5wdXQoKVxyXG4gIGRyYXdlckluc3RhbmNlTGlua1ZpZXdDb250YWluZXJSZWY6IGFueSA9IHRoaXMudmlld0NvbnRhaW5lclJlZjtcclxuICBASW5wdXQoKVxyXG4gIGRyYXdlckluc3RhbmNlTGlua1NpemU6ICdkZWZhdWx0JyB8ICdsYXJnZScgfCBzdHJpbmcgPSAnZGVmYXVsdCc7XHJcbiAgQElucHV0KClcclxuICBkcmF3ZXJJbnN0YW5jZUxpbmtTaG93SGVhZGVyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KClcclxuICBkcmF3ZXJJbnN0YW5jZUxpbmtGb3JtVGVtcGxhdGU6IGFueTtcclxuICBAT3V0cHV0KClcclxuICBvbkNlbGxQcmVwYXJlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBPdXRwdXQoKVxyXG4gIG9uQ29udGVudFJlYWR5ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgpXHJcbiAgb25FZGl0b3JQcmVwYXJpbmcgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KClcclxuICBvblJvd0NsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgpXHJcbiAgb25Sb3dEYmxDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBPdXRwdXQoKVxyXG4gIG9uU2VsZWN0aW9uQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBWaWV3Q2hpbGQoRHhEYXRhR3JpZENvbXBvbmVudCwge3N0YXRpYzogdHJ1ZX0pIHByaXZhdGUgZHhEYXRhR3JpZCE6IER4RGF0YUdyaWRDb21wb25lbnQ7XHJcbiAgQENvbnRlbnRDaGlsZChSb3dCdXR0b25zVGVtcGxhdGVEaXJlY3RpdmUpIHByb3RlY3RlZCByb3dCdXR0b25zVGVtcGxhdGUhOiBSb3dCdXR0b25zVGVtcGxhdGVEaXJlY3RpdmU7XHJcbiAgQENvbnRlbnRDaGlsZChDdXN0b21UZW1wbGF0ZURpcmVjdGl2ZSkgcHJvdGVjdGVkIGN1c3RvbVRlbXBsYXRlITogQ3VzdG9tVGVtcGxhdGVEaXJlY3RpdmU7XHJcbiAgY29sdW1uczogYW55W10gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIHNlcnZpY2U6IERhdGFHcmlkU2VydmljZSwgcHJpdmF0ZSBmYWN0b3J5OiBEYXRhR3JpZEZhY3RvcnksIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZikge1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBpZiAodGhpcy5wYWdlU2l6ZSAmJiAhdGhpcy5hbGxvd2VkUGFnZVNpemVzLmluY2x1ZGVzKHRoaXMucGFnZVNpemUpKSB7XHJcbiAgICAgIHRoaXMucGFnZVNpemUgPSAyMDtcclxuICAgIH1cclxuICAgIHRoaXMucmVsb2FkKCk7XHJcbiAgICB0aGlzLnNlcnZpY2UuY2VsbFRlbXBsYXRlTG9hZGVkJC5waXBlKGRlYm91bmNlVGltZSgxMDApKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAoPGFueT50aGlzLmR4RGF0YUdyaWQuaW5zdGFuY2UpLnJlc2l6ZSgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuc2VydmljZS5jZWxsVGVtcGxhdGVMb2FkZWQkLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICByZWxvYWQoKSB7XHJcbiAgICB0aGlzLmNvbHVtbnMubGVuZ3RoID0gMDtcclxuICAgIHRoaXMuZmFjdG9yeS5tYWtlRGF0YUdyaWRDb2x1bW5zKHRoaXMudGVuYW50LCB0aGlzLmNsYXNzTmFtZSwgdGhpcy52aWV3LCB0aGlzLmR4RGF0YUdyaWQpLnN1YnNjcmliZShjb2x1bW5zID0+IHtcclxuICAgICAgaWYgKHRoaXMuY3VzdG9tQ29sdW1uRm4pIHtcclxuICAgICAgICB0aGlzLmN1c3RvbUNvbHVtbkZuKGNvbHVtbnMpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmluc3RhbmNlTGlua1R5cGUgPT09ICd0YWInIHx8IHRoaXMuaW5zdGFuY2VMaW5rVHlwZSA9PT0gJ2RyYXdlcicpIHtcclxuICAgICAgICBjb2x1bW5zLnVuc2hpZnQoe1xyXG4gICAgICAgICAgY2FwdGlvbjogJ+ivpuaDhScsXHJcbiAgICAgICAgICBmaXhlZDogdHJ1ZSxcclxuICAgICAgICAgIHdpZHRoOiA0OCxcclxuICAgICAgICAgIGFsaWdubWVudDogJ2NlbnRlcicsXHJcbiAgICAgICAgICBjZWxsVGVtcGxhdGU6ICdpbnN0YW5jZUxpbmtUZW1wbGF0ZScsXHJcbiAgICAgICAgICByZW5kZXJBc3luYzogdHJ1ZVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLnNob3dSb3dOdW0pIHtcclxuICAgICAgICBjb2x1bW5zLnVuc2hpZnQoe1xyXG4gICAgICAgICAgY2FwdGlvbjogJ+ihjOWPtycsXHJcbiAgICAgICAgICBmaXhlZDogdHJ1ZSxcclxuICAgICAgICAgIHdpZHRoOiA0OCxcclxuICAgICAgICAgIGFsaWdubWVudDogJ2NlbnRlcicsXHJcbiAgICAgICAgICBjZWxsVGVtcGxhdGU6ICdyb3dJbmRleFRlbXBsYXRlJyxcclxuICAgICAgICAgIHJlbmRlckFzeW5jOiB0cnVlXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5jb2x1bW5zID0gY29sdW1ucztcclxuICAgICAgaWYgKHRoaXMub25seUZyb250RW5kICYmIHRoaXMuZmlsdGVyKSB7XHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5maWx0ZXIpKSB7XHJcbiAgICAgICAgICB0aGlzLmR4RGF0YUdyaWQuaW5zdGFuY2UuZmlsdGVyKHRoaXMuZmlsdGVyKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5keERhdGFHcmlkLmluc3RhbmNlLmZpbHRlcihKU09OLnBhcnNlKHRoaXMuZmlsdGVyKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIGlmICh0aGlzLm9ubHlGcm9udEVuZCkge1xyXG4gICAgICBpZiAodGhpcy5kYXRhU291cmNlICYmICFBcnJheS5pc0FycmF5KHRoaXMuZGF0YVNvdXJjZSkpIHtcclxuICAgICAgICBub3RpZnlFcnJvcign5Zugb25seUZyb250RW5k5Y+C5pWw5Li6dHJ1Ze+8jOmcgOimgeaYjuehruaMh+WummRhdGFTb3VyY2Xlj4LmlbDkuLrmlbDnu4QnKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5kYXRhU291cmNlID0gdGhpcy5mYWN0b3J5Lm1ha2VEYXRhR3JpZERhdGFTb3VyY2UodGhpcy50ZW5hbnQsIHRoaXMuY2xhc3NOYW1lLCB0aGlzLnZpZXcsIHRoaXMuZmlsdGVyLCB0aGlzLmtleUV4cHIsIHRoaXMuZGF0YUdyaWROYW1lKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldFNlbGVjdGVkUm93S2V5cygpIHtcclxuICAgIHJldHVybiB0aGlzLmR4RGF0YUdyaWQuaW5zdGFuY2UuZ2V0U2VsZWN0ZWRSb3dLZXlzKCk7XHJcbiAgfVxyXG5cclxuICBnZXRTZWxlY3RlZFJvd3NEYXRhKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZHhEYXRhR3JpZC5pbnN0YW5jZS5nZXRTZWxlY3RlZFJvd3NEYXRhKCk7XHJcbiAgfVxyXG5cclxuICBnZXRVc2VyRmlsdGVyKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZmFjdG9yeS5nZXRGaWx0ZXIoKTtcclxuICB9XHJcblxyXG4gIGdldFVzZXJTb3J0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZmFjdG9yeS5nZXRTb3J0KCk7XHJcbiAgfVxyXG5cclxuICByZWZyZXNoKGNhbGxiYWNrPzogYW55KSB7XHJcbiAgICB0aGlzLmR4RGF0YUdyaWQuaW5zdGFuY2UuY2xlYXJTZWxlY3Rpb24oKTtcclxuICAgIHRoaXMuZHhEYXRhR3JpZC5pbnN0YW5jZS5yZWZyZXNoKCkudGhlbigoKSA9PiB7XHJcbiAgICAgIGlmIChjYWxsYmFjaykge1xyXG4gICAgICAgIGNhbGxiYWNrKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb25EeERhdGFHcmlkRWRpdG9yUHJlcGFyaW5nKCRldmVudDogYW55KSB7XHJcbiAgICBpZiAoJGV2ZW50LnBhcmVudFR5cGUgPT09ICdmaWx0ZXJSb3cnICYmICRldmVudC5lZGl0b3JOYW1lID09PSAnZHhUZXh0Qm94Jykge1xyXG4gICAgICAkZXZlbnQuZWRpdG9yT3B0aW9ucy52YWx1ZUNoYW5nZUV2ZW50ID0gJ2JsdXInO1xyXG4gICAgICAkZXZlbnQuZWRpdG9yT3B0aW9ucy5vbkVudGVyS2V5ID0gKGU6IGFueSkgPT4ge1xyXG4gICAgICAgIGUuY29tcG9uZW50LmJsdXIoKTtcclxuICAgICAgfTtcclxuICAgICAgJGV2ZW50LmVkaXRvck9wdGlvbnMub25QYXN0ZSA9IChlOiBhbnkpID0+IHtcclxuICAgICAgICBjb25zdCBpbnB1dEVsZW1lbnQgPSBlLmVsZW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXQnKTtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgIGlucHV0RWxlbWVudC52YWx1ZSA9IGlucHV0RWxlbWVudC52YWx1ZT8udHJpbSgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgdGhpcy5vbkVkaXRvclByZXBhcmluZy5lbWl0KCRldmVudCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkeC1kYXRhLWdyaWQgW3Nob3dCb3JkZXJzXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgIFtzaG93Um93TGluZXNdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgW3Nob3dDb2x1bW5MaW5lc109XCJ0cnVlXCJcclxuICAgICAgICAgICAgICBbaG92ZXJTdGF0ZUVuYWJsZWRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgW3Jvd0FsdGVybmF0aW9uRW5hYmxlZF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICBbY29sdW1uQXV0b1dpZHRoXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgIFthbGxvd0NvbHVtblJlc2l6aW5nXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgIGNvbHVtblJlc2l6aW5nTW9kZT1cIndpZGdldFwiXHJcbiAgICAgICAgICAgICAgZGF0ZVNlcmlhbGl6YXRpb25Gb3JtYXQ9XCJ5eXl5L01NL2RkIEhIOm1tOnNzXCJcclxuICAgICAgICAgICAgICBbc3luY0xvb2t1cEZpbHRlclZhbHVlc109XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgW2RhdGFTb3VyY2VdPVwiZGF0YVNvdXJjZVwiXHJcbiAgICAgICAgICAgICAgW2NvbHVtbnNdPVwiY29sdW1uc1wiXHJcbiAgICAgICAgICAgICAgW2hlaWdodF09XCJoZWlnaHRcIlxyXG4gICAgICAgICAgICAgIFtrZXlFeHByXT1cImtleUV4cHJcIlxyXG4gICAgICAgICAgICAgIFtzZWxlY3RlZFJvd0tleXNdPVwic2VsZWN0ZWRSb3dLZXlzXCJcclxuICAgICAgICAgICAgICAoc2VsZWN0ZWRSb3dLZXlzQ2hhbmdlKT1cInNlbGVjdGVkUm93S2V5c0NoYW5nZS5lbWl0KCRldmVudClcIlxyXG4gICAgICAgICAgICAgIChvbkNlbGxQcmVwYXJlZCk9XCJvbkNlbGxQcmVwYXJlZC5lbWl0KCRldmVudClcIlxyXG4gICAgICAgICAgICAgIChvbkNvbnRlbnRSZWFkeSk9XCJvbkNvbnRlbnRSZWFkeS5lbWl0KCRldmVudClcIlxyXG4gICAgICAgICAgICAgIChvbkVkaXRvclByZXBhcmluZyk9XCJvbkR4RGF0YUdyaWRFZGl0b3JQcmVwYXJpbmcoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgKG9uUm93Q2xpY2spPVwib25Sb3dDbGljay5lbWl0KCRldmVudClcIlxyXG4gICAgICAgICAgICAgIChvblJvd0RibENsaWNrKT1cIm9uUm93RGJsQ2xpY2suZW1pdCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAob25TZWxlY3Rpb25DaGFuZ2VkKT1cIm9uU2VsZWN0aW9uQ2hhbmdlZC5lbWl0KCRldmVudClcIj5cclxuICA8ZHhvLXNvcnRpbmcgW21vZGVdPVwib25seUZyb250RW5kID8gJ25vbmUnIDogJ211bHRpcGxlJ1wiPjwvZHhvLXNvcnRpbmc+XHJcbiAgPGR4by1zZWxlY3Rpb24gW21vZGVdPVwic2VsZWN0aW9uTW9kZVwiIHNlbGVjdEFsbE1vZGU9XCJwYWdlXCIgc2hvd0NoZWNrQm94ZXNNb2RlPVwiYWx3YXlzXCI+PC9keG8tc2VsZWN0aW9uPlxyXG4gIDxkeG8taGVhZGVyLWZpbHRlciBbdmlzaWJsZV09XCIhb25seUZyb250RW5kXCI+XHJcbiAgICA8ZHhvLXNlYXJjaCBbZW5hYmxlZF09XCJ0cnVlXCI+PC9keG8tc2VhcmNoPlxyXG4gICAgPGR4by10ZXh0cyBbb2tdPVwiJ+ehruWumidcIj48L2R4by10ZXh0cz5cclxuICA8L2R4by1oZWFkZXItZmlsdGVyPlxyXG4gIDxkeG8tZmlsdGVyLXJvdyBbdmlzaWJsZV09XCIhb25seUZyb250RW5kXCI+PC9keG8tZmlsdGVyLXJvdz5cclxuICA8ZHhvLXJlbW90ZS1vcGVyYXRpb25zIFtmaWx0ZXJpbmddPVwiIW9ubHlGcm9udEVuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbc29ydGluZ109XCIhb25seUZyb250RW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtwYWdpbmddPVwiIW9ubHlGcm9udEVuZFwiPlxyXG4gIDwvZHhvLXJlbW90ZS1vcGVyYXRpb25zPlxyXG4gIDxkeG8tcGFnaW5nIFtlbmFibGVkXT1cIiFkaXNhYmxlUGFnZVwiIFtwYWdlU2l6ZV09XCJwYWdlU2l6ZVwiPjwvZHhvLXBhZ2luZz5cclxuICA8ZHhvLXBhZ2VyIFt2aXNpYmxlXT1cIiFkaXNhYmxlUGFnZVwiXHJcbiAgICAgICAgICAgICBkaXNwbGF5TW9kZT1cImNvbXBhY3RcIlxyXG4gICAgICAgICAgICAgW3Nob3dJbmZvXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgaW5mb1RleHQ9XCLnrKx7MH3pobXvvIzlhbF7MX3pobXvvIjlhbF7Mn3pobnvvIlcIlxyXG4gICAgICAgICAgICAgW3Nob3dQYWdlU2l6ZVNlbGVjdG9yXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgW2FsbG93ZWRQYWdlU2l6ZXNdPVwiYWxsb3dlZFBhZ2VTaXplc1wiXHJcbiAgPjwvZHhvLXBhZ2VyPlxyXG4gIDxkeG8tc2Nyb2xsaW5nIHNob3dTY3JvbGxiYXI9XCJhbHdheXNcIj48L2R4by1zY3JvbGxpbmc+XHJcbiAgPGRpdiAqZHhUZW1wbGF0ZT1cImxldCBjZWxsSW5mbyBvZiAncm93SW5kZXhUZW1wbGF0ZSdcIj5cclxuICAgIHt7IGNlbGxJbmZvLnJvd0luZGV4ICsgMSB9fVxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgKmR4VGVtcGxhdGU9XCJsZXQgY2VsbEluZm8gb2YgJ2luc3RhbmNlTGlua1RlbXBsYXRlJ1wiPlxyXG4gICAgPHJzLWluc3RhbmNlLWxpbmstdGVtcGxhdGUgW3RlbmFudF09XCJ0ZW5hbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzTmFtZV09XCJjbGFzc05hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW29pZF09XCJjZWxsSW5mby5kYXRhLm9pZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5zdGFuY2VMaW5rVHlwZV09XCJpbnN0YW5jZUxpbmtUeXBlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkcmF3ZXJWaWV3Q29udGFpbmVyUmVmXT1cImRyYXdlckluc3RhbmNlTGlua1ZpZXdDb250YWluZXJSZWZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RyYXdlclNpemVdPVwiZHJhd2VySW5zdGFuY2VMaW5rU2l6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZHJhd2VyU2hvd0hlYWRlcl09XCJkcmF3ZXJJbnN0YW5jZUxpbmtTaG93SGVhZGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkcmF3ZXJGb3JtVGVtcGxhdGVdPVwiZHJhd2VySW5zdGFuY2VMaW5rRm9ybVRlbXBsYXRlXCI+XHJcbiAgICA8L3JzLWluc3RhbmNlLWxpbmstdGVtcGxhdGU+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiAqZHhUZW1wbGF0ZT1cImxldCBjZWxsSW5mbyBvZiAnY2VsbENvbXBvbmVudFRlbXBsYXRlJ1wiPlxyXG4gICAgPHJzLWNlbGwtY29tcG9uZW50LXRlbXBsYXRlIFt0ZW5hbnRdPVwidGVuYW50XCIgW2NsYXNzTmFtZV09XCJjbGFzc05hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjZWxsSW5mb109XCJjZWxsSW5mb1wiPjwvcnMtY2VsbC1jb21wb25lbnQtdGVtcGxhdGU+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiAqZHhUZW1wbGF0ZT1cImxldCBjZWxsSW5mbyBvZiAncm93QnV0dG9uc1RlbXBsYXRlJ1wiPlxyXG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJyb3dCdXR0b25zVGVtcGxhdGUudGVtcGxhdGVSZWZcIlxyXG4gICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyRpbXBsaWNpdDogY2VsbEluZm8sIGNlbGxUZW1wbGF0ZUxvYWRlZCQ6IHNlcnZpY2UuY2VsbFRlbXBsYXRlTG9hZGVkJH1cIj48L25nLWNvbnRhaW5lcj5cclxuICA8L2Rpdj5cclxuICA8ZGl2ICpkeFRlbXBsYXRlPVwibGV0IGNlbGxJbmZvIG9mICdjdXN0b21UZW1wbGF0ZSdcIj5cclxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiY3VzdG9tVGVtcGxhdGUudGVtcGxhdGVSZWZcIlxyXG4gICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyRpbXBsaWNpdDogY2VsbEluZm8sIGNlbGxUZW1wbGF0ZUxvYWRlZCQ6IHNlcnZpY2UuY2VsbFRlbXBsYXRlTG9hZGVkJH1cIj48L25nLWNvbnRhaW5lcj5cclxuICA8L2Rpdj5cclxuPC9keC1kYXRhLWdyaWQ+XHJcbiJdfQ==