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

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 (280) hide show
  1. package/LICENSE +21 -0
  2. package/README.OpenSource +11 -0
  3. package/README.md +13 -0
  4. package/css/package.json +6 -0
  5. package/harmony/svg/BuildProfile.ets +17 -0
  6. package/harmony/svg/build-profile.json5 +9 -0
  7. package/harmony/svg/hvigorfile.ts +2 -0
  8. package/harmony/svg/index.ets +7 -0
  9. package/harmony/svg/oh-package.json5 +13 -0
  10. package/harmony/svg/src/main/cpp/Attribute.h +52 -0
  11. package/harmony/svg/src/main/cpp/CMakeLists.txt +32 -0
  12. package/harmony/svg/src/main/cpp/FallbackProps.h +0 -0
  13. package/harmony/svg/src/main/cpp/FontHolderBase.cpp +22 -0
  14. package/harmony/svg/src/main/cpp/FontHolderBase.h +54 -0
  15. package/harmony/svg/src/main/cpp/SVGPackage.cpp +135 -0
  16. package/harmony/svg/src/main/cpp/SVGPackage.h +153 -0
  17. package/harmony/svg/src/main/cpp/SvgArkUINode.cpp +75 -0
  18. package/harmony/svg/src/main/cpp/SvgArkUINode.h +45 -0
  19. package/harmony/svg/src/main/cpp/SvgBaseAttribute.h +83 -0
  20. package/harmony/svg/src/main/cpp/SvgCircle.cpp +29 -0
  21. package/harmony/svg/src/main/cpp/SvgCircle.h +29 -0
  22. package/harmony/svg/src/main/cpp/SvgClipPath.h +22 -0
  23. package/harmony/svg/src/main/cpp/SvgContext.cpp +56 -0
  24. package/harmony/svg/src/main/cpp/SvgContext.h +71 -0
  25. package/harmony/svg/src/main/cpp/SvgDefs.h +46 -0
  26. package/harmony/svg/src/main/cpp/SvgEllipse.cpp +32 -0
  27. package/harmony/svg/src/main/cpp/SvgEllipse.h +34 -0
  28. package/harmony/svg/src/main/cpp/SvgFilter.cpp +505 -0
  29. package/harmony/svg/src/main/cpp/SvgFilter.h +112 -0
  30. package/harmony/svg/src/main/cpp/SvgGradient.cpp +116 -0
  31. package/harmony/svg/src/main/cpp/SvgGradient.h +49 -0
  32. package/harmony/svg/src/main/cpp/SvgGraphic.cpp +553 -0
  33. package/harmony/svg/src/main/cpp/SvgGraphic.h +77 -0
  34. package/harmony/svg/src/main/cpp/SvgGroup.cpp +86 -0
  35. package/harmony/svg/src/main/cpp/SvgGroup.h +41 -0
  36. package/harmony/svg/src/main/cpp/SvgHost.cpp +27 -0
  37. package/harmony/svg/src/main/cpp/SvgHost.h +38 -0
  38. package/harmony/svg/src/main/cpp/SvgImage.cpp +168 -0
  39. package/harmony/svg/src/main/cpp/SvgImage.h +52 -0
  40. package/harmony/svg/src/main/cpp/SvgLine.cpp +28 -0
  41. package/harmony/svg/src/main/cpp/SvgLine.h +32 -0
  42. package/harmony/svg/src/main/cpp/SvgMarker.cpp +61 -0
  43. package/harmony/svg/src/main/cpp/SvgMarker.h +86 -0
  44. package/harmony/svg/src/main/cpp/SvgMask.cpp +72 -0
  45. package/harmony/svg/src/main/cpp/SvgMask.h +68 -0
  46. package/harmony/svg/src/main/cpp/SvgNode.cpp +289 -0
  47. package/harmony/svg/src/main/cpp/SvgNode.h +347 -0
  48. package/harmony/svg/src/main/cpp/SvgPath.cpp +42 -0
  49. package/harmony/svg/src/main/cpp/SvgPath.h +29 -0
  50. package/harmony/svg/src/main/cpp/SvgPattern.cpp +77 -0
  51. package/harmony/svg/src/main/cpp/SvgPattern.h +64 -0
  52. package/harmony/svg/src/main/cpp/SvgQuote.h +87 -0
  53. package/harmony/svg/src/main/cpp/SvgRect.cpp +58 -0
  54. package/harmony/svg/src/main/cpp/SvgRect.h +33 -0
  55. package/harmony/svg/src/main/cpp/SvgSvg.cpp +83 -0
  56. package/harmony/svg/src/main/cpp/SvgSvg.h +52 -0
  57. package/harmony/svg/src/main/cpp/SvgSymbol.cpp +25 -0
  58. package/harmony/svg/src/main/cpp/SvgSymbol.h +37 -0
  59. package/harmony/svg/src/main/cpp/SvgTSpan.cpp +501 -0
  60. package/harmony/svg/src/main/cpp/SvgTSpan.h +101 -0
  61. package/harmony/svg/src/main/cpp/SvgText.cpp +48 -0
  62. package/harmony/svg/src/main/cpp/SvgText.h +29 -0
  63. package/harmony/svg/src/main/cpp/SvgTextPath.cpp +35 -0
  64. package/harmony/svg/src/main/cpp/SvgTextPath.h +51 -0
  65. package/harmony/svg/src/main/cpp/SvgUse.cpp +65 -0
  66. package/harmony/svg/src/main/cpp/SvgUse.h +46 -0
  67. package/harmony/svg/src/main/cpp/SvgViewManager.cpp +36 -0
  68. package/harmony/svg/src/main/cpp/SvgViewManager.h +37 -0
  69. package/harmony/svg/src/main/cpp/TextBase.cpp +20 -0
  70. package/harmony/svg/src/main/cpp/TextBase.h +114 -0
  71. package/harmony/svg/src/main/cpp/componentInstances/RNSVGBaseComponentInstance.h +212 -0
  72. package/harmony/svg/src/main/cpp/componentInstances/RNSVGCircleComponentInstance.cpp +31 -0
  73. package/harmony/svg/src/main/cpp/componentInstances/RNSVGCircleComponentInstance.h +27 -0
  74. package/harmony/svg/src/main/cpp/componentInstances/RNSVGClipPathComponentInstance.cpp +23 -0
  75. package/harmony/svg/src/main/cpp/componentInstances/RNSVGClipPathComponentInstance.h +27 -0
  76. package/harmony/svg/src/main/cpp/componentInstances/RNSVGDefsComponentInstance.cpp +23 -0
  77. package/harmony/svg/src/main/cpp/componentInstances/RNSVGDefsComponentInstance.h +28 -0
  78. package/harmony/svg/src/main/cpp/componentInstances/RNSVGEllipseComponentInstance.cpp +27 -0
  79. package/harmony/svg/src/main/cpp/componentInstances/RNSVGEllipseComponentInstance.h +27 -0
  80. package/harmony/svg/src/main/cpp/componentInstances/RNSVGFeBlendComponentInstance.cpp +40 -0
  81. package/harmony/svg/src/main/cpp/componentInstances/RNSVGFeBlendComponentInstance.h +48 -0
  82. package/harmony/svg/src/main/cpp/componentInstances/RNSVGFeColorMatrixComponentInstance.cpp +33 -0
  83. package/harmony/svg/src/main/cpp/componentInstances/RNSVGFeColorMatrixComponentInstance.h +48 -0
  84. package/harmony/svg/src/main/cpp/componentInstances/RNSVGFeCompositeComponentInstance.cpp +39 -0
  85. package/harmony/svg/src/main/cpp/componentInstances/RNSVGFeCompositeComponentInstance.h +55 -0
  86. package/harmony/svg/src/main/cpp/componentInstances/RNSVGFeFloodComponentInstance.cpp +33 -0
  87. package/harmony/svg/src/main/cpp/componentInstances/RNSVGFeFloodComponentInstance.h +49 -0
  88. package/harmony/svg/src/main/cpp/componentInstances/RNSVGFeGaussianBlurComponentInstance.cpp +34 -0
  89. package/harmony/svg/src/main/cpp/componentInstances/RNSVGFeGaussianBlurComponentInstance.h +48 -0
  90. package/harmony/svg/src/main/cpp/componentInstances/RNSVGFeOffsetComponentInstance.cpp +35 -0
  91. package/harmony/svg/src/main/cpp/componentInstances/RNSVGFeOffsetComponentInstance.h +46 -0
  92. package/harmony/svg/src/main/cpp/componentInstances/RNSVGFilterComponentInstance.cpp +199 -0
  93. package/harmony/svg/src/main/cpp/componentInstances/RNSVGFilterComponentInstance.h +48 -0
  94. package/harmony/svg/src/main/cpp/componentInstances/RNSVGGroupComponentInstance.cpp +32 -0
  95. package/harmony/svg/src/main/cpp/componentInstances/RNSVGGroupComponentInstance.h +27 -0
  96. package/harmony/svg/src/main/cpp/componentInstances/RNSVGImageComponentInstance.cpp +100 -0
  97. package/harmony/svg/src/main/cpp/componentInstances/RNSVGImageComponentInstance.h +43 -0
  98. package/harmony/svg/src/main/cpp/componentInstances/RNSVGLineComponentInstance.cpp +27 -0
  99. package/harmony/svg/src/main/cpp/componentInstances/RNSVGLineComponentInstance.h +27 -0
  100. package/harmony/svg/src/main/cpp/componentInstances/RNSVGLinearGradientComponentInstance.cpp +30 -0
  101. package/harmony/svg/src/main/cpp/componentInstances/RNSVGLinearGradientComponentInstance.h +28 -0
  102. package/harmony/svg/src/main/cpp/componentInstances/RNSVGMarkerComponentInstance.cpp +35 -0
  103. package/harmony/svg/src/main/cpp/componentInstances/RNSVGMarkerComponentInstance.h +27 -0
  104. package/harmony/svg/src/main/cpp/componentInstances/RNSVGMaskComponentInstance.cpp +30 -0
  105. package/harmony/svg/src/main/cpp/componentInstances/RNSVGMaskComponentInstance.h +27 -0
  106. package/harmony/svg/src/main/cpp/componentInstances/RNSVGPathComponentInstance.cpp +33 -0
  107. package/harmony/svg/src/main/cpp/componentInstances/RNSVGPathComponentInstance.h +29 -0
  108. package/harmony/svg/src/main/cpp/componentInstances/RNSVGPatternComponentInstance.cpp +40 -0
  109. package/harmony/svg/src/main/cpp/componentInstances/RNSVGPatternComponentInstance.h +27 -0
  110. package/harmony/svg/src/main/cpp/componentInstances/RNSVGRadialGradientComponentInstance.cpp +32 -0
  111. package/harmony/svg/src/main/cpp/componentInstances/RNSVGRadialGradientComponentInstance.h +28 -0
  112. package/harmony/svg/src/main/cpp/componentInstances/RNSVGRectComponentInstance.cpp +36 -0
  113. package/harmony/svg/src/main/cpp/componentInstances/RNSVGRectComponentInstance.h +27 -0
  114. package/harmony/svg/src/main/cpp/componentInstances/RNSVGSvgViewComponentInstance.cpp +86 -0
  115. package/harmony/svg/src/main/cpp/componentInstances/RNSVGSvgViewComponentInstance.h +47 -0
  116. package/harmony/svg/src/main/cpp/componentInstances/RNSVGSymbolComponentInstance.cpp +30 -0
  117. package/harmony/svg/src/main/cpp/componentInstances/RNSVGSymbolComponentInstance.h +27 -0
  118. package/harmony/svg/src/main/cpp/componentInstances/RNSVGTSpanComponentInstance.cpp +27 -0
  119. package/harmony/svg/src/main/cpp/componentInstances/RNSVGTSpanComponentInstance.h +27 -0
  120. package/harmony/svg/src/main/cpp/componentInstances/RNSVGTextComponentInstance.cpp +25 -0
  121. package/harmony/svg/src/main/cpp/componentInstances/RNSVGTextComponentInstance.h +27 -0
  122. package/harmony/svg/src/main/cpp/componentInstances/RNSVGTextPathComponentInstance.cpp +32 -0
  123. package/harmony/svg/src/main/cpp/componentInstances/RNSVGTextPathComponentInstance.h +27 -0
  124. package/harmony/svg/src/main/cpp/componentInstances/RNSVGUseComponentInstance.cpp +32 -0
  125. package/harmony/svg/src/main/cpp/componentInstances/RNSVGUseComponentInstance.h +32 -0
  126. package/harmony/svg/src/main/cpp/downloadUtils/HttpTaskProcessor.cpp +207 -0
  127. package/harmony/svg/src/main/cpp/downloadUtils/HttpTaskProcessor.h +88 -0
  128. package/harmony/svg/src/main/cpp/downloadUtils/ImageSourceResolver.cpp +106 -0
  129. package/harmony/svg/src/main/cpp/downloadUtils/ImageSourceResolver.h +97 -0
  130. package/harmony/svg/src/main/cpp/downloadUtils/LRUCache.h +98 -0
  131. package/harmony/svg/src/main/cpp/drawing/Brush.cpp +50 -0
  132. package/harmony/svg/src/main/cpp/drawing/Brush.h +52 -0
  133. package/harmony/svg/src/main/cpp/drawing/GlyPathBag.cpp +20 -0
  134. package/harmony/svg/src/main/cpp/drawing/GlyPathBag.h +31 -0
  135. package/harmony/svg/src/main/cpp/drawing/Matrix.cpp +100 -0
  136. package/harmony/svg/src/main/cpp/drawing/Matrix.h +68 -0
  137. package/harmony/svg/src/main/cpp/drawing/Path.cpp +173 -0
  138. package/harmony/svg/src/main/cpp/drawing/Path.h +127 -0
  139. package/harmony/svg/src/main/cpp/drawing/Pen.cpp +57 -0
  140. package/harmony/svg/src/main/cpp/drawing/Pen.h +59 -0
  141. package/harmony/svg/src/main/cpp/drawing/Rect.cpp +47 -0
  142. package/harmony/svg/src/main/cpp/drawing/Rect.h +56 -0
  143. package/harmony/svg/src/main/cpp/drawing/RoundRect.cpp +24 -0
  144. package/harmony/svg/src/main/cpp/drawing/RoundRect.h +39 -0
  145. package/harmony/svg/src/main/cpp/drawing/ShaderEffect.cpp +37 -0
  146. package/harmony/svg/src/main/cpp/drawing/ShaderEffect.h +51 -0
  147. package/harmony/svg/src/main/cpp/drawing/TextStyle.cpp +49 -0
  148. package/harmony/svg/src/main/cpp/drawing/TextStyle.h +41 -0
  149. package/harmony/svg/src/main/cpp/drawing/Typography.cpp +9 -0
  150. package/harmony/svg/src/main/cpp/drawing/Typography.h +25 -0
  151. package/harmony/svg/src/main/cpp/drawing/TypographyStyle.cpp +31 -0
  152. package/harmony/svg/src/main/cpp/drawing/TypographyStyle.h +41 -0
  153. package/harmony/svg/src/main/cpp/generated/RNOH/generated/components/RNSVGCircleJSIBinder.h +54 -0
  154. package/harmony/svg/src/main/cpp/generated/RNOH/generated/components/RNSVGClipPathJSIBinder.h +54 -0
  155. package/harmony/svg/src/main/cpp/generated/RNOH/generated/components/RNSVGDefsJSIBinder.h +38 -0
  156. package/harmony/svg/src/main/cpp/generated/RNOH/generated/components/RNSVGEllipseJSIBinder.h +55 -0
  157. package/harmony/svg/src/main/cpp/generated/RNOH/generated/components/RNSVGFeBlendJSIBinder.h +26 -0
  158. package/harmony/svg/src/main/cpp/generated/RNOH/generated/components/RNSVGFeColorMatrixJSIBinder.h +26 -0
  159. package/harmony/svg/src/main/cpp/generated/RNOH/generated/components/RNSVGFeCompositeJSIBinder.h +30 -0
  160. package/harmony/svg/src/main/cpp/generated/RNOH/generated/components/RNSVGFeFloodJSIBinder.h +26 -0
  161. package/harmony/svg/src/main/cpp/generated/RNOH/generated/components/RNSVGFeGaussianBlurJSIBinder.h +27 -0
  162. package/harmony/svg/src/main/cpp/generated/RNOH/generated/components/RNSVGFeOffsetJSIBinder.h +26 -0
  163. package/harmony/svg/src/main/cpp/generated/RNOH/generated/components/RNSVGFilterJSIBinder.h +44 -0
  164. package/harmony/svg/src/main/cpp/generated/RNOH/generated/components/RNSVGForeignObjectJSIBinder.h +57 -0
  165. package/harmony/svg/src/main/cpp/generated/RNOH/generated/components/RNSVGGroupJSIBinder.h +54 -0
  166. package/harmony/svg/src/main/cpp/generated/RNOH/generated/components/RNSVGImageJSIBinder.h +58 -0
  167. package/harmony/svg/src/main/cpp/generated/RNOH/generated/components/RNSVGLineJSIBinder.h +55 -0
  168. package/harmony/svg/src/main/cpp/generated/RNOH/generated/components/RNSVGLinearGradientJSIBinder.h +45 -0
  169. package/harmony/svg/src/main/cpp/generated/RNOH/generated/components/RNSVGMarkerJSIBinder.h +66 -0
  170. package/harmony/svg/src/main/cpp/generated/RNOH/generated/components/RNSVGMaskJSIBinder.h +60 -0
  171. package/harmony/svg/src/main/cpp/generated/RNOH/generated/components/RNSVGPathJSIBinder.h +52 -0
  172. package/harmony/svg/src/main/cpp/generated/RNOH/generated/components/RNSVGPatternJSIBinder.h +67 -0
  173. package/harmony/svg/src/main/cpp/generated/RNOH/generated/components/RNSVGRadialGradientJSIBinder.h +47 -0
  174. package/harmony/svg/src/main/cpp/generated/RNOH/generated/components/RNSVGRectJSIBinder.h +57 -0
  175. package/harmony/svg/src/main/cpp/generated/RNOH/generated/components/RNSVGSvgViewAndroidJSIBinder.h +67 -0
  176. package/harmony/svg/src/main/cpp/generated/RNOH/generated/components/RNSVGSvgViewJSIBinder.h +36 -0
  177. package/harmony/svg/src/main/cpp/generated/RNOH/generated/components/RNSVGSymbolJSIBinder.h +60 -0
  178. package/harmony/svg/src/main/cpp/generated/RNOH/generated/components/RNSVGTSpanJSIBinder.h +66 -0
  179. package/harmony/svg/src/main/cpp/generated/RNOH/generated/components/RNSVGTextJSIBinder.h +65 -0
  180. package/harmony/svg/src/main/cpp/generated/RNOH/generated/components/RNSVGTextPathJSIBinder.h +71 -0
  181. package/harmony/svg/src/main/cpp/generated/RNOH/generated/components/RNSVGUseJSIBinder.h +56 -0
  182. package/harmony/svg/src/main/cpp/generated/react/renderer/components/react_native_svg/ComponentDescriptors.h +48 -0
  183. package/harmony/svg/src/main/cpp/generated/react/renderer/components/react_native_svg/EventEmitters.cpp +20 -0
  184. package/harmony/svg/src/main/cpp/generated/react/renderer/components/react_native_svg/EventEmitters.h +253 -0
  185. package/harmony/svg/src/main/cpp/generated/react/renderer/components/react_native_svg/Props.cpp +977 -0
  186. package/harmony/svg/src/main/cpp/generated/react/renderer/components/react_native_svg/Props.h +1280 -0
  187. package/harmony/svg/src/main/cpp/generated/react/renderer/components/react_native_svg/ShadowNodes.cpp +45 -0
  188. package/harmony/svg/src/main/cpp/generated/react/renderer/components/react_native_svg/ShadowNodes.h +331 -0
  189. package/harmony/svg/src/main/cpp/generated/react/renderer/components/react_native_svg/States.cpp +18 -0
  190. package/harmony/svg/src/main/cpp/generated/react/renderer/components/react_native_svg/States.h +441 -0
  191. package/harmony/svg/src/main/cpp/properties/Color.cpp +458 -0
  192. package/harmony/svg/src/main/cpp/properties/Color.h +144 -0
  193. package/harmony/svg/src/main/cpp/properties/Decoration.cpp +41 -0
  194. package/harmony/svg/src/main/cpp/properties/Decoration.h +483 -0
  195. package/harmony/svg/src/main/cpp/properties/Dimension.cpp +64 -0
  196. package/harmony/svg/src/main/cpp/properties/Dimension.h +243 -0
  197. package/harmony/svg/src/main/cpp/properties/Font.cpp +166 -0
  198. package/harmony/svg/src/main/cpp/properties/Font.h +163 -0
  199. package/harmony/svg/src/main/cpp/properties/Offset.h +119 -0
  200. package/harmony/svg/src/main/cpp/properties/PaintState.h +240 -0
  201. package/harmony/svg/src/main/cpp/properties/Rect.h +423 -0
  202. package/harmony/svg/src/main/cpp/properties/Size.h +246 -0
  203. package/harmony/svg/src/main/cpp/properties/SvgPaintState.h +452 -0
  204. package/harmony/svg/src/main/cpp/properties/TextProperties.cpp +91 -0
  205. package/harmony/svg/src/main/cpp/properties/TextProperties.h +56 -0
  206. package/harmony/svg/src/main/cpp/properties/ViewBox.h +108 -0
  207. package/harmony/svg/src/main/cpp/svgImage/RNSVGImageComponentDescriptor.h +41 -0
  208. package/harmony/svg/src/main/cpp/svgImage/RNSVGImageShadowNode.cpp +62 -0
  209. package/harmony/svg/src/main/cpp/svgImage/RNSVGImageShadowNode.h +63 -0
  210. package/harmony/svg/src/main/cpp/svgImage/RNSVGImageState.cpp +17 -0
  211. package/harmony/svg/src/main/cpp/svgImage/RNSVGImageState.h +58 -0
  212. package/harmony/svg/src/main/cpp/turboModules/RNSVGImageModule.cpp +54 -0
  213. package/harmony/svg/src/main/cpp/turboModules/RNSVGImageModule.h +32 -0
  214. package/harmony/svg/src/main/cpp/turboModules/RNSVGRenderableModule.cpp +101 -0
  215. package/harmony/svg/src/main/cpp/turboModules/RNSVGRenderableModule.h +32 -0
  216. package/harmony/svg/src/main/cpp/turboModules/RNSVGSvgViewModule.cpp +71 -0
  217. package/harmony/svg/src/main/cpp/turboModules/RNSVGSvgViewModule.h +32 -0
  218. package/harmony/svg/src/main/cpp/utils/DynamicUtils.h +55 -0
  219. package/harmony/svg/src/main/cpp/utils/FilterManager.h +190 -0
  220. package/harmony/svg/src/main/cpp/utils/GlyphContext.cpp +221 -0
  221. package/harmony/svg/src/main/cpp/utils/GlyphContext.h +106 -0
  222. package/harmony/svg/src/main/cpp/utils/LinearMap.h +69 -0
  223. package/harmony/svg/src/main/cpp/utils/PathParserUtils.cpp +591 -0
  224. package/harmony/svg/src/main/cpp/utils/PathParserUtils.h +93 -0
  225. package/harmony/svg/src/main/cpp/utils/StringUtils.cpp +134 -0
  226. package/harmony/svg/src/main/cpp/utils/StringUtils.h +644 -0
  227. package/harmony/svg/src/main/cpp/utils/SvgAttributesParser.cpp +239 -0
  228. package/harmony/svg/src/main/cpp/utils/SvgAttributesParser.h +277 -0
  229. package/harmony/svg/src/main/cpp/utils/SvgMarkerPositionUtils.h +200 -0
  230. package/harmony/svg/src/main/cpp/utils/SvgUtils.h +176 -0
  231. package/harmony/svg/src/main/cpp/utils/TextPathHelper.cpp +94 -0
  232. package/harmony/svg/src/main/cpp/utils/TextPathHelper.h +61 -0
  233. package/harmony/svg/src/main/ets/RNSVGImageModule.ts +21 -0
  234. package/harmony/svg/src/main/ets/RNSVGRenderableModule.ts +16 -0
  235. package/harmony/svg/src/main/ets/RNSVGSvgViewModule.ts +18 -0
  236. package/harmony/svg/src/main/ets/SvgPackage.ts +58 -0
  237. package/harmony/svg/src/main/module.json5 +7 -0
  238. package/harmony/svg/src/main/resources/base/element/string.json +8 -0
  239. package/harmony/svg/src/main/resources/en_US/element/string.json +8 -0
  240. package/harmony/svg/src/main/resources/zh_CN/element/string.json +8 -0
  241. package/harmony/svg/ts.ts +8 -0
  242. package/harmony/svg.har +0 -0
  243. package/lib/commonjs/css/index.js +55 -0
  244. package/lib/commonjs/css/index.js.map +1 -0
  245. package/lib/commonjs/index.js +26 -0
  246. package/lib/commonjs/index.js.map +1 -0
  247. package/lib/module/css/index.js +4 -0
  248. package/lib/module/css/index.js.map +1 -0
  249. package/lib/module/index.js +3 -0
  250. package/lib/module/index.js.map +1 -0
  251. package/lib/typescript/babel.config.d.ts +8 -0
  252. package/lib/typescript/babel.config.d.ts.map +1 -0
  253. package/lib/typescript/example/babel.config.d.ts +3 -0
  254. package/lib/typescript/example/babel.config.d.ts.map +1 -0
  255. package/lib/typescript/example/contexts.d.ts +3 -0
  256. package/lib/typescript/example/contexts.d.ts.map +1 -0
  257. package/lib/typescript/example/harmony/entry/hvigorfile.d.ts +2 -0
  258. package/lib/typescript/example/harmony/entry/hvigorfile.d.ts.map +1 -0
  259. package/lib/typescript/example/harmony/hvigorfile.d.ts +2 -0
  260. package/lib/typescript/example/harmony/hvigorfile.d.ts.map +1 -0
  261. package/lib/typescript/example/index.d.ts +2 -0
  262. package/lib/typescript/example/index.d.ts.map +1 -0
  263. package/lib/typescript/example/jest.config.d.ts +3 -0
  264. package/lib/typescript/example/jest.config.d.ts.map +1 -0
  265. package/lib/typescript/example/metro.config.d.ts +3 -0
  266. package/lib/typescript/example/metro.config.d.ts.map +1 -0
  267. package/lib/typescript/example/react-native.config.d.ts +3 -0
  268. package/lib/typescript/example/react-native.config.d.ts.map +1 -0
  269. package/lib/typescript/example/scripts/create-build-profile.d.ts +2 -0
  270. package/lib/typescript/example/scripts/create-build-profile.d.ts.map +1 -0
  271. package/lib/typescript/example/src/index.d.ts +3 -0
  272. package/lib/typescript/example/src/index.d.ts.map +1 -0
  273. package/lib/typescript/src/css/index.d.ts +4 -0
  274. package/lib/typescript/src/css/index.d.ts.map +1 -0
  275. package/lib/typescript/src/index.d.ts +3 -0
  276. package/lib/typescript/src/index.d.ts.map +1 -0
  277. package/package.json +54 -0
  278. package/src/css/index.tsx +20 -0
  279. package/src/index.tsx +3 -0
  280. package/tsconfig.json +12 -0
