@onecx/angular-accelerator 4.43.1 → 5.0.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.
- package/{esm2020 → esm2022}/lib/angular-accelerator-primeng.module.mjs +53 -53
- package/esm2022/lib/angular-accelerator.module.mjs +168 -0
- package/esm2022/lib/components/column-group-selection/column-group-selection.component.mjs +72 -0
- package/esm2022/lib/components/custom-group-column-selector/custom-group-column-selector.component.mjs +109 -0
- package/esm2022/lib/components/data-layout-selection/data-layout-selection.component.mjs +46 -0
- package/esm2022/lib/components/data-list-grid/data-list-grid.component.mjs +399 -0
- package/esm2022/lib/components/data-list-grid-sorting/data-list-grid-sorting.component.mjs +92 -0
- package/esm2022/lib/components/data-sort-base/data-sort-base.mjs +110 -0
- package/esm2022/lib/components/data-table/data-table.component.mjs +401 -0
- package/esm2022/lib/components/data-view/data-view.component.mjs +407 -0
- package/esm2022/lib/components/diagram/diagram.component.mjs +137 -0
- package/esm2022/lib/components/group-by-count-diagram/group-by-count-diagram.component.mjs +109 -0
- package/esm2022/lib/components/interactive-data-view/interactive-data-view.component.mjs +375 -0
- package/esm2022/lib/components/page-header/page-header.component.mjs +232 -0
- package/{esm2020 → esm2022}/lib/components/search-config/search-config.component.mjs +4 -4
- package/esm2022/lib/components/search-header/search-header.component.mjs +136 -0
- package/esm2022/lib/directives/advanced.directive.mjs +36 -0
- package/esm2022/lib/directives/if-breakpoint.directive.mjs +39 -0
- package/esm2022/lib/directives/if-permission.directive.mjs +80 -0
- package/esm2022/lib/directives/src.directive.mjs +59 -0
- package/esm2022/lib/functions/flatten-object.mjs +20 -0
- package/{esm2020 → esm2022}/lib/model/breadcrumb-menu-item.model.mjs +1 -1
- package/esm2022/lib/pipes/dynamic.pipe.mjs +58 -0
- package/esm2022/lib/pipes/ocxtimeago.pipe.mjs +107 -0
- package/esm2022/lib/services/app-config-service.mjs +43 -0
- package/esm2022/lib/services/breadcrumb.service.mjs +113 -0
- package/esm2022/lib/services/translation-cache.service.mjs +41 -0
- package/esm2022/lib/utils/async-translate-loader.utils.mjs +12 -0
- package/esm2022/lib/utils/caching-translate-loader.utils.mjs +15 -0
- package/{esm2020 → esm2022}/lib/utils/colorutils.mjs +1 -1
- package/{esm2020 → esm2022}/lib/utils/dateutils.mjs +6 -6
- package/esm2022/lib/utils/objectutils.mjs +30 -0
- package/{esm2020 → esm2022}/lib/utils/translate.combined.loader.mjs +1 -1
- package/{esm2020 → esm2022}/testing/column-group-selection.harness.mjs +2 -2
- package/esm2022/testing/custom-group-column-selector.harness.mjs +31 -0
- package/esm2022/testing/data-layout-selection.harness.mjs +33 -0
- package/esm2022/testing/data-list-grid.harness.mjs +47 -0
- package/esm2022/testing/data-table.harness.mjs +63 -0
- package/{esm2020 → esm2022}/testing/data-view.harness.mjs +2 -2
- package/esm2022/testing/default-grid-item.harness.mjs +24 -0
- package/esm2022/testing/default-list-item.harness.mjs +24 -0
- package/esm2022/testing/diagram.harness.mjs +22 -0
- package/{esm2020 → esm2022}/testing/group-by-count-diagram.harness.mjs +2 -2
- package/{esm2020 → esm2022}/testing/interactive-data-view.harness.mjs +2 -2
- package/esm2022/testing/more-actions-menu-button.harness.mjs +35 -0
- package/esm2022/testing/page-header.harness.mjs +78 -0
- package/{esm2020 → esm2022}/testing/search-config.harness.mjs +2 -2
- package/{esm2020 → esm2022}/testing/search-header.harness.mjs +2 -2
- package/{fesm2020 → fesm2022}/onecx-angular-accelerator-testing.mjs +34 -28
- package/fesm2022/onecx-angular-accelerator-testing.mjs.map +1 -0
- package/{fesm2020 → fesm2022}/onecx-angular-accelerator.mjs +220 -220
- package/fesm2022/onecx-angular-accelerator.mjs.map +1 -0
- package/lib/components/column-group-selection/column-group-selection.component.d.ts +1 -1
- package/lib/components/custom-group-column-selector/custom-group-column-selector.component.d.ts +1 -1
- package/lib/components/data-layout-selection/data-layout-selection.component.d.ts +1 -1
- package/lib/components/data-list-grid/data-list-grid.component.d.ts +1 -1
- package/lib/components/data-list-grid-sorting/data-list-grid-sorting.component.d.ts +1 -1
- package/lib/components/data-table/data-table.component.d.ts +1 -1
- package/lib/components/data-view/data-view.component.d.ts +1 -1
- package/lib/components/diagram/diagram.component.d.ts +2 -2
- package/lib/components/group-by-count-diagram/group-by-count-diagram.component.d.ts +1 -1
- package/lib/components/interactive-data-view/interactive-data-view.component.d.ts +1 -1
- package/lib/components/page-header/page-header.component.d.ts +1 -1
- package/lib/components/search-config/search-config.component.d.ts +1 -1
- package/lib/components/search-header/search-header.component.d.ts +1 -1
- package/lib/directives/if-breakpoint.directive.d.ts +1 -1
- package/lib/directives/if-permission.directive.d.ts +1 -1
- package/lib/directives/src.directive.d.ts +1 -1
- package/lib/model/breadcrumb-menu-item.model.d.ts +2 -2
- package/package.json +20 -28
- package/testing/data-list-grid.harness.d.ts +1 -1
- package/esm2020/lib/angular-accelerator.module.mjs +0 -168
- package/esm2020/lib/components/column-group-selection/column-group-selection.component.mjs +0 -72
- package/esm2020/lib/components/custom-group-column-selector/custom-group-column-selector.component.mjs +0 -109
- package/esm2020/lib/components/data-layout-selection/data-layout-selection.component.mjs +0 -45
- package/esm2020/lib/components/data-list-grid/data-list-grid.component.mjs +0 -399
- package/esm2020/lib/components/data-list-grid-sorting/data-list-grid-sorting.component.mjs +0 -92
- package/esm2020/lib/components/data-sort-base/data-sort-base.mjs +0 -110
- package/esm2020/lib/components/data-table/data-table.component.mjs +0 -401
- package/esm2020/lib/components/data-view/data-view.component.mjs +0 -407
- package/esm2020/lib/components/diagram/diagram.component.mjs +0 -137
- package/esm2020/lib/components/group-by-count-diagram/group-by-count-diagram.component.mjs +0 -109
- package/esm2020/lib/components/interactive-data-view/interactive-data-view.component.mjs +0 -375
- package/esm2020/lib/components/page-header/page-header.component.mjs +0 -232
- package/esm2020/lib/components/search-header/search-header.component.mjs +0 -136
- package/esm2020/lib/directives/advanced.directive.mjs +0 -36
- package/esm2020/lib/directives/if-breakpoint.directive.mjs +0 -39
- package/esm2020/lib/directives/if-permission.directive.mjs +0 -80
- package/esm2020/lib/directives/src.directive.mjs +0 -59
- package/esm2020/lib/functions/flatten-object.mjs +0 -20
- package/esm2020/lib/pipes/dynamic.pipe.mjs +0 -58
- package/esm2020/lib/pipes/ocxtimeago.pipe.mjs +0 -107
- package/esm2020/lib/services/app-config-service.mjs +0 -43
- package/esm2020/lib/services/breadcrumb.service.mjs +0 -113
- package/esm2020/lib/services/translation-cache.service.mjs +0 -41
- package/esm2020/lib/utils/async-translate-loader.utils.mjs +0 -12
- package/esm2020/lib/utils/caching-translate-loader.utils.mjs +0 -15
- package/esm2020/lib/utils/objectutils.mjs +0 -30
- package/esm2020/testing/custom-group-column-selector.harness.mjs +0 -31
- package/esm2020/testing/data-layout-selection.harness.mjs +0 -33
- package/esm2020/testing/data-list-grid.harness.mjs +0 -47
- package/esm2020/testing/data-table.harness.mjs +0 -57
- package/esm2020/testing/default-grid-item.harness.mjs +0 -24
- package/esm2020/testing/default-list-item.harness.mjs +0 -24
- package/esm2020/testing/diagram.harness.mjs +0 -22
- package/esm2020/testing/more-actions-menu-button.harness.mjs +0 -35
- package/esm2020/testing/page-header.harness.mjs +0 -78
- package/fesm2015/onecx-angular-accelerator-testing.mjs +0 -541
- package/fesm2015/onecx-angular-accelerator-testing.mjs.map +0 -1
- package/fesm2015/onecx-angular-accelerator.mjs +0 -3583
- package/fesm2015/onecx-angular-accelerator.mjs.map +0 -1
- package/fesm2020/onecx-angular-accelerator-testing.mjs.map +0 -1
- package/fesm2020/onecx-angular-accelerator.mjs.map +0 -1
- /package/{esm2020 → esm2022}/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/model/column-type.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/model/data-action.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/model/data-column-name-id.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/model/data-sort-direction.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/model/data-table-column.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/model/diagram-column.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/model/diagram-data.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/model/diagram-type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/model/search-config-info.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/utils/create-remote-component-translate-loader.utils.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/utils/create-translate-loader.utils.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/utils/enum-to-dropdown-options.utils.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/utils/primeicon.utils.mjs +0 -0
- /package/{esm2020 → esm2022}/onecx-angular-accelerator.mjs +0 -0
- /package/{esm2020 → esm2022}/testing/index.mjs +0 -0
- /package/{esm2020 → esm2022}/testing/onecx-angular-accelerator-testing.mjs +0 -0
|
@@ -1,375 +0,0 @@
|
|
|
1
|
-
import { Component, ContentChild, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
|
2
|
-
import { DataViewComponent } from '../data-view/data-view.component';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@angular/common";
|
|
5
|
-
import * as i2 from "../column-group-selection/column-group-selection.component";
|
|
6
|
-
import * as i3 from "../custom-group-column-selector/custom-group-column-selector.component";
|
|
7
|
-
import * as i4 from "../data-layout-selection/data-layout-selection.component";
|
|
8
|
-
import * as i5 from "../data-list-grid-sorting/data-list-grid-sorting.component";
|
|
9
|
-
import * as i6 from "../data-view/data-view.component";
|
|
10
|
-
export class InteractiveDataViewComponent {
|
|
11
|
-
constructor() {
|
|
12
|
-
this.name = 'Data';
|
|
13
|
-
this.subtitleLineIds = [];
|
|
14
|
-
this.supportedViewLayouts = ['grid', 'list', 'table'];
|
|
15
|
-
this.columns = [];
|
|
16
|
-
this.clientSideSorting = true;
|
|
17
|
-
this.clientSideFiltering = true;
|
|
18
|
-
this.fallbackImage = 'placeholder.png';
|
|
19
|
-
this.filters = [];
|
|
20
|
-
this.sortDirection = "NONE" /* DataSortDirection.NONE */;
|
|
21
|
-
this.sortField = '';
|
|
22
|
-
this.sortStates = [
|
|
23
|
-
"ASCENDING" /* DataSortDirection.ASCENDING */,
|
|
24
|
-
"DESCENDING" /* DataSortDirection.DESCENDING */,
|
|
25
|
-
"NONE" /* DataSortDirection.NONE */,
|
|
26
|
-
];
|
|
27
|
-
this.pageSizes = [10, 25, 50];
|
|
28
|
-
this.layout = 'table';
|
|
29
|
-
this.defaultGroupKey = '';
|
|
30
|
-
this.customGroupKey = 'OCX_INTERACTIVE_DATA_VIEW.CUSTOM_GROUP';
|
|
31
|
-
this.groupSelectionNoGroupSelectedKey = 'OCX_INTERACTIVE_DATA_VIEW.NO_GROUP_SELECTED';
|
|
32
|
-
this.currentPageShowingKey = 'OCX_DATA_TABLE.SHOWING';
|
|
33
|
-
this.currentPageShowingWithTotalOnServerKey = 'OCX_DATA_TABLE.SHOWING_WITH_TOTAL_ON_SERVER';
|
|
34
|
-
this.additionalActions = [];
|
|
35
|
-
this.listGridPaginator = true;
|
|
36
|
-
this.tablePaginator = true;
|
|
37
|
-
this.page = 0;
|
|
38
|
-
this.selectedRows = [];
|
|
39
|
-
this.displayedColumns = [];
|
|
40
|
-
this.frozenActionColumn = false;
|
|
41
|
-
this.actionColumnPosition = 'right';
|
|
42
|
-
this.filtered = new EventEmitter();
|
|
43
|
-
this.sorted = new EventEmitter();
|
|
44
|
-
this.deleteItem = new EventEmitter();
|
|
45
|
-
this.viewItem = new EventEmitter();
|
|
46
|
-
this.editItem = new EventEmitter();
|
|
47
|
-
this.dataViewLayoutChange = new EventEmitter();
|
|
48
|
-
this.displayedColumnsChange = new EventEmitter();
|
|
49
|
-
this.selectionChanged = new EventEmitter();
|
|
50
|
-
this.pageChanged = new EventEmitter();
|
|
51
|
-
this.selectedGroupKey = '';
|
|
52
|
-
this._data = [];
|
|
53
|
-
}
|
|
54
|
-
set dataView(ref) {
|
|
55
|
-
this._dataViewComponent = ref;
|
|
56
|
-
this.registerEventListenerForDataView();
|
|
57
|
-
}
|
|
58
|
-
get dataView() {
|
|
59
|
-
return this._dataViewComponent;
|
|
60
|
-
}
|
|
61
|
-
get paginator() {
|
|
62
|
-
return this.listGridPaginator && this.tablePaginator;
|
|
63
|
-
}
|
|
64
|
-
set paginator(value) {
|
|
65
|
-
this.listGridPaginator = value;
|
|
66
|
-
this.tablePaginator = value;
|
|
67
|
-
}
|
|
68
|
-
get _gridItemSubtitleLines() {
|
|
69
|
-
return this.gridItemSubtitleLines;
|
|
70
|
-
}
|
|
71
|
-
get _listItemSubtitleLines() {
|
|
72
|
-
return this.listItemSubtitleLines;
|
|
73
|
-
}
|
|
74
|
-
get _tableCell() {
|
|
75
|
-
return this.tableCell;
|
|
76
|
-
}
|
|
77
|
-
get _stringTableCell() {
|
|
78
|
-
return this.stringTableCell;
|
|
79
|
-
}
|
|
80
|
-
get _numberTableCell() {
|
|
81
|
-
return this.numberTableCell;
|
|
82
|
-
}
|
|
83
|
-
get _customTableCell() {
|
|
84
|
-
return this.customTableCell;
|
|
85
|
-
}
|
|
86
|
-
get _tableDateCell() {
|
|
87
|
-
return this.dateTableCell ?? this.tableDateCell;
|
|
88
|
-
}
|
|
89
|
-
get _dateTableCell() {
|
|
90
|
-
return this.dateTableCell;
|
|
91
|
-
}
|
|
92
|
-
get _tableRelativeDateCell() {
|
|
93
|
-
return this.relativeDateTableCell ?? this.tableRelativeDateCell;
|
|
94
|
-
}
|
|
95
|
-
get _relativeDateTableCell() {
|
|
96
|
-
return this.relativeDateTableCell;
|
|
97
|
-
}
|
|
98
|
-
get _tableTranslationKeyCell() {
|
|
99
|
-
return this.translationKeyTableCell ?? this.tableTranslationKeyCell;
|
|
100
|
-
}
|
|
101
|
-
get _translationKeyTableCell() {
|
|
102
|
-
return this.translationKeyTableCell;
|
|
103
|
-
}
|
|
104
|
-
get _gridItem() {
|
|
105
|
-
return this.gridItem;
|
|
106
|
-
}
|
|
107
|
-
get _listItem() {
|
|
108
|
-
return this.listItem;
|
|
109
|
-
}
|
|
110
|
-
get data() {
|
|
111
|
-
return this._data;
|
|
112
|
-
}
|
|
113
|
-
set data(value) {
|
|
114
|
-
this._data = value;
|
|
115
|
-
}
|
|
116
|
-
ngOnInit() {
|
|
117
|
-
this.selectedGroupKey = this.defaultGroupKey;
|
|
118
|
-
this.displayedColumns = this.columns;
|
|
119
|
-
if (this.defaultGroupKey) {
|
|
120
|
-
this.displayedColumns = this.columns.filter((column) => column.predefinedGroupKeys?.includes(this.defaultGroupKey));
|
|
121
|
-
}
|
|
122
|
-
this.displayedColumnsChange.emit(this.displayedColumns);
|
|
123
|
-
if (!this.groupSelectionNoGroupSelectedKey) {
|
|
124
|
-
this.groupSelectionNoGroupSelectedKey = 'OCX_INTERACTIVE_DATA_VIEW.NO_GROUP_SELECTED';
|
|
125
|
-
}
|
|
126
|
-
this.firstColumnId = this.columns[0]?.id;
|
|
127
|
-
}
|
|
128
|
-
filtering(event) {
|
|
129
|
-
this.filters = event;
|
|
130
|
-
this.filtered.emit(event);
|
|
131
|
-
}
|
|
132
|
-
sorting(event) {
|
|
133
|
-
this.sortDirection = event.sortDirection;
|
|
134
|
-
this.sortField = event.sortColumn;
|
|
135
|
-
this.sorted.emit(event);
|
|
136
|
-
}
|
|
137
|
-
onDeleteElement(element) {
|
|
138
|
-
if (this.isDeleteItemObserved) {
|
|
139
|
-
this.deleteItem.emit(element);
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
onViewElement(element) {
|
|
143
|
-
if (this.isViewItemObserved) {
|
|
144
|
-
this.viewItem.emit(element);
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
onEditElement(element) {
|
|
148
|
-
if (this.isEditItemObserved) {
|
|
149
|
-
this.editItem.emit(element);
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
onDataViewLayoutChange(layout) {
|
|
153
|
-
this.layout = layout;
|
|
154
|
-
this.dataViewLayoutChange.emit(layout);
|
|
155
|
-
}
|
|
156
|
-
onSortChange($event) {
|
|
157
|
-
this.sortField = $event;
|
|
158
|
-
this.sorted.emit({ sortColumn: this.sortField, sortDirection: this.sortDirection });
|
|
159
|
-
}
|
|
160
|
-
onSortDirectionChange($event) {
|
|
161
|
-
this.sortDirection = $event;
|
|
162
|
-
this.sorted.emit({ sortColumn: this.sortField, sortDirection: this.sortDirection });
|
|
163
|
-
}
|
|
164
|
-
onColumnGroupSelectionChange(event) {
|
|
165
|
-
this.displayedColumns = event.activeColumns;
|
|
166
|
-
this.selectedGroupKey = event.groupKey;
|
|
167
|
-
this.displayedColumnsChange.emit(this.displayedColumns);
|
|
168
|
-
}
|
|
169
|
-
registerEventListenerForDataView() {
|
|
170
|
-
if (this.deleteItem.observed) {
|
|
171
|
-
this.isDeleteItemObserved = true;
|
|
172
|
-
if (!this._dataViewComponent?.deleteItem.observed) {
|
|
173
|
-
this._dataViewComponent?.deleteItem.subscribe((event) => {
|
|
174
|
-
this.onDeleteElement(event);
|
|
175
|
-
});
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
if (this.viewItem.observed) {
|
|
179
|
-
this.isViewItemObserved = true;
|
|
180
|
-
if (!this._dataViewComponent?.viewItem.observed) {
|
|
181
|
-
this._dataViewComponent?.viewItem.subscribe((event) => {
|
|
182
|
-
this.onViewElement(event);
|
|
183
|
-
});
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
if (this.editItem.observed) {
|
|
187
|
-
this.isEditItemObserved = true;
|
|
188
|
-
if (!this._dataViewComponent?.editItem.observed) {
|
|
189
|
-
this._dataViewComponent?.editItem.subscribe((event) => {
|
|
190
|
-
this.onEditElement(event);
|
|
191
|
-
});
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
if (this.selectionChanged.observed) {
|
|
195
|
-
if (!this._dataViewComponent?.selectionChanged.observed) {
|
|
196
|
-
this._dataViewComponent?.selectionChanged.subscribe((event) => {
|
|
197
|
-
this.onRowSelectionChange(event);
|
|
198
|
-
});
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
onColumnSelectionChange(event) {
|
|
203
|
-
this.displayedColumns = event.activeColumns;
|
|
204
|
-
this.selectedGroupKey = this.customGroupKey;
|
|
205
|
-
this.displayedColumnsChange.emit(this.displayedColumns);
|
|
206
|
-
}
|
|
207
|
-
onActionColumnConfigChange(event) {
|
|
208
|
-
this.frozenActionColumn = event.frozenActionColumn;
|
|
209
|
-
this.actionColumnPosition = event.actionColumnPosition;
|
|
210
|
-
}
|
|
211
|
-
onRowSelectionChange(event) {
|
|
212
|
-
if (this.selectionChanged.observed) {
|
|
213
|
-
this.selectionChanged.emit(event);
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
onPageChange(event) {
|
|
217
|
-
this.page = event;
|
|
218
|
-
this.pageChanged.emit(event);
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
InteractiveDataViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: InteractiveDataViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
222
|
-
InteractiveDataViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: InteractiveDataViewComponent, selector: "ocx-interactive-data-view", inputs: { deletePermission: "deletePermission", editPermission: "editPermission", viewPermission: "viewPermission", deleteActionVisibleField: "deleteActionVisibleField", deleteActionEnabledField: "deleteActionEnabledField", viewActionVisibleField: "viewActionVisibleField", viewActionEnabledField: "viewActionEnabledField", editActionVisibleField: "editActionVisibleField", editActionEnabledField: "editActionEnabledField", name: "name", titleLineId: "titleLineId", subtitleLineIds: "subtitleLineIds", supportedViewLayouts: "supportedViewLayouts", columns: "columns", emptyResultsMessage: "emptyResultsMessage", clientSideSorting: "clientSideSorting", clientSideFiltering: "clientSideFiltering", fallbackImage: "fallbackImage", filters: "filters", sortDirection: "sortDirection", sortField: "sortField", sortStates: "sortStates", pageSizes: "pageSizes", pageSize: "pageSize", totalRecordsOnServer: "totalRecordsOnServer", layout: "layout", defaultGroupKey: "defaultGroupKey", customGroupKey: "customGroupKey", groupSelectionNoGroupSelectedKey: "groupSelectionNoGroupSelectedKey", currentPageShowingKey: "currentPageShowingKey", currentPageShowingWithTotalOnServerKey: "currentPageShowingWithTotalOnServerKey", additionalActions: "additionalActions", listGridPaginator: "listGridPaginator", tablePaginator: "tablePaginator", page: "page", selectedRows: "selectedRows", displayedColumns: "displayedColumns", frozenActionColumn: "frozenActionColumn", actionColumnPosition: "actionColumnPosition", paginator: "paginator", data: "data" }, outputs: { filtered: "filtered", sorted: "sorted", deleteItem: "deleteItem", viewItem: "viewItem", editItem: "editItem", dataViewLayoutChange: "dataViewLayoutChange", displayedColumnsChange: "displayedColumnsChange", selectionChanged: "selectionChanged", pageChanged: "pageChanged" }, providers: [{ provide: 'InteractiveDataViewComponent', useExisting: InteractiveDataViewComponent }], queries: [{ propertyName: "tableCell", first: true, predicate: ["tableCell"], descendants: true }, { propertyName: "tableDateCell", first: true, predicate: ["tableDateCell"], descendants: true }, { propertyName: "dateTableCell", first: true, predicate: ["dateTableCell"], descendants: true }, { propertyName: "tableRelativeDateCell", first: true, predicate: ["tableRelativeDateCell"], descendants: true }, { propertyName: "relativeDateTableCell", first: true, predicate: ["relativeDateTableCell"], descendants: true }, { propertyName: "tableTranslationKeyCell", first: true, predicate: ["tableTranslationKeyCell"], descendants: true }, { propertyName: "translationKeyTableCell", first: true, predicate: ["translationKeyTableCell"], descendants: true }, { propertyName: "gridItemSubtitleLines", first: true, predicate: ["gridItemSubtitleLines"], descendants: true }, { propertyName: "listItemSubtitleLines", first: true, predicate: ["listItemSubtitleLines"], descendants: true }, { propertyName: "stringTableCell", first: true, predicate: ["stringTableCell"], descendants: true }, { propertyName: "numberTableCell", first: true, predicate: ["numberTableCell"], descendants: true }, { propertyName: "customTableCell", first: true, predicate: ["customTableCell"], descendants: true }, { propertyName: "gridItem", first: true, predicate: ["gridItem"], descendants: true }, { propertyName: "listItem", first: true, predicate: ["listItem"], descendants: true }, { propertyName: "topCenter", first: true, predicate: ["topCenter"], descendants: true }], viewQueries: [{ propertyName: "dataView", first: true, predicate: DataViewComponent, descendants: true }], ngImport: i0, template: "<div class=\"p-3 border-bottom-1 surface-border\">\n <div class=\"flex flex-wrap justify-content-between align-items-center py-1 gap-2\">\n <ocx-data-layout-selection\n [supportedViewLayouts]=\"supportedViewLayouts\"\n [layout]=\"layout\"\n (dataViewLayoutChange)=\"onDataViewLayoutChange($event)\"\n ></ocx-data-layout-selection>\n\n <div *ngIf=\"topCenter\">\n <ng-container [ngTemplateOutlet]=\"topCenter\"> </ng-container>\n </div>\n\n <div *ngIf=\"layout !== 'table'\" class=\"flex align-items-center gap-2\">\n <ocx-data-list-grid-sorting\n [sortDirection]=\"sortDirection\"\n [sortField]=\"sortField\"\n [columns]=\"columns\"\n [sortStates]=\"sortStates\"\n (sortChange)=\"onSortChange($event)\"\n (sortDirectionChange)=\"onSortDirectionChange($event)\"\n ></ocx-data-list-grid-sorting>\n </div>\n\n <div *ngIf=\"layout === 'table'\" class=\"flex flex-wrap justify-content-between align-items-center gap-2\">\n <ocx-column-group-selection\n [selectedGroupKey]=\"selectedGroupKey\"\n [columns]=\"columns\"\n [defaultGroupKey]=\"defaultGroupKey\"\n [customGroupKey]=\"customGroupKey\"\n [placeholderKey]=\"groupSelectionNoGroupSelectedKey\"\n (groupSelectionChanged)=\"onColumnGroupSelectionChange($event)\"\n ></ocx-column-group-selection>\n\n <ocx-custom-group-column-selector\n [columns]=\"columns\"\n [displayedColumns]=\"displayedColumns\"\n (columnSelectionChanged)=\"onColumnSelectionChange($event)\"\n [frozenActionColumn]=\"frozenActionColumn\"\n [actionColumnPosition]=\"actionColumnPosition\"\n (actionColumnConfigChanged)=\"onActionColumnConfigChange($event)\"\n ></ocx-custom-group-column-selector>\n </div>\n </div>\n</div>\n<div class=\"p-3\">\n <ocx-data-view\n [columns]=\"displayedColumns\"\n [sortStates]=\"sortStates\"\n [sortField]=\"sortField\"\n [filters]=\"filters\"\n [data]=\"data\"\n [sortDirection]=\"sortDirection\"\n [titleLineId]=\"titleLineId || firstColumnId\"\n [subtitleLineIds]=\"subtitleLineIds\"\n [clientSideSorting]=\"clientSideSorting\"\n [clientSideFiltering]=\"clientSideFiltering\"\n [pageSizes]=\"pageSizes\"\n [pageSize]=\"pageSize\"\n [emptyResultsMessage]=\"emptyResultsMessage\"\n [layout]=\"layout\"\n [name]=\"name\"\n [deletePermission]=\"deletePermission\"\n [editPermission]=\"editPermission\"\n [viewPermission]=\"viewPermission\"\n [deleteActionEnabledField]=\"deleteActionEnabledField\"\n [deleteActionVisibleField]=\"deleteActionVisibleField\"\n [editActionEnabledField]=\"editActionEnabledField\"\n [editActionVisibleField]=\"editActionVisibleField\"\n [viewActionEnabledField]=\"viewActionEnabledField\"\n [viewActionVisibleField]=\"viewActionVisibleField\"\n [additionalActions]=\"additionalActions\"\n [listGridPaginator]=\"listGridPaginator\"\n [tablePaginator]=\"tablePaginator\"\n [page]=\"page\"\n (pageChanged)=\"onPageChange($event)\"\n [selectedRows]=\"selectedRows\"\n [frozenActionColumn]=\"frozenActionColumn\"\n [actionColumnPosition]=\"actionColumnPosition\"\n [stringTableCellTemplate]=\"_stringTableCell ? stringTableCell : undefined\"\n [numberTableCellTemplate]=\"_numberTableCell ? numberTableCell : undefined\"\n [customTableCellTemplate]=\"_customTableCell ? customTableCell : undefined\"\n [dateTableCellTemplate]=\"_dateTableCell ? dateTableCell : _tableDateCell ? tableDateCell : undefined\"\n [relativeDateTableCellTemplate]=\"_relativeDateTableCell ? relativeDateTableCell : _tableRelativeDateCell ? tableRelativeDateCell : undefined\"\n [tableCellTemplate]=\"_tableCell ? tableCell : undefined\"\n [translationKeyTableCellTemplate]=\"_translationKeyTableCell ? translationKeyTableCell : _tableTranslationKeyCell ? tableTranslationKeyCell : undefined\"\n [gridItemSubtitleLinesTemplate]=\"_gridItemSubtitleLines ? gridItemSubtitleLines : undefined\"\n [listItemSubtitleLinesTemplate]=\"_listItemSubtitleLines ? listItemSubtitleLines : undefined\"\n [listItemTemplate]=\"_listItem? listItem : undefined\"\n [gridItemTemplate]=\"_gridItem? gridItem : undefined\"\n (sorted)=\"sorting($event)\"\n (filtered)=\"filtering($event)\"\n [totalRecordsOnServer]=\"totalRecordsOnServer\"\n [currentPageShowingKey]=\"currentPageShowingKey\"\n [currentPageShowingWithTotalOnServerKey]=\"currentPageShowingWithTotalOnServerKey\"\n >\n </ocx-data-view>\n</div>\n<ng-template #stringTableCell let-rowObject=\"rowObject\" let-column=\"column\">\n <ng-container\n *ngIf=\"_stringTableCell\"\n [ngTemplateOutlet]=\"_stringTableCell\"\n [ngTemplateOutletContext]=\"{rowObject: rowObject, column:column}\"\n >\n </ng-container\n></ng-template>\n<ng-template #tableDateCell let-rowObject=\"rowObject\" let-column=\"column\">\n <ng-container\n *ngIf=\"_tableDateCell\"\n [ngTemplateOutlet]=\"_tableDateCell\"\n [ngTemplateOutletContext]=\"{rowObject:rowObject, column:column}\"\n >\n </ng-container\n></ng-template>\n<ng-template #dateTableCell let-rowObject=\"rowObject\" let-column=\"column\">\n <ng-container\n *ngIf=\"_dateTableCell\"\n [ngTemplateOutlet]=\"_dateTableCell\"\n [ngTemplateOutletContext]=\"{rowObject:rowObject, column:column}\"\n >\n </ng-container\n></ng-template>\n<ng-template #tableRelativeDateCell let-rowObject=\"rowObject\" let-column=\"column\">\n <ng-container\n *ngIf=\"_tableRelativeDateCell\"\n [ngTemplateOutlet]=\"_tableRelativeDateCell\"\n [ngTemplateOutletContext]=\"{rowObject:rowObject, column:column}\"\n >\n </ng-container\n></ng-template>\n<ng-template #relativeDateTableCell let-rowObject=\"rowObject\" let-column=\"column\">\n <ng-container\n *ngIf=\"_relativeDateTableCell\"\n [ngTemplateOutlet]=\"_relativeDateTableCell\"\n [ngTemplateOutletContext]=\"{rowObject:rowObject, column:column}\"\n >\n </ng-container\n></ng-template>\n<ng-template #tableCell let-rowObject=\"rowObject\" let-column=\"column\">\n <ng-container\n *ngIf=\"_tableCell\"\n [ngTemplateOutlet]=\"_tableCell\"\n [ngTemplateOutletContext]=\"{rowObject: rowObject, column:column}\"\n >\n </ng-container\n></ng-template>\n<ng-template #tableTranslationKeyCell let-rowObject=\"rowObject\" let-column=\"column\">\n <ng-container\n *ngIf=\"_tableTranslationKeyCell\"\n [ngTemplateOutlet]=\"_tableTranslationKeyCell\"\n [ngTemplateOutletContext]=\"{rowObject:rowObject, column:column}\"\n >\n </ng-container\n></ng-template>\n<ng-template #translationKeyTableCell let-rowObject=\"rowObject\" let-column=\"column\">\n <ng-container\n *ngIf=\"_translationKeyTableCell\"\n [ngTemplateOutlet]=\"_translationKeyTableCell\"\n [ngTemplateOutletContext]=\"{rowObject:rowObject, column:column}\"\n >\n </ng-container\n></ng-template>\n<ng-template #gridItemSubtitleLines let-item>\n <ng-container\n *ngIf=\"_gridItemSubtitleLines\"\n [ngTemplateOutlet]=\"_gridItemSubtitleLines\"\n [ngTemplateOutletContext]=\"{$implicit:item}\"\n >\n </ng-container>\n</ng-template>\n<ng-template #listItemSubtitleLines let-item>\n <ng-container\n *ngIf=\"_listItemSubtitleLines\"\n [ngTemplateOutlet]=\"_listItemSubtitleLines\"\n [ngTemplateOutletContext]=\"{$implicit:item}\"\n >\n </ng-container\n></ng-template>\n<ng-template #gridItem let-item>\n <ng-container *ngIf=\"_gridItem\" [ngTemplateOutlet]=\"_gridItem\" [ngTemplateOutletContext]=\"{$implicit:item}\">\n </ng-container\n></ng-template>\n<ng-template #listItem let-item>\n <ng-container *ngIf=\"_listItem\" [ngTemplateOutlet]=\"_listItem\" [ngTemplateOutletContext]=\"{$implicit:item}\">\n </ng-container\n></ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.ColumnGroupSelectionComponent, selector: "ocx-column-group-selection", inputs: ["selectedGroupKey", "columns", "placeholderKey", "defaultGroupKey", "customGroupKey"], outputs: ["groupSelectionChanged"] }, { kind: "component", type: i3.CustomGroupColumnSelectorComponent, selector: "ocx-custom-group-column-selector", inputs: ["columns", "displayedColumns", "dialogTitle", "openButtonTitle", "saveButtonLabel", "cancelButtonLabel", "activeColumnsLabel", "inactiveColumnsLabel", "frozenActionColumn", "actionColumnPosition"], outputs: ["columnSelectionChanged", "actionColumnConfigChanged"] }, { kind: "component", type: i4.DataLayoutSelectionComponent, selector: "ocx-data-layout-selection", inputs: ["supportedViewLayouts", "layout"], outputs: ["dataViewLayoutChange"] }, { kind: "component", type: i5.DataListGridSortingComponent, selector: "ocx-data-list-grid-sorting", inputs: ["columns", "sortStates", "sortDirection", "sortField"], outputs: ["sortChange", "sortDirectionChange", "columnsChange"] }, { kind: "component", type: i6.DataViewComponent, selector: "ocx-data-view", inputs: ["deletePermission", "editPermission", "viewPermission", "deleteActionVisibleField", "deleteActionEnabledField", "viewActionVisibleField", "viewActionEnabledField", "editActionVisibleField", "editActionEnabledField", "data", "name", "titleLineId", "subtitleLineIds", "layout", "columns", "emptyResultsMessage", "clientSideSorting", "clientSideFiltering", "fallbackImage", "filters", "sortField", "sortDirection", "listGridPaginator", "tablePaginator", "page", "totalRecordsOnServer", "currentPageShowingKey", "currentPageShowingWithTotalOnServerKey", "selectedRows", "frozenActionColumn", "actionColumnPosition", "paginator", "sortStates", "pageSizes", "pageSize", "stringTableCellTemplate", "numberTableCellTemplate", "customTableCellTemplate", "dateTableCellTemplate", "tableDateCellTemplate", "tableCellTemplate", "translationKeyTableCellTemplate", "tableTranslationKeyCellTemplate", "gridItemSubtitleLinesTemplate", "listItemSubtitleLinesTemplate", "gridItemTemplate", "listItemTemplate", "relativeDateTableCellTemplate", "tableRelativeDateCellTemplate", "additionalActions"], outputs: ["filtered", "sorted", "deleteItem", "viewItem", "editItem", "selectionChanged", "pageChanged"] }] });
|
|
223
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: InteractiveDataViewComponent, decorators: [{
|
|
224
|
-
type: Component,
|
|
225
|
-
args: [{ selector: 'ocx-interactive-data-view', providers: [{ provide: 'InteractiveDataViewComponent', useExisting: InteractiveDataViewComponent }], template: "<div class=\"p-3 border-bottom-1 surface-border\">\n <div class=\"flex flex-wrap justify-content-between align-items-center py-1 gap-2\">\n <ocx-data-layout-selection\n [supportedViewLayouts]=\"supportedViewLayouts\"\n [layout]=\"layout\"\n (dataViewLayoutChange)=\"onDataViewLayoutChange($event)\"\n ></ocx-data-layout-selection>\n\n <div *ngIf=\"topCenter\">\n <ng-container [ngTemplateOutlet]=\"topCenter\"> </ng-container>\n </div>\n\n <div *ngIf=\"layout !== 'table'\" class=\"flex align-items-center gap-2\">\n <ocx-data-list-grid-sorting\n [sortDirection]=\"sortDirection\"\n [sortField]=\"sortField\"\n [columns]=\"columns\"\n [sortStates]=\"sortStates\"\n (sortChange)=\"onSortChange($event)\"\n (sortDirectionChange)=\"onSortDirectionChange($event)\"\n ></ocx-data-list-grid-sorting>\n </div>\n\n <div *ngIf=\"layout === 'table'\" class=\"flex flex-wrap justify-content-between align-items-center gap-2\">\n <ocx-column-group-selection\n [selectedGroupKey]=\"selectedGroupKey\"\n [columns]=\"columns\"\n [defaultGroupKey]=\"defaultGroupKey\"\n [customGroupKey]=\"customGroupKey\"\n [placeholderKey]=\"groupSelectionNoGroupSelectedKey\"\n (groupSelectionChanged)=\"onColumnGroupSelectionChange($event)\"\n ></ocx-column-group-selection>\n\n <ocx-custom-group-column-selector\n [columns]=\"columns\"\n [displayedColumns]=\"displayedColumns\"\n (columnSelectionChanged)=\"onColumnSelectionChange($event)\"\n [frozenActionColumn]=\"frozenActionColumn\"\n [actionColumnPosition]=\"actionColumnPosition\"\n (actionColumnConfigChanged)=\"onActionColumnConfigChange($event)\"\n ></ocx-custom-group-column-selector>\n </div>\n </div>\n</div>\n<div class=\"p-3\">\n <ocx-data-view\n [columns]=\"displayedColumns\"\n [sortStates]=\"sortStates\"\n [sortField]=\"sortField\"\n [filters]=\"filters\"\n [data]=\"data\"\n [sortDirection]=\"sortDirection\"\n [titleLineId]=\"titleLineId || firstColumnId\"\n [subtitleLineIds]=\"subtitleLineIds\"\n [clientSideSorting]=\"clientSideSorting\"\n [clientSideFiltering]=\"clientSideFiltering\"\n [pageSizes]=\"pageSizes\"\n [pageSize]=\"pageSize\"\n [emptyResultsMessage]=\"emptyResultsMessage\"\n [layout]=\"layout\"\n [name]=\"name\"\n [deletePermission]=\"deletePermission\"\n [editPermission]=\"editPermission\"\n [viewPermission]=\"viewPermission\"\n [deleteActionEnabledField]=\"deleteActionEnabledField\"\n [deleteActionVisibleField]=\"deleteActionVisibleField\"\n [editActionEnabledField]=\"editActionEnabledField\"\n [editActionVisibleField]=\"editActionVisibleField\"\n [viewActionEnabledField]=\"viewActionEnabledField\"\n [viewActionVisibleField]=\"viewActionVisibleField\"\n [additionalActions]=\"additionalActions\"\n [listGridPaginator]=\"listGridPaginator\"\n [tablePaginator]=\"tablePaginator\"\n [page]=\"page\"\n (pageChanged)=\"onPageChange($event)\"\n [selectedRows]=\"selectedRows\"\n [frozenActionColumn]=\"frozenActionColumn\"\n [actionColumnPosition]=\"actionColumnPosition\"\n [stringTableCellTemplate]=\"_stringTableCell ? stringTableCell : undefined\"\n [numberTableCellTemplate]=\"_numberTableCell ? numberTableCell : undefined\"\n [customTableCellTemplate]=\"_customTableCell ? customTableCell : undefined\"\n [dateTableCellTemplate]=\"_dateTableCell ? dateTableCell : _tableDateCell ? tableDateCell : undefined\"\n [relativeDateTableCellTemplate]=\"_relativeDateTableCell ? relativeDateTableCell : _tableRelativeDateCell ? tableRelativeDateCell : undefined\"\n [tableCellTemplate]=\"_tableCell ? tableCell : undefined\"\n [translationKeyTableCellTemplate]=\"_translationKeyTableCell ? translationKeyTableCell : _tableTranslationKeyCell ? tableTranslationKeyCell : undefined\"\n [gridItemSubtitleLinesTemplate]=\"_gridItemSubtitleLines ? gridItemSubtitleLines : undefined\"\n [listItemSubtitleLinesTemplate]=\"_listItemSubtitleLines ? listItemSubtitleLines : undefined\"\n [listItemTemplate]=\"_listItem? listItem : undefined\"\n [gridItemTemplate]=\"_gridItem? gridItem : undefined\"\n (sorted)=\"sorting($event)\"\n (filtered)=\"filtering($event)\"\n [totalRecordsOnServer]=\"totalRecordsOnServer\"\n [currentPageShowingKey]=\"currentPageShowingKey\"\n [currentPageShowingWithTotalOnServerKey]=\"currentPageShowingWithTotalOnServerKey\"\n >\n </ocx-data-view>\n</div>\n<ng-template #stringTableCell let-rowObject=\"rowObject\" let-column=\"column\">\n <ng-container\n *ngIf=\"_stringTableCell\"\n [ngTemplateOutlet]=\"_stringTableCell\"\n [ngTemplateOutletContext]=\"{rowObject: rowObject, column:column}\"\n >\n </ng-container\n></ng-template>\n<ng-template #tableDateCell let-rowObject=\"rowObject\" let-column=\"column\">\n <ng-container\n *ngIf=\"_tableDateCell\"\n [ngTemplateOutlet]=\"_tableDateCell\"\n [ngTemplateOutletContext]=\"{rowObject:rowObject, column:column}\"\n >\n </ng-container\n></ng-template>\n<ng-template #dateTableCell let-rowObject=\"rowObject\" let-column=\"column\">\n <ng-container\n *ngIf=\"_dateTableCell\"\n [ngTemplateOutlet]=\"_dateTableCell\"\n [ngTemplateOutletContext]=\"{rowObject:rowObject, column:column}\"\n >\n </ng-container\n></ng-template>\n<ng-template #tableRelativeDateCell let-rowObject=\"rowObject\" let-column=\"column\">\n <ng-container\n *ngIf=\"_tableRelativeDateCell\"\n [ngTemplateOutlet]=\"_tableRelativeDateCell\"\n [ngTemplateOutletContext]=\"{rowObject:rowObject, column:column}\"\n >\n </ng-container\n></ng-template>\n<ng-template #relativeDateTableCell let-rowObject=\"rowObject\" let-column=\"column\">\n <ng-container\n *ngIf=\"_relativeDateTableCell\"\n [ngTemplateOutlet]=\"_relativeDateTableCell\"\n [ngTemplateOutletContext]=\"{rowObject:rowObject, column:column}\"\n >\n </ng-container\n></ng-template>\n<ng-template #tableCell let-rowObject=\"rowObject\" let-column=\"column\">\n <ng-container\n *ngIf=\"_tableCell\"\n [ngTemplateOutlet]=\"_tableCell\"\n [ngTemplateOutletContext]=\"{rowObject: rowObject, column:column}\"\n >\n </ng-container\n></ng-template>\n<ng-template #tableTranslationKeyCell let-rowObject=\"rowObject\" let-column=\"column\">\n <ng-container\n *ngIf=\"_tableTranslationKeyCell\"\n [ngTemplateOutlet]=\"_tableTranslationKeyCell\"\n [ngTemplateOutletContext]=\"{rowObject:rowObject, column:column}\"\n >\n </ng-container\n></ng-template>\n<ng-template #translationKeyTableCell let-rowObject=\"rowObject\" let-column=\"column\">\n <ng-container\n *ngIf=\"_translationKeyTableCell\"\n [ngTemplateOutlet]=\"_translationKeyTableCell\"\n [ngTemplateOutletContext]=\"{rowObject:rowObject, column:column}\"\n >\n </ng-container\n></ng-template>\n<ng-template #gridItemSubtitleLines let-item>\n <ng-container\n *ngIf=\"_gridItemSubtitleLines\"\n [ngTemplateOutlet]=\"_gridItemSubtitleLines\"\n [ngTemplateOutletContext]=\"{$implicit:item}\"\n >\n </ng-container>\n</ng-template>\n<ng-template #listItemSubtitleLines let-item>\n <ng-container\n *ngIf=\"_listItemSubtitleLines\"\n [ngTemplateOutlet]=\"_listItemSubtitleLines\"\n [ngTemplateOutletContext]=\"{$implicit:item}\"\n >\n </ng-container\n></ng-template>\n<ng-template #gridItem let-item>\n <ng-container *ngIf=\"_gridItem\" [ngTemplateOutlet]=\"_gridItem\" [ngTemplateOutletContext]=\"{$implicit:item}\">\n </ng-container\n></ng-template>\n<ng-template #listItem let-item>\n <ng-container *ngIf=\"_listItem\" [ngTemplateOutlet]=\"_listItem\" [ngTemplateOutletContext]=\"{$implicit:item}\">\n </ng-container\n></ng-template>\n" }]
|
|
226
|
-
}], propDecorators: { dataView: [{
|
|
227
|
-
type: ViewChild,
|
|
228
|
-
args: [DataViewComponent]
|
|
229
|
-
}], deletePermission: [{
|
|
230
|
-
type: Input
|
|
231
|
-
}], editPermission: [{
|
|
232
|
-
type: Input
|
|
233
|
-
}], viewPermission: [{
|
|
234
|
-
type: Input
|
|
235
|
-
}], deleteActionVisibleField: [{
|
|
236
|
-
type: Input
|
|
237
|
-
}], deleteActionEnabledField: [{
|
|
238
|
-
type: Input
|
|
239
|
-
}], viewActionVisibleField: [{
|
|
240
|
-
type: Input
|
|
241
|
-
}], viewActionEnabledField: [{
|
|
242
|
-
type: Input
|
|
243
|
-
}], editActionVisibleField: [{
|
|
244
|
-
type: Input
|
|
245
|
-
}], editActionEnabledField: [{
|
|
246
|
-
type: Input
|
|
247
|
-
}], name: [{
|
|
248
|
-
type: Input
|
|
249
|
-
}], titleLineId: [{
|
|
250
|
-
type: Input
|
|
251
|
-
}], subtitleLineIds: [{
|
|
252
|
-
type: Input
|
|
253
|
-
}], supportedViewLayouts: [{
|
|
254
|
-
type: Input
|
|
255
|
-
}], columns: [{
|
|
256
|
-
type: Input
|
|
257
|
-
}], emptyResultsMessage: [{
|
|
258
|
-
type: Input
|
|
259
|
-
}], clientSideSorting: [{
|
|
260
|
-
type: Input
|
|
261
|
-
}], clientSideFiltering: [{
|
|
262
|
-
type: Input
|
|
263
|
-
}], fallbackImage: [{
|
|
264
|
-
type: Input
|
|
265
|
-
}], filters: [{
|
|
266
|
-
type: Input
|
|
267
|
-
}], sortDirection: [{
|
|
268
|
-
type: Input
|
|
269
|
-
}], sortField: [{
|
|
270
|
-
type: Input
|
|
271
|
-
}], sortStates: [{
|
|
272
|
-
type: Input
|
|
273
|
-
}], pageSizes: [{
|
|
274
|
-
type: Input
|
|
275
|
-
}], pageSize: [{
|
|
276
|
-
type: Input
|
|
277
|
-
}], totalRecordsOnServer: [{
|
|
278
|
-
type: Input
|
|
279
|
-
}], layout: [{
|
|
280
|
-
type: Input
|
|
281
|
-
}], defaultGroupKey: [{
|
|
282
|
-
type: Input
|
|
283
|
-
}], customGroupKey: [{
|
|
284
|
-
type: Input
|
|
285
|
-
}], groupSelectionNoGroupSelectedKey: [{
|
|
286
|
-
type: Input
|
|
287
|
-
}], currentPageShowingKey: [{
|
|
288
|
-
type: Input
|
|
289
|
-
}], currentPageShowingWithTotalOnServerKey: [{
|
|
290
|
-
type: Input
|
|
291
|
-
}], additionalActions: [{
|
|
292
|
-
type: Input
|
|
293
|
-
}], listGridPaginator: [{
|
|
294
|
-
type: Input
|
|
295
|
-
}], tablePaginator: [{
|
|
296
|
-
type: Input
|
|
297
|
-
}], page: [{
|
|
298
|
-
type: Input
|
|
299
|
-
}], selectedRows: [{
|
|
300
|
-
type: Input
|
|
301
|
-
}], displayedColumns: [{
|
|
302
|
-
type: Input
|
|
303
|
-
}], frozenActionColumn: [{
|
|
304
|
-
type: Input
|
|
305
|
-
}], actionColumnPosition: [{
|
|
306
|
-
type: Input
|
|
307
|
-
}], tableCell: [{
|
|
308
|
-
type: ContentChild,
|
|
309
|
-
args: ['tableCell']
|
|
310
|
-
}], tableDateCell: [{
|
|
311
|
-
type: ContentChild,
|
|
312
|
-
args: ['tableDateCell']
|
|
313
|
-
}], dateTableCell: [{
|
|
314
|
-
type: ContentChild,
|
|
315
|
-
args: ['dateTableCell']
|
|
316
|
-
}], tableRelativeDateCell: [{
|
|
317
|
-
type: ContentChild,
|
|
318
|
-
args: ['tableRelativeDateCell']
|
|
319
|
-
}], relativeDateTableCell: [{
|
|
320
|
-
type: ContentChild,
|
|
321
|
-
args: ['relativeDateTableCell']
|
|
322
|
-
}], tableTranslationKeyCell: [{
|
|
323
|
-
type: ContentChild,
|
|
324
|
-
args: ['tableTranslationKeyCell']
|
|
325
|
-
}], translationKeyTableCell: [{
|
|
326
|
-
type: ContentChild,
|
|
327
|
-
args: ['translationKeyTableCell']
|
|
328
|
-
}], gridItemSubtitleLines: [{
|
|
329
|
-
type: ContentChild,
|
|
330
|
-
args: ['gridItemSubtitleLines']
|
|
331
|
-
}], listItemSubtitleLines: [{
|
|
332
|
-
type: ContentChild,
|
|
333
|
-
args: ['listItemSubtitleLines']
|
|
334
|
-
}], stringTableCell: [{
|
|
335
|
-
type: ContentChild,
|
|
336
|
-
args: ['stringTableCell']
|
|
337
|
-
}], numberTableCell: [{
|
|
338
|
-
type: ContentChild,
|
|
339
|
-
args: ['numberTableCell']
|
|
340
|
-
}], customTableCell: [{
|
|
341
|
-
type: ContentChild,
|
|
342
|
-
args: ['customTableCell']
|
|
343
|
-
}], gridItem: [{
|
|
344
|
-
type: ContentChild,
|
|
345
|
-
args: ['gridItem']
|
|
346
|
-
}], listItem: [{
|
|
347
|
-
type: ContentChild,
|
|
348
|
-
args: ['listItem']
|
|
349
|
-
}], topCenter: [{
|
|
350
|
-
type: ContentChild,
|
|
351
|
-
args: ['topCenter']
|
|
352
|
-
}], filtered: [{
|
|
353
|
-
type: Output
|
|
354
|
-
}], sorted: [{
|
|
355
|
-
type: Output
|
|
356
|
-
}], deleteItem: [{
|
|
357
|
-
type: Output
|
|
358
|
-
}], viewItem: [{
|
|
359
|
-
type: Output
|
|
360
|
-
}], editItem: [{
|
|
361
|
-
type: Output
|
|
362
|
-
}], dataViewLayoutChange: [{
|
|
363
|
-
type: Output
|
|
364
|
-
}], displayedColumnsChange: [{
|
|
365
|
-
type: Output
|
|
366
|
-
}], selectionChanged: [{
|
|
367
|
-
type: Output
|
|
368
|
-
}], pageChanged: [{
|
|
369
|
-
type: Output
|
|
370
|
-
}], paginator: [{
|
|
371
|
-
type: Input
|
|
372
|
-
}], data: [{
|
|
373
|
-
type: Input
|
|
374
|
-
}] } });
|
|
375
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3RpdmUtZGF0YS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1hY2NlbGVyYXRvci9zcmMvbGliL2NvbXBvbmVudHMvaW50ZXJhY3RpdmUtZGF0YS12aWV3L2ludGVyYWN0aXZlLWRhdGEtdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYWNjZWxlcmF0b3Ivc3JjL2xpYi9jb21wb25lbnRzL2ludGVyYWN0aXZlLWRhdGEtdmlldy9pbnRlcmFjdGl2ZS1kYXRhLXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQWUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBSXBILE9BQU8sRUFBRSxpQkFBaUIsRUFBbUIsTUFBTSxrQ0FBa0MsQ0FBQTs7Ozs7Ozs7QUFjckYsTUFBTSxPQUFPLDRCQUE0QjtJQU56QztRQXlCVyxTQUFJLEdBQUcsTUFBTSxDQUFBO1FBRWIsb0JBQWUsR0FBYSxFQUFFLENBQUE7UUFDOUIseUJBQW9CLEdBQWtDLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQTtRQUMvRSxZQUFPLEdBQXNCLEVBQUUsQ0FBQTtRQUUvQixzQkFBaUIsR0FBRyxJQUFJLENBQUE7UUFDeEIsd0JBQW1CLEdBQUcsSUFBSSxDQUFBO1FBQzFCLGtCQUFhLEdBQUcsaUJBQWlCLENBQUE7UUFDakMsWUFBTyxHQUFhLEVBQUUsQ0FBQTtRQUN0QixrQkFBYSx1Q0FBNEM7UUFDekQsY0FBUyxHQUFRLEVBQUUsQ0FBQTtRQUNuQixlQUFVLEdBQXdCOzs7O1NBSTFDLENBQUE7UUFDUSxjQUFTLEdBQWEsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUs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Qyx1QkFBdUI7Z0JBQ0UscUJBQXFCO3NCQUEzRCxZQUFZO3VCQUFDLHVCQUF1QjtnQkFDSixlQUFlO3NCQUEvQyxZQUFZO3VCQUFDLGlCQUFpQjtnQkFDRSxlQUFlO3NCQUEvQyxZQUFZO3VCQUFDLGlCQUFpQjtnQkFDRSxlQUFlO3NCQUEvQyxZQUFZO3VCQUFDLGlCQUFpQjtnQkFDTCxRQUFRO3NCQUFqQyxZQUFZO3VCQUFDLFVBQVU7Z0JBQ0UsUUFBUTtzQkFBakMsWUFBWTt1QkFBQyxVQUFVO2dCQUNHLFNBQVM7c0JBQW5DLFlBQVk7dUJBQUMsV0FBVztnQkFFZixRQUFRO3NCQUFqQixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxvQkFBb0I7c0JBQTdCLE1BQU07Z0JBQ0csc0JBQXNCO3NCQUEvQixNQUFNO2dCQUNHLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFFRyxXQUFXO3NCQUFwQixNQUFNO2dCQVFILFNBQVM7c0JBRFosS0FBSztnQkFzREYsSUFBSTtzQkFEUCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IERhdGFUYWJsZUNvbHVtbiB9IGZyb20gJy4uLy4uL21vZGVsL2RhdGEtdGFibGUtY29sdW1uLm1vZGVsJ1xuaW1wb3J0IHsgRGF0YVNvcnREaXJlY3Rpb24gfSBmcm9tICcuLi8uLi9tb2RlbC9kYXRhLXNvcnQtZGlyZWN0aW9uJ1xuaW1wb3J0IHsgRmlsdGVyLCBSb3csIFNvcnQgfSBmcm9tICcuLi9kYXRhLXRhYmxlL2RhdGEtdGFibGUuY29tcG9uZW50J1xuaW1wb3J0IHsgRGF0YVZpZXdDb21wb25lbnQsIFJvd0xpc3RHcmlkRGF0YSB9IGZyb20gJy4uL2RhdGEtdmlldy9kYXRhLXZpZXcuY29tcG9uZW50J1xuaW1wb3J0IHsgR3JvdXBTZWxlY3Rpb25DaGFuZ2VkRXZlbnQgfSBmcm9tICcuLi9jb2x1bW4tZ3JvdXAtc2VsZWN0aW9uL2NvbHVtbi1ncm91cC1zZWxlY3Rpb24uY29tcG9uZW50J1xuaW1wb3J0IHtcbiAgQWN0aW9uQ29sdW1uQ2hhbmdlZEV2ZW50LFxuICBDb2x1bW5TZWxlY3Rpb25DaGFuZ2VkRXZlbnQsXG59IGZyb20gJy4uL2N1c3RvbS1ncm91cC1jb2x1bW4tc2VsZWN0b3IvY3VzdG9tLWdyb3VwLWNvbHVtbi1zZWxlY3Rvci5jb21wb25lbnQnXG5pbXBvcnQgeyBEYXRhQWN0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWwvZGF0YS1hY3Rpb24nXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ29jeC1pbnRlcmFjdGl2ZS1kYXRhLXZpZXcnLFxuICB0ZW1wbGF0ZVVybDogJy4vaW50ZXJhY3RpdmUtZGF0YS12aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaW50ZXJhY3RpdmUtZGF0YS12aWV3LmNvbXBvbmVudC5jc3MnXSxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiAnSW50ZXJhY3RpdmVEYXRhVmlld0NvbXBvbmVudCcsIHVzZUV4aXN0aW5nOiBJbnRlcmFjdGl2ZURhdGFWaWV3Q29tcG9uZW50IH1dLFxufSlcbmV4cG9ydCBjbGFzcyBJbnRlcmFjdGl2ZURhdGFWaWV3Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgX2RhdGFWaWV3Q29tcG9uZW50OiBEYXRhVmlld0NvbXBvbmVudCB8IHVuZGVmaW5lZFxuICBAVmlld0NoaWxkKERhdGFWaWV3Q29tcG9uZW50KSBzZXQgZGF0YVZpZXcocmVmOiBEYXRhVmlld0NvbXBvbmVudCB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX2RhdGFWaWV3Q29tcG9uZW50ID0gcmVmXG4gICAgdGhpcy5yZWdpc3RlckV2ZW50TGlzdGVuZXJGb3JEYXRhVmlldygpXG4gIH1cbiAgZ2V0IGRhdGFWaWV3KCk6IERhdGFWaWV3Q29tcG9uZW50IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fZGF0YVZpZXdDb21wb25lbnRcbiAgfVxuXG4gIEBJbnB1dCgpIGRlbGV0ZVBlcm1pc3Npb246IHN0cmluZyB8IHVuZGVmaW5lZFxuICBASW5wdXQoKSBlZGl0UGVybWlzc2lvbjogc3RyaW5nIHwgdW5kZWZpbmVkXG4gIEBJbnB1dCgpIHZpZXdQZXJtaXNzaW9uOiBzdHJpbmcgfCB1bmRlZmluZWRcbiAgQElucHV0KCkgZGVsZXRlQWN0aW9uVmlzaWJsZUZpZWxkOiBzdHJpbmcgfCB1bmRlZmluZWRcbiAgQElucHV0KCkgZGVsZXRlQWN0aW9uRW5hYmxlZEZpZWxkOiBzdHJpbmcgfCB1bmRlZmluZWRcbiAgQElucHV0KCkgdmlld0FjdGlvblZpc2libGVGaWVsZDogc3RyaW5nIHwgdW5kZWZpbmVkXG4gIEBJbnB1dCgpIHZpZXdBY3Rpb25FbmFibGVkRmllbGQ6IHN0cmluZyB8IHVuZGVmaW5lZFxuICBASW5wdXQoKSBlZGl0QWN0aW9uVmlzaWJsZUZpZWxkOiBzdHJpbmcgfCB1bmRlZmluZWRcbiAgQElucHV0KCkgZWRpdEFjdGlvbkVuYWJsZWRGaWVsZDogc3RyaW5nIHwgdW5kZWZpbmVkXG4gIEBJbnB1dCgpIG5hbWUgPSAnRGF0YSdcbiAgQElucHV0KCkgdGl0bGVMaW5lSWQ6IHN0cmluZyB8IHVuZGVmaW5lZFxuICBASW5wdXQoKSBzdWJ0aXRsZUxpbmVJZHM6IHN0cmluZ1tdID0gW11cbiAgQElucHV0KCkgc3VwcG9ydGVkVmlld0xheW91dHM6ICgnZ3JpZCcgfCAnbGlzdCcgfCAndGFibGUnKVtdID0gWydncmlkJywgJ2xpc3QnLCAndGFibGUnXVxuICBASW5wdXQoKSBjb2x1bW5zOiBEYXRhVGFibGVDb2x1bW5bXSA9IFtdXG4gIEBJbnB1dCgpIGVtcHR5UmVzdWx0c01lc3NhZ2U6IHN0cmluZyB8IHVuZGVmaW5lZFxuICBASW5wdXQoKSBjbGllbnRTaWRlU29ydGluZyA9IHRydWVcbiAgQElucHV0KCkgY2xpZW50U2lkZUZpbHRlcmluZyA9IHRydWVcbiAgQElucHV0KCkgZmFsbGJhY2tJbWFnZSA9ICdwbGFjZWhvbGRlci5wbmcnXG4gIEBJbnB1dCgpIGZpbHRlcnM6IEZpbHRlcltdID0gW11cbiAgQElucHV0KCkgc29ydERpcmVjdGlvbjogRGF0YVNvcnREaXJlY3Rpb24gPSBEYXRhU29ydERpcmVjdGlvbi5OT05FXG4gIEBJbnB1dCgpIHNvcnRGaWVsZDogYW55ID0gJydcbiAgQElucHV0KCkgc29ydFN0YXRlczogRGF0YVNvcnREaXJlY3Rpb25bXSA9IFtcbiAgICBEYXRhU29ydERpcmVjdGlvbi5BU0NFTkRJTkcsXG4gICAgRGF0YVNvcnREaXJlY3Rpb24uREVTQ0VORElORyxcbiAgICBEYXRhU29ydERpcmVjdGlvbi5OT05FLFxuICBdXG4gIEBJbnB1dCgpIHBhZ2VTaXplczogbnVtYmVyW10gPSBbMTAsIDI1LCA1MF1cbiAgQElucHV0KCkgcGFnZVNpemU6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgdG90YWxSZWNvcmRzT25TZXJ2ZXI6IG51bWJlciB8IHVuZGVmaW5lZFxuICBASW5wdXQoKSBsYXlvdXQ6ICdncmlkJyB8ICdsaXN0JyB8ICd0YWJsZScgPSAndGFibGUnXG4gIEBJbnB1dCgpIGRlZmF1bHRHcm91cEtleSA9ICcnXG4gIEBJbnB1dCgpIGN1c3RvbUdyb3VwS2V5ID0gJ09DWF9JTlRFUkFDVElWRV9EQVRBX1ZJRVcuQ1VTVE9NX0dST1VQJ1xuICBASW5wdXQoKSBncm91cFNlbGVjdGlvbk5vR3JvdXBTZWxlY3RlZEtleSA9ICdPQ1hfSU5URVJBQ1RJVkVfREFUQV9WSUVXLk5PX0dST1VQX1NFTEVDVEVEJ1xuICBASW5wdXQoKSBjdXJyZW50UGFnZVNob3dpbmdLZXkgPSAnT0NYX0RBVEFfVEFCTEUuU0hPV0lORydcbiAgQElucHV0KCkgY3VycmVudFBhZ2VTaG93aW5nV2l0aFRvdGFsT25TZXJ2ZXJLZXkgPSAnT0NYX0RBVEFfVEFCTEUuU0hPV0lOR19XSVRIX1RPVEFMX09OX1NFUlZFUidcbiAgQElucHV0KCkgYWRkaXRpb25hbEFjdGlvbnM6IERhdGFBY3Rpb25bXSA9IFtdXG4gIEBJbnB1dCgpIGxpc3RHcmlkUGFnaW5hdG9yID0gdHJ1ZVxuICBASW5wdXQoKSB0YWJsZVBhZ2luYXRvciA9IHRydWVcbiAgQElucHV0KCkgcGFnZSA9IDBcbiAgQElucHV0KCkgc2VsZWN0ZWRSb3dzOiBSb3dbXSA9IFtdXG4gIEBJbnB1dCgpIGRpc3BsYXllZENvbHVtbnM6IERhdGFUYWJsZUNvbHVtbltdID0gW11cbiAgQElucHV0KCkgZnJvemVuQWN0aW9uQ29sdW1uID0gZmFsc2VcbiAgQElucHV0KCkgYWN0aW9uQ29sdW1uUG9zaXRpb246ICdsZWZ0JyB8ICdyaWdodCcgPSAncmlnaHQnXG4gIEBDb250ZW50Q2hpbGQoJ3RhYmxlQ2VsbCcpIHRhYmxlQ2VsbDogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZFxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgV2lsbCBiZSByZXBsYWNlZCBieSBkYXRlVGFibGVDZWxsXG4gICAqL1xuICBAQ29udGVudENoaWxkKCd0YWJsZURhdGVDZWxsJykgdGFibGVEYXRlQ2VsbDogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZFxuICBAQ29udGVudENoaWxkKCdkYXRlVGFibGVDZWxsJykgZGF0ZVRhYmxlQ2VsbDogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZFxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBXaWxsIGJlIHJlcGxhY2VkIGJ5IHJlbGF0aXZlRGF0ZVRhYmxlQ2VsbFxuICAgKi9cbiAgQENvbnRlbnRDaGlsZCgndGFibGVSZWxhdGl2ZURhdGVDZWxsJykgdGFibGVSZWxhdGl2ZURhdGVDZWxsOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkXG4gIEBDb250ZW50Q2hpbGQoJ3JlbGF0aXZlRGF0ZVRhYmxlQ2VsbCcpIHJlbGF0aXZlRGF0ZVRhYmxlQ2VsbDogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZFxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBXaWxsIGJlIHJlcGxhY2VkIGJ5IHRyYW5zbGF0aW9uS2V5VGFibGVDZWxsXG4gICAqL1xuICBAQ29udGVudENoaWxkKCd0YWJsZVRyYW5zbGF0aW9uS2V5Q2VsbCcpIHRhYmxlVHJhbnNsYXRpb25LZXlDZWxsOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkXG4gIEBDb250ZW50Q2hpbGQoJ3RyYW5zbGF0aW9uS2V5VGFibGVDZWxsJykgdHJhbnNsYXRpb25LZXlUYWJsZUNlbGw6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWRcblxuICBAQ29udGVudENoaWxkKCdncmlkSXRlbVN1YnRpdGxlTGluZXMnKSBncmlkSXRlbVN1YnRpdGxlTGluZXM6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWRcbiAgQENvbnRlbnRDaGlsZCgnbGlzdEl0ZW1TdWJ0aXRsZUxpbmVzJykgbGlzdEl0ZW1TdWJ0aXRsZUxpbmVzOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkXG4gIEBDb250ZW50Q2hpbGQoJ3N0cmluZ1RhYmxlQ2VsbCcpIHN0cmluZ1RhYmxlQ2VsbDogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZFxuICBAQ29udGVudENoaWxkKCdudW1iZXJUYWJsZUNlbGwnKSBudW1iZXJUYWJsZUNlbGw6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWRcbiAgQENvbnRlbnRDaGlsZCgnY3VzdG9tVGFibGVDZWxsJykgY3VzdG9tVGFibGVDZWxsOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkXG4gIEBDb250ZW50Q2hpbGQoJ2dyaWRJdGVtJykgZ3JpZEl0ZW06IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWRcbiAgQENvbnRlbnRDaGlsZCgnbGlzdEl0ZW0nKSBsaXN0SXRlbTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZFxuICBAQ29udGVudENoaWxkKCd0b3BDZW50ZXInKSB0b3BDZW50ZXI6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWRcblxuICBAT3V0cHV0KCkgZmlsdGVyZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEZpbHRlcltdPigpXG4gIEBPdXRwdXQoKSBzb3J0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFNvcnQ+KClcbiAgQE91dHB1dCgpIGRlbGV0ZUl0ZW0gPSBuZXcgRXZlbnRFbWl0dGVyPFJvd0xpc3RHcmlkRGF0YT4oKVxuICBAT3V0cHV0KCkgdmlld0l0ZW0gPSBuZXcgRXZlbnRFbWl0dGVyPFJvd0xpc3RHcmlkRGF0YT4oKVxuICBAT3V0cHV0KCkgZWRpdEl0ZW0gPSBuZXcgRXZlbnRFbWl0dGVyPFJvd0xpc3RHcmlkRGF0YT4oKVxuICBAT3V0cHV0KCkgZGF0YVZpZXdMYXlvdXRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPCdncmlkJyB8ICdsaXN0JyB8ICd0YWJsZSc+KClcbiAgQE91dHB1dCgpIGRpc3BsYXllZENvbHVtbnNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGFUYWJsZUNvbHVtbltdPigpXG4gIEBPdXRwdXQoKSBzZWxlY3Rpb25DaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Um93W10+ID0gbmV3IEV2ZW50RW1pdHRlcigpXG5cbiAgQE91dHB1dCgpIHBhZ2VDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXIoKVxuICBzZWxlY3RlZEdyb3VwS2V5ID0gJydcbiAgaXNEZWxldGVJdGVtT2JzZXJ2ZWQ6IGJvb2xlYW4gfCB1bmRlZmluZWRcbiAgaXNWaWV3SXRlbU9ic2VydmVkOiBib29sZWFuIHwgdW5kZWZpbmVkXG4gIGlzRWRpdEl0ZW1PYnNlcnZlZDogYm9vbGVhbiB8IHVuZGVmaW5lZFxuICBmaXJzdENvbHVtbklkOiBzdHJpbmcgfCB1bmRlZmluZWRcblxuICBASW5wdXQoKVxuICBnZXQgcGFnaW5hdG9yKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmxpc3RHcmlkUGFnaW5hdG9yICYmIHRoaXMudGFibGVQYWdpbmF0b3JcbiAgfVxuICBzZXQgcGFnaW5hdG9yKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5saXN0R3JpZFBhZ2luYXRvciA9IHZhbHVlXG4gICAgdGhpcy50YWJsZVBhZ2luYXRvciA9IHZhbHVlXG4gIH1cblxuICBnZXQgX2dyaWRJdGVtU3VidGl0bGVMaW5lcygpOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5ncmlkSXRlbVN1YnRpdGxlTGluZXNcbiAgfVxuICBnZXQgX2xpc3RJdGVtU3VidGl0bGVMaW5lcygpOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5saXN0SXRlbVN1YnRpdGxlTGluZXNcbiAgfVxuICBnZXQgX3RhYmxlQ2VsbCgpOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy50YWJsZUNlbGxcbiAgfVxuICBnZXQgX3N0cmluZ1RhYmxlQ2VsbCgpOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5zdHJpbmdUYWJsZUNlbGxcbiAgfVxuICBnZXQgX251bWJlclRhYmxlQ2VsbCgpOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5udW1iZXJUYWJsZUNlbGxcbiAgfVxuICBnZXQgX2N1c3RvbVRhYmxlQ2VsbCgpOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5jdXN0b21UYWJsZUNlbGxcbiAgfVxuICBnZXQgX3RhYmxlRGF0ZUNlbGwoKTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuZGF0ZVRhYmxlQ2VsbCA/PyB0aGlzLnRhYmxlRGF0ZUNlbGxcbiAgfVxuICBnZXQgX2RhdGVUYWJsZUNlbGwoKTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuZGF0ZVRhYmxlQ2VsbFxuICB9XG4gIGdldCBfdGFibGVSZWxhdGl2ZURhdGVDZWxsKCk6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnJlbGF0aXZlRGF0ZVRhYmxlQ2VsbCA/PyB0aGlzLnRhYmxlUmVsYXRpdmVEYXRlQ2VsbFxuICB9XG4gIGdldCBfcmVsYXRpdmVEYXRlVGFibGVDZWxsKCk6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnJlbGF0aXZlRGF0ZVRhYmxlQ2VsbFxuICB9XG4gIGdldCBfdGFibGVUcmFuc2xhdGlvbktleUNlbGwoKTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRpb25LZXlUYWJsZUNlbGwgPz8gdGhpcy50YWJsZVRyYW5zbGF0aW9uS2V5Q2VsbFxuICB9XG4gIGdldCBfdHJhbnNsYXRpb25LZXlUYWJsZUNlbGwoKTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRpb25LZXlUYWJsZUNlbGxcbiAgfVxuICBnZXQgX2dyaWRJdGVtKCk6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmdyaWRJdGVtXG4gIH1cbiAgZ2V0IF9saXN0SXRlbSgpOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5saXN0SXRlbVxuICB9XG5cbiAgX2RhdGE6IFJvd0xpc3RHcmlkRGF0YVtdID0gW11cbiAgQElucHV0KClcbiAgZ2V0IGRhdGEoKTogUm93TGlzdEdyaWREYXRhW10ge1xuICAgIHJldHVybiB0aGlzLl9kYXRhXG4gIH1cbiAgc2V0IGRhdGEodmFsdWU6IFJvd0xpc3RHcmlkRGF0YVtdKSB7XG4gICAgdGhpcy5fZGF0YSA9IHZhbHVlXG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkR3JvdXBLZXkgPSB0aGlzLmRlZmF1bHRHcm91cEtleVxuICAgIHRoaXMuZGlzcGxheWVkQ29sdW1ucyA9IHRoaXMuY29sdW1uc1xuICAgIGlmICh0aGlzLmRlZmF1bHRHcm91cEtleSkge1xuICAgICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zID0gdGhpcy5jb2x1bW5zLmZpbHRlcigoY29sdW1uKSA9PlxuICAgICAgICBjb2x1bW4ucHJlZGVmaW5lZEdyb3VwS2V5cz8uaW5jbHVkZXModGhpcy5kZWZhdWx0R3JvdXBLZXkpXG4gICAgICApXG4gICAgfVxuICAgIHRoaXMuZGlzcGxheWVkQ29sdW1uc0NoYW5nZS5lbWl0KHRoaXMuZGlzcGxheWVkQ29sdW1ucylcbiAgICBpZiAoIXRoaXMuZ3JvdXBTZWxlY3Rpb25Ob0dyb3VwU2VsZWN0ZWRLZXkpIHtcbiAgICAgIHRoaXMuZ3JvdXBTZWxlY3Rpb25Ob0dyb3VwU2VsZWN0ZWRLZXkgPSAnT0NYX0lOVEVSQUNUSVZFX0RBVEFfVklFVy5OT19HUk9VUF9TRUxFQ1RFRCdcbiAgICB9XG4gICAgdGhpcy5maXJzdENvbHVtbklkID0gdGhpcy5jb2x1bW5zWzBdPy5pZFxuICB9XG5cbiAgZmlsdGVyaW5nKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLmZpbHRlcnMgPSBldmVudFxuICAgIHRoaXMuZmlsdGVyZWQuZW1pdChldmVudClcbiAgfVxuXG4gIHNvcnRpbmcoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuc29ydERpcmVjdGlvbiA9IGV2ZW50LnNvcnREaXJlY3Rpb25cbiAgICB0aGlzLnNvcnRGaWVsZCA9IGV2ZW50LnNvcnRDb2x1bW5cbiAgICB0aGlzLnNvcnRlZC5lbWl0KGV2ZW50KVxuICB9XG5cbiAgb25EZWxldGVFbGVtZW50KGVsZW1lbnQ6IFJvd0xpc3RHcmlkRGF0YSkge1xuICAgIGlmICh0aGlzLmlzRGVsZXRlSXRlbU9ic2VydmVkKSB7XG4gICAgICB0aGlzLmRlbGV0ZUl0ZW0uZW1pdChlbGVtZW50KVxuICAgIH1cbiAgfVxuXG4gIG9uVmlld0VsZW1lbnQoZWxlbWVudDogUm93TGlzdEdyaWREYXRhKSB7XG4gICAgaWYgKHRoaXMuaXNWaWV3SXRlbU9ic2VydmVkKSB7XG4gICAgICB0aGlzLnZpZXdJdGVtLmVtaXQoZWxlbWVudClcbiAgICB9XG4gIH1cblxuICBvbkVkaXRFbGVtZW50KGVsZW1lbnQ6IFJvd0xpc3RHcmlkRGF0YSkge1xuICAgIGlmICh0aGlzLmlzRWRpdEl0ZW1PYnNlcnZlZCkge1xuICAgICAgdGhpcy5lZGl0SXRlbS5lbWl0KGVsZW1lbnQpXG4gICAgfVxuICB9XG5cbiAgb25EYXRhVmlld0xheW91dENoYW5nZShsYXlvdXQ6ICdncmlkJyB8ICdsaXN0JyB8ICd0YWJsZScpIHtcbiAgICB0aGlzLmxheW91dCA9IGxheW91dFxuICAgIHRoaXMuZGF0YVZpZXdMYXlvdXRDaGFuZ2UuZW1pdChsYXlvdXQpXG4gIH1cblxuICBvblNvcnRDaGFuZ2UoJGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnNvcnRGaWVsZCA9ICRldmVudFxuICAgIHRoaXMuc29ydGVkLmVtaXQoeyBzb3J0Q29sdW1uOiB0aGlzLnNvcnRGaWVsZCwgc29ydERpcmVjdGlvbjogdGhpcy5zb3J0RGlyZWN0aW9uIH0pXG4gIH1cblxuICBvblNvcnREaXJlY3Rpb25DaGFuZ2UoJGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnNvcnREaXJlY3Rpb24gPSAkZXZlbnRcbiAgICB0aGlzLnNvcnRlZC5lbWl0KHsgc29ydENvbHVtbjogdGhpcy5zb3J0RmllbGQsIHNvcnREaXJlY3Rpb246IHRoaXMuc29ydERpcmVjdGlvbiB9KVxuICB9XG5cbiAgb25Db2x1bW5Hcm91cFNlbGVjdGlvbkNoYW5nZShldmVudDogR3JvdXBTZWxlY3Rpb25DaGFuZ2VkRXZlbnQpIHtcbiAgICB0aGlzLmRpc3BsYXllZENvbHVtbnMgPSBldmVudC5hY3RpdmVDb2x1bW5zXG4gICAgdGhpcy5zZWxlY3RlZEdyb3VwS2V5ID0gZXZlbnQuZ3JvdXBLZXlcbiAgICB0aGlzLmRpc3BsYXllZENvbHVtbnNDaGFuZ2UuZW1pdCh0aGlzLmRpc3BsYXllZENvbHVtbnMpXG4gIH1cblxuICByZWdpc3RlckV2ZW50TGlzdGVuZXJGb3JEYXRhVmlldygpIHtcbiAgICBpZiAodGhpcy5kZWxldGVJdGVtLm9ic2VydmVkKSB7XG4gICAgICB0aGlzLmlzRGVsZXRlSXRlbU9ic2VydmVkID0gdHJ1ZVxuICAgICAgaWYgKCF0aGlzLl9kYXRhVmlld0NvbXBvbmVudD8uZGVsZXRlSXRlbS5vYnNlcnZlZCkge1xuICAgICAgICB0aGlzLl9kYXRhVmlld0NvbXBvbmVudD8uZGVsZXRlSXRlbS5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgdGhpcy5vbkRlbGV0ZUVsZW1lbnQoZXZlbnQpXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfVxuICAgIGlmICh0aGlzLnZpZXdJdGVtLm9ic2VydmVkKSB7XG4gICAgICB0aGlzLmlzVmlld0l0ZW1PYnNlcnZlZCA9IHRydWVcbiAgICAgIGlmICghdGhpcy5fZGF0YVZpZXdDb21wb25lbnQ/LnZpZXdJdGVtLm9ic2VydmVkKSB7XG4gICAgICAgIHRoaXMuX2RhdGFWaWV3Q29tcG9uZW50Py52aWV3SXRlbS5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgdGhpcy5vblZpZXdFbGVtZW50KGV2ZW50KVxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAodGhpcy5lZGl0SXRlbS5vYnNlcnZlZCkge1xuICAgICAgdGhpcy5pc0VkaXRJdGVtT2JzZXJ2ZWQgPSB0cnVlXG4gICAgICBpZiAoIXRoaXMuX2RhdGFWaWV3Q29tcG9uZW50Py5lZGl0SXRlbS5vYnNlcnZlZCkge1xuICAgICAgICB0aGlzLl9kYXRhVmlld0NvbXBvbmVudD8uZWRpdEl0ZW0uc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICAgIHRoaXMub25FZGl0RWxlbWVudChldmVudClcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uQ2hhbmdlZC5vYnNlcnZlZCkge1xuICAgICAgaWYgKCF0aGlzLl9kYXRhVmlld0NvbXBvbmVudD8uc2VsZWN0aW9uQ2hhbmdlZC5vYnNlcnZlZCkge1xuICAgICAgICB0aGlzLl9kYXRhVmlld0NvbXBvbmVudD8uc2VsZWN0aW9uQ2hhbmdlZC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgdGhpcy5vblJvd1NlbGVjdGlvbkNoYW5nZShldmVudClcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBvbkNvbHVtblNlbGVjdGlvbkNoYW5nZShldmVudDogQ29sdW1uU2VsZWN0aW9uQ2hhbmdlZEV2ZW50KSB7XG4gICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zID0gZXZlbnQuYWN0aXZlQ29sdW1uc1xuICAgIHRoaXMuc2VsZWN0ZWRHcm91cEtleSA9IHRoaXMuY3VzdG9tR3JvdXBLZXlcbiAgICB0aGlzLmRpc3BsYXllZENvbHVtbnNDaGFuZ2UuZW1pdCh0aGlzLmRpc3BsYXllZENvbHVtbnMpXG4gIH1cblxuICBvbkFjdGlvbkNvbHVtbkNvbmZpZ0NoYW5nZShldmVudDogQWN0aW9uQ29sdW1uQ2hhbmdlZEV2ZW50KSB7XG4gICAgdGhpcy5mcm96ZW5BY3Rpb25Db2x1bW4gPSBldmVudC5mcm96ZW5BY3Rpb25Db2x1bW5cbiAgICB0aGlzLmFjdGlvbkNvbHVtblBvc2l0aW9uID0gZXZlbnQuYWN0aW9uQ29sdW1uUG9zaXRpb25cbiAgfVxuXG4gIG9uUm93U2VsZWN0aW9uQ2hhbmdlKGV2ZW50OiBSb3dbXSkge1xuICAgIGlmICh0aGlzLnNlbGVjdGlvbkNoYW5nZWQub2JzZXJ2ZWQpIHtcbiAgICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlZC5lbWl0KGV2ZW50KVxuICAgIH1cbiAgfVxuXG4gIG9uUGFnZUNoYW5nZShldmVudDogbnVtYmVyKSB7XG4gICAgdGhpcy5wYWdlID0gZXZlbnRcbiAgICB0aGlzLnBhZ2VDaGFuZ2VkLmVtaXQoZXZlbnQpXG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJwLTMgYm9yZGVyLWJvdHRvbS0xIHN1cmZhY2UtYm9yZGVyXCI+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtd3JhcCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXIgcHktMSBnYXAtMlwiPlxuICAgIDxvY3gtZGF0YS1sYXlvdXQtc2VsZWN0aW9uXG4gICAgICBbc3VwcG9ydGVkVmlld0xheW91dHNdPVwic3VwcG9ydGVkVmlld0xheW91dHNcIlxuICAgICAgW2xheW91dF09XCJsYXlvdXRcIlxuICAgICAgKGRhdGFWaWV3TGF5b3V0Q2hhbmdlKT1cIm9uRGF0YVZpZXdMYXlvdXRDaGFuZ2UoJGV2ZW50KVwiXG4gICAgPjwvb2N4LWRhdGEtbGF5b3V0LXNlbGVjdGlvbj5cblxuICAgIDxkaXYgKm5nSWY9XCJ0b3BDZW50ZXJcIj5cbiAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwidG9wQ2VudGVyXCI+IDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiAqbmdJZj1cImxheW91dCAhPT0gJ3RhYmxlJ1wiIGNsYXNzPVwiZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIj5cbiAgICAgIDxvY3gtZGF0YS1saXN0LWdyaWQtc29ydGluZ1xuICAgICAgICBbc29ydERpcmVjdGlvbl09XCJzb3J0RGlyZWN0aW9uXCJcbiAgICAgICAgW3NvcnRGaWVsZF09XCJzb3J0RmllbGRcIlxuICAgICAgICBbY29sdW1uc109XCJjb2x1bW5zXCJcbiAgICAgICAgW3NvcnRTdGF0ZXNdPVwic29ydFN0YXRlc1wiXG4gICAgICAgIChzb3J0Q2hhbmdlKT1cIm9uU29ydENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgKHNvcnREaXJlY3Rpb25DaGFuZ2UpPVwib25Tb3J0RGlyZWN0aW9uQ2hhbmdlKCRldmVudClcIlxuICAgICAgPjwvb2N4LWRhdGEtbGlzdC1ncmlkLXNvcnRpbmc+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2ICpuZ0lmPVwibGF5b3V0ID09PSAndGFibGUnXCIgY2xhc3M9XCJmbGV4IGZsZXgtd3JhcCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIj5cbiAgICAgIDxvY3gtY29sdW1uLWdyb3VwLXNlbGVjdGlvblxuICAgICAgICBbc2VsZWN0ZWRHcm91cEtleV09XCJzZWxlY3RlZEdyb3VwS2V5XCJcbiAgICAgICAgW2NvbHVtbnNdPVwiY29sdW1uc1wiXG4gICAgICAgIFtkZWZhdWx0R3JvdXBLZXldPVwiZGVmYXVsdEdyb3VwS2V5XCJcbiAgICAgICAgW2N1c3RvbUdyb3VwS2V5XT1cImN1c3RvbUdyb3VwS2V5XCJcbiAgICAgICAgW3BsYWNlaG9sZGVyS2V5XT1cImdyb3VwU2VsZWN0aW9uTm9Hcm91cFNlbGVjdGVkS2V5XCJcbiAgICAgICAgKGdyb3VwU2VsZWN0aW9uQ2hhbmdlZCk9XCJvbkNvbHVtbkdyb3VwU2VsZWN0aW9uQ2hhbmdlKCRldmVudClcIlxuICAgICAgPjwvb2N4LWNvbHVtbi1ncm91cC1zZWxlY3Rpb24+XG5cbiAgICAgIDxvY3gtY3VzdG9tLWdyb3VwLWNvbHVtbi1zZWxlY3RvclxuICAgICAgICBbY29sdW1uc109XCJjb2x1bW5zXCJcbiAgICAgICAgW2Rpc3BsYXllZENvbHVtbnNdPVwiZGlzcGxheWVkQ29sdW1uc1wiXG4gICAgICAgIChjb2x1bW5TZWxlY3Rpb25DaGFuZ2VkKT1cIm9uQ29sdW1uU2VsZWN0aW9uQ2hhbmdlKCRldmVudClcIlxuICAgICAgICBbZnJvemVuQWN0aW9uQ29sdW1uXT1cImZyb3plbkFjdGlvbkNvbHVtblwiXG4gICAgICAgIFthY3Rpb25Db2x1bW5Qb3NpdGlvbl09XCJhY3Rpb25Db2x1bW5Qb3NpdGlvblwiXG4gICAgICAgIChhY3Rpb25Db2x1bW5Db25maWdDaGFuZ2VkKT1cIm9uQWN0aW9uQ29sdW1uQ29uZmlnQ2hhbmdlKCRldmVudClcIlxuICAgICAgPjwvb2N4LWN1c3RvbS1ncm91cC1jb2x1bW4tc2VsZWN0b3I+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwicC0zXCI+XG4gIDxvY3gtZGF0YS12aWV3XG4gICAgW2NvbHVtbnNdPVwiZGlzcGxheWVkQ29sdW1uc1wiXG4gICAgW3NvcnRTdGF0ZXNdPVwic29ydFN0YXRlc1wiXG4gICAgW3NvcnRGaWVsZF09XCJzb3J0RmllbGRcIlxuICAgIFtmaWx0ZXJzXT1cImZpbHRlcnNcIlxuICAgIFtkYXRhXT1cImRhdGFcIlxuICAgIFtzb3J0RGlyZWN0aW9uXT1cInNvcnREaXJlY3Rpb25cIlxuICAgIFt0aXRsZUxpbmVJZF09XCJ0aXRsZUxpbmVJZCB8fCBmaXJzdENvbHVtbklkXCJcbiAgICBbc3VidGl0bGVMaW5lSWRzXT1cInN1YnRpdGxlTGluZUlkc1wiXG4gICAgW2NsaWVudFNpZGVTb3J0aW5nXT1cImNsaWVudFNpZGVTb3J0aW5nXCJcbiAgICBbY2xpZW50U2lkZUZpbHRlcmluZ109XCJjbGllbnRTaWRlRmlsdGVyaW5nXCJcbiAgICBbcGFnZVNpemVzXT1cInBhZ2VTaXplc1wiXG4gICAgW3BhZ2VTaXplXT1cInBhZ2VTaXplXCJcbiAgICBbZW1wdHlSZXN1bHRzTWVzc2FnZV09XCJlbXB0eVJlc3VsdHNNZXNzYWdlXCJcbiAgICBbbGF5b3V0XT1cImxheW91dFwiXG4gICAgW25hbWVdPVwibmFtZVwiXG4gICAgW2RlbGV0ZVBlcm1pc3Npb25dPVwiZGVsZXRlUGVybWlzc2lvblwiXG4gICAgW2VkaXRQZXJtaXNzaW9uXT1cImVkaXRQZXJtaXNzaW9uXCJcbiAgICBbdmlld1Blcm1pc3Npb25dPVwidmlld1Blcm1pc3Npb25cIlxuICAgIFtkZWxldGVBY3Rpb25FbmFibGVkRmllbGRdPVwiZGVsZXRlQWN0aW9uRW5hYmxlZEZpZWxkXCJcbiAgICBbZGVsZXRlQWN0aW9uVmlzaWJsZUZpZWxkXT1cImRlbGV0ZUFjdGlvblZpc2libGVGaWVsZFwiXG4gICAgW2VkaXRBY3Rpb25FbmFibGVkRmllbGRdPVwiZWRpdEFjdGlvbkVuYWJsZWRGaWVsZFwiXG4gICAgW2VkaXRBY3Rpb25WaXNpYmxlRmllbGRdPVwiZWRpdEFjdGlvblZpc2libGVGaWVsZFwiXG4gICAgW3ZpZXdBY3Rpb25FbmFibGVkRmllbGRdPVwidmlld0FjdGlvbkVuYWJsZWRGaWVsZFwiXG4gICAgW3ZpZXdBY3Rpb25WaXNpYmxlRmllbGRdPVwidmlld0FjdGlvblZpc2libGVGaWVsZFwiXG4gICAgW2FkZGl0aW9uYWxBY3Rpb25zXT1cImFkZGl0aW9uYWxBY3Rpb25zXCJcbiAgICBbbGlzdEdyaWRQYWdpbmF0b3JdPVwibGlzdEdyaWRQYWdpbmF0b3JcIlxuICAgIFt0YWJsZVBhZ2luYXRvcl09XCJ0YWJsZVBhZ2luYXRvclwiXG4gICAgW3BhZ2VdPVwicGFnZVwiXG4gICAgKHBhZ2VDaGFuZ2VkKT1cIm9uUGFnZUNoYW5nZSgkZXZlbnQpXCJcbiAgICBbc2VsZWN0ZWRSb3dzXT1cInNlbGVjdGVkUm93c1wiXG4gICAgW2Zyb3plbkFjdGlvbkNvbHVtbl09XCJmcm96ZW5BY3Rpb25Db2x1bW5cIlxuICAgIFthY3Rpb25Db2x1bW5Qb3NpdGlvbl09XCJhY3Rpb25Db2x1bW5Qb3NpdGlvblwiXG4gICAgW3N0cmluZ1RhYmxlQ2VsbFRlbXBsYXRlXT1cIl9zdHJpbmdUYWJsZUNlbGwgPyBzdHJpbmdUYWJsZUNlbGwgOiB1bmRlZmluZWRcIlxuICAgIFtudW1iZXJUYWJsZUNlbGxUZW1wbGF0ZV09XCJfbnVtYmVyVGFibGVDZWxsID8gbnVtYmVyVGFibGVDZWxsIDogdW5kZWZpbmVkXCJcbiAgICBbY3VzdG9tVGFibGVDZWxsVGVtcGxhdGVdPVwiX2N1c3RvbVRhYmxlQ2VsbCA/IGN1c3RvbVRhYmxlQ2VsbCA6IHVuZGVmaW5lZFwiXG4gICAgW2RhdGVUYWJsZUNlbGxUZW1wbGF0ZV09XCJfZGF0ZVRhYmxlQ2VsbCA/IGRhdGVUYWJsZUNlbGwgOiBfdGFibGVEYXRlQ2VsbCA/IHRhYmxlRGF0ZUNlbGwgOiB1bmRlZmluZWRcIlxuICAgIFtyZWxhdGl2ZURhdGVUYWJsZUNlbGxUZW1wbGF0ZV09XCJfcmVsYXRpdmVEYXRlVGFibGVDZWxsID8gcmVsYXRpdmVEYXRlVGFibGVDZWxsIDogX3RhYmxlUmVsYXRpdmVEYXRlQ2VsbCA/IHRhYmxlUmVsYXRpdmVEYXRlQ2VsbCA6IHVuZGVmaW5lZFwiXG4gICAgW3RhYmxlQ2VsbFRlbXBsYXRlXT1cIl90YWJsZUNlbGwgPyB0YWJsZUNlbGwgOiB1bmRlZmluZWRcIlxuICAgIFt0cmFuc2xhdGlvbktleVRhYmxlQ2VsbFRlbXBsYXRlXT1cIl90cmFuc2xhdGlvbktleVRhYmxlQ2VsbCA/IHRyYW5zbGF0aW9uS2V5VGFibGVDZWxsIDogX3RhYmxlVHJhbnNsYXRpb25LZXlDZWxsID8gdGFibGVUcmFuc2xhdGlvbktleUNlbGwgOiB1bmRlZmluZWRcIlxuICAgIFtncmlkSXRlbVN1YnRpdGxlTGluZXNUZW1wbGF0ZV09XCJfZ3JpZEl0ZW1TdWJ0aXRsZUxpbmVzID8gZ3JpZEl0ZW1TdWJ0aXRsZUxpbmVzIDogdW5kZWZpbmVkXCJcbiAgICBbbGlzdEl0ZW1TdWJ0aXRsZUxpbmVzVGVtcGxhdGVdPVwiX2xpc3RJdGVtU3VidGl0bGVMaW5lcyA/IGxpc3RJdGVtU3VidGl0bGVMaW5lcyA6IHVuZGVmaW5lZFwiXG4gICAgW2xpc3RJdGVtVGVtcGxhdGVdPVwiX2xpc3RJdGVtPyBsaXN0SXRlbSA6IHVuZGVmaW5lZFwiXG4gICAgW2dyaWRJdGVtVGVtcGxhdGVdPVwiX2dyaWRJdGVtPyBncmlkSXRlbSAgOiB1bmRlZmluZWRcIlxuICAgIChzb3J0ZWQpPVwic29ydGluZygkZXZlbnQpXCJcbiAgICAoZmlsdGVyZWQpPVwiZmlsdGVyaW5nKCRldmVudClcIlxuICAgIFt0b3RhbFJlY29yZHNPblNlcnZlcl09XCJ0b3RhbFJlY29yZHNPblNlcnZlclwiXG4gICAgW2N1cnJlbnRQYWdlU2hvd2luZ0tleV09XCJjdXJyZW50UGFnZVNob3dpbmdLZXlcIlxuICAgIFtjdXJyZW50UGFnZVNob3dpbmdXaXRoVG90YWxPblNlcnZlcktleV09XCJjdXJyZW50UGFnZVNob3dpbmdXaXRoVG90YWxPblNlcnZlcktleVwiXG4gID5cbiAgPC9vY3gtZGF0YS12aWV3PlxuPC9kaXY+XG48bmctdGVtcGxhdGUgI3N0cmluZ1RhYmxlQ2VsbCBsZXQtcm93T2JqZWN0PVwicm93T2JqZWN0XCIgbGV0LWNvbHVtbj1cImNvbHVtblwiPlxuICA8bmctY29udGFpbmVyXG4gICAgKm5nSWY9XCJfc3RyaW5nVGFibGVDZWxsXCJcbiAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJfc3RyaW5nVGFibGVDZWxsXCJcbiAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie3Jvd09iamVjdDogcm93T2JqZWN0LCBjb2x1bW46Y29sdW1ufVwiXG4gID5cbiAgPC9uZy1jb250YWluZXJcbj48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICN0YWJsZURhdGVDZWxsIGxldC1yb3dPYmplY3Q9XCJyb3dPYmplY3RcIiBsZXQtY29sdW1uPVwiY29sdW1uXCI+XG4gIDxuZy1jb250YWluZXJcbiAgICAqbmdJZj1cIl90YWJsZURhdGVDZWxsXCJcbiAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJfdGFibGVEYXRlQ2VsbFwiXG4gICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntyb3dPYmplY3Q6cm93T2JqZWN0LCBjb2x1bW46Y29sdW1ufVwiXG4gID5cbiAgPC9uZy1jb250YWluZXJcbj48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNkYXRlVGFibGVDZWxsIGxldC1yb3dPYmplY3Q9XCJyb3dPYmplY3RcIiBsZXQtY29sdW1uPVwiY29sdW1uXCI+XG4gIDxuZy1jb250YWluZXJcbiAgICAqbmdJZj1cIl9kYXRlVGFibGVDZWxsXCJcbiAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJfZGF0ZVRhYmxlQ2VsbFwiXG4gICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntyb3dPYmplY3Q6cm93T2JqZWN0LCBjb2x1bW46Y29sdW1ufVwiXG4gID5cbiAgPC9uZy1jb250YWluZXJcbj48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICN0YWJsZVJlbGF0aXZlRGF0ZUNlbGwgbGV0LXJvd09iamVjdD1cInJvd09iamVjdFwiIGxldC1jb2x1bW49XCJjb2x1bW5cIj5cbiAgPG5nLWNvbnRhaW5lclxuICAgICpuZ0lmPVwiX3RhYmxlUmVsYXRpdmVEYXRlQ2VsbFwiXG4gICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiX3RhYmxlUmVsYXRpdmVEYXRlQ2VsbFwiXG4gICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntyb3dPYmplY3Q6cm93T2JqZWN0LCBjb2x1bW46Y29sdW1ufVwiXG4gID5cbiAgPC9uZy1jb250YWluZXJcbj48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNyZWxhdGl2ZURhdGVUYWJsZUNlbGwgbGV0LXJvd09iamVjdD1cInJvd09iamVjdFwiIGxldC1jb2x1bW49XCJjb2x1bW5cIj5cbiAgPG5nLWNvbnRhaW5lclxuICAgICpuZ0lmPVwiX3JlbGF0aXZlRGF0ZVRhYmxlQ2VsbFwiXG4gICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiX3JlbGF0aXZlRGF0ZVRhYmxlQ2VsbFwiXG4gICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntyb3dPYmplY3Q6cm93T2JqZWN0LCBjb2x1bW46Y29sdW1ufVwiXG4gID5cbiAgPC9uZy1jb250YWluZXJcbj48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICN0YWJsZUNlbGwgbGV0LXJvd09iamVjdD1cInJvd09iamVjdFwiIGxldC1jb2x1bW49XCJjb2x1bW5cIj5cbiAgPG5nLWNvbnRhaW5lclxuICAgICpuZ0lmPVwiX3RhYmxlQ2VsbFwiXG4gICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiX3RhYmxlQ2VsbFwiXG4gICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntyb3dPYmplY3Q6IHJvd09iamVjdCwgY29sdW1uOmNvbHVtbn1cIlxuICA+XG4gIDwvbmctY29udGFpbmVyXG4+PC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjdGFibGVUcmFuc2xhdGlvbktleUNlbGwgbGV0LXJvd09iamVjdD1cInJvd09iamVjdFwiIGxldC1jb2x1bW49XCJjb2x1bW5cIj5cbiAgPG5nLWNvbnRhaW5lclxuICAgICpuZ0lmPVwiX3RhYmxlVHJhbnNsYXRpb25LZXlDZWxsXCJcbiAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJfdGFibGVUcmFuc2xhdGlvbktleUNlbGxcIlxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7cm93T2JqZWN0OnJvd09iamVjdCwgY29sdW1uOmNvbHVtbn1cIlxuICA+XG4gIDwvbmctY29udGFpbmVyXG4+PC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjdHJhbnNsYXRpb25LZXlUYWJsZUNlbGwgbGV0LXJvd09iamVjdD1cInJvd09iamVjdFwiIGxldC1jb2x1bW49XCJjb2x1bW5cIj5cbiAgPG5nLWNvbnRhaW5lclxuICAgICpuZ0lmPVwiX3RyYW5zbGF0aW9uS2V5VGFibGVDZWxsXCJcbiAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJfdHJhbnNsYXRpb25LZXlUYWJsZUNlbGxcIlxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7cm93T2JqZWN0OnJvd09iamVjdCwgY29sdW1uOmNvbHVtbn1cIlxuICA+XG4gIDwvbmctY29udGFpbmVyXG4+PC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjZ3JpZEl0ZW1TdWJ0aXRsZUxpbmVzIGxldC1pdGVtPlxuICA8bmctY29udGFpbmVyXG4gICAgKm5nSWY9XCJfZ3JpZEl0ZW1TdWJ0aXRsZUxpbmVzXCJcbiAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJfZ3JpZEl0ZW1TdWJ0aXRsZUxpbmVzXCJcbiAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyRpbXBsaWNpdDppdGVtfVwiXG4gID5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNsaXN0SXRlbVN1YnRpdGxlTGluZXMgbGV0LWl0ZW0+XG4gIDxuZy1jb250YWluZXJcbiAgICAqbmdJZj1cIl9saXN0SXRlbVN1YnRpdGxlTGluZXNcIlxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIl9saXN0SXRlbVN1YnRpdGxlTGluZXNcIlxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7JGltcGxpY2l0Oml0ZW19XCJcbiAgPlxuICA8L25nLWNvbnRhaW5lclxuPjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI2dyaWRJdGVtIGxldC1pdGVtPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiX2dyaWRJdGVtXCIgW25nVGVtcGxhdGVPdXRsZXRdPVwiX2dyaWRJdGVtXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInskaW1wbGljaXQ6aXRlbX1cIj5cbiAgPC9uZy1jb250YWluZXJcbj48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNsaXN0SXRlbSBsZXQtaXRlbT5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIl9saXN0SXRlbVwiIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIl9saXN0SXRlbVwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7JGltcGxpY2l0Oml0ZW19XCI+XG4gIDwvbmctY29udGFpbmVyXG4+PC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|