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 + + + +