@sapui5/sap.fe.test 1.101.0 → 1.103.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.
Files changed (66) hide show
  1. package/package.json +1 -1
  2. package/src/sap/fe/test/.library +1 -1
  3. package/src/sap/fe/test/BaseActions.js +86 -97
  4. package/src/sap/fe/test/BaseArrangements.js +4 -15
  5. package/src/sap/fe/test/BaseAssertions.js +39 -46
  6. package/src/sap/fe/test/CollaborationClient.js +77 -0
  7. package/src/sap/fe/test/CollaborationClient.ts +105 -0
  8. package/src/sap/fe/test/FeMocks.js +1 -1
  9. package/src/sap/fe/test/FeMocks.ts +10 -5
  10. package/src/sap/fe/test/Flexibility.js +115 -162
  11. package/src/sap/fe/test/JestTemplatingHelper.js +54 -24
  12. package/src/sap/fe/test/JestTemplatingHelper.ts +59 -30
  13. package/src/sap/fe/test/JourneyRunner.js +31 -37
  14. package/src/sap/fe/test/ListReport.js +10 -22
  15. package/src/sap/fe/test/LocationUtil.js +12 -16
  16. package/src/sap/fe/test/ObjectPage.js +64 -38
  17. package/src/sap/fe/test/Shell.js +94 -40
  18. package/src/sap/fe/test/TemplatePage.js +14 -2
  19. package/src/sap/fe/test/TemplatingTestUtils.js +20 -20
  20. package/src/sap/fe/test/UI5MockHelper.js +101 -21
  21. package/src/sap/fe/test/UI5MockHelper.ts +92 -26
  22. package/src/sap/fe/test/Utils.js +19 -20
  23. package/src/sap/fe/test/api/BaseAPI.js +11 -26
  24. package/src/sap/fe/test/api/ChartActions.js +116 -119
  25. package/src/sap/fe/test/api/ChartAssertions.js +18 -22
  26. package/src/sap/fe/test/api/CollaborationAPI.js +215 -0
  27. package/src/sap/fe/test/api/CollaborationAPI.ts +238 -0
  28. package/src/sap/fe/test/api/DialogAPI.js +11 -13
  29. package/src/sap/fe/test/api/DialogActions.js +8 -8
  30. package/src/sap/fe/test/api/DialogAssertions.js +8 -9
  31. package/src/sap/fe/test/api/DialogHelper.js +63 -0
  32. package/src/sap/fe/test/api/DialogMassEditActions.js +115 -0
  33. package/src/sap/fe/test/api/DialogMassEditAssertions.js +174 -0
  34. package/src/sap/fe/test/api/DialogMessageActions.js +2 -1
  35. package/src/sap/fe/test/api/DialogType.js +11 -2
  36. package/src/sap/fe/test/api/DialogValueHelpActions.js +17 -39
  37. package/src/sap/fe/test/api/DialogValueHelpAssertions.js +11 -19
  38. package/src/sap/fe/test/api/FilterBarAPI.js +11 -12
  39. package/src/sap/fe/test/api/FilterBarActions.js +26 -40
  40. package/src/sap/fe/test/api/FilterBarAssertions.js +28 -47
  41. package/src/sap/fe/test/api/FooterActionsBase.js +3 -4
  42. package/src/sap/fe/test/api/FooterActionsOP.js +6 -10
  43. package/src/sap/fe/test/api/FooterAssertionsBase.js +5 -10
  44. package/src/sap/fe/test/api/FooterAssertionsOP.js +8 -13
  45. package/src/sap/fe/test/api/FormAPI.js +5 -6
  46. package/src/sap/fe/test/api/FormActions.js +11 -21
  47. package/src/sap/fe/test/api/FormAssertions.js +14 -20
  48. package/src/sap/fe/test/api/HeaderAPI.js +12 -27
  49. package/src/sap/fe/test/api/HeaderActions.js +10 -12
  50. package/src/sap/fe/test/api/HeaderActionsLR.js +76 -82
  51. package/src/sap/fe/test/api/HeaderAssertions.js +76 -59
  52. package/src/sap/fe/test/api/HeaderAssertionsLR.js +5 -8
  53. package/src/sap/fe/test/api/HeaderLR.js +7 -19
  54. package/src/sap/fe/test/api/KPICardAssertions.js +18 -37
  55. package/src/sap/fe/test/api/TableAPI.js +33 -47
  56. package/src/sap/fe/test/api/TableActions.js +3 -35
  57. package/src/sap/fe/test/api/TableAssertions.js +51 -69
  58. package/src/sap/fe/test/builder/FEBuilder.js +71 -75
  59. package/src/sap/fe/test/builder/MacroFieldBuilder.js +162 -156
  60. package/src/sap/fe/test/builder/MdcFieldBuilder.js +33 -29
  61. package/src/sap/fe/test/builder/MdcFilterFieldBuilder.js +9 -7
  62. package/src/sap/fe/test/builder/MdcTableBuilder.js +97 -16
  63. package/src/sap/fe/test/builder/VMBuilder.js +27 -43
  64. package/src/sap/fe/test/library.js +3 -2
  65. package/src/sap/fe/test/library.ts +1 -0
  66. package/src/sap/fe/test/massEdit.js +0 -62
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sapui5/sap.fe.test",
3
- "version": "1.101.0",
3
+ "version": "1.103.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)",
@@ -6,7 +6,7 @@
6
6
  <copyright>SAP UI development toolkit for HTML5 (SAPUI5)
7
7
  (c) Copyright 2009-2021 SAP SE. All rights reserved
8
8
  </copyright>
9
- <version>1.101.0</version>
9
+ <version>1.103.0</version>
10
10
 
11
11
  <documentation>UI5 library: sap.fe.test</documentation>
12
12
 
@@ -3,105 +3,94 @@
3
3
  (c) Copyright 2009-2021 SAP SE. All rights reserved
4
4
 
5
5
  */
