From e8388421c88ea05848ce04f0660cb5757fe06801 Mon Sep 17 00:00:00 2001
From: choper725 <129428114+choper725@users.noreply.github.com>
Date: Sat, 28 Oct 2023 18:49:56 +0300
Subject: [PATCH] font awsome free icons support (#605)
* font awsome free icons support
will make a guide how the resources should be handled..
* change description
---
src/01/z2ui5_cl_fw_cc_factory.clas.abap | 51 +++++---
src/z2ui5_cl_fw_font_awsome_icons.clas.abap | 130 ++++++++++++++++++++
src/z2ui5_cl_fw_font_awsome_icons.clas.xml | 16 +++
3 files changed, 179 insertions(+), 18 deletions(-)
create mode 100644 src/z2ui5_cl_fw_font_awsome_icons.clas.abap
create mode 100644 src/z2ui5_cl_fw_font_awsome_icons.clas.xml
diff --git a/src/01/z2ui5_cl_fw_cc_factory.clas.abap b/src/01/z2ui5_cl_fw_cc_factory.clas.abap
index f7d110d3..f7f9c82a 100644
--- a/src/01/z2ui5_cl_fw_cc_factory.clas.abap
+++ b/src/01/z2ui5_cl_fw_cc_factory.clas.abap
@@ -17,6 +17,10 @@ CLASS z2ui5_cl_fw_cc_factory DEFINITION
RETURNING
VALUE(result) TYPE REF TO z2ui5_cl_fw_cc_demo_output.
+ METHODS load_font_awsome
+ RETURNING
+ VALUE(result) TYPE REF TO z2ui5_cl_fw_font_awsome_icons.
+
METHODS constructor
IMPORTING
i_view TYPE REF TO z2ui5_cl_xml_view.
@@ -32,25 +36,8 @@ ENDCLASS.
-CLASS z2ui5_cl_fw_cc_factory IMPLEMENTATION.
+CLASS Z2UI5_CL_FW_CC_FACTORY IMPLEMENTATION.
- METHOD constructor.
-
- me->mo_view = i_view.
-
- ENDMETHOD.
-
- METHOD ui5_file_uploader.
-
- result = NEW #( mo_view ).
-
- ENDMETHOD.
-
- METHOD ui5_spreadsheet.
-
- result = NEW #( mo_view ).
-
- ENDMETHOD.
METHOD bwip_js.
@@ -58,10 +45,38 @@ CLASS z2ui5_cl_fw_cc_factory IMPLEMENTATION.
ENDMETHOD.
+
+ METHOD constructor.
+
+ me->mo_view = i_view.
+
+ ENDMETHOD.
+
+
METHOD gui_demo_output.
result = NEW #( mo_view ).
ENDMETHOD.
+
+ METHOD load_font_awsome.
+
+ result = NEW #( mo_view ).
+
+ ENDMETHOD.
+
+
+ METHOD ui5_file_uploader.
+
+ result = NEW #( mo_view ).
+
+ ENDMETHOD.
+
+
+ METHOD ui5_spreadsheet.
+
+ result = NEW #( mo_view ).
+
+ ENDMETHOD.
ENDCLASS.
diff --git a/src/z2ui5_cl_fw_font_awsome_icons.clas.abap b/src/z2ui5_cl_fw_font_awsome_icons.clas.abap
new file mode 100644
index 00000000..0e5b0966
--- /dev/null
+++ b/src/z2ui5_cl_fw_font_awsome_icons.clas.abap
@@ -0,0 +1,130 @@
+class Z2UI5_CL_FW_FONT_AWSOME_ICONS definition
+ public
+ final
+ create public .
+
+public section.
+
+ data MO_VIEW type ref to Z2UI5_CL_XML_VIEW .
+
+ methods LOAD_ICONS
+ importing
+ !FONT_URI type CLIKE
+ returning
+ value(RESULT) type ref to Z2UI5_CL_XML_VIEW .
+ methods LOAD_ANIMATION_JS
+ importing
+ !FAW_JS_URL type CLIKE
+ returning
+ value(RESULT) type ref to Z2UI5_CL_XML_VIEW .
+ methods CONSTRUCTOR
+ importing
+ !VIEW type ref to Z2UI5_CL_XML_VIEW .
+ PROTECTED SECTION.
+ PRIVATE SECTION.
+
+ENDCLASS.
+
+
+
+CLASS Z2UI5_CL_FW_FONT_AWSOME_ICONS IMPLEMENTATION.
+
+
+ METHOD constructor.
+
+ me->mo_view = view.
+
+ ENDMETHOD.
+
+
+ METHOD load_animation_js.
+
+ result = mo_view->_cc_plain_xml( `` ).
+
+ ENDMETHOD.
+
+
+ METHOD load_icons.
+
+ DATA(js) = `debugger;` && |\n| &&
+* `const metadataURI = "` && metadata_uri && `";` && |\n| &&
+* `const oFontMetadata = ` && lcl_metadata=>get_fonts_metadata( ) && |\n| &&
+* `const oFontBrandsMetadata = ` && lcl_metadata=>get_brands_fonts_metadata( ) && |\n| &&
+ `const oFonts = [{` && |\n| &&
+ ` fontFamily: 'fa-regular-400',` && |\n| &&
+ ` collectionName: 'fa-regular'` && |\n| &&
+* ` metadata: ` && lcl_metadata=>get_fonts_metadata( ) && |\n| &&
+* ` metadata: oFontMetadata,` && |\n| &&
+* ` fontURI: "` && font_uri && `"` && |\n| &&
+* ` lazy: true` && |\n| &&
+ ` }, {` && |\n| &&
+ ` fontFamily: 'fa-duotone-900',` && |\n| &&
+ ` collectionName: 'fa-duotone'` && |\n| &&
+* ` metadata: ` && lcl_metadata=>get_fonts_metadata( ) && |\n| &&
+* ` metadata: oFontMetadata` && |\n| &&
+* ` fontURI: "` && font_uri && `"` && |\n| &&
+* ` lazy: true` && |\n| &&
+ ` }, {` && |\n| &&
+ ` fontFamily: 'fa-light-300',` && |\n| &&
+ ` collectionName: 'fa-light'` && |\n| &&
+* ` metadata: ` && lcl_metadata=>get_fonts_metadata( ) && |\n| &&
+* ` metadata: oFontMetadata` && |\n| &&
+* ` fontURI: "` && font_uri && `"` && |\n| &&
+* ` lazy: true` && |\n| &&
+ ` }, {` && |\n| &&
+ ` fontFamily: 'fa-solid-900',` && |\n| &&
+ ` collectionName: 'fa-solid'` && |\n| &&
+* ` metadata: ` && lcl_metadata=>get_fonts_metadata( ) && |\n| &&
+* ` metadata: oFontMetadata` && |\n| &&
+* ` fontURI: "` && font_uri && `"` && |\n| &&
+* ` lazy: true` && |\n| &&
+ ` }, {` && |\n| &&
+ ` fontFamily: 'fa-thin-100',` && |\n| &&
+ ` collectionName: 'fa-thin'` && |\n| &&
+* ` metadata: ` && lcl_metadata=>get_fonts_metadata( ) && |\n| &&
+* ` metadata: oFontMetadata` && |\n| &&
+* ` fontURI: "` && font_uri && `"` && |\n| &&
+* ` lazy: true` && |\n| &&
+ ` }, {` && |\n| &&
+ ` fontFamily: 'fa-brands-400',` && |\n| &&
+ ` collectionName: 'fa-brands'` && |\n| &&
+* ` metadata: ` && lcl_metadata=>get_brands_fonts_metadata( ) && |\n| &&
+* ` metadata: oFontBrandsMetadata,` && |\n| &&
+* ` fontURI: "` && font_uri && `"` && |\n| &&
+* ` lazy: true` && |\n| &&
+ ` }, {` && |\n| &&
+ ` fontFamily: 'fa-sharp-solid-900',` && |\n| &&
+ ` collectionName: 'fa-sharp-solid'` && |\n| &&
+* ` metadata: ` && lcl_metadata=>get_fonts_metadata( ) && |\n| &&
+* ` metadata: oFontMetadata` && |\n| &&
+* ` fontURI: "` && font_uri && `"` && |\n| &&
+* ` lazy: true` && |\n| &&
+ ` }, {` && |\n| &&
+ ` fontFamily: 'fa-sharp-regular-400',` && |\n| &&
+ ` collectionName: 'fa-sharp-regular'` && |\n| &&
+* ` metadata: ` && lcl_metadata=>get_fonts_metadata( ) && |\n| &&
+* ` metadata: oFontMetadata` && |\n| &&
+* ` fontURI: "` && font_uri && `"` && |\n| &&
+* ` lazy: true` && |\n| &&
+ ` }, {` && |\n| &&
+ ` fontFamily: 'fa-sharp-light-300',` && |\n| &&
+ ` collectionName: 'fa-sharp-light'` && |\n| &&
+* ` metadata: ` && lcl_metadata=>get_fonts_metadata( ) && |\n| &&
+* ` metadata: oFontMetadata` && |\n| &&
+* ` fontURI: "` && font_uri && `"` && |\n| &&
+* ` lazy: true` && |\n| &&
+ `}]` && |\n| &&
+* `oFonts.forEach(oFont => {` && |\n| &&
+* ` sap.ui.core.IconPool.registerFont(oFont);` && |\n| &&
+* `});`.
+ `oFonts.forEach(function(font) {` && |\n| &&
+ ` sap.ui.core.IconPool.registerFont(jQuery.extend({}, font, {` && |\n| &&
+ ` fontURI: "` && font_uri && `",` && |\n| &&
+ ` lazy: true` && |\n| &&
+ ` }))` && |\n| &&
+ `})`.
+
+ result = mo_view->_cc_plain_xml( `` && js && `` ).
+
+ ENDMETHOD.
+ENDCLASS.
diff --git a/src/z2ui5_cl_fw_font_awsome_icons.clas.xml b/src/z2ui5_cl_fw_font_awsome_icons.clas.xml
new file mode 100644
index 00000000..f25e4ae6
--- /dev/null
+++ b/src/z2ui5_cl_fw_font_awsome_icons.clas.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+ Z2UI5_CL_FW_FONT_AWSOME_ICONS
+ E
+ font awsome icons load
+ 1
+ X
+ X
+ X
+
+
+
+