@sapui5/sap.fe.test 1.99.0 → 1.100.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +3 -2
- package/src/sap/fe/test/.library +1 -1
- package/src/sap/fe/test/FeMocks.js +1 -1
- package/src/sap/fe/test/FeMocks.ts +8 -8
- package/src/sap/fe/test/JestTemplatingHelper.js +6 -4
- package/src/sap/fe/test/JestTemplatingHelper.ts +10 -6
- package/src/sap/fe/test/UI5MockHelper.js +126 -203
- package/src/sap/fe/test/UI5MockHelper.ts +17 -2
- package/src/sap/fe/test/api/FilterBarAPI.js +9 -1
- package/src/sap/fe/test/library.js +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sapui5/sap.fe.test",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.100.0",
|
|
4
4
|
"description": "SAPUI5 Library sap.fe.test",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.txt",
|
|
6
6
|
"author": "SAP SE (https://www.sap.com)",
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
"build": "echo 'nothing to do'",
|
|
10
10
|
"copy-dependency": "copyfiles -u 7 \"../../node_modules/@sap/ux-ui5-fe-mockserver-middleware/ui5-dist/test/**/*.js\" target/classes/META-INF/test-resources",
|
|
11
11
|
"prepare-npm-sources": "babel target/npm-sources/src --out-dir target/npm-sources/src --extensions \".ts\" --config-file ../../.babelrc",
|
|
12
|
+
"prepare-ts-class-doc": "echo 'nothing to do'",
|
|
12
13
|
"prepare-ui5-build-sources": "copyfiles -u 7 \"../../node_modules/@sap/ux-ui5-fe-mockserver-middleware/ui5-dist/test/**/*.js\" target/ui5-build-tmp/test && mkdirp target/ui5-build-tmp/src && babel src --out-dir target/ui5-build-tmp/src --extensions \".ts\" --config-file ../../.babelrc",
|
|
13
14
|
"test": "echo 'nothing to do'"
|
|
14
15
|
},
|
|
@@ -23,6 +24,6 @@
|
|
|
23
24
|
"mkdirp": "^1.0.4",
|
|
24
25
|
"xpath": "0.0.27",
|
|
25
26
|
"xml-formatter": "2.4.0",
|
|
26
|
-
"@sap-ux/jest-mock-ui5": "2.0.
|
|
27
|
+
"@sap-ux/jest-mock-ui5": "2.0.5"
|
|
27
28
|
}
|
|
28
29
|
}
|
package/src/sap/fe/test/.library
CHANGED
|
@@ -63,4 +63,4 @@ sap.ui.define(["sap/fe/core/PageController", "@sap-ux/jest-mock-ui5/dist/generic
|
|
|
63
63
|
_exports.mockFilterBar = mockFilterBar;
|
|
64
64
|
return _exports;
|
|
65
65
|
}, false);
|
|
66
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
66
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkZlTW9ja3MudHMiXSwibmFtZXMiOlsibW9ja0xpc3RSZXBvcnRDb250cm9sbGVyIiwibGlzdFJlcG9ydCIsIl9nZXRGaWx0ZXJCYXJDb250cm9sIiwiamVzdCIsImZuIiwiX2dldENvbnRyb2xzIiwiX2lzRmlsdGVyQmFySGlkZGVuIiwiX2lzTXVsdGlNb2RlIiwiX3NldENvdW50c091dERhdGVkIiwiX2dldEN1cnJlbnRDb250cm9sIiwiX2dldE11bHRpTW9kZUNvbnRyb2wiLCJfaGFzTXVsdGlWaXN1YWxpemF0aW9ucyIsIl9zaG91bGRBdXRvVHJpZ2dlclNlYXJjaCIsIl9nZXRUYWJsZSIsImdldEV4dGVuc2lvbkFQSSIsIl9lZGl0RmxvdyIsIm1vY2siLCJJbnRlcm5hbEVkaXRGbG93IiwiT2JqZWN0IiwiYXNzaWduIiwiUGFnZUNvbnRyb2xsZXIiLCJtb2NrT2JqZWN0UGFnZUNvbnRyb2xsZXIiLCJvYmplY3RQYWdlIiwiZ2V0U3RpY2t5RWRpdE1vZGUiLCJtb2NrQ29udGV4dEZvckV4dGVuc2lvbiIsImV4dGVuc2lvbiIsImNvbnRyb2xsZXIiLCJiYXNlIiwidmlldyIsImdldFZpZXciLCJtb2NrZWRCYXNlIiwibW9ja0ZpbHRlckJhciIsImZpbHRlckJhciIsIkZpbHRlckJhciIsImluaXRpYWxpemVkIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBOzs7Ozs7O0FBMEJPLFdBQVNBLHdCQUFULEdBQTZIO0FBQ25JO0FBQ0EsUUFBTUMsVUFBMkUsR0FBRztBQUNuRkMsTUFBQUEsb0JBQW9CLEVBQUVDLElBQUksQ0FBQ0MsRUFBTCxFQUQ2RDtBQUVuRkMsTUFBQUEsWUFBWSxFQUFFRixJQUFJLENBQUNDLEVBQUwsRUFGcUU7QUFHbkZFLE1BQUFBLGtCQUFrQixFQUFFSCxJQUFJLENBQUNDLEVBQUwsRUFIK0Q7QUFJbkZHLE1BQUFBLFlBQVksRUFBRUosSUFBSSxDQUFDQyxFQUFMLEVBSnFFO0FBS25GSSxNQUFBQSxrQkFBa0IsRUFBRUwsSUFBSSxDQUFDQyxFQUFMLEVBTCtEO0FBTW5GSyxNQUFBQSxrQkFBa0IsRUFBRU4sSUFBSSxDQUFDQyxFQUFMLEVBTitEO0FBT25GTSxNQUFBQSxvQkFBb0IsRUFBRVAsSUFBSSxDQUFDQyxFQUFMLEVBUDZEO0FBUW5GTyxNQUFBQSx1QkFBdUIsRUFBRVIsSUFBSSxDQUFDQyxFQUFMLEVBUjBEO0FBU25GUSxNQUFBQSx3QkFBd0IsRUFBRVQsSUFBSSxDQUFDQyxFQUFMLEVBVHlEO0FBVW5GUyxNQUFBQSxTQUFTLEVBQUVWLElBQUksQ0FBQ0MsRUFBTCxFQVZ3RTtBQVduRlUsTUFBQUEsZUFBZSxFQUFFWCxJQUFJLENBQUNDLEVBQUwsRUFYa0U7QUFZbkZXLE1BQUFBLFNBQVMsRUFBRUMsSUFBSSxDQUFDQyxnQkFBRDtBQVpvRSxLQUFwRjtBQWNBLFdBQU9DLE1BQU0sQ0FBQ0MsTUFBUCxDQUFjSCxJQUFJLENBQUNJLGNBQUQsQ0FBbEIsRUFBMkNuQixVQUEzQyxDQUFQO0FBR0E7Ozs7QUFFTSxXQUFTb0Isd0JBQVQsR0FBNkg7QUFDbkk7QUFDQSxRQUFNQyxVQUEyRSxHQUFHO0FBQ25GQyxNQUFBQSxpQkFBaUIsRUFBRXBCLElBQUksQ0FBQ0MsRUFBTCxFQURnRTtBQUVuRlUsTUFBQUEsZUFBZSxFQUFFWCxJQUFJLENBQUNDLEVBQUwsRUFGa0U7QUFHbkZXLE1BQUFBLFNBQVMsRUFBR0MsSUFBSSxDQUFDQyxnQkFBRDtBQUhtRSxLQUFwRjtBQUtBLFdBQU9DLE1BQU0sQ0FBQ0MsTUFBUCxDQUFjSCxJQUFJLENBQUNJLGNBQUQsQ0FBbEIsRUFBMkNFLFVBQTNDLENBQVA7QUFHQTs7OztBQUVNLFdBQVNFLHVCQUFULENBQ05DLFNBRE0sRUFFTkMsVUFGTSxFQUdOQyxJQUhNLEVBSWtDO0FBQ3hDLFFBQU1DLElBQUksR0FBR0YsVUFBVSxDQUFDRyxPQUFYLEVBQWI7O0FBQ0NKLElBQUFBLFNBQUQsQ0FBbUJJLE9BQW5CLEdBQTZCO0FBQUEsYUFBTUQsSUFBTjtBQUFBLEtBQTdCOztBQUNBLFFBQU1FLFVBQVUsR0FBR2QsSUFBSSxDQUFDVyxJQUFJLElBQUksRUFBVCxDQUF2QjtBQUNBLFdBQU9ULE1BQU0sQ0FBQ0MsTUFBUCxDQUFjVyxVQUFkLEVBQTBCTCxTQUExQixDQUFQO0FBQ0E7Ozs7QUFFTSxXQUFTTSxhQUFULEdBQXNHO0FBQzVHLFFBQU1DLFNBQVMsR0FBR2hCLElBQUksQ0FBQ2lCLFNBQUQsQ0FBdEI7QUFDQUQsSUFBQUEsU0FBUyxDQUFDaEIsSUFBVixDQUFla0IsV0FBZixHQUE2Qi9CLElBQUksQ0FBQ0MsRUFBTCxFQUE3QjtBQUNBLFdBQU80QixTQUFQO0FBQ0EiLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBQYWdlQ29udHJvbGxlciBmcm9tIFwic2FwL2ZlL2NvcmUvUGFnZUNvbnRyb2xsZXJcIjtcbmltcG9ydCB7IG1vY2ssIE1vY2tlZEluc3RhbmNlLCBVSTVJbnN0YW5jZVR5cGUsIFdpdGhNb2NrIH0gZnJvbSBcIkBzYXAtdXgvamVzdC1tb2NrLXVpNS9kaXN0L2dlbmVyaWNcIjtcbmltcG9ydCBDb250cm9sbGVyIGZyb20gXCJzYXAvdWkvY29yZS9tdmMvQ29udHJvbGxlclwiO1xuaW1wb3J0IEZpbHRlckJhciBmcm9tIFwic2FwL3VpL21kYy9GaWx0ZXJCYXJcIjtcbmltcG9ydCBJbnRlcm5hbEVkaXRGbG93IGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9ucy9JbnRlcm5hbEVkaXRGbG93XCI7XG5cbmludGVyZmFjZSBDb21tb25Db250cm9sbGVyVHlwZSB7XG5cdGdldEV4dGVuc2lvbkFQSTogYW55O1xuXHRfZWRpdEZsb3c6IFdpdGhNb2NrPEludGVybmFsRWRpdEZsb3c+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RSZXBvcnRDb250cm9sbGVyVHlwZSB7XG5cdF9nZXRGaWx0ZXJCYXJDb250cm9sOiBhbnk7XG5cdF9nZXRDb250cm9sczogYW55O1xuXHRfaXNGaWx0ZXJCYXJIaWRkZW46IGFueTtcblx0X2lzTXVsdGlNb2RlOiBhbnk7XG5cdF9zZXRDb3VudHNPdXREYXRlZDogYW55O1xuXHRfZ2V0Q3VycmVudENvbnRyb2w6IGFueTtcblx0X2dldE11bHRpTW9kZUNvbnRyb2w6IGFueTtcblx0X2hhc011bHRpVmlzdWFsaXphdGlvbnM6IGFueTtcblx0X3Nob3VsZEF1dG9UcmlnZ2VyU2VhcmNoOiBhbnk7XG5cdF9nZXRUYWJsZTogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9iamVjdFBhZ2VDb250cm9sbGVyVHlwZSB7XG5cdGdldFN0aWNreUVkaXRNb2RlOiBhbnk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb2NrTGlzdFJlcG9ydENvbnRyb2xsZXIoKTogV2l0aE1vY2s8Q29udHJvbGxlciAmIFBhZ2VDb250cm9sbGVyICYgTGlzdFJlcG9ydENvbnRyb2xsZXJUeXBlICYgQ29tbW9uQ29udHJvbGxlclR5cGU+IHtcblx0Ly8gbWFudWFsbHkgYWRkIExpc3RSZXBvcnRDb250cm9sbGVyLmNvbnRyb2xsZXIgZnVuY3Rpb25zIHNpbmNlIEkgYW0gdW5hYmxlIHRvIGltcG9ydCB0aGUgcHJvdG90eXBlXG5cdGNvbnN0IGxpc3RSZXBvcnQ6IE1vY2tlZEluc3RhbmNlPExpc3RSZXBvcnRDb250cm9sbGVyVHlwZSAmIENvbW1vbkNvbnRyb2xsZXJUeXBlPiA9IHtcblx0XHRfZ2V0RmlsdGVyQmFyQ29udHJvbDogamVzdC5mbigpLFxuXHRcdF9nZXRDb250cm9sczogamVzdC5mbigpLFxuXHRcdF9pc0ZpbHRlckJhckhpZGRlbjogamVzdC5mbigpLFxuXHRcdF9pc011bHRpTW9kZTogamVzdC5mbigpLFxuXHRcdF9zZXRDb3VudHNPdXREYXRlZDogamVzdC5mbigpLFxuXHRcdF9nZXRDdXJyZW50Q29udHJvbDogamVzdC5mbigpLFxuXHRcdF9nZXRNdWx0aU1vZGVDb250cm9sOiBqZXN0LmZuKCksXG5cdFx0X2hhc011bHRpVmlzdWFsaXphdGlvbnM6IGplc3QuZm4oKSxcblx0XHRfc2hvdWxkQXV0b1RyaWdnZXJTZWFyY2g6IGplc3QuZm4oKSxcblx0XHRfZ2V0VGFibGU6IGplc3QuZm4oKSxcblx0XHRnZXRFeHRlbnNpb25BUEk6IGplc3QuZm4oKSxcblx0XHRfZWRpdEZsb3c6IG1vY2soSW50ZXJuYWxFZGl0RmxvdykgYXMgYW55XG5cdH07XG5cdHJldHVybiBPYmplY3QuYXNzaWduKG1vY2soUGFnZUNvbnRyb2xsZXIpIGFzIGFueSwgbGlzdFJlcG9ydCkgYXMgV2l0aE1vY2s8XG5cdFx0Q29udHJvbGxlciAmIFBhZ2VDb250cm9sbGVyICYgTGlzdFJlcG9ydENvbnRyb2xsZXJUeXBlICYgQ29tbW9uQ29udHJvbGxlclR5cGVcblx0Pjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1vY2tPYmplY3RQYWdlQ29udHJvbGxlcigpOiBXaXRoTW9jazxDb250cm9sbGVyICYgUGFnZUNvbnRyb2xsZXIgJiBPYmplY3RQYWdlQ29udHJvbGxlclR5cGUgJiBDb21tb25Db250cm9sbGVyVHlwZT4ge1xuXHQvLyBtYW51YWxseSBhZGQgTGlzdFJlcG9ydENvbnRyb2xsZXIuY29udHJvbGxlciBmdW5jdGlvbnMgc2luY2UgSSBhbSB1bmFibGUgdG8gaW1wb3J0IHRoZSBwcm90b3R5cGVcblx0Y29uc3Qgb2JqZWN0UGFnZTogTW9ja2VkSW5zdGFuY2U8T2JqZWN0UGFnZUNvbnRyb2xsZXJUeXBlICYgQ29tbW9uQ29udHJvbGxlclR5cGU+ID0ge1xuXHRcdGdldFN0aWNreUVkaXRNb2RlOiBqZXN0LmZuKCksXG5cdFx0Z2V0RXh0ZW5zaW9uQVBJOiBqZXN0LmZuKCksXG5cdFx0X2VkaXRGbG93OiAobW9jayhJbnRlcm5hbEVkaXRGbG93KSBhcyBXaXRoTW9jazxJbnRlcm5hbEVkaXRGbG93PikgYXMgYW55XG5cdH07XG5cdHJldHVybiBPYmplY3QuYXNzaWduKG1vY2soUGFnZUNvbnRyb2xsZXIpIGFzIGFueSwgb2JqZWN0UGFnZSkgYXMgV2l0aE1vY2s8XG5cdFx0Q29udHJvbGxlciAmIFBhZ2VDb250cm9sbGVyICYgT2JqZWN0UGFnZUNvbnRyb2xsZXJUeXBlICYgQ29tbW9uQ29udHJvbGxlclR5cGVcblx0Pjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1vY2tDb250ZXh0Rm9yRXh0ZW5zaW9uPEVYVCBleHRlbmRzIG9iamVjdCwgQkFTRSBleHRlbmRzIG9iamVjdD4oXG5cdGV4dGVuc2lvbjogRVhULFxuXHRjb250cm9sbGVyOiBXaXRoTW9jazxDb250cm9sbGVyPixcblx0YmFzZT86IEJBU0Vcbik6IFdpdGhNb2NrPEVYVCAmIFVJNUluc3RhbmNlVHlwZTxCQVNFPj4ge1xuXHRjb25zdCB2aWV3ID0gY29udHJvbGxlci5nZXRWaWV3KCk7XG5cdChleHRlbnNpb24gYXMgYW55KS5nZXRWaWV3ID0gKCkgPT4gdmlldztcblx0Y29uc3QgbW9ja2VkQmFzZSA9IG1vY2soYmFzZSB8fCB7fSk7XG5cdHJldHVybiBPYmplY3QuYXNzaWduKG1vY2tlZEJhc2UsIGV4dGVuc2lvbikgYXMgV2l0aE1vY2s8RVhUICYgVUk1SW5zdGFuY2VUeXBlPEJBU0U+Pjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1vY2tGaWx0ZXJCYXIoKTogV2l0aE1vY2s8RmlsdGVyQmFyICYgeyBpbml0aWFsaXplZDogRnVuY3Rpb247IF9iU2VhcmNoVHJpZ2dlcmVkOiBCb29sZWFuIH0+IHtcblx0Y29uc3QgZmlsdGVyQmFyID0gbW9jayhGaWx0ZXJCYXIpIGFzIFdpdGhNb2NrPEZpbHRlckJhciAmIHsgaW5pdGlhbGl6ZWQ6IEZ1bmN0aW9uOyBfYlNlYXJjaFRyaWdnZXJlZDogQm9vbGVhbiB9Pjtcblx0ZmlsdGVyQmFyLm1vY2suaW5pdGlhbGl6ZWQgPSBqZXN0LmZuKCk7XG5cdHJldHVybiBmaWx0ZXJCYXI7XG59XG4iXX0=
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import PageController from "sap/fe/core/PageController";
|
|
2
|
-
import { mock, MockedInstance, WithMock } from "@sap-ux/jest-mock-ui5/dist/generic";
|
|
2
|
+
import { mock, MockedInstance, UI5InstanceType, WithMock } from "@sap-ux/jest-mock-ui5/dist/generic";
|
|
3
3
|
import Controller from "sap/ui/core/mvc/Controller";
|
|
4
4
|
import FilterBar from "sap/ui/mdc/FilterBar";
|
|
5
|
-
import
|
|
5
|
+
import InternalEditFlow from "sap/fe/core/controllerextensions/InternalEditFlow";
|
|
6
6
|
|
|
7
7
|
interface CommonControllerType {
|
|
8
8
|
getExtensionAPI: any;
|
|
@@ -40,9 +40,9 @@ export function mockListReportController(): WithMock<Controller & PageController
|
|
|
40
40
|
_shouldAutoTriggerSearch: jest.fn(),
|
|
41
41
|
_getTable: jest.fn(),
|
|
42
42
|
getExtensionAPI: jest.fn(),
|
|
43
|
-
_editFlow: mock(InternalEditFlow) as
|
|
43
|
+
_editFlow: mock(InternalEditFlow) as any
|
|
44
44
|
};
|
|
45
|
-
return Object.assign(mock(PageController), listReport) as WithMock<
|
|
45
|
+
return Object.assign(mock(PageController) as any, listReport) as WithMock<
|
|
46
46
|
Controller & PageController & ListReportControllerType & CommonControllerType
|
|
47
47
|
>;
|
|
48
48
|
}
|
|
@@ -52,9 +52,9 @@ export function mockObjectPageController(): WithMock<Controller & PageController
|
|
|
52
52
|
const objectPage: MockedInstance<ObjectPageControllerType & CommonControllerType> = {
|
|
53
53
|
getStickyEditMode: jest.fn(),
|
|
54
54
|
getExtensionAPI: jest.fn(),
|
|
55
|
-
_editFlow: mock(InternalEditFlow) as WithMock<InternalEditFlow>
|
|
55
|
+
_editFlow: (mock(InternalEditFlow) as WithMock<InternalEditFlow>) as any
|
|
56
56
|
};
|
|
57
|
-
return Object.assign(mock(PageController), objectPage) as WithMock<
|
|
57
|
+
return Object.assign(mock(PageController) as any, objectPage) as WithMock<
|
|
58
58
|
Controller & PageController & ObjectPageControllerType & CommonControllerType
|
|
59
59
|
>;
|
|
60
60
|
}
|
|
@@ -63,11 +63,11 @@ export function mockContextForExtension<EXT extends object, BASE extends object>
|
|
|
63
63
|
extension: EXT,
|
|
64
64
|
controller: WithMock<Controller>,
|
|
65
65
|
base?: BASE
|
|
66
|
-
): WithMock<EXT & BASE
|
|
66
|
+
): WithMock<EXT & UI5InstanceType<BASE>> {
|
|
67
67
|
const view = controller.getView();
|
|
68
68
|
(extension as any).getView = () => view;
|
|
69
69
|
const mockedBase = mock(base || {});
|
|
70
|
-
return Object.assign(mockedBase, extension) as WithMock<EXT & BASE
|
|
70
|
+
return Object.assign(mockedBase, extension) as WithMock<EXT & UI5InstanceType<BASE>>;
|
|
71
71
|
}
|
|
72
72
|
|
|
73
73
|
export function mockFilterBar(): WithMock<FilterBar & { initialized: Function; _bSearchTriggered: Boolean }> {
|
|
@@ -104,6 +104,7 @@ sap.ui.define(["sap/fe/macros/PhantomUtil", "sap/ui/model/odata/v4/lib/_Metadata
|
|
|
104
104
|
"f": "sap.ui.layout.form",
|
|
105
105
|
"internalMacro": "sap.fe.macros.internal",
|
|
106
106
|
"mdc": "sap.ui.mdc",
|
|
107
|
+
"mdcat": "sap.ui.mdc.actiontoolbar",
|
|
107
108
|
"mdcField": "sap.ui.mdc.field",
|
|
108
109
|
"mdcTable": "sap.ui.mdc.table",
|
|
109
110
|
"u": "sap.ui.unified",
|
|
@@ -286,7 +287,7 @@ sap.ui.define(["sap/fe/macros/PhantomUtil", "sap/ui/model/odata/v4/lib/_Metadata
|
|
|
286
287
|
var entitySet = convertedTypes.entitySets.find(function (es) {
|
|
287
288
|
return es.name === manifestSettings.entitySet;
|
|
288
289
|
});
|
|
289
|
-
var dataModelPath = getDataModelObjectPathForProperty(entitySet, entitySet);
|
|
290
|
+
var dataModelPath = getDataModelObjectPathForProperty(entitySet, convertedTypes, entitySet);
|
|
290
291
|
return new ConverterContext(convertedTypes, manifestSettings, getFakeDiagnostics(), merge, dataModelPath);
|
|
291
292
|
};
|
|
292
293
|
|
|
@@ -318,13 +319,14 @@ sap.ui.define(["sap/fe/macros/PhantomUtil", "sap/ui/model/odata/v4/lib/_Metadata
|
|
|
318
319
|
|
|
319
320
|
_exports.getMetaModel = getMetaModel;
|
|
320
321
|
|
|
321
|
-
var getDataModelObjectPathForProperty = function (entitySet, property) {
|
|
322
|
+
var getDataModelObjectPathForProperty = function (entitySet, convertedTypes, property) {
|
|
322
323
|
var targetPath = {
|
|
323
324
|
startingEntitySet: entitySet,
|
|
324
325
|
navigationProperties: [],
|
|
325
326
|
targetObject: property,
|
|
326
327
|
targetEntitySet: entitySet,
|
|
327
|
-
targetEntityType: entitySet.entityType
|
|
328
|
+
targetEntityType: entitySet.entityType,
|
|
329
|
+
convertedTypes: convertedTypes
|
|
328
330
|
};
|
|
329
331
|
targetPath.contextLocation = targetPath;
|
|
330
332
|
return targetPath;
|
|
@@ -439,4 +441,4 @@ sap.ui.define(["sap/fe/macros/PhantomUtil", "sap/ui/model/odata/v4/lib/_Metadata
|
|
|
439
441
|
_exports.getTemplatedXML = getTemplatedXML;
|
|
440
442
|
return _exports;
|
|
441
443
|
}, false);
|
|
442
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkplc3RUZW1wbGF0aW5nSGVscGVyLnRzIl0sIm5hbWVzIjpbInByb2Nlc3NGcmFnbWVudCIsIm5hbWUiLCJ0ZXN0RGF0YSIsImlucHV0WG1sIiwicGFyc2VyIiwid2luZG93IiwiRE9NUGFyc2VyIiwiaW5wdXREb2MiLCJwYXJzZUZyb21TdHJpbmciLCJzZXR0aW5ncyIsIm1vZGVscyIsImJpbmRpbmdDb250ZXh0cyIsIm1vZGVsIiwianNvbk1vZGVsIiwiSlNPTk1vZGVsIiwic2V0RGF0YSIsImNyZWF0ZUJpbmRpbmdDb250ZXh0IiwiWE1MUHJlcHJvY2Vzc29yIiwicHJvY2VzcyIsImZpcnN0RWxlbWVudENoaWxkIiwicmVzdWx0RG9jIiwiZnJhZ21lbnRzIiwiZ2V0RWxlbWVudHNCeVRhZ05hbWUiLCJsZW5ndGgiLCJmcmFnbWVudCIsImlubmVySFRNTCIsInhtbFJlc3VsdCIsImNoaWxkcmVuIiwib3V0ZXJIVE1MIiwiZm9ybWF0WG1sIiwiZmlsdGVyIiwibm9kZSIsInR5cGUiLCJyZXF1aXJlIiwiTG9nIiwic2V0TGV2ZWwiLCJqZXN0Iiwic2V0VGltZW91dCIsIm5hbWVTcGFjZU1hcCIsInNlbGVjdCIsInhwYXRoIiwidXNlTmFtZXNwYWNlcyIsInJlZ2lzdGVyTWFjcm8iLCJtYWNyb01ldGFkYXRhIiwiUGhhbnRvbVV0aWwiLCJyZWdpc3RlciIsInVucmVnaXN0ZXJNYWNybyIsInBsdWdJbiIsIm5hbWVzcGFjZSIsInB1YmxpY05hbWUiLCJwdWJsaWNOYW1lc3BhY2UiLCJydW5YUGF0aFF1ZXJ5Iiwic2VsZWN0b3IiLCJ4bWxkb20iLCJleHBlY3QiLCJleHRlbmQiLCJ0b0hhdmVDb250cm9sIiwibm9kZXMiLCJtZXNzYWdlIiwib3V0cHV0WG1sIiwic2VyaWFsaXplWE1MIiwicGFzcyIsInRvTm90SGF2ZUNvbnRyb2wiLCJnZXRDb250cm9sQXR0cmlidXRlIiwiY29udHJvbFNlbGVjdG9yIiwiYXR0cmlidXRlTmFtZSIsInhtbERvbSIsInNlcmlhbGl6ZXIiLCJYTUxTZXJpYWxpemVyIiwieG1sU3RyaW5nIiwic2VyaWFsaXplVG9TdHJpbmciLCJyZXBsYWNlIiwiZm9ybWF0IiwiY29tcGlsZUNEUyIsInNDRFNVcmwiLCJjZHNTdHJpbmciLCJmcyIsInJlYWRGaWxlU3luYyIsImVkbXhDb250ZW50IiwiY2RzMmVkbXgiLCJkaXIiLCJwYXRoIiwicmVzb2x2ZSIsImVkbXhVcmwiLCJiYXNlbmFtZSIsImV4aXN0c1N5bmMiLCJta2RpclN5bmMiLCJ3cml0ZUZpbGVTeW5jIiwiY2RzIiwic2VydmljZSIsImNzbiIsImNvbXBpbGVTb3VyY2VzIiwiZWRteCIsInRvIiwib2RhdGFGb3JlaWduS2V5cyIsIm9kYXRhRm9ybWF0Iiwib2RhdGFDb250YWlubWVudCIsIkVycm9yIiwiZ2V0RmFrZVNpZGVFZmZlY3RzU2VydmljZSIsIm9NZXRhTW9kZWwiLCJvU2VydmljZUNvbnRleHQiLCJzY29wZU9iamVjdCIsInNjb3BlVHlwZSIsIlNpZGVFZmZlY3RzRmFjdG9yeSIsImNyZWF0ZUluc3RhbmNlIiwidGhlbiIsIm9TZXJ2aWNlSW5zdGFuY2UiLCJvSmVzdFNpZGVFZmZlY3RzU2VydmljZSIsImdldEludGVyZmFjZSIsImdldENvbnRleHQiLCJnZXRNb2RlbCIsImdldE1ldGFNb2RlbCIsImdldEZha2VEaWFnbm9zdGljcyIsImlzc3VlcyIsImFkZElzc3VlIiwiaXNzdWVDYXRlZ29yeSIsImlzc3VlU2V2ZXJpdHkiLCJkZXRhaWxzIiwicHVzaCIsImdldElzc3VlcyIsImNoZWNrSWZJc3N1ZUV4aXN0cyIsImZpbmQiLCJpc3N1ZSIsImdldENvbnZlcnRlckNvbnRleHRGb3JUZXN0IiwiY29udmVydGVkVHlwZXMiLCJtYW5pZmVzdFNldHRpbmdzIiwiZW50aXR5U2V0IiwiZW50aXR5U2V0cyIsImVzIiwiZGF0YU1vZGVsUGF0aCIsImdldERhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eSIsIkNvbnZlcnRlckNvbnRleHQiLCJtZXJnZSIsIm1ldGFNb2RlbENhY2hlIiwic01ldGFkYXRhVXJsIiwib1JlcXVlc3RvciIsIl9NZXRhZGF0YVJlcXVlc3RvciIsImNyZWF0ZSIsIk9EYXRhTWV0YU1vZGVsIiwidW5kZWZpbmVkIiwiZmV0Y2hFbnRpdHlDb250YWluZXIiLCJwcm9wZXJ0eSIsInRhcmdldFBhdGgiLCJzdGFydGluZ0VudGl0eVNldCIsIm5hdmlnYXRpb25Qcm9wZXJ0aWVzIiwidGFyZ2V0T2JqZWN0IiwidGFyZ2V0RW50aXR5U2V0IiwidGFyZ2V0RW50aXR5VHlwZSIsImVudGl0eVR5cGUiLCJjb250ZXh0TG9jYXRpb24iLCJldmFsdWF0ZUJpbmRpbmciLCJiaW5kaW5nU3RyaW5nIiwiYmluZGluZ0VsZW1lbnQiLCJCaW5kaW5nUGFyc2VyIiwiY29tcGxleFBhcnNlciIsImFyZ3MiLCJmb3JtYXR0ZXIiLCJhcHBseSIsImV2YWx1YXRlQmluZGluZ1dpdGhNb2RlbCIsIm1vZGVsQ29udGVudCIsIm5hbWVkTW9kZWxzQ29udGVudCIsInRleHQiLCJJbnZpc2libGVUZXh0IiwiYmluZFByb3BlcnR5IiwiZGVmYXVsdE1vZGVsIiwic2V0TW9kZWwiLCJzZXRCaW5kaW5nQ29udGV4dCIsIk9iamVjdCIsImVudHJpZXMiLCJjb250ZW50IiwiZ2V0VGV4dCIsImdldFRlbXBsYXRpbmdSZXN1bHQiLCJ4bWxJbnB1dCIsIm1CaW5kaW5nQ29udGV4dHMiLCJtTW9kZWxzIiwidGVtcGxhdGVkWG1sIiwieG1sRG9jIiwiaGFzT3duUHJvcGVydHkiLCJhc3NpZ24iLCJUZW1wbGF0ZU1vZGVsIiwia2V5cyIsImZvckVhY2giLCJzTW9kZWxOYW1lIiwiaXNUZW1wbGF0ZU1vZGVsIiwiZGF0YSIsIm9QcmVwcm9jZXNzb3JTZXR0aW5ncyIsIm1ldGFNb2RlbCIsInNLZXkiLCJnZXRPYmplY3QiLCJ0b0JlRGVmaW5lZCIsIm9Nb2RlbCIsImdldFRlbXBsYXRlZFhNTCJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF1VEE7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RixVQUFBQSxxQkFBcUIsQ0FBQzlLLGVBQXRCLENBQXNDZ0wsSUFBdEMsSUFBOENHLE1BQU0sQ0FBQzlLLG9CQUFQLENBQTRCNkosZ0JBQWdCLENBQUNjLElBQUQsQ0FBNUMsQ0FBOUMsQ0FKb0QsQ0FJK0M7O0FBQ25HRixVQUFBQSxxQkFBcUIsQ0FBQy9LLE1BQXRCLENBQTZCaUwsSUFBN0IsSUFBcUNHLE1BQXJDO0FBQ0EsU0FORCxFQTdCQyxDQXFDRDs7QUFDQSxZQUFJTCxxQkFBcUIsQ0FBQy9LLE1BQXRCLENBQTZCLE1BQTdCLENBQUosRUFBMEM7QUFDekMrSyxVQUFBQSxxQkFBcUIsQ0FBQzlLLGVBQXRCLENBQXNDLE1BQXRDLElBQWdEOEsscUJBQXFCLENBQUMvSyxNQUF0QixDQUE2QixNQUE3QixFQUFxQ00sb0JBQXJDLENBQTBELEdBQTFELENBQWhEO0FBQ0E7O0FBRUQsZUFBT0MsZUFBZSxDQUFDQyxPQUFoQixDQUF3QjhKLE1BQU0sQ0FBQzdKLGlCQUEvQixFQUFtRDtBQUFFbEIsVUFBQUEsSUFBSSxFQUFFO0FBQVIsU0FBbkQsRUFBOEV3TCxxQkFBOUUsQ0FBUDtBQTFDQztBQTJDRCxLQWhEK0I7QUFBQTtBQUFBO0FBQUEsR0FBekI7Ozs7QUFrREEsTUFBTU0sZUFBZSxhQUMzQm5CLFFBRDJCLEVBRTNCdEMsWUFGMkIsRUFHM0J1QyxnQkFIMkIsRUFJM0JDLE9BSjJCO0FBQUEsUUFLMUI7QUFBQSw2QkFDMEJILG1CQUFtQixDQUFDQyxRQUFELEVBQVd0QyxZQUFYLEVBQXlCdUMsZ0JBQXpCLEVBQTJDQyxPQUEzQyxDQUQ3QyxPQUVNbEgsWUFGTjtBQUdELEtBUjJCO0FBQUE7QUFBQTtBQUFBLEdBQXJCIiwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaGFudG9tVXRpbCB9IGZyb20gXCJzYXAvZmUvbWFjcm9zXCI7XG5pbXBvcnQgX01ldGFkYXRhUmVxdWVzdG9yIGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvbGliL19NZXRhZGF0YVJlcXVlc3RvclwiO1xuaW1wb3J0IE9EYXRhTWV0YU1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvT0RhdGFNZXRhTW9kZWxcIjtcbmltcG9ydCBYTUxQcmVwcm9jZXNzb3IgZnJvbSBcInNhcC91aS9jb3JlL3V0aWwvWE1MUHJlcHJvY2Vzc29yXCI7XG5pbXBvcnQgTG9nIGZyb20gXCJzYXAvYmFzZS9Mb2dcIjtcbmltcG9ydCB4cGF0aCBmcm9tIFwieHBhdGhcIjtcbmltcG9ydCAqIGFzIGZzIGZyb20gXCJmc1wiO1xuaW1wb3J0IHsgY29tcGlsZVNvdXJjZXMsIHRvIH0gZnJvbSBcIkBzYXAvY2RzLWNvbXBpbGVyXCI7XG5pbXBvcnQgeyBmb3JtYXQgfSBmcm9tIFwicHJldHRpZXJcIjtcbmltcG9ydCBCaW5kaW5nUGFyc2VyIGZyb20gXCJzYXAvdWkvYmFzZS9CaW5kaW5nUGFyc2VyXCI7XG5pbXBvcnQgeyBBbnlBbm5vdGF0aW9uLCBDb252ZXJ0ZXJPdXRwdXQsIEVudGl0eVNldCwgUHJvcGVydHkgfSBmcm9tIFwiQHNhcC11eC9hbm5vdGF0aW9uLWNvbnZlcnRlclwiO1xuaW1wb3J0IHsgRGF0YU1vZGVsT2JqZWN0UGF0aCB9IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL0RhdGFNb2RlbFBhdGhIZWxwZXJcIjtcbmltcG9ydCBKU09OTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9qc29uL0pTT05Nb2RlbFwiO1xuaW1wb3J0IEludmlzaWJsZVRleHQgZnJvbSBcInNhcC91aS9jb3JlL0ludmlzaWJsZVRleHRcIjtcbmltcG9ydCB7IExpc3RSZXBvcnRNYW5pZmVzdFNldHRpbmdzLCBPYmplY3RQYWdlTWFuaWZlc3RTZXR0aW5ncyB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL01hbmlmZXN0U2V0dGluZ3NcIjtcbmltcG9ydCB7IElzc3VlQ2F0ZWdvcnksIElzc3VlU2V2ZXJpdHkgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9oZWxwZXJzL0lzc3VlTWFuYWdlclwiO1xuaW1wb3J0IHsgSURpYWdub3N0aWNzIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvVGVtcGxhdGVDb252ZXJ0ZXJcIjtcbmltcG9ydCBtZXJnZSBmcm9tIFwic2FwL2Jhc2UvdXRpbC9tZXJnZVwiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IENvbnZlcnRlckNvbnRleHQgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvQ29udmVydGVyQ29udGV4dFwiO1xuaW1wb3J0IFNpZGVFZmZlY3RzRmFjdG9yeSBmcm9tIFwic2FwL2ZlL2NvcmUvc2VydmljZXMvU2lkZUVmZmVjdHNTZXJ2aWNlRmFjdG9yeVwiO1xuaW1wb3J0IFRlbXBsYXRlTW9kZWwgZnJvbSBcInNhcC9mZS9jb3JlL1RlbXBsYXRlTW9kZWxcIjtcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdmFyLXJlcXVpcmVzXG5jb25zdCBmb3JtYXRYbWwgPSByZXF1aXJlKFwieG1sLWZvcm1hdHRlclwiKTtcblxuTG9nLnNldExldmVsKDEgYXMgYW55LCBcInNhcC51aS5jb3JlLnV0aWwuWE1MUHJlcHJvY2Vzc29yXCIpO1xuamVzdC5zZXRUaW1lb3V0KDQwMDAwKTtcblxuY29uc3QgbmFtZVNwYWNlTWFwID0ge1xuXHRcIm1hY3Jvc1wiOiBcInNhcC5mZS5tYWNyb3NcIixcblx0XCJtYWNyb1wiOiBcInNhcC5mZS5tYWNyb3NcIixcblx0XCJtYWNyb2RhdGFcIjogXCJodHRwOi8vc2NoZW1hcy5zYXAuY29tL3NhcHVpNS9leHRlbnNpb24vc2FwLnVpLmNvcmUuQ3VzdG9tRGF0YS8xXCIsXG5cdFwibG9nXCI6IFwiaHR0cDovL3NjaGVtYXMuc2FwLmNvbS9zYXB1aTUvZXh0ZW5zaW9uL3NhcC51aS5jb3JlLkN1c3RvbURhdGEvMVwiLFxuXHRcInVuaXR0ZXN0XCI6IFwiaHR0cDovL3NjaGVtYXMuc2FwLmNvbS9zYXB1aTUvcHJlcHJvY2Vzc29yZXh0ZW5zaW9uL3NhcC5mZS51bml0dGVzdGluZy8xXCIsXG5cdFwiY29udHJvbFwiOiBcInNhcC5mZS5jb3JlLmNvbnRyb2xzXCIsXG5cdFwiY29yZVwiOiBcInNhcC51aS5jb3JlXCIsXG5cdFwibVwiOiBcInNhcC5tXCIsXG5cdFwiZlwiOiBcInNhcC51aS5sYXlvdXQuZm9ybVwiLFxuXHRcImludGVybmFsTWFjcm9cIjogXCJzYXAuZmUubWFjcm9zLmludGVybmFsXCIsXG5cdFwibWRjXCI6IFwic2FwLnVpLm1kY1wiLFxuXHRcIm1kY0ZpZWxkXCI6IFwic2FwLnVpLm1kYy5maWVsZFwiLFxuXHRcIm1kY1RhYmxlXCI6IFwic2FwLnVpLm1kYy50YWJsZVwiLFxuXHRcInVcIjogXCJzYXAudWkudW5pZmllZFwiLFxuXHRcIm1hY3JvTWljcm9DaGFydFwiOiBcInNhcC5mZS5tYWNyb3MubWljcm9jaGFydFwiLFxuXHRcIm1pY3JvQ2hhcnRcIjogXCJzYXAuc3VpdGUudWkubWljcm9jaGFydFwiXG59O1xuY29uc3Qgc2VsZWN0ID0geHBhdGgudXNlTmFtZXNwYWNlcyhuYW1lU3BhY2VNYXApO1xuXG5leHBvcnQgY29uc3QgcmVnaXN0ZXJNYWNybyA9IGZ1bmN0aW9uKG1hY3JvTWV0YWRhdGE6IGFueSkge1xuXHRQaGFudG9tVXRpbC5yZWdpc3RlcihtYWNyb01ldGFkYXRhKTtcbn07XG5leHBvcnQgY29uc3QgdW5yZWdpc3Rlck1hY3JvID0gZnVuY3Rpb24obWFjcm9NZXRhZGF0YTogYW55KSB7XG5cdFhNTFByZXByb2Nlc3Nvci5wbHVnSW4obnVsbCwgbWFjcm9NZXRhZGF0YS5uYW1lc3BhY2UsIG1hY3JvTWV0YWRhdGEubmFtZSk7XG5cdGlmIChtYWNyb01ldGFkYXRhLnB1YmxpY05hbWUpIHtcblx0XHRYTUxQcmVwcm9jZXNzb3IucGx1Z0luKG51bGwsIG1hY3JvTWV0YWRhdGEucHVibGljTmFtZXNwYWNlLCBtYWNyb01ldGFkYXRhLnB1YmxpY05hbWUpO1xuXHR9XG59O1xuZXhwb3J0IGNvbnN0IHJ1blhQYXRoUXVlcnkgPSBmdW5jdGlvbihzZWxlY3Rvcjogc3RyaW5nLCB4bWxkb206IE5vZGUgfCB1bmRlZmluZWQpIHtcblx0cmV0dXJuIHNlbGVjdChzZWxlY3RvciwgeG1sZG9tKTtcbn07XG5cbmV4cGVjdC5leHRlbmQoe1xuXHR0b0hhdmVDb250cm9sKHhtbGRvbSwgc2VsZWN0b3IpIHtcblx0XHRjb25zdCBub2RlcyA9IHJ1blhQYXRoUXVlcnkoYC9yb290JHtzZWxlY3Rvcn1gLCB4bWxkb20pO1xuXHRcdHJldHVybiB7XG5cdFx0XHRtZXNzYWdlOiAoKSA9PiB7XG5cdFx0XHRcdGNvbnN0IG91dHB1dFhtbCA9IHNlcmlhbGl6ZVhNTCh4bWxkb20pO1xuXHRcdFx0XHRyZXR1cm4gYGRpZCBub3QgZmluZCBjb250cm9scyBtYXRjaGluZyAke3NlbGVjdG9yfSBpbiBnZW5lcmF0ZWQgeG1sOlxcbiAke291dHB1dFhtbH1gO1xuXHRcdFx0fSxcblx0XHRcdHBhc3M6IG5vZGVzICYmIG5vZGVzLmxlbmd0aCA+PSAxXG5cdFx0fTtcblx0fSxcblx0dG9Ob3RIYXZlQ29udHJvbCh4bWxkb20sIHNlbGVjdG9yKSB7XG5cdFx0Y29uc3Qgbm9kZXMgPSBydW5YUGF0aFF1ZXJ5KGAvcm9vdCR7c2VsZWN0b3J9YCwgeG1sZG9tKTtcblx0XHRyZXR1cm4ge1xuXHRcdFx0bWVzc2FnZTogKCkgPT4ge1xuXHRcdFx0XHRjb25zdCBvdXRwdXRYbWwgPSBzZXJpYWxpemVYTUwoeG1sZG9tKTtcblx0XHRcdFx0cmV0dXJuIGBUaGVyZSBpcyBhIGNvbnRyb2wgbWF0Y2hpbmcgJHtzZWxlY3Rvcn0gaW4gZ2VuZXJhdGVkIHhtbDpcXG4gJHtvdXRwdXRYbWx9YDtcblx0XHRcdH0sXG5cdFx0XHRwYXNzOiBub2RlcyAmJiBub2Rlcy5sZW5ndGggPT09IDBcblx0XHR9O1xuXHR9XG59KTtcblxuZXhwb3J0IGNvbnN0IGdldENvbnRyb2xBdHRyaWJ1dGUgPSBmdW5jdGlvbihjb250cm9sU2VsZWN0b3I6IHN0cmluZywgYXR0cmlidXRlTmFtZTogc3RyaW5nLCB4bWxEb206IE5vZGUpIHtcblx0Y29uc3Qgc2VsZWN0b3IgPSBgc3RyaW5nKC9yb290JHtjb250cm9sU2VsZWN0b3J9L0Ake2F0dHJpYnV0ZU5hbWV9KWA7XG5cdHJldHVybiBydW5YUGF0aFF1ZXJ5KHNlbGVjdG9yLCB4bWxEb20pO1xufTtcblxuZXhwb3J0IGNvbnN0IHNlcmlhbGl6ZVhNTCA9IGZ1bmN0aW9uKHhtbERvbTogTm9kZSkge1xuXHRjb25zdCBzZXJpYWxpemVyID0gbmV3IHdpbmRvdy5YTUxTZXJpYWxpemVyKCk7XG5cdGNvbnN0IHhtbFN0cmluZyA9IHNlcmlhbGl6ZXJcblx0XHQuc2VyaWFsaXplVG9TdHJpbmcoeG1sRG9tKVxuXHRcdC5yZXBsYWNlKC8oPzpbXFx0IF0qKD86XFxyP1xcbnxcXHIpKSsvZywgXCJcXG5cIilcblx0XHQucmVwbGFjZSgvXFxcXFwiL2csICdcIicpO1xuXHRyZXR1cm4gZm9ybWF0KHhtbFN0cmluZywgeyBwYXJzZXI6IFwiaHRtbFwiIH0pO1xufTtcblxuLyoqXG4gKiBDb21waWxlIGEgQ0RTIGZpbGUgaW50byBhbiBFRE1YIGZpbGUuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHNDRFNVcmwgVGhlIHBhdGggdG8gdGhlIGZpbGUgY29udGFpbmluZyB0aGUgQ0RTIGRlZmluaXRpb24uIFRoaXMgZmlsZSBNVVNUIGRlY2xhcmUgdGhlIG5hbWVzcGFjZVxuICogc2FwLmZlLnRlc3QgYW5kIGEgc2VydmljZSBKZXN0U2VydmljZVxuICogQHJldHVybnMge3N0cmluZ30gVGhlIHBhdGggb2YgdGhlIGdlbmVyYXRlZCBFRE1YXG4gKi9cbmV4cG9ydCBjb25zdCBjb21waWxlQ0RTID0gZnVuY3Rpb24oc0NEU1VybDogc3RyaW5nKSB7XG5cdGNvbnN0IGNkc1N0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhzQ0RTVXJsLCBcInV0Zi04XCIpO1xuXHRjb25zdCBlZG14Q29udGVudCA9IGNkczJlZG14KGNkc1N0cmluZywgXCJzYXAuZmUudGVzdC5KZXN0U2VydmljZVwiKTtcblx0Y29uc3QgZGlyID0gcGF0aC5yZXNvbHZlKHNDRFNVcmwsIFwiLi5cIiwgXCJnZW5cIik7XG5cdGNvbnN0IGVkbXhVcmwgPSBwYXRoLnJlc29sdmUoZGlyLCBwYXRoLmJhc2VuYW1lKHNDRFNVcmwpLnJlcGxhY2UoXCIuY2RzXCIsIFwiLnhtbFwiKSk7XG5cblx0aWYgKCFmcy5leGlzdHNTeW5jKGRpcikpIHtcblx0XHRmcy5ta2RpclN5bmMoZGlyKTtcblx0fVxuXG5cdGZzLndyaXRlRmlsZVN5bmMoZWRteFVybCwgZWRteENvbnRlbnQpO1xuXHRyZXR1cm4gZWRteFVybDtcbn07XG5cbi8qKlxuICogQ29tcGlsZSBDRFMgdG8gRURNWC5cbiAqXG4gKiBAcGFyYW0gY2RzIFRoZSBDRFMgbW9kZWwuIEl0IG11c3QgZGVmaW5lIGF0IGxlYXN0IG9uZSBzZXJ2aWNlLlxuICogQHBhcmFtIHNlcnZpY2UgVGhlIGZ1bGx5LXF1YWxpZmllZCBuYW1lIG9mIHRoZSBzZXJ2aWNlIHRvIGNvbXBpbGUuIERlZmF1bHRzIHRvIFwic2FwLmZlLnRlc3QuSmVzdFNlcnZpY2VcIi5cbiAqIEByZXR1cm5zIFRoZSBjb21waWxlZCBzZXJ2aWNlIG1vZGVsIGFzIEVETVguXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjZHMyZWRteChjZHM6IHN0cmluZywgc2VydmljZTogc3RyaW5nID0gXCJzYXAuZmUudGVzdC5KZXN0U2VydmljZVwiKSB7XG5cdGNvbnN0IGNzbiA9IGNvbXBpbGVTb3VyY2VzKHsgXCJzdHJpbmcuY2RzXCI6IGNkcyB9LCB7fSk7XG5cdGNvbnN0IGVkbXggPSB0by5lZG14KGNzbiwgeyBzZXJ2aWNlOiBzZXJ2aWNlLCBvZGF0YUZvcmVpZ25LZXlzOiB0cnVlLCBvZGF0YUZvcm1hdDogXCJzdHJ1Y3R1cmVkXCIsIG9kYXRhQ29udGFpbm1lbnQ6IGZhbHNlIH0pO1xuXHRpZiAoIWVkbXgpIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoYENvbXBpbGF0aW9uIGZhaWxlZC4gSGludDogTWFrZSBzdXJlIHRoYXQgdGhlIENEUyBtb2RlbCBkZWZpbmVzIHNlcnZpY2UgJHtzZXJ2aWNlfS5gKTtcblx0fVxuXHRyZXR1cm4gZWRteDtcbn1cblxuZXhwb3J0IGNvbnN0IGdldEZha2VTaWRlRWZmZWN0c1NlcnZpY2UgPSBhc3luYyBmdW5jdGlvbihvTWV0YU1vZGVsOiBPRGF0YU1ldGFNb2RlbCk6IFByb21pc2U8YW55PiB7XG5cdGNvbnN0IG9TZXJ2aWNlQ29udGV4dCA9IHsgc2NvcGVPYmplY3Q6IHt9LCBzY29wZVR5cGU6IFwiXCIsIHNldHRpbmdzOiB7fSB9O1xuXHRyZXR1cm4gbmV3IFNpZGVFZmZlY3RzRmFjdG9yeSgpLmNyZWF0ZUluc3RhbmNlKG9TZXJ2aWNlQ29udGV4dCkudGhlbihmdW5jdGlvbihvU2VydmljZUluc3RhbmNlOiBhbnkpIHtcblx0XHRjb25zdCBvSmVzdFNpZGVFZmZlY3RzU2VydmljZSA9IG9TZXJ2aWNlSW5zdGFuY2UuZ2V0SW50ZXJmYWNlKCk7XG5cdFx0b0plc3RTaWRlRWZmZWN0c1NlcnZpY2UuZ2V0Q29udGV4dCA9IGZ1bmN0aW9uKCkge1xuXHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0c2NvcGVPYmplY3Q6IHtcblx0XHRcdFx0XHRnZXRNb2RlbDogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRcdFx0XHRnZXRNZXRhTW9kZWw6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdFx0XHRcdHJldHVybiBvTWV0YU1vZGVsO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fTtcblx0XHR9O1xuXHRcdHJldHVybiBvSmVzdFNpZGVFZmZlY3RzU2VydmljZTtcblx0fSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0RmFrZURpYWdub3N0aWNzID0gZnVuY3Rpb24oKTogSURpYWdub3N0aWNzIHtcblx0Y29uc3QgaXNzdWVzOiBhbnlbXSA9IFtdO1xuXHRyZXR1cm4ge1xuXHRcdGFkZElzc3VlKGlzc3VlQ2F0ZWdvcnk6IElzc3VlQ2F0ZWdvcnksIGlzc3VlU2V2ZXJpdHk6IElzc3VlU2V2ZXJpdHksIGRldGFpbHM6IHN0cmluZyk6IHZvaWQge1xuXHRcdFx0aXNzdWVzLnB1c2goe1xuXHRcdFx0XHRpc3N1ZUNhdGVnb3J5LFxuXHRcdFx0XHRpc3N1ZVNldmVyaXR5LFxuXHRcdFx0XHRkZXRhaWxzXG5cdFx0XHR9KTtcblx0XHR9LFxuXHRcdGdldElzc3VlcygpOiBhbnlbXSB7XG5cdFx0XHRyZXR1cm4gaXNzdWVzO1xuXHRcdH0sXG5cdFx0Y2hlY2tJZklzc3VlRXhpc3RzKGlzc3VlQ2F0ZWdvcnk6IElzc3VlQ2F0ZWdvcnksIGlzc3VlU2V2ZXJpdHk6IElzc3VlU2V2ZXJpdHksIGRldGFpbHM6IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdFx0cmV0dXJuIGlzc3Vlcy5maW5kKGlzc3VlID0+IHtcblx0XHRcdFx0aXNzdWUuaXNzdWVDYXRlZ29yeSA9PT0gaXNzdWVDYXRlZ29yeSAmJiBpc3N1ZS5pc3N1ZVNldmVyaXR5ID09PSBpc3N1ZVNldmVyaXR5ICYmIGlzc3VlLmRldGFpbHMgPT09IGRldGFpbHM7XG5cdFx0XHR9KTtcblx0XHR9XG5cdH07XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Q29udmVydGVyQ29udGV4dEZvclRlc3QgPSBmdW5jdGlvbihcblx0Y29udmVydGVkVHlwZXM6IENvbnZlcnRlck91dHB1dCxcblx0bWFuaWZlc3RTZXR0aW5nczogTGlzdFJlcG9ydE1hbmlmZXN0U2V0dGluZ3MgfCBPYmplY3RQYWdlTWFuaWZlc3RTZXR0aW5nc1xuKSB7XG5cdGNvbnN0IGVudGl0eVNldCA9IGNvbnZlcnRlZFR5cGVzLmVudGl0eVNldHMuZmluZChlcyA9PiBlcy5uYW1lID09PSBtYW5pZmVzdFNldHRpbmdzLmVudGl0eVNldCk7XG5cdGNvbnN0IGRhdGFNb2RlbFBhdGggPSBnZXREYXRhTW9kZWxPYmplY3RQYXRoRm9yUHJvcGVydHkoZW50aXR5U2V0IGFzIEVudGl0eVNldCwgZW50aXR5U2V0KTtcblx0cmV0dXJuIG5ldyBDb252ZXJ0ZXJDb250ZXh0KGNvbnZlcnRlZFR5cGVzLCBtYW5pZmVzdFNldHRpbmdzLCBnZXRGYWtlRGlhZ25vc3RpY3MoKSwgbWVyZ2UsIGRhdGFNb2RlbFBhdGgpO1xufTtcbmNvbnN0IG1ldGFNb2RlbENhY2hlOiBhbnkgPSB7fTtcbmV4cG9ydCBjb25zdCBnZXRNZXRhTW9kZWwgPSBhc3luYyBmdW5jdGlvbihzTWV0YWRhdGFVcmw6IHN0cmluZykge1xuXHRjb25zdCBvUmVxdWVzdG9yID0gX01ldGFkYXRhUmVxdWVzdG9yLmNyZWF0ZSh7fSwgXCI0LjBcIiwge30pO1xuXHRpZiAoIW1ldGFNb2RlbENhY2hlW3NNZXRhZGF0YVVybF0pIHtcblx0XHRjb25zdCBvTWV0YU1vZGVsID0gbmV3IE9EYXRhTWV0YU1vZGVsKG9SZXF1ZXN0b3IsIHNNZXRhZGF0YVVybCwgdW5kZWZpbmVkLCBudWxsKTtcblx0XHRhd2FpdCBvTWV0YU1vZGVsLmZldGNoRW50aXR5Q29udGFpbmVyKCk7XG5cdFx0bWV0YU1vZGVsQ2FjaGVbc01ldGFkYXRhVXJsXSA9IG9NZXRhTW9kZWw7XG5cdH1cblxuXHRyZXR1cm4gbWV0YU1vZGVsQ2FjaGVbc01ldGFkYXRhVXJsXTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXREYXRhTW9kZWxPYmplY3RQYXRoRm9yUHJvcGVydHkgPSBmdW5jdGlvbihcblx0ZW50aXR5U2V0OiBFbnRpdHlTZXQsXG5cdHByb3BlcnR5PzogUHJvcGVydHkgfCBFbnRpdHlTZXQgfCBBbnlBbm5vdGF0aW9uXG4pOiBEYXRhTW9kZWxPYmplY3RQYXRoIHtcblx0Y29uc3QgdGFyZ2V0UGF0aDogRGF0YU1vZGVsT2JqZWN0UGF0aCA9IHtcblx0XHRzdGFydGluZ0VudGl0eVNldDogZW50aXR5U2V0LFxuXHRcdG5hdmlnYXRpb25Qcm9wZXJ0aWVzOiBbXSxcblx0XHR0YXJnZXRPYmplY3Q6IHByb3BlcnR5LFxuXHRcdHRhcmdldEVudGl0eVNldDogZW50aXR5U2V0LFxuXHRcdHRhcmdldEVudGl0eVR5cGU6IGVudGl0eVNldC5lbnRpdHlUeXBlXG5cdH07XG5cdHRhcmdldFBhdGguY29udGV4dExvY2F0aW9uID0gdGFyZ2V0UGF0aDtcblx0cmV0dXJuIHRhcmdldFBhdGg7XG59O1xuXG5leHBvcnQgY29uc3QgZXZhbHVhdGVCaW5kaW5nID0gZnVuY3Rpb24oYmluZGluZ1N0cmluZzogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSkge1xuXHRjb25zdCBiaW5kaW5nRWxlbWVudCA9IEJpbmRpbmdQYXJzZXIuY29tcGxleFBhcnNlcihiaW5kaW5nU3RyaW5nKTtcblx0cmV0dXJuIGJpbmRpbmdFbGVtZW50LmZvcm1hdHRlci5hcHBseSh1bmRlZmluZWQsIGFyZ3MpO1xufTtcblxudHlwZSBNb2RlbENvbnRlbnQgPSB7XG5cdFtuYW1lOiBzdHJpbmddOiBhbnk7XG59O1xuXG4vKipcbiAqIEV2YWx1YXRlIGEgYmluZGluZyBhZ2FpbnN0IGEgbW9kZWwuXG4gKlxuICogQHBhcmFtIGJpbmRpbmdTdHJpbmcgVGhlIGJpbmRpbmcgc3RyaW5nLlxuICogQHBhcmFtIG1vZGVsQ29udGVudCBDb250ZW50IG9mIHRoZSBkZWZhdWx0IG1vZGVsIHRvIHVzZSBmb3IgZXZhbHVhdGlvbi5cbiAqIEBwYXJhbSBuYW1lZE1vZGVsc0NvbnRlbnQgQ29udGVudHMgb2YgYWRkaXRpb25hbCwgbmFtZWQgbW9kZWxzIHRvIHVzZS5cbiAqIEByZXR1cm5zIFRoZSBldmFsdWF0ZWQgYmluZGluZy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV2YWx1YXRlQmluZGluZ1dpdGhNb2RlbChcblx0YmluZGluZ1N0cmluZzogc3RyaW5nIHwgdW5kZWZpbmVkLFxuXHRtb2RlbENvbnRlbnQ6IE1vZGVsQ29udGVudCxcblx0bmFtZWRNb2RlbHNDb250ZW50PzogeyBbbW9kZWxOYW1lOiBzdHJpbmddOiBNb2RlbENvbnRlbnQgfVxuKTogc3RyaW5nIHtcblx0Y29uc3QgYmluZGluZ0VsZW1lbnQgPSBCaW5kaW5nUGFyc2VyLmNvbXBsZXhQYXJzZXIoYmluZGluZ1N0cmluZyk7XG5cdGNvbnN0IHRleHQgPSBuZXcgSW52aXNpYmxlVGV4dCgpO1xuXHR0ZXh0LmJpbmRQcm9wZXJ0eShcInRleHRcIiwgYmluZGluZ0VsZW1lbnQpO1xuXG5cdGNvbnN0IGRlZmF1bHRNb2RlbCA9IG5ldyBKU09OTW9kZWwobW9kZWxDb250ZW50KTtcblx0dGV4dC5zZXRNb2RlbChkZWZhdWx0TW9kZWwpO1xuXHR0ZXh0LnNldEJpbmRpbmdDb250ZXh0KGRlZmF1bHRNb2RlbC5jcmVhdGVCaW5kaW5nQ29udGV4dChcIi9cIikpO1xuXG5cdGlmIChuYW1lZE1vZGVsc0NvbnRlbnQpIHtcblx0XHRmb3IgKGNvbnN0IFtuYW1lLCBjb250ZW50XSBvZiBPYmplY3QuZW50cmllcyhuYW1lZE1vZGVsc0NvbnRlbnQpKSB7XG5cdFx0XHRjb25zdCBtb2RlbCA9IG5ldyBKU09OTW9kZWwoY29udGVudCk7XG5cdFx0XHR0ZXh0LnNldE1vZGVsKG1vZGVsLCBuYW1lKTtcblx0XHRcdHRleHQuc2V0QmluZGluZ0NvbnRleHQobW9kZWwuY3JlYXRlQmluZGluZ0NvbnRleHQoXCIvXCIpLCBuYW1lKTtcblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gdGV4dC5nZXRUZXh0KCk7XG59XG5cbmV4cG9ydCBjb25zdCBnZXRUZW1wbGF0aW5nUmVzdWx0ID0gYXN5bmMgZnVuY3Rpb24oXG5cdHhtbElucHV0OiBzdHJpbmcsXG5cdHNNZXRhZGF0YVVybDogc3RyaW5nLFxuXHRtQmluZGluZ0NvbnRleHRzOiB7IFt4OiBzdHJpbmddOiBhbnk7IGVudGl0eVNldD86IHN0cmluZyB9LFxuXHRtTW9kZWxzOiB7IFt4OiBzdHJpbmddOiBhbnkgfVxuKSB7XG5cdGNvbnN0IHRlbXBsYXRlZFhtbCA9IGA8cm9vdD4ke3htbElucHV0fTwvcm9vdD5gO1xuXHRjb25zdCBwYXJzZXIgPSBuZXcgd2luZG93LkRPTVBhcnNlcigpO1xuXHRjb25zdCB4bWxEb2MgPSBwYXJzZXIucGFyc2VGcm9tU3RyaW5nKHRlbXBsYXRlZFhtbCwgXCJ0ZXh0L3htbFwiKTtcblx0Ly8gVG8gZW5zdXJlIG91ciBtYWNybyBjYW4gdXNlICNzZXRCaW5kaW5nQ29udGV4dCB3ZSBlbnN1cmUgdGhlcmUgaXMgYSBwcmUgZXhpc3RpbmcgSlNPTk1vZGVsIGZvciBjb252ZXJ0ZXJDb250ZXh0XG5cdC8vIGlmIG5vdCBhbHJlYWR5IHBhc3NlZCB0byB0ZWggdGVtcGxhdGluZ1xuXG5cdGNvbnN0IG9NZXRhTW9kZWwgPSBhd2FpdCBnZXRNZXRhTW9kZWwoc01ldGFkYXRhVXJsKTtcblx0aWYgKCFtTW9kZWxzLmhhc093blByb3BlcnR5KFwiY29udmVydGVyQ29udGV4dFwiKSkge1xuXHRcdG1Nb2RlbHMgPSBPYmplY3QuYXNzaWduKG1Nb2RlbHMsIHsgXCJjb252ZXJ0ZXJDb250ZXh0XCI6IG5ldyBUZW1wbGF0ZU1vZGVsKHt9LCBvTWV0YU1vZGVsKSB9KTtcblx0fVxuXG5cdE9iamVjdC5rZXlzKG1Nb2RlbHMpLmZvckVhY2goZnVuY3Rpb24oc01vZGVsTmFtZSkge1xuXHRcdGlmIChtTW9kZWxzW3NNb2RlbE5hbWVdICYmIG1Nb2RlbHNbc01vZGVsTmFtZV0uaXNUZW1wbGF0ZU1vZGVsKSB7XG5cdFx0XHRtTW9kZWxzW3NNb2RlbE5hbWVdID0gbmV3IFRlbXBsYXRlTW9kZWwobU1vZGVsc1tzTW9kZWxOYW1lXS5kYXRhLCBvTWV0YU1vZGVsKTtcblx0XHR9XG5cdH0pO1xuXG5cdGNvbnN0IG9QcmVwcm9jZXNzb3JTZXR0aW5nczogYW55ID0ge1xuXHRcdG1vZGVsczogT2JqZWN0LmFzc2lnbihcblx0XHRcdHtcblx0XHRcdFx0bWV0YU1vZGVsOiBvTWV0YU1vZGVsXG5cdFx0XHR9LFxuXHRcdFx0bU1vZGVsc1xuXHRcdCksXG5cdFx0YmluZGluZ0NvbnRleHRzOiB7fVxuXHR9O1xuXG5cdC8vSW5qZWN0IG1vZGVscyBhbmQgYmluZGluZ0NvbnRleHRzXG5cdE9iamVjdC5rZXlzKG1CaW5kaW5nQ29udGV4dHMpLmZvckVhY2goZnVuY3Rpb24oc0tleSkge1xuXHRcdC8qIEFzc2VydCB0byBtYWtlIHN1cmUgdGhlIGFubm90YXRpb25zIGFyZSBpbiB0aGUgdGVzdCBtZXRhZGF0YSAtPiBhdm9pZCBtaXNsZWFkaW5nIHRlc3RzICovXG5cdFx0ZXhwZWN0KHR5cGVvZiBvTWV0YU1vZGVsLmdldE9iamVjdChtQmluZGluZ0NvbnRleHRzW3NLZXldKSkudG9CZURlZmluZWQoKTtcblx0XHRjb25zdCBvTW9kZWwgPSBtTW9kZWxzW3NLZXldIHx8IG9NZXRhTW9kZWw7XG5cdFx0b1ByZXByb2Nlc3NvclNldHRpbmdzLmJpbmRpbmdDb250ZXh0c1tzS2V5XSA9IG9Nb2RlbC5jcmVhdGVCaW5kaW5nQ29udGV4dChtQmluZGluZ0NvbnRleHRzW3NLZXldKTsgLy9WYWx1ZSBpcyBzUGF0aFxuXHRcdG9QcmVwcm9jZXNzb3JTZXR0aW5ncy5tb2RlbHNbc0tleV0gPSBvTW9kZWw7XG5cdH0pO1xuXG5cdC8vVGhpcyBjb250ZXh0IGZvciBtYWNybyB0ZXN0aW5nXG5cdGlmIChvUHJlcHJvY2Vzc29yU2V0dGluZ3MubW9kZWxzW1widGhpc1wiXSkge1xuXHRcdG9QcmVwcm9jZXNzb3JTZXR0aW5ncy5iaW5kaW5nQ29udGV4dHNbXCJ0aGlzXCJdID0gb1ByZXByb2Nlc3NvclNldHRpbmdzLm1vZGVsc1tcInRoaXNcIl0uY3JlYXRlQmluZGluZ0NvbnRleHQoXCIvXCIpO1xuXHR9XG5cblx0cmV0dXJuIFhNTFByZXByb2Nlc3Nvci5wcm9jZXNzKHhtbERvYy5maXJzdEVsZW1lbnRDaGlsZCEsIHsgbmFtZTogXCJUZXN0IEZyYWdtZW50XCIgfSwgb1ByZXByb2Nlc3NvclNldHRpbmdzKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRUZW1wbGF0ZWRYTUwgPSBhc3luYyBmdW5jdGlvbihcblx0eG1sSW5wdXQ6IHN0cmluZyxcblx0c01ldGFkYXRhVXJsOiBzdHJpbmcsXG5cdG1CaW5kaW5nQ29udGV4dHM6IHsgW3g6IHN0cmluZ106IGFueTsgZW50aXR5U2V0Pzogc3RyaW5nIH0sXG5cdG1Nb2RlbHM6IHsgW3g6IHN0cmluZ106IGFueSB9XG4pIHtcblx0Y29uc3QgdGVtcGxhdGVkWE1MID0gYXdhaXQgZ2V0VGVtcGxhdGluZ1Jlc3VsdCh4bWxJbnB1dCwgc01ldGFkYXRhVXJsLCBtQmluZGluZ0NvbnRleHRzLCBtTW9kZWxzKTtcblx0cmV0dXJuIHNlcmlhbGl6ZVhNTCh0ZW1wbGF0ZWRYTUwpO1xufTtcblxuLyoqXG4gKiBQcm9jZXNzIHRoZSByZXF1ZXN0ZWQgWE1MIGZyYWdtZW50IHdpdGggdGhlIHByb3ZpZGVkIGRhdGEuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IG5hbWUgRnVsbHkgcXVhbGlmaWVkIG5hbWUgb2YgdGhlIGZyYWdtZW50IHRvIGJlIHRlc3RlZC5cbiAqIEBwYXJhbSB7b2JqZWN0fSB0ZXN0RGF0YSBUZXN0IGRhdGEgY29uc2lzdGluZ1xuICogQHJldHVybnMgVGVtcGxhdGVkIGZyYWdtZW50IGFzIHN0cmluZ1xuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcHJvY2Vzc0ZyYWdtZW50KG5hbWU6IHN0cmluZywgdGVzdERhdGE6IHsgW21vZGVsOiBzdHJpbmddOiBvYmplY3QgfSk6IFByb21pc2U8c3RyaW5nPiB7XG5cdGNvbnN0IGlucHV0WG1sID0gYDxyb290Pjxjb3JlOkZyYWdtZW50IGZyYWdtZW50TmFtZT1cIiR7bmFtZX1cIiB0eXBlPVwiWE1MXCIgeG1sbnM6Y29yZT1cInNhcC51aS5jb3JlXCIgLz48L3Jvb3Q+YDtcblx0Y29uc3QgcGFyc2VyID0gbmV3IHdpbmRvdy5ET01QYXJzZXIoKTtcblx0Y29uc3QgaW5wdXREb2MgPSBwYXJzZXIucGFyc2VGcm9tU3RyaW5nKGlucHV0WG1sLCBcInRleHQveG1sXCIpO1xuXG5cdC8vIGJ1aWxkIG1vZGVsIGFuZCBiaW5kaW5ncyBmb3IgZ2l2ZW4gdGVzdCBkYXRhXG5cdGNvbnN0IHNldHRpbmdzID0ge1xuXHRcdG1vZGVsczoge30gYXMgeyBbbmFtZTogc3RyaW5nXTogSlNPTk1vZGVsIH0sXG5cdFx0YmluZGluZ0NvbnRleHRzOiB7fSBhcyB7IFtuYW1lOiBzdHJpbmddOiBvYmplY3QgfVxuXHR9O1xuXHRmb3IgKGNvbnN0IG1vZGVsIGluIHRlc3REYXRhKSB7XG5cdFx0Y29uc3QganNvbk1vZGVsID0gbmV3IEpTT05Nb2RlbCgpO1xuXHRcdGpzb25Nb2RlbC5zZXREYXRhKHRlc3REYXRhW21vZGVsXSk7XG5cdFx0c2V0dGluZ3MubW9kZWxzW21vZGVsXSA9IGpzb25Nb2RlbDtcblx0XHRzZXR0aW5ncy5iaW5kaW5nQ29udGV4dHNbbW9kZWxdID0gc2V0dGluZ3MubW9kZWxzW21vZGVsXS5jcmVhdGVCaW5kaW5nQ29udGV4dChcIi9cIik7XG5cdH1cblxuXHQvLyBleGVjdXRlIHRoZSBwcmUtcHJvY2Vzc29yXG5cdGNvbnN0IHJlc3VsdERvYyA9IGF3YWl0IFhNTFByZXByb2Nlc3Nvci5wcm9jZXNzKGlucHV0RG9jLmZpcnN0RWxlbWVudENoaWxkLCB7IG5hbWUgfSwgc2V0dGluZ3MpO1xuXG5cdC8vIGV4Y2x1ZGUgbmVzdGVkIGZyYWdtZW50cyBmcm9tIHRlc3Qgc25hcHNob3RzXG5cdGNvbnN0IGZyYWdtZW50cyA9IHJlc3VsdERvYy5nZXRFbGVtZW50c0J5VGFnTmFtZShcImNvcmU6RnJhZ21lbnRcIik7XG5cdGlmIChmcmFnbWVudHM/Lmxlbmd0aCA+IDApIHtcblx0XHRmb3IgKGNvbnN0IGZyYWdtZW50IG9mIGZyYWdtZW50cykge1xuXHRcdFx0ZnJhZ21lbnQuaW5uZXJIVE1MID0gXCJcIjtcblx0XHR9XG5cdH1cblxuXHQvLyBLZWVwIHRoZSBmcmFnbWVudCByZXN1bHQgYXMgY2hpbGQgb2Ygcm9vdCBub2RlIHdoZW4gZnJhZ21lbnQgZ2VuZXJhdGVzIG11bHRpcGxlIHJvb3QgY29udHJvbHNcblx0Y29uc3QgeG1sUmVzdWx0ID0gcmVzdWx0RG9jLmNoaWxkcmVuLmxlbmd0aCA+IDEgPyByZXN1bHREb2Mub3V0ZXJIVE1MIDogcmVzdWx0RG9jLmlubmVySFRNTDtcblxuXHRyZXR1cm4gZm9ybWF0WG1sKHhtbFJlc3VsdCwge1xuXHRcdGZpbHRlcjogKG5vZGU6IGFueSkgPT4gbm9kZS50eXBlICE9PSBcIkNvbW1lbnRcIlxuXHR9KTtcbn1cbiJdfQ==
|
|
444
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkplc3RUZW1wbGF0aW5nSGVscGVyLnRzIl0sIm5hbWVzIjpbInByb2Nlc3NGcmFnbWVudCIsIm5hbWUiLCJ0ZXN0RGF0YSIsImlucHV0WG1sIiwicGFyc2VyIiwid2luZG93IiwiRE9NUGFyc2VyIiwiaW5wdXREb2MiLCJwYXJzZUZyb21TdHJpbmciLCJzZXR0aW5ncyIsIm1vZGVscyIsImJpbmRpbmdDb250ZXh0cyIsIm1vZGVsIiwianNvbk1vZGVsIiwiSlNPTk1vZGVsIiwic2V0RGF0YSIsImNyZWF0ZUJpbmRpbmdDb250ZXh0IiwiWE1MUHJlcHJvY2Vzc29yIiwicHJvY2VzcyIsImZpcnN0RWxlbWVudENoaWxkIiwicmVzdWx0RG9jIiwiZnJhZ21lbnRzIiwiZ2V0RWxlbWVudHNCeVRhZ05hbWUiLCJsZW5ndGgiLCJmcmFnbWVudCIsImlubmVySFRNTCIsInhtbFJlc3VsdCIsImNoaWxkcmVuIiwib3V0ZXJIVE1MIiwiZm9ybWF0WG1sIiwiZmlsdGVyIiwibm9kZSIsInR5cGUiLCJyZXF1aXJlIiwiTG9nIiwic2V0TGV2ZWwiLCJqZXN0Iiwic2V0VGltZW91dCIsIm5hbWVTcGFjZU1hcCIsInNlbGVjdCIsInhwYXRoIiwidXNlTmFtZXNwYWNlcyIsInJlZ2lzdGVyTWFjcm8iLCJtYWNyb01ldGFkYXRhIiwiUGhhbnRvbVV0aWwiLCJyZWdpc3RlciIsInVucmVnaXN0ZXJNYWNybyIsInBsdWdJbiIsIm5hbWVzcGFjZSIsInB1YmxpY05hbWUiLCJwdWJsaWNOYW1lc3BhY2UiLCJydW5YUGF0aFF1ZXJ5Iiwic2VsZWN0b3IiLCJ4bWxkb20iLCJleHBlY3QiLCJleHRlbmQiLCJ0b0hhdmVDb250cm9sIiwibm9kZXMiLCJtZXNzYWdlIiwib3V0cHV0WG1sIiwic2VyaWFsaXplWE1MIiwicGFzcyIsInRvTm90SGF2ZUNvbnRyb2wiLCJnZXRDb250cm9sQXR0cmlidXRlIiwiY29udHJvbFNlbGVjdG9yIiwiYXR0cmlidXRlTmFtZSIsInhtbERvbSIsInNlcmlhbGl6ZXIiLCJYTUxTZXJpYWxpemVyIiwieG1sU3RyaW5nIiwic2VyaWFsaXplVG9TdHJpbmciLCJyZXBsYWNlIiwiZm9ybWF0IiwiY29tcGlsZUNEUyIsInNDRFNVcmwiLCJjZHNTdHJpbmciLCJmcyIsInJlYWRGaWxlU3luYyIsImVkbXhDb250ZW50IiwiY2RzMmVkbXgiLCJkaXIiLCJwYXRoIiwicmVzb2x2ZSIsImVkbXhVcmwiLCJiYXNlbmFtZSIsImV4aXN0c1N5bmMiLCJta2RpclN5bmMiLCJ3cml0ZUZpbGVTeW5jIiwiY2RzIiwic2VydmljZSIsImNzbiIsImNvbXBpbGVTb3VyY2VzIiwiZWRteCIsInRvIiwib2RhdGFGb3JlaWduS2V5cyIsIm9kYXRhRm9ybWF0Iiwib2RhdGFDb250YWlubWVudCIsIkVycm9yIiwiZ2V0RmFrZVNpZGVFZmZlY3RzU2VydmljZSIsIm9NZXRhTW9kZWwiLCJvU2VydmljZUNvbnRleHQiLCJzY29wZU9iamVjdCIsInNjb3BlVHlwZSIsIlNpZGVFZmZlY3RzRmFjdG9yeSIsImNyZWF0ZUluc3RhbmNlIiwidGhlbiIsIm9TZXJ2aWNlSW5zdGFuY2UiLCJvSmVzdFNpZGVFZmZlY3RzU2VydmljZSIsImdldEludGVyZmFjZSIsImdldENvbnRleHQiLCJnZXRNb2RlbCIsImdldE1ldGFNb2RlbCIsImdldEZha2VEaWFnbm9zdGljcyIsImlzc3VlcyIsImFkZElzc3VlIiwiaXNzdWVDYXRlZ29yeSIsImlzc3VlU2V2ZXJpdHkiLCJkZXRhaWxzIiwicHVzaCIsImdldElzc3VlcyIsImNoZWNrSWZJc3N1ZUV4aXN0cyIsImZpbmQiLCJpc3N1ZSIsImdldENvbnZlcnRlckNvbnRleHRGb3JUZXN0IiwiY29udmVydGVkVHlwZXMiLCJtYW5pZmVzdFNldHRpbmdzIiwiZW50aXR5U2V0IiwiZW50aXR5U2V0cyIsImVzIiwiZGF0YU1vZGVsUGF0aCIsImdldERhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eSIsIkNvbnZlcnRlckNvbnRleHQiLCJtZXJnZSIsIm1ldGFNb2RlbENhY2hlIiwic01ldGFkYXRhVXJsIiwib1JlcXVlc3RvciIsIl9NZXRhZGF0YVJlcXVlc3RvciIsImNyZWF0ZSIsIk9EYXRhTWV0YU1vZGVsIiwidW5kZWZpbmVkIiwiZmV0Y2hFbnRpdHlDb250YWluZXIiLCJwcm9wZXJ0eSIsInRhcmdldFBhdGgiLCJzdGFydGluZ0VudGl0eVNldCIsIm5hdmlnYXRpb25Qcm9wZXJ0aWVzIiwidGFyZ2V0T2JqZWN0IiwidGFyZ2V0RW50aXR5U2V0IiwidGFyZ2V0RW50aXR5VHlwZSIsImVudGl0eVR5cGUiLCJjb250ZXh0TG9jYXRpb24iLCJldmFsdWF0ZUJpbmRpbmciLCJiaW5kaW5nU3RyaW5nIiwiYmluZGluZ0VsZW1lbnQiLCJCaW5kaW5nUGFyc2VyIiwiY29tcGxleFBhcnNlciIsImFyZ3MiLCJmb3JtYXR0ZXIiLCJhcHBseSIsImV2YWx1YXRlQmluZGluZ1dpdGhNb2RlbCIsIm1vZGVsQ29udGVudCIsIm5hbWVkTW9kZWxzQ29udGVudCIsInRleHQiLCJJbnZpc2libGVUZXh0IiwiYmluZFByb3BlcnR5IiwiZGVmYXVsdE1vZGVsIiwic2V0TW9kZWwiLCJzZXRCaW5kaW5nQ29udGV4dCIsIk9iamVjdCIsImVudHJpZXMiLCJjb250ZW50IiwiZ2V0VGV4dCIsImdldFRlbXBsYXRpbmdSZXN1bHQiLCJ4bWxJbnB1dCIsIm1CaW5kaW5nQ29udGV4dHMiLCJtTW9kZWxzIiwidGVtcGxhdGVkWG1sIiwieG1sRG9jIiwiaGFzT3duUHJvcGVydHkiLCJhc3NpZ24iLCJUZW1wbGF0ZU1vZGVsIiwia2V5cyIsImZvckVhY2giLCJzTW9kZWxOYW1lIiwiaXNUZW1wbGF0ZU1vZGVsIiwiZGF0YSIsIm9QcmVwcm9jZXNzb3JTZXR0aW5ncyIsIm1ldGFNb2RlbCIsInNLZXkiLCJnZXRPYmplY3QiLCJ0b0JlRGVmaW5lZCIsIm9Nb2RlbCIsImdldFRlbXBsYXRlZFhNTCJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUEyVEE7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QU4sQ0FBNERFLFdBQTVEO0FBQ0EsY0FBTUMsTUFBTSxHQUFHaEIsT0FBTyxDQUFDYSxJQUFELENBQVAsSUFBaUJ4RixVQUFoQztBQUNBc0YsVUFBQUEscUJBQXFCLENBQUM5SyxlQUF0QixDQUFzQ2dMLElBQXRDLElBQThDRyxNQUFNLENBQUM5SyxvQkFBUCxDQUE0QjZKLGdCQUFnQixDQUFDYyxJQUFELENBQTVDLENBQTlDLENBSm9ELENBSStDOztBQUNuR0YsVUFBQUEscUJBQXFCLENBQUMvSyxNQUF0QixDQUE2QmlMLElBQTdCLElBQXFDRyxNQUFyQztBQUNBLFNBTkQsRUE3QkMsQ0FxQ0Q7O0FBQ0EsWUFBSUwscUJBQXFCLENBQUMvSyxNQUF0QixDQUE2QixNQUE3QixDQUFKLEVBQTBDO0FBQ3pDK0ssVUFBQUEscUJBQXFCLENBQUM5SyxlQUF0QixDQUFzQyxNQUF0QyxJQUFnRDhLLHFCQUFxQixDQUFDL0ssTUFBdEIsQ0FBNkIsTUFBN0IsRUFBcUNNLG9CQUFyQyxDQUEwRCxHQUExRCxDQUFoRDtBQUNBOztBQUVELGVBQU9DLGVBQWUsQ0FBQ0MsT0FBaEIsQ0FBd0I4SixNQUFNLENBQUM3SixpQkFBL0IsRUFBbUQ7QUFBRWxCLFVBQUFBLElBQUksRUFBRTtBQUFSLFNBQW5ELEVBQThFd0wscUJBQTlFLENBQVA7QUExQ0M7QUEyQ0QsS0FoRCtCO0FBQUE7QUFBQTtBQUFBLEdBQXpCOzs7O0FBa0RBLE1BQU1NLGVBQWUsYUFDM0JuQixRQUQyQixFQUUzQnRDLFlBRjJCLEVBRzNCdUMsZ0JBSDJCLEVBSTNCQyxPQUoyQjtBQUFBLFFBSzFCO0FBQUEsNkJBQzBCSCxtQkFBbUIsQ0FBQ0MsUUFBRCxFQUFXdEMsWUFBWCxFQUF5QnVDLGdCQUF6QixFQUEyQ0MsT0FBM0MsQ0FEN0MsT0FFTWxILFlBRk47QUFHRCxLQVIyQjtBQUFBO0FBQUE7QUFBQSxHQUFyQiIsInNvdXJjZVJvb3QiOiIuIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGhhbnRvbVV0aWwgfSBmcm9tIFwic2FwL2ZlL21hY3Jvc1wiO1xuaW1wb3J0IF9NZXRhZGF0YVJlcXVlc3RvciBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L2xpYi9fTWV0YWRhdGFSZXF1ZXN0b3JcIjtcbmltcG9ydCBPRGF0YU1ldGFNb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L09EYXRhTWV0YU1vZGVsXCI7XG5pbXBvcnQgWE1MUHJlcHJvY2Vzc29yIGZyb20gXCJzYXAvdWkvY29yZS91dGlsL1hNTFByZXByb2Nlc3NvclwiO1xuaW1wb3J0IExvZyBmcm9tIFwic2FwL2Jhc2UvTG9nXCI7XG5pbXBvcnQgeHBhdGggZnJvbSBcInhwYXRoXCI7XG5pbXBvcnQgKiBhcyBmcyBmcm9tIFwiZnNcIjtcbmltcG9ydCB7IGNvbXBpbGVTb3VyY2VzLCB0byB9IGZyb20gXCJAc2FwL2Nkcy1jb21waWxlclwiO1xuaW1wb3J0IHsgZm9ybWF0IH0gZnJvbSBcInByZXR0aWVyXCI7XG5pbXBvcnQgQmluZGluZ1BhcnNlciBmcm9tIFwic2FwL3VpL2Jhc2UvQmluZGluZ1BhcnNlclwiO1xuaW1wb3J0IHsgQW55QW5ub3RhdGlvbiwgQ29udmVydGVyT3V0cHV0LCBFbnRpdHlTZXQsIFByb3BlcnR5IH0gZnJvbSBcIkBzYXAtdXgvYW5ub3RhdGlvbi1jb252ZXJ0ZXJcIjtcbmltcG9ydCB7IERhdGFNb2RlbE9iamVjdFBhdGggfSBmcm9tIFwic2FwL2ZlL2NvcmUvdGVtcGxhdGluZy9EYXRhTW9kZWxQYXRoSGVscGVyXCI7XG5pbXBvcnQgSlNPTk1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvanNvbi9KU09OTW9kZWxcIjtcbmltcG9ydCBJbnZpc2libGVUZXh0IGZyb20gXCJzYXAvdWkvY29yZS9JbnZpc2libGVUZXh0XCI7XG5pbXBvcnQgeyBMaXN0UmVwb3J0TWFuaWZlc3RTZXR0aW5ncywgT2JqZWN0UGFnZU1hbmlmZXN0U2V0dGluZ3MgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9NYW5pZmVzdFNldHRpbmdzXCI7XG5pbXBvcnQgeyBJc3N1ZUNhdGVnb3J5LCBJc3N1ZVNldmVyaXR5IH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvaGVscGVycy9Jc3N1ZU1hbmFnZXJcIjtcbmltcG9ydCB7IElEaWFnbm9zdGljcyB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL1RlbXBsYXRlQ29udmVydGVyXCI7XG5pbXBvcnQgbWVyZ2UgZnJvbSBcInNhcC9iYXNlL3V0aWwvbWVyZ2VcIjtcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCBDb252ZXJ0ZXJDb250ZXh0IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL0NvbnZlcnRlckNvbnRleHRcIjtcbmltcG9ydCBTaWRlRWZmZWN0c0ZhY3RvcnkgZnJvbSBcInNhcC9mZS9jb3JlL3NlcnZpY2VzL1NpZGVFZmZlY3RzU2VydmljZUZhY3RvcnlcIjtcbmltcG9ydCBUZW1wbGF0ZU1vZGVsIGZyb20gXCJzYXAvZmUvY29yZS9UZW1wbGF0ZU1vZGVsXCI7XG5pbXBvcnQgQ29udGV4dCBmcm9tIFwic2FwL3VpL21vZGVsL0NvbnRleHRcIjtcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdmFyLXJlcXVpcmVzXG5jb25zdCBmb3JtYXRYbWwgPSByZXF1aXJlKFwieG1sLWZvcm1hdHRlclwiKTtcblxuTG9nLnNldExldmVsKDEgYXMgYW55LCBcInNhcC51aS5jb3JlLnV0aWwuWE1MUHJlcHJvY2Vzc29yXCIpO1xuamVzdC5zZXRUaW1lb3V0KDQwMDAwKTtcblxuY29uc3QgbmFtZVNwYWNlTWFwID0ge1xuXHRcIm1hY3Jvc1wiOiBcInNhcC5mZS5tYWNyb3NcIixcblx0XCJtYWNyb1wiOiBcInNhcC5mZS5tYWNyb3NcIixcblx0XCJtYWNyb2RhdGFcIjogXCJodHRwOi8vc2NoZW1hcy5zYXAuY29tL3NhcHVpNS9leHRlbnNpb24vc2FwLnVpLmNvcmUuQ3VzdG9tRGF0YS8xXCIsXG5cdFwibG9nXCI6IFwiaHR0cDovL3NjaGVtYXMuc2FwLmNvbS9zYXB1aTUvZXh0ZW5zaW9uL3NhcC51aS5jb3JlLkN1c3RvbURhdGEvMVwiLFxuXHRcInVuaXR0ZXN0XCI6IFwiaHR0cDovL3NjaGVtYXMuc2FwLmNvbS9zYXB1aTUvcHJlcHJvY2Vzc29yZXh0ZW5zaW9uL3NhcC5mZS51bml0dGVzdGluZy8xXCIsXG5cdFwiY29udHJvbFwiOiBcInNhcC5mZS5jb3JlLmNvbnRyb2xzXCIsXG5cdFwiY29yZVwiOiBcInNhcC51aS5jb3JlXCIsXG5cdFwibVwiOiBcInNhcC5tXCIsXG5cdFwiZlwiOiBcInNhcC51aS5sYXlvdXQuZm9ybVwiLFxuXHRcImludGVybmFsTWFjcm9cIjogXCJzYXAuZmUubWFjcm9zLmludGVybmFsXCIsXG5cdFwibWRjXCI6IFwic2FwLnVpLm1kY1wiLFxuXHRcIm1kY2F0XCI6IFwic2FwLnVpLm1kYy5hY3Rpb250b29sYmFyXCIsXG5cdFwibWRjRmllbGRcIjogXCJzYXAudWkubWRjLmZpZWxkXCIsXG5cdFwibWRjVGFibGVcIjogXCJzYXAudWkubWRjLnRhYmxlXCIsXG5cdFwidVwiOiBcInNhcC51aS51bmlmaWVkXCIsXG5cdFwibWFjcm9NaWNyb0NoYXJ0XCI6IFwic2FwLmZlLm1hY3Jvcy5taWNyb2NoYXJ0XCIsXG5cdFwibWljcm9DaGFydFwiOiBcInNhcC5zdWl0ZS51aS5taWNyb2NoYXJ0XCJcbn07XG5jb25zdCBzZWxlY3QgPSB4cGF0aC51c2VOYW1lc3BhY2VzKG5hbWVTcGFjZU1hcCk7XG5cbmV4cG9ydCBjb25zdCByZWdpc3Rlck1hY3JvID0gZnVuY3Rpb24obWFjcm9NZXRhZGF0YTogYW55KSB7XG5cdFBoYW50b21VdGlsLnJlZ2lzdGVyKG1hY3JvTWV0YWRhdGEpO1xufTtcbmV4cG9ydCBjb25zdCB1bnJlZ2lzdGVyTWFjcm8gPSBmdW5jdGlvbihtYWNyb01ldGFkYXRhOiBhbnkpIHtcblx0WE1MUHJlcHJvY2Vzc29yLnBsdWdJbihudWxsLCBtYWNyb01ldGFkYXRhLm5hbWVzcGFjZSwgbWFjcm9NZXRhZGF0YS5uYW1lKTtcblx0aWYgKG1hY3JvTWV0YWRhdGEucHVibGljTmFtZSkge1xuXHRcdFhNTFByZXByb2Nlc3Nvci5wbHVnSW4obnVsbCwgbWFjcm9NZXRhZGF0YS5wdWJsaWNOYW1lc3BhY2UsIG1hY3JvTWV0YWRhdGEucHVibGljTmFtZSk7XG5cdH1cbn07XG5leHBvcnQgY29uc3QgcnVuWFBhdGhRdWVyeSA9IGZ1bmN0aW9uKHNlbGVjdG9yOiBzdHJpbmcsIHhtbGRvbTogTm9kZSB8IHVuZGVmaW5lZCkge1xuXHRyZXR1cm4gc2VsZWN0KHNlbGVjdG9yLCB4bWxkb20pO1xufTtcblxuZXhwZWN0LmV4dGVuZCh7XG5cdHRvSGF2ZUNvbnRyb2woeG1sZG9tLCBzZWxlY3Rvcikge1xuXHRcdGNvbnN0IG5vZGVzID0gcnVuWFBhdGhRdWVyeShgL3Jvb3Qke3NlbGVjdG9yfWAsIHhtbGRvbSk7XG5cdFx0cmV0dXJuIHtcblx0XHRcdG1lc3NhZ2U6ICgpID0+IHtcblx0XHRcdFx0Y29uc3Qgb3V0cHV0WG1sID0gc2VyaWFsaXplWE1MKHhtbGRvbSk7XG5cdFx0XHRcdHJldHVybiBgZGlkIG5vdCBmaW5kIGNvbnRyb2xzIG1hdGNoaW5nICR7c2VsZWN0b3J9IGluIGdlbmVyYXRlZCB4bWw6XFxuICR7b3V0cHV0WG1sfWA7XG5cdFx0XHR9LFxuXHRcdFx0cGFzczogbm9kZXMgJiYgbm9kZXMubGVuZ3RoID49IDFcblx0XHR9O1xuXHR9LFxuXHR0b05vdEhhdmVDb250cm9sKHhtbGRvbSwgc2VsZWN0b3IpIHtcblx0XHRjb25zdCBub2RlcyA9IHJ1blhQYXRoUXVlcnkoYC9yb290JHtzZWxlY3Rvcn1gLCB4bWxkb20pO1xuXHRcdHJldHVybiB7XG5cdFx0XHRtZXNzYWdlOiAoKSA9PiB7XG5cdFx0XHRcdGNvbnN0IG91dHB1dFhtbCA9IHNlcmlhbGl6ZVhNTCh4bWxkb20pO1xuXHRcdFx0XHRyZXR1cm4gYFRoZXJlIGlzIGEgY29udHJvbCBtYXRjaGluZyAke3NlbGVjdG9yfSBpbiBnZW5lcmF0ZWQgeG1sOlxcbiAke291dHB1dFhtbH1gO1xuXHRcdFx0fSxcblx0XHRcdHBhc3M6IG5vZGVzICYmIG5vZGVzLmxlbmd0aCA9PT0gMFxuXHRcdH07XG5cdH1cbn0pO1xuXG5leHBvcnQgY29uc3QgZ2V0Q29udHJvbEF0dHJpYnV0ZSA9IGZ1bmN0aW9uKGNvbnRyb2xTZWxlY3Rvcjogc3RyaW5nLCBhdHRyaWJ1dGVOYW1lOiBzdHJpbmcsIHhtbERvbTogTm9kZSkge1xuXHRjb25zdCBzZWxlY3RvciA9IGBzdHJpbmcoL3Jvb3Qke2NvbnRyb2xTZWxlY3Rvcn0vQCR7YXR0cmlidXRlTmFtZX0pYDtcblx0cmV0dXJuIHJ1blhQYXRoUXVlcnkoc2VsZWN0b3IsIHhtbERvbSk7XG59O1xuXG5leHBvcnQgY29uc3Qgc2VyaWFsaXplWE1MID0gZnVuY3Rpb24oeG1sRG9tOiBOb2RlKSB7XG5cdGNvbnN0IHNlcmlhbGl6ZXIgPSBuZXcgd2luZG93LlhNTFNlcmlhbGl6ZXIoKTtcblx0Y29uc3QgeG1sU3RyaW5nID0gc2VyaWFsaXplclxuXHRcdC5zZXJpYWxpemVUb1N0cmluZyh4bWxEb20pXG5cdFx0LnJlcGxhY2UoLyg/OltcXHQgXSooPzpcXHI/XFxufFxccikpKy9nLCBcIlxcblwiKVxuXHRcdC5yZXBsYWNlKC9cXFxcXCIvZywgJ1wiJyk7XG5cdHJldHVybiBmb3JtYXQoeG1sU3RyaW5nLCB7IHBhcnNlcjogXCJodG1sXCIgfSk7XG59O1xuXG4vKipcbiAqIENvbXBpbGUgYSBDRFMgZmlsZSBpbnRvIGFuIEVETVggZmlsZS5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gc0NEU1VybCBUaGUgcGF0aCB0byB0aGUgZmlsZSBjb250YWluaW5nIHRoZSBDRFMgZGVmaW5pdGlvbi4gVGhpcyBmaWxlIE1VU1QgZGVjbGFyZSB0aGUgbmFtZXNwYWNlXG4gKiBzYXAuZmUudGVzdCBhbmQgYSBzZXJ2aWNlIEplc3RTZXJ2aWNlXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgcGF0aCBvZiB0aGUgZ2VuZXJhdGVkIEVETVhcbiAqL1xuZXhwb3J0IGNvbnN0IGNvbXBpbGVDRFMgPSBmdW5jdGlvbihzQ0RTVXJsOiBzdHJpbmcpIHtcblx0Y29uc3QgY2RzU3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKHNDRFNVcmwsIFwidXRmLThcIik7XG5cdGNvbnN0IGVkbXhDb250ZW50ID0gY2RzMmVkbXgoY2RzU3RyaW5nLCBcInNhcC5mZS50ZXN0Lkplc3RTZXJ2aWNlXCIpO1xuXHRjb25zdCBkaXIgPSBwYXRoLnJlc29sdmUoc0NEU1VybCwgXCIuLlwiLCBcImdlblwiKTtcblx0Y29uc3QgZWRteFVybCA9IHBhdGgucmVzb2x2ZShkaXIsIHBhdGguYmFzZW5hbWUoc0NEU1VybCkucmVwbGFjZShcIi5jZHNcIiwgXCIueG1sXCIpKTtcblxuXHRpZiAoIWZzLmV4aXN0c1N5bmMoZGlyKSkge1xuXHRcdGZzLm1rZGlyU3luYyhkaXIpO1xuXHR9XG5cblx0ZnMud3JpdGVGaWxlU3luYyhlZG14VXJsLCBlZG14Q29udGVudCk7XG5cdHJldHVybiBlZG14VXJsO1xufTtcblxuLyoqXG4gKiBDb21waWxlIENEUyB0byBFRE1YLlxuICpcbiAqIEBwYXJhbSBjZHMgVGhlIENEUyBtb2RlbC4gSXQgbXVzdCBkZWZpbmUgYXQgbGVhc3Qgb25lIHNlcnZpY2UuXG4gKiBAcGFyYW0gc2VydmljZSBUaGUgZnVsbHktcXVhbGlmaWVkIG5hbWUgb2YgdGhlIHNlcnZpY2UgdG8gY29tcGlsZS4gRGVmYXVsdHMgdG8gXCJzYXAuZmUudGVzdC5KZXN0U2VydmljZVwiLlxuICogQHJldHVybnMgVGhlIGNvbXBpbGVkIHNlcnZpY2UgbW9kZWwgYXMgRURNWC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNkczJlZG14KGNkczogc3RyaW5nLCBzZXJ2aWNlOiBzdHJpbmcgPSBcInNhcC5mZS50ZXN0Lkplc3RTZXJ2aWNlXCIpIHtcblx0Y29uc3QgY3NuID0gY29tcGlsZVNvdXJjZXMoeyBcInN0cmluZy5jZHNcIjogY2RzIH0sIHt9KTtcblx0Y29uc3QgZWRteCA9IHRvLmVkbXgoY3NuLCB7IHNlcnZpY2U6IHNlcnZpY2UsIG9kYXRhRm9yZWlnbktleXM6IHRydWUsIG9kYXRhRm9ybWF0OiBcInN0cnVjdHVyZWRcIiwgb2RhdGFDb250YWlubWVudDogZmFsc2UgfSk7XG5cdGlmICghZWRteCkge1xuXHRcdHRocm93IG5ldyBFcnJvcihgQ29tcGlsYXRpb24gZmFpbGVkLiBIaW50OiBNYWtlIHN1cmUgdGhhdCB0aGUgQ0RTIG1vZGVsIGRlZmluZXMgc2VydmljZSAke3NlcnZpY2V9LmApO1xuXHR9XG5cdHJldHVybiBlZG14O1xufVxuXG5leHBvcnQgY29uc3QgZ2V0RmFrZVNpZGVFZmZlY3RzU2VydmljZSA9IGFzeW5jIGZ1bmN0aW9uKG9NZXRhTW9kZWw6IE9EYXRhTWV0YU1vZGVsKTogUHJvbWlzZTxhbnk+IHtcblx0Y29uc3Qgb1NlcnZpY2VDb250ZXh0ID0geyBzY29wZU9iamVjdDoge30sIHNjb3BlVHlwZTogXCJcIiwgc2V0dGluZ3M6IHt9IH07XG5cdHJldHVybiBuZXcgU2lkZUVmZmVjdHNGYWN0b3J5KCkuY3JlYXRlSW5zdGFuY2Uob1NlcnZpY2VDb250ZXh0KS50aGVuKGZ1bmN0aW9uKG9TZXJ2aWNlSW5zdGFuY2U6IGFueSkge1xuXHRcdGNvbnN0IG9KZXN0U2lkZUVmZmVjdHNTZXJ2aWNlID0gb1NlcnZpY2VJbnN0YW5jZS5nZXRJbnRlcmZhY2UoKTtcblx0XHRvSmVzdFNpZGVFZmZlY3RzU2VydmljZS5nZXRDb250ZXh0ID0gZnVuY3Rpb24oKSB7XG5cdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRzY29wZU9iamVjdDoge1xuXHRcdFx0XHRcdGdldE1vZGVsOiBmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRcdHJldHVybiB7XG5cdFx0XHRcdFx0XHRcdGdldE1ldGFNb2RlbDogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0XHRcdFx0cmV0dXJuIG9NZXRhTW9kZWw7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9O1xuXHRcdH07XG5cdFx0cmV0dXJuIG9KZXN0U2lkZUVmZmVjdHNTZXJ2aWNlO1xuXHR9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRGYWtlRGlhZ25vc3RpY3MgPSBmdW5jdGlvbigpOiBJRGlhZ25vc3RpY3Mge1xuXHRjb25zdCBpc3N1ZXM6IGFueVtdID0gW107XG5cdHJldHVybiB7XG5cdFx0YWRkSXNzdWUoaXNzdWVDYXRlZ29yeTogSXNzdWVDYXRlZ29yeSwgaXNzdWVTZXZlcml0eTogSXNzdWVTZXZlcml0eSwgZGV0YWlsczogc3RyaW5nKTogdm9pZCB7XG5cdFx0XHRpc3N1ZXMucHVzaCh7XG5cdFx0XHRcdGlzc3VlQ2F0ZWdvcnksXG5cdFx0XHRcdGlzc3VlU2V2ZXJpdHksXG5cdFx0XHRcdGRldGFpbHNcblx0XHRcdH0pO1xuXHRcdH0sXG5cdFx0Z2V0SXNzdWVzKCk6IGFueVtdIHtcblx0XHRcdHJldHVybiBpc3N1ZXM7XG5cdFx0fSxcblx0XHRjaGVja0lmSXNzdWVFeGlzdHMoaXNzdWVDYXRlZ29yeTogSXNzdWVDYXRlZ29yeSwgaXNzdWVTZXZlcml0eTogSXNzdWVTZXZlcml0eSwgZGV0YWlsczogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0XHRyZXR1cm4gaXNzdWVzLmZpbmQoaXNzdWUgPT4ge1xuXHRcdFx0XHRpc3N1ZS5pc3N1ZUNhdGVnb3J5ID09PSBpc3N1ZUNhdGVnb3J5ICYmIGlzc3VlLmlzc3VlU2V2ZXJpdHkgPT09IGlzc3VlU2V2ZXJpdHkgJiYgaXNzdWUuZGV0YWlscyA9PT0gZGV0YWlscztcblx0XHRcdH0pO1xuXHRcdH1cblx0fTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRDb252ZXJ0ZXJDb250ZXh0Rm9yVGVzdCA9IGZ1bmN0aW9uKFxuXHRjb252ZXJ0ZWRUeXBlczogQ29udmVydGVyT3V0cHV0LFxuXHRtYW5pZmVzdFNldHRpbmdzOiBMaXN0UmVwb3J0TWFuaWZlc3RTZXR0aW5ncyB8IE9iamVjdFBhZ2VNYW5pZmVzdFNldHRpbmdzXG4pIHtcblx0Y29uc3QgZW50aXR5U2V0ID0gY29udmVydGVkVHlwZXMuZW50aXR5U2V0cy5maW5kKGVzID0+IGVzLm5hbWUgPT09IG1hbmlmZXN0U2V0dGluZ3MuZW50aXR5U2V0KTtcblx0Y29uc3QgZGF0YU1vZGVsUGF0aCA9IGdldERhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eShlbnRpdHlTZXQgYXMgRW50aXR5U2V0LCBjb252ZXJ0ZWRUeXBlcywgZW50aXR5U2V0KTtcblx0cmV0dXJuIG5ldyBDb252ZXJ0ZXJDb250ZXh0KGNvbnZlcnRlZFR5cGVzLCBtYW5pZmVzdFNldHRpbmdzLCBnZXRGYWtlRGlhZ25vc3RpY3MoKSwgbWVyZ2UsIGRhdGFNb2RlbFBhdGgpO1xufTtcbmNvbnN0IG1ldGFNb2RlbENhY2hlOiBhbnkgPSB7fTtcbmV4cG9ydCBjb25zdCBnZXRNZXRhTW9kZWwgPSBhc3luYyBmdW5jdGlvbihzTWV0YWRhdGFVcmw6IHN0cmluZykge1xuXHRjb25zdCBvUmVxdWVzdG9yID0gX01ldGFkYXRhUmVxdWVzdG9yLmNyZWF0ZSh7fSwgXCI0LjBcIiwge30pO1xuXHRpZiAoIW1ldGFNb2RlbENhY2hlW3NNZXRhZGF0YVVybF0pIHtcblx0XHRjb25zdCBvTWV0YU1vZGVsID0gbmV3IChPRGF0YU1ldGFNb2RlbCBhcyBhbnkpKG9SZXF1ZXN0b3IsIHNNZXRhZGF0YVVybCwgdW5kZWZpbmVkLCBudWxsKTtcblx0XHRhd2FpdCBvTWV0YU1vZGVsLmZldGNoRW50aXR5Q29udGFpbmVyKCk7XG5cdFx0bWV0YU1vZGVsQ2FjaGVbc01ldGFkYXRhVXJsXSA9IG9NZXRhTW9kZWw7XG5cdH1cblxuXHRyZXR1cm4gbWV0YU1vZGVsQ2FjaGVbc01ldGFkYXRhVXJsXTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXREYXRhTW9kZWxPYmplY3RQYXRoRm9yUHJvcGVydHkgPSBmdW5jdGlvbihcblx0ZW50aXR5U2V0OiBFbnRpdHlTZXQsXG5cdGNvbnZlcnRlZFR5cGVzOiBDb252ZXJ0ZXJPdXRwdXQsXG5cdHByb3BlcnR5PzogUHJvcGVydHkgfCBFbnRpdHlTZXQgfCBBbnlBbm5vdGF0aW9uXG4pOiBEYXRhTW9kZWxPYmplY3RQYXRoIHtcblx0Y29uc3QgdGFyZ2V0UGF0aDogRGF0YU1vZGVsT2JqZWN0UGF0aCA9IHtcblx0XHRzdGFydGluZ0VudGl0eVNldDogZW50aXR5U2V0LFxuXHRcdG5hdmlnYXRpb25Qcm9wZXJ0aWVzOiBbXSxcblx0XHR0YXJnZXRPYmplY3Q6IHByb3BlcnR5LFxuXHRcdHRhcmdldEVudGl0eVNldDogZW50aXR5U2V0LFxuXHRcdHRhcmdldEVudGl0eVR5cGU6IGVudGl0eVNldC5lbnRpdHlUeXBlLFxuXHRcdGNvbnZlcnRlZFR5cGVzOiBjb252ZXJ0ZWRUeXBlc1xuXHR9O1xuXHR0YXJnZXRQYXRoLmNvbnRleHRMb2NhdGlvbiA9IHRhcmdldFBhdGg7XG5cdHJldHVybiB0YXJnZXRQYXRoO1xufTtcblxuZXhwb3J0IGNvbnN0IGV2YWx1YXRlQmluZGluZyA9IGZ1bmN0aW9uKGJpbmRpbmdTdHJpbmc6IHN0cmluZywgLi4uYXJnczogYW55W10pIHtcblx0Y29uc3QgYmluZGluZ0VsZW1lbnQgPSBCaW5kaW5nUGFyc2VyLmNvbXBsZXhQYXJzZXIoYmluZGluZ1N0cmluZyk7XG5cdHJldHVybiBiaW5kaW5nRWxlbWVudC5mb3JtYXR0ZXIuYXBwbHkodW5kZWZpbmVkLCBhcmdzKTtcbn07XG5cbnR5cGUgTW9kZWxDb250ZW50ID0ge1xuXHRbbmFtZTogc3RyaW5nXTogYW55O1xufTtcblxuLyoqXG4gKiBFdmFsdWF0ZSBhIGJpbmRpbmcgYWdhaW5zdCBhIG1vZGVsLlxuICpcbiAqIEBwYXJhbSBiaW5kaW5nU3RyaW5nIFRoZSBiaW5kaW5nIHN0cmluZy5cbiAqIEBwYXJhbSBtb2RlbENvbnRlbnQgQ29udGVudCBvZiB0aGUgZGVmYXVsdCBtb2RlbCB0byB1c2UgZm9yIGV2YWx1YXRpb24uXG4gKiBAcGFyYW0gbmFtZWRNb2RlbHNDb250ZW50IENvbnRlbnRzIG9mIGFkZGl0aW9uYWwsIG5hbWVkIG1vZGVscyB0byB1c2UuXG4gKiBAcmV0dXJucyBUaGUgZXZhbHVhdGVkIGJpbmRpbmcuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBldmFsdWF0ZUJpbmRpbmdXaXRoTW9kZWwoXG5cdGJpbmRpbmdTdHJpbmc6IHN0cmluZyB8IHVuZGVmaW5lZCxcblx0bW9kZWxDb250ZW50OiBNb2RlbENvbnRlbnQsXG5cdG5hbWVkTW9kZWxzQ29udGVudD86IHsgW21vZGVsTmFtZTogc3RyaW5nXTogTW9kZWxDb250ZW50IH1cbik6IHN0cmluZyB7XG5cdGNvbnN0IGJpbmRpbmdFbGVtZW50ID0gQmluZGluZ1BhcnNlci5jb21wbGV4UGFyc2VyKGJpbmRpbmdTdHJpbmcpO1xuXHRjb25zdCB0ZXh0ID0gbmV3IEludmlzaWJsZVRleHQoKTtcblx0dGV4dC5iaW5kUHJvcGVydHkoXCJ0ZXh0XCIsIGJpbmRpbmdFbGVtZW50KTtcblxuXHRjb25zdCBkZWZhdWx0TW9kZWwgPSBuZXcgSlNPTk1vZGVsKG1vZGVsQ29udGVudCk7XG5cdHRleHQuc2V0TW9kZWwoZGVmYXVsdE1vZGVsKTtcblx0dGV4dC5zZXRCaW5kaW5nQ29udGV4dChkZWZhdWx0TW9kZWwuY3JlYXRlQmluZGluZ0NvbnRleHQoXCIvXCIpIGFzIENvbnRleHQpO1xuXG5cdGlmIChuYW1lZE1vZGVsc0NvbnRlbnQpIHtcblx0XHRmb3IgKGNvbnN0IFtuYW1lLCBjb250ZW50XSBvZiBPYmplY3QuZW50cmllcyhuYW1lZE1vZGVsc0NvbnRlbnQpKSB7XG5cdFx0XHRjb25zdCBtb2RlbCA9IG5ldyBKU09OTW9kZWwoY29udGVudCk7XG5cdFx0XHR0ZXh0LnNldE1vZGVsKG1vZGVsLCBuYW1lKTtcblx0XHRcdHRleHQuc2V0QmluZGluZ0NvbnRleHQobW9kZWwuY3JlYXRlQmluZGluZ0NvbnRleHQoXCIvXCIpIGFzIENvbnRleHQsIG5hbWUpO1xuXHRcdH1cblx0fVxuXG5cdHJldHVybiB0ZXh0LmdldFRleHQoKTtcbn1cblxuZXhwb3J0IGNvbnN0IGdldFRlbXBsYXRpbmdSZXN1bHQgPSBhc3luYyBmdW5jdGlvbihcblx0eG1sSW5wdXQ6IHN0cmluZyxcblx0c01ldGFkYXRhVXJsOiBzdHJpbmcsXG5cdG1CaW5kaW5nQ29udGV4dHM6IHsgW3g6IHN0cmluZ106IGFueTsgZW50aXR5U2V0Pzogc3RyaW5nIH0sXG5cdG1Nb2RlbHM6IHsgW3g6IHN0cmluZ106IGFueSB9XG4pIHtcblx0Y29uc3QgdGVtcGxhdGVkWG1sID0gYDxyb290PiR7eG1sSW5wdXR9PC9yb290PmA7XG5cdGNvbnN0IHBhcnNlciA9IG5ldyB3aW5kb3cuRE9NUGFyc2VyKCk7XG5cdGNvbnN0IHhtbERvYyA9IHBhcnNlci5wYXJzZUZyb21TdHJpbmcodGVtcGxhdGVkWG1sLCBcInRleHQveG1sXCIpO1xuXHQvLyBUbyBlbnN1cmUgb3VyIG1hY3JvIGNhbiB1c2UgI3NldEJpbmRpbmdDb250ZXh0IHdlIGVuc3VyZSB0aGVyZSBpcyBhIHByZSBleGlzdGluZyBKU09OTW9kZWwgZm9yIGNvbnZlcnRlckNvbnRleHRcblx0Ly8gaWYgbm90IGFscmVhZHkgcGFzc2VkIHRvIHRlaCB0ZW1wbGF0aW5nXG5cblx0Y29uc3Qgb01ldGFNb2RlbCA9IGF3YWl0IGdldE1ldGFNb2RlbChzTWV0YWRhdGFVcmwpO1xuXHRpZiAoIW1Nb2RlbHMuaGFzT3duUHJvcGVydHkoXCJjb252ZXJ0ZXJDb250ZXh0XCIpKSB7XG5cdFx0bU1vZGVscyA9IE9iamVjdC5hc3NpZ24obU1vZGVscywgeyBcImNvbnZlcnRlckNvbnRleHRcIjogbmV3IFRlbXBsYXRlTW9kZWwoe30sIG9NZXRhTW9kZWwpIH0pO1xuXHR9XG5cblx0T2JqZWN0LmtleXMobU1vZGVscykuZm9yRWFjaChmdW5jdGlvbihzTW9kZWxOYW1lKSB7XG5cdFx0aWYgKG1Nb2RlbHNbc01vZGVsTmFtZV0gJiYgbU1vZGVsc1tzTW9kZWxOYW1lXS5pc1RlbXBsYXRlTW9kZWwpIHtcblx0XHRcdG1Nb2RlbHNbc01vZGVsTmFtZV0gPSBuZXcgVGVtcGxhdGVNb2RlbChtTW9kZWxzW3NNb2RlbE5hbWVdLmRhdGEsIG9NZXRhTW9kZWwpO1xuXHRcdH1cblx0fSk7XG5cblx0Y29uc3Qgb1ByZXByb2Nlc3NvclNldHRpbmdzOiBhbnkgPSB7XG5cdFx0bW9kZWxzOiBPYmplY3QuYXNzaWduKFxuXHRcdFx0e1xuXHRcdFx0XHRtZXRhTW9kZWw6IG9NZXRhTW9kZWxcblx0XHRcdH0sXG5cdFx0XHRtTW9kZWxzXG5cdFx0KSxcblx0XHRiaW5kaW5nQ29udGV4dHM6IHt9XG5cdH07XG5cblx0Ly9JbmplY3QgbW9kZWxzIGFuZCBiaW5kaW5nQ29udGV4dHNcblx0T2JqZWN0LmtleXMobUJpbmRpbmdDb250ZXh0cykuZm9yRWFjaChmdW5jdGlvbihzS2V5KSB7XG5cdFx0LyogQXNzZXJ0IHRvIG1ha2Ugc3VyZSB0aGUgYW5ub3RhdGlvbnMgYXJlIGluIHRoZSB0ZXN0IG1ldGFkYXRhIC0+IGF2b2lkIG1pc2xlYWRpbmcgdGVzdHMgKi9cblx0XHRleHBlY3QodHlwZW9mIG9NZXRhTW9kZWwuZ2V0T2JqZWN0KG1CaW5kaW5nQ29udGV4dHNbc0tleV0pKS50b0JlRGVmaW5lZCgpO1xuXHRcdGNvbnN0IG9Nb2RlbCA9IG1Nb2RlbHNbc0tleV0gfHwgb01ldGFNb2RlbDtcblx0XHRvUHJlcHJvY2Vzc29yU2V0dGluZ3MuYmluZGluZ0NvbnRleHRzW3NLZXldID0gb01vZGVsLmNyZWF0ZUJpbmRpbmdDb250ZXh0KG1CaW5kaW5nQ29udGV4dHNbc0tleV0pOyAvL1ZhbHVlIGlzIHNQYXRoXG5cdFx0b1ByZXByb2Nlc3NvclNldHRpbmdzLm1vZGVsc1tzS2V5XSA9IG9Nb2RlbDtcblx0fSk7XG5cblx0Ly9UaGlzIGNvbnRleHQgZm9yIG1hY3JvIHRlc3Rpbmdcblx0aWYgKG9QcmVwcm9jZXNzb3JTZXR0aW5ncy5tb2RlbHNbXCJ0aGlzXCJdKSB7XG5cdFx0b1ByZXByb2Nlc3NvclNldHRpbmdzLmJpbmRpbmdDb250ZXh0c1tcInRoaXNcIl0gPSBvUHJlcHJvY2Vzc29yU2V0dGluZ3MubW9kZWxzW1widGhpc1wiXS5jcmVhdGVCaW5kaW5nQ29udGV4dChcIi9cIik7XG5cdH1cblxuXHRyZXR1cm4gWE1MUHJlcHJvY2Vzc29yLnByb2Nlc3MoeG1sRG9jLmZpcnN0RWxlbWVudENoaWxkISwgeyBuYW1lOiBcIlRlc3QgRnJhZ21lbnRcIiB9LCBvUHJlcHJvY2Vzc29yU2V0dGluZ3MpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFRlbXBsYXRlZFhNTCA9IGFzeW5jIGZ1bmN0aW9uKFxuXHR4bWxJbnB1dDogc3RyaW5nLFxuXHRzTWV0YWRhdGFVcmw6IHN0cmluZyxcblx0bUJpbmRpbmdDb250ZXh0czogeyBbeDogc3RyaW5nXTogYW55OyBlbnRpdHlTZXQ/OiBzdHJpbmcgfSxcblx0bU1vZGVsczogeyBbeDogc3RyaW5nXTogYW55IH1cbikge1xuXHRjb25zdCB0ZW1wbGF0ZWRYTUwgPSBhd2FpdCBnZXRUZW1wbGF0aW5nUmVzdWx0KHhtbElucHV0LCBzTWV0YWRhdGFVcmwsIG1CaW5kaW5nQ29udGV4dHMsIG1Nb2RlbHMpO1xuXHRyZXR1cm4gc2VyaWFsaXplWE1MKHRlbXBsYXRlZFhNTCk7XG59O1xuXG4vKipcbiAqIFByb2Nlc3MgdGhlIHJlcXVlc3RlZCBYTUwgZnJhZ21lbnQgd2l0aCB0aGUgcHJvdmlkZWQgZGF0YS5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gbmFtZSBGdWxseSBxdWFsaWZpZWQgbmFtZSBvZiB0aGUgZnJhZ21lbnQgdG8gYmUgdGVzdGVkLlxuICogQHBhcmFtIHtvYmplY3R9IHRlc3REYXRhIFRlc3QgZGF0YSBjb25zaXN0aW5nXG4gKiBAcmV0dXJucyBUZW1wbGF0ZWQgZnJhZ21lbnQgYXMgc3RyaW5nXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBwcm9jZXNzRnJhZ21lbnQobmFtZTogc3RyaW5nLCB0ZXN0RGF0YTogeyBbbW9kZWw6IHN0cmluZ106IG9iamVjdCB9KTogUHJvbWlzZTxzdHJpbmc+IHtcblx0Y29uc3QgaW5wdXRYbWwgPSBgPHJvb3Q+PGNvcmU6RnJhZ21lbnQgZnJhZ21lbnROYW1lPVwiJHtuYW1lfVwiIHR5cGU9XCJYTUxcIiB4bWxuczpjb3JlPVwic2FwLnVpLmNvcmVcIiAvPjwvcm9vdD5gO1xuXHRjb25zdCBwYXJzZXIgPSBuZXcgd2luZG93LkRPTVBhcnNlcigpO1xuXHRjb25zdCBpbnB1dERvYyA9IHBhcnNlci5wYXJzZUZyb21TdHJpbmcoaW5wdXRYbWwsIFwidGV4dC94bWxcIik7XG5cblx0Ly8gYnVpbGQgbW9kZWwgYW5kIGJpbmRpbmdzIGZvciBnaXZlbiB0ZXN0IGRhdGFcblx0Y29uc3Qgc2V0dGluZ3MgPSB7XG5cdFx0bW9kZWxzOiB7fSBhcyB7IFtuYW1lOiBzdHJpbmddOiBKU09OTW9kZWwgfSxcblx0XHRiaW5kaW5nQ29udGV4dHM6IHt9IGFzIHsgW25hbWU6IHN0cmluZ106IG9iamVjdCB9XG5cdH07XG5cdGZvciAoY29uc3QgbW9kZWwgaW4gdGVzdERhdGEpIHtcblx0XHRjb25zdCBqc29uTW9kZWwgPSBuZXcgSlNPTk1vZGVsKCk7XG5cdFx0anNvbk1vZGVsLnNldERhdGEodGVzdERhdGFbbW9kZWxdKTtcblx0XHRzZXR0aW5ncy5tb2RlbHNbbW9kZWxdID0ganNvbk1vZGVsO1xuXHRcdHNldHRpbmdzLmJpbmRpbmdDb250ZXh0c1ttb2RlbF0gPSBzZXR0aW5ncy5tb2RlbHNbbW9kZWxdLmNyZWF0ZUJpbmRpbmdDb250ZXh0KFwiL1wiKSBhcyBDb250ZXh0O1xuXHR9XG5cblx0Ly8gZXhlY3V0ZSB0aGUgcHJlLXByb2Nlc3NvclxuXHRjb25zdCByZXN1bHREb2MgPSBhd2FpdCBYTUxQcmVwcm9jZXNzb3IucHJvY2VzcyhpbnB1dERvYy5maXJzdEVsZW1lbnRDaGlsZCwgeyBuYW1lIH0sIHNldHRpbmdzKTtcblxuXHQvLyBleGNsdWRlIG5lc3RlZCBmcmFnbWVudHMgZnJvbSB0ZXN0IHNuYXBzaG90c1xuXHRjb25zdCBmcmFnbWVudHMgPSByZXN1bHREb2MuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJjb3JlOkZyYWdtZW50XCIpO1xuXHRpZiAoZnJhZ21lbnRzPy5sZW5ndGggPiAwKSB7XG5cdFx0Zm9yIChjb25zdCBmcmFnbWVudCBvZiBmcmFnbWVudHMpIHtcblx0XHRcdGZyYWdtZW50LmlubmVySFRNTCA9IFwiXCI7XG5cdFx0fVxuXHR9XG5cblx0Ly8gS2VlcCB0aGUgZnJhZ21lbnQgcmVzdWx0IGFzIGNoaWxkIG9mIHJvb3Qgbm9kZSB3aGVuIGZyYWdtZW50IGdlbmVyYXRlcyBtdWx0aXBsZSByb290IGNvbnRyb2xzXG5cdGNvbnN0IHhtbFJlc3VsdCA9IHJlc3VsdERvYy5jaGlsZHJlbi5sZW5ndGggPiAxID8gcmVzdWx0RG9jLm91dGVySFRNTCA6IHJlc3VsdERvYy5pbm5lckhUTUw7XG5cblx0cmV0dXJuIGZvcm1hdFhtbCh4bWxSZXN1bHQsIHtcblx0XHRmaWx0ZXI6IChub2RlOiBhbnkpID0+IG5vZGUudHlwZSAhPT0gXCJDb21tZW50XCJcblx0fSk7XG59XG4iXX0=
|
|
@@ -20,6 +20,7 @@ import * as path from "path";
|
|
|
20
20
|
import ConverterContext from "sap/fe/core/converters/ConverterContext";
|
|
21
21
|
import SideEffectsFactory from "sap/fe/core/services/SideEffectsServiceFactory";
|
|
22
22
|
import TemplateModel from "sap/fe/core/TemplateModel";
|
|
23
|
+
import Context from "sap/ui/model/Context";
|
|
23
24
|
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
24
25
|
const formatXml = require("xml-formatter");
|
|
25
26
|
|
|
@@ -38,6 +39,7 @@ const nameSpaceMap = {
|
|
|
38
39
|
"f": "sap.ui.layout.form",
|
|
39
40
|
"internalMacro": "sap.fe.macros.internal",
|
|
40
41
|
"mdc": "sap.ui.mdc",
|
|
42
|
+
"mdcat": "sap.ui.mdc.actiontoolbar",
|
|
41
43
|
"mdcField": "sap.ui.mdc.field",
|
|
42
44
|
"mdcTable": "sap.ui.mdc.table",
|
|
43
45
|
"u": "sap.ui.unified",
|
|
@@ -180,14 +182,14 @@ export const getConverterContextForTest = function(
|
|
|
180
182
|
manifestSettings: ListReportManifestSettings | ObjectPageManifestSettings
|
|
181
183
|
) {
|
|
182
184
|
const entitySet = convertedTypes.entitySets.find(es => es.name === manifestSettings.entitySet);
|
|
183
|
-
const dataModelPath = getDataModelObjectPathForProperty(entitySet as EntitySet, entitySet);
|
|
185
|
+
const dataModelPath = getDataModelObjectPathForProperty(entitySet as EntitySet, convertedTypes, entitySet);
|
|
184
186
|
return new ConverterContext(convertedTypes, manifestSettings, getFakeDiagnostics(), merge, dataModelPath);
|
|
185
187
|
};
|
|
186
188
|
const metaModelCache: any = {};
|
|
187
189
|
export const getMetaModel = async function(sMetadataUrl: string) {
|
|
188
190
|
const oRequestor = _MetadataRequestor.create({}, "4.0", {});
|
|
189
191
|
if (!metaModelCache[sMetadataUrl]) {
|
|
190
|
-
const oMetaModel = new ODataMetaModel(oRequestor, sMetadataUrl, undefined, null);
|
|
192
|
+
const oMetaModel = new (ODataMetaModel as any)(oRequestor, sMetadataUrl, undefined, null);
|
|
191
193
|
await oMetaModel.fetchEntityContainer();
|
|
192
194
|
metaModelCache[sMetadataUrl] = oMetaModel;
|
|
193
195
|
}
|
|
@@ -197,6 +199,7 @@ export const getMetaModel = async function(sMetadataUrl: string) {
|
|
|
197
199
|
|
|
198
200
|
export const getDataModelObjectPathForProperty = function(
|
|
199
201
|
entitySet: EntitySet,
|
|
202
|
+
convertedTypes: ConverterOutput,
|
|
200
203
|
property?: Property | EntitySet | AnyAnnotation
|
|
201
204
|
): DataModelObjectPath {
|
|
202
205
|
const targetPath: DataModelObjectPath = {
|
|
@@ -204,7 +207,8 @@ export const getDataModelObjectPathForProperty = function(
|
|
|
204
207
|
navigationProperties: [],
|
|
205
208
|
targetObject: property,
|
|
206
209
|
targetEntitySet: entitySet,
|
|
207
|
-
targetEntityType: entitySet.entityType
|
|
210
|
+
targetEntityType: entitySet.entityType,
|
|
211
|
+
convertedTypes: convertedTypes
|
|
208
212
|
};
|
|
209
213
|
targetPath.contextLocation = targetPath;
|
|
210
214
|
return targetPath;
|
|
@@ -238,13 +242,13 @@ export function evaluateBindingWithModel(
|
|
|
238
242
|
|
|
239
243
|
const defaultModel = new JSONModel(modelContent);
|
|
240
244
|
text.setModel(defaultModel);
|
|
241
|
-
text.setBindingContext(defaultModel.createBindingContext("/"));
|
|
245
|
+
text.setBindingContext(defaultModel.createBindingContext("/") as Context);
|
|
242
246
|
|
|
243
247
|
if (namedModelsContent) {
|
|
244
248
|
for (const [name, content] of Object.entries(namedModelsContent)) {
|
|
245
249
|
const model = new JSONModel(content);
|
|
246
250
|
text.setModel(model, name);
|
|
247
|
-
text.setBindingContext(model.createBindingContext("/"), name);
|
|
251
|
+
text.setBindingContext(model.createBindingContext("/") as Context, name);
|
|
248
252
|
}
|
|
249
253
|
}
|
|
250
254
|
|
|
@@ -332,7 +336,7 @@ export async function processFragment(name: string, testData: { [model: string]:
|
|
|
332
336
|
const jsonModel = new JSONModel();
|
|
333
337
|
jsonModel.setData(testData[model]);
|
|
334
338
|
settings.models[model] = jsonModel;
|
|
335
|
-
settings.bindingContexts[model] = settings.models[model].createBindingContext("/");
|
|
339
|
+
settings.bindingContexts[model] = settings.models[model].createBindingContext("/") as Context;
|
|
336
340
|
}
|
|
337
341
|
|
|
338
342
|
// execute the pre-processor
|
|
@@ -11,24 +11,6 @@ sap.ui.define([], function () {
|
|
|
11
11
|
|
|
12
12
|
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
13
13
|
|
|
14
|
-
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
15
|
-
|
|
16
|
-
function _possibleConstructorReturn(self, call) { if (call && (typeof call === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
|
|
17
|
-
|
|
18
|
-
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
19
|
-
|
|
20
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
21
|
-
|
|
22
|
-
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
23
|
-
|
|
24
|
-
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
25
|
-
|
|
26
|
-
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
27
|
-
|
|
28
|
-
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
|
29
|
-
|
|
30
|
-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
31
|
-
|
|
32
14
|
/**
|
|
33
15
|
* Mock class for a V4 Context
|
|
34
16
|
*/
|
|
@@ -36,18 +18,17 @@ sap.ui.define([], function () {
|
|
|
36
18
|
function MockContext(oValues, oBinding) {
|
|
37
19
|
var _this = this;
|
|
38
20
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
_defineProperty(this, "getProperty", jest.fn(function (key) {
|
|
21
|
+
this.getProperty = jest.fn(function (key) {
|
|
42
22
|
return _this.oValues[key];
|
|
43
|
-
})
|
|
44
|
-
|
|
45
|
-
|
|
23
|
+
});
|
|
24
|
+
this.requestProperty = jest.fn(function (key) {
|
|
25
|
+
return Promise.resolve(_this.oValues[key]);
|
|
26
|
+
});
|
|
27
|
+
this.setProperty = jest.fn(function (key, value) {
|
|
46
28
|
_this.oValues[key] = value;
|
|
47
29
|
return _this.oValues[key];
|
|
48
|
-
})
|
|
49
|
-
|
|
50
|
-
_defineProperty(this, "getObject", jest.fn(function (path) {
|
|
30
|
+
});
|
|
31
|
+
this.getObject = jest.fn(function (path) {
|
|
51
32
|
var that = _this;
|
|
52
33
|
var result = path ? that.oValues[path] : that.oValues;
|
|
53
34
|
|
|
@@ -60,36 +41,29 @@ sap.ui.define([], function () {
|
|
|
60
41
|
}
|
|
61
42
|
|
|
62
43
|
return result;
|
|
63
|
-
})
|
|
64
|
-
|
|
65
|
-
_defineProperty(this, "getPath", jest.fn(function () {
|
|
44
|
+
});
|
|
45
|
+
this.getPath = jest.fn(function () {
|
|
66
46
|
return _this.oValues["$path"];
|
|
67
|
-
})
|
|
68
|
-
|
|
69
|
-
_defineProperty(this, "getBinding", jest.fn(function () {
|
|
47
|
+
});
|
|
48
|
+
this.getBinding = jest.fn(function () {
|
|
70
49
|
return _this.oBinding;
|
|
71
|
-
})
|
|
72
|
-
|
|
73
|
-
_defineProperty(this, "getModel", jest.fn(function () {
|
|
50
|
+
});
|
|
51
|
+
this.getModel = jest.fn(function () {
|
|
74
52
|
var _this$oBinding;
|
|
75
53
|
|
|
76
54
|
return (_this$oBinding = _this.oBinding) === null || _this$oBinding === void 0 ? void 0 : _this$oBinding.getModel();
|
|
77
|
-
})
|
|
78
|
-
|
|
79
|
-
_defineProperty(this, "isTransient", jest.fn());
|
|
80
|
-
|
|
55
|
+
});
|
|
56
|
+
this.isTransient = jest.fn();
|
|
81
57
|
this.oValues = oValues;
|
|
82
58
|
this.oBinding = oBinding;
|
|
83
59
|
}
|
|
84
60
|
|
|
85
61
|
_exports.MockContext = MockContext;
|
|
62
|
+
var _proto = MockContext.prototype;
|
|
86
63
|
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
return sClassName === "sap.ui.model.odata.v4.Context";
|
|
91
|
-
}
|
|
92
|
-
}]);
|
|
64
|
+
_proto.isA = function isA(sClassName) {
|
|
65
|
+
return sClassName === "sap.ui.model.odata.v4.Context";
|
|
66
|
+
};
|
|
93
67
|
|
|
94
68
|
return MockContext;
|
|
95
69
|
}();
|
|
@@ -97,21 +71,13 @@ sap.ui.define([], function () {
|
|
|
97
71
|
_exports.MockContext = MockContext;
|
|
98
72
|
|
|
99
73
|
var MockUI5Element = function MockUI5Element() {
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
_defineProperty(this, "getBindingInfo", jest.fn());
|
|
109
|
-
|
|
110
|
-
_defineProperty(this, "data", jest.fn());
|
|
111
|
-
|
|
112
|
-
_defineProperty(this, "getModel", jest.fn());
|
|
113
|
-
|
|
114
|
-
_defineProperty(this, "getParent", jest.fn());
|
|
74
|
+
this.bindingContext = new MockContext({});
|
|
75
|
+
this.getBinding = jest.fn();
|
|
76
|
+
this.getBindingContext = jest.fn().mockReturnValue(this.bindingContext);
|
|
77
|
+
this.getBindingInfo = jest.fn();
|
|
78
|
+
this.data = jest.fn();
|
|
79
|
+
this.getModel = jest.fn();
|
|
80
|
+
this.getParent = jest.fn();
|
|
115
81
|
};
|
|
116
82
|
|
|
117
83
|
_exports.MockUI5Element = MockUI5Element;
|
|
@@ -119,21 +85,15 @@ sap.ui.define([], function () {
|
|
|
119
85
|
var MockControl = /*#__PURE__*/function (_MockUI5Element) {
|
|
120
86
|
_inherits(MockControl, _MockUI5Element);
|
|
121
87
|
|
|
122
|
-
var _super = _createSuper(MockControl);
|
|
123
|
-
|
|
124
88
|
function MockControl() {
|
|
125
89
|
var _this2;
|
|
126
90
|
|
|
127
|
-
_classCallCheck(this, MockControl);
|
|
128
|
-
|
|
129
91
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
130
92
|
args[_key] = arguments[_key];
|
|
131
93
|
}
|
|
132
94
|
|
|
133
|
-
_this2 =
|
|
134
|
-
|
|
135
|
-
_defineProperty(_assertThisInitialized(_this2), "getBindingContext", jest.fn());
|
|
136
|
-
|
|
95
|
+
_this2 = _MockUI5Element.call.apply(_MockUI5Element, [this].concat(args)) || this;
|
|
96
|
+
_this2.getBindingContext = jest.fn();
|
|
137
97
|
return _this2;
|
|
138
98
|
}
|
|
139
99
|
|
|
@@ -148,17 +108,12 @@ sap.ui.define([], function () {
|
|
|
148
108
|
|
|
149
109
|
var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
150
110
|
var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new MockUI5Element();
|
|
151
|
-
|
|
152
|
-
_classCallCheck(this, MockEvent);
|
|
153
|
-
|
|
154
|
-
_defineProperty(this, "getParameter", jest.fn(function (name) {
|
|
111
|
+
this.getParameter = jest.fn(function (name) {
|
|
155
112
|
return _this3.params[name];
|
|
156
|
-
})
|
|
157
|
-
|
|
158
|
-
_defineProperty(this, "getSource", jest.fn(function () {
|
|
113
|
+
});
|
|
114
|
+
this.getSource = jest.fn(function () {
|
|
159
115
|
return _this3.source;
|
|
160
|
-
})
|
|
161
|
-
|
|
116
|
+
});
|
|
162
117
|
this.params = params;
|
|
163
118
|
this.source = source;
|
|
164
119
|
};
|
|
@@ -173,26 +128,18 @@ sap.ui.define([], function () {
|
|
|
173
128
|
function MockListBinding(aContexts, mockModel) {
|
|
174
129
|
var _this4 = this;
|
|
175
130
|
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
_defineProperty(this, "filter", jest.fn());
|
|
181
|
-
|
|
182
|
-
_defineProperty(this, "sort", jest.fn());
|
|
183
|
-
|
|
184
|
-
_defineProperty(this, "requestContexts", jest.fn(function () {
|
|
131
|
+
this.setAggregation = jest.fn();
|
|
132
|
+
this.filter = jest.fn();
|
|
133
|
+
this.sort = jest.fn();
|
|
134
|
+
this.requestContexts = jest.fn(function () {
|
|
185
135
|
return Promise.resolve(_this4.aMockContexts);
|
|
186
|
-
})
|
|
187
|
-
|
|
188
|
-
_defineProperty(this, "getCurrentContexts", jest.fn(function () {
|
|
136
|
+
});
|
|
137
|
+
this.getCurrentContexts = jest.fn(function () {
|
|
189
138
|
return _this4.aMockContexts;
|
|
190
|
-
})
|
|
191
|
-
|
|
192
|
-
_defineProperty(this, "getModel", jest.fn(function () {
|
|
139
|
+
});
|
|
140
|
+
this.getModel = jest.fn(function () {
|
|
193
141
|
return _this4.mockModel;
|
|
194
|
-
})
|
|
195
|
-
|
|
142
|
+
});
|
|
196
143
|
this.mockModel = mockModel;
|
|
197
144
|
aContexts = aContexts || [];
|
|
198
145
|
this.aMockContexts = aContexts.map(function (context) {
|
|
@@ -201,19 +148,16 @@ sap.ui.define([], function () {
|
|
|
201
148
|
}
|
|
202
149
|
|
|
203
150
|
_exports.MockListBinding = MockListBinding;
|
|
151
|
+
var _proto2 = MockListBinding.prototype;
|
|
204
152
|
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
return sClassName === "sap.ui.model.odata.v4.ODataListBinding";
|
|
209
|
-
}
|
|
210
|
-
}, {
|
|
211
|
-
key: "setModel",
|
|
212
|
-
value: function setModel(oModel) {
|
|
213
|
-
this.mockModel = oModel;
|
|
214
|
-
} // Mocked API
|
|
153
|
+
_proto2.isA = function isA(sClassName) {
|
|
154
|
+
return sClassName === "sap.ui.model.odata.v4.ODataListBinding";
|
|
155
|
+
};
|
|
215
156
|
|
|
216
|
-
|
|
157
|
+
_proto2.setModel = function setModel(oModel) {
|
|
158
|
+
this.mockModel = oModel;
|
|
159
|
+
} // Mocked API
|
|
160
|
+
;
|
|
217
161
|
|
|
218
162
|
return MockListBinding;
|
|
219
163
|
}();
|
|
@@ -224,41 +168,32 @@ sap.ui.define([], function () {
|
|
|
224
168
|
function MockContextBinding(oContext, mockModel) {
|
|
225
169
|
var _this5 = this;
|
|
226
170
|
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
_defineProperty(this, "getBoundContext", jest.fn(function () {
|
|
171
|
+
this.getBoundContext = jest.fn(function () {
|
|
230
172
|
return _this5.oMockContext;
|
|
231
|
-
})
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
_defineProperty(this, "getModel", jest.fn(function () {
|
|
173
|
+
});
|
|
174
|
+
this.attachEventOnce = jest.fn();
|
|
175
|
+
this.getModel = jest.fn(function () {
|
|
236
176
|
return _this5.mockModel;
|
|
237
|
-
})
|
|
238
|
-
|
|
177
|
+
});
|
|
239
178
|
this.mockModel = mockModel;
|
|
240
179
|
this.oMockContext = new MockContext(oContext || {}, this);
|
|
241
180
|
}
|
|
242
181
|
|
|
243
182
|
_exports.MockContextBinding = MockContextBinding;
|
|
183
|
+
var _proto3 = MockContextBinding.prototype;
|
|
244
184
|
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
return sClassName === "sap.ui.model.odata.v4.ODataContextBinding";
|
|
249
|
-
}
|
|
250
|
-
}, {
|
|
251
|
-
key: "getInternalMockContext",
|
|
252
|
-
value: function getInternalMockContext() {
|
|
253
|
-
return this.oMockContext;
|
|
254
|
-
}
|
|
255
|
-
}, {
|
|
256
|
-
key: "setModel",
|
|
257
|
-
value: function setModel(oModel) {
|
|
258
|
-
this.mockModel = oModel;
|
|
259
|
-
} // Mocked API
|
|
185
|
+
_proto3.isA = function isA(sClassName) {
|
|
186
|
+
return sClassName === "sap.ui.model.odata.v4.ODataContextBinding";
|
|
187
|
+
};
|
|
260
188
|
|
|
261
|
-
|
|
189
|
+
_proto3.getInternalMockContext = function getInternalMockContext() {
|
|
190
|
+
return this.oMockContext;
|
|
191
|
+
};
|
|
192
|
+
|
|
193
|
+
_proto3.setModel = function setModel(oModel) {
|
|
194
|
+
this.mockModel = oModel;
|
|
195
|
+
} // Mocked API
|
|
196
|
+
;
|
|
262
197
|
|
|
263
198
|
return MockContextBinding;
|
|
264
199
|
}();
|
|
@@ -272,30 +207,24 @@ sap.ui.define([], function () {
|
|
|
272
207
|
var MockMetaModel = function MockMetaModel(oMetaData) {
|
|
273
208
|
var _this6 = this;
|
|
274
209
|
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
_defineProperty(this, "getMetaContext", jest.fn(function (sPath) {
|
|
210
|
+
this.getMetaContext = jest.fn(function (sPath) {
|
|
278
211
|
return new MockContext({
|
|
279
212
|
$path: sPath
|
|
280
213
|
});
|
|
281
|
-
})
|
|
282
|
-
|
|
283
|
-
_defineProperty(this, "getObject", jest.fn(function (sPath) {
|
|
214
|
+
});
|
|
215
|
+
this.getObject = jest.fn(function (sPath) {
|
|
284
216
|
return _this6.oMetaContext.getProperty(sPath);
|
|
285
|
-
})
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
_defineProperty(this, "createBindingContext", jest.fn(function (sPath) {
|
|
217
|
+
});
|
|
218
|
+
this.requestObject = jest.fn();
|
|
219
|
+
this.createBindingContext = jest.fn(function (sPath) {
|
|
290
220
|
return new MockContext({
|
|
291
221
|
$path: sPath
|
|
292
222
|
});
|
|
293
|
-
})
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
223
|
+
});
|
|
224
|
+
this.getMetaPath = jest.fn(function (sPath) {
|
|
225
|
+
return sPath;
|
|
226
|
+
});
|
|
227
|
+
this.getContext = jest.fn();
|
|
299
228
|
this.oMetaContext = new MockContext(oMetaData || {});
|
|
300
229
|
} // Mocked API
|
|
301
230
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
@@ -311,24 +240,18 @@ sap.ui.define([], function () {
|
|
|
311
240
|
function MockModel(mockListBinding, mockContextBinding) {
|
|
312
241
|
var _this7 = this;
|
|
313
242
|
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
_defineProperty(this, "bindList", jest.fn(function () {
|
|
243
|
+
this.bindList = jest.fn(function () {
|
|
317
244
|
return _this7.mockListBinding;
|
|
318
|
-
})
|
|
319
|
-
|
|
320
|
-
_defineProperty(this, "bindContext", jest.fn(function () {
|
|
245
|
+
});
|
|
246
|
+
this.bindContext = jest.fn(function () {
|
|
321
247
|
return _this7.mockContextBinding;
|
|
322
|
-
})
|
|
323
|
-
|
|
324
|
-
_defineProperty(this, "getMetaModel", jest.fn(function () {
|
|
248
|
+
});
|
|
249
|
+
this.getMetaModel = jest.fn(function () {
|
|
325
250
|
return _this7.oMetaModel;
|
|
326
|
-
})
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
_defineProperty(this, "setProperty", jest.fn());
|
|
331
|
-
|
|
251
|
+
});
|
|
252
|
+
this.getProperty = jest.fn();
|
|
253
|
+
this.setProperty = jest.fn();
|
|
254
|
+
this.requestObject = jest.fn();
|
|
332
255
|
this.mockListBinding = mockListBinding;
|
|
333
256
|
this.mockContextBinding = mockContextBinding;
|
|
334
257
|
|
|
@@ -344,60 +267,60 @@ sap.ui.define([], function () {
|
|
|
344
267
|
|
|
345
268
|
_exports.MockModel = MockModel;
|
|
346
269
|
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
}
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
return new MockModel(undefined, mockContextBinding);
|
|
363
|
-
}
|
|
364
|
-
}]);
|
|
270
|
+
MockModel.modelFromListBinding = function modelFromListBinding(mockListBinding) {
|
|
271
|
+
return new MockModel(mockListBinding);
|
|
272
|
+
};
|
|
273
|
+
|
|
274
|
+
MockModel.modelFromContextBinding = function modelFromContextBinding(mockContextBinding) {
|
|
275
|
+
return new MockModel(undefined, mockContextBinding);
|
|
276
|
+
};
|
|
277
|
+
|
|
278
|
+
var _proto4 = MockModel.prototype;
|
|
279
|
+
|
|
280
|
+
_proto4.setMetaModel = function setMetaModel(oMetaModel) {
|
|
281
|
+
this.oMetaModel = oMetaModel;
|
|
282
|
+
} // Mocked API
|
|
283
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
284
|
+
;
|
|
365
285
|
|
|
366
286
|
return MockModel;
|
|
367
287
|
}();
|
|
368
288
|
|
|
369
289
|
_exports.MockModel = MockModel;
|
|
370
290
|
|
|
371
|
-
var MockView = function
|
|
372
|
-
|
|
291
|
+
var MockView = /*#__PURE__*/function () {
|
|
292
|
+
function MockView() {
|
|
293
|
+
this.getController = jest.fn();
|
|
294
|
+
this.getBindingContext = jest.fn();
|
|
295
|
+
this.getModel = jest.fn();
|
|
296
|
+
this.getViewData = jest.fn();
|
|
297
|
+
this.getId = jest.fn();
|
|
298
|
+
}
|
|
373
299
|
|
|
374
|
-
|
|
300
|
+
_exports.MockView = MockView;
|
|
301
|
+
var _proto5 = MockView.prototype;
|
|
375
302
|
|
|
376
|
-
|
|
303
|
+
_proto5.isA = function isA(sClassName) {
|
|
304
|
+
return sClassName === "sap.ui.core.mvc.View";
|
|
305
|
+
};
|
|
377
306
|
|
|
378
|
-
|
|
379
|
-
};
|
|
307
|
+
return MockView;
|
|
308
|
+
}();
|
|
380
309
|
|
|
381
310
|
_exports.MockView = MockView;
|
|
382
311
|
|
|
383
312
|
var MockController = function MockController() {
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
_defineProperty(this, "getView", jest.fn());
|
|
387
|
-
|
|
388
|
-
_defineProperty(this, "_routing", {
|
|
313
|
+
this.getView = jest.fn().mockReturnValue(new MockView());
|
|
314
|
+
this._routing = {
|
|
389
315
|
navigateToTarget: jest.fn()
|
|
390
|
-
}
|
|
391
|
-
|
|
392
|
-
_defineProperty(this, "_editFlow", {
|
|
316
|
+
};
|
|
317
|
+
this._editFlow = {
|
|
393
318
|
syncTask: jest.fn()
|
|
394
|
-
}
|
|
395
|
-
|
|
396
|
-
_defineProperty(this, "_sideEffects", {
|
|
319
|
+
};
|
|
320
|
+
this._sideEffects = {
|
|
397
321
|
handleFieldChange: jest.fn()
|
|
398
|
-
}
|
|
399
|
-
|
|
400
|
-
_defineProperty(this, "isA", jest.fn().mockReturnValue(false));
|
|
322
|
+
};
|
|
323
|
+
this.isA = jest.fn().mockReturnValue(false);
|
|
401
324
|
};
|
|
402
325
|
|
|
403
326
|
_exports.MockController = MockController;
|
|
@@ -425,4 +348,4 @@ sap.ui.define([], function () {
|
|
|
425
348
|
_exports.mockMVC = mockMVC;
|
|
426
349
|
return _exports;
|
|
427
350
|
}, false);
|
|
428
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlVJNU1vY2tIZWxwZXIudHMiXSwibmFtZXMiOlsiTW9ja0NvbnRleHQiLCJvVmFsdWVzIiwib0JpbmRpbmciLCJqZXN0IiwiZm4iLCJrZXkiLCJ2YWx1ZSIsInBhdGgiLCJ0aGF0IiwicmVzdWx0IiwiaW5kZXhPZiIsInBhcnRzIiwic3BsaXQiLCJyZWR1Y2UiLCJzdW0iLCJwYXJ0IiwiZ2V0TW9kZWwiLCJzQ2xhc3NOYW1lIiwiTW9ja1VJNUVsZW1lbnQiLCJtb2NrUmV0dXJuVmFsdWUiLCJiaW5kaW5nQ29udGV4dCIsIk1vY2tDb250cm9sIiwiTW9ja0V2ZW50IiwicGFyYW1zIiwic291cmNlIiwibmFtZSIsIk1vY2tMaXN0QmluZGluZyIsImFDb250ZXh0cyIsIm1vY2tNb2RlbCIsIlByb21pc2UiLCJyZXNvbHZlIiwiYU1vY2tDb250ZXh0cyIsIm1hcCIsImNvbnRleHQiLCJvTW9kZWwiLCJNb2NrQ29udGV4dEJpbmRpbmciLCJvQ29udGV4dCIsIm9Nb2NrQ29udGV4dCIsIk1vY2tNZXRhTW9kZWwiLCJvTWV0YURhdGEiLCJzUGF0aCIsIiRwYXRoIiwib01ldGFDb250ZXh0IiwiZ2V0UHJvcGVydHkiLCJNb2NrTW9kZWwiLCJtb2NrTGlzdEJpbmRpbmciLCJtb2NrQ29udGV4dEJpbmRpbmciLCJvTWV0YU1vZGVsIiwic2V0TW9kZWwiLCJ1bmRlZmluZWQiLCJNb2NrVmlldyIsIk1vY2tDb250cm9sbGVyIiwibmF2aWdhdGVUb1RhcmdldCIsInN5bmNUYXNrIiwiaGFuZGxlRmllbGRDaGFuZ2UiLCJtb2NrTVZDIiwiZXhpc3RpbmciLCJtb2RlbCIsInZpZXciLCJjb250cm9sbGVyIiwiZ2V0Q29udHJvbGxlciIsImdldFZpZXciXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFGQTtBQUNBO0FBQ0E7TUFZYUEsVztBQUNaLHlCQUEyQkMsT0FBM0IsRUFBa0RDLFFBQWxELEVBQWtFO0FBQUE7O0FB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RUMsS0FBVixLQUFtQixJQUFJYixTQUFKLEVBQWpDO0FBQ0EsUUFBTWMsSUFBSSxHQUFHLENBQUFGLFFBQVEsU0FBUixJQUFBQSxRQUFRLFdBQVIsWUFBQUEsUUFBUSxDQUFFRSxJQUFWLEtBQWtCLElBQUlSLFFBQUosRUFBL0I7QUFDQSxRQUFNUyxVQUFVLEdBQUcsQ0FBQUgsUUFBUSxTQUFSLElBQUFBLFFBQVEsV0FBUixZQUFBQSxRQUFRLENBQUVHLFVBQVYsS0FBd0IsSUFBSVIsY0FBSixFQUEzQztBQUVBTyxJQUFBQSxJQUFJLENBQUNFLGFBQUwsQ0FBbUJ6QyxlQUFuQixDQUFtQ3dDLFVBQW5DO0FBQ0FELElBQUFBLElBQUksQ0FBQzFDLFFBQUwsQ0FBY0csZUFBZCxDQUE4QnNDLEtBQTlCO0FBQ0FFLElBQUFBLFVBQVUsQ0FBQ0UsT0FBWCxDQUFtQjFDLGVBQW5CLENBQW1DdUMsSUFBbkM7QUFFQSxXQUFPO0FBQUVELE1BQUFBLEtBQUssRUFBTEEsS0FBRjtBQUFTQyxNQUFBQSxJQUFJLEVBQUpBLElBQVQ7QUFBZUMsTUFBQUEsVUFBVSxFQUFWQTtBQUFmLEtBQVA7QUFDQSIsInNvdXJjZVJvb3QiOiIuIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBNb2NrIGNsYXNzIGZvciBhIFY0IENvbnRleHRcbiAqL1xuaW1wb3J0IEV2ZW50IGZyb20gXCJzYXAvdWkvYmFzZS9FdmVudFwiO1xuaW1wb3J0IENvbnRyb2wgZnJvbSBcInNhcC91aS9jb3JlL0NvbnRyb2xcIjtcbmltcG9ydCBVSTVFbGVtZW50IGZyb20gXCJzYXAvdWkvY29yZS9FbGVtZW50XCI7XG5pbXBvcnQgQ29udHJvbGxlciBmcm9tIFwic2FwL3VpL2NvcmUvbXZjL0NvbnRyb2xsZXJcIjtcbmltcG9ydCBWaWV3IGZyb20gXCJzYXAvdWkvY29yZS9tdmMvVmlld1wiO1xuaW1wb3J0IENvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9Db250ZXh0XCI7XG5pbXBvcnQgT0RhdGFMaXN0QmluZGluZyBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L09EYXRhTGlzdEJpbmRpbmdcIjtcbmltcG9ydCBPRGF0YUNvbnRleHRCaW5kaW5nIGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvT0RhdGFDb250ZXh0QmluZGluZ1wiO1xuaW1wb3J0IE9EYXRhTWV0YU1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvT0RhdGFNZXRhTW9kZWxcIjtcbmltcG9ydCBPRGF0YU1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvT0RhdGFNb2RlbFwiO1xuXG5leHBvcnQgY2xhc3MgTW9ja0NvbnRleHQgaW1wbGVtZW50cyBQYXJ0aWFsPENvbnRleHQ+IHtcblx0cHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgb1ZhbHVlcz86IGFueSwgcHJpdmF0ZSBvQmluZGluZz86IGFueSkge31cblxuXHRwdWJsaWMgaXNBKHNDbGFzc05hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBzQ2xhc3NOYW1lID09PSBcInNhcC51aS5tb2RlbC5vZGF0YS52NC5Db250ZXh0XCI7XG5cdH1cblxuXHRwdWJsaWMgZ2V0UHJvcGVydHkgPSBqZXN0LmZuKChrZXk6IHN0cmluZykgPT4ge1xuXHRcdHJldHVybiB0aGlzLm9WYWx1ZXNba2V5XTtcblx0fSk7XG5cdHB1YmxpYyBzZXRQcm9wZXJ0eSA9IGplc3QuZm4oKGtleTogc3RyaW5nLCB2YWx1ZTogYW55KSA9PiB7XG5cdFx0dGhpcy5vVmFsdWVzW2tleV0gPSB2YWx1ZTtcblx0XHRyZXR1cm4gdGhpcy5vVmFsdWVzW2tleV07XG5cdH0pO1xuXG5cdHB1YmxpYyBnZXRPYmplY3QgPSBqZXN0LmZuKChwYXRoOiBzdHJpbmcpID0+IHtcblx0XHRjb25zdCB0aGF0ID0gdGhpcyBhcyBhbnk7XG5cdFx0bGV0IHJlc3VsdCA9IHBhdGggPyB0aGF0Lm9WYWx1ZXNbcGF0aF0gOiB0aGF0Lm9WYWx1ZXM7XG5cblx0XHRpZiAoIXJlc3VsdCAmJiBwYXRoICYmIHBhdGguaW5kZXhPZihcIi9cIikgPiAtMSkge1xuXHRcdFx0Y29uc3QgcGFydHMgPSBwYXRoLnNwbGl0KFwiL1wiKTtcblx0XHRcdHJlc3VsdCA9IHBhcnRzLnJlZHVjZSgoc3VtLCBwYXJ0OiBhbnkpID0+IHtcblx0XHRcdFx0c3VtID0gcGFydCA/IHN1bVtwYXJ0XSA6IHN1bTtcblx0XHRcdFx0cmV0dXJuIHN1bTtcblx0XHRcdH0sIHRoYXQub1ZhbHVlcyk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHJlc3VsdDtcblx0fSk7XG5cdHB1YmxpYyBnZXRQYXRoID0gamVzdC5mbigoKSA9PiB7XG5cdFx0cmV0dXJuIHRoaXMub1ZhbHVlc1tcIiRwYXRoXCJdO1xuXHR9KTtcblxuXHRwdWJsaWMgZ2V0QmluZGluZyA9IGplc3QuZm4oKCkgPT4ge1xuXHRcdHJldHVybiB0aGlzLm9CaW5kaW5nO1xuXHR9KTtcblx0cHVibGljIGdldE1vZGVsID0gamVzdC5mbigoKSA9PiB7XG5cdFx0cmV0dXJuICh0aGlzLm9CaW5kaW5nPy5nZXRNb2RlbCgpIGFzIGFueSkgYXMgT0RhdGFNb2RlbDtcblx0fSk7XG5cdHB1YmxpYyBpc1RyYW5zaWVudCA9IGplc3QuZm4oKTtcbn1cblxuZXhwb3J0IGNsYXNzIE1vY2tVSTVFbGVtZW50IGltcGxlbWVudHMgUGFydGlhbDxVSTVFbGVtZW50PiB7XG5cdFtrZXk6IHN0cmluZ106IGFueTtcblx0cHVibGljIGJpbmRpbmdDb250ZXh0ID0gbmV3IE1vY2tDb250ZXh0KHt9KTtcblx0cHVibGljIGdldEJpbmRpbmcgPSBqZXN0LmZuKCk7XG5cdHB1YmxpYyBnZXRCaW5kaW5nQ29udGV4dCA9IGplc3QuZm4oKS5tb2NrUmV0dXJuVmFsdWUodGhpcy5iaW5kaW5nQ29udGV4dCk7XG5cdHB1YmxpYyBnZXRCaW5kaW5nSW5mbyA9IGplc3QuZm4oKTtcblx0cHVibGljIGRhdGEgPSBqZXN0LmZuKCk7XG5cdHB1YmxpYyBnZXRNb2RlbCA9IGplc3QuZm4oKTtcblx0cHVibGljIGdldFBhcmVudCA9IGplc3QuZm4oKTtcbn1cblxuZXhwb3J0IGNsYXNzIE1vY2tDb250cm9sIGV4dGVuZHMgTW9ja1VJNUVsZW1lbnQgaW1wbGVtZW50cyBQYXJ0aWFsPENvbnRyb2w+IHtcblx0cHVibGljIGdldEJpbmRpbmdDb250ZXh0OiBqZXN0Lk1vY2s8YW55LCBhbnk+ID0gamVzdC5mbigpO1xufVxuXG5leHBvcnQgY2xhc3MgTW9ja0V2ZW50IGltcGxlbWVudHMgUGFydGlhbDxFdmVudD4ge1xuXHRwdWJsaWMgY29uc3RydWN0b3IocHVibGljIHBhcmFtczogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHt9LCBwdWJsaWMgc291cmNlOiBNb2NrVUk1RWxlbWVudCA9IG5ldyBNb2NrVUk1RWxlbWVudCgpKSB7fVxuXG5cdHB1YmxpYyBnZXRQYXJhbWV0ZXIgPSBqZXN0LmZuKG5hbWUgPT4gdGhpcy5wYXJhbXNbbmFtZV0pO1xuXG5cdHB1YmxpYyBnZXRTb3VyY2UgPSBqZXN0LmZuKCgpID0+IHRoaXMuc291cmNlIGFzIGFueSk7XG59XG5cbi8qKlxuICogTW9jayBjbGFzcyBmb3IgT0RhdGEgVjQgTGlzdEJpbmRpbmdcbiAqL1xuZXhwb3J0IGNsYXNzIE1vY2tMaXN0QmluZGluZyBpbXBsZW1lbnRzIFBhcnRpYWw8T0RhdGFMaXN0QmluZGluZz4ge1xuXHRwcml2YXRlIGFNb2NrQ29udGV4dHM6IE1vY2tDb250ZXh0W107XG5cblx0cHVibGljIGNvbnN0cnVjdG9yKGFDb250ZXh0cz86IGFueVtdLCBwcml2YXRlIG1vY2tNb2RlbD86IE1vY2tNb2RlbCkge1xuXHRcdGFDb250ZXh0cyA9IGFDb250ZXh0cyB8fCBbXTtcblxuXHRcdHRoaXMuYU1vY2tDb250ZXh0cyA9IGFDb250ZXh0cy5tYXAoY29udGV4dCA9PiB7XG5cdFx0XHRyZXR1cm4gbmV3IE1vY2tDb250ZXh0KGNvbnRleHQsIHRoaXMpO1xuXHRcdH0pO1xuXHR9XG5cblx0cHVibGljIGlzQShzQ2xhc3NOYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gc0NsYXNzTmFtZSA9PT0gXCJzYXAudWkubW9kZWwub2RhdGEudjQuT0RhdGFMaXN0QmluZGluZ1wiO1xuXHR9XG5cblx0cHVibGljIHNldE1vZGVsKG9Nb2RlbDogTW9ja01vZGVsKSB7XG5cdFx0dGhpcy5tb2NrTW9kZWwgPSBvTW9kZWw7XG5cdH1cblxuXHQvLyBNb2NrZWQgQVBJXG5cdHB1YmxpYyBzZXRBZ2dyZWdhdGlvbiA9IGplc3QuZm4oKTtcblx0cHVibGljIGZpbHRlciA9IGplc3QuZm4oKTtcblx0cHVibGljIHNvcnQgPSBqZXN0LmZuKCk7XG5cblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuXHRwdWJsaWMgcmVxdWVzdENvbnRleHRzID0gamVzdC5mbigoLi4uYXJncykgPT4ge1xuXHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoKHRoaXMuYU1vY2tDb250ZXh0cyBhcyBhbnkpIGFzIENvbnRleHRbXSk7XG5cdH0pO1xuXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG5cdHB1YmxpYyBnZXRDdXJyZW50Q29udGV4dHMgPSBqZXN0LmZuKCguLi5hcmdzKSA9PiB7XG5cdFx0cmV0dXJuICh0aGlzLmFNb2NrQ29udGV4dHMgYXMgYW55KSBhcyBDb250ZXh0W107XG5cdH0pO1xuXHRwdWJsaWMgZ2V0TW9kZWwgPSBqZXN0LmZuKCgpID0+IHtcblx0XHRyZXR1cm4gKHRoaXMubW9ja01vZGVsIGFzIGFueSkgYXMgT0RhdGFNb2RlbDtcblx0fSk7XG59XG5cbmV4cG9ydCBjbGFzcyBNb2NrQ29udGV4dEJpbmRpbmcgaW1wbGVtZW50cyBQYXJ0aWFsPE9EYXRhQ29udGV4dEJpbmRpbmc+IHtcblx0cHJpdmF0ZSBvTW9ja0NvbnRleHQ6IE1vY2tDb250ZXh0O1xuXG5cdHB1YmxpYyBjb25zdHJ1Y3RvcihvQ29udGV4dD86IGFueSwgcHJpdmF0ZSBtb2NrTW9kZWw/OiBNb2NrTW9kZWwpIHtcblx0XHR0aGlzLm9Nb2NrQ29udGV4dCA9IG5ldyBNb2NrQ29udGV4dChvQ29udGV4dCB8fCB7fSwgdGhpcyk7XG5cdH1cblxuXHRwdWJsaWMgaXNBKHNDbGFzc05hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBzQ2xhc3NOYW1lID09PSBcInNhcC51aS5tb2RlbC5vZGF0YS52NC5PRGF0YUNvbnRleHRCaW5kaW5nXCI7XG5cdH1cblx0cHVibGljIGdldEludGVybmFsTW9ja0NvbnRleHQoKTogTW9ja0NvbnRleHQge1xuXHRcdHJldHVybiB0aGlzLm9Nb2NrQ29udGV4dDtcblx0fVxuXHRwdWJsaWMgc2V0TW9kZWwob01vZGVsOiBNb2NrTW9kZWwpIHtcblx0XHR0aGlzLm1vY2tNb2RlbCA9IG9Nb2RlbDtcblx0fVxuXG5cdC8vIE1vY2tlZCBBUElcblx0cHVibGljIGdldEJvdW5kQ29udGV4dCA9IGplc3QuZm4oKCkgPT4ge1xuXHRcdHJldHVybiAodGhpcy5vTW9ja0NvbnRleHQgYXMgYW55KSBhcyBDb250ZXh0O1xuXHR9KTtcblx0cHVibGljIGF0dGFjaEV2ZW50T25jZSA9IGplc3QuZm4oKTtcblx0cHVibGljIGdldE1vZGVsID0gamVzdC5mbigoKSA9PiB7XG5cdFx0cmV0dXJuICh0aGlzLm1vY2tNb2RlbCBhcyBhbnkpIGFzIE9EYXRhTW9kZWw7XG5cdH0pO1xufVxuXG4vKipcbiAqIE1vY2sgY2xhc3MgZm9yIE9EYXRhIFY0IE1ldGFNb2RlbFxuICovXG5leHBvcnQgY2xhc3MgTW9ja01ldGFNb2RlbCBpbXBsZW1lbnRzIFBhcnRpYWw8T0RhdGFNZXRhTW9kZWw+IHtcblx0cHJpdmF0ZSBvTWV0YUNvbnRleHQ6IE1vY2tDb250ZXh0O1xuXG5cdHB1YmxpYyBjb25zdHJ1Y3RvcihvTWV0YURhdGE/OiBhbnkpIHtcblx0XHR0aGlzLm9NZXRhQ29udGV4dCA9IG5ldyBNb2NrQ29udGV4dChvTWV0YURhdGEgfHwge30pO1xuXHR9XG5cblx0Ly8gTW9ja2VkIEFQSVxuXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG5cdHB1YmxpYyBnZXRNZXRhQ29udGV4dCA9IGplc3QuZm4oKHNQYXRoOiBzdHJpbmcpID0+IHtcblx0XHRyZXR1cm4gKG5ldyBNb2NrQ29udGV4dCh7ICRwYXRoOiBzUGF0aCB9KSBhcyBhbnkpIGFzIENvbnRleHQ7XG5cdH0pO1xuXHRwdWJsaWMgZ2V0T2JqZWN0ID0gamVzdC5mbigoc1BhdGg6IHN0cmluZykgPT4ge1xuXHRcdHJldHVybiB0aGlzLm9NZXRhQ29udGV4dC5nZXRQcm9wZXJ0eShzUGF0aCk7XG5cdH0pO1xuXHRwdWJsaWMgcmVxdWVzdE9iamVjdCA9IGplc3QuZm4oKTtcblx0cHVibGljIGNyZWF0ZUJpbmRpbmdDb250ZXh0ID0gamVzdC5mbigoc1BhdGg6IHN0cmluZykgPT4ge1xuXHRcdHJldHVybiAobmV3IE1vY2tDb250ZXh0KHsgJHBhdGg6IHNQYXRoIH0pIGFzIGFueSkgYXMgQ29udGV4dDtcblx0fSk7XG5cdHB1YmxpYyBnZXRNZXRhUGF0aCA9IGplc3QuZm4oKTtcblx0cHVibGljIGdldENvbnRleHQgPSBqZXN0LmZuKCk7XG59XG5cbi8qKlxuICogTW9jayBjbGFzcyBmb3IgT0RhdGEgVjQgTW9kZWxcbiAqL1xuXG5leHBvcnQgY2xhc3MgTW9ja01vZGVsIGltcGxlbWVudHMgUGFydGlhbDxPRGF0YU1vZGVsPiB7XG5cdHByaXZhdGUgb01ldGFNb2RlbD86IE1vY2tNZXRhTW9kZWw7XG5cblx0cHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgbW9ja0xpc3RCaW5kaW5nPzogTW9ja0xpc3RCaW5kaW5nLCBwcml2YXRlIG1vY2tDb250ZXh0QmluZGluZz86IE1vY2tDb250ZXh0QmluZGluZykge1xuXHRcdGlmIChtb2NrTGlzdEJpbmRpbmcpIHtcblx0XHRcdG1vY2tMaXN0QmluZGluZy5zZXRNb2RlbCh0aGlzKTtcblx0XHR9XG5cdFx0aWYgKG1vY2tDb250ZXh0QmluZGluZykge1xuXHRcdFx0bW9ja0NvbnRleHRCaW5kaW5nLnNldE1vZGVsKHRoaXMpO1xuXHRcdH1cblx0fVxuXG5cdC8vIEZhY3Rvcmllc1xuXHRzdGF0aWMgbW9kZWxGcm9tTGlzdEJpbmRpbmcobW9ja0xpc3RCaW5kaW5nOiBNb2NrTGlzdEJpbmRpbmcpOiBNb2NrTW9kZWwge1xuXHRcdHJldHVybiBuZXcgTW9ja01vZGVsKG1vY2tMaXN0QmluZGluZyk7XG5cdH1cblx0c3RhdGljIG1vZGVsRnJvbUNvbnRleHRCaW5kaW5nKG1vY2tDb250ZXh0QmluZGluZzogTW9ja0NvbnRleHRCaW5kaW5nKTogTW9ja01vZGVsIHtcblx0XHRyZXR1cm4gbmV3IE1vY2tNb2RlbCh1bmRlZmluZWQsIG1vY2tDb250ZXh0QmluZGluZyk7XG5cdH1cblxuXHRwdWJsaWMgc2V0TWV0YU1vZGVsKG9NZXRhTW9kZWw6IE1vY2tNZXRhTW9kZWwpIHtcblx0XHR0aGlzLm9NZXRhTW9kZWwgPSBvTWV0YU1vZGVsO1xuXHR9XG5cblx0Ly8gTW9ja2VkIEFQSVxuXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG5cdHB1YmxpYyBiaW5kTGlzdCA9IGplc3QuZm4oKC4uLmFyZ3MpID0+IHtcblx0XHRyZXR1cm4gKHRoaXMubW9ja0xpc3RCaW5kaW5nIGFzIGFueSkgYXMgT0RhdGFMaXN0QmluZGluZztcblx0fSk7XG5cdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcblx0cHVibGljIGJpbmRDb250ZXh0ID0gamVzdC5mbigoLi4uYXJncykgPT4ge1xuXHRcdHJldHVybiAodGhpcy5tb2NrQ29udGV4dEJpbmRpbmcgYXMgYW55KSBhcyBPRGF0YUNvbnRleHRCaW5kaW5nO1xuXHR9KTtcblx0cHVibGljIGdldE1ldGFNb2RlbCA9IGplc3QuZm4oKCkgPT4ge1xuXHRcdHJldHVybiAodGhpcy5vTWV0YU1vZGVsIGFzIGFueSkgYXMgT0RhdGFNZXRhTW9kZWw7XG5cdH0pO1xuXG5cdHB1YmxpYyBnZXRQcm9wZXJ0eSA9IGplc3QuZm4oKTtcblx0cHVibGljIHNldFByb3BlcnR5ID0gamVzdC5mbigpO1xufVxuXG5leHBvcnQgY2xhc3MgTW9ja1ZpZXcgaW1wbGVtZW50cyBQYXJ0aWFsPFZpZXc+IHtcblx0cHVibGljIGdldENvbnRyb2xsZXIgPSBqZXN0LmZuKCk7XG5cblx0cHVibGljIGdldE1vZGVsID0gamVzdC5mbigpO1xuXG5cdHB1YmxpYyBnZXRWaWV3RGF0YSA9IGplc3QuZm4oKTtcbn1cblxuZXhwb3J0IGNsYXNzIE1vY2tDb250cm9sbGVyIGltcGxlbWVudHMgUGFydGlhbDxDb250cm9sbGVyPiB7XG5cdHB1YmxpYyBnZXRWaWV3ID0gamVzdC5mbigpO1xuXG5cdHB1YmxpYyBfcm91dGluZyA9IHtcblx0XHRuYXZpZ2F0ZVRvVGFyZ2V0OiBqZXN0LmZuKClcblx0fTtcblxuXHRwdWJsaWMgX2VkaXRGbG93ID0ge1xuXHRcdHN5bmNUYXNrOiBqZXN0LmZuKClcblx0fTtcblxuXHRwdWJsaWMgX3NpZGVFZmZlY3RzID0ge1xuXHRcdGhhbmRsZUZpZWxkQ2hhbmdlOiBqZXN0LmZuKClcblx0fTtcblxuXHRpc0EgPSBqZXN0LmZuKCkubW9ja1JldHVyblZhbHVlKGZhbHNlKTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNVkNNb2NrIHtcblx0bW9kZWw6IE1vY2tNb2RlbDtcblx0dmlldzogTW9ja1ZpZXc7XG5cdGNvbnRyb2xsZXI6IE1vY2tDb250cm9sbGVyO1xufVxuXG4vKipcbiAqIEdlbmVyYXRlIG1vZGVsLCB2aWV3IGFuZCBjb250cm9sbGVyIG1vY2tzIHRoYXQgcmVmZXIgdG8gZWFjaCBvdGhlci5cbiAqXG4gKiBAcGFyYW0gZXhpc3RpbmcgT3B0aW9uYWwgZXhpc3RpbmcgbW9ja2VkIGluc3RhbmNlcyB0aGF0IHNob3VsZCBiZSB1c2VkXG4gKiBAcmV0dXJucyBNb2NrZWQgbW9kZWwsIHZpZXcgYW5kIGNvbnRyb2xsZXIgaW5zdGFuY2VzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtb2NrTVZDKGV4aXN0aW5nPzogUGFydGlhbDxNVkNNb2NrPik6IE1WQ01vY2sge1xuXHRjb25zdCBtb2RlbCA9IGV4aXN0aW5nPy5tb2RlbCB8fCBuZXcgTW9ja01vZGVsKCk7XG5cdGNvbnN0IHZpZXcgPSBleGlzdGluZz8udmlldyB8fCBuZXcgTW9ja1ZpZXcoKTtcblx0Y29uc3QgY29udHJvbGxlciA9IGV4aXN0aW5nPy5jb250cm9sbGVyIHx8IG5ldyBNb2NrQ29udHJvbGxlcigpO1xuXG5cdHZpZXcuZ2V0Q29udHJvbGxlci5tb2NrUmV0dXJuVmFsdWUoY29udHJvbGxlcik7XG5cdHZpZXcuZ2V0TW9kZWwubW9ja1JldHVyblZhbHVlKG1vZGVsKTtcblx0Y29udHJvbGxlci5nZXRWaWV3Lm1vY2tSZXR1cm5WYWx1ZSh2aWV3KTtcblxuXHRyZXR1cm4geyBtb2RlbCwgdmlldywgY29udHJvbGxlciB9O1xufVxuIl19
|
|
351
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlVJNU1vY2tIZWxwZXIudHMiXSwibmFtZXMiOlsiTW9ja0NvbnRleHQiLCJvVmFsdWVzIiwib0JpbmRpbmciLCJnZXRQcm9wZXJ0eSIsImplc3QiLCJmbiIsImtleSIsInJlcXVlc3RQcm9wZXJ0eSIsIlByb21pc2UiLCJyZXNvbHZlIiwic2V0UHJvcGVydHkiLCJ2YWx1ZSIsImdldE9iamVjdCIsInBhdGgiLCJ0aGF0IiwicmVzdWx0IiwiaW5kZXhPZiIsInBhcnRzIiwic3BsaXQiLCJyZWR1Y2UiLCJzdW0iLCJwYXJ0IiwiZ2V0UGF0aCIsImdldEJpbmRpbmciLCJnZXRNb2RlbCIsImlzVHJhbnNpZW50IiwiaXNBIiwic0NsYXNzTmFtZSIsIk1vY2tVSTVFbGVtZW50IiwiYmluZGluZ0NvbnRleHQiLCJnZXRCaW5kaW5nQ29udGV4dCIsIm1vY2tSZXR1cm5WYWx1ZSIsImdldEJpbmRpbmdJbmZvIiwiZGF0YSIsImdldFBhcmVudCIsIk1vY2tDb250cm9sIiwiTW9ja0V2ZW50IiwicGFyYW1zIiwic291cmNlIiwiZ2V0UGFyYW1ldGVyIiwibmFtZSIsImdldFNvdXJjZSIsIk1vY2tMaXN0QmluZGluZyIsImFDb250ZXh0cyIsIm1vY2tNb2RlbCIsInNldEFnZ3JlZ2F0aW9uIiwiZmlsdGVyIiwic29ydCIsInJlcXVlc3RDb250ZXh0cyIsImFNb2NrQ29udGV4dHMiLCJnZXRDdXJyZW50Q29udGV4dHMiLCJtYXAiLCJjb250ZXh0Iiwic2V0TW9kZWwiLCJvTW9kZWwiLCJNb2NrQ29udGV4dEJpbmRpbmciLCJvQ29udGV4dCIsImdldEJvdW5kQ29udGV4dCIsIm9Nb2NrQ29udGV4dCIsImF0dGFjaEV2ZW50T25jZSIsImdldEludGVybmFsTW9ja0NvbnRleHQiLCJNb2NrTWV0YU1vZGVsIiwib01ldGFEYXRhIiwiZ2V0TWV0YUNvbnRleHQiLCJzUGF0aCIsIiRwYXRoIiwib01ldGFDb250ZXh0IiwicmVxdWVzdE9iamVjdCIsImNyZWF0ZUJpbmRpbmdDb250ZXh0IiwiZ2V0TWV0YVBhdGgiLCJnZXRDb250ZXh0IiwiTW9ja01vZGVsIiwibW9ja0xpc3RCaW5kaW5nIiwibW9ja0NvbnRleHRCaW5kaW5nIiwiYmluZExpc3QiLCJiaW5kQ29udGV4dCIsImdldE1ldGFNb2RlbCIsIm9NZXRhTW9kZWwiLCJtb2RlbEZyb21MaXN0QmluZGluZyIsIm1vZGVsRnJvbUNvbnRleHRCaW5kaW5nIiwidW5kZWZpbmVkIiwic2V0TWV0YU1vZGVsIiwiTW9ja1ZpZXciLCJnZXRDb250cm9sbGVyIiwiZ2V0Vmlld0RhdGEiLCJnZXRJZCIsIk1vY2tDb250cm9sbGVyIiwiZ2V0VmlldyIsIl9yb3V0aW5nIiwibmF2aWdhdGVUb1RhcmdldCIsIl9lZGl0RmxvdyIsInN5bmNUYXNrIiwiX3NpZGVFZmZlY3RzIiwiaGFuZGxlRmllbGRDaGFuZ2UiLCJtb2NrTVZDIiwiZXhpc3RpbmciLCJtb2RlbCIsInZpZXciLCJjb250cm9sbGVyIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBOzs7Ozs7Ozs7O0FBRkE7QUFDQTtBQUNBO01BWWFBLFc7QUFDWix5QkFBMkJDLE9BQTNCLEVBQWtEQyxRQUFsRCxFQUFrRTtBQUFBOztBQUFBLFdBTTNEQyxXQU4yRCxHQU03Q0MsSUFBSSxDQUFDQyxFQUFMLENBQVEsVUFBQ0MsR0FBRCxFQUFpQjtBQUM3QyxlQUFPLEtBQUksQ0FBQ0wsT0FBTCxDQUFhSyxHQUFiLENBQVA7QUFDQSxPQUZvQixDQU42QztBQUFBLFdBUzNEQyxlQVQyRCxHQVN6Q0gsSUFBSSxDQUFDQyxFQUFMLENBQVEsVUFBQ0MsR0FBRCxFQUFpQjtBQUNqRCxlQUFPRSxPQUFPLENBQUNDLE9BQVIsQ0FBZ0IsS0FBSSxDQUFDUixPQUFMLENBQWFLLEdBQWIsQ0FBaEIsQ0FBUDtBQUNBLE9BRndCLENBVHlDO0FBQUEsV0FZM0RJLFdBWjJELEdBWTdDTixJQUFJLENBQUNDLEVBQUwsQ0FBUSxVQUFDQyxHQUFELEVBQWNLLEtBQWQsRUFBNkI7QUFDekQsUUFBQSxLQUFJLENBQUNW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O0FBQ0FELElBQUFBLElBQUksQ0FBQ3pFLFFBQUwsQ0FBY08sZUFBZCxDQUE4QmlFLEtBQTlCO0FBQ0FFLElBQUFBLFVBQVUsQ0FBQ1gsT0FBWCxDQUFtQnhELGVBQW5CLENBQW1Da0UsSUFBbkM7QUFFQSxXQUFPO0FBQUVELE1BQUFBLEtBQUssRUFBTEEsS0FBRjtBQUFTQyxNQUFBQSxJQUFJLEVBQUpBLElBQVQ7QUFBZUMsTUFBQUEsVUFBVSxFQUFWQTtBQUFmLEtBQVA7QUFDQSIsInNvdXJjZVJvb3QiOiIuIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBNb2NrIGNsYXNzIGZvciBhIFY0IENvbnRleHRcbiAqL1xuaW1wb3J0IEV2ZW50IGZyb20gXCJzYXAvdWkvYmFzZS9FdmVudFwiO1xuaW1wb3J0IENvbnRyb2wgZnJvbSBcInNhcC91aS9jb3JlL0NvbnRyb2xcIjtcbmltcG9ydCBVSTVFbGVtZW50IGZyb20gXCJzYXAvdWkvY29yZS9FbGVtZW50XCI7XG5pbXBvcnQgQ29udHJvbGxlciBmcm9tIFwic2FwL3VpL2NvcmUvbXZjL0NvbnRyb2xsZXJcIjtcbmltcG9ydCBWaWV3IGZyb20gXCJzYXAvdWkvY29yZS9tdmMvVmlld1wiO1xuaW1wb3J0IENvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9Db250ZXh0XCI7XG5pbXBvcnQgT0RhdGFMaXN0QmluZGluZyBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L09EYXRhTGlzdEJpbmRpbmdcIjtcbmltcG9ydCBPRGF0YUNvbnRleHRCaW5kaW5nIGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvT0RhdGFDb250ZXh0QmluZGluZ1wiO1xuaW1wb3J0IE9EYXRhTWV0YU1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvT0RhdGFNZXRhTW9kZWxcIjtcbmltcG9ydCBPRGF0YU1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvT0RhdGFNb2RlbFwiO1xuXG5leHBvcnQgY2xhc3MgTW9ja0NvbnRleHQgaW1wbGVtZW50cyBQYXJ0aWFsPENvbnRleHQ+IHtcblx0cHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgb1ZhbHVlcz86IGFueSwgcHJpdmF0ZSBvQmluZGluZz86IGFueSkge31cblxuXHRwdWJsaWMgaXNBKHNDbGFzc05hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBzQ2xhc3NOYW1lID09PSBcInNhcC51aS5tb2RlbC5vZGF0YS52NC5Db250ZXh0XCI7XG5cdH1cblxuXHRwdWJsaWMgZ2V0UHJvcGVydHkgPSBqZXN0LmZuKChrZXk6IHN0cmluZykgPT4ge1xuXHRcdHJldHVybiB0aGlzLm9WYWx1ZXNba2V5XTtcblx0fSk7XG5cdHB1YmxpYyByZXF1ZXN0UHJvcGVydHkgPSBqZXN0LmZuKChrZXk6IHN0cmluZykgPT4ge1xuXHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5vVmFsdWVzW2tleV0pO1xuXHR9KTtcblx0cHVibGljIHNldFByb3BlcnR5ID0gamVzdC5mbigoa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnkpID0+IHtcblx0XHR0aGlzLm9WYWx1ZXNba2V5XSA9IHZhbHVlO1xuXHRcdHJldHVybiB0aGlzLm9WYWx1ZXNba2V5XTtcblx0fSk7XG5cblx0cHVibGljIGdldE9iamVjdCA9IGplc3QuZm4oKHBhdGg6IHN0cmluZykgPT4ge1xuXHRcdGNvbnN0IHRoYXQgPSB0aGlzIGFzIGFueTtcblx0XHRsZXQgcmVzdWx0ID0gcGF0aCA/IHRoYXQub1ZhbHVlc1twYXRoXSA6IHRoYXQub1ZhbHVlcztcblxuXHRcdGlmICghcmVzdWx0ICYmIHBhdGggJiYgcGF0aC5pbmRleE9mKFwiL1wiKSA+IC0xKSB7XG5cdFx0XHRjb25zdCBwYXJ0cyA9IHBhdGguc3BsaXQoXCIvXCIpO1xuXHRcdFx0cmVzdWx0ID0gcGFydHMucmVkdWNlKChzdW0sIHBhcnQ6IGFueSkgPT4ge1xuXHRcdFx0XHRzdW0gPSBwYXJ0ID8gc3VtW3BhcnRdIDogc3VtO1xuXHRcdFx0XHRyZXR1cm4gc3VtO1xuXHRcdFx0fSwgdGhhdC5vVmFsdWVzKTtcblx0XHR9XG5cblx0XHRyZXR1cm4gcmVzdWx0O1xuXHR9KTtcblx0cHVibGljIGdldFBhdGggPSBqZXN0LmZuKCgpID0+IHtcblx0XHRyZXR1cm4gdGhpcy5vVmFsdWVzW1wiJHBhdGhcIl07XG5cdH0pO1xuXG5cdHB1YmxpYyBnZXRCaW5kaW5nID0gamVzdC5mbigoKSA9PiB7XG5cdFx0cmV0dXJuIHRoaXMub0JpbmRpbmc7XG5cdH0pO1xuXHRwdWJsaWMgZ2V0TW9kZWwgPSBqZXN0LmZuKCgpID0+IHtcblx0XHRyZXR1cm4gKHRoaXMub0JpbmRpbmc/LmdldE1vZGVsKCkgYXMgYW55KSBhcyBPRGF0YU1vZGVsO1xuXHR9KTtcblx0cHVibGljIGlzVHJhbnNpZW50ID0gamVzdC5mbigpO1xufVxuXG5leHBvcnQgY2xhc3MgTW9ja1VJNUVsZW1lbnQgaW1wbGVtZW50cyBQYXJ0aWFsPFVJNUVsZW1lbnQ+IHtcblx0W2tleTogc3RyaW5nXTogYW55O1xuXHRwdWJsaWMgYmluZGluZ0NvbnRleHQgPSBuZXcgTW9ja0NvbnRleHQoe30pO1xuXHRwdWJsaWMgZ2V0QmluZGluZyA9IGplc3QuZm4oKTtcblx0cHVibGljIGdldEJpbmRpbmdDb250ZXh0ID0gamVzdC5mbigpLm1vY2tSZXR1cm5WYWx1ZSh0aGlzLmJpbmRpbmdDb250ZXh0KTtcblx0cHVibGljIGdldEJpbmRpbmdJbmZvID0gamVzdC5mbigpO1xuXHRwdWJsaWMgZGF0YSA9IGplc3QuZm4oKTtcblx0cHVibGljIGdldE1vZGVsID0gamVzdC5mbigpO1xuXHRwdWJsaWMgZ2V0UGFyZW50ID0gamVzdC5mbigpO1xufVxuXG5leHBvcnQgY2xhc3MgTW9ja0NvbnRyb2wgZXh0ZW5kcyBNb2NrVUk1RWxlbWVudCBpbXBsZW1lbnRzIFBhcnRpYWw8Q29udHJvbD4ge1xuXHRwdWJsaWMgZ2V0QmluZGluZ0NvbnRleHQ6IGplc3QuTW9jazxhbnksIGFueT4gPSBqZXN0LmZuKCk7XG59XG5cbmV4cG9ydCBjbGFzcyBNb2NrRXZlbnQgaW1wbGVtZW50cyBQYXJ0aWFsPEV2ZW50PiB7XG5cdHB1YmxpYyBjb25zdHJ1Y3RvcihwdWJsaWMgcGFyYW1zOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge30sIHB1YmxpYyBzb3VyY2U6IE1vY2tVSTVFbGVtZW50ID0gbmV3IE1vY2tVSTVFbGVtZW50KCkpIHt9XG5cblx0cHVibGljIGdldFBhcmFtZXRlciA9IGplc3QuZm4obmFtZSA9PiB0aGlzLnBhcmFtc1tuYW1lXSk7XG5cblx0cHVibGljIGdldFNvdXJjZSA9IGplc3QuZm4oKCkgPT4gdGhpcy5zb3VyY2UgYXMgYW55KTtcbn1cblxuLyoqXG4gKiBNb2NrIGNsYXNzIGZvciBPRGF0YSBWNCBMaXN0QmluZGluZ1xuICovXG5leHBvcnQgY2xhc3MgTW9ja0xpc3RCaW5kaW5nIGltcGxlbWVudHMgUGFydGlhbDxPRGF0YUxpc3RCaW5kaW5nPiB7XG5cdHByaXZhdGUgYU1vY2tDb250ZXh0czogTW9ja0NvbnRleHRbXTtcblxuXHRwdWJsaWMgY29uc3RydWN0b3IoYUNvbnRleHRzPzogYW55W10sIHByaXZhdGUgbW9ja01vZGVsPzogTW9ja01vZGVsKSB7XG5cdFx0YUNvbnRleHRzID0gYUNvbnRleHRzIHx8IFtdO1xuXG5cdFx0dGhpcy5hTW9ja0NvbnRleHRzID0gYUNvbnRleHRzLm1hcChjb250ZXh0ID0+IHtcblx0XHRcdHJldHVybiBuZXcgTW9ja0NvbnRleHQoY29udGV4dCwgdGhpcyk7XG5cdFx0fSk7XG5cdH1cblxuXHRwdWJsaWMgaXNBKHNDbGFzc05hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBzQ2xhc3NOYW1lID09PSBcInNhcC51aS5tb2RlbC5vZGF0YS52NC5PRGF0YUxpc3RCaW5kaW5nXCI7XG5cdH1cblxuXHRwdWJsaWMgc2V0TW9kZWwob01vZGVsOiBNb2NrTW9kZWwpIHtcblx0XHR0aGlzLm1vY2tNb2RlbCA9IG9Nb2RlbDtcblx0fVxuXG5cdC8vIE1vY2tlZCBBUElcblx0cHVibGljIHNldEFnZ3JlZ2F0aW9uID0gamVzdC5mbigpO1xuXHRwdWJsaWMgZmlsdGVyID0gamVzdC5mbigpO1xuXHRwdWJsaWMgc29ydCA9IGplc3QuZm4oKTtcblxuXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG5cdHB1YmxpYyByZXF1ZXN0Q29udGV4dHMgPSBqZXN0LmZuKCguLi5hcmdzKSA9PiB7XG5cdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZSgodGhpcy5hTW9ja0NvbnRleHRzIGFzIGFueSkgYXMgQ29udGV4dFtdKTtcblx0fSk7XG5cdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcblx0cHVibGljIGdldEN1cnJlbnRDb250ZXh0cyA9IGplc3QuZm4oKC4uLmFyZ3MpID0+IHtcblx0XHRyZXR1cm4gKHRoaXMuYU1vY2tDb250ZXh0cyBhcyBhbnkpIGFzIENvbnRleHRbXTtcblx0fSk7XG5cdHB1YmxpYyBnZXRNb2RlbCA9IGplc3QuZm4oKCkgPT4ge1xuXHRcdHJldHVybiAodGhpcy5tb2NrTW9kZWwgYXMgYW55KSBhcyBPRGF0YU1vZGVsO1xuXHR9KTtcbn1cblxuZXhwb3J0IGNsYXNzIE1vY2tDb250ZXh0QmluZGluZyBpbXBsZW1lbnRzIFBhcnRpYWw8T0RhdGFDb250ZXh0QmluZGluZz4ge1xuXHRwcml2YXRlIG9Nb2NrQ29udGV4dDogTW9ja0NvbnRleHQ7XG5cblx0cHVibGljIGNvbnN0cnVjdG9yKG9Db250ZXh0PzogYW55LCBwcml2YXRlIG1vY2tNb2RlbD86IE1vY2tNb2RlbCkge1xuXHRcdHRoaXMub01vY2tDb250ZXh0ID0gbmV3IE1vY2tDb250ZXh0KG9Db250ZXh0IHx8IHt9LCB0aGlzKTtcblx0fVxuXG5cdHB1YmxpYyBpc0Eoc0NsYXNzTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIHNDbGFzc05hbWUgPT09IFwic2FwLnVpLm1vZGVsLm9kYXRhLnY0Lk9EYXRhQ29udGV4dEJpbmRpbmdcIjtcblx0fVxuXHRwdWJsaWMgZ2V0SW50ZXJuYWxNb2NrQ29udGV4dCgpOiBNb2NrQ29udGV4dCB7XG5cdFx0cmV0dXJuIHRoaXMub01vY2tDb250ZXh0O1xuXHR9XG5cdHB1YmxpYyBzZXRNb2RlbChvTW9kZWw6IE1vY2tNb2RlbCkge1xuXHRcdHRoaXMubW9ja01vZGVsID0gb01vZGVsO1xuXHR9XG5cblx0Ly8gTW9ja2VkIEFQSVxuXHRwdWJsaWMgZ2V0Qm91bmRDb250ZXh0ID0gamVzdC5mbigoKSA9PiB7XG5cdFx0cmV0dXJuICh0aGlzLm9Nb2NrQ29udGV4dCBhcyBhbnkpIGFzIENvbnRleHQ7XG5cdH0pO1xuXHRwdWJsaWMgYXR0YWNoRXZlbnRPbmNlID0gamVzdC5mbigpO1xuXHRwdWJsaWMgZ2V0TW9kZWwgPSBqZXN0LmZuKCgpID0+IHtcblx0XHRyZXR1cm4gKHRoaXMubW9ja01vZGVsIGFzIGFueSkgYXMgT0RhdGFNb2RlbDtcblx0fSk7XG59XG5cbi8qKlxuICogTW9jayBjbGFzcyBmb3IgT0RhdGEgVjQgTWV0YU1vZGVsXG4gKi9cbmV4cG9ydCBjbGFzcyBNb2NrTWV0YU1vZGVsIGltcGxlbWVudHMgUGFydGlhbDxPRGF0YU1ldGFNb2RlbD4ge1xuXHRwcml2YXRlIG9NZXRhQ29udGV4dDogTW9ja0NvbnRleHQ7XG5cdHJlcXVlc3RWYWx1ZUxpc3RJbmZvITogamVzdC5Nb2NrPGFueSwgYW55PjtcblxuXHRwdWJsaWMgY29uc3RydWN0b3Iob01ldGFEYXRhPzogYW55KSB7XG5cdFx0dGhpcy5vTWV0YUNvbnRleHQgPSBuZXcgTW9ja0NvbnRleHQob01ldGFEYXRhIHx8IHt9KTtcblx0fVxuXG5cdC8vIE1vY2tlZCBBUElcblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuXHRwdWJsaWMgZ2V0TWV0YUNvbnRleHQgPSBqZXN0LmZuKChzUGF0aDogc3RyaW5nKSA9PiB7XG5cdFx0cmV0dXJuIChuZXcgTW9ja0NvbnRleHQoeyAkcGF0aDogc1BhdGggfSkgYXMgYW55KSBhcyBDb250ZXh0O1xuXHR9KTtcblx0cHVibGljIGdldE9iamVjdCA9IGplc3QuZm4oKHNQYXRoOiBzdHJpbmcpID0+IHtcblx0XHRyZXR1cm4gdGhpcy5vTWV0YUNvbnRleHQuZ2V0UHJvcGVydHkoc1BhdGgpO1xuXHR9KTtcblx0cHVibGljIHJlcXVlc3RPYmplY3QgPSBqZXN0LmZuKCk7XG5cdHB1YmxpYyBjcmVhdGVCaW5kaW5nQ29udGV4dCA9IGplc3QuZm4oKHNQYXRoOiBzdHJpbmcpID0+IHtcblx0XHRyZXR1cm4gKG5ldyBNb2NrQ29udGV4dCh7ICRwYXRoOiBzUGF0aCB9KSBhcyBhbnkpIGFzIENvbnRleHQ7XG5cdH0pO1xuXHRwdWJsaWMgZ2V0TWV0YVBhdGggPSBqZXN0LmZuKChzUGF0aDogc3RyaW5nKSA9PiB7XG5cdFx0cmV0dXJuIHNQYXRoO1xuXHR9KTtcblx0cHVibGljIGdldENvbnRleHQgPSBqZXN0LmZuKCk7XG59XG5cbi8qKlxuICogTW9jayBjbGFzcyBmb3IgT0RhdGEgVjQgTW9kZWxcbiAqL1xuXG5leHBvcnQgY2xhc3MgTW9ja01vZGVsIGltcGxlbWVudHMgUGFydGlhbDxPRGF0YU1vZGVsPiB7XG5cdHByaXZhdGUgb01ldGFNb2RlbD86IE1vY2tNZXRhTW9kZWw7XG5cblx0cHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgbW9ja0xpc3RCaW5kaW5nPzogTW9ja0xpc3RCaW5kaW5nLCBwcml2YXRlIG1vY2tDb250ZXh0QmluZGluZz86IE1vY2tDb250ZXh0QmluZGluZykge1xuXHRcdGlmIChtb2NrTGlzdEJpbmRpbmcpIHtcblx0XHRcdG1vY2tMaXN0QmluZGluZy5zZXRNb2RlbCh0aGlzKTtcblx0XHR9XG5cdFx0aWYgKG1vY2tDb250ZXh0QmluZGluZykge1xuXHRcdFx0bW9ja0NvbnRleHRCaW5kaW5nLnNldE1vZGVsKHRoaXMpO1xuXHRcdH1cblx0fVxuXG5cdC8vIEZhY3Rvcmllc1xuXHRzdGF0aWMgbW9kZWxGcm9tTGlzdEJpbmRpbmcobW9ja0xpc3RCaW5kaW5nOiBNb2NrTGlzdEJpbmRpbmcpOiBNb2NrTW9kZWwge1xuXHRcdHJldHVybiBuZXcgTW9ja01vZGVsKG1vY2tMaXN0QmluZGluZyk7XG5cdH1cblx0c3RhdGljIG1vZGVsRnJvbUNvbnRleHRCaW5kaW5nKG1vY2tDb250ZXh0QmluZGluZzogTW9ja0NvbnRleHRCaW5kaW5nKTogTW9ja01vZGVsIHtcblx0XHRyZXR1cm4gbmV3IE1vY2tNb2RlbCh1bmRlZmluZWQsIG1vY2tDb250ZXh0QmluZGluZyk7XG5cdH1cblxuXHRwdWJsaWMgc2V0TWV0YU1vZGVsKG9NZXRhTW9kZWw6IE1vY2tNZXRhTW9kZWwpIHtcblx0XHR0aGlzLm9NZXRhTW9kZWwgPSBvTWV0YU1vZGVsO1xuXHR9XG5cblx0Ly8gTW9ja2VkIEFQSVxuXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG5cdHB1YmxpYyBiaW5kTGlzdCA9IGplc3QuZm4oKC4uLmFyZ3MpID0+IHtcblx0XHRyZXR1cm4gKHRoaXMubW9ja0xpc3RCaW5kaW5nIGFzIGFueSkgYXMgT0RhdGFMaXN0QmluZGluZztcblx0fSk7XG5cdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcblx0cHVibGljIGJpbmRDb250ZXh0ID0gamVzdC5mbigoLi4uYXJncykgPT4ge1xuXHRcdHJldHVybiAodGhpcy5tb2NrQ29udGV4dEJpbmRpbmcgYXMgYW55KSBhcyBPRGF0YUNvbnRleHRCaW5kaW5nO1xuXHR9KTtcblx0cHVibGljIGdldE1ldGFNb2RlbCA9IGplc3QuZm4oKCkgPT4ge1xuXHRcdHJldHVybiAodGhpcy5vTWV0YU1vZGVsIGFzIGFueSkgYXMgT0RhdGFNZXRhTW9kZWw7XG5cdH0pO1xuXG5cdHB1YmxpYyBnZXRQcm9wZXJ0eSA9IGplc3QuZm4oKTtcblx0cHVibGljIHNldFByb3BlcnR5ID0gamVzdC5mbigpO1xuXHRwdWJsaWMgcmVxdWVzdE9iamVjdCA9IGplc3QuZm4oKTtcbn1cblxuZXhwb3J0IGNsYXNzIE1vY2tWaWV3IGltcGxlbWVudHMgUGFydGlhbDxWaWV3PiB7XG5cdHB1YmxpYyBnZXRDb250cm9sbGVyID0gamVzdC5mbigpO1xuXG5cdHB1YmxpYyBnZXRCaW5kaW5nQ29udGV4dCA9IGplc3QuZm4oKTtcblxuXHRwdWJsaWMgZ2V0TW9kZWwgPSBqZXN0LmZuKCk7XG5cblx0cHVibGljIGdldFZpZXdEYXRhID0gamVzdC5mbigpO1xuXG5cdHB1YmxpYyBpc0Eoc0NsYXNzTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIHNDbGFzc05hbWUgPT09IFwic2FwLnVpLmNvcmUubXZjLlZpZXdcIjtcblx0fVxuXG5cdHB1YmxpYyBnZXRJZCA9IGplc3QuZm4oKTtcbn1cblxuZXhwb3J0IGNsYXNzIE1vY2tDb250cm9sbGVyIGltcGxlbWVudHMgUGFydGlhbDxDb250cm9sbGVyPiB7XG5cdHB1YmxpYyBnZXRWaWV3ID0gamVzdC5mbigpLm1vY2tSZXR1cm5WYWx1ZShuZXcgTW9ja1ZpZXcoKSk7XG5cblx0cHVibGljIF9yb3V0aW5nID0ge1xuXHRcdG5hdmlnYXRlVG9UYXJnZXQ6IGplc3QuZm4oKVxuXHR9O1xuXG5cdHB1YmxpYyBfZWRpdEZsb3cgPSB7XG5cdFx0c3luY1Rhc2s6IGplc3QuZm4oKVxuXHR9O1xuXG5cdHB1YmxpYyBfc2lkZUVmZmVjdHMgPSB7XG5cdFx0aGFuZGxlRmllbGRDaGFuZ2U6IGplc3QuZm4oKVxuXHR9O1xuXG5cdGlzQSA9IGplc3QuZm4oKS5tb2NrUmV0dXJuVmFsdWUoZmFsc2UpO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1WQ01vY2sge1xuXHRtb2RlbDogTW9ja01vZGVsO1xuXHR2aWV3OiBNb2NrVmlldztcblx0Y29udHJvbGxlcjogTW9ja0NvbnRyb2xsZXI7XG59XG5cbi8qKlxuICogR2VuZXJhdGUgbW9kZWwsIHZpZXcgYW5kIGNvbnRyb2xsZXIgbW9ja3MgdGhhdCByZWZlciB0byBlYWNoIG90aGVyLlxuICpcbiAqIEBwYXJhbSBleGlzdGluZyBPcHRpb25hbCBleGlzdGluZyBtb2NrZWQgaW5zdGFuY2VzIHRoYXQgc2hvdWxkIGJlIHVzZWRcbiAqIEByZXR1cm5zIE1vY2tlZCBtb2RlbCwgdmlldyBhbmQgY29udHJvbGxlciBpbnN0YW5jZXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1vY2tNVkMoZXhpc3Rpbmc/OiBQYXJ0aWFsPE1WQ01vY2s+KTogTVZDTW9jayB7XG5cdGNvbnN0IG1vZGVsID0gZXhpc3Rpbmc/Lm1vZGVsIHx8IG5ldyBNb2NrTW9kZWwoKTtcblx0Y29uc3QgdmlldyA9IGV4aXN0aW5nPy52aWV3IHx8IG5ldyBNb2NrVmlldygpO1xuXHRjb25zdCBjb250cm9sbGVyID0gZXhpc3Rpbmc/LmNvbnRyb2xsZXIgfHwgbmV3IE1vY2tDb250cm9sbGVyKCk7XG5cblx0dmlldy5nZXRDb250cm9sbGVyLm1vY2tSZXR1cm5WYWx1ZShjb250cm9sbGVyKTtcblx0dmlldy5nZXRNb2RlbC5tb2NrUmV0dXJuVmFsdWUobW9kZWwpO1xuXHRjb250cm9sbGVyLmdldFZpZXcubW9ja1JldHVyblZhbHVlKHZpZXcpO1xuXG5cdHJldHVybiB7IG1vZGVsLCB2aWV3LCBjb250cm9sbGVyIH07XG59XG4iXX0=
|
|
@@ -22,6 +22,9 @@ export class MockContext implements Partial<Context> {
|
|
|
22
22
|
public getProperty = jest.fn((key: string) => {
|
|
23
23
|
return this.oValues[key];
|
|
24
24
|
});
|
|
25
|
+
public requestProperty = jest.fn((key: string) => {
|
|
26
|
+
return Promise.resolve(this.oValues[key]);
|
|
27
|
+
});
|
|
25
28
|
public setProperty = jest.fn((key: string, value: any) => {
|
|
26
29
|
this.oValues[key] = value;
|
|
27
30
|
return this.oValues[key];
|
|
@@ -149,6 +152,7 @@ export class MockContextBinding implements Partial<ODataContextBinding> {
|
|
|
149
152
|
*/
|
|
150
153
|
export class MockMetaModel implements Partial<ODataMetaModel> {
|
|
151
154
|
private oMetaContext: MockContext;
|
|
155
|
+
requestValueListInfo!: jest.Mock<any, any>;
|
|
152
156
|
|
|
153
157
|
public constructor(oMetaData?: any) {
|
|
154
158
|
this.oMetaContext = new MockContext(oMetaData || {});
|
|
@@ -166,7 +170,9 @@ export class MockMetaModel implements Partial<ODataMetaModel> {
|
|
|
166
170
|
public createBindingContext = jest.fn((sPath: string) => {
|
|
167
171
|
return (new MockContext({ $path: sPath }) as any) as Context;
|
|
168
172
|
});
|
|
169
|
-
public getMetaPath = jest.fn()
|
|
173
|
+
public getMetaPath = jest.fn((sPath: string) => {
|
|
174
|
+
return sPath;
|
|
175
|
+
});
|
|
170
176
|
public getContext = jest.fn();
|
|
171
177
|
}
|
|
172
178
|
|
|
@@ -213,18 +219,27 @@ export class MockModel implements Partial<ODataModel> {
|
|
|
213
219
|
|
|
214
220
|
public getProperty = jest.fn();
|
|
215
221
|
public setProperty = jest.fn();
|
|
222
|
+
public requestObject = jest.fn();
|
|
216
223
|
}
|
|
217
224
|
|
|
218
225
|
export class MockView implements Partial<View> {
|
|
219
226
|
public getController = jest.fn();
|
|
220
227
|
|
|
228
|
+
public getBindingContext = jest.fn();
|
|
229
|
+
|
|
221
230
|
public getModel = jest.fn();
|
|
222
231
|
|
|
223
232
|
public getViewData = jest.fn();
|
|
233
|
+
|
|
234
|
+
public isA(sClassName: string): boolean {
|
|
235
|
+
return sClassName === "sap.ui.core.mvc.View";
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
public getId = jest.fn();
|
|
224
239
|
}
|
|
225
240
|
|
|
226
241
|
export class MockController implements Partial<Controller> {
|
|
227
|
-
public getView = jest.fn();
|
|
242
|
+
public getView = jest.fn().mockReturnValue(new MockView());
|
|
228
243
|
|
|
229
244
|
public _routing = {
|
|
230
245
|
navigateToTarget: jest.fn()
|
|
@@ -151,7 +151,15 @@ sap.ui.define(
|
|
|
151
151
|
}
|
|
152
152
|
|
|
153
153
|
mState = aArguments[1];
|
|
154
|
-
|
|
154
|
+
if (mState.visible !== undefined) {
|
|
155
|
+
mState.exists = mState.visible;
|
|
156
|
+
delete mState.visible;
|
|
157
|
+
}
|
|
158
|
+
if (mState.selected !== undefined) {
|
|
159
|
+
mState.visible = mState.selected;
|
|
160
|
+
delete mState.selected;
|
|
161
|
+
}
|
|
162
|
+
var bCheckForNotVisible = mState && mState.exists === false;
|
|
155
163
|
if (!bCheckForNotVisible && !Utils.isOfType(mState, [null, undefined])) {
|
|
156
164
|
oAdaptColumnBuilder.has(OpaBuilder.Matchers.bindingProperties(BaseAPI.MDC_P13N_MODEL, mState));
|
|
157
165
|
}
|