Add style option for HTML rendering

Useful for extensions
This commit is contained in:
Marc Bernard 2025-04-05 10:05:43 +00:00
parent db0526a3b8
commit ca78c5a044
2 changed files with 68 additions and 39 deletions

View File

@ -9,6 +9,7 @@ CLASS zcl_abapgit_html DEFINITION
CONSTANTS c_indent_size TYPE i VALUE 2 ##NO_TEXT.
CLASS-METHODS class_constructor.
CLASS-METHODS create
IMPORTING
!iv_initial_chunk TYPE any OPTIONAL
@ -23,20 +24,24 @@ CLASS zcl_abapgit_html DEFINITION
!iv_onclick TYPE string OPTIONAL
RETURNING
VALUE(rv_str) TYPE string.
CLASS-METHODS checkbox
IMPORTING
iv_id TYPE string OPTIONAL
iv_checked TYPE abap_bool OPTIONAL
RETURNING
VALUE(rv_html) TYPE string.
CLASS-METHODS parse_data_attr
IMPORTING
iv_str TYPE string OPTIONAL
RETURNING
VALUE(rs_data_attr) TYPE zif_abapgit_html=>ty_data_attr.
CLASS-METHODS set_debug_mode
IMPORTING
iv_mode TYPE abap_bool.
PROTECTED SECTION.
PRIVATE SECTION.
@ -52,6 +57,7 @@ CLASS zcl_abapgit_html DEFINITION
indent TYPE i,
indent_str TYPE string,
END OF ty_indent_context.
TYPES:
BEGIN OF ty_study_result,
style_open TYPE abap_bool,
@ -70,20 +76,22 @@ CLASS zcl_abapgit_html DEFINITION
END OF ty_study_result.
CLASS-DATA go_single_tags_re TYPE REF TO cl_abap_regex.
DATA mt_buffer TYPE string_table .
CLASS-DATA gv_spaces TYPE string.
CLASS-DATA gv_debug_mode TYPE abap_bool.
DATA mt_buffer TYPE string_table.
METHODS indent_line
CHANGING
!cs_context TYPE ty_indent_context
!cv_line TYPE string.
METHODS study_line
IMPORTING
!iv_line TYPE string
!is_context TYPE ty_indent_context
RETURNING
VALUE(rs_result) TYPE ty_study_result.
ENDCLASS.
@ -495,6 +503,7 @@ CLASS zcl_abapgit_html IMPLEMENTATION.
METHOD zif_abapgit_html~div.
zif_abapgit_html~wrap(
iv_tag = 'div'
iv_content = iv_content
@ -502,8 +511,11 @@ CLASS zcl_abapgit_html IMPLEMENTATION.
is_data_attr = is_data_attr
it_data_attrs = it_data_attrs
iv_id = iv_id
iv_style = iv_style
iv_class = iv_class ).
ri_self = me.
ENDMETHOD.
@ -554,6 +566,7 @@ CLASS zcl_abapgit_html IMPLEMENTATION.
METHOD zif_abapgit_html~td.
zif_abapgit_html~wrap(
iv_format_single_line = iv_format_single_line
iv_tag = 'td'
@ -561,14 +574,18 @@ CLASS zcl_abapgit_html IMPLEMENTATION.
ii_content = ii_content
iv_id = iv_id
iv_class = iv_class
iv_style = iv_style
is_data_attr = is_data_attr
it_data_attrs = it_data_attrs
iv_hint = iv_hint ).
ri_self = me.
ENDMETHOD.
METHOD zif_abapgit_html~th.
zif_abapgit_html~wrap(
iv_format_single_line = iv_format_single_line
iv_tag = 'th'
@ -576,10 +593,13 @@ CLASS zcl_abapgit_html IMPLEMENTATION.
ii_content = ii_content
iv_id = iv_id
iv_class = iv_class
iv_style = iv_style
is_data_attr = is_data_attr
it_data_attrs = it_data_attrs
iv_hint = iv_hint ).
ri_self = me.
ENDMETHOD.
@ -590,6 +610,7 @@ CLASS zcl_abapgit_html IMPLEMENTATION.
DATA ls_data_attr LIKE LINE OF it_data_attrs.
DATA: lv_class TYPE string,
lv_style TYPE string,
lv_id TYPE string,
lv_data_attr TYPE string,
lv_title TYPE string.
@ -602,6 +623,10 @@ CLASS zcl_abapgit_html IMPLEMENTATION.
lv_class = | class="{ iv_class }"|.
ENDIF.
IF iv_style IS NOT INITIAL.
lv_style = | style="{ iv_style }"|.
ENDIF.
IF iv_hint IS NOT INITIAL.
lv_title = | title="{ iv_hint }"|.
ENDIF.
@ -614,7 +639,7 @@ CLASS zcl_abapgit_html IMPLEMENTATION.
lv_data_attr = lv_data_attr && | data-{ ls_data_attr-name }="{ ls_data_attr-value }"|.
ENDLOOP.
lv_open_tag = |<{ iv_tag }{ lv_id }{ lv_class }{ lv_data_attr }{ lv_title }>|.
lv_open_tag = |<{ iv_tag }{ lv_id }{ lv_class }{ lv_style }{ lv_data_attr }{ lv_title }>|.
lv_close_tag = |</{ iv_tag }>|.
IF ii_content IS NOT BOUND AND iv_content IS INITIAL.

View File

@ -111,6 +111,7 @@ INTERFACE zif_abapgit_html PUBLIC.
!iv_id TYPE string OPTIONAL
!iv_class TYPE string OPTIONAL
!iv_hint TYPE string OPTIONAL
!iv_style TYPE string OPTIONAL
!iv_format_single_line TYPE abap_bool DEFAULT abap_false
!is_data_attr TYPE ty_data_attr OPTIONAL
!it_data_attrs TYPE ty_data_attrs OPTIONAL
@ -124,6 +125,7 @@ INTERFACE zif_abapgit_html PUBLIC.
!iv_id TYPE string OPTIONAL
!iv_class TYPE string OPTIONAL
!iv_hint TYPE string OPTIONAL
!iv_style TYPE string OPTIONAL
!iv_format_single_line TYPE abap_bool DEFAULT abap_true
!is_data_attr TYPE ty_data_attr OPTIONAL
!it_data_attrs TYPE ty_data_attrs OPTIONAL
@ -138,6 +140,7 @@ INTERFACE zif_abapgit_html PUBLIC.
!iv_id TYPE string OPTIONAL
!iv_class TYPE string OPTIONAL
!iv_hint TYPE string OPTIONAL
!iv_style TYPE string OPTIONAL
!iv_format_single_line TYPE abap_bool DEFAULT abap_true
!is_data_attr TYPE ty_data_attr OPTIONAL
!it_data_attrs TYPE ty_data_attrs OPTIONAL
@ -151,6 +154,7 @@ INTERFACE zif_abapgit_html PUBLIC.
!ii_content TYPE REF TO zif_abapgit_html OPTIONAL
!iv_id TYPE string OPTIONAL
!iv_class TYPE string OPTIONAL
!iv_style TYPE string OPTIONAL
!is_data_attr TYPE ty_data_attr OPTIONAL
!it_data_attrs TYPE ty_data_attrs OPTIONAL
PREFERRED PARAMETER iv_content