element_fecomposite.erl 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. -module(element_fecomposite).
  2. -author('Konstantin Zakablukovsky').
  3. -include("svg.hrl").
  4. -compile(export_all).
  5. render_element(Record) ->
  6. wf_tags:emit_tag(<<"feComposite">>, nitro:render(Record#feComposite.body),
  7. lists:append([
  8. [
  9. {<<"id">>, Record#feComposite.id},
  10. {<<"class">>, Record#feComposite.class},
  11. {<<"style">>, Record#feComposite.style},
  12. {<<"in">>, Record#feComposite.in},
  13. {<<"in2">>, Record#feComposite.in2},
  14. {<<"operator">>, Record#feComposite.operator},
  15. {<<"k1">>, Record#feComposite.k1},
  16. {<<"k2">>, Record#feComposite.k2},
  17. {<<"k3">>, Record#feComposite.k3},
  18. {<<"k4">>, Record#feComposite.k4}
  19. ],
  20. svg_core(Record),
  21. svg_filter_primitive(Record),
  22. svg_presentation(Record),
  23. Record#feComposite.data_fields,
  24. Record#feComposite.aria_states
  25. ])).
  26. %% Common SVG attributes
  27. svg_core(Record)-> [
  28. {<<"xml:base">>, Record#feComposite.xmlbase},
  29. {<<"xml:lang">>, Record#feComposite.xmllang},
  30. {<<"xml:space">>, Record#feComposite.xmlspace}
  31. ].
  32. svg_filter_primitive(Record)-> [
  33. {<<"height">>, Record#feComposite.height},
  34. {<<"result">>, Record#feComposite.result},
  35. {<<"width">>, Record#feComposite.width},
  36. {<<"x">>, Record#feComposite.x},
  37. {<<"y">>, Record#feComposite.y}
  38. ].
  39. svg_presentation(Record)-> [
  40. {<<"alignment-baseline">>, Record#feComposite.alignment_baseline},
  41. {<<"baseline-shift">>, Record#feComposite.baseline_shift},
  42. {<<"clip">>, Record#feComposite.clip},
  43. {<<"clip-path">>, Record#feComposite.clip_path},
  44. {<<"clip-rule">>, Record#feComposite.clip_rule},
  45. {<<"color">>, Record#feComposite.color},
  46. {<<"color-interpolation">>, Record#feComposite.color_interpolation},
  47. {<<"color-interpolation-filters">>, Record#feComposite.color_interpolation_filters},
  48. {<<"color-profile">>, Record#feComposite.color_profile},
  49. {<<"color-rendering">>, Record#feComposite.color_rendering},
  50. {<<"cursor">>, Record#feComposite.cursor},
  51. {<<"direction">>, Record#feComposite.direction},
  52. {<<"display">>, Record#feComposite.display},
  53. {<<"dominant-baseline">>, Record#feComposite.dominant_baseline},
  54. {<<"enable-background">>, Record#feComposite.enable_background},
  55. {<<"fill">>, Record#feComposite.fill},
  56. {<<"fill-opacity">>, Record#feComposite.fill_opacity},
  57. {<<"fill-rule">>, Record#feComposite.fill_rule},
  58. {<<"filter">>, Record#feComposite.filter},
  59. {<<"flood-color">>, Record#feComposite.flood_color},
  60. {<<"flood-opacity">>, Record#feComposite.flood_opacity},
  61. {<<"font-family">>, Record#feComposite.font_family},
  62. {<<"font-size">>, Record#feComposite.font_size},
  63. {<<"font-size-adjust">>, Record#feComposite.font_size_adjust},
  64. {<<"font-stretch">>, Record#feComposite.font_stretch},
  65. {<<"font-style">>, Record#feComposite.font_style},
  66. {<<"font-variant">>, Record#feComposite.font_variant},
  67. {<<"font-weight">>, Record#feComposite.font_weight},
  68. {<<"glyph-orientation-horizontal">>, Record#feComposite.glyph_orientation_horizontal},
  69. {<<"glyph-orientation-vertical">>, Record#feComposite.glyph_orientation_vertical},
  70. {<<"image-rendering">>, Record#feComposite.image_rendering},
  71. {<<"kerning">>, Record#feComposite.kerning},
  72. {<<"letter-spacing">>, Record#feComposite.letter_spacing},
  73. {<<"lighting-color">>, Record#feComposite.lighting_color},
  74. {<<"marker-end">>, Record#feComposite.marker_end},
  75. {<<"marker-mid">>, Record#feComposite.marker_mid},
  76. {<<"marker-start">>, Record#feComposite.marker_start},
  77. {<<"mask">>, Record#feComposite.mask},
  78. {<<"opacity">>, Record#feComposite.opacity},
  79. {<<"overflow">>, Record#feComposite.overflow},
  80. {<<"pointer-events">>, Record#feComposite.pointer_events},
  81. {<<"shape-rendering">>, Record#feComposite.shape_rendering},
  82. {<<"stop-color">>, Record#feComposite.stop_color},
  83. {<<"stop-opacity">>, Record#feComposite.stop_opacity},
  84. {<<"stroke">>, Record#feComposite.stroke},
  85. {<<"stroke-dasharray">>, Record#feComposite.stroke_dasharray},
  86. {<<"stroke-dashoffset">>, Record#feComposite.stroke_dashoffset},
  87. {<<"stroke-linecap">>, Record#feComposite.stroke_linecap},
  88. {<<"stroke-linejoin">>, Record#feComposite.stroke_linejoin},
  89. {<<"stroke-miterlimit">>, Record#feComposite.stroke_miterlimit},
  90. {<<"stroke-opacity">>, Record#feComposite.stroke_opacity},
  91. {<<"stroke-width">>, Record#feComposite.stroke_width},
  92. {<<"text-anchor">>, Record#feComposite.text_anchor},
  93. {<<"text-decoration">>, Record#feComposite.text_decoration},
  94. {<<"text-rendering">>, Record#feComposite.text_rendering},
  95. {<<"unicode-bidi">>, Record#feComposite.unicode_bidi},
  96. {<<"visibility">>, Record#feComposite.visibility},
  97. {<<"word-spacing">>, Record#feComposite.word_spacing},
  98. {<<"writing-mode">>, Record#feComposite.writing_mode}
  99. ].