@@ -0,0 +1,221 @@
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 react-native-svg project, licensed under
7
+ * the MIT License. Specifically:
8
+ * - [software-mansion/react-native-svg] (https://github.com/software-mansion/react-native-svg)
9
+ */
10
+
11
+ #include "GlyphContext.h"
12
+
13
+ namespace rnoh {
14
+ namespace svg {
15
+
16
+ void GlyphContext::pushContext(bool reset, const std::shared_ptr<SvgNode> &node, DimensionArray x, DimensionArray y,
17
+ DimensionArray deltaX, DimensionArray deltaY, DimensionArray rotate) {
18
+ if (reset) {
19
+ this->reset();
20
+ }
21
+
22
+ DLOG(INFO) << "GLYPH PUSHING"
23
+ << " mTop = " << mTop << " node = " << node;
24
+ pushNode(node);
25
+
26
+ if (!x.empty()) {
27
+ mXsIndex++;
28
+ mXIndex = -1;
29
+ mXIndices.push_back(mXIndex);
30
+ mXs = x;
31
+ mXsContext.push_back(mXs);
32
+ }
33
+
34
+ if (!y.empty()) {
35
+ mYsIndex++;
36
+ mYIndex = -1;
37
+ mYIndices.push_back(mYIndex);
38
+ mYs = y;
39
+ mYsContext.push_back(mYs);
40
+ }
41
+
42
+ if (!deltaX.empty()) {
43
+ mDXsIndex++;
44
+ mDXIndex = -1;
45
+ mDXIndices.push_back(mDXIndex);
46
+ mDXs = deltaX;
47
+ mDXsContext.push_back(mDXs);
48
+ }
49
+
50
+ if (!deltaY.empty()) {
51
+ mDYsIndex++;
52
+ mDYIndex = -1;
53
+ mDYIndices.push_back(mDYIndex);
54
+ mDYs = deltaY;
55
+ mDYsContext.push_back(mDYs);
56
+ }
57
+
58
+ if (!rotate.empty()) {
59
+ mRsIndex++;
60
+ mRIndex = -1;
61
+ mRIndices.push_back(mRIndex);
62
+ // convert Dimension vector to double
63
+ mRs.clear();
64
+ for (const auto &ro : rotate) {
65
+ mRs.emplace_back(ro.Value());
66
+ }
67
+ mRsContext.push_back(mRs);
68
+ }
69
+
70
+ pushIndices();
71
+ }
72
+ void GlyphContext::popContext() {
73
+ mXsIndices.pop_back();
74
+ mYsIndices.pop_back();
75
+ mDXsIndices.pop_back();
76
+ mDYsIndices.pop_back();
77
+ mRsIndices.pop_back();
78
+
79
+ mTop--;
80
+
81
+ int x = mXsIndex;
82
+ int y = mYsIndex;
83
+ int dx = mDXsIndex;
84
+ int dy = mDYsIndex;
85
+ int r = mRsIndex;
86
+
87
+ DLOG(INFO) << "GLYPH mTop = " << mTop << " mXsIndices size = " << mXsIndices.size();
88
+ mXsIndex = mXsIndices[mTop];
89
+ mYsIndex = mYsIndices[mTop];
90
+ mDXsIndex = mDXsIndices[mTop];
91
+ mDYsIndex = mDYsIndices[mTop];
92
+ mRsIndex = mRsIndices[mTop];
93
+
94
+ if (x != mXsIndex) {
95
+ mXsContext.erase(mXsContext.begin() + x);
96
+ mXs = mXsContext[mXsIndex];
97
+ mXIndex = mXIndices[mXsIndex];
98
+ }
99
+ if (y != mYsIndex) {
100
+ mYsContext.erase(mYsContext.begin() + y);
101
+ mYs = mYsContext[mYsIndex];
102
+ mYIndex = mYIndices[mYsIndex];
103
+ }
104
+ if (dx != mDXsIndex) {
105
+ mDXsContext.erase(mDXsContext.begin() + dx);
106
+ mDXs = mDXsContext[mDXsIndex];
107
+ mDXIndex = mDXIndices[mDXsIndex];
108
+ }
109
+ if (dy != mDYsIndex) {
110
+ mDYsContext.erase(mDYsContext.begin() + dy);
111
+ mDYs = mDYsContext[mDYsIndex];
112
+ mDYIndex = mDYIndices[mDYsIndex];
113
+ }
114
+ if (r != mRsIndex) {
115
+ mRsContext.erase(mRsContext.begin() + r);
116
+ mRs = mRsContext[mRsIndex];
117
+ mRIndex = mRIndices[mRsIndex];
118
+ }
119
+ }
120
+ double GlyphContext::nextX(double advance) {
121
+ incrementIndices(mXIndices, mXsIndex);
122
+
123
+ int nextIndex = mXIndex + 1;
124
+ if (nextIndex < mXs.size()) {
125
+ mDX = 0;
126
+ mXIndex = nextIndex;
127
+ Dimension string = mXs[nextIndex];
128
+ mX = string.RelativeConvertToPx(mWidth, mScale);
129
+ }
130
+
131
+ mX += advance;
132
+
133
+ return mX;
134
+ }
135
+ double GlyphContext::nextDeltaX() {
136
+ incrementIndices(mDXIndices, mDXsIndex);
137
+
138
+ int nextIndex = mDXIndex + 1;
139
+ if (nextIndex < mDXs.size()) {
140
+ mDXIndex = nextIndex;
141
+ Dimension string = mDXs[nextIndex];
142
+ double val = string.RelativeConvertToPx(mWidth, mScale);
143
+ mDX += val;
144
+ }
145
+
146
+ return mDX;
147
+ }
148
+ double GlyphContext::nextDeltaY() {
149
+ incrementIndices(mDYIndices, mDYsIndex);
150
+
151
+ int nextIndex = mDYIndex + 1;
152
+ if (nextIndex < mDYs.size()) {
153
+ mDYIndex = nextIndex;
154
+ Dimension string = mDYs[nextIndex];
155
+ double val = string.RelativeConvertToPx(mHeight, mScale);
156
+ mDY += val;
157
+ }
158
+
159
+ return mDY;
160
+ }
161
+
162
+ double GlyphContext::nextRotation() {
163
+ incrementIndices(mRIndices, mRsIndex);
164
+
165
+ mRIndex = std::min(mRIndex + 1, static_cast<int>(mRs.size()) - 1);
166
+
167
+ if (mRIndex < 0) {
168
+ // DLOG(INF0) << "ROTATION IS NULL";
169
+ return 0.0;
170
+ }
171
+ return mRs[mRIndex];
172
+ }
173
+ double GlyphContext::nextY() {
174
+ incrementIndices(mYIndices, mYsIndex);
175
+
176
+ int nextIndex = mYIndex + 1;
177
+ if (nextIndex < mYs.size()) {
178
+ mDY = 0;
179
+ mYIndex = nextIndex;
180
+ Dimension string = mYs[nextIndex];
181
+ mY = string.RelativeConvertToPx(mHeight, mScale);
182
+ }
183
+
184
+ return mY;
185
+ }
186
+ void GlyphContext::incrementIndices(std::vector<int> &indices, int topIndex) {
187
+ for (int index = topIndex; index >= 0; index--) {
188
+ int xIndex = indices[index];
189
+ indices[index] = xIndex + 1;
190
+ }
191
+ }
192
+ GlyphContext::GlyphContext(float scale, float width, float height) : mScale(scale), mWidth(width), mHeight(height) {
193
+ mXsContext.push_back(mXs);
194
+ mYsContext.push_back(mYs);
195
+ mDXsContext.push_back(mDXs);
196
+ mDYsContext.push_back(mDYs);
197
+ mRsContext.push_back(mRs);
198
+
199
+ mXIndices.push_back(mXIndex);
200
+ mYIndices.push_back(mYIndex);
201
+ mDXIndices.push_back(mDXIndex);
202
+ mDYIndices.push_back(mDYIndex);
203
+ mRIndices.push_back(mRIndex);
204
+
205
+ pushIndices();
206
+ }
207
+ void GlyphContext::pushIndices() {
208
+ mXsIndices.push_back(mXsIndex);
209
+ mYsIndices.push_back(mYsIndex);
210
+ mDXsIndices.push_back(mDXsIndex);
211
+ mDYsIndices.push_back(mDYsIndex);
212
+ mRsIndices.push_back(mRsIndex);
213
+ }
214
+ void GlyphContext::reset() {
215
+ mXsIndex = mYsIndex = mDXsIndex = mDYsIndex = mRsIndex = 0;
216
+ mXIndex = mYIndex = mDXIndex = mDYIndex = mRIndex = -1;
217
+ mX = mY = mDX = mDY = 0;
218
+ }
219
+
220
+ } // namespace svg
221
+ } // namespace rnoh
@@ -0,0 +1,106 @@
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 react-native-svg project, licensed under
7
+ * the MIT License. Specifically:
8
+ * - [software-mansion/react-native-svg] (https://github.com/software-mansion/react-native-svg)
9
+ */
10
+
11
+ #pragma once
12
+
13
+ #include <vector>
14
+ #include <memory>
15
+ #include "properties/Dimension.h"
16
+ #include "SvgNode.h"
17
+
18
+ namespace rnoh {
19
+ namespace svg {
20
+
21
+ class GlyphContext {
22
+
23
+ private:
24
+ std::vector<Dimension> mXs;
25
+ std::vector<Dimension> mYs;
26
+ std::vector<Dimension> mDXs;
27
+ std::vector<Dimension> mDYs;
28
+ std::vector<double> mRs;
29
+ int mXsIndex = 0;
30
+ int mYsIndex = 0;
31
+ int mDXsIndex = 0;
32
+ int mDYsIndex = 0;
33
+ int mRsIndex = 0;
34
+ int mXIndex = 0;
35
+ int mYIndex = 0;
36
+ int mDXIndex = 0;
37
+ int mDYIndex = 0;
38
+ int mRIndex = 0;
39
+ int mTop = 0;
40
+ float mScale = 0.0f;
41
+ float mWidth = 0.0f;
42
+ float mHeight = 0.0f;
43
+ std::vector<int> mXsIndices;
44
+ std::vector<int> mYsIndices;
45
+ std::vector<int> mDXsIndices;
46
+ std::vector<int> mDYsIndices;
47
+ std::vector<int> mRsIndices;
48
+ std::vector<std::vector<Dimension>> mXsContext;
49
+ std::vector<std::vector<Dimension>> mYsContext;
50
+ std::vector<std::vector<Dimension>> mDXsContext;
51
+ std::vector<std::vector<Dimension>> mDYsContext;
52
+ std::vector<std::vector<double>> mRsContext;
53
+ std::vector<int> mXIndices;
54
+ std::vector<int> mYIndices;
55
+ std::vector<int> mDXIndices;
56
+ std::vector<int> mDYIndices;
57
+ std::vector<int> mRIndices;
58
+ double mX = 0.0;
59
+ double mY = 0.0;
60
+ double mDX = 0.0;
61
+ double mDY = 0.0;
62
+
63
+ void pushIndices();
64
+
65
+ void reset();
66
+
67
+ void pushNode(const std::shared_ptr<SvgNode> &node) { mTop++; }
68
+
69
+ public:
70
+ GlyphContext(float scale, float width, float height);
71
+
72
+ void pushContext(const std::shared_ptr<SvgNode> &node) {
73
+ pushNode(node);
74
+ pushIndices();
75
+ }
76
+
77
+ using DimensionArray = const std::vector<Dimension> &;
78
+ void pushContext(bool reset, const std::shared_ptr<SvgNode> &node, DimensionArray x, DimensionArray y,
79
+ DimensionArray deltaX, DimensionArray deltaY, DimensionArray rotate);
80
+
81
+ void popContext();
82
+
83
+ static void incrementIndices(std::vector<int> &indices, int topIndex);
84
+
85
+ /**
86
+ * @param advance in x position by the next span.
87
+ * @return x position for this next span.
88
+ */
89
+ double nextX(double advance);
90
+
91
+ double nextY();
92
+
93
+ double nextDeltaX();
94
+
95
+ double nextDeltaY();
96
+
97
+ double nextRotation();
98
+
99
+ float getWidth() { return mWidth; }
100
+
101
+
102
+ float getHeight() { return mHeight; }
103
+ };
104
+
105
+ } // namespace svg
106
+ } // namespace rnoh
@@ -0,0 +1,69 @@
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
+ // from ArkUI "frameworks/base/utils/linear_map.h"
23
+ #pragma once
24
+
25
+ #include <algorithm>
26
+ #include <cstring>
27
+
28
+ namespace rnoh {
29
+ namespace svg {
30
+
31
+ template<typename T>
32
+ struct LinearMapNode {
33
+ const char* key;
34
+ T value;
35
+ };
36
+
37
+ // the key type K must can be compared.
38
+ template<typename K, typename V>
39
+ struct LinearEnumMapNode {
40
+ K key;
41
+ V value;
42
+ };
43
+
44
+ // these binary search functions in linear map, so the map must be sorted by key.
45
+ template<typename T>
46
+ int64_t BinarySearchFindIndex(const LinearMapNode<T>* vec, size_t length, const char* key)
47
+ {
48
+ auto it = std::lower_bound(
49
+ vec, vec + length, key, [](LinearMapNode<T> lhs, const char* key) { return strcmp(lhs.key, key) < 0; });
50
+ if (it == vec + length || strcmp(it->key, key) != 0) {
51
+ return -1;
52
+ } else {
53
+ return it - vec;
54
+ }
55
+ }
56
+
57
+ template<typename K, typename V>
58
+ int64_t BinarySearchFindIndex(const LinearEnumMapNode<K, V>* vec, size_t length, K key)
59
+ {
60
+ auto it =
61
+ std::lower_bound(vec, vec + length, key, [](LinearEnumMapNode<K, V> lhs, K key) { return lhs.key < key; });
62
+ if (it == vec + length || it->key != key) {
63
+ return -1;
64
+ } else {
65
+ return it - vec;
66
+ }
67
+ }
68
+ } // namespace svg
69
+ } // namespace rnoh