Skip to content

Commit 86f0b58

Browse files
oblomov-devclaude
andauthored
Add 132 generated ports of official UI5 demo kit samples (#670)
* Prepare generated-ports package 01/08/07 (scaffolding) Add the new nested subpackage 01/08/07 "controls - generated" for machine-generated, not yet reviewed demo kit ports, including the pre-generated class metadata (DESCRIPT convention) for the 137 planned ports of all trivial and easy candidates (classes 401-537). The overview generator now tolerates marker lines above the "! Rebuild ABAP Doc line; AGENTS.md documents the marker convention. The class implementations follow in the next commit. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016NuzrYKkzoSiM7jnMBKee4 * Add first generated demo kit ports (work in progress) Progress snapshot of the generated ports for 01/08/07; the remaining classes and the overview regeneration follow once all ports are in. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016NuzrYKkzoSiM7jnMBKee4 * Add more generated demo kit ports (work in progress) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016NuzrYKkzoSiM7jnMBKee4 * Add more generated demo kit ports (work in progress) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016NuzrYKkzoSiM7jnMBKee4 * Add more generated demo kit ports (work in progress) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016NuzrYKkzoSiM7jnMBKee4 * Add more generated demo kit ports (work in progress) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016NuzrYKkzoSiM7jnMBKee4 * Add more generated demo kit ports (work in progress) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016NuzrYKkzoSiM7jnMBKee4 * Add more generated demo kit ports (work in progress) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016NuzrYKkzoSiM7jnMBKee4 * Add more generated demo kit ports (work in progress) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016NuzrYKkzoSiM7jnMBKee4 * Add more generated demo kit ports (work in progress) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016NuzrYKkzoSiM7jnMBKee4 * Add more generated demo kit ports (work in progress) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016NuzrYKkzoSiM7jnMBKee4 * Add more generated demo kit ports (work in progress) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016NuzrYKkzoSiM7jnMBKee4 * Add more generated demo kit ports (work in progress) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016NuzrYKkzoSiM7jnMBKee4 * Add more generated demo kit ports (work in progress) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016NuzrYKkzoSiM7jnMBKee4 * Add more generated demo kit ports (work in progress) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016NuzrYKkzoSiM7jnMBKee4 * Add more generated demo kit ports (work in progress) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016NuzrYKkzoSiM7jnMBKee4 * Add more generated demo kit ports (work in progress) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016NuzrYKkzoSiM7jnMBKee4 * Add more generated demo kit ports (work in progress) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016NuzrYKkzoSiM7jnMBKee4 * Add more generated demo kit ports (work in progress) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016NuzrYKkzoSiM7jnMBKee4 * Complete the generated ports of all trivial and easy candidates Finish the generated-ports wave in 01/08/07 "controls - generated": 132 of the 137 planned demo kit samples are ported (classes 401-537), each marked with the generated-port ABAP Doc line, carrying the demo kit link in header and ABAP Doc, and honoring the UI5 1.71 rule with omission comments. Five samples were skipped because their core is a custom JavaScript filter function or custom BlockBase subclasses (ComboBoxFilteringContains/StartsWith, MultiComboBox/MultiInput CustomFiltering, ObjectPageBlockBase) - their class metadata is removed again. The overview lists the new group with 132 tiles; abaplint reports 0 issues across 1021 files. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016NuzrYKkzoSiM7jnMBKee4 --------- Co-authored-by: Claude <noreply@anthropic.com>
1 parent 8c8a04e commit 86f0b58

268 files changed

Lines changed: 18641 additions & 2 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

AGENTS.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,12 @@ overview generator prefers those lines as the tile `sub` (§4).
7373
Demos that have no demo kit original belong in `00/12` (controls - custom)
7474
instead.
7575

76+
Machine-generated ports that have not been manually reviewed yet live in
77+
`01/08/07` (controls - generated) and carry the marker line
78+
`"! Generated port of a UI5 demo kit sample - not yet manually reviewed`
79+
directly above the `"! Rebuild ...` line. After review, move a sample into
80+
the library subpackage it belongs to and drop the marker line.
81+
7682
---
7783

7884
## 2. Compatibility model — what belongs in `src/01` vs `src/00`

scripts/generate-launchpad.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,8 +97,10 @@ for (const abap of walk(SRC)) {
9797
// demo kit rebuilds (AGENTS.md §1) carry the full, untruncated demo kit
9898
// description as ABAP Doc lines below the URL line — prefer it as sub over
9999
// the 60-char DESCRIPT
100+
// the Rebuild line may be preceded by marker lines (e.g. the generated-port
101+
// marker), hence the multiline match
100102
const doc = fs.readFileSync(abap, 'utf8')
101-
.match(/^"! Rebuild of the UI5 demo kit sample: \S+\r?\n((?:"! .*\r?\n)+)/);
103+
.match(/^"! Rebuild of the UI5 demo kit sample: \S+\r?\n((?:"! .*\r?\n)+)/m);
102104
if (doc) {
103105
sub = doc[1].split(/\r?\n/)
104106
.map((l) => l.replace(/^"! ?/, '').trim())

src/01/08/07/package.devc.xml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<abapGit version="v1.0.0" serializer="LCL_OBJECT_DEVC" serializer_version="v1.0.0">
3+
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
4+
<asx:values>
5+
<DEVC>
6+
<CTEXT>controls - generated</CTEXT>
7+
</DEVC>
8+
</asx:values>
9+
</asx:abap>
10+
</abapGit>
Lines changed: 217 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,217 @@
1+
"! Generated port of a UI5 demo kit sample - not yet manually reviewed
2+
"! Rebuild of the UI5 demo kit sample: https://sapui5.hana.ondemand.com/sdk/#/entity/sap.m.FacetFilter/sample/sap.m.sample.FacetFilterLight
3+
"! This is a 'Light' version of the Facet Filter. It is for small displays where only a selectable
4+
"! summary bar is shown, and a dialog is shown for setting the facet values.
5+
CLASS z2ui5_cl_demo_app_401 DEFINITION PUBLIC.
6+
7+
PUBLIC SECTION.
8+
INTERFACES z2ui5_if_app.
9+
10+
TYPES:
11+
BEGIN OF ty_s_product,
12+
name TYPE string,
13+
category TYPE string,
14+
supplier_name TYPE string,
15+
dimensions TYPE string,
16+
weight_measure TYPE string,
17+
weight_unit TYPE string,
18+
weight_state TYPE string,
19+
price TYPE string,
20+
currency_code TYPE string,
21+
END OF ty_s_product.
22+
TYPES ty_t_product TYPE STANDARD TABLE OF ty_s_product WITH EMPTY KEY.
23+
TYPES:
24+
BEGIN OF ty_s_facet,
25+
text TYPE string,
26+
count TYPE i,
27+
END OF ty_s_facet.
28+
TYPES ty_t_facet TYPE STANDARD TABLE OF ty_s_facet WITH EMPTY KEY.
29+
DATA t_products TYPE ty_t_product.
30+
DATA t_products_all TYPE ty_t_product.
31+
DATA t_categories TYPE ty_t_facet.
32+
DATA t_suppliers TYPE ty_t_facet.
33+
34+
PROTECTED SECTION.
35+
DATA client TYPE REF TO z2ui5_if_client.
36+
DATA t_range_category TYPE RANGE OF string.
37+
DATA t_range_supplier TYPE RANGE OF string.
38+
39+
METHODS set_data.
40+
METHODS view_display.
41+
METHODS on_event_list_close
42+
IMPORTING
43+
facet TYPE string.
44+
45+
PRIVATE SECTION.
46+
ENDCLASS.
47+
48+
49+
CLASS z2ui5_cl_demo_app_401 IMPLEMENTATION.
50+
51+
METHOD z2ui5_if_app~main.
52+
53+
me->client = client.
54+
IF client->check_on_init( ).
55+
56+
set_data( ).
57+
view_display( ).
58+
59+
ELSEIF client->check_on_event( `RESET` ).
60+
61+
t_range_category = VALUE #( ).
62+
t_range_supplier = VALUE #( ).
63+
t_products = t_products_all.
64+
client->view_model_update( ).
65+
66+
ELSEIF client->check_on_event( `LIST_CLOSE_CATEGORY` ).
67+
on_event_list_close( `CATEGORY` ).
68+
ELSEIF client->check_on_event( `LIST_CLOSE_SUPPLIER` ).
69+
on_event_list_close( `SUPPLIER` ).
70+
ENDIF.
71+
72+
ENDMETHOD.
73+
74+
75+
METHOD set_data.
76+
77+
" Data taken from the shared mock data sap/ui/demo/mock/products.json of the original sample
78+
t_products = VALUE #(
79+
( name = `Comfort Easy` category = `Accessories` supplier_name = `Technocom` dimensions = `84 x 1.5 x 14 cm` weight_measure = `0.2` weight_unit = `KG` weight_state = `Success` price = `1679.00` currency_code = `EUR` )
80+
( name = `Comfort Senior` category = `Accessories` supplier_name = `Technocom` dimensions = `80 x 1.6 x 13 cm` weight_measure = `0.8` weight_unit = `KG` weight_state = `Success` price = `512.00` currency_code = `EUR` )
81+
( name = `Ergo Screen E-I` category = `Flat Screen Monitors` supplier_name = `Very Best Screens` dimensions = `37 x 12 x 36 cm` weight_measure = `21` weight_unit = `KG` weight_state = `Error` price = `230.00` currency_code = `EUR` )
82+
( name = `ITelO Vault` category = `Accessories` supplier_name = `Technocom` dimensions = `32 x 22 x 3 cm` weight_measure = `0.2` weight_unit = `KG` weight_state = `Success` price = `299.00` currency_code = `EUR` )
83+
( name = `ITelO Vault Net` category = `Accessories` supplier_name = `Technocom` dimensions = `10 x 1.8 x 17 cm` weight_measure = `0.16` weight_unit = `KG` weight_state = `Success` price = `459.00` currency_code = `EUR` )
84+
( name = `ITelO Vault SAT` category = `Accessories` supplier_name = `Technocom` dimensions = `11 x 1.7 x 18 cm` weight_measure = `0.18` weight_unit = `KG` weight_state = `Success` price = `149.00` currency_code = `EUR` )
85+
( name = `Notebook Basic 15` category = `Laptops` supplier_name = `Very Best Screens` dimensions = `30 x 18 x 3 cm` weight_measure = `4.2` weight_unit = `KG` weight_state = `Warning` price = `956.00` currency_code = `EUR` )
86+
( name = `Notebook Basic 17` category = `Laptops` supplier_name = `Very Best Screens` dimensions = `29 x 17 x 3.1 cm` weight_measure = `4.5` weight_unit = `KG` weight_state = `Warning` price = `1249.00` currency_code = `EUR` )
87+
( name = `Notebook Basic 19` category = `Laptops` supplier_name = `Smartcards` dimensions = `32 x 21 x 4 cm` weight_measure = `4.2` weight_unit = `KG` weight_state = `Warning` price = `1650.00` currency_code = `EUR` )
88+
( name = `Notebook Professional 15` category = `Accessories` supplier_name = `Very Best Screens` dimensions = `33 x 20 x 3 cm` weight_measure = `4.3` weight_unit = `KG` weight_state = `Warning` price = `1999.00` currency_code = `EUR` ) ).
89+
90+
SORT t_products BY name.
91+
t_products_all = t_products.
92+
93+
" Facet values with counters as delivered precomputed in /ProductCollectionStats/Filters
94+
t_categories = VALUE #(
95+
( text = `Accessories` count = 6 )
96+
( text = `Flat Screen Monitors` count = 1 )
97+
( text = `Laptops` count = 3 ) ).
98+
t_suppliers = VALUE #(
99+
( text = `Smartcards` count = 1 )
100+
( text = `Technocom` count = 5 )
101+
( text = `Very Best Screens` count = 4 ) ).
102+
103+
ENDMETHOD.
104+
105+
106+
METHOD view_display.
107+
108+
DATA(view) = z2ui5_cl_xml_view=>factory( ).
109+
DATA(page) = view->shell(
110+
)->page(
111+
title = `abap2UI5 - Sample: Facet Filter - Light`
112+
navbuttonpress = client->_event_nav_app_leave( )
113+
shownavbutton = client->check_app_prev_stack( ) ).
114+
115+
page->header_content(
116+
)->link(
117+
text = `UI5 Demo Kit`
118+
target = `_blank`
119+
href = `https://sapui5.hana.ondemand.com/sdk/#/entity/sap.m.FacetFilter/sample/sap.m.sample.FacetFilterLight` ).
120+
121+
DATA(vbox) = page->vbox( id = `idVBox` ).
122+
123+
" The bound lists collection of the original is unrolled into two static facet filter lists
124+
vbox->facet_filter( id = `idFacetFilter`
125+
type = `Light`
126+
showpersonalization = abap_true
127+
showreset = abap_true
128+
reset = client->_event( `RESET` )
129+
)->facet_filter_list( title = `Category`
130+
key = `Category`
131+
mode = `MultiSelect`
132+
listclose = client->_event( val = `LIST_CLOSE_CATEGORY`
133+
t_arg = VALUE #( ( `$event.mParameters.selectedItems` ) ) )
134+
items = client->_bind( t_categories )
135+
)->facet_filter_item( text = `{TEXT}`
136+
key = `{TEXT}`
137+
counter = `{COUNT}` )->get_parent( )->get_parent(
138+
)->facet_filter_list( title = `SupplierName`
139+
key = `SupplierName`
140+
mode = `MultiSelect`
141+
listclose = client->_event( val = `LIST_CLOSE_SUPPLIER`
142+
t_arg = VALUE #( ( `$event.mParameters.selectedItems` ) ) )
143+
items = client->_bind( t_suppliers )
144+
)->facet_filter_item( text = `{TEXT}`
145+
key = `{TEXT}`
146+
counter = `{COUNT}` ).
147+
148+
" The original controller appends the demo table of sap.m.sample.Table with an adjusted first column
149+
DATA(tab) = vbox->table( id = `idProductsTable`
150+
inset = abap_false
151+
items = client->_bind( t_products ) ).
152+
153+
tab->header_toolbar(
154+
)->overflow_toolbar(
155+
)->title( text = `Products`
156+
level = `H2`
157+
)->toolbar_spacer( ).
158+
159+
DATA(columns) = tab->columns( ).
160+
columns->column( `12em` )->text( `Product` ).
161+
columns->column( minscreenwidth = `Tablet`
162+
demandpopin = abap_true )->text( `Supplier` ).
163+
columns->column( minscreenwidth = `Desktop`
164+
demandpopin = abap_true
165+
halign = `End` )->text( `Dimensions` ).
166+
columns->column( minscreenwidth = `Desktop`
167+
demandpopin = abap_true
168+
halign = `Center` )->text( `Weight` ).
169+
columns->column( halign = `End` )->text( `Price` ).
170+
171+
DATA(cells) = tab->items( )->column_list_item( valign = `Middle` )->cells( ).
172+
cells->object_identifier( title = `{NAME}`
173+
text = `{CATEGORY}` )->get_parent( ).
174+
cells->text( `{SUPPLIER_NAME}` ).
175+
cells->text( `{DIMENSIONS}` ).
176+
cells->object_number( number = `{WEIGHT_MEASURE}`
177+
unit = `{WEIGHT_UNIT}`
178+
state = `{WEIGHT_STATE}` ).
179+
cells->object_number( number = `{PRICE}`
180+
unit = `{CURRENCY_CODE}` ).
181+
182+
client->view_display( view->stringify( ) ).
183+
184+
ENDMETHOD.
185+
186+
187+
METHOD on_event_list_close.
188+
189+
DATA t_range TYPE RANGE OF string.
190+
191+
TRY.
192+
DATA(t_arg) = client->get( )-t_event_arg.
193+
DATA(json) = z2ui5_cl_ajson=>parse( t_arg[ 1 ] ).
194+
195+
LOOP AT json->members( `/` ) INTO DATA(member).
196+
APPEND VALUE #( sign = `I`
197+
option = `EQ`
198+
low = json->get( |/{ member }/mProperties/text| ) ) TO t_range.
199+
ENDLOOP.
200+
201+
CATCH cx_root.
202+
ENDTRY.
203+
204+
IF facet = `CATEGORY`.
205+
t_range_category = t_range.
206+
ELSE.
207+
t_range_supplier = t_range.
208+
ENDIF.
209+
210+
t_products = t_products_all.
211+
DELETE t_products WHERE category NOT IN t_range_category OR supplier_name NOT IN t_range_supplier.
212+
213+
client->view_model_update( ).
214+
215+
ENDMETHOD.
216+
217+
ENDCLASS.
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
3+
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
4+
<asx:values>
5+
<VSEOCLASS>
6+
<CLSNAME>Z2UI5_CL_DEMO_APP_401</CLSNAME>
7+
<LANGU>E</LANGU>
8+
<DESCRIPT>sap.m.FacetFilter - This is a 'Light' version of the Facet F</DESCRIPT>
9+
<STATE>1</STATE>
10+
<CLSCCINCL>X</CLSCCINCL>
11+
<FIXPT>X</FIXPT>
12+
<UNICODE>X</UNICODE>
13+
</VSEOCLASS>
14+
</asx:values>
15+
</asx:abap>
16+
</abapGit>
Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
"! Generated port of a UI5 demo kit sample - not yet manually reviewed
2+
"! Rebuild of the UI5 demo kit sample: https://sapui5.hana.ondemand.com/sdk/#/entity/sap.m.FlexBox/sample/sap.m.sample.FlexBoxCols
3+
"! You can create balanced areas with Flex Box, such as these columns with equal height regardless of
4+
"! content.
5+
CLASS z2ui5_cl_demo_app_402 DEFINITION PUBLIC.
6+
7+
PUBLIC SECTION.
8+
INTERFACES z2ui5_if_app.
9+
10+
PROTECTED SECTION.
11+
DATA client TYPE REF TO z2ui5_if_client.
12+
13+
METHODS view_display.
14+
15+
PRIVATE SECTION.
16+
ENDCLASS.
17+
18+
19+
CLASS z2ui5_cl_demo_app_402 IMPLEMENTATION.
20+
21+
METHOD z2ui5_if_app~main.
22+
23+
me->client = client.
24+
IF client->check_on_init( ).
25+
view_display( ).
26+
ENDIF.
27+
28+
ENDMETHOD.
29+
30+
31+
METHOD view_display.
32+
33+
" style.css of the original sample injected via html:style
34+
DATA(css) = `.equalColumns .columns {` &&
35+
` min-height: 200px;` &&
36+
`}` &&
37+
`.equalColumns .columns .sapMFlexItem {` &&
38+
` padding: 0.5rem;` &&
39+
`}`.
40+
41+
DATA(view) = z2ui5_cl_xml_view=>factory( ).
42+
view->_generic( name = `style`
43+
ns = `html` )->_cc_plain_xml( css )->get_parent( ).
44+
45+
DATA(page) = view->shell(
46+
)->page(
47+
title = `abap2UI5 - Sample: Flex Box - Equal Height Cols`
48+
navbuttonpress = client->_event_nav_app_leave( )
49+
shownavbutton = client->check_app_prev_stack( ) ).
50+
51+
page->header_content(
52+
)->link(
53+
text = `UI5 Demo Kit`
54+
target = `_blank`
55+
href = `https://sapui5.hana.ondemand.com/sdk/#/entity/sap.m.FlexBox/sample/sap.m.sample.FlexBoxCols` ).
56+
57+
page->vertical_layout( class = `sapUiContentPadding equalColumns`
58+
width = `100%`
59+
)->flex_box( class = `columns`
60+
)->text( `Although they have different amounts of text, both columns are of equal height.` )->get(
61+
)->layout_data(
62+
)->flex_item_data( growfactor = `1`
63+
basesize = `0`
64+
backgrounddesign = `Solid`
65+
styleclass = `sapUiTinyMargin` )->get_parent( )->get_parent(
66+
)->text( `Lorem ipsum dolor sit amet, consetetur sadipscing elitr, ` &&
67+
`sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. ` &&
68+
`At vero eos et accusam et justo hey nonny no duo dolores et ea rebum. ` &&
69+
`Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. ` &&
70+
`Lorem ipsum dolor sit amet, consetetur sadipscing elitr, ` &&
71+
`sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. ` &&
72+
`At vero eos et accusam et justo duo dolores et ea rebum. ` &&
73+
`Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.` )->get(
74+
)->layout_data(
75+
)->flex_item_data( growfactor = `1`
76+
basesize = `0`
77+
backgrounddesign = `Solid`
78+
styleclass = `sapUiTinyMargin` ).
79+
80+
client->view_display( view->stringify( ) ).
81+
82+
ENDMETHOD.
83+
84+
ENDCLASS.
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
3+
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
4+
<asx:values>
5+
<VSEOCLASS>
6+
<CLSNAME>Z2UI5_CL_DEMO_APP_402</CLSNAME>
7+
<LANGU>E</LANGU>
8+
<DESCRIPT>sap.m.FlexBox - You can create balanced areas with Flex Box,</DESCRIPT>
9+
<STATE>1</STATE>
10+
<CLSCCINCL>X</CLSCCINCL>
11+
<FIXPT>X</FIXPT>
12+
<UNICODE>X</UNICODE>
13+
</VSEOCLASS>
14+
</asx:values>
15+
</asx:abap>
16+
</abapGit>

0 commit comments

Comments
 (0)