#3601415 Expose displayOn on a dedicated WebformElementDisplayOnBase interface

Split the conflated WebformElementMarkupBase interface, which carried both markup (rendered HTML) and displayOn (where an element is shown).

  • Add WebformElementDisplayOnBase carrying displayOn, implemented by every element whose plugin implements WebformElementDisplayOnInterface (messages, labels, more disclosures, views, horizontal rules, variants and computed).
  • Narrow WebformElementMarkupBase to markup, implemented only by the elements that render authored HTML (webform_markup, processed_text). The display-only elements no longer expose an always-null markup field.
  • Resolve displayOn's default per element from the element plugin's display_on default, since the built render array omits #display_on unless configured and the default is element-specific. This removes the parallel computedDisplayOn resolver field and drops displayOn from WebformElementComputedBase.

Closes #3601415

Merge request reports

Loading