@react-native-ohos/react-native-svg 15.12.1-rc.1 → 15.12.1-rc.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (350) hide show
  1. package/LICENSE +21 -21
  2. package/README.OpenSource +10 -10
  3. package/README.md +13 -13
  4. package/css/package.json +5 -5
  5. package/harmony/svg/BuildProfile.ets +1 -1
  6. package/harmony/svg/build/default/cache/default/default@HarCompileArkTS/esmodule/.ts_checker_cache +3052 -0
  7. package/harmony/svg/build/default/cache/default/default@HarCompileArkTS/esmodule/.tsbuildinfo +1 -0
  8. package/harmony/svg/build/default/cache/default/default@HarCompileArkTS/esmodule/.tsbuildinfo.linter +1 -0
  9. package/harmony/svg/build/default/cache/default/default@HarCompileArkTS/esmodule/compileInfo.json +1 -0
  10. package/harmony/svg/build/default/cache/default/default@HarCompileArkTS/esmodule/debug/compiler.cache/modules/RNSVGImageModule.ts-7c464e69f4a700eeeaae44cf66ca5fd3b3e84299010d5c3a5643612ba1a48d70.msgpack +0 -0
  11. package/harmony/svg/build/default/cache/default/default@HarCompileArkTS/esmodule/debug/compiler.cache/modules/RNSVGRenderableModule.ts-c2df5206c2aa9e868b7f24f706a131fff1236faaff78688ffdeec3ce25bf5d91.msgpack +0 -0
  12. package/harmony/svg/build/default/cache/default/default@HarCompileArkTS/esmodule/debug/compiler.cache/modules/RNSVGSvgViewModule.ts-b9a699770b693eeaa2eb98307323dc9087e44afc9c01b08d222555636b3fac0d.msgpack +0 -0
  13. package/harmony/svg/build/default/cache/default/default@HarCompileArkTS/esmodule/debug/compiler.cache/modules/SvgPackage.ts-08ac57d81b1742792af8813eac27abe5eca1a5714b1a5b76f97436b13abe48e4.msgpack +0 -0
  14. package/harmony/svg/build/default/cache/default/default@HarCompileArkTS/esmodule/debug/compiler.cache/modules/index.ets-0e520bf323178f6f973ec12f44622042dcdd19e5032efd9bd02ac5606fb58275.msgpack +0 -0
  15. package/harmony/svg/build/default/cache/default/default@HarCompileArkTS/esmodule/debug/compiler.cache/modules/ts.ts-1d50b47087f159616212dd3c5ecd04a204a5be09940b7dbba77a59e3a66499c2.msgpack +0 -0
  16. package/harmony/svg/build/default/cache/default/default@HarCompileArkTS/esmodule/debug/compiler.cache/other/pkgName2SourceRoots.msgpack +1 -0
  17. package/harmony/svg/build/default/cache/default/default@HarCompileArkTS/esmodule/debug/compiler.cache/plugins/plugins.msgpack +0 -0
  18. package/harmony/svg/build/default/cache/default/default@HarCompileArkTS/esmodule/debug/dep_info.json +1 -0
  19. package/harmony/svg/build/default/cache/default/default@PackageHar/BuildProfile.ets +17 -0
  20. package/harmony/svg/build/default/cache/default/default@PackageHar/ResourceTable.txt +1 -0
  21. package/harmony/svg/build/default/cache/default/default@PackageHar/build-profile.json5 +9 -0
  22. package/harmony/svg/build/default/cache/default/default@PackageHar/hvigorfile.ts +2 -0
  23. package/harmony/svg/build/default/cache/default/default@PackageHar/index.ets +7 -0
  24. package/harmony/svg/build/default/cache/default/default@PackageHar/oh-package-lock.json5 +19 -0
  25. package/harmony/svg/build/default/cache/default/default@PackageHar/oh-package.json5 +1 -0
  26. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/Attribute.h +52 -0
  27. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/CMakeLists.txt +32 -0
  28. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/FallbackProps.h +0 -0
  29. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/FontHolderBase.cpp +22 -0
  30. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/FontHolderBase.h +54 -0
  31. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SVGPackage.cpp +135 -0
  32. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SVGPackage.h +157 -0
  33. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgArkUINode.cpp +78 -0
  34. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgArkUINode.h +51 -0
  35. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgBaseAttribute.h +83 -0
  36. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgCircle.cpp +29 -0
  37. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgCircle.h +29 -0
  38. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgClipPath.h +22 -0
  39. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgContext.cpp +56 -0
  40. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgContext.h +71 -0
  41. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgDefs.h +46 -0
  42. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgEllipse.cpp +32 -0
  43. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgEllipse.h +34 -0
  44. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgFilter.cpp +505 -0
  45. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgFilter.h +112 -0
  46. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgForeignObjectNode.cpp +86 -0
  47. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgForeignObjectNode.h +81 -0
  48. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgForeignObjectNodeDelegate.h +30 -0
  49. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgForeignProps.h +39 -0
  50. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgGradient.cpp +117 -0
  51. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgGradient.h +49 -0
  52. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgGraphic.cpp +553 -0
  53. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgGraphic.h +77 -0
  54. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgGroup.cpp +93 -0
  55. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgGroup.h +41 -0
  56. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgHost.cpp +27 -0
  57. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgHost.h +38 -0
  58. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgImage.cpp +168 -0
  59. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgImage.h +52 -0
  60. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgLine.cpp +28 -0
  61. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgLine.h +32 -0
  62. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgMarker.cpp +61 -0
  63. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgMarker.h +86 -0
  64. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgMask.cpp +72 -0
  65. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgMask.h +68 -0
  66. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgNode.cpp +395 -0
  67. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgNode.h +377 -0
  68. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgPath.cpp +42 -0
  69. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgPath.h +29 -0
  70. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgPattern.cpp +77 -0
  71. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgPattern.h +64 -0
  72. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgQuote.h +87 -0
  73. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgRect.cpp +58 -0
  74. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgRect.h +33 -0
  75. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgSvg.cpp +83 -0
  76. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgSvg.h +52 -0
  77. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgSymbol.cpp +25 -0
  78. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgSymbol.h +37 -0
  79. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgTSpan.cpp +501 -0
  80. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgTSpan.h +101 -0
  81. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgText.cpp +48 -0
  82. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgText.h +29 -0
  83. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgTextPath.cpp +35 -0
  84. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgTextPath.h +51 -0
  85. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgUse.cpp +65 -0
  86. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgUse.h +46 -0
  87. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgViewManager.cpp +36 -0
  88. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgViewManager.h +37 -0
  89. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/TextBase.cpp +20 -0
  90. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/TextBase.h +114 -0
  91. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGBaseComponentInstance.h +212 -0
  92. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGCircleComponentInstance.cpp +31 -0
  93. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGCircleComponentInstance.h +27 -0
  94. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGClipPathComponentInstance.cpp +23 -0
  95. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGClipPathComponentInstance.h +27 -0
  96. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGDefsComponentInstance.cpp +23 -0
  97. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGDefsComponentInstance.h +28 -0
  98. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGEllipseComponentInstance.cpp +27 -0
  99. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGEllipseComponentInstance.h +27 -0
  100. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGFeBlendComponentInstance.cpp +40 -0
  101. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGFeBlendComponentInstance.h +48 -0
  102. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGFeColorMatrixComponentInstance.cpp +33 -0
  103. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGFeColorMatrixComponentInstance.h +48 -0
  104. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGFeCompositeComponentInstance.cpp +39 -0
  105. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGFeCompositeComponentInstance.h +55 -0
  106. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGFeFloodComponentInstance.cpp +33 -0
  107. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGFeFloodComponentInstance.h +49 -0
  108. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGFeGaussianBlurComponentInstance.cpp +34 -0
  109. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGFeGaussianBlurComponentInstance.h +48 -0
  110. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGFeOffsetComponentInstance.cpp +35 -0
  111. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGFeOffsetComponentInstance.h +46 -0
  112. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGFilterComponentInstance.cpp +199 -0
  113. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGFilterComponentInstance.h +48 -0
  114. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGForeignObjectComponentInstance.cpp +93 -0
  115. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGForeignObjectComponentInstance.h +55 -0
  116. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGGroupComponentInstance.cpp +32 -0
  117. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGGroupComponentInstance.h +31 -0
  118. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGImageComponentInstance.cpp +103 -0
  119. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGImageComponentInstance.h +43 -0
  120. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGLineComponentInstance.cpp +27 -0
  121. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGLineComponentInstance.h +27 -0
  122. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGLinearGradientComponentInstance.cpp +30 -0
  123. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGLinearGradientComponentInstance.h +28 -0
  124. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGMarkerComponentInstance.cpp +35 -0
  125. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGMarkerComponentInstance.h +27 -0
  126. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGMaskComponentInstance.cpp +30 -0
  127. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGMaskComponentInstance.h +27 -0
  128. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGPathComponentInstance.cpp +33 -0
  129. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGPathComponentInstance.h +29 -0
  130. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGPatternComponentInstance.cpp +40 -0
  131. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGPatternComponentInstance.h +27 -0
  132. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGRadialGradientComponentInstance.cpp +32 -0
  133. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGRadialGradientComponentInstance.h +28 -0
  134. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGRectComponentInstance.cpp +36 -0
  135. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGRectComponentInstance.h +27 -0
  136. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGSvgViewComponentInstance.cpp +124 -0
  137. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGSvgViewComponentInstance.h +56 -0
  138. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGSymbolComponentInstance.cpp +30 -0
  139. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGSymbolComponentInstance.h +27 -0
  140. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGTSpanComponentInstance.cpp +27 -0
  141. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGTSpanComponentInstance.h +27 -0
  142. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGTextComponentInstance.cpp +25 -0
  143. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGTextComponentInstance.h +27 -0
  144. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGTextPathComponentInstance.cpp +32 -0
  145. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGTextPathComponentInstance.h +27 -0
  146. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGUseComponentInstance.cpp +32 -0
  147. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGUseComponentInstance.h +32 -0
  148. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/downloadUtils/HttpTaskProcessor.cpp +266 -0
  149. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/downloadUtils/HttpTaskProcessor.h +88 -0
  150. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/downloadUtils/ImageSourceResolver.cpp +134 -0
  151. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/downloadUtils/ImageSourceResolver.h +93 -0
  152. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/downloadUtils/LRUCache.h +98 -0
  153. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/drawing/Brush.cpp +50 -0
  154. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/drawing/Brush.h +52 -0
  155. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/drawing/GlyPathBag.cpp +20 -0
  156. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/drawing/GlyPathBag.h +31 -0
  157. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/drawing/Matrix.cpp +100 -0
  158. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/drawing/Matrix.h +68 -0
  159. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/drawing/Path.cpp +173 -0
  160. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/drawing/Path.h +127 -0
  161. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/drawing/Pen.cpp +57 -0
  162. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/drawing/Pen.h +59 -0
  163. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/drawing/Rect.cpp +47 -0
  164. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/drawing/Rect.h +56 -0
  165. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/drawing/RoundRect.cpp +24 -0
  166. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/drawing/RoundRect.h +39 -0
  167. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/drawing/ShaderEffect.cpp +37 -0
  168. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/drawing/ShaderEffect.h +51 -0
  169. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/drawing/TextStyle.cpp +49 -0
  170. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/drawing/TextStyle.h +41 -0
  171. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/drawing/Typography.cpp +9 -0
  172. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/drawing/Typography.h +25 -0
  173. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/drawing/TypographyStyle.cpp +31 -0
  174. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/drawing/TypographyStyle.h +41 -0
  175. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGCircleJSIBinder.h +54 -0
  176. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGClipPathJSIBinder.h +54 -0
  177. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGDefsJSIBinder.h +38 -0
  178. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGEllipseJSIBinder.h +55 -0
  179. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGFeBlendJSIBinder.h +26 -0
  180. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGFeColorMatrixJSIBinder.h +26 -0
  181. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGFeCompositeJSIBinder.h +30 -0
  182. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGFeFloodJSIBinder.h +26 -0
  183. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGFeGaussianBlurJSIBinder.h +27 -0
  184. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGFeOffsetJSIBinder.h +26 -0
  185. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGFilterJSIBinder.h +44 -0
  186. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGForeignObjectJSIBinder.h +57 -0
  187. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGGroupJSIBinder.h +54 -0
  188. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGImageJSIBinder.h +58 -0
  189. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGLineJSIBinder.h +55 -0
  190. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGLinearGradientJSIBinder.h +45 -0
  191. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGMarkerJSIBinder.h +66 -0
  192. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGMaskJSIBinder.h +60 -0
  193. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGPathJSIBinder.h +52 -0
  194. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGPatternJSIBinder.h +67 -0
  195. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGRadialGradientJSIBinder.h +47 -0
  196. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGRectJSIBinder.h +57 -0
  197. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGSvgViewAndroidJSIBinder.h +67 -0
  198. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGSvgViewJSIBinder.h +36 -0
  199. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGSymbolJSIBinder.h +60 -0
  200. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGTSpanJSIBinder.h +66 -0
  201. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGTextJSIBinder.h +65 -0
  202. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGTextPathJSIBinder.h +71 -0
  203. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGUseJSIBinder.h +56 -0
  204. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/react/renderer/components/react_native_svg/ComponentDescriptors.h +48 -0
  205. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/react/renderer/components/react_native_svg/EventEmitters.cpp +20 -0
  206. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/react/renderer/components/react_native_svg/EventEmitters.h +253 -0
  207. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/react/renderer/components/react_native_svg/Props.cpp +977 -0
  208. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/react/renderer/components/react_native_svg/Props.h +1280 -0
  209. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/react/renderer/components/react_native_svg/ShadowNodes.cpp +45 -0
  210. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/react/renderer/components/react_native_svg/ShadowNodes.h +331 -0
  211. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/react/renderer/components/react_native_svg/States.cpp +18 -0
  212. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/react/renderer/components/react_native_svg/States.h +441 -0
  213. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/properties/Color.cpp +458 -0
  214. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/properties/Color.h +144 -0
  215. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/properties/Decoration.cpp +41 -0
  216. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/properties/Decoration.h +483 -0
  217. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/properties/Dimension.cpp +64 -0
  218. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/properties/Dimension.h +257 -0
  219. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/properties/Font.cpp +166 -0
  220. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/properties/Font.h +163 -0
  221. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/properties/Offset.h +119 -0
  222. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/properties/PaintState.h +240 -0
  223. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/properties/Rect.h +423 -0
  224. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/properties/Size.h +246 -0
  225. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/properties/SvgPaintState.h +452 -0
  226. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/properties/TextProperties.cpp +91 -0
  227. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/properties/TextProperties.h +56 -0
  228. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/properties/ViewBox.h +108 -0
  229. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/svgImage/RNSVGImageComponentDescriptor.h +41 -0
  230. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/svgImage/RNSVGImageShadowNode.cpp +62 -0
  231. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/svgImage/RNSVGImageShadowNode.h +63 -0
  232. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/svgImage/RNSVGImageState.cpp +17 -0
  233. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/svgImage/RNSVGImageState.h +58 -0
  234. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/turboModules/RNSVGImageModule.cpp +83 -0
  235. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/turboModules/RNSVGImageModule.h +32 -0
  236. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/turboModules/RNSVGRenderableModule.cpp +101 -0
  237. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/turboModules/RNSVGRenderableModule.h +32 -0
  238. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/turboModules/RNSVGSvgViewModule.cpp +71 -0
  239. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/turboModules/RNSVGSvgViewModule.h +32 -0
  240. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/utils/DynamicUtils.h +55 -0
  241. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/utils/FilterManager.h +190 -0
  242. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/utils/GlyphContext.cpp +221 -0
  243. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/utils/GlyphContext.h +106 -0
  244. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/utils/LinearMap.h +69 -0
  245. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/utils/PathParserUtils.cpp +591 -0
  246. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/utils/PathParserUtils.h +93 -0
  247. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/utils/StringUtils.cpp +134 -0
  248. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/utils/StringUtils.h +644 -0
  249. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/utils/SvgAttributesParser.cpp +239 -0
  250. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/utils/SvgAttributesParser.h +277 -0
  251. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/utils/SvgMarkerPositionUtils.h +200 -0
  252. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/utils/SvgUtils.h +176 -0
  253. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/utils/TextPathHelper.cpp +94 -0
  254. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/utils/TextPathHelper.h +61 -0
  255. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/ets/RNSVGImageModule.ts +21 -0
  256. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/ets/RNSVGRenderableModule.ts +16 -0
  257. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/ets/RNSVGSvgViewModule.ts +18 -0
  258. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/ets/SvgPackage.ts +58 -0
  259. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/module.json +30 -0
  260. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/resources/base/element/string.json +8 -0
  261. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/resources/en_US/element/string.json +8 -0
  262. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/resources/zh_CN/element/string.json +8 -0
  263. package/harmony/svg/build/default/cache/default/default@PackageHar/ts.ts +8 -0
  264. package/harmony/svg/build/default/generated/pm/default/oh-package.json5 +1 -0
  265. package/harmony/svg/build/default/generated/r/default/ResourceTable.h +24 -0
  266. package/harmony/svg/build/default/intermediates/loader/default/loader.json +26 -0
  267. package/harmony/svg/build/default/intermediates/merge_profile/default/module.json +27 -0
  268. package/harmony/svg/build/default/intermediates/patch/default/base_native_libs.json +1 -0
  269. package/harmony/svg/build/default/intermediates/process_profile/default/module.json +30 -0
  270. package/harmony/svg/build/default/intermediates/res/default/ResourceTable.txt +1 -0
  271. package/harmony/svg/build/default/intermediates/res/default/ark_module.json +1 -0
  272. package/harmony/svg/build/default/intermediates/res/default/ids_map/id_defined.json +7 -0
  273. package/harmony/svg/build/default/intermediates/res/default/module.json +28 -0
  274. package/harmony/svg/build/default/intermediates/res/default/opt-compression.json +1 -0
  275. package/harmony/svg/build/default/intermediates/res/default/resConfig.json +1 -0
  276. package/harmony/svg/build/default/intermediates/res/default/resources/rawfile/rnoh.profdata +0 -0
  277. package/harmony/svg/build/default/intermediates/res/default/resources.index +0 -0
  278. package/harmony/svg/build/default/outputs/default/svg.har +0 -0
  279. package/harmony/svg/build-profile.json5 +9 -9
  280. package/harmony/svg/hvigorfile.ts +1 -1
  281. package/harmony/svg/index.ets +6 -6
  282. package/harmony/svg/oh-package.json5 +13 -13
  283. package/harmony/svg/src/main/cpp/CMakeLists.txt +1 -1
  284. package/harmony/svg/src/main/cpp/SVGPackage.h +4 -0
  285. package/harmony/svg/src/main/cpp/SvgArkUINode.cpp +3 -0
  286. package/harmony/svg/src/main/cpp/SvgArkUINode.h +15 -9
  287. package/harmony/svg/src/main/cpp/SvgFilter.cpp +505 -505
  288. package/harmony/svg/src/main/cpp/SvgFilter.h +112 -112
  289. package/harmony/svg/src/main/cpp/SvgForeignObjectNode.cpp +86 -0
  290. package/harmony/svg/src/main/cpp/SvgForeignObjectNode.h +81 -0
  291. package/harmony/svg/src/main/cpp/SvgForeignObjectNodeDelegate.h +30 -0
  292. package/harmony/svg/src/main/cpp/SvgForeignProps.h +39 -0
  293. package/harmony/svg/src/main/cpp/SvgGradient.cpp +1 -0
  294. package/harmony/svg/src/main/cpp/SvgGroup.cpp +8 -1
  295. package/harmony/svg/src/main/cpp/SvgNode.cpp +109 -3
  296. package/harmony/svg/src/main/cpp/SvgNode.h +43 -13
  297. package/harmony/svg/src/main/cpp/componentInstances/RNSVGFeBlendComponentInstance.cpp +40 -40
  298. package/harmony/svg/src/main/cpp/componentInstances/RNSVGFeBlendComponentInstance.h +48 -48
  299. package/harmony/svg/src/main/cpp/componentInstances/RNSVGFeColorMatrixComponentInstance.cpp +33 -33
  300. package/harmony/svg/src/main/cpp/componentInstances/RNSVGFeColorMatrixComponentInstance.h +48 -48
  301. package/harmony/svg/src/main/cpp/componentInstances/RNSVGFeCompositeComponentInstance.cpp +39 -39
  302. package/harmony/svg/src/main/cpp/componentInstances/RNSVGFeCompositeComponentInstance.h +55 -55
  303. package/harmony/svg/src/main/cpp/componentInstances/RNSVGFeFloodComponentInstance.cpp +33 -33
  304. package/harmony/svg/src/main/cpp/componentInstances/RNSVGFeFloodComponentInstance.h +49 -49
  305. package/harmony/svg/src/main/cpp/componentInstances/RNSVGFeGaussianBlurComponentInstance.cpp +34 -34
  306. package/harmony/svg/src/main/cpp/componentInstances/RNSVGFeGaussianBlurComponentInstance.h +48 -48
  307. package/harmony/svg/src/main/cpp/componentInstances/RNSVGFeOffsetComponentInstance.cpp +35 -35
  308. package/harmony/svg/src/main/cpp/componentInstances/RNSVGFeOffsetComponentInstance.h +45 -45
  309. package/harmony/svg/src/main/cpp/componentInstances/RNSVGFilterComponentInstance.cpp +198 -198
  310. package/harmony/svg/src/main/cpp/componentInstances/RNSVGFilterComponentInstance.h +48 -48
  311. package/harmony/svg/src/main/cpp/componentInstances/RNSVGForeignObjectComponentInstance.cpp +93 -0
  312. package/harmony/svg/src/main/cpp/componentInstances/RNSVGForeignObjectComponentInstance.h +55 -0
  313. package/harmony/svg/src/main/cpp/componentInstances/RNSVGGroupComponentInstance.h +8 -4
  314. package/harmony/svg/src/main/cpp/componentInstances/RNSVGImageComponentInstance.cpp +4 -1
  315. package/harmony/svg/src/main/cpp/componentInstances/RNSVGSvgViewComponentInstance.cpp +38 -0
  316. package/harmony/svg/src/main/cpp/componentInstances/RNSVGSvgViewComponentInstance.h +11 -2
  317. package/harmony/svg/src/main/cpp/downloadUtils/HttpTaskProcessor.cpp +69 -10
  318. package/harmony/svg/src/main/cpp/downloadUtils/ImageSourceResolver.cpp +54 -26
  319. package/harmony/svg/src/main/cpp/downloadUtils/ImageSourceResolver.h +6 -10
  320. package/harmony/svg/src/main/cpp/generated/RNOH/generated/components/RNSVGFeBlendJSIBinder.h +26 -26
  321. package/harmony/svg/src/main/cpp/generated/RNOH/generated/components/RNSVGFeColorMatrixJSIBinder.h +26 -26
  322. package/harmony/svg/src/main/cpp/generated/RNOH/generated/components/RNSVGFeCompositeJSIBinder.h +30 -30
  323. package/harmony/svg/src/main/cpp/generated/RNOH/generated/components/RNSVGFeFloodJSIBinder.h +26 -26
  324. package/harmony/svg/src/main/cpp/generated/RNOH/generated/components/RNSVGFeGaussianBlurJSIBinder.h +26 -26
  325. package/harmony/svg/src/main/cpp/generated/RNOH/generated/components/RNSVGFeOffsetJSIBinder.h +26 -26
  326. package/harmony/svg/src/main/cpp/generated/RNOH/generated/components/RNSVGFilterJSIBinder.h +44 -44
  327. package/harmony/svg/src/main/cpp/generated/react/renderer/components/react_native_svg/Props.cpp +977 -977
  328. package/harmony/svg/src/main/cpp/generated/react/renderer/components/react_native_svg/Props.h +1280 -1280
  329. package/harmony/svg/src/main/cpp/properties/Dimension.h +14 -0
  330. package/harmony/svg/src/main/cpp/turboModules/RNSVGImageModule.cpp +30 -1
  331. package/harmony/svg/src/main/cpp/utils/DynamicUtils.h +55 -55
  332. package/harmony/svg/src/main/cpp/utils/FilterManager.h +190 -190
  333. package/harmony/svg/src/main/ets/RNSVGImageModule.ts +21 -21
  334. package/harmony/svg/src/main/ets/RNSVGRenderableModule.ts +16 -16
  335. package/harmony/svg/src/main/ets/RNSVGSvgViewModule.ts +18 -18
  336. package/harmony/svg/src/main/ets/SvgPackage.ts +57 -57
  337. package/harmony/svg/src/main/module.json5 +7 -7
  338. package/harmony/svg/src/main/resources/base/element/string.json +8 -8
  339. package/harmony/svg/src/main/resources/en_US/element/string.json +8 -8
  340. package/harmony/svg/src/main/resources/zh_CN/element/string.json +8 -8
  341. package/harmony/svg/ts.ts +7 -7
  342. package/harmony/svg.har +0 -0
  343. package/lib/commonjs/css/index.js.map +1 -1
  344. package/lib/commonjs/index.js.map +1 -1
  345. package/lib/module/css/index.js.map +1 -1
  346. package/lib/module/index.js.map +1 -1
  347. package/package.json +53 -54
  348. package/src/css/index.tsx +19 -19
  349. package/src/index.tsx +2 -2
  350. package/tsconfig.json +11 -11