6
- sap.ui.define(["sap/ui/test/Opa5", "sap/ui/test/OpaBuilder", "sap/fe/test/builder/FEBuilder", "sap/fe/test/Utils"], function(
7
- Opa5,
8
- OpaBuilder,
9
- FEBuilder,
10
- Utils
11
- ) {
12
- "use strict";
6
+ sap.ui.define(
7
+ ["sap/ui/test/Opa5", "sap/ui/test/OpaBuilder", "sap/fe/test/builder/FEBuilder", "sap/fe/test/Utils"],
8
+ function (Opa5, OpaBuilder, FEBuilder, Utils) {
9
+ "use strict";
13
10
 
14
- /**
15
- * Constructs a new {@link sap.fe.test.Opa5} instance.
16
- *
17
- * @class All common actions (<code>When</code>) for all Opa tests are defined here.
18
- *
19
- * @alias sap.fe.test.BaseActions
20
- * @public
21
- */
22
- var BaseActions = Opa5.extend("sap.fe.test.BaseActions", {
23
11
  /**
24
- * Closes the open popover via function.
12
+ * Constructs a new {@link sap.fe.test.Opa5} instance.
25
13
  *
26
- * NOTE: This function ensures that a certain UI state is maintained in some exceptional cases.
27
- * This function isn't usually called directly in a journey.
28
- *
29
- * @returns {object} The result of the {@link sap.ui.test.Opa5#waitFor} function, to be used for chained statements
30
- *
31
- * @function
32
- * @name sap.fe.test.BaseActions#iClosePopover
14
+ * @class All common actions (<code>When</code>) for all Opa tests are defined here.
15
+ * @alias sap.fe.test.BaseActions
33
16
  * @public
34
17
  */
35
- iClosePopover: function() {
36
- return FEBuilder.createClosePopoverBuilder(this)
37
- .description("Closing open popover")
38
- .execute();
39
- },
40
- /**
41
- * Simulates the pressing of the Esc key for the element in focus.
42
- *
43
- * @returns {object} The result of the {@link sap.ui.test.Opa5#waitFor} function, to be used for chained statements
44
- *
45
- * @function
46
- * @name sap.fe.test.BaseActions#iPressEscape
47
- * @public
48
- */
49
- iPressEscape: function() {
50
- return FEBuilder.create(this)
51
- .has(FEBuilder.Matchers.FOCUSED_ELEMENT)
52
- .do(FEBuilder.Actions.keyboardShortcut("Escape"))
53
- .description("Pressing escape button")
54
- .execute();
55
- },
56
- /**
57
- * Waits for the specified amount of milliseconds.
58
- *
59
- * NOTE: Use this function with care, as waiting for a specified timeframe only makes sense in exceptional cases.
60
- *
61
- * @param {number} iMilliseconds The amount of milliseconds to wait before proceeding
62
- * @returns {object} The result of the {@link sap.ui.test.Opa5#waitFor} function, to be used for chained statements
63
- *
64
- * @function
65
- * @name sap.fe.test.BaseActions#iWait
66
- * @private
67
- */
68
- iWait: function(iMilliseconds) {
69
- var bWaitingPeriodOver = false,
70
- bFirstTime = true;
71
- return FEBuilder.create(this)
72
- .check(function() {
73
- if (bFirstTime) {
74
- bFirstTime = false;
75
- setTimeout(function() {
76
- bWaitingPeriodOver = true;
77
- }, iMilliseconds);
78
- }
79
- return bWaitingPeriodOver;
80
- })
81
- .description(Utils.formatMessage("Waiting for '{0}' milliseconds ", iMilliseconds))
82
- .execute();
83
- },
84
- /**
85
- * Emulates a browser back navigation.
86
- *
87
- * NOTE: If the application is executed within the FLP, use {@link sap.fe.test.Shell#iNavigateBack} instead.
88
- *
89
- * @returns {object} The result of the {@link sap.ui.test.Opa5#waitFor} function, to be used for chained statements
90
- *
91
- * @function
92
- * @name sap.fe.test.BaseActions#iNavigateBack
93
- * @private
94
- */
95
- iNavigateBack: function() {
96
- return OpaBuilder.create(this)
97
- .viewId(null)
98
- .do(function() {
99
- Opa5.getWindow().history.back();
100
- })
101
- .description("Navigating back via browser back")
102
- .execute();
103
- }
104
- });
105
-
106
- return BaseActions;
107
- });
18
+ return Opa5.extend("sap.fe.test.BaseActions", {
19
+ /**
20
+ * Closes the open popover via function.
21
+ *
22
+ * NOTE: This function ensures that a certain UI state is maintained in some exceptional cases.
23
+ * This function isn't usually called directly in a journey.
24
+ *
25
+ * @returns {object} The result of the {@link sap.ui.test.Opa5#waitFor} function, to be used for chained statements
26
+ * @function
27
+ * @name sap.fe.test.BaseActions#iClosePopover
28
+ * @public
29
+ */
30
+ iClosePopover: function () {
31
+ return FEBuilder.createClosePopoverBuilder(this).description("Closing open popover").execute();
32
+ },
33
+ /**
34
+ * Simulates the pressing of the Esc key for the element in focus.
35
+ *
36
+ * @returns {object} The result of the {@link sap.ui.test.Opa5#waitFor} function, to be used for chained statements
37
+ * @function
38
+ * @name sap.fe.test.BaseActions#iPressEscape
39
+ * @public
40
+ */
41
+ iPressEscape: function () {
42
+ return FEBuilder.create(this)
43
+ .has(FEBuilder.Matchers.FOCUSED_ELEMENT)
44
+ .do(FEBuilder.Actions.keyboardShortcut("Escape"))
45
+ .description("Pressing escape button")
46
+ .execute();
47
+ },
48
+ /**
49
+ * Waits for the specified amount of milliseconds.
50
+ *
51
+ * NOTE: Use this function with care, as waiting for a specified timeframe only makes sense in exceptional cases.
52
+ *
53
+ * @param {number} iMilliseconds The amount of milliseconds to wait before proceeding
54
+ * @returns {object} The result of the {@link sap.ui.test.Opa5#waitFor} function, to be used for chained statements
55
+ * @function
56
+ * @name sap.fe.test.BaseActions#iWait
57
+ * @private
58
+ */
59
+ iWait: function (iMilliseconds) {
60
+ var bWaitingPeriodOver = false,
61
+ bFirstTime = true;
62
+ return FEBuilder.create(this)
63
+ .check(function () {
64
+ if (bFirstTime) {
65
+ bFirstTime = false;
66
+ setTimeout(function () {
67
+ bWaitingPeriodOver = true;
68
+ }, iMilliseconds);
69
+ }
70
+ return bWaitingPeriodOver;
71
+ })
72
+ .description(Utils.formatMessage("Waiting for '{0}' milliseconds ", iMilliseconds))
73
+ .execute();
74
+ },
75
+ /**
76
+ * Emulates a browser back navigation.
77
+ *
78
+ * NOTE: If the application is executed within the FLP, use {@link sap.fe.test.Shell#iNavigateBack} instead.
79
+ *
80
+ * @returns {object} The result of the {@link sap.ui.test.Opa5#waitFor} function, to be used for chained statements
81
+ * @function
82
+ * @name sap.fe.test.BaseActions#iNavigateBack
83
+ * @private
84
+ */
85
+ iNavigateBack: function () {
86
+ return OpaBuilder.create(this)
87
+ .viewId(null)
88
+ .do(function () {
89
+ Opa5.getWindow().history.back();
90
+ })
91
+ .description("Navigating back via browser back")
92
+ .execute();
93
+ }
94
+ });
95
+ }
96
+ );
@@ -14,14 +14,12 @@ sap.ui.define(
14
14
  * @param {object} mSettings The settings object required for launching the application
15
15
  * @param {string} mSettings.launchUrl The URL to the launching page (usually a FLP.html)
16
16
  * @param {object} mSettings.launchParameters The URL launch parameters
17
- *
18
17
  * @class All common arrangements (<code>Given</code>) for all Opa tests are defined here.
19
- *
20
18
  * @alias sap.fe.test.BaseArrangements
21
19
  * @extends sap.ui.test.Opa5
22
20
  * @public
23
21
  */
24
- var BaseArrangements = Opa5.extend("sap.fe.test.BaseArrangements", {
22
+ return Opa5.extend("sap.fe.test.BaseArrangements", {
25
23
  constructor: function (mSettings) {
26
24
  Opa5.apply(this);
27
25
  var oUriParams = new UriParameters(window.location.href),
@@ -44,16 +42,15 @@ sap.ui.define(
44
42
  * Starts the app in an IFrame, using the <code>launchUrl</code> and <code>launchParameters</code> provided via the settings object of the {@link sap.fe.test.BaseArrangements#constructor}.
45
43
  *
46
44
  * @param {string} [sAppHash] The app hash
47
- * @param {object} [mUrlParameters] A map with additional URL parameters
45
+ * @param {object} [mInUrlParameters] A map with additional URL parameters
48
46
  * @returns {object} The result of the {@link sap.ui.test.Opa5#waitFor} function, to be used for chained statements
49
- *
50
47
  * @function
51
48
  * @name sap.fe.test.BaseArrangements#iStartMyApp
52
49
  * @public
53
50
  */
54
- iStartMyApp: function (sAppHash, mUrlParameters) {
51
+ iStartMyApp: function (sAppHash, mInUrlParameters) {
55
52
  var sLaunchUrl = this._mSettings.launchUrl,
56
- mUrlParameters = Utils.mergeObjects(this._mSettings.launchParameters, mUrlParameters),
53
+ mUrlParameters = Utils.mergeObjects(this._mSettings.launchParameters, mInUrlParameters),
57
54
  sUrlParameters = Object.keys(mUrlParameters).reduce(function (sCurrent, sKey) {
58
55
  return sCurrent + "&" + sKey + "=" + mUrlParameters[sKey];
59
56
  }, ""),
@@ -82,7 +79,6 @@ sap.ui.define(
82
79
  * Instead, it can be overwritten to add custom clean-up functionality when calling {@link sap.fe.test.BaseArrangements#iResetTestData}.
83
80
  *
84
81
  * @returns {object} A <code>Promise</code> object
85
- *
86
82
  * @function
87
83
  * @name sap.fe.test.BaseArrangements#resetTestData
88
84
  * @protected
@@ -123,7 +119,6 @@ sap.ui.define(
123
119
  * Resets the test data.
124
120
  *
125
121
  * @returns {object} The result of the {@link sap.ui.test.Opa5#waitFor} function, to be used for chained statements
126
- *
127
122
  * @function
128
123
  * @name sap.fe.test.BaseArrangements#iResetTestData
129
124
  * @public
@@ -164,9 +159,7 @@ sap.ui.define(
164
159
  * }
165
160
  * </pre></code>
166
161
  * NOTE: When passing the AppId, the application needs to be running already. Calling the function before the application is started can be done by passing the ServiceUri.
167
- *
168
162
  * @returns {object} The result of the {@link sap.ui.test.Opa5#waitFor} function, to be used for chained statements
169
- *
170
163
  * @function
171
164
  * @name sap.fe.test.BaseArrangements#iResetMockData
172
165
  * @public
@@ -204,7 +197,6 @@ sap.ui.define(
204
197
  * Tears down the current application.
205
198
  *
206
199
  * @returns {object} The result of the {@link sap.ui.test.Opa5#waitFor} function, to be used for chained statements
207
- *
208
200
  * @function
209
201
  * @name sap.fe.test.BaseArrangements#iTearDownMyApp
210
202
  * @public
@@ -224,7 +216,6 @@ sap.ui.define(
224
216
  * Simulates a refresh of the page by tearing it down and then restarting it with the very same hash.
225
217
  *
226
218
  * @returns {object} The result of the {@link sap.ui.test.Opa5#waitFor} function, to be used for chained statements
227
- *
228
219
  * @function
229
220
  * @name sap.fe.test.BaseArrangements#iRestartMyApp
230
221
  * @public
@@ -240,7 +231,5 @@ sap.ui.define(
240
231
  .execute();
241
232
  }
242
233
  });
243
-
244
- return BaseArrangements;
245
234
  }
246
235
  );
@@ -3,54 +3,47 @@
3
3
  (c) Copyright 2009-2021 SAP SE. All rights reserved
4
4
 
5
5
  */
6
- sap.ui.define(["sap/ui/test/Opa5", "sap/ui/test/OpaBuilder", "sap/fe/test/builder/FEBuilder", "sap/fe/test/Utils"], function(
7
- Opa5,
8
- OpaBuilder,
9
- FEBuilder,
10
- Utils
11
- ) {
12
- "use strict";
6
+ sap.ui.define(
7
+ ["sap/ui/test/Opa5", "sap/ui/test/OpaBuilder", "sap/fe/test/builder/FEBuilder", "sap/fe/test/Utils"],
8
+ function (Opa5, OpaBuilder, FEBuilder, Utils) {
9
+ "use strict";
13
10
 
14
- /**
15
- * Constructs a new {@link sap.fe.test.Opa5} instance.
16
- *
17
- * @class All common assertions (<code>Then</code>) for all Opa tests are defined here.
18
- *
19
- * @alias sap.fe.test.BaseAssertions
20
- * @public
21
- */
22
- var BaseAssertions = Opa5.extend("sap.fe.test.BaseAssertions", {
23
11
  /**
24
- * Checks whether a {@link sap.m.MessagePage} with given message is shown.
12
+ * Constructs a new {@link sap.fe.test.Opa5} instance.
25
13
  *
26
- * @param {string} sMessage The message shown on the message page
27
- * @returns {object} The result of the {@link sap.ui.test.Opa5#waitFor} function, to be used for chained statements
28
- *
29
- * @function
30
- * @name sap.fe.test.BaseAssertions#iSeeMessagePage
14
+ * @class All common assertions (<code>Then</code>) for all Opa tests are defined here.
15
+ * @alias sap.fe.test.BaseAssertions
31
16
  * @public
32
17
  */
33
- iSeeMessagePage: function(sMessage) {
34
- return OpaBuilder.create(this)
35
- .hasType("sap.m.MessagePage")
36
- .hasProperties({ text: sMessage })
37
- .description(Utils.formatMessage("Error Page with message '{0}' is visible", sMessage))
38
- .execute();
39
- },
40
- /**
41
- * Checks whether a {@link sap.m.MessageToast} with the given text is shown.
42
- *
43
- * @param {string} sText The text shown in the MessageToast
44
- * @returns {object} The result of the {@link sap.ui.test.Opa5#waitFor} function, to be used for chained statements
45
- *
46
- * @function
47
- * @name sap.fe.test.BaseAssertions#iSeeMessageToast
48
- * @public
49
- */
50
- iSeeMessageToast: function(sText) {
51
- return FEBuilder.createMessageToastBuilder(sText).execute(this);
52
- }
53
- });
54
-
55
- return BaseAssertions;
56
- });
18
+ return Opa5.extend("sap.fe.test.BaseAssertions", {
19
+ /**
20
+ * Checks whether a {@link sap.m.MessagePage} with given message is shown.
21
+ *
22
+ * @param {string} sMessage The message shown on the message page
23
+ * @returns {object} The result of the {@link sap.ui.test.Opa5#waitFor} function, to be used for chained statements
24
+ * @function
25
+ * @name sap.fe.test.BaseAssertions#iSeeMessagePage
26
+ * @public
27
+ */
28
+ iSeeMessagePage: function (sMessage) {
29
+ return OpaBuilder.create(this)
30
+ .hasType("sap.m.MessagePage")
31
+ .hasProperties({ text: sMessage })
32
+ .description(Utils.formatMessage("Error Page with message '{0}' is visible", sMessage))
33
+ .execute();
34
+ },
35
+ /**
36
+ * Checks whether a {@link sap.m.MessageToast} with the given text is shown.
37
+ *
38
+ * @param {string} sText The text shown in the MessageToast
39
+ * @returns {object} The result of the {@link sap.ui.test.Opa5#waitFor} function, to be used for chained statements
40
+ * @function
41
+ * @name sap.fe.test.BaseAssertions#iSeeMessageToast
42
+ * @public
43
+ */
44
+ iSeeMessageToast: function (sText) {
45
+ return FEBuilder.createMessageToastBuilder(sText).execute(this);
46
+ }
47
+ });
48
+ }
49
+ );
@@ -0,0 +1,77 @@
1
+ /*!
2
+ * SAP UI development toolkit for HTML5 (SAPUI5)
3
+ * (c) Copyright 2009-2021 SAP SE. All rights reserved
4
+ */
5
+ sap.ui.define(["sap/fe/core/controllerextensions/collaboration/CollaborationCommon", "sap/fe/test/api/CollaborationAPI", "sap/ui/test/OpaBuilder"], function (CollaborationCommon, CollaborationAPI, OpaBuilder) {
6
+ "use strict";
7
+
8
+ var Activity = CollaborationCommon.Activity;
9
+
10
+ function CollaborationClient(oPageDefinition) {
11
+ var sAppId = oPageDefinition.appId,
12
+ sComponentId = oPageDefinition.componentId,
13
+ viewId = "".concat(sAppId, "::").concat(sComponentId);
14
+ return {
15
+ actions: {
16
+ iEnterDraft: function (userID, userName) {
17
+ return OpaBuilder.create(this).hasId(viewId).do(function (view) {
18
+ var oContext = view.getBindingContext();
19
+ CollaborationAPI.enterDraft(oContext, userID, userName);
20
+ }).viewId("").description("Remote session entering draft").execute();
21
+ },
22
+ iLeaveDraft: function () {
23
+ return OpaBuilder.create(this).do(function () {
24
+ CollaborationAPI.leaveDraft();
25
+ }).description("Remote session leaving draft").execute();
26
+ },
27
+ iLockPropertyForEdition: function (sPropertyPath) {
28
+ return OpaBuilder.create(this).do(function () {
29
+ CollaborationAPI.startLiveChange(sPropertyPath);
30
+ }).description("Remote session locking property ".concat(sPropertyPath)).execute();
31
+ },
32
+ iUnlockPropertyForEdition: function () {
33
+ return OpaBuilder.create(this).do(function () {
34
+ CollaborationAPI.undoChange();
35
+ }).description("Remote session unlocking property ").execute();
36
+ },
37
+ iUpdatePropertyValue: function (sPropertyPath, value) {
38
+ return OpaBuilder.create(this).do(function () {
39
+ CollaborationAPI.updatePropertyValue(sPropertyPath, value);
40
+ }).description("Remote session updating property ".concat(sPropertyPath, " with ").concat(value)).execute();
41
+ },
42
+ iDiscardDraft: function () {
43
+ return OpaBuilder.create(this).do(function () {
44
+ CollaborationAPI.discardDraft();
45
+ }).description("Remote session discarding draft").execute();
46
+ },
47
+ iDeleteDraft: function () {
48
+ return OpaBuilder.create(this).do(function () {
49
+ CollaborationAPI.deleteDraft();
50
+ }).description("Remote session deleting draft").execute();
51
+ }
52
+ },
53
+ assertions: {
54
+ iCheckDefaultUserChangedValue: function (sPropertyPath) {
55
+ return OpaBuilder.create(this).check(function () {
56
+ return CollaborationAPI.checkReceived({
57
+ userID: "DEFAULT_USER",
58
+ userAction: Activity.Change,
59
+ clientContent: sPropertyPath
60
+ });
61
+ }).description("Remote session received change notification for".concat(sPropertyPath, " changed")).execute();
62
+ },
63
+ iCheckDefaultUserLeftDraft: function () {
64
+ return OpaBuilder.create(this).check(function () {
65
+ return CollaborationAPI.checkReceived({
66
+ userID: "DEFAULT_USER",
67
+ userAction: Activity.Leave
68
+ });
69
+ }).description("Remote session received notification on default user leaving the draft session").execute();
70
+ }
71
+ }
72
+ };
73
+ }
74
+
75
+ return CollaborationClient;
76
+ }, false);
77
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNvbGxhYm9yYXRpb25DbGllbnQudHMiXSwibmFtZXMiOlsiQ29sbGFib3JhdGlvbkNsaWVudCIsIm9QYWdlRGVmaW5pdGlvbiIsInNBcHBJZCIsImFwcElkIiwic0NvbXBvbmVudElkIiwiY29tcG9uZW50SWQiLCJ2aWV3SWQiLCJhY3Rpb25zIiwiaUVudGVyRHJhZnQiLCJ1c2VySUQiLCJ1c2VyTmFtZSIsIk9wYUJ1aWxkZXIiLCJjcmVhdGUiLCJoYXNJZCIsImRvIiwidmlldyIsIm9Db250ZXh0IiwiZ2V0QmluZGluZ0NvbnRleHQiLCJDb2xsYWJvcmF0aW9uQVBJIiwiZW50ZXJEcmFmdCIsImRlc2NyaXB0aW9uIiwiZXhlY3V0ZSIsImlMZWF2ZURyYWZ0IiwibGVhdmVEcmFmdCIsImlMb2NrUHJvcGVydHlGb3JFZGl0aW9uIiwic1Byb3BlcnR5UGF0aCIsInN0YXJ0TGl2ZUNoYW5nZSIsImlVbmxvY2tQcm9wZXJ0eUZvckVkaXRpb24iLCJ1bmRvQ2hhbmdlIiwiaVVwZGF0ZVByb3BlcnR5VmFsdWUiLCJ2YWx1ZSIsInVwZGF0ZVByb3BlcnR5VmFsdWUiLCJpRGlzY2FyZERyYWZ0IiwiZGlzY2FyZERyYWZ0IiwiaURlbGV0ZURyYWZ0IiwiZGVsZXRlRHJhZnQiLCJhc3NlcnRpb25zIiwiaUNoZWNrRGVmYXVsdFVzZXJDaGFuZ2VkVmFsdWUiLCJjaGVjayIsImNoZWNrUmVjZWl2ZWQiLCJ1c2VyQWN0aW9uIiwiQWN0aXZpdHkiLCJDaGFuZ2UiLCJjbGllbnRDb250ZW50IiwiaUNoZWNrRGVmYXVsdFVzZXJMZWZ0RHJhZnQiLCJMZWF2ZSJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7Ozs7O0FBR0EsV0FBU0EsbUJBQVQsQ0FBNkJDLGVBQTdCLEVBQXNGO0FBQ3JGLFFBQU1DLE1BQU0sR0FBR0QsZUFBZSxDQUFDRSxLQUEvQjtBQUFBLFFBQ0NDLFlBQVksR0FBR0gsZUFBZSxDQUFDSSxXQURoQztBQUFBLFFBRUNDLE1BQU0sYUFBTUosTUFBTixl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LEVBQUVDLFFBQVEsQ0FBQ0MsTUFGZ0I7QUFHckNDLGNBQUFBLGFBQWEsRUFBRWxCO0FBSHNCLGFBQS9CLENBQVA7QUFLQSxXQVBLLEVBUUxMLFdBUkssMERBUXlESyxhQVJ6RCxlQVNMSixPQVRLLEVBQVA7QUFVQSxTQVpVO0FBY1h1QixRQUFBQSwwQkFBMEIsRUFBRSxZQUFZO0FBQ3ZDLGlCQUFPakMsVUFBVSxDQUFDQyxNQUFYLENBQWtCLElBQWxCLEVBQ0wwQixLQURLLENBQ0MsWUFBWTtBQUNsQixtQkFBT3BCLGdCQUFnQixDQUFDcUIsYUFBakIsQ0FBK0I7QUFBRTlCLGNBQUFBLE1BQU0sRUFBRSxjQUFWO0FBQTBCK0IsY0FBQUEsVUFBVSxFQUFFQyxRQUFRLENBQUNJO0FBQS9DLGFBQS9CLENBQVA7QUFDQSxXQUhLLEVBSUx6QixXQUpLLENBSU8sZ0ZBSlAsRUFLTEMsT0FMSyxFQUFQO0FBTUE7QUFyQlU7QUFwRU4sS0FBUDtBQTRGQTs7U0FFY3JCLG1CIiwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3Rpdml0eSB9IGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9ucy9jb2xsYWJvcmF0aW9uL0NvbGxhYm9yYXRpb25Db21tb25cIjtcbmltcG9ydCBDb2xsYWJvcmF0aW9uQVBJIGZyb20gXCJzYXAvZmUvdGVzdC9hcGkvQ29sbGFib3JhdGlvbkFQSVwiO1xuaW1wb3J0IHR5cGUgT3BhNSBmcm9tIFwic2FwL3VpL3Rlc3QvT3BhNVwiO1xuaW1wb3J0IE9wYUJ1aWxkZXIgZnJvbSBcInNhcC91aS90ZXN0L09wYUJ1aWxkZXJcIjtcblxuZnVuY3Rpb24gQ29sbGFib3JhdGlvbkNsaWVudChvUGFnZURlZmluaXRpb246IHsgYXBwSWQ6IHN0cmluZzsgY29tcG9uZW50SWQ6IHN0cmluZyB9KSB7XG5cdGNvbnN0IHNBcHBJZCA9IG9QYWdlRGVmaW5pdGlvbi5hcHBJZCxcblx0XHRzQ29tcG9uZW50SWQgPSBvUGFnZURlZmluaXRpb24uY29tcG9uZW50SWQsXG5cdFx0dmlld0lkID0gYCR7c0FwcElkfTo6JHtzQ29tcG9uZW50SWR9YDtcblxuXHRyZXR1cm4ge1xuXHRcdGFjdGlvbnM6IHtcblx0XHRcdGlFbnRlckRyYWZ0OiBmdW5jdGlvbiAodXNlcklEOiBzdHJpbmcsIHVzZXJOYW1lOiBzdHJpbmcpIHtcblx0XHRcdFx0cmV0dXJuIE9wYUJ1aWxkZXIuY3JlYXRlKHRoaXMgYXMgYW55IGFzIE9wYTUpXG5cdFx0XHRcdFx0Lmhhc0lkKHZpZXdJZClcblx0XHRcdFx0XHQuZG8oZnVuY3Rpb24gKHZpZXc6IGFueSkge1xuXHRcdFx0XHRcdFx0Y29uc3Qgb0NvbnRleHQgPSB2aWV3LmdldEJpbmRpbmdDb250ZXh0KCk7XG5cdFx0XHRcdFx0XHRDb2xsYWJvcmF0aW9uQVBJLmVudGVyRHJhZnQob0NvbnRleHQsIHVzZXJJRCwgdXNlck5hbWUpO1xuXHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0LnZpZXdJZChcIlwiKVxuXHRcdFx0XHRcdC5kZXNjcmlwdGlvbihcIlJlbW90ZSBzZXNzaW9uIGVudGVyaW5nIGRyYWZ0XCIpXG5cdFx0XHRcdFx0LmV4ZWN1dGUoKTtcblx0XHRcdH0sXG5cblx0XHRcdGlMZWF2ZURyYWZ0OiBmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdHJldHVybiBPcGFCdWlsZGVyLmNyZWF0ZSh0aGlzIGFzIGFueSBhcyBPcGE1KVxuXHRcdFx0XHRcdC5kbyhmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdFx0XHRDb2xsYWJvcmF0aW9uQVBJLmxlYXZlRHJhZnQoKTtcblx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdC5kZXNjcmlwdGlvbihcIlJlbW90ZSBzZXNzaW9uIGxlYXZpbmcgZHJhZnRcIilcblx0XHRcdFx0XHQuZXhlY3V0ZSgpO1xuXHRcdFx0fSxcblxuXHRcdFx0aUxvY2tQcm9wZXJ0eUZvckVkaXRpb246IGZ1bmN0aW9uIChzUHJvcGVydHlQYXRoOiBzdHJpbmcpIHtcblx0XHRcdFx0cmV0dXJuIE9wYUJ1aWxkZXIuY3JlYXRlKHRoaXMgYXMgYW55IGFzIE9wYTUpXG5cdFx0XHRcdFx0LmRvKGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XHRcdENvbGxhYm9yYXRpb25BUEkuc3RhcnRMaXZlQ2hhbmdlKHNQcm9wZXJ0eVBhdGgpO1xuXHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0LmRlc2NyaXB0aW9uKGBSZW1vdGUgc2Vzc2lvbiBsb2NraW5nIHByb3BlcnR5ICR7c1Byb3BlcnR5UGF0aH1gKVxuXHRcdFx0XHRcdC5leGVjdXRlKCk7XG5cdFx0XHR9LFxuXG5cdFx0XHRpVW5sb2NrUHJvcGVydHlGb3JFZGl0aW9uOiBmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdHJldHVybiBPcGFCdWlsZGVyLmNyZWF0ZSh0aGlzIGFzIGFueSBhcyBPcGE1KVxuXHRcdFx0XHRcdC5kbyhmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdFx0XHRDb2xsYWJvcmF0aW9uQVBJLnVuZG9DaGFuZ2UoKTtcblx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdC5kZXNjcmlwdGlvbihcIlJlbW90ZSBzZXNzaW9uIHVubG9ja2luZyBwcm9wZXJ0eSBcIilcblx0XHRcdFx0XHQuZXhlY3V0ZSgpO1xuXHRcdFx0fSxcblxuXHRcdFx0aVVwZGF0ZVByb3BlcnR5VmFsdWU6IGZ1bmN0aW9uIChzUHJvcGVydHlQYXRoOiBzdHJpbmcsIHZhbHVlOiBhbnkpIHtcblx0XHRcdFx0cmV0dXJuIE9wYUJ1aWxkZXIuY3JlYXRlKHRoaXMgYXMgYW55IGFzIE9wYTUpXG5cdFx0XHRcdFx0LmRvKGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XHRcdENvbGxhYm9yYXRpb25BUEkudXBkYXRlUHJvcGVydHlWYWx1ZShzUHJvcGVydHlQYXRoLCB2YWx1ZSk7XG5cdFx0XHRcdFx0fSlcblx0XHRcdFx0XHQuZGVzY3JpcHRpb24oYFJlbW90ZSBzZXNzaW9uIHVwZGF0aW5nIHByb3BlcnR5ICR7c1Byb3BlcnR5UGF0aH0gd2l0aCAke3ZhbHVlfWApXG5cdFx0XHRcdFx0LmV4ZWN1dGUoKTtcblx0XHRcdH0sXG5cblx0XHRcdGlEaXNjYXJkRHJhZnQ6IGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0cmV0dXJuIE9wYUJ1aWxkZXIuY3JlYXRlKHRoaXMgYXMgYW55IGFzIE9wYTUpXG5cdFx0XHRcdFx0LmRvKGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XHRcdENvbGxhYm9yYXRpb25BUEkuZGlzY2FyZERyYWZ0KCk7XG5cdFx0XHRcdFx0fSlcblx0XHRcdFx0XHQuZGVzY3JpcHRpb24oXCJSZW1vdGUgc2Vzc2lvbiBkaXNjYXJkaW5nIGRyYWZ0XCIpXG5cdFx0XHRcdFx0LmV4ZWN1dGUoKTtcblx0XHRcdH0sXG5cblx0XHRcdGlEZWxldGVEcmFmdDogZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRyZXR1cm4gT3BhQnVpbGRlci5jcmVhdGUodGhpcyBhcyBhbnkgYXMgT3BhNSlcblx0XHRcdFx0XHQuZG8oZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRcdFx0Q29sbGFib3JhdGlvbkFQSS5kZWxldGVEcmFmdCgpO1xuXHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0LmRlc2NyaXB0aW9uKFwiUmVtb3RlIHNlc3Npb24gZGVsZXRpbmcgZHJhZnRcIilcblx0XHRcdFx0XHQuZXhlY3V0ZSgpO1xuXHRcdFx0fVxuXHRcdH0sXG5cdFx0YXNzZXJ0aW9uczoge1xuXHRcdFx0aUNoZWNrRGVmYXVsdFVzZXJDaGFuZ2VkVmFsdWU6IGZ1bmN0aW9uIChzUHJvcGVydHlQYXRoOiBzdHJpbmcpIHtcblx0XHRcdFx0cmV0dXJuIE9wYUJ1aWxkZXIuY3JlYXRlKHRoaXMgYXMgYW55IGFzIE9wYTUpXG5cdFx0XHRcdFx0LmNoZWNrKGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XHRcdHJldHVybiBDb2xsYWJvcmF0aW9uQVBJLmNoZWNrUmVjZWl2ZWQoe1xuXHRcdFx0XHRcdFx0XHR1c2VySUQ6IFwiREVGQVVMVF9VU0VSXCIsXG5cdFx0XHRcdFx0XHRcdHVzZXJBY3Rpb246IEFjdGl2aXR5LkNoYW5nZSxcblx0XHRcdFx0XHRcdFx0Y2xpZW50Q29udGVudDogc1Byb3BlcnR5UGF0aFxuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0fSlcblx0XHRcdFx0XHQuZGVzY3JpcHRpb24oYFJlbW90ZSBzZXNzaW9uIHJlY2VpdmVkIGNoYW5nZSBub3RpZmljYXRpb24gZm9yJHtzUHJvcGVydHlQYXRofSBjaGFuZ2VkYClcblx0XHRcdFx0XHQuZXhlY3V0ZSgpO1xuXHRcdFx0fSxcblxuXHRcdFx0aUNoZWNrRGVmYXVsdFVzZXJMZWZ0RHJhZnQ6IGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0cmV0dXJuIE9wYUJ1aWxkZXIuY3JlYXRlKHRoaXMgYXMgYW55IGFzIE9wYTUpXG5cdFx0XHRcdFx0LmNoZWNrKGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XHRcdHJldHVybiBDb2xsYWJvcmF0aW9uQVBJLmNoZWNrUmVjZWl2ZWQoeyB1c2VySUQ6IFwiREVGQVVMVF9VU0VSXCIsIHVzZXJBY3Rpb246IEFjdGl2aXR5LkxlYXZlIH0pO1xuXHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0LmRlc2NyaXB0aW9uKFwiUmVtb3RlIHNlc3Npb24gcmVjZWl2ZWQgbm90aWZpY2F0aW9uIG9uIGRlZmF1bHQgdXNlciBsZWF2aW5nIHRoZSBkcmFmdCBzZXNzaW9uXCIpXG5cdFx0XHRcdFx0LmV4ZWN1dGUoKTtcblx0XHRcdH1cblx0XHR9XG5cdH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IENvbGxhYm9yYXRpb25DbGllbnQ7XG4iXX0=
@@ -0,0 +1,105 @@
1
+ import { Activity } from "sap/fe/core/controllerextensions/collaboration/CollaborationCommon";
2
+ import CollaborationAPI from "sap/fe/test/api/CollaborationAPI";
3
+ import type Opa5 from "sap/ui/test/Opa5";
4
+ import OpaBuilder from "sap/ui/test/OpaBuilder";
5
+
6
+ function CollaborationClient(oPageDefinition: { appId: string; componentId: string }) {
7
+ const sAppId = oPageDefinition.appId,
8
+ sComponentId = oPageDefinition.componentId,
9
+ viewId = `${sAppId}::${sComponentId}`;
10
+
11
+ return {
12
+ actions: {
13
+ iEnterDraft: function (userID: string, userName: string) {
14
+ return OpaBuilder.create(this as any as Opa5)
15
+ .hasId(viewId)
16
+ .do(function (view: any) {
17
+ const oContext = view.getBindingContext();
18
+ CollaborationAPI.enterDraft(oContext, userID, userName);
19
+ })
20
+ .viewId("")
21
+ .description("Remote session entering draft")
22
+ .execute();
23
+ },
24
+
25
+ iLeaveDraft: function () {
26
+ return OpaBuilder.create(this as any as Opa5)
27
+ .do(function () {
28
+ CollaborationAPI.leaveDraft();
29
+ })
30
+ .description("Remote session leaving draft")
31
+ .execute();
32
+ },
33
+
34
+ iLockPropertyForEdition: function (sPropertyPath: string) {
35
+ return OpaBuilder.create(this as any as Opa5)
36
+ .do(function () {
37
+ CollaborationAPI.startLiveChange(sPropertyPath);
38
+ })
39
+ .description(`Remote session locking property ${sPropertyPath}`)
40
+ .execute();
41
+ },
42
+
43
+ iUnlockPropertyForEdition: function () {
44
+ return OpaBuilder.create(this as any as Opa5)
45
+ .do(function () {
46
+ CollaborationAPI.undoChange();
47
+ })
48
+ .description("Remote session unlocking property ")
49
+ .execute();
50
+ },
51
+
52
+ iUpdatePropertyValue: function (sPropertyPath: string, value: any) {
53
+ return OpaBuilder.create(this as any as Opa5)
54
+ .do(function () {
55
+ CollaborationAPI.updatePropertyValue(sPropertyPath, value);
56
+ })
57
+ .description(`Remote session updating property ${sPropertyPath} with ${value}`)
58
+ .execute();
59
+ },
60
+
61
+ iDiscardDraft: function () {
62
+ return OpaBuilder.create(this as any as Opa5)
63
+ .do(function () {
64
+ CollaborationAPI.discardDraft();
65
+ })
66
+ .description("Remote session discarding draft")
67
+ .execute();
68
+ },
69
+
70
+ iDeleteDraft: function () {
71
+ return OpaBuilder.create(this as any as Opa5)
72
+ .do(function () {
73
+ CollaborationAPI.deleteDraft();
74
+ })
75
+ .description("Remote session deleting draft")
76
+ .execute();
77
+ }
78
+ },
79
+ assertions: {
80
+ iCheckDefaultUserChangedValue: function (sPropertyPath: string) {
81
+ return OpaBuilder.create(this as any as Opa5)
82
+ .check(function () {
83
+ return CollaborationAPI.checkReceived({
84
+ userID: "DEFAULT_USER",
85
+ userAction: Activity.Change,
86
+ clientContent: sPropertyPath
87
+ });
88
+ })
89
+ .description(`Remote session received change notification for${sPropertyPath} changed`)
90
+ .execute();
91
+ },
92
+
93
+ iCheckDefaultUserLeftDraft: function () {
94
+ return OpaBuilder.create(this as any as Opa5)
95
+ .check(function () {
96
+ return CollaborationAPI.checkReceived({ userID: "DEFAULT_USER", userAction: Activity.Leave });
97
+ })
98
+ .description("Remote session received notification on default user leaving the draft session")
99
+ .execute();
100
+ }
101
+ }
102
+ };
103
+ }
104
+
105
+ export default CollaborationClient;
@@ -63,4 +63,4 @@ sap.ui.define(["@sap-ux/jest-mock-ui5/dist/generic", "sap/fe/core/controllerexte
63
63
  _exports.mockFilterBar = mockFilterBar;
64
64
  return _exports;
65
65
  }, false);
66
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkZlTW9ja3MudHMiXSwibmFtZXMiOlsibW9ja0xpc3RSZXBvcnRDb250cm9sbGVyIiwibGlzdFJlcG9ydCIsIl9nZXRGaWx0ZXJCYXJDb250cm9sIiwiamVzdCIsImZuIiwiX2dldENvbnRyb2xzIiwiX2lzRmlsdGVyQmFySGlkZGVuIiwiX2lzTXVsdGlNb2RlIiwiX3NldENvdW50c091dERhdGVkIiwiX2dldEN1cnJlbnRDb250cm9sIiwiX2dldE11bHRpTW9kZUNvbnRyb2wiLCJfaGFzTXVsdGlWaXN1YWxpemF0aW9ucyIsIl9zaG91bGRBdXRvVHJpZ2dlclNlYXJjaCIsIl9nZXRUYWJsZSIsImdldEV4dGVuc2lvbkFQSSIsIl9lZGl0RmxvdyIsIm1vY2siLCJJbnRlcm5hbEVkaXRGbG93IiwiT2JqZWN0IiwiYXNzaWduIiwiUGFnZUNvbnRyb2xsZXIiLCJtb2NrT2JqZWN0UGFnZUNvbnRyb2xsZXIiLCJvYmplY3RQYWdlIiwiZ2V0U3RpY2t5RWRpdE1vZGUiLCJtb2NrQ29udGV4dEZvckV4dGVuc2lvbiIsImV4dGVuc2lvbiIsImNvbnRyb2xsZXIiLCJiYXNlIiwidmlldyIsImdldFZpZXciLCJtb2NrZWRCYXNlIiwibW9ja0ZpbHRlckJhciIsImZpbHRlckJhciIsIkZpbHRlckJhciIsIndhaXRGb3JJbml0aWFsaXphdGlvbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7Ozs7OztBQTBCTyxXQUFTQSx3QkFBVCxHQUE2SDtBQUNuSTtBQUNBLFFBQU1DLFVBQTJFLEdBQUc7QUFDbkZDLE1BQUFBLG9CQUFvQixFQUFFQyxJQUFJLENBQUNDLEVBQUwsRUFENkQ7QUFFbkZDLE1BQUFBLFlBQVksRUFBRUYsSUFBSSxDQUFDQyxFQUFMLEVBRnFFO0FBR25GRSxNQUFBQSxrQkFBa0IsRUFBRUgsSUFBSSxDQUFDQyxFQUFMLEVBSCtEO0FBSW5GRyxNQUFBQSxZQUFZLEVBQUVKLElBQUksQ0FBQ0MsRUFBTCxFQUpxRTtBQUtuRkksTUFBQUEsa0JBQWtCLEVBQUVMLElBQUksQ0FBQ0MsRUFBTCxFQUwrRDtBQU1uRkssTUFBQUEsa0JBQWtCLEVBQUVOLElBQUksQ0FBQ0MsRUFBTCxFQU4rRDtBQU9uRk0sTUFBQUEsb0JBQW9CLEVBQUVQLElBQUksQ0FBQ0MsRUFBTCxFQVA2RDtBQVFuRk8sTUFBQUEsdUJBQXVCLEVBQUVSLElBQUksQ0FBQ0MsRUFBTCxFQVIwRDtBQVNuRlEsTUFBQUEsd0JBQXdCLEVBQUVULElBQUksQ0FBQ0MsRUFBTCxFQVR5RDtBQVVuRlMsTUFBQUEsU0FBUyxFQUFFVixJQUFJLENBQUNDLEVBQUwsRUFWd0U7QUFXbkZVLE1BQUFBLGVBQWUsRUFBRVgsSUFBSSxDQUFDQyxFQUFMLEVBWGtFO0FBWW5GVyxNQUFBQSxTQUFTLEVBQUVDLElBQUksQ0FBQ0MsZ0JBQUQ7QUFab0UsS0FBcEY7QUFjQSxXQUFPQyxNQUFNLENBQUNDLE1BQVAsQ0FBY0gsSUFBSSxDQUFDSSxjQUFELENBQWxCLEVBQTJDbkIsVUFBM0MsQ0FBUDtBQUdBOzs7O0FBRU0sV0FBU29CLHdCQUFULEdBQTZIO0FBQ25JO0FBQ0EsUUFBTUMsVUFBMkUsR0FBRztBQUNuRkMsTUFBQUEsaUJBQWlCLEVBQUVwQixJQUFJLENBQUNDLEVBQUwsRUFEZ0U7QUFFbkZVLE1BQUFBLGVBQWUsRUFBRVgsSUFBSSxDQUFDQyxFQUFMLEVBRmtFO0FBR25GVyxNQUFBQSxTQUFTLEVBQUVDLElBQUksQ0FBQ0MsZ0JBQUQ7QUFIb0UsS0FBcEY7QUFLQSxXQUFPQyxNQUFNLENBQUNDLE1BQVAsQ0FBY0gsSUFBSSxDQUFDSSxjQUFELENBQWxCLEVBQTJDRSxVQUEzQyxDQUFQO0FBR0E7Ozs7QUFFTSxXQUFTRSx1QkFBVCxDQUNOQyxTQURNLEVBRU5DLFVBRk0sRUFHTkMsSUFITSxFQUlrQztBQUN4QyxRQUFNQyxJQUFJLEdBQUdGLFVBQVUsQ0FBQ0csT0FBWCxFQUFiOztBQUNDSixJQUFBQSxTQUFELENBQW1CSSxPQUFuQixHQUE2QjtBQUFBLGFBQU1ELElBQU47QUFBQSxLQUE3Qjs7QUFDQSxRQUFNRSxVQUFVLEdBQUdkLElBQUksQ0FBQ1csSUFBSSxJQUFJLEVBQVQsQ0FBdkI7QUFDQSxXQUFPVCxNQUFNLENBQUNDLE1BQVAsQ0FBY1csVUFBZCxFQUEwQkwsU0FBMUIsQ0FBUDtBQUNBOzs7O0FBRU0sV0FBU00sYUFBVCxHQUFnSDtBQUN0SCxRQUFNQyxTQUFTLEdBQUdoQixJQUFJLENBQUNpQixTQUFELENBQXRCO0FBQ0FELElBQUFBLFNBQVMsQ0FBQ2hCLElBQVYsQ0FBZWtCLHFCQUFmLEdBQXVDL0IsSUFBSSxDQUFDQyxFQUFMLEVBQXZDO0FBQ0EsV0FBTzRCLFNBQVA7QUFDQSIsInNvdXJjZVJvb3QiOiIuIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbW9jaywgTW9ja2VkSW5zdGFuY2UsIFVJNUluc3RhbmNlVHlwZSwgV2l0aE1vY2sgfSBmcm9tIFwiQHNhcC11eC9qZXN0LW1vY2stdWk1L2Rpc3QvZ2VuZXJpY1wiO1xuaW1wb3J0IEludGVybmFsRWRpdEZsb3cgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL0ludGVybmFsRWRpdEZsb3dcIjtcbmltcG9ydCBQYWdlQ29udHJvbGxlciBmcm9tIFwic2FwL2ZlL2NvcmUvUGFnZUNvbnRyb2xsZXJcIjtcbmltcG9ydCBDb250cm9sbGVyIGZyb20gXCJzYXAvdWkvY29yZS9tdmMvQ29udHJvbGxlclwiO1xuaW1wb3J0IEZpbHRlckJhciBmcm9tIFwic2FwL3VpL21kYy9GaWx0ZXJCYXJcIjtcblxuaW50ZXJmYWNlIENvbW1vbkNvbnRyb2xsZXJUeXBlIHtcblx0Z2V0RXh0ZW5zaW9uQVBJOiBhbnk7XG5cdF9lZGl0RmxvdzogV2l0aE1vY2s8SW50ZXJuYWxFZGl0Rmxvdz47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGlzdFJlcG9ydENvbnRyb2xsZXJUeXBlIHtcblx0X2dldEZpbHRlckJhckNvbnRyb2w6IGFueTtcblx0X2dldENvbnRyb2xzOiBhbnk7XG5cdF9pc0ZpbHRlckJhckhpZGRlbjogYW55O1xuXHRfaXNNdWx0aU1vZGU6IGFueTtcblx0X3NldENvdW50c091dERhdGVkOiBhbnk7XG5cdF9nZXRDdXJyZW50Q29udHJvbDogYW55O1xuXHRfZ2V0TXVsdGlNb2RlQ29udHJvbDogYW55O1xuXHRfaGFzTXVsdGlWaXN1YWxpemF0aW9uczogYW55O1xuXHRfc2hvdWxkQXV0b1RyaWdnZXJTZWFyY2g6IGFueTtcblx0X2dldFRhYmxlOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT2JqZWN0UGFnZUNvbnRyb2xsZXJUeXBlIHtcblx0Z2V0U3RpY2t5RWRpdE1vZGU6IGFueTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1vY2tMaXN0UmVwb3J0Q29udHJvbGxlcigpOiBXaXRoTW9jazxDb250cm9sbGVyICYgUGFnZUNvbnRyb2xsZXIgJiBMaXN0UmVwb3J0Q29udHJvbGxlclR5cGUgJiBDb21tb25Db250cm9sbGVyVHlwZT4ge1xuXHQvLyBtYW51YWxseSBhZGQgTGlzdFJlcG9ydENvbnRyb2xsZXIuY29udHJvbGxlciBmdW5jdGlvbnMgc2luY2UgSSBhbSB1bmFibGUgdG8gaW1wb3J0IHRoZSBwcm90b3R5cGVcblx0Y29uc3QgbGlzdFJlcG9ydDogTW9ja2VkSW5zdGFuY2U8TGlzdFJlcG9ydENvbnRyb2xsZXJUeXBlICYgQ29tbW9uQ29udHJvbGxlclR5cGU+ID0ge1xuXHRcdF9nZXRGaWx0ZXJCYXJDb250cm9sOiBqZXN0LmZuKCksXG5cdFx0X2dldENvbnRyb2xzOiBqZXN0LmZuKCksXG5cdFx0X2lzRmlsdGVyQmFySGlkZGVuOiBqZXN0LmZuKCksXG5cdFx0X2lzTXVsdGlNb2RlOiBqZXN0LmZuKCksXG5cdFx0X3NldENvdW50c091dERhdGVkOiBqZXN0LmZuKCksXG5cdFx0X2dldEN1cnJlbnRDb250cm9sOiBqZXN0LmZuKCksXG5cdFx0X2dldE11bHRpTW9kZUNvbnRyb2w6IGplc3QuZm4oKSxcblx0XHRfaGFzTXVsdGlWaXN1YWxpemF0aW9uczogamVzdC5mbigpLFxuXHRcdF9zaG91bGRBdXRvVHJpZ2dlclNlYXJjaDogamVzdC5mbigpLFxuXHRcdF9nZXRUYWJsZTogamVzdC5mbigpLFxuXHRcdGdldEV4dGVuc2lvbkFQSTogamVzdC5mbigpLFxuXHRcdF9lZGl0RmxvdzogbW9jayhJbnRlcm5hbEVkaXRGbG93KSBhcyBhbnlcblx0fTtcblx0cmV0dXJuIE9iamVjdC5hc3NpZ24obW9jayhQYWdlQ29udHJvbGxlcikgYXMgYW55LCBsaXN0UmVwb3J0KSBhcyBXaXRoTW9jazxcblx0XHRDb250cm9sbGVyICYgUGFnZUNvbnRyb2xsZXIgJiBMaXN0UmVwb3J0Q29udHJvbGxlclR5cGUgJiBDb21tb25Db250cm9sbGVyVHlwZVxuXHQ+O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbW9ja09iamVjdFBhZ2VDb250cm9sbGVyKCk6IFdpdGhNb2NrPENvbnRyb2xsZXIgJiBQYWdlQ29udHJvbGxlciAmIE9iamVjdFBhZ2VDb250cm9sbGVyVHlwZSAmIENvbW1vbkNvbnRyb2xsZXJUeXBlPiB7XG5cdC8vIG1hbnVhbGx5IGFkZCBMaXN0UmVwb3J0Q29udHJvbGxlci5jb250cm9sbGVyIGZ1bmN0aW9ucyBzaW5jZSBJIGFtIHVuYWJsZSB0byBpbXBvcnQgdGhlIHByb3RvdHlwZVxuXHRjb25zdCBvYmplY3RQYWdlOiBNb2NrZWRJbnN0YW5jZTxPYmplY3RQYWdlQ29udHJvbGxlclR5cGUgJiBDb21tb25Db250cm9sbGVyVHlwZT4gPSB7XG5cdFx0Z2V0U3RpY2t5RWRpdE1vZGU6IGplc3QuZm4oKSxcblx0XHRnZXRFeHRlbnNpb25BUEk6IGplc3QuZm4oKSxcblx0XHRfZWRpdEZsb3c6IG1vY2soSW50ZXJuYWxFZGl0RmxvdykgYXMgV2l0aE1vY2s8SW50ZXJuYWxFZGl0Rmxvdz4gYXMgYW55XG5cdH07XG5cdHJldHVybiBPYmplY3QuYXNzaWduKG1vY2soUGFnZUNvbnRyb2xsZXIpIGFzIGFueSwgb2JqZWN0UGFnZSkgYXMgV2l0aE1vY2s8XG5cdFx0Q29udHJvbGxlciAmIFBhZ2VDb250cm9sbGVyICYgT2JqZWN0UGFnZUNvbnRyb2xsZXJUeXBlICYgQ29tbW9uQ29udHJvbGxlclR5cGVcblx0Pjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1vY2tDb250ZXh0Rm9yRXh0ZW5zaW9uPEVYVCBleHRlbmRzIG9iamVjdCwgQkFTRSBleHRlbmRzIG9iamVjdD4oXG5cdGV4dGVuc2lvbjogRVhULFxuXHRjb250cm9sbGVyOiBXaXRoTW9jazxDb250cm9sbGVyPixcblx0YmFzZT86IEJBU0Vcbik6IFdpdGhNb2NrPEVYVCAmIFVJNUluc3RhbmNlVHlwZTxCQVNFPj4ge1xuXHRjb25zdCB2aWV3ID0gY29udHJvbGxlci5nZXRWaWV3KCk7XG5cdChleHRlbnNpb24gYXMgYW55KS5nZXRWaWV3ID0gKCkgPT4gdmlldztcblx0Y29uc3QgbW9ja2VkQmFzZSA9IG1vY2soYmFzZSB8fCB7fSk7XG5cdHJldHVybiBPYmplY3QuYXNzaWduKG1vY2tlZEJhc2UsIGV4dGVuc2lvbikgYXMgV2l0aE1vY2s8RVhUICYgVUk1SW5zdGFuY2VUeXBlPEJBU0U+Pjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1vY2tGaWx0ZXJCYXIoKTogV2l0aE1vY2s8RmlsdGVyQmFyICYgeyB3YWl0Rm9ySW5pdGlhbGl6YXRpb246IEZ1bmN0aW9uOyBfYlNlYXJjaFRyaWdnZXJlZDogQm9vbGVhbiB9PiB7XG5cdGNvbnN0IGZpbHRlckJhciA9IG1vY2soRmlsdGVyQmFyKSBhcyBXaXRoTW9jazxGaWx0ZXJCYXIgJiB7IHdhaXRGb3JJbml0aWFsaXphdGlvbjogRnVuY3Rpb247IF9iU2VhcmNoVHJpZ2dlcmVkOiBCb29sZWFuIH0+O1xuXHRmaWx0ZXJCYXIubW9jay53YWl0Rm9ySW5pdGlhbGl6YXRpb24gPSBqZXN0LmZuKCk7XG5cdHJldHVybiBmaWx0ZXJCYXI7XG59XG4iXX0=
66
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkZlTW9ja3MudHMiXSwibmFtZXMiOlsibW9ja0xpc3RSZXBvcnRDb250cm9sbGVyIiwibGlzdFJlcG9ydCIsIl9nZXRGaWx0ZXJCYXJDb250cm9sIiwiamVzdCIsImZuIiwiX2dldENvbnRyb2xzIiwiX2lzRmlsdGVyQmFySGlkZGVuIiwiX2lzTXVsdGlNb2RlIiwiX3NldENvdW50c091dERhdGVkIiwiX2dldEN1cnJlbnRDb250cm9sIiwiX2dldE11bHRpTW9kZUNvbnRyb2wiLCJfaGFzTXVsdGlWaXN1YWxpemF0aW9ucyIsIl9zaG91bGRBdXRvVHJpZ2dlclNlYXJjaCIsIl9nZXRUYWJsZSIsImdldEV4dGVuc2lvbkFQSSIsIl9lZGl0RmxvdyIsIm1vY2siLCJJbnRlcm5hbEVkaXRGbG93IiwiT2JqZWN0IiwiYXNzaWduIiwiUGFnZUNvbnRyb2xsZXIiLCJtb2NrT2JqZWN0UGFnZUNvbnRyb2xsZXIiLCJvYmplY3RQYWdlIiwiZ2V0U3RpY2t5RWRpdE1vZGUiLCJtb2NrQ29udGV4dEZvckV4dGVuc2lvbiIsImV4dGVuc2lvbiIsImNvbnRyb2xsZXIiLCJiYXNlIiwidmlldyIsImdldFZpZXciLCJtb2NrZWRCYXNlIiwibW9ja0ZpbHRlckJhciIsImZpbHRlckJhciIsIkZpbHRlckJhciIsIndhaXRGb3JJbml0aWFsaXphdGlvbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7Ozs7OztBQTJCTyxXQUFTQSx3QkFBVCxHQUE2SDtBQUNuSTtBQUNBLFFBQU1DLFVBQTJFLEdBQUc7QUFDbkZDLE1BQUFBLG9CQUFvQixFQUFFQyxJQUFJLENBQUNDLEVBQUwsRUFENkQ7QUFFbkZDLE1BQUFBLFlBQVksRUFBRUYsSUFBSSxDQUFDQyxFQUFMLEVBRnFFO0FBR25GRSxNQUFBQSxrQkFBa0IsRUFBRUgsSUFBSSxDQUFDQyxFQUFMLEVBSCtEO0FBSW5GRyxNQUFBQSxZQUFZLEVBQUVKLElBQUksQ0FBQ0MsRUFBTCxFQUpxRTtBQUtuRkksTUFBQUEsa0JBQWtCLEVBQUVMLElBQUksQ0FBQ0MsRUFBTCxFQUwrRDtBQU1uRkssTUFBQUEsa0JBQWtCLEVBQUVOLElBQUksQ0FBQ0MsRUFBTCxFQU4rRDtBQU9uRk0sTUFBQUEsb0JBQW9CLEVBQUVQLElBQUksQ0FBQ0MsRUFBTCxFQVA2RDtBQVFuRk8sTUFBQUEsdUJBQXVCLEVBQUVSLElBQUksQ0FBQ0MsRUFBTCxFQVIwRDtBQVNuRlEsTUFBQUEsd0JBQXdCLEVBQUVULElBQUksQ0FBQ0MsRUFBTCxFQVR5RDtBQVVuRlMsTUFBQUEsU0FBUyxFQUFFVixJQUFJLENBQUNDLEVBQUwsRUFWd0U7QUFXbkZVLE1BQUFBLGVBQWUsRUFBRVgsSUFBSSxDQUFDQyxFQUFMLEVBWGtFO0FBWW5GVyxNQUFBQSxTQUFTLEVBQUVDLElBQUksQ0FBQ0MsZ0JBQUQ7QUFab0UsS0FBcEY7QUFjQSxXQUFPQyxNQUFNLENBQUNDLE1BQVAsQ0FBY0gsSUFBSSxDQUFDSSxjQUFELENBQWxCLEVBQTJDbkIsVUFBM0MsQ0FBUDtBQUdBOzs7O0FBRU0sV0FBU29CLHdCQUFULEdBQTZIO0FBQ25JO0FBQ0EsUUFBTUMsVUFBMkUsR0FBRztBQUNuRkMsTUFBQUEsaUJBQWlCLEVBQUVwQixJQUFJLENBQUNDLEVBQUwsRUFEZ0U7QUFFbkZVLE1BQUFBLGVBQWUsRUFBRVgsSUFBSSxDQUFDQyxFQUFMLEVBRmtFO0FBR25GVyxNQUFBQSxTQUFTLEVBQUVDLElBQUksQ0FBQ0MsZ0JBQUQ7QUFIb0UsS0FBcEY7QUFLQSxXQUFPQyxNQUFNLENBQUNDLE1BQVAsQ0FBY0gsSUFBSSxDQUFDSSxjQUFELENBQWxCLEVBQTJDRSxVQUEzQyxDQUFQO0FBR0E7Ozs7QUFFTSxXQUFTRSx1QkFBVCxDQUNOQyxTQURNLEVBRU5DLFVBRk0sRUFHTkMsSUFITSxFQUlrQztBQUN4QyxRQUFNQyxJQUFJLEdBQUdGLFVBQVUsQ0FBQ0csT0FBWCxFQUFiOztBQUNDSixJQUFBQSxTQUFELENBQW1CSSxPQUFuQixHQUE2QjtBQUFBLGFBQU1ELElBQU47QUFBQSxLQUE3Qjs7QUFDQSxRQUFNRSxVQUFVLEdBQUdkLElBQUksQ0FBQ1csSUFBSSxJQUFJLEVBQVQsQ0FBdkI7QUFDQSxXQUFPVCxNQUFNLENBQUNDLE1BQVAsQ0FBY1csVUFBZCxFQUEwQkwsU0FBMUIsQ0FBUDtBQUNBOzs7O0FBRU0sV0FBU00sYUFBVCxHQUVMO0FBQ0QsUUFBTUMsU0FBUyxHQUFHaEIsSUFBSSxDQUFDaUIsU0FBRCxDQUF0QjtBQUdBRCxJQUFBQSxTQUFTLENBQUNoQixJQUFWLENBQWVrQixxQkFBZixHQUF1Qy9CLElBQUksQ0FBQ0MsRUFBTCxFQUF2QztBQUNBLFdBQU80QixTQUFQO0FBQ0EiLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTW9ja2VkSW5zdGFuY2UsIFVJNUluc3RhbmNlVHlwZSwgV2l0aE1vY2sgfSBmcm9tIFwiQHNhcC11eC9qZXN0LW1vY2stdWk1L2Rpc3QvZ2VuZXJpY1wiO1xuaW1wb3J0IHsgbW9jayB9IGZyb20gXCJAc2FwLXV4L2plc3QtbW9jay11aTUvZGlzdC9nZW5lcmljXCI7XG5pbXBvcnQgSW50ZXJuYWxFZGl0RmxvdyBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbGxlcmV4dGVuc2lvbnMvSW50ZXJuYWxFZGl0Rmxvd1wiO1xuaW1wb3J0IFBhZ2VDb250cm9sbGVyIGZyb20gXCJzYXAvZmUvY29yZS9QYWdlQ29udHJvbGxlclwiO1xuaW1wb3J0IHR5cGUgQ29udHJvbGxlciBmcm9tIFwic2FwL3VpL2NvcmUvbXZjL0NvbnRyb2xsZXJcIjtcbmltcG9ydCBGaWx0ZXJCYXIgZnJvbSBcInNhcC91aS9tZGMvRmlsdGVyQmFyXCI7XG5cbmludGVyZmFjZSBDb21tb25Db250cm9sbGVyVHlwZSB7XG5cdGdldEV4dGVuc2lvbkFQSTogYW55O1xuXHRfZWRpdEZsb3c6IFdpdGhNb2NrPEludGVybmFsRWRpdEZsb3c+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RSZXBvcnRDb250cm9sbGVyVHlwZSB7XG5cdF9nZXRGaWx0ZXJCYXJDb250cm9sOiBhbnk7XG5cdF9nZXRDb250cm9sczogYW55O1xuXHRfaXNGaWx0ZXJCYXJIaWRkZW46IGFueTtcblx0X2lzTXVsdGlNb2RlOiBhbnk7XG5cdF9zZXRDb3VudHNPdXREYXRlZDogYW55O1xuXHRfZ2V0Q3VycmVudENvbnRyb2w6IGFueTtcblx0X2dldE11bHRpTW9kZUNvbnRyb2w6IGFueTtcblx0X2hhc011bHRpVmlzdWFsaXphdGlvbnM6IGFueTtcblx0X3Nob3VsZEF1dG9UcmlnZ2VyU2VhcmNoOiBhbnk7XG5cdF9nZXRUYWJsZTogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9iamVjdFBhZ2VDb250cm9sbGVyVHlwZSB7XG5cdGdldFN0aWNreUVkaXRNb2RlOiBhbnk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb2NrTGlzdFJlcG9ydENvbnRyb2xsZXIoKTogV2l0aE1vY2s8Q29udHJvbGxlciAmIFBhZ2VDb250cm9sbGVyICYgTGlzdFJlcG9ydENvbnRyb2xsZXJUeXBlICYgQ29tbW9uQ29udHJvbGxlclR5cGU+IHtcblx0Ly8gbWFudWFsbHkgYWRkIExpc3RSZXBvcnRDb250cm9sbGVyLmNvbnRyb2xsZXIgZnVuY3Rpb25zIHNpbmNlIEkgYW0gdW5hYmxlIHRvIGltcG9ydCB0aGUgcHJvdG90eXBlXG5cdGNvbnN0IGxpc3RSZXBvcnQ6IE1vY2tlZEluc3RhbmNlPExpc3RSZXBvcnRDb250cm9sbGVyVHlwZSAmIENvbW1vbkNvbnRyb2xsZXJUeXBlPiA9IHtcblx0XHRfZ2V0RmlsdGVyQmFyQ29udHJvbDogamVzdC5mbigpLFxuXHRcdF9nZXRDb250cm9sczogamVzdC5mbigpLFxuXHRcdF9pc0ZpbHRlckJhckhpZGRlbjogamVzdC5mbigpLFxuXHRcdF9pc011bHRpTW9kZTogamVzdC5mbigpLFxuXHRcdF9zZXRDb3VudHNPdXREYXRlZDogamVzdC5mbigpLFxuXHRcdF9nZXRDdXJyZW50Q29udHJvbDogamVzdC5mbigpLFxuXHRcdF9nZXRNdWx0aU1vZGVDb250cm9sOiBqZXN0LmZuKCksXG5cdFx0X2hhc011bHRpVmlzdWFsaXphdGlvbnM6IGplc3QuZm4oKSxcblx0XHRfc2hvdWxkQXV0b1RyaWdnZXJTZWFyY2g6IGplc3QuZm4oKSxcblx0XHRfZ2V0VGFibGU6IGplc3QuZm4oKSxcblx0XHRnZXRFeHRlbnNpb25BUEk6IGplc3QuZm4oKSxcblx0XHRfZWRpdEZsb3c6IG1vY2soSW50ZXJuYWxFZGl0RmxvdykgYXMgYW55XG5cdH07XG5cdHJldHVybiBPYmplY3QuYXNzaWduKG1vY2soUGFnZUNvbnRyb2xsZXIpIGFzIGFueSwgbGlzdFJlcG9ydCkgYXMgV2l0aE1vY2s8XG5cdFx0Q29udHJvbGxlciAmIFBhZ2VDb250cm9sbGVyICYgTGlzdFJlcG9ydENvbnRyb2xsZXJUeXBlICYgQ29tbW9uQ29udHJvbGxlclR5cGVcblx0Pjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1vY2tPYmplY3RQYWdlQ29udHJvbGxlcigpOiBXaXRoTW9jazxDb250cm9sbGVyICYgUGFnZUNvbnRyb2xsZXIgJiBPYmplY3RQYWdlQ29udHJvbGxlclR5cGUgJiBDb21tb25Db250cm9sbGVyVHlwZT4ge1xuXHQvLyBtYW51YWxseSBhZGQgTGlzdFJlcG9ydENvbnRyb2xsZXIuY29udHJvbGxlciBmdW5jdGlvbnMgc2luY2UgSSBhbSB1bmFibGUgdG8gaW1wb3J0IHRoZSBwcm90b3R5cGVcblx0Y29uc3Qgb2JqZWN0UGFnZTogTW9ja2VkSW5zdGFuY2U8T2JqZWN0UGFnZUNvbnRyb2xsZXJUeXBlICYgQ29tbW9uQ29udHJvbGxlclR5cGU+ID0ge1xuXHRcdGdldFN0aWNreUVkaXRNb2RlOiBqZXN0LmZuKCksXG5cdFx0Z2V0RXh0ZW5zaW9uQVBJOiBqZXN0LmZuKCksXG5cdFx0X2VkaXRGbG93OiBtb2NrKEludGVybmFsRWRpdEZsb3cpIGFzIGFueVxuXHR9O1xuXHRyZXR1cm4gT2JqZWN0LmFzc2lnbihtb2NrKFBhZ2VDb250cm9sbGVyKSBhcyBhbnksIG9iamVjdFBhZ2UpIGFzIFdpdGhNb2NrPFxuXHRcdENvbnRyb2xsZXIgJiBQYWdlQ29udHJvbGxlciAmIE9iamVjdFBhZ2VDb250cm9sbGVyVHlwZSAmIENvbW1vbkNvbnRyb2xsZXJUeXBlXG5cdD47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb2NrQ29udGV4dEZvckV4dGVuc2lvbjxFWFQgZXh0ZW5kcyBvYmplY3QsIEJBU0UgZXh0ZW5kcyBvYmplY3Q+KFxuXHRleHRlbnNpb246IEVYVCxcblx0Y29udHJvbGxlcjogV2l0aE1vY2s8Q29udHJvbGxlcj4sXG5cdGJhc2U/OiBCQVNFXG4pOiBXaXRoTW9jazxFWFQgJiBVSTVJbnN0YW5jZVR5cGU8QkFTRT4+IHtcblx0Y29uc3QgdmlldyA9IGNvbnRyb2xsZXIuZ2V0VmlldygpO1xuXHQoZXh0ZW5zaW9uIGFzIGFueSkuZ2V0VmlldyA9ICgpID0+IHZpZXc7XG5cdGNvbnN0IG1vY2tlZEJhc2UgPSBtb2NrKGJhc2UgfHwge30pO1xuXHRyZXR1cm4gT2JqZWN0LmFzc2lnbihtb2NrZWRCYXNlLCBleHRlbnNpb24pIGFzIFdpdGhNb2NrPEVYVCAmIFVJNUluc3RhbmNlVHlwZTxCQVNFPj47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb2NrRmlsdGVyQmFyKCk6IFdpdGhNb2NrPFxuXHRGaWx0ZXJCYXIgJiB7IHdhaXRGb3JJbml0aWFsaXphdGlvbjogRnVuY3Rpb247IF9iU2VhcmNoVHJpZ2dlcmVkOiBCb29sZWFuOyBfZ2V0Q29uZGl0aW9uTW9kZWw6IEZ1bmN0aW9uIH1cbj4ge1xuXHRjb25zdCBmaWx0ZXJCYXIgPSBtb2NrKEZpbHRlckJhcikgYXMgV2l0aE1vY2s8XG5cdFx0RmlsdGVyQmFyICYgeyB3YWl0Rm9ySW5pdGlhbGl6YXRpb246IEZ1bmN0aW9uOyBfYlNlYXJjaFRyaWdnZXJlZDogQm9vbGVhbjsgX2dldENvbmRpdGlvbk1vZGVsOiBGdW5jdGlvbiB9XG5cdD47XG5cdGZpbHRlckJhci5tb2NrLndhaXRGb3JJbml0aWFsaXphdGlvbiA9IGplc3QuZm4oKTtcblx0cmV0dXJuIGZpbHRlckJhcjtcbn1cbiJdfQ==