@openui5/sap.ui.support 1.146.0 → 1.147.1

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/REUSE.toml CHANGED
@@ -613,57 +613,6 @@ SPDX-License-Identifier = "MIT"
613
613
  SPDX-FileComment = "these files belong to: hammer.js"
614
614
 
615
615
 
616
- # Library: sap.ui.webc.common:
617
-
618
- [[annotations]]
619
- path = [
620
- "src/sap.ui.webc.common/src/sap/ui/webc/common/thirdparty/base/**",
621
- "src/sap.ui.webc.common/src/sap/ui/webc/common/thirdparty/theming/**",
622
- "src/sap.ui.webc.common/src/sap/ui/webc/common/thirdparty/localization/**",
623
- "src/sap.ui.webc.common/src/sap/ui/webc/common/thirdparty/icons/**",
624
- "src/sap.ui.webc.common/src/sap/ui/webc/common/thirdparty/icons-tnt/**",
625
- "src/sap.ui.webc.common/src/sap/ui/webc/common/thirdparty/icons-business-suite/**"
626
- ]
627
- precedence = "aggregate"
628
- SPDX-FileCopyrightText = "SAP"
629
- SPDX-License-Identifier = "Apache-2.0"
630
- SPDX-FileComment = "these files belong to: UI5 Web Components"
631
-
632
- [[annotations]]
633
- path = "src/sap.ui.webc.common/src/sap/ui/webc/common/thirdparty/lit-html/**"
634
- precedence = "aggregate"
635
- SPDX-FileCopyrightText = "Google LLC"
636
- SPDX-License-Identifier = "BSD-3-Clause"
637
- SPDX-FileComment = "these files belong to: lit-html"
638
-
639
-
640
- # Library: sap.ui.webc.fiori:
641
-
642
- [[annotations]]
643
- path = "src/sap.ui.webc.fiori/src/sap/ui/webc/fiori/thirdparty/**"
644
- precedence = "aggregate"
645
- SPDX-FileCopyrightText = "SAP"
646
- SPDX-License-Identifier = "Apache-2.0"
647
- SPDX-FileComment = "these files belong to: UI5 Web Components"
648
-
649
- [[annotations]]
650
- path = "src/sap.ui.webc.fiori/src/sap/ui/webc/fiori/lib/zxing.js"
651
- precedence = "aggregate"
652
- SPDX-FileCopyrightText = "2005 Sun Microsystems, Inc.; 2010-2014 University of Manchester; 2010-2015 Stian Soiland-Reyes; 2015 Peter Hull"
653
- SPDX-License-Identifier = "Apache-2.0"
654
- SPDX-FileComment = "these files belong to: ZXing"
655
-
656
-
657
- # Library: sap.ui.webc.main:
658
-
659
- [[annotations]]
660
- path = "src/sap.ui.webc.main/src/sap/ui/webc/main/thirdparty/**"
661
- precedence = "aggregate"
662
- SPDX-FileCopyrightText = "SAP"
663
- SPDX-License-Identifier = "Apache-2.0"
664
- SPDX-FileComment = "these files belong to: UI5 Web Components"
665
-
666
-
667
616
  # Outside of Libraries:
668
617
 
669
618
  [[annotations]]
package/THIRDPARTY.txt CHANGED
@@ -446,50 +446,6 @@ License Text: https://github.com/UI5/openui5/blob/master/LICENSES/MIT.txt
446
446
  Contained in: src/sap.ui.mdc/test/sap/ui/mdc/demokit/sample/Chart/ChartJS/control/hammerjs.js
447
447
 
448
448
 
