* update chartjs cc

* Update src/02/z2ui5_cl_cc_chartjs.clas.abap

Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>

* update

* Update src/02/z2ui5_cl_cc_chartjs.clas.abap

Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>

* fix

* update chartjs cc

* Update src/02/z2ui5_cl_cc_chartjs.clas.abap

Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>

* Update z2ui5_cl_cc_chartjs.clas.abap

* Update z2ui5_cl_cc_chartjs.clas.abap

* Update z2ui5_cl_cc_chartjs.clas.abap

---------

Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>
Co-authored-by: oblomov <102328295+oblomov-dev@users.noreply.github.com>
This commit is contained in:
choper725 2024-01-20 11:32:50 +02:00 committed by GitHub
parent 042dadf90e
commit 6db8701c47
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -71,11 +71,21 @@ CLASS z2ui5_cl_cc_chartjs DEFINITION
text_shadow_color TYPE string,
END OF ty_datalabels .
TYPES:
BEGIN OF ty_data_venn,
sets TYPE string_table,
value TYPE string,
values TYPE string_table,
END OF ty_data_venn .
TYPES ty_data_venn_t TYPE STANDARD TABLE OF ty_data_venn WITH DEFAULT KEY.
TYPES:
BEGIN OF ty_dataset,
label TYPE string,
type TYPE string,
data TYPE string_table,
data_venn TYPE ty_data_venn_t,
data_x_y_r TYPE ty_x_y_r_data_t,
border_width TYPE i,
border_color TYPE string,
@ -490,17 +500,17 @@ CLASS z2ui5_cl_cc_chartjs DEFINITION
"ChartJS Configuration
TYPES:
BEGIN OF ty_chart,
BEGIN OF ty_chart ##NEEDED,
type TYPE string,
plugins TYPE string_table,
* plugins TYPE string_table,
data TYPE ty_data,
options TYPE ty_options,
END OF ty_chart .
END OF ty_chart.
CLASS-METHODS get_js_local
CLASS-METHODS get_chartjs_local
RETURNING
VALUE(result) TYPE string .
CLASS-METHODS get_js_url
CLASS-METHODS get_chartjs_url
RETURNING
VALUE(result) TYPE string .
CLASS-METHODS get_js_datalabels
@ -512,20 +522,21 @@ CLASS z2ui5_cl_cc_chartjs DEFINITION
CLASS-METHODS get_js_deferred
RETURNING
VALUE(result) TYPE string .
CLASS-METHODS get_js_venn
RETURNING
VALUE(result) TYPE string .
CLASS-METHODS get_js_wordcloud
RETURNING
VALUE(result) TYPE string .
CLASS-METHODS load_js
IMPORTING
datalabels TYPE abap_bool DEFAULT abap_false
autocolors TYPE abap_bool DEFAULT abap_false
deferred TYPE abap_bool DEFAULT abap_false
venn TYPE abap_bool DEFAULT abap_false
wordcloud TYPE abap_bool DEFAULT abap_false
RETURNING
VALUE(result) TYPE string .
CLASS-METHODS set_js_config
IMPORTING
!canvas_id TYPE string
!view TYPE string
!is_config TYPE ty_chart
RETURNING
VALUE(chartjs_config) TYPE string .
CLASS-METHODS load_cc
RETURNING
VALUE(result) TYPE string .
@ -541,6 +552,16 @@ ENDCLASS.
CLASS Z2UI5_CL_CC_CHARTJS IMPLEMENTATION.
METHOD get_chartjs_local.
result = ``.
ENDMETHOD.
METHOD get_chartjs_url.
result = `https://cdn.jsdelivr.net/npm/chart.js@4.4.1/dist/chart.umd.js`.
ENDMETHOD.
METHOD get_js_autocolors.
"chartjs-plugin-datalabels must be loaded after the Chart.js library!
result = `https://cdn.jsdelivr.net/npm/chartjs-plugin-autocolors`.
@ -559,19 +580,18 @@ CLASS Z2UI5_CL_CC_CHARTJS IMPLEMENTATION.
ENDMETHOD.
METHOD get_js_local.
result = ``.
METHOD get_js_venn.
result = `https://cdn.jsdelivr.net/npm/chartjs-chart-venn@4.2.7/build/index.umd.min.js`.
ENDMETHOD.
METHOD get_js_url.
result = `https://cdn.jsdelivr.net/npm/chart.js@4.4.1/dist/chart.umd.js`.
METHOD get_js_wordcloud.
result = `https://cdn.jsdelivr.net/npm/chartjs-chart-wordcloud@4.3.2/build/index.umd.min.js`.
ENDMETHOD.
METHOD load_cc.
DATA lv_libs TYPE string VALUE ``.
result = `debugger;` && |\n| &&
`sap.ui.define("z2ui5/chartjs", [` && |\n| &&
@ -607,34 +627,25 @@ CLASS Z2UI5_CL_CC_CHARTJS IMPLEMENTATION.
` }` && |\n| &&
` }` && |\n| &&
` },` && |\n| &&
` init() {` && |\n| &&
` },` && |\n| &&
|\n| &&
` fixJsonLibs(data) {` && |\n| &&
` ` && |\n| &&
` if (!data.hasOwnProperty("plugins")) { ` && |\n| &&
` data["plugins"] = [` && lv_libs && `];` && |\n| &&
` return;` && |\n| &&
` };` && |\n| &&
` ` && |\n| &&
` Object.keys(data).forEach(function(key) {` && |\n| &&
` if(key=="plugins") {` && |\n| &&
` data[key] = [` && lv_libs && `];` && |\n| &&
` };` && |\n| &&
` })},` && |\n| &&
` init() {` && |\n| &&
` },` && |\n| &&
|\n| &&
` setConfig: function(oConfig) { ` && |\n| &&
` var prevConfig = this.getProperty("config");` && |\n| &&
` var canvas_id = this.getProperty("canvas_id");` && |\n| &&
` var cVar = canvas_id+'_chartjs'; ` && |\n| &&
` if(prevConfig) { delete prevConfig["plugins"]; }` && |\n| &&
` if(prevConfig == oConfig) { return }` && |\n| &&
` var cType = oConfig.type;` && |\n| &&
` if(cType == 'venn') {` && |\n| &&
` var tConfig = JSON.stringify(oConfig);` && |\n| &&
` tConfig = tConfig.replace("dataVenn","data");` && |\n| &&
` oConfig = JSON.parse(tConfig);` && |\n| &&
` } else {` && |\n| &&
` this.setProperty("config", oConfig );` && |\n| &&
` };` && |\n| &&
` this.setProperty("config", oConfig );` && |\n| &&
` if(oConfig){ this.fixJsonLibs(oConfig); };` && |\n| &&
` if(oConfig){ fixJsonLibs(oConfig); };` && |\n| &&
` if(window[cVar]?.data) { window[cVar].data = oConfig.data; }` && |\n| &&
` if(window[cVar]?.options) { window[cVar].options = oConfig.options; }` && |\n| &&
` if(window[cVar]?.config._config.type) { window[cVar].config._config.type = oConfig.type; }` && |\n| &&
* ` if(window[cVar]?.config._config.plugins) { window[cVar].config._config.plugins = oConfig.plugins; }` && |\n| &&
` if(window[cVar]){ window[cVar].update(); }` && |\n| &&
` },` && |\n| &&
|\n| &&
@ -665,10 +676,10 @@ CLASS Z2UI5_CL_CC_CHARTJS IMPLEMENTATION.
METHOD load_js.
DATA lv_libs TYPE string VALUE ``.
DATA lv_libs TYPE string VALUE ` `.
result = `` && |\n| &&
`var libs = ["` && get_js_url( ) && `"];` && |\n|.
`var libs = ["` && get_chartjs_url( ) && `"];` && |\n|.
IF datalabels = abap_true.
result = result && `libs.push("` && get_js_datalabels( ) && `");` && |\n|.
@ -694,6 +705,13 @@ CLASS Z2UI5_CL_CC_CHARTJS IMPLEMENTATION.
lv_libs = lv_libs && `,` && `sap.z2ui5.ChartDeferred`.
ENDIF.
ENDIF.
IF venn = abap_true.
result = result && `libs.push("` && get_js_venn( ) && `");` && |\n|.
ENDIF.
IF wordcloud = abap_true.
result = result && `libs.push("` && get_js_wordcloud( ) && `");` && |\n|.
ENDIF.
result = result && `` && |\n| &&
`var fixJsonLibs = function(data){` && |\n| &&
@ -728,63 +746,4 @@ CLASS Z2UI5_CL_CC_CHARTJS IMPLEMENTATION.
`loadLibs();`.
ENDMETHOD.
METHOD set_js_config.
DATA lv_canvas_el TYPE string.
DATA lv_guid TYPE string.
DATA ls_config TYPE ty_chart.
ls_config = is_config.
ASSIGN COMPONENT 'PLUGINS' OF STRUCTURE ls_config TO FIELD-SYMBOL(<fs_plugins>).
IF sy-subrc = 0.
CLEAR <fs_plugins>.
ENDIF.
ls_config-plugins = VALUE #( ( `dummy` ) ).
IF ls_config IS NOT INITIAL.
DATA json_config TYPE string VALUE ``.
json_config = /ui2/cl_json=>serialize(
data = ls_config
compress = abap_true
pretty_name = 'X'
).
FIND 'dataXYR' IN json_config.
IF sy-subrc = 0.
REPLACE ALL OCCURRENCES OF 'dataXYR' IN json_config WITH 'data'.
ENDIF.
FIND 'backgroundColorT' IN json_config.
IF sy-subrc = 0.
REPLACE ALL OCCURRENCES OF 'backgroundColorT' IN json_config WITH 'backgroundColor'.
ENDIF.
ENDIF.
CASE view.
WHEN 'MAIN'.
lv_canvas_el = `sap.z2ui5.oView.createId('` && canvas_id && `')`.
WHEN 'POPUP'.
lv_canvas_el = `sap.z2ui5.oPopup.createId('` && canvas_id && `')`.
WHEN 'POPOVER'.
lv_canvas_el = `sap.z2ui5.oPopover.createId('` && canvas_id && `')`.
WHEN 'NEST'.
lv_canvas_el = `sap.z2ui5.oViewNest.createId('` && canvas_id && `')`.
WHEN 'NEST2'.
lv_canvas_el = `sap.z2ui5.oViewNest2.createId('` && canvas_id && `')`.
ENDCASE.
lv_guid = z2ui5_cl_util_func=>func_get_uuid_22( ).
chartjs_config = chartjs_config && `debugger;`.
chartjs_config = chartjs_config && `try { var autocolors = window['chartjs-plugin-autocolors']; } catch (err){};`.
chartjs_config = chartjs_config && `try { var chartdeferred = window['chartjs-plugin-deferred']; } catch (err){};`.
chartjs_config = chartjs_config && `var cjs = ` && json_config && `;`.
chartjs_config = chartjs_config && `fixJsonLibs(cjs);`.
chartjs_config = chartjs_config && `var el =` && lv_canvas_el && `;`.
chartjs_config = chartjs_config && `var ctx_` && lv_guid && ` = $('#' + el);`.
* chartjs_config = chartjs_config && `var chart = new Chart( ctx_` && lv_guid && `, cjs );`.
chartjs_config = chartjs_config && `var ` && canvas_id && ` = new Chart( ctx_` && lv_guid && `, cjs );`.
ENDMETHOD.
ENDCLASS.