font awsome free icons support (#605)

* font awsome free icons support

will make a guide how the resources should be handled..

* change description
This commit is contained in:
choper725 2023-10-28 18:49:56 +03:00 committed by GitHub
parent 84dfd26dc9
commit e8388421c8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 179 additions and 18 deletions

View File

@ -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.

View File

@ -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( `<html:script src="` && faw_js_url && `" ></html:script>` ).
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( `<html:script>` && js && `</html:script>` ).
ENDMETHOD.
ENDCLASS.

View File

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>Z2UI5_CL_FW_FONT_AWSOME_ICONS</CLSNAME>
<LANGU>E</LANGU>
<DESCRIPT>font awsome icons load</DESCRIPT>
<STATE>1</STATE>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>