aril 0.1.49 → 0.1.51
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/esm2022/keycloak/src/auth.interceptor.mjs +4 -1
- package/esm2022/ui/table/src/table.component.mjs +3 -3
- package/esm2022/ui/value/src/value.component.mjs +3 -3
- package/esm2022/ui-business/ref-value/src/ref-value.component.mjs +3 -3
- package/fesm2022/aril-keycloak.mjs +3 -0
- package/fesm2022/aril-keycloak.mjs.map +1 -1
- package/fesm2022/aril-ui-business-ref-value.mjs +2 -2
- package/fesm2022/aril-ui-business-ref-value.mjs.map +1 -1
- package/fesm2022/aril-ui-table.mjs +2 -2
- package/fesm2022/aril-ui-table.mjs.map +1 -1
- package/fesm2022/aril-ui-value.mjs +2 -2
- package/fesm2022/aril-ui-value.mjs.map +1 -1
- package/package.json +83 -83
|
@@ -42,18 +42,21 @@ const getAppHeader = (appName) => {
|
|
|
42
42
|
switch (appName) {
|
|
43
43
|
case Apps.YEAP:
|
|
44
44
|
appHeader = {
|
|
45
|
+
"x-yeap-application": "yeap",
|
|
45
46
|
"x-application": "yeap",
|
|
46
47
|
"x-module": "yeap-fe"
|
|
47
48
|
};
|
|
48
49
|
break;
|
|
49
50
|
case Apps.LENA:
|
|
50
51
|
appHeader = {
|
|
52
|
+
"x-yeap-application": "lena",
|
|
51
53
|
"x-application": "lena",
|
|
52
54
|
"x-module": "lena-fe"
|
|
53
55
|
};
|
|
54
56
|
break;
|
|
55
57
|
case Apps.THOR:
|
|
56
58
|
appHeader = {
|
|
59
|
+
"x-yeap-application": "thor",
|
|
57
60
|
"x-application": "thor",
|
|
58
61
|
"x-module": "thor-fe"
|
|
59
62
|
};
|
|
@@ -81,4 +84,4 @@ export const authInterceptor = (req, next) => {
|
|
|
81
84
|
});
|
|
82
85
|
return next(authReq);
|
|
83
86
|
};
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FyaWwva2V5Y2xvYWsvc3JjL2F1dGguaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTdDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxJQUFZLEVBQUUsRUFBVSxFQUFFLEVBQUU7SUFDdEQsSUFBSSxPQUFPLEdBQUcsRUFBRSxDQUFDO0lBQ2pCLElBQUksSUFBSSxFQUFFLENBQUM7UUFDVixRQUFRLElBQUksRUFBRSxDQUFDO1lBQ2QsS0FBSyxJQUFJLENBQUMsSUFBSTtnQkFDYixPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztnQkFDcEIsTUFBTTtZQUNQLEtBQUssSUFBSSxDQUFDLElBQUk7Z0JBQ2IsT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7Z0JBQ3BCLE1BQU07WUFDUCxLQUFLLElBQUksQ0FBQyxJQUFJO2dCQUNiLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO2dCQUNwQixNQUFNO1FBQ1IsQ0FBQztJQUNGLENBQUM7U0FBTSxDQUFDO1FBQ1AsUUFBUSxFQUFFLEVBQUUsQ0FBQztZQUNaLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQztZQUNkLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQztZQUNkLEtBQUssSUFBSSxDQUFDLEdBQUc7Z0JBQ1osT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7Z0JBQ3BCLE1BQU07WUFDUCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUM7WUFDZCxLQUFLLElBQUksQ0FBQyxPQUFPLENBQUM7WUFDbEIsS0FBSyxJQUFJLENBQUMsT0FBTyxDQUFDO1lBQ2xCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQztZQUNkLEtBQUssSUFBSSxDQUFDLEdBQUc7Z0JBQ1osT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7Z0JBQ3BCLE1BQU07WUFDUCxLQUFLLElBQUksQ0FBQyxFQUFFO2dCQUNYLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO2dCQUNwQixNQUFNO1lBQ1A7Z0JBQ0MsT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDdEIsQ0FBQztJQUNGLENBQUM7SUFDRCxPQUFPLE9BQU8sQ0FBQztBQUNoQixDQUFDLENBQUM7QUFFRixNQUFNLFlBQVksR0FBRyxDQUFDLE9BQWUsRUFBRSxFQUFFO0lBQ3hDLElBQUksU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUNuQixRQUFRLE9BQU8sRUFBRSxDQUFDO1FBQ2pCLEtBQUssSUFBSSxDQUFDLElBQUk7WUFDYixTQUFTLEdBQUc7Z0JBQ1gsb0JBQW9CLEVBQUUsTUFBTTtnQkFDNUIsZUFBZSxFQUFFLE1BQU07Z0JBQ3ZCLFVBQVUsRUFBRSxTQUFTO2FBQ3JCLENBQUM7WUFDRixNQUFNO1FBQ1AsS0FBSyxJQUFJLENBQUMsSUFBSTtZQUNiLFNBQVMsR0FBRztnQkFDWCxvQkFBb0IsRUFBRSxNQUFNO2dCQUM1QixlQUFlLEVBQUUsTUFBTTtnQkFDdkIsVUFBVSxFQUFFLFNBQVM7YUFDckIsQ0FBQztZQUNGLE1BQU07UUFDUCxLQUFLLElBQUksQ0FBQyxJQUFJO1lBQ2IsU0FBUyxHQUFHO2dCQUNYLG9CQUFvQixFQUFFLE1BQU07Z0JBQzVCLGVBQWUsRUFBRSxNQUFNO2dCQUN2QixVQUFVLEVBQUUsU0FBUzthQUNyQixDQUFDO1lBQ0YsTUFBTTtJQUNSLENBQUM7SUFDRCxPQUFPLFNBQVMsQ0FBQztBQUNsQixDQUFDLENBQUM7QUFFRixNQUFNLFlBQVksR0FBRyxHQUF1QixFQUFFO0lBQzdDLE9BQU8sUUFBUSxDQUFDLE1BQU07U0FDbkIsS0FBSyxDQUFDLElBQUksQ0FBQztTQUNYLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDM0MsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDakIsQ0FBQyxDQUFDO0FBRUosTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFzQixDQUFDLEdBQXlCLEVBQUUsSUFBbUIsRUFBRSxFQUFFO0lBQ3BHLE1BQU0sS0FBSyxHQUFTLFVBQVcsQ0FBQyxlQUFlLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQztJQUNsRSxNQUFNLFVBQVUsR0FBRyxpQkFBaUIsQ0FBTyxVQUFXLENBQUMsVUFBVSxFQUFRLFVBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMvRixNQUFNLGFBQWEsR0FBRyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDL0MsTUFBTSxTQUFTLEdBQUcsWUFBWSxFQUFFLENBQUM7SUFFakMsTUFBTSxPQUFPLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQztRQUN6QixVQUFVLEVBQUU7WUFDWCxhQUFhLEVBQUUsVUFBVSxLQUFLLEVBQUU7WUFDaEMsWUFBWSxFQUFFLFNBQVMsSUFBSSxFQUFFO1lBQzdCLEdBQUcsYUFBYTtTQUNoQjtLQUNELENBQUMsQ0FBQztJQUVILE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ3RCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBIYW5kbGVyRm4sIEh0dHBJbnRlcmNlcHRvckZuLCBIdHRwUmVxdWVzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuXHJcbmltcG9ydCB7IEFwcHMgfSBmcm9tICdhcmlsL2Jvb3QvY29uZmlnL2FwcHMnO1xyXG5cclxuY29uc3QgZ2V0Q3VycmVudEFwcE5hbWUgPSAoaG9zdDogc3RyaW5nLCBtZjogc3RyaW5nKSA9PiB7XHJcblx0bGV0IGFwcE5hbWUgPSAnJztcclxuXHRpZiAoaG9zdCkge1xyXG5cdFx0c3dpdGNoIChob3N0KSB7XHJcblx0XHRcdGNhc2UgQXBwcy5ZRUFQOlxyXG5cdFx0XHRcdGFwcE5hbWUgPSBBcHBzLllFQVA7XHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdGNhc2UgQXBwcy5MRU5BOlxyXG5cdFx0XHRcdGFwcE5hbWUgPSBBcHBzLkxFTkE7XHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdGNhc2UgQXBwcy5USE9SOlxyXG5cdFx0XHRcdGFwcE5hbWUgPSBBcHBzLlRIT1I7XHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHR9XHJcblx0fSBlbHNlIHtcclxuXHRcdHN3aXRjaCAobWYpIHtcclxuXHRcdFx0Y2FzZSBBcHBzLkhFUzpcclxuXHRcdFx0Y2FzZSBBcHBzLkNUUzpcclxuXHRcdFx0Y2FzZSBBcHBzLlNJUzpcclxuXHRcdFx0XHRhcHBOYW1lID0gQXBwcy5MRU5BO1xyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRjYXNlIEFwcHMuQ1JNOlxyXG5cdFx0XHRjYXNlIEFwcHMuQklMTElORzpcclxuXHRcdFx0Y2FzZSBBcHBzLlBBWU1FTlQ6XHJcblx0XHRcdGNhc2UgQXBwcy5XRE06XHJcblx0XHRcdGNhc2UgQXBwcy5NTkc6XHJcblx0XHRcdFx0YXBwTmFtZSA9IEFwcHMuVEhPUjtcclxuXHRcdFx0XHRicmVhaztcclxuXHRcdFx0Y2FzZSBBcHBzLk1XOlxyXG5cdFx0XHRcdGFwcE5hbWUgPSBBcHBzLllFQVA7XHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdGRlZmF1bHQ6XHJcblx0XHRcdFx0YXBwTmFtZSA9IEFwcHMuWUVBUDtcclxuXHRcdH1cclxuXHR9XHJcblx0cmV0dXJuIGFwcE5hbWU7XHJcbn07XHJcblxyXG5jb25zdCBnZXRBcHBIZWFkZXIgPSAoYXBwTmFtZTogc3RyaW5nKSA9PiB7XHJcblx0bGV0IGFwcEhlYWRlciA9IHt9O1xyXG5cdHN3aXRjaCAoYXBwTmFtZSkge1xyXG5cdFx0Y2FzZSBBcHBzLllFQVA6XHJcblx0XHRcdGFwcEhlYWRlciA9IHtcclxuXHRcdFx0XHRcIngteWVhcC1hcHBsaWNhdGlvblwiOiBcInllYXBcIixcclxuXHRcdFx0XHRcIngtYXBwbGljYXRpb25cIjogXCJ5ZWFwXCIsXHJcblx0XHRcdFx0XCJ4LW1vZHVsZVwiOiBcInllYXAtZmVcIlxyXG5cdFx0XHR9O1xyXG5cdFx0XHRicmVhaztcclxuXHRcdGNhc2UgQXBwcy5MRU5BOlxyXG5cdFx0XHRhcHBIZWFkZXIgPSB7XHJcblx0XHRcdFx0XCJ4LXllYXAtYXBwbGljYXRpb25cIjogXCJsZW5hXCIsXHJcblx0XHRcdFx0XCJ4LWFwcGxpY2F0aW9uXCI6IFwibGVuYVwiLFxyXG5cdFx0XHRcdFwieC1tb2R1bGVcIjogXCJsZW5hLWZlXCJcclxuXHRcdFx0fTtcclxuXHRcdFx0YnJlYWs7XHJcblx0XHRjYXNlIEFwcHMuVEhPUjpcclxuXHRcdFx0YXBwSGVhZGVyID0ge1xyXG5cdFx0XHRcdFwieC15ZWFwLWFwcGxpY2F0aW9uXCI6IFwidGhvclwiLFxyXG5cdFx0XHRcdFwieC1hcHBsaWNhdGlvblwiOiBcInRob3JcIixcclxuXHRcdFx0XHRcIngtbW9kdWxlXCI6IFwidGhvci1mZVwiXHJcblx0XHRcdH07XHJcblx0XHRcdGJyZWFrO1xyXG5cdH1cclxuXHRyZXR1cm4gYXBwSGVhZGVyO1xyXG59O1xyXG5cclxuY29uc3QgZ2V0Q3NyZlRva2VuID0gKCk6IHN0cmluZyB8IHVuZGVmaW5lZCA9PiB7XHJcblx0cmV0dXJuIGRvY3VtZW50LmNvb2tpZVxyXG5cdCAgLnNwbGl0KCc7ICcpXHJcblx0ICAuZmluZChyb3cgPT4gcm93LnN0YXJ0c1dpdGgoJ2NzcmZfdG9rZW49JykpXHJcblx0ICA/LnNwbGl0KCc9JylbMV07XHJcbiAgfTtcclxuXHJcbmV4cG9ydCBjb25zdCBhdXRoSW50ZXJjZXB0b3I6IEh0dHBJbnRlcmNlcHRvckZuID0gKHJlcTogSHR0cFJlcXVlc3Q8dW5rbm93bj4sIG5leHQ6IEh0dHBIYW5kbGVyRm4pID0+IHtcclxuXHRjb25zdCB0b2tlbiA9ICg8YW55Pmdsb2JhbFRoaXMpLmtleWNsb2FrU2VydmljZT8uX2luc3RhbmNlPy50b2tlbjtcclxuXHRjb25zdCBjdXJyZW50QXBwID0gZ2V0Q3VycmVudEFwcE5hbWUoKDxhbnk+Z2xvYmFsVGhpcykuYWN0aXZlSG9zdCwgKDxhbnk+Z2xvYmFsVGhpcykuYWN0aXZlTUYpO1xyXG5cdGNvbnN0IGFwcE5hbWVIZWFkZXIgPSBnZXRBcHBIZWFkZXIoY3VycmVudEFwcCk7XHJcblx0Y29uc3QgY3NyZlRva2VuID0gZ2V0Q3NyZlRva2VuKCk7XHJcblxyXG5cdGNvbnN0IGF1dGhSZXEgPSByZXEuY2xvbmUoe1xyXG5cdFx0c2V0SGVhZGVyczoge1xyXG5cdFx0XHRBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7dG9rZW59YCxcclxuXHRcdFx0J2NzcmZfdG9rZW4nOiBjc3JmVG9rZW4gfHwgJycsXHJcblx0XHRcdC4uLmFwcE5hbWVIZWFkZXJcclxuXHRcdH1cclxuXHR9KTtcclxuXHJcblx0cmV0dXJuIG5leHQoYXV0aFJlcSk7XHJcbn07Il19
|
|
@@ -226,11 +226,11 @@ export class TableComponent {
|
|
|
226
226
|
this.op?.hide();
|
|
227
227
|
}
|
|
228
228
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TableComponent, deps: [{ token: i1.HttpClient }, { token: i2.NonNullableFormBuilder }, { token: i3.PrimeNGConfig }, { token: i3.MessageService }, { token: i4.TranslocoService }, { token: i5.SelectionGroupService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
229
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: TableComponent, selector: "aril-table", inputs: { kebabMenuItems: { classPropertyName: "kebabMenuItems", publicName: "kebabMenuItems", isSignal: false, isRequired: false, transformFunction: null }, expandableFields: { classPropertyName: "expandableFields", publicName: "expandableFields", isSignal: false, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: true, transformFunction: null }, checkboxSelection: { classPropertyName: "checkboxSelection", publicName: "checkboxSelection", isSignal: true, isRequired: false, transformFunction: null }, headerCheckboxSelection: { classPropertyName: "headerCheckboxSelection", publicName: "headerCheckboxSelection", isSignal: true, isRequired: false, transformFunction: null }, pageSize: { classPropertyName: "pageSize", publicName: "pageSize", isSignal: true, isRequired: false, transformFunction: null }, proxy: { classPropertyName: "proxy", publicName: "proxy", isSignal: true, isRequired: false, transformFunction: null }, showFooter: { classPropertyName: "showFooter", publicName: "showFooter", isSignal: true, isRequired: false, transformFunction: null }, tAlign: { classPropertyName: "tAlign", publicName: "tAlign", isSignal: true, isRequired: false, transformFunction: null }, selectionMode: { classPropertyName: "selectionMode", publicName: "selectionMode", isSignal: true, isRequired: false, transformFunction: null }, showSearchTool: { classPropertyName: "showSearchTool", publicName: "showSearchTool", isSignal: true, isRequired: false, transformFunction: null }, showExportTool: { classPropertyName: "showExportTool", publicName: "showExportTool", isSignal: true, isRequired: false, transformFunction: null }, exportFileName: { classPropertyName: "exportFileName", publicName: "exportFileName", isSignal: true, isRequired: false, transformFunction: null }, noDataFoundLabel: { classPropertyName: "noDataFoundLabel", publicName: "noDataFoundLabel", isSignal: true, isRequired: false, transformFunction: null }, tableHeader: { classPropertyName: "tableHeader", publicName: "tableHeader", isSignal: true, isRequired: false, transformFunction: null }, showTableHeader: { classPropertyName: "showTableHeader", publicName: "showTableHeader", isSignal: true, isRequired: false, transformFunction: null }, isFirstRowSelected: { classPropertyName: "isFirstRowSelected", publicName: "isFirstRowSelected", isSignal: true, isRequired: false, transformFunction: null }, dataKey: { classPropertyName: "dataKey", publicName: "dataKey", isSignal: true, isRequired: false, transformFunction: null }, selectedRowsInput: { classPropertyName: "selectedRowsInput", publicName: "selectedRowsInput", isSignal: true, isRequired: false, transformFunction: null }, isLazy: { classPropertyName: "isLazy", publicName: "isLazy", isSignal: true, isRequired: false, transformFunction: null }, totalRecords: { classPropertyName: "totalRecords", publicName: "totalRecords", isSignal: true, isRequired: false, transformFunction: null }, paginator: { classPropertyName: "paginator", publicName: "paginator", isSignal: true, isRequired: false, transformFunction: null }, paginatorDropdownAppendTo: { classPropertyName: "paginatorDropdownAppendTo", publicName: "paginatorDropdownAppendTo", isSignal: true, isRequired: false, transformFunction: null }, isShowNoDataFoundMessage: { classPropertyName: "isShowNoDataFoundMessage", publicName: "isShowNoDataFoundMessage", isSignal: true, isRequired: false, transformFunction: null }, exportConfig: { classPropertyName: "exportConfig", publicName: "exportConfig", isSignal: true, isRequired: false, transformFunction: null }, isColumnExpandMode: { classPropertyName: "isColumnExpandMode", publicName: "isColumnExpandMode", isSignal: true, isRequired: false, transformFunction: null }, isResizableColumns: { classPropertyName: "isResizableColumns", publicName: "isResizableColumns", isSignal: true, isRequired: false, transformFunction: null }, isSortable: { classPropertyName: "isSortable", publicName: "isSortable", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onPageEvent: "onPageEvent", selectionEvent: "selectionEvent", lazyLoadEvent: "lazyLoadEvent" }, queries: [{ propertyName: "columns", predicate: TableColumnComponent }], viewQueries: [{ propertyName: "op", first: true, predicate: OverlayPanel, descendants: true }, { propertyName: "tableRef", first: true, predicate: Table, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<p-table\r\n\t#ref\r\n\t[value]=\"data()\"\r\n\t[dataKey]=\"dataKey()\"\r\n\t[columns]=\"columns._results\"\r\n\t[rows]=\"pageSize()\"\r\n\t[rowHover]=\"true\"\r\n\t[paginator]=\"paginator()\"\r\n\t[lazy]=\"isLazy()\"\r\n\t[lazyLoadOnInit]=\"false\"\r\n\t[totalRecords]=\"totalRecords()\"\r\n\t[rowsPerPageOptions]=\"[10, 20, 50, 100]\"\r\n\t[filterDelay]=\"0\"\r\n\tsortMode=\"multiple\"\r\n\t[(selection)]=\"selectedRows\"\r\n\t(onPage)=\"onPageEvent.emit($event)\"\r\n\t(onLazyLoad)=\"handleLazyLoadEvent($event)\"\r\n\t(selectionChange)=\"selectionEvent.emit(selectedRows)\"\r\n\t[showCurrentPageReport]=\"true\"\r\n\t[selectionMode]=\"selectionMode()\"\r\n\t[columnResizeMode]=\"isColumnExpandMode() ? 'expand' : ''\"\r\n\t[resizableColumns]=\"isResizableColumns()\"\r\n\tcurrentPageReportTemplate=\"Toplam : {totalRecords} kay\u0131t | Sayfa : {currentPage} / {totalPages}\"\r\n\tstyleClass=\"p-datatable-sm\"\r\n\t[paginatorDropdownAppendTo]=\"paginatorDropdownAppendTo()\">\r\n\t<!--@if (tableHeader() || showSearchTool() || showExportTool()) {\r\n\t\t<ng-template pTemplate=\"caption\">\r\n\t\t\t<div class=\"flex space-between\">\r\n\t\t\t\t<div style=\"flex: auto\">\r\n\t\t\t\t\t@if (tableHeader().length) {\r\n\t\t\t\t\t\t<div class=\"table-header\">\r\n\t\t\t\t\t\t\t{{ tableHeader() }}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t}\r\n\t\t\t\t</div>\r\n\t\t\t\t<div style=\"flex: auto\">\r\n\t\t\t\t\t<div class=\"flex justify-content-end align-items-center\">\r\n\t\t\t\t\t\t@if (false) {\r\n\t\t\t\t\t\t\t<aril-text\r\n\t\t\t\t\t\t\t\ticon=\"SEARCH\"\r\n\t\t\t\t\t\t\t\ticonPos=\"left\"\r\n\t\t\t\t\t\t\t\tplaceholder=\"Arama\"\r\n\t\t\t\t\t\t\t\t[ngModel]=\"filterText\"\r\n\t\t\t\t\t\t\t\tclass=\"mr-1\"\r\n\t\t\t\t\t\t\t\t(ngModelChange)=\"ref.filterGlobal($event.target.value, 'contains')\">\r\n\t\t\t\t\t\t\t</aril-text>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t@if (false) {\r\n\t\t\t\t\t\t\t<aril-button\r\n\t\t\t\t\t\t\t\tsize=\"sm\"\r\n\t\t\t\t\t\t\t\ticon=\"FILE_EXCEL\"\r\n\t\t\t\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t\t\t\tpTooltip=\"XLS\"\r\n\t\t\t\t\t\t\t\ttooltipPosition=\"top\"\r\n\t\t\t\t\t\t\t\t(clickEvent)=\"excelExport()\"\r\n\t\t\t\t\t\t\t\tclass=\"mr-1\">\r\n\t\t\t\t\t\t\t</aril-button>\r\n\t\t\t\t\t\t\t<aril-button\r\n\t\t\t\t\t\t\t\tsize=\"sm\"\r\n\t\t\t\t\t\t\t\ticon=\"FILE_PDF\"\r\n\t\t\t\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t\t\t\tpTooltip=\"PDF\"\r\n\t\t\t\t\t\t\t\ttooltipPosition=\"top\"\r\n\t\t\t\t\t\t\t\t(clickEvent)=\"exportPdf()\">\r\n\t\t\t\t\t\t\t</aril-button>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t@if (data() && kebabMenuItems.length > 0 ) {\r\n\t\t\t\t\t\t\t<div tools style=\"padding: 4px;margin-left: 4px;border:1px solid #6366f1;border-radius: 6px;background-color: #6366f1; color: white;\" >\r\n\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t[attr.role]=\"'none'\"\r\n\t\t\t\t\t\t\t\t\tclass=\"pi mr-1 header-icon pi-ellipsis-v\"\r\n\t\t\t\t\t\t\t\t\t(click)=\"bulkOperations.toggle($event);\"></i>\r\n\t\t\t\t\t\t\t\t<p-menu\r\n\t\t\t\t\t\t\t\t\t#bulkOperations\r\n\t\t\t\t\t\t\t\t\t[popup]=\"true\"\r\n\t\t\t\t\t\t\t\t\t[model]=\"kebabMenuItems\"\r\n\t\t\t\t\t\t\t\t\tstyleClass=\"z-index: 9998899;\"\r\n\t\t\t\t\t\t\t\t\tappendTo=\"body\"></p-menu>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</ng-template>\r\n\t}-->\r\n\r\n\t<ng-template pTemplate=\"header\" let-columns>\r\n\t\t<tr>\r\n\t\t\t@if (checkboxSelection()) {\r\n\t\t\t\t<th>\r\n\t\t\t\t\t@if (headerCheckboxSelection()) {\r\n\t\t\t\t\t\t<p-tableHeaderCheckbox></p-tableHeaderCheckbox>\r\n\t\t\t\t\t}\r\n\t\t\t\t</th>\r\n\t\t\t}\r\n\t\t\t@for (column of columns; track $index) {\r\n\t\t\t\t@if (column.type() === 'operations') {\r\n\t\t\t\t\t<th>\r\n\t\t\t\t\t\t<div class=\"flex justify-content-center\">\u0130\u015Flemler</div>\r\n\t\t\t\t\t</th>\r\n\t\t\t\t} @else {\r\n\t\t\t\t\t@if (isResizableColumns()) {\r\n\t\t\t\t\t\t<th\r\n\t\t\t\t\t\t\t[pSortableColumn]=\"column.field()\"\r\n\t\t\t\t\t\t\t[ngStyle]=\"{ width: column.width() ? column.width() : 'auto' }\"\r\n\t\t\t\t\t\t\tpResizableColumn>\r\n\t\t\t\t\t\t\t<div class=\"flex justify-content-between align-items-center gap-2\">\r\n\t\t\t\t\t\t\t\t{{ column.header() }}\r\n\t\t\t\t\t\t\t\t<div class=\"flex\">\r\n\t\t\t\t\t\t\t\t\t@if (column.isShowHeaderTooltip()) {\r\n\t\t\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t\t\tstyle=\"color: green; padding-top: 4px; padding-left: 4px\"\r\n\t\t\t\t\t\t\t\t\t\t\tclass=\"pi pi-info-circle\"\r\n\t\t\t\t\t\t\t\t\t\t\t[pTooltip]=\"column.tooltipTemplate()\"\r\n\t\t\t\t\t\t\t\t\t\t\ttooltipPosition=\"top\"></i>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t@if (!isLazy()) {\r\n\t\t\t\t\t\t\t\t\t\t<p-sortIcon [field]=\"column.field()\"></p-sortIcon>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</th>\r\n\t\t\t\t\t} @else if (isSortable()) {\r\n\t\t\t\t\t\t<th\r\n\t\t\t\t\t\t\t[pSortableColumn]=\"column.field()\"\r\n\t\t\t\t\t\t\t[ngStyle]=\"{ width: column.width() ? column.width() : 'auto' }\"\r\n\t\t\t\t\t\t\tstyle=\"min-width: 170px\">\r\n\t\t\t\t\t\t\t<div class=\"flex justify-content-between align-items-center gap-2\">\r\n\t\t\t\t\t\t\t\t{{ column.header() }}\r\n\t\t\t\t\t\t\t\t<div class=\"flex\">\r\n\t\t\t\t\t\t\t\t\t@if (column.isShowHeaderTooltip()) {\r\n\t\t\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t\t\tstyle=\"color: green; padding-top: 4px; padding-left: 4px\"\r\n\t\t\t\t\t\t\t\t\t\t\tclass=\"pi pi-info-circle\"\r\n\t\t\t\t\t\t\t\t\t\t\t[pTooltip]=\"column.tooltipTemplate()\"\r\n\t\t\t\t\t\t\t\t\t\t\ttooltipPosition=\"top\"></i>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t<p-sortIcon [field]=\"column.field()\"></p-sortIcon>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</th>\r\n\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t<th [ngStyle]=\"{ width: column.width() ? column.width() : 'auto' }\" style=\"min-width: 170px\">\r\n\t\t\t\t\t\t\t<div class=\"flex justify-content-between align-items-center gap-2\">\r\n\t\t\t\t\t\t\t\t{{ column.header() }}\r\n\t\t\t\t\t\t\t\t<div class=\"flex\">\r\n\t\t\t\t\t\t\t\t\t@if (column.isShowHeaderTooltip()) {\r\n\t\t\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t\t\tstyle=\"color: green; padding-top: 4px; padding-left: 4px\"\r\n\t\t\t\t\t\t\t\t\t\t\tclass=\"pi pi-info-circle\"\r\n\t\t\t\t\t\t\t\t\t\t\t[pTooltip]=\"column.tooltipTemplate()\"\r\n\t\t\t\t\t\t\t\t\t\t\ttooltipPosition=\"top\"></i>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</th>\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t</tr>\r\n\t</ng-template>\r\n\r\n\t<ng-template pTemplate=\"body\" let-item let-columns=\"columns\">\r\n\t\t@if (handledSelectionMode) {\r\n\t\t\t<tr [pSelectableRow]=\"item\">\r\n\t\t\t\t@for (column of columns; track $index) {\r\n\t\t\t\t\t<td [ngStyle]=\"{ 'text-align': column.type() === 'operations' ? 'center' : column.tAlign() || tAlign() }\">\r\n\t\t\t\t\t\t<ng-template ngFor [ngForOf]=\"[item]\" [ngForTemplate]=\"column.template\"></ng-template>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t}\r\n\t\t\t</tr>\r\n\t\t} @else {\r\n\t\t\t<tr [ngStyle]=\"{ 'background-color': item?.rowColor ? item?.rowColor : '#fff' }\">\r\n\t\t\t\t@if (checkboxSelection()) {\r\n\t\t\t\t\t<td>\r\n\t\t\t\t\t\t<p-tableCheckbox [value]=\"item\"></p-tableCheckbox>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t}\r\n\r\n\t\t\t\t@for (column of columns; track $index) {\r\n\t\t\t\t\t<td [ngStyle]=\"{ 'text-align': column.type() === 'operations' ? 'center' : column.tAlign() || tAlign() }\">\r\n\t\t\t\t\t\t<ng-template ngFor [ngForOf]=\"[item]\" [ngForTemplate]=\"column.template\"></ng-template>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t}\r\n\t\t\t</tr>\r\n\t\t}\r\n\t</ng-template>\r\n\r\n\t@if (showFooter()) {\r\n\t\t<ng-template pTemplate=\"summary\">\r\n\t\t\t<ng-content select=\"[footer]\"></ng-content>\r\n\t\t</ng-template>\r\n\t}\r\n\r\n\t<ng-template pTemplate=\"emptymessage\">\r\n\t\t<tr>\r\n\t\t\t<td [attr.colspan]=\"columns._results.length\">{{ noDataFoundLabel() }}</td>\r\n\t\t</tr>\r\n\t</ng-template>\r\n</p-table>\r\n\r\n<p-overlayPanel styleClass=\"export-overlay-panel\">\r\n\t@if (exportForm) {\r\n\t\t<aril-form [formGroup]=\"exportForm\" class=\"w-20rem\">\r\n\t\t\t<aril-field [label]=\"'Export Tipi'\" [cols]=\"{ default: 12 }\">\r\n\t\t\t\t<aril-radio-button formControlName=\"exportType\" [options]=\"exportTypeOptions\" />\r\n\t\t\t</aril-field>\r\n\r\n\t\t\t<aril-field [label]=\"'Dosya \u0130smi'\" [cols]=\"{ default: 12 }\">\r\n\t\t\t\t<aril-text class=\"w-full\" formControlName=\"exportLabel\" />\r\n\t\t\t</aril-field>\r\n\r\n\t\t\t<ng-container formArrayName=\"columns\">\r\n\t\t\t\t<p-orderList\r\n\t\t\t\t\t#orderListRef\r\n\t\t\t\t\tclass=\"col-12\"\r\n\t\t\t\t\t[value]=\"exportForm.controls.columns.controls\"\r\n\t\t\t\t\t[listStyle]=\"{ 'max-height': '20rem' }\"\r\n\t\t\t\t\tfilterBy=\"value.title\">\r\n\t\t\t\t\t<ng-template pTemplate=\"filter\">\r\n\t\t\t\t\t\t<div class=\"flex align-items-center gap-3\">\r\n\t\t\t\t\t\t\t<aril-checkbox\r\n\t\t\t\t\t\t\t\t[label]=\"''\"\r\n\t\t\t\t\t\t\t\t[ngModel]=\"isAllSelected\"\r\n\t\t\t\t\t\t\t\t[ngModelOptions]=\"{ standalone: true }\"\r\n\t\t\t\t\t\t\t\t(ngModelChange)=\"onSelectAll($event)\" />\r\n\r\n\t\t\t\t\t\t\t<div class=\"p-orderlist-filter\" [attr.data-pc-section]=\"'filter'\">\r\n\t\t\t\t\t\t\t\t<input\r\n\t\t\t\t\t\t\t\t\t#filter\r\n\t\t\t\t\t\t\t\t\ttype=\"text\"\r\n\t\t\t\t\t\t\t\t\trole=\"textbox\"\r\n\t\t\t\t\t\t\t\t\t(keyup)=\"orderListRef.onFilterKeyup($event)\"\r\n\t\t\t\t\t\t\t\t\t[disabled]=\"orderListRef.disabled\"\r\n\t\t\t\t\t\t\t\t\tclass=\"p-orderlist-filter-input p-inputtext p-component\" />\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<ng-template let-col pTemplate=\"item\">\r\n\t\t\t\t\t\t<aril-checkbox [label]=\"col.value.title\" [formControl]=\"col.controls.checked\" />\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t</p-orderList>\r\n\t\t\t</ng-container>\r\n\r\n\t\t\t<aril-button class=\"col-12\" label=\"Export\" color=\"primary\" (clickEvent)=\"export()\" />\r\n\t\t</aril-form>\r\n\t}\r\n</p-overlayPanel>\r\n", styles: ["::ng-deep aril-table th{min-width:0px!important}\n"], dependencies: [{ kind: "component", type: i6.FormComponent, selector: "aril-form", inputs: ["formGroup"] }, { kind: "component", type: i7.ButtonComponent, selector: "aril-button:not([click])", inputs: ["label", "loading", "disabled", "raised", "outlined", "badge", "size", "icon", "color"], outputs: ["clickEvent"] }, { kind: "directive", type: i3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i8.CheckboxComponent, selector: "aril-checkbox[ngModel], aril-checkbox[formControl], aril-checkbox[formControlName]", inputs: ["label", "tabindex"] }, { kind: "component", type: i9.FieldComponent, selector: "aril-field", inputs: ["label", "color", "labelWidth", "valueWidth", "labelPos", "markAsRequired", "cols", "infoData"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i10.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "directive", type: i11.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i11.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i12.OrderList, selector: "p-orderList", inputs: ["header", "style", "styleClass", "tabindex", "ariaLabel", "ariaLabelledBy", "listStyle", "responsive", "filterBy", "filterPlaceholder", "filterLocale", "metaKeySelection", "dragdrop", "controlsPosition", "ariaFilterLabel", "filterMatchMode", "breakpoint", "stripedRows", "disabled", "trackBy", "selection", "value"], outputs: ["selectionChange", "onReorder", "onSelectionChange", "onFilterEvent", "onFocus", "onBlur"] }, { kind: "component", type: i13.OverlayPanel, selector: "p-overlayPanel", inputs: ["ariaLabel", "ariaLabelledBy", "dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { kind: "component", type: i14.RadioButtonComponent, selector: "aril-radio-button[ngModel], aril-radio-button[formControl], aril-radio-button[formControlName]", inputs: ["options", "tabindex", "align"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i2.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "component", type: i15.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorStyleClass", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "groupRowsByOrder", "responsiveLayout", "breakpoint", "paginatorLocale", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll", "virtualRowHeight"], outputs: ["contextMenuSelectionChange", "selectAllChange", "selectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "directive", type: i15.SortableColumn, selector: "[pSortableColumn]", inputs: ["pSortableColumn", "pSortableColumnDisabled"] }, { kind: "directive", type: i15.SelectableRow, selector: "[pSelectableRow]", inputs: ["pSelectableRow", "pSelectableRowIndex", "pSelectableRowDisabled"] }, { kind: "directive", type: i15.ResizableColumn, selector: "[pResizableColumn]", inputs: ["pResizableColumnDisabled"] }, { kind: "component", type: i15.SortIcon, selector: "p-sortIcon", inputs: ["field"] }, { kind: "component", type: i15.TableCheckbox, selector: "p-tableCheckbox", inputs: ["disabled", "value", "index", "inputId", "name", "required", "ariaLabel"] }, { kind: "component", type: i15.TableHeaderCheckbox, selector: "p-tableHeaderCheckbox", inputs: ["disabled", "inputId", "name", "ariaLabel"] }, { kind: "component", type: i16.TextComponent, selector: "aril-text[ngModel], aril-text[formControl], aril-text[formControlName]", inputs: ["placeholder", "tabindex", "icon", "iconPos", "size"] }] }); }
|
|
229
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: TableComponent, selector: "aril-table", inputs: { kebabMenuItems: { classPropertyName: "kebabMenuItems", publicName: "kebabMenuItems", isSignal: false, isRequired: false, transformFunction: null }, expandableFields: { classPropertyName: "expandableFields", publicName: "expandableFields", isSignal: false, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: true, transformFunction: null }, checkboxSelection: { classPropertyName: "checkboxSelection", publicName: "checkboxSelection", isSignal: true, isRequired: false, transformFunction: null }, headerCheckboxSelection: { classPropertyName: "headerCheckboxSelection", publicName: "headerCheckboxSelection", isSignal: true, isRequired: false, transformFunction: null }, pageSize: { classPropertyName: "pageSize", publicName: "pageSize", isSignal: true, isRequired: false, transformFunction: null }, proxy: { classPropertyName: "proxy", publicName: "proxy", isSignal: true, isRequired: false, transformFunction: null }, showFooter: { classPropertyName: "showFooter", publicName: "showFooter", isSignal: true, isRequired: false, transformFunction: null }, tAlign: { classPropertyName: "tAlign", publicName: "tAlign", isSignal: true, isRequired: false, transformFunction: null }, selectionMode: { classPropertyName: "selectionMode", publicName: "selectionMode", isSignal: true, isRequired: false, transformFunction: null }, showSearchTool: { classPropertyName: "showSearchTool", publicName: "showSearchTool", isSignal: true, isRequired: false, transformFunction: null }, showExportTool: { classPropertyName: "showExportTool", publicName: "showExportTool", isSignal: true, isRequired: false, transformFunction: null }, exportFileName: { classPropertyName: "exportFileName", publicName: "exportFileName", isSignal: true, isRequired: false, transformFunction: null }, noDataFoundLabel: { classPropertyName: "noDataFoundLabel", publicName: "noDataFoundLabel", isSignal: true, isRequired: false, transformFunction: null }, tableHeader: { classPropertyName: "tableHeader", publicName: "tableHeader", isSignal: true, isRequired: false, transformFunction: null }, showTableHeader: { classPropertyName: "showTableHeader", publicName: "showTableHeader", isSignal: true, isRequired: false, transformFunction: null }, isFirstRowSelected: { classPropertyName: "isFirstRowSelected", publicName: "isFirstRowSelected", isSignal: true, isRequired: false, transformFunction: null }, dataKey: { classPropertyName: "dataKey", publicName: "dataKey", isSignal: true, isRequired: false, transformFunction: null }, selectedRowsInput: { classPropertyName: "selectedRowsInput", publicName: "selectedRowsInput", isSignal: true, isRequired: false, transformFunction: null }, isLazy: { classPropertyName: "isLazy", publicName: "isLazy", isSignal: true, isRequired: false, transformFunction: null }, totalRecords: { classPropertyName: "totalRecords", publicName: "totalRecords", isSignal: true, isRequired: false, transformFunction: null }, paginator: { classPropertyName: "paginator", publicName: "paginator", isSignal: true, isRequired: false, transformFunction: null }, paginatorDropdownAppendTo: { classPropertyName: "paginatorDropdownAppendTo", publicName: "paginatorDropdownAppendTo", isSignal: true, isRequired: false, transformFunction: null }, isShowNoDataFoundMessage: { classPropertyName: "isShowNoDataFoundMessage", publicName: "isShowNoDataFoundMessage", isSignal: true, isRequired: false, transformFunction: null }, exportConfig: { classPropertyName: "exportConfig", publicName: "exportConfig", isSignal: true, isRequired: false, transformFunction: null }, isColumnExpandMode: { classPropertyName: "isColumnExpandMode", publicName: "isColumnExpandMode", isSignal: true, isRequired: false, transformFunction: null }, isResizableColumns: { classPropertyName: "isResizableColumns", publicName: "isResizableColumns", isSignal: true, isRequired: false, transformFunction: null }, isSortable: { classPropertyName: "isSortable", publicName: "isSortable", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onPageEvent: "onPageEvent", selectionEvent: "selectionEvent", lazyLoadEvent: "lazyLoadEvent" }, queries: [{ propertyName: "columns", predicate: TableColumnComponent }], viewQueries: [{ propertyName: "op", first: true, predicate: OverlayPanel, descendants: true }, { propertyName: "tableRef", first: true, predicate: Table, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<p-table\r\n\t#ref\r\n\t[value]=\"data()\"\r\n\t[dataKey]=\"dataKey()\"\r\n\t[columns]=\"columns._results\"\r\n\t[rows]=\"pageSize()\"\r\n\t[rowHover]=\"true\"\r\n\t[paginator]=\"paginator()\"\r\n\t[lazy]=\"isLazy()\"\r\n\t[lazyLoadOnInit]=\"false\"\r\n\t[totalRecords]=\"totalRecords()\"\r\n\t[rowsPerPageOptions]=\"[10, 20, 50, 100]\"\r\n\t[filterDelay]=\"0\"\r\n\tsortMode=\"multiple\"\r\n\t[(selection)]=\"selectedRows\"\r\n\t(onPage)=\"onPageEvent.emit($event)\"\r\n\t(onLazyLoad)=\"handleLazyLoadEvent($event)\"\r\n\t(selectionChange)=\"selectionEvent.emit(selectedRows)\"\r\n\t[showCurrentPageReport]=\"true\"\r\n\t[selectionMode]=\"selectionMode()\"\r\n\t[columnResizeMode]=\"isColumnExpandMode() ? 'expand' : ''\"\r\n\t[resizableColumns]=\"isResizableColumns()\"\r\n\tcurrentPageReportTemplate=\"Toplam : {totalRecords} kay\u0131t | Sayfa : {currentPage} / {totalPages}\"\r\n\tstyleClass=\"p-datatable-sm\"\r\n\t[paginatorDropdownAppendTo]=\"paginatorDropdownAppendTo()\">\r\n\t<!--@if (tableHeader() || showSearchTool() || showExportTool()) {\r\n\t\t<ng-template pTemplate=\"caption\">\r\n\t\t\t<div class=\"flex space-between\">\r\n\t\t\t\t<div style=\"flex: auto\">\r\n\t\t\t\t\t@if (tableHeader().length) {\r\n\t\t\t\t\t\t<div class=\"table-header\">\r\n\t\t\t\t\t\t\t{{ tableHeader() }}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t}\r\n\t\t\t\t</div>\r\n\t\t\t\t<div style=\"flex: auto\">\r\n\t\t\t\t\t<div class=\"flex justify-content-end align-items-center\">\r\n\t\t\t\t\t\t@if (false) {\r\n\t\t\t\t\t\t\t<aril-text\r\n\t\t\t\t\t\t\t\ticon=\"SEARCH\"\r\n\t\t\t\t\t\t\t\ticonPos=\"left\"\r\n\t\t\t\t\t\t\t\tplaceholder=\"Arama\"\r\n\t\t\t\t\t\t\t\t[ngModel]=\"filterText\"\r\n\t\t\t\t\t\t\t\tclass=\"mr-1\"\r\n\t\t\t\t\t\t\t\t(ngModelChange)=\"ref.filterGlobal($event.target.value, 'contains')\">\r\n\t\t\t\t\t\t\t</aril-text>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t@if (false) {\r\n\t\t\t\t\t\t\t<aril-button\r\n\t\t\t\t\t\t\t\tsize=\"sm\"\r\n\t\t\t\t\t\t\t\ticon=\"FILE_EXCEL\"\r\n\t\t\t\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t\t\t\tpTooltip=\"XLS\"\r\n\t\t\t\t\t\t\t\ttooltipPosition=\"top\"\r\n\t\t\t\t\t\t\t\t(clickEvent)=\"excelExport()\"\r\n\t\t\t\t\t\t\t\tclass=\"mr-1\">\r\n\t\t\t\t\t\t\t</aril-button>\r\n\t\t\t\t\t\t\t<aril-button\r\n\t\t\t\t\t\t\t\tsize=\"sm\"\r\n\t\t\t\t\t\t\t\ticon=\"FILE_PDF\"\r\n\t\t\t\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t\t\t\tpTooltip=\"PDF\"\r\n\t\t\t\t\t\t\t\ttooltipPosition=\"top\"\r\n\t\t\t\t\t\t\t\t(clickEvent)=\"exportPdf()\">\r\n\t\t\t\t\t\t\t</aril-button>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t@if (data() && kebabMenuItems.length > 0 ) {\r\n\t\t\t\t\t\t\t<div tools style=\"padding: 4px;margin-left: 4px;border:1px solid #6366f1;border-radius: 6px;background-color: #6366f1; color: white;\" >\r\n\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t[attr.role]=\"'none'\"\r\n\t\t\t\t\t\t\t\t\tclass=\"pi mr-1 header-icon pi-ellipsis-v\"\r\n\t\t\t\t\t\t\t\t\t(click)=\"bulkOperations.toggle($event);\"></i>\r\n\t\t\t\t\t\t\t\t<p-menu\r\n\t\t\t\t\t\t\t\t\t#bulkOperations\r\n\t\t\t\t\t\t\t\t\t[popup]=\"true\"\r\n\t\t\t\t\t\t\t\t\t[model]=\"kebabMenuItems\"\r\n\t\t\t\t\t\t\t\t\tstyleClass=\"z-index: 9998899;\"\r\n\t\t\t\t\t\t\t\t\tappendTo=\"body\"></p-menu>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</ng-template>\r\n\t}-->\r\n\r\n\t<ng-template pTemplate=\"header\" let-columns>\r\n\t\t<tr>\r\n\t\t\t@if (checkboxSelection()) {\r\n\t\t\t\t<th>\r\n\t\t\t\t\t@if (headerCheckboxSelection()) {\r\n\t\t\t\t\t\t<p-tableHeaderCheckbox></p-tableHeaderCheckbox>\r\n\t\t\t\t\t}\r\n\t\t\t\t</th>\r\n\t\t\t}\r\n\t\t\t@for (column of columns; track $index) {\r\n\t\t\t\t@if (column.type() === 'operations') {\r\n\t\t\t\t\t<th>\r\n\t\t\t\t\t\t<div class=\"flex justify-content-center\">\u0130\u015Flemler</div>\r\n\t\t\t\t\t</th>\r\n\t\t\t\t} @else {\r\n\t\t\t\t\t@if (isResizableColumns()) {\r\n\t\t\t\t\t\t<th\r\n\t\t\t\t\t\t\t[pSortableColumn]=\"column.field()\"\r\n\t\t\t\t\t\t\t[ngStyle]=\"{ width: column.width() ? column.width() : 'auto' }\"\r\n\t\t\t\t\t\t\tpResizableColumn>\r\n\t\t\t\t\t\t\t<div class=\"flex justify-content-between align-items-center gap-2\">\r\n\t\t\t\t\t\t\t\t{{ column.header() }}\r\n\t\t\t\t\t\t\t\t<div class=\"flex\">\r\n\t\t\t\t\t\t\t\t\t@if (column.isShowHeaderTooltip()) {\r\n\t\t\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t\t\tstyle=\"color: green; padding-top: 4px; padding-left: 4px\"\r\n\t\t\t\t\t\t\t\t\t\t\tclass=\"pi pi-info-circle\"\r\n\t\t\t\t\t\t\t\t\t\t\t[pTooltip]=\"column.tooltipTemplate()\"\r\n\t\t\t\t\t\t\t\t\t\t\ttooltipPosition=\"top\"></i>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t@if (!isLazy()) {\r\n\t\t\t\t\t\t\t\t\t\t<p-sortIcon [field]=\"column.field()\"></p-sortIcon>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</th>\r\n\t\t\t\t\t} @else if (isSortable()) {\r\n\t\t\t\t\t\t<th\r\n\t\t\t\t\t\t\t[pSortableColumn]=\"column.field()\"\r\n\t\t\t\t\t\t\t[ngStyle]=\"{ width: column.width() ? column.width() : 'auto' }\"\r\n\t\t\t\t\t\t\tstyle=\"min-width: 170px\">\r\n\t\t\t\t\t\t\t<div class=\"flex justify-content-between align-items-center gap-2\">\r\n\t\t\t\t\t\t\t\t{{ column.header() }}\r\n\t\t\t\t\t\t\t\t<div class=\"flex\">\r\n\t\t\t\t\t\t\t\t\t@if (column.isShowHeaderTooltip()) {\r\n\t\t\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t\t\tstyle=\"color: green; padding-top: 4px; padding-left: 4px\"\r\n\t\t\t\t\t\t\t\t\t\t\tclass=\"pi pi-info-circle\"\r\n\t\t\t\t\t\t\t\t\t\t\t[pTooltip]=\"column.tooltipTemplate()\"\r\n\t\t\t\t\t\t\t\t\t\t\ttooltipPosition=\"top\"></i>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t<p-sortIcon [field]=\"column.field()\"></p-sortIcon>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</th>\r\n\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t<th [ngStyle]=\"{ width: column.width() ? column.width() : 'auto' }\" style=\"min-width: 170px\">\r\n\t\t\t\t\t\t\t<div class=\"flex justify-content-between align-items-center gap-2\">\r\n\t\t\t\t\t\t\t\t{{ column.header() }}\r\n\t\t\t\t\t\t\t\t<div class=\"flex\">\r\n\t\t\t\t\t\t\t\t\t@if (column.isShowHeaderTooltip()) {\r\n\t\t\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t\t\tstyle=\"color: green; padding-top: 4px; padding-left: 4px\"\r\n\t\t\t\t\t\t\t\t\t\t\tclass=\"pi pi-info-circle\"\r\n\t\t\t\t\t\t\t\t\t\t\t[pTooltip]=\"column.tooltipTemplate()\"\r\n\t\t\t\t\t\t\t\t\t\t\ttooltipPosition=\"top\"></i>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</th>\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t</tr>\r\n\t</ng-template>\r\n\r\n\t<ng-template pTemplate=\"body\" let-item let-columns=\"columns\">\r\n\t\t@if (handledSelectionMode) {\r\n\t\t\t<tr [pSelectableRow]=\"item\" [ngStyle]=\"{ 'background-color': item?.rowColor ? item?.rowColor : '#fff' }\">\r\n\t\t\t\t@for (column of columns; track $index) {\r\n\t\t\t\t\t<td [ngStyle]=\"{ 'text-align': column.type() === 'operations' ? 'center' : column.tAlign() || tAlign() }\">\r\n\t\t\t\t\t\t<ng-template ngFor [ngForOf]=\"[item]\" [ngForTemplate]=\"column.template\"></ng-template>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t}\r\n\t\t\t</tr>\r\n\t\t} @else {\r\n\t\t\t<tr [ngStyle]=\"{ 'background-color': item?.rowColor ? item?.rowColor : '#fff' }\">\r\n\t\t\t\t@if (checkboxSelection()) {\r\n\t\t\t\t\t<td>\r\n\t\t\t\t\t\t<p-tableCheckbox [value]=\"item\"></p-tableCheckbox>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t}\r\n\r\n\t\t\t\t@for (column of columns; track $index) {\r\n\t\t\t\t\t<td [ngStyle]=\"{ 'text-align': column.type() === 'operations' ? 'center' : column.tAlign() || tAlign() }\">\r\n\t\t\t\t\t\t<ng-template ngFor [ngForOf]=\"[item]\" [ngForTemplate]=\"column.template\"></ng-template>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t}\r\n\t\t\t</tr>\r\n\t\t}\r\n\t</ng-template>\r\n\r\n\t@if (showFooter()) {\r\n\t\t<ng-template pTemplate=\"summary\">\r\n\t\t\t<ng-content select=\"[footer]\"></ng-content>\r\n\t\t</ng-template>\r\n\t}\r\n\r\n\t<ng-template pTemplate=\"emptymessage\">\r\n\t\t<tr>\r\n\t\t\t<td [attr.colspan]=\"columns._results.length\">{{ noDataFoundLabel() }}</td>\r\n\t\t</tr>\r\n\t</ng-template>\r\n</p-table>\r\n\r\n<p-overlayPanel styleClass=\"export-overlay-panel\">\r\n\t@if (exportForm) {\r\n\t\t<aril-form [formGroup]=\"exportForm\" class=\"w-20rem\">\r\n\t\t\t<aril-field [label]=\"'Export Tipi'\" [cols]=\"{ default: 12 }\">\r\n\t\t\t\t<aril-radio-button formControlName=\"exportType\" [options]=\"exportTypeOptions\" />\r\n\t\t\t</aril-field>\r\n\r\n\t\t\t<aril-field [label]=\"'Dosya \u0130smi'\" [cols]=\"{ default: 12 }\">\r\n\t\t\t\t<aril-text class=\"w-full\" formControlName=\"exportLabel\" />\r\n\t\t\t</aril-field>\r\n\r\n\t\t\t<ng-container formArrayName=\"columns\">\r\n\t\t\t\t<p-orderList\r\n\t\t\t\t\t#orderListRef\r\n\t\t\t\t\tclass=\"col-12\"\r\n\t\t\t\t\t[value]=\"exportForm.controls.columns.controls\"\r\n\t\t\t\t\t[listStyle]=\"{ 'max-height': '20rem' }\"\r\n\t\t\t\t\tfilterBy=\"value.title\">\r\n\t\t\t\t\t<ng-template pTemplate=\"filter\">\r\n\t\t\t\t\t\t<div class=\"flex align-items-center gap-3\">\r\n\t\t\t\t\t\t\t<aril-checkbox\r\n\t\t\t\t\t\t\t\t[label]=\"''\"\r\n\t\t\t\t\t\t\t\t[ngModel]=\"isAllSelected\"\r\n\t\t\t\t\t\t\t\t[ngModelOptions]=\"{ standalone: true }\"\r\n\t\t\t\t\t\t\t\t(ngModelChange)=\"onSelectAll($event)\" />\r\n\r\n\t\t\t\t\t\t\t<div class=\"p-orderlist-filter\" [attr.data-pc-section]=\"'filter'\">\r\n\t\t\t\t\t\t\t\t<input\r\n\t\t\t\t\t\t\t\t\t#filter\r\n\t\t\t\t\t\t\t\t\ttype=\"text\"\r\n\t\t\t\t\t\t\t\t\trole=\"textbox\"\r\n\t\t\t\t\t\t\t\t\t(keyup)=\"orderListRef.onFilterKeyup($event)\"\r\n\t\t\t\t\t\t\t\t\t[disabled]=\"orderListRef.disabled\"\r\n\t\t\t\t\t\t\t\t\tclass=\"p-orderlist-filter-input p-inputtext p-component\" />\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<ng-template let-col pTemplate=\"item\">\r\n\t\t\t\t\t\t<aril-checkbox [label]=\"col.value.title\" [formControl]=\"col.controls.checked\" />\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t</p-orderList>\r\n\t\t\t</ng-container>\r\n\r\n\t\t\t<aril-button class=\"col-12\" label=\"Export\" color=\"primary\" (clickEvent)=\"export()\" />\r\n\t\t</aril-form>\r\n\t}\r\n</p-overlayPanel>\r\n", styles: ["::ng-deep aril-table th{min-width:0px!important}\n"], dependencies: [{ kind: "component", type: i6.FormComponent, selector: "aril-form", inputs: ["formGroup"] }, { kind: "component", type: i7.ButtonComponent, selector: "aril-button:not([click])", inputs: ["label", "loading", "disabled", "raised", "outlined", "badge", "size", "icon", "color"], outputs: ["clickEvent"] }, { kind: "directive", type: i3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i8.CheckboxComponent, selector: "aril-checkbox[ngModel], aril-checkbox[formControl], aril-checkbox[formControlName]", inputs: ["label", "tabindex"] }, { kind: "component", type: i9.FieldComponent, selector: "aril-field", inputs: ["label", "color", "labelWidth", "valueWidth", "labelPos", "markAsRequired", "cols", "infoData"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i10.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "directive", type: i11.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i11.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i12.OrderList, selector: "p-orderList", inputs: ["header", "style", "styleClass", "tabindex", "ariaLabel", "ariaLabelledBy", "listStyle", "responsive", "filterBy", "filterPlaceholder", "filterLocale", "metaKeySelection", "dragdrop", "controlsPosition", "ariaFilterLabel", "filterMatchMode", "breakpoint", "stripedRows", "disabled", "trackBy", "selection", "value"], outputs: ["selectionChange", "onReorder", "onSelectionChange", "onFilterEvent", "onFocus", "onBlur"] }, { kind: "component", type: i13.OverlayPanel, selector: "p-overlayPanel", inputs: ["ariaLabel", "ariaLabelledBy", "dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { kind: "component", type: i14.RadioButtonComponent, selector: "aril-radio-button[ngModel], aril-radio-button[formControl], aril-radio-button[formControlName]", inputs: ["options", "tabindex", "align"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i2.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "component", type: i15.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorStyleClass", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "groupRowsByOrder", "responsiveLayout", "breakpoint", "paginatorLocale", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll", "virtualRowHeight"], outputs: ["contextMenuSelectionChange", "selectAllChange", "selectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "directive", type: i15.SortableColumn, selector: "[pSortableColumn]", inputs: ["pSortableColumn", "pSortableColumnDisabled"] }, { kind: "directive", type: i15.SelectableRow, selector: "[pSelectableRow]", inputs: ["pSelectableRow", "pSelectableRowIndex", "pSelectableRowDisabled"] }, { kind: "directive", type: i15.ResizableColumn, selector: "[pResizableColumn]", inputs: ["pResizableColumnDisabled"] }, { kind: "component", type: i15.SortIcon, selector: "p-sortIcon", inputs: ["field"] }, { kind: "component", type: i15.TableCheckbox, selector: "p-tableCheckbox", inputs: ["disabled", "value", "index", "inputId", "name", "required", "ariaLabel"] }, { kind: "component", type: i15.TableHeaderCheckbox, selector: "p-tableHeaderCheckbox", inputs: ["disabled", "inputId", "name", "ariaLabel"] }, { kind: "component", type: i16.TextComponent, selector: "aril-text[ngModel], aril-text[formControl], aril-text[formControlName]", inputs: ["placeholder", "tabindex", "icon", "iconPos", "size"] }] }); }
|
|
230
230
|
}
|
|
231
231
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TableComponent, decorators: [{
|
|
232
232
|
type: Component,
|
|
233
|
-
args: [{ selector: 'aril-table', template: "<p-table\r\n\t#ref\r\n\t[value]=\"data()\"\r\n\t[dataKey]=\"dataKey()\"\r\n\t[columns]=\"columns._results\"\r\n\t[rows]=\"pageSize()\"\r\n\t[rowHover]=\"true\"\r\n\t[paginator]=\"paginator()\"\r\n\t[lazy]=\"isLazy()\"\r\n\t[lazyLoadOnInit]=\"false\"\r\n\t[totalRecords]=\"totalRecords()\"\r\n\t[rowsPerPageOptions]=\"[10, 20, 50, 100]\"\r\n\t[filterDelay]=\"0\"\r\n\tsortMode=\"multiple\"\r\n\t[(selection)]=\"selectedRows\"\r\n\t(onPage)=\"onPageEvent.emit($event)\"\r\n\t(onLazyLoad)=\"handleLazyLoadEvent($event)\"\r\n\t(selectionChange)=\"selectionEvent.emit(selectedRows)\"\r\n\t[showCurrentPageReport]=\"true\"\r\n\t[selectionMode]=\"selectionMode()\"\r\n\t[columnResizeMode]=\"isColumnExpandMode() ? 'expand' : ''\"\r\n\t[resizableColumns]=\"isResizableColumns()\"\r\n\tcurrentPageReportTemplate=\"Toplam : {totalRecords} kay\u0131t | Sayfa : {currentPage} / {totalPages}\"\r\n\tstyleClass=\"p-datatable-sm\"\r\n\t[paginatorDropdownAppendTo]=\"paginatorDropdownAppendTo()\">\r\n\t<!--@if (tableHeader() || showSearchTool() || showExportTool()) {\r\n\t\t<ng-template pTemplate=\"caption\">\r\n\t\t\t<div class=\"flex space-between\">\r\n\t\t\t\t<div style=\"flex: auto\">\r\n\t\t\t\t\t@if (tableHeader().length) {\r\n\t\t\t\t\t\t<div class=\"table-header\">\r\n\t\t\t\t\t\t\t{{ tableHeader() }}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t}\r\n\t\t\t\t</div>\r\n\t\t\t\t<div style=\"flex: auto\">\r\n\t\t\t\t\t<div class=\"flex justify-content-end align-items-center\">\r\n\t\t\t\t\t\t@if (false) {\r\n\t\t\t\t\t\t\t<aril-text\r\n\t\t\t\t\t\t\t\ticon=\"SEARCH\"\r\n\t\t\t\t\t\t\t\ticonPos=\"left\"\r\n\t\t\t\t\t\t\t\tplaceholder=\"Arama\"\r\n\t\t\t\t\t\t\t\t[ngModel]=\"filterText\"\r\n\t\t\t\t\t\t\t\tclass=\"mr-1\"\r\n\t\t\t\t\t\t\t\t(ngModelChange)=\"ref.filterGlobal($event.target.value, 'contains')\">\r\n\t\t\t\t\t\t\t</aril-text>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t@if (false) {\r\n\t\t\t\t\t\t\t<aril-button\r\n\t\t\t\t\t\t\t\tsize=\"sm\"\r\n\t\t\t\t\t\t\t\ticon=\"FILE_EXCEL\"\r\n\t\t\t\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t\t\t\tpTooltip=\"XLS\"\r\n\t\t\t\t\t\t\t\ttooltipPosition=\"top\"\r\n\t\t\t\t\t\t\t\t(clickEvent)=\"excelExport()\"\r\n\t\t\t\t\t\t\t\tclass=\"mr-1\">\r\n\t\t\t\t\t\t\t</aril-button>\r\n\t\t\t\t\t\t\t<aril-button\r\n\t\t\t\t\t\t\t\tsize=\"sm\"\r\n\t\t\t\t\t\t\t\ticon=\"FILE_PDF\"\r\n\t\t\t\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t\t\t\tpTooltip=\"PDF\"\r\n\t\t\t\t\t\t\t\ttooltipPosition=\"top\"\r\n\t\t\t\t\t\t\t\t(clickEvent)=\"exportPdf()\">\r\n\t\t\t\t\t\t\t</aril-button>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t@if (data() && kebabMenuItems.length > 0 ) {\r\n\t\t\t\t\t\t\t<div tools style=\"padding: 4px;margin-left: 4px;border:1px solid #6366f1;border-radius: 6px;background-color: #6366f1; color: white;\" >\r\n\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t[attr.role]=\"'none'\"\r\n\t\t\t\t\t\t\t\t\tclass=\"pi mr-1 header-icon pi-ellipsis-v\"\r\n\t\t\t\t\t\t\t\t\t(click)=\"bulkOperations.toggle($event);\"></i>\r\n\t\t\t\t\t\t\t\t<p-menu\r\n\t\t\t\t\t\t\t\t\t#bulkOperations\r\n\t\t\t\t\t\t\t\t\t[popup]=\"true\"\r\n\t\t\t\t\t\t\t\t\t[model]=\"kebabMenuItems\"\r\n\t\t\t\t\t\t\t\t\tstyleClass=\"z-index: 9998899;\"\r\n\t\t\t\t\t\t\t\t\tappendTo=\"body\"></p-menu>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</ng-template>\r\n\t}-->\r\n\r\n\t<ng-template pTemplate=\"header\" let-columns>\r\n\t\t<tr>\r\n\t\t\t@if (checkboxSelection()) {\r\n\t\t\t\t<th>\r\n\t\t\t\t\t@if (headerCheckboxSelection()) {\r\n\t\t\t\t\t\t<p-tableHeaderCheckbox></p-tableHeaderCheckbox>\r\n\t\t\t\t\t}\r\n\t\t\t\t</th>\r\n\t\t\t}\r\n\t\t\t@for (column of columns; track $index) {\r\n\t\t\t\t@if (column.type() === 'operations') {\r\n\t\t\t\t\t<th>\r\n\t\t\t\t\t\t<div class=\"flex justify-content-center\">\u0130\u015Flemler</div>\r\n\t\t\t\t\t</th>\r\n\t\t\t\t} @else {\r\n\t\t\t\t\t@if (isResizableColumns()) {\r\n\t\t\t\t\t\t<th\r\n\t\t\t\t\t\t\t[pSortableColumn]=\"column.field()\"\r\n\t\t\t\t\t\t\t[ngStyle]=\"{ width: column.width() ? column.width() : 'auto' }\"\r\n\t\t\t\t\t\t\tpResizableColumn>\r\n\t\t\t\t\t\t\t<div class=\"flex justify-content-between align-items-center gap-2\">\r\n\t\t\t\t\t\t\t\t{{ column.header() }}\r\n\t\t\t\t\t\t\t\t<div class=\"flex\">\r\n\t\t\t\t\t\t\t\t\t@if (column.isShowHeaderTooltip()) {\r\n\t\t\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t\t\tstyle=\"color: green; padding-top: 4px; padding-left: 4px\"\r\n\t\t\t\t\t\t\t\t\t\t\tclass=\"pi pi-info-circle\"\r\n\t\t\t\t\t\t\t\t\t\t\t[pTooltip]=\"column.tooltipTemplate()\"\r\n\t\t\t\t\t\t\t\t\t\t\ttooltipPosition=\"top\"></i>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t@if (!isLazy()) {\r\n\t\t\t\t\t\t\t\t\t\t<p-sortIcon [field]=\"column.field()\"></p-sortIcon>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</th>\r\n\t\t\t\t\t} @else if (isSortable()) {\r\n\t\t\t\t\t\t<th\r\n\t\t\t\t\t\t\t[pSortableColumn]=\"column.field()\"\r\n\t\t\t\t\t\t\t[ngStyle]=\"{ width: column.width() ? column.width() : 'auto' }\"\r\n\t\t\t\t\t\t\tstyle=\"min-width: 170px\">\r\n\t\t\t\t\t\t\t<div class=\"flex justify-content-between align-items-center gap-2\">\r\n\t\t\t\t\t\t\t\t{{ column.header() }}\r\n\t\t\t\t\t\t\t\t<div class=\"flex\">\r\n\t\t\t\t\t\t\t\t\t@if (column.isShowHeaderTooltip()) {\r\n\t\t\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t\t\tstyle=\"color: green; padding-top: 4px; padding-left: 4px\"\r\n\t\t\t\t\t\t\t\t\t\t\tclass=\"pi pi-info-circle\"\r\n\t\t\t\t\t\t\t\t\t\t\t[pTooltip]=\"column.tooltipTemplate()\"\r\n\t\t\t\t\t\t\t\t\t\t\ttooltipPosition=\"top\"></i>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t<p-sortIcon [field]=\"column.field()\"></p-sortIcon>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</th>\r\n\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t<th [ngStyle]=\"{ width: column.width() ? column.width() : 'auto' }\" style=\"min-width: 170px\">\r\n\t\t\t\t\t\t\t<div class=\"flex justify-content-between align-items-center gap-2\">\r\n\t\t\t\t\t\t\t\t{{ column.header() }}\r\n\t\t\t\t\t\t\t\t<div class=\"flex\">\r\n\t\t\t\t\t\t\t\t\t@if (column.isShowHeaderTooltip()) {\r\n\t\t\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t\t\tstyle=\"color: green; padding-top: 4px; padding-left: 4px\"\r\n\t\t\t\t\t\t\t\t\t\t\tclass=\"pi pi-info-circle\"\r\n\t\t\t\t\t\t\t\t\t\t\t[pTooltip]=\"column.tooltipTemplate()\"\r\n\t\t\t\t\t\t\t\t\t\t\ttooltipPosition=\"top\"></i>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</th>\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t</tr>\r\n\t</ng-template>\r\n\r\n\t<ng-template pTemplate=\"body\" let-item let-columns=\"columns\">\r\n\t\t@if (handledSelectionMode) {\r\n\t\t\t<tr [pSelectableRow]=\"item\">\r\n\t\t\t\t@for (column of columns; track $index) {\r\n\t\t\t\t\t<td [ngStyle]=\"{ 'text-align': column.type() === 'operations' ? 'center' : column.tAlign() || tAlign() }\">\r\n\t\t\t\t\t\t<ng-template ngFor [ngForOf]=\"[item]\" [ngForTemplate]=\"column.template\"></ng-template>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t}\r\n\t\t\t</tr>\r\n\t\t} @else {\r\n\t\t\t<tr [ngStyle]=\"{ 'background-color': item?.rowColor ? item?.rowColor : '#fff' }\">\r\n\t\t\t\t@if (checkboxSelection()) {\r\n\t\t\t\t\t<td>\r\n\t\t\t\t\t\t<p-tableCheckbox [value]=\"item\"></p-tableCheckbox>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t}\r\n\r\n\t\t\t\t@for (column of columns; track $index) {\r\n\t\t\t\t\t<td [ngStyle]=\"{ 'text-align': column.type() === 'operations' ? 'center' : column.tAlign() || tAlign() }\">\r\n\t\t\t\t\t\t<ng-template ngFor [ngForOf]=\"[item]\" [ngForTemplate]=\"column.template\"></ng-template>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t}\r\n\t\t\t</tr>\r\n\t\t}\r\n\t</ng-template>\r\n\r\n\t@if (showFooter()) {\r\n\t\t<ng-template pTemplate=\"summary\">\r\n\t\t\t<ng-content select=\"[footer]\"></ng-content>\r\n\t\t</ng-template>\r\n\t}\r\n\r\n\t<ng-template pTemplate=\"emptymessage\">\r\n\t\t<tr>\r\n\t\t\t<td [attr.colspan]=\"columns._results.length\">{{ noDataFoundLabel() }}</td>\r\n\t\t</tr>\r\n\t</ng-template>\r\n</p-table>\r\n\r\n<p-overlayPanel styleClass=\"export-overlay-panel\">\r\n\t@if (exportForm) {\r\n\t\t<aril-form [formGroup]=\"exportForm\" class=\"w-20rem\">\r\n\t\t\t<aril-field [label]=\"'Export Tipi'\" [cols]=\"{ default: 12 }\">\r\n\t\t\t\t<aril-radio-button formControlName=\"exportType\" [options]=\"exportTypeOptions\" />\r\n\t\t\t</aril-field>\r\n\r\n\t\t\t<aril-field [label]=\"'Dosya \u0130smi'\" [cols]=\"{ default: 12 }\">\r\n\t\t\t\t<aril-text class=\"w-full\" formControlName=\"exportLabel\" />\r\n\t\t\t</aril-field>\r\n\r\n\t\t\t<ng-container formArrayName=\"columns\">\r\n\t\t\t\t<p-orderList\r\n\t\t\t\t\t#orderListRef\r\n\t\t\t\t\tclass=\"col-12\"\r\n\t\t\t\t\t[value]=\"exportForm.controls.columns.controls\"\r\n\t\t\t\t\t[listStyle]=\"{ 'max-height': '20rem' }\"\r\n\t\t\t\t\tfilterBy=\"value.title\">\r\n\t\t\t\t\t<ng-template pTemplate=\"filter\">\r\n\t\t\t\t\t\t<div class=\"flex align-items-center gap-3\">\r\n\t\t\t\t\t\t\t<aril-checkbox\r\n\t\t\t\t\t\t\t\t[label]=\"''\"\r\n\t\t\t\t\t\t\t\t[ngModel]=\"isAllSelected\"\r\n\t\t\t\t\t\t\t\t[ngModelOptions]=\"{ standalone: true }\"\r\n\t\t\t\t\t\t\t\t(ngModelChange)=\"onSelectAll($event)\" />\r\n\r\n\t\t\t\t\t\t\t<div class=\"p-orderlist-filter\" [attr.data-pc-section]=\"'filter'\">\r\n\t\t\t\t\t\t\t\t<input\r\n\t\t\t\t\t\t\t\t\t#filter\r\n\t\t\t\t\t\t\t\t\ttype=\"text\"\r\n\t\t\t\t\t\t\t\t\trole=\"textbox\"\r\n\t\t\t\t\t\t\t\t\t(keyup)=\"orderListRef.onFilterKeyup($event)\"\r\n\t\t\t\t\t\t\t\t\t[disabled]=\"orderListRef.disabled\"\r\n\t\t\t\t\t\t\t\t\tclass=\"p-orderlist-filter-input p-inputtext p-component\" />\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<ng-template let-col pTemplate=\"item\">\r\n\t\t\t\t\t\t<aril-checkbox [label]=\"col.value.title\" [formControl]=\"col.controls.checked\" />\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t</p-orderList>\r\n\t\t\t</ng-container>\r\n\r\n\t\t\t<aril-button class=\"col-12\" label=\"Export\" color=\"primary\" (clickEvent)=\"export()\" />\r\n\t\t</aril-form>\r\n\t}\r\n</p-overlayPanel>\r\n", styles: ["::ng-deep aril-table th{min-width:0px!important}\n"] }]
|
|
233
|
+
args: [{ selector: 'aril-table', template: "<p-table\r\n\t#ref\r\n\t[value]=\"data()\"\r\n\t[dataKey]=\"dataKey()\"\r\n\t[columns]=\"columns._results\"\r\n\t[rows]=\"pageSize()\"\r\n\t[rowHover]=\"true\"\r\n\t[paginator]=\"paginator()\"\r\n\t[lazy]=\"isLazy()\"\r\n\t[lazyLoadOnInit]=\"false\"\r\n\t[totalRecords]=\"totalRecords()\"\r\n\t[rowsPerPageOptions]=\"[10, 20, 50, 100]\"\r\n\t[filterDelay]=\"0\"\r\n\tsortMode=\"multiple\"\r\n\t[(selection)]=\"selectedRows\"\r\n\t(onPage)=\"onPageEvent.emit($event)\"\r\n\t(onLazyLoad)=\"handleLazyLoadEvent($event)\"\r\n\t(selectionChange)=\"selectionEvent.emit(selectedRows)\"\r\n\t[showCurrentPageReport]=\"true\"\r\n\t[selectionMode]=\"selectionMode()\"\r\n\t[columnResizeMode]=\"isColumnExpandMode() ? 'expand' : ''\"\r\n\t[resizableColumns]=\"isResizableColumns()\"\r\n\tcurrentPageReportTemplate=\"Toplam : {totalRecords} kay\u0131t | Sayfa : {currentPage} / {totalPages}\"\r\n\tstyleClass=\"p-datatable-sm\"\r\n\t[paginatorDropdownAppendTo]=\"paginatorDropdownAppendTo()\">\r\n\t<!--@if (tableHeader() || showSearchTool() || showExportTool()) {\r\n\t\t<ng-template pTemplate=\"caption\">\r\n\t\t\t<div class=\"flex space-between\">\r\n\t\t\t\t<div style=\"flex: auto\">\r\n\t\t\t\t\t@if (tableHeader().length) {\r\n\t\t\t\t\t\t<div class=\"table-header\">\r\n\t\t\t\t\t\t\t{{ tableHeader() }}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t}\r\n\t\t\t\t</div>\r\n\t\t\t\t<div style=\"flex: auto\">\r\n\t\t\t\t\t<div class=\"flex justify-content-end align-items-center\">\r\n\t\t\t\t\t\t@if (false) {\r\n\t\t\t\t\t\t\t<aril-text\r\n\t\t\t\t\t\t\t\ticon=\"SEARCH\"\r\n\t\t\t\t\t\t\t\ticonPos=\"left\"\r\n\t\t\t\t\t\t\t\tplaceholder=\"Arama\"\r\n\t\t\t\t\t\t\t\t[ngModel]=\"filterText\"\r\n\t\t\t\t\t\t\t\tclass=\"mr-1\"\r\n\t\t\t\t\t\t\t\t(ngModelChange)=\"ref.filterGlobal($event.target.value, 'contains')\">\r\n\t\t\t\t\t\t\t</aril-text>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t@if (false) {\r\n\t\t\t\t\t\t\t<aril-button\r\n\t\t\t\t\t\t\t\tsize=\"sm\"\r\n\t\t\t\t\t\t\t\ticon=\"FILE_EXCEL\"\r\n\t\t\t\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t\t\t\tpTooltip=\"XLS\"\r\n\t\t\t\t\t\t\t\ttooltipPosition=\"top\"\r\n\t\t\t\t\t\t\t\t(clickEvent)=\"excelExport()\"\r\n\t\t\t\t\t\t\t\tclass=\"mr-1\">\r\n\t\t\t\t\t\t\t</aril-button>\r\n\t\t\t\t\t\t\t<aril-button\r\n\t\t\t\t\t\t\t\tsize=\"sm\"\r\n\t\t\t\t\t\t\t\ticon=\"FILE_PDF\"\r\n\t\t\t\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t\t\t\tpTooltip=\"PDF\"\r\n\t\t\t\t\t\t\t\ttooltipPosition=\"top\"\r\n\t\t\t\t\t\t\t\t(clickEvent)=\"exportPdf()\">\r\n\t\t\t\t\t\t\t</aril-button>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t@if (data() && kebabMenuItems.length > 0 ) {\r\n\t\t\t\t\t\t\t<div tools style=\"padding: 4px;margin-left: 4px;border:1px solid #6366f1;border-radius: 6px;background-color: #6366f1; color: white;\" >\r\n\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t[attr.role]=\"'none'\"\r\n\t\t\t\t\t\t\t\t\tclass=\"pi mr-1 header-icon pi-ellipsis-v\"\r\n\t\t\t\t\t\t\t\t\t(click)=\"bulkOperations.toggle($event);\"></i>\r\n\t\t\t\t\t\t\t\t<p-menu\r\n\t\t\t\t\t\t\t\t\t#bulkOperations\r\n\t\t\t\t\t\t\t\t\t[popup]=\"true\"\r\n\t\t\t\t\t\t\t\t\t[model]=\"kebabMenuItems\"\r\n\t\t\t\t\t\t\t\t\tstyleClass=\"z-index: 9998899;\"\r\n\t\t\t\t\t\t\t\t\tappendTo=\"body\"></p-menu>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</ng-template>\r\n\t}-->\r\n\r\n\t<ng-template pTemplate=\"header\" let-columns>\r\n\t\t<tr>\r\n\t\t\t@if (checkboxSelection()) {\r\n\t\t\t\t<th>\r\n\t\t\t\t\t@if (headerCheckboxSelection()) {\r\n\t\t\t\t\t\t<p-tableHeaderCheckbox></p-tableHeaderCheckbox>\r\n\t\t\t\t\t}\r\n\t\t\t\t</th>\r\n\t\t\t}\r\n\t\t\t@for (column of columns; track $index) {\r\n\t\t\t\t@if (column.type() === 'operations') {\r\n\t\t\t\t\t<th>\r\n\t\t\t\t\t\t<div class=\"flex justify-content-center\">\u0130\u015Flemler</div>\r\n\t\t\t\t\t</th>\r\n\t\t\t\t} @else {\r\n\t\t\t\t\t@if (isResizableColumns()) {\r\n\t\t\t\t\t\t<th\r\n\t\t\t\t\t\t\t[pSortableColumn]=\"column.field()\"\r\n\t\t\t\t\t\t\t[ngStyle]=\"{ width: column.width() ? column.width() : 'auto' }\"\r\n\t\t\t\t\t\t\tpResizableColumn>\r\n\t\t\t\t\t\t\t<div class=\"flex justify-content-between align-items-center gap-2\">\r\n\t\t\t\t\t\t\t\t{{ column.header() }}\r\n\t\t\t\t\t\t\t\t<div class=\"flex\">\r\n\t\t\t\t\t\t\t\t\t@if (column.isShowHeaderTooltip()) {\r\n\t\t\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t\t\tstyle=\"color: green; padding-top: 4px; padding-left: 4px\"\r\n\t\t\t\t\t\t\t\t\t\t\tclass=\"pi pi-info-circle\"\r\n\t\t\t\t\t\t\t\t\t\t\t[pTooltip]=\"column.tooltipTemplate()\"\r\n\t\t\t\t\t\t\t\t\t\t\ttooltipPosition=\"top\"></i>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t@if (!isLazy()) {\r\n\t\t\t\t\t\t\t\t\t\t<p-sortIcon [field]=\"column.field()\"></p-sortIcon>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</th>\r\n\t\t\t\t\t} @else if (isSortable()) {\r\n\t\t\t\t\t\t<th\r\n\t\t\t\t\t\t\t[pSortableColumn]=\"column.field()\"\r\n\t\t\t\t\t\t\t[ngStyle]=\"{ width: column.width() ? column.width() : 'auto' }\"\r\n\t\t\t\t\t\t\tstyle=\"min-width: 170px\">\r\n\t\t\t\t\t\t\t<div class=\"flex justify-content-between align-items-center gap-2\">\r\n\t\t\t\t\t\t\t\t{{ column.header() }}\r\n\t\t\t\t\t\t\t\t<div class=\"flex\">\r\n\t\t\t\t\t\t\t\t\t@if (column.isShowHeaderTooltip()) {\r\n\t\t\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t\t\tstyle=\"color: green; padding-top: 4px; padding-left: 4px\"\r\n\t\t\t\t\t\t\t\t\t\t\tclass=\"pi pi-info-circle\"\r\n\t\t\t\t\t\t\t\t\t\t\t[pTooltip]=\"column.tooltipTemplate()\"\r\n\t\t\t\t\t\t\t\t\t\t\ttooltipPosition=\"top\"></i>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t<p-sortIcon [field]=\"column.field()\"></p-sortIcon>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</th>\r\n\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t<th [ngStyle]=\"{ width: column.width() ? column.width() : 'auto' }\" style=\"min-width: 170px\">\r\n\t\t\t\t\t\t\t<div class=\"flex justify-content-between align-items-center gap-2\">\r\n\t\t\t\t\t\t\t\t{{ column.header() }}\r\n\t\t\t\t\t\t\t\t<div class=\"flex\">\r\n\t\t\t\t\t\t\t\t\t@if (column.isShowHeaderTooltip()) {\r\n\t\t\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t\t\tstyle=\"color: green; padding-top: 4px; padding-left: 4px\"\r\n\t\t\t\t\t\t\t\t\t\t\tclass=\"pi pi-info-circle\"\r\n\t\t\t\t\t\t\t\t\t\t\t[pTooltip]=\"column.tooltipTemplate()\"\r\n\t\t\t\t\t\t\t\t\t\t\ttooltipPosition=\"top\"></i>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</th>\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t</tr>\r\n\t</ng-template>\r\n\r\n\t<ng-template pTemplate=\"body\" let-item let-columns=\"columns\">\r\n\t\t@if (handledSelectionMode) {\r\n\t\t\t<tr [pSelectableRow]=\"item\" [ngStyle]=\"{ 'background-color': item?.rowColor ? item?.rowColor : '#fff' }\">\r\n\t\t\t\t@for (column of columns; track $index) {\r\n\t\t\t\t\t<td [ngStyle]=\"{ 'text-align': column.type() === 'operations' ? 'center' : column.tAlign() || tAlign() }\">\r\n\t\t\t\t\t\t<ng-template ngFor [ngForOf]=\"[item]\" [ngForTemplate]=\"column.template\"></ng-template>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t}\r\n\t\t\t</tr>\r\n\t\t} @else {\r\n\t\t\t<tr [ngStyle]=\"{ 'background-color': item?.rowColor ? item?.rowColor : '#fff' }\">\r\n\t\t\t\t@if (checkboxSelection()) {\r\n\t\t\t\t\t<td>\r\n\t\t\t\t\t\t<p-tableCheckbox [value]=\"item\"></p-tableCheckbox>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t}\r\n\r\n\t\t\t\t@for (column of columns; track $index) {\r\n\t\t\t\t\t<td [ngStyle]=\"{ 'text-align': column.type() === 'operations' ? 'center' : column.tAlign() || tAlign() }\">\r\n\t\t\t\t\t\t<ng-template ngFor [ngForOf]=\"[item]\" [ngForTemplate]=\"column.template\"></ng-template>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t}\r\n\t\t\t</tr>\r\n\t\t}\r\n\t</ng-template>\r\n\r\n\t@if (showFooter()) {\r\n\t\t<ng-template pTemplate=\"summary\">\r\n\t\t\t<ng-content select=\"[footer]\"></ng-content>\r\n\t\t</ng-template>\r\n\t}\r\n\r\n\t<ng-template pTemplate=\"emptymessage\">\r\n\t\t<tr>\r\n\t\t\t<td [attr.colspan]=\"columns._results.length\">{{ noDataFoundLabel() }}</td>\r\n\t\t</tr>\r\n\t</ng-template>\r\n</p-table>\r\n\r\n<p-overlayPanel styleClass=\"export-overlay-panel\">\r\n\t@if (exportForm) {\r\n\t\t<aril-form [formGroup]=\"exportForm\" class=\"w-20rem\">\r\n\t\t\t<aril-field [label]=\"'Export Tipi'\" [cols]=\"{ default: 12 }\">\r\n\t\t\t\t<aril-radio-button formControlName=\"exportType\" [options]=\"exportTypeOptions\" />\r\n\t\t\t</aril-field>\r\n\r\n\t\t\t<aril-field [label]=\"'Dosya \u0130smi'\" [cols]=\"{ default: 12 }\">\r\n\t\t\t\t<aril-text class=\"w-full\" formControlName=\"exportLabel\" />\r\n\t\t\t</aril-field>\r\n\r\n\t\t\t<ng-container formArrayName=\"columns\">\r\n\t\t\t\t<p-orderList\r\n\t\t\t\t\t#orderListRef\r\n\t\t\t\t\tclass=\"col-12\"\r\n\t\t\t\t\t[value]=\"exportForm.controls.columns.controls\"\r\n\t\t\t\t\t[listStyle]=\"{ 'max-height': '20rem' }\"\r\n\t\t\t\t\tfilterBy=\"value.title\">\r\n\t\t\t\t\t<ng-template pTemplate=\"filter\">\r\n\t\t\t\t\t\t<div class=\"flex align-items-center gap-3\">\r\n\t\t\t\t\t\t\t<aril-checkbox\r\n\t\t\t\t\t\t\t\t[label]=\"''\"\r\n\t\t\t\t\t\t\t\t[ngModel]=\"isAllSelected\"\r\n\t\t\t\t\t\t\t\t[ngModelOptions]=\"{ standalone: true }\"\r\n\t\t\t\t\t\t\t\t(ngModelChange)=\"onSelectAll($event)\" />\r\n\r\n\t\t\t\t\t\t\t<div class=\"p-orderlist-filter\" [attr.data-pc-section]=\"'filter'\">\r\n\t\t\t\t\t\t\t\t<input\r\n\t\t\t\t\t\t\t\t\t#filter\r\n\t\t\t\t\t\t\t\t\ttype=\"text\"\r\n\t\t\t\t\t\t\t\t\trole=\"textbox\"\r\n\t\t\t\t\t\t\t\t\t(keyup)=\"orderListRef.onFilterKeyup($event)\"\r\n\t\t\t\t\t\t\t\t\t[disabled]=\"orderListRef.disabled\"\r\n\t\t\t\t\t\t\t\t\tclass=\"p-orderlist-filter-input p-inputtext p-component\" />\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<ng-template let-col pTemplate=\"item\">\r\n\t\t\t\t\t\t<aril-checkbox [label]=\"col.value.title\" [formControl]=\"col.controls.checked\" />\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t</p-orderList>\r\n\t\t\t</ng-container>\r\n\r\n\t\t\t<aril-button class=\"col-12\" label=\"Export\" color=\"primary\" (clickEvent)=\"export()\" />\r\n\t\t</aril-form>\r\n\t}\r\n</p-overlayPanel>\r\n", styles: ["::ng-deep aril-table th{min-width:0px!important}\n"] }]
|
|
234
234
|
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.NonNullableFormBuilder }, { type: i3.PrimeNGConfig }, { type: i3.MessageService }, { type: i4.TranslocoService }, { type: i5.SelectionGroupService }], propDecorators: { onPageEvent: [{
|
|
235
235
|
type: Output
|
|
236
236
|
}], selectionEvent: [{
|
|
@@ -251,4 +251,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
|
|
|
251
251
|
}], expandableFields: [{
|
|
252
252
|
type: Input
|
|
253
253
|
}] } });
|
|
254
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC91aS90YWJsZS9zcmMvdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC91aS90YWJsZS9zcmMvdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNOLFNBQVMsRUFDVCxlQUFlLEVBQ2YsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBRU4sU0FBUyxFQUNULE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFxQyxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUcvRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd0QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3BDLE9BQU8sRUFDTixVQUFVLEVBQ1YsU0FBUyxFQUNULE1BQU0sRUFDTixRQUFRLEVBQ1IsY0FBYyxFQUNkLElBQUksRUFDSixRQUFRLEVBQ1IsR0FBRyxFQUNILFNBQVMsRUFDVCxJQUFJLEVBQ0osVUFBVSxFQUNWLE9BQU8sRUFDUCxNQUFNLE1BQU0sQ0FBQztBQUVkLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBR3ZDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDckMsT0FBTyxFQUEwRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDbEgsT0FBTyxFQUFjLG9CQUFvQixFQUFnQixNQUFNLDBCQUEwQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFMUY7Ozs7O0dBS0c7QUFDSCxN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QUksRUFBRSxDQUFDO0lBQ2pCLENBQUM7OEdBeFBXLGNBQWM7a0dBQWQsY0FBYyxzcUlBSVQsb0JBQW9CLGlFQUMxQixZQUFZLDJFQUNaLEtBQUsscUVDckVqQixrMFRBd1BBOzsyRkR6TGEsY0FBYztrQkFMMUIsU0FBUzsrQkFDQyxZQUFZO2dQQUtaLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNnQyxPQUFPO3NCQUE3QyxlQUFlO3VCQUFDLG9CQUFvQjtnQkFDWixFQUFFO3NCQUExQixTQUFTO3VCQUFDLFlBQVk7Z0JBQ0wsUUFBUTtzQkFBekIsU0FBUzt1QkFBQyxLQUFLO2dCQUNQLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHtcclxuXHRDb21wb25lbnQsXHJcblx0Q29udGVudENoaWxkcmVuLFxyXG5cdEV2ZW50RW1pdHRlcixcclxuXHRJbnB1dCxcclxuXHRPdXRwdXQsXHJcblx0U2ltcGxlQ2hhbmdlcyxcclxuXHRWaWV3Q2hpbGQsXHJcblx0ZWZmZWN0LFxyXG5cdGlucHV0XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCwgTm9uTnVsbGFibGVGb3JtQnVpbGRlciwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmltcG9ydCB7IE1lbnVJdGVtLCBNZXNzYWdlU2VydmljZSwgUHJpbWVOR0NvbmZpZyB9IGZyb20gJ3ByaW1lbmcvYXBpJztcclxuaW1wb3J0IHsgT3ZlcmxheVBhbmVsIH0gZnJvbSAncHJpbWVuZy9vdmVybGF5cGFuZWwnO1xyXG5pbXBvcnQgeyBUYWJsZSB9IGZyb20gJ3ByaW1lbmcvdGFibGUnO1xyXG5cclxuaW1wb3J0IHsgVHJhbnNsb2NvU2VydmljZSB9IGZyb20gJ0BuZ25lYXQvdHJhbnNsb2NvJztcclxuaW1wb3J0IHsgc2F2ZUFzIH0gZnJvbSAnZmlsZS1zYXZlcic7XHJcbmltcG9ydCB7XHJcblx0Y2F0Y2hFcnJvcixcclxuXHRjb25jYXRNYXAsXHJcblx0ZmlsdGVyLFxyXG5cdGZpbmFsaXplLFxyXG5cdGZpcnN0VmFsdWVGcm9tLFxyXG5cdGZyb20sXHJcblx0aW50ZXJ2YWwsXHJcblx0bWFwLFxyXG5cdHN3aXRjaE1hcCxcclxuXHR0YWtlLFxyXG5cdHRocm93RXJyb3IsXHJcblx0dG9BcnJheVxyXG59IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgQVBJX0NPTkZJR1MgfSBmcm9tICdhcmlsL2Jvb3QvY29uZmlnL2FwaSc7XHJcbmltcG9ydCB7IFByb3h5VHlwZXMgfSBmcm9tICdhcmlsL2h0dHAnO1xyXG5pbXBvcnQgeyBTZWxlY3Rpb25Hcm91cFNlcnZpY2UgfSBmcm9tICdhcmlsL3RoZW1lL2xheW91dCc7XHJcblxyXG5pbXBvcnQgeyB0cmFubGF0aW9ucyB9IGZyb20gJy4vaTE4bic7XHJcbmltcG9ydCB7IENvbEZvcm0sIENvbHVtbkZpZWxkVmFsdWVNYXAsIEV4cG9ydEZvcm0sIEV4cG9ydE9wdGlvbnMsIEV4cG9ydFJlcXVlc3QsIEV4cG9ydFR5cGUgfSBmcm9tICcuL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBBbGlnblR5cGVzLCBUYWJsZUNvbHVtbkNvbXBvbmVudCwgVGFibGVDb2x1bW5zIH0gZnJvbSAnLi90YWJsZS1jb2x1bW4uY29tcG9uZW50JztcclxuXHJcbi8qIFRPRE8gOlxyXG4gKiBzZXJ2ZXItc2lkZS1wcm94eSAoUHJveHlUeXBlcy5TZXJ2ZXJTaWRlKVxyXG4gKiBzZWFyY2ggJiBjb2x1bSBmaWx0ZXIgJiBzb3J0XHJcbiAqIHBhZ2luYXRpb24gb3BlcmF0aW9uXHJcbiAqIFF1ZXJ5IFNpZ25hbHNcclxuICovXHJcbmNvbnN0IHBhZ2VPcHRpb25zID0gWzEwLCAyMCwgNTAsIDEwMF0gYXMgY29uc3Q7XHJcblxyXG50eXBlIFNlbGVjdGlvblR5cGVzID0gJ3NpbmdsZScgfCAnbXVsdGlwbGUnIHwgbnVsbDtcclxuaW50ZXJmYWNlIElLZWJhYk1lbnVJdGVtIHtcclxuXHRpY29uOiBzdHJpbmc7XHJcblx0bGFiZWw6IHN0cmluZztcclxuXHRvbkNsaWNrOiAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHZvaWQ7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnYXJpbC10YWJsZScsXHJcblx0dGVtcGxhdGVVcmw6ICcuL3RhYmxlLmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZVVybDogJy4vdGFibGUuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUYWJsZUNvbXBvbmVudCB7XHJcblx0QE91dHB1dCgpIG9uUGFnZUV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cdEBPdXRwdXQoKSBzZWxlY3Rpb25FdmVudDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHRAT3V0cHV0KCkgbGF6eUxvYWRFdmVudDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHRAQ29udGVudENoaWxkcmVuKFRhYmxlQ29sdW1uQ29tcG9uZW50KSBjb2x1bW5zITogVGFibGVDb2x1bW5zO1xyXG5cdEBWaWV3Q2hpbGQoT3ZlcmxheVBhbmVsKSBvcCE6IE92ZXJsYXlQYW5lbDtcclxuXHRAVmlld0NoaWxkKFRhYmxlKSB0YWJsZVJlZiE6IFRhYmxlO1xyXG5cdEBJbnB1dCgpIGtlYmFiTWVudUl0ZW1zOiBNZW51SXRlbVtdID0gW107XHJcblx0QElucHV0KCkgZXhwYW5kYWJsZUZpZWxkcyE6IHN0cmluZztcclxuXHJcblx0ZGF0YSA9IGlucHV0LnJlcXVpcmVkPGFueVtdPigpO1xyXG5cdGNoZWNrYm94U2VsZWN0aW9uID0gaW5wdXQ8Ym9vbGVhbj4oKTtcclxuXHRoZWFkZXJDaGVja2JveFNlbGVjdGlvbiA9IGlucHV0PGJvb2xlYW4+KCk7XHJcblx0cGFnZVNpemUgPSBpbnB1dDwodHlwZW9mIHBhZ2VPcHRpb25zKVtudW1iZXJdPigxMCk7XHJcblx0cHJveHkgPSBpbnB1dDxQcm94eVR5cGVzPihQcm94eVR5cGVzLk5hdGl2ZSk7XHJcblx0c2hvd0Zvb3RlciA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHR0QWxpZ24gPSBpbnB1dDxBbGlnblR5cGVzPignbGVmdCcpO1xyXG5cdHNlbGVjdGlvbk1vZGUgPSBpbnB1dDxTZWxlY3Rpb25UeXBlcz4oJ3NpbmdsZScpO1xyXG5cdHNob3dTZWFyY2hUb29sID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XHJcblx0c2hvd0V4cG9ydFRvb2wgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcclxuXHRleHBvcnRGaWxlTmFtZSA9IGlucHV0PHN0cmluZz4oJycpO1xyXG5cdG5vRGF0YUZvdW5kTGFiZWwgPSBpbnB1dDxzdHJpbmc+KCdObyBEYXRhIEZvdW5kJyk7XHJcblx0dGFibGVIZWFkZXIgPSBpbnB1dDxzdHJpbmc+KCcnKTtcclxuXHRzaG93VGFibGVIZWFkZXIgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcblx0aXNGaXJzdFJvd1NlbGVjdGVkID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cdGRhdGFLZXkgPSBpbnB1dDxzdHJpbmc+KCcnKTtcclxuXHRzZWxlY3RlZFJvd3NJbnB1dCA9IGlucHV0PGFueT4oW10pO1xyXG5cdGlzTGF6eSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHR0b3RhbFJlY29yZHMgPSBpbnB1dDxudW1iZXI+KDApO1xyXG5cdHBhZ2luYXRvciA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xyXG5cdHBhZ2luYXRvckRyb3Bkb3duQXBwZW5kVG8gPSBpbnB1dDxzdHJpbmc+KCdib2R5Jyk7IC8vICdib2R5J3wgJ215RGl2J1xyXG5cclxuXHRpc1Nob3dOb0RhdGFGb3VuZE1lc3NhZ2UgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcclxuXHQvKipcclxuXHQgKiBAc2VlIHtAbGluayBFeHBvcnRPcHRpb25zfVxyXG5cdCAqL1xyXG5cdGV4cG9ydENvbmZpZyA9IGlucHV0PEV4cG9ydE9wdGlvbnM+KCk7XHJcblxyXG5cdGV4cG9ydEZvcm0hOiBGb3JtR3JvdXA8RXhwb3J0Rm9ybT47XHJcblx0ZXhwb3J0VHlwZU9wdGlvbnMgPSBbXHJcblx0XHR7IGtleTogRXhwb3J0VHlwZS5FeGNlbCwgbGFiZWw6ICdFeGNlbCcsIGZpbGVFeHRlbnNpb246ICcueGxzeCcgfSxcclxuXHRcdHsga2V5OiBFeHBvcnRUeXBlLkNzdiwgbGFiZWw6ICdDc3YnLCBmaWxlRXh0ZW5zaW9uOiAnLmNzdicgfVxyXG5cdF07XHJcblxyXG5cdGZpbHRlclRleHQhOiBzdHJpbmc7XHJcblx0aXNBbGxTZWxlY3RlZCA9IHRydWU7XHJcblx0c2VsZWN0ZWRSb3dzOiBhbnk7XHJcblx0cGFnZU9wdGlvbnMgPSBwYWdlT3B0aW9ucztcclxuXHRleHBvcnRDb2x1bW5zOiBBcnJheTx7IHRpdGxlOiBzdHJpbmc7IGRhdGFLZXk6IHN0cmluZyB9PiA9IFtdO1xyXG5cdGlzQ29sdW1uRXhwYW5kTW9kZSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHRpc1Jlc2l6YWJsZUNvbHVtbnMgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcblx0aXNTb3J0YWJsZSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHRoYW5kbGVkU2VsZWN0aW9uTW9kZTogU2VsZWN0aW9uVHlwZXMgPSAnc2luZ2xlJztcclxuXHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcblx0XHRwcml2YXRlIGZiOiBOb25OdWxsYWJsZUZvcm1CdWlsZGVyLFxyXG5cdFx0cHJpdmF0ZSBwcmltZW5nQ29uZmlnOiBQcmltZU5HQ29uZmlnLFxyXG5cdFx0cHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXHJcblx0XHRwcml2YXRlIHRyYW5zbG9jb1NlcnZpY2U6IFRyYW5zbG9jb1NlcnZpY2UsXHJcblx0XHRwcml2YXRlIHNlbGVjdGlvbkdyb3VwU2VydmljZTogU2VsZWN0aW9uR3JvdXBTZXJ2aWNlXHJcblx0KSB7XHJcblx0XHR0aGlzLnByaW1lbmdDb25maWcuc2V0VHJhbnNsYXRpb24odHJhbmxhdGlvbnMpO1xyXG5cclxuXHRcdGVmZmVjdCgoKSA9PiB7XHJcblx0XHRcdGlmICh0aGlzLmlzRmlyc3RSb3dTZWxlY3RlZCgpICYmIHRoaXMuZGF0YSgpKSB7XHJcblx0XHRcdFx0dGhpcy5zZWxlY3RlZFJvd3MgPSB0aGlzLmRhdGEoKVswXTtcclxuXHRcdFx0XHR0aGlzLnNlbGVjdGlvbkV2ZW50LmVtaXQodGhpcy5zZWxlY3RlZFJvd3MpO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHJcblx0XHRlZmZlY3QoKCkgPT4ge1xyXG5cdFx0XHRpZiAodGhpcy5zZWxlY3RlZFJvd3NJbnB1dCgpKSB7XHJcblx0XHRcdFx0dGhpcy5zZWxlY3RlZFJvd3MgPSB0aGlzLnNlbGVjdGVkUm93c0lucHV0KCk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cclxuXHRcdGVmZmVjdCgoKSA9PiB7XHJcblx0XHRcdGlmICh0aGlzLmV4cG9ydENvbmZpZygpKSB7XHJcblx0XHRcdFx0dGhpcy5jcmVhdGVFeHBvcnRGb3JtKCk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cclxuXHRcdGVmZmVjdCgoKSA9PiB7XHJcblx0XHRcdGlmICh0aGlzLmNoZWNrYm94U2VsZWN0aW9uKCkpIHRoaXMuaGFuZGxlZFNlbGVjdGlvbk1vZGUgPSBudWxsO1xyXG5cdFx0XHRlbHNlIHRoaXMuaGFuZGxlZFNlbGVjdGlvbk1vZGUgPSB0aGlzLnNlbGVjdGlvbk1vZGUoKTtcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBpc0luaXRpYWxMb2FkID0gdHJ1ZTtcclxuXHJcblx0bmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG5cdFx0aWYgKGNoYW5nZXNbJ2RhdGEnXSAmJiBjaGFuZ2VzWydkYXRhJ10uY3VycmVudFZhbHVlICE9PSBjaGFuZ2VzWydkYXRhJ10ucHJldmlvdXNWYWx1ZSkge1xyXG5cdFx0XHRpZiAodGhpcy5pc0luaXRpYWxMb2FkKSB7XHJcblx0XHRcdFx0dGhpcy5pc0luaXRpYWxMb2FkID0gZmFsc2U7XHJcblx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRjb25zdCBjdXJyZW50RGF0YSA9IGNoYW5nZXNbJ2RhdGEnXS5jdXJyZW50VmFsdWU7XHJcblx0XHRcdGlmICh0aGlzLmlzU2hvd05vRGF0YUZvdW5kTWVzc2FnZSgpICYmICFjdXJyZW50RGF0YT8ubGVuZ3RoKSB7XHJcblx0XHRcdFx0dGhpcy5tZXNzYWdlU2VydmljZS5hZGQoe1xyXG5cdFx0XHRcdFx0c2V2ZXJpdHk6ICdpbmZvJyxcclxuXHRcdFx0XHRcdHN1bW1hcnk6IHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ21lc3NhZ2VzLm5vRGF0YVRvRGlzcGxheScpLFxyXG5cdFx0XHRcdFx0a2V5OiAndG9hc3Qtcm9vdCdcclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBjcmVhdGVFeHBvcnRGb3JtKCk6IHZvaWQge1xyXG5cdFx0Y29uc3QgeyBleHBvcnRMYWJlbCB9ID0gdGhpcy5leHBvcnRDb25maWcoKSE7XHJcblxyXG5cdFx0dGhpcy5leHBvcnRGb3JtID0gdGhpcy5mYi5ncm91cDxFeHBvcnRGb3JtPih7XHJcblx0XHRcdGV4cG9ydFR5cGU6IHRoaXMuZmIuY29udHJvbChFeHBvcnRUeXBlLkV4Y2VsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcclxuXHRcdFx0ZXhwb3J0TGFiZWw6IHRoaXMuZmIuY29udHJvbChleHBvcnRMYWJlbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXHJcblx0XHRcdGNvbHVtbnM6IHRoaXMuZmIuYXJyYXk8Rm9ybUdyb3VwPENvbEZvcm0+PihbXSlcclxuXHRcdH0pO1xyXG5cclxuXHRcdHRoaXMuY29sdW1ucy5fcmVzdWx0c1xyXG5cdFx0XHQuZmlsdGVyKChjb2wpID0+IGNvbC50eXBlKCkgIT09ICdvcGVyYXRpb25zJylcclxuXHRcdFx0LmZpbHRlcigoY29sKSA9PiB7XHJcblx0XHRcdFx0Y29uc3QgZXhwb3J0Q29uZmlnID0gdGhpcy5leHBvcnRDb25maWcoKTtcclxuXHRcdFx0XHRjb25zdCBleGNsdWRlZEZpZWxkcyA9IGV4cG9ydENvbmZpZz8uZXhjbHVkZWRGaWVsZHMgPz8gW107XHJcblxyXG5cdFx0XHRcdHJldHVybiAhZXhjbHVkZWRGaWVsZHMuaW5jbHVkZXMoY29sLmZpZWxkKCkpO1xyXG5cdFx0XHR9KVxyXG5cdFx0XHQuZm9yRWFjaCgoY29sKSA9PiB7XHJcblx0XHRcdFx0Y29uc3QgY29sR3JvdXAgPSB0aGlzLmZiLmdyb3VwPENvbEZvcm0+KHtcclxuXHRcdFx0XHRcdGNoZWNrZWQ6IHRoaXMuZmIuY29udHJvbCh0cnVlKSxcclxuXHRcdFx0XHRcdHRpdGxlOiB0aGlzLmZiLmNvbnRyb2woY29sLmhlYWRlcigpKSxcclxuXHRcdFx0XHRcdGRhdGFLZXk6IHRoaXMuZmIuY29udHJvbChjb2wuZmllbGQoKSlcclxuXHRcdFx0XHR9KTtcclxuXHJcblx0XHRcdFx0dGhpcy5leHBvcnRGb3JtLmNvbnRyb2xzLmNvbHVtbnMucHVzaChjb2xHcm91cCk7XHJcblx0XHRcdH0pO1xyXG5cclxuXHRcdHRoaXMuZXhwb3J0Rm9ybS5jb250cm9scy5jb2x1bW5zLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKHQpID0+ICh0aGlzLmlzQWxsU2VsZWN0ZWQgPSB0LmV2ZXJ5KChhKSA9PiBhLmNoZWNrZWQpKSk7XHJcblx0fVxyXG5cclxuXHRnZXQgaG9zdFVybCgpOiBzdHJpbmcge1xyXG5cdFx0cmV0dXJuIGAke2dsb2JhbFRoaXMubG9jYXRpb24ucHJvdG9jb2x9Ly8ke2dsb2JhbFRoaXMubG9jYXRpb24uaG9zdH0vaHRtbC9gO1xyXG5cdH1cclxuXHJcblx0YXN5bmMgZXhwb3J0KCkge1xyXG5cdFx0Y29uc3QgeyBleHBvcnRUeXBlLCBleHBvcnRMYWJlbCwgY29sdW1ucyB9ID0gdGhpcy5leHBvcnRGb3JtLnZhbHVlO1xyXG5cdFx0Y29uc3QgeyByb3V0ZSwgcGFyYW1zLCBjb2x1bW5GaWVsZFZhbHVlTWFwLCBkYXRlQ29sdW1uRm9ybWF0TWFwLCBjb21wdXRlZENvbHVtbk1hcCB9ID0gdGhpcy5leHBvcnRDb25maWcoKSE7XHJcblxyXG5cdFx0Y29uc3QgY2hlY2tlZENvbHVtbnMgPSBjb2x1bW5zIS5maWx0ZXIoKHQpID0+IHQuY2hlY2tlZCk7XHJcblx0XHRjb25zdCBmaWxlRXh0ZW5zaW9uID0gdGhpcy5leHBvcnRUeXBlT3B0aW9ucy5maW5kKCh0KSA9PiB0LmtleSA9PT0gZXhwb3J0VHlwZSk/LmZpbGVFeHRlbnNpb247XHJcblxyXG5cdFx0bGV0IGNvbHVtbkZpZWxkVmFsdWVNYXBPYmo6IENvbHVtbkZpZWxkVmFsdWVNYXAgfCB1bmRlZmluZWQ7XHJcblxyXG5cdFx0aWYgKGNvbHVtbkZpZWxkVmFsdWVNYXApIHtcclxuXHRcdFx0Y29uc3QgdGVtcE9iaiA9IHt9IGFzIENvbHVtbkZpZWxkVmFsdWVNYXA7XHJcblxyXG5cdFx0XHRhd2FpdCBmaXJzdFZhbHVlRnJvbShcclxuXHRcdFx0XHRmcm9tKE9iamVjdC5lbnRyaWVzKGNvbHVtbkZpZWxkVmFsdWVNYXApKS5waXBlKFxyXG5cdFx0XHRcdFx0Y29uY2F0TWFwKChbZmllbGROYW1lLCB2YWx1ZV0pID0+IHtcclxuXHRcdFx0XHRcdFx0aWYgKFxyXG5cdFx0XHRcdFx0XHRcdCF0aGlzLnNlbGVjdGlvbkdyb3VwU2VydmljZS5zZWxlY3Rpb25Hcm91cHMoKVtgJHt2YWx1ZS5ncm91cE5hbWV9fiR7dmFsdWUucGFyZW50U2VsZWN0aW9uS2V5ID8/ICdBTEwnfWBdXHJcblx0XHRcdFx0XHRcdCkge1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMuc2VsZWN0aW9uR3JvdXBTZXJ2aWNlLmZldGNoRW51bSh2YWx1ZS5ncm91cE5hbWUsIHZhbHVlLnBhcmVudFNlbGVjdGlvbktleSk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHRcdGNvbnN0IGtleSA9IHZhbHVlLmdyb3VwTmFtZSArICd+JyArICh2YWx1ZS5wYXJlbnRTZWxlY3Rpb25LZXkgPz8gJ0FMTCcpO1xyXG5cclxuXHRcdFx0XHRcdFx0cmV0dXJuIGludGVydmFsKDEwKS5waXBlKFxyXG5cdFx0XHRcdFx0XHRcdGZpbHRlcigoKSA9PiAhdGhpcy5zZWxlY3Rpb25Hcm91cFNlcnZpY2UuaXNMb2FkaW5nKGtleSkpLFxyXG5cdFx0XHRcdFx0XHRcdHRha2UoMSksXHJcblx0XHRcdFx0XHRcdFx0bWFwKCgpID0+IHtcclxuXHRcdFx0XHRcdFx0XHRcdGNvbnN0IHNlbGVjdGlvbkdyb3VwID0gdGhpcy5zZWxlY3Rpb25Hcm91cFNlcnZpY2Uuc2VsZWN0aW9uR3JvdXBzKClba2V5XTtcclxuXHRcdFx0XHRcdFx0XHRcdGlmIChzZWxlY3Rpb25Hcm91cCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR0ZW1wT2JqW2ZpZWxkTmFtZV0gPSBzZWxlY3Rpb25Hcm91cC5zZWxlY3Rpb25JdGVtcy5yZWR1Y2UoKGFjYzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiwgaXRlbSkgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGFjY1tpdGVtLnNlbGVjdGlvbktleV0gPSBpdGVtLnNlbGVjdGlvbkRpc3BsYXk7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuIGFjYztcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG5cdFx0XHRcdFx0XHRcdFx0XHR9LCB7fSkgYXMgYW55O1xyXG5cdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHRcdCk7XHJcblx0XHRcdFx0XHR9KSxcclxuXHRcdFx0XHRcdHRvQXJyYXkoKSxcclxuXHRcdFx0XHRcdGZpbmFsaXplKCgpID0+IHtcclxuXHRcdFx0XHRcdFx0Y29sdW1uRmllbGRWYWx1ZU1hcE9iaiA9IHRlbXBPYmo7XHJcblx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdClcclxuXHRcdFx0KTtcclxuXHRcdH1cclxuXHJcblx0XHRjb25zdCByZXF1ZXN0OiBFeHBvcnRSZXF1ZXN0ID0ge1xyXG5cdFx0XHRyb3V0ZTogcm91dGUhLFxyXG5cdFx0XHRwYXJhbXM6IHBhcmFtcyEsXHJcblx0XHRcdGV4cG9ydFR5cGU6IGV4cG9ydFR5cGUhLFxyXG5cdFx0XHRleHBvcnRMYWJlbDogZXhwb3J0TGFiZWwhLFxyXG5cdFx0XHRjb21wdXRlZENvbHVtbk1hcDogY29tcHV0ZWRDb2x1bW5NYXAhLFxyXG5cdFx0XHRkYXRlQ29sdW1uRm9ybWF0TWFwOiBkYXRlQ29sdW1uRm9ybWF0TWFwISxcclxuXHRcdFx0Y29sdW1uRmllbGRWYWx1ZU1hcDogY29sdW1uRmllbGRWYWx1ZU1hcE9iaiEsXHJcblx0XHRcdGhlYWRlck5hbWVzOiBjaGVja2VkQ29sdW1ucy5tYXAoKGNvbCkgPT4gY29sLnRpdGxlISksXHJcblx0XHRcdG91dHB1dEZpZWxkczogY2hlY2tlZENvbHVtbnMubWFwKChjb2wpID0+IGNvbC5kYXRhS2V5ISlcclxuXHRcdH07XHJcblxyXG5cdFx0Y29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbShcclxuXHRcdFx0dGhpcy5odHRwLnBvc3Q8eyBzdWNjZXNzOiBib29sZWFuOyB1cmw6IHN0cmluZyB9PihBUElfQ09ORklHUy5hcGkgKyAnL2JhdGNoLWV4cG9ydGVycy9leHBvcnQnLCByZXF1ZXN0KS5waXBlKFxyXG5cdFx0XHRcdHN3aXRjaE1hcCgocmVzKSA9PlxyXG5cdFx0XHRcdFx0dGhpcy5odHRwLmdldChBUElfQ09ORklHUy5hcGkgKyAnL2J1Y2tldC1vYmplY3RzL2Rvd25sb2FkJywge1xyXG5cdFx0XHRcdFx0XHRwYXJhbXM6IHsgdXJsOiByZXMudXJsIH0sXHJcblx0XHRcdFx0XHRcdHJlc3BvbnNlVHlwZTogJ2Jsb2InXHJcblx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdCksXHJcblx0XHRcdFx0Y2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcclxuXHRcdFx0XHRcdGlmIChlcnJvci5zdGF0dXMgPT09IDUwNCkge1xyXG5cdFx0XHRcdFx0XHR3aW5kb3cubG9jYXRpb24uaHJlZiA9IGAke3RoaXMuaG9zdFVybH1tbmcvIy9tbmcvY29udHJvbC1tYW5hZ2VtZW50L2V4cG9ydC1yZXF1ZXN0c2A7XHJcblx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRjb25zb2xlLmVycm9yKCdIYXRhIG9sdcWfdHU6JywgZXJyb3IpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0cmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZXJyb3IpO1xyXG5cdFx0XHRcdH0pXHJcblx0XHRcdClcclxuXHRcdCk7XHJcblxyXG5cdFx0c2F2ZUFzKHJlc3BvbnNlLCBgJHtleHBvcnRMYWJlbH0tJHtuZXcgRGF0ZSgpLmdldFRpbWUoKX0ke2ZpbGVFeHRlbnNpb259YCk7XHJcblx0fVxyXG5cclxuXHRvblNlbGVjdEFsbCh2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xyXG5cdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmV4cG9ydEZvcm0uY29udHJvbHMuY29sdW1ucy5sZW5ndGg7IGkrKykge1xyXG5cdFx0XHRjb25zdCBmb3JtR3JvdXAgPSB0aGlzLmV4cG9ydEZvcm0uY29udHJvbHMuY29sdW1ucy5hdChpKTtcclxuXHRcdFx0Zm9ybUdyb3VwLmNvbnRyb2xzLmNoZWNrZWQuc2V0VmFsdWUodmFsdWUpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0dG9nZ2xlRXhwb3J0ID0gKGV2ZW50OiBFdmVudCk6IHZvaWQgPT4gdGhpcy5vcC50b2dnbGUoZXZlbnQpO1xyXG5cclxuXHRoYW5kbGVMYXp5TG9hZEV2ZW50KGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuXHRcdGNvbnN0IG5ld0V2ZW50RGF0YSA9IHtcclxuXHRcdFx0cGFnZXI6IHtcclxuXHRcdFx0XHRwYWdlU2l6ZTogZXZlbnQucm93cyxcclxuXHRcdFx0XHRwYWdlTnVtYmVyOiBldmVudC5maXJzdCAvIGV2ZW50LnJvd3MgKyAxXHJcblx0XHRcdH0sXHJcblx0XHRcdHNvcnQ6IGV2ZW50Lm11bHRpU29ydE1ldGEsXHJcblx0XHRcdGZpbHRlcjogZXZlbnQuZmlsdGVyc1xyXG5cdFx0fTtcclxuXHRcdHRoaXMubGF6eUxvYWRFdmVudC5lbWl0KG5ld0V2ZW50RGF0YSk7XHJcblx0fVxyXG5cclxuXHRjbGVhcigpOiB2b2lkIHtcclxuXHRcdHRoaXMudGFibGVSZWYudmFsdWUgPSBbXTtcclxuXHRcdHRoaXMudGFibGVSZWYuY2xlYXIoKTtcclxuXHRcdHRoaXMub3A/LmhpZGUoKTtcclxuXHR9XHJcbn1cclxuIiwiPHAtdGFibGVcclxuXHQjcmVmXHJcblx0W3ZhbHVlXT1cImRhdGEoKVwiXHJcblx0W2RhdGFLZXldPVwiZGF0YUtleSgpXCJcclxuXHRbY29sdW1uc109XCJjb2x1bW5zLl9yZXN1bHRzXCJcclxuXHRbcm93c109XCJwYWdlU2l6ZSgpXCJcclxuXHRbcm93SG92ZXJdPVwidHJ1ZVwiXHJcblx0W3BhZ2luYXRvcl09XCJwYWdpbmF0b3IoKVwiXHJcblx0W2xhenldPVwiaXNMYXp5KClcIlxyXG5cdFtsYXp5TG9hZE9uSW5pdF09XCJmYWxzZVwiXHJcblx0W3RvdGFsUmVjb3Jkc109XCJ0b3RhbFJlY29yZHMoKVwiXHJcblx0W3Jvd3NQZXJQYWdlT3B0aW9uc109XCJbMTAsIDIwLCA1MCwgMTAwXVwiXHJcblx0W2ZpbHRlckRlbGF5XT1cIjBcIlxyXG5cdHNvcnRNb2RlPVwibXVsdGlwbGVcIlxyXG5cdFsoc2VsZWN0aW9uKV09XCJzZWxlY3RlZFJvd3NcIlxyXG5cdChvblBhZ2UpPVwib25QYWdlRXZlbnQuZW1pdCgkZXZlbnQpXCJcclxuXHQob25MYXp5TG9hZCk9XCJoYW5kbGVMYXp5TG9hZEV2ZW50KCRldmVudClcIlxyXG5cdChzZWxlY3Rpb25DaGFuZ2UpPVwic2VsZWN0aW9uRXZlbnQuZW1pdChzZWxlY3RlZFJvd3MpXCJcclxuXHRbc2hvd0N1cnJlbnRQYWdlUmVwb3J0XT1cInRydWVcIlxyXG5cdFtzZWxlY3Rpb25Nb2RlXT1cInNlbGVjdGlvbk1vZGUoKVwiXHJcblx0W2NvbHVtblJlc2l6ZU1vZGVdPVwiaXNDb2x1bW5FeHBhbmRNb2RlKCkgPyAnZXhwYW5kJyA6ICcnXCJcclxuXHRbcmVzaXphYmxlQ29sdW1uc109XCJpc1Jlc2l6YWJsZUNvbHVtbnMoKVwiXHJcblx0Y3VycmVudFBhZ2VSZXBvcnRUZW1wbGF0ZT1cIlRvcGxhbSA6IHt0b3RhbFJlY29yZHN9IGthecSxdCB8IFNheWZhIDoge2N1cnJlbnRQYWdlfSAvIHt0b3RhbFBhZ2VzfVwiXHJcblx0c3R5bGVDbGFzcz1cInAtZGF0YXRhYmxlLXNtXCJcclxuXHRbcGFnaW5hdG9yRHJvcGRvd25BcHBlbmRUb109XCJwYWdpbmF0b3JEcm9wZG93bkFwcGVuZFRvKClcIj5cclxuXHQ8IS0tQGlmICh0YWJsZUhlYWRlcigpIHx8IHNob3dTZWFyY2hUb29sKCkgfHwgc2hvd0V4cG9ydFRvb2woKSkge1xyXG5cdFx0PG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImNhcHRpb25cIj5cclxuXHRcdFx0PGRpdiBjbGFzcz1cImZsZXggc3BhY2UtYmV0d2VlblwiPlxyXG5cdFx0XHRcdDxkaXYgc3R5bGU9XCJmbGV4OiBhdXRvXCI+XHJcblx0XHRcdFx0XHRAaWYgKHRhYmxlSGVhZGVyKCkubGVuZ3RoKSB7XHJcblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJ0YWJsZS1oZWFkZXJcIj5cclxuXHRcdFx0XHRcdFx0XHR7eyB0YWJsZUhlYWRlcigpIH19XHJcblx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdDxkaXYgc3R5bGU9XCJmbGV4OiBhdXRvXCI+XHJcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG5cdFx0XHRcdFx0XHRAaWYgKGZhbHNlKSB7XHJcblx0XHRcdFx0XHRcdFx0PGFyaWwtdGV4dFxyXG5cdFx0XHRcdFx0XHRcdFx0aWNvbj1cIlNFQVJDSFwiXHJcblx0XHRcdFx0XHRcdFx0XHRpY29uUG9zPVwibGVmdFwiXHJcblx0XHRcdFx0XHRcdFx0XHRwbGFjZWhvbGRlcj1cIkFyYW1hXCJcclxuXHRcdFx0XHRcdFx0XHRcdFtuZ01vZGVsXT1cImZpbHRlclRleHRcIlxyXG5cdFx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJtci0xXCJcclxuXHRcdFx0XHRcdFx0XHRcdChuZ01vZGVsQ2hhbmdlKT1cInJlZi5maWx0ZXJHbG9iYWwoJGV2ZW50LnRhcmdldC52YWx1ZSwgJ2NvbnRhaW5zJylcIj5cclxuXHRcdFx0XHRcdFx0XHQ8L2FyaWwtdGV4dD5cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRAaWYgKGZhbHNlKSB7XHJcblx0XHRcdFx0XHRcdFx0PGFyaWwtYnV0dG9uXHJcblx0XHRcdFx0XHRcdFx0XHRzaXplPVwic21cIlxyXG5cdFx0XHRcdFx0XHRcdFx0aWNvbj1cIkZJTEVfRVhDRUxcIlxyXG5cdFx0XHRcdFx0XHRcdFx0Y29sb3I9XCJwcmltYXJ5XCJcclxuXHRcdFx0XHRcdFx0XHRcdHBUb29sdGlwPVwiWExTXCJcclxuXHRcdFx0XHRcdFx0XHRcdHRvb2x0aXBQb3NpdGlvbj1cInRvcFwiXHJcblx0XHRcdFx0XHRcdFx0XHQoY2xpY2tFdmVudCk9XCJleGNlbEV4cG9ydCgpXCJcclxuXHRcdFx0XHRcdFx0XHRcdGNsYXNzPVwibXItMVwiPlxyXG5cdFx0XHRcdFx0XHRcdDwvYXJpbC1idXR0b24+XHJcblx0XHRcdFx0XHRcdFx0PGFyaWwtYnV0dG9uXHJcblx0XHRcdFx0XHRcdFx0XHRzaXplPVwic21cIlxyXG5cdFx0XHRcdFx0XHRcdFx0aWNvbj1cIkZJTEVfUERGXCJcclxuXHRcdFx0XHRcdFx0XHRcdGNvbG9yPVwicHJpbWFyeVwiXHJcblx0XHRcdFx0XHRcdFx0XHRwVG9vbHRpcD1cIlBERlwiXHJcblx0XHRcdFx0XHRcdFx0XHR0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxyXG5cdFx0XHRcdFx0XHRcdFx0KGNsaWNrRXZlbnQpPVwiZXhwb3J0UGRmKClcIj5cclxuXHRcdFx0XHRcdFx0XHQ8L2FyaWwtYnV0dG9uPlxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdEBpZiAoZGF0YSgpICYmIGtlYmFiTWVudUl0ZW1zLmxlbmd0aCA+IDAgKSB7XHJcblx0XHRcdFx0XHRcdFx0PGRpdiB0b29scyBzdHlsZT1cInBhZGRpbmc6IDRweDttYXJnaW4tbGVmdDogNHB4O2JvcmRlcjoxcHggc29saWQgIzYzNjZmMTtib3JkZXItcmFkaXVzOiA2cHg7YmFja2dyb3VuZC1jb2xvcjogIzYzNjZmMTsgY29sb3I6IHdoaXRlO1wiID5cclxuXHRcdFx0XHRcdFx0XHRcdDxpXHJcblx0XHRcdFx0XHRcdFx0XHRcdFthdHRyLnJvbGVdPVwiJ25vbmUnXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJwaSBtci0xIGhlYWRlci1pY29uIHBpLWVsbGlwc2lzLXZcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQoY2xpY2spPVwiYnVsa09wZXJhdGlvbnMudG9nZ2xlKCRldmVudCk7XCI+PC9pPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHAtbWVudVxyXG5cdFx0XHRcdFx0XHRcdFx0XHQjYnVsa09wZXJhdGlvbnNcclxuXHRcdFx0XHRcdFx0XHRcdFx0W3BvcHVwXT1cInRydWVcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRbbW9kZWxdPVwia2ViYWJNZW51SXRlbXNcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRzdHlsZUNsYXNzPVwiei1pbmRleDogOTk5ODg5OTtcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRhcHBlbmRUbz1cImJvZHlcIj48L3AtbWVudT5cclxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHR9LS0+XHJcblxyXG5cdDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJoZWFkZXJcIiBsZXQtY29sdW1ucz5cclxuXHRcdDx0cj5cclxuXHRcdFx0QGlmIChjaGVja2JveFNlbGVjdGlvbigpKSB7XHJcblx0XHRcdFx0PHRoPlxyXG5cdFx0XHRcdFx0QGlmIChoZWFkZXJDaGVja2JveFNlbGVjdGlvbigpKSB7XHJcblx0XHRcdFx0XHRcdDxwLXRhYmxlSGVhZGVyQ2hlY2tib3g+PC9wLXRhYmxlSGVhZGVyQ2hlY2tib3g+XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0PC90aD5cclxuXHRcdFx0fVxyXG5cdFx0XHRAZm9yIChjb2x1bW4gb2YgY29sdW1uczsgdHJhY2sgJGluZGV4KSB7XHJcblx0XHRcdFx0QGlmIChjb2x1bW4udHlwZSgpID09PSAnb3BlcmF0aW9ucycpIHtcclxuXHRcdFx0XHRcdDx0aD5cclxuXHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlclwiPsSwxZ9sZW1sZXI8L2Rpdj5cclxuXHRcdFx0XHRcdDwvdGg+XHJcblx0XHRcdFx0fSBAZWxzZSB7XHJcblx0XHRcdFx0XHRAaWYgKGlzUmVzaXphYmxlQ29sdW1ucygpKSB7XHJcblx0XHRcdFx0XHRcdDx0aFxyXG5cdFx0XHRcdFx0XHRcdFtwU29ydGFibGVDb2x1bW5dPVwiY29sdW1uLmZpZWxkKClcIlxyXG5cdFx0XHRcdFx0XHRcdFtuZ1N0eWxlXT1cInsgd2lkdGg6IGNvbHVtbi53aWR0aCgpID8gY29sdW1uLndpZHRoKCkgOiAnYXV0bycgfVwiXHJcblx0XHRcdFx0XHRcdFx0cFJlc2l6YWJsZUNvbHVtbj5cclxuXHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIj5cclxuXHRcdFx0XHRcdFx0XHRcdHt7IGNvbHVtbi5oZWFkZXIoKSB9fVxyXG5cdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImZsZXhcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0QGlmIChjb2x1bW4uaXNTaG93SGVhZGVyVG9vbHRpcCgpKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PGlcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHN0eWxlPVwiY29sb3I6IGdyZWVuOyBwYWRkaW5nLXRvcDogNHB4OyBwYWRkaW5nLWxlZnQ6IDRweFwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjbGFzcz1cInBpIHBpLWluZm8tY2lyY2xlXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFtwVG9vbHRpcF09XCJjb2x1bW4udG9vbHRpcFRlbXBsYXRlKClcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0dG9vbHRpcFBvc2l0aW9uPVwidG9wXCI+PC9pPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHRcdEBpZiAoIWlzTGF6eSgpKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PHAtc29ydEljb24gW2ZpZWxkXT1cImNvbHVtbi5maWVsZCgpXCI+PC9wLXNvcnRJY29uPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0PC90aD5cclxuXHRcdFx0XHRcdH0gQGVsc2UgaWYgKGlzU29ydGFibGUoKSkge1xyXG5cdFx0XHRcdFx0XHQ8dGhcclxuXHRcdFx0XHRcdFx0XHRbcFNvcnRhYmxlQ29sdW1uXT1cImNvbHVtbi5maWVsZCgpXCJcclxuXHRcdFx0XHRcdFx0XHRbbmdTdHlsZV09XCJ7IHdpZHRoOiBjb2x1bW4ud2lkdGgoKSA/IGNvbHVtbi53aWR0aCgpIDogJ2F1dG8nIH1cIlxyXG5cdFx0XHRcdFx0XHRcdHN0eWxlPVwibWluLXdpZHRoOiAxNzBweFwiPlxyXG5cdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0e3sgY29sdW1uLmhlYWRlcigpIH19XHJcblx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleFwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRAaWYgKGNvbHVtbi5pc1Nob3dIZWFkZXJUb29sdGlwKCkpIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8aVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0c3R5bGU9XCJjb2xvcjogZ3JlZW47IHBhZGRpbmctdG9wOiA0cHg7IHBhZGRpbmctbGVmdDogNHB4XCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNsYXNzPVwicGkgcGktaW5mby1jaXJjbGVcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0W3BUb29sdGlwXT1cImNvbHVtbi50b29sdGlwVGVtcGxhdGUoKVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0b29sdGlwUG9zaXRpb249XCJ0b3BcIj48L2k+XHJcblx0XHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHAtc29ydEljb24gW2ZpZWxkXT1cImNvbHVtbi5maWVsZCgpXCI+PC9wLXNvcnRJY29uPlxyXG5cdFx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdDwvdGg+XHJcblx0XHRcdFx0XHR9IEBlbHNlIHtcclxuXHRcdFx0XHRcdFx0PHRoIFtuZ1N0eWxlXT1cInsgd2lkdGg6IGNvbHVtbi53aWR0aCgpID8gY29sdW1uLndpZHRoKCkgOiAnYXV0bycgfVwiIHN0eWxlPVwibWluLXdpZHRoOiAxNzBweFwiPlxyXG5cdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0e3sgY29sdW1uLmhlYWRlcigpIH19XHJcblx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleFwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRAaWYgKGNvbHVtbi5pc1Nob3dIZWFkZXJUb29sdGlwKCkpIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8aVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0c3R5bGU9XCJjb2xvcjogZ3JlZW47IHBhZGRpbmctdG9wOiA0cHg7IHBhZGRpbmctbGVmdDogNHB4XCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNsYXNzPVwicGkgcGktaW5mby1jaXJjbGVcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0W3BUb29sdGlwXT1cImNvbHVtbi50b29sdGlwVGVtcGxhdGUoKVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0b29sdGlwUG9zaXRpb249XCJ0b3BcIj48L2k+XHJcblx0XHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHQ8L3RoPlxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0PC90cj5cclxuXHQ8L25nLXRlbXBsYXRlPlxyXG5cclxuXHQ8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiYm9keVwiIGxldC1pdGVtIGxldC1jb2x1bW5zPVwiY29sdW1uc1wiPlxyXG5cdFx0QGlmIChoYW5kbGVkU2VsZWN0aW9uTW9kZSkge1xyXG5cdFx0XHQ8dHIgW3BTZWxlY3RhYmxlUm93XT1cIml0ZW1cIj5cclxuXHRcdFx0XHRAZm9yIChjb2x1bW4gb2YgY29sdW1uczsgdHJhY2sgJGluZGV4KSB7XHJcblx0XHRcdFx0XHQ8dGQgW25nU3R5bGVdPVwieyAndGV4dC1hbGlnbic6IGNvbHVtbi50eXBlKCkgPT09ICdvcGVyYXRpb25zJyA/ICdjZW50ZXInIDogY29sdW1uLnRBbGlnbigpIHx8IHRBbGlnbigpIH1cIj5cclxuXHRcdFx0XHRcdFx0PG5nLXRlbXBsYXRlIG5nRm9yIFtuZ0Zvck9mXT1cIltpdGVtXVwiIFtuZ0ZvclRlbXBsYXRlXT1cImNvbHVtbi50ZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XHJcblx0XHRcdFx0XHQ8L3RkPlxyXG5cdFx0XHRcdH1cclxuXHRcdFx0PC90cj5cclxuXHRcdH0gQGVsc2Uge1xyXG5cdFx0XHQ8dHIgW25nU3R5bGVdPVwieyAnYmFja2dyb3VuZC1jb2xvcic6IGl0ZW0/LnJvd0NvbG9yID8gaXRlbT8ucm93Q29sb3IgOiAnI2ZmZicgfVwiPlxyXG5cdFx0XHRcdEBpZiAoY2hlY2tib3hTZWxlY3Rpb24oKSkge1xyXG5cdFx0XHRcdFx0PHRkPlxyXG5cdFx0XHRcdFx0XHQ8cC10YWJsZUNoZWNrYm94IFt2YWx1ZV09XCJpdGVtXCI+PC9wLXRhYmxlQ2hlY2tib3g+XHJcblx0XHRcdFx0XHQ8L3RkPlxyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0QGZvciAoY29sdW1uIG9mIGNvbHVtbnM7IHRyYWNrICRpbmRleCkge1xyXG5cdFx0XHRcdFx0PHRkIFtuZ1N0eWxlXT1cInsgJ3RleHQtYWxpZ24nOiBjb2x1bW4udHlwZSgpID09PSAnb3BlcmF0aW9ucycgPyAnY2VudGVyJyA6IGNvbHVtbi50QWxpZ24oKSB8fCB0QWxpZ24oKSB9XCI+XHJcblx0XHRcdFx0XHRcdDxuZy10ZW1wbGF0ZSBuZ0ZvciBbbmdGb3JPZl09XCJbaXRlbV1cIiBbbmdGb3JUZW1wbGF0ZV09XCJjb2x1bW4udGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxyXG5cdFx0XHRcdFx0PC90ZD5cclxuXHRcdFx0XHR9XHJcblx0XHRcdDwvdHI+XHJcblx0XHR9XHJcblx0PC9uZy10ZW1wbGF0ZT5cclxuXHJcblx0QGlmIChzaG93Rm9vdGVyKCkpIHtcclxuXHRcdDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJzdW1tYXJ5XCI+XHJcblx0XHRcdDxuZy1jb250ZW50IHNlbGVjdD1cIltmb290ZXJdXCI+PC9uZy1jb250ZW50PlxyXG5cdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHR9XHJcblxyXG5cdDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJlbXB0eW1lc3NhZ2VcIj5cclxuXHRcdDx0cj5cclxuXHRcdFx0PHRkIFthdHRyLmNvbHNwYW5dPVwiY29sdW1ucy5fcmVzdWx0cy5sZW5ndGhcIj57eyBub0RhdGFGb3VuZExhYmVsKCkgfX08L3RkPlxyXG5cdFx0PC90cj5cclxuXHQ8L25nLXRlbXBsYXRlPlxyXG48L3AtdGFibGU+XHJcblxyXG48cC1vdmVybGF5UGFuZWwgc3R5bGVDbGFzcz1cImV4cG9ydC1vdmVybGF5LXBhbmVsXCI+XHJcblx0QGlmIChleHBvcnRGb3JtKSB7XHJcblx0XHQ8YXJpbC1mb3JtIFtmb3JtR3JvdXBdPVwiZXhwb3J0Rm9ybVwiIGNsYXNzPVwidy0yMHJlbVwiPlxyXG5cdFx0XHQ8YXJpbC1maWVsZCBbbGFiZWxdPVwiJ0V4cG9ydCBUaXBpJ1wiIFtjb2xzXT1cInsgZGVmYXVsdDogMTIgfVwiPlxyXG5cdFx0XHRcdDxhcmlsLXJhZGlvLWJ1dHRvbiBmb3JtQ29udHJvbE5hbWU9XCJleHBvcnRUeXBlXCIgW29wdGlvbnNdPVwiZXhwb3J0VHlwZU9wdGlvbnNcIiAvPlxyXG5cdFx0XHQ8L2FyaWwtZmllbGQ+XHJcblxyXG5cdFx0XHQ8YXJpbC1maWVsZCBbbGFiZWxdPVwiJ0Rvc3lhIMSwc21pJ1wiIFtjb2xzXT1cInsgZGVmYXVsdDogMTIgfVwiPlxyXG5cdFx0XHRcdDxhcmlsLXRleHQgY2xhc3M9XCJ3LWZ1bGxcIiBmb3JtQ29udHJvbE5hbWU9XCJleHBvcnRMYWJlbFwiIC8+XHJcblx0XHRcdDwvYXJpbC1maWVsZD5cclxuXHJcblx0XHRcdDxuZy1jb250YWluZXIgZm9ybUFycmF5TmFtZT1cImNvbHVtbnNcIj5cclxuXHRcdFx0XHQ8cC1vcmRlckxpc3RcclxuXHRcdFx0XHRcdCNvcmRlckxpc3RSZWZcclxuXHRcdFx0XHRcdGNsYXNzPVwiY29sLTEyXCJcclxuXHRcdFx0XHRcdFt2YWx1ZV09XCJleHBvcnRGb3JtLmNvbnRyb2xzLmNvbHVtbnMuY29udHJvbHNcIlxyXG5cdFx0XHRcdFx0W2xpc3RTdHlsZV09XCJ7ICdtYXgtaGVpZ2h0JzogJzIwcmVtJyB9XCJcclxuXHRcdFx0XHRcdGZpbHRlckJ5PVwidmFsdWUudGl0bGVcIj5cclxuXHRcdFx0XHRcdDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJmaWx0ZXJcIj5cclxuXHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0zXCI+XHJcblx0XHRcdFx0XHRcdFx0PGFyaWwtY2hlY2tib3hcclxuXHRcdFx0XHRcdFx0XHRcdFtsYWJlbF09XCInJ1wiXHJcblx0XHRcdFx0XHRcdFx0XHRbbmdNb2RlbF09XCJpc0FsbFNlbGVjdGVkXCJcclxuXHRcdFx0XHRcdFx0XHRcdFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcblx0XHRcdFx0XHRcdFx0XHQobmdNb2RlbENoYW5nZSk9XCJvblNlbGVjdEFsbCgkZXZlbnQpXCIgLz5cclxuXHJcblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cInAtb3JkZXJsaXN0LWZpbHRlclwiIFthdHRyLmRhdGEtcGMtc2VjdGlvbl09XCInZmlsdGVyJ1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PGlucHV0XHJcblx0XHRcdFx0XHRcdFx0XHRcdCNmaWx0ZXJcclxuXHRcdFx0XHRcdFx0XHRcdFx0dHlwZT1cInRleHRcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRyb2xlPVwidGV4dGJveFwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdChrZXl1cCk9XCJvcmRlckxpc3RSZWYub25GaWx0ZXJLZXl1cCgkZXZlbnQpXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0W2Rpc2FibGVkXT1cIm9yZGVyTGlzdFJlZi5kaXNhYmxlZFwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdGNsYXNzPVwicC1vcmRlcmxpc3QtZmlsdGVyLWlucHV0IHAtaW5wdXR0ZXh0IHAtY29tcG9uZW50XCIgLz5cclxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHQ8L25nLXRlbXBsYXRlPlxyXG5cdFx0XHRcdFx0PG5nLXRlbXBsYXRlIGxldC1jb2wgcFRlbXBsYXRlPVwiaXRlbVwiPlxyXG5cdFx0XHRcdFx0XHQ8YXJpbC1jaGVja2JveCBbbGFiZWxdPVwiY29sLnZhbHVlLnRpdGxlXCIgW2Zvcm1Db250cm9sXT1cImNvbC5jb250cm9scy5jaGVja2VkXCIgLz5cclxuXHRcdFx0XHRcdDwvbmctdGVtcGxhdGU+XHJcblx0XHRcdFx0PC9wLW9yZGVyTGlzdD5cclxuXHRcdFx0PC9uZy1jb250YWluZXI+XHJcblxyXG5cdFx0XHQ8YXJpbC1idXR0b24gY2xhc3M9XCJjb2wtMTJcIiBsYWJlbD1cIkV4cG9ydFwiIGNvbG9yPVwicHJpbWFyeVwiIChjbGlja0V2ZW50KT1cImV4cG9ydCgpXCIgLz5cclxuXHRcdDwvYXJpbC1mb3JtPlxyXG5cdH1cclxuPC9wLW92ZXJsYXlQYW5lbD5cclxuIl19
|
|
254
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC91aS90YWJsZS9zcmMvdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC91aS90YWJsZS9zcmMvdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNOLFNBQVMsRUFDVCxlQUFlLEVBQ2YsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBRU4sU0FBUyxFQUNULE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFxQyxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUcvRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd0QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3BDLE9BQU8sRUFDTixVQUFVLEVBQ1YsU0FBUyxFQUNULE1BQU0sRUFDTixRQUFRLEVBQ1IsY0FBYyxFQUNkLElBQUksRUFDSixRQUFRLEVBQ1IsR0FBRyxFQUNILFNBQVMsRUFDVCxJQUFJLEVBQ0osVUFBVSxFQUNWLE9BQU8sRUFDUCxNQUFNLE1BQU0sQ0FBQztBQUVkLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBR3ZDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDckMsT0FBTyxFQUEwRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDbEgsT0FBTyxFQUFjLG9CQUFvQixFQUFnQixNQUFNLDBCQUEwQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFMUY7Ozs7O0dBS0c7QUFDSCxN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QUksRUFBRSxDQUFDO0lBQ2pCLENBQUM7OEdBeFBXLGNBQWM7a0dBQWQsY0FBYyxzcUlBSVQsb0JBQW9CLGlFQUMxQixZQUFZLDJFQUNaLEtBQUsscUVDckVqQixpNVRBd1BBOzsyRkR6TGEsY0FBYztrQkFMMUIsU0FBUzsrQkFDQyxZQUFZO2dQQUtaLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNnQyxPQUFPO3NCQUE3QyxlQUFlO3VCQUFDLG9CQUFvQjtnQkFDWixFQUFFO3NCQUExQixTQUFTO3VCQUFDLFlBQVk7Z0JBQ0wsUUFBUTtzQkFBekIsU0FBUzt1QkFBQyxLQUFLO2dCQUNQLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHtcclxuXHRDb21wb25lbnQsXHJcblx0Q29udGVudENoaWxkcmVuLFxyXG5cdEV2ZW50RW1pdHRlcixcclxuXHRJbnB1dCxcclxuXHRPdXRwdXQsXHJcblx0U2ltcGxlQ2hhbmdlcyxcclxuXHRWaWV3Q2hpbGQsXHJcblx0ZWZmZWN0LFxyXG5cdGlucHV0XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCwgTm9uTnVsbGFibGVGb3JtQnVpbGRlciwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmltcG9ydCB7IE1lbnVJdGVtLCBNZXNzYWdlU2VydmljZSwgUHJpbWVOR0NvbmZpZyB9IGZyb20gJ3ByaW1lbmcvYXBpJztcclxuaW1wb3J0IHsgT3ZlcmxheVBhbmVsIH0gZnJvbSAncHJpbWVuZy9vdmVybGF5cGFuZWwnO1xyXG5pbXBvcnQgeyBUYWJsZSB9IGZyb20gJ3ByaW1lbmcvdGFibGUnO1xyXG5cclxuaW1wb3J0IHsgVHJhbnNsb2NvU2VydmljZSB9IGZyb20gJ0BuZ25lYXQvdHJhbnNsb2NvJztcclxuaW1wb3J0IHsgc2F2ZUFzIH0gZnJvbSAnZmlsZS1zYXZlcic7XHJcbmltcG9ydCB7XHJcblx0Y2F0Y2hFcnJvcixcclxuXHRjb25jYXRNYXAsXHJcblx0ZmlsdGVyLFxyXG5cdGZpbmFsaXplLFxyXG5cdGZpcnN0VmFsdWVGcm9tLFxyXG5cdGZyb20sXHJcblx0aW50ZXJ2YWwsXHJcblx0bWFwLFxyXG5cdHN3aXRjaE1hcCxcclxuXHR0YWtlLFxyXG5cdHRocm93RXJyb3IsXHJcblx0dG9BcnJheVxyXG59IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgQVBJX0NPTkZJR1MgfSBmcm9tICdhcmlsL2Jvb3QvY29uZmlnL2FwaSc7XHJcbmltcG9ydCB7IFByb3h5VHlwZXMgfSBmcm9tICdhcmlsL2h0dHAnO1xyXG5pbXBvcnQgeyBTZWxlY3Rpb25Hcm91cFNlcnZpY2UgfSBmcm9tICdhcmlsL3RoZW1lL2xheW91dCc7XHJcblxyXG5pbXBvcnQgeyB0cmFubGF0aW9ucyB9IGZyb20gJy4vaTE4bic7XHJcbmltcG9ydCB7IENvbEZvcm0sIENvbHVtbkZpZWxkVmFsdWVNYXAsIEV4cG9ydEZvcm0sIEV4cG9ydE9wdGlvbnMsIEV4cG9ydFJlcXVlc3QsIEV4cG9ydFR5cGUgfSBmcm9tICcuL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBBbGlnblR5cGVzLCBUYWJsZUNvbHVtbkNvbXBvbmVudCwgVGFibGVDb2x1bW5zIH0gZnJvbSAnLi90YWJsZS1jb2x1bW4uY29tcG9uZW50JztcclxuXHJcbi8qIFRPRE8gOlxyXG4gKiBzZXJ2ZXItc2lkZS1wcm94eSAoUHJveHlUeXBlcy5TZXJ2ZXJTaWRlKVxyXG4gKiBzZWFyY2ggJiBjb2x1bSBmaWx0ZXIgJiBzb3J0XHJcbiAqIHBhZ2luYXRpb24gb3BlcmF0aW9uXHJcbiAqIFF1ZXJ5IFNpZ25hbHNcclxuICovXHJcbmNvbnN0IHBhZ2VPcHRpb25zID0gWzEwLCAyMCwgNTAsIDEwMF0gYXMgY29uc3Q7XHJcblxyXG50eXBlIFNlbGVjdGlvblR5cGVzID0gJ3NpbmdsZScgfCAnbXVsdGlwbGUnIHwgbnVsbDtcclxuaW50ZXJmYWNlIElLZWJhYk1lbnVJdGVtIHtcclxuXHRpY29uOiBzdHJpbmc7XHJcblx0bGFiZWw6IHN0cmluZztcclxuXHRvbkNsaWNrOiAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHZvaWQ7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnYXJpbC10YWJsZScsXHJcblx0dGVtcGxhdGVVcmw6ICcuL3RhYmxlLmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZVVybDogJy4vdGFibGUuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUYWJsZUNvbXBvbmVudCB7XHJcblx0QE91dHB1dCgpIG9uUGFnZUV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cdEBPdXRwdXQoKSBzZWxlY3Rpb25FdmVudDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHRAT3V0cHV0KCkgbGF6eUxvYWRFdmVudDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHRAQ29udGVudENoaWxkcmVuKFRhYmxlQ29sdW1uQ29tcG9uZW50KSBjb2x1bW5zITogVGFibGVDb2x1bW5zO1xyXG5cdEBWaWV3Q2hpbGQoT3ZlcmxheVBhbmVsKSBvcCE6IE92ZXJsYXlQYW5lbDtcclxuXHRAVmlld0NoaWxkKFRhYmxlKSB0YWJsZVJlZiE6IFRhYmxlO1xyXG5cdEBJbnB1dCgpIGtlYmFiTWVudUl0ZW1zOiBNZW51SXRlbVtdID0gW107XHJcblx0QElucHV0KCkgZXhwYW5kYWJsZUZpZWxkcyE6IHN0cmluZztcclxuXHJcblx0ZGF0YSA9IGlucHV0LnJlcXVpcmVkPGFueVtdPigpO1xyXG5cdGNoZWNrYm94U2VsZWN0aW9uID0gaW5wdXQ8Ym9vbGVhbj4oKTtcclxuXHRoZWFkZXJDaGVja2JveFNlbGVjdGlvbiA9IGlucHV0PGJvb2xlYW4+KCk7XHJcblx0cGFnZVNpemUgPSBpbnB1dDwodHlwZW9mIHBhZ2VPcHRpb25zKVtudW1iZXJdPigxMCk7XHJcblx0cHJveHkgPSBpbnB1dDxQcm94eVR5cGVzPihQcm94eVR5cGVzLk5hdGl2ZSk7XHJcblx0c2hvd0Zvb3RlciA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHR0QWxpZ24gPSBpbnB1dDxBbGlnblR5cGVzPignbGVmdCcpO1xyXG5cdHNlbGVjdGlvbk1vZGUgPSBpbnB1dDxTZWxlY3Rpb25UeXBlcz4oJ3NpbmdsZScpO1xyXG5cdHNob3dTZWFyY2hUb29sID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XHJcblx0c2hvd0V4cG9ydFRvb2wgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcclxuXHRleHBvcnRGaWxlTmFtZSA9IGlucHV0PHN0cmluZz4oJycpO1xyXG5cdG5vRGF0YUZvdW5kTGFiZWwgPSBpbnB1dDxzdHJpbmc+KCdObyBEYXRhIEZvdW5kJyk7XHJcblx0dGFibGVIZWFkZXIgPSBpbnB1dDxzdHJpbmc+KCcnKTtcclxuXHRzaG93VGFibGVIZWFkZXIgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcblx0aXNGaXJzdFJvd1NlbGVjdGVkID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cdGRhdGFLZXkgPSBpbnB1dDxzdHJpbmc+KCcnKTtcclxuXHRzZWxlY3RlZFJvd3NJbnB1dCA9IGlucHV0PGFueT4oW10pO1xyXG5cdGlzTGF6eSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHR0b3RhbFJlY29yZHMgPSBpbnB1dDxudW1iZXI+KDApO1xyXG5cdHBhZ2luYXRvciA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xyXG5cdHBhZ2luYXRvckRyb3Bkb3duQXBwZW5kVG8gPSBpbnB1dDxzdHJpbmc+KCdib2R5Jyk7IC8vICdib2R5J3wgJ215RGl2J1xyXG5cclxuXHRpc1Nob3dOb0RhdGFGb3VuZE1lc3NhZ2UgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcclxuXHQvKipcclxuXHQgKiBAc2VlIHtAbGluayBFeHBvcnRPcHRpb25zfVxyXG5cdCAqL1xyXG5cdGV4cG9ydENvbmZpZyA9IGlucHV0PEV4cG9ydE9wdGlvbnM+KCk7XHJcblxyXG5cdGV4cG9ydEZvcm0hOiBGb3JtR3JvdXA8RXhwb3J0Rm9ybT47XHJcblx0ZXhwb3J0VHlwZU9wdGlvbnMgPSBbXHJcblx0XHR7IGtleTogRXhwb3J0VHlwZS5FeGNlbCwgbGFiZWw6ICdFeGNlbCcsIGZpbGVFeHRlbnNpb246ICcueGxzeCcgfSxcclxuXHRcdHsga2V5OiBFeHBvcnRUeXBlLkNzdiwgbGFiZWw6ICdDc3YnLCBmaWxlRXh0ZW5zaW9uOiAnLmNzdicgfVxyXG5cdF07XHJcblxyXG5cdGZpbHRlclRleHQhOiBzdHJpbmc7XHJcblx0aXNBbGxTZWxlY3RlZCA9IHRydWU7XHJcblx0c2VsZWN0ZWRSb3dzOiBhbnk7XHJcblx0cGFnZU9wdGlvbnMgPSBwYWdlT3B0aW9ucztcclxuXHRleHBvcnRDb2x1bW5zOiBBcnJheTx7IHRpdGxlOiBzdHJpbmc7IGRhdGFLZXk6IHN0cmluZyB9PiA9IFtdO1xyXG5cdGlzQ29sdW1uRXhwYW5kTW9kZSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHRpc1Jlc2l6YWJsZUNvbHVtbnMgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcblx0aXNTb3J0YWJsZSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHRoYW5kbGVkU2VsZWN0aW9uTW9kZTogU2VsZWN0aW9uVHlwZXMgPSAnc2luZ2xlJztcclxuXHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcblx0XHRwcml2YXRlIGZiOiBOb25OdWxsYWJsZUZvcm1CdWlsZGVyLFxyXG5cdFx0cHJpdmF0ZSBwcmltZW5nQ29uZmlnOiBQcmltZU5HQ29uZmlnLFxyXG5cdFx0cHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXHJcblx0XHRwcml2YXRlIHRyYW5zbG9jb1NlcnZpY2U6IFRyYW5zbG9jb1NlcnZpY2UsXHJcblx0XHRwcml2YXRlIHNlbGVjdGlvbkdyb3VwU2VydmljZTogU2VsZWN0aW9uR3JvdXBTZXJ2aWNlXHJcblx0KSB7XHJcblx0XHR0aGlzLnByaW1lbmdDb25maWcuc2V0VHJhbnNsYXRpb24odHJhbmxhdGlvbnMpO1xyXG5cclxuXHRcdGVmZmVjdCgoKSA9PiB7XHJcblx0XHRcdGlmICh0aGlzLmlzRmlyc3RSb3dTZWxlY3RlZCgpICYmIHRoaXMuZGF0YSgpKSB7XHJcblx0XHRcdFx0dGhpcy5zZWxlY3RlZFJvd3MgPSB0aGlzLmRhdGEoKVswXTtcclxuXHRcdFx0XHR0aGlzLnNlbGVjdGlvbkV2ZW50LmVtaXQodGhpcy5zZWxlY3RlZFJvd3MpO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHJcblx0XHRlZmZlY3QoKCkgPT4ge1xyXG5cdFx0XHRpZiAodGhpcy5zZWxlY3RlZFJvd3NJbnB1dCgpKSB7XHJcblx0XHRcdFx0dGhpcy5zZWxlY3RlZFJvd3MgPSB0aGlzLnNlbGVjdGVkUm93c0lucHV0KCk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cclxuXHRcdGVmZmVjdCgoKSA9PiB7XHJcblx0XHRcdGlmICh0aGlzLmV4cG9ydENvbmZpZygpKSB7XHJcblx0XHRcdFx0dGhpcy5jcmVhdGVFeHBvcnRGb3JtKCk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cclxuXHRcdGVmZmVjdCgoKSA9PiB7XHJcblx0XHRcdGlmICh0aGlzLmNoZWNrYm94U2VsZWN0aW9uKCkpIHRoaXMuaGFuZGxlZFNlbGVjdGlvbk1vZGUgPSBudWxsO1xyXG5cdFx0XHRlbHNlIHRoaXMuaGFuZGxlZFNlbGVjdGlvbk1vZGUgPSB0aGlzLnNlbGVjdGlvbk1vZGUoKTtcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBpc0luaXRpYWxMb2FkID0gdHJ1ZTtcclxuXHJcblx0bmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG5cdFx0aWYgKGNoYW5nZXNbJ2RhdGEnXSAmJiBjaGFuZ2VzWydkYXRhJ10uY3VycmVudFZhbHVlICE9PSBjaGFuZ2VzWydkYXRhJ10ucHJldmlvdXNWYWx1ZSkge1xyXG5cdFx0XHRpZiAodGhpcy5pc0luaXRpYWxMb2FkKSB7XHJcblx0XHRcdFx0dGhpcy5pc0luaXRpYWxMb2FkID0gZmFsc2U7XHJcblx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRjb25zdCBjdXJyZW50RGF0YSA9IGNoYW5nZXNbJ2RhdGEnXS5jdXJyZW50VmFsdWU7XHJcblx0XHRcdGlmICh0aGlzLmlzU2hvd05vRGF0YUZvdW5kTWVzc2FnZSgpICYmICFjdXJyZW50RGF0YT8ubGVuZ3RoKSB7XHJcblx0XHRcdFx0dGhpcy5tZXNzYWdlU2VydmljZS5hZGQoe1xyXG5cdFx0XHRcdFx0c2V2ZXJpdHk6ICdpbmZvJyxcclxuXHRcdFx0XHRcdHN1bW1hcnk6IHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ21lc3NhZ2VzLm5vRGF0YVRvRGlzcGxheScpLFxyXG5cdFx0XHRcdFx0a2V5OiAndG9hc3Qtcm9vdCdcclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBjcmVhdGVFeHBvcnRGb3JtKCk6IHZvaWQge1xyXG5cdFx0Y29uc3QgeyBleHBvcnRMYWJlbCB9ID0gdGhpcy5leHBvcnRDb25maWcoKSE7XHJcblxyXG5cdFx0dGhpcy5leHBvcnRGb3JtID0gdGhpcy5mYi5ncm91cDxFeHBvcnRGb3JtPih7XHJcblx0XHRcdGV4cG9ydFR5cGU6IHRoaXMuZmIuY29udHJvbChFeHBvcnRUeXBlLkV4Y2VsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcclxuXHRcdFx0ZXhwb3J0TGFiZWw6IHRoaXMuZmIuY29udHJvbChleHBvcnRMYWJlbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXHJcblx0XHRcdGNvbHVtbnM6IHRoaXMuZmIuYXJyYXk8Rm9ybUdyb3VwPENvbEZvcm0+PihbXSlcclxuXHRcdH0pO1xyXG5cclxuXHRcdHRoaXMuY29sdW1ucy5fcmVzdWx0c1xyXG5cdFx0XHQuZmlsdGVyKChjb2wpID0+IGNvbC50eXBlKCkgIT09ICdvcGVyYXRpb25zJylcclxuXHRcdFx0LmZpbHRlcigoY29sKSA9PiB7XHJcblx0XHRcdFx0Y29uc3QgZXhwb3J0Q29uZmlnID0gdGhpcy5leHBvcnRDb25maWcoKTtcclxuXHRcdFx0XHRjb25zdCBleGNsdWRlZEZpZWxkcyA9IGV4cG9ydENvbmZpZz8uZXhjbHVkZWRGaWVsZHMgPz8gW107XHJcblxyXG5cdFx0XHRcdHJldHVybiAhZXhjbHVkZWRGaWVsZHMuaW5jbHVkZXMoY29sLmZpZWxkKCkpO1xyXG5cdFx0XHR9KVxyXG5cdFx0XHQuZm9yRWFjaCgoY29sKSA9PiB7XHJcblx0XHRcdFx0Y29uc3QgY29sR3JvdXAgPSB0aGlzLmZiLmdyb3VwPENvbEZvcm0+KHtcclxuXHRcdFx0XHRcdGNoZWNrZWQ6IHRoaXMuZmIuY29udHJvbCh0cnVlKSxcclxuXHRcdFx0XHRcdHRpdGxlOiB0aGlzLmZiLmNvbnRyb2woY29sLmhlYWRlcigpKSxcclxuXHRcdFx0XHRcdGRhdGFLZXk6IHRoaXMuZmIuY29udHJvbChjb2wuZmllbGQoKSlcclxuXHRcdFx0XHR9KTtcclxuXHJcblx0XHRcdFx0dGhpcy5leHBvcnRGb3JtLmNvbnRyb2xzLmNvbHVtbnMucHVzaChjb2xHcm91cCk7XHJcblx0XHRcdH0pO1xyXG5cclxuXHRcdHRoaXMuZXhwb3J0Rm9ybS5jb250cm9scy5jb2x1bW5zLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKHQpID0+ICh0aGlzLmlzQWxsU2VsZWN0ZWQgPSB0LmV2ZXJ5KChhKSA9PiBhLmNoZWNrZWQpKSk7XHJcblx0fVxyXG5cclxuXHRnZXQgaG9zdFVybCgpOiBzdHJpbmcge1xyXG5cdFx0cmV0dXJuIGAke2dsb2JhbFRoaXMubG9jYXRpb24ucHJvdG9jb2x9Ly8ke2dsb2JhbFRoaXMubG9jYXRpb24uaG9zdH0vaHRtbC9gO1xyXG5cdH1cclxuXHJcblx0YXN5bmMgZXhwb3J0KCkge1xyXG5cdFx0Y29uc3QgeyBleHBvcnRUeXBlLCBleHBvcnRMYWJlbCwgY29sdW1ucyB9ID0gdGhpcy5leHBvcnRGb3JtLnZhbHVlO1xyXG5cdFx0Y29uc3QgeyByb3V0ZSwgcGFyYW1zLCBjb2x1bW5GaWVsZFZhbHVlTWFwLCBkYXRlQ29sdW1uRm9ybWF0TWFwLCBjb21wdXRlZENvbHVtbk1hcCB9ID0gdGhpcy5leHBvcnRDb25maWcoKSE7XHJcblxyXG5cdFx0Y29uc3QgY2hlY2tlZENvbHVtbnMgPSBjb2x1bW5zIS5maWx0ZXIoKHQpID0+IHQuY2hlY2tlZCk7XHJcblx0XHRjb25zdCBmaWxlRXh0ZW5zaW9uID0gdGhpcy5leHBvcnRUeXBlT3B0aW9ucy5maW5kKCh0KSA9PiB0LmtleSA9PT0gZXhwb3J0VHlwZSk/LmZpbGVFeHRlbnNpb247XHJcblxyXG5cdFx0bGV0IGNvbHVtbkZpZWxkVmFsdWVNYXBPYmo6IENvbHVtbkZpZWxkVmFsdWVNYXAgfCB1bmRlZmluZWQ7XHJcblxyXG5cdFx0aWYgKGNvbHVtbkZpZWxkVmFsdWVNYXApIHtcclxuXHRcdFx0Y29uc3QgdGVtcE9iaiA9IHt9IGFzIENvbHVtbkZpZWxkVmFsdWVNYXA7XHJcblxyXG5cdFx0XHRhd2FpdCBmaXJzdFZhbHVlRnJvbShcclxuXHRcdFx0XHRmcm9tKE9iamVjdC5lbnRyaWVzKGNvbHVtbkZpZWxkVmFsdWVNYXApKS5waXBlKFxyXG5cdFx0XHRcdFx0Y29uY2F0TWFwKChbZmllbGROYW1lLCB2YWx1ZV0pID0+IHtcclxuXHRcdFx0XHRcdFx0aWYgKFxyXG5cdFx0XHRcdFx0XHRcdCF0aGlzLnNlbGVjdGlvbkdyb3VwU2VydmljZS5zZWxlY3Rpb25Hcm91cHMoKVtgJHt2YWx1ZS5ncm91cE5hbWV9fiR7dmFsdWUucGFyZW50U2VsZWN0aW9uS2V5ID8/ICdBTEwnfWBdXHJcblx0XHRcdFx0XHRcdCkge1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMuc2VsZWN0aW9uR3JvdXBTZXJ2aWNlLmZldGNoRW51bSh2YWx1ZS5ncm91cE5hbWUsIHZhbHVlLnBhcmVudFNlbGVjdGlvbktleSk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHRcdGNvbnN0IGtleSA9IHZhbHVlLmdyb3VwTmFtZSArICd+JyArICh2YWx1ZS5wYXJlbnRTZWxlY3Rpb25LZXkgPz8gJ0FMTCcpO1xyXG5cclxuXHRcdFx0XHRcdFx0cmV0dXJuIGludGVydmFsKDEwKS5waXBlKFxyXG5cdFx0XHRcdFx0XHRcdGZpbHRlcigoKSA9PiAhdGhpcy5zZWxlY3Rpb25Hcm91cFNlcnZpY2UuaXNMb2FkaW5nKGtleSkpLFxyXG5cdFx0XHRcdFx0XHRcdHRha2UoMSksXHJcblx0XHRcdFx0XHRcdFx0bWFwKCgpID0+IHtcclxuXHRcdFx0XHRcdFx0XHRcdGNvbnN0IHNlbGVjdGlvbkdyb3VwID0gdGhpcy5zZWxlY3Rpb25Hcm91cFNlcnZpY2Uuc2VsZWN0aW9uR3JvdXBzKClba2V5XTtcclxuXHRcdFx0XHRcdFx0XHRcdGlmIChzZWxlY3Rpb25Hcm91cCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR0ZW1wT2JqW2ZpZWxkTmFtZV0gPSBzZWxlY3Rpb25Hcm91cC5zZWxlY3Rpb25JdGVtcy5yZWR1Y2UoKGFjYzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiwgaXRlbSkgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGFjY1tpdGVtLnNlbGVjdGlvbktleV0gPSBpdGVtLnNlbGVjdGlvbkRpc3BsYXk7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuIGFjYztcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG5cdFx0XHRcdFx0XHRcdFx0XHR9LCB7fSkgYXMgYW55O1xyXG5cdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHRcdCk7XHJcblx0XHRcdFx0XHR9KSxcclxuXHRcdFx0XHRcdHRvQXJyYXkoKSxcclxuXHRcdFx0XHRcdGZpbmFsaXplKCgpID0+IHtcclxuXHRcdFx0XHRcdFx0Y29sdW1uRmllbGRWYWx1ZU1hcE9iaiA9IHRlbXBPYmo7XHJcblx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdClcclxuXHRcdFx0KTtcclxuXHRcdH1cclxuXHJcblx0XHRjb25zdCByZXF1ZXN0OiBFeHBvcnRSZXF1ZXN0ID0ge1xyXG5cdFx0XHRyb3V0ZTogcm91dGUhLFxyXG5cdFx0XHRwYXJhbXM6IHBhcmFtcyEsXHJcblx0XHRcdGV4cG9ydFR5cGU6IGV4cG9ydFR5cGUhLFxyXG5cdFx0XHRleHBvcnRMYWJlbDogZXhwb3J0TGFiZWwhLFxyXG5cdFx0XHRjb21wdXRlZENvbHVtbk1hcDogY29tcHV0ZWRDb2x1bW5NYXAhLFxyXG5cdFx0XHRkYXRlQ29sdW1uRm9ybWF0TWFwOiBkYXRlQ29sdW1uRm9ybWF0TWFwISxcclxuXHRcdFx0Y29sdW1uRmllbGRWYWx1ZU1hcDogY29sdW1uRmllbGRWYWx1ZU1hcE9iaiEsXHJcblx0XHRcdGhlYWRlck5hbWVzOiBjaGVja2VkQ29sdW1ucy5tYXAoKGNvbCkgPT4gY29sLnRpdGxlISksXHJcblx0XHRcdG91dHB1dEZpZWxkczogY2hlY2tlZENvbHVtbnMubWFwKChjb2wpID0+IGNvbC5kYXRhS2V5ISlcclxuXHRcdH07XHJcblxyXG5cdFx0Y29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbShcclxuXHRcdFx0dGhpcy5odHRwLnBvc3Q8eyBzdWNjZXNzOiBib29sZWFuOyB1cmw6IHN0cmluZyB9PihBUElfQ09ORklHUy5hcGkgKyAnL2JhdGNoLWV4cG9ydGVycy9leHBvcnQnLCByZXF1ZXN0KS5waXBlKFxyXG5cdFx0XHRcdHN3aXRjaE1hcCgocmVzKSA9PlxyXG5cdFx0XHRcdFx0dGhpcy5odHRwLmdldChBUElfQ09ORklHUy5hcGkgKyAnL2J1Y2tldC1vYmplY3RzL2Rvd25sb2FkJywge1xyXG5cdFx0XHRcdFx0XHRwYXJhbXM6IHsgdXJsOiByZXMudXJsIH0sXHJcblx0XHRcdFx0XHRcdHJlc3BvbnNlVHlwZTogJ2Jsb2InXHJcblx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdCksXHJcblx0XHRcdFx0Y2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcclxuXHRcdFx0XHRcdGlmIChlcnJvci5zdGF0dXMgPT09IDUwNCkge1xyXG5cdFx0XHRcdFx0XHR3aW5kb3cubG9jYXRpb24uaHJlZiA9IGAke3RoaXMuaG9zdFVybH1tbmcvIy9tbmcvY29udHJvbC1tYW5hZ2VtZW50L2V4cG9ydC1yZXF1ZXN0c2A7XHJcblx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRjb25zb2xlLmVycm9yKCdIYXRhIG9sdcWfdHU6JywgZXJyb3IpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0cmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZXJyb3IpO1xyXG5cdFx0XHRcdH0pXHJcblx0XHRcdClcclxuXHRcdCk7XHJcblxyXG5cdFx0c2F2ZUFzKHJlc3BvbnNlLCBgJHtleHBvcnRMYWJlbH0tJHtuZXcgRGF0ZSgpLmdldFRpbWUoKX0ke2ZpbGVFeHRlbnNpb259YCk7XHJcblx0fVxyXG5cclxuXHRvblNlbGVjdEFsbCh2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xyXG5cdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmV4cG9ydEZvcm0uY29udHJvbHMuY29sdW1ucy5sZW5ndGg7IGkrKykge1xyXG5cdFx0XHRjb25zdCBmb3JtR3JvdXAgPSB0aGlzLmV4cG9ydEZvcm0uY29udHJvbHMuY29sdW1ucy5hdChpKTtcclxuXHRcdFx0Zm9ybUdyb3VwLmNvbnRyb2xzLmNoZWNrZWQuc2V0VmFsdWUodmFsdWUpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0dG9nZ2xlRXhwb3J0ID0gKGV2ZW50OiBFdmVudCk6IHZvaWQgPT4gdGhpcy5vcC50b2dnbGUoZXZlbnQpO1xyXG5cclxuXHRoYW5kbGVMYXp5TG9hZEV2ZW50KGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuXHRcdGNvbnN0IG5ld0V2ZW50RGF0YSA9IHtcclxuXHRcdFx0cGFnZXI6IHtcclxuXHRcdFx0XHRwYWdlU2l6ZTogZXZlbnQucm93cyxcclxuXHRcdFx0XHRwYWdlTnVtYmVyOiBldmVudC5maXJzdCAvIGV2ZW50LnJvd3MgKyAxXHJcblx0XHRcdH0sXHJcblx0XHRcdHNvcnQ6IGV2ZW50Lm11bHRpU29ydE1ldGEsXHJcblx0XHRcdGZpbHRlcjogZXZlbnQuZmlsdGVyc1xyXG5cdFx0fTtcclxuXHRcdHRoaXMubGF6eUxvYWRFdmVudC5lbWl0KG5ld0V2ZW50RGF0YSk7XHJcblx0fVxyXG5cclxuXHRjbGVhcigpOiB2b2lkIHtcclxuXHRcdHRoaXMudGFibGVSZWYudmFsdWUgPSBbXTtcclxuXHRcdHRoaXMudGFibGVSZWYuY2xlYXIoKTtcclxuXHRcdHRoaXMub3A/LmhpZGUoKTtcclxuXHR9XHJcbn1cclxuIiwiPHAtdGFibGVcclxuXHQjcmVmXHJcblx0W3ZhbHVlXT1cImRhdGEoKVwiXHJcblx0W2RhdGFLZXldPVwiZGF0YUtleSgpXCJcclxuXHRbY29sdW1uc109XCJjb2x1bW5zLl9yZXN1bHRzXCJcclxuXHRbcm93c109XCJwYWdlU2l6ZSgpXCJcclxuXHRbcm93SG92ZXJdPVwidHJ1ZVwiXHJcblx0W3BhZ2luYXRvcl09XCJwYWdpbmF0b3IoKVwiXHJcblx0W2xhenldPVwiaXNMYXp5KClcIlxyXG5cdFtsYXp5TG9hZE9uSW5pdF09XCJmYWxzZVwiXHJcblx0W3RvdGFsUmVjb3Jkc109XCJ0b3RhbFJlY29yZHMoKVwiXHJcblx0W3Jvd3NQZXJQYWdlT3B0aW9uc109XCJbMTAsIDIwLCA1MCwgMTAwXVwiXHJcblx0W2ZpbHRlckRlbGF5XT1cIjBcIlxyXG5cdHNvcnRNb2RlPVwibXVsdGlwbGVcIlxyXG5cdFsoc2VsZWN0aW9uKV09XCJzZWxlY3RlZFJvd3NcIlxyXG5cdChvblBhZ2UpPVwib25QYWdlRXZlbnQuZW1pdCgkZXZlbnQpXCJcclxuXHQob25MYXp5TG9hZCk9XCJoYW5kbGVMYXp5TG9hZEV2ZW50KCRldmVudClcIlxyXG5cdChzZWxlY3Rpb25DaGFuZ2UpPVwic2VsZWN0aW9uRXZlbnQuZW1pdChzZWxlY3RlZFJvd3MpXCJcclxuXHRbc2hvd0N1cnJlbnRQYWdlUmVwb3J0XT1cInRydWVcIlxyXG5cdFtzZWxlY3Rpb25Nb2RlXT1cInNlbGVjdGlvbk1vZGUoKVwiXHJcblx0W2NvbHVtblJlc2l6ZU1vZGVdPVwiaXNDb2x1bW5FeHBhbmRNb2RlKCkgPyAnZXhwYW5kJyA6ICcnXCJcclxuXHRbcmVzaXphYmxlQ29sdW1uc109XCJpc1Jlc2l6YWJsZUNvbHVtbnMoKVwiXHJcblx0Y3VycmVudFBhZ2VSZXBvcnRUZW1wbGF0ZT1cIlRvcGxhbSA6IHt0b3RhbFJlY29yZHN9IGthecSxdCB8IFNheWZhIDoge2N1cnJlbnRQYWdlfSAvIHt0b3RhbFBhZ2VzfVwiXHJcblx0c3R5bGVDbGFzcz1cInAtZGF0YXRhYmxlLXNtXCJcclxuXHRbcGFnaW5hdG9yRHJvcGRvd25BcHBlbmRUb109XCJwYWdpbmF0b3JEcm9wZG93bkFwcGVuZFRvKClcIj5cclxuXHQ8IS0tQGlmICh0YWJsZUhlYWRlcigpIHx8IHNob3dTZWFyY2hUb29sKCkgfHwgc2hvd0V4cG9ydFRvb2woKSkge1xyXG5cdFx0PG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImNhcHRpb25cIj5cclxuXHRcdFx0PGRpdiBjbGFzcz1cImZsZXggc3BhY2UtYmV0d2VlblwiPlxyXG5cdFx0XHRcdDxkaXYgc3R5bGU9XCJmbGV4OiBhdXRvXCI+XHJcblx0XHRcdFx0XHRAaWYgKHRhYmxlSGVhZGVyKCkubGVuZ3RoKSB7XHJcblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJ0YWJsZS1oZWFkZXJcIj5cclxuXHRcdFx0XHRcdFx0XHR7eyB0YWJsZUhlYWRlcigpIH19XHJcblx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdDxkaXYgc3R5bGU9XCJmbGV4OiBhdXRvXCI+XHJcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG5cdFx0XHRcdFx0XHRAaWYgKGZhbHNlKSB7XHJcblx0XHRcdFx0XHRcdFx0PGFyaWwtdGV4dFxyXG5cdFx0XHRcdFx0XHRcdFx0aWNvbj1cIlNFQVJDSFwiXHJcblx0XHRcdFx0XHRcdFx0XHRpY29uUG9zPVwibGVmdFwiXHJcblx0XHRcdFx0XHRcdFx0XHRwbGFjZWhvbGRlcj1cIkFyYW1hXCJcclxuXHRcdFx0XHRcdFx0XHRcdFtuZ01vZGVsXT1cImZpbHRlclRleHRcIlxyXG5cdFx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJtci0xXCJcclxuXHRcdFx0XHRcdFx0XHRcdChuZ01vZGVsQ2hhbmdlKT1cInJlZi5maWx0ZXJHbG9iYWwoJGV2ZW50LnRhcmdldC52YWx1ZSwgJ2NvbnRhaW5zJylcIj5cclxuXHRcdFx0XHRcdFx0XHQ8L2FyaWwtdGV4dD5cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRAaWYgKGZhbHNlKSB7XHJcblx0XHRcdFx0XHRcdFx0PGFyaWwtYnV0dG9uXHJcblx0XHRcdFx0XHRcdFx0XHRzaXplPVwic21cIlxyXG5cdFx0XHRcdFx0XHRcdFx0aWNvbj1cIkZJTEVfRVhDRUxcIlxyXG5cdFx0XHRcdFx0XHRcdFx0Y29sb3I9XCJwcmltYXJ5XCJcclxuXHRcdFx0XHRcdFx0XHRcdHBUb29sdGlwPVwiWExTXCJcclxuXHRcdFx0XHRcdFx0XHRcdHRvb2x0aXBQb3NpdGlvbj1cInRvcFwiXHJcblx0XHRcdFx0XHRcdFx0XHQoY2xpY2tFdmVudCk9XCJleGNlbEV4cG9ydCgpXCJcclxuXHRcdFx0XHRcdFx0XHRcdGNsYXNzPVwibXItMVwiPlxyXG5cdFx0XHRcdFx0XHRcdDwvYXJpbC1idXR0b24+XHJcblx0XHRcdFx0XHRcdFx0PGFyaWwtYnV0dG9uXHJcblx0XHRcdFx0XHRcdFx0XHRzaXplPVwic21cIlxyXG5cdFx0XHRcdFx0XHRcdFx0aWNvbj1cIkZJTEVfUERGXCJcclxuXHRcdFx0XHRcdFx0XHRcdGNvbG9yPVwicHJpbWFyeVwiXHJcblx0XHRcdFx0XHRcdFx0XHRwVG9vbHRpcD1cIlBERlwiXHJcblx0XHRcdFx0XHRcdFx0XHR0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxyXG5cdFx0XHRcdFx0XHRcdFx0KGNsaWNrRXZlbnQpPVwiZXhwb3J0UGRmKClcIj5cclxuXHRcdFx0XHRcdFx0XHQ8L2FyaWwtYnV0dG9uPlxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdEBpZiAoZGF0YSgpICYmIGtlYmFiTWVudUl0ZW1zLmxlbmd0aCA+IDAgKSB7XHJcblx0XHRcdFx0XHRcdFx0PGRpdiB0b29scyBzdHlsZT1cInBhZGRpbmc6IDRweDttYXJnaW4tbGVmdDogNHB4O2JvcmRlcjoxcHggc29saWQgIzYzNjZmMTtib3JkZXItcmFkaXVzOiA2cHg7YmFja2dyb3VuZC1jb2xvcjogIzYzNjZmMTsgY29sb3I6IHdoaXRlO1wiID5cclxuXHRcdFx0XHRcdFx0XHRcdDxpXHJcblx0XHRcdFx0XHRcdFx0XHRcdFthdHRyLnJvbGVdPVwiJ25vbmUnXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJwaSBtci0xIGhlYWRlci1pY29uIHBpLWVsbGlwc2lzLXZcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQoY2xpY2spPVwiYnVsa09wZXJhdGlvbnMudG9nZ2xlKCRldmVudCk7XCI+PC9pPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHAtbWVudVxyXG5cdFx0XHRcdFx0XHRcdFx0XHQjYnVsa09wZXJhdGlvbnNcclxuXHRcdFx0XHRcdFx0XHRcdFx0W3BvcHVwXT1cInRydWVcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRbbW9kZWxdPVwia2ViYWJNZW51SXRlbXNcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRzdHlsZUNsYXNzPVwiei1pbmRleDogOTk5ODg5OTtcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRhcHBlbmRUbz1cImJvZHlcIj48L3AtbWVudT5cclxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHR9LS0+XHJcblxyXG5cdDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJoZWFkZXJcIiBsZXQtY29sdW1ucz5cclxuXHRcdDx0cj5cclxuXHRcdFx0QGlmIChjaGVja2JveFNlbGVjdGlvbigpKSB7XHJcblx0XHRcdFx0PHRoPlxyXG5cdFx0XHRcdFx0QGlmIChoZWFkZXJDaGVja2JveFNlbGVjdGlvbigpKSB7XHJcblx0XHRcdFx0XHRcdDxwLXRhYmxlSGVhZGVyQ2hlY2tib3g+PC9wLXRhYmxlSGVhZGVyQ2hlY2tib3g+XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0PC90aD5cclxuXHRcdFx0fVxyXG5cdFx0XHRAZm9yIChjb2x1bW4gb2YgY29sdW1uczsgdHJhY2sgJGluZGV4KSB7XHJcblx0XHRcdFx0QGlmIChjb2x1bW4udHlwZSgpID09PSAnb3BlcmF0aW9ucycpIHtcclxuXHRcdFx0XHRcdDx0aD5cclxuXHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlclwiPsSwxZ9sZW1sZXI8L2Rpdj5cclxuXHRcdFx0XHRcdDwvdGg+XHJcblx0XHRcdFx0fSBAZWxzZSB7XHJcblx0XHRcdFx0XHRAaWYgKGlzUmVzaXphYmxlQ29sdW1ucygpKSB7XHJcblx0XHRcdFx0XHRcdDx0aFxyXG5cdFx0XHRcdFx0XHRcdFtwU29ydGFibGVDb2x1bW5dPVwiY29sdW1uLmZpZWxkKClcIlxyXG5cdFx0XHRcdFx0XHRcdFtuZ1N0eWxlXT1cInsgd2lkdGg6IGNvbHVtbi53aWR0aCgpID8gY29sdW1uLndpZHRoKCkgOiAnYXV0bycgfVwiXHJcblx0XHRcdFx0XHRcdFx0cFJlc2l6YWJsZUNvbHVtbj5cclxuXHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIj5cclxuXHRcdFx0XHRcdFx0XHRcdHt7IGNvbHVtbi5oZWFkZXIoKSB9fVxyXG5cdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImZsZXhcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0QGlmIChjb2x1bW4uaXNTaG93SGVhZGVyVG9vbHRpcCgpKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PGlcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHN0eWxlPVwiY29sb3I6IGdyZWVuOyBwYWRkaW5nLXRvcDogNHB4OyBwYWRkaW5nLWxlZnQ6IDRweFwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjbGFzcz1cInBpIHBpLWluZm8tY2lyY2xlXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFtwVG9vbHRpcF09XCJjb2x1bW4udG9vbHRpcFRlbXBsYXRlKClcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0dG9vbHRpcFBvc2l0aW9uPVwidG9wXCI+PC9pPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHRcdEBpZiAoIWlzTGF6eSgpKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PHAtc29ydEljb24gW2ZpZWxkXT1cImNvbHVtbi5maWVsZCgpXCI+PC9wLXNvcnRJY29uPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0PC90aD5cclxuXHRcdFx0XHRcdH0gQGVsc2UgaWYgKGlzU29ydGFibGUoKSkge1xyXG5cdFx0XHRcdFx0XHQ8dGhcclxuXHRcdFx0XHRcdFx0XHRbcFNvcnRhYmxlQ29sdW1uXT1cImNvbHVtbi5maWVsZCgpXCJcclxuXHRcdFx0XHRcdFx0XHRbbmdTdHlsZV09XCJ7IHdpZHRoOiBjb2x1bW4ud2lkdGgoKSA/IGNvbHVtbi53aWR0aCgpIDogJ2F1dG8nIH1cIlxyXG5cdFx0XHRcdFx0XHRcdHN0eWxlPVwibWluLXdpZHRoOiAxNzBweFwiPlxyXG5cdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0e3sgY29sdW1uLmhlYWRlcigpIH19XHJcblx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleFwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRAaWYgKGNvbHVtbi5pc1Nob3dIZWFkZXJUb29sdGlwKCkpIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8aVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0c3R5bGU9XCJjb2xvcjogZ3JlZW47IHBhZGRpbmctdG9wOiA0cHg7IHBhZGRpbmctbGVmdDogNHB4XCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNsYXNzPVwicGkgcGktaW5mby1jaXJjbGVcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0W3BUb29sdGlwXT1cImNvbHVtbi50b29sdGlwVGVtcGxhdGUoKVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0b29sdGlwUG9zaXRpb249XCJ0b3BcIj48L2k+XHJcblx0XHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHAtc29ydEljb24gW2ZpZWxkXT1cImNvbHVtbi5maWVsZCgpXCI+PC9wLXNvcnRJY29uPlxyXG5cdFx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdDwvdGg+XHJcblx0XHRcdFx0XHR9IEBlbHNlIHtcclxuXHRcdFx0XHRcdFx0PHRoIFtuZ1N0eWxlXT1cInsgd2lkdGg6IGNvbHVtbi53aWR0aCgpID8gY29sdW1uLndpZHRoKCkgOiAnYXV0bycgfVwiIHN0eWxlPVwibWluLXdpZHRoOiAxNzBweFwiPlxyXG5cdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0e3sgY29sdW1uLmhlYWRlcigpIH19XHJcblx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleFwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRAaWYgKGNvbHVtbi5pc1Nob3dIZWFkZXJUb29sdGlwKCkpIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8aVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0c3R5bGU9XCJjb2xvcjogZ3JlZW47IHBhZGRpbmctdG9wOiA0cHg7IHBhZGRpbmctbGVmdDogNHB4XCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNsYXNzPVwicGkgcGktaW5mby1jaXJjbGVcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0W3BUb29sdGlwXT1cImNvbHVtbi50b29sdGlwVGVtcGxhdGUoKVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0b29sdGlwUG9zaXRpb249XCJ0b3BcIj48L2k+XHJcblx0XHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHQ8L3RoPlxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0PC90cj5cclxuXHQ8L25nLXRlbXBsYXRlPlxyXG5cclxuXHQ8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiYm9keVwiIGxldC1pdGVtIGxldC1jb2x1bW5zPVwiY29sdW1uc1wiPlxyXG5cdFx0QGlmIChoYW5kbGVkU2VsZWN0aW9uTW9kZSkge1xyXG5cdFx0XHQ8dHIgW3BTZWxlY3RhYmxlUm93XT1cIml0ZW1cIiBbbmdTdHlsZV09XCJ7ICdiYWNrZ3JvdW5kLWNvbG9yJzogaXRlbT8ucm93Q29sb3IgPyBpdGVtPy5yb3dDb2xvciA6ICcjZmZmJyB9XCI+XHJcblx0XHRcdFx0QGZvciAoY29sdW1uIG9mIGNvbHVtbnM7IHRyYWNrICRpbmRleCkge1xyXG5cdFx0XHRcdFx0PHRkIFtuZ1N0eWxlXT1cInsgJ3RleHQtYWxpZ24nOiBjb2x1bW4udHlwZSgpID09PSAnb3BlcmF0aW9ucycgPyAnY2VudGVyJyA6IGNvbHVtbi50QWxpZ24oKSB8fCB0QWxpZ24oKSB9XCI+XHJcblx0XHRcdFx0XHRcdDxuZy10ZW1wbGF0ZSBuZ0ZvciBbbmdGb3JPZl09XCJbaXRlbV1cIiBbbmdGb3JUZW1wbGF0ZV09XCJjb2x1bW4udGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxyXG5cdFx0XHRcdFx0PC90ZD5cclxuXHRcdFx0XHR9XHJcblx0XHRcdDwvdHI+XHJcblx0XHR9IEBlbHNlIHtcclxuXHRcdFx0PHRyIFtuZ1N0eWxlXT1cInsgJ2JhY2tncm91bmQtY29sb3InOiBpdGVtPy5yb3dDb2xvciA/IGl0ZW0/LnJvd0NvbG9yIDogJyNmZmYnIH1cIj5cclxuXHRcdFx0XHRAaWYgKGNoZWNrYm94U2VsZWN0aW9uKCkpIHtcclxuXHRcdFx0XHRcdDx0ZD5cclxuXHRcdFx0XHRcdFx0PHAtdGFibGVDaGVja2JveCBbdmFsdWVdPVwiaXRlbVwiPjwvcC10YWJsZUNoZWNrYm94PlxyXG5cdFx0XHRcdFx0PC90ZD5cclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdEBmb3IgKGNvbHVtbiBvZiBjb2x1bW5zOyB0cmFjayAkaW5kZXgpIHtcclxuXHRcdFx0XHRcdDx0ZCBbbmdTdHlsZV09XCJ7ICd0ZXh0LWFsaWduJzogY29sdW1uLnR5cGUoKSA9PT0gJ29wZXJhdGlvbnMnID8gJ2NlbnRlcicgOiBjb2x1bW4udEFsaWduKCkgfHwgdEFsaWduKCkgfVwiPlxyXG5cdFx0XHRcdFx0XHQ8bmctdGVtcGxhdGUgbmdGb3IgW25nRm9yT2ZdPVwiW2l0ZW1dXCIgW25nRm9yVGVtcGxhdGVdPVwiY29sdW1uLnRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cclxuXHRcdFx0XHRcdDwvdGQ+XHJcblx0XHRcdFx0fVxyXG5cdFx0XHQ8L3RyPlxyXG5cdFx0fVxyXG5cdDwvbmctdGVtcGxhdGU+XHJcblxyXG5cdEBpZiAoc2hvd0Zvb3RlcigpKSB7XHJcblx0XHQ8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwic3VtbWFyeVwiPlxyXG5cdFx0XHQ8bmctY29udGVudCBzZWxlY3Q9XCJbZm9vdGVyXVwiPjwvbmctY29udGVudD5cclxuXHRcdDwvbmctdGVtcGxhdGU+XHJcblx0fVxyXG5cclxuXHQ8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiZW1wdHltZXNzYWdlXCI+XHJcblx0XHQ8dHI+XHJcblx0XHRcdDx0ZCBbYXR0ci5jb2xzcGFuXT1cImNvbHVtbnMuX3Jlc3VsdHMubGVuZ3RoXCI+e3sgbm9EYXRhRm91bmRMYWJlbCgpIH19PC90ZD5cclxuXHRcdDwvdHI+XHJcblx0PC9uZy10ZW1wbGF0ZT5cclxuPC9wLXRhYmxlPlxyXG5cclxuPHAtb3ZlcmxheVBhbmVsIHN0eWxlQ2xhc3M9XCJleHBvcnQtb3ZlcmxheS1wYW5lbFwiPlxyXG5cdEBpZiAoZXhwb3J0Rm9ybSkge1xyXG5cdFx0PGFyaWwtZm9ybSBbZm9ybUdyb3VwXT1cImV4cG9ydEZvcm1cIiBjbGFzcz1cInctMjByZW1cIj5cclxuXHRcdFx0PGFyaWwtZmllbGQgW2xhYmVsXT1cIidFeHBvcnQgVGlwaSdcIiBbY29sc109XCJ7IGRlZmF1bHQ6IDEyIH1cIj5cclxuXHRcdFx0XHQ8YXJpbC1yYWRpby1idXR0b24gZm9ybUNvbnRyb2xOYW1lPVwiZXhwb3J0VHlwZVwiIFtvcHRpb25zXT1cImV4cG9ydFR5cGVPcHRpb25zXCIgLz5cclxuXHRcdFx0PC9hcmlsLWZpZWxkPlxyXG5cclxuXHRcdFx0PGFyaWwtZmllbGQgW2xhYmVsXT1cIidEb3N5YSDEsHNtaSdcIiBbY29sc109XCJ7IGRlZmF1bHQ6IDEyIH1cIj5cclxuXHRcdFx0XHQ8YXJpbC10ZXh0IGNsYXNzPVwidy1mdWxsXCIgZm9ybUNvbnRyb2xOYW1lPVwiZXhwb3J0TGFiZWxcIiAvPlxyXG5cdFx0XHQ8L2FyaWwtZmllbGQ+XHJcblxyXG5cdFx0XHQ8bmctY29udGFpbmVyIGZvcm1BcnJheU5hbWU9XCJjb2x1bW5zXCI+XHJcblx0XHRcdFx0PHAtb3JkZXJMaXN0XHJcblx0XHRcdFx0XHQjb3JkZXJMaXN0UmVmXHJcblx0XHRcdFx0XHRjbGFzcz1cImNvbC0xMlwiXHJcblx0XHRcdFx0XHRbdmFsdWVdPVwiZXhwb3J0Rm9ybS5jb250cm9scy5jb2x1bW5zLmNvbnRyb2xzXCJcclxuXHRcdFx0XHRcdFtsaXN0U3R5bGVdPVwieyAnbWF4LWhlaWdodCc6ICcyMHJlbScgfVwiXHJcblx0XHRcdFx0XHRmaWx0ZXJCeT1cInZhbHVlLnRpdGxlXCI+XHJcblx0XHRcdFx0XHQ8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiZmlsdGVyXCI+XHJcblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtM1wiPlxyXG5cdFx0XHRcdFx0XHRcdDxhcmlsLWNoZWNrYm94XHJcblx0XHRcdFx0XHRcdFx0XHRbbGFiZWxdPVwiJydcIlxyXG5cdFx0XHRcdFx0XHRcdFx0W25nTW9kZWxdPVwiaXNBbGxTZWxlY3RlZFwiXHJcblx0XHRcdFx0XHRcdFx0XHRbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG5cdFx0XHRcdFx0XHRcdFx0KG5nTW9kZWxDaGFuZ2UpPVwib25TZWxlY3RBbGwoJGV2ZW50KVwiIC8+XHJcblxyXG5cdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJwLW9yZGVybGlzdC1maWx0ZXJcIiBbYXR0ci5kYXRhLXBjLXNlY3Rpb25dPVwiJ2ZpbHRlcidcIj5cclxuXHRcdFx0XHRcdFx0XHRcdDxpbnB1dFxyXG5cdFx0XHRcdFx0XHRcdFx0XHQjZmlsdGVyXHJcblx0XHRcdFx0XHRcdFx0XHRcdHR5cGU9XCJ0ZXh0XCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0cm9sZT1cInRleHRib3hcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQoa2V5dXApPVwib3JkZXJMaXN0UmVmLm9uRmlsdGVyS2V5dXAoJGV2ZW50KVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFtkaXNhYmxlZF09XCJvcmRlckxpc3RSZWYuZGlzYWJsZWRcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRjbGFzcz1cInAtb3JkZXJsaXN0LWZpbHRlci1pbnB1dCBwLWlucHV0dGV4dCBwLWNvbXBvbmVudFwiIC8+XHJcblx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHRcdFx0XHRcdDxuZy10ZW1wbGF0ZSBsZXQtY29sIHBUZW1wbGF0ZT1cIml0ZW1cIj5cclxuXHRcdFx0XHRcdFx0PGFyaWwtY2hlY2tib3ggW2xhYmVsXT1cImNvbC52YWx1ZS50aXRsZVwiIFtmb3JtQ29udHJvbF09XCJjb2wuY29udHJvbHMuY2hlY2tlZFwiIC8+XHJcblx0XHRcdFx0XHQ8L25nLXRlbXBsYXRlPlxyXG5cdFx0XHRcdDwvcC1vcmRlckxpc3Q+XHJcblx0XHRcdDwvbmctY29udGFpbmVyPlxyXG5cclxuXHRcdFx0PGFyaWwtYnV0dG9uIGNsYXNzPVwiY29sLTEyXCIgbGFiZWw9XCJFeHBvcnRcIiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2tFdmVudCk9XCJleHBvcnQoKVwiIC8+XHJcblx0XHQ8L2FyaWwtZm9ybT5cclxuXHR9XHJcbjwvcC1vdmVybGF5UGFuZWw+XHJcbiJdfQ==
|
|
@@ -78,10 +78,10 @@ export class ValueComponent {
|
|
|
78
78
|
return item[this.arrayTypeDisplayName()];
|
|
79
79
|
}
|
|
80
80
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ValueComponent, deps: [{ token: i1.TranslocoService }, { token: i2.SelectionGroupService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
81
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: ValueComponent, isStandalone: true, selector: "aril-value", inputs: { model: { classPropertyName: "model", publicName: "model", isSignal: true, isRequired: true, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, format: { classPropertyName: "format", publicName: "format", isSignal: true, isRequired: false, transformFunction: null }, isClickable: { classPropertyName: "isClickable", publicName: "isClickable", isSignal: true, isRequired: false, transformFunction: null }, groupName: { classPropertyName: "groupName", publicName: "groupName", isSignal: true, isRequired: false, transformFunction: null }, parentSelectionKey: { classPropertyName: "parentSelectionKey", publicName: "parentSelectionKey", isSignal: true, isRequired: false, transformFunction: null }, isTextClamp: { classPropertyName: "isTextClamp", publicName: "isTextClamp", isSignal: true, isRequired: false, transformFunction: null }, style: { classPropertyName: "style", publicName: "style", isSignal: true, isRequired: false, transformFunction: null }, arrayTypeDisplayName: { classPropertyName: "arrayTypeDisplayName", publicName: "arrayTypeDisplayName", isSignal: true, isRequired: false, transformFunction: null }, arrayTypeMaxBadgeCount: { classPropertyName: "arrayTypeMaxBadgeCount", publicName: "arrayTypeMaxBadgeCount", isSignal: true, isRequired: false, transformFunction: null } }, providers: [DialogService], ngImport: i0, template: "@if (model() == undefined || model() == null) {\r\n\t<i\r\n\t\tclass=\"pi pi-minus\"\r\n\t\tstyle=\"color: red\"\r\n\t\t[pTooltip]=\"this.translocoService.translate('validations.noItemToShow')\"></i>\r\n} @else {\r\n\t@if (type() == 'bool') {\r\n\t\t@if (!!model()) {\r\n\t\t\t<i class=\"pi pi-check\" style=\"color: green\"></i>\r\n\t\t} @else {\r\n\t\t\t<i class=\"pi pi-times\" style=\"color: crimson\"></i>\r\n\t\t}\r\n\t} @else if (type() === 'enum') {\r\n\t\t@if (enumSelectionDisplay() == undefined) {\r\n\t\t\t<i\r\n\t\t\t\tclass=\"pi pi-exclamation-circle\"\r\n\t\t\t\tstyle=\"color: red\"\r\n\t\t\t\t[pTooltip]=\"this.translocoService.translate('validations.invalidDataFormat')\">\r\n\t\t\t</i>\r\n\t\t} @else {\r\n\t\t\t<aril-badge [background]=\"enumBadgeBackgroundColor()\" [value]=\"enumSelectionDisplay()\"></aril-badge>\r\n\t\t}\r\n\t} @else if (type() === 'array') {\r\n\t\t<div class=\"flex align-items-center gap-1\">\r\n\t\t\t@for (item of model().slice(0, arrayTypeMaxBadgeCount()); track item) {\r\n\t\t\t\t<aril-badge [background]=\"getArrayItemValue(item) || '' | enumColorPicker\" [value]=\"getArrayItemValue(item)\" />\r\n\t\t\t}\r\n\t\t\t@if (model().length > arrayTypeMaxBadgeCount()) {\r\n\t\t\t\t<i
|
|
81
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: ValueComponent, isStandalone: true, selector: "aril-value", inputs: { model: { classPropertyName: "model", publicName: "model", isSignal: true, isRequired: true, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, format: { classPropertyName: "format", publicName: "format", isSignal: true, isRequired: false, transformFunction: null }, isClickable: { classPropertyName: "isClickable", publicName: "isClickable", isSignal: true, isRequired: false, transformFunction: null }, groupName: { classPropertyName: "groupName", publicName: "groupName", isSignal: true, isRequired: false, transformFunction: null }, parentSelectionKey: { classPropertyName: "parentSelectionKey", publicName: "parentSelectionKey", isSignal: true, isRequired: false, transformFunction: null }, isTextClamp: { classPropertyName: "isTextClamp", publicName: "isTextClamp", isSignal: true, isRequired: false, transformFunction: null }, style: { classPropertyName: "style", publicName: "style", isSignal: true, isRequired: false, transformFunction: null }, arrayTypeDisplayName: { classPropertyName: "arrayTypeDisplayName", publicName: "arrayTypeDisplayName", isSignal: true, isRequired: false, transformFunction: null }, arrayTypeMaxBadgeCount: { classPropertyName: "arrayTypeMaxBadgeCount", publicName: "arrayTypeMaxBadgeCount", isSignal: true, isRequired: false, transformFunction: null } }, providers: [DialogService], ngImport: i0, template: "@if (model() == undefined || model() == null) {\r\n\t<i\r\n\t\tclass=\"pi pi-minus\"\r\n\t\tstyle=\"color: red\"\r\n\t\t[pTooltip]=\"this.translocoService.translate('validations.noItemToShow')\"></i>\r\n} @else {\r\n\t@if (type() == 'bool') {\r\n\t\t@if (!!model()) {\r\n\t\t\t<i class=\"pi pi-check\" style=\"color: green\"></i>\r\n\t\t} @else {\r\n\t\t\t<i class=\"pi pi-times\" style=\"color: crimson\"></i>\r\n\t\t}\r\n\t} @else if (type() === 'enum') {\r\n\t\t@if (enumSelectionDisplay() == undefined) {\r\n\t\t\t<i\r\n\t\t\t\tclass=\"pi pi-exclamation-circle\"\r\n\t\t\t\tstyle=\"color: red\"\r\n\t\t\t\t[pTooltip]=\"this.translocoService.translate('validations.invalidDataFormat')\">\r\n\t\t\t</i>\r\n\t\t} @else {\r\n\t\t\t<aril-badge [background]=\"enumBadgeBackgroundColor()\" [value]=\"enumSelectionDisplay()\"></aril-badge>\r\n\t\t}\r\n\t} @else if (type() === 'array') {\r\n\t\t<div class=\"flex align-items-center gap-1\">\r\n\t\t\t@for (item of model().slice(0, arrayTypeMaxBadgeCount()); track item) {\r\n\t\t\t\t<aril-badge [background]=\"getArrayItemValue(item) || '' | enumColorPicker\" [value]=\"getArrayItemValue(item)\" />\r\n\t\t\t}\r\n\t\t\t@if (model().length > arrayTypeMaxBadgeCount()) {\r\n\t\t\t\t<i class=\"pi pi-ellipsis-v cursor-pointer\" (click)=\"op.toggle($event)\"></i>\r\n\r\n\t\t\t\t<p-overlayPanel #op class=\"shadow-4\" appendTo=\"body\">\r\n\t\t\t\t\t<div class=\"flex flex-column gap-2 max-w-30rem max-h-20rem pr-3 overflow-y-auto\">\r\n\t\t\t\t\t\t@for (item of model() | slice: arrayTypeMaxBadgeCount(); track item) {\r\n\t\t\t\t\t\t\t<aril-badge\r\n\t\t\t\t\t\t\t\t[background]=\"getArrayItemValue(item) || '' | enumColorPicker\"\r\n\t\t\t\t\t\t\t\t[value]=\"getArrayItemValue(item)\" />\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</p-overlayPanel>\r\n\t\t\t}\r\n\t\t</div>\r\n\t} @else {\r\n\t\t@if (display() == undefined) {\r\n\t\t\t<i\r\n\t\t\t\tclass=\"pi pi-exclamation-circle\"\r\n\t\t\t\tstyle=\"color: red\"\r\n\t\t\t\t[pTooltip]=\"this.translocoService.translate('validations.invalidDataFormat')\">\r\n\t\t\t</i>\r\n\t\t} @else {\r\n\t\t\t<span\r\n\t\t\t\t[pTooltip]=\"type() === 'text' && isTextClamp() ? display()?.toString() : ''\"\r\n\t\t\t\t[style]=\"isClickable() ? { 'text-decoration': 'underline', color: '#0000EE', cursor: 'pointer' } : ''\">\r\n\t\t\t\t{{ type() === 'text' && isTextClamp() && display().length > 15 ? display().substr(0, 14) + '...' : display() }}\r\n\t\t\t</span>\r\n\t\t}\r\n\t}\r\n}\r\n", dependencies: [{ kind: "component", type: BadgeComponent, selector: "aril-badge", inputs: ["icon", "value", "severity", "rounded", "background", "styleClass"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i3.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "ngmodule", type: TranslocoModule }, { kind: "ngmodule", type: OverlayPanelModule }, { kind: "component", type: i4.OverlayPanel, selector: "p-overlayPanel", inputs: ["ariaLabel", "ariaLabelledBy", "dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { kind: "pipe", type: EnumColorPickerPipe, name: "enumColorPicker" }, { kind: "pipe", type: SlicePipe, name: "slice" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
82
82
|
}
|
|
83
83
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ValueComponent, decorators: [{
|
|
84
84
|
type: Component,
|
|
85
|
-
args: [{ standalone: true, selector: 'aril-value', imports: [BadgeComponent, TooltipModule, TranslocoModule, OverlayPanelModule, EnumColorPickerPipe, SlicePipe], changeDetection: ChangeDetectionStrategy.OnPush, providers: [DialogService], template: "@if (model() == undefined || model() == null) {\r\n\t<i\r\n\t\tclass=\"pi pi-minus\"\r\n\t\tstyle=\"color: red\"\r\n\t\t[pTooltip]=\"this.translocoService.translate('validations.noItemToShow')\"></i>\r\n} @else {\r\n\t@if (type() == 'bool') {\r\n\t\t@if (!!model()) {\r\n\t\t\t<i class=\"pi pi-check\" style=\"color: green\"></i>\r\n\t\t} @else {\r\n\t\t\t<i class=\"pi pi-times\" style=\"color: crimson\"></i>\r\n\t\t}\r\n\t} @else if (type() === 'enum') {\r\n\t\t@if (enumSelectionDisplay() == undefined) {\r\n\t\t\t<i\r\n\t\t\t\tclass=\"pi pi-exclamation-circle\"\r\n\t\t\t\tstyle=\"color: red\"\r\n\t\t\t\t[pTooltip]=\"this.translocoService.translate('validations.invalidDataFormat')\">\r\n\t\t\t</i>\r\n\t\t} @else {\r\n\t\t\t<aril-badge [background]=\"enumBadgeBackgroundColor()\" [value]=\"enumSelectionDisplay()\"></aril-badge>\r\n\t\t}\r\n\t} @else if (type() === 'array') {\r\n\t\t<div class=\"flex align-items-center gap-1\">\r\n\t\t\t@for (item of model().slice(0, arrayTypeMaxBadgeCount()); track item) {\r\n\t\t\t\t<aril-badge [background]=\"getArrayItemValue(item) || '' | enumColorPicker\" [value]=\"getArrayItemValue(item)\" />\r\n\t\t\t}\r\n\t\t\t@if (model().length > arrayTypeMaxBadgeCount()) {\r\n\t\t\t\t<i
|
|
85
|
+
args: [{ standalone: true, selector: 'aril-value', imports: [BadgeComponent, TooltipModule, TranslocoModule, OverlayPanelModule, EnumColorPickerPipe, SlicePipe], changeDetection: ChangeDetectionStrategy.OnPush, providers: [DialogService], template: "@if (model() == undefined || model() == null) {\r\n\t<i\r\n\t\tclass=\"pi pi-minus\"\r\n\t\tstyle=\"color: red\"\r\n\t\t[pTooltip]=\"this.translocoService.translate('validations.noItemToShow')\"></i>\r\n} @else {\r\n\t@if (type() == 'bool') {\r\n\t\t@if (!!model()) {\r\n\t\t\t<i class=\"pi pi-check\" style=\"color: green\"></i>\r\n\t\t} @else {\r\n\t\t\t<i class=\"pi pi-times\" style=\"color: crimson\"></i>\r\n\t\t}\r\n\t} @else if (type() === 'enum') {\r\n\t\t@if (enumSelectionDisplay() == undefined) {\r\n\t\t\t<i\r\n\t\t\t\tclass=\"pi pi-exclamation-circle\"\r\n\t\t\t\tstyle=\"color: red\"\r\n\t\t\t\t[pTooltip]=\"this.translocoService.translate('validations.invalidDataFormat')\">\r\n\t\t\t</i>\r\n\t\t} @else {\r\n\t\t\t<aril-badge [background]=\"enumBadgeBackgroundColor()\" [value]=\"enumSelectionDisplay()\"></aril-badge>\r\n\t\t}\r\n\t} @else if (type() === 'array') {\r\n\t\t<div class=\"flex align-items-center gap-1\">\r\n\t\t\t@for (item of model().slice(0, arrayTypeMaxBadgeCount()); track item) {\r\n\t\t\t\t<aril-badge [background]=\"getArrayItemValue(item) || '' | enumColorPicker\" [value]=\"getArrayItemValue(item)\" />\r\n\t\t\t}\r\n\t\t\t@if (model().length > arrayTypeMaxBadgeCount()) {\r\n\t\t\t\t<i class=\"pi pi-ellipsis-v cursor-pointer\" (click)=\"op.toggle($event)\"></i>\r\n\r\n\t\t\t\t<p-overlayPanel #op class=\"shadow-4\" appendTo=\"body\">\r\n\t\t\t\t\t<div class=\"flex flex-column gap-2 max-w-30rem max-h-20rem pr-3 overflow-y-auto\">\r\n\t\t\t\t\t\t@for (item of model() | slice: arrayTypeMaxBadgeCount(); track item) {\r\n\t\t\t\t\t\t\t<aril-badge\r\n\t\t\t\t\t\t\t\t[background]=\"getArrayItemValue(item) || '' | enumColorPicker\"\r\n\t\t\t\t\t\t\t\t[value]=\"getArrayItemValue(item)\" />\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</p-overlayPanel>\r\n\t\t\t}\r\n\t\t</div>\r\n\t} @else {\r\n\t\t@if (display() == undefined) {\r\n\t\t\t<i\r\n\t\t\t\tclass=\"pi pi-exclamation-circle\"\r\n\t\t\t\tstyle=\"color: red\"\r\n\t\t\t\t[pTooltip]=\"this.translocoService.translate('validations.invalidDataFormat')\">\r\n\t\t\t</i>\r\n\t\t} @else {\r\n\t\t\t<span\r\n\t\t\t\t[pTooltip]=\"type() === 'text' && isTextClamp() ? display()?.toString() : ''\"\r\n\t\t\t\t[style]=\"isClickable() ? { 'text-decoration': 'underline', color: '#0000EE', cursor: 'pointer' } : ''\">\r\n\t\t\t\t{{ type() === 'text' && isTextClamp() && display().length > 15 ? display().substr(0, 14) + '...' : display() }}\r\n\t\t\t</span>\r\n\t\t}\r\n\t}\r\n}\r\n" }]
|
|
86
86
|
}], ctorParameters: () => [{ type: i1.TranslocoService }, { type: i2.SelectionGroupService }] });
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsdWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC91aS92YWx1ZS9zcmMvdmFsdWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC91aS92YWx1ZS9zcmMvdmFsdWUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVwRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWhELE9BQU8sRUFBRSxlQUFlLEVBQW9CLE1BQU0sbUJBQW1CLENBQUM7QUFHdEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbEQsT0FBTyxnQ0FBZ0MsQ0FBQzs7Ozs7O0FBcUJ4QyxNQUFNLE9BQU8sY0FBYztJQWMxQixZQUNRLGdCQUFrQyxFQUNqQyxxQkFBNEM7UUFEN0MscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNqQywwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBZnJELFVBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFtQyxDQUFDO1FBQzFELFNBQUksR0FBRyxLQUFLLENBQWEsTUFBTSxDQUFDLENBQUM7UUFDakMsV0FBTSxHQUFHLEtBQUssRUFBVSxDQUFDO1FBQ3pCLGdCQUFXLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ3BD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V0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsYUFBYSxDQUFDLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBZ0RELGlCQUFpQixDQUFDLElBQVM7UUFDMUIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FBQztJQUMxQyxDQUFDOzhHQTlFVyxjQUFjO2tHQUFkLGNBQWMsMjZDQUZmLENBQUMsYUFBYSxDQUFDLDBCQy9CM0IsNm1GQThEQSw0Q0RqQ1csY0FBYyxvSUFBRSxhQUFhLHFYQUFFLGVBQWUsOEJBQUUsa0JBQWtCLDhWQUFFLG1CQUFtQixtREFBRSxTQUFTOzsyRkFJaEcsY0FBYztrQkFSMUIsU0FBUztpQ0FDRyxJQUFJLFlBQ04sWUFBWSxXQUViLENBQUMsY0FBYyxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQUUsU0FBUyxDQUFDLG1CQUM1Rix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2xpY2VQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAncHJpbWVuZy9keW5hbWljZGlhbG9nJztcclxuaW1wb3J0IHsgT3ZlcmxheVBhbmVsTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9vdmVybGF5cGFuZWwnO1xyXG5pbXBvcnQgeyBUb29sdGlwTW9kdWxlIH0gZnJvbSAncHJpbWVuZy90b29sdGlwJztcclxuXHJcbmltcG9ydCB7IFRyYW5zbG9jb01vZHVsZSwgVHJhbnNsb2NvU2VydmljZSB9IGZyb20gJ0BuZ25lYXQvdHJhbnNsb2NvJztcclxuXHJcbmltcG9ydCB7IFNlbGVjdGlvbkdyb3VwU2VydmljZSB9IGZyb20gJ2FyaWwvdGhlbWUvbGF5b3V0JztcclxuaW1wb3J0IHsgQmFkZ2VDb21wb25lbnQgfSBmcm9tICdhcmlsL3VpL2JhZGdlJztcclxuaW1wb3J0IHsgRW51bUNvbG9yUGlja2VyUGlwZSB9IGZyb20gJ2FyaWwvdWkvbGliJztcclxuaW1wb3J0ICdhcmlsL3V0aWwvcHJpbWl0aXZlLWV4dGVuc2lvbnMnO1xyXG5cclxuLyogbnVtYmVyLWZvcm1hdC5qcyAqL1xyXG4vLyBUT0RPIGRlY2xhcmUgY29uc3QgZm9ybWF0OiBGdW5jdGlvbjtcclxuXHJcbi8qKiBUeXBlIEZvcm1hdHNcclxuICogIy4wMCAtPiBWaXJnw7xsZGVuIHNvbnJhIDIgaGFuZSAoRGVjaW1hbClcclxuICogIy4wMDAwIC0+IFZpcmfDvGxkZW4gc29ucmEgNCBoYW5lIChEZWNpbWFsKVxyXG4gKiAwLiMjIyAtPiBTYWRlY2UgdGFtIHNhecSxIGfDtnN0ZXJtZXNpIGnDp2luIChOdW1iZXIpXHJcbiAqL1xyXG5cclxudHlwZSBWYWx1ZVR5cGVzID0gJ3RleHQnIHwgJ251bWJlcicgfCAnYm9vbCcgfCAnZGVjaW1hbCcgfCAnZGF0ZScgfCAncGFzc3dvcmQnIHwgJ2VudW0nIHwgJ2FycmF5JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHN0YW5kYWxvbmU6IHRydWUsXHJcblx0c2VsZWN0b3I6ICdhcmlsLXZhbHVlJyxcclxuXHR0ZW1wbGF0ZVVybDogJy4vdmFsdWUuY29tcG9uZW50Lmh0bWwnLFxyXG5cdGltcG9ydHM6IFtCYWRnZUNvbXBvbmVudCwgVG9vbHRpcE1vZHVsZSwgVHJhbnNsb2NvTW9kdWxlLCBPdmVybGF5UGFuZWxNb2R1bGUsIEVudW1Db2xvclBpY2tlclBpcGUsIFNsaWNlUGlwZV0sXHJcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcblx0cHJvdmlkZXJzOiBbRGlhbG9nU2VydmljZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFZhbHVlQ29tcG9uZW50IHtcclxuXHRtb2RlbCA9IGlucHV0LnJlcXVpcmVkPHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBhbnk+KCk7XHJcblx0dHlwZSA9IGlucHV0PFZhbHVlVHlwZXM+KCd0ZXh0Jyk7XHJcblx0Zm9ybWF0ID0gaW5wdXQ8c3RyaW5nPigpO1xyXG5cdGlzQ2xpY2thYmxlID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cdGdyb3VwTmFtZSA9IGlucHV0PHN0cmluZz4oKTtcclxuXHRwYXJlbnRTZWxlY3Rpb25LZXkgPSBpbnB1dDxzdHJpbmc+KCdBTEwnKTtcclxuXHRpc1RleHRDbGFtcCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHRzdHlsZSA9IGlucHV0PHN0cmluZz4oKTtcclxuXHJcblx0Ly8gb25seSBmb3IgYXJyYXkgdHlwZVxyXG5cdGFycmF5VHlwZURpc3BsYXlOYW1lID0gaW5wdXQ8c3RyaW5nPigndmFsdWVEZXNjJyk7XHJcblx0YXJyYXlUeXBlTWF4QmFkZ2VDb3VudCA9IGlucHV0PG51bWJlcj4oMyk7XHJcblxyXG5cdGNvbnN0cnVjdG9yKFxyXG5cdFx0cHVibGljIHRyYW5zbG9jb1NlcnZpY2U6IFRyYW5zbG9jb1NlcnZpY2UsXHJcblx0XHRwcml2YXRlIHNlbGVjdGlvbkdyb3VwU2VydmljZTogU2VsZWN0aW9uR3JvdXBTZXJ2aWNlXHJcblx0KSB7fVxyXG5cclxuXHRwcml2YXRlIGZvcm1hdE51bWJlcih2YWx1ZTogbnVtYmVyLCBmb3JtYXRTdHJpbmc6IHN0cmluZywgaXNEZWNpbWFsOiBib29sZWFuKTogc3RyaW5nIHtcclxuXHRcdGNvbnN0IFtpbnRlZ2VyUGFydCwgZGVjaW1hbFBhcnQgPSAnJ10gPSB2YWx1ZS50b1N0cmluZygpLnNwbGl0KCcuJyk7XHJcblx0XHRjb25zdCBmb3JtYXR0ZWRJbnRlZ2VyID0gaW50ZWdlclBhcnQucmVwbGFjZSgvXFxCKD89KFxcZHszfSkrKD8hXFxkKSkvZywgJy4nKTtcclxuXHRcdHJldHVybiBpc0RlY2ltYWwgPyBgJHtmb3JtYXR0ZWRJbnRlZ2VyfSwke3RoaXMuZm9ybWF0RGVjaW1hbChkZWNpbWFsUGFydCwgZm9ybWF0U3RyaW5nKX1gIDogZm9ybWF0dGVkSW50ZWdlcjtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgZm9ybWF0RGVjaW1hbChkZWNpbWFsUGFydDogc3RyaW5nLCBmb3JtYXRTdHJpbmc6IHN0cmluZyk6IHN0cmluZyB7XHJcblx0XHRjb25zdCBkZWNpbWFsUGxhY2VzID0gZm9ybWF0U3RyaW5nLmluY2x1ZGVzKCcuJykgPyBmb3JtYXRTdHJpbmcuc3BsaXQoJy4nKVsxXS5sZW5ndGggOiAzO1xyXG5cdFx0cmV0dXJuIGRlY2ltYWxQYXJ0LnNsaWNlKDAsIGRlY2ltYWxQbGFjZXMpLnBhZEVuZChkZWNpbWFsUGxhY2VzLCAnMCcpO1xyXG5cdH1cclxuXHJcblx0Y29sb3JMaXN0ID0gWycjOEVDRUVCJywgJyM1RUJBRTAnLCAnIzJDOUNDQicsICcjMUQ3REFDJywgJyMxOTY1OEInLCAnMTg1NTc0JywgJzdEODVGQycsICc1OTU3RjUnLCAnMTk0NzYxJywgJzUxNDFFQSddO1xyXG5cclxuXHRkaXNwbGF5ID0gY29tcHV0ZWQoKCkgPT4ge1xyXG5cdFx0Y29uc3QgYXBwbGllZEZvcm1hdCA9IHRoaXMuZm9ybWF0KCkgfHwgKHRoaXMudHlwZSgpID09PSAnZGVjaW1hbCcgPyAnIy4wMDAnIDogJzAuIyMjJyk7XHJcblxyXG5cdFx0c3dpdGNoICh0aGlzLnR5cGUoKSkge1xyXG5cdFx0XHRjYXNlICd0ZXh0JzpcclxuXHRcdFx0XHRyZXR1cm4gdGhpcy5tb2RlbCgpO1xyXG5cdFx0XHRjYXNlICdudW1iZXInOlxyXG5cdFx0XHRcdHJldHVybiB0aGlzLmZvcm1hdE51bWJlcig8bnVtYmVyPnRoaXMubW9kZWwoKSwgYXBwbGllZEZvcm1hdCwgZmFsc2UpO1xyXG5cdFx0XHRjYXNlICdkZWNpbWFsJzpcclxuXHRcdFx0XHRyZXR1cm4gdGhpcy5mb3JtYXROdW1iZXIoPG51bWJlcj50aGlzLm1vZGVsKCksIGFwcGxpZWRGb3JtYXQsIHRydWUpO1xyXG5cdFx0XHRjYXNlICdkYXRlJzpcclxuXHRcdFx0XHRyZXR1cm4gKDxudW1iZXI+dGhpcy5tb2RlbCgpKS5sb25nVG9TdHJpbmcodGhpcy5mb3JtYXQoKSA/PyAndGltZScpO1xyXG5cdFx0XHRjYXNlICdwYXNzd29yZCc6XHJcblx0XHRcdFx0cmV0dXJuICg8c3RyaW5nPnRoaXMubW9kZWwoKSkucmVwbGFjZSgvLi9nLCAnKicpO1xyXG5cdFx0XHRkZWZhdWx0OlxyXG5cdFx0XHRcdGNvbnNvbGUuZXJyb3IoXCJJbnZhbGlkIHR5cGU6ICdcIiArIHRoaXMudHlwZSgpICsgXCInXCIpO1xyXG5cdFx0XHRcdHJldHVybiAnJztcclxuXHRcdH1cclxuXHR9KTtcclxuXHJcblx0ZW51bVNlbGVjdGlvbkRpc3BsYXkgPSBjb21wdXRlZCgoKSA9PiB7XHJcblx0XHRjb25zdCBzZWxlY3Rpb25Hcm91cCA9XHJcblx0XHRcdHRoaXMuc2VsZWN0aW9uR3JvdXBTZXJ2aWNlLnNlbGVjdGlvbkdyb3VwcygpW2Ake3RoaXMuZ3JvdXBOYW1lKCkhfX4ke3RoaXMucGFyZW50U2VsZWN0aW9uS2V5KCkhfWBdO1xyXG5cclxuXHRcdGlmICghc2VsZWN0aW9uR3JvdXApIHRoaXMuc2VsZWN0aW9uR3JvdXBTZXJ2aWNlLmZldGNoRW51bSh0aGlzLmdyb3VwTmFtZSgpISwgdGhpcy5wYXJlbnRTZWxlY3Rpb25LZXkoKSEpO1xyXG5cclxuXHRcdHJldHVybiBzZWxlY3Rpb25Hcm91cD8uc2VsZWN0aW9uSXRlbXMuZmluZCgodCkgPT4gdC5zZWxlY3Rpb25LZXkgPT09IHRoaXMubW9kZWwoKSk/LnNlbGVjdGlvbkRpc3BsYXk7XHJcblx0fSk7XHJcblxyXG5cdGVudW1CYWRnZUJhY2tncm91bmRDb2xvciA9IGNvbXB1dGVkKCgpID0+IHtcclxuXHRcdGNvbnN0IHNlbGVjdGlvbkdyb3VwID1cclxuXHRcdFx0dGhpcy5zZWxlY3Rpb25Hcm91cFNlcnZpY2Uuc2VsZWN0aW9uR3JvdXBzKClbYCR7dGhpcy5ncm91cE5hbWUoKSF9fiR7dGhpcy5wYXJlbnRTZWxlY3Rpb25LZXkoKSF9YF07XHJcblx0XHRjb25zdCBzZWxlY3Rpb25JdGVtcyA9IHNlbGVjdGlvbkdyb3VwPy5zZWxlY3Rpb25JdGVtcyA/PyBbXTtcclxuXHJcblx0XHRjb25zdCBzZWxlY3Rpb25JdGVtID0gc2VsZWN0aW9uSXRlbXMuZmluZCgodCkgPT4gdC5zZWxlY3Rpb25LZXkgPT09IHRoaXMubW9kZWwoKSk7XHJcblxyXG5cdFx0aWYgKCFzZWxlY3Rpb25JdGVtKSB7XHJcblx0XHRcdHJldHVybiAnIzMzMyc7XHJcblx0XHR9IGVsc2UgaWYgKHRoaXMuY29sb3JMaXN0W3NlbGVjdGlvbkl0ZW0uc2hvd09yZGVyXSAhPT0gdW5kZWZpbmVkKSB7XHJcblx0XHRcdHJldHVybiB0aGlzLmNvbG9yTGlzdFtzZWxlY3Rpb25JdGVtLnNob3dPcmRlcl07XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gJyNBMkFGRkYnO1xyXG5cdH0pO1xyXG5cclxuXHRnZXRBcnJheUl0ZW1WYWx1ZShpdGVtOiBhbnkpOiBhbnkge1xyXG5cdFx0cmV0dXJuIGl0ZW1bdGhpcy5hcnJheVR5cGVEaXNwbGF5TmFtZSgpXTtcclxuXHR9XHJcbn1cclxuIiwiQGlmIChtb2RlbCgpID09IHVuZGVmaW5lZCB8fCBtb2RlbCgpID09IG51bGwpIHtcclxuXHQ8aVxyXG5cdFx0Y2xhc3M9XCJwaSBwaS1taW51c1wiXHJcblx0XHRzdHlsZT1cImNvbG9yOiByZWRcIlxyXG5cdFx0W3BUb29sdGlwXT1cInRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ3ZhbGlkYXRpb25zLm5vSXRlbVRvU2hvdycpXCI+PC9pPlxyXG59IEBlbHNlIHtcclxuXHRAaWYgKHR5cGUoKSA9PSAnYm9vbCcpIHtcclxuXHRcdEBpZiAoISFtb2RlbCgpKSB7XHJcblx0XHRcdDxpIGNsYXNzPVwicGkgcGktY2hlY2tcIiBzdHlsZT1cImNvbG9yOiBncmVlblwiPjwvaT5cclxuXHRcdH0gQGVsc2Uge1xyXG5cdFx0XHQ8aSBjbGFzcz1cInBpIHBpLXRpbWVzXCIgc3R5bGU9XCJjb2xvcjogY3JpbXNvblwiPjwvaT5cclxuXHRcdH1cclxuXHR9IEBlbHNlIGlmICh0eXBlKCkgPT09ICdlbnVtJykge1xyXG5cdFx0QGlmIChlbnVtU2VsZWN0aW9uRGlzcGxheSgpID09IHVuZGVmaW5lZCkge1xyXG5cdFx0XHQ8aVxyXG5cdFx0XHRcdGNsYXNzPVwicGkgcGktZXhjbGFtYXRpb24tY2lyY2xlXCJcclxuXHRcdFx0XHRzdHlsZT1cImNvbG9yOiByZWRcIlxyXG5cdFx0XHRcdFtwVG9vbHRpcF09XCJ0aGlzLnRyYW5zbG9jb1NlcnZpY2UudHJhbnNsYXRlKCd2YWxpZGF0aW9ucy5pbnZhbGlkRGF0YUZvcm1hdCcpXCI+XHJcblx0XHRcdDwvaT5cclxuXHRcdH0gQGVsc2Uge1xyXG5cdFx0XHQ8YXJpbC1iYWRnZSBbYmFja2dyb3VuZF09XCJlbnVtQmFkZ2VCYWNrZ3JvdW5kQ29sb3IoKVwiIFt2YWx1ZV09XCJlbnVtU2VsZWN0aW9uRGlzcGxheSgpXCI+PC9hcmlsLWJhZGdlPlxyXG5cdFx0fVxyXG5cdH0gQGVsc2UgaWYgKHR5cGUoKSA9PT0gJ2FycmF5Jykge1xyXG5cdFx0PGRpdiBjbGFzcz1cImZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0xXCI+XHJcblx0XHRcdEBmb3IgKGl0ZW0gb2YgbW9kZWwoKS5zbGljZSgwLCBhcnJheVR5cGVNYXhCYWRnZUNvdW50KCkpOyB0cmFjayBpdGVtKSB7XHJcblx0XHRcdFx0PGFyaWwtYmFkZ2UgW2JhY2tncm91bmRdPVwiZ2V0QXJyYXlJdGVtVmFsdWUoaXRlbSkgfHwgJycgfCBlbnVtQ29sb3JQaWNrZXJcIiBbdmFsdWVdPVwiZ2V0QXJyYXlJdGVtVmFsdWUoaXRlbSlcIiAvPlxyXG5cdFx0XHR9XHJcblx0XHRcdEBpZiAobW9kZWwoKS5sZW5ndGggPiBhcnJheVR5cGVNYXhCYWRnZUNvdW50KCkpIHtcclxuXHRcdFx0XHQ8aVxyXG5cdFx0XHRcdFx0Y2xhc3M9XCJwaSBwaS1lbGxpcHNpcy12IGN1cnNvci1wb2ludGVyXCJcclxuXHRcdFx0XHRcdChjbGljayk9XCJvcC50b2dnbGUoJGV2ZW50KVwiXHJcblx0XHRcdFx0XHRbcFRvb2x0aXBdPVwiXHJcblx0XHRcdFx0XHRcdG1vZGVsKCkubGVuZ3RoIC0gYXJyYXlUeXBlTWF4QmFkZ2VDb3VudCgpICsgJyAnICsgdGhpcy50cmFuc2xvY29TZXJ2aWNlLnRyYW5zbGF0ZSgndmFsaWRhdGlvbnMubW9yZUl0ZW1zJylcclxuXHRcdFx0XHRcdFwiPjwvaT5cclxuXHJcblx0XHRcdFx0PHAtb3ZlcmxheVBhbmVsICNvcCBjbGFzcz1cInNoYWRvdy00XCIgYXBwZW5kVG89XCJib2R5XCI+XHJcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbHVtbiBnYXAtMiBtYXgtdy0zMHJlbSBtYXgtaC0yMHJlbSBwci0zIG92ZXJmbG93LXktYXV0b1wiPlxyXG5cdFx0XHRcdFx0XHRAZm9yIChpdGVtIG9mIG1vZGVsKCkgfCBzbGljZTogYXJyYXlUeXBlTWF4QmFkZ2VDb3VudCgpOyB0cmFjayBpdGVtKSB7XHJcblx0XHRcdFx0XHRcdFx0PGFyaWwtYmFkZ2VcclxuXHRcdFx0XHRcdFx0XHRcdFtiYWNrZ3JvdW5kXT1cImdldEFycmF5SXRlbVZhbHVlKGl0ZW0pIHx8ICcnIHwgZW51bUNvbG9yUGlja2VyXCJcclxuXHRcdFx0XHRcdFx0XHRcdFt2YWx1ZV09XCJnZXRBcnJheUl0ZW1WYWx1ZShpdGVtKVwiIC8+XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdDwvcC1vdmVybGF5UGFuZWw+XHJcblx0XHRcdH1cclxuXHRcdDwvZGl2PlxyXG5cdH0gQGVsc2Uge1xyXG5cdFx0QGlmIChkaXNwbGF5KCkgPT0gdW5kZWZpbmVkKSB7XHJcblx0XHRcdDxpXHJcblx0XHRcdFx0Y2xhc3M9XCJwaSBwaS1leGNsYW1hdGlvbi1jaXJjbGVcIlxyXG5cdFx0XHRcdHN0eWxlPVwiY29sb3I6IHJlZFwiXHJcblx0XHRcdFx0W3BUb29sdGlwXT1cInRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ3ZhbGlkYXRpb25zLmludmFsaWREYXRhRm9ybWF0JylcIj5cclxuXHRcdFx0PC9pPlxyXG5cdFx0fSBAZWxzZSB7XHJcblx0XHRcdDxzcGFuXHJcblx0XHRcdFx0W3BUb29sdGlwXT1cInR5cGUoKSA9PT0gJ3RleHQnICYmIGlzVGV4dENsYW1wKCkgPyBkaXNwbGF5KCk/LnRvU3RyaW5nKCkgOiAnJ1wiXHJcblx0XHRcdFx0W3N0eWxlXT1cImlzQ2xpY2thYmxlKCkgPyB7ICd0ZXh0LWRlY29yYXRpb24nOiAndW5kZXJsaW5lJywgY29sb3I6ICcjMDAwMEVFJywgY3Vyc29yOiAncG9pbnRlcicgfSA6ICcnXCI+XHJcblx0XHRcdFx0e3sgdHlwZSgpID09PSAndGV4dCcgJiYgaXNUZXh0Q2xhbXAoKSAmJiBkaXNwbGF5KCkubGVuZ3RoID4gMTUgPyBkaXNwbGF5KCkuc3Vic3RyKDAsIDE0KSArICcuLi4nIDogZGlzcGxheSgpIH19XHJcblx0XHRcdDwvc3Bhbj5cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuIl19
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsdWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC91aS92YWx1ZS9zcmMvdmFsdWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC91aS92YWx1ZS9zcmMvdmFsdWUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVwRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWhELE9BQU8sRUFBRSxlQUFlLEVBQW9CLE1BQU0sbUJBQW1CLENBQUM7QUFHdEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbEQsT0FBTyxnQ0FBZ0MsQ0FBQzs7Ozs7O0FBcUJ4QyxNQUFNLE9BQU8sY0FBYztJQWMxQixZQUNRLGdCQUFrQyxFQUNqQyxxQkFBNEM7UUFEN0MscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNqQywwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBZnJELFVBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFtQyxDQUFDO1FBQzFELFNBQUksR0FBRyxLQUFLLENBQWEsTUFBTSxDQUFDLENBQUM7UUFDakMsV0FBTSxHQUFHLEtBQUssRUFBVSxDQUFDO1FBQ3pCLGdCQUFXLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ3BD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V0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsYUFBYSxDQUFDLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBZ0RELGlCQUFpQixDQUFDLElBQVM7UUFDMUIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FBQztJQUMxQyxDQUFDOzhHQTlFVyxjQUFjO2tHQUFkLGNBQWMsMjZDQUZmLENBQUMsYUFBYSxDQUFDLDBCQy9CM0IsODZFQXlEQSw0Q0Q1QlcsY0FBYyxvSUFBRSxhQUFhLHFYQUFFLGVBQWUsOEJBQUUsa0JBQWtCLDhWQUFFLG1CQUFtQixtREFBRSxTQUFTOzsyRkFJaEcsY0FBYztrQkFSMUIsU0FBUztpQ0FDRyxJQUFJLFlBQ04sWUFBWSxXQUViLENBQUMsY0FBYyxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQUUsU0FBUyxDQUFDLG1CQUM1Rix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2xpY2VQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAncHJpbWVuZy9keW5hbWljZGlhbG9nJztcclxuaW1wb3J0IHsgT3ZlcmxheVBhbmVsTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9vdmVybGF5cGFuZWwnO1xyXG5pbXBvcnQgeyBUb29sdGlwTW9kdWxlIH0gZnJvbSAncHJpbWVuZy90b29sdGlwJztcclxuXHJcbmltcG9ydCB7IFRyYW5zbG9jb01vZHVsZSwgVHJhbnNsb2NvU2VydmljZSB9IGZyb20gJ0BuZ25lYXQvdHJhbnNsb2NvJztcclxuXHJcbmltcG9ydCB7IFNlbGVjdGlvbkdyb3VwU2VydmljZSB9IGZyb20gJ2FyaWwvdGhlbWUvbGF5b3V0JztcclxuaW1wb3J0IHsgQmFkZ2VDb21wb25lbnQgfSBmcm9tICdhcmlsL3VpL2JhZGdlJztcclxuaW1wb3J0IHsgRW51bUNvbG9yUGlja2VyUGlwZSB9IGZyb20gJ2FyaWwvdWkvbGliJztcclxuaW1wb3J0ICdhcmlsL3V0aWwvcHJpbWl0aXZlLWV4dGVuc2lvbnMnO1xyXG5cclxuLyogbnVtYmVyLWZvcm1hdC5qcyAqL1xyXG4vLyBUT0RPIGRlY2xhcmUgY29uc3QgZm9ybWF0OiBGdW5jdGlvbjtcclxuXHJcbi8qKiBUeXBlIEZvcm1hdHNcclxuICogIy4wMCAtPiBWaXJnw7xsZGVuIHNvbnJhIDIgaGFuZSAoRGVjaW1hbClcclxuICogIy4wMDAwIC0+IFZpcmfDvGxkZW4gc29ucmEgNCBoYW5lIChEZWNpbWFsKVxyXG4gKiAwLiMjIyAtPiBTYWRlY2UgdGFtIHNhecSxIGfDtnN0ZXJtZXNpIGnDp2luIChOdW1iZXIpXHJcbiAqL1xyXG5cclxudHlwZSBWYWx1ZVR5cGVzID0gJ3RleHQnIHwgJ251bWJlcicgfCAnYm9vbCcgfCAnZGVjaW1hbCcgfCAnZGF0ZScgfCAncGFzc3dvcmQnIHwgJ2VudW0nIHwgJ2FycmF5JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHN0YW5kYWxvbmU6IHRydWUsXHJcblx0c2VsZWN0b3I6ICdhcmlsLXZhbHVlJyxcclxuXHR0ZW1wbGF0ZVVybDogJy4vdmFsdWUuY29tcG9uZW50Lmh0bWwnLFxyXG5cdGltcG9ydHM6IFtCYWRnZUNvbXBvbmVudCwgVG9vbHRpcE1vZHVsZSwgVHJhbnNsb2NvTW9kdWxlLCBPdmVybGF5UGFuZWxNb2R1bGUsIEVudW1Db2xvclBpY2tlclBpcGUsIFNsaWNlUGlwZV0sXHJcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcblx0cHJvdmlkZXJzOiBbRGlhbG9nU2VydmljZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFZhbHVlQ29tcG9uZW50IHtcclxuXHRtb2RlbCA9IGlucHV0LnJlcXVpcmVkPHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBhbnk+KCk7XHJcblx0dHlwZSA9IGlucHV0PFZhbHVlVHlwZXM+KCd0ZXh0Jyk7XHJcblx0Zm9ybWF0ID0gaW5wdXQ8c3RyaW5nPigpO1xyXG5cdGlzQ2xpY2thYmxlID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cdGdyb3VwTmFtZSA9IGlucHV0PHN0cmluZz4oKTtcclxuXHRwYXJlbnRTZWxlY3Rpb25LZXkgPSBpbnB1dDxzdHJpbmc+KCdBTEwnKTtcclxuXHRpc1RleHRDbGFtcCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHRzdHlsZSA9IGlucHV0PHN0cmluZz4oKTtcclxuXHJcblx0Ly8gb25seSBmb3IgYXJyYXkgdHlwZVxyXG5cdGFycmF5VHlwZURpc3BsYXlOYW1lID0gaW5wdXQ8c3RyaW5nPigndmFsdWVEZXNjJyk7XHJcblx0YXJyYXlUeXBlTWF4QmFkZ2VDb3VudCA9IGlucHV0PG51bWJlcj4oMyk7XHJcblxyXG5cdGNvbnN0cnVjdG9yKFxyXG5cdFx0cHVibGljIHRyYW5zbG9jb1NlcnZpY2U6IFRyYW5zbG9jb1NlcnZpY2UsXHJcblx0XHRwcml2YXRlIHNlbGVjdGlvbkdyb3VwU2VydmljZTogU2VsZWN0aW9uR3JvdXBTZXJ2aWNlXHJcblx0KSB7fVxyXG5cclxuXHRwcml2YXRlIGZvcm1hdE51bWJlcih2YWx1ZTogbnVtYmVyLCBmb3JtYXRTdHJpbmc6IHN0cmluZywgaXNEZWNpbWFsOiBib29sZWFuKTogc3RyaW5nIHtcclxuXHRcdGNvbnN0IFtpbnRlZ2VyUGFydCwgZGVjaW1hbFBhcnQgPSAnJ10gPSB2YWx1ZS50b1N0cmluZygpLnNwbGl0KCcuJyk7XHJcblx0XHRjb25zdCBmb3JtYXR0ZWRJbnRlZ2VyID0gaW50ZWdlclBhcnQucmVwbGFjZSgvXFxCKD89KFxcZHszfSkrKD8hXFxkKSkvZywgJy4nKTtcclxuXHRcdHJldHVybiBpc0RlY2ltYWwgPyBgJHtmb3JtYXR0ZWRJbnRlZ2VyfSwke3RoaXMuZm9ybWF0RGVjaW1hbChkZWNpbWFsUGFydCwgZm9ybWF0U3RyaW5nKX1gIDogZm9ybWF0dGVkSW50ZWdlcjtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgZm9ybWF0RGVjaW1hbChkZWNpbWFsUGFydDogc3RyaW5nLCBmb3JtYXRTdHJpbmc6IHN0cmluZyk6IHN0cmluZyB7XHJcblx0XHRjb25zdCBkZWNpbWFsUGxhY2VzID0gZm9ybWF0U3RyaW5nLmluY2x1ZGVzKCcuJykgPyBmb3JtYXRTdHJpbmcuc3BsaXQoJy4nKVsxXS5sZW5ndGggOiAzO1xyXG5cdFx0cmV0dXJuIGRlY2ltYWxQYXJ0LnNsaWNlKDAsIGRlY2ltYWxQbGFjZXMpLnBhZEVuZChkZWNpbWFsUGxhY2VzLCAnMCcpO1xyXG5cdH1cclxuXHJcblx0Y29sb3JMaXN0ID0gWycjOEVDRUVCJywgJyM1RUJBRTAnLCAnIzJDOUNDQicsICcjMUQ3REFDJywgJyMxOTY1OEInLCAnMTg1NTc0JywgJzdEODVGQycsICc1OTU3RjUnLCAnMTk0NzYxJywgJzUxNDFFQSddO1xyXG5cclxuXHRkaXNwbGF5ID0gY29tcHV0ZWQoKCkgPT4ge1xyXG5cdFx0Y29uc3QgYXBwbGllZEZvcm1hdCA9IHRoaXMuZm9ybWF0KCkgfHwgKHRoaXMudHlwZSgpID09PSAnZGVjaW1hbCcgPyAnIy4wMDAnIDogJzAuIyMjJyk7XHJcblxyXG5cdFx0c3dpdGNoICh0aGlzLnR5cGUoKSkge1xyXG5cdFx0XHRjYXNlICd0ZXh0JzpcclxuXHRcdFx0XHRyZXR1cm4gdGhpcy5tb2RlbCgpO1xyXG5cdFx0XHRjYXNlICdudW1iZXInOlxyXG5cdFx0XHRcdHJldHVybiB0aGlzLmZvcm1hdE51bWJlcig8bnVtYmVyPnRoaXMubW9kZWwoKSwgYXBwbGllZEZvcm1hdCwgZmFsc2UpO1xyXG5cdFx0XHRjYXNlICdkZWNpbWFsJzpcclxuXHRcdFx0XHRyZXR1cm4gdGhpcy5mb3JtYXROdW1iZXIoPG51bWJlcj50aGlzLm1vZGVsKCksIGFwcGxpZWRGb3JtYXQsIHRydWUpO1xyXG5cdFx0XHRjYXNlICdkYXRlJzpcclxuXHRcdFx0XHRyZXR1cm4gKDxudW1iZXI+dGhpcy5tb2RlbCgpKS5sb25nVG9TdHJpbmcodGhpcy5mb3JtYXQoKSA/PyAndGltZScpO1xyXG5cdFx0XHRjYXNlICdwYXNzd29yZCc6XHJcblx0XHRcdFx0cmV0dXJuICg8c3RyaW5nPnRoaXMubW9kZWwoKSkucmVwbGFjZSgvLi9nLCAnKicpO1xyXG5cdFx0XHRkZWZhdWx0OlxyXG5cdFx0XHRcdGNvbnNvbGUuZXJyb3IoXCJJbnZhbGlkIHR5cGU6ICdcIiArIHRoaXMudHlwZSgpICsgXCInXCIpO1xyXG5cdFx0XHRcdHJldHVybiAnJztcclxuXHRcdH1cclxuXHR9KTtcclxuXHJcblx0ZW51bVNlbGVjdGlvbkRpc3BsYXkgPSBjb21wdXRlZCgoKSA9PiB7XHJcblx0XHRjb25zdCBzZWxlY3Rpb25Hcm91cCA9XHJcblx0XHRcdHRoaXMuc2VsZWN0aW9uR3JvdXBTZXJ2aWNlLnNlbGVjdGlvbkdyb3VwcygpW2Ake3RoaXMuZ3JvdXBOYW1lKCkhfX4ke3RoaXMucGFyZW50U2VsZWN0aW9uS2V5KCkhfWBdO1xyXG5cclxuXHRcdGlmICghc2VsZWN0aW9uR3JvdXApIHRoaXMuc2VsZWN0aW9uR3JvdXBTZXJ2aWNlLmZldGNoRW51bSh0aGlzLmdyb3VwTmFtZSgpISwgdGhpcy5wYXJlbnRTZWxlY3Rpb25LZXkoKSEpO1xyXG5cclxuXHRcdHJldHVybiBzZWxlY3Rpb25Hcm91cD8uc2VsZWN0aW9uSXRlbXMuZmluZCgodCkgPT4gdC5zZWxlY3Rpb25LZXkgPT09IHRoaXMubW9kZWwoKSk/LnNlbGVjdGlvbkRpc3BsYXk7XHJcblx0fSk7XHJcblxyXG5cdGVudW1CYWRnZUJhY2tncm91bmRDb2xvciA9IGNvbXB1dGVkKCgpID0+IHtcclxuXHRcdGNvbnN0IHNlbGVjdGlvbkdyb3VwID1cclxuXHRcdFx0dGhpcy5zZWxlY3Rpb25Hcm91cFNlcnZpY2Uuc2VsZWN0aW9uR3JvdXBzKClbYCR7dGhpcy5ncm91cE5hbWUoKSF9fiR7dGhpcy5wYXJlbnRTZWxlY3Rpb25LZXkoKSF9YF07XHJcblx0XHRjb25zdCBzZWxlY3Rpb25JdGVtcyA9IHNlbGVjdGlvbkdyb3VwPy5zZWxlY3Rpb25JdGVtcyA/PyBbXTtcclxuXHJcblx0XHRjb25zdCBzZWxlY3Rpb25JdGVtID0gc2VsZWN0aW9uSXRlbXMuZmluZCgodCkgPT4gdC5zZWxlY3Rpb25LZXkgPT09IHRoaXMubW9kZWwoKSk7XHJcblxyXG5cdFx0aWYgKCFzZWxlY3Rpb25JdGVtKSB7XHJcblx0XHRcdHJldHVybiAnIzMzMyc7XHJcblx0XHR9IGVsc2UgaWYgKHRoaXMuY29sb3JMaXN0W3NlbGVjdGlvbkl0ZW0uc2hvd09yZGVyXSAhPT0gdW5kZWZpbmVkKSB7XHJcblx0XHRcdHJldHVybiB0aGlzLmNvbG9yTGlzdFtzZWxlY3Rpb25JdGVtLnNob3dPcmRlcl07XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gJyNBMkFGRkYnO1xyXG5cdH0pO1xyXG5cclxuXHRnZXRBcnJheUl0ZW1WYWx1ZShpdGVtOiBhbnkpOiBhbnkge1xyXG5cdFx0cmV0dXJuIGl0ZW1bdGhpcy5hcnJheVR5cGVEaXNwbGF5TmFtZSgpXTtcclxuXHR9XHJcbn1cclxuIiwiQGlmIChtb2RlbCgpID09IHVuZGVmaW5lZCB8fCBtb2RlbCgpID09IG51bGwpIHtcclxuXHQ8aVxyXG5cdFx0Y2xhc3M9XCJwaSBwaS1taW51c1wiXHJcblx0XHRzdHlsZT1cImNvbG9yOiByZWRcIlxyXG5cdFx0W3BUb29sdGlwXT1cInRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ3ZhbGlkYXRpb25zLm5vSXRlbVRvU2hvdycpXCI+PC9pPlxyXG59IEBlbHNlIHtcclxuXHRAaWYgKHR5cGUoKSA9PSAnYm9vbCcpIHtcclxuXHRcdEBpZiAoISFtb2RlbCgpKSB7XHJcblx0XHRcdDxpIGNsYXNzPVwicGkgcGktY2hlY2tcIiBzdHlsZT1cImNvbG9yOiBncmVlblwiPjwvaT5cclxuXHRcdH0gQGVsc2Uge1xyXG5cdFx0XHQ8aSBjbGFzcz1cInBpIHBpLXRpbWVzXCIgc3R5bGU9XCJjb2xvcjogY3JpbXNvblwiPjwvaT5cclxuXHRcdH1cclxuXHR9IEBlbHNlIGlmICh0eXBlKCkgPT09ICdlbnVtJykge1xyXG5cdFx0QGlmIChlbnVtU2VsZWN0aW9uRGlzcGxheSgpID09IHVuZGVmaW5lZCkge1xyXG5cdFx0XHQ8aVxyXG5cdFx0XHRcdGNsYXNzPVwicGkgcGktZXhjbGFtYXRpb24tY2lyY2xlXCJcclxuXHRcdFx0XHRzdHlsZT1cImNvbG9yOiByZWRcIlxyXG5cdFx0XHRcdFtwVG9vbHRpcF09XCJ0aGlzLnRyYW5zbG9jb1NlcnZpY2UudHJhbnNsYXRlKCd2YWxpZGF0aW9ucy5pbnZhbGlkRGF0YUZvcm1hdCcpXCI+XHJcblx0XHRcdDwvaT5cclxuXHRcdH0gQGVsc2Uge1xyXG5cdFx0XHQ8YXJpbC1iYWRnZSBbYmFja2dyb3VuZF09XCJlbnVtQmFkZ2VCYWNrZ3JvdW5kQ29sb3IoKVwiIFt2YWx1ZV09XCJlbnVtU2VsZWN0aW9uRGlzcGxheSgpXCI+PC9hcmlsLWJhZGdlPlxyXG5cdFx0fVxyXG5cdH0gQGVsc2UgaWYgKHR5cGUoKSA9PT0gJ2FycmF5Jykge1xyXG5cdFx0PGRpdiBjbGFzcz1cImZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0xXCI+XHJcblx0XHRcdEBmb3IgKGl0ZW0gb2YgbW9kZWwoKS5zbGljZSgwLCBhcnJheVR5cGVNYXhCYWRnZUNvdW50KCkpOyB0cmFjayBpdGVtKSB7XHJcblx0XHRcdFx0PGFyaWwtYmFkZ2UgW2JhY2tncm91bmRdPVwiZ2V0QXJyYXlJdGVtVmFsdWUoaXRlbSkgfHwgJycgfCBlbnVtQ29sb3JQaWNrZXJcIiBbdmFsdWVdPVwiZ2V0QXJyYXlJdGVtVmFsdWUoaXRlbSlcIiAvPlxyXG5cdFx0XHR9XHJcblx0XHRcdEBpZiAobW9kZWwoKS5sZW5ndGggPiBhcnJheVR5cGVNYXhCYWRnZUNvdW50KCkpIHtcclxuXHRcdFx0XHQ8aSBjbGFzcz1cInBpIHBpLWVsbGlwc2lzLXYgY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwib3AudG9nZ2xlKCRldmVudClcIj48L2k+XHJcblxyXG5cdFx0XHRcdDxwLW92ZXJsYXlQYW5lbCAjb3AgY2xhc3M9XCJzaGFkb3ctNFwiIGFwcGVuZFRvPVwiYm9keVwiPlxyXG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2x1bW4gZ2FwLTIgbWF4LXctMzByZW0gbWF4LWgtMjByZW0gcHItMyBvdmVyZmxvdy15LWF1dG9cIj5cclxuXHRcdFx0XHRcdFx0QGZvciAoaXRlbSBvZiBtb2RlbCgpIHwgc2xpY2U6IGFycmF5VHlwZU1heEJhZGdlQ291bnQoKTsgdHJhY2sgaXRlbSkge1xyXG5cdFx0XHRcdFx0XHRcdDxhcmlsLWJhZGdlXHJcblx0XHRcdFx0XHRcdFx0XHRbYmFja2dyb3VuZF09XCJnZXRBcnJheUl0ZW1WYWx1ZShpdGVtKSB8fCAnJyB8IGVudW1Db2xvclBpY2tlclwiXHJcblx0XHRcdFx0XHRcdFx0XHRbdmFsdWVdPVwiZ2V0QXJyYXlJdGVtVmFsdWUoaXRlbSlcIiAvPlxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHQ8L3Atb3ZlcmxheVBhbmVsPlxyXG5cdFx0XHR9XHJcblx0XHQ8L2Rpdj5cclxuXHR9IEBlbHNlIHtcclxuXHRcdEBpZiAoZGlzcGxheSgpID09IHVuZGVmaW5lZCkge1xyXG5cdFx0XHQ8aVxyXG5cdFx0XHRcdGNsYXNzPVwicGkgcGktZXhjbGFtYXRpb24tY2lyY2xlXCJcclxuXHRcdFx0XHRzdHlsZT1cImNvbG9yOiByZWRcIlxyXG5cdFx0XHRcdFtwVG9vbHRpcF09XCJ0aGlzLnRyYW5zbG9jb1NlcnZpY2UudHJhbnNsYXRlKCd2YWxpZGF0aW9ucy5pbnZhbGlkRGF0YUZvcm1hdCcpXCI+XHJcblx0XHRcdDwvaT5cclxuXHRcdH0gQGVsc2Uge1xyXG5cdFx0XHQ8c3BhblxyXG5cdFx0XHRcdFtwVG9vbHRpcF09XCJ0eXBlKCkgPT09ICd0ZXh0JyAmJiBpc1RleHRDbGFtcCgpID8gZGlzcGxheSgpPy50b1N0cmluZygpIDogJydcIlxyXG5cdFx0XHRcdFtzdHlsZV09XCJpc0NsaWNrYWJsZSgpID8geyAndGV4dC1kZWNvcmF0aW9uJzogJ3VuZGVybGluZScsIGNvbG9yOiAnIzAwMDBFRScsIGN1cnNvcjogJ3BvaW50ZXInIH0gOiAnJ1wiPlxyXG5cdFx0XHRcdHt7IHR5cGUoKSA9PT0gJ3RleHQnICYmIGlzVGV4dENsYW1wKCkgJiYgZGlzcGxheSgpLmxlbmd0aCA+IDE1ID8gZGlzcGxheSgpLnN1YnN0cigwLCAxNCkgKyAnLi4uJyA6IGRpc3BsYXkoKSB9fVxyXG5cdFx0XHQ8L3NwYW4+XHJcblx0XHR9XHJcblx0fVxyXG59XHJcbiJdfQ==
|