@ui5/mcp-server 0.1.3 → 0.1.5
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/CHANGELOG.md +32 -0
- package/README.md +25 -20
- package/lib/registerTools.js +4 -0
- package/lib/registerTools.js.map +1 -1
- package/lib/resources/documentation/getDocumentation.d.ts +1 -1
- package/lib/resources/documentation/getDocumentation.js +2 -2
- package/lib/resources/documentation/getDocumentation.js.map +1 -1
- package/lib/tools/create_integration_card/create_integration_card.d.ts +8 -0
- package/lib/tools/create_integration_card/create_integration_card.js +74 -0
- package/lib/tools/create_integration_card/create_integration_card.js.map +1 -0
- package/lib/tools/create_integration_card/index.d.ts +3 -0
- package/lib/tools/create_integration_card/index.js +42 -0
- package/lib/tools/create_integration_card/index.js.map +1 -0
- package/lib/tools/create_integration_card/schema.d.ts +8 -0
- package/lib/tools/create_integration_card/schema.js +20 -0
- package/lib/tools/create_integration_card/schema.js.map +1 -0
- package/lib/tools/get_integration_cards_guidelines/guidelines.d.ts +1 -0
- package/lib/tools/get_integration_cards_guidelines/guidelines.js +6 -0
- package/lib/tools/get_integration_cards_guidelines/guidelines.js.map +1 -0
- package/lib/tools/get_integration_cards_guidelines/index.d.ts +3 -0
- package/lib/tools/get_integration_cards_guidelines/index.js +31 -0
- package/lib/tools/get_integration_cards_guidelines/index.js.map +1 -0
- package/lib/tools/run_ui5_linter/resultContext.js +1 -1
- package/lib/tools/run_ui5_linter/resultContext.js.map +1 -1
- package/lib/utils/ui5Manifest.d.ts +1 -0
- package/lib/utils/ui5Manifest.js +14 -0
- package/lib/utils/ui5Manifest.js.map +1 -0
- package/npm-shrinkwrap.json +356 -287
- package/package.json +15 -14
- package/resources/docs/1.136.11/22f50c0f0b104bf3ba84620880793d3f.md +131 -0
- package/resources/docs/1.136.11/738ed025b36e484fa99046d0f80552fd.md +173 -0
- package/resources/docs/{1.136.7 → 1.136.11}/index.json +14 -0
- package/resources/guidelines.md +11 -1
- package/resources/integration_cards_guidelines.md +1679 -0
- package/resources/template-card/package.json +12 -0
- package/resources/template-card/src/analytical.ejs +157 -0
- package/resources/template-card/src/calendar.ejs +90 -0
- package/resources/template-card/src/dt/Configuration.js +43 -0
- package/resources/template-card/src/i18n/i18n.properties +2 -0
- package/resources/template-card/src/list.ejs +27 -0
- package/resources/template-card/src/manifest.json +38 -0
- package/resources/template-card/src/object.ejs +44 -0
- package/resources/template-card/src/table.ejs +36 -0
- package/resources/template-card/src/timeline.ejs +42 -0
- package/resources/template-card/test/App.js +50 -0
- package/resources/template-card/test/index.css +57 -0
- package/resources/template-card/test/index.html +45 -0
- /package/resources/docs/{1.136.7 → 1.136.11}/00737d6c1b864dc3ab72ef56611491c4.md +0 -0
- /package/resources/docs/{1.136.7 → 1.136.11}/0187ea5e2eff4166b0453b9dcc8fc64f.md +0 -0
- /package/resources/docs/{1.136.7 → 1.136.11}/032be2cb2e1d4115af20862673bedcdb.md +0 -0
- /package/resources/docs/{1.136.7 → 1.136.11}/28fcd55b04654977b63dacbee0552712.md +0 -0
- /package/resources/docs/{1.136.7 → 1.136.11}/676b636446c94eada183b1218a824717.md +0 -0
- /package/resources/docs/{1.136.7 → 1.136.11}/a87ca843bcee469f82a9072927a7dcdb.md +0 -0
- /package/resources/docs/{1.136.7 → 1.136.11}/b0fb4de7364f4bcbb053a99aa645affe.md +0 -0
- /package/resources/docs/{1.136.7 → 1.136.11}/fe1a6dba940e479fb7c3bc753f92b28c.md +0 -0
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "template-card",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "A basic template card project",
|
|
5
|
+
"scripts": {
|
|
6
|
+
"start": "http-server ./ -c-1 -o test/index.html",
|
|
7
|
+
"test": "echo \"No tests specified\" && exit 0"
|
|
8
|
+
},
|
|
9
|
+
"devDependencies": {
|
|
10
|
+
"http-server": "^14.1.1"
|
|
11
|
+
}
|
|
12
|
+
}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
"data": {
|
|
2
|
+
"json": {
|
|
3
|
+
"dimensions": {
|
|
4
|
+
"weekLabel": "Weeks"
|
|
5
|
+
},
|
|
6
|
+
"measures": {
|
|
7
|
+
"revenueLabel": "Revenue",
|
|
8
|
+
"costLabel": "Costs"
|
|
9
|
+
},
|
|
10
|
+
"legend": {
|
|
11
|
+
"visible": true,
|
|
12
|
+
"position": "bottom",
|
|
13
|
+
"alignment": "topLeft"
|
|
14
|
+
},
|
|
15
|
+
"list": [
|
|
16
|
+
{
|
|
17
|
+
"Week": "CW14",
|
|
18
|
+
"Revenue": 431000.22,
|
|
19
|
+
"Cost": 230000,
|
|
20
|
+
"Cost1": 24800.63,
|
|
21
|
+
"Cost2": 205199.37,
|
|
22
|
+
"Cost3": 199999.37,
|
|
23
|
+
"Target": 500000,
|
|
24
|
+
"Budget": 210000
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"Week": "CW15",
|
|
28
|
+
"Revenue": 494000.3,
|
|
29
|
+
"Cost": 238000,
|
|
30
|
+
"Cost1": 99200.39,
|
|
31
|
+
"Cost2": 138799.61,
|
|
32
|
+
"Cost3": 200199.37,
|
|
33
|
+
"Target": 500000,
|
|
34
|
+
"Budget": 224000
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"Week": "CW16",
|
|
38
|
+
"Revenue": 491000.17,
|
|
39
|
+
"Cost": 221000,
|
|
40
|
+
"Cost1": 70200.54,
|
|
41
|
+
"Cost2": 150799.46,
|
|
42
|
+
"Cost3": 80799.46,
|
|
43
|
+
"Target": 500000,
|
|
44
|
+
"Budget": 238000
|
|
45
|
+
}
|
|
46
|
+
],
|
|
47
|
+
"header": {
|
|
48
|
+
"number": "65.34",
|
|
49
|
+
"unit": "K",
|
|
50
|
+
"trend": "Down",
|
|
51
|
+
"state": "Error",
|
|
52
|
+
"target": {
|
|
53
|
+
"number": 100,
|
|
54
|
+
"unit": "K"
|
|
55
|
+
},
|
|
56
|
+
"deviation": {
|
|
57
|
+
"number": 34.7,
|
|
58
|
+
"unit": "%"
|
|
59
|
+
},
|
|
60
|
+
"details": "Q1, 2018"
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
"header": {
|
|
65
|
+
"type": "Numeric",
|
|
66
|
+
"title": "{i18n>title}",
|
|
67
|
+
"subtitle": "{i18n>subtitle}",
|
|
68
|
+
"mainIndicator": {
|
|
69
|
+
"number": "{header/number}",
|
|
70
|
+
"unit": "{header/unit}",
|
|
71
|
+
"trend": "{header/trend}",
|
|
72
|
+
"state": "{header/state}"
|
|
73
|
+
},
|
|
74
|
+
"details": "{header/details}",
|
|
75
|
+
"sideIndicators": [
|
|
76
|
+
{
|
|
77
|
+
"title": "Target",
|
|
78
|
+
"number": "{header/target/number}",
|
|
79
|
+
"unit": "{header/target/unit}"
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"title": "Deviation",
|
|
83
|
+
"number": "{header/deviation/number}",
|
|
84
|
+
"unit": "{header/deviation/unit}"
|
|
85
|
+
}
|
|
86
|
+
]
|
|
87
|
+
},
|
|
88
|
+
"content": {
|
|
89
|
+
"data": {
|
|
90
|
+
"path": "/list"
|
|
91
|
+
},
|
|
92
|
+
"chartType": "line",
|
|
93
|
+
"chartProperties": {
|
|
94
|
+
"title": {
|
|
95
|
+
"text": "Line chart",
|
|
96
|
+
"visible": true,
|
|
97
|
+
"alignment": "left"
|
|
98
|
+
},
|
|
99
|
+
"legend": {
|
|
100
|
+
"visible": "{legend/visible}"
|
|
101
|
+
},
|
|
102
|
+
"legendGroup": {
|
|
103
|
+
"layout": {
|
|
104
|
+
"position": "{legend/position}",
|
|
105
|
+
"alignment": "{legend/alignment}"
|
|
106
|
+
}
|
|
107
|
+
},
|
|
108
|
+
"plotArea": {
|
|
109
|
+
"dataLabel": {
|
|
110
|
+
"visible": true
|
|
111
|
+
}
|
|
112
|
+
},
|
|
113
|
+
"categoryAxis": {
|
|
114
|
+
"title": {
|
|
115
|
+
"visible": false
|
|
116
|
+
}
|
|
117
|
+
},
|
|
118
|
+
"valueAxis": {
|
|
119
|
+
"title": {
|
|
120
|
+
"visible": false
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
},
|
|
124
|
+
"dimensions": [
|
|
125
|
+
{
|
|
126
|
+
"name": "{dimensions/weekLabel}",
|
|
127
|
+
"value": "{Week}"
|
|
128
|
+
}
|
|
129
|
+
],
|
|
130
|
+
"measures": [
|
|
131
|
+
{
|
|
132
|
+
"name": "{measures/revenueLabel}",
|
|
133
|
+
"value": "{Revenue}"
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
"name": "{measures/costLabel}",
|
|
137
|
+
"value": "{Cost}"
|
|
138
|
+
}
|
|
139
|
+
],
|
|
140
|
+
"feeds": [
|
|
141
|
+
{
|
|
142
|
+
"uid": "valueAxis",
|
|
143
|
+
"type": "Measure",
|
|
144
|
+
"values": [
|
|
145
|
+
"{measures/revenueLabel}",
|
|
146
|
+
"{measures/costLabel}"
|
|
147
|
+
]
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
"uid": "categoryAxis",
|
|
151
|
+
"type": "Dimension",
|
|
152
|
+
"values": [
|
|
153
|
+
"{dimensions/weekLabel}"
|
|
154
|
+
]
|
|
155
|
+
}
|
|
156
|
+
]
|
|
157
|
+
}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"data": {
|
|
2
|
+
"json": {
|
|
3
|
+
"item": [
|
|
4
|
+
{
|
|
5
|
+
"start": "2020-09-18T09:00",
|
|
6
|
+
"end": "2020-09-18T10:00",
|
|
7
|
+
"title": "Payment reminder",
|
|
8
|
+
"icon": "sap-icon://desktop-mobile",
|
|
9
|
+
"type": "Type06",
|
|
10
|
+
"url": "http://sap.com"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"start": "2020-09-18T17:00",
|
|
14
|
+
"end": "2020-09-18T17:30",
|
|
15
|
+
"title": "Private appointment",
|
|
16
|
+
"icon": "sap-icon://desktop-mobile",
|
|
17
|
+
"type": "Type07"
|
|
18
|
+
}
|
|
19
|
+
],
|
|
20
|
+
"specialDate": [
|
|
21
|
+
{
|
|
22
|
+
"start": "2020-09-13",
|
|
23
|
+
"end": "2020-09-14",
|
|
24
|
+
"type": "Type08"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"start": "2020-09-24",
|
|
28
|
+
"end": "2020-09-24",
|
|
29
|
+
"type": "Type13"
|
|
30
|
+
}
|
|
31
|
+
],
|
|
32
|
+
"legendItem": [
|
|
33
|
+
{
|
|
34
|
+
"category": "calendar",
|
|
35
|
+
"text": "Team building",
|
|
36
|
+
"type": "Type08"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"category": "calendar",
|
|
40
|
+
"text": "Public holiday",
|
|
41
|
+
"type": "Type13"
|
|
42
|
+
}
|
|
43
|
+
]
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
"header": {
|
|
47
|
+
"title": "{i18n>title}",
|
|
48
|
+
"subtitle": "{i18n>subtitle}"
|
|
49
|
+
},
|
|
50
|
+
"content": {
|
|
51
|
+
"item": {
|
|
52
|
+
"template": {
|
|
53
|
+
"startDate": "{start}",
|
|
54
|
+
"endDate": "{end}",
|
|
55
|
+
"title": "{title}",
|
|
56
|
+
"text": "{text}",
|
|
57
|
+
"icon": {
|
|
58
|
+
"src": "{icon}",
|
|
59
|
+
"visible": true
|
|
60
|
+
},
|
|
61
|
+
"type": "{type}",
|
|
62
|
+
"actions": [
|
|
63
|
+
{
|
|
64
|
+
"type": "Navigation",
|
|
65
|
+
"enabled": "{= ${url}}",
|
|
66
|
+
"parameters": {
|
|
67
|
+
"url": "{url}"
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
]
|
|
71
|
+
},
|
|
72
|
+
"path": "/item"
|
|
73
|
+
},
|
|
74
|
+
"specialDate": {
|
|
75
|
+
"template": {
|
|
76
|
+
"startDate": "{start}",
|
|
77
|
+
"endDate": "{end}",
|
|
78
|
+
"type": "{type}"
|
|
79
|
+
},
|
|
80
|
+
"path": "/specialDate"
|
|
81
|
+
},
|
|
82
|
+
"legendItem": {
|
|
83
|
+
"template": {
|
|
84
|
+
"category": "{category}",
|
|
85
|
+
"text": "{text}",
|
|
86
|
+
"type": "{type}"
|
|
87
|
+
},
|
|
88
|
+
"path": "/legendItem"
|
|
89
|
+
}
|
|
90
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
sap.ui.define([
|
|
2
|
+
"sap/ui/integration/Designtime",
|
|
3
|
+
],
|
|
4
|
+
function (
|
|
5
|
+
Designtime
|
|
6
|
+
) {
|
|
7
|
+
"use strict";
|
|
8
|
+
|
|
9
|
+
return function () {
|
|
10
|
+
return new Designtime({
|
|
11
|
+
form: {
|
|
12
|
+
items: {
|
|
13
|
+
groupheader1: {
|
|
14
|
+
label: "General Settings",
|
|
15
|
+
type: "group",
|
|
16
|
+
},
|
|
17
|
+
separator1: {
|
|
18
|
+
type: "separator",
|
|
19
|
+
},
|
|
20
|
+
title: {
|
|
21
|
+
manifestpath: "/sap.card/header/title",
|
|
22
|
+
type: "string",
|
|
23
|
+
translatable: true,
|
|
24
|
+
label: "Card Title",
|
|
25
|
+
cols: 1,
|
|
26
|
+
allowDynamicValues: true,
|
|
27
|
+
},
|
|
28
|
+
subtitle: {
|
|
29
|
+
manifestpath: "/sap.card/header/subtitle",
|
|
30
|
+
type: "string",
|
|
31
|
+
translatable: true,
|
|
32
|
+
label: "Card Subtitle",
|
|
33
|
+
cols: 1,
|
|
34
|
+
allowDynamicValues: true,
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
preview: {
|
|
39
|
+
modes: "None",
|
|
40
|
+
},
|
|
41
|
+
});
|
|
42
|
+
};
|
|
43
|
+
});
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"data": {
|
|
2
|
+
"json": {
|
|
3
|
+
"items": [
|
|
4
|
+
{
|
|
5
|
+
"title": "Item 1",
|
|
6
|
+
"description": "Description for Item 1"
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
"title": "Item 2",
|
|
10
|
+
"description": "Description for Item 2"
|
|
11
|
+
}
|
|
12
|
+
]
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"header": {
|
|
16
|
+
"title": "{i18n>title}",
|
|
17
|
+
"subtitle": "{i18n>subtitle}"
|
|
18
|
+
},
|
|
19
|
+
"content": {
|
|
20
|
+
"data": {
|
|
21
|
+
"path": "/items"
|
|
22
|
+
},
|
|
23
|
+
"item": {
|
|
24
|
+
"title": "{title}",
|
|
25
|
+
"description": "{description}"
|
|
26
|
+
}
|
|
27
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_version": "<%= manifestVersion %>",
|
|
3
|
+
"sap.app": {
|
|
4
|
+
"id": "sample.integration.card",
|
|
5
|
+
"type": "card",
|
|
6
|
+
"title": "Sample Integration Card",
|
|
7
|
+
"applicationVersion": {
|
|
8
|
+
"version": "1.0.0"
|
|
9
|
+
}
|
|
10
|
+
},
|
|
11
|
+
"sap.ui": {
|
|
12
|
+
"technology": "UI5",
|
|
13
|
+
"deviceTypes": {
|
|
14
|
+
"desktop": true,
|
|
15
|
+
"tablet": true,
|
|
16
|
+
"phone": true
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
"sap.card": {
|
|
20
|
+
"type": "<%= cardType %>",
|
|
21
|
+
"configuration": {
|
|
22
|
+
"editor": "./dt/Configuration"
|
|
23
|
+
},
|
|
24
|
+
<% if (cardType === "Analytical") { %>
|
|
25
|
+
<%- include('analytical.ejs') %>
|
|
26
|
+
<% } else if (cardType === "Calendar") { %>
|
|
27
|
+
<%- include('calendar.ejs') %>
|
|
28
|
+
<% } else if (cardType === "List") { %>
|
|
29
|
+
<%- include('list.ejs') %>
|
|
30
|
+
<% } else if (cardType === "Object") { %>
|
|
31
|
+
<%- include('object.ejs') %>
|
|
32
|
+
<% } else if (cardType === "Table") { %>
|
|
33
|
+
<%- include('table.ejs') %>
|
|
34
|
+
<% } else if (cardType === "Timeline") { %>
|
|
35
|
+
<%- include('timeline.ejs') %>
|
|
36
|
+
<% } %>
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"data": {
|
|
2
|
+
"json": {
|
|
3
|
+
"firstName": "John",
|
|
4
|
+
"lastName": "Doe",
|
|
5
|
+
"company": {
|
|
6
|
+
"name": "Some Corp",
|
|
7
|
+
"address": "123 Main St, Anytown"
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
},
|
|
11
|
+
"header": {
|
|
12
|
+
"title": "{i18n>title}",
|
|
13
|
+
"subtitle": "{i18n>subtitle}"
|
|
14
|
+
},
|
|
15
|
+
"content": {
|
|
16
|
+
"groups": [
|
|
17
|
+
{
|
|
18
|
+
"title": "Contact Details",
|
|
19
|
+
"items": [
|
|
20
|
+
{
|
|
21
|
+
"label": "First Name",
|
|
22
|
+
"value": "{firstName}"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"label": "Last Name",
|
|
26
|
+
"value": "{lastName}"
|
|
27
|
+
}
|
|
28
|
+
]
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"title": "Company Details",
|
|
32
|
+
"items": [
|
|
33
|
+
{
|
|
34
|
+
"label": "Company Name",
|
|
35
|
+
"value": "{company/name}"
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"label": "Address",
|
|
39
|
+
"value": "{company/address}"
|
|
40
|
+
}
|
|
41
|
+
]
|
|
42
|
+
}
|
|
43
|
+
]
|
|
44
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
|
|
2
|
+
"data": {
|
|
3
|
+
"json": {
|
|
4
|
+
"items": [
|
|
5
|
+
{
|
|
6
|
+
"title": "Item 1",
|
|
7
|
+
"description": "Description for Item 1"
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
"title": "Item 2",
|
|
11
|
+
"description": "Description for Item 2"
|
|
12
|
+
}
|
|
13
|
+
]
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
"header": {
|
|
17
|
+
"title": "{i18n>title}",
|
|
18
|
+
"subtitle": "{i18n>subtitle}"
|
|
19
|
+
},
|
|
20
|
+
"content": {
|
|
21
|
+
"data": {
|
|
22
|
+
"path": "/items"
|
|
23
|
+
},
|
|
24
|
+
"row": {
|
|
25
|
+
"columns": [
|
|
26
|
+
{
|
|
27
|
+
"title": "Title",
|
|
28
|
+
"value": "{title}"
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"title": "Description",
|
|
32
|
+
"value": "{description}"
|
|
33
|
+
}
|
|
34
|
+
]
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"data": {
|
|
2
|
+
"json": {
|
|
3
|
+
"items": [
|
|
4
|
+
{
|
|
5
|
+
"Title": "Weekly sync: Marketplace / Design Stream",
|
|
6
|
+
"Description": "MRR WDF18 C3.2(GLASSBOX)",
|
|
7
|
+
"Icon": "sap-icon://appointment-2",
|
|
8
|
+
"Time": "2021-10-25T10:00:00.000Z",
|
|
9
|
+
"Url": "/activity1"
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"Title": "Video Conference for FLP@SF, S4,Hybris",
|
|
13
|
+
"Icon": "sap-icon://my-view",
|
|
14
|
+
"Time": "2021-10-25T14:00:00.000Z",
|
|
15
|
+
"Url": "/activity2"
|
|
16
|
+
}
|
|
17
|
+
]
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
"header": {
|
|
21
|
+
"title": "{i18n>title}",
|
|
22
|
+
"subtitle": "{i18n>subtitle}"
|
|
23
|
+
},
|
|
24
|
+
"content": {
|
|
25
|
+
"data": {
|
|
26
|
+
"path": "/items"
|
|
27
|
+
},
|
|
28
|
+
"item": {
|
|
29
|
+
"dateTime": {
|
|
30
|
+
"value": "{Time}"
|
|
31
|
+
},
|
|
32
|
+
"description": {
|
|
33
|
+
"value": "{Description}"
|
|
34
|
+
},
|
|
35
|
+
"title": {
|
|
36
|
+
"value": "{Title}"
|
|
37
|
+
},
|
|
38
|
+
"icon": {
|
|
39
|
+
"src": "{Icon}"
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
sap.ui.define(["sap/ui/integration/Host"], async (Host) => {
|
|
2
|
+
"use strict";
|
|
3
|
+
await customElements.whenDefined("ui-integration-card");
|
|
4
|
+
await customElements.whenDefined("ui-integration-card-editor");
|
|
5
|
+
|
|
6
|
+
const editor = document.getElementById("editor");
|
|
7
|
+
const card = document.getElementById("card");
|
|
8
|
+
const applyChangesBtn = document.getElementById("applyChangesBtn");
|
|
9
|
+
const resetBtn = document.getElementById("resetBtn");
|
|
10
|
+
const host = new Host({
|
|
11
|
+
resolveDestination: function(sDestinationName) {
|
|
12
|
+
if (sDestinationName === "Northwind") {
|
|
13
|
+
return "https://services.odata.org/V4/Northwind/Northwind.svc/";
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
throw new Error("Destination " + sDestinationName + " not found!");
|
|
17
|
+
},
|
|
18
|
+
actions: [
|
|
19
|
+
{
|
|
20
|
+
type: "Custom",
|
|
21
|
+
text: "Configure",
|
|
22
|
+
icon: "sap-icon://action-settings",
|
|
23
|
+
action: () => {
|
|
24
|
+
document.getElementById("editorSection").classList.remove("hidden");
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
]
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
card.host = host.getId();
|
|
31
|
+
card.manifest = "../src/manifest.json";
|
|
32
|
+
|
|
33
|
+
editor.host = host.getId();
|
|
34
|
+
editor.card = "card";
|
|
35
|
+
|
|
36
|
+
let initialSettings;
|
|
37
|
+
|
|
38
|
+
// UI5 CustomElementBase doesn't expose the "ready" event, so use timeout
|
|
39
|
+
setTimeout(() => {
|
|
40
|
+
initialSettings = editor.getCurrentSettings();
|
|
41
|
+
}, 3000);
|
|
42
|
+
|
|
43
|
+
applyChangesBtn.addEventListener("click", () => {
|
|
44
|
+
card.manifestChanges = [editor.getCurrentSettings()];
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
resetBtn.addEventListener("click", () => {
|
|
48
|
+
card.manifestChanges = [initialSettings];
|
|
49
|
+
});
|
|
50
|
+
});
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
body {
|
|
2
|
+
margin: 2rem;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
.container {
|
|
6
|
+
display: flex;
|
|
7
|
+
gap: 2rem;
|
|
8
|
+
align-items: flex-start;
|
|
9
|
+
flex-wrap: wrap;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.card-section {
|
|
13
|
+
flex: 1;
|
|
14
|
+
min-width: 300px;
|
|
15
|
+
max-width: 600px;
|
|
16
|
+
display: block;
|
|
17
|
+
flex-direction: column;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.button-container {
|
|
21
|
+
display: flex;
|
|
22
|
+
justify-content: flex-end;
|
|
23
|
+
gap: 0.5rem;
|
|
24
|
+
margin-top: 1rem;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.config-button {
|
|
28
|
+
padding: 0.25rem 0.5rem;
|
|
29
|
+
border: none;
|
|
30
|
+
border-radius: 0.25rem;
|
|
31
|
+
cursor: pointer;
|
|
32
|
+
font-size: 14px;
|
|
33
|
+
transition: background-color 0.2s ease;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.config-button.primary {
|
|
37
|
+
background-color: #0070f3;
|
|
38
|
+
color: white;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
.config-button.primary:hover {
|
|
42
|
+
background-color: #0051cc;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.config-button.secondary {
|
|
46
|
+
background-color: #f5f5f5;
|
|
47
|
+
color: #333;
|
|
48
|
+
border: 1px solid #ddd;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.config-button.secondary:hover {
|
|
52
|
+
background-color: #e5e5e5;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.hidden {
|
|
56
|
+
display: none;
|
|
57
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
|
|
4
|
+
<head>
|
|
5
|
+
<meta charset="UTF-8">
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
7
|
+
<title>Integration Card Preview</title>
|
|
8
|
+
<link rel="stylesheet" href="./index.css">
|
|
9
|
+
<script
|
|
10
|
+
src="https://ui5.sap.com/resources/sap-ui-integration.js"
|
|
11
|
+
id="sap-ui-bootstrap"
|
|
12
|
+
data-sap-ui-compat-version="edge"
|
|
13
|
+
data-sap-ui-resource-roots='{"preview": "./"}'
|
|
14
|
+
data-sap-ui-on-init="module:preview/App"
|
|
15
|
+
data-sap-ui-theme="sap_horizon">
|
|
16
|
+
</script>
|
|
17
|
+
<script src="https://ui5.sap.com/resources/sap-ui-integration-card-editor.js"></script>
|
|
18
|
+
</head>
|
|
19
|
+
|
|
20
|
+
<body>
|
|
21
|
+
<h1>Preview</h1>
|
|
22
|
+
<div class="container">
|
|
23
|
+
<div class="card-section">
|
|
24
|
+
<h2>Integration Card</h2>
|
|
25
|
+
<ui-integration-card
|
|
26
|
+
id="card"
|
|
27
|
+
width="300px"
|
|
28
|
+
height="400px">
|
|
29
|
+
</ui-integration-card>
|
|
30
|
+
</div>
|
|
31
|
+
<div id="editorSection"
|
|
32
|
+
class="card-section hidden">
|
|
33
|
+
<h2>Configuration Editor</h2>
|
|
34
|
+
<ui-integration-card-editor
|
|
35
|
+
id="editor">
|
|
36
|
+
</ui-integration-card-editor>
|
|
37
|
+
<div class="button-container">
|
|
38
|
+
<button id="applyChangesBtn" class="config-button primary">Apply Changes</button>
|
|
39
|
+
<button id="resetBtn" class="config-button secondary">Reset</button>
|
|
40
|
+
</div>
|
|
41
|
+
</div>
|
|
42
|
+
</div>
|
|
43
|
+
</body>
|
|
44
|
+
|
|
45
|
+
</html>
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|