@ng-matero/extensions 12.9.1 → 12.10.0

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.
Files changed (66) hide show
  1. package/alert/alert.component.d.ts +1 -1
  2. package/alert/mtxAlert.metadata.json +1 -1
  3. package/bundles/mtxAlert.umd.js +2 -2
  4. package/bundles/mtxAlert.umd.js.map +1 -1
  5. package/bundles/mtxCore.umd.js.map +1 -1
  6. package/bundles/mtxDatetimepicker.umd.js +5 -0
  7. package/bundles/mtxDatetimepicker.umd.js.map +1 -1
  8. package/bundles/mtxFormGroup.umd.js +1 -1
  9. package/bundles/mtxFormGroup.umd.js.map +1 -1
  10. package/bundles/mtxGrid.umd.js +51 -54
  11. package/bundles/mtxGrid.umd.js.map +1 -1
  12. package/bundles/mtxPopover.umd.js +997 -803
  13. package/bundles/mtxPopover.umd.js.map +1 -1
  14. package/bundles/mtxSelect.umd.js +237 -156
  15. package/bundles/mtxSelect.umd.js.map +1 -1
  16. package/core/datetime/datetime-formats.d.ts +2 -0
  17. package/esm2015/alert/alert.component.js +3 -3
  18. package/esm2015/core/datetime/datetime-formats.js +1 -1
  19. package/esm2015/datetimepicker/datetimepicker-input.js +6 -1
  20. package/esm2015/form-group/form-group.component.js +2 -2
  21. package/esm2015/grid/cell.component.js +32 -32
  22. package/esm2015/grid/column-menu.component.js +10 -14
  23. package/esm2015/grid/grid.component.js +12 -7
  24. package/esm2015/popover/popover-animations.js +10 -13
  25. package/esm2015/popover/popover-content.js +99 -0
  26. package/esm2015/popover/popover-interfaces.js +1 -1
  27. package/esm2015/popover/popover-module.js +7 -5
  28. package/esm2015/popover/popover-target.js +3 -3
  29. package/esm2015/popover/popover-trigger.js +210 -172
  30. package/esm2015/popover/popover-types.js +1 -1
  31. package/esm2015/popover/popover.js +173 -125
  32. package/esm2015/popover/public-api.js +2 -1
  33. package/esm2015/select/option.component.js +4 -6
  34. package/esm2015/select/select.component.js +111 -31
  35. package/fesm2015/mtxAlert.js +2 -2
  36. package/fesm2015/mtxAlert.js.map +1 -1
  37. package/fesm2015/mtxCore.js.map +1 -1
  38. package/fesm2015/mtxDatetimepicker.js +5 -0
  39. package/fesm2015/mtxDatetimepicker.js.map +1 -1
  40. package/fesm2015/mtxFormGroup.js +1 -1
  41. package/fesm2015/mtxFormGroup.js.map +1 -1
  42. package/fesm2015/mtxGrid.js +51 -50
  43. package/fesm2015/mtxGrid.js.map +1 -1
  44. package/fesm2015/mtxPopover.js +526 -351
  45. package/fesm2015/mtxPopover.js.map +1 -1
  46. package/fesm2015/mtxSelect.js +169 -92
  47. package/fesm2015/mtxSelect.js.map +1 -1
  48. package/form-group/mtxFormGroup.metadata.json +1 -1
  49. package/grid/cell.component.d.ts +5 -8
  50. package/grid/column-menu.component.d.ts +3 -5
  51. package/grid/grid.component.d.ts +6 -4
  52. package/grid/mtxGrid.metadata.json +1 -1
  53. package/package.json +1 -1
  54. package/popover/mtxPopover.metadata.json +1 -1
  55. package/popover/popover-animations.d.ts +1 -1
  56. package/popover/popover-content.d.ts +38 -0
  57. package/popover/popover-interfaces.d.ts +37 -31
  58. package/popover/popover-target.d.ts +2 -2
  59. package/popover/popover-trigger.d.ts +65 -60
  60. package/popover/popover-types.d.ts +6 -1
  61. package/popover/popover.d.ts +97 -69
  62. package/popover/popover.scss +2 -0
  63. package/popover/public-api.d.ts +1 -0
  64. package/select/mtxSelect.metadata.json +1 -1
  65. package/select/option.component.d.ts +7 -6
  66. package/select/select.component.d.ts +59 -20
@@ -8,20 +8,16 @@ export class MtxGridCellComponent {
8
8
  this._dataGridSrv = _dataGridSrv;
9
9
  /** Row data */
10
10
  this.rowData = {};
11
- /** All data */
11
+ /** Table data */
12
12
  this.data = [];
13
13
  /** Whether show summary */
14
14
  this.summary = false;
15
+ /** Placeholder for the empty value (`null`, `''`, `[]`) */
16
+ this.placeholder = '--';
15
17
  }
16
18
  get _colValue() {
17
19
  return this._dataGridSrv.getCellValue(this.rowData, this.colDef);
18
20
  }
19
- _isString(fn) {
20
- return Object.prototype.toString.call(fn) === '[object String]';
21
- }
22
- _isFunction(fn) {
23
- return Object.prototype.toString.call(fn) === '[object Function]';
24
- }
25
21
  _isEmptyValue(value) {
26
22
  return value == null || value.toString() === '';
27
23
  }
@@ -29,7 +25,7 @@ export class MtxGridCellComponent {
29
25
  return /<\/?[a-z][\s\S]*>/i.test(value);
30
26
  }
31
27
  _getText(value) {
32
- return this._isEmptyValue(value) ? '--' : value;
28
+ return value === undefined ? '' : this._isEmptyValue(value) ? this.placeholder : value;
33
29
  }