@@ -0,0 +1,72 @@
1
+ /*
2
+ * Copyright (c) 2024 Huawei Device Co., Ltd. All rights reserved
3
+ * Use of this source code is governed by a MIT license that can be
4
+ * found in the LICENSE file.
5
+ */
6
+
7
+ #include "SvgMask.h"
8
+ #include "drawing/Brush.h"
9
+ #include <native_drawing/drawing_color_filter.h>
10
+ #include <native_drawing/drawing_filter.h>
11
+ #include <native_drawing/drawing_canvas.h>
12
+ #include <native_drawing/drawing_color.h>
13
+
14
+ namespace rnoh {
15
+ namespace svg {
16
+
17
+ void SvgMask::OnDrawTraversedBefore(OH_Drawing_Canvas *canvas) {
18
+ DLOG(INFO) << "[RNSVGMask] OnDrawTraversedBefore";
19
+ // TODO implement proper support for units
20
+ auto nodeBounds = AsBounds();
21
+ DLOG(INFO) << "[RNSVGMask] Left0: " << nodeBounds.Left();
22
+ DLOG(INFO) << "[RNSVGMask] Top0: " << nodeBounds.Top();
23
+ DLOG(INFO) << "[RNSVGMask] Width0: " << nodeBounds.Width();
24
+ DLOG(INFO) << "[RNSVGMask] Height0: " << nodeBounds.Height();
25
+ auto left = static_cast<float>(ParseUnitsAttr(maskAttribute_.x, nodeBounds.Width()));
26
+ auto top = static_cast<float>(ParseUnitsAttr(maskAttribute_.y, nodeBounds.Height()));
27
+ auto width = static_cast<float>(ParseUnitsAttr(maskAttribute_.width, nodeBounds.Width()));
28
+ auto height = static_cast<float>(ParseUnitsAttr(maskAttribute_.height, nodeBounds.Height()));
29
+ drawing::Rect maskBounds(left, top, width + left, height + top);
30
+ maskBounds_ = maskBounds;
31
+
32
+ // create mask layer
33
+ OH_Drawing_CanvasSaveLayer(canvas, maskBounds_.get(), nullptr);
34
+ // ready to render mask content
35
+ canvasLayerCount_ = OH_Drawing_CanvasGetSaveCount(canvas);
36
+
37
+ // set mask
38
+ auto outerFilter = OH_Drawing_ColorFilterCreateLuma();
39
+ auto innerFilter = OH_Drawing_ColorFilterCreateSrgbGammaToLinear();
40
+ auto colorFilter = OH_Drawing_ColorFilterCreateCompose(outerFilter, innerFilter);
41
+ auto *filter = OH_Drawing_FilterCreate();
42
+ OH_Drawing_FilterSetColorFilter(filter, colorFilter);
43
+
44
+ drawing::Brush maskFilter;
45
+ OH_Drawing_BrushSetFilter(maskFilter.get(), filter);
46
+ OH_Drawing_CanvasSaveLayer(canvas, nullptr, maskFilter.get());
47
+ }
48
+
49
+ void SvgMask::OnDrawTraversedAfter(OH_Drawing_Canvas *canvas) {
50
+ DLOG(INFO) << "[RNSVGMask] OnDrawTraversedAfter";
51
+ OH_Drawing_CanvasRestoreToCount(canvas, canvasLayerCount_);
52
+ // create content layer and render content
53
+ drawing::Brush maskBrush;
54
+ OH_Drawing_BrushSetBlendMode(maskBrush.get(), BLEND_MODE_SRC_IN);
55
+
56
+ OH_Drawing_CanvasSaveLayer(canvas, maskBounds_.get(), maskBrush.get());
57
+ OH_Drawing_CanvasClipRect(canvas, maskBounds_.get(), INTERSECT, true);
58
+ }
59
+
60
+
61
+ void SvgMask::OnInitStyle() { DLOG(INFO) << "[RNSVGMask] OnInitStyle"; }
62
+
63
+ double SvgMask::ParseUnitsAttr(const Dimension &attr, double value) {
64
+ // percent and px
65
+ if (attr.Unit() == DimensionUnit::PERCENT) {
66
+ return value * attr.Value();
67
+ }
68
+ return attr.ConvertToPx(scale_);
69
+ }
70
+
71
+ } // namespace svg
72
+ } // namespace rnoh
@@ -0,0 +1,68 @@
1
+ /*
2
+ * Copyright (c) 2024 Huawei Device Co., Ltd. All rights reserved
3
+ * Use of this source code is governed by a MIT license that can be
4
+ * found in the LICENSE file.
5
+ */
6
+
7
+ #include "drawing/Rect.h"
8
+ #include "properties/Dimension.h"
9
+ #include "SvgQuote.h"
10
+
11
+ namespace rnoh {
12
+ namespace svg {
13
+
14
+ class SvgMask : public SvgQuote {
15
+ public:
16
+ SvgMask() = default;
17
+ ~SvgMask() override = default;
18
+
19
+ void setMaskX(const std::string &x) {
20
+ maskAttribute_.x = StringUtils::StringToDimensionWithUnit(x, defaultDimensionUnit_);
21
+ }
22
+
23
+ void setMaskY(const std::string &y) {
24
+ maskAttribute_.y = StringUtils::StringToDimensionWithUnit(y, defaultDimensionUnit_);
25
+ }
26
+
27
+ void setMaskHeight(const std::string &height) {
28
+ maskAttribute_.height = StringUtils::StringToDimensionWithUnit(height, defaultDimensionUnit_);
29
+ }
30
+
31
+ void setMaskWidth(const std::string &width) {
32
+ maskAttribute_.width = StringUtils::StringToDimensionWithUnit(width, defaultDimensionUnit_);
33
+ }
34
+
35
+ void isDefaultMaskUnits(bool isDefaultMaskUnits) { isDefaultMaskUnits_ = isDefaultMaskUnits; }
36
+
37
+ void isDefaultMaskContentUnits(bool isDefaultMaskContentUnits) {
38
+ isDefaultMaskContentUnits_ = isDefaultMaskContentUnits;
39
+ }
40
+
41
+ void setMaskUnits(const int &maskUnits) {
42
+ maskAttribute_.maskUnits = ToUnit(maskUnits);
43
+ isDefaultMaskUnits(maskAttribute_.maskUnits == Unit::objectBoundingBox);
44
+ }
45
+
46
+ void setMaskContentUnits(const int &maskContentUnits) {
47
+ maskAttribute_.maskContentUnits = ToUnit(maskContentUnits);
48
+ isDefaultMaskContentUnits(maskAttribute_.maskContentUnits == Unit::userSpaceOnUse);
49
+ }
50
+
51
+ protected:
52
+ void OnInitStyle() override;
53
+ void OnDrawTraversedBefore(OH_Drawing_Canvas *canvas) override;
54
+ void OnDrawTraversedAfter(OH_Drawing_Canvas *canvas) override;
55
+ double ParseUnitsAttr(const Dimension &attr, double value);
56
+
57
+ private:
58
+ bool isDefaultMaskUnits_ = true;
59
+ bool isDefaultMaskContentUnits_ = true;
60
+ SvgMaskAttribute maskAttribute_;
61
+
62
+ drawing::Rect maskBounds_;
63
+ int canvasLayerCount_ = -1;
64
+ DimensionUnit defaultDimensionUnit_ = DimensionUnit::VP;
65
+ };
66
+
67
+ } // namespace svg
68
+ } // namespace rnoh
@@ -0,0 +1,395 @@
1
+ /*
2
+ * Copyright (c) 2024 Huawei Device Co., Ltd. All rights reserved
3
+ * Use of this source code is governed by a MIT license that can be
4
+ * found in the LICENSE file.
5
+ *
6
+ * This file incorporates from the OpenHarmony project, licensed under
7
+ * the Apache License, Version 2.0. Specifically:
8
+ * - [OpenHarmony/arkui_ace_engine] (https://gitee.com/openharmony/arkui_ace_engine)
9
+ *
10
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
11
+ * use this file except in compliance with the License. You may obtain a copy
12
+ * of the License at:
13
+ * http://www.apache.org/licenses/LICENSE-2.0
14
+ *
15
+ * Unless required by applicable law or agreed to in writing, software
16
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
17
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
18
+ * License for the specific language governing permissions and limitations
19
+ * under the License.
20
+ */
21
+
22
+ #include "SvgNode.h"
23
+ #include "utils/SvgUtils.h"
24
+ #include "SvgGradient.h"
25
+ #include "SvgPattern.h"
26
+ #include "properties/ViewBox.h"
27
+ #include "SvgFilter.h"
28
+ #include <native_drawing/drawing_matrix.h>
29
+ #include <native_drawing/drawing_path.h>
30
+ #include <regex>
31
+ #include <string>
32
+ #include <native_drawing/drawing_pixel_map.h>
33
+
34
+ namespace rnoh {
35
+ namespace svg {
36
+
37
+ constexpr size_t MIN_TRANSFORM_SIZE = 6;
38
+ constexpr int TRANSFORM_SCALE_X_INDEX = 0;
39
+ constexpr int TRANSFORM_SKEW_Y_INDEX = 1;
40
+ constexpr int TRANSFORM_SKEW_X_INDEX = 2;
41
+ constexpr int TRANSFORM_SCALE_Y_INDEX = 3;
42
+ constexpr int TRANSFORM_TRANSLATE_X_INDEX = 4;
43
+ constexpr int TRANSFORM_TRANSLATE_Y_INDEX = 5;
44
+ constexpr double MATRIX_Z_VALUE = 1.0;
45
+
46
+ void SvgNode::InitStyle(const SvgBaseAttribute &attr) {
47
+ static thread_local int recursionDepth = 0;
48
+ static constexpr int MAX_RECURSION_DEPTH = 100;
49
+
50
+ if (recursionDepth >= MAX_RECURSION_DEPTH) {
51
+ return;
52
+ }
53
+
54
+ recursionDepth++;
55
+
56
+ // reset gradient to null
57
+ attributes_.fillState.SetGradient(std::nullopt, false);
58
+ attributes_.strokeState.SetGradient(std::nullopt, false);
59
+ InheritAttr(attr);
60
+ if (hrefFill_) {
61
+ auto fillHref = attributes_.fillState.GetHref();
62
+ if (!fillHref.empty()) {
63
+ auto gradient = GetGradient(fillHref);
64
+ if (gradient) {
65
+ attributes_.fillState.SetGradient(gradient.value(), true);
66
+ }
67
+ auto pattern = GetPatternAttr(fillHref);
68
+ if (pattern) {
69
+ attributes_.fillState.SetPattern(pattern);
70
+ }
71
+ }
72
+ auto strokeHref = attributes_.strokeState.GetHref();
73
+ if (!strokeHref.empty()) {
74
+ auto gradient = GetGradient(strokeHref);
75
+ if (gradient) {
76
+ attributes_.strokeState.SetGradient(gradient.value(), true);
77
+ }
78
+ }
79
+ }
80
+ OnInitStyle();
81
+ if (passStyle_) {
82
+ for (auto &node : children_) {
83
+ if (node) {
84
+ node->InitStyle((node->inheritStyle_) ? attributes_ : SvgBaseAttribute());
85
+ }
86
+ }
87
+ }
88
+
89
+ recursionDepth--;
90
+ }
91
+
92
+ void SvgNode::OnDrawTraversed(OH_Drawing_Canvas *canvas) {
93
+ auto smoothEdge = GetSmoothEdge();
94
+ for (auto &node : children_) {
95
+ if (node && node->drawTraversed_) {
96
+ if (GreatNotEqual(smoothEdge, 0.0f)) {
97
+ node->SetSmoothEdge(smoothEdge);
98
+ }
99
+ node->Draw(canvas);
100
+ }
101
+ }
102
+ }
103
+
104
+ const Rect &SvgNode::GetRootViewBox() const {
105
+ if (!context_) {
106
+ static Rect empty;
107
+ return empty;
108
+ }
109
+ return context_->GetRootViewBox();
110
+ }
111
+
112
+ void SvgNode::OnClipPath(OH_Drawing_Canvas *canvas) {
113
+ DLOG(INFO) << "[SvgNode] Draw OnClipPath enter";
114
+ if (!context_) {
115
+ DLOG(WARNING) << "[SvgNode] OnClipPath: Context is null!";
116
+ return;
117
+ }
118
+ auto refSvgNode = context_->GetSvgNodeById(hrefClipPath_);
119
+ if (!refSvgNode) {
120
+ DLOG(WARNING) << "[SvgNode] OnClipPath: SvgNode is null!";
121
+ return;
122
+ };
123
+ auto clipPath = refSvgNode->AsPath();
124
+
125
+ // maybe return optional from AsPath?
126
+
127
+ // Set clipRule through Drawing API
128
+ clipPath.SetFillType(attributes_.clipState.GetClipRuleForDraw());
129
+ OH_Drawing_CanvasClipPath(canvas, clipPath.get(), OH_Drawing_CanvasClipOp::INTERSECT, true);
130
+ }
131
+
132
+ void SvgNode::OnMask(OH_Drawing_Canvas *canvas) {
133
+ if (!context_) {
134
+ DLOG(INFO) << "NO CONTEXT";
135
+ return;
136
+ }
137
+ auto refMask = context_->GetSvgNodeById(attributes_.maskId);
138
+ if (!refMask) {
139
+ return;
140
+ };
141
+ refMask->Draw(canvas);
142
+ }
143
+
144
+ void SvgNode::OnTransform(OH_Drawing_Canvas *canvas, std::vector<double> transform) {
145
+ // input transfrom: (float scaleX, float skewY, float skewX, float scaleY, float transX, float transY)
146
+ /* (OH_Drawing_Matrix* , float scaleX, float skewX, float transX, float skewY, float scaleY, float transY, float
147
+ persp0, float persp1, float persp2 )
148
+ */
149
+ if (!attributes_.strokeState.GetVectorEffect() && transform.size() >= MIN_TRANSFORM_SIZE) {
150
+ cTM_.SetMatrix(transform[TRANSFORM_SCALE_X_INDEX], transform[TRANSFORM_SKEW_X_INDEX],
151
+ transform[TRANSFORM_TRANSLATE_X_INDEX] * scale_, transform[TRANSFORM_SKEW_Y_INDEX],
152
+ transform[TRANSFORM_SCALE_Y_INDEX], transform[TRANSFORM_TRANSLATE_Y_INDEX] * scale_, 0, 0,
153
+ MATRIX_Z_VALUE);
154
+ OH_Drawing_CanvasConcatMatrix(canvas, cTM_.get());
155
+ }
156
+ }
157
+
158
+ std::optional<Gradient> SvgNode::GetGradient(const std::string &href) {
159
+ if (!context_) {
160
+ DLOG(INFO) << "NO CONTEXT";
161
+ return std::nullopt;
162
+ }
163
+ auto refSvgNode = context_->GetSvgNodeById(href);
164
+ CHECK_NULL_RETURN(refSvgNode, std::nullopt);
165
+ auto svgGradient = std::dynamic_pointer_cast<SvgGradient>(refSvgNode);
166
+ if (svgGradient) {
167
+ return std::make_optional(svgGradient->GetGradient());
168
+ }
169
+ return std::nullopt;
170
+ }
171
+
172
+ std::shared_ptr<PatternAttr> SvgNode::GetPatternAttr(const std::string &href) {
173
+ if (!context_) {
174
+ DLOG(INFO) << "NO CONTEXT";
175
+ return nullptr;
176
+ }
177
+ auto refSvgNode = context_->GetSvgNodeById(href);
178
+ CHECK_NULL_RETURN(refSvgNode, nullptr);
179
+ auto svgPattern = std::dynamic_pointer_cast<SvgPattern>(refSvgNode);
180
+ if (svgPattern) {
181
+ return svgPattern->GetPatternAttr();
182
+ }
183
+ return nullptr;
184
+ }
185
+
186
+ void SvgNode::Draw(OH_Drawing_Canvas *canvas) {
187
+ if (!display_) {
188
+ return;
189
+ }
190
+ // mask and filter create extra layers, need to record initial layer count
191
+ const auto count = OH_Drawing_CanvasGetSaveCount(canvas);
192
+ OH_Drawing_CanvasSave(canvas);
193
+ if (!attributes_.transform.empty()) {
194
+ OnTransform(canvas, attributes_.transform);
195
+ }
196
+ if (!hrefClipPath_.empty()) {
197
+ OnClipPath(canvas);
198
+ }
199
+ if (!attributes_.maskId.empty()) {
200
+ OnMask(canvas);
201
+ }
202
+
203
+ OH_Drawing_CanvasGetTotalMatrix(canvas, lastCanvasMatrix_.get());
204
+
205
+ OnDraw(canvas);
206
+ // on marker
207
+
208
+ OnDrawTraversed(canvas);
209
+
210
+ if (_foreignPropsArray.size() > 0) {
211
+ for (ForeignProps _foreignProps : _foreignPropsArray) {
212
+ DrawForeignPixelMap(canvas, _foreignProps);
213
+ }
214
+ _foreignPropsArray.clear();
215
+ }
216
+ OH_Drawing_CanvasRestoreToCount(canvas, count);
217
+ }
218
+
219
+ Rect SvgNode::AsBounds() {
220
+ auto path = AsPath();
221
+ auto ohRect = path.GetBounds();
222
+ float x = ohRect.GetLeft();
223
+ float y = ohRect.GetTop();
224
+ float width = ohRect.GetWidth();
225
+ float height = ohRect.GetHeight();
226
+ auto rect = Rect(x, y, width, height);
227
+ return rect;
228
+ }
229
+
230
+ void SvgNode::ContextTraversal() {
231
+ static thread_local int recursionDepth = 0;
232
+ static constexpr int MAX_RECURSION_DEPTH = 100;
233
+
234
+ if (recursionDepth >= MAX_RECURSION_DEPTH) {
235
+ return;
236
+ }
237
+
238
+ recursionDepth++;
239
+
240
+ if (!context_) {
241
+ DLOG(INFO) << "NO CONTEXT";
242
+ recursionDepth--;
243
+ return;
244
+ }
245
+ if (!attributes_.id.empty()) {
246
+ context_->Push(attributes_.id, shared_from_this());
247
+ }
248
+ for (const auto &child : children_) {
249
+ if (child) {
250
+ child->SetContext(context_);
251
+ child->ContextTraversal();
252
+ }
253
+ }
254
+
255
+ recursionDepth--;
256
+ }
257
+
258
+ double SvgNode::relativeOnWidth(Dimension length) { return length.RelativeConvertToPx(getCanvasWidth(), scale_); }
259
+
260
+ double SvgNode::relativeOnHeight(Dimension length) { return length.RelativeConvertToPx(getCanvasHeight(), scale_); }
261
+
262
+ double SvgNode::relativeOnOther(Dimension length) { return length.RelativeConvertToPx(getCanvasDiagonal(), scale_); }
263
+
264
+ double SvgNode::getCanvasWidth() {
265
+ if (canvasWidth_ != -1) {
266
+ return canvasWidth_;
267
+ }
268
+ // to be done? if root is text root
269
+ if (context_) {
270
+ canvasWidth_ = context_->getCanvasBounds().Width() / context_->getCanvasScaleX();
271
+ return canvasWidth_;
272
+ }
273
+ return 0;
274
+ }
275
+
276
+ double SvgNode::getCanvasHeight() {
277
+ if (canvasHeight_ != -1) {
278
+ return canvasHeight_;
279
+ }
280
+ // to be done? if root is text root
281
+ if (context_) {
282
+ canvasHeight_ = context_->getCanvasBounds().Height() / context_->getCanvasScaleY();
283
+ return canvasHeight_;
284
+ }
285
+ return 0;
286
+ }
287
+
288
+ double SvgNode::getCanvasDiagonal() {
289
+ if (canvasDiagonal_ != -1) {
290
+ return canvasDiagonal_;
291
+ }
292
+ double powX = pow((getCanvasWidth()), 2);
293
+ double powY = pow((getCanvasHeight()), 2);
294
+ canvasDiagonal_ = sqrt(powX + powY) * M_SQRT1_2l;
295
+ return canvasDiagonal_;
296
+ }
297
+
298
+ void SvgNode::DrawForeignClip(OH_Drawing_Canvas *canvas,const std::string &id,int clipRule) {
299
+ if (!context_) {
300
+ DLOG(INFO) << "[svgForeignNode] NO CONTEXT";
301
+ return;
302
+ }
303
+ auto refSvgNode = context_->GetSvgNodeById(id);
304
+ if (!refSvgNode) {
305
+ DLOG(WARNING) << "[svgForeignNode] clipPath: SvgNode is null!";
306
+ return;
307
+ };
308
+ auto clipPath = refSvgNode->AsPath();
309
+ drawing::Path::FillType fillType = clipRule == 0
310
+ ? OH_Drawing_PathFillType::PATH_FILL_TYPE_EVEN_ODD
311
+ : OH_Drawing_PathFillType::PATH_FILL_TYPE_WINDING;
312
+ clipPath.SetFillType(fillType);
313
+ OH_Drawing_CanvasClipPath(canvas, clipPath.get(), OH_Drawing_CanvasClipOp::INTERSECT, true);
314
+ }
315
+
316
+ void SvgNode::DrawForeignMask(OH_Drawing_Canvas *canvas, const std::string &id) {
317
+ if (!context_) {
318
+ DLOG(INFO) << "[svgForeignNode] NO CONTEXT";
319
+ return;
320
+ }
321
+ auto refMask = context_->GetSvgNodeById(id);
322
+ if (!refMask) {
323
+ return;
324
+ };
325
+ refMask->Draw(canvas);
326
+ }
327
+
328
+ void SvgNode::DrawForeignPixelMap(OH_Drawing_Canvas *canvas, ForeignProps _foreignProps) {
329
+ if (!_foreignProps.foreignPixelMap) {
330
+ DLOG(INFO) << "[svgForeignNode] foreignPixelMap is null";
331
+ return;
332
+ }
333
+ if (!_foreignProps.transform.empty()) {
334
+ OnTransform(canvas, _foreignProps.transform);
335
+ }
336
+ if (!_foreignProps.path.empty()) {
337
+ DrawForeignClip(canvas,_foreignProps.path, _foreignProps.clipRule);
338
+ }
339
+
340
+ if (!_foreignProps.mask.empty()) {
341
+ DrawForeignMask(canvas,_foreignProps.mask);
342
+ }
343
+ double postionX = _foreignProps.x.ParsePropsToPx(OH_Drawing_CanvasGetWidth(canvas), _foreignProps.pointScaleFactor);
344
+ double postionY = _foreignProps.y.ParsePropsToPx(OH_Drawing_CanvasGetHeight(canvas), _foreignProps.pointScaleFactor);
345
+ double foreignW = _foreignProps.width.ParsePropsToPx(OH_Drawing_CanvasGetWidth(canvas), _foreignProps.pointScaleFactor);
346
+ double foreignH = _foreignProps.height.ParsePropsToPx(OH_Drawing_CanvasGetHeight(canvas), _foreignProps.pointScaleFactor);
347
+ OH_Pixelmap_ImageInfo *imageInfo;
348
+ OH_PixelmapImageInfo_Create(&imageInfo);
349
+
350
+ OH_PixelmapNative_GetImageInfo(_foreignProps.foreignPixelMap, imageInfo);
351
+ uint32_t originalWidth = 0, originalHeight = 0;
352
+ OH_PixelmapImageInfo_GetWidth(imageInfo, &originalWidth);
353
+ OH_PixelmapImageInfo_GetHeight(imageInfo, &originalHeight);
354
+ OH_PixelmapImageInfo_Release(imageInfo);
355
+
356
+ if (originalWidth == 0 || originalHeight == 0) {
357
+ DLOG(WARNING) << "[svgForeignNode] Invalid pixelmap size";
358
+ OH_PixelmapNative_Release(_foreignProps.foreignPixelMap);
359
+ return;
360
+ }
361
+ float originalRelWidth = originalWidth > foreignW ? foreignW : originalWidth;
362
+ float originalRelHeight = originalHeight > foreignH ? foreignH : originalHeight;
363
+ DLOG(INFO) << "[svgForeignNode] DrawForeignPixelMap start , foreignH:" << foreignH << ";originalHeight:" << originalHeight <<";originalRelHeight:" << originalRelHeight;
364
+ OH_Drawing_PixelMap *ohPixelMap = OH_Drawing_PixelMapGetFromOhPixelMapNative(_foreignProps.foreignPixelMap);
365
+ if (!ohPixelMap) {
366
+ DLOG(WARNING) << "[svgForeignNode] Failed to get OH_Drawing_PixelMap";
367
+ OH_PixelmapNative_Release(_foreignProps.foreignPixelMap);
368
+ return;
369
+ }
370
+
371
+ OH_Drawing_CanvasSave(canvas);
372
+
373
+ OH_Drawing_CanvasTranslate(canvas, postionX, postionY);
374
+
375
+ OH_Drawing_CanvasScale(canvas, 1, 1);
376
+
377
+ OH_Drawing_Rect *srcRect = OH_Drawing_RectCreate(0, 0, originalRelWidth, originalRelHeight);
378
+ OH_Drawing_Rect *dstRect = OH_Drawing_RectCreate(0, 0, originalRelWidth, originalRelHeight);
379
+ OH_Drawing_SamplingOptions *sampling = OH_Drawing_SamplingOptionsCreate(FILTER_MODE_LINEAR, MIPMAP_MODE_LINEAR);
380
+ OH_Drawing_CanvasDrawPixelMapRect(canvas, ohPixelMap, srcRect, dstRect, sampling);
381
+
382
+
383
+ OH_Drawing_CanvasRestore(canvas);
384
+ OH_Drawing_PixelMapDissolve(ohPixelMap);
385
+ OH_PixelmapNative_Release(_foreignProps.foreignPixelMap);
386
+ OH_Drawing_RectDestroy(srcRect);
387
+ OH_Drawing_RectDestroy(dstRect);
388
+ OH_Drawing_SamplingOptionsDestroy(sampling);
389
+
390
+ _foreignProps.foreignPixelMap = nullptr;
391
+ DLOG(INFO) << "[svgForeignNode] DrawForeignPixelMap end";
392
+ }
393
+
394
+ } // namespace svg
395
+ } // namespace rnoh