449
- Library: sap.ui.webc.common:
450
-
451
- Component: UI5 Web Components, version: 1.18.0
452
- Copyright: SAP
453
- License: Apache-2.0
454
- License Text: https://github.com/UI5/openui5/blob/master/LICENSES/Apache-2.0.txt
455
- Contained in: src/sap.ui.webc.common/src/sap/ui/webc/common/thirdparty/base/**
456
- src/sap.ui.webc.common/src/sap/ui/webc/common/thirdparty/theming/**
457
- src/sap.ui.webc.common/src/sap/ui/webc/common/thirdparty/localization/**
458
- src/sap.ui.webc.common/src/sap/ui/webc/common/thirdparty/icons/**
459
- src/sap.ui.webc.common/src/sap/ui/webc/common/thirdparty/icons-tnt/**
460
- src/sap.ui.webc.common/src/sap/ui/webc/common/thirdparty/icons-business-suite/**
461
-
462
- Component: lit-html, version: 2.2.2
463
- Copyright: Google LLC
464
- License: BSD-3-Clause
465
- License Text: https://github.com/UI5/openui5/blob/master/LICENSES/BSD-3-Clause.txt
466
- Contained in: src/sap.ui.webc.common/src/sap/ui/webc/common/thirdparty/lit-html/**
467
-
468
-
469
- Library: sap.ui.webc.fiori:
470
-
471
- Component: UI5 Web Components, version: 1.18.0
472
- Copyright: SAP
473
- License: Apache-2.0
474
- License Text: https://github.com/UI5/openui5/blob/master/LICENSES/Apache-2.0.txt
475
- Contained in: src/sap.ui.webc.fiori/src/sap/ui/webc/fiori/thirdparty/**
476
-
477
- Component: ZXing, version: 0.17.1
478
- Copyright: 2005 Sun Microsystems, Inc.; 2010-2014 University of Manchester; 2010-2015 Stian Soiland-Reyes; 2015 Peter Hull
479
- License: Apache-2.0
480
- License Text: https://github.com/UI5/openui5/blob/master/LICENSES/Apache-2.0.txt
481
- Contained in: src/sap.ui.webc.fiori/src/sap/ui/webc/fiori/lib/zxing.js
482
-
483
-
484
- Library: sap.ui.webc.main:
485
-
486
- Component: UI5 Web Components, version: 1.18.0
487
- Copyright: SAP
488
- License: Apache-2.0
489
- License Text: https://github.com/UI5/openui5/blob/master/LICENSES/Apache-2.0.txt
490
- Contained in: src/sap.ui.webc.main/src/sap/ui/webc/main/thirdparty/**
491
-
492
-
493
449
  Outside of Libraries:
494
450
 
495
451
  Component: JSDoc 3, version: 3.6.7
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openui5/sap.ui.support",
3
- "version": "1.146.0",
3
+ "version": "1.147.1",
4
4
  "description": "OpenUI5 UI Library sap.ui.support",
5
5
  "author": "SAP SE (https://www.sap.com)",
6
6
  "license": "Apache-2.0",
@@ -14,10 +14,10 @@
14
14
  "url": "https://github.com/UI5/openui5.git"
15
15
  },
16
16
  "dependencies": {
17
- "@openui5/sap.m": "1.146.0",
18
- "@openui5/sap.ui.codeeditor": "1.146.0",
19
- "@openui5/sap.ui.core": "1.146.0",
20
- "@openui5/sap.ui.fl": "1.146.0",
21
- "@openui5/sap.ui.layout": "1.146.0"
17
+ "@openui5/sap.m": "1.147.1",
18
+ "@openui5/sap.ui.codeeditor": "1.147.1",
19
+ "@openui5/sap.ui.core": "1.147.1",
20
+ "@openui5/sap.ui.fl": "1.147.1",
21
+ "@openui5/sap.ui.layout": "1.147.1"
22
22
  }
23
23
  }
@@ -6,7 +6,7 @@
6
6
  <copyright>OpenUI5
7
7
  * (c) Copyright 2026 SAP SE or an SAP affiliate company.
8
8
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.</copyright>
9
- <version>1.146.0</version>
9
+ <version>1.147.1</version>
10
10
 
11
11
  <documentation>UI5 library: sap.ui.support</documentation>
12
12
 
@@ -32,7 +32,7 @@ sap.ui.define([
32
32
  * @namespace
33
33
  * @alias sap.ui.support.RuleAnalyzer
34
34
  * @author SAP SE
35
- * @version 1.146.0
35
+ * @version 1.147.1
36
36
  * @public
37
37
  */
