@pepperi-addons/ngx-composite-lib 0.0.10-beta.2 → 0.0.10-beta.21

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 (133) hide show
  1. package/README.md +24 -24
  2. package/bundles/pepperi-addons-ngx-composite-lib-color-settings.umd.js +123 -122
  3. package/bundles/pepperi-addons-ngx-composite-lib-color-settings.umd.js.map +1 -1
  4. package/bundles/pepperi-addons-ngx-composite-lib-draggable-item.umd.js +72 -70
  5. package/bundles/pepperi-addons-ngx-composite-lib-draggable-item.umd.js.map +1 -1
  6. package/bundles/pepperi-addons-ngx-composite-lib-file-status-panel.umd.js +119 -0
  7. package/bundles/pepperi-addons-ngx-composite-lib-file-status-panel.umd.js.map +1 -0
  8. package/bundles/pepperi-addons-ngx-composite-lib-generic-list.umd.js +644 -540
  9. package/bundles/pepperi-addons-ngx-composite-lib-generic-list.umd.js.map +1 -1
  10. package/bundles/pepperi-addons-ngx-composite-lib-group-buttons-settings.umd.js +173 -173
  11. package/bundles/pepperi-addons-ngx-composite-lib-group-buttons-settings.umd.js.map +1 -1
  12. package/bundles/pepperi-addons-ngx-composite-lib-shadow-settings.umd.js +117 -117
  13. package/bundles/pepperi-addons-ngx-composite-lib-shadow-settings.umd.js.map +1 -1
  14. package/bundles/pepperi-addons-ngx-composite-lib.umd.js +72 -29
  15. package/bundles/pepperi-addons-ngx-composite-lib.umd.js.map +1 -1
  16. package/color-settings/color-settings.component.d.ts +22 -22
  17. package/color-settings/color-settings.model.d.ts +5 -5
  18. package/color-settings/color-settings.module.d.ts +12 -12
  19. package/color-settings/package.json +1 -1
  20. package/color-settings/pepperi-addons-ngx-composite-lib-color-settings.d.ts +5 -5
  21. package/color-settings/public-api.d.ts +3 -3
  22. package/core/common/index.d.ts +1 -0
  23. package/core/common/public-api.d.ts +1 -0
  24. package/core/common/services/index.d.ts +1 -0
  25. package/core/common/services/public-api.d.ts +1 -0
  26. package/core/common/services/utilities.service.d.ts +6 -0
  27. package/core/index.d.ts +1 -0
  28. package/core/public-api.d.ts +1 -0
  29. package/draggable-item/draggable-item.component.d.ts +11 -11
  30. package/draggable-item/draggable-item.module.d.ts +11 -11
  31. package/draggable-item/package.json +1 -1
  32. package/draggable-item/pepperi-addons-ngx-composite-lib-draggable-item.d.ts +5 -5
  33. package/draggable-item/public-api.d.ts +2 -2
  34. package/esm2015/color-settings/color-settings.component.js +82 -81
  35. package/esm2015/color-settings/color-settings.model.js +9 -9
  36. package/esm2015/color-settings/color-settings.module.js +40 -40
  37. package/esm2015/color-settings/pepperi-addons-ngx-composite-lib-color-settings.js +4 -4
  38. package/esm2015/color-settings/public-api.js +7 -7
  39. package/esm2015/core/common/index.js +5 -0
  40. package/esm2015/core/common/public-api.js +5 -0
  41. package/esm2015/core/common/services/index.js +5 -0
  42. package/esm2015/core/common/services/public-api.js +5 -0
  43. package/esm2015/core/common/services/utilities.service.js +19 -0
  44. package/esm2015/core/index.js +5 -0
  45. package/esm2015/core/public-api.js +5 -0
  46. package/esm2015/draggable-item/draggable-item.component.js +42 -40
  47. package/esm2015/draggable-item/draggable-item.module.js +36 -36
  48. package/esm2015/draggable-item/pepperi-addons-ngx-composite-lib-draggable-item.js +4 -4
  49. package/esm2015/draggable-item/public-api.js +6 -6
  50. package/esm2015/file-status-panel/file-status-panel.component.js +34 -0
  51. package/esm2015/file-status-panel/file-status-panel.model.js +8 -0
  52. package/esm2015/file-status-panel/file-status-panel.module.js +40 -0
  53. package/esm2015/file-status-panel/pepperi-addons-ngx-composite-lib-file-status-panel.js +5 -0
  54. package/esm2015/file-status-panel/public-api.js +7 -0
  55. package/esm2015/generic-list/generic-list.component.js +240 -164
  56. package/esm2015/generic-list/generic-list.model.js +2 -2
  57. package/esm2015/generic-list/generic-list.module.js +56 -52
  58. package/esm2015/generic-list/pepperi-addons-ngx-composite-lib-generic-list.js +4 -4
  59. package/esm2015/generic-list/public-api.js +7 -7
  60. package/esm2015/group-buttons-settings/group-buttons-settings.component.js +132 -132
  61. package/esm2015/group-buttons-settings/group-buttons-settings.model.js +1 -1
  62. package/esm2015/group-buttons-settings/group-buttons-settings.module.js +47 -47
  63. package/esm2015/group-buttons-settings/pepperi-addons-ngx-composite-lib-group-buttons-settings.js +4 -4
  64. package/esm2015/group-buttons-settings/public-api.js +7 -7
  65. package/esm2015/ngx-composite-lib.module.js +26 -26
  66. package/esm2015/pepperi-addons-ngx-composite-lib.js +4 -4
  67. package/esm2015/public-api.js +6 -5
  68. package/esm2015/shadow-settings/pepperi-addons-ngx-composite-lib-shadow-settings.js +4 -4
  69. package/esm2015/shadow-settings/public-api.js +7 -7
  70. package/esm2015/shadow-settings/shadow-settings.component.js +73 -73
  71. package/esm2015/shadow-settings/shadow-settings.model.js +8 -8
  72. package/esm2015/shadow-settings/shadow-settings.module.js +44 -44
  73. package/fesm2015/pepperi-addons-ngx-composite-lib-color-settings.js +113 -112
  74. package/fesm2015/pepperi-addons-ngx-composite-lib-color-settings.js.map +1 -1
  75. package/fesm2015/pepperi-addons-ngx-composite-lib-draggable-item.js +68 -66
  76. package/fesm2015/pepperi-addons-ngx-composite-lib-draggable-item.js.map +1 -1
  77. package/fesm2015/pepperi-addons-ngx-composite-lib-file-status-panel.js +90 -0
  78. package/fesm2015/pepperi-addons-ngx-composite-lib-file-status-panel.js.map +1 -0
  79. package/fesm2015/pepperi-addons-ngx-composite-lib-generic-list.js +274 -194
  80. package/fesm2015/pepperi-addons-ngx-composite-lib-generic-list.js.map +1 -1
  81. package/fesm2015/pepperi-addons-ngx-composite-lib-group-buttons-settings.js +164 -164
  82. package/fesm2015/pepperi-addons-ngx-composite-lib-group-buttons-settings.js.map +1 -1
  83. package/fesm2015/pepperi-addons-ngx-composite-lib-shadow-settings.js +107 -107
  84. package/fesm2015/pepperi-addons-ngx-composite-lib-shadow-settings.js.map +1 -1
  85. package/fesm2015/pepperi-addons-ngx-composite-lib.js +70 -29
  86. package/fesm2015/pepperi-addons-ngx-composite-lib.js.map +1 -1
  87. package/file-status-panel/file-status-panel.component.d.ts +14 -0
  88. package/file-status-panel/file-status-panel.model.d.ts +6 -0
  89. package/file-status-panel/file-status-panel.module.d.ts +12 -0
  90. package/file-status-panel/package.json +13 -0
  91. package/file-status-panel/pepperi-addons-ngx-composite-lib-file-status-panel.d.ts +5 -0
  92. package/file-status-panel/public-api.d.ts +3 -0
  93. package/generic-list/generic-list.component.d.ts +60 -45
  94. package/generic-list/generic-list.model.d.ts +22 -11
  95. package/generic-list/generic-list.module.d.ts +16 -15
  96. package/generic-list/package.json +1 -1
  97. package/generic-list/pepperi-addons-ngx-composite-lib-generic-list.d.ts +5 -5
  98. package/generic-list/public-api.d.ts +3 -3
  99. package/group-buttons-settings/group-buttons-settings.component.d.ts +32 -32
  100. package/group-buttons-settings/group-buttons-settings.model.d.ts +1 -1
  101. package/group-buttons-settings/group-buttons-settings.module.d.ts +14 -14
  102. package/group-buttons-settings/package.json +1 -1
  103. package/group-buttons-settings/pepperi-addons-ngx-composite-lib-group-buttons-settings.d.ts +5 -5
  104. package/group-buttons-settings/public-api.d.ts +3 -3
  105. package/ngx-composite-lib.module.d.ts +6 -6
  106. package/package.json +2 -2
  107. package/pepperi-addons-ngx-composite-lib.d.ts +5 -5
  108. package/public-api.d.ts +2 -1
  109. package/shadow-settings/package.json +1 -1
  110. package/shadow-settings/pepperi-addons-ngx-composite-lib-shadow-settings.d.ts +5 -5
  111. package/shadow-settings/public-api.d.ts +3 -3
  112. package/shadow-settings/shadow-settings.component.d.ts +23 -23
  113. package/shadow-settings/shadow-settings.model.d.ts +7 -7
  114. package/shadow-settings/shadow-settings.module.d.ts +13 -13
  115. package/src/assets/i18n/de.ngx-composite-lib.json +1 -1
  116. package/src/assets/i18n/en.ngx-composite-lib.json +42 -42
  117. package/src/assets/i18n/es.ngx-composite-lib.json +1 -1
  118. package/src/assets/i18n/fr.ngx-composite-lib.json +1 -1
  119. package/src/assets/i18n/he.ngx-composite-lib.json +1 -1
  120. package/src/assets/i18n/hu.ngx-composite-lib.json +1 -1
  121. package/src/assets/i18n/it.ngx-composite-lib.json +1 -1
  122. package/src/assets/i18n/ja.ngx-composite-lib.json +1 -1
  123. package/src/assets/i18n/nl.ngx-composite-lib.json +1 -1
  124. package/src/assets/i18n/pl.ngx-composite-lib.json +1 -1
  125. package/src/assets/i18n/pt.ngx-composite-lib.json +1 -1
  126. package/src/assets/i18n/ru.ngx-composite-lib.json +1 -1
  127. package/src/assets/i18n/zh.ngx-lib.json +1 -1
  128. package/src/core/style/abstracts/functions.scss +0 -0
  129. package/src/core/style/abstracts/mixins.scss +0 -0
  130. package/src/core/style/abstracts/variables.scss +1 -0
  131. package/src/core/style/base/helpers.scss +0 -0
  132. package/{styles.scss → src/core/style/components/general.scss} +6 -4
  133. package/styling.scss +14 -0
