@hitsoft/abp.kadooglu 1.0.11 → 1.0.13
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 +40 -29
- package/esm2020/lib/hit-components/hit-factory-entry/hit-factory-entry-form/hit-factory-entry-form.component.mjs +52 -6
- package/esm2020/lib/hit-components/hit-factory-entry/hit-factory-entry-list/hit-factory-entry-list.component.mjs +3 -3
- 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 +2 -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 +456 -166
- package/fesm2015/hitsoft-abp.kadooglu.mjs.map +1 -1
- package/fesm2020/hitsoft-abp.kadooglu.mjs +444 -160
- 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 +8 -1
- package/lib/hit-components/hit-factory-entry/hit-factory-entry-form/hit-factory-entry-form.component.d.ts +2 -0
- package/lib/hit-proxy/hit-carrier-person/models.d.ts +2 -0
- package/lib/hit-proxy/hit-entry-weighing/models.d.ts +5 -0
- package/lib/hit-proxy/hit-factory-entry/models.d.ts +13 -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\">\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\r\n <!-- TABS MODE -->\r\n <ng-container *ngIf=\"tabs.length > 0\">\r\n <ul class=\"nav nav-tabs mb-2\">\r\n <li class=\"nav-item\" *ngFor=\"let tab of tabs; let i = index\">\r\n <button\r\n class=\"nav-link\"\r\n [class.active]=\"activeTabIndex === i\"\r\n type=\"button\"\r\n (click)=\"onTabClick(i)\">\r\n {{ tab.title }}\r\n </button>\r\n </li>\r\n </ul>\r\n\r\n <ng-container *ngFor=\"let tab of tabs; let i = index\">\r\n <ng-container *ngIf=\"activeTabIndex === i\">\r\n <!-- Hen\u00FCz t\u0131klanmad\u0131 -->\r\n <div\r\n *ngIf=\"!tabStates[i]?.isLoaded && !tabStates[i]?.isLoading\"\r\n class=\"d-flex align-items-center justify-content-center text-muted\"\r\n style=\"height: 55vh;\">\r\n {{ 'Kadooglu::ClickTabToLoad' | abpLocalization }}\r\n </div>\r\n <!-- Y\u00FCkleniyor -->\r\n <div\r\n *ngIf=\"tabStates[i]?.isLoading\"\r\n class=\"d-flex flex-column align-items-center justify-content-center\"\r\n 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 <!-- Grid -->\r\n <dx-data-grid\r\n *ngIf=\"tabStates[i]?.isLoaded && !tabStates[i]?.isLoading\"\r\n #dxdataInstance\r\n [columns]=\"tab.columns\"\r\n [dataSource]=\"tabStates[i].data\"\r\n [keyExpr]=\"tab.keyExpr ?? 'code'\"\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, i)\"\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-container>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <!-- SINGLE MODE -->\r\n <ng-container *ngIf=\"!tabs.length\">\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-container>\r\n\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.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\">\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
|
|
191
|
+
args: [{ selector: 'hit-lookup-select', encapsulation: ViewEncapsulation.None, 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\r\n <!-- TABS MODE -->\r\n <ng-container *ngIf=\"tabs.length > 0\">\r\n <ul class=\"nav nav-tabs mb-2\">\r\n <li class=\"nav-item\" *ngFor=\"let tab of tabs; let i = index\">\r\n <button\r\n class=\"nav-link\"\r\n [class.active]=\"activeTabIndex === i\"\r\n type=\"button\"\r\n (click)=\"onTabClick(i)\">\r\n {{ tab.title }}\r\n </button>\r\n </li>\r\n </ul>\r\n\r\n <ng-container *ngFor=\"let tab of tabs; let i = index\">\r\n <ng-container *ngIf=\"activeTabIndex === i\">\r\n <!-- Hen\u00FCz t\u0131klanmad\u0131 -->\r\n <div\r\n *ngIf=\"!tabStates[i]?.isLoaded && !tabStates[i]?.isLoading\"\r\n class=\"d-flex align-items-center justify-content-center text-muted\"\r\n style=\"height: 55vh;\">\r\n {{ 'Kadooglu::ClickTabToLoad' | abpLocalization }}\r\n </div>\r\n <!-- Y\u00FCkleniyor -->\r\n <div\r\n *ngIf=\"tabStates[i]?.isLoading\"\r\n class=\"d-flex flex-column align-items-center justify-content-center\"\r\n 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 <!-- Grid -->\r\n <dx-data-grid\r\n *ngIf=\"tabStates[i]?.isLoaded && !tabStates[i]?.isLoading\"\r\n #dxdataInstance\r\n [columns]=\"tab.columns\"\r\n [dataSource]=\"tabStates[i].data\"\r\n [keyExpr]=\"tab.keyExpr ?? 'code'\"\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, i)\"\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-container>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <!-- SINGLE MODE -->\r\n <ng-container *ngIf=\"!tabs.length\">\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-container>\r\n\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"] }]
|
|
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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QUM1QjtJQUNILENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0IsQ0FBQzs7OEdBN0xVLGlCQUFpQjtrR0FBakIsaUJBQWlCLDRpQkNyQzlCLDhsTkFpS0E7MkZENUhhLGlCQUFpQjtrQkFON0IsU0FBUzsrQkFDRSxtQkFBbUIsaUJBR2QsaUJBQWlCLENBQUMsSUFBSTswR0FHVyxjQUFjO3NCQUE3RCxTQUFTO3VCQUFDLGdCQUFnQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFJckMsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUcsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBSUYsV0FBVztzQkFEZCxLQUFLO2dCQWFJLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBJbnB1dCxcclxuICBPdXRwdXQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIFZpZXdDaGlsZCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XHJcbmltcG9ydCB7IER4RGF0YUdyaWRDb21wb25lbnQgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXInO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIExvb2t1cFRhYiB7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICBsb2FkRm46IChwYXJhbXM/OiBhbnkpID0+IE9ic2VydmFibGU8YW55W10+O1xyXG4gIGNvbHVtbnM6IGFueVtdO1xyXG4gIGtleUV4cHI/OiBzdHJpbmc7XHJcbiAgZGlzcGxheU5hbWU6IHN0cmluZztcclxuICBzaG93RGF0ZUZpbHRlcj86IGJvb2xlYW47XHJcbiAgZGVmYXVsdERhdGVGcm9tPzogRGF0ZSB8IG51bGw7XHJcbiAgZGVmYXVsdERhdGVUbz86IERhdGUgfCBudWxsO1xyXG59XHJcblxyXG5pbnRlcmZhY2UgTG9va3VwVGFiU3RhdGUge1xyXG4gIGRhdGE6IGFueVtdO1xyXG4gIGlzTG9hZGluZzogYm9vbGVhbjtcclxuICBpc0xvYWRlZDogYm9vbGVhbjtcclxuICBmaWx0ZXJEYXRlRnJvbTogRGF0ZSB8IG51bGw7XHJcbiAgZmlsdGVyRGF0ZVRvOiBEYXRlIHwgbnVsbDtcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdoaXQtbG9va3VwLXNlbGVjdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2hpdC1tb2RhbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vaGl0LW1vZGFsLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEhpdE1vZGFsQ29tcG9uZW50IHtcclxuICBAVmlld0NoaWxkKCdkeGRhdGFJbnN0YW5jZScsIHsgc3RhdGljOiBmYWxzZSB9KSBkeGRhdGFJbnN0YW5jZTogRHhEYXRhR3JpZENvbXBvbmVudDtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBsb2NhbGl6YXRpb25TZXJ2aWNlOiBMb2NhbGl6YXRpb25TZXJ2aWNlKSB7fVxyXG5cclxuICBASW5wdXQoKSBkaXNwbGF5TmFtZSA9ICcnO1xyXG4gIEBJbnB1dCgpIGtleUV4cHIgPSAnY29kZSc7XHJcbiAgQElucHV0KCkgbW9kYWxTaXplID0gJ3hsJztcclxuICAvKiogRGF0YSBhcnJheSB0aGF0IHdpbGwgYmUgc2hvd24gaW4gdGhlIGxvb2t1cCBtb2RhbCBncmlkIChlYWdlciAvIHByZS1sb2FkZWQpLiAqL1xyXG4gIEBJbnB1dCgpIGdldEZuOiBhbnlbXSA9IFtdO1xyXG4gIC8qKiBGdW5jdGlvbiByZXR1cm5pbmcgT2JzZXJ2YWJsZSDigJQgY2FsbGVkIGxhemlseSB3aGVuIHRoZSBtb2RhbCBvcGVucy4gT3B0aW9uYWxseSByZWNlaXZlcyBmaWx0ZXIgcGFyYW1zLiAqL1xyXG4gIEBJbnB1dCgpIGxvYWRGbjogKChwYXJhbXM/OiBhbnkpID0+IE9ic2VydmFibGU8YW55W10+KSB8IG51bGwgPSBudWxsO1xyXG4gIEBJbnB1dCgpIGNvbHVtbnM6IGFueVtdID0gW107XHJcbiAgQElucHV0KCkgaXNWaXNpYmxlID0gdHJ1ZTtcclxuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHJlYWRPbmx5ID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2hvd0RhdGVGaWx0ZXIgPSBmYWxzZTtcclxuICBASW5wdXQoKSBkZWZhdWx0RGF0ZUZyb206IERhdGUgfCBudWxsID0gbnVsbDtcclxuICBASW5wdXQoKSBkZWZhdWx0RGF0ZVRvOiBEYXRlIHwgbnVsbCA9IG51bGw7XHJcbiAgQElucHV0KCkgdGFiczogTG9va3VwVGFiW10gPSBbXTtcclxuXHJcbiAgLyoqIFByZS1wb3B1bGF0ZSBkaXNwbGF5IHRleHQgKGUuZy4gaW4gZWRpdCBtb2RlKS4gU2V0dGVyIGVuc3VyZXMgcmVhY3RpdmUgdXBkYXRlcy4gKi9cclxuICBASW5wdXQoKVxyXG4gIHNldCBlZGl0aW5nRGF0YSh2YWw6IGFueSkge1xyXG4gICAgaWYgKHZhbCA9PT0gbnVsbCB8fCB2YWwgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLnRleHREaXNwbGF5ID0gJyc7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmICh0eXBlb2YgdmFsID09PSAnc3RyaW5nJykge1xyXG4gICAgICB0aGlzLnRleHREaXNwbGF5ID0gdmFsO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmRpc3BsYXlOYW1lICYmIHZhbFt0aGlzLmRpc3BsYXlOYW1lXSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMudGV4dERpc3BsYXkgPSB2YWxbdGhpcy5kaXNwbGF5TmFtZV07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAT3V0cHV0KCkgc2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgZGF0YTogYW55W10gPSBbXTtcclxuICBvcGVuTW9kYWwgPSBmYWxzZTtcclxuICBpc0xvYWRpbmcgPSBmYWxzZTtcclxuICB0ZXh0RGlzcGxheSA9ICcnO1xyXG4gIGZpbHRlckRhdGVGcm9tOiBEYXRlIHwgbnVsbCA9IG51bGw7XHJcbiAgZmlsdGVyRGF0ZVRvOiBEYXRlIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIC8vIFRhYiBtb2RlIHN0YXRlXHJcbiAgYWN0aXZlVGFiSW5kZXggPSAwO1xyXG4gIHRhYlN0YXRlczogTG9va3VwVGFiU3RhdGVbXSA9IFtdO1xyXG5cclxuICBjbGlja0Zvck9wZW5Nb2RhbCgpOiB2b2lkIHtcclxuICAgIHRoaXMub3Blbk1vZGFsID0gdHJ1ZTtcclxuICAgIGlmICh0aGlzLnRhYnMubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLmFjdGl2ZVRhYkluZGV4ID0gMDtcclxuICAgICAgdGhpcy50YWJTdGF0ZXMgPSB0aGlzLnRhYnMubWFwKHRhYiA9PiAoe1xyXG4gICAgICAgIGRhdGE6IFtdLFxyXG4gICAgICAgIGlzTG9hZGluZzogZmFsc2UsXHJcbiAgICAgICAgaXNMb2FkZWQ6IGZhbHNlLFxyXG4gICAgICAgIGZpbHRlckRhdGVGcm9tOiB0YWIuZGVmYXVsdERhdGVGcm9tID8/IG51bGwsXHJcbiAgICAgICAgZmlsdGVyRGF0ZVRvOiB0YWIuZGVmYXVsdERhdGVUbyA/PyBudWxsLFxyXG4gICAgICB9KSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmZpbHRlckRhdGVGcm9tID0gdGhpcy5kZWZhdWx0RGF0ZUZyb20gPz8gbnVsbDtcclxuICAgICAgdGhpcy5maWx0ZXJEYXRlVG8gPSB0aGlzLmRlZmF1bHREYXRlVG8gPz8gbnVsbDtcclxuICAgICAgdGhpcy5sb2FkRGF0YSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25UYWJDbGljayhpbmRleDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLmFjdGl2ZVRhYkluZGV4ID0gaW5kZXg7XHJcbiAgICBpZiAoIXRoaXMudGFiU3RhdGVzW2luZGV4XS5pc0xvYWRlZCAmJiAhdGhpcy50YWJTdGF0ZXNbaW5kZXhdLmlzTG9hZGluZykge1xyXG4gICAgICB0aGlzLmxvYWRUYWJEYXRhKGluZGV4KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgbG9hZFRhYkRhdGEoaW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgY29uc3QgdGFiID0gdGhpcy50YWJzW2luZGV4XTtcclxuICAgIGNvbnN0IHN0YXRlID0gdGhpcy50YWJTdGF0ZXNbaW5kZXhdO1xyXG4gICAgc3RhdGUuaXNMb2FkaW5nID0gdHJ1ZTtcclxuICAgIGNvbnN0IHBhcmFtcyA9IHRhYi5zaG93RGF0ZUZpbHRlclxyXG4gICAgICA/IHsgZGF0ZUZyb206IHRoaXMudG9EYXRlU3RyKHN0YXRlLmZpbHRlckRhdGVGcm9tKSwgZGF0ZVRvOiB0aGlzLnRvRGF0ZVN0cihzdGF0ZS5maWx0ZXJEYXRlVG8pIH1cclxuICAgICAgOiB1bmRlZmluZWQ7XHJcbiAgICB0YWIubG9hZEZuKHBhcmFtcykuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlc3VsdCkgPT4geyBzdGF0ZS5kYXRhID0gcmVzdWx0OyBzdGF0ZS5pc0xvYWRpbmcgPSBmYWxzZTsgc3RhdGUuaXNMb2FkZWQgPSB0cnVlOyB9LFxyXG4gICAgICBlcnJvcjogKCkgICAgICAgPT4geyBzdGF0ZS5kYXRhID0gW107ICAgIHN0YXRlLmlzTG9hZGluZyA9IGZhbHNlOyBzdGF0ZS5pc0xvYWRlZCA9IHRydWU7IH0sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGxvYWREYXRhKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMubG9hZEZuKSB7XHJcbiAgICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgdGhpcy5kYXRhID0gW107XHJcbiAgICAgIGNvbnN0IHBhcmFtcyA9IHRoaXMuc2hvd0RhdGVGaWx0ZXJcclxuICAgICAgICA/IHsgZGF0ZUZyb206IHRoaXMudG9EYXRlU3RyKHRoaXMuZmlsdGVyRGF0ZUZyb20pLCBkYXRlVG86IHRoaXMudG9EYXRlU3RyKHRoaXMuZmlsdGVyRGF0ZVRvKSB9XHJcbiAgICAgICAgOiB1bmRlZmluZWQ7XHJcbiAgICAgIHRoaXMubG9hZEZuKHBhcmFtcykuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmRhdGEgPSByZXN1bHQ7XHJcbiAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6ICgpID0+IHtcclxuICAgICAgICAgIHRoaXMuZGF0YSA9IFtdO1xyXG4gICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZGF0YSA9IHRoaXMuZ2V0Rm47XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkRhdGVGaWx0ZXJDaGFuZ2VkKCk6IHZvaWQge1xyXG4gICAgdGhpcy5sb2FkRGF0YSgpO1xyXG4gIH1cclxuXHJcbiAgb25Ub29sYmFyUHJlcGFyaW5nKGU6IGFueSwgdGFiSW5kZXg/OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIGNvbnN0IHVzZVRhYnMgPSB0aGlzLnRhYnMubGVuZ3RoID4gMCAmJiB0YWJJbmRleCAhPT0gdW5kZWZpbmVkO1xyXG4gICAgY29uc3Qgc2hvd0ZpbHRlciA9IHVzZVRhYnMgPyB0aGlzLnRhYnNbdGFiSW5kZXghXS5zaG93RGF0ZUZpbHRlciA6IHRoaXMuc2hvd0RhdGVGaWx0ZXI7XHJcbiAgICBpZiAoIXNob3dGaWx0ZXIpIHJldHVybjtcclxuXHJcbiAgICBlLnRvb2xiYXJPcHRpb25zLml0ZW1zLnVuc2hpZnQoXHJcbiAgICAgIHtcclxuICAgICAgICBsb2NhdGlvbjogJ2JlZm9yZScsXHJcbiAgICAgICAgd2lkZ2V0OiAnZHhEYXRlQm94JyxcclxuICAgICAgICBvcHRpb25zOiB7XHJcbiAgICAgICAgICB2YWx1ZTogdXNlVGFicyA/IHRoaXMudGFiU3RhdGVzW3RhYkluZGV4IV0uZmlsdGVyRGF0ZUZyb20gOiB0aGlzLmZpbHRlckRhdGVGcm9tLFxyXG4gICAgICAgICAgdHlwZTogJ2RhdGUnLFxyXG4gICAgICAgICAgZGlzcGxheUZvcm1hdDogJ2RkLk1NLnl5eXknLFxyXG4gICAgICAgICAgd2lkdGg6IDE0MCxcclxuICAgICAgICAgIGxhYmVsOiB0aGlzLmxvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudCgnS2Fkb29nbHU6OlN0YXJ0RGF0ZScpLFxyXG4gICAgICAgICAgb25WYWx1ZUNoYW5nZWQ6IChhcmdzOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgaWYgKHVzZVRhYnMpIHtcclxuICAgICAgICAgICAgICB0aGlzLnRhYlN0YXRlc1t0YWJJbmRleCFdLmZpbHRlckRhdGVGcm9tID0gYXJncy52YWx1ZTtcclxuICAgICAgICAgICAgICB0aGlzLmxvYWRUYWJEYXRhKHRhYkluZGV4ISk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5maWx0ZXJEYXRlRnJvbSA9IGFyZ3MudmFsdWU7XHJcbiAgICAgICAgICAgICAgdGhpcy5vbkRhdGVGaWx0ZXJDaGFuZ2VkKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGxvY2F0aW9uOiAnYmVmb3JlJyxcclxuICAgICAgICB3aWRnZXQ6ICdkeERhdGVCb3gnLFxyXG4gICAgICAgIG9wdGlvbnM6IHtcclxuICAgICAgICAgIHZhbHVlOiB1c2VUYWJzID8gdGhpcy50YWJTdGF0ZXNbdGFiSW5kZXghXS5maWx0ZXJEYXRlVG8gOiB0aGlzLmZpbHRlckRhdGVUbyxcclxuICAgICAgICAgIHR5cGU6ICdkYXRlJyxcclxuICAgICAgICAgIGRpc3BsYXlGb3JtYXQ6ICdkZC5NTS55eXl5JyxcclxuICAgICAgICAgIHdpZHRoOiAxNDAsXHJcbiAgICAgICAgICBsYWJlbDogdGhpcy5sb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoJ0thZG9vZ2x1OjpFbmREYXRlJyksXHJcbiAgICAgICAgICBvblZhbHVlQ2hhbmdlZDogKGFyZ3M6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodXNlVGFicykge1xyXG4gICAgICAgICAgICAgIHRoaXMudGFiU3RhdGVzW3RhYkluZGV4IV0uZmlsdGVyRGF0ZVRvID0gYXJncy52YWx1ZTtcclxuICAgICAgICAgICAgICB0aGlzLmxvYWRUYWJEYXRhKHRhYkluZGV4ISk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5maWx0ZXJEYXRlVG8gPSBhcmdzLnZhbHVlO1xyXG4gICAgICAgICAgICAgIHRoaXMub25EYXRlRmlsdGVyQ2hhbmdlZCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB0b0RhdGVTdHIoZGF0ZTogRGF0ZSB8IG51bGwpOiBzdHJpbmcgfCBudWxsIHtcclxuICAgIGlmICghZGF0ZSkgcmV0dXJuIG51bGw7XHJcbiAgICByZXR1cm4gbmV3IERhdGUoZGF0ZSkudG9JU09TdHJpbmcoKS5zcGxpdCgnVCcpWzBdO1xyXG4gIH1cclxuXHJcbiAgc2V0VGl0bGUoKTogdm9pZCB7XHJcbiAgICB0aGlzLm9wZW5Nb2RhbCA9IGZhbHNlO1xyXG4gICAgY29uc3Qgc2VsZWN0ZWREYXRhID0gdGhpcy5keGRhdGFJbnN0YW5jZT8uaW5zdGFuY2UuZ2V0U2VsZWN0ZWRSb3dzRGF0YSgpID8/IFtdO1xyXG4gICAgY29uc3Qgc2VsZWN0ZWRLZXlzID0gdGhpcy5keGRhdGFJbnN0YW5jZT8uaW5zdGFuY2UuZ2V0U2VsZWN0ZWRSb3dLZXlzKCkgPz8gW107XHJcbiAgICBpZiAoc2VsZWN0ZWRLZXlzLmxlbmd0aCA+IDApIHtcclxuICAgICAgY29uc3QgZG4gPSB0aGlzLnRhYnMubGVuZ3RoID4gMCA/IHRoaXMudGFic1t0aGlzLmFjdGl2ZVRhYkluZGV4XS5kaXNwbGF5TmFtZSA6IHRoaXMuZGlzcGxheU5hbWU7XHJcbiAgICAgIHRoaXMudGV4dERpc3BsYXkgPSBzZWxlY3RlZERhdGFbMF0/Lltkbl0gPz8gJyc7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWQuZW1pdChzZWxlY3RlZERhdGFbMF0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0VGl0bGVPbkRvdWJsZUNsaWNrKGU6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vcGVuTW9kYWwgPSBmYWxzZTtcclxuICAgIGlmIChlPy5kYXRhKSB7XHJcbiAgICAgIGNvbnN0IGRuID0gdGhpcy50YWJzLmxlbmd0aCA+IDAgPyB0aGlzLnRhYnNbdGhpcy5hY3RpdmVUYWJJbmRleF0uZGlzcGxheU5hbWUgOiB0aGlzLmRpc3BsYXlOYW1lO1xyXG4gICAgICB0aGlzLnRleHREaXNwbGF5ID0gZS5kYXRhW2RuXSA/PyAnJztcclxuICAgICAgdGhpcy5zZWxlY3RlZC5lbWl0KGUuZGF0YSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjbGVhclZhbHVlKCk6IHZvaWQge1xyXG4gICAgdGhpcy50ZXh0RGlzcGxheSA9ICcnO1xyXG4gICAgdGhpcy5zZWxlY3RlZC5lbWl0KG51bGwpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiaGl0LWxvb2t1cC1ncm91cFwiPlxyXG4gIDxkeC10ZXh0LWJveFxyXG4gICAgW25nTW9kZWxdPVwidGV4dERpc3BsYXlcIlxyXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgIFtyZWFkT25seV09XCJ0cnVlXCJcclxuICAgIG1heGxlbmd0aD1cIjY0XCI+XHJcbiAgPC9keC10ZXh0LWJveD5cclxuICA8ZGl2IGNsYXNzPVwiaGl0LWxvb2t1cC1hY3Rpb25zXCIgKm5nSWY9XCJpc1Zpc2libGUgJiYgIXJlYWRPbmx5XCI+XHJcbiAgICA8YnV0dG9uXHJcbiAgICAgIGNsYXNzPVwiaGl0LWxvb2t1cC1idG4gaGl0LWxvb2t1cC1idG4tY2xlYXJcIlxyXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgKm5nSWY9XCJ0ZXh0RGlzcGxheVwiXHJcbiAgICAgIChjbGljayk9XCJjbGVhclZhbHVlKClcIlxyXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICB0aXRsZT1cIlRlbWl6bGVcIj5cclxuICAgICAgPGkgY2xhc3M9XCJmYSBmYS10aW1lc1wiPjwvaT5cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvblxyXG4gICAgICBjbGFzcz1cImhpdC1sb29rdXAtYnRuXCJcclxuICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgIChjbGljayk9XCJjbGlja0Zvck9wZW5Nb2RhbCgpXCJcclxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgICAgdGl0bGU9XCJBcmFcIj5cclxuICAgICAgPGkgY2xhc3M9XCJmYSBmYS1zZWFyY2hcIj48L2k+XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48YWJwLW1vZGFsIFsodmlzaWJsZSldPVwib3Blbk1vZGFsXCIgW29wdGlvbnNdPVwieyBzaXplOiBtb2RhbFNpemUgfVwiPlxyXG4gIDxuZy10ZW1wbGF0ZSAjYWJwSGVhZGVyPlxyXG4gICAgPGgzPnt7ICdBYnBVaTo6U2VhcmNoJyB8IGFicExvY2FsaXphdGlvbiB9fTwvaDM+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuICA8bmctdGVtcGxhdGUgI2FicEJvZHk+XHJcblxyXG4gICAgPCEtLSBUQUJTIE1PREUgLS0+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGFicy5sZW5ndGggPiAwXCI+XHJcbiAgICAgIDx1bCBjbGFzcz1cIm5hdiBuYXYtdGFicyBtYi0yXCI+XHJcbiAgICAgICAgPGxpIGNsYXNzPVwibmF2LWl0ZW1cIiAqbmdGb3I9XCJsZXQgdGFiIG9mIHRhYnM7IGxldCBpID0gaW5kZXhcIj5cclxuICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgY2xhc3M9XCJuYXYtbGlua1wiXHJcbiAgICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiYWN0aXZlVGFiSW5kZXggPT09IGlcIlxyXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uVGFiQ2xpY2soaSlcIj5cclxuICAgICAgICAgICAge3sgdGFiLnRpdGxlIH19XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2xpPlxyXG4gICAgICA8L3VsPlxyXG5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgdGFiIG9mIHRhYnM7IGxldCBpID0gaW5kZXhcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYWN0aXZlVGFiSW5kZXggPT09IGlcIj5cclxuICAgICAgICAgIDwhLS0gSGVuw7x6IHTEsWtsYW5tYWTEsSAtLT5cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgKm5nSWY9XCIhdGFiU3RhdGVzW2ldPy5pc0xvYWRlZCAmJiAhdGFiU3RhdGVzW2ldPy5pc0xvYWRpbmdcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciB0ZXh0LW11dGVkXCJcclxuICAgICAgICAgICAgc3R5bGU9XCJoZWlnaHQ6IDU1dmg7XCI+XHJcbiAgICAgICAgICAgIHt7ICdLYWRvb2dsdTo6Q2xpY2tUYWJUb0xvYWQnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwhLS0gWcO8a2xlbml5b3IgLS0+XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICpuZ0lmPVwidGFiU3RhdGVzW2ldPy5pc0xvYWRpbmdcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiXHJcbiAgICAgICAgICAgIHN0eWxlPVwiaGVpZ2h0OiA1NXZoO1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Bpbm5lci1ib3JkZXIgdGV4dC1wcmltYXJ5IG1iLTNcIiBzdHlsZT1cIndpZHRoOiAzcmVtOyBoZWlnaHQ6IDNyZW07XCIgcm9sZT1cInN0YXR1c1wiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmlzdWFsbHktaGlkZGVuXCI+WcO8a2xlbml5b3IuLi48L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtbXV0ZWRcIj5WZXJpbGVyIHnDvGtsZW5peW9yLi4uPC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8IS0tIEdyaWQgLS0+XHJcbiAgICAgICAgICA8ZHgtZGF0YS1ncmlkXHJcbiAgICAgICAgICAgICpuZ0lmPVwidGFiU3RhdGVzW2ldPy5pc0xvYWRlZCAmJiAhdGFiU3RhdGVzW2ldPy5pc0xvYWRpbmdcIlxyXG4gICAgICAgICAgICAjZHhkYXRhSW5zdGFuY2VcclxuICAgICAgICAgICAgW2NvbHVtbnNdPVwidGFiLmNvbHVtbnNcIlxyXG4gICAgICAgICAgICBbZGF0YVNvdXJjZV09XCJ0YWJTdGF0ZXNbaV0uZGF0YVwiXHJcbiAgICAgICAgICAgIFtrZXlFeHByXT1cInRhYi5rZXlFeHByID8/ICdjb2RlJ1wiXHJcbiAgICAgICAgICAgIFtzaG93Um93TGluZXNdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgIFtzaG93Qm9yZGVyc109XCJ0cnVlXCJcclxuICAgICAgICAgICAgW2hvdmVyU3RhdGVFbmFibGVkXT1cInRydWVcIlxyXG4gICAgICAgICAgICBbcmVwYWludENoYW5nZXNPbmx5XT1cInRydWVcIlxyXG4gICAgICAgICAgICBbYWxsb3dDb2x1bW5SZXNpemluZ109XCJ0cnVlXCJcclxuICAgICAgICAgICAgY29sdW1uUmVzaXppbmdNb2RlPVwid2lkZ2V0XCJcclxuICAgICAgICAgICAgW2FsbG93Q29sdW1uUmVvcmRlcmluZ109XCJ0cnVlXCJcclxuICAgICAgICAgICAgW2NvbHVtbkF1dG9XaWR0aF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgW2ZvY3VzZWRSb3dFbmFibGVkXT1cInRydWVcIlxyXG4gICAgICAgICAgICBbY29sdW1uSGlkaW5nRW5hYmxlZF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgc3R5bGU9XCJoZWlnaHQ6IDU1dmg7XCJcclxuICAgICAgICAgICAgKG9uVG9vbGJhclByZXBhcmluZyk9XCJvblRvb2xiYXJQcmVwYXJpbmcoJGV2ZW50LCBpKVwiXHJcbiAgICAgICAgICAgIChvblJvd0RibENsaWNrKT1cInNldFRpdGxlT25Eb3VibGVDbGljaygkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgIDxkeG8tcGFnZXJcclxuICAgICAgICAgICAgICBbdmlzaWJsZV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICBbc2hvd0luZm9dPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgW2FsbG93ZWRQYWdlU2l6ZXNdPVwiWzUwLCAxMDAsIDIwMF1cIlxyXG4gICAgICAgICAgICAgIFtzaG93TmF2aWdhdGlvbkJ1dHRvbnNdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgW3Nob3dQYWdlU2l6ZVNlbGVjdG9yXT1cInRydWVcIj5cclxuICAgICAgICAgICAgPC9keG8tcGFnZXI+XHJcbiAgICAgICAgICAgIDxkeG8tcGFnaW5nIFtwYWdlU2l6ZV09XCI1MFwiPjwvZHhvLXBhZ2luZz5cclxuICAgICAgICAgICAgPGR4by1oZWFkZXItZmlsdGVyIFthbGxvd1NlYXJjaF09XCJ0cnVlXCIgW3Zpc2libGVdPVwidHJ1ZVwiPjwvZHhvLWhlYWRlci1maWx0ZXI+XHJcbiAgICAgICAgICAgIDxkeG8tZmlsdGVyLXJvdyBbdmlzaWJsZV09XCJ0cnVlXCI+PC9keG8tZmlsdGVyLXJvdz5cclxuICAgICAgICAgICAgPGR4by1maWx0ZXItcGFuZWwgW3Zpc2libGVdPVwidHJ1ZVwiPjwvZHhvLWZpbHRlci1wYW5lbD5cclxuICAgICAgICAgICAgPGR4by1zb3J0aW5nIG1vZGU9XCJzaW5nbGVcIj48L2R4by1zb3J0aW5nPlxyXG4gICAgICAgICAgICA8ZHhvLXNjcm9sbGluZyBtb2RlPVwiaG9yaXpvbnRhbFwiIHNob3dTY3JvbGxiYXI9XCJhbHdheXNcIj48L2R4by1zY3JvbGxpbmc+XHJcbiAgICAgICAgICAgIDxkeG8tc2VsZWN0aW9uIG1vZGU9XCJzaW5nbGVcIj48L2R4by1zZWxlY3Rpb24+XHJcbiAgICAgICAgICA8L2R4LWRhdGEtZ3JpZD5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8IS0tIFNJTkdMRSBNT0RFIC0tPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiF0YWJzLmxlbmd0aFwiPlxyXG4gICAgICA8IS0tIExvYWRpbmcgb3ZlcmxheSAtLT5cclxuICAgICAgPGRpdiAqbmdJZj1cImlzTG9hZGluZ1wiIGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCIgc3R5bGU9XCJoZWlnaHQ6IDU1dmg7XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNwaW5uZXItYm9yZGVyIHRleHQtcHJpbWFyeSBtYi0zXCIgc3R5bGU9XCJ3aWR0aDogM3JlbTsgaGVpZ2h0OiAzcmVtO1wiIHJvbGU9XCJzdGF0dXNcIj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmlzdWFsbHktaGlkZGVuXCI+WcO8a2xlbml5b3IuLi48L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LW11dGVkXCI+VmVyaWxlciB5w7xrbGVuaXlvci4uLjwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkeC1kYXRhLWdyaWRcclxuICAgICAgICAqbmdJZj1cIiFpc0xvYWRpbmdcIlxyXG4gICAgICAgICNkeGRhdGFJbnN0YW5jZVxyXG4gICAgICAgIFtjb2x1bW5zXT1cImNvbHVtbnNcIlxyXG4gICAgICAgIFtkYXRhU291cmNlXT1cImRhdGFcIlxyXG4gICAgICAgIFtrZXlFeHByXT1cImtleUV4cHJcIlxyXG4gICAgICAgIFtzaG93Um93TGluZXNdPVwidHJ1ZVwiXHJcbiAgICAgICAgW3Nob3dCb3JkZXJzXT1cInRydWVcIlxyXG4gICAgICAgIFtob3ZlclN0YXRlRW5hYmxlZF09XCJ0cnVlXCJcclxuICAgICAgICBbcmVwYWludENoYW5nZXNPbmx5XT1cInRydWVcIlxyXG4gICAgICAgIFthbGxvd0NvbHVtblJlc2l6aW5nXT1cInRydWVcIlxyXG4gICAgICAgIGNvbHVtblJlc2l6aW5nTW9kZT1cIndpZGdldFwiXHJcbiAgICAgICAgW2FsbG93Q29sdW1uUmVvcmRlcmluZ109XCJ0cnVlXCJcclxuICAgICAgICBbY29sdW1uQXV0b1dpZHRoXT1cInRydWVcIlxyXG4gICAgICAgIFtmb2N1c2VkUm93RW5hYmxlZF09XCJ0cnVlXCJcclxuICAgICAgICBbY29sdW1uSGlkaW5nRW5hYmxlZF09XCJ0cnVlXCJcclxuICAgICAgICBzdHlsZT1cImhlaWdodDogNTV2aDtcIlxyXG4gICAgICAgIChvblRvb2xiYXJQcmVwYXJpbmcpPVwib25Ub29sYmFyUHJlcGFyaW5nKCRldmVudClcIlxyXG4gICAgICAgIChvblJvd0RibENsaWNrKT1cInNldFRpdGxlT25Eb3VibGVDbGljaygkZXZlbnQpXCI+XHJcbiAgICAgICAgPGR4by1wYWdlclxyXG4gICAgICAgICAgW3Zpc2libGVdPVwidHJ1ZVwiXHJcbiAgICAgICAgICBbc2hvd0luZm9dPVwidHJ1ZVwiXHJcbiAgICAgICAgICBbYWxsb3dlZFBhZ2VTaXplc109XCJbNTAsIDEwMCwgMjAwXVwiXHJcbiAgICAgICAgICBbc2hvd05hdmlnYXRpb25CdXR0b25zXT1cInRydWVcIlxyXG4gICAgICAgICAgW3Nob3dQYWdlU2l6ZVNlbGVjdG9yXT1cInRydWVcIj5cclxuICAgICAgICA8L2R4by1wYWdlcj5cclxuICAgICAgICA8ZHhvLXBhZ2luZyBbcGFnZVNpemVdPVwiNTBcIj48L2R4by1wYWdpbmc+XHJcbiAgICAgICAgPGR4by1oZWFkZXItZmlsdGVyIFthbGxvd1NlYXJjaF09XCJ0cnVlXCIgW3Zpc2libGVdPVwidHJ1ZVwiPjwvZHhvLWhlYWRlci1maWx0ZXI+XHJcbiAgICAgICAgPGR4by1maWx0ZXItcm93IFt2aXNpYmxlXT1cInRydWVcIj48L2R4by1maWx0ZXItcm93PlxyXG4gICAgICAgIDxkeG8tZmlsdGVyLXBhbmVsIFt2aXNpYmxlXT1cInRydWVcIj48L2R4by1maWx0ZXItcGFuZWw+XHJcbiAgICAgICAgPGR4by1zb3J0aW5nIG1vZGU9XCJzaW5nbGVcIj48L2R4by1zb3J0aW5nPlxyXG4gICAgICAgIDxkeG8tc2Nyb2xsaW5nIG1vZGU9XCJob3Jpem9udGFsXCIgc2hvd1Njcm9sbGJhcj1cImFsd2F5c1wiPjwvZHhvLXNjcm9sbGluZz5cclxuICAgICAgICA8ZHhvLXNlbGVjdGlvbiBtb2RlPVwic2luZ2xlXCI+PC9keG8tc2VsZWN0aW9uPlxyXG4gICAgICA8L2R4LWRhdGEtZ3JpZD5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICA8L25nLXRlbXBsYXRlPlxyXG4gIDxuZy10ZW1wbGF0ZSAjYWJwRm9vdGVyPlxyXG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiIGFicENsb3NlPlxyXG4gICAgICB7eyAnQWJwVWk6OkNhbmNlbCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPGFicC1idXR0b24gaWNvbkNsYXNzPVwiZmEgZmEtY2hlY2tcIiBidXR0b25UeXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInNldFRpdGxlKClcIj5cclxuICAgICAge3sgJ0FicFVpOjpTZWxlY3QnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICA8L2FicC1idXR0b24+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuPC9hYnAtbW9kYWw+XHJcbiJdfQ==
|