diff --git a/README.md b/README.md
index 59aeff7e..6763d2eb 100644
--- a/README.md
+++ b/README.md
@@ -76,6 +76,9 @@ METHOD if_http_extension~handle_request.
ENDMETHOD.
```
##### ABAP for Cloud :cloud:
+
+show code...
+
```abap
METHOD if_http_service_extension~handle_request.
@@ -89,6 +92,9 @@ METHOD if_http_service_extension~handle_request.
ENDMETHOD.
```
+
+
+
#### Usage
Implement the abap2UI5 interface as shown in the following example:
```abap
diff --git a/src/01/z2ui5_cl_fw_integration_test.clas.testclasses.abap b/src/01/z2ui5_cl_fw_integration_test.clas.testclasses.abap
index a0472df9..3051e550 100644
--- a/src/01/z2ui5_cl_fw_integration_test.clas.testclasses.abap
+++ b/src/01/z2ui5_cl_fw_integration_test.clas.testclasses.abap
@@ -14,7 +14,6 @@ CLASS ltcl_integration_test DEFINITION FINAL FOR TESTING
METHODS test_bind_two_way FOR TESTING RAISING cx_static_check.
METHODS test_message_toast FOR TESTING RAISING cx_static_check.
METHODS test_message_box FOR TESTING RAISING cx_static_check.
- METHODS test_timer FOR TESTING RAISING cx_static_check.
METHODS test_landing_page FOR TESTING RAISING cx_static_check.
METHODS test_scroll_cursor FOR TESTING RAISING cx_static_check.
METHODS test_navigate FOR TESTING RAISING cx_static_check.
@@ -174,34 +173,6 @@ CLASS ltcl_integration_test IMPLEMENTATION.
ENDMETHOD.
- METHOD test_timer.
-
-* z2ui5_cl_fw_integration_test=>sv_state = `TEST_TIMER`.
-* DATA(lv_response) = z2ui5_cl_fw_http_handler=>http_post(
-* `{ "OLOCATION" : { "SEARCH" : "app_start=z2ui5_cl_fw_integration_test"}}` ).
-*
-* DATA lo_data TYPE REF TO data.
-* /ui2/cl_json=>deserialize( EXPORTING json = lv_response
-* CHANGING data = lo_data ).
-*
-* FIELD-SYMBOLS TYPE any.
-*
-* UNASSIGN .
-* DATA(lv_assign) = `PARAMS->S_TIMER->EVENT_FINISHED->*`.
-* ASSIGN lo_data->(lv_assign) TO .
-* IF <> `TIMER_FINISHED`.
-* cl_abap_unit_assert=>fail( msg = 'timer - event wrong'
-* quit = 5 ).
-* ENDIF.
-*
-* UNASSIGN .
-* lv_assign = `PARAMS->S_TIMER->INTERVAL_MS->*`.
-* ASSIGN lo_data->(lv_assign) TO .
-* IF <> `500`.
-* cl_abap_unit_assert=>fail( msg = 'timer - ms wrong'
-* quit = 5 ).
-* ENDIF.
- ENDMETHOD.
METHOD test_xml_popup.
@@ -343,7 +314,7 @@ CLASS ltcl_integration_test IMPLEMENTATION.
DATA(lv_id) = CONV string( ).
- DATA(lv_request) = `{"EDIT":{"QUANTITY":"700"},"ID": "` && lv_id && `" ,"ARGUMENTS": [{"EVENT":"BUTTON_POST","METHOD":"UPDATE"}]}`.
+ DATA(lv_request) = `{"EDIT":{"QUANTITY":"700"},"ID": "` && lv_id && `" ,"ARGUMENTS": [{"EVENT":"BUTTON_POST","METHOD":"UPDATE"}], "VIEWNAME" : "MAIN"}`.
lv_response = z2ui5_cl_fw_http_handler=>http_post( lv_request ).
CLEAR lo_data.
@@ -355,7 +326,8 @@ CLASS ltcl_integration_test IMPLEMENTATION.
UNASSIGN .
ASSIGN (`LO_DATA->PARAMS->*`) TO .
- ASSIGN (`->S_MSG_TOAST->TEXT->*`) TO .
+ ASSIGN (`-S_MSG_TOAST->*`) TO .
+ ASSIGN (`-TEXT->*`) TO .
cl_abap_unit_assert=>assert_not_initial( ).
* cl_abap_unit_assert=>assert_equals(
diff --git a/src/01/z2ui5_cl_fw_utility_xml.clas.abap b/src/01/z2ui5_cl_fw_utility_xml.clas.abap
index 70b533e5..67610f94 100644
--- a/src/01/z2ui5_cl_fw_utility_xml.clas.abap
+++ b/src/01/z2ui5_cl_fw_utility_xml.clas.abap
@@ -7,6 +7,7 @@ CLASS z2ui5_cl_fw_utility_xml DEFINITION
DATA mt_prop TYPE z2ui5_if_client=>ty_t_name_value.
DATA mt_ns TYPE SORTED TABLE OF string WITH UNIQUE KEY table_line.
DATA mv_name TYPE string.
+ DATA mv_content TYPE string.
DATA mv_ns TYPE string.
DATA mo_root TYPE REF TO z2ui5_cl_fw_utility_xml.
DATA mo_previous TYPE REF TO z2ui5_cl_fw_utility_xml.
diff --git a/src/02/z2ui5_cl_ui5.clas.abap b/src/02/z2ui5_cl_ui5.clas.abap
index 0c7bbbaa..ed725205 100644
--- a/src/02/z2ui5_cl_ui5.clas.abap
+++ b/src/02/z2ui5_cl_ui5.clas.abap
@@ -27,7 +27,11 @@ CLASS z2ui5_cl_ui5 DEFINITION
v TYPE clike
RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5.
- METHODS _ns
+ METHODS _add_c
+ IMPORTING val TYPE clike
+ RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5.
+
+ METHODS _ns
RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5.
METHODS _ns_ndc
@@ -48,6 +52,9 @@ CLASS z2ui5_cl_ui5 DEFINITION
METHODS _ns_html
RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5_html.
+ METHODS _ns_webc
+ RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5_ui_webc.
+
METHODS constructor
IMPORTING node TYPE REF TO z2ui5_cl_fw_utility_xml OPTIONAL.
@@ -84,10 +91,6 @@ CLASS z2ui5_cl_ui5 IMPLEMENTATION.
ENDMETHOD.
METHOD _2xml.
- IF obj->_node->mv_name = `ZZPLAIN`.
- result = obj->_node->mt_prop[ n = `VALUE` ]-v.
- RETURN.
- ENDIF.
DATA lt_prop TYPE z2ui5_if_client=>ty_t_name_value.
lt_prop = VALUE #( ( n = `` v = `sap.m` )
@@ -106,12 +109,14 @@ CLASS z2ui5_cl_ui5 IMPLEMENTATION.
( n = `z2ui5` v = `z2ui5` )
( n = `mchart` v = `sap.suite.ui.microchart` )
( n = `editor` v = `sap.ui.codeeditor` )
+ ( n = `wf` v = `sap.ui.webc.fiori` )
+ ( n = `wm` v = `sap.ui.webc.main` )
+ ( n = `html` v = `http://www.w3.org/1999/xhtml` )
* ( n = `core:require` v = `{ MessageToast: 'sap/m/MessageToast' }` )
* ( n = `core:require` v = `{ URLHelper: 'sap/m/library/URLHelper' }` )
- ( n = `xmlns:webc` v = `sap.ui.webc.main` )
+* ( n = `xmlns:webc` v = `sap.ui.webc.main` )
( n = `xmlns:uxap` v = `sap.uxap` )
( n = `xmlns:text` v = `sap.ui.richtexteditor` )
- ( n = `xmlns:html` v = `http://www.w3.org/1999/xhtml` )
( n = `xmlns:fb` v = `sap.ui.comp.filterbar` )
( n = `xmlns:u` v = `sap.ui.unified` )
( n = `xmlns:gantt` v = `sap.gantt.simple` )
@@ -136,8 +141,8 @@ CLASS z2ui5_cl_ui5 IMPLEMENTATION.
CATCH cx_root.
- data(lv_text) = cond #( when lv_ns_tmp is initial then `XML_VIEW_NOT_VALID_NAMESPACE_EMPTY`
- else `XML_VIEW_NOT_VALID_NAMESPACE_NOT_FOUND failure: ` && lv_ns_tmp ).
+ DATA(lv_text) = COND #( WHEN lv_ns_tmp IS INITIAL THEN `XML_VIEW_NOT_VALID_NAMESPACE_EMPTY`
+ ELSE `XML_VIEW_NOT_VALID_NAMESPACE_NOT_FOUND failure: ` && lv_ns_tmp ).
RAISE EXCEPTION TYPE z2ui5_cx_fw_error
EXPORTING
@@ -160,13 +165,19 @@ CLASS z2ui5_cl_ui5 IMPLEMENTATION.
result = |{ result }<{ lv_ns }{ lv_element }{ lv_prop }|.
- IF obj->_node->mt_child IS INITIAL.
+ IF obj->_node->mt_child IS INITIAL AND obj->_node->mv_content IS INITIAL.
result = |{ result }/>|.
RETURN.
ENDIF.
result = |{ result }>|.
+ IF obj->_node->mv_content IS NOT INITIAL.
+ result = result && obj->_node->mv_content.
+ result = |{ result }{ lv_ns }{ lv_element }>|.
+ RETURN.
+ ENDIF.
+
LOOP AT obj->_node->mt_child INTO DATA(lr_child).
DATA(lo_child) = NEW z2ui5_cl_ui5( lr_child ).
result = result && _2xml( lo_child ).
@@ -206,7 +217,10 @@ CLASS z2ui5_cl_ui5 IMPLEMENTATION.
DATA(lv_n) = COND #( WHEN check_popup = abap_true THEN `FragmentDefinition` ELSE `View` ).
DATA(lv_ns) = COND #( WHEN check_popup = abap_true THEN `sap.ui.core` ELSE `sap.ui.core.mvc` ).
- result = result->_add( n = lv_n ns = lv_ns ).
+ result->_node->mv_name = lv_n.
+ result->_node->mv_ns = lv_ns.
+ INSERT lv_ns INTO TABLE result->_node->mo_root->mt_ns.
+ "( n = lv_n ns = lv_ns ).
IF check_popup = abap_false.
result->_add_p( n = `displayBlock` v = `true` ).
@@ -226,6 +240,11 @@ CLASS z2ui5_cl_ui5 IMPLEMENTATION.
ENDMETHOD.
METHOD _go_up.
+ IF _node = _node->mo_root.
+ RAISE EXCEPTION TYPE z2ui5_cx_fw_error
+ EXPORTING
+ val = `XML_VIEW_PARSER_ERROR - go_up on root element not possible`.
+ ENDIF.
result = NEW #( _node->mo_parent ).
ENDMETHOD.
@@ -237,6 +256,10 @@ CLASS z2ui5_cl_ui5 IMPLEMENTATION.
result = NEW #( _node ).
ENDMETHOD.
+ METHOD _ns_webc.
+ result = NEW #( _node ).
+ ENDMETHOD.
+
METHOD _ns_ndc.
result = NEW #( _node ).
ENDMETHOD.
@@ -261,4 +284,10 @@ CLASS z2ui5_cl_ui5 IMPLEMENTATION.
METHOD _ns_suite.
result = NEW #( _node ).
ENDMETHOD.
+
+ METHOD _add_c.
+ _node->mv_content = val.
+ result = me.
+ ENDMETHOD.
+
ENDCLASS.
diff --git a/src/02/z2ui5_cl_ui5.clas.testclasses.abap b/src/02/z2ui5_cl_ui5.clas.testclasses.abap
new file mode 100644
index 00000000..fd055419
--- /dev/null
+++ b/src/02/z2ui5_cl_ui5.clas.testclasses.abap
@@ -0,0 +1,113 @@
+CLASS ltcl_unit_test DEFINITION FINAL FOR TESTING
+ DURATION SHORT
+ RISK LEVEL HARMLESS.
+
+ PRIVATE SECTION.
+ METHODS:
+ test_factory FOR TESTING RAISING cx_static_check,
+ test_factory_popup FOR TESTING RAISING cx_static_check,
+ test_add FOR TESTING RAISING cx_static_check,
+ test_add_p FOR TESTING RAISING cx_static_check,
+ test_go FOR TESTING RAISING cx_static_check,
+ test_ns FOR TESTING RAISING cx_static_check,
+ test_add_add FOR TESTING RAISING cx_static_check.
+ENDCLASS.
+
+
+CLASS ltcl_unit_test IMPLEMENTATION.
+
+ METHOD test_factory.
+
+ DATA(lo_tree) = z2ui5_cl_ui5=>_factory( ).
+
+ DATA(lv_result) = lo_tree->_stringify( ).
+ cl_abap_unit_assert=>assert_equals(
+ act = lv_result
+ exp = ``
+ ).
+
+ ENDMETHOD.
+
+ METHOD test_factory_popup.
+
+ DATA(lo_tree) = z2ui5_cl_ui5=>_factory( check_popup = abap_true ).
+
+ DATA(lv_result) = lo_tree->_stringify( ).
+ cl_abap_unit_assert=>assert_equals(
+ act = lv_result
+ exp = ``
+ ).
+
+ ENDMETHOD.
+
+ METHOD test_add.
+
+ DATA(lo_tree) = z2ui5_cl_ui5=>_factory( ).
+ lo_tree->_add( n = 'XML' ns = `sap.ui.core` t_p = VALUE #( ( n = `test` v = `test_value` ) ) ).
+
+ DATA(lv_result) = lo_tree->_stringify( ).
+ cl_abap_unit_assert=>assert_equals(
+ act = lv_result
+ exp = ``
+ ).
+
+ ENDMETHOD.
+
+ METHOD test_add_p.
+
+ DATA(lo_tree) = z2ui5_cl_ui5=>_factory( ).
+ lo_tree->_add( n = 'Test' ns = `sap.ui.core`
+ )->_add_p( n = `test_p` v = `test_p_v` ).
+
+ DATA(lv_result) = lo_tree->_stringify( ).
+ cl_abap_unit_assert=>assert_equals(
+ act = lv_result
+ exp = `` ).
+
+ ENDMETHOD.
+
+ METHOD test_add_add.
+
+ DATA(lo_tree) = z2ui5_cl_ui5=>_factory( ).
+ lo_tree->_add( n = 'Test' ns = `sap.ui.core`
+ )->_add( n = `test_p` ns = `sap.ui.core` ).
+
+ DATA(lv_result) = lo_tree->_stringify( ).
+ cl_abap_unit_assert=>assert_equals(
+ act = lv_result
+ exp = ``
+ ).
+
+ ENDMETHOD.
+
+ METHOD test_go.
+
+* DATA(lo_tree) = z2ui5_cl_ui5=>_factory( ).
+* DATA(lo_parent) = lo_tree->_add( n = 'XML' ns = `core` ).
+* DATA(lo_child) = lo_parent->_add( n = `XML_CHILD` ns = `core` ).
+
+* IF lo_parent->_go_new( )->_ <> lo_child.
+* cl_abap_unit_assert=>abort( ).
+* ENDIF.
+*
+* IF lo_child->_go_root( ) <> lo_parent.
+* cl_abap_unit_assert=>abort( ).
+* ENDIF.
+*
+* IF lo_child->_go_up( ) <> lo_parent.
+* cl_abap_unit_assert=>abort( ).
+* ENDIF.
+
+ ENDMETHOD.
+
+ METHOD test_ns.
+
+ DATA(lo_html) = NEW z2ui5_cl_ui5( )->_ns_html( ) ##NEEDED.
+ DATA(lo_m) = NEW z2ui5_cl_ui5( )->_ns_m( ) ##NEEDED.
+ DATA(lo_ndc) = NEW z2ui5_cl_ui5( )->_ns_ndc( ) ##NEEDED.
+ DATA(lo_suite) = NEW z2ui5_cl_ui5( )->_ns_suite( ) ##NEEDED.
+ DATA(lo_zcc) = NEW z2ui5_cl_ui5( )->_ns_zcc( ) ##NEEDED.
+
+ ENDMETHOD.
+
+ENDCLASS.
diff --git a/src/02/z2ui5_cl_ui5.clas.xml b/src/02/z2ui5_cl_ui5.clas.xml
index 46e43899..9f8931a0 100644
--- a/src/02/z2ui5_cl_ui5.clas.xml
+++ b/src/02/z2ui5_cl_ui5.clas.xml
@@ -10,6 +10,7 @@
X
X
X
+ X
diff --git a/src/02/z2ui5_cl_ui5_html.clas.abap b/src/02/z2ui5_cl_ui5_html.clas.abap
index 38d3ed14..a34c95a5 100644
--- a/src/02/z2ui5_cl_ui5_html.clas.abap
+++ b/src/02/z2ui5_cl_ui5_html.clas.abap
@@ -34,10 +34,9 @@ CLASS z2ui5_cl_ui5_html IMPLEMENTATION.
ENDMETHOD.
METHOD script.
- result = me.
- _add( n = `script`
+ result = _add( n = `script`
ns = `http://www.w3.org/1999/xhtml`
- t_p = VALUE #( ( n = `src` v = src ) ) ).
+ t_p = VALUE #( ( n = `src` v = src ) ) )->_ns_html( ).
ENDMETHOD.
METHOD style.
diff --git a/src/02/z2ui5_cl_ui5_m.clas.abap b/src/02/z2ui5_cl_ui5_m.clas.abap
index 2c8ac788..0a1a9d3a 100644
--- a/src/02/z2ui5_cl_ui5_m.clas.abap
+++ b/src/02/z2ui5_cl_ui5_m.clas.abap
@@ -78,6 +78,25 @@ CLASS z2ui5_cl_ui5_m DEFINITION
PREFERRED PARAMETER text
RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5_m.
+ METHODS bar
+ RETURNING
+ VALUE(result) TYPE REF TO z2ui5_cl_ui5_m .
+
+
+ METHODS content_middle
+ RETURNING
+ VALUE(result) TYPE REF TO z2ui5_cl_ui5_m .
+
+ METHODS panel
+ IMPORTING
+ !expandable TYPE clike OPTIONAL
+ !expanded TYPE clike OPTIONAL
+ !headertext TYPE clike OPTIONAL
+ stickyheader TYPE clike OPTIONAL
+ height TYPE clike OPTIONAL
+ RETURNING
+ VALUE(result) TYPE REF TO z2ui5_cl_ui5_m.
+
METHODS button
IMPORTING text TYPE clike OPTIONAL
icon TYPE clike OPTIONAL
@@ -243,6 +262,17 @@ ENDCLASS.
CLASS z2ui5_cl_ui5_m IMPLEMENTATION.
+ METHOD panel.
+
+ result = _add( n = `Panel` ns = `sap.m`
+ t_p = VALUE #( ( n = `expandable` v = z2ui5_cl_fw_utility=>boolean_abap_2_json( expandable ) )
+ ( n = `expanded` v = z2ui5_cl_fw_utility=>boolean_abap_2_json( expanded ) )
+ ( n = `stickyHeader` v = z2ui5_cl_fw_utility=>boolean_abap_2_json( stickyheader ) )
+ ( n = `height` v = height )
+ ( n = `headerText` v = headertext ) ) )->_ns_m( ).
+
+ ENDMETHOD.
+
METHOD additionalcontent.
result = _add( ns = `sap.m` n = `additionalContent` )->_ns_m( ).
ENDMETHOD.
@@ -470,9 +500,18 @@ CLASS z2ui5_cl_ui5_m IMPLEMENTATION.
ENDMETHOD.
METHOD shell.
- result = _add( n = `Shell` ns = `sap.m` )->_ns_m( ).
+ result = _add( n = `Shell` ns = `sap.m` )->_ns_m( ).
ENDMETHOD.
+ METHOD bar.
+ result = _add( n = `Bar` ns = `sap.m` )->_ns_m( ).
+ ENDMETHOD.
+
+ METHOD content_middle.
+ result = _add( n = `contentMiddle` ns = `sap.m` )->_ns_m( ).
+ ENDMETHOD.
+
+
METHOD input.
result = me.
_add( n = `Input`
diff --git a/src/02/z2ui5_cl_ui5_ui_webc.clas.abap b/src/02/z2ui5_cl_ui5_ui_webc.clas.abap
new file mode 100644
index 00000000..ea28131f
--- /dev/null
+++ b/src/02/z2ui5_cl_ui5_ui_webc.clas.abap
@@ -0,0 +1,142 @@
+CLASS z2ui5_cl_ui5_ui_webc DEFINITION
+ PUBLIC
+ FINAL
+ CREATE PUBLIC INHERITING FROM z2ui5_cl_ui5.
+
+ PUBLIC SECTION.
+ METHODS button
+ IMPORTING id TYPE clike OPTIONAL
+ icon TYPE clike OPTIONAL
+ text TYPE clike OPTIONAL
+ tooltip TYPE clike OPTIONAL
+ design TYPE clike OPTIONAL
+ click TYPE clike OPTIONAL
+ RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5_ui_webc.
+
+ METHODS bar
+ IMPORTING id TYPE clike OPTIONAL
+ design TYPE clike OPTIONAL
+ RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5_ui_webc.
+
+ METHODS label
+ IMPORTING
+ id TYPE clike OPTIONAL
+ text TYPE clike OPTIONAL
+ RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5_ui_webc.
+
+ METHODS panel
+ IMPORTING id TYPE clike OPTIONAL
+ RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5_ui_webc.
+
+ METHODS header
+ IMPORTING id TYPE clike OPTIONAL
+ RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5_ui_webc.
+
+ METHODS input
+ IMPORTING id TYPE clike OPTIONAL
+ text type clike OPTIONAL
+ click type clike optional
+ value TYPE clike OPTIONAL
+ width TYPE clike OPTIONAL
+ RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5_ui_webc.
+
+ METHODS toast
+ IMPORTING id TYPE clike OPTIONAL
+ RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5_ui_webc.
+
+ PROTECTED SECTION.
+
+ PRIVATE SECTION.
+ENDCLASS.
+
+
+
+CLASS Z2UI5_CL_UI5_UI_WEBC IMPLEMENTATION.
+
+
+ METHOD bar.
+
+ result = _add( n = `Bar`
+ ns = 'sap.ui.webc.fiori'
+ t_p = VALUE #( ( n = `id` v = id )
+ ( n = `design` v = design )
+ ) )->_ns_webc( ).
+
+ ENDMETHOD.
+
+
+ METHOD button.
+
+ result = me.
+ _add( n = `Button`
+ ns = 'sap.ui.webc.main'
+ t_p = VALUE #( ( n = `id` v = id )
+ ( n = `icon` v = icon )
+ ( n = `tooltip` v = tooltip )
+ ( n = `text` v = text )
+ ( n = `click` v = click )
+ ( n = `design` v = design ) ) )->_ns_webc( ).
+
+ ENDMETHOD.
+
+
+ METHOD header.
+
+ result = _add( n = `header`
+ ns = 'sap.ui.webc.main'
+ t_p = VALUE #( ( n = `id` v = id ) ) )->_ns_webc( ).
+
+ ENDMETHOD.
+
+
+ METHOD input.
+
+ result = me.
+ _add( n = `Input`
+ ns = 'sap.ui.webc.main'
+ t_p = VALUE #(
+ ( n = `id` v = id )
+ ( n = `text` v = text )
+ ( n = `click` v = click )
+ ( n = `width` v = width )
+ ( n = `value` v = value )
+ ) )->_ns_webc( ).
+
+ ENDMETHOD.
+
+
+ METHOD label.
+
+ result = me.
+ _add( n = `Label`
+ ns = 'sap.ui.webc.main'
+ t_p = VALUE #(
+ ( n = `id` v = id )
+ ( n = `text` v = text )
+ ) )->_ns_webc( ).
+
+ ENDMETHOD.
+
+
+ METHOD panel.
+
+ result = _add( n = `Panel`
+ ns = 'sap.ui.webc.main'
+ t_p = VALUE #(
+ ( n = `id` v = id )
+ ) )->_ns_webc( ).
+
+ ENDMETHOD.
+
+
+ METHOD toast.
+
+ result = me.
+ _add( n = `Toast`
+ ns = 'sap.ui.webc.main'
+ t_p = VALUE #(
+ ( n = `id` v = id )
+ ) )->_ns_webc( ).
+
+ ENDMETHOD.
+ENDCLASS.
diff --git a/src/02/z2ui5_cl_ui5_ui_webc.clas.xml b/src/02/z2ui5_cl_ui5_ui_webc.clas.xml
new file mode 100644
index 00000000..b153e975
--- /dev/null
+++ b/src/02/z2ui5_cl_ui5_ui_webc.clas.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+ Z2UI5_CL_UI5_UI_WEBC
+ E
+ ns - sap.ui.webc
+ 1
+ X
+ X
+ X
+
+
+
+
diff --git a/src/z2ui5_cl_fw_http_handler.clas.abap b/src/z2ui5_cl_fw_http_handler.clas.abap
index 701ab2c1..2bc1d732 100644
--- a/src/z2ui5_cl_fw_http_handler.clas.abap
+++ b/src/z2ui5_cl_fw_http_handler.clas.abap
@@ -40,7 +40,7 @@ CLASS Z2UI5_CL_FW_HTTP_HANDLER IMPLEMENTATION.
lt_config = VALUE #(
( n = `data-sap-ui-theme` v = `sap_horizon` )
( n = `src` v = `https://sdk.openui5.org/resources/sap-ui-cachebuster/sap-ui-core.js` )
- ( n = `data-sap-ui-libs` v = `sap.m` )
+* ( n = `data-sap-ui-libs` v = `sap.m` )
( n = `data-sap-ui-bindingSyntax` v = `complex` )
( n = `data-sap-ui-frameOptions` v = `trusted` )
( n = `data-sap-ui-compatVersion` v = `edge` ) ).
@@ -432,11 +432,11 @@ CLASS Z2UI5_CL_FW_HTTP_HANDLER IMPLEMENTATION.
|\n| &&
` sap.z2ui5.oController.ViewDestroy();` && |\n| &&
|\n| &&
- ` new sap.ui.core.mvc.XMLView.create({` && |\n| &&
+ ` new sap.ui.core.mvc.XMLView.create({` && |\n| &&
` definition: sap.z2ui5.oResponse.PARAMS.S_VIEW.XML,` && |\n| &&
` controller: sap.z2ui5.oController,` && |\n| &&
` }).then(oView => {` && |\n| &&
- ` oView.setModel(new sap.ui.model.json.JSONModel(sap.z2ui5.oResponse.OVIEWMODEL));` && |\n| &&
+ ` oView.setModel(new sap.ui.model.json.JSONModel(sap.z2ui5.oResponse.OVIEWMODEL));` && |\n| &&
` if (sap.z2ui5.oParent) {` && |\n| &&
` sap.z2ui5.oParent.removeAllPages();` && |\n| &&
` sap.z2ui5.oParent.insertPage(oView);` && |\n| &&
@@ -497,7 +497,7 @@ CLASS Z2UI5_CL_FW_HTTP_HANDLER IMPLEMENTATION.
` sap.z2ui5.checkNestAfter = false;` && |\n| &&
` sap.z2ui5.checkNestAfter2 = false;` && |\n| &&
|\n| &&
-* ` debugger;` && |\n| &&
+* ` debugger;` && |\n| &&
` sap.z2ui5.oBody.OLOCATION = {` && |\n| &&
` ORIGIN: window.location.origin,` && |\n| &&
` PATHNAME: sap.z2ui5.pathname,` && |\n| &&