@@ -1,164 +1,240 @@
1
- import { __awaiter } from "tslib";
2
- import { Component, ViewChild, Input, Output, EventEmitter, } from '@angular/core';
3
- import { PepRowData, PepGuid, } from '@pepperi-addons/ngx-lib';
4
- import { PepListComponent } from '@pepperi-addons/ngx-lib/list';
5
- import { DataViewFieldTypes } from '@pepperi-addons/papi-sdk/dist/entities/data-view';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@pepperi-addons/ngx-lib";
8
- import * as i2 from "@ngx-translate/core";
9
- import * as i3 from "@pepperi-addons/ngx-lib/page-layout";
10
- import * as i4 from "@pepperi-addons/ngx-lib/top-bar";
11
- import * as i5 from "@pepperi-addons/ngx-lib/list";
12
- import * as i6 from "@pepperi-addons/ngx-lib/search";
13
- import * as i7 from "@angular/common";
14
- export class GenericListComponent {
15
- // PepScreenSizeType = PepScreenSizeType;
16
- // screenSize: PepScreenSizeType;
17
- constructor(dataConvertorService, layoutService, translate) {
18
- this.dataConvertorService = dataConvertorService;
19
- this.layoutService = layoutService;
20
- this.translate = translate;
21
- this.dataObjects = [];
22
- this.searchString = '';
23
- this.addPadding = false;
24
- this.title = '';
25
- this.inline = false;
26
- this.showSearch = false;
27
- this.allowSelection = true;
28
- this.noDataMessage = "No data";
29
- this.allowMultipleSelection = false;
30
- this.fieldClick = new EventEmitter();
31
- // @Output()
32
- // onAddClicked = new EventEmitter<void>();
33
- this.menuHandlers = {};
34
- this.menuActions = [];
35
- this.layoutService.onResize$.pipe().subscribe((size) => {
36
- // this.screenSize = size;
37
- });
38
- }
39
- loadMenuItems() {
40
- if (this.allowSelection) {
41
- this.getMenuActions().then(x => this.menuActions = x);
42
- }
43
- }
44
- convertToPepRowData(object, dataView) {
45
- const row = new PepRowData();
46
- row.Fields = [];
47
- if ((dataView === null || dataView === void 0 ? void 0 : dataView.Fields) && dataView.Columns) {
48
- for (let index = 0; index < dataView.Fields.length; index++) {
49
- let field = dataView.Fields[index];
50
- row.Fields.push({
51
- ApiName: field.FieldID,
52
- Title: this.translate.instant(field.Title),
53
- XAlignment: 1,
54
- FormattedValue: (object[field.FieldID] || '').toString(),
55
- Value: (object[field.FieldID] || '').toString(),
56
- ColumnWidth: dataView.Columns[index].Width,
57
- AdditionalValue: '',
58
- OptionalValues: [],
59
- FieldType: DataViewFieldTypes[field.Type],
60
- ReadOnly: field.ReadOnly,
61
- Enabled: !field.ReadOnly
62
- });
63
- }
64
- }
65
- return row;
66
- }
67
- getMenuActions() {
68
- var _a;
69
- return __awaiter(this, void 0, void 0, function* () {
70
- const actions = yield ((_a = this.dataSource) === null || _a === void 0 ? void 0 : _a.getActions(this.getMenuObjects()));
71
- const res = [];
72
- this.menuHandlers = {};
73
- actions === null || actions === void 0 ? void 0 : actions.forEach(item => {
74
- const uuid = PepGuid.newGuid();
75
- this.menuHandlers[uuid] = item.handler;
76
- res.push({
77
- key: uuid,
78
- text: item.title
79
- });
80
- });
81
- return res;
82
- });
83
- }
84
- getMenuObjects() {
85
- var _a, _b, _c;
86
- let uuids = (_b = (_a = this.customList) === null || _a === void 0 ? void 0 : _a.getSelectedItemsData().rows) !== null && _b !== void 0 ? _b : [];
87
- if ((_c = this.customList) === null || _c === void 0 ? void 0 : _c.getIsAllSelectedForActions()) {
88
- uuids = this.dataObjects.map(obj => obj.UID).filter(x => uuids.indexOf(x) != -1);
89
- }
90
- const objects = uuids.map(uuid => this.getObject(uuid));
91
- return objects;
92
- }
93
- getObject(uuid) {
94
- return this.dataObjects.find(obj => obj.UID === uuid);
95
- }
96
- ngOnInit() {
97
- }
98
- ngAfterViewInit() {
99
- this.reload();
100
- }
101
- onMenuItemClicked(action) {
102
- this.menuHandlers[action.source.key](this.getMenuObjects());
103
- }
104
- onSearchChanged(event) {
105
- this.searchString = event.value;
106
- this.reload();
107
- }
108
- reload() {
109
- return __awaiter(this, void 0, void 0, function* () {
110
- if (this.customList && this.dataSource) {
111
- this.dataObjects = yield this.dataSource.getList({
112
- searchString: this.searchString
113
- });
114
- const dataView = yield this.dataSource.getDataView();
115
- const tableData = this.dataObjects.map(x => this.convertToPepRowData(x, dataView));
116
- const data = this.dataConvertorService.convertListData(tableData);
117
- data.forEach((obj, i) => {
118
- this.dataObjects[i].UID = obj.UID;
119
- });
120
- const uiControl = this.dataConvertorService.getUiControl(tableData[0]);
121
- this.customList.initListData(uiControl, data.length, data);
122
- this.loadMenuItems();
123
- }
124
- });
125
- }
126
- selectedRowsChanged(selectedRowsCount) {
127
- this.loadMenuItems();
128
- }
129
- onCustomizeFieldClick(fieldClickEvent) {
130
- this.fieldClick.emit(fieldClickEvent);
131
- }
132
- }
133
- GenericListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: GenericListComponent, deps: [{ token: i1.PepDataConvertorService }, { token: i1.PepLayoutService }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
134
- GenericListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: GenericListComponent, selector: "pep-generic-list", inputs: { dataSource: "dataSource", addPadding: "addPadding", title: "title", inline: "inline", showSearch: "showSearch", allowSelection: "allowSelection", noDataMessage: "noDataMessage", allowMultipleSelection: "allowMultipleSelection" }, outputs: { fieldClick: "fieldClick" }, viewQueries: [{ propertyName: "customList", first: true, predicate: PepListComponent, descendants: true }], ngImport: i0, template: "<div *ngIf=\"inline\" class=\"inline-container\" [ngClass]=\"{ 'add-padding': addPadding }\">\n <div class=\"inline-top-bar-container\">\n <ng-container *ngTemplateOutlet=\"topBarTemplate\"></ng-container>\n </div>\n <ng-container *ngTemplateOutlet=\"listTemplate\"></ng-container>\n</div>\n\n<pep-page-layout *ngIf=\"!inline\" [addPadding]=\"addPadding\">\n <ng-container pep-top-area>\n <ng-container *ngTemplateOutlet=\"topBarTemplate\"></ng-container>\n </ng-container>\n\n <div pep-main-area class=\"main-area-container\">\n <ng-container *ngTemplateOutlet=\"listTemplate\"></ng-container>\n </div>\n</pep-page-layout>\n \n<ng-template #topBarTemplate>\n <pep-top-bar [title]=\"title\" [inline]=\"inline\">\n <div header-start-content>\n <ng-content select=\"[left-buttons]\"></ng-content>\n </div>\n <div header-end-content>\n <ng-content select=\"[right-buttons]\"></ng-content>\n </div>\n <pep-list-actions [sizeType]=\"inline ? 'sm' : 'md'\" [actions]=\"menuActions\" (actionClick)=\"onMenuItemClicked($event)\"></pep-list-actions>\n <pep-list-total [sizeType]=\"inline ? 'sm' : 'md'\" [totalRows]=\"customList ? customList.totalRows : -1\"></pep-list-total>\n\n <pep-search *ngIf=\"showSearch\" [sizeType]=\"inline ? 'sm' : 'md'\" (search)=\"onSearchChanged($event)\">\n </pep-search>\n </pep-top-bar>\n</ng-template>\n\n<ng-template #listTemplate>\n <div #listContainer class=\"list-container\">\n <pep-list viewType=\"table\" [supportSorting]=\"false\"\n [selectionTypeForActions]=\"allowMultipleSelection ? 'multi' : (allowSelection ? 'single' : 'none')\" [noDataFoundMsg]=\"noDataMessage\"\n (fieldClick)=\"onCustomizeFieldClick($event)\"\n (selectedItemsChange)=\"selectedRowsChanged($event)\">\n </pep-list>\n </div>\n</ng-template>", styles: [":host{height:inherit;display:block}.main-area-container{display:grid;height:inherit}.list-container{height:100%}.inline-container{height:inherit;display:grid;grid-template-rows:auto 1fr}.inline-container.add-padding{padding-inline:var(--pep-spacing-lg, 1rem)}.inline-container ::ng-deep .pep-top-bar-container.inline{height:auto;overflow:hidden}\n"], components: [{ type: i3.PepPageLayoutComponent, selector: "pep-page-layout", inputs: ["addPadding", "showShadow"] }, { type: i4.PepTopBarComponent, selector: "pep-top-bar", inputs: ["inline", "title"], outputs: ["footerStateChange"] }, { type: i5.PepListActionsComponent, selector: "pep-list-actions", inputs: ["actions", "sizeType", "xPosition", "hidden"], outputs: ["actionClick", "stateChange", "menuClick"] }, { type: i5.PepListTotalComponent, selector: "pep-list-total", inputs: ["totalRows", "totalAmount", "isMapView", "sizeType"] }, { type: i6.PepSearchComponent, selector: "pep-search", inputs: ["triggerOn", "autoCompleteTop", "shrinkInSmallScreen", "sizeType", "autoCompleteValues", "value", "searchControl", "useAsWebComponent"], outputs: ["search", "autocompleteChange", "stateChange"] }, { type: i5.PepListComponent, selector: "pep-list", inputs: ["noDataFoundMsg", "selectionTypeForActions", "showCardSelection", "hideAllSelectionInMulti", "cardSize", "firstFieldAsLink", "supportSorting", "supportResizing", "disabled", "lockItemInnerEvents", "printMode", "isReport", "totalsRow", "pagerType", "pageSize", "pageIndex", "scrollAnimationTime", "scrollDebounceTime", "scrollThrottlingTime", "viewType", "parentScroll", "lockEvents", "useAsWebComponent"], outputs: ["itemClick", "fieldClick", "valueChange", "sortingChange", "selectedItemsChange", "selectedItemChange", "selectAllClick", "listLoad", "loadItems", "loadPage", "startIndexChange"] }], directives: [{ type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i7.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
135
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: GenericListComponent, decorators: [{
136
- type: Component,
137
- args: [{
138
- selector: 'pep-generic-list',
139
- templateUrl: './generic-list.component.html',
140
- styleUrls: ['./generic-list.component.scss'],
141
- }]
142
- }], ctorParameters: function () { return [{ type: i1.PepDataConvertorService }, { type: i1.PepLayoutService }, { type: i2.TranslateService }]; }, propDecorators: { customList: [{
143
- type: ViewChild,
144
- args: [PepListComponent]
145
- }], dataSource: [{
146
- type: Input
147
- }], addPadding: [{
148
- type: Input
149
- }], title: [{
150
- type: Input
151
- }], inline: [{
152
- type: Input
153
- }], showSearch: [{
154
- type: Input
155
- }], allowSelection: [{
156
- type: Input
157
- }], noDataMessage: [{
158
- type: Input
159
- }], allowMultipleSelection: [{
160
- type: Input
161
- }], fieldClick: [{
162
- type: Output
163
- }] } });
164
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21wb3NpdGUtbGliL2dlbmVyaWMtbGlzdC9nZW5lcmljLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbXBvc2l0ZS1saWIvZ2VuZXJpYy1saXN0L2dlbmVyaWMtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNILFNBQVMsRUFHVCxTQUFTLEVBQ1QsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEdBQ2YsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUdILFVBQVUsRUFFVixPQUFPLEdBQ1IsTUFBTSx5QkFBeUIsQ0FBQztBQUVuQyxPQUFPLEVBQ0gsZ0JBQWdCLEVBQ25CLE1BQU0sOEJBQThCLENBQUM7QUFPdEMsT0FBTyxFQUFxQixrQkFBa0IsRUFBZ0IsTUFBTSxrREFBa0QsQ0FBQzs7Ozs7Ozs7O0FBVXZILE1BQU0sT0FBTyxvQkFBb0I7SUFzQzdCLHlDQUF5QztJQUN6QyxpQ0FBaUM7SUFFakMsWUFDWSxvQkFBNkMsRUFDN0MsYUFBK0IsRUFDL0IsU0FBMkI7UUFGM0IseUJBQW9CLEdBQXBCLG9CQUFvQixDQUF5QjtRQUM3QyxrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7UUFDL0IsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUF2Q3ZDLGdCQUFXLEdBQVUsRUFBRSxDQUFBO1FBRXZCLGlCQUFZLEdBQVcsRUFBRSxDQUFDO1FBRzFCLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFHNUIsVUFBSyxHQUFXLEVBQUUsQ0FBQztRQUduQixXQUFNLEdBQVksS0FBSyxDQUFDO1FBR3hCLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFHNUIsbUJBQWMsR0FBWSxJQUFJLENBQUM7UUFHL0Isa0JBQWEsR0FBVyxTQUFTLENBQUM7UUFHbEMsMkJBQXNC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cUJBQXFCLENBQUMsZUFBd0M7UUFDMUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDMUMsQ0FBQzs7aUhBeEpRLG9CQUFvQjtxR0FBcEIsb0JBQW9CLDJYQUNsQixnQkFBZ0IsZ0RDdEMvQiw0NERBeUNjOzJGREpELG9CQUFvQjtrQkFMaEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixXQUFXLEVBQUUsK0JBQStCO29CQUM1QyxTQUFTLEVBQUUsQ0FBQywrQkFBK0IsQ0FBQztpQkFDL0M7NEtBRWdDLFVBQVU7c0JBQXRDLFNBQVM7dUJBQUMsZ0JBQWdCO2dCQUczQixVQUFVO3NCQURULEtBQUs7Z0JBT04sVUFBVTtzQkFEVCxLQUFLO2dCQUlOLEtBQUs7c0JBREosS0FBSztnQkFJTixNQUFNO3NCQURMLEtBQUs7Z0JBSU4sVUFBVTtzQkFEVCxLQUFLO2dCQUlOLGNBQWM7c0JBRGIsS0FBSztnQkFJTixhQUFhO3NCQURaLEtBQUs7Z0JBSU4sc0JBQXNCO3NCQURyQixLQUFLO2dCQUlOLFVBQVU7c0JBRFQsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIE9uSW5pdCxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIFZpZXdDaGlsZCxcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgRXZlbnRFbWl0dGVyLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7XG4gICAgUGVwRGF0YUNvbnZlcnRvclNlcnZpY2UsXG4gICAgUGVwTGF5b3V0U2VydmljZSxcbiAgICBQZXBSb3dEYXRhLFxuICAgIFBlcFNjcmVlblNpemVUeXBlLFxuICAgIFBlcEd1aWQsXG4gIH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWInO1xuaW1wb3J0IHsgSVBlcEZvcm1GaWVsZENsaWNrRXZlbnQgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9mb3JtJztcbmltcG9ydCB7XG4gICAgUGVwTGlzdENvbXBvbmVudFxufSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9saXN0JztcbmltcG9ydCB7XG4gICAgUGVwTWVudUl0ZW0sXG4gICAgSVBlcE1lbnVJdGVtQ2xpY2tFdmVudCxcbn0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWIvbWVudSc7XG5pbXBvcnQgeyBJUGVwU2VhcmNoQ2xpY2tFdmVudCB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL3NlYXJjaCc7XG4gIFxuaW1wb3J0IHsgR3JpZERhdGFWaWV3RmllbGQsIERhdGFWaWV3RmllbGRUeXBlcywgR3JpZERhdGFWaWV3IH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL3BhcGktc2RrL2Rpc3QvZW50aXRpZXMvZGF0YS12aWV3JztcbmltcG9ydCB7IEdlbmVyaWNMaXN0RGF0YVNvdXJjZSB9IGZyb20gJy4vZ2VuZXJpYy1saXN0Lm1vZGVsJztcblxuaW1wb3J0ICogYXMgdHdlZW4gZnJvbSAnQHR3ZWVuanMvdHdlZW4uanMnXG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncGVwLWdlbmVyaWMtbGlzdCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2dlbmVyaWMtbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZ2VuZXJpYy1saXN0LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEdlbmVyaWNMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgICBAVmlld0NoaWxkKFBlcExpc3RDb21wb25lbnQpIGN1c3RvbUxpc3Q6IFBlcExpc3RDb21wb25lbnQgfCB1bmRlZmluZWQ7XG4gICAgXG4gICAgQElucHV0KClcbiAgICBkYXRhU291cmNlOiBHZW5lcmljTGlzdERhdGFTb3VyY2UgfCB1bmRlZmluZWQ7XG4gICAgZGF0YU9iamVjdHM6IGFueVtdID0gW11cbiAgXG4gICAgc2VhcmNoU3RyaW5nOiBzdHJpbmcgPSAnJztcbiAgXG4gICAgQElucHV0KClcbiAgICBhZGRQYWRkaW5nOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIHRpdGxlOiBzdHJpbmcgPSAnJztcbiAgXG4gICAgQElucHV0KClcbiAgICBpbmxpbmU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgXG4gICAgQElucHV0KClcbiAgICBzaG93U2VhcmNoOiBib29sZWFuID0gZmFsc2U7XG4gIFxuICAgIEBJbnB1dCgpXG4gICAgYWxsb3dTZWxlY3Rpb246IGJvb2xlYW4gPSB0cnVlO1xuICBcbiAgICBASW5wdXQoKVxuICAgIG5vRGF0YU1lc3NhZ2U6IHN0cmluZyA9IFwiTm8gZGF0YVwiO1xuICBcbiAgICBASW5wdXQoKVxuICAgIGFsbG93TXVsdGlwbGVTZWxlY3Rpb246IGJvb2xlYW4gPSBmYWxzZTtcbiAgXG4gICAgQE91dHB1dCgpXG4gICAgZmllbGRDbGljazogRXZlbnRFbWl0dGVyPElQZXBGb3JtRmllbGRDbGlja0V2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8SVBlcEZvcm1GaWVsZENsaWNrRXZlbnQ+KCk7XG5cbiAgICAvLyBAT3V0cHV0KClcbiAgICAvLyBvbkFkZENsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICBtZW51SGFuZGxlcnM6IHsgW2tleTogc3RyaW5nXTogKG9iajogYW55KSA9PiBQcm9taXNlPHZvaWQ+IH0gPSB7fTtcbiAgICBtZW51QWN0aW9uczogQXJyYXk8UGVwTWVudUl0ZW0+ID0gW107XG4gICAgLy8gUGVwU2NyZWVuU2l6ZVR5cGUgPSBQZXBTY3JlZW5TaXplVHlwZTtcbiAgICAvLyBzY3JlZW5TaXplOiBQZXBTY3JlZW5TaXplVHlwZTtcbiAgXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgZGF0YUNvbnZlcnRvclNlcnZpY2U6IFBlcERhdGFDb252ZXJ0b3JTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGxheW91dFNlcnZpY2U6IFBlcExheW91dFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIHRoaXMubGF5b3V0U2VydmljZS5vblJlc2l6ZSQucGlwZSgpLnN1YnNjcmliZSgoc2l6ZSkgPT4ge1xuICAgICAgICAgICAgLy8gdGhpcy5zY3JlZW5TaXplID0gc2l6ZTtcbiAgICAgICAgfSk7XG4gICAgfVxuICBcbiAgICBwcml2YXRlIGxvYWRNZW51SXRlbXMoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmFsbG93U2VsZWN0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLmdldE1lbnVBY3Rpb25zKCkudGhlbih4ID0+IHRoaXMubWVudUFjdGlvbnMgPSB4KTtcbiAgICAgICAgfVxuICAgIH1cbiAgXG4gICAgcHJpdmF0ZSBjb252ZXJ0VG9QZXBSb3dEYXRhKG9iamVjdDogYW55LCBkYXRhVmlldzogR3JpZERhdGFWaWV3KSB7XG4gICAgICAgIGNvbnN0IHJvdyA9IG5ldyBQZXBSb3dEYXRhKCk7XG4gICAgICAgIHJvdy5GaWVsZHMgPSBbXTtcblxuICAgICAgICBpZiAoZGF0YVZpZXc/LkZpZWxkcyAmJiBkYXRhVmlldy5Db2x1bW5zKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgZGF0YVZpZXcuRmllbGRzLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICAgICAgICAgIGxldCBmaWVsZCA9IGRhdGFWaWV3LkZpZWxkc1tpbmRleF0gYXMgR3JpZERhdGFWaWV3RmllbGRcbiAgICAgICAgICAgICAgICByb3cuRmllbGRzLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICBBcGlOYW1lOiBmaWVsZC5GaWVsZElELFxuICAgICAgICAgICAgICAgICAgICBUaXRsZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudChmaWVsZC5UaXRsZSksXG4gICAgICAgICAgICAgICAgICAgIFhBbGlnbm1lbnQ6IDEsXG4gICAgICAgICAgICAgICAgICAgIEZvcm1hdHRlZFZhbHVlOiAob2JqZWN0W2ZpZWxkLkZpZWxkSURdIHx8ICcnKS50b1N0cmluZygpLFxuICAgICAgICAgICAgICAgICAgICBWYWx1ZTogKG9iamVjdFtmaWVsZC5GaWVsZElEXSB8fCAnJykudG9TdHJpbmcoKSxcbiAgICAgICAgICAgICAgICAgICAgQ29sdW1uV2lkdGg6IGRhdGFWaWV3LkNvbHVtbnNbaW5kZXhdLldpZHRoLFxuICAgICAgICAgICAgICAgICAgICBBZGRpdGlvbmFsVmFsdWU6ICcnLFxuICAgICAgICAgICAgICAgICAgICBPcHRpb25hbFZhbHVlczogW10sXG4gICAgICAgICAgICAgICAgICAgIEZpZWxkVHlwZTogRGF0YVZpZXdGaWVsZFR5cGVzW2ZpZWxkLlR5cGVdLFxuICAgICAgICAgICAgICAgICAgICBSZWFkT25seTogZmllbGQuUmVhZE9ubHksXG4gICAgICAgICAgICAgICAgICAgIEVuYWJsZWQ6ICFmaWVsZC5SZWFkT25seVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJvdztcbiAgICB9XG4gIFxuICAgIHByaXZhdGUgYXN5bmMgZ2V0TWVudUFjdGlvbnMoKTogUHJvbWlzZTxQZXBNZW51SXRlbVtdPiB7XG4gICAgICAgIGNvbnN0IGFjdGlvbnMgPSBhd2FpdCB0aGlzLmRhdGFTb3VyY2U/LmdldEFjdGlvbnModGhpcy5nZXRNZW51T2JqZWN0cygpKTtcbiAgICAgICAgY29uc3QgcmVzOiBQZXBNZW51SXRlbVtdID0gW11cbiAgICAgICAgdGhpcy5tZW51SGFuZGxlcnMgPSB7fTtcbiAgICBcbiAgICAgICAgYWN0aW9ucz8uZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHV1aWQgPSBQZXBHdWlkLm5ld0d1aWQoKTtcbiAgICAgICAgICAgIHRoaXMubWVudUhhbmRsZXJzW3V1aWRdID0gaXRlbS5oYW5kbGVyO1xuICAgICAgICAgICAgcmVzLnB1c2goe1xuICAgICAgICAgICAgICAgIGtleTogdXVpZCxcbiAgICAgICAgICAgICAgICB0ZXh0OiBpdGVtLnRpdGxlXG4gICAgICAgICAgICB9KVxuICAgICAgICB9KVxuICBcbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG4gIFxuICAgIHByaXZhdGUgZ2V0TWVudU9iamVjdHMoKSB7XG4gICAgICAgIGxldCB1dWlkcyA9IHRoaXMuY3VzdG9tTGlzdD8uZ2V0U2VsZWN0ZWRJdGVtc0RhdGEoKS5yb3dzID8/IFtdO1xuICAgICAgICBpZiAodGhpcy5jdXN0b21MaXN0Py5nZXRJc0FsbFNlbGVjdGVkRm9yQWN0aW9ucygpKSB7XG4gICAgICAgICAgICB1dWlkcyA9IHRoaXMuZGF0YU9iamVjdHMubWFwKG9iaiA9PiBvYmouVUlEKS5maWx0ZXIoeCA9PiB1dWlkcy5pbmRleE9mKHgpICE9IC0xKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBvYmplY3RzID0gdXVpZHMubWFwKHV1aWQgPT4gdGhpcy5nZXRPYmplY3QodXVpZCkpXG4gICAgICAgIHJldHVybiBvYmplY3RzO1xuICAgIH1cbiAgXG4gICAgcHJpdmF0ZSBnZXRPYmplY3QodXVpZDogc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGFPYmplY3RzLmZpbmQob2JqID0+IG9iai5VSUQgPT09IHV1aWQpO1xuICAgIH1cbiAgICBcbiAgICBuZ09uSW5pdCgpIHtcbiAgICB9XG4gIFxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZWxvYWQoKTtcbiAgICB9XG4gIFxuICAgIG9uTWVudUl0ZW1DbGlja2VkKGFjdGlvbjogSVBlcE1lbnVJdGVtQ2xpY2tFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLm1lbnVIYW5kbGVyc1thY3Rpb24uc291cmNlLmtleV0odGhpcy5nZXRNZW51T2JqZWN0cygpKTtcbiAgICB9XG4gIFxuICAgIG9uU2VhcmNoQ2hhbmdlZChldmVudDogSVBlcFNlYXJjaENsaWNrRXZlbnQpIHtcbiAgICAgICAgdGhpcy5zZWFyY2hTdHJpbmcgPSBldmVudC52YWx1ZVxuICAgICAgICB0aGlzLnJlbG9hZCgpO1xuICAgIH1cbiAgXG4gICAgYXN5bmMgcmVsb2FkKCkge1xuICAgICAgICBpZiAodGhpcy5jdXN0b21MaXN0ICYmIHRoaXMuZGF0YVNvdXJjZSkge1xuICAgICAgICAgICAgdGhpcy5kYXRhT2JqZWN0cyA9IGF3YWl0IHRoaXMuZGF0YVNvdXJjZS5nZXRMaXN0KHtcbiAgICAgICAgICAgICAgc2VhcmNoU3RyaW5nOiB0aGlzLnNlYXJjaFN0cmluZ1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCBkYXRhVmlldyA9IGF3YWl0IHRoaXMuZGF0YVNvdXJjZS5nZXREYXRhVmlldygpO1xuICAgICAgICAgICAgY29uc3QgdGFibGVEYXRhID0gdGhpcy5kYXRhT2JqZWN0cy5tYXAoeCA9PiB0aGlzLmNvbnZlcnRUb1BlcFJvd0RhdGEoeCwgZGF0YVZpZXcpKTtcbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLmRhdGFDb252ZXJ0b3JTZXJ2aWNlLmNvbnZlcnRMaXN0RGF0YSh0YWJsZURhdGEpO1xuICAgICAgICAgICAgZGF0YS5mb3JFYWNoKChvYmosIGkpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5kYXRhT2JqZWN0c1tpXS5VSUQgPSBvYmouVUlEO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIGNvbnN0IHVpQ29udHJvbCA9IHRoaXMuZGF0YUNvbnZlcnRvclNlcnZpY2UuZ2V0VWlDb250cm9sKHRhYmxlRGF0YVswXSk7XG4gICAgICAgICAgICB0aGlzLmN1c3RvbUxpc3QuaW5pdExpc3REYXRhKHVpQ29udHJvbCwgZGF0YS5sZW5ndGgsIGRhdGEpO1xuICAgICAgICAgIFxuICAgICAgICAgICAgdGhpcy5sb2FkTWVudUl0ZW1zKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZWxlY3RlZFJvd3NDaGFuZ2VkKHNlbGVjdGVkUm93c0NvdW50OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5sb2FkTWVudUl0ZW1zKCk7XG4gICAgfVxuXG4gICAgb25DdXN0b21pemVGaWVsZENsaWNrKGZpZWxkQ2xpY2tFdmVudDogSVBlcEZvcm1GaWVsZENsaWNrRXZlbnQpIHtcbiAgICAgICAgdGhpcy5maWVsZENsaWNrLmVtaXQoZmllbGRDbGlja0V2ZW50KTtcbiAgICB9XG4gIFxufVxuICAiLCI8ZGl2ICpuZ0lmPVwiaW5saW5lXCIgY2xhc3M9XCJpbmxpbmUtY29udGFpbmVyXCIgW25nQ2xhc3NdPVwieyAnYWRkLXBhZGRpbmcnOiBhZGRQYWRkaW5nIH1cIj5cbiAgICA8ZGl2IGNsYXNzPVwiaW5saW5lLXRvcC1iYXItY29udGFpbmVyXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0b3BCYXJUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsaXN0VGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuXG48cGVwLXBhZ2UtbGF5b3V0ICpuZ0lmPVwiIWlubGluZVwiIFthZGRQYWRkaW5nXT1cImFkZFBhZGRpbmdcIj5cbiAgICA8bmctY29udGFpbmVyIHBlcC10b3AtYXJlYT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRvcEJhclRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8ZGl2IHBlcC1tYWluLWFyZWEgY2xhc3M9XCJtYWluLWFyZWEtY29udGFpbmVyXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsaXN0VGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbjwvcGVwLXBhZ2UtbGF5b3V0PlxuICAgIFxuPG5nLXRlbXBsYXRlICN0b3BCYXJUZW1wbGF0ZT5cbiAgICA8cGVwLXRvcC1iYXIgW3RpdGxlXT1cInRpdGxlXCIgW2lubGluZV09XCJpbmxpbmVcIj5cbiAgICAgICAgPGRpdiBoZWFkZXItc3RhcnQtY29udGVudD5cbiAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltsZWZ0LWJ1dHRvbnNdXCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBoZWFkZXItZW5kLWNvbnRlbnQ+XG4gICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbcmlnaHQtYnV0dG9uc11cIj48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8cGVwLWxpc3QtYWN0aW9ucyBbc2l6ZVR5cGVdPVwiaW5saW5lID8gJ3NtJyA6ICdtZCdcIiBbYWN0aW9uc109XCJtZW51QWN0aW9uc1wiIChhY3Rpb25DbGljayk9XCJvbk1lbnVJdGVtQ2xpY2tlZCgkZXZlbnQpXCI+PC9wZXAtbGlzdC1hY3Rpb25zPlxuICAgICAgICA8cGVwLWxpc3QtdG90YWwgW3NpemVUeXBlXT1cImlubGluZSA/ICdzbScgOiAnbWQnXCIgW3RvdGFsUm93c109XCJjdXN0b21MaXN0ID8gY3VzdG9tTGlzdC50b3RhbFJvd3MgOiAtMVwiPjwvcGVwLWxpc3QtdG90YWw+XG5cbiAgICAgICAgPHBlcC1zZWFyY2ggKm5nSWY9XCJzaG93U2VhcmNoXCIgW3NpemVUeXBlXT1cImlubGluZSA/ICdzbScgOiAnbWQnXCIgKHNlYXJjaCk9XCJvblNlYXJjaENoYW5nZWQoJGV2ZW50KVwiPlxuICAgICAgICA8L3BlcC1zZWFyY2g+XG4gICAgPC9wZXAtdG9wLWJhcj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjbGlzdFRlbXBsYXRlPlxuICAgIDxkaXYgI2xpc3RDb250YWluZXIgY2xhc3M9XCJsaXN0LWNvbnRhaW5lclwiPlxuICAgICAgICA8cGVwLWxpc3Qgdmlld1R5cGU9XCJ0YWJsZVwiIFtzdXBwb3J0U29ydGluZ109XCJmYWxzZVwiXG4gICAgICAgICAgICBbc2VsZWN0aW9uVHlwZUZvckFjdGlvbnNdPVwiYWxsb3dNdWx0aXBsZVNlbGVjdGlvbiA/ICdtdWx0aScgOiAoYWxsb3dTZWxlY3Rpb24gPyAnc2luZ2xlJyA6ICdub25lJylcIiBbbm9EYXRhRm91bmRNc2ddPVwibm9EYXRhTWVzc2FnZVwiXG4gICAgICAgICAgICAoZmllbGRDbGljayk9XCJvbkN1c3RvbWl6ZUZpZWxkQ2xpY2soJGV2ZW50KVwiXG4gICAgICAgICAgICAoc2VsZWN0ZWRJdGVtc0NoYW5nZSk9XCJzZWxlY3RlZFJvd3NDaGFuZ2VkKCRldmVudClcIj5cbiAgICAgICAgPC9wZXAtbGlzdD5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+Il19
1
+ import { __awaiter } from "tslib";
2
+ import { Component, ViewChild, Input, Output, EventEmitter, } from '@angular/core';
3
+ import { PepRowData, PepGuid, } from '@pepperi-addons/ngx-lib';
4
+ import { PepListComponent, PepSelectionData, DEFAULT_PAGE_SIZE } from '@pepperi-addons/ngx-lib/list';
5
+ import { DataViewFieldTypes } from '@pepperi-addons/papi-sdk/dist/entities/data-view';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@pepperi-addons/ngx-lib";
8
+ import * as i2 from "@ngx-translate/core";
9
+ import * as i3 from "@pepperi-addons/ngx-lib/page-layout";
10
+ import * as i4 from "@pepperi-addons/ngx-lib/top-bar";
11
+ import * as i5 from "@pepperi-addons/ngx-lib/list";
12
+ import * as i6 from "@pepperi-addons/ngx-lib/search";
13
+ import * as i7 from "@pepperi-addons/ngx-lib/bread-crumbs";
14
+ import * as i8 from "@angular/common";
15
+ export class GenericListComponent {
16
+ constructor(dataConvertorService, layoutService, translate) {
17
+ this.dataConvertorService = dataConvertorService;
18
+ this.layoutService = layoutService;
19
+ this.translate = translate;
20
+ this.data = {
21
+ getList: (options) => __awaiter(this, void 0, void 0, function* () {
22
+ return [];
23
+ }),
24
+ dataView: {
25
+ Type: 'Grid'
26
+ },
27
+ totalCount: 0
28
+ };
29
+ this.actions = {
30
+ get: (data) => __awaiter(this, void 0, void 0, function* () {
31
+ return [];
32
+ })
33
+ };
34
+ this.addPadding = false;
35
+ this.title = '';
36
+ this.inline = false;
37
+ this.showSearch = false;
38
+ this.allowSelection = true;
39
+ this.noDataFoundMsg = this.translate.instant('GENERIC_LIST.NO_DATA');
40
+ this.allowMultipleSelection = false;
41
+ this.firstFieldAsLink = false;
42
+ this.supportSorting = false;
43
+ this.showTopBar = true;
44
+ this.breadCrumbsItems = new Array();
45
+ this.pager = {
46
+ type: 'scroll',
47
+ size: DEFAULT_PAGE_SIZE,
48
+ index: 0
49
+ };
50
+ this.fieldClick = new EventEmitter();
51
+ this.valueChange = new EventEmitter();
52
+ this.breadCrumbItemClick = new EventEmitter();
53
+ // dataObjects: any[] = [];
54
+ this.searchString = '';
55
+ this.menuHandlers = {};
56
+ this.menuActions = [];
57
+ this.hasRows = true;
58
+ this.layoutService.onResize$.pipe().subscribe((size) => {
59
+ //
60
+ });
61
+ }
62
+ loadMenuItems() {
63
+ if (this.allowSelection) {
64
+ this.getMenuActions().then(x => this.menuActions = x);
65
+ }
66
+ }
67
+ convertToPepRowData(object, dataView) {
68
+ const row = new PepRowData();
69
+ row.Fields = [];
70
+ if ((dataView === null || dataView === void 0 ? void 0 : dataView.Fields) && dataView.Columns) {
71
+ for (let index = 0; index < dataView.Fields.length; index++) {
72
+ const field = dataView.Fields[index];
73
+ row.Fields.push({
74
+ ApiName: field.FieldID,
75
+ Title: this.translate.instant(field.Title),
76
+ XAlignment: 1,
77
+ FormattedValue: (object[field.FieldID] || '').toString(),
78
+ Value: (object[field.FieldID] || '').toString(),
79
+ ColumnWidth: dataView.Columns[index].Width,
80
+ AdditionalValue: '',
81
+ OptionalValues: [],
82
+ FieldType: DataViewFieldTypes[field.Type],
83
+ ReadOnly: field.ReadOnly,
84
+ Enabled: !field.ReadOnly
85
+ });
86
+ }
87
+ }
88
+ return row;
89
+ }
90
+ getMenuActions() {
91
+ return __awaiter(this, void 0, void 0, function* () {
92
+ const actions = yield this.actions.get(this.getMenuObjects());
93
+ const res = [];
94
+ this.menuHandlers = {};
95
+ actions === null || actions === void 0 ? void 0 : actions.forEach(item => {
96
+ const uuid = PepGuid.newGuid();
97
+ this.menuHandlers[uuid] = item.handler;
98
+ res.push({
99
+ key: uuid,
100
+ text: item.title
101
+ });
102
+ });
103
+ return res;
104
+ });
105
+ }
106
+ getMenuObjects() {
107
+ var _a;
108
+ const selectedData = ((_a = this.customList) === null || _a === void 0 ? void 0 : _a.getSelectedItemsData()) || new PepSelectionData();
109
+ // if (selectedData.rows?.length > 0 && this.customList?.getIsAllSelectedForActions()) {
110
+ // selectedData.rows = this.dataObjects.map(obj => obj.UID).filter(x => selectedData.rows.indexOf(x) !== -1);
111
+ // }
112
+ // if (selectedData.rows?.length > 0) {
113
+ // selectedData.rows = selectedData.rows.map(uuid => this.getObject(uuid));
114
+ // }
115
+ return selectedData;
116
+ }
117
+ getObject(uuid) {
118
+ var _a;
119
+ return (_a = this.customList) === null || _a === void 0 ? void 0 : _a.getItemDataByID(uuid); // this.dataObjects.find(obj => obj.UID === uuid);
120
+ }
121
+ ngOnInit() {
122
+ //
123
+ }
124
+ ngAfterViewInit() {
125
+ this.reload();
126
+ }
127
+ onMenuItemClicked(action) {
128
+ this.menuHandlers[action.source.key](this.getMenuObjects());
129
+ }
130
+ onSearchChanged(event) {
131
+ this.searchString = event.value;
132
+ this.reload();
133
+ }
134
+ reload() {
135
+ return __awaiter(this, void 0, void 0, function* () {
136
+ if (this.customList && this.data.totalCount > 0) {
137
+ const fromIndex = 0;
138
+ const toIndex = Math.min(fromIndex + this.pager.size - 1, this.data.totalCount - 1);
139
+ const dataList = yield this.getDataList(fromIndex, toIndex);
140
+ const convertedList = this.dataConvertorService.convertListData(dataList);
141
+ const uiControl = this.dataConvertorService.getUiControl(dataList[0]);
142
+ this.customList.initListData(uiControl, this.data.totalCount, convertedList);
143
+ this.loadMenuItems();
144
+ this.hasRows = dataList.length > 0 ? true : false;
145
+ }
146
+ else {
147
+ this.hasRows = false;
148
+ }
149
+ });
150
+ }
151
+ onSelectedRowsChanged(selectedRowsCount) {
152
+ this.loadMenuItems();
153
+ }
154
+ onCustomizeFieldClick(fieldClickEvent) {
155
+ this.fieldClick.emit(fieldClickEvent);
156
+ }
157
+ onBreadCrumbItemClick(event) {
158
+ this.breadCrumbItemClick.emit(event);
159
+ }
160
+ onValueChanged(event) {
161
+ this.valueChange.emit(event);
162
+ }
163
+ getDataList(fromIndex, toIndex) {
164
+ return __awaiter(this, void 0, void 0, function* () {
165
+ const dataList = yield this.data.getList({
166
+ searchString: this.searchString,
167
+ fromIndex: fromIndex,
168
+ toIndex: toIndex
169
+ });
170
+ const dataView = this.data.dataView;
171
+ return dataList.map(item => this.convertToPepRowData(item, dataView));
172
+ });
173
+ }
174
+ onLoadItems(event) {
175
+ var _a;
176
+ return __awaiter(this, void 0, void 0, function* () {
177
+ const dataList = yield this.getDataList(event.fromIndex, event.toIndex);
178
+ const data = this.dataConvertorService.convertListData(dataList);
179
+ (_a = this.customList) === null || _a === void 0 ? void 0 : _a.updateItems(data, event);
180
+ });
181
+ }
182
+ onLoadPage(event) {
183
+ var _a;
184
+ return __awaiter(this, void 0, void 0, function* () {
185
+ const fromIndex = event.pageIndex * event.pageSize;
186
+ const toIndex = Math.min(fromIndex + event.pageSize - 1, this.data.totalCount - 1);
187
+ const dataList = yield this.getDataList(fromIndex, toIndex);
188
+ const data = this.dataConvertorService.convertListData(dataList);
189
+ (_a = this.customList) === null || _a === void 0 ? void 0 : _a.updatePage(data, event);
190
+ });
191
+ }
192
+ }
193
+ GenericListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: GenericListComponent, deps: [{ token: i1.PepDataConvertorService }, { token: i1.PepLayoutService }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
194
+ GenericListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: GenericListComponent, selector: "pep-generic-list", inputs: { data: "data", actions: "actions", addPadding: "addPadding", title: "title", inline: "inline", showSearch: "showSearch", allowSelection: "allowSelection", noDataFoundMsg: "noDataFoundMsg", allowMultipleSelection: "allowMultipleSelection", firstFieldAsLink: "firstFieldAsLink", supportSorting: "supportSorting", showTopBar: "showTopBar", breadCrumbsItems: "breadCrumbsItems", pager: "pager" }, outputs: { fieldClick: "fieldClick", valueChange: "valueChange", breadCrumbItemClick: "breadCrumbItemClick" }, viewQueries: [{ propertyName: "customList", first: true, predicate: PepListComponent, descendants: true }], ngImport: i0, template: "<div *ngIf=\"inline\" class=\"inline-container\" [ngClass]=\"{ 'add-padding': addPadding }\">\r\n <div>\r\n <div *ngIf=\"showTopBar\" class=\"inline-top-bar-container\">\r\n <ng-container *ngTemplateOutlet=\"topBarTemplate\"></ng-container>\r\n </div>\r\n <ng-container *ngIf=\"breadCrumbsItems && breadCrumbsItems.length > 0\">\r\n <ng-container *ngTemplateOutlet=\"breadCrumbsTemplate\"></ng-container>\r\n </ng-container>\r\n </div>\r\n <ng-container *ngTemplateOutlet=\"listTemplate\"></ng-container>\r\n</div>\r\n\r\n<pep-page-layout *ngIf=\"!inline\" [addPadding]=\"addPadding\">\r\n <ng-container *ngIf=\"showTopBar\" pep-top-area>\r\n <ng-container *ngTemplateOutlet=\"topBarTemplate\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"breadCrumbsItems && breadCrumbsItems.length > 0\" pep-top-area>\r\n <ng-container *ngTemplateOutlet=\"breadCrumbsTemplate\"></ng-container>\r\n </ng-container>\r\n\r\n <div pep-main-area class=\"main-area-container\">\r\n <ng-container *ngTemplateOutlet=\"listTemplate\"></ng-container>\r\n </div>\r\n</pep-page-layout>\r\n\r\n<ng-template #topBarTemplate>\r\n <pep-top-bar [title]=\"title\" [inline]=\"inline\">\r\n <div header-start-content>\r\n <ng-content select=\"[left-buttons]\"></ng-content>\r\n </div>\r\n <div header-end-content>\r\n <ng-content select=\"[right-buttons]\"></ng-content>\r\n </div>\r\n <pep-list-actions [sizeType]=\"inline ? 'sm' : 'md'\" [actions]=\"menuActions\"\r\n (actionClick)=\"onMenuItemClicked($event)\"></pep-list-actions>\r\n <pep-list-total [sizeType]=\"inline ? 'sm' : 'md'\" [totalRows]=\"customList ? customList.totalRows : -1\">\r\n </pep-list-total>\r\n\r\n <pep-search *ngIf=\"showSearch\" [sizeType]=\"inline ? 'sm' : 'md'\" (search)=\"onSearchChanged($event)\">\r\n </pep-search>\r\n </pep-top-bar>\r\n</ng-template>\r\n\r\n<ng-template #breadCrumbsTemplate>\r\n <pep-bread-crumbs class=\"bread-crumbs\" [items]=\"breadCrumbsItems\" [addSpacing]=\"true\" [displayType]=\"'items'\"\r\n (itemClick)=\"onBreadCrumbItemClick($event)\"></pep-bread-crumbs>\r\n</ng-template>\r\n\r\n<ng-template #listTemplate>\r\n <div class=\"list-container\">\r\n <pep-list #customList *ngIf=\"hasRows\" viewType=\"table\" [supportSorting]=\"supportSorting\"\r\n [selectionTypeForActions]=\"allowMultipleSelection ? 'multi' : (allowSelection ? 'single' : 'none')\"\r\n [pagerType]=\"pager.type\" [pageSize]=\"pager.size\" [pageIndex]=\"pager.index\" [noDataFoundMsg]=\"noDataFoundMsg\"\r\n (fieldClick)=\"onCustomizeFieldClick($event)\" [firstFieldAsLink]=\"firstFieldAsLink\"\r\n (selectedItemsChange)=\"onSelectedRowsChanged($event)\" (loadItems)=\"onLoadItems($event)\"\r\n (loadPage)=\"onLoadPage($event)\" (valueChange)=\"onValueChanged($event)\">\r\n </pep-list>\r\n <ng-container *ngIf=\"!hasRows\">\r\n <div class=\"noDataFoundMsg\">\r\n <h2>{{noDataFoundMsg}}</h2>\r\n </div>\r\n </ng-container>\r\n </div>\r\n</ng-template>", styles: [":host{height:inherit;display:block}.main-area-container{display:grid;height:inherit}.list-container{height:100%}.inline-container{height:inherit;display:grid;grid-template-rows:auto 1fr}.inline-container.add-padding{padding-inline:var(--pep-spacing-lg, 1rem)}.inline-container ::ng-deep .pep-top-bar-container.inline{height:auto;overflow:hidden}.noDataFoundMsg{height:100%;width:100%;background:rgba(26,26,26,.12);display:flex;justify-content:center;align-items:center}.bread-crumbs{padding:1rem 0 .5rem}\n"], components: [{ type: i3.PepPageLayoutComponent, selector: "pep-page-layout", inputs: ["addPadding", "showShadow"] }, { type: i4.PepTopBarComponent, selector: "pep-top-bar", inputs: ["inline", "title"], outputs: ["footerStateChange"] }, { type: i5.PepListActionsComponent, selector: "pep-list-actions", inputs: ["actions", "sizeType", "xPosition", "hidden"], outputs: ["actionClick", "stateChange", "menuClick"] }, { type: i5.PepListTotalComponent, selector: "pep-list-total", inputs: ["totalRows", "totalAmount", "isMapView", "sizeType"] }, { type: i6.PepSearchComponent, selector: "pep-search", inputs: ["triggerOn", "autoCompleteTop", "shrinkInSmallScreen", "sizeType", "autoCompleteValues", "value", "searchControl", "useAsWebComponent"], outputs: ["search", "autocompleteChange", "stateChange"] }, { type: i7.PepBreadCrumbsComponent, selector: "pep-bread-crumbs", inputs: ["addSpacing", "items", "displayType"], outputs: ["itemClick"] }, { type: i5.PepListComponent, selector: "pep-list", inputs: ["noDataFoundMsg", "selectionTypeForActions", "showCardSelection", "hideAllSelectionInMulti", "cardSize", "firstFieldAsLink", "supportSorting", "supportResizing", "disabled", "lockItemInnerEvents", "printMode", "isReport", "totalsRow", "pagerType", "pageSize", "pageIndex", "scrollAnimationTime", "scrollDebounceTime", "scrollThrottlingTime", "viewType", "parentScroll", "lockEvents", "useAsWebComponent"], outputs: ["itemClick", "fieldClick", "valueChange", "sortingChange", "selectedItemsChange", "selectedItemChange", "selectAllClick", "listLoad", "loadItems", "loadPage", "startIndexChange"] }], directives: [{ type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i8.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
195
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: GenericListComponent, decorators: [{
196
+ type: Component,
197
+ args: [{
198
+ selector: 'pep-generic-list',
199
+ templateUrl: './generic-list.component.html',
200
+ styleUrls: ['./generic-list.component.scss'],
201
+ }]
202
+ }], ctorParameters: function () { return [{ type: i1.PepDataConvertorService }, { type: i1.PepLayoutService }, { type: i2.TranslateService }]; }, propDecorators: { customList: [{
203
+ type: ViewChild,
204
+ args: [PepListComponent]
205
+ }], data: [{
206
+ type: Input
207
+ }], actions: [{
208
+ type: Input
209
+ }], addPadding: [{
210
+ type: Input
211
+ }], title: [{
212
+ type: Input
213
+ }], inline: [{
214
+ type: Input
215
+ }], showSearch: [{
216
+ type: Input
217
+ }], allowSelection: [{
218
+ type: Input
219
+ }], noDataFoundMsg: [{
220
+ type: Input
221
+ }], allowMultipleSelection: [{
222
+ type: Input
223
+ }], firstFieldAsLink: [{
224
+ type: Input
225
+ }], supportSorting: [{
226
+ type: Input
227
+ }], showTopBar: [{
228
+ type: Input
229
+ }], breadCrumbsItems: [{
230
+ type: Input
231
+ }], pager: [{
232
+ type: Input
233
+ }], fieldClick: [{
234
+ type: Output
235
+ }], valueChange: [{
236
+ type: Output
237
+ }], breadCrumbItemClick: [{
238
+ type: Output
239
+ }] } });
240
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21wb3NpdGUtbGliL2dlbmVyaWMtbGlzdC9nZW5lcmljLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbXBvc2l0ZS1saWIvZ2VuZXJpYy1saXN0L2dlbmVyaWMtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNILFNBQVMsRUFHVCxTQUFTLEVBQ1QsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEdBQ2YsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUdILFVBQVUsRUFFVixPQUFPLEdBQ1YsTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyxPQUFPLEVBQ0gsZ0JBQWdCLEVBQ2hCLGdCQUFnQixFQUloQixpQkFBaUIsRUFFcEIsTUFBTSw4QkFBOEIsQ0FBQztBQVl0QyxPQUFPLEVBQXFCLGtCQUFrQixFQUFnQixNQUFNLGtEQUFrRCxDQUFDOzs7Ozs7Ozs7O0FBU3ZILE1BQU0sT0FBTyxvQkFBb0I7SUE0RTdCLFlBQ1ksb0JBQTZDLEVBQzdDLGFBQStCLEVBQy9CLFNBQTJCO1FBRjNCLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBeUI7UUFDN0Msa0JBQWEsR0FBYixhQUFhLENBQWtCO1FBQy9CLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBM0V2QyxTQUFJLEdBQThCO1lBQzlCLE9BQU8sRUFBRSxDQUFPLE9BQVksRUFBRSxFQUFFO2dCQUM1QixPQUFPLEVBQUUsQ0FBQztZQUNkLENBQUMsQ0FBQTtZQUNELFFBQVEsRUFBRTtnQkFDTixJQUFJLEVBQUUsTUFBTTthQUNmO1lBQ0QsVUFBVSxFQUFFLENBQUM7U0FDaEIsQ0FBQztRQUdGLFlBQU8sR0FBMkI7WUFDOUIsR0FBRyxFQUFFLENBQU8sSUFBUyxFQUFFLEVBQUU7Z0JBQ3JCLE9B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QUFLO2dCQVFOLFVBQVU7c0JBRFQsS0FBSztnQkFJTixLQUFLO3NCQURKLEtBQUs7Z0JBSU4sTUFBTTtzQkFETCxLQUFLO2dCQUlOLFVBQVU7c0JBRFQsS0FBSztnQkFJTixjQUFjO3NCQURiLEtBQUs7Z0JBSU4sY0FBYztzQkFEYixLQUFLO2dCQUlOLHNCQUFzQjtzQkFEckIsS0FBSztnQkFJTixnQkFBZ0I7c0JBRGYsS0FBSztnQkFJTixjQUFjO3NCQURiLEtBQUs7Z0JBSU4sVUFBVTtzQkFEVCxLQUFLO2dCQUlOLGdCQUFnQjtzQkFEZixLQUFLO2dCQUlOLEtBQUs7c0JBREosS0FBSztnQkFRTixVQUFVO3NCQURULE1BQU07Z0JBSVAsV0FBVztzQkFEVixNQUFNO2dCQUlQLG1CQUFtQjtzQkFEbEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBPbkluaXQsXHJcbiAgICBBZnRlclZpZXdJbml0LFxyXG4gICAgVmlld0NoaWxkLFxyXG4gICAgSW5wdXQsXHJcbiAgICBPdXRwdXQsXHJcbiAgICBFdmVudEVtaXR0ZXIsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHtcclxuICAgIFBlcERhdGFDb252ZXJ0b3JTZXJ2aWNlLFxyXG4gICAgUGVwTGF5b3V0U2VydmljZSxcclxuICAgIFBlcFJvd0RhdGEsXHJcbiAgICBQZXBTY3JlZW5TaXplVHlwZSxcclxuICAgIFBlcEd1aWQsXHJcbn0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWInO1xyXG5pbXBvcnQgeyBJUGVwRm9ybUZpZWxkQ2xpY2tFdmVudCB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL2Zvcm0nO1xyXG5pbXBvcnQge1xyXG4gICAgUGVwTGlzdENvbXBvbmVudCxcclxuICAgIFBlcFNlbGVjdGlvbkRhdGEsXHJcbiAgICBJUGVwTGlzdExvYWRQYWdlRXZlbnQsICAgIFxyXG4gICAgSVBlcExpc3RQYWdlckNoYW5nZUV2ZW50LFxyXG4gICAgUGVwTGlzdFBhZ2VyVHlwZSxcclxuICAgIERFRkFVTFRfUEFHRV9TSVpFLFxyXG4gICAgSVBlcExpc3RMb2FkSXRlbXNFdmVudFxyXG59IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL2xpc3QnO1xyXG5pbXBvcnQge1xyXG4gICAgUGVwTWVudUl0ZW0sXHJcbiAgICBJUGVwTWVudUl0ZW1DbGlja0V2ZW50LFxyXG59IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL21lbnUnO1xyXG5pbXBvcnQgeyBJUGVwRm9ybUZpZWxkVmFsdWVDaGFuZ2VFdmVudCB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL2Zvcm0nO1xyXG5pbXBvcnQge1xyXG4gICAgUGVwQnJlYWRDcnVtYkl0ZW0sXHJcbiAgICBJUGVwQnJlYWRDcnVtYkl0ZW1DbGlja0V2ZW50XHJcbn0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWIvYnJlYWQtY3J1bWJzJztcclxuaW1wb3J0IHsgSVBlcFNlYXJjaENsaWNrRXZlbnQgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9zZWFyY2gnO1xyXG5cclxuaW1wb3J0IHsgR3JpZERhdGFWaWV3RmllbGQsIERhdGFWaWV3RmllbGRUeXBlcywgR3JpZERhdGFWaWV3IH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL3BhcGktc2RrL2Rpc3QvZW50aXRpZXMvZGF0YS12aWV3JztcclxuaW1wb3J0IHsgSVBlcEdlbmVyaWNMaXN0RGF0YVNvdXJjZSwgSVBlcEdlbmVyaWNMaXN0UGFnZXIsIElQZXBHZW5lcmljTGlzdEFjdGlvbnMgfSBmcm9tICcuL2dlbmVyaWMtbGlzdC5tb2RlbCc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3BlcC1nZW5lcmljLWxpc3QnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2dlbmVyaWMtbGlzdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9nZW5lcmljLWxpc3QuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEdlbmVyaWNMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcclxuICAgIEBWaWV3Q2hpbGQoUGVwTGlzdENvbXBvbmVudCkgY3VzdG9tTGlzdDogUGVwTGlzdENvbXBvbmVudCB8IHVuZGVmaW5lZDtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZGF0YTogSVBlcEdlbmVyaWNMaXN0RGF0YVNvdXJjZSA9IHtcclxuICAgICAgICBnZXRMaXN0OiBhc3luYyAob3B0aW9uczogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiBbXTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGRhdGFWaWV3OiB7XHJcbiAgICAgICAgICAgIFR5cGU6ICdHcmlkJ1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdG90YWxDb3VudDogMFxyXG4gICAgfTsgIFxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBhY3Rpb25zOiBJUGVwR2VuZXJpY0xpc3RBY3Rpb25zID0ge1xyXG4gICAgICAgIGdldDogYXN5bmMgKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gW11cclxuICAgICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBhZGRQYWRkaW5nID0gZmFsc2U7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHRpdGxlID0gJyc7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIGlubGluZSA9IGZhbHNlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBzaG93U2VhcmNoID0gZmFsc2U7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIGFsbG93U2VsZWN0aW9uID0gdHJ1ZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgbm9EYXRhRm91bmRNc2c6IHN0cmluZyA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ0dFTkVSSUNfTElTVC5OT19EQVRBJyk7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIGFsbG93TXVsdGlwbGVTZWxlY3Rpb24gPSBmYWxzZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZmlyc3RGaWVsZEFzTGluayA9IGZhbHNlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBzdXBwb3J0U29ydGluZyA9IGZhbHNlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBzaG93VG9wQmFyID0gdHJ1ZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgYnJlYWRDcnVtYnNJdGVtcyA9IG5ldyBBcnJheTxQZXBCcmVhZENydW1iSXRlbT4oKTtcclxuXHJcbiAgICBASW5wdXQoKSBcclxuICAgIHBhZ2VyOiBJUGVwR2VuZXJpY0xpc3RQYWdlciA9IHtcclxuICAgICAgICB0eXBlOiAnc2Nyb2xsJyxcclxuICAgICAgICBzaXplOiBERUZBVUxUX1BBR0VfU0laRSwgICAgICAgIFxyXG4gICAgICAgIGluZGV4OiAwXHJcbiAgICB9ICAgXHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBmaWVsZENsaWNrOiBFdmVudEVtaXR0ZXI8SVBlcEZvcm1GaWVsZENsaWNrRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxJUGVwRm9ybUZpZWxkQ2xpY2tFdmVudD4oKTtcclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SVBlcEZvcm1GaWVsZFZhbHVlQ2hhbmdlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxJUGVwRm9ybUZpZWxkVmFsdWVDaGFuZ2VFdmVudD4oKTtcclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIGJyZWFkQ3J1bWJJdGVtQ2xpY2s6IEV2ZW50RW1pdHRlcjxJUGVwQnJlYWRDcnVtYkl0ZW1DbGlja0V2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8SVBlcEJyZWFkQ3J1bWJJdGVtQ2xpY2tFdmVudD4oKTtcclxuXHJcbiAgICAvLyBkYXRhT2JqZWN0czogYW55W10gPSBbXTtcclxuICAgIHNlYXJjaFN0cmluZyA9ICcnO1xyXG4gICAgbWVudUhhbmRsZXJzOiB7IFtrZXk6IHN0cmluZ106IChvYmo6IGFueSkgPT4gUHJvbWlzZTx2b2lkPiB9ID0ge307XHJcbiAgICBtZW51QWN0aW9uczogQXJyYXk8UGVwTWVudUl0ZW0+ID0gW107XHJcbiAgICBoYXNSb3dzID0gdHJ1ZTsgICAgICAgXHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBkYXRhQ29udmVydG9yU2VydmljZTogUGVwRGF0YUNvbnZlcnRvclNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBsYXlvdXRTZXJ2aWNlOiBQZXBMYXlvdXRTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlXHJcbiAgICApIHtcclxuICAgICAgICB0aGlzLmxheW91dFNlcnZpY2Uub25SZXNpemUkLnBpcGUoKS5zdWJzY3JpYmUoKHNpemUpID0+IHtcclxuICAgICAgICAgICAgLy8gICAgICAgICAgICBcclxuICAgICAgICB9KTtcclxuICAgIH0gICAgXHJcblxyXG4gICAgcHJpdmF0ZSBsb2FkTWVudUl0ZW1zKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmFsbG93U2VsZWN0aW9uKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZ2V0TWVudUFjdGlvbnMoKS50aGVuKHggPT4gdGhpcy5tZW51QWN0aW9ucyA9IHgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNvbnZlcnRUb1BlcFJvd0RhdGEob2JqZWN0OiBhbnksIGRhdGFWaWV3OiBHcmlkRGF0YVZpZXcpIHtcclxuICAgICAgICBjb25zdCByb3cgPSBuZXcgUGVwUm93RGF0YSgpO1xyXG4gICAgICAgIHJvdy5GaWVsZHMgPSBbXTtcclxuXHJcbiAgICAgICAgaWYgKGRhdGFWaWV3Py5GaWVsZHMgJiYgZGF0YVZpZXcuQ29sdW1ucykge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgZGF0YVZpZXcuRmllbGRzLmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZmllbGQgPSBkYXRhVmlldy5GaWVsZHNbaW5kZXhdIGFzIEdyaWREYXRhVmlld0ZpZWxkXHJcbiAgICAgICAgICAgICAgICByb3cuRmllbGRzLnB1c2goe1xyXG4gICAgICAgICAgICAgICAgICAgIEFwaU5hbWU6IGZpZWxkLkZpZWxkSUQsXHJcbiAgICAgICAgICAgICAgICAgICAgVGl0bGU6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoZmllbGQuVGl0bGUpLFxyXG4gICAgICAgICAgICAgICAgICAgIFhBbGlnbm1lbnQ6IDEsXHJcbiAgICAgICAgICAgICAgICAgICAgRm9ybWF0dGVkVmFsdWU6IChvYmplY3RbZmllbGQuRmllbGRJRF0gfHwgJycpLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgICAgICAgICAgVmFsdWU6IChvYmplY3RbZmllbGQuRmllbGRJRF0gfHwgJycpLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgICAgICAgICAgQ29sdW1uV2lkdGg6IGRhdGFWaWV3LkNvbHVtbnNbaW5kZXhdLldpZHRoLFxyXG4gICAgICAgICAgICAgICAgICAgIEFkZGl0aW9uYWxWYWx1ZTogJycsXHJcbiAgICAgICAgICAgICAgICAgICAgT3B0aW9uYWxWYWx1ZXM6IFtdLFxyXG4gICAgICAgICAgICAgICAgICAgIEZpZWxkVHlwZTogRGF0YVZpZXdGaWVsZFR5cGVzW2ZpZWxkLlR5cGVdLFxyXG4gICAgICAgICAgICAgICAgICAgIFJlYWRPbmx5OiBmaWVsZC5SZWFkT25seSxcclxuICAgICAgICAgICAgICAgICAgICBFbmFibGVkOiAhZmllbGQuUmVhZE9ubHlcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHJvdztcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGFzeW5jIGdldE1lbnVBY3Rpb25zKCk6IFByb21pc2U8UGVwTWVudUl0ZW1bXT4geyAgICAgICAgXHJcbiAgICAgICAgY29uc3QgYWN0aW9ucyA9IGF3YWl0IHRoaXMuYWN0aW9ucy5nZXQodGhpcy5nZXRNZW51T2JqZWN0cygpKTsgICAgICAgICAgICAgIFxyXG4gICAgICAgIGNvbnN0IHJlczogUGVwTWVudUl0ZW1bXSA9IFtdO1xyXG4gICAgICAgIHRoaXMubWVudUhhbmRsZXJzID0ge307XHJcblxyXG4gICAgICAgIGFjdGlvbnM/LmZvckVhY2goaXRlbSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHV1aWQgPSBQZXBHdWlkLm5ld0d1aWQoKTtcclxuICAgICAgICAgICAgdGhpcy5tZW51SGFuZGxlcnNbdXVpZF0gPSBpdGVtLmhhbmRsZXI7XHJcbiAgICAgICAgICAgIHJlcy5wdXNoKHtcclxuICAgICAgICAgICAgICAgIGtleTogdXVpZCxcclxuICAgICAgICAgICAgICAgIHRleHQ6IGl0ZW0udGl0bGVcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICB9KVxyXG5cclxuICAgICAgICByZXR1cm4gcmVzO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0TWVudU9iamVjdHMoKSB7XHJcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWREYXRhID0gdGhpcy5jdXN0b21MaXN0Py5nZXRTZWxlY3RlZEl0ZW1zRGF0YSgpIHx8IG5ldyBQZXBTZWxlY3Rpb25EYXRhKCk7XHJcblxyXG4gICAgICAgIC8vIGlmIChzZWxlY3RlZERhdGEucm93cz8ubGVuZ3RoID4gMCAmJiB0aGlzLmN1c3RvbUxpc3Q/LmdldElzQWxsU2VsZWN0ZWRGb3JBY3Rpb25zKCkpIHtcclxuICAgICAgICAvLyAgICAgc2VsZWN0ZWREYXRhLnJvd3MgPSB0aGlzLmRhdGFPYmplY3RzLm1hcChvYmogPT4gb2JqLlVJRCkuZmlsdGVyKHggPT4gc2VsZWN0ZWREYXRhLnJvd3MuaW5kZXhPZih4KSAhPT0gLTEpO1xyXG4gICAgICAgIC8vIH1cclxuXHJcbiAgICAgICAgLy8gaWYgKHNlbGVjdGVkRGF0YS5yb3dzPy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgLy8gICAgIHNlbGVjdGVkRGF0YS5yb3dzID0gc2VsZWN0ZWREYXRhLnJvd3MubWFwKHV1aWQgPT4gdGhpcy5nZXRPYmplY3QodXVpZCkpO1xyXG4gICAgICAgIC8vIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHNlbGVjdGVkRGF0YTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRPYmplY3QodXVpZDogc3RyaW5nKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VzdG9tTGlzdD8uZ2V0SXRlbURhdGFCeUlEKHV1aWQpOyAvLyB0aGlzLmRhdGFPYmplY3RzLmZpbmQob2JqID0+IG9iai5VSUQgPT09IHV1aWQpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIC8vICAgICAgIFxyXG4gICAgfVxyXG5cclxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnJlbG9hZCgpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uTWVudUl0ZW1DbGlja2VkKGFjdGlvbjogSVBlcE1lbnVJdGVtQ2xpY2tFdmVudCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMubWVudUhhbmRsZXJzW2FjdGlvbi5zb3VyY2Uua2V5XSh0aGlzLmdldE1lbnVPYmplY3RzKCkpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uU2VhcmNoQ2hhbmdlZChldmVudDogSVBlcFNlYXJjaENsaWNrRXZlbnQpIHtcclxuICAgICAgICB0aGlzLnNlYXJjaFN0cmluZyA9IGV2ZW50LnZhbHVlO1xyXG4gICAgICAgIHRoaXMucmVsb2FkKCk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgcmVsb2FkKCkgeyAgICAgICAgXHJcbiAgICAgICAgaWYgKHRoaXMuY3VzdG9tTGlzdCAmJiB0aGlzLmRhdGEudG90YWxDb3VudCA+IDApIHtcclxuICAgICAgICAgICAgY29uc3QgZnJvbUluZGV4ID0gMDtcclxuICAgICAgICAgICAgY29uc3QgdG9JbmRleCA9IE1hdGgubWluKGZyb21JbmRleCArIHRoaXMucGFnZXIuc2l6ZSAtIDEsIHRoaXMuZGF0YS50b3RhbENvdW50IC0gMSk7XHJcblxyXG4gICAgICAgICAgICBjb25zdCBkYXRhTGlzdCA9IGF3YWl0IHRoaXMuZ2V0RGF0YUxpc3QoZnJvbUluZGV4LCB0b0luZGV4KTsgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgY29uc3QgY29udmVydGVkTGlzdCA9IHRoaXMuZGF0YUNvbnZlcnRvclNlcnZpY2UuY29udmVydExpc3REYXRhKGRhdGFMaXN0KTsgICAgICAgICBcclxuICAgICAgICAgICAgY29uc3QgdWlDb250cm9sID0gdGhpcy5kYXRhQ29udmVydG9yU2VydmljZS5nZXRVaUNvbnRyb2woZGF0YUxpc3RbMF0pO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5jdXN0b21MaXN0LmluaXRMaXN0RGF0YSh1aUNvbnRyb2wsIHRoaXMuZGF0YS50b3RhbENvdW50LCBjb252ZXJ0ZWRMaXN0KTsgICAgICAgICAgICBcclxuICAgICAgICAgICAgdGhpcy5sb2FkTWVudUl0ZW1zKCk7XHJcbiAgICAgICAgICAgIHRoaXMuaGFzUm93cyA9IGRhdGFMaXN0Lmxlbmd0aCA+IDAgPyB0cnVlIDogZmFsc2U7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5oYXNSb3dzID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgXHJcbiAgICBvblNlbGVjdGVkUm93c0NoYW5nZWQoc2VsZWN0ZWRSb3dzQ291bnQ6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMubG9hZE1lbnVJdGVtcygpO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBvbkN1c3RvbWl6ZUZpZWxkQ2xpY2soZmllbGRDbGlja0V2ZW50OiBJUGVwRm9ybUZpZWxkQ2xpY2tFdmVudCkge1xyXG4gICAgICAgIHRoaXMuZmllbGRDbGljay5lbWl0KGZpZWxkQ2xpY2tFdmVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgb25CcmVhZENydW1iSXRlbUNsaWNrKGV2ZW50OiBJUGVwQnJlYWRDcnVtYkl0ZW1DbGlja0V2ZW50KSB7XHJcbiAgICAgICAgdGhpcy5icmVhZENydW1iSXRlbUNsaWNrLmVtaXQoZXZlbnQpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uVmFsdWVDaGFuZ2VkKGV2ZW50OiBJUGVwRm9ybUZpZWxkVmFsdWVDaGFuZ2VFdmVudCkge1xyXG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdChldmVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBhc3luYyBnZXREYXRhTGlzdChmcm9tSW5kZXg6IG51bWJlciwgdG9JbmRleDogbnVtYmVyKSB7XHJcbiAgICAgICAgY29uc3QgZGF0YUxpc3QgPSBhd2FpdCB0aGlzLmRhdGEuZ2V0TGlzdCh7XHJcbiAgICAgICAgICAgIHNlYXJjaFN0cmluZzogdGhpcy5zZWFyY2hTdHJpbmcsXHJcbiAgICAgICAgICAgIGZyb21JbmRleDogZnJvbUluZGV4LFxyXG4gICAgICAgICAgICB0b0luZGV4OiB0b0luZGV4XHJcbiAgICAgICAgfSk7ICBcclxuICAgICAgICBjb25zdCBkYXRhVmlldyA9IHRoaXMuZGF0YS5kYXRhVmlldztcclxuICAgICAgICByZXR1cm4gZGF0YUxpc3QubWFwKGl0ZW0gPT4gdGhpcy5jb252ZXJ0VG9QZXBSb3dEYXRhKGl0ZW0sIGRhdGFWaWV3KSk7ICAgICAgICAgICBcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXN5bmMgb25Mb2FkSXRlbXMoZXZlbnQ6IElQZXBMaXN0TG9hZEl0ZW1zRXZlbnQpIHsgICAgICAgIFxyXG4gICAgICAgIGNvbnN0IGRhdGFMaXN0ID0gYXdhaXQgdGhpcy5nZXREYXRhTGlzdChldmVudC5mcm9tSW5kZXgsIGV2ZW50LnRvSW5kZXgpOyAgICAgICAgXHJcbiAgICAgICAgY29uc3QgZGF0YSA9IHRoaXMuZGF0YUNvbnZlcnRvclNlcnZpY2UuY29udmVydExpc3REYXRhKGRhdGFMaXN0KTtcclxuICAgICAgICBcclxuICAgICAgICB0aGlzLmN1c3RvbUxpc3Q/LnVwZGF0ZUl0ZW1zKGRhdGEsIGV2ZW50KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXN5bmMgb25Mb2FkUGFnZShldmVudDogSVBlcExpc3RMb2FkUGFnZUV2ZW50KSB7XHJcbiAgICAgICAgY29uc3QgZnJvbUluZGV4ID0gZXZlbnQucGFnZUluZGV4ICogZXZlbnQucGFnZVNpemU7XHJcbiAgICAgICAgY29uc3QgdG9JbmRleCA9IE1hdGgubWluKGZyb21JbmRleCArIGV2ZW50LnBhZ2VTaXplIC0gMSwgdGhpcy5kYXRhLnRvdGFsQ291bnQgLSAxKTtcclxuXHJcbiAgICAgICAgY29uc3QgZGF0YUxpc3QgPSBhd2FpdCB0aGlzLmdldERhdGFMaXN0KGZyb21JbmRleCwgdG9JbmRleCk7ICAgICAgICAgICAgICAgXHJcbiAgICAgICAgY29uc3QgZGF0YSA9IHRoaXMuZGF0YUNvbnZlcnRvclNlcnZpY2UuY29udmVydExpc3REYXRhKGRhdGFMaXN0KTtcclxuICAgICAgICBcclxuICAgICAgICB0aGlzLmN1c3RvbUxpc3Q/LnVwZGF0ZVBhZ2UoZGF0YSwgZXZlbnQpO1xyXG4gICAgfVxyXG5cclxufVxyXG4iLCI8ZGl2ICpuZ0lmPVwiaW5saW5lXCIgY2xhc3M9XCJpbmxpbmUtY29udGFpbmVyXCIgW25nQ2xhc3NdPVwieyAnYWRkLXBhZGRpbmcnOiBhZGRQYWRkaW5nIH1cIj5cclxuICAgIDxkaXY+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cInNob3dUb3BCYXJcIiBjbGFzcz1cImlubGluZS10b3AtYmFyLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidG9wQmFyVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYnJlYWRDcnVtYnNJdGVtcyAmJiBicmVhZENydW1ic0l0ZW1zLmxlbmd0aCA+IDBcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJyZWFkQ3J1bWJzVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxpc3RUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG48L2Rpdj5cclxuXHJcbjxwZXAtcGFnZS1sYXlvdXQgKm5nSWY9XCIhaW5saW5lXCIgW2FkZFBhZGRpbmddPVwiYWRkUGFkZGluZ1wiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dUb3BCYXJcIiBwZXAtdG9wLWFyZWE+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRvcEJhclRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYnJlYWRDcnVtYnNJdGVtcyAmJiBicmVhZENydW1ic0l0ZW1zLmxlbmd0aCA+IDBcIiBwZXAtdG9wLWFyZWE+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJyZWFkQ3J1bWJzVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDxkaXYgcGVwLW1haW4tYXJlYSBjbGFzcz1cIm1haW4tYXJlYS1jb250YWluZXJcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibGlzdFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuPC9wZXAtcGFnZS1sYXlvdXQ+XHJcblxyXG48bmctdGVtcGxhdGUgI3RvcEJhclRlbXBsYXRlPlxyXG4gICAgPHBlcC10b3AtYmFyIFt0aXRsZV09XCJ0aXRsZVwiIFtpbmxpbmVdPVwiaW5saW5lXCI+XHJcbiAgICAgICAgPGRpdiBoZWFkZXItc3RhcnQtY29udGVudD5cclxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2xlZnQtYnV0dG9uc11cIj48L25nLWNvbnRlbnQ+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBoZWFkZXItZW5kLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltyaWdodC1idXR0b25zXVwiPjwvbmctY29udGVudD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8cGVwLWxpc3QtYWN0aW9ucyBbc2l6ZVR5cGVdPVwiaW5saW5lID8gJ3NtJyA6ICdtZCdcIiBbYWN0aW9uc109XCJtZW51QWN0aW9uc1wiXHJcbiAgICAgICAgICAgIChhY3Rpb25DbGljayk9XCJvbk1lbnVJdGVtQ2xpY2tlZCgkZXZlbnQpXCI+PC9wZXAtbGlzdC1hY3Rpb25zPlxyXG4gICAgICAgIDxwZXAtbGlzdC10b3RhbCBbc2l6ZVR5cGVdPVwiaW5saW5lID8gJ3NtJyA6ICdtZCdcIiBbdG90YWxSb3dzXT1cImN1c3RvbUxpc3QgPyBjdXN0b21MaXN0LnRvdGFsUm93cyA6IC0xXCI+XHJcbiAgICAgICAgPC9wZXAtbGlzdC10b3RhbD5cclxuXHJcbiAgICAgICAgPHBlcC1zZWFyY2ggKm5nSWY9XCJzaG93U2VhcmNoXCIgW3NpemVUeXBlXT1cImlubGluZSA/ICdzbScgOiAnbWQnXCIgKHNlYXJjaCk9XCJvblNlYXJjaENoYW5nZWQoJGV2ZW50KVwiPlxyXG4gICAgICAgIDwvcGVwLXNlYXJjaD5cclxuICAgIDwvcGVwLXRvcC1iYXI+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2JyZWFkQ3J1bWJzVGVtcGxhdGU+XHJcbiAgICA8cGVwLWJyZWFkLWNydW1icyBjbGFzcz1cImJyZWFkLWNydW1ic1wiIFtpdGVtc109XCJicmVhZENydW1ic0l0ZW1zXCIgW2FkZFNwYWNpbmddPVwidHJ1ZVwiIFtkaXNwbGF5VHlwZV09XCInaXRlbXMnXCJcclxuICAgICAgICAoaXRlbUNsaWNrKT1cIm9uQnJlYWRDcnVtYkl0ZW1DbGljaygkZXZlbnQpXCI+PC9wZXAtYnJlYWQtY3J1bWJzPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNsaXN0VGVtcGxhdGU+XHJcbiAgICA8ZGl2IGNsYXNzPVwibGlzdC1jb250YWluZXJcIj5cclxuICAgICAgICA8cGVwLWxpc3QgI2N1c3RvbUxpc3QgKm5nSWY9XCJoYXNSb3dzXCIgdmlld1R5cGU9XCJ0YWJsZVwiIFtzdXBwb3J0U29ydGluZ109XCJzdXBwb3J0U29ydGluZ1wiXHJcbiAgICAgICAgICAgIFtzZWxlY3Rpb25UeXBlRm9yQWN0aW9uc109XCJhbGxvd011bHRpcGxlU2VsZWN0aW9uID8gJ211bHRpJyA6IChhbGxvd1NlbGVjdGlvbiA/ICdzaW5nbGUnIDogJ25vbmUnKVwiXHJcbiAgICAgICAgICAgIFtwYWdlclR5cGVdPVwicGFnZXIudHlwZVwiIFtwYWdlU2l6ZV09XCJwYWdlci5zaXplXCIgW3BhZ2VJbmRleF09XCJwYWdlci5pbmRleFwiIFtub0RhdGFGb3VuZE1zZ109XCJub0RhdGFGb3VuZE1zZ1wiXHJcbiAgICAgICAgICAgIChmaWVsZENsaWNrKT1cIm9uQ3VzdG9taXplRmllbGRDbGljaygkZXZlbnQpXCIgW2ZpcnN0RmllbGRBc0xpbmtdPVwiZmlyc3RGaWVsZEFzTGlua1wiXHJcbiAgICAgICAgICAgIChzZWxlY3RlZEl0ZW1zQ2hhbmdlKT1cIm9uU2VsZWN0ZWRSb3dzQ2hhbmdlZCgkZXZlbnQpXCIgKGxvYWRJdGVtcyk9XCJvbkxvYWRJdGVtcygkZXZlbnQpXCJcclxuICAgICAgICAgICAgKGxvYWRQYWdlKT1cIm9uTG9hZFBhZ2UoJGV2ZW50KVwiICh2YWx1ZUNoYW5nZSk9XCJvblZhbHVlQ2hhbmdlZCgkZXZlbnQpXCI+XHJcbiAgICAgICAgPC9wZXAtbGlzdD5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWhhc1Jvd3NcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5vRGF0YUZvdW5kTXNnXCI+XHJcbiAgICAgICAgICAgICAgICA8aDI+e3tub0RhdGFGb3VuZE1zZ319PC9oMj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT4iXX0=
@@ -1,2 +1,2 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy1saXN0Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbXBvc2l0ZS1saWIvZ2VuZXJpYy1saXN0L2dlbmVyaWMtbGlzdC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR3JpZERhdGFWaWV3IH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL3BhcGktc2RrL2Rpc3QvZW50aXRpZXMvZGF0YS12aWV3JztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgR2VuZXJpY0xpc3REYXRhU291cmNlIHtcclxuICAgIGdldExpc3Qoc3RhdGU6IHsgc2VhcmNoU3RyaW5nOiBzdHJpbmcgfSk6IFByb21pc2U8YW55W10+O1xyXG4gICAgZ2V0RGF0YVZpZXcoKTogUHJvbWlzZTxHcmlkRGF0YVZpZXc+O1xyXG4gICAgZ2V0QWN0aW9ucyhvYmpzOiBhbnlbXSk6IFByb21pc2U8e1xyXG4gICAgICAgIHRpdGxlOiBzdHJpbmc7XHJcbiAgICAgICAgaGFuZGxlcjogKG9iajogYW55KSA9PiBQcm9taXNlPHZvaWQ+O1xyXG4gICAgfVtdPjtcclxufVxyXG4iXX0=
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy1saXN0Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbXBvc2l0ZS1saWIvZ2VuZXJpYy1saXN0L2dlbmVyaWMtbGlzdC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR3JpZERhdGFWaWV3IH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL3BhcGktc2RrL2Rpc3QvZW50aXRpZXMvZGF0YS12aWV3JztcclxuaW1wb3J0IHsgUGVwTGlzdFBhZ2VyVHlwZSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL2xpc3QnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJUGVwR2VuZXJpY0xpc3REYXRhU291cmNlIHtcclxuICAgIGdldExpc3QocGFyYW1zOiB7IFxyXG4gICAgICAgIHNlYXJjaFN0cmluZzogc3RyaW5nLCBcclxuICAgICAgICBmcm9tSW5kZXg6IG51bWJlciwgXHJcbiAgICAgICAgdG9JbmRleDogbnVtYmVyIFxyXG4gICAgfSk6IFByb21pc2U8YW55W10+OyAgICBcclxuICAgIGRhdGFWaWV3OiBHcmlkRGF0YVZpZXc7XHJcbiAgICB0b3RhbENvdW50OiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSVBlcEdlbmVyaWNMaXN0QWN0aW9ucyB7XHJcbiAgICBnZXQoZGF0YTogYW55KTogUHJvbWlzZTx7XHJcbiAgICAgICAgdGl0bGU6IHN0cmluZztcclxuICAgICAgICBoYW5kbGVyOiAob2JqOiBhbnkpID0+IFByb21pc2U8dm9pZD47XHJcbiAgICB9W10+O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElQZXBHZW5lcmljTGlzdFBhZ2VyIHtcclxuICAgIHR5cGU6IFBlcExpc3RQYWdlclR5cGU7XHJcbiAgICBzaXplOiBudW1iZXI7XHJcbiAgICBpbmRleDogbnVtYmVyO1xyXG59XHJcbiJdfQ==