@hitsoft/abp.kadooglu 1.0.10 → 1.0.12
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/lib/hit-components/hit-carrier-person/hit-carrier-person-form/hit-carrier-person-form.component.mjs +4 -3
- package/esm2020/lib/hit-components/hit-entry-weighing/hit-entry-weighing-form/hit-entry-weighing-form.component.mjs +278 -109
- package/esm2020/lib/hit-components/hit-entry-weighing/hit-entry-weighing-list/hit-entry-weighing-list.component.mjs +56 -27
- package/esm2020/lib/hit-components/hit-factory-entry/hit-factory-entry-form/hit-factory-entry-form.component.mjs +266 -24
- package/esm2020/lib/hit-components/hit-knt-item-esl/hit-knt-item-esl-form/hit-knt-item-esl-form.component.mjs +4 -4
- package/esm2020/lib/hit-components/hit-vehicle-type/hit-vehicle-type-form/hit-vehicle-type-form.component.mjs +1 -1
- package/esm2020/lib/hit-proxy/hit-carrier-person/models.mjs +1 -1
- package/esm2020/lib/hit-proxy/hit-entry-weighing/hit-entry-weighing.service.mjs +5 -2
- package/esm2020/lib/hit-proxy/hit-entry-weighing/models.mjs +1 -1
- package/esm2020/lib/hit-proxy/hit-factory-entry/models.mjs +1 -1
- package/esm2020/lib/hit-proxy/hit-purchase-delivery-note/hit-purchase-delivery-note.service.mjs +4 -1
- package/esm2020/lib/hit-proxy/hit-purchase-delivery-note/models.mjs +1 -1
- package/esm2020/lib/hit-proxy/hit-stock-transfer/hit-stock-transfer.service.mjs +4 -1
- package/esm2020/lib/hit-proxy/hit-stock-transfer/models.mjs +1 -1
- package/esm2020/lib/services/scale-signalr.service.mjs +4 -1
- package/esm2020/lib/shared/hit-modal/hit-modal.component.mjs +68 -16
- package/fesm2015/hitsoft-abp.kadooglu.mjs +725 -216
- package/fesm2015/hitsoft-abp.kadooglu.mjs.map +1 -1
- package/fesm2020/hitsoft-abp.kadooglu.mjs +707 -208
- package/fesm2020/hitsoft-abp.kadooglu.mjs.map +1 -1
- package/lib/hit-components/hit-entry-weighing/hit-entry-weighing-form/hit-entry-weighing-form.component.d.ts +20 -7
- package/lib/hit-components/hit-entry-weighing/hit-entry-weighing-list/hit-entry-weighing-list.component.d.ts +9 -1
- package/lib/hit-components/hit-factory-entry/hit-factory-entry-form/hit-factory-entry-form.component.d.ts +24 -1
- package/lib/hit-proxy/hit-carrier-person/models.d.ts +2 -0
- package/lib/hit-proxy/hit-entry-weighing/hit-entry-weighing.service.d.ts +3 -0
- package/lib/hit-proxy/hit-entry-weighing/models.d.ts +1 -0
- package/lib/hit-proxy/hit-factory-entry/models.d.ts +9 -4
- package/lib/hit-proxy/hit-purchase-delivery-note/hit-purchase-delivery-note.service.d.ts +1 -0
- package/lib/hit-proxy/hit-purchase-delivery-note/models.d.ts +6 -0
- package/lib/hit-proxy/hit-stock-transfer/hit-stock-transfer.service.d.ts +1 -0
- package/lib/hit-proxy/hit-stock-transfer/models.d.ts +2 -0
- package/lib/services/scale-signalr.service.d.ts +2 -0
- package/lib/shared/hit-modal/hit-modal.component.d.ts +25 -2
- package/package.json +1 -1
|
@@ -23,6 +23,7 @@ export class HitModalComponent {
|
|
|
23
23
|
this.showDateFilter = false;
|
|
24
24
|
this.defaultDateFrom = null;
|
|
25
25
|
this.defaultDateTo = null;
|
|
26
|
+
this.tabs = [];
|
|
26
27
|
this.selected = new EventEmitter();
|
|
27
28
|
this.data = [];
|
|
28
29
|
this.openModal = false;
|
|
@@ -30,6 +31,9 @@ export class HitModalComponent {
|
|
|
30
31
|
this.textDisplay = '';
|
|
31
32
|
this.filterDateFrom = null;
|
|
32
33
|
this.filterDateTo = null;
|
|
34
|
+
// Tab mode state
|
|
35
|
+
this.activeTabIndex = 0;
|
|
36
|
+
this.tabStates = [];
|
|
33
37
|
}
|
|
34
38
|
/** Pre-populate display text (e.g. in edit mode). Setter ensures reactive updates. */
|
|
35
39
|
set editingData(val) {
|
|
@@ -46,9 +50,39 @@ export class HitModalComponent {
|
|
|
46
50
|
}
|
|
47
51
|
clickForOpenModal() {
|
|
48
52
|
this.openModal = true;
|
|
49
|
-
this.
|
|
50
|
-
|
|
51
|
-
|
|
53
|
+
if (this.tabs.length > 0) {
|
|
54
|
+
this.activeTabIndex = 0;
|
|
55
|
+
this.tabStates = this.tabs.map(tab => ({
|
|
56
|
+
data: [],
|
|
57
|
+
isLoading: false,
|
|
58
|
+
isLoaded: false,
|
|
59
|
+
filterDateFrom: tab.defaultDateFrom ?? null,
|
|
60
|
+
filterDateTo: tab.defaultDateTo ?? null,
|
|
61
|
+
}));
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
this.filterDateFrom = this.defaultDateFrom ?? null;
|
|
65
|
+
this.filterDateTo = this.defaultDateTo ?? null;
|
|
66
|
+
this.loadData();
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
onTabClick(index) {
|
|
70
|
+
this.activeTabIndex = index;
|
|
71
|
+
if (!this.tabStates[index].isLoaded && !this.tabStates[index].isLoading) {
|
|
72
|
+
this.loadTabData(index);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
loadTabData(index) {
|
|
76
|
+
const tab = this.tabs[index];
|
|
77
|
+
const state = this.tabStates[index];
|
|
78
|
+
state.isLoading = true;
|
|
79
|
+
const params = tab.showDateFilter
|
|
80
|
+
? { dateFrom: this.toDateStr(state.filterDateFrom), dateTo: this.toDateStr(state.filterDateTo) }
|
|
81
|
+
: undefined;
|
|
82
|
+
tab.loadFn(params).subscribe({
|
|
83
|
+
next: (result) => { state.data = result; state.isLoading = false; state.isLoaded = true; },
|
|
84
|
+
error: () => { state.data = []; state.isLoading = false; state.isLoaded = true; },
|
|
85
|
+
});
|
|
52
86
|
}
|
|
53
87
|
loadData() {
|
|
54
88
|
if (this.loadFn) {
|
|
@@ -75,35 +109,49 @@ export class HitModalComponent {
|
|
|
75
109
|
onDateFilterChanged() {
|
|
76
110
|
this.loadData();
|
|
77
111
|
}
|
|
78
|
-
onToolbarPreparing(e) {
|
|
79
|
-
|
|
112
|
+
onToolbarPreparing(e, tabIndex) {
|
|
113
|
+
const useTabs = this.tabs.length > 0 && tabIndex !== undefined;
|
|
114
|
+
const showFilter = useTabs ? this.tabs[tabIndex].showDateFilter : this.showDateFilter;
|
|
115
|
+
if (!showFilter)
|
|
80
116
|
return;
|
|
81
117
|
e.toolbarOptions.items.unshift({
|
|
82
118
|
location: 'before',
|
|
83
119
|
widget: 'dxDateBox',
|
|
84
120
|
options: {
|
|
85
|
-
value: this.filterDateFrom,
|
|
121
|
+
value: useTabs ? this.tabStates[tabIndex].filterDateFrom : this.filterDateFrom,
|
|
86
122
|
type: 'date',
|
|
87
123
|
displayFormat: 'dd.MM.yyyy',
|
|
88
124
|
width: 140,
|
|
89
125
|
label: this.localizationService.instant('Kadooglu::StartDate'),
|
|
90
126
|
onValueChanged: (args) => {
|
|
91
|
-
|
|
92
|
-
|
|
127
|
+
if (useTabs) {
|
|
128
|
+
this.tabStates[tabIndex].filterDateFrom = args.value;
|
|
129
|
+
this.loadTabData(tabIndex);
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
this.filterDateFrom = args.value;
|
|
133
|
+
this.onDateFilterChanged();
|
|
134
|
+
}
|
|
93
135
|
},
|
|
94
136
|
},
|
|
95
137
|
}, {
|
|
96
138
|
location: 'before',
|
|
97
139
|
widget: 'dxDateBox',
|
|
98
140
|
options: {
|
|
99
|
-
value: this.filterDateTo,
|
|
141
|
+
value: useTabs ? this.tabStates[tabIndex].filterDateTo : this.filterDateTo,
|
|
100
142
|
type: 'date',
|
|
101
143
|
displayFormat: 'dd.MM.yyyy',
|
|
102
144
|
width: 140,
|
|
103
145
|
label: this.localizationService.instant('Kadooglu::EndDate'),
|
|
104
146
|
onValueChanged: (args) => {
|
|
105
|
-
|
|
106
|
-
|
|
147
|
+
if (useTabs) {
|
|
148
|
+
this.tabStates[tabIndex].filterDateTo = args.value;
|
|
149
|
+
this.loadTabData(tabIndex);
|
|
150
|
+
}
|
|
151
|
+
else {
|
|
152
|
+
this.filterDateTo = args.value;
|
|
153
|
+
this.onDateFilterChanged();
|
|
154
|
+
}
|
|
107
155
|
},
|
|
108
156
|
},
|
|
109
157
|
});
|
|
@@ -118,14 +166,16 @@ export class HitModalComponent {
|
|
|
118
166
|
const selectedData = this.dxdataInstance?.instance.getSelectedRowsData() ?? [];
|
|
119
167
|
const selectedKeys = this.dxdataInstance?.instance.getSelectedRowKeys() ?? [];
|
|
120
168
|
if (selectedKeys.length > 0) {
|
|
121
|
-
this.
|
|
169
|
+
const dn = this.tabs.length > 0 ? this.tabs[this.activeTabIndex].displayName : this.displayName;
|
|
170
|
+
this.textDisplay = selectedData[0]?.[dn] ?? '';
|
|
122
171
|
this.selected.emit(selectedData[0]);
|
|
123
172
|
}
|
|
124
173
|
}
|
|
125
174
|
setTitleOnDoubleClick(e) {
|
|
126
175
|
this.openModal = false;
|
|
127
176
|
if (e?.data) {
|
|
128
|
-
this.
|
|
177
|
+
const dn = this.tabs.length > 0 ? this.tabs[this.activeTabIndex].displayName : this.displayName;
|
|
178
|
+
this.textDisplay = e.data[dn] ?? '';
|
|
129
179
|
this.selected.emit(e.data);
|
|
130
180
|
}
|
|
131
181
|
}
|
|
@@ -135,10 +185,10 @@ export class HitModalComponent {
|
|
|
135
185
|
}
|
|
136
186
|
}
|
|
137
187
|
HitModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitModalComponent, deps: [{ token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
138
|
-
HitModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: HitModalComponent, selector: "hit-lookup-select", inputs: { displayName: "displayName", keyExpr: "keyExpr", modalSize: "modalSize", getFn: "getFn", loadFn: "loadFn", columns: "columns", isVisible: "isVisible", disabled: "disabled", readOnly: "readOnly", showDateFilter: "showDateFilter", defaultDateFrom: "defaultDateFrom", defaultDateTo: "defaultDateTo", editingData: "editingData" }, outputs: { selected: "selected" }, viewQueries: [{ propertyName: "dxdataInstance", first: true, predicate: ["dxdataInstance"], descendants: true }], ngImport: i0, template: "<div class=\"hit-lookup-group\">\r\n <dx-text-box\r\n [ngModel]=\"textDisplay\"\r\n [disabled]=\"disabled\"\r\n [readOnly]=\"true\"\r\n maxlength=\"64\">\r\n </dx-text-box>\r\n <div class=\"hit-lookup-actions\" *ngIf=\"isVisible && !readOnly\">\r\n <button\r\n class=\"hit-lookup-btn hit-lookup-btn-clear\"\r\n type=\"button\"\r\n *ngIf=\"textDisplay\"\r\n (click)=\"clearValue()\"\r\n [disabled]=\"disabled\"\r\n title=\"Temizle\">\r\n <i class=\"fa fa-times\"></i>\r\n </button>\r\n <button\r\n class=\"hit-lookup-btn\"\r\n type=\"button\"\r\n (click)=\"clickForOpenModal()\"\r\n [disabled]=\"disabled\"\r\n title=\"Ara\">\r\n <i class=\"fa fa-search\"></i>\r\n </button>\r\n </div>\r\n</div>\r\n\r\n<abp-modal [(visible)]=\"openModal\" [options]=\"{ size: modalSize }\">\r\n <ng-template #abpHeader>\r\n <h3>{{ 'AbpUi::Search' | abpLocalization }}</h3>\r\n </ng-template>\r\n <ng-template #abpBody>\r\n <!-- Loading overlay -->\r\n <div *ngIf=\"isLoading\" class=\"d-flex flex-column align-items-center justify-content-center\" style=\"height: 55vh;\">\r\n <div class=\"spinner-border text-primary mb-3\" style=\"width: 3rem; height: 3rem;\" role=\"status\">\r\n <span class=\"visually-hidden\">Y\u00FCkleniyor...</span>\r\n </div>\r\n <span class=\"text-muted\">Veriler y\u00FCkleniyor...</span>\r\n </div>\r\n <dx-data-grid\r\n *ngIf=\"!isLoading\"\r\n #dxdataInstance\r\n [columns]=\"columns\"\r\n [dataSource]=\"data\"\r\n [keyExpr]=\"keyExpr\"\r\n [showRowLines]=\"true\"\r\n [showBorders]=\"true\"\r\n [hoverStateEnabled]=\"true\"\r\n [repaintChangesOnly]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n columnResizingMode=\"widget\"\r\n [allowColumnReordering]=\"true\"\r\n [columnAutoWidth]=\"true\"\r\n [focusedRowEnabled]=\"true\"\r\n [columnHidingEnabled]=\"true\"\r\n style=\"height: 55vh;\"\r\n (onToolbarPreparing)=\"onToolbarPreparing($event)\"\r\n (onRowDblClick)=\"setTitleOnDoubleClick($event)\">\r\n <dxo-pager\r\n [visible]=\"true\"\r\n [showInfo]=\"true\"\r\n [allowedPageSizes]=\"[50, 100, 200]\"\r\n [showNavigationButtons]=\"true\"\r\n [showPageSizeSelector]=\"true\">\r\n </dxo-pager>\r\n <dxo-paging [pageSize]=\"50\"></dxo-paging>\r\n <dxo-header-filter [allowSearch]=\"true\" [visible]=\"true\"></dxo-header-filter>\r\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\r\n <dxo-filter-panel [visible]=\"true\"></dxo-filter-panel>\r\n <dxo-sorting mode=\"single\"></dxo-sorting>\r\n <dxo-scrolling mode=\"horizontal\" showScrollbar=\"always\"></dxo-scrolling>\r\n <dxo-selection mode=\"single\"></dxo-selection>\r\n </dx-data-grid>\r\n </ng-template>\r\n <ng-template #abpFooter>\r\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>\r\n {{ 'AbpUi::Cancel' | abpLocalization }}\r\n </button>\r\n <abp-button iconClass=\"fa fa-check\" buttonType=\"button\" (click)=\"setTitle()\">\r\n {{ 'AbpUi::Select' | abpLocalization }}\r\n </abp-button>\r\n </ng-template>\r\n</abp-modal>\r\n", styles: ["@charset \"UTF-8\";hit-lookup-select{display:block}hit-lookup-select .hit-lookup-group{display:flex;align-items:stretch;width:100%}hit-lookup-select .hit-lookup-group dx-text-box{flex:1 1 auto;min-width:0}hit-lookup-select .hit-lookup-group dx-text-box .dx-textbox{height:100%}hit-lookup-select .hit-lookup-group dx-text-box .dx-texteditor{border-top-right-radius:0;border-bottom-right-radius:0;border-right:none;height:36px}hit-lookup-select .hit-lookup-group dx-text-box .dx-texteditor-input{font-weight:600}hit-lookup-select .hit-lookup-group .hit-lookup-actions{display:flex;flex-shrink:0}hit-lookup-select .hit-lookup-group .hit-lookup-actions .hit-lookup-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border:1px solid #0d6efd;background:transparent;color:#0d6efd;font-size:.85rem;cursor:pointer;transition:background-color .15s ease,color .15s ease,border-color .15s ease;border-radius:0;outline:none}hit-lookup-select .hit-lookup-group .hit-lookup-actions .hit-lookup-btn:hover:not(:disabled){background-color:#0d6efd;color:#fff}hit-lookup-select .hit-lookup-group .hit-lookup-actions .hit-lookup-btn:active:not(:disabled){background-color:#0b5ed7;border-color:#0b5ed7;color:#fff}hit-lookup-select .hit-lookup-group .hit-lookup-actions .hit-lookup-btn:disabled{opacity:.5;cursor:not-allowed}hit-lookup-select .hit-lookup-group .hit-lookup-actions .hit-lookup-btn:last-child{border-top-right-radius:4px;border-bottom-right-radius:4px}hit-lookup-select .hit-lookup-group .hit-lookup-actions .hit-lookup-btn.hit-lookup-btn-clear{border-color:#dc3545;color:#dc3545;font-size:.75rem;width:30px}hit-lookup-select .hit-lookup-group .hit-lookup-actions .hit-lookup-btn.hit-lookup-btn-clear:hover:not(:disabled){background-color:#dc3545;color:#fff}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "formName", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }, { kind: "component", type: i4.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { kind: "directive", type: i4.ModalCloseDirective, selector: "[abpClose]" }, { kind: "component", type: i5.DxDataGridComponent, selector: "dx-data-grid", inputs: ["accessKey", "activeStateEnabled", "allowColumnReordering", "allowColumnResizing", "autoNavigateToFocusedRow", "cacheEnabled", "cellHintEnabled", "columnAutoWidth", "columnChooser", "columnFixing", "columnHidingEnabled", "columnMinWidth", "columnResizingMode", "columns", "columnWidth", "customizeColumns", "dataRowTemplate", "dataSource", "dateSerializationFormat", "disabled", "editing", "elementAttr", "errorRowEnabled", "export", "filterBuilder", "filterBuilderPopup", "filterPanel", "filterRow", "filterSyncEnabled", "filterValue", "focusedColumnIndex", "focusedRowEnabled", "focusedRowIndex", "focusedRowKey", "grouping", "groupPanel", "headerFilter", "height", "highlightChanges", "hint", "hoverStateEnabled", "keyboardNavigation", "keyExpr", "loadPanel", "masterDetail", "noDataText", "pager", "paging", "remoteOperations", "renderAsync", "repaintChangesOnly", "rowAlternationEnabled", "rowDragging", "rowTemplate", "rtlEnabled", "scrolling", "searchPanel", "selectedRowKeys", "selection", "selectionFilter", "showBorders", "showColumnHeaders", "showColumnLines", "showRowLines", "sortByGroupSummaryInfo", "sorting", "stateStoring", "summary", "syncLookupFilterValues", "tabIndex", "toolbar", "twoWayBindingEnabled", "visible", "width", "wordWrapEnabled"], outputs: ["onAdaptiveDetailRowPreparing", "onCellClick", "onCellDblClick", "onCellHoverChanged", "onCellPrepared", "onContentReady", "onContextMenuPreparing", "onDataErrorOccurred", "onDisposing", "onEditCanceled", "onEditCanceling", "onEditingStart", "onEditorPrepared", "onEditorPreparing", "onExporting", "onFocusedCellChanged", "onFocusedCellChanging", "onFocusedRowChanged", "onFocusedRowChanging", "onInitialized", "onInitNewRow", "onKeyDown", "onOptionChanged", "onRowClick", "onRowCollapsed", "onRowCollapsing", "onRowDblClick", "onRowExpanded", "onRowExpanding", "onRowInserted", "onRowInserting", "onRowPrepared", "onRowRemoved", "onRowRemoving", "onRowUpdated", "onRowUpdating", "onRowValidating", "onSaved", "onSaving", "onSelectionChanged", "onToolbarPreparing", "accessKeyChange", "activeStateEnabledChange", "allowColumnReorderingChange", "allowColumnResizingChange", "autoNavigateToFocusedRowChange", "cacheEnabledChange", "cellHintEnabledChange", "columnAutoWidthChange", "columnChooserChange", "columnFixingChange", "columnHidingEnabledChange", "columnMinWidthChange", "columnResizingModeChange", "columnsChange", "columnWidthChange", "customizeColumnsChange", "dataRowTemplateChange", "dataSourceChange", "dateSerializationFormatChange", "disabledChange", "editingChange", "elementAttrChange", "errorRowEnabledChange", "exportChange", "filterBuilderChange", "filterBuilderPopupChange", "filterPanelChange", "filterRowChange", "filterSyncEnabledChange", "filterValueChange", "focusedColumnIndexChange", "focusedRowEnabledChange", "focusedRowIndexChange", "focusedRowKeyChange", "groupingChange", "groupPanelChange", "headerFilterChange", "heightChange", "highlightChangesChange", "hintChange", "hoverStateEnabledChange", "keyboardNavigationChange", "keyExprChange", "loadPanelChange", "masterDetailChange", "noDataTextChange", "pagerChange", "pagingChange", "remoteOperationsChange", "renderAsyncChange", "repaintChangesOnlyChange", "rowAlternationEnabledChange", "rowDraggingChange", "rowTemplateChange", "rtlEnabledChange", "scrollingChange", "searchPanelChange", "selectedRowKeysChange", "selectionChange", "selectionFilterChange", "showBordersChange", "showColumnHeadersChange", "showColumnLinesChange", "showRowLinesChange", "sortByGroupSummaryInfoChange", "sortingChange", "stateStoringChange", "summaryChange", "syncLookupFilterValuesChange", "tabIndexChange", "toolbarChange", "twoWayBindingEnabledChange", "visibleChange", "widthChange", "wordWrapEnabledChange"] }, { kind: "component", type: i6.DxoHeaderFilterComponent, selector: "dxo-header-filter", inputs: ["allowSearch", "dataSource", "groupInterval", "height", "searchMode", "width", "searchTimeout", "texts", "visible", "showRelevantValues"] }, { kind: "component", type: i6.DxoFilterPanelComponent, selector: "dxo-filter-panel", inputs: ["customizeText", "filterEnabled", "texts", "visible"], outputs: ["filterEnabledChange"] }, { kind: "component", type: i6.DxoFilterRowComponent, selector: "dxo-filter-row", inputs: ["applyFilter", "applyFilterText", "betweenEndText", "betweenStartText", "operationDescriptions", "resetOperationText", "showAllText", "showOperationChooser", "visible"] }, { kind: "component", type: i6.DxoPagerComponent, selector: "dxo-pager", inputs: ["allowedPageSizes", "displayMode", "infoText", "label", "showInfo", "showNavigationButtons", "showPageSizeSelector", "visible"] }, { kind: "component", type: i6.DxoPagingComponent, selector: "dxo-paging", inputs: ["enabled", "pageIndex", "pageSize"], outputs: ["pageIndexChange", "pageSizeChange"] }, { kind: "component", type: i6.DxoScrollingComponent, selector: "dxo-scrolling", inputs: ["columnRenderingMode", "mode", "preloadEnabled", "renderAsync", "rowRenderingMode", "scrollByContent", "scrollByThumb", "showScrollbar", "useNative"] }, { kind: "component", type: i6.DxoSelectionComponent, selector: "dxo-selection", inputs: ["allowSelectAll", "deferred", "mode", "selectAllMode", "showCheckBoxesMode", "recursive"] }, { kind: "component", type: i6.DxoSortingComponent, selector: "dxo-sorting", inputs: ["ascendingText", "clearText", "descendingText", "mode", "showSortIndexes"] }, { kind: "component", type: i5.DxTextBoxComponent, selector: "dx-text-box", inputs: ["accessKey", "activeStateEnabled", "buttons", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "inputAttr", "isValid", "label", "labelMode", "mask", "maskChar", "maskInvalidMessage", "maskRules", "maxLength", "mode", "name", "placeholder", "readOnly", "rtlEnabled", "showClearButton", "showMaskMode", "spellcheck", "stylingMode", "tabIndex", "text", "useMaskedValue", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "visible", "width"], outputs: ["onChange", "onContentReady", "onCopy", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onKeyDown", "onKeyUp", "onOptionChanged", "onPaste", "onValueChanged", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "isValidChange", "labelChange", "labelModeChange", "maskChange", "maskCharChange", "maskInvalidMessageChange", "maskRulesChange", "maxLengthChange", "modeChange", "nameChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "showClearButtonChange", "showMaskModeChange", "spellcheckChange", "stylingModeChange", "tabIndexChange", "textChange", "useMaskedValueChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "visibleChange", "widthChange", "onBlur"] }, { kind: "pipe", type: i1.LocalizationPipe, name: "abpLocalization" }], encapsulation: i0.ViewEncapsulation.None });
|
|
188
|
+
HitModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: HitModalComponent, selector: "hit-lookup-select", inputs: { displayName: "displayName", keyExpr: "keyExpr", modalSize: "modalSize", getFn: "getFn", loadFn: "loadFn", columns: "columns", isVisible: "isVisible", disabled: "disabled", readOnly: "readOnly", showDateFilter: "showDateFilter", defaultDateFrom: "defaultDateFrom", defaultDateTo: "defaultDateTo", tabs: "tabs", editingData: "editingData" }, outputs: { selected: "selected" }, viewQueries: [{ propertyName: "dxdataInstance", first: true, predicate: ["dxdataInstance"], descendants: true }], ngImport: i0, template: "<div class=\"hit-lookup-group\">\n <dx-text-box\n [ngModel]=\"textDisplay\"\n [disabled]=\"disabled\"\n [readOnly]=\"true\"\n maxlength=\"64\">\n </dx-text-box>\n <div class=\"hit-lookup-actions\" *ngIf=\"isVisible && !readOnly\">\n <button\n class=\"hit-lookup-btn hit-lookup-btn-clear\"\n type=\"button\"\n *ngIf=\"textDisplay\"\n (click)=\"clearValue()\"\n [disabled]=\"disabled\"\n title=\"Temizle\">\n <i class=\"fa fa-times\"></i>\n </button>\n <button\n class=\"hit-lookup-btn\"\n type=\"button\"\n (click)=\"clickForOpenModal()\"\n [disabled]=\"disabled\"\n title=\"Ara\">\n <i class=\"fa fa-search\"></i>\n </button>\n </div>\n</div>\n\n<abp-modal [(visible)]=\"openModal\" [options]=\"{ size: modalSize }\">\n <ng-template #abpHeader>\n <h3>{{ 'AbpUi::Search' | abpLocalization }}</h3>\n </ng-template>\n <ng-template #abpBody>\n\n <!-- TABS MODE -->\n <ng-container *ngIf=\"tabs.length > 0\">\n <ul class=\"nav nav-tabs mb-2\">\n <li class=\"nav-item\" *ngFor=\"let tab of tabs; let i = index\">\n <button\n class=\"nav-link\"\n [class.active]=\"activeTabIndex === i\"\n type=\"button\"\n (click)=\"onTabClick(i)\">\n {{ tab.title }}\n </button>\n </li>\n </ul>\n\n <ng-container *ngFor=\"let tab of tabs; let i = index\">\n <ng-container *ngIf=\"activeTabIndex === i\">\n <!-- Hen\u00FCz t\u0131klanmad\u0131 -->\n <div\n *ngIf=\"!tabStates[i]?.isLoaded && !tabStates[i]?.isLoading\"\n class=\"d-flex align-items-center justify-content-center text-muted\"\n style=\"height: 55vh;\">\n {{ 'Kadooglu::ClickTabToLoad' | abpLocalization }}\n </div>\n <!-- Y\u00FCkleniyor -->\n <div\n *ngIf=\"tabStates[i]?.isLoading\"\n class=\"d-flex flex-column align-items-center justify-content-center\"\n style=\"height: 55vh;\">\n <div class=\"spinner-border text-primary mb-3\" style=\"width: 3rem; height: 3rem;\" role=\"status\">\n <span class=\"visually-hidden\">Y\u00FCkleniyor...</span>\n </div>\n <span class=\"text-muted\">Veriler y\u00FCkleniyor...</span>\n </div>\n <!-- Grid -->\n <dx-data-grid\n *ngIf=\"tabStates[i]?.isLoaded && !tabStates[i]?.isLoading\"\n #dxdataInstance\n [columns]=\"tab.columns\"\n [dataSource]=\"tabStates[i].data\"\n [keyExpr]=\"tab.keyExpr ?? 'code'\"\n [showRowLines]=\"true\"\n [showBorders]=\"true\"\n [hoverStateEnabled]=\"true\"\n [repaintChangesOnly]=\"true\"\n [allowColumnResizing]=\"true\"\n columnResizingMode=\"widget\"\n [allowColumnReordering]=\"true\"\n [columnAutoWidth]=\"true\"\n [focusedRowEnabled]=\"true\"\n [columnHidingEnabled]=\"true\"\n style=\"height: 55vh;\"\n (onToolbarPreparing)=\"onToolbarPreparing($event, i)\"\n (onRowDblClick)=\"setTitleOnDoubleClick($event)\">\n <dxo-pager\n [visible]=\"true\"\n [showInfo]=\"true\"\n [allowedPageSizes]=\"[50, 100, 200]\"\n [showNavigationButtons]=\"true\"\n [showPageSizeSelector]=\"true\">\n </dxo-pager>\n <dxo-paging [pageSize]=\"50\"></dxo-paging>\n <dxo-header-filter [allowSearch]=\"true\" [visible]=\"true\"></dxo-header-filter>\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\n <dxo-filter-panel [visible]=\"true\"></dxo-filter-panel>\n <dxo-sorting mode=\"single\"></dxo-sorting>\n <dxo-scrolling mode=\"horizontal\" showScrollbar=\"always\"></dxo-scrolling>\n <dxo-selection mode=\"single\"></dxo-selection>\n </dx-data-grid>\n </ng-container>\n </ng-container>\n </ng-container>\n\n <!-- SINGLE MODE -->\n <ng-container *ngIf=\"!tabs.length\">\n <!-- Loading overlay -->\n <div *ngIf=\"isLoading\" class=\"d-flex flex-column align-items-center justify-content-center\" style=\"height: 55vh;\">\n <div class=\"spinner-border text-primary mb-3\" style=\"width: 3rem; height: 3rem;\" role=\"status\">\n <span class=\"visually-hidden\">Y\u00FCkleniyor...</span>\n </div>\n <span class=\"text-muted\">Veriler y\u00FCkleniyor...</span>\n </div>\n <dx-data-grid\n *ngIf=\"!isLoading\"\n #dxdataInstance\n [columns]=\"columns\"\n [dataSource]=\"data\"\n [keyExpr]=\"keyExpr\"\n [showRowLines]=\"true\"\n [showBorders]=\"true\"\n [hoverStateEnabled]=\"true\"\n [repaintChangesOnly]=\"true\"\n [allowColumnResizing]=\"true\"\n columnResizingMode=\"widget\"\n [allowColumnReordering]=\"true\"\n [columnAutoWidth]=\"true\"\n [focusedRowEnabled]=\"true\"\n [columnHidingEnabled]=\"true\"\n style=\"height: 55vh;\"\n (onToolbarPreparing)=\"onToolbarPreparing($event)\"\n (onRowDblClick)=\"setTitleOnDoubleClick($event)\">\n <dxo-pager\n [visible]=\"true\"\n [showInfo]=\"true\"\n [allowedPageSizes]=\"[50, 100, 200]\"\n [showNavigationButtons]=\"true\"\n [showPageSizeSelector]=\"true\">\n </dxo-pager>\n <dxo-paging [pageSize]=\"50\"></dxo-paging>\n <dxo-header-filter [allowSearch]=\"true\" [visible]=\"true\"></dxo-header-filter>\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\n <dxo-filter-panel [visible]=\"true\"></dxo-filter-panel>\n <dxo-sorting mode=\"single\"></dxo-sorting>\n <dxo-scrolling mode=\"horizontal\" showScrollbar=\"always\"></dxo-scrolling>\n <dxo-selection mode=\"single\"></dxo-selection>\n </dx-data-grid>\n </ng-container>\n\n </ng-template>\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>\n {{ 'AbpUi::Cancel' | abpLocalization }}\n </button>\n <abp-button iconClass=\"fa fa-check\" buttonType=\"button\" (click)=\"setTitle()\">\n {{ 'AbpUi::Select' | abpLocalization }}\n </abp-button>\n </ng-template>\n</abp-modal>\n", styles: ["@charset \"UTF-8\";hit-lookup-select{display:block}hit-lookup-select .hit-lookup-group{display:flex;align-items:stretch;width:100%}hit-lookup-select .hit-lookup-group dx-text-box{flex:1 1 auto;min-width:0}hit-lookup-select .hit-lookup-group dx-text-box .dx-textbox{height:100%}hit-lookup-select .hit-lookup-group dx-text-box .dx-texteditor{border-top-right-radius:0;border-bottom-right-radius:0;border-right:none;height:36px}hit-lookup-select .hit-lookup-group dx-text-box .dx-texteditor-input{font-weight:600}hit-lookup-select .hit-lookup-group .hit-lookup-actions{display:flex;flex-shrink:0}hit-lookup-select .hit-lookup-group .hit-lookup-actions .hit-lookup-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border:1px solid #0d6efd;background:transparent;color:#0d6efd;font-size:.85rem;cursor:pointer;transition:background-color .15s ease,color .15s ease,border-color .15s ease;border-radius:0;outline:none}hit-lookup-select .hit-lookup-group .hit-lookup-actions .hit-lookup-btn:hover:not(:disabled){background-color:#0d6efd;color:#fff}hit-lookup-select .hit-lookup-group .hit-lookup-actions .hit-lookup-btn:active:not(:disabled){background-color:#0b5ed7;border-color:#0b5ed7;color:#fff}hit-lookup-select .hit-lookup-group .hit-lookup-actions .hit-lookup-btn:disabled{opacity:.5;cursor:not-allowed}hit-lookup-select .hit-lookup-group .hit-lookup-actions .hit-lookup-btn:last-child{border-top-right-radius:4px;border-bottom-right-radius:4px}hit-lookup-select .hit-lookup-group .hit-lookup-actions .hit-lookup-btn.hit-lookup-btn-clear{border-color:#dc3545;color:#dc3545;font-size:.75rem;width:30px}hit-lookup-select .hit-lookup-group .hit-lookup-actions .hit-lookup-btn.hit-lookup-btn-clear:hover:not(:disabled){background-color:#dc3545;color:#fff}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "formName", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }, { kind: "component", type: i4.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { kind: "directive", type: i4.ModalCloseDirective, selector: "[abpClose]" }, { kind: "component", type: i5.DxDataGridComponent, selector: "dx-data-grid", inputs: ["accessKey", "activeStateEnabled", "allowColumnReordering", "allowColumnResizing", "autoNavigateToFocusedRow", "cacheEnabled", "cellHintEnabled", "columnAutoWidth", "columnChooser", "columnFixing", "columnHidingEnabled", "columnMinWidth", "columnResizingMode", "columns", "columnWidth", "customizeColumns", "dataRowTemplate", "dataSource", "dateSerializationFormat", "disabled", "editing", "elementAttr", "errorRowEnabled", "export", "filterBuilder", "filterBuilderPopup", "filterPanel", "filterRow", "filterSyncEnabled", "filterValue", "focusedColumnIndex", "focusedRowEnabled", "focusedRowIndex", "focusedRowKey", "grouping", "groupPanel", "headerFilter", "height", "highlightChanges", "hint", "hoverStateEnabled", "keyboardNavigation", "keyExpr", "loadPanel", "masterDetail", "noDataText", "pager", "paging", "remoteOperations", "renderAsync", "repaintChangesOnly", "rowAlternationEnabled", "rowDragging", "rowTemplate", "rtlEnabled", "scrolling", "searchPanel", "selectedRowKeys", "selection", "selectionFilter", "showBorders", "showColumnHeaders", "showColumnLines", "showRowLines", "sortByGroupSummaryInfo", "sorting", "stateStoring", "summary", "syncLookupFilterValues", "tabIndex", "toolbar", "twoWayBindingEnabled", "visible", "width", "wordWrapEnabled"], outputs: ["onAdaptiveDetailRowPreparing", "onCellClick", "onCellDblClick", "onCellHoverChanged", "onCellPrepared", "onContentReady", "onContextMenuPreparing", "onDataErrorOccurred", "onDisposing", "onEditCanceled", "onEditCanceling", "onEditingStart", "onEditorPrepared", "onEditorPreparing", "onExporting", "onFocusedCellChanged", "onFocusedCellChanging", "onFocusedRowChanged", "onFocusedRowChanging", "onInitialized", "onInitNewRow", "onKeyDown", "onOptionChanged", "onRowClick", "onRowCollapsed", "onRowCollapsing", "onRowDblClick", "onRowExpanded", "onRowExpanding", "onRowInserted", "onRowInserting", "onRowPrepared", "onRowRemoved", "onRowRemoving", "onRowUpdated", "onRowUpdating", "onRowValidating", "onSaved", "onSaving", "onSelectionChanged", "onToolbarPreparing", "accessKeyChange", "activeStateEnabledChange", "allowColumnReorderingChange", "allowColumnResizingChange", "autoNavigateToFocusedRowChange", "cacheEnabledChange", "cellHintEnabledChange", "columnAutoWidthChange", "columnChooserChange", "columnFixingChange", "columnHidingEnabledChange", "columnMinWidthChange", "columnResizingModeChange", "columnsChange", "columnWidthChange", "customizeColumnsChange", "dataRowTemplateChange", "dataSourceChange", "dateSerializationFormatChange", "disabledChange", "editingChange", "elementAttrChange", "errorRowEnabledChange", "exportChange", "filterBuilderChange", "filterBuilderPopupChange", "filterPanelChange", "filterRowChange", "filterSyncEnabledChange", "filterValueChange", "focusedColumnIndexChange", "focusedRowEnabledChange", "focusedRowIndexChange", "focusedRowKeyChange", "groupingChange", "groupPanelChange", "headerFilterChange", "heightChange", "highlightChangesChange", "hintChange", "hoverStateEnabledChange", "keyboardNavigationChange", "keyExprChange", "loadPanelChange", "masterDetailChange", "noDataTextChange", "pagerChange", "pagingChange", "remoteOperationsChange", "renderAsyncChange", "repaintChangesOnlyChange", "rowAlternationEnabledChange", "rowDraggingChange", "rowTemplateChange", "rtlEnabledChange", "scrollingChange", "searchPanelChange", "selectedRowKeysChange", "selectionChange", "selectionFilterChange", "showBordersChange", "showColumnHeadersChange", "showColumnLinesChange", "showRowLinesChange", "sortByGroupSummaryInfoChange", "sortingChange", "stateStoringChange", "summaryChange", "syncLookupFilterValuesChange", "tabIndexChange", "toolbarChange", "twoWayBindingEnabledChange", "visibleChange", "widthChange", "wordWrapEnabledChange"] }, { kind: "component", type: i6.DxoHeaderFilterComponent, selector: "dxo-header-filter", inputs: ["allowSearch", "dataSource", "groupInterval", "height", "searchMode", "width", "searchTimeout", "texts", "visible", "showRelevantValues"] }, { kind: "component", type: i6.DxoFilterPanelComponent, selector: "dxo-filter-panel", inputs: ["customizeText", "filterEnabled", "texts", "visible"], outputs: ["filterEnabledChange"] }, { kind: "component", type: i6.DxoFilterRowComponent, selector: "dxo-filter-row", inputs: ["applyFilter", "applyFilterText", "betweenEndText", "betweenStartText", "operationDescriptions", "resetOperationText", "showAllText", "showOperationChooser", "visible"] }, { kind: "component", type: i6.DxoPagerComponent, selector: "dxo-pager", inputs: ["allowedPageSizes", "displayMode", "infoText", "label", "showInfo", "showNavigationButtons", "showPageSizeSelector", "visible"] }, { kind: "component", type: i6.DxoPagingComponent, selector: "dxo-paging", inputs: ["enabled", "pageIndex", "pageSize"], outputs: ["pageIndexChange", "pageSizeChange"] }, { kind: "component", type: i6.DxoScrollingComponent, selector: "dxo-scrolling", inputs: ["columnRenderingMode", "mode", "preloadEnabled", "renderAsync", "rowRenderingMode", "scrollByContent", "scrollByThumb", "showScrollbar", "useNative"] }, { kind: "component", type: i6.DxoSelectionComponent, selector: "dxo-selection", inputs: ["allowSelectAll", "deferred", "mode", "selectAllMode", "showCheckBoxesMode", "recursive"] }, { kind: "component", type: i6.DxoSortingComponent, selector: "dxo-sorting", inputs: ["ascendingText", "clearText", "descendingText", "mode", "showSortIndexes"] }, { kind: "component", type: i5.DxTextBoxComponent, selector: "dx-text-box", inputs: ["accessKey", "activeStateEnabled", "buttons", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "inputAttr", "isValid", "label", "labelMode", "mask", "maskChar", "maskInvalidMessage", "maskRules", "maxLength", "mode", "name", "placeholder", "readOnly", "rtlEnabled", "showClearButton", "showMaskMode", "spellcheck", "stylingMode", "tabIndex", "text", "useMaskedValue", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "visible", "width"], outputs: ["onChange", "onContentReady", "onCopy", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onKeyDown", "onKeyUp", "onOptionChanged", "onPaste", "onValueChanged", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "isValidChange", "labelChange", "labelModeChange", "maskChange", "maskCharChange", "maskInvalidMessageChange", "maskRulesChange", "maxLengthChange", "modeChange", "nameChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "showClearButtonChange", "showMaskModeChange", "spellcheckChange", "stylingModeChange", "tabIndexChange", "textChange", "useMaskedValueChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "visibleChange", "widthChange", "onBlur"] }, { kind: "pipe", type: i1.LocalizationPipe, name: "abpLocalization" }], encapsulation: i0.ViewEncapsulation.None });
|
|
139
189
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitModalComponent, decorators: [{
|
|
140
190
|
type: Component,
|
|
141
|
-
args: [{ selector: 'hit-lookup-select', encapsulation: ViewEncapsulation.None, template: "<div class=\"hit-lookup-group\">\
|
|
191
|
+
args: [{ selector: 'hit-lookup-select', encapsulation: ViewEncapsulation.None, template: "<div class=\"hit-lookup-group\">\n <dx-text-box\n [ngModel]=\"textDisplay\"\n [disabled]=\"disabled\"\n [readOnly]=\"true\"\n maxlength=\"64\">\n </dx-text-box>\n <div class=\"hit-lookup-actions\" *ngIf=\"isVisible && !readOnly\">\n <button\n class=\"hit-lookup-btn hit-lookup-btn-clear\"\n type=\"button\"\n *ngIf=\"textDisplay\"\n (click)=\"clearValue()\"\n [disabled]=\"disabled\"\n title=\"Temizle\">\n <i class=\"fa fa-times\"></i>\n </button>\n <button\n class=\"hit-lookup-btn\"\n type=\"button\"\n (click)=\"clickForOpenModal()\"\n [disabled]=\"disabled\"\n title=\"Ara\">\n <i class=\"fa fa-search\"></i>\n </button>\n </div>\n</div>\n\n<abp-modal [(visible)]=\"openModal\" [options]=\"{ size: modalSize }\">\n <ng-template #abpHeader>\n <h3>{{ 'AbpUi::Search' | abpLocalization }}</h3>\n </ng-template>\n <ng-template #abpBody>\n\n <!-- TABS MODE -->\n <ng-container *ngIf=\"tabs.length > 0\">\n <ul class=\"nav nav-tabs mb-2\">\n <li class=\"nav-item\" *ngFor=\"let tab of tabs; let i = index\">\n <button\n class=\"nav-link\"\n [class.active]=\"activeTabIndex === i\"\n type=\"button\"\n (click)=\"onTabClick(i)\">\n {{ tab.title }}\n </button>\n </li>\n </ul>\n\n <ng-container *ngFor=\"let tab of tabs; let i = index\">\n <ng-container *ngIf=\"activeTabIndex === i\">\n <!-- Hen\u00FCz t\u0131klanmad\u0131 -->\n <div\n *ngIf=\"!tabStates[i]?.isLoaded && !tabStates[i]?.isLoading\"\n class=\"d-flex align-items-center justify-content-center text-muted\"\n style=\"height: 55vh;\">\n {{ 'Kadooglu::ClickTabToLoad' | abpLocalization }}\n </div>\n <!-- Y\u00FCkleniyor -->\n <div\n *ngIf=\"tabStates[i]?.isLoading\"\n class=\"d-flex flex-column align-items-center justify-content-center\"\n style=\"height: 55vh;\">\n <div class=\"spinner-border text-primary mb-3\" style=\"width: 3rem; height: 3rem;\" role=\"status\">\n <span class=\"visually-hidden\">Y\u00FCkleniyor...</span>\n </div>\n <span class=\"text-muted\">Veriler y\u00FCkleniyor...</span>\n </div>\n <!-- Grid -->\n <dx-data-grid\n *ngIf=\"tabStates[i]?.isLoaded && !tabStates[i]?.isLoading\"\n #dxdataInstance\n [columns]=\"tab.columns\"\n [dataSource]=\"tabStates[i].data\"\n [keyExpr]=\"tab.keyExpr ?? 'code'\"\n [showRowLines]=\"true\"\n [showBorders]=\"true\"\n [hoverStateEnabled]=\"true\"\n [repaintChangesOnly]=\"true\"\n [allowColumnResizing]=\"true\"\n columnResizingMode=\"widget\"\n [allowColumnReordering]=\"true\"\n [columnAutoWidth]=\"true\"\n [focusedRowEnabled]=\"true\"\n [columnHidingEnabled]=\"true\"\n style=\"height: 55vh;\"\n (onToolbarPreparing)=\"onToolbarPreparing($event, i)\"\n (onRowDblClick)=\"setTitleOnDoubleClick($event)\">\n <dxo-pager\n [visible]=\"true\"\n [showInfo]=\"true\"\n [allowedPageSizes]=\"[50, 100, 200]\"\n [showNavigationButtons]=\"true\"\n [showPageSizeSelector]=\"true\">\n </dxo-pager>\n <dxo-paging [pageSize]=\"50\"></dxo-paging>\n <dxo-header-filter [allowSearch]=\"true\" [visible]=\"true\"></dxo-header-filter>\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\n <dxo-filter-panel [visible]=\"true\"></dxo-filter-panel>\n <dxo-sorting mode=\"single\"></dxo-sorting>\n <dxo-scrolling mode=\"horizontal\" showScrollbar=\"always\"></dxo-scrolling>\n <dxo-selection mode=\"single\"></dxo-selection>\n </dx-data-grid>\n </ng-container>\n </ng-container>\n </ng-container>\n\n <!-- SINGLE MODE -->\n <ng-container *ngIf=\"!tabs.length\">\n <!-- Loading overlay -->\n <div *ngIf=\"isLoading\" class=\"d-flex flex-column align-items-center justify-content-center\" style=\"height: 55vh;\">\n <div class=\"spinner-border text-primary mb-3\" style=\"width: 3rem; height: 3rem;\" role=\"status\">\n <span class=\"visually-hidden\">Y\u00FCkleniyor...</span>\n </div>\n <span class=\"text-muted\">Veriler y\u00FCkleniyor...</span>\n </div>\n <dx-data-grid\n *ngIf=\"!isLoading\"\n #dxdataInstance\n [columns]=\"columns\"\n [dataSource]=\"data\"\n [keyExpr]=\"keyExpr\"\n [showRowLines]=\"true\"\n [showBorders]=\"true\"\n [hoverStateEnabled]=\"true\"\n [repaintChangesOnly]=\"true\"\n [allowColumnResizing]=\"true\"\n columnResizingMode=\"widget\"\n [allowColumnReordering]=\"true\"\n [columnAutoWidth]=\"true\"\n [focusedRowEnabled]=\"true\"\n [columnHidingEnabled]=\"true\"\n style=\"height: 55vh;\"\n (onToolbarPreparing)=\"onToolbarPreparing($event)\"\n (onRowDblClick)=\"setTitleOnDoubleClick($event)\">\n <dxo-pager\n [visible]=\"true\"\n [showInfo]=\"true\"\n [allowedPageSizes]=\"[50, 100, 200]\"\n [showNavigationButtons]=\"true\"\n [showPageSizeSelector]=\"true\">\n </dxo-pager>\n <dxo-paging [pageSize]=\"50\"></dxo-paging>\n <dxo-header-filter [allowSearch]=\"true\" [visible]=\"true\"></dxo-header-filter>\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\n <dxo-filter-panel [visible]=\"true\"></dxo-filter-panel>\n <dxo-sorting mode=\"single\"></dxo-sorting>\n <dxo-scrolling mode=\"horizontal\" showScrollbar=\"always\"></dxo-scrolling>\n <dxo-selection mode=\"single\"></dxo-selection>\n </dx-data-grid>\n </ng-container>\n\n </ng-template>\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>\n {{ 'AbpUi::Cancel' | abpLocalization }}\n </button>\n <abp-button iconClass=\"fa fa-check\" buttonType=\"button\" (click)=\"setTitle()\">\n {{ 'AbpUi::Select' | abpLocalization }}\n </abp-button>\n </ng-template>\n</abp-modal>\n", styles: ["@charset \"UTF-8\";hit-lookup-select{display:block}hit-lookup-select .hit-lookup-group{display:flex;align-items:stretch;width:100%}hit-lookup-select .hit-lookup-group dx-text-box{flex:1 1 auto;min-width:0}hit-lookup-select .hit-lookup-group dx-text-box .dx-textbox{height:100%}hit-lookup-select .hit-lookup-group dx-text-box .dx-texteditor{border-top-right-radius:0;border-bottom-right-radius:0;border-right:none;height:36px}hit-lookup-select .hit-lookup-group dx-text-box .dx-texteditor-input{font-weight:600}hit-lookup-select .hit-lookup-group .hit-lookup-actions{display:flex;flex-shrink:0}hit-lookup-select .hit-lookup-group .hit-lookup-actions .hit-lookup-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border:1px solid #0d6efd;background:transparent;color:#0d6efd;font-size:.85rem;cursor:pointer;transition:background-color .15s ease,color .15s ease,border-color .15s ease;border-radius:0;outline:none}hit-lookup-select .hit-lookup-group .hit-lookup-actions .hit-lookup-btn:hover:not(:disabled){background-color:#0d6efd;color:#fff}hit-lookup-select .hit-lookup-group .hit-lookup-actions .hit-lookup-btn:active:not(:disabled){background-color:#0b5ed7;border-color:#0b5ed7;color:#fff}hit-lookup-select .hit-lookup-group .hit-lookup-actions .hit-lookup-btn:disabled{opacity:.5;cursor:not-allowed}hit-lookup-select .hit-lookup-group .hit-lookup-actions .hit-lookup-btn:last-child{border-top-right-radius:4px;border-bottom-right-radius:4px}hit-lookup-select .hit-lookup-group .hit-lookup-actions .hit-lookup-btn.hit-lookup-btn-clear{border-color:#dc3545;color:#dc3545;font-size:.75rem;width:30px}hit-lookup-select .hit-lookup-group .hit-lookup-actions .hit-lookup-btn.hit-lookup-btn-clear:hover:not(:disabled){background-color:#dc3545;color:#fff}\n"] }]
|
|
142
192
|
}], ctorParameters: function () { return [{ type: i1.LocalizationService }]; }, propDecorators: { dxdataInstance: [{
|
|
143
193
|
type: ViewChild,
|
|
144
194
|
args: ['dxdataInstance', { static: false }]
|
|
@@ -166,9 +216,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
166
216
|
type: Input
|
|
167
217
|
}], defaultDateTo: [{
|
|
168
218
|
type: Input
|
|
219
|
+
}], tabs: [{
|
|
220
|
+
type: Input
|
|
169
221
|
}], editingData: [{
|
|
170
222
|
type: Input
|
|
171
223
|
}], selected: [{
|
|
172
224
|
type: Output
|
|
173
225
|
}] } });
|
|
174
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2thZG9vZ2x1L3NyYy9saWIvc2hhcmVkL2hpdC1tb2RhbC9oaXQtbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Fkb29nbHUvc3JjL2xpYi9zaGFyZWQvaGl0LW1vZGFsL2hpdC1tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUNaLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7O0FBV3ZCLE1BQU0sT0FBTyxpQkFBaUI7SUFHNUIsWUFBb0IsbUJBQXdDO1FBQXhDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFFbkQsZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFDakIsWUFBTyxHQUFHLE1BQU0sQ0FBQztRQUNqQixjQUFTLEdBQUcsSUFBSSxDQUFDO1FBQzFCLG1GQUFtRjtRQUMxRSxVQUFLLEdBQVUsRUFBRSxDQUFDO1FBQzNCLDZHQUE2RztRQUNwRyxXQUFNLEdBQWlELElBQUksQ0FBQztRQUM1RCxZQUFPLEdBQVUsRUFBRSxDQUFDO1FBQ3BCLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFDakIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLG9CQUFlLEdBQWdCLElBQUksQ0FBQztRQUNwQyxrQkFBYSxHQUFnQixJQUFJLENBQUM7UUFnQmpDLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBRTdDLFNBQUksR0FBVSxFQUFFLENBQUM7UUFDakIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixjQUFTLEdBQUcsS0FBSyxD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O2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBSUYsV0FBVztzQkFEZCxLQUFLO2dCQWFJLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBJbnB1dCxcclxuICBPdXRwdXQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIFZpZXdDaGlsZCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XHJcbmltcG9ydCB7IER4RGF0YUdyaWRDb21wb25lbnQgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXInO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2hpdC1sb29rdXAtc2VsZWN0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaGl0LW1vZGFsLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9oaXQtbW9kYWwuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSGl0TW9kYWxDb21wb25lbnQge1xyXG4gIEBWaWV3Q2hpbGQoJ2R4ZGF0YUluc3RhbmNlJywgeyBzdGF0aWM6IGZhbHNlIH0pIGR4ZGF0YUluc3RhbmNlOiBEeERhdGFHcmlkQ29tcG9uZW50O1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGxvY2FsaXphdGlvblNlcnZpY2U6IExvY2FsaXphdGlvblNlcnZpY2UpIHt9XHJcblxyXG4gIEBJbnB1dCgpIGRpc3BsYXlOYW1lID0gJyc7XHJcbiAgQElucHV0KCkga2V5RXhwciA9ICdjb2RlJztcclxuICBASW5wdXQoKSBtb2RhbFNpemUgPSAneGwnO1xyXG4gIC8qKiBEYXRhIGFycmF5IHRoYXQgd2lsbCBiZSBzaG93biBpbiB0aGUgbG9va3VwIG1vZGFsIGdyaWQgKGVhZ2VyIC8gcHJlLWxvYWRlZCkuICovXHJcbiAgQElucHV0KCkgZ2V0Rm46IGFueVtdID0gW107XHJcbiAgLyoqIEZ1bmN0aW9uIHJldHVybmluZyBPYnNlcnZhYmxlIOKAlCBjYWxsZWQgbGF6aWx5IHdoZW4gdGhlIG1vZGFsIG9wZW5zLiBPcHRpb25hbGx5IHJlY2VpdmVzIGZpbHRlciBwYXJhbXMuICovXHJcbiAgQElucHV0KCkgbG9hZEZuOiAoKHBhcmFtcz86IGFueSkgPT4gT2JzZXJ2YWJsZTxhbnlbXT4pIHwgbnVsbCA9IG51bGw7XHJcbiAgQElucHV0KCkgY29sdW1uczogYW55W10gPSBbXTtcclxuICBASW5wdXQoKSBpc1Zpc2libGUgPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcmVhZE9ubHkgPSBmYWxzZTtcclxuICBASW5wdXQoKSBzaG93RGF0ZUZpbHRlciA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGRlZmF1bHREYXRlRnJvbTogRGF0ZSB8IG51bGwgPSBudWxsO1xyXG4gIEBJbnB1dCgpIGRlZmF1bHREYXRlVG86IERhdGUgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgLyoqIFByZS1wb3B1bGF0ZSBkaXNwbGF5IHRleHQgKGUuZy4gaW4gZWRpdCBtb2RlKS4gU2V0dGVyIGVuc3VyZXMgcmVhY3RpdmUgdXBkYXRlcy4gKi9cclxuICBASW5wdXQoKVxyXG4gIHNldCBlZGl0aW5nRGF0YSh2YWw6IGFueSkge1xyXG4gICAgaWYgKHZhbCA9PT0gbnVsbCB8fCB2YWwgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLnRleHREaXNwbGF5ID0gJyc7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmICh0eXBlb2YgdmFsID09PSAnc3RyaW5nJykge1xyXG4gICAgICB0aGlzLnRleHREaXNwbGF5ID0gdmFsO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmRpc3BsYXlOYW1lICYmIHZhbFt0aGlzLmRpc3BsYXlOYW1lXSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMudGV4dERpc3BsYXkgPSB2YWxbdGhpcy5kaXNwbGF5TmFtZV07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAT3V0cHV0KCkgc2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgZGF0YTogYW55W10gPSBbXTtcclxuICBvcGVuTW9kYWwgPSBmYWxzZTtcclxuICBpc0xvYWRpbmcgPSBmYWxzZTtcclxuICB0ZXh0RGlzcGxheSA9ICcnO1xyXG4gIGZpbHRlckRhdGVGcm9tOiBEYXRlIHwgbnVsbCA9IG51bGw7XHJcbiAgZmlsdGVyRGF0ZVRvOiBEYXRlIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIGNsaWNrRm9yT3Blbk1vZGFsKCk6IHZvaWQge1xyXG4gICAgdGhpcy5vcGVuTW9kYWwgPSB0cnVlO1xyXG4gICAgdGhpcy5maWx0ZXJEYXRlRnJvbSA9IHRoaXMuZGVmYXVsdERhdGVGcm9tID8/IG51bGw7XHJcbiAgICB0aGlzLmZpbHRlckRhdGVUbyA9IHRoaXMuZGVmYXVsdERhdGVUbyA/PyBudWxsO1xyXG4gICAgdGhpcy5sb2FkRGF0YSgpO1xyXG4gIH1cclxuXHJcbiAgbG9hZERhdGEoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5sb2FkRm4pIHtcclxuICAgICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xyXG4gICAgICB0aGlzLmRhdGEgPSBbXTtcclxuICAgICAgY29uc3QgcGFyYW1zID0gdGhpcy5zaG93RGF0ZUZpbHRlclxyXG4gICAgICAgID8geyBkYXRlRnJvbTogdGhpcy50b0RhdGVTdHIodGhpcy5maWx0ZXJEYXRlRnJvbSksIGRhdGVUbzogdGhpcy50b0RhdGVTdHIodGhpcy5maWx0ZXJEYXRlVG8pIH1cclxuICAgICAgICA6IHVuZGVmaW5lZDtcclxuICAgICAgdGhpcy5sb2FkRm4ocGFyYW1zKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXN1bHQpID0+IHtcclxuICAgICAgICAgIHRoaXMuZGF0YSA9IHJlc3VsdDtcclxuICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5kYXRhID0gW107XHJcbiAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5kYXRhID0gdGhpcy5nZXRGbjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uRGF0ZUZpbHRlckNoYW5nZWQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmxvYWREYXRhKCk7XHJcbiAgfVxyXG5cclxuICBvblRvb2xiYXJQcmVwYXJpbmcoZTogYW55KTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuc2hvd0RhdGVGaWx0ZXIpIHJldHVybjtcclxuICAgIGUudG9vbGJhck9wdGlvbnMuaXRlbXMudW5zaGlmdChcclxuICAgICAge1xyXG4gICAgICAgIGxvY2F0aW9uOiAnYmVmb3JlJyxcclxuICAgICAgICB3aWRnZXQ6ICdkeERhdGVCb3gnLFxyXG4gICAgICAgIG9wdGlvbnM6IHtcclxuICAgICAgICAgIHZhbHVlOiB0aGlzLmZpbHRlckRhdGVGcm9tLFxyXG4gICAgICAgICAgdHlwZTogJ2RhdGUnLFxyXG4gICAgICAgICAgZGlzcGxheUZvcm1hdDogJ2RkLk1NLnl5eXknLFxyXG4gICAgICAgICAgd2lkdGg6IDE0MCxcclxuICAgICAgICAgIGxhYmVsOiB0aGlzLmxvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudCgnS2Fkb29nbHU6OlN0YXJ0RGF0ZScpLFxyXG4gICAgICAgICAgb25WYWx1ZUNoYW5nZWQ6IChhcmdzOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5maWx0ZXJEYXRlRnJvbSA9IGFyZ3MudmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMub25EYXRlRmlsdGVyQ2hhbmdlZCgpO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgbG9jYXRpb246ICdiZWZvcmUnLFxyXG4gICAgICAgIHdpZGdldDogJ2R4RGF0ZUJveCcsXHJcbiAgICAgICAgb3B0aW9uczoge1xyXG4gICAgICAgICAgdmFsdWU6IHRoaXMuZmlsdGVyRGF0ZVRvLFxyXG4gICAgICAgICAgdHlwZTogJ2RhdGUnLFxyXG4gICAgICAgICAgZGlzcGxheUZvcm1hdDogJ2RkLk1NLnl5eXknLFxyXG4gICAgICAgICAgd2lkdGg6IDE0MCxcclxuICAgICAgICAgIGxhYmVsOiB0aGlzLmxvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudCgnS2Fkb29nbHU6OkVuZERhdGUnKSxcclxuICAgICAgICAgIG9uVmFsdWVDaGFuZ2VkOiAoYXJnczogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyRGF0ZVRvID0gYXJncy52YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5vbkRhdGVGaWx0ZXJDaGFuZ2VkKCk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB0b0RhdGVTdHIoZGF0ZTogRGF0ZSB8IG51bGwpOiBzdHJpbmcgfCBudWxsIHtcclxuICAgIGlmICghZGF0ZSkgcmV0dXJuIG51bGw7XHJcbiAgICByZXR1cm4gbmV3IERhdGUoZGF0ZSkudG9JU09TdHJpbmcoKS5zcGxpdCgnVCcpWzBdO1xyXG4gIH1cclxuXHJcbiAgc2V0VGl0bGUoKTogdm9pZCB7XHJcbiAgICB0aGlzLm9wZW5Nb2RhbCA9IGZhbHNlO1xyXG4gICAgY29uc3Qgc2VsZWN0ZWREYXRhID0gdGhpcy5keGRhdGFJbnN0YW5jZT8uaW5zdGFuY2UuZ2V0U2VsZWN0ZWRSb3dzRGF0YSgpID8/IFtdO1xyXG4gICAgY29uc3Qgc2VsZWN0ZWRLZXlzID0gdGhpcy5keGRhdGFJbnN0YW5jZT8uaW5zdGFuY2UuZ2V0U2VsZWN0ZWRSb3dLZXlzKCkgPz8gW107XHJcbiAgICBpZiAoc2VsZWN0ZWRLZXlzLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy50ZXh0RGlzcGxheSA9IHNlbGVjdGVkRGF0YVswXT8uW3RoaXMuZGlzcGxheU5hbWVdID8/ICcnO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkLmVtaXQoc2VsZWN0ZWREYXRhWzBdKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldFRpdGxlT25Eb3VibGVDbGljayhlOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub3Blbk1vZGFsID0gZmFsc2U7XHJcbiAgICBpZiAoZT8uZGF0YSkge1xyXG4gICAgICB0aGlzLnRleHREaXNwbGF5ID0gZS5kYXRhW3RoaXMuZGlzcGxheU5hbWVdID8/ICcnO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkLmVtaXQoZS5kYXRhKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNsZWFyVmFsdWUoKTogdm9pZCB7XHJcbiAgICB0aGlzLnRleHREaXNwbGF5ID0gJyc7XHJcbiAgICB0aGlzLnNlbGVjdGVkLmVtaXQobnVsbCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJoaXQtbG9va3VwLWdyb3VwXCI+XHJcbiAgPGR4LXRleHQtYm94XHJcbiAgICBbbmdNb2RlbF09XCJ0ZXh0RGlzcGxheVwiXHJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgW3JlYWRPbmx5XT1cInRydWVcIlxyXG4gICAgbWF4bGVuZ3RoPVwiNjRcIj5cclxuICA8L2R4LXRleHQtYm94PlxyXG4gIDxkaXYgY2xhc3M9XCJoaXQtbG9va3VwLWFjdGlvbnNcIiAqbmdJZj1cImlzVmlzaWJsZSAmJiAhcmVhZE9ubHlcIj5cclxuICAgIDxidXR0b25cclxuICAgICAgY2xhc3M9XCJoaXQtbG9va3VwLWJ0biBoaXQtbG9va3VwLWJ0bi1jbGVhclwiXHJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAqbmdJZj1cInRleHREaXNwbGF5XCJcclxuICAgICAgKGNsaWNrKT1cImNsZWFyVmFsdWUoKVwiXHJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICAgIHRpdGxlPVwiVGVtaXpsZVwiPlxyXG4gICAgICA8aSBjbGFzcz1cImZhIGZhLXRpbWVzXCI+PC9pPlxyXG4gICAgPC9idXR0b24+XHJcbiAgICA8YnV0dG9uXHJcbiAgICAgIGNsYXNzPVwiaGl0LWxvb2t1cC1idG5cIlxyXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgKGNsaWNrKT1cImNsaWNrRm9yT3Blbk1vZGFsKClcIlxyXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICB0aXRsZT1cIkFyYVwiPlxyXG4gICAgICA8aSBjbGFzcz1cImZhIGZhLXNlYXJjaFwiPjwvaT5cclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxhYnAtbW9kYWwgWyh2aXNpYmxlKV09XCJvcGVuTW9kYWxcIiBbb3B0aW9uc109XCJ7IHNpemU6IG1vZGFsU2l6ZSB9XCI+XHJcbiAgPG5nLXRlbXBsYXRlICNhYnBIZWFkZXI+XHJcbiAgICA8aDM+e3sgJ0FicFVpOjpTZWFyY2gnIHwgYWJwTG9jYWxpemF0aW9uIH19PC9oMz5cclxuICA8L25nLXRlbXBsYXRlPlxyXG4gIDxuZy10ZW1wbGF0ZSAjYWJwQm9keT5cclxuICAgIDwhLS0gTG9hZGluZyBvdmVybGF5IC0tPlxyXG4gICAgPGRpdiAqbmdJZj1cImlzTG9hZGluZ1wiIGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCIgc3R5bGU9XCJoZWlnaHQ6IDU1dmg7XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzcGlubmVyLWJvcmRlciB0ZXh0LXByaW1hcnkgbWItM1wiIHN0eWxlPVwid2lkdGg6IDNyZW07IGhlaWdodDogM3JlbTtcIiByb2xlPVwic3RhdHVzXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ2aXN1YWxseS1oaWRkZW5cIj5Zw7xrbGVuaXlvci4uLjwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1tdXRlZFwiPlZlcmlsZXIgecO8a2xlbml5b3IuLi48L3NwYW4+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkeC1kYXRhLWdyaWRcclxuICAgICAgKm5nSWY9XCIhaXNMb2FkaW5nXCJcclxuICAgICAgI2R4ZGF0YUluc3RhbmNlXHJcbiAgICAgIFtjb2x1bW5zXT1cImNvbHVtbnNcIlxyXG4gICAgICBbZGF0YVNvdXJjZV09XCJkYXRhXCJcclxuICAgICAgW2tleUV4cHJdPVwia2V5RXhwclwiXHJcbiAgICAgIFtzaG93Um93TGluZXNdPVwidHJ1ZVwiXHJcbiAgICAgIFtzaG93Qm9yZGVyc109XCJ0cnVlXCJcclxuICAgICAgW2hvdmVyU3RhdGVFbmFibGVkXT1cInRydWVcIlxyXG4gICAgICBbcmVwYWludENoYW5nZXNPbmx5XT1cInRydWVcIlxyXG4gICAgICBbYWxsb3dDb2x1bW5SZXNpemluZ109XCJ0cnVlXCJcclxuICAgICAgY29sdW1uUmVzaXppbmdNb2RlPVwid2lkZ2V0XCJcclxuICAgICAgW2FsbG93Q29sdW1uUmVvcmRlcmluZ109XCJ0cnVlXCJcclxuICAgICAgW2NvbHVtbkF1dG9XaWR0aF09XCJ0cnVlXCJcclxuICAgICAgW2ZvY3VzZWRSb3dFbmFibGVkXT1cInRydWVcIlxyXG4gICAgICBbY29sdW1uSGlkaW5nRW5hYmxlZF09XCJ0cnVlXCJcclxuICAgICAgc3R5bGU9XCJoZWlnaHQ6IDU1dmg7XCJcclxuICAgICAgKG9uVG9vbGJhclByZXBhcmluZyk9XCJvblRvb2xiYXJQcmVwYXJpbmcoJGV2ZW50KVwiXHJcbiAgICAgIChvblJvd0RibENsaWNrKT1cInNldFRpdGxlT25Eb3VibGVDbGljaygkZXZlbnQpXCI+XHJcbiAgICAgIDxkeG8tcGFnZXJcclxuICAgICAgICBbdmlzaWJsZV09XCJ0cnVlXCJcclxuICAgICAgICBbc2hvd0luZm9dPVwidHJ1ZVwiXHJcbiAgICAgICAgW2FsbG93ZWRQYWdlU2l6ZXNdPVwiWzUwLCAxMDAsIDIwMF1cIlxyXG4gICAgICAgIFtzaG93TmF2aWdhdGlvbkJ1dHRvbnNdPVwidHJ1ZVwiXHJcbiAgICAgICAgW3Nob3dQYWdlU2l6ZVNlbGVjdG9yXT1cInRydWVcIj5cclxuICAgICAgPC9keG8tcGFnZXI+XHJcbiAgICAgIDxkeG8tcGFnaW5nIFtwYWdlU2l6ZV09XCI1MFwiPjwvZHhvLXBhZ2luZz5cclxuICAgICAgPGR4by1oZWFkZXItZmlsdGVyIFthbGxvd1NlYXJjaF09XCJ0cnVlXCIgW3Zpc2libGVdPVwidHJ1ZVwiPjwvZHhvLWhlYWRlci1maWx0ZXI+XHJcbiAgICAgIDxkeG8tZmlsdGVyLXJvdyBbdmlzaWJsZV09XCJ0cnVlXCI+PC9keG8tZmlsdGVyLXJvdz5cclxuICAgICAgPGR4by1maWx0ZXItcGFuZWwgW3Zpc2libGVdPVwidHJ1ZVwiPjwvZHhvLWZpbHRlci1wYW5lbD5cclxuICAgICAgPGR4by1zb3J0aW5nIG1vZGU9XCJzaW5nbGVcIj48L2R4by1zb3J0aW5nPlxyXG4gICAgICA8ZHhvLXNjcm9sbGluZyBtb2RlPVwiaG9yaXpvbnRhbFwiIHNob3dTY3JvbGxiYXI9XCJhbHdheXNcIj48L2R4by1zY3JvbGxpbmc+XHJcbiAgICAgIDxkeG8tc2VsZWN0aW9uIG1vZGU9XCJzaW5nbGVcIj48L2R4by1zZWxlY3Rpb24+XHJcbiAgICA8L2R4LWRhdGEtZ3JpZD5cclxuICA8L25nLXRlbXBsYXRlPlxyXG4gIDxuZy10ZW1wbGF0ZSAjYWJwRm9vdGVyPlxyXG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiIGFicENsb3NlPlxyXG4gICAgICB7eyAnQWJwVWk6OkNhbmNlbCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPGFicC1idXR0b24gaWNvbkNsYXNzPVwiZmEgZmEtY2hlY2tcIiBidXR0b25UeXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInNldFRpdGxlKClcIj5cclxuICAgICAge3sgJ0FicFVpOjpTZWxlY3QnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICA8L2FicC1idXR0b24+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuPC9hYnAtbW9kYWw+XHJcbiJdfQ==
|
|
226
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2thZG9vZ2x1L3NyYy9saWIvc2hhcmVkL2hpdC1tb2RhbC9oaXQtbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Fkb29nbHUvc3JjL2xpYi9zaGFyZWQvaGl0LW1vZGFsL2hpdC1tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUNaLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7O0FBOEJ2QixNQUFNLE9BQU8saUJBQWlCO0lBRzVCLFlBQW9CLG1CQUF3QztRQUF4Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBRW5ELGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLFlBQU8sR0FBRyxNQUFNLENBQUM7UUFDakIsY0FBUyxHQUFHLElBQUksQ0FBQztRQUMxQixtRkFBbUY7UUFDMUUsVUFBSyxHQUFVLEVBQUUsQ0FBQztRQUMzQiw2R0FBNkc7UUFDcEcsV0FBTSxHQUFpRCxJQUFJLENBQUM7UUFDNUQsWUFBTyxHQUFVLEVBQUUsQ0FBQztRQUNwQixjQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUN2QixvQkFBZSxHQUFnQixJQUFJLENBQUM7UUFDcEMsa0JBQWEsR0FBZ0IsSUFBSSxDQUFDO1FBQ2xDLFNBQUksR0FBZ0IsRUFBRSxDQUFDO1FBZ0J0QixhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUU3QyxTQUFJLEdBQVUsRUFBRSxDQUFDO1FBQ2pCLGNBQVMsR0FBRyxLQUFL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QUM1QjtJQUNILENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0IsQ0FBQzs7OEdBN0xVLGlCQUFpQjtrR0FBakIsaUJBQWlCLDRpQkNyQzlCLDR4TUFpS0E7MkZENUhhLGlCQUFpQjtrQkFON0IsU0FBUzsrQkFDRSxtQkFBbUIsaUJBR2QsaUJBQWlCLENBQUMsSUFBSTswR0FHVyxjQUFjO3NCQUE3RCxTQUFTO3VCQUFDLGdCQUFnQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFJckMsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUcsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBSUYsV0FBVztzQkFEZCxLQUFLO2dCQWFJLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMb2NhbGl6YXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcbmltcG9ydCB7IER4RGF0YUdyaWRDb21wb25lbnQgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXInO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIExvb2t1cFRhYiB7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGxvYWRGbjogKHBhcmFtcz86IGFueSkgPT4gT2JzZXJ2YWJsZTxhbnlbXT47XG4gIGNvbHVtbnM6IGFueVtdO1xuICBrZXlFeHByPzogc3RyaW5nO1xuICBkaXNwbGF5TmFtZTogc3RyaW5nO1xuICBzaG93RGF0ZUZpbHRlcj86IGJvb2xlYW47XG4gIGRlZmF1bHREYXRlRnJvbT86IERhdGUgfCBudWxsO1xuICBkZWZhdWx0RGF0ZVRvPzogRGF0ZSB8IG51bGw7XG59XG5cbmludGVyZmFjZSBMb29rdXBUYWJTdGF0ZSB7XG4gIGRhdGE6IGFueVtdO1xuICBpc0xvYWRpbmc6IGJvb2xlYW47XG4gIGlzTG9hZGVkOiBib29sZWFuO1xuICBmaWx0ZXJEYXRlRnJvbTogRGF0ZSB8IG51bGw7XG4gIGZpbHRlckRhdGVUbzogRGF0ZSB8IG51bGw7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2hpdC1sb29rdXAtc2VsZWN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2hpdC1tb2RhbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2hpdC1tb2RhbC5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBIaXRNb2RhbENvbXBvbmVudCB7XG4gIEBWaWV3Q2hpbGQoJ2R4ZGF0YUluc3RhbmNlJywgeyBzdGF0aWM6IGZhbHNlIH0pIGR4ZGF0YUluc3RhbmNlOiBEeERhdGFHcmlkQ29tcG9uZW50O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbG9jYWxpemF0aW9uU2VydmljZTogTG9jYWxpemF0aW9uU2VydmljZSkge31cblxuICBASW5wdXQoKSBkaXNwbGF5TmFtZSA9ICcnO1xuICBASW5wdXQoKSBrZXlFeHByID0gJ2NvZGUnO1xuICBASW5wdXQoKSBtb2RhbFNpemUgPSAneGwnO1xuICAvKiogRGF0YSBhcnJheSB0aGF0IHdpbGwgYmUgc2hvd24gaW4gdGhlIGxvb2t1cCBtb2RhbCBncmlkIChlYWdlciAvIHByZS1sb2FkZWQpLiAqL1xuICBASW5wdXQoKSBnZXRGbjogYW55W10gPSBbXTtcbiAgLyoqIEZ1bmN0aW9uIHJldHVybmluZyBPYnNlcnZhYmxlIOKAlCBjYWxsZWQgbGF6aWx5IHdoZW4gdGhlIG1vZGFsIG9wZW5zLiBPcHRpb25hbGx5IHJlY2VpdmVzIGZpbHRlciBwYXJhbXMuICovXG4gIEBJbnB1dCgpIGxvYWRGbjogKChwYXJhbXM/OiBhbnkpID0+IE9ic2VydmFibGU8YW55W10+KSB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBjb2x1bW5zOiBhbnlbXSA9IFtdO1xuICBASW5wdXQoKSBpc1Zpc2libGUgPSB0cnVlO1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICBASW5wdXQoKSByZWFkT25seSA9IGZhbHNlO1xuICBASW5wdXQoKSBzaG93RGF0ZUZpbHRlciA9IGZhbHNlO1xuICBASW5wdXQoKSBkZWZhdWx0RGF0ZUZyb206IERhdGUgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgZGVmYXVsdERhdGVUbzogRGF0ZSB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSB0YWJzOiBMb29rdXBUYWJbXSA9IFtdO1xuXG4gIC8qKiBQcmUtcG9wdWxhdGUgZGlzcGxheSB0ZXh0IChlLmcuIGluIGVkaXQgbW9kZSkuIFNldHRlciBlbnN1cmVzIHJlYWN0aXZlIHVwZGF0ZXMuICovXG4gIEBJbnB1dCgpXG4gIHNldCBlZGl0aW5nRGF0YSh2YWw6IGFueSkge1xuICAgIGlmICh2YWwgPT09IG51bGwgfHwgdmFsID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMudGV4dERpc3BsYXkgPSAnJztcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnKSB7XG4gICAgICB0aGlzLnRleHREaXNwbGF5ID0gdmFsO1xuICAgIH0gZWxzZSBpZiAodGhpcy5kaXNwbGF5TmFtZSAmJiB2YWxbdGhpcy5kaXNwbGF5TmFtZV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy50ZXh0RGlzcGxheSA9IHZhbFt0aGlzLmRpc3BsYXlOYW1lXTtcbiAgICB9XG4gIH1cblxuICBAT3V0cHV0KCkgc2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBkYXRhOiBhbnlbXSA9IFtdO1xuICBvcGVuTW9kYWwgPSBmYWxzZTtcbiAgaXNMb2FkaW5nID0gZmFsc2U7XG4gIHRleHREaXNwbGF5ID0gJyc7XG4gIGZpbHRlckRhdGVGcm9tOiBEYXRlIHwgbnVsbCA9IG51bGw7XG4gIGZpbHRlckRhdGVUbzogRGF0ZSB8IG51bGwgPSBudWxsO1xuXG4gIC8vIFRhYiBtb2RlIHN0YXRlXG4gIGFjdGl2ZVRhYkluZGV4ID0gMDtcbiAgdGFiU3RhdGVzOiBMb29rdXBUYWJTdGF0ZVtdID0gW107XG5cbiAgY2xpY2tGb3JPcGVuTW9kYWwoKTogdm9pZCB7XG4gICAgdGhpcy5vcGVuTW9kYWwgPSB0cnVlO1xuICAgIGlmICh0aGlzLnRhYnMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5hY3RpdmVUYWJJbmRleCA9IDA7XG4gICAgICB0aGlzLnRhYlN0YXRlcyA9IHRoaXMudGFicy5tYXAodGFiID0+ICh7XG4gICAgICAgIGRhdGE6IFtdLFxuICAgICAgICBpc0xvYWRpbmc6IGZhbHNlLFxuICAgICAgICBpc0xvYWRlZDogZmFsc2UsXG4gICAgICAgIGZpbHRlckRhdGVGcm9tOiB0YWIuZGVmYXVsdERhdGVGcm9tID8/IG51bGwsXG4gICAgICAgIGZpbHRlckRhdGVUbzogdGFiLmRlZmF1bHREYXRlVG8gPz8gbnVsbCxcbiAgICAgIH0pKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5maWx0ZXJEYXRlRnJvbSA9IHRoaXMuZGVmYXVsdERhdGVGcm9tID8/IG51bGw7XG4gICAgICB0aGlzLmZpbHRlckRhdGVUbyA9IHRoaXMuZGVmYXVsdERhdGVUbyA/PyBudWxsO1xuICAgICAgdGhpcy5sb2FkRGF0YSgpO1xuICAgIH1cbiAgfVxuXG4gIG9uVGFiQ2xpY2soaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuYWN0aXZlVGFiSW5kZXggPSBpbmRleDtcbiAgICBpZiAoIXRoaXMudGFiU3RhdGVzW2luZGV4XS5pc0xvYWRlZCAmJiAhdGhpcy50YWJTdGF0ZXNbaW5kZXhdLmlzTG9hZGluZykge1xuICAgICAgdGhpcy5sb2FkVGFiRGF0YShpbmRleCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBsb2FkVGFiRGF0YShpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgdGFiID0gdGhpcy50YWJzW2luZGV4XTtcbiAgICBjb25zdCBzdGF0ZSA9IHRoaXMudGFiU3RhdGVzW2luZGV4XTtcbiAgICBzdGF0ZS5pc0xvYWRpbmcgPSB0cnVlO1xuICAgIGNvbnN0IHBhcmFtcyA9IHRhYi5zaG93RGF0ZUZpbHRlclxuICAgICAgPyB7IGRhdGVGcm9tOiB0aGlzLnRvRGF0ZVN0cihzdGF0ZS5maWx0ZXJEYXRlRnJvbSksIGRhdGVUbzogdGhpcy50b0RhdGVTdHIoc3RhdGUuZmlsdGVyRGF0ZVRvKSB9XG4gICAgICA6IHVuZGVmaW5lZDtcbiAgICB0YWIubG9hZEZuKHBhcmFtcykuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXN1bHQpID0+IHsgc3RhdGUuZGF0YSA9IHJlc3VsdDsgc3RhdGUuaXNMb2FkaW5nID0gZmFsc2U7IHN0YXRlLmlzTG9hZGVkID0gdHJ1ZTsgfSxcbiAgICAgIGVycm9yOiAoKSAgICAgICA9PiB7IHN0YXRlLmRhdGEgPSBbXTsgICAgc3RhdGUuaXNMb2FkaW5nID0gZmFsc2U7IHN0YXRlLmlzTG9hZGVkID0gdHJ1ZTsgfSxcbiAgICB9KTtcbiAgfVxuXG4gIGxvYWREYXRhKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmxvYWRGbikge1xuICAgICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuICAgICAgdGhpcy5kYXRhID0gW107XG4gICAgICBjb25zdCBwYXJhbXMgPSB0aGlzLnNob3dEYXRlRmlsdGVyXG4gICAgICAgID8geyBkYXRlRnJvbTogdGhpcy50b0RhdGVTdHIodGhpcy5maWx0ZXJEYXRlRnJvbSksIGRhdGVUbzogdGhpcy50b0RhdGVTdHIodGhpcy5maWx0ZXJEYXRlVG8pIH1cbiAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgICB0aGlzLmxvYWRGbihwYXJhbXMpLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IChyZXN1bHQpID0+IHtcbiAgICAgICAgICB0aGlzLmRhdGEgPSByZXN1bHQ7XG4gICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6ICgpID0+IHtcbiAgICAgICAgICB0aGlzLmRhdGEgPSBbXTtcbiAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZGF0YSA9IHRoaXMuZ2V0Rm47XG4gICAgfVxuICB9XG5cbiAgb25EYXRlRmlsdGVyQ2hhbmdlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmxvYWREYXRhKCk7XG4gIH1cblxuICBvblRvb2xiYXJQcmVwYXJpbmcoZTogYW55LCB0YWJJbmRleD86IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IHVzZVRhYnMgPSB0aGlzLnRhYnMubGVuZ3RoID4gMCAmJiB0YWJJbmRleCAhPT0gdW5kZWZpbmVkO1xuICAgIGNvbnN0IHNob3dGaWx0ZXIgPSB1c2VUYWJzID8gdGhpcy50YWJzW3RhYkluZGV4IV0uc2hvd0RhdGVGaWx0ZXIgOiB0aGlzLnNob3dEYXRlRmlsdGVyO1xuICAgIGlmICghc2hvd0ZpbHRlcikgcmV0dXJuO1xuXG4gICAgZS50b29sYmFyT3B0aW9ucy5pdGVtcy51bnNoaWZ0KFxuICAgICAge1xuICAgICAgICBsb2NhdGlvbjogJ2JlZm9yZScsXG4gICAgICAgIHdpZGdldDogJ2R4RGF0ZUJveCcsXG4gICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICB2YWx1ZTogdXNlVGFicyA/IHRoaXMudGFiU3RhdGVzW3RhYkluZGV4IV0uZmlsdGVyRGF0ZUZyb20gOiB0aGlzLmZpbHRlckRhdGVGcm9tLFxuICAgICAgICAgIHR5cGU6ICdkYXRlJyxcbiAgICAgICAgICBkaXNwbGF5Rm9ybWF0OiAnZGQuTU0ueXl5eScsXG4gICAgICAgICAgd2lkdGg6IDE0MCxcbiAgICAgICAgICBsYWJlbDogdGhpcy5sb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoJ0thZG9vZ2x1OjpTdGFydERhdGUnKSxcbiAgICAgICAgICBvblZhbHVlQ2hhbmdlZDogKGFyZ3M6IGFueSkgPT4ge1xuICAgICAgICAgICAgaWYgKHVzZVRhYnMpIHtcbiAgICAgICAgICAgICAgdGhpcy50YWJTdGF0ZXNbdGFiSW5kZXghXS5maWx0ZXJEYXRlRnJvbSA9IGFyZ3MudmFsdWU7XG4gICAgICAgICAgICAgIHRoaXMubG9hZFRhYkRhdGEodGFiSW5kZXghKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRoaXMuZmlsdGVyRGF0ZUZyb20gPSBhcmdzLnZhbHVlO1xuICAgICAgICAgICAgICB0aGlzLm9uRGF0ZUZpbHRlckNoYW5nZWQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbG9jYXRpb246ICdiZWZvcmUnLFxuICAgICAgICB3aWRnZXQ6ICdkeERhdGVCb3gnLFxuICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgdmFsdWU6IHVzZVRhYnMgPyB0aGlzLnRhYlN0YXRlc1t0YWJJbmRleCFdLmZpbHRlckRhdGVUbyA6IHRoaXMuZmlsdGVyRGF0ZVRvLFxuICAgICAgICAgIHR5cGU6ICdkYXRlJyxcbiAgICAgICAgICBkaXNwbGF5Rm9ybWF0OiAnZGQuTU0ueXl5eScsXG4gICAgICAgICAgd2lkdGg6IDE0MCxcbiAgICAgICAgICBsYWJlbDogdGhpcy5sb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoJ0thZG9vZ2x1OjpFbmREYXRlJyksXG4gICAgICAgICAgb25WYWx1ZUNoYW5nZWQ6IChhcmdzOiBhbnkpID0+IHtcbiAgICAgICAgICAgIGlmICh1c2VUYWJzKSB7XG4gICAgICAgICAgICAgIHRoaXMudGFiU3RhdGVzW3RhYkluZGV4IV0uZmlsdGVyRGF0ZVRvID0gYXJncy52YWx1ZTtcbiAgICAgICAgICAgICAgdGhpcy5sb2FkVGFiRGF0YSh0YWJJbmRleCEpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgdGhpcy5maWx0ZXJEYXRlVG8gPSBhcmdzLnZhbHVlO1xuICAgICAgICAgICAgICB0aGlzLm9uRGF0ZUZpbHRlckNoYW5nZWQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSB0b0RhdGVTdHIoZGF0ZTogRGF0ZSB8IG51bGwpOiBzdHJpbmcgfCBudWxsIHtcbiAgICBpZiAoIWRhdGUpIHJldHVybiBudWxsO1xuICAgIHJldHVybiBuZXcgRGF0ZShkYXRlKS50b0lTT1N0cmluZygpLnNwbGl0KCdUJylbMF07XG4gIH1cblxuICBzZXRUaXRsZSgpOiB2b2lkIHtcbiAgICB0aGlzLm9wZW5Nb2RhbCA9IGZhbHNlO1xuICAgIGNvbnN0IHNlbGVjdGVkRGF0YSA9IHRoaXMuZHhkYXRhSW5zdGFuY2U/Lmluc3RhbmNlLmdldFNlbGVjdGVkUm93c0RhdGEoKSA/PyBbXTtcbiAgICBjb25zdCBzZWxlY3RlZEtleXMgPSB0aGlzLmR4ZGF0YUluc3RhbmNlPy5pbnN0YW5jZS5nZXRTZWxlY3RlZFJvd0tleXMoKSA/PyBbXTtcbiAgICBpZiAoc2VsZWN0ZWRLZXlzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGRuID0gdGhpcy50YWJzLmxlbmd0aCA+IDAgPyB0aGlzLnRhYnNbdGhpcy5hY3RpdmVUYWJJbmRleF0uZGlzcGxheU5hbWUgOiB0aGlzLmRpc3BsYXlOYW1lO1xuICAgICAgdGhpcy50ZXh0RGlzcGxheSA9IHNlbGVjdGVkRGF0YVswXT8uW2RuXSA/PyAnJztcbiAgICAgIHRoaXMuc2VsZWN0ZWQuZW1pdChzZWxlY3RlZERhdGFbMF0pO1xuICAgIH1cbiAgfVxuXG4gIHNldFRpdGxlT25Eb3VibGVDbGljayhlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9wZW5Nb2RhbCA9IGZhbHNlO1xuICAgIGlmIChlPy5kYXRhKSB7XG4gICAgICBjb25zdCBkbiA9IHRoaXMudGFicy5sZW5ndGggPiAwID8gdGhpcy50YWJzW3RoaXMuYWN0aXZlVGFiSW5kZXhdLmRpc3BsYXlOYW1lIDogdGhpcy5kaXNwbGF5TmFtZTtcbiAgICAgIHRoaXMudGV4dERpc3BsYXkgPSBlLmRhdGFbZG5dID8/ICcnO1xuICAgICAgdGhpcy5zZWxlY3RlZC5lbWl0KGUuZGF0YSk7XG4gICAgfVxuICB9XG5cbiAgY2xlYXJWYWx1ZSgpOiB2b2lkIHtcbiAgICB0aGlzLnRleHREaXNwbGF5ID0gJyc7XG4gICAgdGhpcy5zZWxlY3RlZC5lbWl0KG51bGwpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiaGl0LWxvb2t1cC1ncm91cFwiPlxuICA8ZHgtdGV4dC1ib3hcbiAgICBbbmdNb2RlbF09XCJ0ZXh0RGlzcGxheVwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbcmVhZE9ubHldPVwidHJ1ZVwiXG4gICAgbWF4bGVuZ3RoPVwiNjRcIj5cbiAgPC9keC10ZXh0LWJveD5cbiAgPGRpdiBjbGFzcz1cImhpdC1sb29rdXAtYWN0aW9uc1wiICpuZ0lmPVwiaXNWaXNpYmxlICYmICFyZWFkT25seVwiPlxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzPVwiaGl0LWxvb2t1cC1idG4gaGl0LWxvb2t1cC1idG4tY2xlYXJcIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAqbmdJZj1cInRleHREaXNwbGF5XCJcbiAgICAgIChjbGljayk9XCJjbGVhclZhbHVlKClcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIHRpdGxlPVwiVGVtaXpsZVwiPlxuICAgICAgPGkgY2xhc3M9XCJmYSBmYS10aW1lc1wiPjwvaT5cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cImhpdC1sb29rdXAtYnRuXCJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgKGNsaWNrKT1cImNsaWNrRm9yT3Blbk1vZGFsKClcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIHRpdGxlPVwiQXJhXCI+XG4gICAgICA8aSBjbGFzcz1cImZhIGZhLXNlYXJjaFwiPjwvaT5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPGFicC1tb2RhbCBbKHZpc2libGUpXT1cIm9wZW5Nb2RhbFwiIFtvcHRpb25zXT1cInsgc2l6ZTogbW9kYWxTaXplIH1cIj5cbiAgPG5nLXRlbXBsYXRlICNhYnBIZWFkZXI+XG4gICAgPGgzPnt7ICdBYnBVaTo6U2VhcmNoJyB8IGFicExvY2FsaXphdGlvbiB9fTwvaDM+XG4gIDwvbmctdGVtcGxhdGU+XG4gIDxuZy10ZW1wbGF0ZSAjYWJwQm9keT5cblxuICAgIDwhLS0gVEFCUyBNT0RFIC0tPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0YWJzLmxlbmd0aCA+IDBcIj5cbiAgICAgIDx1bCBjbGFzcz1cIm5hdiBuYXYtdGFicyBtYi0yXCI+XG4gICAgICAgIDxsaSBjbGFzcz1cIm5hdi1pdGVtXCIgKm5nRm9yPVwibGV0IHRhYiBvZiB0YWJzOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgY2xhc3M9XCJuYXYtbGlua1wiXG4gICAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZVRhYkluZGV4ID09PSBpXCJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uVGFiQ2xpY2soaSlcIj5cbiAgICAgICAgICAgIHt7IHRhYi50aXRsZSB9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2xpPlxuICAgICAgPC91bD5cblxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgdGFiIG9mIHRhYnM7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFjdGl2ZVRhYkluZGV4ID09PSBpXCI+XG4gICAgICAgICAgPCEtLSBIZW7DvHogdMSxa2xhbm1hZMSxIC0tPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0lmPVwiIXRhYlN0YXRlc1tpXT8uaXNMb2FkZWQgJiYgIXRhYlN0YXRlc1tpXT8uaXNMb2FkaW5nXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIHRleHQtbXV0ZWRcIlxuICAgICAgICAgICAgc3R5bGU9XCJoZWlnaHQ6IDU1dmg7XCI+XG4gICAgICAgICAgICB7eyAnS2Fkb29nbHU6OkNsaWNrVGFiVG9Mb2FkJyB8IGFicExvY2FsaXphdGlvbiB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwhLS0gWcO8a2xlbml5b3IgLS0+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgKm5nSWY9XCJ0YWJTdGF0ZXNbaV0/LmlzTG9hZGluZ1wiXG4gICAgICAgICAgICBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiXG4gICAgICAgICAgICBzdHlsZT1cImhlaWdodDogNTV2aDtcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzcGlubmVyLWJvcmRlciB0ZXh0LXByaW1hcnkgbWItM1wiIHN0eWxlPVwid2lkdGg6IDNyZW07IGhlaWdodDogM3JlbTtcIiByb2xlPVwic3RhdHVzXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmlzdWFsbHktaGlkZGVuXCI+WcO8a2xlbml5b3IuLi48L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1tdXRlZFwiPlZlcmlsZXIgecO8a2xlbml5b3IuLi48L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPCEtLSBHcmlkIC0tPlxuICAgICAgICAgIDxkeC1kYXRhLWdyaWRcbiAgICAgICAgICAgICpuZ0lmPVwidGFiU3RhdGVzW2ldPy5pc0xvYWRlZCAmJiAhdGFiU3RhdGVzW2ldPy5pc0xvYWRpbmdcIlxuICAgICAgICAgICAgI2R4ZGF0YUluc3RhbmNlXG4gICAgICAgICAgICBbY29sdW1uc109XCJ0YWIuY29sdW1uc1wiXG4gICAgICAgICAgICBbZGF0YVNvdXJjZV09XCJ0YWJTdGF0ZXNbaV0uZGF0YVwiXG4gICAgICAgICAgICBba2V5RXhwcl09XCJ0YWIua2V5RXhwciA/PyAnY29kZSdcIlxuICAgICAgICAgICAgW3Nob3dSb3dMaW5lc109XCJ0cnVlXCJcbiAgICAgICAgICAgIFtzaG93Qm9yZGVyc109XCJ0cnVlXCJcbiAgICAgICAgICAgIFtob3ZlclN0YXRlRW5hYmxlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtyZXBhaW50Q2hhbmdlc09ubHldPVwidHJ1ZVwiXG4gICAgICAgICAgICBbYWxsb3dDb2x1bW5SZXNpemluZ109XCJ0cnVlXCJcbiAgICAgICAgICAgIGNvbHVtblJlc2l6aW5nTW9kZT1cIndpZGdldFwiXG4gICAgICAgICAgICBbYWxsb3dDb2x1bW5SZW9yZGVyaW5nXT1cInRydWVcIlxuICAgICAgICAgICAgW2NvbHVtbkF1dG9XaWR0aF09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtmb2N1c2VkUm93RW5hYmxlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtjb2x1bW5IaWRpbmdFbmFibGVkXT1cInRydWVcIlxuICAgICAgICAgICAgc3R5bGU9XCJoZWlnaHQ6IDU1dmg7XCJcbiAgICAgICAgICAgIChvblRvb2xiYXJQcmVwYXJpbmcpPVwib25Ub29sYmFyUHJlcGFyaW5nKCRldmVudCwgaSlcIlxuICAgICAgICAgICAgKG9uUm93RGJsQ2xpY2spPVwic2V0VGl0bGVPbkRvdWJsZUNsaWNrKCRldmVudClcIj5cbiAgICAgICAgICAgIDxkeG8tcGFnZXJcbiAgICAgICAgICAgICAgW3Zpc2libGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgIFtzaG93SW5mb109XCJ0cnVlXCJcbiAgICAgICAgICAgICAgW2FsbG93ZWRQYWdlU2l6ZXNdPVwiWzUwLCAxMDAsIDIwMF1cIlxuICAgICAgICAgICAgICBbc2hvd05hdmlnYXRpb25CdXR0b25zXT1cInRydWVcIlxuICAgICAgICAgICAgICBbc2hvd1BhZ2VTaXplU2VsZWN0b3JdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgPC9keG8tcGFnZXI+XG4gICAgICAgICAgICA8ZHhvLXBhZ2luZyBbcGFnZVNpemVdPVwiNTBcIj48L2R4by1wYWdpbmc+XG4gICAgICAgICAgICA8ZHhvLWhlYWRlci1maWx0ZXIgW2FsbG93U2VhcmNoXT1cInRydWVcIiBbdmlzaWJsZV09XCJ0cnVlXCI+PC9keG8taGVhZGVyLWZpbHRlcj5cbiAgICAgICAgICAgIDxkeG8tZmlsdGVyLXJvdyBbdmlzaWJsZV09XCJ0cnVlXCI+PC9keG8tZmlsdGVyLXJvdz5cbiAgICAgICAgICAgIDxkeG8tZmlsdGVyLXBhbmVsIFt2aXNpYmxlXT1cInRydWVcIj48L2R4by1maWx0ZXItcGFuZWw+XG4gICAgICAgICAgICA8ZHhvLXNvcnRpbmcgbW9kZT1cInNpbmdsZVwiPjwvZHhvLXNvcnRpbmc+XG4gICAgICAgICAgICA8ZHhvLXNjcm9sbGluZyBtb2RlPVwiaG9yaXpvbnRhbFwiIHNob3dTY3JvbGxiYXI9XCJhbHdheXNcIj48L2R4by1zY3JvbGxpbmc+XG4gICAgICAgICAgICA8ZHhvLXNlbGVjdGlvbiBtb2RlPVwic2luZ2xlXCI+PC9keG8tc2VsZWN0aW9uPlxuICAgICAgICAgIDwvZHgtZGF0YS1ncmlkPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPCEtLSBTSU5HTEUgTU9ERSAtLT5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXRhYnMubGVuZ3RoXCI+XG4gICAgICA8IS0tIExvYWRpbmcgb3ZlcmxheSAtLT5cbiAgICAgIDxkaXYgKm5nSWY9XCJpc0xvYWRpbmdcIiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiIHN0eWxlPVwiaGVpZ2h0OiA1NXZoO1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic3Bpbm5lci1ib3JkZXIgdGV4dC1wcmltYXJ5IG1iLTNcIiBzdHlsZT1cIndpZHRoOiAzcmVtOyBoZWlnaHQ6IDNyZW07XCIgcm9sZT1cInN0YXR1c1wiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmlzdWFsbHktaGlkZGVuXCI+WcO8a2xlbml5b3IuLi48L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtbXV0ZWRcIj5WZXJpbGVyIHnDvGtsZW5peW9yLi4uPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZHgtZGF0YS1ncmlkXG4gICAgICAgICpuZ0lmPVwiIWlzTG9hZGluZ1wiXG4gICAgICAgICNkeGRhdGFJbnN0YW5jZVxuICAgICAgICBbY29sdW1uc109XCJjb2x1bW5zXCJcbiAgICAgICAgW2RhdGFTb3VyY2VdPVwiZGF0YVwiXG4gICAgICAgIFtrZXlFeHByXT1cImtleUV4cHJcIlxuICAgICAgICBbc2hvd1Jvd0xpbmVzXT1cInRydWVcIlxuICAgICAgICBbc2hvd0JvcmRlcnNdPVwidHJ1ZVwiXG4gICAgICAgIFtob3ZlclN0YXRlRW5hYmxlZF09XCJ0cnVlXCJcbiAgICAgICAgW3JlcGFpbnRDaGFuZ2VzT25seV09XCJ0cnVlXCJcbiAgICAgICAgW2FsbG93Q29sdW1uUmVzaXppbmddPVwidHJ1ZVwiXG4gICAgICAgIGNvbHVtblJlc2l6aW5nTW9kZT1cIndpZGdldFwiXG4gICAgICAgIFthbGxvd0NvbHVtblJlb3JkZXJpbmddPVwidHJ1ZVwiXG4gICAgICAgIFtjb2x1bW5BdXRvV2lkdGhdPVwidHJ1ZVwiXG4gICAgICAgIFtmb2N1c2VkUm93RW5hYmxlZF09XCJ0cnVlXCJcbiAgICAgICAgW2NvbHVtbkhpZGluZ0VuYWJsZWRdPVwidHJ1ZVwiXG4gICAgICAgIHN0eWxlPVwiaGVpZ2h0OiA1NXZoO1wiXG4gICAgICAgIChvblRvb2xiYXJQcmVwYXJpbmcpPVwib25Ub29sYmFyUHJlcGFyaW5nKCRldmVudClcIlxuICAgICAgICAob25Sb3dEYmxDbGljayk9XCJzZXRUaXRsZU9uRG91YmxlQ2xpY2soJGV2ZW50KVwiPlxuICAgICAgICA8ZHhvLXBhZ2VyXG4gICAgICAgICAgW3Zpc2libGVdPVwidHJ1ZVwiXG4gICAgICAgICAgW3Nob3dJbmZvXT1cInRydWVcIlxuICAgICAgICAgIFthbGxvd2VkUGFnZVNpemVzXT1cIls1MCwgMTAwLCAyMDBdXCJcbiAgICAgICAgICBbc2hvd05hdmlnYXRpb25CdXR0b25zXT1cInRydWVcIlxuICAgICAgICAgIFtzaG93UGFnZVNpemVTZWxlY3Rvcl09XCJ0cnVlXCI+XG4gICAgICAgIDwvZHhvLXBhZ2VyPlxuICAgICAgICA8ZHhvLXBhZ2luZyBbcGFnZVNpemVdPVwiNTBcIj48L2R4by1wYWdpbmc+XG4gICAgICAgIDxkeG8taGVhZGVyLWZpbHRlciBbYWxsb3dTZWFyY2hdPVwidHJ1ZVwiIFt2aXNpYmxlXT1cInRydWVcIj48L2R4by1oZWFkZXItZmlsdGVyPlxuICAgICAgICA8ZHhvLWZpbHRlci1yb3cgW3Zpc2libGVdPVwidHJ1ZVwiPjwvZHhvLWZpbHRlci1yb3c+XG4gICAgICAgIDxkeG8tZmlsdGVyLXBhbmVsIFt2aXNpYmxlXT1cInRydWVcIj48L2R4by1maWx0ZXItcGFuZWw+XG4gICAgICAgIDxkeG8tc29ydGluZyBtb2RlPVwic2luZ2xlXCI+PC9keG8tc29ydGluZz5cbiAgICAgICAgPGR4by1zY3JvbGxpbmcgbW9kZT1cImhvcml6b250YWxcIiBzaG93U2Nyb2xsYmFyPVwiYWx3YXlzXCI+PC9keG8tc2Nyb2xsaW5nPlxuICAgICAgICA8ZHhvLXNlbGVjdGlvbiBtb2RlPVwic2luZ2xlXCI+PC9keG8tc2VsZWN0aW9uPlxuICAgICAgPC9keC1kYXRhLWdyaWQ+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgPC9uZy10ZW1wbGF0ZT5cbiAgPG5nLXRlbXBsYXRlICNhYnBGb290ZXI+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiIGFicENsb3NlPlxuICAgICAge3sgJ0FicFVpOjpDYW5jZWwnIHwgYWJwTG9jYWxpemF0aW9uIH19XG4gICAgPC9idXR0b24+XG4gICAgPGFicC1idXR0b24gaWNvbkNsYXNzPVwiZmEgZmEtY2hlY2tcIiBidXR0b25UeXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInNldFRpdGxlKClcIj5cbiAgICAgIHt7ICdBYnBVaTo6U2VsZWN0JyB8IGFicExvY2FsaXphdGlvbiB9fVxuICAgIDwvYWJwLWJ1dHRvbj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvYWJwLW1vZGFsPlxuIl19
|