38
38
  var RuleAnalyzer = {
@@ -38,7 +38,7 @@ sap.ui.define(["sap/ui/thirdparty/jquery",
38
38
  * @namespace
39
39
  * @deprecated Since version 1.60.0. Please use sap/ui/support/RuleAnalyzer instead.
40
40
  * @author SAP SE
41
- * @version 1.146.0
41
+ * @version 1.147.1
42
42
  * @public
43
43
  */
44
44
  jQuery.sap.support = {
@@ -23,7 +23,7 @@ sap.ui.define(["sap/ui/core/Lib", "sap/ui/base/DataType", "sap/ui/core/library"]
23
23
  * @namespace
24
24
  * @alias sap.ui.support
25
25
  * @author SAP SE
26
- * @version 1.146.0
26
+ * @version 1.147.1
27
27
  * @since 1.50
28
28
  * @public
29
29
  */
@@ -38,7 +38,7 @@ sap.ui.define(["sap/ui/core/Lib", "sap/ui/base/DataType", "sap/ui/core/library"]
38
38
  controls: [],
39
39
  elements: [],
40
40
  noLibraryCSS: true,
41
- version: "1.146.0",
41
+ version: "1.147.1",
42
42
  extensions: {
43
43
  //Configuration used for rule loading of Support Assistant
44
44
  "sap.ui.support": {
@@ -230,7 +230,7 @@ sap.ui.define(["sap/ui/core/Lib", "sap/ui/base/DataType", "sap/ui/core/library"]
230
230
  * Preset to find usages of deprecated controls, properties, aggregations and others.
231
231
  *
232
232
  * @public
233
- * @experimental since 1.120
233
+ * @since 1.120
234
234
  */
235
235
  Deprecations : {
236
236
  id: "Deprecations",
@@ -34,7 +34,7 @@ function (Log, Version, library, storage) {
34
34
  * @private
35
35
  * @alias sap.ui.support.RuleSet
36
36
  * @author SAP SE
37
- * @version 1.146.0
37
+ * @version 1.147.1
38
38
  * @param {object} oSettings Name of the initiated
39
39
  */
40
40
  var RuleSet = function (oSettings) {
@@ -53,7 +53,7 @@ sap.ui.define([
53
53
  *
54
54
  * @name sap.ui.support.Storage
55
55
  * @author SAP SE.
56
- * @version 1.146.0
56
+ * @version 1.147.1
57
57
  * @private
58
58
  */
59
59
  return /** @lends sap.ui.support.Storage */ {
@@ -24,7 +24,7 @@ sap.ui.define([
24
24
  * @class
25
25
  * @alias sap.ui.support.WindowCommunicationBus
26
26
  * @author SAP SE
27
- * @version 1.146.0
27
+ * @version 1.147.1
28
28
  * @private
29
29
  */
30
30
  var WindowCommunicationBus = BaseObject.extend("sap.ui.support.supportRules.WindowCommunicationBus", {
@@ -127,37 +127,78 @@ sap.ui.define([
127
127
  };
128
128
 
129
129
  /**
130
- * validate messages published from external window to application window (i.e. from tool frame to opener window)
131
- * no validation needed the other way (i.e. from opener window to tool frame)
130
+ * Compare the origins of two URLs. Returns false if either value is not a valid URL.
131
+ * @private
132
+ * @param {string} sOriginA First URL string
133
+ * @param {string} sOriginB Second URL string
134
+ * @returns {boolean} true if both URLs have the same origin
135
+ */
136
+ WindowCommunicationBus._compareOrigins = function (sOriginA, sOriginB) {
137
+ try {
138
+ return new URL(sOriginA).origin === new URL(sOriginB).origin;
139
+ } catch (e) {
140
+ return false;
141
+ }
142
+ };
143
+
144
+ /**
145
+ * Validate messages received from external windows.
146
+ * Both directions are validated:
147
+ * - Tool frame: validates origin of messages from opener window
148
+ * - Application window: validates origin, frame identifier, and URL path of messages from tool frame
132
149
  * @private
133
150
  * @param {EventListener} eMessage Event fired by the channels attached to the WindowCommunicationBus
134
151
  * @returns {boolean} true if the message is valid
135
152
  */
136
153
  WindowCommunicationBus.prototype._validate = function (eMessage) {
154
+ // 1. Validate origin
155
+ // tool frame: validate against the configured opener origin
137
156
  if (isEmptyObject(this._frame)) {
138
- // there are no channels associated with this bus, or
139
- // when loaded in a tool frame, the CommumnicationBus class will always have an empty 'frame' object.
140
- // in this case, a message is sent from the opener to the tool frame and no validation is necessary
157
+ const sExpectedOrigin = this._oConfig.getOrigin();
158
+
159
+ if (sExpectedOrigin) {
160
+ return WindowCommunicationBus._compareOrigins(eMessage.origin, sExpectedOrigin);
161
+ }
162
+
141
163
  return true;
142
164
  }
143
165
 
144
- // when a message is sent from a tool frame to the application (opener) window,
145
- // the message should have the correct details, validating that it comes from a known tool frame
166
+ // application window: validate against the known tool frame origin
167
+ if (!WindowCommunicationBus._compareOrigins(eMessage.origin, this._frame.origin)) {
168
+ return false;
169
+ }
146
170
 
147
- // check if the frame ID (number represented as string) is the same
148
- var bMatchIdentifier = eMessage.data._frameIdentifier === this._frame.identifier;
171
+ // 2. Validate frame identifier
172
+ if (eMessage.data._frameIdentifier !== this._frame.identifier) {
173
+ return false;
174
+ }
149
175
 
150
- // check if the URL matches: 1. check if the domain name matches - should be case insensitive
151
- var oOriginRegExp = new RegExp("^" + this._frame.origin + "$", "i");
152
- var bMatchOrigin = oOriginRegExp.exec(eMessage.origin);
176
+ // 3. Validate URL path
177
+ // Compare parsed pathnames to avoid substring-matching attacks.
178
+ // The frame URL may be absolute or relative — strip query string and relative segments
179
+ // to extract the path portion, then verify the message origin's pathname ends with it.
180
+ try {
181
+ const oOriginUrl = new URL(eMessage.data._origin);
182
+ const iFrameUrlQuery = this._frame.url.indexOf("?");
183
+ const sFrameUrlWithoutQuery = this._frame.url.substring(0, iFrameUrlQuery).replace(/\.\.\//g, "").replace(/\.\//g, "");
184
+
185
+ // extract just the pathname: parse as URL if absolute, otherwise use the cleaned string as-is
186
+ let sFramePath;
187
+ try {
188
+ sFramePath = new URL(sFrameUrlWithoutQuery).pathname;
189
+ } catch (e) {
190
+ // relative URL — use cleaned string directly as a path suffix
191
+ sFramePath = sFrameUrlWithoutQuery;
192
+ }
153
193
 
154
- // check if the URL matches: 2. check if the path to the iframe matches.
155
- // if the frame URL is relative to the parent window's URL, remove relative path segments
156
- var iFrameUrlQuery = this._frame.url.indexOf("?");
157
- var sFrameUrl = this._frame.url.substr(0, iFrameUrlQuery).replace(/\.\.\//g, "").replace(/\.\//g, "") + this._frame.url.substr(iFrameUrlQuery);
158
- var bMatchUrl = eMessage.data._origin.indexOf(sFrameUrl) > -1;
194
+ if (!oOriginUrl.pathname.endsWith(sFramePath)) {
195
+ return false;
196
+ }
197
+ } catch (e) {
198
+ return false;
199
+ }
159
200
 
160
- return bMatchIdentifier && bMatchOrigin && bMatchUrl;
201
+ return true;
161
202
  };
162
203
 
163
204
  WindowCommunicationBus.prototype._getFrameIdentifier = function () {
@@ -409,7 +409,7 @@ sap.ui.define(['sap/ui/thirdparty/jquery', 'sap/base/Log', 'sap/base/security/en
409
409
 
410
410
  jQuery(reportWindow.document).ready(function () {
411
411
  // make sure everything is cleared before writing the new report
412
- reportWindow.document.documentElement.innerHTML = '';
412
+ reportWindow.document.documentElement.replaceChildren();
413
413
 
414
414
  reportWindow.document.write(content);
415
415
  });
@@ -93,7 +93,7 @@ sap.ui.define([
93
93
  *
94
94
  * @extends sap.ui.support.supportRules.ui.controllers.BaseController
95
95
  * @author SAP SE
96
- * @version 1.146.0
96
+ * @version 1.147.1
97
97
  * @private
98
98
  * @alias sap.ui.support.supportRules.ui.controllers.PresetsController
99
99
  */
@@ -12,7 +12,7 @@
12
12
  data-sap-ui-compat-version="edge"
13
13
  data-sap-ui-libs="sap.m, sap.ui.table, sap.ui.unified, sap.ui.layout, sap.tnt, sap.ui.support"
14
14
  data-sap-ui-on-init="module:sap/ui/support/supportRules/ui/Overlay"
15
- data-sap-ui-theme="sap_belize"
15
+ data-sap-ui-theme="sap_horizon"
16
16
  ></script>
17
17
  </head>
18
18
 
@@ -22,7 +22,7 @@
22
22
  <m:items>
23
23
  <m:IconTabHeader
24
24
  id="ruleSetsView"
25
- select="onSelectedRuleSets"
25
+ select=".onSelectedRuleSets"
26
26
  selectedKey="{/selectedSetPreviewKey}"
27
27
  class="customIconTabHeader">
28
28
  <m:layoutData>
@@ -34,8 +34,8 @@
34
34
  <m:IconTabFilter key="additionalRulesets" text="Additional Rulesets" />
35
35
  </m:items>
36
36
  </m:IconTabHeader>
37
- <m:Button class="supportAnalyzeButton" text="Analyze" press="onAnalyze" type="Emphasized"/>
38
- <m:Button class="supportSettingsButton" icon="sap-icon://settings" press="onAnalyzeSettings" type="Emphasized"/>
37
+ <m:Button class="supportAnalyzeButton" text="Analyze" press=".onAnalyze" type="Emphasized"/>
38
+ <m:Button class="supportSettingsButton" icon="sap-icon://settings" press=".onAnalyzeSettings" type="Emphasized"/>
39
39
  </m:items>
40
40
  </m:HBox>
41
41
  </m:contentMiddle>
@@ -80,7 +80,7 @@
80
80
  text="Create Rule"
81
81
  icon="sap-icon://add"
82
82
  visible="{= !${/tempRulesDisabled}}"
83
- press="createNewRulePress"/>
83
+ press=".createNewRulePress"/>
84
84
  </m:contentRight>
85
85
  </m:Bar>
86
86
  </m:subHeader>
@@ -97,8 +97,8 @@
97
97
  selectionBehavior="RowSelector"
98
98
  rowActionCount="1"
99
99
  visible="{= ${/selectedSetPreviewKey} === 'availableRules' }"
100
- cellClick="onCellClick"
101
- rowSelectionChange="onRowSelectionChange"
100
+ cellClick=".onCellClick"
101
+ rowSelectionChange=".onRowSelectionChange"
102
102
  >
103
103
  <t:columns>
104
104
  <t:Column id="rulesColumn"
@@ -143,9 +143,9 @@
143
143
  <t:rowActionTemplate>
144
144
  <t:RowAction id="rowActionTemplate">
145
145
  <t:items>
146
- <t:RowActionItem icon="sap-icon://edit" text="Edit" press="editRule" visible="{= ${ruleSets>libName} === 'temporary'}" />
147
- <t:RowActionItem icon="sap-icon://delete" text="Delete" press="deleteTemporaryRule" visible="{= ${ruleSets>libName} === 'temporary'}" />
148
- <t:RowActionItem icon="sap-icon://copy" text="Copy" press="duplicateRule" visible="{= !${/tempRulesDisabled} &amp;&amp; ${ruleSets>libName} !== 'temporary' &amp;&amp; ${ruleSets>type} !== 'lib'}" />
146
+ <t:RowActionItem icon="sap-icon://edit" text="Edit" press=".editRule" visible="{= ${ruleSets>libName} === 'temporary'}" />
147
+ <t:RowActionItem icon="sap-icon://delete" text="Delete" press=".deleteTemporaryRule" visible="{= ${ruleSets>libName} === 'temporary'}" />
148
+ <t:RowActionItem icon="sap-icon://copy" text="Copy" press=".duplicateRule" visible="{= !${/tempRulesDisabled} &amp;&amp; ${ruleSets>libName} !== 'temporary' &amp;&amp; ${ruleSets>type} !== 'lib'}" />
149
149
  </t:items>
150
150
  </t:RowAction>
151
151
  </t:rowActionTemplate>
@@ -164,7 +164,7 @@
164
164
  <m:StandardListItem
165
165
  title="{}"/>
166
166
  </m:List>
167
- <m:Button class="customMargin" text="Load" type="Emphasized" press="loadMarkedSupportLibraries" />
167
+ <m:Button class="customMargin" text="Load" type="Emphasized" press=".loadMarkedSupportLibraries" />
168
168
  </l:VerticalLayout>
169
169
  </m:Page>
170
170
  </l:contentAreas>
@@ -6,13 +6,13 @@
6
6
  title="{/executionScopeTitle}"
7
7
  contentMinWidth="250px"
8
8
  class="sapUiContentPadding"
9
- beforeOpen="onBeforePopoverOpen"
9
+ beforeOpen=".onBeforePopoverOpen"
10
10
  placement="Bottom">
11
11
  <content>
12
12
  <VBox>
13
13
  <RadioButton groupName="analyzeContext"
14
14
  text="{/executionScopes/global/displayName}"
15
- select="onContextSelect"
15
+ select=".onContextSelect"
16
16
  selected="{= ${/analyzeContext/key} === 'global'}"
17
17
  tooltip="{/executionScopes/global/description}">
18
18
  <customData>
@@ -21,7 +21,7 @@
21
21
  </RadioButton>
22
22
  <RadioButton groupName="analyzeContext"
23
23
  text="{/executionScopes/subtree/displayName}"
24
- select="onContextSelect"
24
+ select=".onContextSelect"
25
25
  selected="{= ${/analyzeContext/key} === 'subtree'}"
26
26
  tooltip="{/executionScopes/subtree/description}">
27
27
  <customData>
@@ -35,11 +35,11 @@
35
35
  enabled="{= ${/analyzeContext/key} === 'subtree'}"
36
36
  value="{/subtreeExecutionContextId}"
37
37
  width="300px"
38
- liveChange="onExecutionContextChange"/>
38
+ liveChange=".onExecutionContextChange"/>
39
39
  </l:VerticalLayout>
40
40
  <RadioButton groupName="analyzeContext"
41
41
  text="{/executionScopes/components/displayName}"
42
- select="onContextSelect"
42
+ select=".onContextSelect"
43
43
  selected="{= ${/analyzeContext/key} === 'components'}"
44
44
  tooltip="{/executionScopes/components/description}">
45
45
  <customData>
@@ -52,7 +52,7 @@
52
52
  class="sapUiSupportToolSettingsPopoverPadding">
53
53
  <CheckBox text="{text}"
54
54
  enabled="{= ${/analyzeContext/key} === 'components'}"
55
- select="onScopeComponentSelect"
55
+ select=".onScopeComponentSelect"
56
56
  selected="{selected}"
57
57
  />
58
58
  </l:VerticalLayout>
@@ -21,7 +21,7 @@
21
21
  </l:layoutData>
22
22
  <Label text="Severity:" class="customMargin" />
23
23
  <Select id='severityFilter'
24
- change="updateIssuesVisibility"
24
+ change=".updateIssuesVisibility"
25
25
  selectedKey="{/severityFilter}"
26
26
  items="{/severitiesFilter}"
27
27
  class="customMargin" >
@@ -34,7 +34,7 @@
34
34
  </l:layoutData>
35
35
  <Label text="Category:" class="customMargin" />
36
36
  <Select id='categoryFilter'
37
- change="updateIssuesVisibility"
37
+ change=".updateIssuesVisibility"
38
38
  selectedKey="{/categoryFilter}"
39
39
  items="{/categoriesFilter}"
40
40
  class="customMargin">
@@ -47,7 +47,7 @@
47
47
  </l:layoutData>
48
48
  <Label text="Audiences:" class="customMargin" />
49
49
  <Select id='audiencesFilter'
50
- change="updateIssuesVisibility"
50
+ change=".updateIssuesVisibility"
51
51
  selectedKey="{/audienceFilter}"
52
52
  items="{/audiencesFilter}"
53
53
  class="customMargin" >
@@ -66,7 +66,7 @@
66
66
  <Label text="" class="customMargin" />
67
67
  <MenuButton id='ReportMenuButton' text="Report" icon="sap-icon://order-status" visible="{= ${/analyzePressed}}">
68
68
  <menu>
69
- <Menu itemSelected="onReportPress">
69
+ <Menu itemSelected=".onReportPress">
70
70
  <items>
71
71
  <MenuItem text="View" />
72
72
  <MenuItem text="Download" />
@@ -109,7 +109,7 @@
109
109
  <FlexItemData growFactor="2" />
110
110
  </layoutData>
111
111
  </Text>
112
- <Button icon="sap-icon://clear-filter" press="clearFiltersAndElementSelection" enabled="{/bEnabledFilterButton}">
112
+ <Button icon="sap-icon://clear-filter" press=".clearFiltersAndElementSelection" enabled="{/bEnabledFilterButton}">
113
113
  <layoutData>
114
114
  <FlexItemData growFactor="0" />
115
115
  </layoutData>
@@ -123,7 +123,7 @@
123
123
  selectionBehavior="RowOnly"
124
124
  enableColumnReordering="false"
125
125
  rows="{path: '/issues'}"
126
- rowSelectionChange="onRowSelectionChanged">
126
+ rowSelectionChange=".onRowSelectionChanged">
127
127
  <t:rowMode>
128
128
  <trm:Auto rowContentHeight="24"/>
129
129
  </t:rowMode>
@@ -154,7 +154,7 @@
154
154
  selectionMode="Single"
155
155
  selectionBehavior="RowOnly"
156
156
  enableColumnReordering="false"
157
- rowSelectionChange="onRowSelection"
157
+ rowSelectionChange=".onRowSelection"
158
158
  id="issueTable">
159
159
  <t:rowMode>
160
160
  <trm:Fixed rowContentHeight="24" rowCount="{/visibleRowCount}"/>
@@ -230,7 +230,7 @@
230
230
  ''
231
231
  ],
232
232
  formatter: '.formatter.resolutionUrl'
233
- }" press="openDocumentation">
233
+ }" press=".openDocumentation">
234
234
  <layoutData>
235
235
  <f:ColumnElementData cellsLarge="8" cellsSmall="12" />
236
236
  </layoutData>
@@ -13,7 +13,7 @@
13
13
  <Bar class="sapContrast" design="SubHeader" id="sapSTShowButtonBar">
14
14
  <contentMiddle>
15
15
  <Text text="{/constants/SUPPORT_ASSISTANT_NAME}" class="STCustomHeaderInfo" />
16
- <c:Icon src="sap-icon://full-screen" press="toggleHide" class="STCustomHeaderInfo" />
16
+ <c:Icon src="sap-icon://full-screen" press=".toggleHide" class="STCustomHeaderInfo" />
17
17
  </contentMiddle>
18
18
  </Bar>
19
19
 
@@ -59,19 +59,19 @@
59
59
  <contentRight>
60
60
  <Toolbar
61
61
  id="navToolbar">
62
- <Button id="issuesBtn" text="Issues ({/issuesCount})" enabled="{= ${/analyzedFinish} === true}" press="goToIssues"/>
62
+ <Button id="issuesBtn" text="Issues ({/issuesCount})" enabled="{= ${/analyzedFinish} === true}" press=".goToIssues"/>
63
63
 
64
- <Button id="analysisBtn" text="Rules ({/selectedRulesCount})" press="goToAnalysis" type="Emphasized"/>
64
+ <Button id="analysisBtn" text="Rules ({/selectedRulesCount})" press=".goToAnalysis" type="Emphasized"/>
65
65
 
66
- <c:Icon id="settingsIcon" src="sap-icon://settings" press="onSettings" class="STCustomHeaderInfo STHelpIcon sapUiTinyMargin"/>
66
+ <c:Icon id="settingsIcon" src="sap-icon://settings" press=".onSettings" class="STCustomHeaderInfo STHelpIcon sapUiTinyMargin"/>
67
67
 
68
- <c:Icon src="sap-icon://sys-help" press="goToWiki" class="STCustomHeaderInfo STHelpIcon sapUiTinyMargin" tooltip="Open Documentation" />
68
+ <c:Icon src="sap-icon://sys-help" press=".goToWiki" class="STCustomHeaderInfo STHelpIcon sapUiTinyMargin" tooltip="Open Documentation" />
69
69
 
70
- <c:Icon src="sap-icon://minimize" press="toggleHide" class="STCustomHeaderInfo sapUiTinyMargin" visible="{/hasNoOpener}"/>
70
+ <c:Icon src="sap-icon://minimize" press=".toggleHide" class="STCustomHeaderInfo sapUiTinyMargin" visible="{/hasNoOpener}"/>
71
71
 
72
- <Button icon="sap-icon://down" press="resizeDown" visible="{/hasNoOpener}"/>
72
+ <Button icon="sap-icon://down" press=".resizeDown" visible="{/hasNoOpener}"/>
73
73
 
74
- <Button icon="sap-icon://up" press="resizeUp" visible="{/hasNoOpener}"/>
74
+ <Button icon="sap-icon://up" press=".resizeUp" visible="{/hasNoOpener}"/>
75
75
  </Toolbar>
76
76
  </contentRight>
77
77
  </Bar>
@@ -52,10 +52,10 @@
52
52
  </f:content>
53
53
  </f:SimpleForm>
54
54
  <beginButton>
55
- <Button id="cancel" text="Cancel" press="onExportCancelPress" />
55
+ <Button id="cancel" text="Cancel" press=".onExportCancelPress" />
56
56
  </beginButton>
57
57
  <endButton>
58
- <Button id="exportBtn" text="Export" type="Emphasized" press="onExportFinalizePress" class="sapUiTinyMarginEnd" />
58
+ <Button id="exportBtn" text="Export" type="Emphasized" press=".onExportFinalizePress" class="sapUiTinyMarginEnd" />
59
59
  </endButton>
60
60
  </Dialog>
61
61
  </core:FragmentDefinition>
@@ -7,7 +7,7 @@
7
7
  <Dialog
8
8
  id="importDialog"
9
9
  title="Import a Rule Preset"
10
- beforeClose="onImportDialogClose"
10
+ beforeClose=".onImportDialogClose"
11
11
  resizable="true"
12
12
  contentWidth="650px"
13
13
  contentHeight="400px">
@@ -25,8 +25,8 @@
25
25
  id="fileUpload"
26
26
  buttonOnly="true"
27
27
  buttonText="Browse ..."
28
- change="onImportFileChange"
29
- typeMissmatch="onImportFileMismatch"
28
+ change=".onImportFileChange"
29
+ typeMissmatch=".onImportFileMismatch"
30
30
  fileType="json"
31
31
  mimeType="application/json"
32
32
  class="sapUiTinyMarginBottom">
@@ -78,10 +78,10 @@
78
78
  </f:content>
79
79
  </f:SimpleForm>
80
80
  <beginButton>
81
- <Button id="cancel" text="Cancel" press="onImportCancelPress" />
81
+ <Button id="cancel" text="Cancel" press=".onImportCancelPress" />
82
82
  </beginButton>
83
83
  <endButton>
84
- <Button id="importBtn" type="Emphasized" text="Import" enabled="false" press="onImportFinalizePress" class="sapUiTinyMarginEnd" />
84
+ <Button id="importBtn" type="Emphasized" text="Import" enabled="false" press=".onImportFinalizePress" class="sapUiTinyMarginEnd" />
85
85
  </endButton>
86
86
  </Dialog>
87
87
  </core:FragmentDefinition>
@@ -13,7 +13,7 @@
13
13
  <Title id="rulePresetsTitle" text="Rule Presets" />
14
14
  </contentMiddle>
15
15
  <contentRight>
16
- <core:Icon id="help" width="18px" src="sap-icon://sys-help" decorative="false" press="openHelp" />
16
+ <core:Icon id="help" width="18px" src="sap-icon://sys-help" decorative="false" press=".openHelp" />
17
17
  </contentRight>
18
18
  </Bar>
19
19
  </customHeader>
@@ -28,8 +28,8 @@
28
28
  },
29
29
  groupHeaderFactory: '.getGroupHeader'
30
30
  }"
31
- itemPress="onPresetItemPress"
32
- selectionChange="onPresetChange"
31
+ itemPress=".onPresetItemPress"
32
+ selectionChange=".onPresetChange"
33
33
  mode="SingleSelectMaster">
34
34
  <CustomListItem selected="{selected}" type="Active" tooltip="{description}">
35
35
  <HBox
@@ -47,13 +47,13 @@
47
47
  tooltip="Return to default selection"
48
48
  icon="sap-icon://refresh"
49
49
  type="Transparent"
50
- press="onPresetItemReset"
50
+ press=".onPresetItemReset"
51
51
  visible="{= ${isModified} ? true : false}"/>
52
52
  <Button
53
53
  tooltip="Delete Preset"
54
54
  icon="sap-icon://sys-cancel"
55
55
  type="Transparent"
56
- press="onPresetItemDelete"
56
+ press=".onPresetItemDelete"
57
57
  visible="{= ${disableDelete} ? false : true}" />
58
58
  </HBox>
59
59
  </HBox>
@@ -62,8 +62,8 @@
62
62
  <footer>
63
63
  <Toolbar>
64
64
  <ToolbarSpacer />
65
- <Button id="presetImport" text="Import" press="onImportPress" />
66
- <Button id="presetExport" text="Export" press="onExportPress" />
65
+ <Button id="presetImport" text="Import" press=".onImportPress" />
66
+ <Button id="presetExport" text="Export" press=".onExportPress" />
67
67
  </Toolbar>
68
68
  </footer>
69
69
  </Page>
@@ -14,12 +14,12 @@
14
14
  <m:contentLeft>
15
15
  <m:Button
16
16
  icon="sap-icon://arrow-left"
17
- press="goToRuleProperties"
17
+ press=".goToRuleProperties"
18
18
  text="Back"/>
19
19
  </m:contentLeft>
20
20
  <m:contentMiddle>
21
21
  <m:IconTabHeader
22
- select="rulesToolbarEditITHSelect"
22
+ select=".rulesToolbarEditITHSelect"
23
23
  selectedKey="{/selectedRuleEditKey}"
24
24
  class="customIconTabHeader">
25
25
  <m:items>
@@ -46,12 +46,12 @@
46
46
  </f:FormElement>
47
47
  <f:FormElement label="Async">
48
48
  <f:fields>
49
- <m:RadioButton groupName="asyncEditContext" text="true" selected="{= ${/editRule/async} === true }" select="onAsyncSwitch">
49
+ <m:RadioButton groupName="asyncEditContext" text="true" selected="{= ${/editRule/async} === true }" select=".onAsyncSwitch">
50
50
  <m:customData>
51
51
  <c:CustomData key="asyncEditContext" value="true" />
52
52
  </m:customData>
53
53
  </m:RadioButton>
54
- <m:RadioButton groupName="asyncEditContext" text="false" selected="{= ${/editRule/async} !== true }" select="onAsyncSwitch">
54
+ <m:RadioButton groupName="asyncEditContext" text="false" selected="{= ${/editRule/async} !== true }" select=".onAsyncSwitch">
55
55
  <m:customData>
56
56
  <c:CustomData key="asyncEditContext" value="false" />
57
57
  </m:customData>
@@ -110,7 +110,7 @@
110
110
  <f:fields>
111
111
  <m:Input placeholder="Text" value="{/tempLink/text}" />
112
112
  <m:Input placeholder="Href" value="{/tempLink/href}" />
113
- <m:Button text="Add Link" press="addLinkToRule" icon="sap-icon://add" />
113
+ <m:Button text="Add Link" press=".addLinkToRule" icon="sap-icon://add" />
114
114
  </f:fields>
115
115
  </f:FormElement>
116
116
  <f:FormElement label="" fields="{/editRule/resolutionurls}">
@@ -154,7 +154,7 @@
154
154
  <m:Bar>
155
155
  <m:contentRight>
156
156
  <m:Button
157
- press="updateRule"
157
+ press=".updateRule"
158
158
  text="Update"
159
159
  type="Emphasized" />
160
160
  </m:contentRight>
@@ -169,12 +169,12 @@
169
169
  <m:contentLeft>
170
170
  <m:Button
171
171
  icon="sap-icon://arrow-left"
172
- press="goToRuleProperties"
172
+ press=".goToRuleProperties"
173
173
  text="Back"/>
174
174
  </m:contentLeft>
175
175
  <m:contentMiddle>
176
176
  <m:IconTabHeader
177
- select="rulesToolbarITHSelect"
177
+ select=".rulesToolbarITHSelect"
178
178
  selectedKey="{/selectedRuleCreateKey}"
179
179
  class="customIconTabHeader">
180
180
  <m:items>
@@ -201,12 +201,12 @@
201
201
  </f:FormElement>
202
202
  <f:FormElement label="Async">
203
203
  <f:fields>
204
- <m:RadioButton groupName="asyncContext" text="true" selected="{= ${/newRule/async} === true }" select="onAsyncSwitch">
204
+ <m:RadioButton groupName="asyncContext" text="true" selected="{= ${/newRule/async} === true }" select=".onAsyncSwitch">
205
205
  <m:customData>
206
206
  <c:CustomData key="asyncContext" value="true" />
207
207
  </m:customData>
208
208
  </m:RadioButton>
209
- <m:RadioButton groupName="asyncContext" text="false" selected="{= ${/newRule/async} !== true }" select="onAsyncSwitch">
209
+ <m:RadioButton groupName="asyncContext" text="false" selected="{= ${/newRule/async} !== true }" select=".onAsyncSwitch">
210
210
  <m:customData>
211
211
  <c:CustomData key="asyncContext" value="false" />
212
212
  </m:customData>
@@ -265,7 +265,7 @@
265
265
  <f:fields>
266
266
  <m:Input placeholder="Text" value="{/tempLink/text}" />
267
267
  <m:Input placeholder="Href" value="{/tempLink/href}" />
268
- <m:Button text="Add" press="addLinkToRule" icon="sap-icon://add" />
268
+ <m:Button text="Add" press=".addLinkToRule" icon="sap-icon://add" />
269
269
  </f:fields>
270
270
  </f:FormElement>
271
271
  <f:FormElement label="" fields="{/newRule/resolutionurls}">
@@ -310,7 +310,7 @@
310
310
  <m:Bar>
311
311
  <m:contentRight>
312
312
  <m:Button
313
- press="addNewRule"
313
+ press=".addNewRule"
314
314
  text="Add Rule"
315
315
  type="Emphasized" />
316
316
  </m:contentRight>
@@ -45,9 +45,9 @@
45
45
  class="sapUiTinyMarginLeft"
46
46
  src="sap-icon://copy"
47
47
  tooltip="Copy Location"
48
- press="copySupportAssistantOriginToClipboard" />
48
+ press=".copySupportAssistantOriginToClipboard" />
49
49
  </l:HorizontalLayout>
50
-
50
+
51
51
  <l:HorizontalLayout class="sapUiTinyMarginTop">
52
52
  <Text text="Support Assistant Version : {/supportAssistantVersion}" renderWhitespace="true"></Text>
53
53
  </l:HorizontalLayout>
@@ -1,4 +1,4 @@
1
- /* eslint-disable no-eval */
1
+ /* eslint-disable no-new-func */
2
2
 
3
3
  /*!
4
4
  * OpenUI5
@@ -9,11 +9,12 @@
9
9
  sap.ui.define([], function () {
10
10
  "use strict";
11
11
 
12
- var bIsEvalAllowed;
12
+ let bIsEvalAllowed;
13
13
 
14
- // Checks if eval can be used in the current platform (based on CSP restrictions)
14
+ // Checks if the Function constructor can be used in the current platform (based on CSP restrictions)
15
15
  try {
16
- eval("");
16
+ // eslint-disable-next-line no-new
17
+ new Function("");
17
18
  bIsEvalAllowed = true;
18
19
  } catch (e) {
19
20
  bIsEvalAllowed = false;
@@ -34,11 +35,7 @@ sap.ui.define([], function () {
34
35
  * @throws Error why eval failed, for example invalid syntax
35
36
  */
36
37
  evalFunction: function (sFunction) {
37
- var fn;
38
-
39
- eval("fn = " + sFunction);
40
-
41
- return fn;
38
+ return new Function("return (" + sFunction + ")")();
42
39
  }
43
40
  };
44
- });
41
+ });