element_animatetransform.erl 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. -module(element_animatetransform).
  2. -author('Konstantin Zakablukovsky').
  3. -include("nitro.hrl").
  4. -compile(export_all).
  5. %% -import(element_svg, [svg_conditional_processing/1, svg_core/1, svg_xlink/1]).
  6. render_element(Record) ->
  7. wf_tags:emit_tag(<<"animateTransform">>, nitro:render(Record#animateTransform.body),
  8. lists:append([
  9. [
  10. {<<"id">>, Record#animateTransform.id},
  11. {<<"class">>, Record#animateTransform.class},
  12. {<<"style">>, Record#animateTransform.style},
  13. {<<"type">>, Record#animateTransform.type},
  14. {<<"externalResourcesRequired">>, Record#animateTransform.externalResourcesRequired}
  15. ],
  16. svg_animation_event(Record),
  17. svg_animation_attribut_target(Record),
  18. svg_animation_timing(Record),
  19. svg_animation_value(Record),
  20. svg_animation_addition(Record),
  21. svg_conditional_processing(Record),
  22. svg_core(Record),
  23. svg_xlink(Record),
  24. Record#animateTransform.data_fields,
  25. Record#animateTransform.aria_states
  26. ])).
  27. svg_conditional_processing(Record)-> [
  28. {<<"requiredExtensions">>, Record#animateTransform.requiredExtensions},
  29. {<<"requiredFeatures">>, Record#animateTransform.requiredFeatures},
  30. {<<"systemLanguage">>, Record#animateTransform.systemLanguage}
  31. ].
  32. svg_core(Record)-> [
  33. {<<"xml:base">>, Record#animateTransform.xmlbase},
  34. {<<"xml:lang">>, Record#animateTransform.xmllang},
  35. {<<"xml:space">>, Record#animateTransform.xmlspace}
  36. ].
  37. svg_xlink(Record)-> [
  38. {<<"xlink:href">>, Record#animateTransform.xlinkhref},
  39. {<<"xlink:type">>, Record#animateTransform.xlinktype},
  40. {<<"xlink:role">>, Record#animateTransform.xlinkrole},
  41. {<<"xlink:arcrole">>, Record#animateTransform.xlinkarcrole},
  42. {<<"xlink:title">>, Record#animateTransform.xlinktitle},
  43. {<<"xlink:show">>, Record#animateTransform.xlinkshow},
  44. {<<"xlink:actuate">>, Record#animateTransform.xlinkactuate}
  45. ].
  46. % Common SVG animateTransform attributes
  47. svg_animation_event(Record) -> [
  48. {<<"onbegin">>, Record#animateTransform.onbegin},
  49. {<<"onend">>, Record#animateTransform.onend},
  50. {<<"onload">>, Record#animateTransform.onload_animation},
  51. {<<"onrepeat">>, Record#animateTransform.onrepeat}
  52. ].
  53. svg_animation_attribut_target(Record) -> [
  54. {<<"attributeType">>, Record#animateTransform.attributeType},
  55. {<<"attributeName">>, Record#animateTransform.attributeName}
  56. ].
  57. svg_animation_timing(Record) -> [
  58. {<<"begin">>, Record#animateTransform.svgbegin},
  59. {<<"dur">>, Record#animateTransform.dur},
  60. {<<"end">>, Record#animateTransform.svgend},
  61. {<<"min">>, Record#animateTransform.min},
  62. {<<"max">>, Record#animateTransform.max},
  63. {<<"restart">>, Record#animateTransform.restart},
  64. {<<"repeatCount">>, Record#animateTransform.repeatCount},
  65. {<<"repeatDur">>, Record#animateTransform.repeatDur},
  66. {<<"fill">>, Record#animateTransform.fill}
  67. ].
  68. svg_animation_value(Record) -> [
  69. {<<"calcMode">>, Record#animateTransform.calcMode},
  70. {<<"values">>, Record#animateTransform.values},
  71. {<<"keyTimes">>, Record#animateTransform.keyTimes},
  72. {<<"keySplines">>, Record#animateTransform.keySplines},
  73. {<<"from">>, Record#animateTransform.from},
  74. {<<"to">>, Record#animateTransform.to},
  75. {<<"by">>, Record#animateTransform.by},
  76. {<<"autoReverse">>, Record#animateTransform.autoReverse},
  77. {<<"accelerate">>, Record#animateTransform.accelerate},
  78. {<<"decelerate">>, Record#animateTransform.decelerate}
  79. ].
  80. svg_animation_addition(Record) -> [
  81. {<<"additive">>, Record#animateTransform.additive},
  82. {<<"accumulate">>, Record#animateTransform.accumulate}
  83. ].