34
30
  _getTooltip(value) {
35
31
  return this._isEmptyValue(value) ? '' : value;
@@ -38,34 +34,37 @@ export class MtxGridCellComponent {
38
34
  return this._isContainHTML(value) || this._isEmptyValue(value) ? '' : value;
39
35
  }
40
36
  _formatSummary(data, colDef) {
41
- if (this._isString(colDef.summary)) {
37
+ if (typeof colDef.summary === 'string') {
42
38
  return colDef.summary;
43
39
  }
44
- else if (this._isFunction(colDef.summary)) {
40
+ else if (typeof colDef.summary === 'function') {
45
41
  return colDef.summary(this._dataGridSrv.getColData(data, colDef), colDef);
46
42
  }
47
43
  }
48
- _handleActionConfirm(event, title, description = '', okColor = 'primary', okText = 'OK', closeColor, closeText = 'CLOSE', fn, data) {
49
- event.preventDefault();
50
- event.stopPropagation();
51
- this._dialog.open({
52
- title,
53
- description,
54
- buttons: [
55
- {
56
- color: okColor,
57
- text: okText,
58
- onClick: () => (fn ? fn(data) : {}),
59
- },
60
- { color: closeColor, text: closeText, onClick: () => { } },
61
- ],
62
- });
63
- }
64
44
  _handleActionClick(event, btn, rowData) {
45
+ var _a;
65
46
  event.preventDefault();
66
47
  event.stopPropagation();
67
- if (btn.click) {
68
- btn.click(rowData);
48
+ if (btn.pop) {
49
+ this._dialog.open({
50
+ title: btn.popTitle,
51
+ description: btn.popDescription,
52
+ buttons: [
53
+ {
54
+ color: btn.popOkColor || 'primary',
55
+ text: btn.popOkText || 'OK',
56
+ onClick: () => { var _a; return ((_a = btn.click) === null || _a === void 0 ? void 0 : _a.call(btn, rowData)) || {}; },
57
+ },
58
+ {
59
+ color: btn.popCloseColor,
60
+ text: btn.popCloseText || 'CLOSE',
61
+ onClick: () => { },
62
+ },
63
+ ],
64
+ });
65
+ }
66
+ else {
67
+ (_a = btn.click) === null || _a === void 0 ? void 0 : _a.call(btn, rowData);
69
68
  }
70
69
  }
71
70
  /** Preview enlarged image */
@@ -81,7 +80,7 @@ export class MtxGridCellComponent {
81
80
  title: imgs.length > 1,
82
81
  footerToolbar,
83
82
  };
84
- const viewer = new PhotoViewer(imgs, options);
83
+ const photoviewer = new PhotoViewer(imgs, options);
85
84
  }
86
85
  }
87
86
  /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
@@ -89,7 +88,7 @@ MtxGridCellComponent.decorators = [
89
88
  { type: Component, args: [{
90
89
  selector: 'mtx-grid-cell',
91
90
  exportAs: 'mtxGridCell',
92
- template: "<span *ngIf=\"summary; else customCellFormattingTpl\"\r\n [title]=\"_getFormatterTooltip(_formatSummary(data, colDef))\"\r\n [innerHTML]=\"_getText(_formatSummary(data, colDef))\">\r\n</span>\r\n\r\n<!-- Custom formatting -->\r\n<ng-template #customCellFormattingTpl>\r\n <span *ngIf=\"colDef.formatter; else defaultCellFormattingTpl\"\r\n [title]=\"_getFormatterTooltip(colDef.formatter(rowData, colDef))\"\r\n [innerHTML]=\"_getText(colDef.formatter(rowData, colDef))\">\r\n </span>\r\n</ng-template>\r\n\r\n<!-- Default formatting -->\r\n<ng-template #defaultCellFormattingTpl>\r\n <ng-container [ngSwitch]=\"colDef.type\">\r\n <!-- Tag -->\r\n <ng-container *ngSwitchCase=\"'tag'\">\r\n <mat-chip-list *ngIf=\"colDef.tag && colDef.tag[_colValue]; else tagEmptyTpl\">\r\n <mat-chip color=\"primary\" [ngClass]=\"['bg-' + colDef.tag[_colValue].color]\">\r\n {{colDef.tag[_colValue].text}}\r\n </mat-chip>\r\n </mat-chip-list>\r\n <ng-template #tagEmptyTpl>{{_colValue}}</ng-template>\r\n </ng-container>\r\n <!-- Buttons -->\r\n <ng-container *ngSwitchCase=\"'button'\">\r\n <ng-container *ngFor=\"let btn of colDef.buttons;\">\r\n <ng-container *ngIf=\"!btn.iif || btn.iif(rowData)\">\r\n <ng-container *ngIf=\"btn.pop; else btnDefaultTpl\">\r\n <button [ngClass]=\"['mtx-grid-action-button', btn.class||'']\"\r\n *ngIf=\"btn.type==='basic'\"\r\n mat-button\r\n [color]=\"btn.color || 'primary'\"\r\n [disabled]=\"btn.disabled\"\r\n [matTooltip]=\"btn.tooltip | toObservable | async\"\r\n (click)=\"_handleActionConfirm($event, btn.popTitle!, btn.popDescription,\r\n btn.popOkColor, btn.popOkText,\r\n btn.popCloseColor, btn.popCloseText,\r\n btn.click, rowData)\">\r\n <mat-icon class=\"mtx-grid-icon\" *ngIf=\"btn.icon\">{{btn.icon}}</mat-icon>\r\n <span>{{btn.text | toObservable | async}}</span>\r\n </button>\r\n <button [ngClass]=\"['mtx-grid-action-button', btn.class||'']\"\r\n *ngIf=\"!btn.type || btn.type==='icon'\"\r\n mat-icon-button\r\n [color]=\"btn.color || 'primary'\"\r\n [disabled]=\"btn.disabled\"\r\n [matTooltip]=\"btn.tooltip | toObservable | async\"\r\n (click)=\"_handleActionConfirm($event, btn.popTitle!, btn.popDescription,\r\n btn.popOkColor, btn.popOkText,\r\n btn.popCloseColor, btn.popCloseText,\r\n btn.click, rowData)\">\r\n <mat-icon class=\"mtx-grid-icon\">{{btn.icon}}</mat-icon>\r\n </button>\r\n </ng-container>\r\n <ng-template #btnDefaultTpl>\r\n <button [ngClass]=\"['mtx-grid-action-button', btn.class||'']\"\r\n *ngIf=\"btn.type==='basic'\"\r\n mat-button\r\n [color]=\"btn.color || 'primary'\"\r\n [disabled]=\"btn.disabled\"\r\n [matTooltip]=\"btn.tooltip | toObservable | async\"\r\n (click)=\"_handleActionClick($event, btn, rowData)\">\r\n <mat-icon class=\"mtx-grid-icon\" *ngIf=\"btn.icon\">{{btn.icon}}</mat-icon>\r\n <span>{{btn.text | toObservable | async}}</span>\r\n </button>\r\n <button [ngClass]=\"['mtx-grid-action-button', btn.class||'']\"\r\n *ngIf=\"!btn.type || btn.type==='icon'\"\r\n mat-icon-button\r\n [color]=\"btn.color || 'primary'\"\r\n [disabled]=\"btn.disabled\"\r\n [matTooltip]=\"btn.tooltip | toObservable | async\"\r\n (click)=\"_handleActionClick($event, btn, rowData)\">\r\n <mat-icon class=\"mtx-grid-icon\">{{btn.icon}}</mat-icon>\r\n </button>\r\n </ng-template>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <!-- Link -->\r\n <ng-container *ngSwitchCase=\"'link'\">\r\n <a [href]=\"_colValue\" target=\"_blank\">{{_colValue}}</a>\r\n </ng-container>\r\n <!-- Image -->\r\n <ng-container *ngSwitchCase=\"'image'\">\r\n <img class=\"mtx-grid-img\" [src]=\"_colValue\" (click)=\"_handleImagePreview(_colValue)\">\r\n </ng-container>\r\n <!-- Boolean -->\r\n <ng-container *ngSwitchCase=\"'boolean'\">\r\n <span [title]=\"_getTooltip(_colValue)\">{{_getText(_colValue)}}</span>\r\n </ng-container>\r\n <!-- Number -->\r\n <ng-container *ngSwitchCase=\"'number'\">\r\n <span\r\n [title]=\"_getTooltip(_colValue | number: colDef.typeParameter?.digitsInfo : colDef.typeParameter?.locale)\">\r\n {{_getText(_colValue | number: colDef.typeParameter?.digitsInfo :\r\n colDef.typeParameter?.locale)}}\r\n </span>\r\n </ng-container>\r\n <!-- Currency -->\r\n <ng-container *ngSwitchCase=\"'currency'\">\r\n <span\r\n [title]=\"_getTooltip(_colValue | currency: colDef.typeParameter?.currencyCode : colDef.typeParameter?.display : colDef.typeParameter?.digitsInfo : colDef.typeParameter?.locale)\">\r\n {{_getText(_colValue | currency: colDef.typeParameter?.currencyCode :\r\n colDef.typeParameter?.display : colDef.typeParameter?.digitsInfo :\r\n colDef.typeParameter?.locale)}}\r\n </span>\r\n </ng-container>\r\n <!-- Percent -->\r\n <ng-container *ngSwitchCase=\"'percent'\">\r\n <span\r\n [title]=\"_getTooltip(_colValue | percent: colDef.typeParameter?.digitsInfo : colDef.typeParameter?.locale)\">\r\n {{_getText(_colValue | percent: colDef.typeParameter?.digitsInfo :\r\n colDef.typeParameter?.locale)}}\r\n </span>\r\n </ng-container>\r\n <!-- Date -->\r\n <ng-container *ngSwitchCase=\"'date'\">\r\n <span\r\n [title]=\"_getTooltip(_colValue | date: colDef.typeParameter?.format : colDef.typeParameter?.timezone : colDef.typeParameter?.locale)\">\r\n {{_getText(_colValue | date: colDef.typeParameter?.format : colDef.typeParameter?.timezone :\r\n colDef.typeParameter?.locale)}}\r\n </span>\r\n </ng-container>\r\n <!-- Default -->\r\n <ng-container *ngSwitchDefault>\r\n <span [title]=\"_getTooltip(_colValue)\">{{_getText(_colValue)}}</span>\r\n </ng-container>\r\n </ng-container>\r\n</ng-template>\r\n",
91
+ template: "<span *ngIf=\"summary; else customCellFormattingTpl\"\r\n [title]=\"_getFormatterTooltip(_formatSummary(data, colDef))\"\r\n [innerHTML]=\"_getText(_formatSummary(data, colDef))\">\r\n</span>\r\n\r\n<!-- Custom formatting -->\r\n<ng-template #customCellFormattingTpl>\r\n <span *ngIf=\"colDef.formatter; else defaultCellFormattingTpl\"\r\n [title]=\"_getFormatterTooltip(colDef.formatter(rowData, colDef))\"\r\n [innerHTML]=\"_getText(colDef.formatter(rowData, colDef))\">\r\n </span>\r\n</ng-template>\r\n\r\n<!-- Default formatting -->\r\n<ng-template #defaultCellFormattingTpl>\r\n <ng-container [ngSwitch]=\"colDef.type\">\r\n <!-- Tag -->\r\n <ng-container *ngSwitchCase=\"'tag'\">\r\n <mat-chip-list *ngIf=\"colDef.tag && colDef.tag[_colValue]; else tagEmptyTpl\">\r\n <mat-chip color=\"primary\" [ngClass]=\"['bg-' + colDef.tag[_colValue].color]\">\r\n {{colDef.tag[_colValue].text}}\r\n </mat-chip>\r\n </mat-chip-list>\r\n <ng-template #tagEmptyTpl>{{_colValue}}</ng-template>\r\n </ng-container>\r\n <!-- Buttons -->\r\n <ng-container *ngSwitchCase=\"'button'\">\r\n <ng-container *ngFor=\"let btn of colDef.buttons;\">\r\n <ng-container *ngIf=\"!btn.iif || btn.iif(rowData)\">\r\n <button [ngClass]=\"['mtx-grid-action-button', btn.class||'']\"\r\n *ngIf=\"btn.type==='basic'\"\r\n mat-button\r\n [color]=\"btn.color || 'primary'\"\r\n [disabled]=\"btn.disabled\"\r\n [matTooltip]=\"btn.tooltip | toObservable | async\"\r\n (click)=\"_handleActionClick($event, btn, rowData)\">\r\n <mat-icon class=\"mtx-grid-icon\" *ngIf=\"btn.icon\">{{btn.icon}}</mat-icon>\r\n <span>{{btn.text | toObservable | async}}</span>\r\n </button>\r\n <button [ngClass]=\"['mtx-grid-action-button', btn.class||'']\"\r\n *ngIf=\"!btn.type || btn.type==='icon'\"\r\n mat-icon-button\r\n [color]=\"btn.color || 'primary'\"\r\n [disabled]=\"btn.disabled\"\r\n [matTooltip]=\"btn.tooltip | toObservable | async\"\r\n (click)=\"_handleActionClick($event, btn, rowData)\">\r\n <mat-icon class=\"mtx-grid-icon\">{{btn.icon}}</mat-icon>\r\n </button>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <!-- Link -->\r\n <ng-container *ngSwitchCase=\"'link'\">\r\n <a [href]=\"_colValue\" target=\"_blank\">{{_colValue}}</a>\r\n </ng-container>\r\n <!-- Image -->\r\n <ng-container *ngSwitchCase=\"'image'\">\r\n <img class=\"mtx-grid-img\" [src]=\"_colValue\" (click)=\"_handleImagePreview(_colValue)\">\r\n </ng-container>\r\n <!-- Boolean -->\r\n <ng-container *ngSwitchCase=\"'boolean'\">\r\n <span [title]=\"_getTooltip(_colValue)\">{{_getText(_colValue)}}</span>\r\n </ng-container>\r\n <!-- Number -->\r\n <ng-container *ngSwitchCase=\"'number'\">\r\n <span [title]=\"_getTooltip(_colValue | number: colDef.typeParameter?.digitsInfo :\r\n colDef.typeParameter?.locale)\">\r\n {{_getText(_colValue | number: colDef.typeParameter?.digitsInfo :\r\n colDef.typeParameter?.locale)}}\r\n </span>\r\n </ng-container>\r\n <!-- Currency -->\r\n <ng-container *ngSwitchCase=\"'currency'\">\r\n <span [title]=\"_getTooltip(_colValue | currency: colDef.typeParameter?.currencyCode :\r\n colDef.typeParameter?.display :\r\n colDef.typeParameter?.digitsInfo :\r\n colDef.typeParameter?.locale)\">\r\n {{_getText(_colValue | currency: colDef.typeParameter?.currencyCode :\r\n colDef.typeParameter?.display :\r\n colDef.typeParameter?.digitsInfo :\r\n colDef.typeParameter?.locale)}}\r\n </span>\r\n </ng-container>\r\n <!-- Percent -->\r\n <ng-container *ngSwitchCase=\"'percent'\">\r\n <span [title]=\"_getTooltip(_colValue | percent: colDef.typeParameter?.digitsInfo :\r\n colDef.typeParameter?.locale)\">\r\n {{_getText(_colValue | percent: colDef.typeParameter?.digitsInfo :\r\n colDef.typeParameter?.locale)}}\r\n </span>\r\n </ng-container>\r\n <!-- Date -->\r\n <ng-container *ngSwitchCase=\"'date'\">\r\n <span [title]=\"_getTooltip(_colValue | date: colDef.typeParameter?.format :\r\n colDef.typeParameter?.timezone :\r\n colDef.typeParameter?.locale)\">\r\n {{_getText(_colValue | date: colDef.typeParameter?.format :\r\n colDef.typeParameter?.timezone :\r\n colDef.typeParameter?.locale)}}\r\n </span>\r\n </ng-container>\r\n <!-- Default -->\r\n <ng-container *ngSwitchDefault>\r\n <span [title]=\"_getTooltip(_colValue)\">{{_getText(_colValue)}}</span>\r\n </ng-container>\r\n </ng-container>\r\n</ng-template>\r\n",
93
92
  encapsulation: ViewEncapsulation.None,
94
93
  styles: [".mtx-grid-img{display:block;width:30px;border-radius:4px;cursor:pointer}\n"]
95
94
  },] }
@@ -110,6 +109,7 @@ MtxGridCellComponent.propDecorators = {
110
109
  rowData: [{ type: Input }],
111
110
  colDef: [{ type: Input }],
112
111
  data: [{ type: Input }],
113
- summary: [{ type: Input }]
112
+ summary: [{ type: Input }],
113
+ placeholder: [{ type: Input }]
114
114
  };
115
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9leHRlbnNpb25zL2dyaWQvY2VsbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFcEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBSXpELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRCxPQUFPLFdBQVcsTUFBTSxhQUFhLENBQUM7QUFTdEMsTUFBTSxPQUFPLG9CQUFvQjtJQXdEL0IsWUFBb0IsT0FBa0IsRUFBVSxZQUE0QjtRQUF4RCxZQUFPLEdBQVAsT0FBTyxDQUFXO1FBQVUsaUJBQVksR0FBWixZQUFZLENBQWdCO1FBdkQ1RSxlQUFlO1FBQ04sWUFBTyxHQUFHLEVBQUUsQ0FBQztRQUt0QixlQUFlO1FBQ04sU0FBSSxHQUFVLEVBQUUsQ0FBQztRQUUxQiwyQkFBMkI7UUFDbEIsWUFBTyxHQUFHLEtBQUssQ0FBQztJQTZDc0QsQ0FBQztJQTNDaEYsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQsU0FBUyxDQUFDLEVBQU87UUFDZixPQUFPLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxpQkFBaUIsQ0FBQztJQUNsRSxDQUFDO0lBRUQsV0FBVyxDQUFDLEVBQU87UUFDakIsT0FBTyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssbUJBQW1CLENBQUM7SUFDcEUsQ0FBQztJQUVELGFBQWEsQ0FB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LEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ2pELENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxhQUFhLEdBQ2pCLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQztZQUNiLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLFlBQVksQ0FBQztZQUNsRixDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFFdkUsTUFBTSxPQUFPLEdBQXdCO1lBQ25DLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUM7WUFDdEIsYUFBYTtTQUNkLENBQUM7UUFFRixNQUFNLE1BQU0sR0FBRyxJQUFJLFdBQVcsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDaEQsQ0FBQzs7OztZQXpIRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGVBQWU7Z0JBQ3pCLFFBQVEsRUFBRSxhQUFhO2dCQUN2QixvdE5BQW9DO2dCQUVwQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTs7YUFDdEM7Ozs7Ozs7Ozs7WUFiUSxTQUFTO1lBSVQsY0FBYzs7OztzQkFZcEIsS0FBSztxQkFHTCxLQUFLO21CQUdMLEtBQUs7c0JBR0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaGVtZVBhbGV0dGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IE10eERpYWxvZyB9IGZyb20gJ0BuZy1tYXRlcm8vZXh0ZW5zaW9ucy9kaWFsb2cnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBNdHhHcmlkQ29sdW1uLCBNdHhHcmlkQ29sdW1uQnV0dG9uIH0gZnJvbSAnLi9ncmlkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBNdHhHcmlkU2VydmljZSB9IGZyb20gJy4vZ3JpZC5zZXJ2aWNlJztcbmltcG9ydCBQaG90b1ZpZXdlciBmcm9tICdwaG90b3ZpZXdlcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ210eC1ncmlkLWNlbGwnLFxuICBleHBvcnRBczogJ210eEdyaWRDZWxsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NlbGwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jZWxsLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIE10eEdyaWRDZWxsQ29tcG9uZW50IHtcbiAgLyoqIFJvdyBkYXRhICovXG4gIEBJbnB1dCgpIHJvd0RhdGEgPSB7fTtcblxuICAvKiogQ29sdW1uIGRlZmluaXRpb24gKi9cbiAgQElucHV0KCkgY29sRGVmITogTXR4R3JpZENvbHVtbjtcblxuICAvKiogQWxsIGRhdGEgKi9cbiAgQElucHV0KCkgZGF0YTogYW55W10gPSBbXTtcblxuICAvKiogV2hldGhlciBzaG93IHN1bW1hcnkgKi9cbiAgQElucHV0KCkgc3VtbWFyeSA9IGZhbHNlO1xuXG4gIGdldCBfY29sVmFsdWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2RhdGFHcmlkU3J2LmdldENlbGxWYWx1ZSh0aGlzLnJvd0RhdGEsIHRoaXMuY29sRGVmKTtcbiAgfVxuXG4gIF9pc1N0cmluZyhmbjogYW55KSB7XG4gICAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChmbikgPT09ICdbb2JqZWN0IFN0cmluZ10nO1xuICB9XG5cbiAgX2lzRnVuY3Rpb24oZm46IGFueSkge1xuICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZm4pID09PSAnW29iamVjdCBGdW5jdGlvbl0nO1xuICB9XG5cbiAgX2lzRW1wdHlWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgcmV0dXJuIHZhbHVlID09IG51bGwgfHwgdmFsdWUudG9TdHJpbmcoKSA9PT0gJyc7XG4gIH1cblxuICBfaXNDb250YWluSFRNTCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIC88XFwvP1thLXpdW1xcc1xcU10qPi9pLnRlc3QodmFsdWUpO1xuICB9XG5cbiAgX2dldFRleHQodmFsdWU6IGFueSkge1xuICAgIHJldHVybiB0aGlzLl9pc0VtcHR5VmFsdWUodmFsdWUpID8gJy0tJyA6IHZhbHVlO1xuICB9XG5cbiAgX2dldFRvb2x0aXAodmFsdWU6IGFueSkge1xuICAgIHJldHVybiB0aGlzLl9pc0VtcHR5VmFsdWUodmFsdWUpID8gJycgOiB2YWx1ZTtcbiAgfVxuXG4gIF9nZXRGb3JtYXR0ZXJUb29sdGlwKHZhbHVlOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5faXNDb250YWluSFRNTCh2YWx1ZSkgfHwgdGhpcy5faXNFbXB0eVZhbHVlKHZhbHVlKSA/ICcnIDogdmFsdWU7XG4gIH1cblxuICBfZm9ybWF0U3VtbWFyeShkYXRhOiBhbnlbXSwgY29sRGVmOiBNdHhHcmlkQ29sdW1uKSB7XG4gICAgaWYgKHRoaXMuX2lzU3RyaW5nKGNvbERlZi5zdW1tYXJ5KSkge1xuICAgICAgcmV0dXJuIGNvbERlZi5zdW1tYXJ5O1xuICAgIH0gZWxzZSBpZiAodGhpcy5faXNGdW5jdGlvbihjb2xEZWYuc3VtbWFyeSkpIHtcbiAgICAgIHJldHVybiAoY29sRGVmLnN1bW1hcnkgYXMgKGRhdGE6IGFueVtdLCBjb2xEZWY/OiBNdHhHcmlkQ29sdW1uKSA9PiB2b2lkKShcbiAgICAgICAgdGhpcy5fZGF0YUdyaWRTcnYuZ2V0Q29sRGF0YShkYXRhLCBjb2xEZWYpLFxuICAgICAgICBjb2xEZWZcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfZGlhbG9nOiBNdHhEaWFsb2csIHByaXZhdGUgX2RhdGFHcmlkU3J2OiBNdHhHcmlkU2VydmljZSkge31cblxuICBfaGFuZGxlQWN0aW9uQ29uZmlybShcbiAgICBldmVudDogTW91c2VFdmVudCxcbiAgICB0aXRsZTogc3RyaW5nIHwgT2JzZXJ2YWJsZTxzdHJpbmc+LFxuICAgIGRlc2NyaXB0aW9uOiBzdHJpbmcgfCBPYnNlcnZhYmxlPHN0cmluZz4gPSAnJyxcbiAgICBva0NvbG9yOiBUaGVtZVBhbGV0dGUgPSAncHJpbWFyeScsXG4gICAgb2tUZXh0OiBzdHJpbmcgfCBPYnNlcnZhYmxlPHN0cmluZz4gPSAnT0snLFxuICAgIGNsb3NlQ29sb3I6IFRoZW1lUGFsZXR0ZSxcbiAgICBjbG9zZVRleHQ6IHN0cmluZyB8IE9ic2VydmFibGU8c3RyaW5nPiA9ICdDTE9TRScsXG4gICAgZm4/OiAocDogYW55KSA9PiB2b2lkLFxuICAgIGRhdGE/OiBhbnlcbiAgKSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIHRoaXMuX2RpYWxvZy5vcGVuKHtcbiAgICAgIHRpdGxlLFxuICAgICAgZGVzY3JpcHRpb24sXG4gICAgICBidXR0b25zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBjb2xvcjogb2tDb2xvcixcbiAgICAgICAgICB0ZXh0OiBva1RleHQsXG4gICAgICAgICAgb25DbGljazogKCkgPT4gKGZuID8gZm4oZGF0YSkgOiB7fSksXG4gICAgICAgIH0sXG4gICAgICAgIHsgY29sb3I6IGNsb3NlQ29sb3IsIHRleHQ6IGNsb3NlVGV4dCwgb25DbGljazogKCkgPT4ge30gfSxcbiAgICAgIF0sXG4gICAgfSk7XG4gIH1cblxuICBfaGFuZGxlQWN0aW9uQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQsIGJ0bjogTXR4R3JpZENvbHVtbkJ1dHRvbiwgcm93RGF0YTogYW55KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIGlmIChidG4uY2xpY2spIHtcbiAgICAgIGJ0bi5jbGljayhyb3dEYXRhKTtcbiAgICB9XG4gIH1cblxuICAvKiogUHJldmlldyBlbmxhcmdlZCBpbWFnZSAqL1xuICBfaGFuZGxlSW1hZ2VQcmV2aWV3KHVybFN0cjogc3RyaW5nKSB7XG4gICAgY29uc3QgaW1nczogUGhvdG9WaWV3ZXIuSW1nW10gPSBbXTtcblxuICAgIHRoaXMuX2RhdGFHcmlkU3J2LnN0cjJhcnIodXJsU3RyKS5mb3JFYWNoKCh1cmwsIGluZGV4KSA9PiB7XG4gICAgICBpbWdzLnB1c2goeyB0aXRsZTogaW5kZXggKyAxICsgJycsIHNyYzogdXJsIH0pO1xuICAgIH0pO1xuXG4gICAgY29uc3QgZm9vdGVyVG9vbGJhciA9XG4gICAgICBpbWdzLmxlbmd0aCA+IDFcbiAgICAgICAgPyBbJ3pvb21JbicsICd6b29tT3V0JywgJ3ByZXYnLCAnbmV4dCcsICdyb3RhdGVSaWdodCcsICdyb3RhdGVMZWZ0JywgJ2FjdHVhbFNpemUnXVxuICAgICAgICA6IFsnem9vbUluJywgJ3pvb21PdXQnLCAncm90YXRlUmlnaHQnLCAncm90YXRlTGVmdCcsICdhY3R1YWxTaXplJ107XG5cbiAgICBjb25zdCBvcHRpb25zOiBQaG90b1ZpZXdlci5PcHRpb25zID0ge1xuICAgICAgdGl0bGU6IGltZ3MubGVuZ3RoID4gMSxcbiAgICAgIGZvb3RlclRvb2xiYXIsXG4gICAgfTtcblxuICAgIGNvbnN0IHZpZXdlciA9IG5ldyBQaG90b1ZpZXdlcihpbWdzLCBvcHRpb25zKTtcbiAgfVxufVxuIl19
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9leHRlbnNpb25zL2dyaWQvY2VsbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBR3pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRCxPQUFPLFdBQVcsTUFBTSxhQUFhLENBQUM7QUFTdEMsTUFBTSxPQUFPLG9CQUFvQjtJQW1EL0IsWUFBb0IsT0FBa0IsRUFBVSxZQUE0QjtRQUF4RCxZQUFPLEdBQVAsT0FBTyxDQUFXO1FBQVUsaUJBQVksR0FBWixZQUFZLENBQWdCO1FBbEQ1RSxlQUFlO1FBQ04sWUFBTyxHQUFRLEVBQUUsQ0FBQztRQUszQixpQkFBaUI7UUFDUixTQUFJLEdBQVUsRUFBRSxDQUFDO1FBRTFCLDJCQUEyQjtRQUNsQixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBRXpCLDJEQUEyRDtRQUNsRCxnQkFBVyxHQUFXLElBQUksQ0FBQztJQXFDMkMsQ0FBQztJQW5DaEYsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQVU7UUFDdEIsT0FBTyxLQUFLLElBQUksSUFBSSxJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDbEQsQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUFhO1FBQzFCLE9BQU8sb0JBQW9CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxRQUFRLENB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QUFFLFlBQVksQ0FBQztZQUNsRixDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFFdkUsTUFBTSxPQUFPLEdBQXdCO1lBQ25DLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUM7WUFDdEIsYUFBYTtTQUNkLENBQUM7UUFFRixNQUFNLFdBQVcsR0FBRyxJQUFJLFdBQVcsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDckQsQ0FBQzs7OztZQXpHRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGVBQWU7Z0JBQ3pCLFFBQVEsRUFBRSxhQUFhO2dCQUN2QixvMUpBQW9DO2dCQUVwQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTs7YUFDdEM7Ozs7Ozs7Ozs7WUFaUSxTQUFTO1lBR1QsY0FBYzs7OztzQkFZcEIsS0FBSztxQkFHTCxLQUFLO21CQUdMLEtBQUs7c0JBR0wsS0FBSzswQkFHTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE10eERpYWxvZyB9IGZyb20gJ0BuZy1tYXRlcm8vZXh0ZW5zaW9ucy9kaWFsb2cnO1xuXG5pbXBvcnQgeyBNdHhHcmlkQ29sdW1uLCBNdHhHcmlkQ29sdW1uQnV0dG9uIH0gZnJvbSAnLi9ncmlkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBNdHhHcmlkU2VydmljZSB9IGZyb20gJy4vZ3JpZC5zZXJ2aWNlJztcbmltcG9ydCBQaG90b1ZpZXdlciBmcm9tICdwaG90b3ZpZXdlcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ210eC1ncmlkLWNlbGwnLFxuICBleHBvcnRBczogJ210eEdyaWRDZWxsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NlbGwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jZWxsLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIE10eEdyaWRDZWxsQ29tcG9uZW50IHtcbiAgLyoqIFJvdyBkYXRhICovXG4gIEBJbnB1dCgpIHJvd0RhdGE6IGFueSA9IHt9O1xuXG4gIC8qKiBDb2x1bW4gZGVmaW5pdGlvbiAqL1xuICBASW5wdXQoKSBjb2xEZWYhOiBNdHhHcmlkQ29sdW1uO1xuXG4gIC8qKiBUYWJsZSBkYXRhICovXG4gIEBJbnB1dCgpIGRhdGE6IGFueVtdID0gW107XG5cbiAgLyoqIFdoZXRoZXIgc2hvdyBzdW1tYXJ5ICovXG4gIEBJbnB1dCgpIHN1bW1hcnkgPSBmYWxzZTtcblxuICAvKiogUGxhY2Vob2xkZXIgZm9yIHRoZSBlbXB0eSB2YWx1ZSAoYG51bGxgLCBgJydgLCBgW11gKSAqL1xuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nID0gJy0tJztcblxuICBnZXQgX2NvbFZhbHVlKCkge1xuICAgIHJldHVybiB0aGlzLl9kYXRhR3JpZFNydi5nZXRDZWxsVmFsdWUodGhpcy5yb3dEYXRhLCB0aGlzLmNvbERlZik7XG4gIH1cblxuICBfaXNFbXB0eVZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICByZXR1cm4gdmFsdWUgPT0gbnVsbCB8fCB2YWx1ZS50b1N0cmluZygpID09PSAnJztcbiAgfVxuXG4gIF9pc0NvbnRhaW5IVE1MKHZhbHVlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gLzxcXC8/W2Etel1bXFxzXFxTXSo+L2kudGVzdCh2YWx1ZSk7XG4gIH1cblxuICBfZ2V0VGV4dCh2YWx1ZTogYW55KSB7XG4gICAgcmV0dXJuIHZhbHVlID09PSB1bmRlZmluZWQgPyAnJyA6IHRoaXMuX2lzRW1wdHlWYWx1ZSh2YWx1ZSkgPyB0aGlzLnBsYWNlaG9sZGVyIDogdmFsdWU7XG4gIH1cblxuICBfZ2V0VG9vbHRpcCh2YWx1ZTogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMuX2lzRW1wdHlWYWx1ZSh2YWx1ZSkgPyAnJyA6IHZhbHVlO1xuICB9XG5cbiAgX2dldEZvcm1hdHRlclRvb2x0aXAodmFsdWU6IGFueSkge1xuICAgIHJldHVybiB0aGlzLl9pc0NvbnRhaW5IVE1MKHZhbHVlKSB8fCB0aGlzLl9pc0VtcHR5VmFsdWUodmFsdWUpID8gJycgOiB2YWx1ZTtcbiAgfVxuXG4gIF9mb3JtYXRTdW1tYXJ5KGRhdGE6IGFueVtdLCBjb2xEZWY6IE10eEdyaWRDb2x1bW4pIHtcbiAgICBpZiAodHlwZW9mIGNvbERlZi5zdW1tYXJ5ID09PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuIGNvbERlZi5zdW1tYXJ5O1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIGNvbERlZi5zdW1tYXJ5ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm4gKGNvbERlZi5zdW1tYXJ5IGFzIChkYXRhOiBhbnlbXSwgY29sRGVmPzogTXR4R3JpZENvbHVtbikgPT4gdm9pZCkoXG4gICAgICAgIHRoaXMuX2RhdGFHcmlkU3J2LmdldENvbERhdGEoZGF0YSwgY29sRGVmKSxcbiAgICAgICAgY29sRGVmXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2RpYWxvZzogTXR4RGlhbG9nLCBwcml2YXRlIF9kYXRhR3JpZFNydjogTXR4R3JpZFNlcnZpY2UpIHt9XG5cbiAgX2hhbmRsZUFjdGlvbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50LCBidG46IE10eEdyaWRDb2x1bW5CdXR0b24sIHJvd0RhdGE6IGFueSkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICBpZiAoYnRuLnBvcCkge1xuICAgICAgdGhpcy5fZGlhbG9nLm9wZW4oe1xuICAgICAgICB0aXRsZTogYnRuLnBvcFRpdGxlLFxuICAgICAgICBkZXNjcmlwdGlvbjogYnRuLnBvcERlc2NyaXB0aW9uLFxuICAgICAgICBidXR0b25zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgY29sb3I6IGJ0bi5wb3BPa0NvbG9yIHx8ICdwcmltYXJ5JyxcbiAgICAgICAgICAgIHRleHQ6IGJ0bi5wb3BPa1RleHQgfHwgJ09LJyxcbiAgICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IGJ0bi5jbGljaz8uKHJvd0RhdGEpIHx8IHt9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgY29sb3I6IGJ0bi5wb3BDbG9zZUNvbG9yLFxuICAgICAgICAgICAgdGV4dDogYnRuLnBvcENsb3NlVGV4dCB8fCAnQ0xPU0UnLFxuICAgICAgICAgICAgb25DbGljazogKCkgPT4ge30sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBidG4uY2xpY2s/Lihyb3dEYXRhKTtcbiAgICB9XG4gIH1cblxuICAvKiogUHJldmlldyBlbmxhcmdlZCBpbWFnZSAqL1xuICBfaGFuZGxlSW1hZ2VQcmV2aWV3KHVybFN0cjogc3RyaW5nKSB7XG4gICAgY29uc3QgaW1nczogUGhvdG9WaWV3ZXIuSW1nW10gPSBbXTtcblxuICAgIHRoaXMuX2RhdGFHcmlkU3J2LnN0cjJhcnIodXJsU3RyKS5mb3JFYWNoKCh1cmwsIGluZGV4KSA9PiB7XG4gICAgICBpbWdzLnB1c2goeyB0aXRsZTogaW5kZXggKyAxICsgJycsIHNyYzogdXJsIH0pO1xuICAgIH0pO1xuXG4gICAgY29uc3QgZm9vdGVyVG9vbGJhciA9XG4gICAgICBpbWdzLmxlbmd0aCA+IDFcbiAgICAgICAgPyBbJ3pvb21JbicsICd6b29tT3V0JywgJ3ByZXYnLCAnbmV4dCcsICdyb3RhdGVSaWdodCcsICdyb3RhdGVMZWZ0JywgJ2FjdHVhbFNpemUnXVxuICAgICAgICA6IFsnem9vbUluJywgJ3pvb21PdXQnLCAncm90YXRlUmlnaHQnLCAncm90YXRlTGVmdCcsICdhY3R1YWxTaXplJ107XG5cbiAgICBjb25zdCBvcHRpb25zOiBQaG90b1ZpZXdlci5PcHRpb25zID0ge1xuICAgICAgdGl0bGU6IGltZ3MubGVuZ3RoID4gMSxcbiAgICAgIGZvb3RlclRvb2xiYXIsXG4gICAgfTtcblxuICAgIGNvbnN0IHBob3Rvdmlld2VyID0gbmV3IFBob3RvVmlld2VyKGltZ3MsIG9wdGlvbnMpO1xuICB9XG59XG4iXX0=
@@ -16,9 +16,7 @@ export class MtxGridColumnMenuComponent {
16
16
  this.headerText = 'Columns Header';
17
17
  this.showFooter = false;
18
18
  this.footerText = 'Columns Footer';
19
- this.selectionChange = new EventEmitter();
20
- this.sortChange = new EventEmitter();
21
- this.pinChange = new EventEmitter();
19
+ this.columnChange = new EventEmitter();
22
20
  this._pinOptions = [
23
21
  { label: 'Pin Left', value: 'left' },
24
22
  { label: 'Pin Right', value: 'right' },
@@ -40,17 +38,17 @@ export class MtxGridColumnMenuComponent {
40
38
  this._pinOptions = value;
41
39
  }
42
40
  }
43
- _handleDroped(event) {
44
- moveItemInArray(this.columns, event.previousIndex, event.currentIndex);
45
- this.sortChange.emit(this.columns);
41
+ _handleDroped(e) {
42
+ moveItemInArray(this.columns, e.previousIndex, e.currentIndex);
43
+ this.columnChange.emit(this.columns);
46
44
  }
47
- _handleSelection(e) {
48
- this.selectionChange.emit(this.columns);
45
+ _handleChecked(e) {
46
+ this.columnChange.emit(this.columns);
49
47
  }
50
48
  _handlePinSelect(col, val) {
51
49
  if (col.pinned != val) {
52
50
  col.pinned = val;
53
- this.pinChange.emit(this.columns);
51
+ this.columnChange.emit(this.columns);
54
52
  }
55
53
  }
56
54
  }
@@ -59,7 +57,7 @@ MtxGridColumnMenuComponent.decorators = [
59
57
  { type: Component, args: [{
60
58
  selector: 'mtx-grid-column-menu',
61
59
  exportAs: 'mtxGridColumnMenu',
62
- template: "<ng-container [ngSwitch]=\"buttonType\">\r\n <ng-container *ngSwitchCase=\"'raised'\">\r\n <button [ngClass]=\"buttonClass\" mat-raised-button [color]=\"buttonColor\"\r\n [matMenuTriggerFor]=\"menu\">\r\n <mat-icon *ngIf=\"buttonIcon\">{{buttonIcon}}</mat-icon> {{buttonText}}\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'stroked'\">\r\n <button [ngClass]=\"buttonClass\" mat-stroked-button [color]=\"buttonColor\"\r\n [matMenuTriggerFor]=\"menu\">\r\n <mat-icon *ngIf=\"buttonIcon\">{{buttonIcon}}</mat-icon> {{buttonText}}\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'flat'\">\r\n <button [ngClass]=\"buttonClass\" mat-flat-button [color]=\"buttonColor\"\r\n [matMenuTriggerFor]=\"menu\">\r\n <mat-icon *ngIf=\"buttonIcon\">{{buttonIcon}}</mat-icon> {{buttonText}}\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'icon'\">\r\n <button [ngClass]=\"buttonClass\" mat-icon-button [color]=\"buttonColor\"\r\n [matMenuTriggerFor]=\"menu\">\r\n <mat-icon *ngIf=\"buttonIcon\">{{buttonIcon}}</mat-icon>\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'fab'\">\r\n <button [ngClass]=\"buttonClass\" mat-fab [color]=\"buttonColor\" [matMenuTriggerFor]=\"menu\">\r\n <mat-icon *ngIf=\"buttonIcon\">{{buttonIcon}}</mat-icon> {{buttonText}}\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'mini-fab'\">\r\n <button [ngClass]=\"buttonClass\" mat-mini-fab [color]=\"buttonColor\"\r\n [matMenuTriggerFor]=\"menu\">\r\n <mat-icon *ngIf=\"buttonIcon\">{{buttonIcon}}</mat-icon> {{buttonText}}\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <button [ngClass]=\"buttonClass\" mat-button [color]=\"buttonColor\" [matMenuTriggerFor]=\"menu\">\r\n <mat-icon *ngIf=\"buttonIcon\">{{buttonIcon}}</mat-icon> {{buttonText}}\r\n </button>\r\n </ng-container>\r\n</ng-container>\r\n\r\n<mat-menu #menu=\"matMenu\" class=\"mtx-grid-column-menu\">\r\n <div class=\"mtx-grid-column-menu-content\"\r\n (click)=\"$event.stopPropagation()\" (keydown)=\"$event.stopPropagation()\">\r\n <div class=\"mtx-grid-column-menu-header\" *ngIf=\"showHeader\">\r\n <ng-template [ngIf]=\"headerTemplate\" [ngIfElse]=\"defaultHeaderTpl\">\r\n <ng-template [ngTemplateOutlet]=\"headerTemplate\"></ng-template>\r\n </ng-template>\r\n <ng-template #defaultHeaderTpl>{{headerText}}</ng-template>\r\n </div>\r\n\r\n <div class=\"mtx-grid-column-menu-body\">\r\n <div class=\"mtx-grid-column-menu-list\" *ngIf=\"sortable\"\r\n cdkDropList (cdkDropListDropped)=\"_handleDroped($event)\">\r\n <div class=\"mtx-grid-column-menu-item\" *ngFor=\"let col of columns\"\r\n cdkDrag [cdkDragDisabled]=\"selectableChecked === 'show'? !col.show : col.hide\">\r\n <svg class=\"mtx-grid-icon mtx-grid-column-drag-handle-icon\" viewBox=\"0 0 24 24\"\r\n width=\"24px\" height=\"24px\" fill=\"currentColor\" focusable=\"false\">\r\n <path\r\n d=\"M7,19V17H9V19H7M11,19V17H13V19H11M15,19V17H17V19H15M7,15V13H9V15H7M11,15V13H13V15H11M15,15V13H17V15H15M7,11V9H9V11H7M11,11V9H13V11H11M15,11V9H17V11H15M7,7V5H9V7H7M11,7V5H13V7H11M15,7V5H17V7H15Z\">\r\n </path>\r\n </svg>\r\n <ng-template [ngTemplateOutlet]=\"checkboxList\"\r\n [ngTemplateOutletContext]=\"{ $implicit: col }\">\r\n </ng-template>\r\n </div>\r\n </div>\r\n\r\n <div class=\"mtx-grid-column-menu-list\" *ngIf=\"!sortable\">\r\n <div class=\"mtx-grid-column-menu-item\" *ngFor=\"let col of columns\">\r\n <ng-template [ngTemplateOutlet]=\"checkboxList\"\r\n [ngTemplateOutletContext]=\"{ $implicit: col }\">\r\n </ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"mtx-grid-column-menu-footer\" *ngIf=\"showFooter\">\r\n <ng-template [ngIf]=\"footerTemplate\" [ngIfElse]=\"defaultFooterTpl\">\r\n <ng-template [ngTemplateOutlet]=\"footerTemplate\"></ng-template>\r\n </ng-template>\r\n <ng-template #defaultFooterTpl>{{footerText}}</ng-template>\r\n </div>\r\n </div>\r\n</mat-menu>\r\n\r\n<ng-template #checkboxList let-col>\r\n <ng-container *ngIf=\"pinnable\">\r\n <button class=\"mtx-grid-column-pin-button\" mat-icon-button [matMenuTriggerFor]=\"pinList\">\r\n <svg class=\"mtx-grid-icon mtx-grid-column-pin-icon\" *ngIf=\"col.pinned\"\r\n viewBox=\"0 0 24 24\" width=\"24px\" height=\"24px\" fill=\"currentColor\" focusable=\"false\">\r\n <path d=\"M16,12V4H17V2H7V4H8V12L6,14V16H11.2V22H12.8V16H18V14L16,12Z\" />\r\n </svg>\r\n <svg class=\"mtx-grid-icon mtx-grid-column-pin-off-icon\" *ngIf=\"!col.pinned\"\r\n viewBox=\"0 0 24 24\" width=\"24px\" height=\"24px\" fill=\"currentColor\" focusable=\"false\">\r\n <path\r\n d=\"M2,5.27L3.28,4L20,20.72L18.73,22L12.8,16.07V22H11.2V16H6V14L8,12V11.27L2,5.27M16,12L18,14V16H17.82L8,6.18V4H7V2H17V4H16V12Z\" />\r\n </svg>\r\n </button>\r\n <mat-menu #pinList=\"matMenu\" class=\"mtx-grid-column-pin-list\">\r\n <button class=\"mtx-grid-column-pin-option\" *ngFor=\"let item of pinOptions\" mat-menu-item\r\n (click)=\"_handlePinSelect(col, item.value)\">\r\n <span class=\"mtx-grid-column-pin-option-placeholder\">\r\n <!-- eslint-disable-next-line @angular-eslint/template/eqeqeq -->\r\n <svg class=\"mtx-grid-icon mtx-grid-column-pin-check-icon\" *ngIf=\"col.pinned==item.value\"\r\n viewBox=\"0 0 24 24\" width=\"24px\" height=\"24px\" fill=\"currentColor\" focusable=\"false\">\r\n <path d=\"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z\" />\r\n </svg>\r\n </span>\r\n <span class=\"mtx-grid-column-pin-option-text\">{{item.label | toObservable | async}}</span>\r\n </button>\r\n </mat-menu>\r\n </ng-container>\r\n\r\n <mat-checkbox class=\"mtx-grid-column-menu-item-label\" *ngIf=\"selectable\"\r\n [(ngModel)]=\"col[selectableChecked]\" [disabled]=\"col.disabled\"\r\n (change)=\"_handleSelection($event)\">\r\n {{col.header | toObservable | async}}\r\n </mat-checkbox>\r\n <span class=\"mtx-grid-column-menu-item-label\" *ngIf=\"!selectable\">\r\n {{col.header | toObservable | async}}\r\n </span>\r\n</ng-template>\r\n",
60
+ template: "<ng-container [ngSwitch]=\"buttonType\">\r\n <ng-container *ngSwitchCase=\"'raised'\">\r\n <button [ngClass]=\"buttonClass\" mat-raised-button [color]=\"buttonColor\"\r\n [matMenuTriggerFor]=\"menu\">\r\n <mat-icon *ngIf=\"buttonIcon\">{{buttonIcon}}</mat-icon> {{buttonText}}\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'stroked'\">\r\n <button [ngClass]=\"buttonClass\" mat-stroked-button [color]=\"buttonColor\"\r\n [matMenuTriggerFor]=\"menu\">\r\n <mat-icon *ngIf=\"buttonIcon\">{{buttonIcon}}</mat-icon> {{buttonText}}\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'flat'\">\r\n <button [ngClass]=\"buttonClass\" mat-flat-button [color]=\"buttonColor\"\r\n [matMenuTriggerFor]=\"menu\">\r\n <mat-icon *ngIf=\"buttonIcon\">{{buttonIcon}}</mat-icon> {{buttonText}}\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'icon'\">\r\n <button [ngClass]=\"buttonClass\" mat-icon-button [color]=\"buttonColor\"\r\n [matMenuTriggerFor]=\"menu\">\r\n <mat-icon *ngIf=\"buttonIcon\">{{buttonIcon}}</mat-icon>\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'fab'\">\r\n <button [ngClass]=\"buttonClass\" mat-fab [color]=\"buttonColor\" [matMenuTriggerFor]=\"menu\">\r\n <mat-icon *ngIf=\"buttonIcon\">{{buttonIcon}}</mat-icon> {{buttonText}}\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'mini-fab'\">\r\n <button [ngClass]=\"buttonClass\" mat-mini-fab [color]=\"buttonColor\"\r\n [matMenuTriggerFor]=\"menu\">\r\n <mat-icon *ngIf=\"buttonIcon\">{{buttonIcon}}</mat-icon> {{buttonText}}\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <button [ngClass]=\"buttonClass\" mat-button [color]=\"buttonColor\" [matMenuTriggerFor]=\"menu\">\r\n <mat-icon *ngIf=\"buttonIcon\">{{buttonIcon}}</mat-icon> {{buttonText}}\r\n </button>\r\n </ng-container>\r\n</ng-container>\r\n\r\n<mat-menu #menu=\"matMenu\" class=\"mtx-grid-column-menu\">\r\n <div class=\"mtx-grid-column-menu-content\"\r\n (click)=\"$event.stopPropagation()\" (keydown)=\"$event.stopPropagation()\">\r\n <div class=\"mtx-grid-column-menu-header\" *ngIf=\"showHeader\">\r\n <ng-template [ngIf]=\"headerTemplate\" [ngIfElse]=\"defaultHeaderTpl\">\r\n <ng-template [ngTemplateOutlet]=\"headerTemplate\"></ng-template>\r\n </ng-template>\r\n <ng-template #defaultHeaderTpl>{{headerText}}</ng-template>\r\n </div>\r\n\r\n <div class=\"mtx-grid-column-menu-body\">\r\n <div class=\"mtx-grid-column-menu-list\" *ngIf=\"sortable\"\r\n cdkDropList (cdkDropListDropped)=\"_handleDroped($event)\">\r\n <div class=\"mtx-grid-column-menu-item\" *ngFor=\"let col of columns\"\r\n cdkDrag [cdkDragDisabled]=\"selectableChecked === 'show'? !col.show : col.hide\">\r\n <svg class=\"mtx-grid-icon mtx-grid-column-drag-handle-icon\" viewBox=\"0 0 24 24\"\r\n width=\"24px\" height=\"24px\" fill=\"currentColor\" focusable=\"false\">\r\n <path\r\n d=\"M7,19V17H9V19H7M11,19V17H13V19H11M15,19V17H17V19H15M7,15V13H9V15H7M11,15V13H13V15H11M15,15V13H17V15H15M7,11V9H9V11H7M11,11V9H13V11H11M15,11V9H17V11H15M7,7V5H9V7H7M11,7V5H13V7H11M15,7V5H17V7H15Z\">\r\n </path>\r\n </svg>\r\n <ng-template [ngTemplateOutlet]=\"checkboxList\"\r\n [ngTemplateOutletContext]=\"{ $implicit: col }\">\r\n </ng-template>\r\n </div>\r\n </div>\r\n\r\n <div class=\"mtx-grid-column-menu-list\" *ngIf=\"!sortable\">\r\n <div class=\"mtx-grid-column-menu-item\" *ngFor=\"let col of columns\">\r\n <ng-template [ngTemplateOutlet]=\"checkboxList\"\r\n [ngTemplateOutletContext]=\"{ $implicit: col }\">\r\n </ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"mtx-grid-column-menu-footer\" *ngIf=\"showFooter\">\r\n <ng-template [ngIf]=\"footerTemplate\" [ngIfElse]=\"defaultFooterTpl\">\r\n <ng-template [ngTemplateOutlet]=\"footerTemplate\"></ng-template>\r\n </ng-template>\r\n <ng-template #defaultFooterTpl>{{footerText}}</ng-template>\r\n </div>\r\n </div>\r\n</mat-menu>\r\n\r\n<ng-template #checkboxList let-col>\r\n <ng-container *ngIf=\"pinnable\">\r\n <button class=\"mtx-grid-column-pin-button\" mat-icon-button [matMenuTriggerFor]=\"pinList\">\r\n <svg class=\"mtx-grid-icon mtx-grid-column-pin-icon\" *ngIf=\"col.pinned\"\r\n viewBox=\"0 0 24 24\" width=\"24px\" height=\"24px\" fill=\"currentColor\" focusable=\"false\">\r\n <path d=\"M16,12V4H17V2H7V4H8V12L6,14V16H11.2V22H12.8V16H18V14L16,12Z\" />\r\n </svg>\r\n <svg class=\"mtx-grid-icon mtx-grid-column-pin-off-icon\" *ngIf=\"!col.pinned\"\r\n viewBox=\"0 0 24 24\" width=\"24px\" height=\"24px\" fill=\"currentColor\" focusable=\"false\">\r\n <path\r\n d=\"M2,5.27L3.28,4L20,20.72L18.73,22L12.8,16.07V22H11.2V16H6V14L8,12V11.27L2,5.27M16,12L18,14V16H17.82L8,6.18V4H7V2H17V4H16V12Z\" />\r\n </svg>\r\n </button>\r\n <mat-menu #pinList=\"matMenu\" class=\"mtx-grid-column-pin-list\">\r\n <button class=\"mtx-grid-column-pin-option\" *ngFor=\"let item of pinOptions\" mat-menu-item\r\n (click)=\"_handlePinSelect(col, item.value)\">\r\n <span class=\"mtx-grid-column-pin-option-placeholder\">\r\n <!-- eslint-disable-next-line @angular-eslint/template/eqeqeq -->\r\n <svg class=\"mtx-grid-icon mtx-grid-column-pin-check-icon\" *ngIf=\"col.pinned==item.value\"\r\n viewBox=\"0 0 24 24\" width=\"24px\" height=\"24px\" fill=\"currentColor\" focusable=\"false\">\r\n <path d=\"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z\" />\r\n </svg>\r\n </span>\r\n <span class=\"mtx-grid-column-pin-option-text\">{{item.label | toObservable | async}}</span>\r\n </button>\r\n </mat-menu>\r\n </ng-container>\r\n\r\n <mat-checkbox class=\"mtx-grid-column-menu-item-label\" *ngIf=\"selectable\"\r\n [(ngModel)]=\"col[selectableChecked]\" [disabled]=\"col.disabled\"\r\n (change)=\"_handleChecked($event)\">\r\n {{col.header | toObservable | async}}\r\n </mat-checkbox>\r\n <span class=\"mtx-grid-column-menu-item-label\" *ngIf=\"!selectable\">\r\n {{col.header | toObservable | async}}\r\n </span>\r\n</ng-template>\r\n",
63
61
  encapsulation: ViewEncapsulation.None,
64
62
  changeDetection: ChangeDetectionStrategy.OnPush,
65
63
  styles: [".mtx-grid-column-menu .mat-menu-content{padding:0}.mtx-grid-column-menu-body{padding:8px 16px}.mtx-grid-column-menu-header,.mtx-grid-column-menu-footer{position:sticky;z-index:1;padding:8px 16px}.mtx-grid-column-menu-header{top:0}.mtx-grid-column-menu-footer{bottom:0}.mtx-grid-column-menu-list{display:block;max-width:100%}.mtx-grid-column-menu-list.cdk-drop-list-dragging .mtx-grid-column-menu-item:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}.mtx-grid-column-menu-list.cdk-drop-list .mtx-grid-column-menu-item-label{padding:0 4px}.mtx-grid-column-menu-item{display:flex;flex-direction:row;align-items:center}.mtx-grid-column-menu-item.cdk-drag-disabled .cdk-drag-handle{opacity:.35;cursor:no-drop}.mtx-grid-column-menu-item .cdk-drag-handle{cursor:move}.mtx-grid-column-menu-item.cdk-drag-preview{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.mtx-grid-column-menu-item.cdk-drag-placeholder{opacity:0}.mtx-grid-column-menu-item.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.mtx-grid-column-pin-button.mat-icon-button{width:32px;height:32px;line-height:32px}.mtx-grid-column-pin-option.mat-menu-item{display:flex;align-items:center;height:32px}.mtx-grid-column-pin-option-placeholder{display:inline-block;width:20px;height:20px;line-height:20px}.mtx-grid-column-pin-option-text{padding:0 8px}.mtx-grid-column-drag-handle-icon:hover{cursor:move}\n"]
@@ -85,9 +83,7 @@ MtxGridColumnMenuComponent.propDecorators = {
85
83
  showFooter: [{ type: Input }],
86
84
  footerText: [{ type: Input }],
87
85
  footerTemplate: [{ type: Input }],
88
- selectionChange: [{ type: Output }],
89
- sortChange: [{ type: Output }],
90
- pinChange: [{ type: Output }],
86
+ columnChange: [{ type: Output }],
91
87
  pinOptions: [{ type: Input }]
92
88
  };
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZXh0ZW5zaW9ucy9ncmlkL2NvbHVtbi1tZW51LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFDTCxpQkFBaUIsRUFDakIsdUJBQXVCLEVBQ3ZCLE1BQU0sRUFDTixZQUFZLEVBQ1osV0FBVyxFQUNYLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFdEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQWlCakUsTUFBTSxPQUFPLDBCQUEwQjtJQVJ2QztRQVlXLFlBQU8sR0FBb0IsRUFBRSxDQUFDO1FBQzlCLGVBQVUsR0FBRyxJQUFJLENBQUM7UUFDbEIsc0JBQWlCLEdBQW9CLE1BQU0sQ0FBQztRQUM1QyxhQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ2hCLGFBQVEsR0FBRyxJQUFJLENBQUM7UUFVakIsZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFFaEIsZUFBVSxHQUFzQixTQUFTLENBQUM7UUFFMUMsZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFDakIsZUFBVSxHQUFHLEVBQUUsQ0FBQztRQUVoQixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLGVBQVUsR0FBRyxnQkFBZ0IsQ0FBQztRQUU5QixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLGVBQVUsR0FBRyxnQkFBZ0IsQ0FBQztRQUc3QixvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFtQixDQUFDO1FBQ3RELGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBbUIsQ0FBQztRQUNqRCxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQW1CLENBQUM7UUFXbEQsZ0JBQVcsR0FBNkI7WUFDOUMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7WUFDcEMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7WUFDdEMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7U0FDakMsQ0FBQztJQWlCSixDQUFDO0lBeERDLElBQ0ksVUFBVTtRQUNaLE1BQU0sV0FBVyxHQUFHLFdBQVcsSUFBSSxDQUFDLGlCQUFpQixLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN4RixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQztJQUMzRCxDQUFDO0lBQ0QsSUFBSSxVQUFVLENBQUMsS0FBYTtRQUMxQixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztJQUMzQixDQUFDO0lBbUJELElBQ0ksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBQ0QsSUFBSSxVQUFVLENBQUMsS0FBK0I7UUFDNUMsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNwQixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztTQUMxQjtJQUNILENBQUM7SUFPRCxhQUFhLENBQUMsS0FBNEI7UUFDeEMsZUFBZSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDdkUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxDQUFvQjtRQUNuQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELGdCQUFnQixDQUFDLEdBQWtCLEVBQUUsR0FBMEI7UUFDN0QsSUFBSSxHQUFHLENBQUMsTUFBTSxJQUFJLEdBQUcsRUFBRTtZQUNyQixHQUFHLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQztZQUNqQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDbkM7SUFDSCxDQUFDOzs7O1lBekVGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsc0JBQXNCO2dCQUNoQyxRQUFRLEVBQUUsbUJBQW1CO2dCQUM3Qix3OE1BQTJDO2dCQUUzQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtnQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07O2FBQ2hEOzs7O3dCQUVFLFNBQVMsU0FBQyxNQUFNLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFOzBCQUNsQyxTQUFTLFNBQUMsY0FBYztzQkFFeEIsS0FBSzt5QkFDTCxLQUFLO2dDQUNMLEtBQUs7dUJBQ0wsS0FBSzt1QkFDTCxLQUFLO3lCQUVMLEtBQUs7eUJBVUwsS0FBSzswQkFDTCxLQUFLOzBCQUNMLEtBQUs7eUJBQ0wsS0FBSzt5QkFFTCxLQUFLO3lCQUNMLEtBQUs7NkJBQ0wsS0FBSzt5QkFDTCxLQUFLO3lCQUNMLEtBQUs7NkJBQ0wsS0FBSzs4QkFFTCxNQUFNO3lCQUNOLE1BQU07d0JBQ04sTUFBTTt5QkFFTixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDZGtEcmFnRHJvcCwgbW92ZUl0ZW1JbkFycmF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5pbXBvcnQgeyBNYXRDaGVja2JveENoYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94JztcbmltcG9ydCB7IE1hdE1lbnUsIE1hdE1lbnVUcmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XG5pbXBvcnQgeyBUaGVtZVBhbGV0dGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7XG4gIE10eEdyaWRCdXR0b25UeXBlLFxuICBNdHhHcmlkQ29sdW1uLFxuICBNdHhHcmlkQ29sdW1uUGluT3B0aW9uLFxuICBNdHhHcmlkQ29sdW1uUGluVmFsdWUsXG59IGZyb20gJy4vZ3JpZC5pbnRlcmZhY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtdHgtZ3JpZC1jb2x1bW4tbWVudScsXG4gIGV4cG9ydEFzOiAnbXR4R3JpZENvbHVtbk1lbnUnLFxuICB0ZW1wbGF0ZVVybDogJy4vY29sdW1uLW1lbnUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb2x1bW4tbWVudS5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTXR4R3JpZENvbHVtbk1lbnVDb21wb25lbnQge1xuICBAVmlld0NoaWxkKCdtZW51JywgeyBzdGF0aWM6IHRydWUgfSkgbWVudVBhbmVsITogTWF0TWVudTtcbiAgQFZpZXdDaGlsZChNYXRNZW51VHJpZ2dlcikgbWVudVRyaWdnZXIhOiBNYXRNZW51VHJpZ2dlcjtcblxuICBASW5wdXQoKSBjb2x1bW5zOiBNdHhHcmlkQ29sdW1uW10gPSBbXTtcbiAgQElucHV0KCkgc2VsZWN0YWJsZSA9IHRydWU7XG4gIEBJbnB1dCgpIHNlbGVjdGFibGVDaGVja2VkOiAnc2hvdycgfCAnaGlkZScgPSAnc2hvdyc7XG4gIEBJbnB1dCgpIHNvcnRhYmxlID0gdHJ1ZTtcbiAgQElucHV0KCkgcGlubmFibGUgPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIGdldCBidXR0b25UZXh0KCkge1xuICAgIGNvbnN0IGRlZmF1bHRUZXh0ID0gYENvbHVtbnMgJHt0aGlzLnNlbGVjdGFibGVDaGVja2VkID09PSAnc2hvdycgPyAnU2hvd24nIDogJ0hpZGRlbid9YDtcbiAgICByZXR1cm4gdGhpcy5fYnV0dG9uVGV4dCA/IHRoaXMuX2J1dHRvblRleHQgOiBkZWZhdWx0VGV4dDtcbiAgfVxuICBzZXQgYnV0dG9uVGV4dCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fYnV0dG9uVGV4dCA9IHZhbHVlO1xuICB9XG4gIHByaXZhdGUgX2J1dHRvblRleHQgPSAnJztcblxuICBASW5wdXQoKSBidXR0b25UeXBlOiBNdHhHcmlkQnV0dG9uVHlwZSA9ICdzdHJva2VkJztcbiAgQElucHV0KCkgYnV0dG9uQ29sb3I6IFRoZW1lUGFsZXR0ZTtcbiAgQElucHV0KCkgYnV0dG9uQ2xhc3MgPSAnJztcbiAgQElucHV0KCkgYnV0dG9uSWNvbiA9ICcnO1xuXG4gIEBJbnB1dCgpIHNob3dIZWFkZXIgPSBmYWxzZTtcbiAgQElucHV0KCkgaGVhZGVyVGV4dCA9ICdDb2x1bW5zIEhlYWRlcic7XG4gIEBJbnB1dCgpIGhlYWRlclRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcbiAgQElucHV0KCkgc2hvd0Zvb3RlciA9IGZhbHNlO1xuICBASW5wdXQoKSBmb290ZXJUZXh0ID0gJ0NvbHVtbnMgRm9vdGVyJztcbiAgQElucHV0KCkgZm9vdGVyVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBPdXRwdXQoKSBzZWxlY3Rpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPE10eEdyaWRDb2x1bW5bXT4oKTtcbiAgQE91dHB1dCgpIHNvcnRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPE10eEdyaWRDb2x1bW5bXT4oKTtcbiAgQE91dHB1dCgpIHBpbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8TXR4R3JpZENvbHVtbltdPigpO1xuXG4gIEBJbnB1dCgpXG4gIGdldCBwaW5PcHRpb25zKCkge1xuICAgIHJldHVybiB0aGlzLl9waW5PcHRpb25zO1xuICB9XG4gIHNldCBwaW5PcHRpb25zKHZhbHVlOiBNdHhHcmlkQ29sdW1uUGluT3B0aW9uW10pIHtcbiAgICBpZiAodmFsdWUubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5fcGluT3B0aW9ucyA9IHZhbHVlO1xuICAgIH1cbiAgfVxuICBwcml2YXRlIF9waW5PcHRpb25zOiBNdHhHcmlkQ29sdW1uUGluT3B0aW9uW10gPSBbXG4gICAgeyBsYWJlbDogJ1BpbiBMZWZ0JywgdmFsdWU6ICdsZWZ0JyB9LFxuICAgIHsgbGFiZWw6ICdQaW4gUmlnaHQnLCB2YWx1ZTogJ3JpZ2h0JyB9LFxuICAgIHsgbGFiZWw6ICdObyBQaW4nLCB2YWx1ZTogbnVsbCB9LFxuICBdO1xuXG4gIF9oYW5kbGVEcm9wZWQoZXZlbnQ6IENka0RyYWdEcm9wPHN0cmluZ1tdPikge1xuICAgIG1vdmVJdGVtSW5BcnJheSh0aGlzLmNvbHVtbnMsIGV2ZW50LnByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleCk7XG4gICAgdGhpcy5zb3J0Q2hhbmdlLmVtaXQodGhpcy5jb2x1bW5zKTtcbiAgfVxuXG4gIF9oYW5kbGVTZWxlY3Rpb24oZTogTWF0Q2hlY2tib3hDaGFuZ2UpIHtcbiAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KHRoaXMuY29sdW1ucyk7XG4gIH1cblxuICBfaGFuZGxlUGluU2VsZWN0KGNvbDogTXR4R3JpZENvbHVtbiwgdmFsOiBNdHhHcmlkQ29sdW1uUGluVmFsdWUpIHtcbiAgICBpZiAoY29sLnBpbm5lZCAhPSB2YWwpIHtcbiAgICAgIGNvbC5waW5uZWQgPSB2YWw7XG4gICAgICB0aGlzLnBpbkNoYW5nZS5lbWl0KHRoaXMuY29sdW1ucyk7XG4gICAgfVxuICB9XG59XG4iXX0=
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZXh0ZW5zaW9ucy9ncmlkL2NvbHVtbi1tZW51LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFDTCxpQkFBaUIsRUFDakIsdUJBQXVCLEVBQ3ZCLE1BQU0sRUFDTixZQUFZLEVBQ1osV0FBVyxFQUNYLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFdEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQWlCakUsTUFBTSxPQUFPLDBCQUEwQjtJQVJ2QztRQVlXLFlBQU8sR0FBb0IsRUFBRSxDQUFDO1FBQzlCLGVBQVUsR0FBRyxJQUFJLENBQUM7UUFDbEIsc0JBQWlCLEdBQW9CLE1BQU0sQ0FBQztRQUM1QyxhQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ2hCLGFBQVEsR0FBRyxJQUFJLENBQUM7UUFVakIsZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFFaEIsZUFBVSxHQUFzQixTQUFTLENBQUM7UUFFMUMsZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFDakIsZUFBVSxHQUFHLEVBQUUsQ0FBQztRQUVoQixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLGVBQVUsR0FBRyxnQkFBZ0IsQ0FBQztRQUU5QixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLGVBQVUsR0FBRyxnQkFBZ0IsQ0FBQztRQUc3QixpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFtQixDQUFDO1FBV3JELGdCQUFXLEdBQTZCO1lBQzlDLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1lBQ3BDLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO1lBQ3RDLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1NBQ2pDLENBQUM7SUFpQkosQ0FBQztJQXREQyxJQUNJLFVBQVU7UUFDWixNQUFNLFdBQVcsR0FBRyxXQUFXLElBQUksQ0FBQyxpQkFBaUIsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDeEYsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUM7SUFDM0QsQ0FBQztJQUNELElBQUksVUFBVSxDQUFDLEtBQWE7UUFDMUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7SUFDM0IsQ0FBQztJQWlCRCxJQUNJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUNELElBQUksVUFBVSxDQUFDLEtBQStCO1FBQzVDLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDcEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7U0FDMUI7SUFDSCxDQUFDO0lBT0QsYUFBYSxDQUFDLENBQXdCO1FBQ3BDLGVBQWUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQy9ELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsY0FBYyxDQUFDLENBQW9CO1FBQ2pDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsR0FBa0IsRUFBRSxHQUEwQjtRQUM3RCxJQUFJLEdBQUcsQ0FBQyxNQUFNLElBQUksR0FBRyxFQUFFO1lBQ3JCLEdBQUcsQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDO1lBQ2pCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUN0QztJQUNILENBQUM7Ozs7WUF2RUYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxzQkFBc0I7Z0JBQ2hDLFFBQVEsRUFBRSxtQkFBbUI7Z0JBQzdCLHM4TUFBMkM7Z0JBRTNDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2dCQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTs7YUFDaEQ7Ozs7d0JBRUUsU0FBUyxTQUFDLE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7MEJBQ2xDLFNBQVMsU0FBQyxjQUFjO3NCQUV4QixLQUFLO3lCQUNMLEtBQUs7Z0NBQ0wsS0FBSzt1QkFDTCxLQUFLO3VCQUNMLEtBQUs7eUJBRUwsS0FBSzt5QkFVTCxLQUFLOzBCQUNMLEtBQUs7MEJBQ0wsS0FBSzt5QkFDTCxLQUFLO3lCQUVMLEtBQUs7eUJBQ0wsS0FBSzs2QkFDTCxLQUFLO3lCQUNMLEtBQUs7eUJBQ0wsS0FBSzs2QkFDTCxLQUFLOzJCQUVMLE1BQU07eUJBRU4sS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2RrRHJhZ0Ryb3AsIG1vdmVJdGVtSW5BcnJheSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuaW1wb3J0IHsgTWF0Q2hlY2tib3hDaGFuZ2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XG5pbXBvcnQgeyBNYXRNZW51LCBNYXRNZW51VHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuaW1wb3J0IHsgVGhlbWVQYWxldHRlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQge1xuICBNdHhHcmlkQnV0dG9uVHlwZSxcbiAgTXR4R3JpZENvbHVtbixcbiAgTXR4R3JpZENvbHVtblBpbk9wdGlvbixcbiAgTXR4R3JpZENvbHVtblBpblZhbHVlLFxufSBmcm9tICcuL2dyaWQuaW50ZXJmYWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbXR4LWdyaWQtY29sdW1uLW1lbnUnLFxuICBleHBvcnRBczogJ210eEdyaWRDb2x1bW5NZW51JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbHVtbi1tZW51LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY29sdW1uLW1lbnUuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE10eEdyaWRDb2x1bW5NZW51Q29tcG9uZW50IHtcbiAgQFZpZXdDaGlsZCgnbWVudScsIHsgc3RhdGljOiB0cnVlIH0pIG1lbnVQYW5lbCE6IE1hdE1lbnU7XG4gIEBWaWV3Q2hpbGQoTWF0TWVudVRyaWdnZXIpIG1lbnVUcmlnZ2VyITogTWF0TWVudVRyaWdnZXI7XG5cbiAgQElucHV0KCkgY29sdW1uczogTXR4R3JpZENvbHVtbltdID0gW107XG4gIEBJbnB1dCgpIHNlbGVjdGFibGUgPSB0cnVlO1xuICBASW5wdXQoKSBzZWxlY3RhYmxlQ2hlY2tlZDogJ3Nob3cnIHwgJ2hpZGUnID0gJ3Nob3cnO1xuICBASW5wdXQoKSBzb3J0YWJsZSA9IHRydWU7XG4gIEBJbnB1dCgpIHBpbm5hYmxlID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBnZXQgYnV0dG9uVGV4dCgpIHtcbiAgICBjb25zdCBkZWZhdWx0VGV4dCA9IGBDb2x1bW5zICR7dGhpcy5zZWxlY3RhYmxlQ2hlY2tlZCA9PT0gJ3Nob3cnID8gJ1Nob3duJyA6ICdIaWRkZW4nfWA7XG4gICAgcmV0dXJuIHRoaXMuX2J1dHRvblRleHQgPyB0aGlzLl9idXR0b25UZXh0IDogZGVmYXVsdFRleHQ7XG4gIH1cbiAgc2V0IGJ1dHRvblRleHQodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX2J1dHRvblRleHQgPSB2YWx1ZTtcbiAgfVxuICBwcml2YXRlIF9idXR0b25UZXh0ID0gJyc7XG5cbiAgQElucHV0KCkgYnV0dG9uVHlwZTogTXR4R3JpZEJ1dHRvblR5cGUgPSAnc3Ryb2tlZCc7XG4gIEBJbnB1dCgpIGJ1dHRvbkNvbG9yOiBUaGVtZVBhbGV0dGU7XG4gIEBJbnB1dCgpIGJ1dHRvbkNsYXNzID0gJyc7XG4gIEBJbnB1dCgpIGJ1dHRvbkljb24gPSAnJztcblxuICBASW5wdXQoKSBzaG93SGVhZGVyID0gZmFsc2U7XG4gIEBJbnB1dCgpIGhlYWRlclRleHQgPSAnQ29sdW1ucyBIZWFkZXInO1xuICBASW5wdXQoKSBoZWFkZXJUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBJbnB1dCgpIHNob3dGb290ZXIgPSBmYWxzZTtcbiAgQElucHV0KCkgZm9vdGVyVGV4dCA9ICdDb2x1bW5zIEZvb3Rlcic7XG4gIEBJbnB1dCgpIGZvb3RlclRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcblxuICBAT3V0cHV0KCkgY29sdW1uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxNdHhHcmlkQ29sdW1uW10+KCk7XG5cbiAgQElucHV0KClcbiAgZ2V0IHBpbk9wdGlvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3Bpbk9wdGlvbnM7XG4gIH1cbiAgc2V0IHBpbk9wdGlvbnModmFsdWU6IE10eEdyaWRDb2x1bW5QaW5PcHRpb25bXSkge1xuICAgIGlmICh2YWx1ZS5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLl9waW5PcHRpb25zID0gdmFsdWU7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgX3Bpbk9wdGlvbnM6IE10eEdyaWRDb2x1bW5QaW5PcHRpb25bXSA9IFtcbiAgICB7IGxhYmVsOiAnUGluIExlZnQnLCB2YWx1ZTogJ2xlZnQnIH0sXG4gICAgeyBsYWJlbDogJ1BpbiBSaWdodCcsIHZhbHVlOiAncmlnaHQnIH0sXG4gICAgeyBsYWJlbDogJ05vIFBpbicsIHZhbHVlOiBudWxsIH0sXG4gIF07XG5cbiAgX2hhbmRsZURyb3BlZChlOiBDZGtEcmFnRHJvcDxzdHJpbmdbXT4pIHtcbiAgICBtb3ZlSXRlbUluQXJyYXkodGhpcy5jb2x1bW5zLCBlLnByZXZpb3VzSW5kZXgsIGUuY3VycmVudEluZGV4KTtcbiAgICB0aGlzLmNvbHVtbkNoYW5nZS5lbWl0KHRoaXMuY29sdW1ucyk7XG4gIH1cblxuICBfaGFuZGxlQ2hlY2tlZChlOiBNYXRDaGVja2JveENoYW5nZSkge1xuICAgIHRoaXMuY29sdW1uQ2hhbmdlLmVtaXQodGhpcy5jb2x1bW5zKTtcbiAgfVxuXG4gIF9oYW5kbGVQaW5TZWxlY3QoY29sOiBNdHhHcmlkQ29sdW1uLCB2YWw6IE10eEdyaWRDb2x1bW5QaW5WYWx1ZSkge1xuICAgIGlmIChjb2wucGlubmVkICE9IHZhbCkge1xuICAgICAgY29sLnBpbm5lZCA9IHZhbDtcbiAgICAgIHRoaXMuY29sdW1uQ2hhbmdlLmVtaXQodGhpcy5jb2x1bW5zKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==